From c16ba616e6bd3264631665510bde07d95cf91c29 Mon Sep 17 00:00:00 2001 From: Joel Fischer Date: Tue, 21 Jul 2020 14:27:04 -0400 Subject: [PATCH 1/4] Starting update for v6.7 --- .DS_Store | Bin 8196 -> 8196 bytes MobileWeather.xcodeproj/project.pbxproj | 4 +- Podfile | 4 +- Podfile.lock | 35 +- Pods/BiSON/README.md | 24 + Pods/BiSON/src/bson_array.c | 172 +- Pods/BiSON/src/bson_array.h | 15 + Pods/BiSON/src/bson_object.c | 172 +- Pods/BiSON/src/bson_object.h | 15 + Pods/BiSON/src/bson_util.c | 23 +- Pods/BiSON/src/bson_util.h | 18 + .../SmartDeviceLink.podspec.json | 160 +- Pods/Manifest.lock | 35 +- Pods/Pods.xcodeproj/project.pbxproj | 8802 +++++++++-------- Pods/SmartDeviceLink/LICENSE | 2 +- Pods/SmartDeviceLink/README.md | 44 +- .../Base.lproj/SDLLockScreen.storyboard | 179 +- .../Contents.json | 23 + .../lock_arrow_left_black.png | Bin 0 -> 282 bytes .../lock_arrow_left_black@2x.png | Bin 0 -> 452 bytes .../lock_arrow_left_black@3x.png | Bin 0 -> 702 bytes .../Contents.json | 23 + .../lock_arrow_right_black.png | Bin 0 -> 269 bytes .../lock_arrow_right_black@2x.png | Bin 0 -> 402 bytes .../lock_arrow_right_black@3x.png | Bin 0 -> 674 bytes .../CVPixelBufferRef+SDLUtil.m | 36 +- .../NSMutableDictionary+Store.h | 24 +- .../NSMutableDictionary+Store.m | 77 +- .../SmartDeviceLink/NSNumber+NumberType.h | 3 +- .../SmartDeviceLink/SDLAddCommand.m | 25 +- .../SmartDeviceLink/SDLAddCommandResponse.m | 8 +- .../SmartDeviceLink/SDLAddSubMenu.h | 40 +- .../SmartDeviceLink/SDLAddSubMenu.m | 65 +- .../SmartDeviceLink/SDLAddSubMenuResponse.m | 8 +- .../SmartDeviceLink/SDLAirbagStatus.m | 42 +- .../SmartDeviceLink/SDLAlert.h | 302 +- .../SmartDeviceLink/SDLAlert.m | 117 +- .../SmartDeviceLink/SDLAlertManeuver.h | 12 + .../SmartDeviceLink/SDLAlertManeuver.m | 16 +- .../SDLAlertManeuverResponse.m | 8 +- .../SmartDeviceLink/SDLAlertResponse.h | 3 + .../SmartDeviceLink/SDLAlertResponse.m | 12 +- .../SmartDeviceLink/SDLAppInfo.h | 3 + .../SmartDeviceLink/SDLAppInfo.m | 17 +- .../SDLAppInterfaceUnregisteredReason.h | 10 + .../SDLAppInterfaceUnregisteredReason.m | 2 + .../SmartDeviceLink/SDLAppServiceCapability.h | 56 + .../SmartDeviceLink/SDLAppServiceCapability.m | 61 + .../SmartDeviceLink/SDLAppServiceData.h | 112 + .../SmartDeviceLink/SDLAppServiceData.m | 124 + .../SmartDeviceLink/SDLAppServiceManifest.h | 219 + .../SmartDeviceLink/SDLAppServiceManifest.m | 205 + .../SmartDeviceLink/SDLAppServiceRecord.h | 64 + .../SmartDeviceLink/SDLAppServiceRecord.m | 71 + .../SmartDeviceLink/SDLAppServiceType.h | 29 + .../SmartDeviceLink/SDLAppServiceType.m | 13 + .../SDLAppServicesCapabilities.h | 39 + .../SDLAppServicesCapabilities.m | 40 + .../SmartDeviceLink/SDLArtwork.h | 34 + .../SmartDeviceLink/SDLArtwork.m | 47 +- .../SDLAsynchronousOperation.h | 1 + .../SDLAsynchronousOperation.m | 6 + .../SDLAsynchronousRPCOperation.h | 39 + .../SDLAsynchronousRPCOperation.m | 84 + .../SDLAsynchronousRPCRequestOperation.h | 27 +- .../SDLAsynchronousRPCRequestOperation.m | 24 +- .../SDLAudioControlCapabilities.h | 39 +- .../SDLAudioControlCapabilities.m | 65 +- .../SmartDeviceLink/SDLAudioControlData.h | 5 + .../SmartDeviceLink/SDLAudioControlData.m | 19 +- .../SmartDeviceLink/SDLAudioFile.h | 35 +- .../SmartDeviceLink/SDLAudioFile.m | 9 + .../SDLAudioPassThruCapabilities.m | 17 +- .../SmartDeviceLink/SDLAudioStreamManager.h | 26 +- .../SmartDeviceLink/SDLAudioStreamManager.m | 82 +- .../SDLAudioStreamManagerDelegate.h | 21 +- .../SDLBackgroundTaskManager.h | 41 + .../SDLBackgroundTaskManager.m | 88 + .../SmartDeviceLink/SDLBeltStatus.m | 77 +- .../SmartDeviceLink/SDLBodyInformation.m | 33 +- .../SmartDeviceLink/SDLButtonCapabilities.h | 8 + .../SmartDeviceLink/SDLButtonCapabilities.m | 30 +- .../SmartDeviceLink/SDLButtonName.h | 76 + .../SmartDeviceLink/SDLButtonName.m | 15 + .../SmartDeviceLink/SDLButtonPress.h | 49 +- .../SmartDeviceLink/SDLButtonPress.m | 61 +- .../SmartDeviceLink/SDLButtonPressResponse.m | 8 +- .../SmartDeviceLink/SDLCacheFileManager.h | 29 + .../SmartDeviceLink/SDLCacheFileManager.m | 292 + .../SmartDeviceLink/SDLCancelInteraction.h | 115 + .../SmartDeviceLink/SDLCancelInteraction.m | 103 + .../SDLCancelInteractionResponse.h | 20 + .../SDLCancelInteractionResponse.m | 27 + .../SmartDeviceLink/SDLCarWindow.h | 6 +- .../SmartDeviceLink/SDLCarWindow.m | 48 +- .../SmartDeviceLink/SDLChangeRegistration.h | 20 + .../SmartDeviceLink/SDLChangeRegistration.m | 34 +- .../SDLChangeRegistrationResponse.m | 8 +- .../SDLCheckChoiceVROptionalOperation.m | 19 +- .../SmartDeviceLink/SDLChoice.h | 24 +- .../SmartDeviceLink/SDLChoice.m | 32 +- .../SmartDeviceLink/SDLChoiceCell.h | 1 + .../SmartDeviceLink/SDLChoiceSet.h | 18 + .../SmartDeviceLink/SDLChoiceSet.m | 29 +- .../SmartDeviceLink/SDLChoiceSetDelegate.h | 12 + .../SmartDeviceLink/SDLChoiceSetManager.h | 17 +- .../SmartDeviceLink/SDLChoiceSetManager.m | 337 +- .../SDLClimateControlCapabilities.h | 94 +- .../SDLClimateControlCapabilities.m | 96 +- .../SmartDeviceLink/SDLClimateControlData.h | 61 +- .../SmartDeviceLink/SDLClimateControlData.m | 90 +- .../SmartDeviceLink/SDLCloseApplication.h | 20 + .../SmartDeviceLink/SDLCloseApplication.m | 27 + .../SDLCloseApplicationResponse.h | 20 + .../SDLCloseApplicationResponse.m | 27 + .../SmartDeviceLink/SDLCloudAppProperties.h | 94 + .../SmartDeviceLink/SDLCloudAppProperties.m | 105 + .../SmartDeviceLink/SDLClusterModeStatus.m | 22 +- .../SmartDeviceLink/SDLConfiguration.h | 61 +- .../SmartDeviceLink/SDLConfiguration.m | 41 +- .../SDLConnectionManagerType.h | 41 +- ...LControlFramePayloadAudioStartServiceAck.m | 6 +- .../SDLControlFramePayloadConstants.h | 1 + .../SDLControlFramePayloadConstants.m | 9 +- .../SDLControlFramePayloadEndService.m | 6 +- .../SDLControlFramePayloadNak.m | 7 +- .../SDLControlFramePayloadRPCStartService.m | 6 +- ...SDLControlFramePayloadRPCStartServiceAck.h | 5 +- ...SDLControlFramePayloadRPCStartServiceAck.m | 32 +- ...ramePayloadRegisterSecondaryTransportNak.m | 6 +- ...LControlFramePayloadTransportEventUpdate.m | 6 +- .../SDLControlFramePayloadVideoStartService.m | 6 +- ...LControlFramePayloadVideoStartServiceAck.m | 6 +- .../SDLCreateInteractionChoiceSet.h | 5 + .../SDLCreateInteractionChoiceSet.m | 18 +- .../SDLCreateInteractionChoiceSetResponse.m | 8 +- .../SmartDeviceLink/SDLCreateWindow.h | 72 + .../SmartDeviceLink/SDLCreateWindow.m | 96 + .../SmartDeviceLink/SDLCreateWindowResponse.h | 16 + .../SmartDeviceLink/SDLCreateWindowResponse.m | 23 + .../SmartDeviceLink/SDLDIDResult.m | 16 +- .../SmartDeviceLink/SDLDateTime.h | 34 + .../SmartDeviceLink/SDLDateTime.m | 47 +- .../SDLDeleteChoicesOperation.m | 5 +- .../SmartDeviceLink/SDLDeleteCommand.h | 4 + .../SmartDeviceLink/SDLDeleteCommand.m | 13 +- .../SDLDeleteCommandResponse.m | 8 +- .../SmartDeviceLink/SDLDeleteFile.h | 4 + .../SmartDeviceLink/SDLDeleteFile.m | 13 +- .../SmartDeviceLink/SDLDeleteFileOperation.h | 17 +- .../SmartDeviceLink/SDLDeleteFileOperation.m | 3 +- .../SmartDeviceLink/SDLDeleteFileResponse.m | 12 +- .../SDLDeleteInteractionChoiceSet.h | 4 + .../SDLDeleteInteractionChoiceSet.m | 13 +- .../SDLDeleteInteractionChoiceSetResponse.m | 8 +- .../SmartDeviceLink/SDLDeleteSubMenu.h | 4 + .../SmartDeviceLink/SDLDeleteSubMenu.m | 13 +- .../SDLDeleteSubMenuResponse.m | 8 +- .../SmartDeviceLink/SDLDeleteWindow.h | 32 + .../SmartDeviceLink/SDLDeleteWindow.m | 40 + .../SmartDeviceLink/SDLDeleteWindowResponse.h | 21 + .../SmartDeviceLink/SDLDeleteWindowResponse.m | 26 + .../SmartDeviceLink/SDLDeviceInfo.h | 3 + .../SmartDeviceLink/SDLDeviceInfo.m | 26 +- .../SmartDeviceLink/SDLDeviceStatus.m | 57 +- .../SmartDeviceLink/SDLDiagnosticMessage.h | 8 +- .../SmartDeviceLink/SDLDiagnosticMessage.m | 27 +- .../SDLDiagnosticMessageResponse.h | 4 +- .../SDLDiagnosticMessageResponse.m | 17 +- .../SmartDeviceLink/SDLDialNumber.h | 4 + .../SmartDeviceLink/SDLDialNumber.m | 13 +- .../SmartDeviceLink/SDLDialNumberResponse.m | 8 +- .../SmartDeviceLink/SDLDirection.h | 26 + .../SmartDeviceLink/SDLDirection.m | 12 + ...isplayCapabilities+ShowManagerExtensions.h | 20 - .../SmartDeviceLink/SDLDisplayCapabilities.h | 6 +- .../SmartDeviceLink/SDLDisplayCapabilities.m | 42 +- .../SmartDeviceLink/SDLDisplayCapability.h | 66 + .../SmartDeviceLink/SDLDisplayCapability.m | 72 + .../SDLDynamicMenuUpdateAlgorithm.h | 28 + .../SDLDynamicMenuUpdateAlgorithm.m | 104 + .../SDLDynamicMenuUpdateRunScore.h | 34 + .../SDLDynamicMenuUpdateRunScore.m | 28 + .../SmartDeviceLink/SDLECallInfo.m | 17 +- .../SmartDeviceLink/SDLEmergencyEvent.m | 27 +- .../SmartDeviceLink/SDLEncodedSyncPData.h | 3 +- .../SmartDeviceLink/SDLEncodedSyncPData.m | 16 +- .../SDLEncodedSyncPDataResponse.h | 1 + .../SDLEncodedSyncPDataResponse.m | 11 +- .../SDLEncryptionConfiguration.h | 48 + .../SDLEncryptionConfiguration.m | 45 + .../SDLEncryptionLifecycleManager.h | 59 + .../SDLEncryptionLifecycleManager.m | 327 + .../SDLEncryptionManagerConstants.h | 18 + .../SDLEncryptionManagerConstants.m | 13 + .../SmartDeviceLink/SDLEndAudioPassThru.m | 8 +- .../SDLEndAudioPassThruResponse.m | 8 +- .../SmartDeviceLink/SmartDeviceLink/SDLEnum.h | 2 + .../SmartDeviceLink/SDLEqualizerSettings.h | 4 + .../SmartDeviceLink/SDLEqualizerSettings.m | 16 +- .../SmartDeviceLink/SDLError.h | 48 +- .../SmartDeviceLink/SDLError.m | 313 +- .../SmartDeviceLink/SDLErrorConstants.h | 92 +- .../SmartDeviceLink/SmartDeviceLink/SDLFile.h | 11 + .../SmartDeviceLink/SmartDeviceLink/SDLFile.m | 7 + .../SmartDeviceLink/SDLFileManager.h | 5 + .../SmartDeviceLink/SDLFileManager.m | 122 +- .../SDLFileManagerConfiguration.h | 1 + .../SmartDeviceLink/SDLFileManagerConstants.h | 1 + .../SmartDeviceLink/SDLFocusableItemLocator.h | 5 + .../SmartDeviceLink/SDLFocusableItemLocator.m | 68 +- .../SDLFocusableItemLocatorType.h | 10 +- .../SmartDeviceLink/SDLFuelRange.m | 10 +- .../SmartDeviceLink/SDLFunctionID.h | 19 +- .../SmartDeviceLink/SDLFunctionID.m | 168 +- .../SmartDeviceLink/SDLGPSData.h | 9 + .../SmartDeviceLink/SDLGPSData.m | 84 +- .../SmartDeviceLink/SDLGenericResponse.m | 8 +- .../SmartDeviceLink/SDLGetAppServiceData.h | 61 + .../SmartDeviceLink/SDLGetAppServiceData.m | 77 + .../SDLGetAppServiceDataResponse.h | 37 + .../SDLGetAppServiceDataResponse.m | 50 + .../SDLGetCloudAppProperties.h | 35 + .../SDLGetCloudAppProperties.m | 50 + .../SDLGetCloudAppPropertiesResponse.h | 38 + .../SDLGetCloudAppPropertiesResponse.m | 51 + .../SmartDeviceLink/SDLGetDTCs.h | 9 + .../SmartDeviceLink/SDLGetDTCs.m | 17 +- .../SmartDeviceLink/SDLGetDTCsResponse.h | 4 +- .../SmartDeviceLink/SDLGetDTCsResponse.m | 22 +- .../SmartDeviceLink/SDLGetFile.h | 86 + .../SmartDeviceLink/SDLGetFile.m | 107 + .../SmartDeviceLink/SDLGetFileResponse.h | 61 + .../SmartDeviceLink/SDLGetFileResponse.m | 76 + .../SDLGetInteriorVehicleData.h | 52 +- .../SDLGetInteriorVehicleData.m | 64 +- .../SDLGetInteriorVehicleDataConsent.h | 43 + .../SDLGetInteriorVehicleDataConsent.m | 55 + ...SDLGetInteriorVehicleDataConsentResponse.h | 29 + ...SDLGetInteriorVehicleDataConsentResponse.m | 34 + .../SDLGetInteriorVehicleDataResponse.h | 4 +- .../SDLGetInteriorVehicleDataResponse.m | 21 +- .../SmartDeviceLink/SDLGetSystemCapability.h | 31 +- .../SmartDeviceLink/SDLGetSystemCapability.m | 32 +- .../SDLGetSystemCapabilityResponse.h | 4 +- .../SDLGetSystemCapabilityResponse.m | 17 +- .../SmartDeviceLink/SDLGetVehicleData.h | 66 +- .../SmartDeviceLink/SDLGetVehicleData.m | 145 +- .../SDLGetVehicleDataResponse.h | 24 + .../SDLGetVehicleDataResponse.m | 140 +- .../SmartDeviceLink/SDLGetWayPoints.h | 7 + .../SmartDeviceLink/SDLGetWayPoints.m | 12 +- .../SmartDeviceLink/SDLGetWayPointsResponse.m | 12 +- .../SmartDeviceLink/SDLGlobalProperty.h | 5 + .../SmartDeviceLink/SDLGlobalProperty.m | 1 + .../SmartDeviceLink/SDLGlobals.h | 19 +- .../SmartDeviceLink/SDLGlobals.m | 45 +- .../SmartDeviceLink/SmartDeviceLink/SDLGrid.h | 56 + .../SmartDeviceLink/SmartDeviceLink/SDLGrid.m | 70 + .../SmartDeviceLink/SDLH264VideoEncoder.h | 4 +- .../SmartDeviceLink/SDLH264VideoEncoder.m | 232 +- .../SmartDeviceLink/SDLHMICapabilities.h | 49 + .../SmartDeviceLink/SDLHMICapabilities.m | 46 +- .../SmartDeviceLink/SDLHMIPermissions.m | 12 +- .../SDLHMISettingsControlCapabilities.h | 38 +- .../SDLHMISettingsControlCapabilities.m | 52 +- .../SDLHMISettingsControlData.m | 14 +- .../SmartDeviceLink/SDLHapticRect.h | 5 + .../SmartDeviceLink/SDLHapticRect.m | 11 +- .../SmartDeviceLink/SDLHeadLampStatus.m | 16 +- .../SmartDeviceLink/SDLHybridAppPreference.h | 29 + .../SmartDeviceLink/SDLHybridAppPreference.m | 13 + .../SmartDeviceLink/SDLIAPConstants.h | 14 + .../SmartDeviceLink/SDLIAPConstants.m | 14 + .../SmartDeviceLink/SDLIAPControlSession.h | 39 + .../SmartDeviceLink/SDLIAPControlSession.m | 261 + .../SDLIAPControlSessionDelegate.h | 23 + .../SmartDeviceLink/SDLIAPDataSession.h | 40 + .../SmartDeviceLink/SDLIAPDataSession.m | 375 + .../SDLIAPDataSessionDelegate.h | 21 + .../SmartDeviceLink/SDLIAPSession.h | 97 +- .../SmartDeviceLink/SDLIAPSession.m | 274 +- .../SmartDeviceLink/SDLIAPSessionDelegate.h | 29 - .../SmartDeviceLink/SDLIAPTransport.h | 14 +- .../SmartDeviceLink/SDLIAPTransport.m | 832 +- .../SmartDeviceLink/SDLIconArchiveFile.h | 29 + .../SmartDeviceLink/SDLIconArchiveFile.m | 75 + .../SmartDeviceLink/SDLImage.m | 16 +- .../SDLImageField+ScreenManagerExtensions.h | 19 + .../SDLImageField+ScreenManagerExtensions.m | 30 + .../SmartDeviceLink/SDLImageField.h | 6 + .../SmartDeviceLink/SDLImageField.m | 27 +- .../SmartDeviceLink/SDLImageFieldName.h | 5 + .../SmartDeviceLink/SDLImageFieldName.m | 1 + .../SmartDeviceLink/SDLImageResolution.h | 5 + .../SmartDeviceLink/SDLImageResolution.m | 12 +- .../SmartDeviceLink/SDLKeyboardDelegate.h | 24 +- .../SmartDeviceLink/SDLKeyboardProperties.h | 32 +- .../SmartDeviceLink/SDLKeyboardProperties.m | 35 +- .../SDLLifecycleConfiguration.h | 30 + .../SDLLifecycleConfiguration.m | 5 + .../SDLLifecycleConfigurationUpdate.m | 4 + .../SmartDeviceLink/SDLLifecycleManager.h | 28 +- .../SmartDeviceLink/SDLLifecycleManager.m | 663 +- .../SDLLifecycleMobileHMIStateHandler.h | 28 + .../SDLLifecycleMobileHMIStateHandler.m | 94 + .../SDLLifecycleProtocolHandler.h | 38 + .../SDLLifecycleProtocolHandler.m | 200 + .../SmartDeviceLink/SDLLifecycleRPCAdapter.h | 29 + .../SmartDeviceLink/SDLLifecycleRPCAdapter.m | 164 + .../SDLLifecycleSyncPDataHandler.h | 29 + .../SDLLifecycleSyncPDataHandler.m | 153 + .../SDLLifecycleSystemRequestHandler.h | 29 + .../SDLLifecycleSystemRequestHandler.m | 336 + .../SmartDeviceLink/SDLLightCapabilities.h | 3 + .../SmartDeviceLink/SDLLightCapabilities.m | 19 +- .../SDLLightControlCapabilities.h | 23 +- .../SDLLightControlCapabilities.m | 31 +- .../SmartDeviceLink/SDLLightControlData.h | 3 + .../SmartDeviceLink/SDLLightControlData.m | 7 +- .../SmartDeviceLink/SDLLightState.h | 3 + .../SmartDeviceLink/SDLLightState.m | 20 +- .../SmartDeviceLink/SDLListFiles.m | 8 +- .../SmartDeviceLink/SDLListFilesOperation.h | 10 + .../SmartDeviceLink/SDLListFilesOperation.m | 14 +- .../SmartDeviceLink/SDLListFilesResponse.m | 16 +- .../SmartDeviceLink/SDLLocationCoordinate.h | 19 +- .../SmartDeviceLink/SDLLocationCoordinate.m | 24 +- .../SmartDeviceLink/SDLLocationDetails.h | 24 +- .../SmartDeviceLink/SDLLocationDetails.m | 57 +- .../SDLLockScreenConfiguration.h | 50 +- .../SDLLockScreenConfiguration.m | 55 +- .../SmartDeviceLink/SDLLockScreenManager.h | 22 +- .../SmartDeviceLink/SDLLockScreenManager.m | 172 +- .../SmartDeviceLink/SDLLockScreenPresenter.h | 13 +- .../SmartDeviceLink/SDLLockScreenPresenter.m | 261 +- .../SDLLockScreenRootViewController.h | 18 + .../SDLLockScreenRootViewController.m | 59 + .../SmartDeviceLink/SDLLockScreenStatus.h | 10 +- .../SDLLockScreenStatusManager.h | 7 + .../SDLLockScreenStatusManager.m | 78 +- .../SDLLockScreenViewController.h | 21 +- .../SDLLockScreenViewController.m | 68 +- .../SmartDeviceLink/SDLLogConfiguration.h | 6 + .../SmartDeviceLink/SDLLogConfiguration.m | 2 + .../SmartDeviceLink/SDLLogConstants.h | 43 +- .../SmartDeviceLink/SDLLogFileModule.h | 1 + .../SmartDeviceLink/SDLLogFileModuleMap.m | 78 +- .../SmartDeviceLink/SDLLogFilter.h | 3 + .../SmartDeviceLink/SDLLogMacros.h | 8 + .../SmartDeviceLink/SDLLogManager.h | 39 + .../SmartDeviceLink/SDLLogManager.m | 34 +- .../SmartDeviceLink/SDLManager.h | 76 +- .../SmartDeviceLink/SDLManager.m | 44 +- .../SmartDeviceLink/SDLManagerDelegate.h | 20 +- .../SDLMassageCushionFirmness.m | 12 +- .../SmartDeviceLink/SDLMassageModeData.m | 12 +- .../SmartDeviceLink/SDLMediaServiceData.h | 177 + .../SmartDeviceLink/SDLMediaServiceData.m | 153 + .../SmartDeviceLink/SDLMediaServiceManifest.h | 20 + .../SmartDeviceLink/SDLMediaServiceManifest.m | 17 + .../SmartDeviceLink/SDLMediaType.h | 35 + .../SmartDeviceLink/SDLMediaType.m | 14 + .../SmartDeviceLink/SDLMenuCell.h | 26 +- .../SmartDeviceLink/SDLMenuCell.m | 37 +- .../SmartDeviceLink/SDLMenuConfiguration.h | 37 + .../SmartDeviceLink/SDLMenuConfiguration.m | 31 + .../SmartDeviceLink/SDLMenuLayout.h | 25 + .../SmartDeviceLink/SDLMenuLayout.m | 12 + .../SmartDeviceLink/SDLMenuManager.h | 20 +- .../SmartDeviceLink/SDLMenuManager.m | 429 +- .../SmartDeviceLink/SDLMenuManagerConstants.h | 39 + .../SmartDeviceLink/SDLMenuParams.h | 10 + .../SmartDeviceLink/SDLMenuParams.m | 14 +- .../SmartDeviceLink/SDLMetadataTags.h | 2 + .../SmartDeviceLink/SDLMetadataTags.m | 18 +- .../SmartDeviceLink/SDLModuleData.h | 7 + .../SmartDeviceLink/SDLModuleData.m | 40 +- .../SmartDeviceLink/SDLModuleInfo.h | 50 + .../SmartDeviceLink/SDLModuleInfo.m | 52 + .../SmartDeviceLink/SDLMsgVersion.h | 52 + .../SmartDeviceLink/SDLMsgVersion.m | 58 + .../SmartDeviceLink/SDLMutableDataQueue.m | 5 +- .../SmartDeviceLink/SDLMyKey.m | 7 +- .../SmartDeviceLink/SDLNames.h | 650 -- .../SmartDeviceLink/SDLNames.m | 645 -- .../SmartDeviceLink/SDLNavigationAction.h | 49 + .../SmartDeviceLink/SDLNavigationAction.m | 17 + .../SmartDeviceLink/SDLNavigationCapability.h | 5 + .../SmartDeviceLink/SDLNavigationCapability.m | 10 +- .../SDLNavigationInstruction.h | 109 + .../SDLNavigationInstruction.m | 116 + .../SmartDeviceLink/SDLNavigationJunction.h | 54 + .../SmartDeviceLink/SDLNavigationJunction.m | 19 + .../SDLNavigationServiceData.h | 111 + .../SDLNavigationServiceData.m | 124 + .../SDLNavigationServiceManifest.h | 35 + .../SDLNavigationServiceManifest.m | 39 + .../SDLNotificationConstants.h | 434 +- .../SDLNotificationConstants.m | 245 +- .../SDLNotificationDispatcher.h | 33 +- .../SDLNotificationDispatcher.m | 323 +- .../SmartDeviceLink/SDLOasisAddress.h | 18 + .../SmartDeviceLink/SDLOasisAddress.m | 38 +- .../SDLOnAppInterfaceUnregistered.m | 13 +- .../SmartDeviceLink/SDLOnAppServiceData.h | 38 + .../SmartDeviceLink/SDLOnAppServiceData.m | 51 + .../SmartDeviceLink/SDLOnAudioPassThru.m | 8 +- .../SmartDeviceLink/SDLOnButtonEvent.m | 24 +- .../SmartDeviceLink/SDLOnButtonPress.m | 24 +- .../SmartDeviceLink/SDLOnCommand.m | 19 +- .../SmartDeviceLink/SDLOnDriverDistraction.h | 14 + .../SmartDeviceLink/SDLOnDriverDistraction.m | 32 +- .../SmartDeviceLink/SDLOnEncodedSyncPData.h | 1 + .../SmartDeviceLink/SDLOnEncodedSyncPData.m | 24 +- .../SmartDeviceLink/SDLOnHMIStatus.h | 15 + .../SmartDeviceLink/SDLOnHMIStatus.m | 52 +- .../SmartDeviceLink/SDLOnHashChange.m | 13 +- .../SDLOnInteriorVehicleData.m | 13 +- .../SmartDeviceLink/SDLOnKeyboardInput.m | 18 +- .../SmartDeviceLink/SDLOnLanguageChange.m | 20 +- .../SmartDeviceLink/SDLOnLockScreenStatus.h | 1 + .../SmartDeviceLink/SDLOnLockScreenStatus.m | 31 +- .../SmartDeviceLink/SDLOnPermissionsChange.h | 7 + .../SmartDeviceLink/SDLOnPermissionsChange.m | 21 +- .../SmartDeviceLink/SDLOnRCStatus.m | 22 +- .../SmartDeviceLink/SDLOnSyncPData.h | 8 + .../SmartDeviceLink/SDLOnSyncPData.m | 20 +- .../SDLOnSystemCapabilityUpdated.h | 37 + .../SDLOnSystemCapabilityUpdated.m | 51 + .../SmartDeviceLink/SDLOnSystemRequest.m | 37 +- .../SmartDeviceLink/SDLOnTBTClientState.m | 14 +- .../SmartDeviceLink/SDLOnTouchEvent.m | 19 +- .../SmartDeviceLink/SDLOnVehicleData.h | 25 + .../SmartDeviceLink/SDLOnVehicleData.m | 141 +- .../SmartDeviceLink/SDLOnWayPointChange.m | 13 +- .../SmartDeviceLink/SDLPCMAudioConverter.m | 4 +- .../SmartDeviceLink/SDLParameterPermissions.m | 12 +- .../SDLPerformAppServiceInteraction.h | 79 + .../SDLPerformAppServiceInteraction.m | 89 + .../SDLPerformAppServiceInteractionResponse.h | 36 + .../SDLPerformAppServiceInteractionResponse.m | 49 + .../SmartDeviceLink/SDLPerformAudioPassThru.h | 34 + .../SmartDeviceLink/SDLPerformAudioPassThru.m | 45 +- .../SDLPerformAudioPassThruResponse.m | 8 +- .../SmartDeviceLink/SDLPerformInteraction.h | 244 +- .../SmartDeviceLink/SDLPerformInteraction.m | 108 +- .../SDLPerformInteractionResponse.m | 20 +- .../SmartDeviceLink/SDLPermissionConstants.h | 26 +- .../SmartDeviceLink/SDLPermissionElement.h | 41 + .../SmartDeviceLink/SDLPermissionElement.m | 41 + .../SmartDeviceLink/SDLPermissionFilter.h | 40 +- .../SmartDeviceLink/SDLPermissionFilter.m | 41 +- .../SmartDeviceLink/SDLPermissionItem.h | 10 + .../SmartDeviceLink/SDLPermissionItem.m | 26 +- .../SmartDeviceLink/SDLPermissionManager.h | 79 +- .../SmartDeviceLink/SDLPermissionManager.m | 215 +- .../SmartDeviceLink/SDLPhoneCapability.h | 4 + .../SmartDeviceLink/SDLPhoneCapability.m | 6 +- .../SmartDeviceLink/SDLPinchGesture.h | 1 + .../SmartDeviceLink/SDLPolicyDataParser.h | 35 - .../SmartDeviceLink/SDLPolicyDataParser.m | 143 - .../SmartDeviceLink/SDLPredefinedWindows.h | 18 + .../SDLPreloadChoicesOperation.h | 4 +- .../SDLPreloadChoicesOperation.m | 98 +- .../SDLPresentChoiceSetOperation.h | 28 +- .../SDLPresentChoiceSetOperation.m | 81 +- .../SDLPresentKeyboardOperation.h | 25 +- .../SDLPresentKeyboardOperation.m | 65 +- .../SDLPresetBankCapabilities.m | 7 +- .../SmartDeviceLink/SDLProtocol.h | 61 +- .../SmartDeviceLink/SDLProtocol.m | 299 +- .../SmartDeviceLink/SDLProtocolConstants.h | 84 +- ...otocolListener.h => SDLProtocolDelegate.h} | 10 +- .../SmartDeviceLink/SDLProtocolMessage.m | 9 +- .../SDLProtocolReceivedMessageRouter.h | 4 +- .../SmartDeviceLink/SDLProxy.h | 135 - .../SmartDeviceLink/SDLProxy.m | 987 -- .../SmartDeviceLink/SDLProxyListener.h | 600 -- .../SmartDeviceLink/SDLPublishAppService.h | 40 + .../SmartDeviceLink/SDLPublishAppService.m | 52 + .../SDLPublishAppServiceResponse.h | 38 + .../SDLPublishAppServiceResponse.m | 50 + .../SmartDeviceLink/SDLPutFile.h | 9 +- .../SmartDeviceLink/SDLPutFile.m | 49 +- .../SmartDeviceLink/SDLPutFileResponse.m | 12 +- .../SmartDeviceLink/SDLRDSData.h | 10 + .../SmartDeviceLink/SDLRDSData.m | 34 +- .../SmartDeviceLink/SDLRGBColor.h | 3 + .../SmartDeviceLink/SDLRGBColor.m | 17 +- .../SmartDeviceLink/SDLRPCFunctionNames.h | 280 + .../SmartDeviceLink/SDLRPCFunctionNames.m | 98 + .../SmartDeviceLink/SDLRPCMessage.h | 32 +- .../SmartDeviceLink/SDLRPCMessage.m | 79 +- .../SmartDeviceLink/SDLRPCMessageType.h | 17 +- .../SmartDeviceLink/SDLRPCMessageType.m | 13 + .../SmartDeviceLink/SDLRPCNotification.m | 20 +- .../SmartDeviceLink/SDLRPCParameterNames.h | 728 ++ .../SmartDeviceLink/SDLRPCParameterNames.m | 723 ++ .../SmartDeviceLink/SDLRPCPermissionStatus.h | 47 + .../SmartDeviceLink/SDLRPCPermissionStatus.m | 34 + .../SmartDeviceLink/SDLRPCRequest.h | 1 + .../SmartDeviceLink/SDLRPCRequest.m | 17 +- .../SDLRPCRequestNotification.h | 51 + .../SDLRPCRequestNotification.m | 49 + .../SmartDeviceLink/SDLRPCResponse.h | 1 + .../SmartDeviceLink/SDLRPCResponse.m | 44 +- .../SDLRPCResponseNotification.h | 16 +- .../SmartDeviceLink/SDLRPCStruct.h | 18 +- .../SmartDeviceLink/SDLRPCStruct.m | 46 +- .../SmartDeviceLink/SDLRTPH264Packetizer.h | 10 +- .../SmartDeviceLink/SDLRTPH264Packetizer.m | 11 +- .../SDLRadioControlCapabilities.h | 64 +- .../SDLRadioControlCapabilities.m | 120 +- .../SmartDeviceLink/SDLRadioControlData.h | 34 +- .../SmartDeviceLink/SDLRadioControlData.m | 97 +- .../SmartDeviceLink/SDLReadDID.h | 9 +- .../SmartDeviceLink/SDLReadDID.m | 22 +- .../SmartDeviceLink/SDLReadDIDResponse.m | 12 +- .../SmartDeviceLink/SDLRectangle.m | 22 +- .../SmartDeviceLink/SDLRegisterAppInterface.h | 115 +- .../SmartDeviceLink/SDLRegisterAppInterface.m | 93 +- .../SDLRegisterAppInterfaceResponse.h | 177 +- .../SDLRegisterAppInterfaceResponse.m | 109 +- .../SDLReleaseInteriorVehicleDataModule.h | 41 + .../SDLReleaseInteriorVehicleDataModule.m | 56 + ...ReleaseInteriorVehicleDataModuleResponse.h | 20 + ...ReleaseInteriorVehicleDataModuleResponse.m | 23 + .../SDLRemoteControlCapabilities.h | 6 + .../SDLRemoteControlCapabilities.m | 52 +- .../SmartDeviceLink/SDLRequestType.h | 6 + .../SmartDeviceLink/SDLRequestType.m | 1 + .../SDLResetGlobalProperties.h | 4 + .../SDLResetGlobalProperties.m | 13 +- .../SDLResetGlobalPropertiesResponse.m | 8 +- .../SmartDeviceLink/SDLResponseDispatcher.m | 266 +- .../SmartDeviceLink/SDLResult.h | 5 + .../SmartDeviceLink/SDLResult.m | 2 +- .../SmartDeviceLink/SDLSISData.h | 8 + .../SmartDeviceLink/SDLSISData.m | 22 +- .../SmartDeviceLink/SDLScreenManager.h | 116 +- .../SmartDeviceLink/SDLScreenManager.m | 80 +- .../SmartDeviceLink/SDLScreenParams.m | 11 +- .../SDLScreenshotViewController.h | 22 - .../SDLScreenshotViewController.m | 48 - .../SmartDeviceLink/SDLScrollableMessage.h | 85 +- .../SmartDeviceLink/SDLScrollableMessage.m | 54 +- .../SDLScrollableMessageResponse.m | 8 +- .../SDLSeatControlCapabilities.h | 67 +- .../SDLSeatControlCapabilities.m | 112 +- .../SmartDeviceLink/SDLSeatControlData.h | 67 +- .../SmartDeviceLink/SDLSeatControlData.m | 79 +- .../SmartDeviceLink/SDLSeatLocation.h | 26 + .../SmartDeviceLink/SDLSeatLocation.m | 25 + .../SDLSeatLocationCapability.h | 55 + .../SDLSeatLocationCapability.m | 70 + .../SmartDeviceLink/SDLSeatMemoryAction.m | 16 +- .../SDLSecondaryTransportManager.h | 47 +- .../SDLSecondaryTransportManager.m | 643 +- ...SecondaryTransportPrimaryProtocolHandler.h | 46 - ...SecondaryTransportPrimaryProtocolHandler.m | 76 - .../SmartDeviceLink/SDLSendHapticData.m | 12 +- .../SDLSendHapticDataResponse.m | 8 +- .../SmartDeviceLink/SDLSendLocation.h | 57 +- .../SmartDeviceLink/SDLSendLocation.m | 64 +- .../SmartDeviceLink/SDLSendLocationResponse.m | 8 +- .../SDLSequentialRPCRequestOperation.h | 12 + .../SDLSequentialRPCRequestOperation.m | 3 +- .../SDLServiceEncryptionDelegate.h | 29 + .../SmartDeviceLink/SDLServiceUpdateReason.h | 39 + .../SmartDeviceLink/SDLServiceUpdateReason.m | 15 + .../SmartDeviceLink/SDLSetAppIcon.h | 5 +- .../SmartDeviceLink/SDLSetAppIcon.m | 13 +- .../SmartDeviceLink/SDLSetAppIconResponse.m | 8 +- .../SDLSetCloudAppProperties.h | 38 + .../SDLSetCloudAppProperties.m | 52 + .../SDLSetCloudAppPropertiesResponse.h | 20 + .../SDLSetCloudAppPropertiesResponse.m | 28 + .../SmartDeviceLink/SDLSetDisplayLayout.h | 15 +- .../SmartDeviceLink/SDLSetDisplayLayout.m | 21 +- .../SDLSetDisplayLayoutResponse.m | 24 +- .../SmartDeviceLink/SDLSetGlobalProperties.h | 36 +- .../SmartDeviceLink/SDLSetGlobalProperties.m | 62 +- .../SDLSetGlobalPropertiesResponse.m | 8 +- .../SDLSetInteriorVehicleData.h | 4 + .../SDLSetInteriorVehicleData.m | 15 +- .../SDLSetInteriorVehicleDataResponse.h | 4 +- .../SDLSetInteriorVehicleDataResponse.m | 17 +- .../SmartDeviceLink/SDLSetMediaClockTimer.h | 129 +- .../SmartDeviceLink/SDLSetMediaClockTimer.m | 82 +- .../SDLSetMediaClockTimerResponse.m | 8 +- .../SmartDeviceLink/SmartDeviceLink/SDLShow.h | 83 + .../SmartDeviceLink/SmartDeviceLink/SDLShow.m | 86 +- .../SmartDeviceLink/SDLShowAppMenu.h | 35 + .../SmartDeviceLink/SDLShowAppMenu.m | 48 + .../SmartDeviceLink/SDLShowAppMenuResponse.h | 20 + .../SmartDeviceLink/SDLShowAppMenuResponse.m | 23 + .../SmartDeviceLink/SDLShowConstantTBT.h | 14 + .../SmartDeviceLink/SDLShowConstantTBT.m | 52 +- .../SDLShowConstantTBTResponse.m | 8 +- .../SmartDeviceLink/SDLShowResponse.m | 8 +- .../SmartDeviceLink/SDLSingleTireStatus.m | 15 +- .../SmartDeviceLink/SDLSlider.h | 133 +- .../SmartDeviceLink/SDLSlider.m | 57 +- .../SmartDeviceLink/SDLSliderResponse.m | 12 +- .../SmartDeviceLink/SDLSoftButton.h | 13 + .../SmartDeviceLink/SDLSoftButton.m | 28 +- .../SDLSoftButtonCapabilities.h | 9 + .../SDLSoftButtonCapabilities.m | 31 +- .../SmartDeviceLink/SDLSoftButtonManager.h | 17 +- .../SmartDeviceLink/SDLSoftButtonManager.m | 374 +- .../SmartDeviceLink/SDLSoftButtonObject.h | 17 +- .../SmartDeviceLink/SDLSoftButtonObject.m | 10 + .../SDLSoftButtonReplaceOperation.h | 45 + .../SDLSoftButtonReplaceOperation.m | 273 + .../SmartDeviceLink/SDLSoftButtonState.h | 2 + .../SmartDeviceLink/SDLSoftButtonState.m | 9 +- .../SDLSoftButtonTransitionOperation.h | 43 + .../SDLSoftButtonTransitionOperation.m | 92 + .../SmartDeviceLink/SDLSpeak.h | 8 + .../SmartDeviceLink/SDLSpeak.m | 13 +- .../SmartDeviceLink/SDLSpeakResponse.m | 8 +- .../SmartDeviceLink/SDLSpeechCapabilities.h | 2 +- .../SmartDeviceLink/SDLStartTime.h | 16 + .../SmartDeviceLink/SDLStartTime.m | 30 +- .../SmartDeviceLink/SDLStateMachine.m | 4 +- .../SmartDeviceLink/SDLStaticIconName.h | 356 +- .../SmartDeviceLink/SDLStationIDNumber.h | 5 + .../SmartDeviceLink/SDLStationIDNumber.m | 10 +- .../SmartDeviceLink/SDLStreamDelegate.h | 26 - .../SmartDeviceLink/SDLStreamDelegate.m | 96 - .../SDLStreamingAudioLifecycleManager.h | 46 +- .../SDLStreamingAudioLifecycleManager.m | 191 +- .../SDLStreamingAudioManagerType.h | 1 + .../SDLStreamingMediaConfiguration.h | 45 +- .../SDLStreamingMediaConfiguration.m | 37 + .../SDLStreamingMediaManager.h | 66 +- .../SDLStreamingMediaManager.m | 206 +- .../SDLStreamingMediaManagerConstants.h | 51 +- .../SDLStreamingMediaManagerConstants.m | 2 - .../SDLStreamingMediaManagerDataSource.h | 1 + .../SDLStreamingProtocolDelegate.h | 35 +- .../SDLStreamingVideoLifecycleManager.h | 54 +- .../SDLStreamingVideoLifecycleManager.m | 315 +- .../SDLStreamingVideoScaleManager.h | 78 + .../SDLStreamingVideoScaleManager.m | 98 + .../SmartDeviceLink/SDLSubscribeButton.h | 5 + .../SmartDeviceLink/SDLSubscribeButton.m | 13 +- .../SDLSubscribeButtonManager.h | 75 + .../SDLSubscribeButtonManager.m | 311 + .../SDLSubscribeButtonObserver.h | 42 + .../SDLSubscribeButtonObserver.m | 45 + .../SDLSubscribeButtonResponse.m | 8 +- .../SmartDeviceLink/SDLSubscribeVehicleData.h | 64 +- .../SmartDeviceLink/SDLSubscribeVehicleData.m | 142 +- .../SDLSubscribeVehicleDataResponse.h | 27 + .../SDLSubscribeVehicleDataResponse.m | 140 +- .../SmartDeviceLink/SDLSubscribeWayPoints.m | 8 +- .../SDLSubscribeWayPointsResponse.m | 8 +- .../SmartDeviceLink/SDLSupportedSeat.h | 18 +- .../SmartDeviceLink/SDLSupportedSeat.m | 3 + .../SmartDeviceLink/SDLSyncMsgVersion.h | 7 + .../SmartDeviceLink/SDLSyncMsgVersion.m | 19 +- .../SmartDeviceLink/SDLSyncPData.h | 3 +- .../SmartDeviceLink/SDLSyncPData.m | 11 +- .../SmartDeviceLink/SDLSyncPDataResponse.h | 1 + .../SmartDeviceLink/SDLSyncPDataResponse.m | 11 +- .../SmartDeviceLink/SDLSystemCapability.h | 100 +- .../SmartDeviceLink/SDLSystemCapability.m | 86 +- .../SDLSystemCapabilityManager.h | 206 +- .../SDLSystemCapabilityManager.m | 770 +- .../SDLSystemCapabilityObserver.h | 71 + .../SDLSystemCapabilityObserver.m | 55 + .../SmartDeviceLink/SDLSystemCapabilityType.h | 17 + .../SmartDeviceLink/SDLSystemCapabilityType.m | 4 +- .../SmartDeviceLink/SDLSystemRequest.h | 2 +- .../SmartDeviceLink/SDLSystemRequest.m | 21 +- .../SDLSystemRequestResponse.m | 8 +- .../SmartDeviceLink/SDLTCPTransport.m | 141 +- .../SmartDeviceLink/SDLTTSChunk.m | 12 +- .../SmartDeviceLink/SDLTemperature.h | 37 +- .../SmartDeviceLink/SDLTemperature.m | 22 +- .../SmartDeviceLink/SDLTemplateColorScheme.h | 14 + .../SmartDeviceLink/SDLTemplateColorScheme.m | 14 +- .../SDLTemplateConfiguration.h | 86 + .../SDLTemplateConfiguration.m | 91 + .../SDLTextAndGraphicManager.h | 7 +- .../SDLTextAndGraphicManager.m | 167 +- .../SDLTextField+ScreenManagerExtensions.h | 19 + .../SDLTextField+ScreenManagerExtensions.m | 26 + .../SmartDeviceLink/SDLTextField.h | 7 + .../SmartDeviceLink/SDLTextField.m | 34 +- .../SmartDeviceLink/SDLTextFieldName.h | 7 + .../SmartDeviceLink/SDLTextFieldName.m | 1 + .../SmartDeviceLink/SDLTimer.h | 34 +- .../SmartDeviceLink/SDLTimer.m | 39 +- .../SmartDeviceLink/SDLTireStatus.m | 37 +- .../SmartDeviceLink/SDLTouch.h | 5 + .../SmartDeviceLink/SDLTouch.m | 11 +- .../SmartDeviceLink/SDLTouchCoord.m | 12 +- .../SmartDeviceLink/SDLTouchEvent.h | 2 +- .../SmartDeviceLink/SDLTouchEvent.m | 21 +- .../SDLTouchEventCapabilities.m | 17 +- .../SmartDeviceLink/SDLTouchManager.h | 56 +- .../SmartDeviceLink/SDLTouchManager.m | 191 +- .../SmartDeviceLink/SDLTouchManagerDelegate.h | 1 + .../SmartDeviceLink/SDLTransportType.h | 2 +- .../SmartDeviceLink/SmartDeviceLink/SDLTurn.h | 5 + .../SmartDeviceLink/SmartDeviceLink/SDLTurn.m | 10 +- .../SmartDeviceLink/SDLTurnSignal.h | 10 +- .../SmartDeviceLink/SDLUnpublishAppService.h | 34 + .../SmartDeviceLink/SDLUnpublishAppService.m | 49 + .../SDLUnpublishAppServiceResponse.h | 20 + .../SDLUnpublishAppServiceResponse.m | 27 + .../SDLUnregisterAppInterface.m | 8 +- .../SDLUnregisterAppInterfaceResponse.m | 8 +- .../SmartDeviceLink/SDLUnsubscribeButton.h | 4 + .../SmartDeviceLink/SDLUnsubscribeButton.m | 13 +- .../SDLUnsubscribeButtonResponse.m | 8 +- .../SDLUnsubscribeVehicleData.h | 63 +- .../SDLUnsubscribeVehicleData.m | 141 +- .../SDLUnsubscribeVehicleDataResponse.h | 27 + .../SDLUnsubscribeVehicleDataResponse.m | 136 +- .../SmartDeviceLink/SDLUnsubscribeWayPoints.m | 8 +- .../SDLUnsubscribeWayPointsResponse.m | 8 +- .../SmartDeviceLink/SDLUpdateTurnList.h | 4 + .../SmartDeviceLink/SDLUpdateTurnList.m | 16 +- .../SDLUpdateTurnListResponse.m | 8 +- .../SmartDeviceLink/SDLUploadFileOperation.h | 2 + .../SmartDeviceLink/SDLUploadFileOperation.m | 18 +- .../SmartDeviceLink/SDLV2ProtocolMessage.m | 11 +- .../SmartDeviceLink/SDLVehicleDataResult.h | 23 + .../SmartDeviceLink/SDLVehicleDataResult.m | 45 +- .../SmartDeviceLink/SDLVehicleDataType.h | 12 + .../SmartDeviceLink/SDLVehicleDataType.m | 2 + .../SmartDeviceLink/SDLVehicleType.m | 18 +- .../SmartDeviceLink/SDLVersion.h | 121 + .../SmartDeviceLink/SDLVersion.m | 160 + .../SDLVideoStreamingCapability.h | 49 +- .../SDLVideoStreamingCapability.m | 57 +- .../SmartDeviceLink/SDLVideoStreamingFormat.h | 5 + .../SmartDeviceLink/SDLVideoStreamingFormat.m | 12 +- .../SDLViewControllerPresentable.h | 27 +- .../SmartDeviceLink/SDLVoiceCommand.h | 9 + .../SmartDeviceLink/SDLVoiceCommandManager.m | 6 + .../SmartDeviceLink/SDLVrHelpItem.h | 11 + .../SmartDeviceLink/SDLVrHelpItem.m | 16 +- .../SmartDeviceLink/SDLWeatherAlert.h | 76 + .../SmartDeviceLink/SDLWeatherAlert.m | 84 + .../SmartDeviceLink/SDLWeatherData.h | 208 + .../SmartDeviceLink/SDLWeatherData.m | 231 + .../SmartDeviceLink/SDLWeatherServiceData.h | 87 + .../SmartDeviceLink/SDLWeatherServiceData.m | 95 + .../SDLWeatherServiceManifest.h | 67 + .../SDLWeatherServiceManifest.m | 75 + ...WindowCapability+ScreenManagerExtensions.h | 26 + ...indowCapability+ScreenManagerExtensions.m} | 15 +- .../SmartDeviceLink/SDLWindowCapability.h | 89 + .../SmartDeviceLink/SDLWindowCapability.m | 89 + .../SmartDeviceLink/SDLWindowType.h | 21 + .../SmartDeviceLink/SDLWindowType.m | 8 + .../SDLWindowTypeCapabilities.h | 41 + .../SDLWindowTypeCapabilities.m | 58 + .../SmartDeviceLink/SmartDeviceLink.h | 84 +- .../TestSubscribeButtonObserver.h | 34 + .../TestSubscribeButtonObserver.m | 70 + .../SmartDeviceLink/dispatch_timer.h | 18 - .../SmartDeviceLink/dispatch_timer.m | 38 - .../SmartDeviceLinkSwift/SDLLog.swift | 118 + .../BiSON/BiSON-Info.plist | 26 + .../BiSON/BiSON.debug.xcconfig | 9 + .../BiSON/BiSON.release.xcconfig | 9 + .../Pods-MobileWeather-Info.plist | 26 + ...ds-MobileWeather-acknowledgements.markdown | 2 +- .../Pods-MobileWeather-acknowledgements.plist | 2 +- .../Pods-MobileWeather-frameworks.sh | 94 +- .../Pods-MobileWeather.debug.xcconfig | 5 +- .../Pods-MobileWeather.release.xcconfig | 5 +- ...SmartDeviceLink-SmartDeviceLink-Info.plist | 24 + .../SmartDeviceLink-Info.plist | 26 + .../SmartDeviceLink-umbrella.h | 82 +- .../SmartDeviceLink.debug.xcconfig | 11 + .../SmartDeviceLink.release.xcconfig | 11 + SmartDeviceLinkService.m | 231 +- 784 files changed, 36818 insertions(+), 14761 deletions(-) create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/Contents.json create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/lock_arrow_left_black.png create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/lock_arrow_left_black@2x.png create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/lock_arrow_left_black@3x.png create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/Contents.json create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/lock_arrow_right_black.png create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/lock_arrow_right_black@2x.png create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/lock_arrow_right_black@3x.png create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.m mode change 100755 => 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities+ShowManagerExtensions.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSessionDelegate.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSessionDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSessionDelegate.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManagerConstants.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNames.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNames.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPolicyDataParser.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPolicyDataParser.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedWindows.h rename Pods/SmartDeviceLink/SmartDeviceLink/{SDLProtocolListener.h => SDLProtocolDelegate.h} (90%) delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProxy.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProxy.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProxyListener.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenshotViewController.h delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenshotViewController.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportPrimaryProtocolHandler.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportPrimaryProtocolHandler.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceEncryptionDelegate.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamDelegate.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.h rename Pods/SmartDeviceLink/SmartDeviceLink/{SDLDisplayCapabilities+ShowManagerExtensions.m => SDLWindowCapability+ScreenManagerExtensions.m} (76%) create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.h create mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/dispatch_timer.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/dispatch_timer.m create mode 100644 Pods/SmartDeviceLink/SmartDeviceLinkSwift/SDLLog.swift create mode 100644 Pods/Target Support Files/BiSON/BiSON-Info.plist create mode 100644 Pods/Target Support Files/BiSON/BiSON.debug.xcconfig create mode 100644 Pods/Target Support Files/BiSON/BiSON.release.xcconfig create mode 100644 Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-Info.plist create mode 100644 Pods/Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist create mode 100644 Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist create mode 100644 Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.debug.xcconfig create mode 100644 Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.release.xcconfig diff --git a/.DS_Store b/.DS_Store index 44973870852d849eed34bf80b49663c1ef6033f2..d549b19d3876e21b983d66789c55383b2b4af54c 100644 GIT binary patch delta 339 zcmZp1XmOa}&nU7nU^hRb$YvgabVhcD)jV&;1v#W* z*i$zoA96%fkb+NvB0Iwcpn3*Lkcm1BdJGi|$qeNT`3yx2*$l-D1q_Kmeris-VQ_MO zZUIOo1H;rnAOY53fJ+0ivtDf}IJ_R>EJB(PPDR(Gfy<_X3}mNWV3_=NHtCT|ofn(QuOw=pT42>|xyRw)1g delta 106 zcmZp1XmOa}&nU1lU^hRbz-AtSbVg>5Ct8#D2%7M@xTKVpBr`Bv-l7uAzyK67M3Nj3Xlk;;67(jqifnl@Ry diff --git a/MobileWeather.xcodeproj/project.pbxproj b/MobileWeather.xcodeproj/project.pbxproj index ca02fd8..8f7bc64 100644 --- a/MobileWeather.xcodeproj/project.pbxproj +++ b/MobileWeather.xcodeproj/project.pbxproj @@ -468,7 +468,7 @@ files = ( ); inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-frameworks.sh", + "${PODS_ROOT}/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-frameworks.sh", "${BUILT_PRODUCTS_DIR}/BiSON/BiSON.framework", "${BUILT_PRODUCTS_DIR}/SmartDeviceLink/SmartDeviceLink.framework", ); @@ -479,7 +479,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ diff --git a/Podfile b/Podfile index 9be1b29..85187a7 100644 --- a/Podfile +++ b/Podfile @@ -1,6 +1,6 @@ -platform :ios, '8.0' +platform :ios, '9.0' use_frameworks! target 'MobileWeather' do - pod 'SmartDeviceLink', '~> 6.1' + pod 'SmartDeviceLink/Swift', :git => 'https://github.com/smartdevicelink/sdl_ios.git', :branch => 'develop' end diff --git a/Podfile.lock b/Podfile.lock index e4b36e9..9789013 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,23 +1,32 @@ PODS: - - BiSON (1.1.1) - - SmartDeviceLink (6.1.0): - - BiSON (~> 1.1.1) - - SmartDeviceLink/Default (= 6.1.0) - - SmartDeviceLink/Default (6.1.0): - - BiSON (~> 1.1.1) + - BiSON (1.2.0) + - SmartDeviceLink/Default (6.6.0): + - BiSON (~> 1.2.0) + - SmartDeviceLink/Swift (6.6.0): + - BiSON (~> 1.2.0) + - SmartDeviceLink/Default DEPENDENCIES: - - SmartDeviceLink (~> 6.1) + - SmartDeviceLink/Swift (from `https://github.com/smartdevicelink/sdl_ios.git`, branch `develop`) SPEC REPOS: - https://github.com/cocoapods/specs.git: + trunk: - BiSON - - SmartDeviceLink + +EXTERNAL SOURCES: + SmartDeviceLink: + :branch: develop + :git: https://github.com/smartdevicelink/sdl_ios.git + +CHECKOUT OPTIONS: + SmartDeviceLink: + :commit: 905175db124c1c80a7ae9611b98c48d7f9b2a2bd + :git: https://github.com/smartdevicelink/sdl_ios.git SPEC CHECKSUMS: - BiSON: 2663348e6c64bfbf9cc82e4b0b3f7eed2cb3eb6b - SmartDeviceLink: 3d9f40953ade1d49e4bd5a8c0df9e6beae47e561 + BiSON: 1165a5486ee9755400b096cf374e1f03cb73a980 + SmartDeviceLink: 7971e530adc02d0540c8dba7a049a0edbebf97a1 -PODFILE CHECKSUM: 7331e3b77616651e6b674a09cf10167005ce3d11 +PODFILE CHECKSUM: d9878e8cf4f7224a831c7962f7b83b4dd3b8a7bb -COCOAPODS: 1.5.3 +COCOAPODS: 1.9.3 diff --git a/Pods/BiSON/README.md b/Pods/BiSON/README.md index 94d0897..6704a11 100644 --- a/Pods/BiSON/README.md +++ b/Pods/BiSON/README.md @@ -61,9 +61,33 @@ There is a CocoaPod for iOS, MacOS, tvOS, and watchOS. Add to your podfile: pod 'BiSON' ``` +### Android Platforms ### +There is a jCenter artifact for Android. Add the following to your `build.gradle`: + +``` +dependencies { + compile ('com.smartdevicelink:bson_java_port:1.2.0') +} +``` + ## Build and run sample program ## ```bash cd examples gcc -o sample sample.c -lbson ./sample ``` + +## Build and run unit tests ## + +Running unit tests requires `check` framework installed with pkg-config file (.pc). On Ubuntu, please install it by running: +``` +sudo apt-get install check +``` + +Once the framework is installed, invoke `configure` with `--with-tests` option, build the library then run `make check`: + +```bash +./configure --with-tests +make +make check +``` diff --git a/Pods/BiSON/src/bson_array.c b/Pods/BiSON/src/bson_array.c index 3c887bc..7567441 100644 --- a/Pods/BiSON/src/bson_array.c +++ b/Pods/BiSON/src/bson_array.c @@ -138,73 +138,163 @@ uint8_t *bson_array_to_bytes(BsonArray *array) { return bytes; } +// DEPRECATED: use bson_array_from_bytes_len() instead BsonArray bson_array_from_bytes(uint8_t *data) { - uint8_t *current = data; - int32_t size = read_int32_le(¤t); + uint8_t *p = data; + int32_t size = read_int32_le(&p); + BsonArray array; - bson_array_initialize(&array, 10); + bson_array_from_bytes_len(&array, data, size); + return array; +} + +size_t bson_array_from_bytes_len(BsonArray *output, const uint8_t *data, size_t dataSize) { + const uint8_t *current = data; + size_t remainBytes = dataSize; + int32_t size = 0; + bool parseError = false; + size_t ret; + + if (output == NULL || data == NULL || dataSize < SIZE_INT32) { + return 0; + } + size = read_int32_le((uint8_t **)¤t); + remainBytes -= SIZE_INT32; + if (size > dataSize) { + printf("Unexpected array length %i, data is only %i bytes\n", (int)size, (int)dataSize); + return 0; + } + + if (remainBytes < 1) { + return 0; + } uint8_t type = *current; - current++; + current += 1; + remainBytes -= 1; + + BsonArray array; + bson_array_initialize(&array, 10); + while (type != DOCUMENT_END) { - char *key = byte_array_to_string(current); - current += strlen(key) + 1; + char *key = NULL; + ret = read_string_len(&key, ¤t, &remainBytes); + if (ret == 0) { + parseError = true; + break; + } switch ((element_type)type) { case TYPE_DOCUMENT: { - BsonObject obj = bson_object_from_bytes(current); - bson_array_add_object(&array, &obj); - current += bson_object_size(&obj); + BsonObject obj; + ret = bson_object_from_bytes_len(&obj, current, remainBytes); + if (ret > 0) { + bson_array_add_object(&array, &obj); + current += ret; + remainBytes -= ret; + } else { + parseError = true; + } break; } case TYPE_ARRAY: { - BsonArray subArray = bson_array_from_bytes(current); - bson_array_add_array(&array, &subArray); - current += bson_array_size(&subArray); + BsonArray subArray; + ret = bson_array_from_bytes_len(&subArray, current, remainBytes); + if (ret > 0) { + bson_array_add_array(&array, &subArray); + current += ret; + remainBytes -= ret; + } else { + parseError = true; + } break; } - case TYPE_INT32: { - int32_t value = read_int32_le(¤t); - bson_array_add_int32(&array, value); + case TYPE_INT32: + if (remainBytes >= SIZE_INT32) { + int32_t value = read_int32_le((uint8_t **)¤t); + bson_array_add_int32(&array, value); + remainBytes -= SIZE_INT32; + } else { + parseError = true; + } break; - } - case TYPE_INT64: { - int64_t value = read_int64_le(¤t); - bson_array_add_int64(&array, value); + case TYPE_INT64: + if (remainBytes >= SIZE_INT64) { + int64_t value = read_int64_le((uint8_t **)¤t); + bson_array_add_int64(&array, value); + remainBytes -= SIZE_INT64; + } else { + parseError = true; + } break; - } - case TYPE_STRING: { - //String length is read first - int32_t stringLength = read_int32_le(¤t) - 1; - - char *stringVal = byte_array_to_bson_string(current, (size_t)stringLength); - bson_array_add_string(&array, stringVal); - free(stringVal); - current += stringLength + 1; + case TYPE_STRING: + // Buffer length is read first + if (remainBytes >= SIZE_INT32) { + int32_t bufferLength = read_int32_le((uint8_t **)¤t); + remainBytes -= SIZE_INT32; + + if (bufferLength <= remainBytes) { + char *stringVal = byte_array_to_bson_string((uint8_t*)current, (size_t)bufferLength - 1); + bson_array_add_string(&array, stringVal); + free(stringVal); + current += bufferLength; + remainBytes -= bufferLength; + } else { + parseError = true; + } + } else { + parseError = true; + } break; - } - case TYPE_DOUBLE: { - double value = read_double_le(¤t); - bson_array_add_double(&array, value); + case TYPE_DOUBLE: + if (remainBytes >= SIZE_DOUBLE) { + double value = read_double_le((uint8_t **)¤t); + bson_array_add_double(&array, value); + remainBytes -= SIZE_DOUBLE; + } else { + parseError = true; + } break; - } - case TYPE_BOOLEAN: { - bson_array_add_bool(&array, *current); - current++; + case TYPE_BOOLEAN: + if (remainBytes >= 1) { + uint8_t value = *current; + bson_array_add_bool(&array, value); + current += 1; + remainBytes -= 1; + } else { + parseError = true; + } break; - } default: { printf("Unrecognized BSON type: %i\n", type); + parseError = true; } } free(key); - type = *current; - current++; + + if (parseError) { + break; + } + + if (remainBytes >= 1) { + type = *current; + current += 1; + remainBytes -= 1; + } else { + parseError = true; + break; + } + } + + if (parseError) { + bson_array_deinitialize(&array); + return 0; } if (data + size != current) { - printf("Unexpected parsed array size. Expected %i, got %i\n", (int) size, (int)(current - data)); + printf("Unexpected parsed array size. Expected %i, got %i\n", (int)size, (int)(current - data)); } - return array; + *output = array; + return dataSize - remainBytes; } char *bson_array_to_string(BsonArray *array, char *out) { diff --git a/Pods/BiSON/src/bson_array.h b/Pods/BiSON/src/bson_array.h index a61498f..581447c 100644 --- a/Pods/BiSON/src/bson_array.h +++ b/Pods/BiSON/src/bson_array.h @@ -65,9 +65,24 @@ uint8_t *bson_array_to_bytes(BsonArray *array); @param data - The BSON data to be parsed @return - The BSON array created from the BSON data + + @note DEPRECATED: use bson_array_from_bytes_len() instead */ BsonArray bson_array_from_bytes(uint8_t *data); +/* + @brief Parse BSON data into an array + + @param output - Pointer to an uninitialized BsonArray. On success, it is + initialized and stores converted data. + @param data - Byte buffer that contains BSON data to be parsed + @param dataSize - Number of bytes of the data stored in the byte buffer + + @return - On success, a positive number indicating number of bytes consumed + is returned. On error, 0 is returned. +*/ +size_t bson_array_from_bytes_len(BsonArray *output, const uint8_t *data, size_t dataSize); + /* @brief Get a JSON string representation of a BSON array diff --git a/Pods/BiSON/src/bson_object.c b/Pods/BiSON/src/bson_object.c index dbba5f0..d1fa21d 100644 --- a/Pods/BiSON/src/bson_object.c +++ b/Pods/BiSON/src/bson_object.c @@ -159,73 +159,163 @@ uint8_t *bson_object_to_bytes(BsonObject *obj) { return bytes; } +// DEPRECATED: use bson_object_from_bytes_len() instead BsonObject bson_object_from_bytes(uint8_t *data) { - uint8_t *current = data; - int32_t size = read_int32_le(¤t); + uint8_t *p = data; + int32_t size = read_int32_le(&p); + BsonObject obj; - bson_object_initialize_default(&obj); + bson_object_from_bytes_len(&obj, data, size); + return obj; +} + +size_t bson_object_from_bytes_len(BsonObject *output, const uint8_t *data, size_t dataSize) { + const uint8_t *current = data; + size_t remainBytes = dataSize; + int32_t size = 0; + bool parseError = false; + size_t ret; + + if (output == NULL || data == NULL || dataSize < SIZE_INT32) { + return 0; + } + size = read_int32_le((uint8_t **)¤t); + remainBytes -= SIZE_INT32; + if (size > dataSize) { + printf("Unexpected object length %i, data is only %i bytes\n", (int)size, (int)dataSize); + return 0; + } + + if (remainBytes < 1) { + return 0; + } uint8_t type = *current; - current++; + current += 1; + remainBytes -= 1; + + BsonObject obj; + bson_object_initialize_default(&obj); + while (type != DOCUMENT_END) { - char *key = byte_array_to_string(current); - current += strlen(key) + 1; + char *key = NULL; + ret = read_string_len(&key, ¤t, &remainBytes); + if (ret == 0) { + parseError = true; + break; + } switch ((element_type)type) { case TYPE_DOCUMENT: { - BsonObject subObject = bson_object_from_bytes(current); - bson_object_put_object(&obj, key, &subObject); - current += bson_object_size(&subObject); + BsonObject subObject; + ret = bson_object_from_bytes_len(&subObject, current, remainBytes); + if (ret > 0) { + bson_object_put_object(&obj, key, &subObject); + current += ret; + remainBytes -= ret; + } else { + parseError = true; + } break; } case TYPE_ARRAY: { - BsonArray array = bson_array_from_bytes(current); - bson_object_put_array(&obj, key, &array); - current += bson_array_size(&array); + BsonArray array; + ret = bson_array_from_bytes_len(&array, current, remainBytes); + if (ret > 0) { + bson_object_put_array(&obj, key, &array); + current += ret; + remainBytes -= ret; + } else { + parseError = true; + } break; } - case TYPE_INT32: { - int32_t value = read_int32_le(¤t); - bson_object_put_int32(&obj, key, value); + case TYPE_INT32: + if (remainBytes >= SIZE_INT32) { + int32_t value = read_int32_le((uint8_t **)¤t); + bson_object_put_int32(&obj, key, value); + remainBytes -= SIZE_INT32; + } else { + parseError = true; + } break; - } - case TYPE_INT64: { - int64_t value = read_int64_le(¤t); - bson_object_put_int64(&obj, key, value); + case TYPE_INT64: + if (remainBytes >= SIZE_INT64) { + int64_t value = read_int64_le((uint8_t **)¤t); + bson_object_put_int64(&obj, key, value); + remainBytes -= SIZE_INT64; + } else { + parseError = true; + } break; - } - case TYPE_STRING: { - //String length is read first - int32_t stringLength = read_int32_le(¤t) - 1; - - char *stringVal = byte_array_to_bson_string(current, (size_t)stringLength); - bson_object_put_string(&obj, key, stringVal); - free(stringVal); - current += stringLength + 1; + case TYPE_STRING: + // Buffer length is read first + if (remainBytes >= SIZE_INT32) { + int32_t bufferLength = read_int32_le((uint8_t **)¤t); + remainBytes -= SIZE_INT32; + + if (bufferLength <= remainBytes) { + char *stringVal = byte_array_to_bson_string((uint8_t*)current, (size_t)bufferLength - 1); + bson_object_put_string(&obj, key, stringVal); + free(stringVal); + current += bufferLength; + remainBytes -= bufferLength; + } else { + parseError = true; + } + } else { + parseError = true; + } break; - } - case TYPE_DOUBLE: { - double value = read_double_le(¤t); - bson_object_put_double(&obj, key, value); + case TYPE_DOUBLE: + if (remainBytes >= SIZE_DOUBLE) { + double value = read_double_le((uint8_t **)¤t); + bson_object_put_double(&obj, key, value); + remainBytes -= SIZE_DOUBLE; + } else { + parseError = true; + } break; - } - case TYPE_BOOLEAN: { - bson_object_put_bool(&obj, key, *current); - current++; + case TYPE_BOOLEAN: + if (remainBytes >= 1) { + uint8_t value = *current; + bson_object_put_bool(&obj, key, value); + current += 1; + remainBytes -= 1; + } else { + parseError = true; + } break; - } default: { printf("Unrecognized BSON type: %i\n", type); + parseError = true; } } free(key); - type = *current; - current++; + + if (parseError) { + break; + } + + if (remainBytes >= 1) { + type = *current; + current += 1; + remainBytes -= 1; + } else { + parseError = true; + break; + } + } + + if (parseError) { + bson_object_deinitialize(&obj); + return 0; } if (data + size != current) { - printf("Unexpected parsed object size. Expected %i, got %i\n", (int) size, (int)(current - data)); + printf("Unexpected parsed object size. Expected %i, got %i\n", (int)size, (int)(current - data)); } - return obj; + *output = obj; + return dataSize - remainBytes; } char *bson_object_to_string(BsonObject *obj, char *out) { diff --git a/Pods/BiSON/src/bson_object.h b/Pods/BiSON/src/bson_object.h index 847abc8..4a62528 100644 --- a/Pods/BiSON/src/bson_object.h +++ b/Pods/BiSON/src/bson_object.h @@ -90,9 +90,24 @@ uint8_t *bson_object_to_bytes(BsonObject *obj); @param data - The BSON data to be parsed @return - The BSON object created from the BSON data + + @note DEPRECATED: use bson_object_from_bytes_len() instead */ BsonObject bson_object_from_bytes(uint8_t *data); +/* + @brief Parse BSON data into an object + + @param output - Pointer to an uninitialized BsonObject. On success, it is + initialized and stores converted data. + @param data - Byte buffer that contains BSON data to be parsed + @param dataSize - Number of bytes of the data stored in the byte buffer + + @return - On success, a positive number indicating number of bytes consumed + is returned. On error, 0 is returned. +*/ +size_t bson_object_from_bytes_len(BsonObject *output, const uint8_t *data, size_t dataSize); + /* @brief Get a JSON string representation of a BSON object diff --git a/Pods/BiSON/src/bson_util.c b/Pods/BiSON/src/bson_util.c index 8fa0572..6734b29 100644 --- a/Pods/BiSON/src/bson_util.c +++ b/Pods/BiSON/src/bson_util.c @@ -42,7 +42,7 @@ int32_t read_int32_le(uint8_t **bytes) { } int64_t read_int64_le(uint8_t **bytes) { - int32_t value = 0; + int64_t value = 0; int i = 0; for (i = SIZE_INT64 - 1; i >= 0; i--) { value <<= 8; @@ -68,6 +68,27 @@ double read_double_le(uint8_t **bytes) { return unionVal.value; } +size_t read_string_len(char **output, const uint8_t **data, size_t *dataSize) { + size_t i = 0; + for (i = 0; i < *dataSize; i++) { + if ((*data)[i] == 0x00) { + break; + } + } + if (i == *dataSize) { + // '\0' is not found + return 0; + } + + *output = byte_array_to_bson_string((uint8_t *)*data, i); + + // add 1 since we also consumed '\0' at the end + size_t bytesRead = i + 1; + (*data) += bytesRead; + *dataSize -= bytesRead; + return bytesRead; +} + uint8_t *string_to_byte_array(char *stringVal) { size_t length = strlen(stringVal); uint8_t *bytes = malloc(length + 1); diff --git a/Pods/BiSON/src/bson_util.h b/Pods/BiSON/src/bson_util.h index 862c69f..012898b 100644 --- a/Pods/BiSON/src/bson_util.h +++ b/Pods/BiSON/src/bson_util.h @@ -115,6 +115,24 @@ int64_t read_int64_le(uint8_t **bytes); */ double read_double_le(uint8_t **bytes); +/* + @brief Read a string from given buffer and return number of bytes read. + Update "data" and "dataSize" parameters on success. + + @param output - Pointer to a char* value. On success, the value is updated to + point to a malloc()-ed buffer that stores the output. + Caller must call free() to release the buffer after use. + @param data - Pointer to the byte buffer from which to read. On success, this + value will be advanced past the value that was read. + @param dataSize - Pointer to a value that indicates the size of data in the + byte buffer. On success, this value will be decreased to + indicate the remaining data size in the buffer. + + @return - On success, a positive number of bytes read (including last '\0') + is returned. On failure, 0 is returned. +*/ +size_t read_string_len(char **output, const uint8_t **data, size_t *dataSize); + /* @brief Convert the give UTF-8 string into a byte array diff --git a/Pods/Local Podspecs/SmartDeviceLink.podspec.json b/Pods/Local Podspecs/SmartDeviceLink.podspec.json index efe11b8..8d40311 100644 --- a/Pods/Local Podspecs/SmartDeviceLink.podspec.json +++ b/Pods/Local Podspecs/SmartDeviceLink.podspec.json @@ -1,6 +1,6 @@ { "name": "SmartDeviceLink", - "version": "5.1.1", + "version": "6.6.0", "summary": "Connect your app with cars!", "homepage": "https://github.com/smartdevicelink/SmartDeviceLink-iOS", "license": { @@ -15,28 +15,27 @@ }, "dependencies": { "BiSON": [ - "~> 1.1.1" + "~> 1.2.0" ] }, "source": { "git": "https://github.com/smartdevicelink/sdl_ios.git", - "tag": "5.1.1" + "tag": "6.6.0" }, "requires_arc": true, - "resource_bundles": { - "SmartDeviceLink": [ - "SmartDeviceLink/Assets/**/*" - ] - }, + "swift_versions": "5.1", "default_subspecs": "Default", "subspecs": [ { "name": "Default", "source_files": "SmartDeviceLink/*.{h,m}", + "resource_bundles": { + "SmartDeviceLink": [ + "SmartDeviceLink/Assets/**/*" + ] + }, "public_header_files": [ "SmartDeviceLink/NSNumber+NumberType.h", - "SmartDeviceLink/SDLAbstractProtocol.h", - "SmartDeviceLink/SDLAbstractTransport.h", "SmartDeviceLink/SDLAddCommand.h", "SmartDeviceLink/SDLAddCommandResponse.h", "SmartDeviceLink/SDLAddSubMenu.h", @@ -46,14 +45,24 @@ "SmartDeviceLink/SDLAlertManeuver.h", "SmartDeviceLink/SDLAlertManeuverResponse.h", "SmartDeviceLink/SDLAlertResponse.h", + "SmartDeviceLink/SDLAppServiceCapability.h", + "SmartDeviceLink/SDLAppServiceData.h", + "SmartDeviceLink/SDLAppServiceManifest.h", + "SmartDeviceLink/SDLAppServiceRecord.h", + "SmartDeviceLink/SDLAppServicesCapabilities.h", + "SmartDeviceLink/SDLAppServiceType.h", "SmartDeviceLink/SDLButtonPressResponse.h", "SmartDeviceLink/SDLAmbientLightStatus.h", "SmartDeviceLink/SDLAppHMIType.h", "SmartDeviceLink/SDLAppInfo.h", "SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h", "SmartDeviceLink/SDLArtwork.h", + "SmartDeviceLink/SDLAudioControlData.h", + "SmartDeviceLink/SDLAudioControlCapabilities.h", "SmartDeviceLink/SDLAudioPassThruCapabilities.h", + "SmartDeviceLink/SDLAudioFile.h", "SmartDeviceLink/SDLAudioStreamingState.h", + "SmartDeviceLink/SDLAudioStreamingIndicator.h", "SmartDeviceLink/SDLAudioStreamManager.h", "SmartDeviceLink/SDLAudioStreamManagerDelegate.h", "SmartDeviceLink/SDLStreamingAudioManagerType.h", @@ -66,20 +75,30 @@ "SmartDeviceLink/SDLButtonName.h", "SmartDeviceLink/SDLButtonPress.h", "SmartDeviceLink/SDLButtonPressMode.h", + "SmartDeviceLink/SDLCancelInteraction.h", + "SmartDeviceLink/SDLCancelInteractionResponse.h", "SmartDeviceLink/SDLCarModeStatus.h", "SmartDeviceLink/SDLCarWindowViewController.h", "SmartDeviceLink/SDLChangeRegistration.h", "SmartDeviceLink/SDLChangeRegistrationResponse.h", "SmartDeviceLink/SDLCharacterSet.h", "SmartDeviceLink/SDLChoice.h", + "SmartDeviceLink/SDLChoiceCell.h", + "SmartDeviceLink/SDLChoiceSet.h", + "SmartDeviceLink/SDLChoiceSetDelegate.h", "SmartDeviceLink/SDLClimateControlCapabilities.h", "SmartDeviceLink/SDLClimateControlData.h", + "SmartDeviceLink/SDLCloseApplication.h", + "SmartDeviceLink/SDLCloseApplicationResponse.h", + "SmartDeviceLink/SDLCloudAppProperties.h", "SmartDeviceLink/SDLClusterModeStatus.h", "SmartDeviceLink/SDLCompassDirection.h", "SmartDeviceLink/SDLComponentVolumeStatus.h", "SmartDeviceLink/SDLConfiguration.h", "SmartDeviceLink/SDLCreateInteractionChoiceSet.h", "SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h", + "SmartDeviceLink/SDLCreateWindow.h", + "SmartDeviceLink/SDLCreateWindowResponse.h", "SmartDeviceLink/SDLDateTime.h", "SmartDeviceLink/SDLDefrostZone.h", "SmartDeviceLink/SDLDeleteCommand.h", @@ -90,6 +109,8 @@ "SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h", "SmartDeviceLink/SDLDeleteSubMenu.h", "SmartDeviceLink/SDLDeleteSubMenuResponse.h", + "SmartDeviceLink/SDLDeleteWindow.h", + "SmartDeviceLink/SDLDeleteWindowResponse.h", "SmartDeviceLink/SDLDeliveryMode.h", "SmartDeviceLink/SDLDeviceInfo.h", "SmartDeviceLink/SDLDeviceLevelStatus.h", @@ -100,28 +121,47 @@ "SmartDeviceLink/SDLDialNumberResponse.h", "SmartDeviceLink/SDLDIDResult.h", "SmartDeviceLink/SDLDimension.h", + "SmartDeviceLink/SDLDirection.h", + "SmartDeviceLink/SDLDisplayCapability.h", "SmartDeviceLink/SDLDisplayCapabilities.h", + "SmartDeviceLink/SDLDisplayMode.h", "SmartDeviceLink/SDLDisplayType.h", + "SmartDeviceLink/SDLDistanceUnit.h", "SmartDeviceLink/SDLDriverDistractionState.h", "SmartDeviceLink/SDLECallConfirmationStatus.h", "SmartDeviceLink/SDLECallInfo.h", + "SmartDeviceLink/SDLElectronicParkBrakeStatus.h", + "SmartDeviceLink/SDLEncryptionConfiguration.h", "SmartDeviceLink/SDLEmergencyEvent.h", "SmartDeviceLink/SDLEmergencyEventType.h", "SmartDeviceLink/SDLEncodedSyncPData.h", "SmartDeviceLink/SDLEncodedSyncPDataResponse.h", "SmartDeviceLink/SDLEndAudioPassThru.h", "SmartDeviceLink/SDLEndAudioPassThruResponse.h", + "SmartDeviceLink/SDLEqualizerSettings.h", "SmartDeviceLink/SDLEnum.h", "SmartDeviceLink/SDLErrorConstants.h", "SmartDeviceLink/SDLFile.h", "SmartDeviceLink/SDLFileManager.h", + "SmartDeviceLink/SDLFileManagerConfiguration.h", "SmartDeviceLink/SDLFileManagerConstants.h", "SmartDeviceLink/SDLFileType.h", "SmartDeviceLink/SDLFuelCutoffStatus.h", + "SmartDeviceLink/SDLFuelRange.h", + "SmartDeviceLink/SDLFuelType.h", + "SmartDeviceLink/SDLFunctionID.h", "SmartDeviceLink/SDLGenericResponse.h", + "SmartDeviceLink/SDLGetAppServiceData.h", + "SmartDeviceLink/SDLGetAppServiceDataResponse.h", "SmartDeviceLink/SDLGetDTCs.h", - "SmartDeviceLink/SDLGetInteriorVehicleData.h", + "SmartDeviceLink/SDLGetCloudAppProperties.h", + "SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h", "SmartDeviceLink/SDLGetDTCsResponse.h", + "SmartDeviceLink/SDLGetFile.h", + "SmartDeviceLink/SDLGetFileResponse.h", + "SmartDeviceLink/SDLGetInteriorVehicleData.h", + "SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h", + "SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h", "SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h", "SmartDeviceLink/SDLGetSystemCapability.h", "SmartDeviceLink/SDLGetSystemCapabilityResponse.h", @@ -131,14 +171,16 @@ "SmartDeviceLink/SDLGetWaypointsResponse.h", "SmartDeviceLink/SDLGlobalProperty.h", "SmartDeviceLink/SDLGPSData.h", + "SmartDeviceLink/SDLGrid.h", "SmartDeviceLink/SDLHapticRect.h", "SmartDeviceLink/SDLHeadLampStatus.h", "SmartDeviceLink/SDLHMICapabilities.h", "SmartDeviceLink/SDLHMILevel.h", "SmartDeviceLink/SDLHMIPermissions.h", + "SmartDeviceLink/SDLHMISettingsControlCapabilities.h", + "SmartDeviceLink/SDLHMISettingsControlData.h", "SmartDeviceLink/SDLHMIZoneCapabilities.h", - "SmartDeviceLink/SDLIAPSessionDelegate.h", - "SmartDeviceLink/SDLIAPTransport.h", + "SmartDeviceLink/SDLHybridAppPreference.h", "SmartDeviceLink/SDLIgnitionStableStatus.h", "SmartDeviceLink/SDLIgnitionStatus.h", "SmartDeviceLink/SDLImage.h", @@ -147,6 +189,7 @@ "SmartDeviceLink/SDLImageResolution.h", "SmartDeviceLink/SDLImageType.h", "SmartDeviceLink/SDLInteractionMode.h", + "SmartDeviceLink/SDLKeyboardDelegate.h", "SmartDeviceLink/SDLKeyboardEvent.h", "SmartDeviceLink/SDLKeyboardLayout.h", "SmartDeviceLink/SDLKeyboardProperties.h", @@ -155,6 +198,12 @@ "SmartDeviceLink/SDLLayoutMode.h", "SmartDeviceLink/SDLLifecycleConfiguration.h", "SmartDeviceLink/SDLLifecycleConfigurationUpdate.h", + "SmartDeviceLink/SDLLightCapabilities.h", + "SmartDeviceLink/SDLLightControlCapabilities.h", + "SmartDeviceLink/SDLLightControlData.h", + "SmartDeviceLink/SDLLightName.h", + "SmartDeviceLink/SDLLightState.h", + "SmartDeviceLink/SDLLightStatus.h", "SmartDeviceLink/SDLListFiles.h", "SmartDeviceLink/SDLListFilesResponse.h", "SmartDeviceLink/SDLLocationCoordinate.h", @@ -176,17 +225,36 @@ "SmartDeviceLink/SDLMaintenanceModeStatus.h", "SmartDeviceLink/SDLManager.h", "SmartDeviceLink/SDLManagerDelegate.h", + "SmartDeviceLink/SDLMassageCushionFirmness.h", + "SmartDeviceLink/SDLMassageModeData.h", + "SmartDeviceLink/SDLMassageCushion.h", + "SmartDeviceLink/SDLMassageMode.h", + "SmartDeviceLink/SDLMassageZone.h", "SmartDeviceLink/SDLMediaClockFormat.h", + "SmartDeviceLink/SDLMediaServiceData.h", + "SmartDeviceLink/SDLMediaServiceManifest.h", + "SmartDeviceLink/SDLMediaType.h", + "SmartDeviceLink/SDLMenuCell.h", + "SmartDeviceLink/SDLMenuConfiguration.h", + "SmartDeviceLink/SDLMenuLayout.h", + "SmartDeviceLink/SDLMenuManagerConstants.h", "SmartDeviceLink/SDLMenuParams.h", "SmartDeviceLink/SDLMetadataTags.h", "SmartDeviceLink/SDLMetadataType.h", "SmartDeviceLink/SDLModuleData.h", + "SmartDeviceLink/SDLModuleInfo.h", "SmartDeviceLink/SDLModuleType.h", "SmartDeviceLink/SDLMyKey.h", + "SmartDeviceLink/SDLNavigationAction.h", "SmartDeviceLink/SDLNavigationCapability.h", + "SmartDeviceLink/SDLNavigationInstruction.h", + "SmartDeviceLink/SDLNavigationJunction.h", + "SmartDeviceLink/SDLNavigationServiceData.h", + "SmartDeviceLink/SDLNavigationServiceManifest.h", "SmartDeviceLink/SDLNotificationConstants.h", "SmartDeviceLink/SDLOasisAddress.h", "SmartDeviceLink/SDLOnAppInterfaceUnregistered.h", + "SmartDeviceLink/SDLOnAppServiceData.h", "SmartDeviceLink/SDLOnAudioPassThru.h", "SmartDeviceLink/SDLOnButtonEvent.h", "SmartDeviceLink/SDLOnButtonPress.h", @@ -200,18 +268,23 @@ "SmartDeviceLink/SDLOnLanguageChange.h", "SmartDeviceLink/SDLOnLockScreenStatus.h", "SmartDeviceLink/SDLOnPermissionsChange.h", + "SmartDeviceLink/SDLOnRCStatus.h", "SmartDeviceLink/SDLOnSyncPData.h", + "SmartDeviceLink/SDLOnSystemCapabilityUpdated.h", "SmartDeviceLink/SDLOnSystemRequest.h", "SmartDeviceLink/SDLOnTBTClientState.h", "SmartDeviceLink/SDLOnTouchEvent.h", "SmartDeviceLink/SDLOnVehicleData.h", "SmartDeviceLink/SDLOnWayPointChange.h", "SmartDeviceLink/SDLParameterPermissions.h", + "SmartDeviceLink/SDLPerformAppServiceInteraction.h", + "SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h", "SmartDeviceLink/SDLPerformAudioPassThru.h", "SmartDeviceLink/SDLPerformAudioPassThruResponse.h", "SmartDeviceLink/SDLPerformInteraction.h", "SmartDeviceLink/SDLPerformInteractionResponse.h", "SmartDeviceLink/SDLPermissionConstants.h", + "SmartDeviceLink/SDLPermissionElement.h", "SmartDeviceLink/SDLPermissionItem.h", "SmartDeviceLink/SDLPermissionManager.h", "SmartDeviceLink/SDLPermissionStatus.h", @@ -220,23 +293,21 @@ "SmartDeviceLink/SDLPowerModeQualificationStatus.h", "SmartDeviceLink/SDLPowerModeStatus.h", "SmartDeviceLink/SDLPredefinedLayout.h", + "SmartDeviceLink/SDLPredefinedWindows.h", "SmartDeviceLink/SDLPrerecordedSpeech.h", "SmartDeviceLink/SDLPresetBankCapabilities.h", "SmartDeviceLink/SDLPrimaryAudioSource.h", "SmartDeviceLink/SDLPRNDL.h", - "SmartDeviceLink/SDLProtocol.h", - "SmartDeviceLink/SDLProtocolHeader.h", - "SmartDeviceLink/SDLProtocolListener.h", - "SmartDeviceLink/SDLProtocolMessage.h", - "SmartDeviceLink/SDLProxy.h", - "SmartDeviceLink/SDLProxyFactory.h", - "SmartDeviceLink/SDLProxyListener.h", + "SmartDeviceLink/SDLProtocolConstants.h", + "SmartDeviceLink/SDLPublishAppService.h", + "SmartDeviceLink/SDLPublishAppServiceResponse.h", "SmartDeviceLink/SDLPutFile.h", "SmartDeviceLink/SDLPutFileResponse.h", "SmartDeviceLink/SDLRadioBand.h", "SmartDeviceLink/SDLRadioControlCapabilities.h", "SmartDeviceLink/SDLRadioControlData.h", "SmartDeviceLink/SDLRadioState.h", + "SmartDeviceLink/SDLRDSData.h", "SmartDeviceLink/SDLReadDID.h", "SmartDeviceLink/SDLRectangle.h", "SmartDeviceLink/SDLReadDIDResponse.h", @@ -244,16 +315,21 @@ "SmartDeviceLink/SDLRegisterAppInterface.h", "SmartDeviceLink/SDLRegisterAppInterfaceResponse.h", "SmartDeviceLink/SDLRemoteControlCapabilities.h", + "SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h", + "SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h", "SmartDeviceLink/SDLRequestType.h", "SmartDeviceLink/SDLResetGlobalProperties.h", "SmartDeviceLink/SDLResetGlobalPropertiesResponse.h", "SmartDeviceLink/SDLResult.h", - "SmartDeviceLink/SDLRDSData.h", + "SmartDeviceLink/SDLRGBColor.h", + "SmartDeviceLink/SDLRPCFunctionNames.h", "SmartDeviceLink/SDLRPCMessage.h", "SmartDeviceLink/SDLRPCMessageType.h", "SmartDeviceLink/SDLRPCNotification.h", "SmartDeviceLink/SDLRPCNotificationNotification.h", + "SmartDeviceLink/SDLRPCPermissionStatus.h", "SmartDeviceLink/SDLRPCRequest.h", + "SmartDeviceLink/SDLRPCRequestNotification.h", "SmartDeviceLink/SDLRPCResponse.h", "SmartDeviceLink/SDLRPCResponseNotification.h", "SmartDeviceLink/SDLRPCStruct.h", @@ -262,13 +338,23 @@ "SmartDeviceLink/SDLScreenManager.h", "SmartDeviceLink/SDLScrollableMessage.h", "SmartDeviceLink/SDLScrollableMessageResponse.h", + "SmartDeviceLink/SDLSeatControlCapabilities.h", + "SmartDeviceLink/SDLSeatControlData.h", + "SmartDeviceLink/SDLSeatLocation.h", + "SmartDeviceLink/SDLSeatLocationCapability.h", + "SmartDeviceLink/SDLSeatMemoryAction.h", + "SmartDeviceLink/SDLSeatMemoryActionType.h", "SmartDeviceLink/SDLSecurityType.h", "SmartDeviceLink/SDLSendHapticData.h", "SmartDeviceLink/SDLSendHapticDataResponse.h", "SmartDeviceLink/SDLSendLocation.h", "SmartDeviceLink/SDLSendLocationResponse.h", + "SmartDeviceLink/SDLServiceEncryptionDelegate.h", + "SmartDeviceLink/SDLServiceUpdateReason.h", "SmartDeviceLink/SDLSetAppIcon.h", "SmartDeviceLink/SDLSetAppIconResponse.h", + "SmartDeviceLink/SDLSetCloudAppProperties.h", + "SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h", "SmartDeviceLink/SDLSetDisplayLayout.h", "SmartDeviceLink/SDLSetDisplayLayoutResponse.h", "SmartDeviceLink/SDLSetGlobalProperties.h", @@ -278,10 +364,13 @@ "SmartDeviceLink/SDLSetMediaClockTimer.h", "SmartDeviceLink/SDLSetMediaClockTimerResponse.h", "SmartDeviceLink/SDLShow.h", + "SmartDeviceLink/SDLShowAppMenu.h", + "SmartDeviceLink/SDLShowAppMenuResponse.h", "SmartDeviceLink/SDLShowConstantTBT.h", "SmartDeviceLink/SDLShowConstantTBTResponse.h", "SmartDeviceLink/SDLShowResponse.h", "SmartDeviceLink/SDLSingleTireStatus.h", + "SmartDeviceLink/SDLSISData.h", "SmartDeviceLink/SDLSlider.h", "SmartDeviceLink/SDLSliderResponse.h", "SmartDeviceLink/SDLSoftButton.h", @@ -293,26 +382,35 @@ "SmartDeviceLink/SDLSpeakResponse.h", "SmartDeviceLink/SDLSpeechCapabilities.h", "SmartDeviceLink/SDLStartTime.h", + "SmartDeviceLink/SDLStaticIconName.h", + "SmartDeviceLink/SDLStationIDNumber.h", "SmartDeviceLink/SDLStreamingMediaConfiguration.h", "SmartDeviceLink/SDLStreamingMediaManager.h", "SmartDeviceLink/SDLStreamingMediaManagerConstants.h", + "SmartDeviceLink/SDLStreamingMediaManagerDataSource.h", + "SmartDeviceLink/SDLStreamingVideoScaleManager.h", "SmartDeviceLink/SDLSubscribeButton.h", "SmartDeviceLink/SDLSubscribeButtonResponse.h", "SmartDeviceLink/SDLSubscribeVehicleData.h", "SmartDeviceLink/SDLSubscribeVehicleDataResponse.h", "SmartDeviceLink/SDLSubscribeWaypoints.h", "SmartDeviceLink/SDLSubscribeWaypointsResponse.h", + "SmartDeviceLink/SDLSupportedSeat.h", "SmartDeviceLink/SDLSyncMsgVersion.h", + "SmartDeviceLink/SDLMsgVersion.h", "SmartDeviceLink/SDLSyncPData.h", "SmartDeviceLink/SDLSyncPDataResponse.h", "SmartDeviceLink/SDLSystemAction.h", "SmartDeviceLink/SDLSystemCapability.h", + "SmartDeviceLink/SDLSystemCapabilityManager.h", "SmartDeviceLink/SDLSystemCapabilityType.h", "SmartDeviceLink/SDLSystemContext.h", + "SmartDeviceLink/SDLSystemRequest.h", "SmartDeviceLink/SDLTBTState.h", "SmartDeviceLink/SDLTemperature.h", "SmartDeviceLink/SDLTemperatureUnit.h", - "SmartDeviceLink/SDLTCPTransport.h", + "SmartDeviceLink/SDLTemplateConfiguration.h", + "SmartDeviceLink/SDLTemplateColorScheme.h", "SmartDeviceLink/SDLTextAlignment.h", "SmartDeviceLink/SDLTextField.h", "SmartDeviceLink/SDLTextFieldName.h", @@ -325,10 +423,13 @@ "SmartDeviceLink/SDLTouchManager.h", "SmartDeviceLink/SDLTouchManagerDelegate.h", "SmartDeviceLink/SDLTouchType.h", - "SmartDeviceLink/SDLTransportDelegate.h", + "SmartDeviceLink/SDLTPMS.h", "SmartDeviceLink/SDLTriggerSource.h", "SmartDeviceLink/SDLTTSChunk.h", "SmartDeviceLink/SDLTurn.h", + "SmartDeviceLink/SDLTurnSignal.h", + "SmartDeviceLink/SDLUnpublishAppService.h", + "SmartDeviceLink/SDLUnpublishAppServiceResponse.h", "SmartDeviceLink/SDLUnregisterAppInterface.h", "SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h", "SmartDeviceLink/SDLUnsubscribeButton.h", @@ -349,15 +450,25 @@ "SmartDeviceLink/SDLVehicleDataType.h", "SmartDeviceLink/SDLVentilationMode.h", "SmartDeviceLink/SDLVehicleType.h", + "SmartDeviceLink/SDLVersion.h", "SmartDeviceLink/SDLVideoStreamingCapability.h", "SmartDeviceLink/SDLVideoStreamingCodec.h", "SmartDeviceLink/SDLVideoStreamingFormat.h", "SmartDeviceLink/SDLVideoStreamingProtocol.h", + "SmartDeviceLink/SDLVideoStreamingState.h", + "SmartDeviceLink/SDLVoiceCommand.h", "SmartDeviceLink/SDLVrCapabilities.h", "SmartDeviceLink/SDLVrHelpItem.h", "SmartDeviceLink/SDLWarningLightStatus.h", "SmartDeviceLink/SDLWayPointType.h", + "SmartDeviceLink/SDLWeatherAlert.h", + "SmartDeviceLink/SDLWeatherData.h", + "SmartDeviceLink/SDLWeatherServiceData.h", + "SmartDeviceLink/SDLWeatherServiceManifest.h", "SmartDeviceLink/SDLWiperStatus.h", + "SmartDeviceLink/SDLWindowCapability.h", + "SmartDeviceLink/SDLWindowType.h", + "SmartDeviceLink/SDLWindowTypeCapabilities.h", "SmartDeviceLink/SmartDeviceLink.h" ] }, @@ -370,5 +481,6 @@ }, "source_files": "SmartDeviceLinkSwift/*.swift" } - ] + ], + "swift_version": "5.1" } diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index e4b36e9..9789013 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -1,23 +1,32 @@ PODS: - - BiSON (1.1.1) - - SmartDeviceLink (6.1.0): - - BiSON (~> 1.1.1) - - SmartDeviceLink/Default (= 6.1.0) - - SmartDeviceLink/Default (6.1.0): - - BiSON (~> 1.1.1) + - BiSON (1.2.0) + - SmartDeviceLink/Default (6.6.0): + - BiSON (~> 1.2.0) + - SmartDeviceLink/Swift (6.6.0): + - BiSON (~> 1.2.0) + - SmartDeviceLink/Default DEPENDENCIES: - - SmartDeviceLink (~> 6.1) + - SmartDeviceLink/Swift (from `https://github.com/smartdevicelink/sdl_ios.git`, branch `develop`) SPEC REPOS: - https://github.com/cocoapods/specs.git: + trunk: - BiSON - - SmartDeviceLink + +EXTERNAL SOURCES: + SmartDeviceLink: + :branch: develop + :git: https://github.com/smartdevicelink/sdl_ios.git + +CHECKOUT OPTIONS: + SmartDeviceLink: + :commit: 905175db124c1c80a7ae9611b98c48d7f9b2a2bd + :git: https://github.com/smartdevicelink/sdl_ios.git SPEC CHECKSUMS: - BiSON: 2663348e6c64bfbf9cc82e4b0b3f7eed2cb3eb6b - SmartDeviceLink: 3d9f40953ade1d49e4bd5a8c0df9e6beae47e561 + BiSON: 1165a5486ee9755400b096cf374e1f03cb73a980 + SmartDeviceLink: 7971e530adc02d0540c8dba7a049a0edbebf97a1 -PODFILE CHECKSUM: 7331e3b77616651e6b674a09cf10167005ce3d11 +PODFILE CHECKSUM: d9878e8cf4f7224a831c7962f7b83b4dd3b8a7bb -COCOAPODS: 1.5.3 +COCOAPODS: 1.9.3 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 178c48e..ceeeade 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,4097 +7,4867 @@ objects = { /* Begin PBXBuildFile section */ - 003F2A9389ABE0BBA874152D87D81FE9 /* SDLAppHMIType.h in Headers */ = {isa = PBXBuildFile; fileRef = D035F9030267FD1C5A40D1D1D91D8B01 /* SDLAppHMIType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 012B3ABCF4946FE9589E5FC943EF26CD /* SDLSliderResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 758828EDB3A486DAC7555C09C9C7A075 /* SDLSliderResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 015A9931D5C5DAD3DE552D44D27BB5AA /* SDLTextAlignment.h in Headers */ = {isa = PBXBuildFile; fileRef = 87AE3D09CF88341F47674088B1C54CA1 /* SDLTextAlignment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 01AF4CA766F62C8C5C54073C21E0FD7A /* SDLControlFramePayloadRPCStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = C80DF22B5D28FCE41F973EA350DED295 /* SDLControlFramePayloadRPCStartService.m */; }; - 01E264376DA7D789A6C586CC33D3C4C6 /* SDLAmbientLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = CF3E1C96AFEC7BF390F28147CA4DD532 /* SDLAmbientLightStatus.m */; }; - 01F70F292D4F11D03C358ACC1E2DAC8D /* SDLMenuCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 03AA9FAC1C42C80A5F0956A6B96548A9 /* SDLMenuCell.m */; }; - 021AB76D29434458BB6B0DCE77D21101 /* SDLTemplateColorScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 55E755AC3C038CDDF96EE7AF1ED8DD5F /* SDLTemplateColorScheme.m */; }; - 026E2E7BA3A540EBA8D0832D920C2B18 /* SDLUpdateTurnList.h in Headers */ = {isa = PBXBuildFile; fileRef = 7369D4C540A1A6DCB0914BE60C051602 /* SDLUpdateTurnList.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 031CAC2ADCDA99AB8EE5132902ABC87E /* SDLGPSData.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B04648E1797EF5AE9C7A3A0EA1503FC /* SDLGPSData.m */; }; - 036C103636557CFD8B87DB584E23529C /* SDLListFilesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D684A0F936240CFF376CBBA6E49A8F0 /* SDLListFilesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 03AFC841308A9314BFE45A87E7D12155 /* SDLLocationDetails.m in Sources */ = {isa = PBXBuildFile; fileRef = D67F7910E014171EF4A571F96DEED110 /* SDLLocationDetails.m */; }; - 04A31A6BC5E931600DCC014081A75187 /* SDLUnsubscribeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DF56FE670C445485FAD9CE424BBD979 /* SDLUnsubscribeButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 04CCC763BF97B9B5CD4E91D041427E7A /* SDLSystemAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 94DAE9A99EFED4688FE48863309B3153 /* SDLSystemAction.m */; }; - 0571E0DE81FA95CEFED6F44A914BD482 /* NSMapTable+Subscripting.h in Headers */ = {isa = PBXBuildFile; fileRef = 58B239BE8E1A3830C8DF443CC8EA4305 /* NSMapTable+Subscripting.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 057F789BB0FF5E0665773379E05E7196 /* SDLDisplayMode.m in Sources */ = {isa = PBXBuildFile; fileRef = E5731FC6EAD9635A7EDD2F725FC4966C /* SDLDisplayMode.m */; }; - 058E093A87092E9F8CFDD67549A024E8 /* SDLButtonPress.h in Headers */ = {isa = PBXBuildFile; fileRef = D189D97BE1019749C8B66808AB77A27B /* SDLButtonPress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 05DE0CE31E8EF0D73230A47C79E5DED1 /* SDLResponseDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 300ED618507FFF56590E18E5EF202190 /* SDLResponseDispatcher.m */; }; - 05FB1FD36DAE4750C26E6F3EE1AE94EA /* SDLVoiceCommandManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 95CBE58570B12C86B075BF40F1D826A5 /* SDLVoiceCommandManager.m */; }; - 0621820D4B49EAC554475DCBB4960D32 /* SDLTemperatureUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = 489D8CDA867A051C8CB4598886BC2C04 /* SDLTemperatureUnit.m */; }; - 0656439CE3C4359D7352910005E8BB73 /* SDLOnLanguageChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 869B8F548364045C3602F3A99BAB876A /* SDLOnLanguageChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0702B0DF5EBA25FE409412BD730CDE6D /* SDLOnEncodedSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = 736669CDE9458CABAE6AC40FF3A7C523 /* SDLOnEncodedSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 071358FCEBD7244CFC1C47E3B728FD3F /* SDLVrCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 74C1219630B98AA4BC12B5245AA5CFB1 /* SDLVrCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0717BF49DDC3867CD2FDBCD81323A243 /* SDLDialNumberResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = CAE15697C2B379B5AD4250AD454DCC9F /* SDLDialNumberResponse.m */; }; - 073092D66C7A45B78F01D6F5BAD82BA1 /* SDLOnPermissionsChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E6BD9A54F3B696772751E561C7CA26F /* SDLOnPermissionsChange.m */; }; - 076A7957F5EDB9C2D34F2DEDF72E2913 /* SDLControlFramePayloadVideoStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5B149DB553CC25C1ECE0141F2CAB44 /* SDLControlFramePayloadVideoStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 07992A606FAD1F7083358DCA54121B87 /* SDLChangeRegistrationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BEA6AFC834E233B564947D27D26EFA1 /* SDLChangeRegistrationResponse.m */; }; - 07D3F1E805ECDD0CCAB66FB862AB8EA9 /* SDLDIDResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B798F817D25B6AC4EB2558AD624BFAC /* SDLDIDResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 083BB0E418F625B54EBFFF9758F7AF1D /* SDLTireStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 294E4A7904CB881EF7321E92C367DCC5 /* SDLTireStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 09AFF0F1484FE0DDAE1141C6DAF770B2 /* SDLPhoneCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 3ED24853CBACABF3D277A172CDD9E2F6 /* SDLPhoneCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0A7DD843FDC6B6AC4D05C4F6DEF98F1B /* SDLResetGlobalPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D9C79FCE97A529AF5665757AE522244 /* SDLResetGlobalPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0A840116FACAC91080F2AAA3B46FA324 /* SDLSupportedSeat.h in Headers */ = {isa = PBXBuildFile; fileRef = ED9C3F415373C1FEC38B39E0C3E6A57B /* SDLSupportedSeat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0AFCF277B445FBBDD394315DCF739CDA /* SDLVoiceCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 97E65B30099BCC7FCE9EE35C4557EFB7 /* SDLVoiceCommand.m */; }; - 0B2BA4773B46F54A3FAFF496DBB0C22B /* SDLCharacterSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 30A1C0974FFE84B3A299752EEA455C1B /* SDLCharacterSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B6AF6FF70CEFC947736C354315B0BED /* SDLSecondaryTransportManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 85FB37CFF9AA36FAC92BFD1A5209922B /* SDLSecondaryTransportManager.m */; }; - 0B6EB8772E0D15EAF628AD3F5C4C6B2F /* SDLTextAlignment.m in Sources */ = {isa = PBXBuildFile; fileRef = 1591790007AA3BAC73DAF98A1189DB79 /* SDLTextAlignment.m */; }; - 0B7F66B4664A408860F0AF0E101A7227 /* SDLSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 544E15AB2D6A32CDC138E9D68B84226E /* SDLSyncPData.m */; }; - 0C1066FA2F180C4335C3C6E7E0E512D6 /* SDLControlFramePayloadRPCStartService.h in Headers */ = {isa = PBXBuildFile; fileRef = 96F0A1F8DFCA64ED227E5510C6C3B7E6 /* SDLControlFramePayloadRPCStartService.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0C17C9D742C4AB41CAD90B0A5CDC8A6A /* SDLDisplayCapabilities+ShowManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = F455B422DAF86C1424C82B369C3A8B08 /* SDLDisplayCapabilities+ShowManagerExtensions.m */; }; - 0C85798D69FDDC43CB144B2249D68973 /* SDLSingleTireStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 44F6704B5CD4628340637ED433FA5BD9 /* SDLSingleTireStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0CF2E4CE8AC7CAEE2AE1EB464B39B27C /* SDLSetInteriorVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D8DEE8193F871BAF8FB10C6766E58037 /* SDLSetInteriorVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0D8709506F394E503E05C5FAF3ABBFA9 /* SDLButtonCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F97703AD5D975F96461DFEF2BD9BE22 /* SDLButtonCapabilities.m */; }; - 0DAD037A68C669CFE3EBEBC37D801AC9 /* SDLSetAppIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = 60AC85822D7B2986864CEF6F1951ED33 /* SDLSetAppIcon.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0E2509ED429DFEEBE4D2B4291C1A5647 /* SDLVehicleType.m in Sources */ = {isa = PBXBuildFile; fileRef = D682EE4635A0FD228944E10BD3DBD2D3 /* SDLVehicleType.m */; }; - 0E6F99FA384B285DFBA13427F6695DCF /* SDLLockScreenViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E9F83398A1E87F1CD45B5596A5D81AE4 /* SDLLockScreenViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0ED96B8030E489BC011881CBD27DCE0B /* SDLDisplayMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 9520607250C0D896688E594437D291D7 /* SDLDisplayMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0F2C3722EE24EF668D5E91BF9F6168F1 /* SDLStreamingVideoLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F06149E7100A56D1FA84248303C1817 /* SDLStreamingVideoLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0F3C44731E9340CDB1C6E7DEB7C1FC4F /* SDLSeatControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D4041302A5894E0CAEA69FF5FB1AFD2 /* SDLSeatControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0F85058037E726C869FAB2BFB6CBC93D /* SDLHMILevel.h in Headers */ = {isa = PBXBuildFile; fileRef = B000BF1A6DCDCB42234749078E5855ED /* SDLHMILevel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 10070EB551593AE8DE8856DA6C40A8B1 /* SDLH264VideoEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 88351DE654FF03D2560ABFC4142E23E3 /* SDLH264VideoEncoder.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1026CB34F032E55D9178DF90D78A7891 /* SDLTouchEventCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 294FE66477B32CB65903CAB08A4D0901 /* SDLTouchEventCapabilities.m */; }; - 108679E1326013DA6810D4FCCF8D199A /* SDLTBTState.m in Sources */ = {isa = PBXBuildFile; fileRef = CBDCBD2A2EFEDA02586A671D16C8A613 /* SDLTBTState.m */; }; - 10C8FD6897674ADEC7AA22D4778243FC /* SDLChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = BD5E9F1868C5EA8FF16DD817FCC2983B /* SDLChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 10E1C185CE7C51FA5DE4FD583AE99495 /* SDLPrerecordedSpeech.m in Sources */ = {isa = PBXBuildFile; fileRef = 94ED036BFFFEB6CED0F8ABC49FB84C64 /* SDLPrerecordedSpeech.m */; }; - 10E9D8F067B9536C43ECFB83D7A73E3C /* SDLShowConstantTBT.m in Sources */ = {isa = PBXBuildFile; fileRef = 570466811B7708FD306FECA152F11CB9 /* SDLShowConstantTBT.m */; }; - 1144A41A128E7245639EF7EEAAFFB49C /* SDLVehicleDataResultCode.m in Sources */ = {isa = PBXBuildFile; fileRef = 849B1DE4F355AEFA9C976B360A798DDD /* SDLVehicleDataResultCode.m */; }; - 11584E9D1A7D53016441935AA70254FF /* BiSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2443CB63E3BC1583C506BBC04BE50078 /* BiSON.framework */; }; - 123A59D297B9772831BB7A508CC41777 /* SDLKeyboardEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 3884964D6FEB0D08398432C7EEDB2FAD /* SDLKeyboardEvent.m */; }; - 123E4A14DF16CBD8A5546FDD02907F56 /* SDLError.h in Headers */ = {isa = PBXBuildFile; fileRef = 711AC2364C89D3D17514B14D663A1AF6 /* SDLError.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1271206750820665E80A01A8537575FA /* SDLVehicleDataEventStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 02E4BC4185F347014878E1B59F325DB7 /* SDLVehicleDataEventStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 129E5BCEF6FBF9E5E9F0679CF261F5C4 /* SDLPrioritizedObjectCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 37F60ABA9812A222448532EC0551BAAA /* SDLPrioritizedObjectCollection.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 13046E7D195824105B265892E8F29A75 /* SDLTriggerSource.h in Headers */ = {isa = PBXBuildFile; fileRef = CFCC4C078A82BC69C78877B984B1F7DE /* SDLTriggerSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 13ADD1BF8C10734FB2EBAA866AD33717 /* SDLHMIZoneCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 843DDF1E82067D3BE72F657D2974D11F /* SDLHMIZoneCapabilities.m */; }; - 13AFC08B1A38979CD13E5F43B4038A00 /* SDLSubscribeVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB47175BD521EA36770290CCE23BAE6 /* SDLSubscribeVehicleData.m */; }; - 13E1E1C1E31D813C4E5AF16D5017862C /* SDLGetDTCs.h in Headers */ = {isa = PBXBuildFile; fileRef = CB01AD4F05816453518D94D580DA26A2 /* SDLGetDTCs.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1421CC9DED21AA027010DDAE45669ADB /* SDLHexUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = FB963F962A2C0E4A36716A49E1417B18 /* SDLHexUtility.m */; }; - 149559E04D003DD95B330F083C6EFEF6 /* SDLSetGlobalPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 918A4228C48EB0067BA2FD3AE232F617 /* SDLSetGlobalPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14DA1D729A8C3713459C867141BD057E /* SDLTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = F26FA6D4CFDB68F6D5708D3320506CBD /* SDLTextField.m */; }; - 15055A719FF7684389EABCCB36FB1EF4 /* SDLStartTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 3000DA61AEE11E76574446153EA6A9D0 /* SDLStartTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1505A5832FF9A3A8F285F03FF87D77EF /* bson_util.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 882E26AAED7919D8F46DB538C09492C7 /* bson_util.h */; }; - 152CAC480630AF81E594747FE28E1C52 /* SDLDateTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B528FBE5DCB2E0BA367288234BCF214 /* SDLDateTime.m */; }; - 1546CE1E88D907835BF0B788B395892E /* SDLStaticIconName.m in Sources */ = {isa = PBXBuildFile; fileRef = 6005348BEB563D39CB3F58D14980AAC3 /* SDLStaticIconName.m */; }; - 1549440C97D34FA71CACDA059B859453 /* SDLNavigationCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 93003458C263C345C99E345CD6601231 /* SDLNavigationCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1586782A8AD64A27B92BAC3F7617BE73 /* SDLShow.h in Headers */ = {isa = PBXBuildFile; fileRef = CCB1B296EDBE648A896D60F8CEE6EF27 /* SDLShow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 15C348C6C1D4657D5CCCB39DA48F874D /* SDLProtocolConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = E28E6185D21901A4C8918AA636A147E2 /* SDLProtocolConstants.m */; }; - 15D110DCFB081B2926AB45DD7D8138AE /* NSBundle+SDLBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D7FA6FD82FCAA3F5859800C0D06812 /* NSBundle+SDLBundle.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 15EAD5D89DF9B5BF90660D3DBE20DD22 /* SDLSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C3596A8E5AA2AB66C296A109794B893E /* SDLSystemRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 15FEA41F68065902292818187AA0489D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92EC16D73BAA299A6234966E38DF6113 /* Foundation.framework */; }; - 166A12220CD441B64A1807EF59255F59 /* SDLProtocolListener.h in Headers */ = {isa = PBXBuildFile; fileRef = AB48679EACAE70BB29A1B43C2AA11F08 /* SDLProtocolListener.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 167504994CBF7AD0EF8085D7BCC5AA56 /* SDLIAPSessionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = C1913C9CAEBA0D15EEC15F086C59CC84 /* SDLIAPSessionDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 16D72417871BC6886A16169FAC0BF43D /* SDLSyncMsgVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = B9171F06491C70DE50D2DDEFFA1DCA85 /* SDLSyncMsgVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1739F7A2929471F3CFED544E1DB590B3 /* SDLControlFramePayloadTransportEventUpdate.h in Headers */ = {isa = PBXBuildFile; fileRef = CD72B7A1B82714D01D99FC2D5DCAD1CE /* SDLControlFramePayloadTransportEventUpdate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 173A65311019663622CC26C99029C75B /* SDLAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FE8503F612720EBE84C85E9D319C3366 /* SDLAssets.xcassets */; }; - 18BBDEAE907C6E3913765F188D1F22A7 /* SDLWiperStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = E71309A18D09217CAF532B036D0FA97A /* SDLWiperStatus.m */; }; - 1906B555E30994355B5939D36DBB9B7D /* SDLUploadFileOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 85FEDF2A2BBB46F56EDE42B6A54156AA /* SDLUploadFileOperation.m */; }; - 193649645204AE4D57E75DAE6C1478B8 /* SDLControlFramePayloadAudioStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = BA9299EB84229285AD544DBE93805F19 /* SDLControlFramePayloadAudioStartServiceAck.m */; }; - 1958620E37609F5E8C593B01464E3016 /* SDLControlFramePayloadEndService.m in Sources */ = {isa = PBXBuildFile; fileRef = 3469A6571DC2C323C8576335770482C5 /* SDLControlFramePayloadEndService.m */; }; - 19A64D1B86FF6BBF8E5BCEE6D72FAF03 /* SDLDiagnosticMessageResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A30B036CAB80CB3556CC6DCC329BAF82 /* SDLDiagnosticMessageResponse.m */; }; - 19BD0353B0B855035E94DD0620B146A9 /* SDLSpeakResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3D9FA9E20EADE3D814527B11431DD7 /* SDLSpeakResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1A659FD8B2997C6F955A402B154AF758 /* SDLRPCResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 369B5BF8AEC7813E438E7A758338068A /* SDLRPCResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1A7A149DB1FA14F639B11F2A069A3D3B /* SDLV2ProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 33232BB5262BA6F1226DA202E9671995 /* SDLV2ProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1A97C3CB44D389A20089C76508C7FD3F /* SDLPermissionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FD4201DF52143CC2A919A9470F285F4 /* SDLPermissionManager.m */; }; - 1AC1E5C6107C9FDEC28FEAF2722D5871 /* SDLChoiceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FA7520D29ADDEAE0706E4E297C9EC00B /* SDLChoiceCell.m */; }; - 1B1CF15B78F656247732F33363542D95 /* SDLControlFramePayloadConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 4361BDEC05496F0B266C45DAC0E5FC5E /* SDLControlFramePayloadConstants.m */; }; - 1B7830EADD088604F2AF02DCC234E999 /* SDLProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A839994F9626443B093DB392F9B5E77 /* SDLProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1B9A6C694B31434F1A613A3A6726370C /* SDLPCMAudioConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 55F7F5D6907BDC05663E93F45A150CBF /* SDLPCMAudioConverter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1BA017560FC8B74AF9D489992FBA4405 /* SDLHMISettingsControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 87013DF5230B21B6D6983AE6FFCB0A36 /* SDLHMISettingsControlData.m */; }; - 1C479CD7E70CE6D721A82B6F56781D9A /* SDLButtonPressResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 18278F1A7CF8A435D0169F4AF9BC7E07 /* SDLButtonPressResponse.m */; }; - 1CA2B5A4769F94EE01AAF587330FB376 /* SDLControlFramePayloadVideoStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = BBD5269E6005271A97672076F3C57620 /* SDLControlFramePayloadVideoStartService.m */; }; - 1DA2C3B957587D4E0BD6631AA0280261 /* SDLSoftButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B47C27C1C51D3C0496F6DC20D6173B7 /* SDLSoftButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1DDF3601757242CCCF58BC6FDAEBD1CA /* SDLFuelRange.m in Sources */ = {isa = PBXBuildFile; fileRef = 9573AD1DA7DB44D2BDFDA84EF4F972F5 /* SDLFuelRange.m */; }; - 1E08FC40843DC74847587D066152384B /* SDLAsynchronousRPCRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 527A7F8C142E616553D35AF4098262F1 /* SDLAsynchronousRPCRequestOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1E328C92B78121A10A37CCF65B7BFDC2 /* SDLOnButtonPress.h in Headers */ = {isa = PBXBuildFile; fileRef = E49367CD2C96F4FB7B71A901D7B36355 /* SDLOnButtonPress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1EC36ED907B978EC0A6740DDF3A82BE6 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E13C460CB2039AE064C767DD711F563 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1F06A449FFC01FF0CA8553A0BEB0F700 /* SDLHMISettingsControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = FB630387201D5C255AAC684842BE5C05 /* SDLHMISettingsControlCapabilities.m */; }; - 1F2C08924DAF09EAEDDF8E4A9B8F50C5 /* SDLRAWH264Packetizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F829F2659AFF96D13AD1D9EE4B5EFA7 /* SDLRAWH264Packetizer.m */; }; - 1F53A32AF3B60B1B9C6E4E902DF6E88C /* SDLTCPTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = 561E7859983DC63B87B4C26B0FE33EA8 /* SDLTCPTransport.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1F89230366EB77189F7AB10C48498682 /* SDLOnPermissionsChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 72782025CCF03AC32ADC435C468D3CC6 /* SDLOnPermissionsChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FDDEF6CE2FEE041A91814E14163CD1D /* SDLSyncPDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F09A75F248CCF94E447F986B25B46A5 /* SDLSyncPDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 201B959BDABF5FECAA5F31E36BD684FF /* SDLOnButtonEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 17B3E3A1BA828AED08DF168DFCDBD517 /* SDLOnButtonEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 201BC1035FC21891C355380570851086 /* SDLRadioBand.h in Headers */ = {isa = PBXBuildFile; fileRef = 905FFC669528A903981179734581E823 /* SDLRadioBand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 20259D21A0257386BD4E5F40489851AE /* SDLChoiceSetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 701F9FEB0B747B0243ACC80B6C9300A1 /* SDLChoiceSetManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 202E9DEB4FC551880653BF4C6A734E33 /* SDLDeleteSubMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = E3B8D796AD9F59926B271B6B8BC81CD3 /* SDLDeleteSubMenu.m */; }; - 20E317ACB2A7231E7F68ADC230EBA7A3 /* SDLDisplayCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = F388207656E1E2BB02B35F9E54E554A1 /* SDLDisplayCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 20FC1896A18BA80D09A29EC6381D135A /* SDLEmergencyEventType.m in Sources */ = {isa = PBXBuildFile; fileRef = A6FFAA2E640CE5022DD2D19F7DCD3DE6 /* SDLEmergencyEventType.m */; }; - 2148B98C41264719B44F19627F9FBD31 /* SDLTPMS.h in Headers */ = {isa = PBXBuildFile; fileRef = A56B12620457866F3F66271757C255A6 /* SDLTPMS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 21944956FCF8A98A64B49943C532E71C /* SDLAppInterfaceUnregisteredReason.m in Sources */ = {isa = PBXBuildFile; fileRef = 00B26898CBB957B7498A0668CCF94CAE /* SDLAppInterfaceUnregisteredReason.m */; }; - 21E4ECE5FAEC39D18ED9A5AA744BFB1F /* SDLPermissionFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CD60AA200C1EA24343193DA9F81F600 /* SDLPermissionFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 22A378951B6903C864AB262623FFC244 /* SDLSubscribeWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = C9E6389F7EB9A2D0D5DFA03917B8774A /* SDLSubscribeWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 22B4F2B08E7E10F17896F6020E3E7FC5 /* SDLWayPointType.h in Headers */ = {isa = PBXBuildFile; fileRef = 47E4A52D2392FB209D8115764D1AB1D9 /* SDLWayPointType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 22EFD15D95BC17236824C5F2F14D6FFC /* SDLSoftButtonManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BAFD24C619E18105CB98355ADC1DA09 /* SDLSoftButtonManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 231E01EC4A0471AC2C5B7D80E1EF4E09 /* SDLProtocolMessageAssembler.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EAD2D9917040C1DC2F23D0C4DCA7FA7 /* SDLProtocolMessageAssembler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2424E72E3E34EC0D796FF72BA0253B6A /* SDLSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 853D4FF5772833364CFE76D24578AC9A /* SDLSlider.m */; }; - 2493AB5474953E83E8BEF5B7CD0FCE78 /* SDLDeleteSubMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = EDF6F8E8BD9AB6D28CFCC4A88AC00A5A /* SDLDeleteSubMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 249A608D638CC97C67FF52638A8BC1E8 /* SDLTouchEventCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 46A22E1778DAA87AC1078DE0B1FB4A24 /* SDLTouchEventCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 24E48DFBB1C4B4AA81A4639689F86DAD /* Pods-MobileWeather-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 97A2BB0456C152B5DCFAA29084C974C2 /* Pods-MobileWeather-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 24F2853B85F0CD908042C0887DD98DA6 /* SDLUpdateTurnList.m in Sources */ = {isa = PBXBuildFile; fileRef = EA582BB114E38C65B6A91E4EE7B8F1F2 /* SDLUpdateTurnList.m */; }; - 24F89E570279A8E298ADE0E960556438 /* emhashmap.c in Sources */ = {isa = PBXBuildFile; fileRef = 75F59B2A5FE3C87A65DDC7E417796E8F /* emhashmap.c */; }; - 2517D425680862344E8C97608651C465 /* SDLDeleteChoicesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DA9D3D0835E0ECE0927CA88687021D3 /* SDLDeleteChoicesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 258C95788E0E8D970F0EE4DF62E4CB2A /* SDLFuelCutoffStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 27B167F71BD19841F6007D7C9CBF2BB1 /* SDLFuelCutoffStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 25BD608CDC74BDA8361298894AAC1BF6 /* SDLVrCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 11E2F665E33EE37B613491E89FC223ED /* SDLVrCapabilities.m */; }; - 25FC95E53399E920C720FE3402D2F4FC /* EAAccessoryManager+SDLProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = 25E2288919FDE557C4ECB6A34711AA4D /* EAAccessoryManager+SDLProtocols.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 25FC9867BFEF6F22B87571B2026C382D /* SDLVideoStreamingProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 2783B441BC8A958210375C2CB1FFF38C /* SDLVideoStreamingProtocol.m */; }; - 2608EAE325BED25A8AE2266BE7306894 /* SDLSyncPDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = BD63D162A710F26E0171321EA5F2591C /* SDLSyncPDataResponse.m */; }; - 2665B47AE0D9E489A35A4B5583C7A574 /* SDLHMILevel.m in Sources */ = {isa = PBXBuildFile; fileRef = A8713C1D0690D8AB53FDAB90435E668F /* SDLHMILevel.m */; }; - 273FFE3A5B1FE211BE08322FF75F43B5 /* SDLGlobals.h in Headers */ = {isa = PBXBuildFile; fileRef = BCECF54BBC67A7DBB0AC2A441E7A7E88 /* SDLGlobals.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 274BB6D13057A65EF40FBA8E855C8B08 /* SDLPermissionItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F05AA929B1AB82280E5802A1D843594 /* SDLPermissionItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 274DA5F32BF29A3E4AC88D8C1D475054 /* SDLV2ProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = B64DC108EFD38FF6AD0FFFF15424C17C /* SDLV2ProtocolMessage.m */; }; - 2796B141DB2CB8FF9D5D4331365FBF7C /* SDLSoftButtonState.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C5D5F27602E0540AA5B35AF19980468 /* SDLSoftButtonState.m */; }; - 27B47B95DCD6EFEE0AE4B2447B6E9D50 /* SDLVideoStreamingCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = B82BD5CA32CF72B71EEE56763F38464A /* SDLVideoStreamingCapability.m */; }; - 27C60458AA9E71EB3C734B5CAFCE3B65 /* SDLCarWindowViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D849908EC39EB73251A609C247278C7 /* SDLCarWindowViewController.m */; }; - 2882AFECA228F8969A51130E89673181 /* SDLRegisterAppInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EC8C09312FB4922A1226B9708C6A43C /* SDLRegisterAppInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28F0252D9017ED26A005BEF79E464662 /* SDLMyKey.m in Sources */ = {isa = PBXBuildFile; fileRef = CD7F72B767014839B0530963C82FE3DF /* SDLMyKey.m */; }; - 29074EE6C7F221B0EA5003F0EC9E43FA /* SDLEncodedSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 66350E5DE80B51CCE2C62602727CED1B /* SDLEncodedSyncPData.m */; }; - 291D6E7A9B53BC97B4266E5E733A9D9A /* SDLAirbagStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A5621B5B05BA15084E7A134229CADA90 /* SDLAirbagStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 292938C5EB7ABDEC2E715A153AB2C158 /* emhashmap.h in Copy emhashmap Public Headers */ = {isa = PBXBuildFile; fileRef = 3F06E01500491105B758E90A6D3828F0 /* emhashmap.h */; }; - 29881505409B144B88BEBD744924B014 /* SDLSetDisplayLayoutResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C5EA591376DD52B8329D8B6224101BE5 /* SDLSetDisplayLayoutResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 29DA019909278383AF531314E1F4750D /* SDLProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DDA77991D5939F69DB2C0095DDD520A /* SDLProtocolHeader.m */; }; - 2A23BC577603227C59F175A756C07E75 /* SDLSoftButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 88CD2BDF6FF3ED3F6B18D71D1A446DD8 /* SDLSoftButton.m */; }; - 2A5F0B29E4EBD8734741D831CA6A7E6A /* SDLMediaClockFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 471FCD3698B75159B2B7FE7C7034350A /* SDLMediaClockFormat.m */; }; - 2A736C0C17FD26D7F036E75358F1C35B /* SDLSoftButtonCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 1452029094F815D4A37CB7AF1F8F68B1 /* SDLSoftButtonCapabilities.m */; }; - 2AB5518F631822ED03580B2E57398F64 /* SDLWarningLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = ABA99CE85C327FFAD4C981FC5CF3D003 /* SDLWarningLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2B1FB46E0F181116C988EBDF4D4DB810 /* SDLRAWH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A1AC42C1CE7CEE7544BFD3843B028D5 /* SDLRAWH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2B65E6D0CA1FCFDA5C4E8CDDD530576C /* SDLV1ProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 1529E778CB489616CEC128365ED5CFA6 /* SDLV1ProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2B70751465E898CA237B574CFDE37BB6 /* SDLPerformAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = 5608E1B518D7DC608F90543748504EDE /* SDLPerformAudioPassThru.m */; }; - 2C00826991FC81F4268A7FA1B8BE3A72 /* bson_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 882E26AAED7919D8F46DB538C09492C7 /* bson_util.h */; }; - 2D2C73A94C3702E247D80930EDD01C6E /* SDLScreenParams.m in Sources */ = {isa = PBXBuildFile; fileRef = C30DC4A516525BCBECD781C4551F5D5A /* SDLScreenParams.m */; }; - 2E36360E596C81768C64F8254B0BCF9E /* SDLDeleteCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 48E79B4506F1594D6325574D14CD0E9F /* SDLDeleteCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2E5A270CA153C9237A20FBA1325DC854 /* SDLSyncMsgVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = AB71670E1D39EA195F20599D06B93C3C /* SDLSyncMsgVersion.m */; }; - 2E899075BD1FB0B43B0336F04BFFE82C /* SDLCarWindowViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F7FA38B067052115C9348DF8CDA8246 /* SDLCarWindowViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2EB3DD389E800C6F48E46F70274CBFD3 /* SDLWiperStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B86CE88D851B73EF7B846EEFECEB105 /* SDLWiperStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2ED2A5AEEA3F8EB3EA96F61E307B8AB1 /* SDLECallConfirmationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A7F77770D5D28F7FF7EEFD4A3C75F542 /* SDLECallConfirmationStatus.m */; }; - 2F049A5ED5B21F687DD4F9D16A0F9156 /* SDLSecurityType.h in Headers */ = {isa = PBXBuildFile; fileRef = 90B140356718D6990742118A0DE2E86F /* SDLSecurityType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F4833E75460BBDCA6974CF6A25393D3 /* SDLSubscribeWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = C64D7A63C4552BCCDBF2279977AA076F /* SDLSubscribeWayPoints.m */; }; - 2F62D67C96619CF8418DDE8660AA87FF /* SDLOnEncodedSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 77562F15814B203CF3A3408E7CC77E90 /* SDLOnEncodedSyncPData.m */; }; - 2F92A39FA7844E294BA89D4504DE5B40 /* SDLSamplingRate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7270226214680022216FC52367E6F29D /* SDLSamplingRate.m */; }; - 30A929E1C35E2D215DD8EE99B82074D4 /* SDLIgnitionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = F3DF41A5534678C031C7762017C9D5B8 /* SDLIgnitionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 30CDC22F7251B357A4C3CFAA72C47DE7 /* SDLRectangle.m in Sources */ = {isa = PBXBuildFile; fileRef = EC39FC6F2170900B078272A1F0D1AFA2 /* SDLRectangle.m */; }; - 30FFC9E6B1C8D0793671168174052553 /* SDLSpeechCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = B30D5145EB60AD2060C601A064F64A2C /* SDLSpeechCapabilities.m */; }; - 31DFC3583830E0D966124FC8F5C27762 /* SDLPCMAudioConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 53A52D72644B89F231422DFAA23D9A94 /* SDLPCMAudioConverter.m */; }; - 32384E122DC41DB6FC369BA1B8E44975 /* SDLControlFramePayloadVideoStartService.h in Headers */ = {isa = PBXBuildFile; fileRef = 80560B5F4049C93EAE4148868C4BA8E2 /* SDLControlFramePayloadVideoStartService.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 32E4FFA8285A6E57F005EAC005EB2A0F /* SDLRPCNotificationNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = FDE4AE55BBF8F01C929485F3093C57D4 /* SDLRPCNotificationNotification.m */; }; - 32EF617251A6BDB80B1116AA30B88887 /* SDLSISData.m in Sources */ = {isa = PBXBuildFile; fileRef = 022836C73FFD3B13313C60652032D850 /* SDLSISData.m */; }; - 334A1C8E8A34F736E4D8AD86F78DCDA2 /* SDLLogModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AFC13CD3915A647DA5736D2C6DDB276 /* SDLLogModel.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 335977B731AE1FB611913B0EA91AEA9D /* SDLBodyInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 80BEAB2A97883B43F91D11C970DBFFE7 /* SDLBodyInformation.m */; }; - 3383C263F5066BB955902D08E0E0BA76 /* SDLLogManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AA7BA22D55AB85BB5FCC2ADEC30BD838 /* SDLLogManager.m */; }; - 338656B244397A1FE7AEAB4924A0637D /* SDLTextAndGraphicManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F5507ACACB0EE1CDC5827DB3CB5C3921 /* SDLTextAndGraphicManager.m */; }; - 3393CBA33B034A44C8403C7D34C5DA5E /* SDLPerformInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2046809A5315CAEC170D3C5D87341E36 /* SDLPerformInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 33F5B083FEAEF4A293D5DDCC66055D3E /* SDLStreamingVideoLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 259D45E1AFB4F1787FC8E3DE5C59CEAC /* SDLStreamingVideoLifecycleManager.m */; }; - 3467C8330CDCF0CC7649922ED7F36898 /* SDLMenuParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D56D1383005F86119EEEC23396E20E2 /* SDLMenuParams.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 347171ED94BCFE1BEF4C751C357A2A61 /* SDLCreateInteractionChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = EE5457E7487266451141B2F023DFB19C /* SDLCreateInteractionChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3487D5F34B6779F25E0C691435723CEB /* SDLLanguage.m in Sources */ = {isa = PBXBuildFile; fileRef = 09B8E32CA0A3C22134FF5943402A19C2 /* SDLLanguage.m */; }; - 349DCC63C4006E9925925A22528F76DA /* SDLPowerModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B2743E673B8A8B1412F3ACA1B22E27C9 /* SDLPowerModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 372A4DD37D49C94C3723DEBE22096647 /* SDLUnregisterAppInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = BB5F7AF6EB7A651AA9025D03B433AF00 /* SDLUnregisterAppInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3772577D7A7B0E0B0F79BE6861768803 /* SDLEnum.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E8FE4312C8C948EBE6F6C07DBC1F9CA /* SDLEnum.m */; }; - 37A4441323BF715ECDFDFA44AA52E595 /* SDLAudioFile.m in Sources */ = {isa = PBXBuildFile; fileRef = A6E4EB5AC1D8300869EFD910BC546776 /* SDLAudioFile.m */; }; - 383A60466C0BB252F9AABE852853A442 /* SDLComponentVolumeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = D50321F21AFDE58F08A3BF69CD0D45B6 /* SDLComponentVolumeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 38B289D35FE88B0513826F20E2E49C47 /* SDLLightControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = C7DDA9F4F55CABEE280A8EFB020D3C65 /* SDLLightControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 38FE8058A8ACE4CEABEF049A44575FFF /* bson_array.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 094669C6706179A5AC880CA3B34CBE24 /* bson_array.h */; }; - 393038430FFE5671B2073A6A30C9BC0B /* SDLCreateInteractionChoiceSetResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AF1C559A0C4A201639345F720AFD5BB /* SDLCreateInteractionChoiceSetResponse.m */; }; - 39601039B7D4C9F81E0435945B4C0A72 /* SDLImageResolution.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D616CFA82FBB4F1BEE449B4EA3CF4C7 /* SDLImageResolution.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 39E89EB33BF91A8DD6826358A94C18A8 /* SDLPreloadChoicesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = BC44F67089678BF264AE9F4517976CE3 /* SDLPreloadChoicesOperation.m */; }; - 3A3C1A36F9538E34D2AF0C0F83D4966C /* SDLMenuCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 816405DEA579818D69E7209885E6B5FC /* SDLMenuCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3A8524D9DB82B710CFA048A740AEDA10 /* SDLButtonEventMode.h in Headers */ = {isa = PBXBuildFile; fileRef = C6B82BEAAE6A7BEC7C2C08C051A6FF6F /* SDLButtonEventMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3A86DEA68BC55354523B90DFB98DFC85 /* SDLImageFieldName.m in Sources */ = {isa = PBXBuildFile; fileRef = 5413252548EB4A0449D30D5673A28F0B /* SDLImageFieldName.m */; }; - 3A979A73791B243B088224560C08E152 /* SDLOnTouchEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 9736F1C92404CB74F50FE38E6AEDCCA9 /* SDLOnTouchEvent.m */; }; - 3AF64F5B141F2725382B1699A20FFEAB /* SDLOnCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = EF4EBDB80CEF89242D57537CB1A9D465 /* SDLOnCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AFAF31C231616DA37D8CD47E04CC41E /* SDLScrollableMessageResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F60A682B29BD523A1C95D44BF818678 /* SDLScrollableMessageResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AFFD7E781E276C04B0910990FB2A7F1 /* SDLCharacterSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 3931112BA99F69A22491E261DD430300 /* SDLCharacterSet.m */; }; - 3B060D93370643ABBC11440CA95137C5 /* SDLPolicyDataParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 624FFEDC969D0C72CDBCEF24B6F1FF30 /* SDLPolicyDataParser.m */; }; - 3B6564F00DD0815E2507EEF5C57377DB /* SDLSendHapticData.h in Headers */ = {isa = PBXBuildFile; fileRef = 43CD4E20EA357AF78C5B0D31F5F31E3E /* SDLSendHapticData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B9FD9C8C2D64BE1E7B4A60D8F1CF79C /* SDLReadDID.m in Sources */ = {isa = PBXBuildFile; fileRef = 85C64DA96B7AFBF4B86A506D16F6B044 /* SDLReadDID.m */; }; - 3BAF653EF94A79F057AF28E92D08B01F /* SDLDeleteFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CB43E3D640B1FB16CFCA612D7D97A8F1 /* SDLDeleteFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BBCFF9EEB7DD0EFAD2C19FB38782EBE /* SDLVehicleDataNotificationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = DE28653246A6B19B5D9C82A38F1267A9 /* SDLVehicleDataNotificationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3C408E7824C741EB34570DF86CC34B97 /* SDLLogTargetFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 37762E39468016593D2D4AD6F5570CCC /* SDLLogTargetFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3CF801D23C44F6D1B84C15AA973D5911 /* SDLVideoStreamingState.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A6B4FAF65147D01EAB724CF22D4AE0D /* SDLVideoStreamingState.m */; }; - 3CFF28EB8DF6F6B428CA1801E5F3B25F /* SDLUnsubscribeButtonResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 28116C10F8E6839229E73642FA1E4D49 /* SDLUnsubscribeButtonResponse.m */; }; - 3D49B9BD85156CA47C272AFCA46CD969 /* SDLLogFileModuleMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 29B0DF7E121F9744DDEF8461BEE11346 /* SDLLogFileModuleMap.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3DC9DBBED5AF3AED802AEB1ACE6EC16C /* SDLAudioType.m in Sources */ = {isa = PBXBuildFile; fileRef = ADACFA394C1A41666990BA02285C1D35 /* SDLAudioType.m */; }; - 3DFAA6CD24C655BF8371A79A2EC83586 /* SDLTurnSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 46E9F30F07D90FE0DD803922742B11F4 /* SDLTurnSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E26B72E94D4E8F720765C08644B1835 /* SDLDeviceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = EE9A3B75D5F68AA0D26EAAC23626F571 /* SDLDeviceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E79D874393A3D7EBE0DA7412D7A6662 /* SDLUpdateMode.m in Sources */ = {isa = PBXBuildFile; fileRef = D48E12FC519B7176B5ABCBAFF3F4A7CA /* SDLUpdateMode.m */; }; - 3E976B7DAF7D086E310C9DFEB791F70E /* SDLGetWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C6F102A06A6693E2DF34B61E773CCDB /* SDLGetWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3FA8BF893B4ABCE89302AF12D3FDD36B /* SDLButtonPressMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 5403F40FB18F1132FAFDAD339E3514B9 /* SDLButtonPressMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3FD99D42147F557EFE878C489E853A98 /* SDLMetadataTags.m in Sources */ = {isa = PBXBuildFile; fileRef = D88D739C4F65E3A7EE9F3CCB7CF49C35 /* SDLMetadataTags.m */; }; - 3FF9BDBD8CF6A2C502BAB51531850403 /* SDLSetGlobalProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D566AE50B191DBFB833D69C8108A202 /* SDLSetGlobalProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 400A84C63C1928674225B0C3DEB1808E /* SDLDisplayType.h in Headers */ = {isa = PBXBuildFile; fileRef = B42D746070F0FB7F229FC805F63C7474 /* SDLDisplayType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 404C3CDFE0A33CF1EA1F85DDDCAC7724 /* SDLSpeak.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EECA380F767D515D06515EB2526BCE8 /* SDLSpeak.m */; }; - 405952B0F156E80362027E2FB42E7359 /* SDLAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = 50B8BBC9E1B415E5920A1FBA5133F375 /* SDLAlert.m */; }; - 408E1481ED7E584C084651E3762D4E39 /* SDLSecondaryTransportManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D66FF1E097F6C6ADBB8C030D347AE718 /* SDLSecondaryTransportManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 411926320DE8319BF26921FFA2D23DC6 /* SDLVrHelpItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 8080BD85150924CD82CF697853AB49DD /* SDLVrHelpItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 411F1579BA150460D876451769A164B8 /* SDLPolicyDataParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 53AF765EA8E95848A51E4EF568E373E4 /* SDLPolicyDataParser.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4242BC8D2B19A8AECDD82CEC36EAD1D3 /* SDLSeatMemoryAction.m in Sources */ = {isa = PBXBuildFile; fileRef = B39C5ADFF010CF8A14C3BEA134F54E7A /* SDLSeatMemoryAction.m */; }; - 4262A88F6772DAFA6EB0986E93A7F7D1 /* SDLTouchType.m in Sources */ = {isa = PBXBuildFile; fileRef = 21FBCD7A2D38BA6674F5B0E20331F1B2 /* SDLTouchType.m */; }; - 42789451B228CE1B731E2E475BE328FA /* SDLPerformAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = 987EA3558DD5290384A844B45E024E3F /* SDLPerformAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 429EA9BAF3633D69D00E9A993542B0F3 /* SDLCheckChoiceVROptionalOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E80F2AAA864A0E9A66967638620AE60 /* SDLCheckChoiceVROptionalOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4312EB672436060772606A0E4925DA81 /* SDLLockScreenStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 8080F4FF2A48736FED1DA77E6D50B24C /* SDLLockScreenStatus.m */; }; - 434FECDCEFCE761DC9E53E8421A0E199 /* SDLControlFramePayloadConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = D2F9491E9A021E2EABA56A03253B0372 /* SDLControlFramePayloadConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 43774A9EC2370F6C642EDF653F0BB834 /* SDLStreamingProtocolDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BD2DB088EAE22C7DD20B753FE0006F9 /* SDLStreamingProtocolDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 437E6D94102B6E5418512171E8D213C4 /* SDLV1ProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7D0124F88DC1F3149FCBC1CC631444 /* SDLV1ProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 437F9E9979EBC890F4E7986AF8E9F555 /* SDLBitsPerSample.h in Headers */ = {isa = PBXBuildFile; fileRef = D1C593EF742A7DEA18F01646BC598132 /* SDLBitsPerSample.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 43DCE09FC284FDD30495C63109F3805D /* SDLLayoutMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 7464353B95BD2991945285ACC552CABA /* SDLLayoutMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 44398A25FFF8E8E3BA94AA4B16401BD1 /* SDLSetInteriorVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B836FFAC43577369039BC81E89BD1E84 /* SDLSetInteriorVehicleDataResponse.m */; }; - 446DBDD10A24217E2C75E80F8AE8F3AC /* SDLPowerModeQualificationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 61F82FF5A93D0558A5851A023E3C7B66 /* SDLPowerModeQualificationStatus.m */; }; - 45AB8E12BABFBA44F627D44826815A3C /* SDLHMICapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 18641A1747ED648E73C047ED9F2800CD /* SDLHMICapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 45ECBD14B4B63213CB8EAE14A26F47E0 /* SDLWarningLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 63466A9AB415882C06F7AE80584F210C /* SDLWarningLightStatus.m */; }; - 466120C8F06FAB14E27D8C4AB40CBC4A /* SDLPrerecordedSpeech.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E464EACE963D6F07103805F407CD25F /* SDLPrerecordedSpeech.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 471FFFF32E90503833F9ED85A037ADB7 /* SDLSystemContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 1843B9CA2192C5B3AFC14A50D86F80D2 /* SDLSystemContext.m */; }; - 47636D3515ED3884E8B188742491FC2E /* SmartDeviceLink-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B2C4A5A90D11A445D20A514AA2B6C69 /* SmartDeviceLink-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48117AC5842CE566308EBCC6BAD70A38 /* SDLPhoneCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = F35822090B42F3897B8520B75DFCD4BB /* SDLPhoneCapability.m */; }; - 4831DC00268ABDC3B71DF092EC92C6A1 /* SDLLogManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C14ECD4BF951829C7D97305625CF23F7 /* SDLLogManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 495B9BFB4528B543B85D33626944F27C /* SDLChangeRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = 47CE23F2A53DB7E089222EE09F29BB9D /* SDLChangeRegistration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 49982C103746564D3C54F20348D77469 /* NSBundle+SDLBundle.m in Sources */ = {isa = PBXBuildFile; fileRef = 0890FF58FA08063F6B8494B01ED4A3B4 /* NSBundle+SDLBundle.m */; }; - 49AE1FF6E889BF5CFD8C7F6FC61A1990 /* SDLImageFieldName.h in Headers */ = {isa = PBXBuildFile; fileRef = 0440B26CB65E28F9B693133980FEDB2B /* SDLImageFieldName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4A2E9931CEB4FBE60C639025C745949F /* SDLDeleteCommandResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = AFBBA4412E591D0464CD86B12758A2D7 /* SDLDeleteCommandResponse.m */; }; - 4A44E1A476DF6AC77050CA0BB5741996 /* SDLVentilationMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 72DA23D6B1B8CEE91F55CF693FD690B2 /* SDLVentilationMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4A4C8D8B27D9B504C8B90FBA2E532D26 /* SDLProtocolConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = BA2F928FB28C5D2FA571B57A0D084BAA /* SDLProtocolConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4AB73C7BEAA65EE7156FB5C3CC87DF2D /* SDLNotificationConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = B460414DB680F6055A83A1A74CFC1737 /* SDLNotificationConstants.m */; }; - 4B9C79D4D0C403D33ECCD91413C71EFD /* SDLEndAudioPassThruResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A8C67EB84DA3FA114CA61C5D36FEC54 /* SDLEndAudioPassThruResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4BF834C82F82A4F455757C75795D7614 /* SDLCompassDirection.m in Sources */ = {isa = PBXBuildFile; fileRef = 47CAE090B7FBD44E13C4D60C7AD48B5A /* SDLCompassDirection.m */; }; - 4C14B6D0764534FC82D19C8C2869824B /* SDLPowerModeQualificationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E2E609CCF3FF8FA84D2EA7E5E75B6FF /* SDLPowerModeQualificationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4C8CCBF1734D58A4E654681E85C56324 /* SDLListFilesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B7498C244FC10C66AF473A338A62111B /* SDLListFilesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4CC172DE9DE64D8C7CEB557E19EA3C06 /* SDLImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC3F0AF45DC8C9CA5D3AC7CA8176789 /* SDLImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4D22C3E35127657A059FAAC74E84CA9F /* SDLLogModel.m in Sources */ = {isa = PBXBuildFile; fileRef = DBC88C050ABECE21892DC6034CC3F8B4 /* SDLLogModel.m */; }; - 4DE4F6C69D2B336533D5AB7CFB92805B /* SDLUnregisterAppInterfaceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F8F030BFD1C8C53533F5FE9C47B23B0B /* SDLUnregisterAppInterfaceResponse.m */; }; - 4DE6D3DB00935100770B101E4FD4DD74 /* SDLOnKeyboardInput.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B11875C27CE5BA6B79B0F5FAEB42813 /* SDLOnKeyboardInput.m */; }; - 4DF00792D0599F38F8C53D1D9524E0CF /* SDLMetadataTags.h in Headers */ = {isa = PBXBuildFile; fileRef = BF184F14F7F8CAE1B2D74EEA9C58A028 /* SDLMetadataTags.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4DF4CC747977B62A390CD466CB6BB7CA /* SDLTBTState.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FA874BD88EA74B7BB768D1914F61EEE /* SDLTBTState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4E1D974330808D7F6DE4687340BF78CB /* SDLGetInteriorVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B148286C9121F9CEAAF3BB7A9B9E1EB /* SDLGetInteriorVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4EA7202E9058AF4E5B55B73766E402BF /* SDLChoiceSetDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A97DB73B7402B15C06515BCEE78C9981 /* SDLChoiceSetDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4EAD8DB9B8C89502F5E80EB8905DECFB /* SDLSoftButtonCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 40C3DCCA2797BCCB1A582257FAD07C67 /* SDLSoftButtonCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4EADDCED77CBC447F15EEE6612C32794 /* SDLPerformAudioPassThruResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9E74F8390AAEB3D483417C6939A39E /* SDLPerformAudioPassThruResponse.m */; }; - 4EDB1D54059A62B1E89AC859B6AFFC98 /* SDLSetDisplayLayoutResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 11FDF61E15EA556F1CEF592604857CFA /* SDLSetDisplayLayoutResponse.m */; }; - 4F00F1BC25190AD1A39A832E385D6092 /* SDLKeyboardDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 425112040C5A32D7A5A360DFF736A31A /* SDLKeyboardDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 50197887724DB2B0F9BBBEDFD115EB01 /* SDLWayPointType.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DB23C1F5BDF1F27A2D1917F3EAAC433 /* SDLWayPointType.m */; }; - 503E1255E56FFE55DCA95B9431D029AC /* SDLSoftButtonType.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EC269B1966033DB01819D2781AC4309 /* SDLSoftButtonType.m */; }; - 508710487E6E5D73B47302E30A095473 /* SDLVehicleDataActiveStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = E8355E321C8CD5412294AEDC2B85517E /* SDLVehicleDataActiveStatus.m */; }; - 50E94328E77465FC58A98C08B155AA3E /* SDLOnCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = A0A1B2614785041917BE4112674DC25B /* SDLOnCommand.m */; }; - 513047C3242BF4788D7F04DA59A65D4F /* SDLRPCMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = EDCFB982E7DC04A76ED3DA3978F5DCA7 /* SDLRPCMessage.m */; }; - 515B7E5A2A5B4CA5C242F2B9A1A86114 /* SDLAudioStreamingState.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BEA19A69DC688C8CC9315D69EB8BEB5 /* SDLAudioStreamingState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 51919410D0B2A35D6F25634DF3F64F46 /* SDLVideoStreamingFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = EC448CD8B6A7EC7C9542B754FDF978F2 /* SDLVideoStreamingFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 51B9760ED13D36DA0194F8F065F87132 /* SDLStreamingMediaManagerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = ED61ABE324F03833E5DD4900423E6100 /* SDLStreamingMediaManagerConstants.m */; }; - 51D83C643384BAFE2BFFD0E8068521B4 /* SDLAudioPassThruCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C395176F9C59B6418BA47A1577018FAA /* SDLAudioPassThruCapabilities.m */; }; - 51E74B85BF49CE5F58DF9AEEB54490EC /* SDLSetInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = AADF6CC67DB541A26C867733BFB837C3 /* SDLSetInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5296B7BC7A799A4645A24AA665985F9C /* SDLRPCNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 78ABF68E893E072C56F7BA31130F1A5E /* SDLRPCNotification.m */; }; - 5296E7FC0E92E8CEA624DDB20E0F1C4F /* SDLSystemContext.h in Headers */ = {isa = PBXBuildFile; fileRef = A2FA6D88BF0D8BE275F4AF2C7C117908 /* SDLSystemContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 52BDA4C17AD653F1FF67D7B5546AEA20 /* SDLMassageModeData.h in Headers */ = {isa = PBXBuildFile; fileRef = E9C5C58A3724605FC6E5584A0977F7CF /* SDLMassageModeData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 52D43CD53B5DA5E1569F96CB92DFFB0E /* SDLSoftButtonState.h in Headers */ = {isa = PBXBuildFile; fileRef = 0837D198E63D15DBF4D735082E0C46FE /* SDLSoftButtonState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 52F293B8D8F2DBC5884789F9F340441A /* SDLNames.m in Sources */ = {isa = PBXBuildFile; fileRef = EBE2BDB35B173D11506009E03770CC5A /* SDLNames.m */; }; - 53246289694B5FAFAF6A3539272C199F /* SDLSetAppIconResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5026B768F427D41AD264854700D76084 /* SDLSetAppIconResponse.m */; }; - 53A860936F0006E7C14D7EC0756B3126 /* SDLLockScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 90821605B6964E77F2FF24118D6EDB06 /* SDLLockScreenManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 53C76685D4035A70E7F85A6A141A374D /* SDLGetWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = EB782268F9B89A65FEEB9D8D3E0867E4 /* SDLGetWayPoints.m */; }; - 54B362CBD1794B25EEE2DAB2312458B0 /* SDLGetInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = BE7366FB2C13FB0E264DF97EB1455D14 /* SDLGetInteriorVehicleData.m */; }; - 54D790EEC81BAD764B8EEE49AD2A4158 /* SDLLayoutMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 874714916D7F9E906404F014ADF12629 /* SDLLayoutMode.m */; }; - 54FB1AD8D55EE13D2BDE103CE981F096 /* SDLVehicleDataStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 54AD9BB2ED9351E39DEE63C0E9B9ED5F /* SDLVehicleDataStatus.m */; }; - 55062BA3F586C30FA46844D3567CA266 /* SDLECallInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 30350A37D735C91E7CF974A4830CA33B /* SDLECallInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55CB4738C7BE3FF112CB1344ACAB02AC /* SDLPinchGesture.h in Headers */ = {isa = PBXBuildFile; fileRef = B1F9BC84E7389BF23179BED225E2CA39 /* SDLPinchGesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55F4E9D9A49AACE252669F2F3DABF237 /* SDLStationIDNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F5FD2872F26AF396350B7190E6DE3E9 /* SDLStationIDNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 56413091A8C554F6CB22273E720F72B9 /* SDLSetGlobalPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 492D4F2D51A313D0902E178DD1AEF5B8 /* SDLSetGlobalPropertiesResponse.m */; }; - 56E2C7C771DD69397A452F517EB06355 /* bson_object.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 4AE0C41A32832B291234AD2D5DDA906A /* bson_object.h */; }; - 572B49D1EB5811BFC8A1AE03DED056AC /* SDLChoiceSetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0946E5C29231E794F5BE1235DBC535B1 /* SDLChoiceSetManager.m */; }; - 575532F352FD30C241A4F8A08E86A802 /* SDLMassageMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 785F69A758CC6573E45FE7A6598F61B5 /* SDLMassageMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 57823C7275F6F68B5C74AF6905FC904B /* SDLLogFileModuleMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 3347A8E18A7BA7E697F4FAC02971C531 /* SDLLogFileModuleMap.m */; }; - 579B11FBED84C912A3799334269EED04 /* SDLAudioStreamingIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 42EBF47E8F2913EC1CE334E935EB5CCB /* SDLAudioStreamingIndicator.m */; }; - 57A7AF43D521F0DB9874292AF1805173 /* SDLShowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EE7896D35763F8CAF64B08BA64C53DD /* SDLShowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 57B5A0D95AD17758F024FF65C4FC827A /* SDLLifecycleConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 76BD07CB451B98D050AD1A03BC6F8AB1 /* SDLLifecycleConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5819D315BD81F71750C6BAD914F7C5BE /* SDLMetadataType.m in Sources */ = {isa = PBXBuildFile; fileRef = C339E93BAAFE8EF680B5FF2F641586D1 /* SDLMetadataType.m */; }; - 584C7EB8C8A0BA9BE2912964F610EB11 /* SDLRDSData.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B950AA451BBC249F3334DAC75609D89 /* SDLRDSData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 58720313B5ED4BD082DEDE72CB6F9137 /* SDLKeyboardProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 0188C9625886A2778A6F31AEA7518719 /* SDLKeyboardProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 58E5CC6C7FDD68D29452343D6BCDC80E /* SDLLogFileModule.m in Sources */ = {isa = PBXBuildFile; fileRef = FEA3CF62D8E20C66A2127F8FE3D3DFB5 /* SDLLogFileModule.m */; }; - 59009DFAF888264F9A6837699BECC40C /* SDLDateTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 61FA3AFD5648ADEAE62EFD80E14460DE /* SDLDateTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 59495B95A002F05146D2D3968AF824C2 /* SDLGenericResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = A2307C9E899AF5180AD1093475004295 /* SDLGenericResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 599848E2E7D1412C801D088F449542F9 /* SDLGetDTCsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CC0A7A3D3F4D617D0E71AF1093961409 /* SDLGetDTCsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 59C827211A0E601F88C73D961DB3DAAB /* SDLTouchCoord.h in Headers */ = {isa = PBXBuildFile; fileRef = 897C955F52B3CC643F621B391FE0E0CD /* SDLTouchCoord.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 59CAECCC79309B3484BAAB9997144D13 /* SDLSystemCapabilityType.m in Sources */ = {isa = PBXBuildFile; fileRef = E7271585FE01A8942488AA222DE3AB43 /* SDLSystemCapabilityType.m */; }; - 59E429B41FBD1AF0DC31AAFE203A786C /* SDLDiagnosticMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = A37889971568605D482199E64332631D /* SDLDiagnosticMessage.m */; }; - 59F1D49EF414749ADFD938A46FFE2E72 /* SDLGetInteriorVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FBA716CC59FBC7633B82964878203C10 /* SDLGetInteriorVehicleDataResponse.m */; }; - 5AF1EBA29AB4A8847180272F72D31646 /* bson_array.c in Sources */ = {isa = PBXBuildFile; fileRef = 156154601077FD951E5C9AEEB63228A2 /* bson_array.c */; }; - 5B07AB7D077651E513AA9A2ED1CF44B4 /* SDLDeliveryMode.h in Headers */ = {isa = PBXBuildFile; fileRef = B3CAD82552831383429D5BFA74D39E8F /* SDLDeliveryMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5B1792B416C069B7D262E07E84F29E84 /* SDLIgnitionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = DC22D9FCA0E86BCF2EB200AC5CB8E1AF /* SDLIgnitionStatus.m */; }; - 5B8D3395CC4E7B16F282021534A1B89F /* SDLKeyboardProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 496F8FA240630F82A3F2A1D13DF8A11B /* SDLKeyboardProperties.m */; }; - 5C437A40847C6E19312701C758CF4D27 /* SDLRTPH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A5D8127E561291818D7A21C758371D3 /* SDLRTPH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5C521E0E378A0669EC6687EABC73348B /* CVPixelBufferRef+SDLUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D73D5CCFC3959A9781B253DDEBD3804A /* CVPixelBufferRef+SDLUtil.m */; }; - 5C5BDD02AE87289FABF6D1E1D55E8620 /* SDLOnSystemRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 41B5153EEE7EBA7454C7569C8E96F5BB /* SDLOnSystemRequest.m */; }; - 5C6EC3B4AAB8284B0D2C2D673F8A6317 /* SDLUnregisterAppInterfaceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 075A05913BC6F33B82BB059FE069BD5B /* SDLUnregisterAppInterfaceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D12F2534B91CD52D0F0C56CF0CB6D27 /* SDLDiagnosticMessageResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DBA36F74030B4F0E6662F5C79F37411 /* SDLDiagnosticMessageResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D58DF92FE6CE32BE79D5D559E6CFFED /* SDLDeviceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = FB7A1B092EFFA569A0209062DB70F20C /* SDLDeviceStatus.m */; }; - 5D8DF32389AB46560922E067FE0AC6C4 /* SDLLockScreenStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = C7C905D0B465F2AEBC7292AFD9059B7B /* SDLLockScreenStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5E1950E995CFEBB2895EF04F61D72770 /* SDLModuleType.h in Headers */ = {isa = PBXBuildFile; fileRef = B8054C0141274D800ABEAD4C1769C950 /* SDLModuleType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5E1FDFF0DF4769CCCCF4900C09B233E1 /* SDLEndAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D3D807D79D5970559544493C272AA4D /* SDLEndAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5E2A4D95173D3879F8B9DECA7665C7DB /* SDLTouchEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07593F3189E4191BA5055F4E3E6AAAF7 /* SDLTouchEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5E316BDBF7BA14D7869ECF1990470200 /* SDLDeleteInteractionChoiceSetResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C9316AA5BC0CAEF9D3E3B44A05F3E72 /* SDLDeleteInteractionChoiceSetResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5E4443EFA38A0E9D9356E31E93CD6194 /* SDLSoftButtonManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E0909068F2B40476D8DD18012ACEE182 /* SDLSoftButtonManager.m */; }; - 5ED42ED122955A56A12165FEAA266553 /* SDLSendHapticData.m in Sources */ = {isa = PBXBuildFile; fileRef = 71AD2A07C9CFE4A12C4EF8EDD7F55F03 /* SDLSendHapticData.m */; }; - 5EF2AE196488BFA83CD8CA7756F48187 /* NSMutableDictionary+SafeRemove.m in Sources */ = {isa = PBXBuildFile; fileRef = 98B6D6A6F9EE01A14C26E8C787AEE11B /* NSMutableDictionary+SafeRemove.m */; }; - 5F7C7801F2715031EC0DC8C0BF322C24 /* SDLPutFile.h in Headers */ = {isa = PBXBuildFile; fileRef = C6DF2C94DD0BF22417AAE9FD81EBA970 /* SDLPutFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5FE8EC1EBFBAC58BD6EF78358BCD2BA4 /* SDLLightName.m in Sources */ = {isa = PBXBuildFile; fileRef = FDD0F81844113F875E5530B74E5059C3 /* SDLLightName.m */; }; - 60125BE2D194F959E8B41E59AE5902A5 /* SDLResetGlobalProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 449521F0B43B71DD5E353197D1D06E3C /* SDLResetGlobalProperties.m */; }; - 6015D768048B1FF2C7D93F5AD3E9B89C /* SDLAudioControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = AE4BF1C901C2B8B8492E917831A635EE /* SDLAudioControlCapabilities.m */; }; - 60F18842E21833886C8FB23CB53BD584 /* SDLTurnSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = D6FECF75926265826FDEA4124F3C90EF /* SDLTurnSignal.m */; }; - 619CC002A2516F79E03D6CF554719934 /* NSNumber+NumberType.h in Headers */ = {isa = PBXBuildFile; fileRef = 468C5536AC1C0F7231083ECCF5A80D53 /* NSNumber+NumberType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 61A5483B85509933A8FD8A9C0DD79570 /* SDLLockScreenConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDC250868911E64709B0E0D0CBD42E4 /* SDLLockScreenConfiguration.m */; }; - 61FE567235554FC51922417BD35DD62A /* SDLGetInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E1A67020D9B2731251C24228133ACB1 /* SDLGetInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6201D5C7EB24ED976AAD8B7474A46AC0 /* SDLOnHMIStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = E93E46F79CD1636328C3E622271F2F2C /* SDLOnHMIStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 62402E9F6585EA4BFFB41AD1688ED42D /* dispatch_timer.m in Sources */ = {isa = PBXBuildFile; fileRef = D155EBD2551C3459E8B41CA19D856235 /* dispatch_timer.m */; }; - 62849765FA318D1EE6F25BE2142CFD47 /* SDLVehicleDataNotificationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 6803B20ED362AB70967B0C7055309A61 /* SDLVehicleDataNotificationStatus.m */; }; - 62BF3EE28FBFBA5CB49DAD3459171B92 /* SDLControlFramePayloadEndService.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4DA3080A6AFF4573043FADA7FCB772 /* SDLControlFramePayloadEndService.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6377C7E09DD017030CAD64860B15B8F0 /* SDLVideoStreamingFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = EF263A3DB489F2DFABE45E6A7B5EF757 /* SDLVideoStreamingFormat.m */; }; - 6385324515C13E42D57D36075A0FC12E /* dispatch_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = A865F676AEF73BD55A0E77571040471F /* dispatch_timer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 638569796129B05B2960F6135497396F /* SDLV1ProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA3EFDEAD056017AB9C5A82679E99B2 /* SDLV1ProtocolMessage.m */; }; - 63D5C70769C0A8BBE254DA0612185BF1 /* SDLSequentialRPCRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9254EF45C5191A8B292F657750380D1F /* SDLSequentialRPCRequestOperation.m */; }; - 640872600613401330E11A7B81EC41B8 /* SDLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = FA55B3AD506D7300199B1A88A4C1922D /* SDLProtocol.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 64359BE45C63371C5239DD515C7643E8 /* SDLMetadataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DDA353CC3E6C2F475B1D16AC7477D4B /* SDLMetadataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6436A7A4CBA712CAB6877C560BEC7842 /* SDLDeleteFileOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 19D811F2001EAF0E3140A317A15C2D2E /* SDLDeleteFileOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6453343C771486277D24FDAE17FA8C17 /* SDLSetGlobalProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = FB4C01D533FFC24E248651CE7EA674CF /* SDLSetGlobalProperties.m */; }; - 6471C1EA39AB6BDD493349BB0F3F5052 /* SDLDeliveryMode.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D88BD30A20B4D257B7CF47581E9CAF /* SDLDeliveryMode.m */; }; - 64A03FA26A7101B6BCC79CE756523718 /* SDLSeatControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 157A50F80F2AE11FF47679C6EB949AE8 /* SDLSeatControlCapabilities.m */; }; - 64A1FA70011DC1E2C21168C60FF3D41B /* SDLGlobalProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 45965A5B18DF1E47D2154BD8A8FAC30F /* SDLGlobalProperty.m */; }; - 64E3700E866F1EF4E958A30E218BADC4 /* SDLUnsubscribeWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = C9C4E34BF96558991703677F909C69A4 /* SDLUnsubscribeWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65A0562B9FD082EBCE7EE6BD8CD03CA1 /* SDLPRNDL.h in Headers */ = {isa = PBXBuildFile; fileRef = A50DEDE3CBA973F53236F30FA2FAB778 /* SDLPRNDL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66D0EE1DE1C35AE704F2EABD55682B64 /* SDLStreamingMediaManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D2FA97C41ABC4E9B58E7AD67F60EC9E2 /* SDLStreamingMediaManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66F0A4248266DE30C5660FC3E0C7D829 /* SDLGPSData.h in Headers */ = {isa = PBXBuildFile; fileRef = 396E2A6E63106E326669E7D49B49DEF8 /* SDLGPSData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 675267DB44A9C5A3A49616891C41FD59 /* SDLPresentChoiceSetOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = A327553C1C9C5ABD7E4229FEC523EB59 /* SDLPresentChoiceSetOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 678F5B3A655D04036EB44DD84E0060FC /* SDLTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B17A24A0D4554865BD3A2D6600A70C0 /* SDLTimer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 67E4D3D07E7C652B79B0DC9D37FC0B84 /* SDLPermissionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = C3AD77243F4F153EACAAED070520ED92 /* SDLPermissionStatus.m */; }; - 67F2B71B297BD5B7A61826F8EE8D3EB3 /* SDLDeleteInteractionChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 294B2803493B4F22870B023507F06FC5 /* SDLDeleteInteractionChoiceSet.m */; }; - 684AE1E013C508054D4BB8A5264F4914 /* SDLAudioStreamManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 230B9E5E007D13813F3B04ACEEF59470 /* SDLAudioStreamManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 687F0FC1C9C0461816CAF03E60188497 /* SDLOnAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = F69848BBB851E73A961ABD509A96FA9B /* SDLOnAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 689DCEDD61B14AA9EB35BB6011B0FF9D /* SDLUnsubscribeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 9929B63756D6EFC654DDAE86E9C357D8 /* SDLUnsubscribeButton.m */; }; - 691B6D70692287E94DC8130566976727 /* SDLSubscribeButtonResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CD9E0DF1EFE3DE7FF4D549A53E52886 /* SDLSubscribeButtonResponse.m */; }; - 6923C05E7716FDBCF161524774C2F927 /* SDLEndAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE6606F6C0D71B52E9372BC5167AEDB /* SDLEndAudioPassThru.m */; }; - 6993E23A089FA7816120DFB82DAC3578 /* SDLElectronicParkBrakeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 57E931AA5B67D1C316B05D9969D72FA3 /* SDLElectronicParkBrakeStatus.m */; }; - 69FB93D0116138B7E07F844C8EAB85EF /* SDLDefrostZone.m in Sources */ = {isa = PBXBuildFile; fileRef = BD56DFEDFD0199DD5616B314968F8800 /* SDLDefrostZone.m */; }; - 6A87455EC4D7876D3DA2E5BE5F5AF0E9 /* SDLModuleType.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A53D998E7BE6ABB127ADBCB5D4437AE /* SDLModuleType.m */; }; - 6A948ECACEF216EBE9DDB24C6478D643 /* SDLLockScreenStatusManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 25C4802F58BEA5CB3120F017CF4F345C /* SDLLockScreenStatusManager.m */; }; - 6B1BFB30E6C8E61D070CF22A0D60EF5C /* SDLRadioState.h in Headers */ = {isa = PBXBuildFile; fileRef = A57F6B056F41644C1EB503B9714738C9 /* SDLRadioState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6B32F18C846F4543DE1158232607CB4A /* SDLSubscribeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 35CCA10DFC8096AC5E016E46765C017C /* SDLSubscribeButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6B35838B0C178C20C8F9AA7B39AD2436 /* SDLRemoteControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E2EBD053D79C772222DE2E10B18D8FE /* SDLRemoteControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6CD9FA00A43F43A0895239773EFECE3F /* SDLScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 242E4D08F5FC5F8C12AC9DA213999E95 /* SDLScreenManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6CE817B375D223147971E231C0C75D4C /* SDLSendHapticDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = A13F7104F602D8CCF55BE328CCAF9BAC /* SDLSendHapticDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6D3EC75329E42B60C09DB45B4FE8F1A5 /* SDLDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 77E606788D8EBEE9E7E4BC5FE8E237A0 /* SDLDeviceInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6DA110ED4E5F99E15B2978088CCE0F95 /* SDLMutableDataQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = DD5EBB52421A1DB35F7FC66083B6A92C /* SDLMutableDataQueue.m */; }; - 6DDEBD45DBC204F6707EEE60817DF84C /* SDLUnsubscribeWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = F0877301378FB5E31DC1FF839B052571 /* SDLUnsubscribeWayPoints.m */; }; - 6DF459A12E445476B870AFBD22EEDC6E /* SDLStreamingAudioManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 60D99BD0A38FFE51A06990C44060C1B5 /* SDLStreamingAudioManagerType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6E50FF0AFB0BD5AA002DA12EEB5DE34C /* SDLDistanceUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E9AE8F88AA007A3E77461413B3DB811 /* SDLDistanceUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6E9DFC2CB83FEE9A4AFEA9AD7EE227C6 /* SDLOnAppInterfaceUnregistered.m in Sources */ = {isa = PBXBuildFile; fileRef = 54DC3D413110C5F46BA1C71A76E934EE /* SDLOnAppInterfaceUnregistered.m */; }; - 6EA08212E297F9E760FDB281CCE92EFD /* SDLFunctionID.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B5958E143197424F748276D3BB21607 /* SDLFunctionID.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6EE15D9FAFC9ADFE4A9A0AA14DBEFCCF /* SDLHMIZoneCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = DA0377EB4FCDD2096F6E8366E5B16C09 /* SDLHMIZoneCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F15506076F3F351F97967128708885B /* SDLPresetBankCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 272E5831D3FF424605127427E7A90BC3 /* SDLPresetBankCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F380499045F205FAE7E1D8BF98179B7 /* SDLMassageModeData.m in Sources */ = {isa = PBXBuildFile; fileRef = B4B24D0A8CF05DE6367A50C62E6BB4D3 /* SDLMassageModeData.m */; }; - 6F3A11071AAAAB089CAFF163A89E33C6 /* SDLRadioControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F6D75EF40F4FAB836D0BB49BD187336 /* SDLRadioControlData.m */; }; - 6F43639A1BCFD9F961DFD27B0FF5ADD2 /* SDLRPCResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FD44B3ACC314A595F73DDE8C41B4345 /* SDLRPCResponse.m */; }; - 6F489960F374B7AD6F326CEE9496523C /* SDLGetVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 824EBA2B2FB87B435FB19A9D74F6FE70 /* SDLGetVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F6B40B2CC73CC75F8F089F7F460035C /* SDLPrimaryAudioSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FF369F4106991D828A148129F2E8B0A /* SDLPrimaryAudioSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6FABBA50253B6A9D25C9285817C97E31 /* SDLFuelType.h in Headers */ = {isa = PBXBuildFile; fileRef = 18E76DED3EBCF8F68EAC43044C919DBE /* SDLFuelType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7068C62C81BC53E62B4E56697908FBB8 /* SDLTextAndGraphicManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EC69CB6F6EE1A9CE6603EC0C528E22F /* SDLTextAndGraphicManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 70A3EF519C0F612927B5E8D0E787FD6C /* SDLOnButtonPress.m in Sources */ = {isa = PBXBuildFile; fileRef = F75470D9588DBC08DC94E74BB7E678F4 /* SDLOnButtonPress.m */; }; - 70A85F0E16284719A8CCB392E2F37115 /* SDLStreamDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E88F2B657B46A7ECC846CDFFF5390F31 /* SDLStreamDelegate.m */; }; - 70C704BD6E1E11AED47E7DD908749648 /* SDLDistanceUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = 140FFEF6BCEE5E988BE93C6C07C53F70 /* SDLDistanceUnit.m */; }; - 70C8FA5936878326DCDFCB8B2D8D8CF6 /* SDLOnRCStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 31CDA2AD721D16F7CB22C8FEB7BF1900 /* SDLOnRCStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7164A7E8BA2EBEE0EDD857AB70B1C470 /* SDLScreenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C6E41A82E5A6888918B0B8014D20735 /* SDLScreenParams.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 724A1144F6F9981F9D5BA1F6B7CAD6B5 /* SDLTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = 67B626A3DF2C3F1EFB63B489EDD72508 /* SDLTouch.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7277022B57CFC404A1EB8857A1CDF021 /* SDLGetDTCsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E2ADED48EF297BC164761232F2B6215F /* SDLGetDTCsResponse.m */; }; - 72D0F8CE4CAFAF66BCCD89088FFA6164 /* SDLOnAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = 05CFD8AB043CBDA71EE6189923FD98CE /* SDLOnAudioPassThru.m */; }; - 73080D254467A5B7B0544ABAFF474274 /* SDLButtonEventMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BEB89763BD1E176E41C5EBB3826F50C /* SDLButtonEventMode.m */; }; - 7358421F622FE594A4276021A5C124E2 /* SDLChangeRegistrationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 627289BC87F3B0D346ED8F78C3279330 /* SDLChangeRegistrationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7397FD913BC034E932B3090DE6B570D6 /* SDLControlFramePayloadRegisterSecondaryTransportNak.m in Sources */ = {isa = PBXBuildFile; fileRef = D1EC5DED346FD7BB7895AEBE3DFECB5F /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */; }; - 7462E7EB73EE5F66A111FDBC628E92EB /* SDLHMISettingsControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D3777E8781C62321F0499DD71507012 /* SDLHMISettingsControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 746FF0E71473A927DAF049430D5F2054 /* SDLDimension.h in Headers */ = {isa = PBXBuildFile; fileRef = 7276A699E37C828398FD98759C45D7B5 /* SDLDimension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 74F68BB605550B1170CA892F522DBEE2 /* SDLSamplingRate.h in Headers */ = {isa = PBXBuildFile; fileRef = AE2A8A0E7CAEFE4B324B71C286DAE1CC /* SDLSamplingRate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 757AC3096594B571097AB04B242DA216 /* SDLReadDID.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EA642FC8AF9F46DC3E8AE79DDE2E472 /* SDLReadDID.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 759E2DFEBA77AB77AC3841384A4642F8 /* SDLListFilesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 23D2C8F579F60C519B6CD10AAB64E9D0 /* SDLListFilesResponse.m */; }; - 75D5B0EBD0FD6C50F0689C4989661209 /* SDLMediaClockFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E5B936160771899CBA8BD8776D883F5 /* SDLMediaClockFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 75D810843E2A0E4FA90FACFFE42AB56F /* SDLKeyboardLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = FB7882BBC66764C5C31631C3E44872D9 /* SDLKeyboardLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7663F4D01A32404CB6A0B75C791FCE66 /* SDLMutableDataQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 2920908C8251D21559604E07DAE9CC4F /* SDLMutableDataQueue.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 769FA72939C4B110B101EE74EB4F5360 /* SDLAlertResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 209D2EF1609225256F98BE7E93F0E3D8 /* SDLAlertResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 76AE451EE727182D27416E47091AB4F3 /* SDLH264VideoEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FEC2CD895899EA829A11AB6F3A45BB8 /* SDLH264VideoEncoder.m */; }; - 76CCB2091B2141F0DE187DEDF9CEB84C /* SDLShowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AF600A0C57267F1F8E415344E6BAFFC /* SDLShowResponse.m */; }; - 76DD5F04C9D0EFF928EFE824F480388E /* SDLOnTBTClientState.m in Sources */ = {isa = PBXBuildFile; fileRef = 8920D3ACDD019CFE7D7EC52C8C57C6AA /* SDLOnTBTClientState.m */; }; - 7716C0BB0E2A2EA9A0EFD9505E71D45D /* SDLClimateControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 599BA3E45332CFB483D279AAB352F58E /* SDLClimateControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7746DA8115BFA3F56B0E3CECF27104B7 /* SDLTextFieldName.m in Sources */ = {isa = PBXBuildFile; fileRef = 613CB777291FE463B847AB0CE424E3E2 /* SDLTextFieldName.m */; }; - 776242583F47FE5061962145742DFD9D /* SDLTurn.m in Sources */ = {isa = PBXBuildFile; fileRef = 567704385F3D6A56D7306254057ABE58 /* SDLTurn.m */; }; - 777B60664323D91B12134EE0BF4121B2 /* SDLFileManagerConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 72A178D46F20374B4187B44480590E7B /* SDLFileManagerConfiguration.m */; }; - 77982001C189F612C9F6EBD7141F0845 /* SDLSubscribeWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 37D8092920B8E5E088E7054B0E3942B8 /* SDLSubscribeWayPointsResponse.m */; }; - 77A71EAA82BAB13693880A019AD0B2F7 /* SDLAudioStreamManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E3BF372C29FFEDC636D34D2F7BADCAAA /* SDLAudioStreamManager.m */; }; - 781AEA16368564E74F2D0E43DC20D7E9 /* SDLFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EE41E56DC2D82CBE3A4B6F45276F73C /* SDLFile.m */; }; - 783B704F7AE68B152C43E52B371B7BDE /* SDLRDSData.m in Sources */ = {isa = PBXBuildFile; fileRef = FB5934EB6BF2DD837A0DDD267F040DC8 /* SDLRDSData.m */; }; - 784C343D84C571A9BEB4CE3475052D4F /* SDLClimateControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5E57DB0AA0B5AA154EA5AEA8AA3469 /* SDLClimateControlCapabilities.m */; }; - 785603287327EDE2E8CB19C650E46E35 /* SDLSetMediaClockTimerResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = EBC44269990CF3B877BB2720CEC9CB74 /* SDLSetMediaClockTimerResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 786DE4402DE0397F432C0614F6F5D1C9 /* SDLClusterModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = AA8E57A241FA68D63DC62680BD9828FB /* SDLClusterModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78714ABA9091EDC61A1532C19CEF622C /* SDLSetAppIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 11932588F33A92E88B06122013AB8F35 /* SDLSetAppIcon.m */; }; - 787972CCEDF25360956170291DC29744 /* SDLStreamingMediaManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = D2C578E5041CA51DAED52E0CA76D5B99 /* SDLStreamingMediaManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78B32A463421A20D742629D3899757EE /* SDLAddSubMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 22FA33898196119A09E11F83C8B822C4 /* SDLAddSubMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78B6E75E6E07E1C52EC9D077C61170D8 /* SDLSetDisplayLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 318E7D64E2E03688E5466308C0C8EAD0 /* SDLSetDisplayLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78C1738424A8DA7F057E3394302AF48A /* SDLSoftButtonType.h in Headers */ = {isa = PBXBuildFile; fileRef = D9D727BA4020333B94CAAB14C5548B42 /* SDLSoftButtonType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78FD1DAD8440B443E2EC83997DF47F1A /* SDLNotificationDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D7DD122ECD04717DF72D111757B25D26 /* SDLNotificationDispatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 79A8011035A5ED9C33769968D9F02C0C /* SDLLightState.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E7D99673CE2765D739C37675F9E6800 /* SDLLightState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79C6CE11C7DF25024C6679A5DB1F4FAE /* SDLProtocolReceivedMessageRouter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F116A936C935377D447B23EA176F852 /* SDLProtocolReceivedMessageRouter.m */; }; - 79E37A64DEFA4B2F78CD1D7285440A4C /* SDLGetWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 69EA01C2187093B7478259DDCAA70FFF /* SDLGetWayPointsResponse.m */; }; - 7A3E7ABDBE6A87ACD034680F232F6ED4 /* SDLCarWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = AFF7A262EAE52FF8DBB294F33EA13B91 /* SDLCarWindow.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7AA91B2E529CBF170D94D7517000D8C9 /* SDLProxyListener.h in Headers */ = {isa = PBXBuildFile; fileRef = A2A0B72BF01B26F54F317403448BC95C /* SDLProxyListener.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7ACB3CE55A4AC735DA8662EC6501EEFA /* SDLMassageCushionFirmness.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D6C98D5009149E1EBB3CB41C86D68B8 /* SDLMassageCushionFirmness.m */; }; - 7B7F4C3B894E9E410F1719500F12F018 /* SDLModuleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4399C0A212B0ADF6F7FC0F8BE41255 /* SDLModuleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C24C1FF5B42A7B232F6D3863D956603 /* SDLPermissionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B67E7C32818DC46A3AEFD981A52B59B4 /* SDLPermissionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C976E665344372DA60F4309CD8553A7 /* SDLRGBColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F6ED7ED1A5D6F4B1FF1AE4ABAAE5CC9 /* SDLRGBColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7CAE7568850D1AA81715A2EF9F9815AB /* SDLLockScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B13E714E9CFF859E95191063BF63F15A /* SDLLockScreen.storyboard */; }; - 7CBFDD61D75E8B7A0F25E3FA795820C2 /* SDLOnVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A8536C9E1E43EAA321587775D6769CE /* SDLOnVehicleData.m */; }; - 7CCEC1E66E94041D1F74F9CF22E21F50 /* SDLInteractionMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E3A2064E0524131FC651270B2D6B5BD /* SDLInteractionMode.m */; }; - 7CE26F1A66FB46B9FE889042A76408FD /* SDLDialNumberResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D20EED6DBEE6CA1DD9E9548FAC44753B /* SDLDialNumberResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7CFBA7D2F01E5D1593312B5CB73ABF13 /* SDLGetWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = 04546B8E310BE2EF2A7229A62D91C44E /* SDLGetWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D0F53729B80BA2F3DB3CE67B31FDC04 /* BiSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CDD3D2D0CF385680EB87073079FCBB8 /* BiSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D22E37A70C6734FB513539B67D8D57C /* SDLTextFieldName.h in Headers */ = {isa = PBXBuildFile; fileRef = 6263819ACF21688B5F135FFFFADBDDFF /* SDLTextFieldName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D6FF10BD398DDB43B07B51E5B2BDD86 /* SDLClimateControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 46852D0AC965ABFD040C0CBC94BA7ED3 /* SDLClimateControlData.m */; }; - 7DA0AC10F035DC7E6330F5738A07F804 /* SDLEmergencyEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = ED1462950A60906FEC2552CD8926221F /* SDLEmergencyEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7E0C562145A87C039B0760E3E95A3EFC /* SDLLogConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = DE91B9B41F921F65A15BB1A61C45F3A1 /* SDLLogConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F1FC25EA0852CF016F1DE044E3AF9BA /* SDLTransportDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = C75F3D86ED3595011FD0EF82DEE4B281 /* SDLTransportDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7F2F0C20D109DD27352C422FF2D10BF2 /* SDLIgnitionStableStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 8511C1F0379CE4B64BA23E97F063E0F8 /* SDLIgnitionStableStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F2FA0BF4A1EA840E50CBC116B9E06BF /* SDLECallConfirmationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 477073728CED1665888DAB004B490CE1 /* SDLECallConfirmationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F41F9E5C935DE00F69F9446B0C02FB0 /* SDLSystemCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C2874B5B64A663350964F44E1ECA561 /* SDLSystemCapability.m */; }; - 7F6436B3FF706FA2681113944117A4F4 /* SDLOnKeyboardInput.h in Headers */ = {isa = PBXBuildFile; fileRef = B4154878A32585ABCD9B57764494D6F8 /* SDLOnKeyboardInput.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F83B8D30D412264CB064FBCA65280F7 /* SDLRPCPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = 906B43B3B42C2419F13B44D7649B956D /* SDLRPCPayload.m */; }; - 7F95596B16851C7F2C54180FC0777A21 /* SDLMaintenanceModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = D71FED2BCC771A573C90BD4F83AEFDFF /* SDLMaintenanceModeStatus.m */; }; - 7FA0297BD2724D838BD70099450698EB /* SDLLightControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = F3F9A0650155304168FA15D074849F22 /* SDLLightControlData.m */; }; - 7FE813856BB80DB6CEFF1C7E5882006C /* SDLTPMS.m in Sources */ = {isa = PBXBuildFile; fileRef = 8592C8905CFA25913170F954352CB90D /* SDLTPMS.m */; }; - 800B5BDB6D355F95E41BDE9E48CDF6D2 /* SDLReadDIDResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 775FFE7FBE19948FC9401B4F0776F397 /* SDLReadDIDResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 804B8220D4707682A8FA3F55A42A8B7F /* SDLRemoteControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 9045B17D93E29F5654B083F0E3B91871 /* SDLRemoteControlCapabilities.m */; }; - 816F4CFFE91C7D74124ED71DBAB0C286 /* SDLEncodedSyncPDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 04992831D25E1188652283952664EC71 /* SDLEncodedSyncPDataResponse.m */; }; - 81B60E21B42BEAE2B1067348CC1151D8 /* SDLStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = FAAFF0562BE405586BCF1FDDF36AE5ED /* SDLStateMachine.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 81B622E5CB6CB2D43A77962869486595 /* SDLAppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 23EE9A21D80BC70F8C3386F5544D3716 /* SDLAppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8265AF842FC74F52B21E42CB7BBA5F46 /* SDLDeleteChoicesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 72D57C660CB1CFDB78815F561CA5B9C1 /* SDLDeleteChoicesOperation.m */; }; - 82C83C702C0EECAF4017163557F3FA8F /* bson_util.c in Sources */ = {isa = PBXBuildFile; fileRef = B5B713A7888C5CA5C3D01DB96C67E877 /* bson_util.c */; }; - 82CBBE4620700F92B289B34597B60B59 /* SDLLogTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = F24E7F5DD21FD40A9EA898618D233EC9 /* SDLLogTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 835C88CAD5F6D267574720BED6A0CD97 /* SDLVideoStreamingCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DBFF64D9B2AD1BA9EE49B1585A50913 /* SDLVideoStreamingCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 83753EBED7DB7EFE978690DC635F9C91 /* SDLOnTBTClientState.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C44944669F93F4CD5B2A347BC128591 /* SDLOnTBTClientState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 83D66C311A68AC9FE1602F18A540186C /* SDLAudioStreamingIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 19C8E45308B74793CF2A9B319797F667 /* SDLAudioStreamingIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 83DB672B245743109384B786A824D9D5 /* SDLControlFramePayloadNak.m in Sources */ = {isa = PBXBuildFile; fileRef = D48BBF34727DF6DE38DED9EC43E5E939 /* SDLControlFramePayloadNak.m */; }; - 849D05FD8CC51033404A1F6BA659FFF0 /* SDLEmergencyEventType.h in Headers */ = {isa = PBXBuildFile; fileRef = D16AA0C2FE332401CE7F57F13834F32A /* SDLEmergencyEventType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 84BC28431CE62A0DC048B62F0355C56C /* SDLVoiceCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A475293FD2E00B06407A29CE402B3CE /* SDLVoiceCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 84BCD25F112313EF4F15675D3A650A3A /* SDLProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B152F340FD0B7F3F3070CC16D3CA123 /* SDLProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8522A1A57853E7CF7C31DA0A7A4AB0E3 /* SDLMenuManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0111E8E88553B97161A2721E1AE43A1E /* SDLMenuManager.m */; }; - 8537418E304BA431B24196D5DF17D90D /* SDLControlFramePayloadNak.h in Headers */ = {isa = PBXBuildFile; fileRef = 73BF15804B3C2E102BB06B6A1FB46829 /* SDLControlFramePayloadNak.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8543F60F5BA6080AC723E1AC53854113 /* EAAccessory+SDLProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D9C9895A536BD8FB295228F8BF0398 /* EAAccessory+SDLProtocols.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 858549FFA24533E78E3F4CECF92F262B /* SDLFocusableItemLocatorType.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FA676189DA006AC1F36A4F3A550F0D8 /* SDLFocusableItemLocatorType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 858C3DF22080180C08F0980AD34A89FF /* SDLTireStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 91BDA2325DA14618CF06ECCE83BAA12C /* SDLTireStatus.m */; }; - 859097EF70C7B5BBFD63FDB2EA23C662 /* SDLProtocolReceivedMessageRouter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CD2936B444045437D2B8385225ABCD1 /* SDLProtocolReceivedMessageRouter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 859B69F68E9CDA169469B014F93CFF09 /* SDLButtonPressResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 50B52EA74D5660706430668E12DC6C34 /* SDLButtonPressResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 861219BAC33161FABE35382945E05D5D /* SDLCreateInteractionChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = C343EC627C793FA593EED8C0AD723864 /* SDLCreateInteractionChoiceSet.m */; }; - 869F21A1E29089A877752C424560023A /* SDLRadioControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 62825F78AC67E047CDD779B82434FFFB /* SDLRadioControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 86CC298B59D86368CE05871D9544B024 /* SDLParameterPermissions.m in Sources */ = {isa = PBXBuildFile; fileRef = F0FE7D045A05C40642E1D494C142ADE2 /* SDLParameterPermissions.m */; }; - 8768410D76920D09B094F699B31235F4 /* SDLSubscribeWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D4F1CB611287E0564A46366E467F2B99 /* SDLSubscribeWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8813BE16A05532E0C390B98240FC4C92 /* SDLTemperatureUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A44B618A753930AEB7AB149D4B8216A /* SDLTemperatureUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 88D8A69F374852EE90264942E3534F74 /* SDLImageType.h in Headers */ = {isa = PBXBuildFile; fileRef = CC2CF1557DA0FDB593F5A186F18275B1 /* SDLImageType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 88DA25C0BE006FCB2279BB1A6C976F4C /* SDLCompassDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FE9C23070AA78567710035A0CBD5AAD /* SDLCompassDirection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 88DEDA2DC0F96EFB29F541C4D70AC91F /* SDLVideoStreamingCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = E8C4C7AA6A5BC02EF4D43A491686D9EA /* SDLVideoStreamingCodec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 891252AB8734EC4A6D2787E7C37C981A /* SDLLockScreenConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = B6AFFD1A7B3E62B4C607E8E8C4787F6D /* SDLLockScreenConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89AAE75E084941AB4DC95BC6170B0423 /* SDLComponentVolumeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C1D3256D905B03474679371A70F0D78 /* SDLComponentVolumeStatus.m */; }; - 89F9CC51698C7CE001EB2AA56B413072 /* SDLSetMediaClockTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 82983133771C2647E3DB3C7CFCCC1923 /* SDLSetMediaClockTimer.m */; }; - 8A13A50A3BCFE1E95F5D0294DF0729C9 /* SDLRegisterAppInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B25AD2C3F432E69C3F7C65A1FD3AF35 /* SDLRegisterAppInterface.m */; }; - 8A993F6473BDF02FF0BE27F6D0090945 /* SDLSoftButtonObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7A37098585D1F6516F67BC762B9572 /* SDLSoftButtonObject.m */; }; - 8B8F050BB059033CE82056F8B3AA1422 /* SDLTouchManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EBBAF147C064ED2D11A1F98C0FDD1B2 /* SDLTouchManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BC6E562601625464A53BC742A91365C /* SDLAsynchronousOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D76C1021781ED7448582B85A5F97EA /* SDLAsynchronousOperation.m */; }; - 8BCAE1C114A5E67B3A5ACE4C6AAF7A74 /* SDLOnLanguageChange.m in Sources */ = {isa = PBXBuildFile; fileRef = CFB25071577FDEADE8D9DA79FCE735B8 /* SDLOnLanguageChange.m */; }; - 8BD7401C23DB6C1771107EB9E6C5E198 /* SDLControlFramePayloadAudioStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = F3C46E32597E5AC52E2AF0079E7550A6 /* SDLControlFramePayloadAudioStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8BDBA188EE37C24C29B742DFE65D3220 /* SDLLogTargetFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FF46BF4BEB8FEB342F1AD40824347D9 /* SDLLogTargetFile.m */; }; - 8C6D09960AD4258C1FBEAD9661CEE7B2 /* Pods-MobileWeather-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F63F1BC5EED51E8F4A0CC89A563E14B /* Pods-MobileWeather-dummy.m */; }; - 8C8F935BE65EB35F0E8AE6726390EE7B /* SDLVideoStreamingProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B7878ADF0F0D6A17DAE063071E6CA8D /* SDLVideoStreamingProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8D3B4AF8D23A9F7DB6AB859C69156FA6 /* SDLOasisAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D2CD286B7D32EA822FA311A2885651B /* SDLOasisAddress.m */; }; - 8DA1C57ADF79BF80EE4695C6CF9FEE4D /* SDLVoiceCommandManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F2B21041C8038135FEF53BB001EF0F91 /* SDLVoiceCommandManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8DA880DCDE62B93A8B72040B2F3D6DE7 /* bson_object.c in Sources */ = {isa = PBXBuildFile; fileRef = E435A1D99AE03AAB0AF44855E77E5EA0 /* bson_object.c */; }; - 8DEBA1421C4DD7D3A9595087D4FA4E2E /* SDLDialNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = F07B93A82B076C766CF6D8E8DD56F230 /* SDLDialNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8E352B731B8D43C9B57913C974585A10 /* SDLUnsubscribeWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5ED1206D735E32E869AE7B5BDA210D19 /* SDLUnsubscribeWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8E8ACC9765AE19DC38F34CC924DCFE9B /* SDLUnregisterAppInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = B96911424DB8E68C3F7A172EE62500E1 /* SDLUnregisterAppInterface.m */; }; - 8E9B107A40C3460FB540F154FFB49BC0 /* SDLListFilesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2032173FB118D500BFD0E7DA8D151574 /* SDLListFilesOperation.m */; }; - 8EA3AB26A43188089B88B94C7DE08F0B /* SDLBeltStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B024EAAE8FE8613F0B95316436C6A9C6 /* SDLBeltStatus.m */; }; - 8EA68FBFA7BBDC1E219596A73B121187 /* SDLMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = DA84D035271BEC110F9662786D43FBD4 /* SDLMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8EF3ABA3CA3403D40675B8DF873BE0B5 /* SDLRegisterAppInterfaceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CB4AB147F798B079321105636F4622F /* SDLRegisterAppInterfaceResponse.m */; }; - 8F296101D47FC1947CA562C2FE18F52F /* SDLSeatControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 03E8ABDBE6E613232D8983F9512CB9A5 /* SDLSeatControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8F652C9DFD39903EB774478F3919DF53 /* EAAccessoryManager+SDLProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = D322261099FDC3DD07B50C9CC5B1D750 /* EAAccessoryManager+SDLProtocols.m */; }; - 8F67745B0596A71442906332D380019B /* SDLLocationCoordinate.m in Sources */ = {isa = PBXBuildFile; fileRef = 465CA59A8B0DC98C5EF708EAA534686B /* SDLLocationCoordinate.m */; }; - 8FA6FDBF6D81BD1B23490E769F293984 /* SDLVehicleDataEventStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = AD448DE63DDE2D4588D5BCFF9FF3CED6 /* SDLVehicleDataEventStatus.m */; }; - 90A1A5F00F12FEA450305FDB8DA22633 /* SDLOasisAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = CF7790CE899A39C998556055A1E7D05E /* SDLOasisAddress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 90F9085E102C7CDDE4CCB42C81782F8A /* SDLOnLockScreenStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = D27E5CC47CABA4801370B09E862441BE /* SDLOnLockScreenStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 90FB25EE09CDEE341453FFA847FBCAF7 /* SDLDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 12B0F792AFBD733E34339ED1088AD36E /* SDLDeviceInfo.m */; }; - 913F900A3AC826216BB2009A6733D1D3 /* SDLGlobalProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = 82541979FF412D8D3EBDE11F3B67A44F /* SDLGlobalProperty.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 91AD5EF96211EFE7FBF554AAE63C5E71 /* SDLHeadLampStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 40A128D8E15179FEFF5E6E00D350F202 /* SDLHeadLampStatus.m */; }; - 92A53AB6471AAB551EA6F4D2AA5D5970 /* SDLPreloadChoicesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D715B7E1E49032AE4CB109BB45DBBE4 /* SDLPreloadChoicesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 92F3D65CBC805FF006AB22F0C8641965 /* SDLRPCResponseNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 806DF22E4F83CEC997C374E69488DD96 /* SDLRPCResponseNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 930D36D2C2CFB72D4B2C3A01D36D8278 /* SDLOnHashChange.m in Sources */ = {isa = PBXBuildFile; fileRef = BB6E2F8ABEE4FC81BB4C0673B65E197F /* SDLOnHashChange.m */; }; - 932CE5DA675E60B3C981DB384E9DF021 /* SDLVehicleType.h in Headers */ = {isa = PBXBuildFile; fileRef = A89A9EFD2D36F49E08C182ABDCE2991F /* SDLVehicleType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9354EC7D6C645D3D684A0420AE46C73F /* SDLSystemRequestResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 01927F53ACFE6C35599C291FAECAE508 /* SDLSystemRequestResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 93E7DF6ABAB0B63BCF3A43F04806CA92 /* SDLTouchCoord.m in Sources */ = {isa = PBXBuildFile; fileRef = B13627FB4B377D445F3A6608F656BE31 /* SDLTouchCoord.m */; }; - 944EAE83486EADA35F0A0957440A30FC /* SDLSendLocationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = EA6D4C3D5EF2FDAE040D325A759CB6BB /* SDLSendLocationResponse.m */; }; - 94AA8314B82E73293B721B3103718D68 /* SDLUnsubscribeWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = BD7E70381BF9886C592D42AAACE7D474 /* SDLUnsubscribeWayPointsResponse.m */; }; - 94B42CFC4C940C7C72952993D42D7909 /* SDLVentilationMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B3C337257E971AE52091FADEA1E69BD /* SDLVentilationMode.m */; }; - 94C192D6CD9EEB91C139154B12E3FE97 /* SDLTouchType.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE97070D2DD7177A7C271893521CA74 /* SDLTouchType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 94E4A781FA4063E85C9A4FD45660EBB7 /* SDLKeypressMode.h in Headers */ = {isa = PBXBuildFile; fileRef = C7B0E1C7EE33B7EB279CD11839EE6739 /* SDLKeypressMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9535545C5CCEB1727A7FDD58F4472585 /* SDLEqualizerSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = A874BEFEF52CB9BA5367A462CDEEADAF /* SDLEqualizerSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 95C30385C00538D6AD46FF3B45B58543 /* SDLRPCStruct.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C1ACD7149C1EA7C8D901437F63FF9B4 /* SDLRPCStruct.m */; }; - 96303796E0911FC98A50B810061DC683 /* SDLFileType.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ACF94031C97BEE9B67254A7A1FD9DCD /* SDLFileType.m */; }; - 9638A2B8DCC8F94FCB32EEDB97FB5E3A /* bson_object.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AE0C41A32832B291234AD2D5DDA906A /* bson_object.h */; }; - 964C64B372CE0D95A9D5E598846FE2F8 /* SDLUpdateMode.h in Headers */ = {isa = PBXBuildFile; fileRef = AD6E04FFE3A2EB19E5F08CB202D45045 /* SDLUpdateMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 969FB5BDFE1E1390A4B59B44B78194BC /* SDLVehicleDataResultCode.h in Headers */ = {isa = PBXBuildFile; fileRef = 962BB9FDAFCD322B51AFEAA3F30F88C5 /* SDLVehicleDataResultCode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 96E47B55DC6DB8E5B2764DB1F2DD99F3 /* SDLButtonName.m in Sources */ = {isa = PBXBuildFile; fileRef = F783AA681B65EB189DCDDBF0D479C97C /* SDLButtonName.m */; }; - 973BBB450E46C22063DD9BAEF384D18D /* SDLDeleteFileOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 55FBF2206E466027D718DFFDCE35B916 /* SDLDeleteFileOperation.m */; }; - 97996A8675B8EFDB46D6108CDCA8764C /* SDLLogTargetOSLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E68E92B02B4CA38AF0E73923EE34217 /* SDLLogTargetOSLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 988933F47345563E06CD83A33A2497B6 /* SDLAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = F8422108EBCA981187191FB5C1C6143F /* SDLAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 994313BB8B5E490016DD97E6DAFA38C2 /* SDLScreenshotViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D75553FBF05C6083BCE6F156DE8AFB6D /* SDLScreenshotViewController.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 994808B23DAB46CCA68B9AFEE5AA1810 /* SDLLogFileModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B40E200FFCC2C033F655E0762F736EC /* SDLLogFileModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9963ED0F7988732750C0516556DBAD4B /* SDLFuelType.m in Sources */ = {isa = PBXBuildFile; fileRef = 16CB44DA8808ACB9442032A9896329A8 /* SDLFuelType.m */; }; - 99655449FA6C22312D322E788018DA07 /* SDLAlertManeuver.m in Sources */ = {isa = PBXBuildFile; fileRef = E521173FA983C64B20D3C21020B9DAA0 /* SDLAlertManeuver.m */; }; - 998696CF7E4C4635B7866B440F36390C /* SDLDeleteInteractionChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = B03B3A058C9D0BF765F99E1614A30742 /* SDLDeleteInteractionChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9A07DA3DAA36B7AB9A76ABDB3EF0C614 /* SDLGetSystemCapabilityResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A6B8D51F0041FD1CAA462F5ACAF4C92 /* SDLGetSystemCapabilityResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9A1D30D7941623B78C80B13034F85CAA /* SDLSetMediaClockTimerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 55A7A1220C06CCE1A9A4550B36EA8D03 /* SDLSetMediaClockTimerResponse.m */; }; - 9AD204320DEEEFCC935A51AC0E8AD022 /* SDLControlFramePayloadRPCStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = C534A8E7EB957888755A23CAD66D7EA1 /* SDLControlFramePayloadRPCStartServiceAck.m */; }; - 9B1553AD58BCAD6C76ADC2FBF49B965D /* SDLFileType.h in Headers */ = {isa = PBXBuildFile; fileRef = A67726019D1949E4970552C764865F6C /* SDLFileType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9C032EBF1A2F7D118592980A8F2B5972 /* SDLDiagnosticMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 72EC467B07A1E6122174621820BE095D /* SDLDiagnosticMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9C79AE73E65C63E06E551EA421B90DA0 /* SDLButtonCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 2336A40D34E885F254A79371F2D5B37E /* SDLButtonCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9CE741D0B5CFA7C1782FA1CDAEE6EA87 /* SDLObjectWithPriority.m in Sources */ = {isa = PBXBuildFile; fileRef = 24B9F83191862C3DAB127D040D7E84C4 /* SDLObjectWithPriority.m */; }; - 9D2B5BC81F36332FAA2C687D2C6D8191 /* bson_array.h in Headers */ = {isa = PBXBuildFile; fileRef = 094669C6706179A5AC880CA3B34CBE24 /* bson_array.h */; }; - 9D2ED0822374AFBFA643EB06818A8E53 /* SDLArtwork.m in Sources */ = {isa = PBXBuildFile; fileRef = F0EB0D36D05552D95A93CA685238686E /* SDLArtwork.m */; }; - 9D973B2FD8134B223C95C435F2ACF9DE /* SDLChoiceCell.h in Headers */ = {isa = PBXBuildFile; fileRef = DD018BD08DF216E04E994B4422402959 /* SDLChoiceCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9DC9EB76C1350A19BB7B96D0F33195ED /* SDLAddSubMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 8656F2DCBCA042060742160FFB6A86F8 /* SDLAddSubMenu.m */; }; - 9E6917D8CD6BD3DB0895114934894D7A /* SDLDeviceLevelStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = E631F9263CC1D82E8E2ED0FF4AFC488B /* SDLDeviceLevelStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9E98FCEE1AE1AABD075AF6F88E5A11F9 /* SDLDriverDistractionState.h in Headers */ = {isa = PBXBuildFile; fileRef = E5EC9ECC5F4F6ACD12B895CEC09422D0 /* SDLDriverDistractionState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9EBCE76DE98833613834363DB468BB91 /* CGPoint_Util.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B67A0A948EFB9B13F0BD857E76ABAF1 /* CGPoint_Util.m */; }; - 9F370913738F86970698DAFB0A38971E /* SDLPresentChoiceSetOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A46CDE4067982A9BB8B1C7265FA9B12 /* SDLPresentChoiceSetOperation.m */; }; - 9F4FDA9BDFC9DD7866A89040EB346078 /* SDLSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = 278DFF1A727BCE036997E56393C855FA /* SDLSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9FDADA82B9C13E7CC61B02E43B7A59AF /* SDLProtocolMessageAssembler.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CE06A8C55FD9A4D7FA3F0CAF9744D42 /* SDLProtocolMessageAssembler.m */; }; - A039FEEC54EC4A0BE526247BDAB60B67 /* SDLLogTargetAppleSystemLog.m in Sources */ = {isa = PBXBuildFile; fileRef = CDB08B4633B0694249B93A051D44062B /* SDLLogTargetAppleSystemLog.m */; }; - A03A74F2BDDFCA7947186B392BE459D0 /* SDLAppInterfaceUnregisteredReason.h in Headers */ = {isa = PBXBuildFile; fileRef = CA11528DBA2B358F2D49F69157EDCADB /* SDLAppInterfaceUnregisteredReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A045FA88AAD56D9955A82693961E4503 /* SDLDriverDistractionState.m in Sources */ = {isa = PBXBuildFile; fileRef = 60FA77C4D30CEF11FC44F1FD78B7B62D /* SDLDriverDistractionState.m */; }; - A05249EC89A880332ECA1EEE71D1E23E /* SDLVehicleDataStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = C906B3598B3CFACF07B0ECE64FA3266D /* SDLVehicleDataStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A0E50A30072966DDBC89DC2292B1BF21 /* SDLOnInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = F0B0BD0A152C2E6D1C988C44BD243F7A /* SDLOnInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A130399749A0500EDE7C2E9B679E2E02 /* SDLChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = D82948567FD9B2929C169F79FA1C7E9A /* SDLChoiceSet.m */; }; - A18AA79836D24CA82F1ABED3711E0402 /* SDLImageType.m in Sources */ = {isa = PBXBuildFile; fileRef = BBAD9286CA8D2CD34A4301E140079EFA /* SDLImageType.m */; }; - A19CF41CC6B501ADD92F104E198068E3 /* SDLStreamingMediaManagerDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = EB818F5E2DD87AB284266FC69B4D5A12 /* SDLStreamingMediaManagerDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A2357C4F782211B242032600460F8BD6 /* SDLSpeak.h in Headers */ = {isa = PBXBuildFile; fileRef = D4BA8AEBC53D58106E0568ACFD4F7513 /* SDLSpeak.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A260AEDA4AEC867A486C90AC7177F8BB /* SDLButtonName.h in Headers */ = {isa = PBXBuildFile; fileRef = 19FDF6F587885D1F611772CA7772CAD2 /* SDLButtonName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A31E11C8073E52862D92D5D91953829F /* SDLUnsubscribeVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B04DEDF8E1EC38E7797CB6ADC6AF974 /* SDLUnsubscribeVehicleDataResponse.m */; }; - A346431BFB5EAF37478A562E9F32AED7 /* SDLSecondaryTransportPrimaryProtocolHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 44506CC099F475752271FA11D05D3C75 /* SDLSecondaryTransportPrimaryProtocolHandler.m */; }; - A35B3F5D7B41F136D3A5852434706449 /* SDLRPCRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = B302FF2683670AE1F2DDF27585C514DA /* SDLRPCRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A3E5A07FFF83575D7828AC61BCE80F96 /* SDLSystemCapabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 371C3337694484EFB099491CD7CBA561 /* SDLSystemCapabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A3EFD42D9E0CE488A058DF4A1B6E5710 /* SDLDefrostZone.h in Headers */ = {isa = PBXBuildFile; fileRef = B40BF1C57B79394267C903C5D78EBDC9 /* SDLDefrostZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A3F4FDBC260B68148500950ACC9E38ED /* SDLStreamDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = C05DA9D93548A248694FE1C3597A20C1 /* SDLStreamDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A48AFD46D7B705927709DA96B9E8D3B1 /* SDLResponseDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = DDB5D173E33BC323A525338588E689F5 /* SDLResponseDispatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A49ECD1FA4B35BFE783DCB2D31D81762 /* SDLEqualizerSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D8496D47F19D77551ECDEF2FA539E41 /* SDLEqualizerSettings.m */; }; - A4BA38CDDAB4106E601B200EB5265772 /* SDLPresentKeyboardOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 41E3A061FF1984AD8701A270A3DEF731 /* SDLPresentKeyboardOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A4DDCF8F4E1736C6B915831927CD6C43 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92EC16D73BAA299A6234966E38DF6113 /* Foundation.framework */; }; - A5813FA00B9D0DDB00A2F9B0B354D18F /* SDLCarModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 92476ADB048D5680C09DCA2FEE51BA94 /* SDLCarModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5C97B66E1C6546C695D44B4F300302B /* SDLGlobals.m in Sources */ = {isa = PBXBuildFile; fileRef = D4AED0DCCD8F81481E37F6BFE21BAB4C /* SDLGlobals.m */; }; - A5E9728E958AED1757923FDF86CBD7DA /* NSMutableArray+Safe.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A48D38CDD0CE56654C1E9EE2F457669 /* NSMutableArray+Safe.m */; }; - A617B91AA4286B0A000C26DFFAE1EB03 /* NSMapTable+Subscripting.m in Sources */ = {isa = PBXBuildFile; fileRef = 746FCB82877FFB49197939B552D51B4F /* NSMapTable+Subscripting.m */; }; - A64A381029902ECF5EA9881C2D3757F1 /* SDLTouchManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B5726B9900948F08E1B7069AA2DBD54 /* SDLTouchManager.m */; }; - A6B07EC2A552D4C3CE7E38B7B52F0AA0 /* BiSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D34D8B52315EA5525E7F73360845AFD /* BiSON-dummy.m */; }; - A6D1DBBA7DFF61CCAC20DE99B9C18480 /* SDLDeleteCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EC8912E98FFAFABA1F37F237009B570 /* SDLDeleteCommand.m */; }; - A72129C33CCE32DE7ADB0005986FEC46 /* SDLAudioControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = CDE5462216ECC40BC5E269381EBEA719 /* SDLAudioControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A749C4A7A68E79A0F0C8F6B331D546EF /* SDLTemperature.h in Headers */ = {isa = PBXBuildFile; fileRef = 750876967AB3BEF7925DBF19F38CFA89 /* SDLTemperature.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A76BE724EA8A0BC5D7BD18F12331771D /* SDLTouchEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 53B6392C0544376075AE0688976F4995 /* SDLTouchEvent.m */; }; - A83965F5D3DA1873875BD519055B6EB8 /* SDLOnRCStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DB6E62464C24A09F0CCEDABD345B9B1 /* SDLOnRCStatus.m */; }; - A86093E9F1596CD649184DEAB4B50EAA /* SDLSystemCapabilityType.h in Headers */ = {isa = PBXBuildFile; fileRef = F04DD54016688A8FBD677798DD52F1C5 /* SDLSystemCapabilityType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A89FDFB482A1D220E3FE11CE3EC92F6A /* SDLDeleteCommandResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FC43F423FA3244DD43D35DB11AE4DCC /* SDLDeleteCommandResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A8B8B6A9CCD830A1D066620FA41AEA8B /* SDLOnVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1227D122A83DA58887D9CC98662EC031 /* SDLOnVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A8C6468067C324C2E794EA6C7DAF885F /* SDLError.m in Sources */ = {isa = PBXBuildFile; fileRef = A68DAFDC8E8417E2C745B8ADDB5AF994 /* SDLError.m */; }; - A9104F71B52E4C481C35F160AEC293DF /* SDLImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B70EF9DB97245E1B7E90AB87E5B1191 /* SDLImage.m */; }; - A99019E5BF5AAFA16DAF00E30D45848C /* SDLOnAppInterfaceUnregistered.h in Headers */ = {isa = PBXBuildFile; fileRef = A98FE233CFB9499820D654F8CB8D34A1 /* SDLOnAppInterfaceUnregistered.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A991D517EC28BDF3C6FCD730F75057EA /* SDLCarModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FCB10648C75AA3261FFEBA504FA91D1 /* SDLCarModeStatus.m */; }; - AA06B0C9844FF70FB97853669C2F214F /* SDLLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 34FB346A248BDC3502948C80F744F6B7 /* SDLLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AA43891B9817657D5D57BD1D1B688482 /* SDLFocusableItemLocator.m in Sources */ = {isa = PBXBuildFile; fileRef = B6358C7513C0DFC92C417EFC736F3DAF /* SDLFocusableItemLocator.m */; }; - AA4B736B9E1FD5C7E26F8A60D16B2A6D /* SDLV2ProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = F3717E63FA48A5C50AAAE57A9318054D /* SDLV2ProtocolHeader.m */; }; - AA678D7881C85FB884D4CE2B4CAEE7D4 /* SDLLocationCoordinate.h in Headers */ = {isa = PBXBuildFile; fileRef = E7A313894B47D32C4EA5F371B0691870 /* SDLLocationCoordinate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AA97A6D784675068A531B73FF5FD0376 /* SDLNotificationDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = C0BD9783968411AD2C1ADF55A444B04E /* SDLNotificationDispatcher.m */; }; - AAA0FFF042B3B99C9D92A269A62CFF5B /* SDLAddSubMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = ADD61F9CDD3CE6E6EC48EDEFE524E4CD /* SDLAddSubMenuResponse.m */; }; - AAB333DBF720AF65DAF65F8C8B14C3D5 /* SDLLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = BF41AF176C8CF91C7F0626C991C3CC3D /* SDLLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AB07E9AD2BC645CB49B998D2EE9ECD97 /* SDLSpeakResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BA470C9B9EB26D3D32BA81CC044675F /* SDLSpeakResponse.m */; }; - AB36E87567F8F026FA7C691FC523EADB /* SDLIAPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 652C07114772A9C6F9290111810BDD9B /* SDLIAPSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; - ABBD345B8597491398E3FC8823936405 /* SDLProtocolMessageDisassembler.m in Sources */ = {isa = PBXBuildFile; fileRef = 21CDAECFA811151A9856EAC58258EBDB /* SDLProtocolMessageDisassembler.m */; }; - ABDA96A8547F3A930F93224BA116D218 /* SDLAlertManeuverResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 7809E403E7F8FC0692079B5A7A0D8D33 /* SDLAlertManeuverResponse.m */; }; - ABEDA30EF4F593654B283DA8F058E3CD /* SDLSequentialRPCRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 30A208F2A2627ACEFA41F51C36E546F6 /* SDLSequentialRPCRequestOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AC3116F5CDE0A01ACBE881AD2932FA50 /* SDLPerformInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = C09E630D5F83DF772B1E22DF41CE5473 /* SDLPerformInteraction.m */; }; - AC6FDFCC094C6CFAF1D0E57D75386505 /* SDLChangeRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 395E1A376C97C99D0683BCB39656C9FE /* SDLChangeRegistration.m */; }; - ACB952D7CB8FF538A78A86B53F4DE0E6 /* SDLLifecycleConfigurationUpdate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7FD95DAB1B56B5CF9E3A6EE3B3987B2 /* SDLLifecycleConfigurationUpdate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ACBE2276330CA5BFAEB45D60559E0EE3 /* SDLPerformInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 100684D476010285D6DBE1D29DE9156F /* SDLPerformInteractionResponse.m */; }; - AD1C347575BADD6069B7C8A3FCB78769 /* SDLIgnitionStableStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 35367A3B6B5D2710B91745AE6AD4682D /* SDLIgnitionStableStatus.m */; }; - ADAE4EE6135058511597D79281C11C8D /* SDLLockScreenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8161E304DB3F786AAC3A62CA6B154DD8 /* SDLLockScreenManager.m */; }; - ADF922C1D9AEF15ECA8978C946C6624B /* SDLRPCStruct.h in Headers */ = {isa = PBXBuildFile; fileRef = AAD0EC0A506E96A234F58256C7B4B0E9 /* SDLRPCStruct.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE5E9504FB6C14FA328062715259EC5F /* SDLStationIDNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BDB404AF77A5DEA1B3DB84DA45A6AC8 /* SDLStationIDNumber.m */; }; - AE6AA7E705E0E8737639988A68796CB4 /* SDLAppHMIType.m in Sources */ = {isa = PBXBuildFile; fileRef = EF6EF59CA601C0D108179F0F6F5C5085 /* SDLAppHMIType.m */; }; - AE94A5275773442E585794CE54A68795 /* SDLLifecycleConfigurationUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6C9643ED47D177A573F14BE3364185 /* SDLLifecycleConfigurationUpdate.m */; }; - AEB730B02D81F89C55665B4144B9E402 /* SDLAsynchronousRPCRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F3F9D10D2856912B911242697AB75 /* SDLAsynchronousRPCRequestOperation.m */; }; - AEFD7DEF7644ED0633E76E4EB8592B9E /* SDLVehicleDataResult.h in Headers */ = {isa = PBXBuildFile; fileRef = D7B5B4BA4F26E2194066AB7EBEB93A57 /* SDLVehicleDataResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AF6A66360D7812FD96B343939D9E2B12 /* SDLVehicleDataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 98C4256ECA504E1CC027AB912D1F64E6 /* SDLVehicleDataType.m */; }; - AF891D3AC32CD2E250A193DBEB75E8F8 /* SDLMenuManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 954E4D3766D011A3C490F60A4060E2DD /* SDLMenuManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AF9AA3EDD4471FF420FE44DF4BA82A0D /* emhashmap.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F06E01500491105B758E90A6D3828F0 /* emhashmap.h */; }; - AFAEB2A40167436131D8BDDE78C054B4 /* SDLLightControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = FD86549ACDDE44723749A963C8649466 /* SDLLightControlCapabilities.m */; }; - B02142E65DBCEB7BBCC9D454B91563E1 /* SDLLocationDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = CB405DA5F788994C39DF7E19968B3417 /* SDLLocationDetails.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B039BBFA1D64E0C27D884E975E689356 /* SDLSeatControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 187CBCC47B981AD74A6F93EC13205BFB /* SDLSeatControlData.m */; }; - B116992E85C07AD8037A93C763446C72 /* SDLImageField.m in Sources */ = {isa = PBXBuildFile; fileRef = 510BD182D2555F3EC0384B30036E0ED9 /* SDLImageField.m */; }; - B1520998FBEAB581CCB90729DA9FBF79 /* SDLEmergencyEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = F082C3105D51857B5A6D603751C8D9BB /* SDLEmergencyEvent.m */; }; - B152AAFE3E671150EA261D245C9FFDAA /* SDLUploadFileOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF2F285408D6796CC68B3E5C8A67994 /* SDLUploadFileOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B16E136F1D126EFDC395DBC4EB838678 /* SDLRadioState.m in Sources */ = {isa = PBXBuildFile; fileRef = 12854D0AA526844E80820F9E8E5BEB1B /* SDLRadioState.m */; }; - B1A82109D4F75BBAED4C9B9740AECAAD /* SDLDeleteFile.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF708FFC87490713BE7492E71C6CFC6 /* SDLDeleteFile.m */; }; - B1BDCEA6C3090C2A73DC0C4F9F609696 /* SDLAddCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EFC421DB5D3D2E385A73B206770639E /* SDLAddCommand.m */; }; - B1E5DC6AFCD91956685EBECEDD18A5AC /* SDLErrorConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = EDB42F987CA9D0C4BD5A37CB60D3AC3D /* SDLErrorConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B22652C5CF5A39F6A3AAA5493903F728 /* SDLTTSChunk.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D8320A911DB2A100461128D32DA4DA9 /* SDLTTSChunk.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B23EE41C00A3F0043DAE18BF6B9B07FD /* SDLFileWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CE607A99E39243283702C5108A74120 /* SDLFileWrapper.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B2843C8B6DCE85C9099DDD51289FA8F3 /* SDLAddCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = BE57DE8735A70DC258F0E7D61021E93F /* SDLAddCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B2976840313AD10C6A1E93F7DE61F2DA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92EC16D73BAA299A6234966E38DF6113 /* Foundation.framework */; }; - B3340A79998FB27A4A960E6FF8DE1AEE /* NSMutableDictionary+Store.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BB32C87E0F8872B526E252CB1DD75D3 /* NSMutableDictionary+Store.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B34592C75BAACACAD4D062D7D56524FD /* SDLAudioType.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CB88BEF9293FF56B12501BD13427203 /* SDLAudioType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B3563BE6893B433851161F1A5F44E7CF /* SDLFunctionID.m in Sources */ = {isa = PBXBuildFile; fileRef = D73A33145CFECBCAEE6723C53C833F84 /* SDLFunctionID.m */; }; - B3678FE725134C7745A585E3AD169630 /* SDLHMIPermissions.h in Headers */ = {isa = PBXBuildFile; fileRef = 28D6F148960DD83935B37C3D826B7260 /* SDLHMIPermissions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B39F57C03DCE7EA738793B7AA9AEFE0C /* SDLModuleData.m in Sources */ = {isa = PBXBuildFile; fileRef = DA0952F5884198F46D3797FB852A950B /* SDLModuleData.m */; }; - B3D81BDC992C8624295DE288FB51BFDE /* SDLDimension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDAFB2B0FEFC8F3A7D9D65B1426C548 /* SDLDimension.m */; }; - B431062954149A07B585826BA03ED313 /* SDLFuelCutoffStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 815EB3516762963F44C6C1862030AD02 /* SDLFuelCutoffStatus.m */; }; - B4A2AC4C44023971E080A8F53EBD059A /* SDLVehicleDataActiveStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5077BEA250C7539EE60A931402EE49B9 /* SDLVehicleDataActiveStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B4C5252945C315C0E6E69D8440590D6D /* SDLGetSystemCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 73BFFE658487D4F07A220194D46B6657 /* SDLGetSystemCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B4E0400D3FE8F9C74EB1B9E8B52B454B /* SDLPerformAudioPassThruResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = F99552D589ED900BF989DBEC687D6487 /* SDLPerformAudioPassThruResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B4FEDD245E82D4842767CF205FDCF3B2 /* SDLAsynchronousOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E0F179B62A3D0B60D754AE594FDCD90 /* SDLAsynchronousOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B53A06CB47243ACC775687934F194823 /* SDLFocusableItemHitTester.h in Headers */ = {isa = PBXBuildFile; fileRef = 70578C80B038B8AA2C6EF0AEAC8B9A13 /* SDLFocusableItemHitTester.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B5F9C1FA9FDC4E44F7C22996F836FB03 /* SDLOnSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C212942D2CC6534B8AF013D2AD51FDBB /* SDLOnSystemRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B6B3F8A6266891E8B5B206290B54C75B /* SDLProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = ED2F31EF80C218AF069FF59E223A181C /* SDLProxy.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B6DB66B9F7DFF4D68204FA9456D899E6 /* SDLFileManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = A28C591186F83E65852201939A6CE8E2 /* SDLFileManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B71902D2F4098F712EF8B0B91C4BA816 /* SDLTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E63FCE296EEC7CC4266B624CB94D0E3 /* SDLTouch.m */; }; - B728DE284F9AEB0D6439FA532EBD40EF /* SDLAudioControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CEC5466A9425A1BCFF272CB96BB09CF /* SDLAudioControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B78F6243D01B5B588754F9C82619A450 /* SDLMassageCushion.m in Sources */ = {isa = PBXBuildFile; fileRef = 1037F8AF88F0F9193A9B244617C64731 /* SDLMassageCushion.m */; }; - B92E9CD2034D4AB8A8C34D5C4FE2F688 /* SDLGetDTCs.m in Sources */ = {isa = PBXBuildFile; fileRef = 65E812DEA551B30816A17B71B1C41FBA /* SDLGetDTCs.m */; }; - B95DA5F4BA9F33C17EDB495B42E2E5F8 /* SDLShowConstantTBT.h in Headers */ = {isa = PBXBuildFile; fileRef = 552B58C8C471E41210FCFEC0FB79E946 /* SDLShowConstantTBT.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B9741C990F20745A35DA6D4EC72DF4EB /* SDLRPCPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = 26596C07D4C1E171071A437EB43CF250 /* SDLRPCPayload.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BA42E573B3566AF55B459CF0ACD07832 /* SDLMyKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 0837936F0C4FA3F85A7083B6C1445823 /* SDLMyKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BA644B2242904BB213F13216743786E5 /* SDLNavigationCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DD055CF52ABC534D176AB5FE90081B1 /* SDLNavigationCapability.m */; }; - BAC2A22D53D529749AE9E63363597669 /* SDLArtwork.h in Headers */ = {isa = PBXBuildFile; fileRef = DA0D770C6A62BBA6A4927E049FD5FC38 /* SDLArtwork.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BAF3F93166B7EE5043FFDFA7B86DF85B /* SDLPermissionItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A78FC1E596344107CD9C39F3E1AE20 /* SDLPermissionItem.m */; }; - BB1C9CDA7915D4AFB05EB4CFAE8BD7DC /* SDLSupportedSeat.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C915C4AA9086574E49D8331642E4948 /* SDLSupportedSeat.m */; }; - BB6BF4F84E821FAC00199C2BAF9AF74A /* SDLOnInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 119DF2CF5E29025380EAB643C5C9356A /* SDLOnInteriorVehicleData.m */; }; - BB7153824E5C733FC1351739C572EF43 /* SDLResetGlobalPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AC5CC5E55197D747732B811BBCDDE2F /* SDLResetGlobalPropertiesResponse.m */; }; - BB82C9646A001AB965203DD7C4ABF3E3 /* EAAccessory+SDLProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = CC8FA7074043AD0EFEB34FD5CEE11BD1 /* EAAccessory+SDLProtocols.m */; }; - BBAF43468910C178ED4F66EF361737AB /* SDLLogFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 88A45748BCA864462CE96C229A58CF84 /* SDLLogFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BBBD5ED4D03D7C262186F7E2C45AE4FB /* SDLTimerMode.m in Sources */ = {isa = PBXBuildFile; fileRef = C98CE191527F3EEA9EB0D52A7E8C01E4 /* SDLTimerMode.m */; }; - BBEBB3879498EFCDA6A77C5026EAD41F /* SDLSendHapticDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B6888E9AC86CB09F600E2D4D38162348 /* SDLSendHapticDataResponse.m */; }; - BBF8951D6AFCB3E302E4CB39FE4344F9 /* SDLUnsubscribeVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = AA16F714E4ACF048C908C32836C32AAD /* SDLUnsubscribeVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BBFCDC011B28D53B121AFA90E312A472 /* SDLLightCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 93CA586E7AC09FB55D500BAEB4C79347 /* SDLLightCapabilities.m */; }; - BC92CAA3D4E2A84EF568CF1F6A8D4EA6 /* SDLChoice.h in Headers */ = {isa = PBXBuildFile; fileRef = F61313C1886B332D2F0390FEBEE186BE /* SDLChoice.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BCEEAB66BF7313700D582FC1B90F169A /* SDLPrioritizedObjectCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A0C6D3EDF3331CF707E1D745709165C /* SDLPrioritizedObjectCollection.m */; }; - BD482921E979DAC6FB18B587970D1D84 /* SDLFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E7B4A0CE56A4C0A4142F88AD471CB508 /* SDLFileManager.m */; }; - BDA78B840E859D4BA56C7361728B06CD /* SDLSetInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = F7111C40A1B8D985183C000106A4045B /* SDLSetInteriorVehicleData.m */; }; - BDB5E2E5DFA96C828137342BB8D6085B /* SDLPutFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A796FF7557DEDC03B40E84FCABF5003C /* SDLPutFileResponse.m */; }; - BE12FBB6C580D3CE614365E50F41BAD1 /* SDLDialNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = B80235ABD0E305BBF739141DD04FBCB5 /* SDLDialNumber.m */; }; - BE28266EAACE9D36007982EC36642F3A /* SDLDeviceLevelStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = C23D3E81A57DED8E5C1CB5C6740271CD /* SDLDeviceLevelStatus.m */; }; - BE4A1689602B2C09FD8FA8DE3F3B73A4 /* SDLNotificationConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 363CE2A5FD5AF0FB3D59F4182F6820BA /* SDLNotificationConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BE9319F3CAB5BEBB2D2B9C3693A61652 /* SDLDeleteInteractionChoiceSetResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD65E97C36BF1818AFA38283A9A5F4 /* SDLDeleteInteractionChoiceSetResponse.m */; }; - BED9682A2C62CD033C513A4F91F34BB4 /* SDLPRNDL.m in Sources */ = {isa = PBXBuildFile; fileRef = 439E51BAD933C8050127EB5370DDA5E3 /* SDLPRNDL.m */; }; - BF7FABFA7BBD38EEE5648DE2B39DBE12 /* SDLResult.h in Headers */ = {isa = PBXBuildFile; fileRef = C7908C42336E3E8EF7BF8A5ED5F36DE9 /* SDLResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9F0306CDDA8B33F143C2926A72802F /* NSMutableArray+Safe.h in Headers */ = {isa = PBXBuildFile; fileRef = C3005BFD588C3A07F340E4B0B61F3DCF /* NSMutableArray+Safe.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BF9FC9118C99B6AE3D6240A775901119 /* SDLRadioBand.m in Sources */ = {isa = PBXBuildFile; fileRef = B92B564AB97FF0351E59B770E4461D59 /* SDLRadioBand.m */; }; - BFE07457F18B4DBAA72F681CDD33F26B /* SDLManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B01F7BB17F17473A280E74211727645 /* SDLManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C073B1D727561E1DE8F62DF675A41174 /* SDLTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B4CA939A6A2196F72751084D8883EC5 /* SDLTimer.m */; }; - C11C7C6D95CF1B64A27A3C1CBE57B28A /* SDLUnsubscribeButtonResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A7D5318694339EFF9B87A0CAAB26449 /* SDLUnsubscribeButtonResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C1418E30FC1D6F83D57DD0716512D3A6 /* SDLPermissionConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = FF41DB53E65BA7A9D44CF06053B930A2 /* SDLPermissionConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C1736382406AD2485186181877F6AE82 /* SDLV1ProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 1072E708C0802544B54DCFAE27D4E692 /* SDLV1ProtocolHeader.m */; }; - C2003D216D43E1ADED716B86E0A11239 /* SDLGetVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 76F2EEF0C3FA77B20C8F1C40D7E3F410 /* SDLGetVehicleData.m */; }; - C2175B1A68E5F1D5F6D9FDA658245F99 /* SDLDisplayCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 2847C8BA2910893A2A6F1739775ED9F5 /* SDLDisplayCapabilities.m */; }; - C240737DBB222CA96204E77426DE226F /* SDLFileManagerConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = EC92A5CF1AF12B3C53B52D48314AB3A8 /* SDLFileManagerConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C29244BB43FA90C077ED24B501BF576E /* SDLInteractionMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 53342DFDFA72B33415BAE7AB03F96F02 /* SDLInteractionMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C45864A59439501BACD3B69022FEE2CB /* SDLMassageCushionFirmness.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B5A067FCC93D9B48C203E6F2CCD07ED /* SDLMassageCushionFirmness.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C49CED2148870F4A7DE15B452D748284 /* SDLSetMediaClockTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF096B9ED60494498C54BF016616F93 /* SDLSetMediaClockTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C4B784E497838C5791CD068CC9FD5797 /* SDLOnSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = 876AB0F589E4C276C7433FAFE36B3E8A /* SDLOnSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C62823793A24D46599DB784AB0180FDE /* SDLOnTouchEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 70616FFD3793CF95AC174A49C2C43D06 /* SDLOnTouchEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C67F697EAA10CBA54090E5D5FE109D8E /* SDLLogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = D5B81F6F3103AD08D5BA5F4A084E857E /* SDLLogMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C6E3BB800E0219BB7BD53B85E7DDAB76 /* SDLResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EDDC83C524683164037103A5F5B3B03 /* SDLResult.m */; }; - C70F44985B6FB4D2AC93E965F94E15F2 /* SDLResetGlobalProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = CFF52CDAD169EA0BE305F4FEA18AF00C /* SDLResetGlobalProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C7282A5FE73E0A5AC905B82AFC0D080B /* SDLVehicleDataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 07AFE3CA1A94AE8F3B50436DAD7A651F /* SDLVehicleDataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C7CAA9586C7CBFC1BF7283B5E0D3538F /* SDLLogConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = B455A6928538C43FF4BD1C7049CC4968 /* SDLLogConfiguration.m */; }; - C7F51464E201A11CC86EB0D583DD34E5 /* SmartDeviceLink.h in Headers */ = {isa = PBXBuildFile; fileRef = E36102EF1851D3F66F89FB3A06D17F37 /* SmartDeviceLink.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C7F572CD8595C0784BB96DC83093E5B1 /* SDLIAPTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = E91E91E66C2D537CD449295C86997019 /* SDLIAPTransport.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C7FC6D013EDDB9E6F8380666F3A722D5 /* SDLLogTargetOSLog.m in Sources */ = {isa = PBXBuildFile; fileRef = C43267362AC3279A3F73CFD64244B09E /* SDLLogTargetOSLog.m */; }; - C829128D3348C34402574DA56198E32A /* SDLHMICapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E7A3321143B3292C9376581ADDA901 /* SDLHMICapabilities.m */; }; - C87E48E98E897FBB1A8CDD5C8D32A295 /* SDLAddSubMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E7D416F7CD293790F14F8B197775B43 /* SDLAddSubMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8C63F6FD4AB7D018238973433CD8038 /* SDLEncodedSyncPDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 90A2A6EB9EA9F0B38F2AC500E179C267 /* SDLEncodedSyncPDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C90EF98864BD75342A61F68A623CB8A8 /* CGPoint_Util.h in Headers */ = {isa = PBXBuildFile; fileRef = 77939ECABAEB5EA4A870437D89954DCF /* CGPoint_Util.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CA24651E9FF81F72B30850927978390F /* SDLMaintenanceModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 49B5DC50A25037F3B47CD43A3A38A293 /* SDLMaintenanceModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA2B853982B0413B0F1ACA2C5D5EB02E /* SDLMassageCushion.h in Headers */ = {isa = PBXBuildFile; fileRef = E15436608D62D13D53903727589401FD /* SDLMassageCushion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CAA156021879DF0FB3AB2D5C5E90B614 /* SDLStreamingMediaConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = FECAD3D772AE3D92F982F8D37CF84190 /* SDLStreamingMediaConfiguration.m */; }; - CBB7C3BD819864F8F7C49032EFA00D4C /* SDLClimateControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0808036535D5C2927F44E2C70BC253A8 /* SDLClimateControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CBE2CBC7919B5B61C7F975964A267330 /* SDLSubscribeVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DA6DECFDEF3FAF260C7869F41CAB3C77 /* SDLSubscribeVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CC06A5DB08416090311AA26C5F53BBB9 /* SDLAudioStreamingState.m in Sources */ = {isa = PBXBuildFile; fileRef = 05044B5C8892129FF1D36B124D5DC0C9 /* SDLAudioStreamingState.m */; }; - CC5A27F6A8046BF6A0D45A9E9AFF83EB /* SDLControlFramePayloadTransportEventUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = AB8C3882B2F5BCE64AF823BEAC3DBE49 /* SDLControlFramePayloadTransportEventUpdate.m */; }; - CC7745805D84963CD8F0AF6400C02D08 /* SDLLifecycleConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = E280714FFF45ABB1CB9DC8A142136546 /* SDLLifecycleConfiguration.m */; }; - CD099D30E79DA7E13360CD0B9596F9C0 /* SDLReadDIDResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5115280AA762C6A3FD3BAB916224BB7D /* SDLReadDIDResponse.m */; }; - CD2072082E2208D2809019E27BEC0280 /* SDLDeleteSubMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DB741242CF4886179C79D2927C6839 /* SDLDeleteSubMenuResponse.m */; }; - CD4F211339E854BC70C82A9ED1F01CBA /* SDLKeypressMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 679EDF19C388A9D5231B8F50D3AB5E33 /* SDLKeypressMode.m */; }; - CD60F83D031F7CC693D74CBD3D03564C /* SDLOnLockScreenStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = F79AE8E9ADE72D6DE44E2276CEAD0C3A /* SDLOnLockScreenStatus.m */; }; - CD6C20F6FDEAE8571ED2AD1712BD818E /* SDLShowConstantTBTResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 60F3D61C1A9777D5DC05B26C11612C34 /* SDLShowConstantTBTResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD8957C7832748CCE7AF519D51A65D48 /* SDLViewControllerPresentable.h in Headers */ = {isa = PBXBuildFile; fileRef = 365FC18DA34697E05E3D5EDB05B377B7 /* SDLViewControllerPresentable.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CDDC9E0F469E0BE091E773E3F0110385 /* SDLLanguage.h in Headers */ = {isa = PBXBuildFile; fileRef = 37245382BD437F67F1FF0EEB59160BD9 /* SDLLanguage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CE6CC0FEC610B058C1ABF457E41231B0 /* SDLPredefinedLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = D4D9CE10E16F6AE73297FC5DF7EA2F0C /* SDLPredefinedLayout.m */; }; - CE7AFCEE65570E4C568F22CB173C5909 /* SDLAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B6856DBF98E284150E71B1C1DA80384 /* SDLAudioFile.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CE8C65228A5636BE8221B77B66919C40 /* SDLListFiles.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D9DA21ABF7CDDBFB56BE7D70C6E7644 /* SDLListFiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CEAB90B0ECF3BE31B9E22C076BC46BD8 /* SDLSetDisplayLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 167B88D798FEEDC592CA68F9B81C3C53 /* SDLSetDisplayLayout.m */; }; - CEB154360D775A21CD191027DDB95C44 /* SDLSubscribeVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = D93CCB1CAE537717BC9BCD4B03436DE4 /* SDLSubscribeVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CEDC3780A021B4690015BF1407BE9A10 /* SDLConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = BE3532020D03C0A5384CB77F8686B832 /* SDLConfiguration.m */; }; - CEF940DCF2F81856401D9F1A362614EB /* SDLSubscribeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E81332C7D788E672B67F2C6B78E9E27 /* SDLSubscribeButton.m */; }; - CF23B80D9FCD04DE4B06E5497F4077C3 /* SDLGenericResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = EFDA01CCA143D1BF1A4477C8DE07B128 /* SDLGenericResponse.m */; }; - CF55A8209FBE274FC5E3A28FE189BEF3 /* SDLAmbientLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = AE3FF30889101C49187282BA51A8910E /* SDLAmbientLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF87235765D43F50AAD12EEF32C7E285 /* SDLStreamingAudioLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B824FEA6352112490D78F7DC1FBA9B1 /* SDLStreamingAudioLifecycleManager.m */; }; - CFA1FE007ECB8784BE22168AAFE932F4 /* SDLLockScreenPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 832FDE407750A0EEE8830B7E938FC6C4 /* SDLLockScreenPresenter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D0B0475A1C019E7EF1553ADBF05EACA3 /* SDLSISData.h in Headers */ = {isa = PBXBuildFile; fileRef = DDBCD95E6AEEBA36D045DE905604EE77 /* SDLSISData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D10C16DCE3858A52927E0C50F5410909 /* SDLStreamingMediaConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = D8D039EA7810F354905A7B7DEC39AD3D /* SDLStreamingMediaConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D1DB885408A583118BF5C5D3CEEF2101 /* SDLSoftButtonObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E03634E6C3AFED73B96488B3E52D16A /* SDLSoftButtonObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D2267FFAE91F8D0A79C37572C55890CE /* SDLSeatMemoryAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EB0F5FE524CD2A868E27206CA4D9276 /* SDLSeatMemoryAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D252C26EF52D5A65AD8618B89CD0E71B /* SDLNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E089953D020C5C39366AAB493954078 /* SDLNames.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D253590B398009E277462AA9F81E182B /* SDLRPCNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = BC6C48BDF26AFE82AA25DF3EC54ECACA /* SDLRPCNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D298B6C507EA5D92E14F3EE72084B685 /* SDLDeleteFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 02810AB1489C5C87EFC41C36A50AF1C6 /* SDLDeleteFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D29BAC5BC371347F34C2FAC8BD100551 /* SDLSetAppIconResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CA4C4A31F252A3AA8D1F093D8AA1C2EE /* SDLSetAppIconResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D2AA6A0847C1540C26611AFD1A458831 /* SDLControlFramePayloadType.h in Headers */ = {isa = PBXBuildFile; fileRef = 98BB477077ECCB5F159C026896A7ED82 /* SDLControlFramePayloadType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D2AC82A60C50DF5B3AB264477E371A24 /* SDLObjectWithPriority.h in Headers */ = {isa = PBXBuildFile; fileRef = EE1CFF1CC4DE8423C7542494529D17EA /* SDLObjectWithPriority.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D3292C49FB3876E7E43FD0008983749D /* SDLIAPSession.m in Sources */ = {isa = PBXBuildFile; fileRef = C588EEFCF45E3FAF0C2800BE518387F8 /* SDLIAPSession.m */; }; - D39D3D539295DA37870D3C521DF13AE3 /* SDLProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = B1FDA204D0296A51FBA17788E5FA5502 /* SDLProtocolMessage.m */; }; - D3AEE02B2C18420EEA41862651CD4B99 /* SDLOnHashChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C5CF9F2FDF3B546DE71D830925E9009 /* SDLOnHashChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4684E7B5630AC0841E5F97E0E7410DC /* SDLScreenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B588660C306C440BCD16E23BC80F8D14 /* SDLScreenManager.m */; }; - D4B21BBBE0438AD091A68184121C3687 /* SDLSystemCapabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 73EE85CE5BDD312FCEE5664BB16E7CBC /* SDLSystemCapabilityManager.m */; }; - D4FA68CB7EBA468F4313C8ECAA2FF128 /* SDLV2ProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B40A91D25C52B221AA22FCE5737BFC4 /* SDLV2ProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D5F42ACD5C21B49D9C40D94249422D03 /* SDLAddCommandResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 089D381F3674AEC193EFE48A7114A602 /* SDLAddCommandResponse.m */; }; - D5F4416658C287713DE58A8B42779AD6 /* SDLScreenshotViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D61349EFC5D6989D885B003CAA2CB7 /* SDLScreenshotViewController.m */; }; - D60E50F38B718A2C85F0D682D384A5CF /* SDLPowerModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 539D18C1C073C34EF0AC35AC764611FC /* SDLPowerModeStatus.m */; }; - D6F70552F77E46D51BDF1F117BD35E88 /* SDLRPCResponseNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DF75BEFE354E7355FDB8A0CF69DC8 /* SDLRPCResponseNotification.m */; }; - D6FDB9CF88C1C24908F7D34AE8EBFC5A /* SDLSlider.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B49E94C86A8F29FC04ECE227ED8900A /* SDLSlider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D794844555DFBAF7F8B9F9BD93380E66 /* SDLRTPH264Packetizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E5EBE7E9894846207F571CA5AAB4D817 /* SDLRTPH264Packetizer.m */; }; - D7B19CAC07C0BB3FBC0A0FBFA40EE4E7 /* SDLEncodedSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = CCC2E4CCCC588380F82E83F43587F252 /* SDLEncodedSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D7B7374DBEDD5A3F684E01BA9AAFB3B3 /* SDLBodyInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5817B772125FFF900077E9623DCD7E0F /* SDLBodyInformation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D866508C9A7CA2A7E6CF7766FAA58F33 /* SDLAlertResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D866FDF5A5451BCEB413407002EE42B /* SDLAlertResponse.m */; }; - D89C1FA54A43B215AFCFD3D02A9FE859 /* SDLSubscribeButtonResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E198C907E3D8D13A562100426F21D81 /* SDLSubscribeButtonResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D8A80A1C68EC4F43025883478D8CB9D0 /* SDLOnWayPointChange.m in Sources */ = {isa = PBXBuildFile; fileRef = C796D07492208120D730817A83899617 /* SDLOnWayPointChange.m */; }; - D8C7F0FC37A24FE15023B9CDF862E669 /* SDLHMIPermissions.m in Sources */ = {isa = PBXBuildFile; fileRef = 94AD2AEEC4EEEC528DD817E891BE3839 /* SDLHMIPermissions.m */; }; - D8CDF9E279165504252719FCB033CA38 /* SDLVideoStreamingState.h in Headers */ = {isa = PBXBuildFile; fileRef = 701B5609A93C858CAFCCEED925DA688E /* SDLVideoStreamingState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D8ED71A2B9F5E9D98C447D485332A99F /* SDLOnSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = A9F36B56817FFB9EC0DC7EB9A60CABAC /* SDLOnSyncPData.m */; }; - D8F7988ACC1BECA9C734EB18818833CF /* SDLPinchGesture.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A4D13E0009268C3B0AF4EE348B8F3E0 /* SDLPinchGesture.m */; }; - D8F8B76ED83E7B308A73BAB23CFAB95F /* SDLAppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D15B10D35949DEF7E116F8929404525 /* SDLAppInfo.m */; }; - D90C6ED75895BEF7908635D1106B319C /* SDLImageResolution.m in Sources */ = {isa = PBXBuildFile; fileRef = F8BCA7DDAC02AAC3F3B4BD14435C2606 /* SDLImageResolution.m */; }; - D925212DD2A0D89BD7B257984208A356 /* SDLCarWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A798CD52B9A6DE6399FEEDE186FB0D3C /* SDLCarWindow.m */; }; - D960D612D98D46D5AA86EBB3A7291634 /* SDLSendLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = D5819EE20D82F143CE1F0633E4D07C59 /* SDLSendLocation.m */; }; - D9662B2D0FFFFC7D6F7AE41C3EA3BAD2 /* SDLEnum.h in Headers */ = {isa = PBXBuildFile; fileRef = FCF86FF1762C0B9D3ADC7D0AC60200BD /* SDLEnum.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D9D4D5CB73090194E27617D1C080282F /* SDLConnectionManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = DB150042567FF8B4BA316079BE414F3C /* SDLConnectionManagerType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DA6CEDEB9BC4B14B984E13BBCD2BACEF /* SDLPerformInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A7CF2F17162C0947A4E9AF853EFDF84 /* SDLPerformInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DB8F4DDAFBDBC69A91E870F8CA086337 /* SDLSystemCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = DECDC982A9EC09E0580A89EA45345121 /* SDLSystemCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DBC8778A5AEDF1F7B552088CB11AA577 /* SDLParameterPermissions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AE500F1F2C18FA80AF0901CBBAF168A /* SDLParameterPermissions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DBE8765BED5677C418D627EE206306C3 /* SDLOnButtonEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 0353FFB6B9F1743EB1D5CE992BD111F6 /* SDLOnButtonEvent.m */; }; - DBF544509E5935118606279DCBE73CBA /* NSMutableDictionary+SafeRemove.h in Headers */ = {isa = PBXBuildFile; fileRef = B5429C05F82922A34D6A265163EECD6B /* NSMutableDictionary+SafeRemove.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DBFA41154367EDB649205FAB3A0AB1D8 /* SDLStreamingMediaManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 290173F04289B99176783B66E57534AB /* SDLStreamingMediaManager.m */; }; - DC0D059B471EFFAE3AF0F0D27E0841B3 /* SDLControlFramePayloadRPCStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = A99C0C1B0419FF7C520596517AACCC34 /* SDLControlFramePayloadRPCStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DC145C39228AF96CABD48303A921B8B2 /* SDLH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A44AD1324030A352FB7310E3D9272D9 /* SDLH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DC19EC9C46AE5676346DA606DAF9AC92 /* SDLLogFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FCA8FB78161DD00FAD7CF36B71D6E64 /* SDLLogFilter.m */; }; - DC313AF20AB465AD1B65873649B218CE /* SDLAlertManeuverResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B4199F609394E04D0432D522B8AC2E3C /* SDLAlertManeuverResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DCA6C0C2052238C2A0119B020C87F0E8 /* SDLPutFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 61D900C5783B4A7CCFDED7AB11155F20 /* SDLPutFile.m */; }; - DCB23496E88481D6F8C0122ACB9F58CA /* SmartDeviceLink-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C41D652EF9BBF85E62105FDA5237EAA /* SmartDeviceLink-dummy.m */; }; - DDA293D9DD24D4B90840CB223F377E91 /* SDLScrollableMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = C796B5BE48E8ED08367A0096265A5C98 /* SDLScrollableMessage.m */; }; - DDFD1462487F0102630F4A0082C2257F /* SDLStateMachine.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F18A46B205DECC8DF42A3B8D86D81C7 /* SDLStateMachine.m */; }; - DEF46BCD95E1763B276ADAF2871CC8B4 /* SDLFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BCEE3F9721D24A5D1B1C3F3B4AEFAB3 /* SDLFileManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DF21D101EABAB6E00CF7E707E3943AD1 /* NSMutableDictionary+Store.m in Sources */ = {isa = PBXBuildFile; fileRef = 016CB9356FC0EC057F66DB2E23F3B304 /* NSMutableDictionary+Store.m */; }; - DF2622D04F645AB7DB9F9580800B6CC9 /* SDLEndAudioPassThruResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 488731B70B7B275F56E7D61460E53EDB /* SDLEndAudioPassThruResponse.m */; }; - DF506D6F22A6093E23C6CE899FCBF525 /* SDLHMISettingsControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CB25C3CE5024B113E5C23EC30356631 /* SDLHMISettingsControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DF74594B1C61223786D0D9B8D050E83F /* SDLLightState.m in Sources */ = {isa = PBXBuildFile; fileRef = 905483586B21F30E32A6B74A710A1568 /* SDLLightState.m */; }; - DF7FA4C2B136CEAEE342364C6442AFEF /* SDLKeyboardEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 73EC5A5C8B44BA83334F832BC77A7E87 /* SDLKeyboardEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DFC0D308D215E6C2FD5552BB594D606B /* SDLCreateInteractionChoiceSetResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = AC02E9CDA5B401505FF227E9903BE9FE /* SDLCreateInteractionChoiceSetResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DFE9FB3071C537972E5F890964F3FD89 /* SDLPredefinedLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 07D5CF6B19D89EA1D458F113E19CDBFA /* SDLPredefinedLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E04A342E4724E073B5A460D2C5AE91BC /* SDLUpdateTurnListResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = BBC3AEA3C7164BC2E9913A9CFF16E8F8 /* SDLUpdateTurnListResponse.m */; }; - E0BEFED8F43D0F005D5A05202F986C32 /* SDLPresentKeyboardOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = E979C453EEBA7D264D8AED785CF17294 /* SDLPresentKeyboardOperation.m */; }; - E0C0F1716131F4FE8CBD8D1CC0A41FD0 /* SDLTriggerSource.m in Sources */ = {isa = PBXBuildFile; fileRef = F22C081156C963137E13B64F8EEDDBE7 /* SDLTriggerSource.m */; }; - E0D2935FD815FD8E1B90AE2117FF6E6A /* SDLChoice.m in Sources */ = {isa = PBXBuildFile; fileRef = E553C3FC056DF2AE3262E3A00B4DF074 /* SDLChoice.m */; }; - E13279B99727C389AFD55E86CEC6BA58 /* SDLSystemRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 3333FE8BAEDEBFE42D614FE436BD845A /* SDLSystemRequest.m */; }; - E1F35758D07A31CFFA6E16184DD11EC4 /* SDLCheckChoiceVROptionalOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 584A0744AB8704605C04A7819AA5939D /* SDLCheckChoiceVROptionalOperation.m */; }; - E229FDBBECD87A87201C7BEB4DC29D97 /* SDLMassageZone.m in Sources */ = {isa = PBXBuildFile; fileRef = C750AA9E3A4B741F05012DAB3CF5DCB8 /* SDLMassageZone.m */; }; - E27B64C34264C556BAE7E03E240D214E /* SDLImageField.h in Headers */ = {isa = PBXBuildFile; fileRef = 22D36F8BAF8DA247629274EEAD8B24E7 /* SDLImageField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E2BA5C9098A6A510F2A19C5CA6F82AB2 /* SDLKeyboardLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A3F10D75A29E72E114BC186C312F2C7 /* SDLKeyboardLayout.m */; }; - E2C1DF7393AC7180F65F923203F85987 /* SDLProtocolMessageDisassembler.h in Headers */ = {isa = PBXBuildFile; fileRef = C8CF322794D18B8D62BBDB8E3C98ACC9 /* SDLProtocolMessageDisassembler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E2CA6F1E1BA296B8C0844441245CF6B3 /* SDLButtonPress.m in Sources */ = {isa = PBXBuildFile; fileRef = E814731FA7DC9943F7B808D89A9B9F91 /* SDLButtonPress.m */; }; - E3263DFA6CB2DA52B1251FBBC9267E9B /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BCFAAA6F0A0783DBF1AE72813201ADF /* SDLControlFramePayloadVideoStartServiceAck.m */; }; - E382C92F1EE9D721478B6783BEF088C6 /* SDLPutFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C49C746FEF983198F94F124899429825 /* SDLPutFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E3A6309B863DBD37F355F41D4F97D179 /* SDLTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E365ECDA4C5949303D4269A4E6C1025 /* SDLTextField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4D497DFC67512E4D1F4009C9E89F0FD /* SDLSystemRequestResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E0D02E23B750D15B087CF6991C7DD1E5 /* SDLSystemRequestResponse.m */; }; - E4D9EA180566751F71491F35AF1EEAAD /* SDLTransportType.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F9E7450CE3C9AEF7780149EF7C0651C /* SDLTransportType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E4FD7A3BFF7D90B2E3C8D039F3A55FA6 /* SDLRequestType.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AA1F076AA965641F75BD01CEF11B284 /* SDLRequestType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E52889D43E0FB7B64BB000FC9047EF4F /* SDLDeleteFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = CBACDEE19366DD9A08DD42FC984CACED /* SDLDeleteFileResponse.m */; }; - E6384B8090DE58E1C6D8EBB98CD828FA /* SDLProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = D77223E88DCDD7BB63B0B6D7D09CBFE7 /* SDLProxy.m */; }; - E667646278FC1293CFD847649D8655CC /* SDLLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 06D99FBDB86BF07446B44FB4FFCEE7F0 /* SDLLifecycleManager.m */; }; - E6C36EB3D959CB47DC2F7526CBDF05B5 /* SDLConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = B0278E68A80F390A91516CE230C9B3CC /* SDLConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E6D564C8EDE8CAE7FCA5512DB2DADA6E /* SDLTemplateColorScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B77D58B46BB335AF89C58EAF72BD997 /* SDLTemplateColorScheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E6E9A49EFA611517F7EF0EDCD9E35960 /* SDLTurn.h in Headers */ = {isa = PBXBuildFile; fileRef = 58A9BC0BD679E91F8A1E67C32BAB9F47 /* SDLTurn.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E6F7715C5A376997A40D10429AE3A0B7 /* SDLSystemAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F4DBA778C889E7AE9BD815E523C2F54 /* SDLSystemAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E6FE356D60F2E1FE3B9CF6D0F2D86B4E /* SDLStreamingAudioLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 31A35F792486DE7AFBB2EC2911AE103F /* SDLStreamingAudioLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E6FFA1AD1EE5AA93DAE10797F2C8AA28 /* SDLFileWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 36EFA6746210C481724913EA6E678298 /* SDLFileWrapper.m */; }; - E71F05B18DC830EF0AB7959F28D68BE2 /* SDLLockScreenStatusManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FBB40AFB9493DDC169BE7015E9119C1C /* SDLLockScreenStatusManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E7744B78F3F530A78D8502D28037C347 /* SDLLightCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = BB6B9ADD337536D62D71C55DC701BE17 /* SDLLightCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E781F22072DFC3F3132D5BB0D708E0D0 /* SDLDIDResult.m in Sources */ = {isa = PBXBuildFile; fileRef = B6FB23E870874A2EEBD8388FECD14E7E /* SDLDIDResult.m */; }; - E792CF1027E6F625EA94598E49B6E5E5 /* SDLSecondaryTransportPrimaryProtocolHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = D2F29B3571AEDC6EF2A05C2FD2428B8C /* SDLSecondaryTransportPrimaryProtocolHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E7C6FBA916500B31D6BAD5FD6A7FC253 /* SDLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 71162CCC8CA6338D5ECE5EFE435E95AA /* SDLProtocol.m */; }; - E7F2901D28061C231237AB39E5917BCB /* SDLOnDriverDistraction.m in Sources */ = {isa = PBXBuildFile; fileRef = A8A0243D063C6F7BCF41557EE5E3C603 /* SDLOnDriverDistraction.m */; }; - E86251450D4D5A10419413C51E5980F9 /* SDLMenuParams.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D5F6CEF1D510CDBB8CE4707724F6BCB /* SDLMenuParams.m */; }; - E8BCD1132B57860BAB25B93D6D5A5B88 /* SDLStaticIconName.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D77537101F4D37E9DC5CF089F2678B1 /* SDLStaticIconName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E8D37B50A117D422D45107661FD8E4F7 /* CVPixelBufferRef+SDLUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = B2B07452EB490C836759502C767F6B41 /* CVPixelBufferRef+SDLUtil.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E8DC65D3D7BC1104A34ABA80362BEA50 /* SDLVideoStreamingCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = B328DA9E16288A04E1F8DF443AC85626 /* SDLVideoStreamingCodec.m */; }; - E953FBD34825D2C156A1CA52077AF11F /* SDLOnWayPointChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 32ED80D5DAF69F34604CA7B85C0B657F /* SDLOnWayPointChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E9CB1203295B52F61A258390A808BE1F /* SDLRPCMessageType.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BB88EEF32E4A188F028653388F389D5 /* SDLRPCMessageType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EA61BA97EB572FF25C639B4F9E68C659 /* SDLTCPTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = CA449C346ED9EF7784D603168D130BF9 /* SDLTCPTransport.m */; }; - EA652BBCE2C1ECEAE6D0B46DB88C749C /* SDLSendLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 780B1A1308BC973F769EB7125367DE11 /* SDLSendLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EA6F912B14512ED4F79A1D2E6FC711CC /* SDLLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = BD9F491F208EEC3102D4031C7F6CB6B0 /* SDLLightStatus.m */; }; - EAE41EFE7BBEF6574E83490434678CA0 /* SDLLogTargetAppleSystemLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 549F7580C94EB69D5BE9C5F4B08F5083 /* SDLLogTargetAppleSystemLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB8DDB9AD4603D10647FC08ABE42610D /* SDLGetSystemCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F82466C45406490A64E03020D7695E5 /* SDLGetSystemCapability.m */; }; - EB931FD87B77F6DB93801D24D19E70A4 /* SDLPrimaryAudioSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 8599A0D8C169D439326F1693136570F0 /* SDLPrimaryAudioSource.m */; }; - EBDF38FA85CF97881115CB93F448E837 /* SDLOnHMIStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A2714C0F9D631E857181A264EF1EC31 /* SDLOnHMIStatus.m */; }; - EC518DA48EE5DF5912CD141D90D73648 /* SDLDisplayType.m in Sources */ = {isa = PBXBuildFile; fileRef = D7E909DC64B7F89CB6C1A37B30E38768 /* SDLDisplayType.m */; }; - EC6A50FA7B1C3692FA221AF509564BA6 /* SDLOnDriverDistraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 63AB26B885F72FFE7CEF0E215898985A /* SDLOnDriverDistraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ECF6A7007CAD7FB05D06CA5DE6BDEA5D /* SDLRectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = 50D7B874B9AE6B227AA8F4F50CAA1FCF /* SDLRectangle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ED043AF96986740F0C2B21FD16A546BD /* SDLLightName.h in Headers */ = {isa = PBXBuildFile; fileRef = E01A788B715A9CBF3F7896EF220491A9 /* SDLLightName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ED155EF629DE9E96CF03905433FF317D /* SDLLockScreenPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B51FFE36220330A3CACA531C013CFCD /* SDLLockScreenPresenter.m */; }; - ED247219AD435BE12533D301314B1760 /* SDLSeatMemoryActionType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E2AF364F85ABFC8AA5227B0DA913557 /* SDLSeatMemoryActionType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EDB68C70A29C8AE09C277286983EC845 /* SDLUnsubscribeVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = FBC88689D957B55C0048D1CEDB2EBBC2 /* SDLUnsubscribeVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EDD76FFA6CC558AC6D28F89D749A34AC /* SDLClusterModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 891473743E394C175627756BB86F52F0 /* SDLClusterModeStatus.m */; }; - EE17450F281E5551AAAD2D4122552E83 /* SDLRGBColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 77FDF4FE519E3C33CA096626BFB7B6D1 /* SDLRGBColor.m */; }; - EE668C077436E23D23D3D8143234DBFF /* SDLVehicleDataResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 3265C5001A2B5C7FDD75B87FB09F0A9E /* SDLVehicleDataResult.m */; }; - EE83DA4A9631A6BF74579B86A67E1804 /* SDLSendLocationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = BAE73359DCF96D79A92A9621B8D305A0 /* SDLSendLocationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EF0ACB6858CA006466F6694250CF9080 /* SDLAlertManeuver.h in Headers */ = {isa = PBXBuildFile; fileRef = E2089987A5A19A000806B07EDD110D60 /* SDLAlertManeuver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F031E5966EF2B48A72EDB2BAB660396B /* SmartDeviceLink.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2C02C584E9C325081E3002F99447C832 /* SmartDeviceLink.bundle */; }; - F05E6947D5F62C46FFEFE2F7AA748FC8 /* SDLRPCRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C40B5ABF69E45AE08FA378534E3FD62 /* SDLRPCRequest.m */; }; - F075039C9251E96378A56699649789EF /* SDLPermissionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A19C848AB1E8F2E05CFD76981E2F0E4 /* SDLPermissionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F0D07E28EC0315EE585092ED33E1E9E3 /* SDLAudioPassThruCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = F7C5259708F8AF4982C24C1ED677BA04 /* SDLAudioPassThruCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F18CBAD8CC913B833F300406A391E822 /* SDLTouchManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 56D0196F865D56B6B7B5A1E790ABB1CD /* SDLTouchManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F18D99D31992908DCAAD16351D1225E7 /* SDLHapticRect.h in Headers */ = {isa = PBXBuildFile; fileRef = D355CD2546086C41A89F4B7AAAE4C8E5 /* SDLHapticRect.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1DFF6D17DFF429191689AFE9893BF89 /* SDLMassageZone.h in Headers */ = {isa = PBXBuildFile; fileRef = B783979D82B11AE5D445D43DAC75137B /* SDLMassageZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F23657E3ED082FFD12BCEBB03B8E4754 /* SDLGetVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 60E7BF58504667B6C399DDBD6B080290 /* SDLGetVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F25F7B5F861203B7E554F493EFD1CD01 /* SDLHexUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 5761EF60549E9FE40D6E1CB212E18183 /* SDLHexUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F2CCEB4B6CC84795E8F6EC28CC2031CD /* SDLFuelRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E9121D1F31F40400B66520537D850C6 /* SDLFuelRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F2DE3C75015CD483965F2CBDFB21C57C /* SDLShowConstantTBTResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B10C0BDDE44A8F647B3972B9E54F2BC1 /* SDLShowConstantTBTResponse.m */; }; - F38321F6E1B732F7CEDB3AE3023BF33E /* SDLGetSystemCapabilityResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = ABE9C5E4BE504C29DCF7CF015D462C41 /* SDLGetSystemCapabilityResponse.m */; }; - F392E30534A543EE54B570597B2B6ED5 /* SDLRegisterAppInterfaceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DAD01D3B62C827AC23B4522D86C191C /* SDLRegisterAppInterfaceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3B256DF9728486349ACBAC2FF17275C /* SDLSeatMemoryActionType.m in Sources */ = {isa = PBXBuildFile; fileRef = 878F4A0B3877E844E198E0B2E21CDFC0 /* SDLSeatMemoryActionType.m */; }; - F3DADEE968371419C83BA1305E0D0D23 /* SDLRPCMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = A589684F65F9FCA9FE1606A5A4DA449B /* SDLRPCMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F41E22F7099FD22A75464C95A275593F /* SDLScrollableMessageResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 46EE98845646D112104D2F453723124B /* SDLScrollableMessageResponse.m */; }; - F42830430D0A02D43C2BE85C2AD22238 /* SDLManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 50FEDDD1C36DDED7C4070C8E3AFE4306 /* SDLManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F484B27FF61CF3F02647B9CF32FB3749 /* SDLRPCNotificationNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 95A201BA4F4CA5F7F7471FC21C318016 /* SDLRPCNotificationNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F4B664B8731CFEE056D3DC6EE1979783 /* SDLSubscribeVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = BA3A24BAD4F7C9627E27A09F459982DE /* SDLSubscribeVehicleDataResponse.m */; }; - F4D7E3DB98D985518CBA00A931EE7A89 /* SDLManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 01E87A8975185D153094D861550E2DE5 /* SDLManager.m */; }; - F52461B0208D07BDA1B362B49B8FBD5C /* SDLAudioStreamManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 74A196E00B38B0AA6CE7F5CFC4361BB1 /* SDLAudioStreamManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F547698FEF2F7006BB277000FECE7C27 /* SDLSliderResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AD8A6F8A59C6A3CCC42BF3FFBDCE6F5 /* SDLSliderResponse.m */; }; - F567248A2CBDD5AC8CF6BCC431DE09F3 /* SDLAudioControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = D8B425573155D00965E31D784C070BB2 /* SDLAudioControlData.m */; }; - F57A663D28734BF9EE81B1C59E30E436 /* SDLGetVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 002DD635E351A128D9079F0337E8B71E /* SDLGetVehicleDataResponse.m */; }; - F5965C8BECB2C649963997914210A539 /* SDLTemperature.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A4F2EA6C3CBD72615526EFA883EDCEF /* SDLTemperature.m */; }; - F5DCCFB916C50F9482F9C37FE84C14CB /* SDLMassageMode.m in Sources */ = {isa = PBXBuildFile; fileRef = C924DE2BB45B9FC311749106243E9660 /* SDLMassageMode.m */; }; - F5EEF1197BE6FC5D8F9224FA2F6F636B /* SDLECallInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A4092219A6781B72119BACC1AF43FD9 /* SDLECallInfo.m */; }; - F64AA1D446842CBC012273E3553DECAD /* SDLRadioControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = AA20B3EE1581C1E1FB217AFBA2AC5289 /* SDLRadioControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F6C2994179CF8C6D8997F66B10D39091 /* SDLDisplayCapabilities+ShowManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9919BFC927D3E2CF081C66079A4CF0CE /* SDLDisplayCapabilities+ShowManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F75264C66077CC891F71C3A5611EE09F /* SDLElectronicParkBrakeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B30EC6A6FFDC546EAEF3EC9419433DB1 /* SDLElectronicParkBrakeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F7D31D19BB642433366C20F57E886B16 /* SDLVideoEncoderDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD3F3FCB6D7F8375707A5ADE2B0B9D7 /* SDLVideoEncoderDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F7E486C3F2B050B7186372B26F184BB8 /* SDLSpeechCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 623492413C9581E1C2A71421E771D34D /* SDLSpeechCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F7F7B60B5DDE0E8C3148AFDCF3FEBF48 /* SDLPermissionFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B02040B6B2927923E23CE8142AD72B8 /* SDLPermissionFilter.m */; }; - F8106552810652AB6D988BA704E3AC60 /* SDLLockScreenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C38CF58405932FA0DE21389A5726742 /* SDLLockScreenViewController.m */; }; - F8A3D17447CD1BBD2A178E1E9E42DB70 /* SDLListFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 12E2885863DDF0D17C96EFAAEF45AC56 /* SDLListFiles.m */; }; - F8D81C0A73C636F00FBBCC4073DAE257 /* SDLButtonPressMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 75A879FE5BDC2962D651DE4F586D85C2 /* SDLButtonPressMode.m */; }; - F8DCABDD288571F66402C114F3899498 /* SDLHapticRect.m in Sources */ = {isa = PBXBuildFile; fileRef = 2661D6B4F1E4A0C87E7B79EB35BB7A17 /* SDLHapticRect.m */; }; - F8E512A9CAF6B80125DBCE5093A48B6B /* SDLVrHelpItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 377445D67676F1D832550CE95B78BB4F /* SDLVrHelpItem.m */; }; - F94CBB0E94F35122982422C9033CA290 /* SDLFile.h in Headers */ = {isa = PBXBuildFile; fileRef = E1C51C46435F3ED7FF9BB06FFC5A4F24 /* SDLFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F9D28D386FF090E6BCA7E2A0A547A3E2 /* SDLFocusableItemLocator.h in Headers */ = {isa = PBXBuildFile; fileRef = EB02227CF664EEADE944C75221C640FC /* SDLFocusableItemLocator.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F9E963605CD967D489802FD36C976317 /* SDLTimerMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B32686218B33B63CF5B9A0030051449 /* SDLTimerMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F9EF9685DAD362ED40662958F0775431 /* SDLSingleTireStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = CCAC618CC0C3328787BC012A68387719 /* SDLSingleTireStatus.m */; }; - FA068D27E688257BCD7280CADC7D92B2 /* SDLAddCommandResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D207F9B285022DA6A6CFAFCF14839E58 /* SDLAddCommandResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA0983BF15E5145CFF7EC67FCDA6D1C5 /* SDLBeltStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 2088BFCC8505D1E1234DF6E077FBF1ED /* SDLBeltStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA5C8678979CE1CE6335D0580B458AE7 /* SDLTTSChunk.m in Sources */ = {isa = PBXBuildFile; fileRef = C72CB8FE47E78B2195E1D260F2BCBE55 /* SDLTTSChunk.m */; }; - FAE6DA6BB36C59AFE54B415046D950BB /* SDLBitsPerSample.m in Sources */ = {isa = PBXBuildFile; fileRef = B0CF7AD880B807C0CCA2FC1036A68225 /* SDLBitsPerSample.m */; }; - FB71EC687E318FDBEEAD61E01DDEDB0D /* SDLPresetBankCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 220469AA15E3466DA4D330C338703784 /* SDLPresetBankCapabilities.m */; }; - FBC44B18BAE4EF95422584B6C2EF0367 /* SDLUnsubscribeVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 515E6C76E4E40643313548862912653D /* SDLUnsubscribeVehicleData.m */; }; - FC21A4EA24E55CA18CF2CAC980D68C76 /* SDLLightControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 36627794E114102CDCC27CFF984888EB /* SDLLightControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FD57C4F9A26CBE0B39E9D9925DD048B3 /* SDLScrollableMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 113CC595E16045B043EF5DD17719EC29 /* SDLScrollableMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FDA99C72FCCC08F9958850EDAC37789B /* SDLDeleteSubMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 4622BBAB6C0909487F8E5B2C90DED6CF /* SDLDeleteSubMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FDED759629FA131DEDB2F00DDCC3D57C /* SDLStartTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 0606C8406E5F0896454C2482843C1837 /* SDLStartTime.m */; }; - FDF34E6C9E3E756D281B22CE59F9C228 /* SDLLogConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 00DC145453C6AE5E4252C91AEC9E4D10 /* SDLLogConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE2A39B8680A279AEEAA731E3C160C35 /* SDLHeadLampStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A5E8DF4DFE51C93135F6D5D75D9EC8C /* SDLHeadLampStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEAD2B1271EDD3169B3D76024AD5092E /* SDLUpdateTurnListResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = E439FC4CCB22233A41FA34B33784F938 /* SDLUpdateTurnListResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FF59DFEE18469A77E54029DB64085770 /* SDLRadioControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F770F0B48C84089402B55A1C16E0BCE /* SDLRadioControlCapabilities.m */; }; - FFC02EFE8F4650236EE18746F3C99B26 /* SDLRequestType.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C1FD7A0723D168384A7197B14A2529E /* SDLRequestType.m */; }; - FFC8023A64FCF411F0C9499967FB8289 /* SDLIAPTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 41EACD9F247C6BE29368926681946F79 /* SDLIAPTransport.m */; }; - FFD2DE79E153D602C64F7CC2C58EE395 /* SDLShow.m in Sources */ = {isa = PBXBuildFile; fileRef = 58FEBFDAA6ED51BFCA92BDE0533F474B /* SDLShow.m */; }; - FFE5C4FAF2039AF094D03BDEDBF3C70A /* SDLAirbagStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = BEDC2BDA5B8E9DAF263D585755CB6C1A /* SDLAirbagStatus.m */; }; + 0066A50956A60610464FC1F18D624CF7 /* SDLSingleTireStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 31BBFBBEB2100C4535679ABAF5A55F79 /* SDLSingleTireStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 00CB17531475454F299A0A8C2D46C476 /* SDLSetMediaClockTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = B63DE7845F5EA943E8C3BC9F2728CFB8 /* SDLSetMediaClockTimer.m */; }; + 0110C3A32BF6872DBCE812C8BBEFF1BE /* SDLTriggerSource.h in Headers */ = {isa = PBXBuildFile; fileRef = E0F50AF8211EE62DF94E01FA5E79CE67 /* SDLTriggerSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 011DC22B43225C9180D2B058811D31AA /* SDLDiagnosticMessageResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5550D8512B86F0A9F6C54350FB7AAE2F /* SDLDiagnosticMessageResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 012F6AE0D9162FA9149FB63AA537BF0C /* SDLFileType.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EF29BC404FD0F315A73C9D9A7351277 /* SDLFileType.m */; }; + 016271ED126FCB8B88C223982FE04B7A /* SDLStreamingVideoLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E182A82AB3C691E7B275AADAB942174 /* SDLStreamingVideoLifecycleManager.m */; }; + 017D3194B0FDE2D9A6C3A9ED92EDEDE5 /* SDLV1ProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B07FF648818147BBC509B12366D5DBE /* SDLV1ProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 018583F6E7B468815A4573F80262E82C /* SDLReadDIDResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 96983BEA7459A4232662DD0F57B29510 /* SDLReadDIDResponse.m */; }; + 01DFEF5F29A72D78E26203AC58138181 /* SDLIAPDataSession.m in Sources */ = {isa = PBXBuildFile; fileRef = F92F17C1D868E9CB7F4CF24A1F1EE509 /* SDLIAPDataSession.m */; }; + 022788A008E07EC139761666C4AFE592 /* SDLReleaseInteriorVehicleDataModule.h in Headers */ = {isa = PBXBuildFile; fileRef = B7A802ACC8F876FF3416830E0C985866 /* SDLReleaseInteriorVehicleDataModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 023E2436FD8188E9E8A6CA420BC6D170 /* SDLAppServicesCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 092865BB22501250C0C3FF3D5CF2E200 /* SDLAppServicesCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 02AB9B1AA28B31228B74A8126EA4F6E9 /* SDLBitsPerSample.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BDE0E2D5DE878BA2561C438678E7EA /* SDLBitsPerSample.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 02E615FEAD3D67B70BD9E50488658C20 /* SDLAppInterfaceUnregisteredReason.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C7F206C35B6B523B922930AEAD75A25 /* SDLAppInterfaceUnregisteredReason.m */; }; + 031495D4969E56B37EACAA1F70767994 /* SDLVideoStreamingFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AE2355374C44304F88A7DFB00858AA2 /* SDLVideoStreamingFormat.m */; }; + 035191FB5FFFEEABB361B4A406A43A41 /* SDLFile.m in Sources */ = {isa = PBXBuildFile; fileRef = D3DA4CCC5B1886D2AC2DC948D22D54C9 /* SDLFile.m */; }; + 0357B14944269911EAAD982BCA3F4A66 /* SDLResponseDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 304AFE04E482029F914E870FCBC54E4F /* SDLResponseDispatcher.m */; }; + 03BFBA09CDC067C038AE6B2618500579 /* SDLPerformInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1550A67573AAF420DF46830D2328EB6F /* SDLPerformInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 03DB16B1FFEB1C86E3BD993FE8734543 /* SDLOnVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = BA1EE36D54B3E51448786809008AA6D3 /* SDLOnVehicleData.m */; }; + 03FD1A58E5CE6B4F5D7AC73BD8F04106 /* SDLEnum.h in Headers */ = {isa = PBXBuildFile; fileRef = 8619125F9745A7BD3975F3CBD74C4613 /* SDLEnum.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 040C6196B4B9154BCBFD11E9FAE0466D /* SDLScreenParams.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C4374789272475208038484B688328D /* SDLScreenParams.m */; }; + 04437FB778E703F55CBAE8E1E6B26E79 /* SDLSystemRequestResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8659E6ED0DA1E9DEB1C42B4582F2C284 /* SDLSystemRequestResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 045750228497D4A9200D3F5B8E4364CD /* SDLInteractionMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 4055BE744BC2A9F663E6671A2480D01A /* SDLInteractionMode.m */; }; + 04867FEAFBAA4F32FDEE6D4D145C1B19 /* CGPoint_Util.m in Sources */ = {isa = PBXBuildFile; fileRef = B5ACECDC2EB38CF822CD5E4F6482A49A /* CGPoint_Util.m */; }; + 04AC3A2D5D8EA70CD7DC71985028059E /* SDLDiagnosticMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 76D324B05E41128D942966F0A0EEBB12 /* SDLDiagnosticMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 04B18BE8079A29A81ACA01FED3181CED /* SDLVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = A8F74D221FAE93D785BB127D2DBA24CF /* SDLVersion.m */; }; + 0551A6C1A7387993229F74C2DA8DFED0 /* SDLPermissionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E5DD878D3427D986DE5573FF06202CB /* SDLPermissionManager.m */; }; + 0567BA39C9D8F87D132349786EF77E51 /* SDLV2ProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B3EF2AF2354F5AF6D7A430764CE2C2B /* SDLV2ProtocolHeader.m */; }; + 0640A84E3A042DC547293AA195F16D9E /* SmartDeviceLink-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FA6252C6FBD069E899B6254B7D8F58B5 /* SmartDeviceLink-dummy.m */; }; + 0699763FA69B0EF2765A379706BFBB5C /* SDLPermissionConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 7510FD20D7400BF8B329E618E46A0A19 /* SDLPermissionConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 06CF5C974D40D1CAE5DA0BD8B6BEDA1A /* SmartDeviceLink.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C197364227C0998A9025317EAD699894 /* SmartDeviceLink.bundle */; }; + 07103FB478E54508351B3BE23E35492E /* SDLUpdateMode.h in Headers */ = {isa = PBXBuildFile; fileRef = F3CD46DEB812EEF3053AE7AD322133F4 /* SDLUpdateMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07236B7C2904B1537466E4F3B99A7483 /* SDLTouchManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 691225BFF1BB8235FF07367825ECE854 /* SDLTouchManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07B6661A4C2C025E3467589D6971E4DB /* SDLCancelInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 102FDAC56AEF5163B033D0CC47822A7F /* SDLCancelInteractionResponse.m */; }; + 07FE270AE156157348A04C871085DC67 /* SDLGetSystemCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 12816F5316A38E539BD4FBCC77ADE586 /* SDLGetSystemCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 08FA3423342DC39363ADE4F4A3D7A5E0 /* SDLStationIDNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 92FB143CC43A57BDCD09A5180EFC7A56 /* SDLStationIDNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 09718516EA3E6A7A5CFC06F350845401 /* SDLOnCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = CFE665A143945D4F523E9805AC91DEE2 /* SDLOnCommand.m */; }; + 09CB3258A7C0449C98FC1A8FFCBD7E8B /* SDLControlFramePayloadNak.m in Sources */ = {isa = PBXBuildFile; fileRef = AFF3E79663035A0B5E589A3D5DF2051B /* SDLControlFramePayloadNak.m */; }; + 0A5F18BE6407FA7AAC0208B310CCA32F /* SDLLifecycleProtocolHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 37BB95EEE59CD21C3293F54E2CD22CEA /* SDLLifecycleProtocolHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0AC91200FA1934E943493ECCC8136122 /* SDLFileManagerConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = BB04F62BFFD1CB792E34526F173104FF /* SDLFileManagerConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0AD6F7B5EC996D9805558DCB02414DA7 /* SDLRadioBand.h in Headers */ = {isa = PBXBuildFile; fileRef = AAA96D67B0E11DC1C39AA70AED46098E /* SDLRadioBand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0B8CFC9287CE4FD15A45F365C86B5FFE /* SDLSeatLocationCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 39FFFBA8ED556FDD85EBCF18BF7898C8 /* SDLSeatLocationCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0B933EE495EEB97207691239D9319BC2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */; }; + 0BBAEC4E7FDE7908CB2F92C7B294C4D8 /* SDLSystemCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BBAEFCD3A5756020019D66827B7F6BA /* SDLSystemCapability.m */; }; + 0BD5D8A58EE45EC6BAB24293E3FEA017 /* SDLAudioStreamingState.m in Sources */ = {isa = PBXBuildFile; fileRef = AF28A68579C98F539C039EA29CA59D4B /* SDLAudioStreamingState.m */; }; + 0BF4C3DD58C44DA1F4C0174DD975AA7F /* SDLSystemContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CB3708FD84DFD102864FB3A724A9689 /* SDLSystemContext.m */; }; + 0C4CAB319C0DD76BC32BE6C5EBB1B41C /* SDLOnHashChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EAB0821E72518202FBFA198CD9E48F0 /* SDLOnHashChange.m */; }; + 0C68DF7AC21D2860D88C4EAFD8B95C31 /* SDLSetMediaClockTimerResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C4AC1439B1DAC65A9F876F7CBE5B8E3F /* SDLSetMediaClockTimerResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C842D098EED306B734C442A93C4D3B0 /* SDLListFilesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A1B97540C9445EBC294C833B507564A /* SDLListFilesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0D455F85C037AA10A41AB17B5E73F7D9 /* SDLLocationDetails.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B0CD534B92E485AC78B351897352A70 /* SDLLocationDetails.m */; }; + 0D4E9787AFBEBE399ED33BC220BBF5DB /* SDLDeleteFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C8C16DD6E47A4B9FA795780317963CB0 /* SDLDeleteFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0DB4E8891C30BCE56D71B24F6AC8874E /* SDLSetInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F29D039A34A2CA78536348CE96D9ACA /* SDLSetInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0DEB36187DADB983909A6D14D84906B8 /* SDLFuelType.m in Sources */ = {isa = PBXBuildFile; fileRef = 16195BA066D92C5855624759BE7284F8 /* SDLFuelType.m */; }; + 0E07F39B9DC463DCFC8D2D7E96CEB223 /* SDLControlFramePayloadAudioStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = FED390E4F93350C474A580927CB768CE /* SDLControlFramePayloadAudioStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0E3B22B9667D90B77024475A54B97B6A /* SDLSubscribeButtonManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 889A9936FDAA22D7E7DACA85443E9515 /* SDLSubscribeButtonManager.m */; }; + 0E3ECC9ABD6472D32DC6E58A3E08B44E /* SDLOnLanguageChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 533F7AB90936113C747905A9130536F7 /* SDLOnLanguageChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0E4D84974346309363F47C9BC13F891F /* SDLFileWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 5587E86763C14DCAE5CD85F2D66EEE60 /* SDLFileWrapper.m */; }; + 0E670FBA97E4397EE7B3E77471F4D8BD /* SDLMetadataTags.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F4125C10AB281EFB11D2A890DF0DE61 /* SDLMetadataTags.m */; }; + 0F25929AD33907EB2347A3F23241C047 /* SDLUnsubscribeWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B4549A9A5E6AF77B821A8EA6F04A858 /* SDLUnsubscribeWayPoints.m */; }; + 0F3B5FE619F16BEE1403425BD8C7F520 /* SDLLogConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 78F5E319075CD2E0DA4A60935A86DC1F /* SDLLogConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0F6A60ED43283E82D2B9D2B44891F791 /* SDLDeleteCommandResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 99287642C46A058853261EE0F8FB5803 /* SDLDeleteCommandResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 105369E74A34167632F2CE1FEEC4B7CC /* SDLNavigationServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = E9F85118D824B3F5F59A8305E48245E0 /* SDLNavigationServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 107C1A8D01DEA7B07FC9EA5B18C62015 /* SDLSlider.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E30FC7A94025A61E6EA176845E4BEF3 /* SDLSlider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 10B7FA44559708E235A4D2429B1DD44C /* SDLAddSubMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 50B06BF759879E5F7FB48501D617628A /* SDLAddSubMenu.m */; }; + 10E36D3AD6990D109C03EF220CB91E32 /* SDLLockScreenConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 00F5A6A079156BEB8005F1C89BA34E2C /* SDLLockScreenConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 10FDDEDD0CB42C86BE626249764D1B85 /* SDLOnPermissionsChange.h in Headers */ = {isa = PBXBuildFile; fileRef = BE78691CB41A6B40E2140633BB7AA4A7 /* SDLOnPermissionsChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1129F96669BD2895C203A36F68AC5039 /* SDLKeyboardDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = EC650878367AF7C7B83FAEC062BFA3A1 /* SDLKeyboardDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1283216835F6ABF78E4E5E54EA7962E0 /* SDLLogTargetOSLog.h in Headers */ = {isa = PBXBuildFile; fileRef = CA97A48978C804461E3488F28629372A /* SDLLogTargetOSLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1299B38E94144A30AE45024F7CC05532 /* SDLAddSubMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D68D39C84895E461F1B9634D606671E1 /* SDLAddSubMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 13972B331486A40C0383D0FF8694E4BC /* SDLTextAndGraphicManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1908048E1CC8A27E740EF38F5430D864 /* SDLTextAndGraphicManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 13FB2D6E2ACF6617CF28D7BC8F966E73 /* SDLLightCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B628B43B6ADADBEB6501E049D64E37F /* SDLLightCapabilities.m */; }; + 143FEB3EE4BC244DDD88E14344D6B76C /* SDLLockScreenViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 769339F5B0569F2B7DC24EC805CA5828 /* SDLLockScreenViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 145286E6935D42A4892E1B68B64CEE1D /* SDLAddSubMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = F308C661B15B847B779C39D350766544 /* SDLAddSubMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14696775CAFCCDDD4E89AF56DF5B4D81 /* SDLSystemCapabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 773018652B375661E7ABA7CC63A04D1D /* SDLSystemCapabilityManager.m */; }; + 14861AC8930B7F124EB641618C8EC24B /* SDLNavigationServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FF1117561E991A2D81068EDFF178C65 /* SDLNavigationServiceData.m */; }; + 14A912514B48A2F767D72FFC45C7057E /* SDLPrimaryAudioSource.h in Headers */ = {isa = PBXBuildFile; fileRef = BC5A329C0A76812EF1D11777FDB665A8 /* SDLPrimaryAudioSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14C2FEF6C23E292C7F15E45015C72645 /* SDLSoftButton.m in Sources */ = {isa = PBXBuildFile; fileRef = FF05E55CA61B330811455432212034C1 /* SDLSoftButton.m */; }; + 1514165F8C64FE072961FCC0853C48A1 /* SDLScrollableMessageResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B384DD0203EADC9A558BDBF6CCD33DA /* SDLScrollableMessageResponse.m */; }; + 157BAA3EB92752922B163EA46E9D0DB9 /* SDLRDSData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B261757A2927398D6F981A1FCC62A65 /* SDLRDSData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 158A038BFD11A6E0BC5A6E687F9E3647 /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 79477F35CD70B0D22D924DD87A435888 /* SDLControlFramePayloadVideoStartServiceAck.m */; }; + 1697CD08D2311669260F79B71E513B5F /* SDLWeatherAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = D570A1BD7CC0E6336C341706DE07CA56 /* SDLWeatherAlert.m */; }; + 1699B1DC3B210BB0EA3EC3477569179C /* SDLTemperatureUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = DB37F4EF3E6ADA6FA78C8A414C2980AF /* SDLTemperatureUnit.m */; }; + 16AB530744D2106B1F11B0430918DF43 /* SDLVideoStreamingState.m in Sources */ = {isa = PBXBuildFile; fileRef = E0A61B983B6B91FDF2BA49150AE2356C /* SDLVideoStreamingState.m */; }; + 16ACD830584EB36BBCD51EE70C466504 /* SDLLockScreenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 576F83EF4D4371B437DFAE8A0F7CFAA1 /* SDLLockScreenViewController.m */; }; + 172F0217F50B3802792873291333615B /* SDLGetDTCs.h in Headers */ = {isa = PBXBuildFile; fileRef = 868ABD43DF81EE49690B9D5C41FB25D3 /* SDLGetDTCs.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17388E0CEAD1357464CC365A3C483F55 /* SDLPrerecordedSpeech.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DEF9947C4576AE910482FFD434E878E /* SDLPrerecordedSpeech.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 174101305620EC2BDD86A2324EAD2250 /* SDLGetVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 41DDF1201E3711F4B246F80D53C3BE29 /* SDLGetVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1782A870F0444CD170E723B94D9D9938 /* SDLStartTime.m in Sources */ = {isa = PBXBuildFile; fileRef = BA6551D7C8879D8E91C30E3DB455E34C /* SDLStartTime.m */; }; + 17C52BC9B9BE5AA733DFC59948575010 /* SDLStreamingAudioLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C22133A4EF2323F887466EC7EED58C3 /* SDLStreamingAudioLifecycleManager.m */; }; + 17CECF9E5DD0110F7D4844C33B8355D1 /* SDLOnEncodedSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = CE553E3605D4CBF175959C2A6AFFA992 /* SDLOnEncodedSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17E4FFBC4E56178F24E14C3672E2A532 /* SDLStreamingMediaManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 235D21011FFD874789BF1B303492BB80 /* SDLStreamingMediaManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17F93BD73F0A59E175D277959F26E49E /* SDLOnAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 07586438D975F70590DE46C92B04B3D4 /* SDLOnAppServiceData.m */; }; + 180E06FF7C4938D1766280C11FB4E657 /* SDLMetadataTags.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A116087C3B6EFD78EC43CDA42ED9FA1 /* SDLMetadataTags.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1815A9C8A4247E4E7613B7EF15930B09 /* SDLLogFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = AF19BE6750BCA76EDC3A8FC9E6C92344 /* SDLLogFilter.m */; }; + 184B5F2AB049F7AEACB2B4E425EF9DA2 /* SDLEqualizerSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = E9865E2D3C6B1D187D3D04C2B429951E /* SDLEqualizerSettings.m */; }; + 1866DAB2990E2E6758DBFCC4AFFC1164 /* SDLProtocolMessageAssembler.h in Headers */ = {isa = PBXBuildFile; fileRef = DADF8BE5914CC5FDE27CC4C54E6F38A6 /* SDLProtocolMessageAssembler.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 18A04DAC7FB0A146DAC40573D200166B /* SDLControlFramePayloadRPCStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B5378A0D8A574B369D8D84FC58D1882 /* SDLControlFramePayloadRPCStartServiceAck.m */; }; + 19835AEE7EA809F00EE8C6FA4A1F1304 /* SDLButtonPressResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FA3D11485B98D532358487B826F92A6 /* SDLButtonPressResponse.m */; }; + 1AB0F0C524720148B94C531A6EC007E7 /* SDLSpeak.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1C11AC277FD13D61BE3491397D447F /* SDLSpeak.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1ABF5FF95BD4B3072309D0302C023D69 /* SDLChangeRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF8FC180D4BBA0EC08C5AEB71F88B60 /* SDLChangeRegistration.m */; }; + 1AF57B3641E4C70E402DC7D0D99D10B3 /* SDLLogManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 14A578E900D2B9BF8DDA0AE05B717967 /* SDLLogManager.m */; }; + 1B0890B8A98812BF360C72316B4CDA04 /* SDLMsgVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B140D8D2A0B9E079DA6C09D0FDD57F2 /* SDLMsgVersion.m */; }; + 1B5C00162799C6FCF2D19928932C85D5 /* SDLSoftButtonReplaceOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CF4CCE42229C9A7F2C4FACE1B032A768 /* SDLSoftButtonReplaceOperation.m */; }; + 1B7FC0D068CB65F067EE1EF97AE651EF /* SDLHeadLampStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 74A65D2D8ED21D32C107935C517191E4 /* SDLHeadLampStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1BA2F03BE97087A041FE88AEE1781741 /* SDLAddSubMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CE9058C4CECC7EB2181F33AED464312 /* SDLAddSubMenuResponse.m */; }; + 1BC4F89B700407702412F597B8D6A4C0 /* SDLTouchEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DB8E34CADC6FD344370C3E41DF04943 /* SDLTouchEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C2AFD76AF172CA723E4F2D158FB0649 /* SDLVehicleDataResultCode.h in Headers */ = {isa = PBXBuildFile; fileRef = BA96306DAEE794F0C9FC374D0556DB27 /* SDLVehicleDataResultCode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C89E481A5D7EF11BBBD00A7639D1CEE /* SDLSpeechCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = D68BE4979539A4404F1FA1C07DC34D55 /* SDLSpeechCapabilities.m */; }; + 1C8C72AEDD049473754C1840C1174517 /* SDLEndAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FE4CF814EDDBC348C63CE0ADEA512E8 /* SDLEndAudioPassThru.m */; }; + 1CAAE194909CE3C7EF3D0CCEAA15CC0B /* SDLWindowType.h in Headers */ = {isa = PBXBuildFile; fileRef = A84893E9B393129BECE4A90B2112AA3D /* SDLWindowType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1CCDD2195B5F545AC27DCDEEE82662AD /* SDLDisplayCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = D4C1DE17C70124F2EC7ADB7C93FCA111 /* SDLDisplayCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1CDB4452916538DA9605B54CD9CF9253 /* SDLModuleType.h in Headers */ = {isa = PBXBuildFile; fileRef = A11273079923EC17BEF8EA166ED142FD /* SDLModuleType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1CDF2C5793F2F158F1C6972F6555B83C /* SDLLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = EE8BF2510CC06F2DAEB2AE8D19B4346D /* SDLLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1CF92ED9901B6CC836F3981EFADF0EAE /* SDLAmbientLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 29633F4DCFB56822424E2DE90E738544 /* SDLAmbientLightStatus.m */; }; + 1D3DFC81393C32B76E87A25331260E3D /* SDLDIDResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A578665B9047694A0F347F293DE12B4 /* SDLDIDResult.m */; }; + 1D4B6C284868B1006C28D7EB5E755169 /* SDLViewControllerPresentable.h in Headers */ = {isa = PBXBuildFile; fileRef = E809A18658FB035135235C331745934C /* SDLViewControllerPresentable.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1DBD98BA90ACDD24E656DA81B6F5D53E /* SDLResetGlobalPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D76301C2554A02484AFC7B13C487F7AF /* SDLResetGlobalPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1DCA61545F36E072ADB3AC5B84120804 /* SDLEmergencyEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 02FDA2F0BEF128D86C26F8CC45E68CD1 /* SDLEmergencyEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1DD7C0B18941D631AC369A549BCCF337 /* SDLDisplayType.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E811202558CAA5E41CCE8C8544776CB /* SDLDisplayType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E0B34809FC5E69B56D3EA6B2A1F6298 /* SDLSendLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = FDB100B41F41367A5046A8650FD53430 /* SDLSendLocation.m */; }; + 1E1C18899CFA06BDF66E3C1276224C50 /* SDLSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D2180BDF4301C114F0173CBFE678364 /* SDLSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E78598094FD94D3F1B5A829104E11A8 /* SDLTemperatureUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E8C49B9AEFE2B7A0D27192F5F4FE6C7 /* SDLTemperatureUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F04F9E2D54DFA9F857F25B8733C4D20 /* SDLOnTBTClientState.h in Headers */ = {isa = PBXBuildFile; fileRef = 80B228053FDFC1AE6EC6A285F9C67826 /* SDLOnTBTClientState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F3DC8D6580E5EFD9D430958C7434B53 /* SDLVoiceCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 18305D4E4A21F03086AE858DAC4C9BC4 /* SDLVoiceCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F50DF24E9A0014A9BCFC634EC76C186 /* SDLCloseApplicationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FB76E8AF108D2D2C116E5B5C72CECB28 /* SDLCloseApplicationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F84AE9ABE9E1282B0FABD9A18DE176B /* SDLCreateWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 851DB4FB9BD1E39F4B61D6DD51ABD057 /* SDLCreateWindow.m */; }; + 1FB5E6E796E7E74B7DE35289B91F3756 /* SDLOnWayPointChange.m in Sources */ = {isa = PBXBuildFile; fileRef = FF9381D8A697377FEAB359470F3303BD /* SDLOnWayPointChange.m */; }; + 1FD1613858BF4AF4DD707C31690E31F1 /* SDLUpdateTurnList.m in Sources */ = {isa = PBXBuildFile; fileRef = 2156D0BCF6E0BA97352362D70EAD4710 /* SDLUpdateTurnList.m */; }; + 20BCA8A438D8E11BEABF1C8D8B366DD6 /* SDLTemplateConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DC2041DC5B9A5327C3B94AB4B3B41E6 /* SDLTemplateConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20DAB1C92EC44DFEFEF56D51198C572D /* SDLCreateInteractionChoiceSetResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DC9D9DFEFD8DA66012392040EC1C55F /* SDLCreateInteractionChoiceSetResponse.m */; }; + 20FDB32A5B293CF83F082EDA2F290768 /* SDLSyncMsgVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 53A6F7FC8DB6771A7F606C83EE0F33E9 /* SDLSyncMsgVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 21675C3CF6D3BF02A34431A59D05325A /* SDLOnLockScreenStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = E7BB33F82335ED3BB74B4FA4B921F6D0 /* SDLOnLockScreenStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2191D6A77C470AA4A0164CB8E52CC83D /* SDLOnHMIStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E50C0F6174603A652E389F91F94FED1 /* SDLOnHMIStatus.m */; }; + 21F4851D28775B178740FCDD77840B46 /* SDLDeleteFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 157695036F630B99AA2A2162AAAAAF9E /* SDLDeleteFile.m */; }; + 2280C3166A90D6C9945AE301208FA48F /* SDLIAPConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 4066A1AC90601F2ED75F112128204143 /* SDLIAPConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 22EE85743201277158FD54ED1EFC1B31 /* SDLReleaseInteriorVehicleDataModule.m in Sources */ = {isa = PBXBuildFile; fileRef = C23DBC473A201419B768CC403C329AA9 /* SDLReleaseInteriorVehicleDataModule.m */; }; + 237E939E34B845012E338C238CCDDAD1 /* SDLTouchEventCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = C4A900A3C04D81E8AFE979A9CD841CF8 /* SDLTouchEventCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 23918DCD6B118E665408EF1F6E7FD543 /* SDLResetGlobalPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EF49DE50EC4EBA86EC32278ADDCE591 /* SDLResetGlobalPropertiesResponse.m */; }; + 2394A20ABF6920FF93BCE2BBA53462C5 /* SDLSoftButtonState.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D40C571D57B74A89D78D4877D935250 /* SDLSoftButtonState.m */; }; + 23A7D1922ACCA1C1A1469D21A8AAAC31 /* SDLOnRCStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5543FDC0294954DF0D4040D2E4999970 /* SDLOnRCStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 23F309309CBB2F13AE5498C66F9CBBA4 /* SDLHexUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 46523A89CAE6EF97155926063D0C221A /* SDLHexUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 24529E6BF87EACE46A7B5EBD319B9CBE /* SDLTurnSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = A47E1D7E285C5B3399B259F741739553 /* SDLTurnSignal.m */; }; + 245F13ECAB0929AEE2AEEDE7127267E2 /* SDLImageField.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC611A83E6B204442E6053A45D288D1 /* SDLImageField.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 247BCA2300E405F276470156679EA6E5 /* SDLAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = 14A8D51B3439374BFB1554CBD1E477B8 /* SDLAlert.m */; }; + 24801F1525B3F26C7DE78E9D6F1EC07C /* SDLAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 507FBFEE8A6A81402E77FB59A01BA642 /* SDLAppServiceData.m */; }; + 24863AF1DC6EA3BBCDC32937F67E71A6 /* SDLH264VideoEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = FF21715135EC614F06983334F08B0E1E /* SDLH264VideoEncoder.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 251BAE21F7CECAFA6F0EE5688FACF319 /* SDLChoiceSetDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DE9E361C8A5F013FAB70F518A575C64 /* SDLChoiceSetDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 252F2EB3219E3AA3C08C5A57AA3B4B34 /* SDLAddCommandResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FB207C099B87EED0B5CC938CCD5BCA17 /* SDLAddCommandResponse.m */; }; + 2584B04D87C22A32D2A58FDCDB7C40A9 /* SDLVideoStreamingProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F3FC5C1D5936F9A265745B7DB5851979 /* SDLVideoStreamingProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 25872E377E8B390BC6BC2DBA36F64FBF /* SDLPermissionFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A5DF934A09C6ECE921C963F3156E087B /* SDLPermissionFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 25FE556376226762A75B4CB7AAF596BC /* SDLCancelInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 59F336B19B5A14921AF73428A666E018 /* SDLCancelInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 260B1F3FE55BFBBDA28A06E4EA9B2277 /* SDLSystemCapabilityObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CE2B2F33B9741F264BE0D9D55A6BF32 /* SDLSystemCapabilityObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 260EDB6847E1D91E446BD87705E9889D /* SDLError.m in Sources */ = {isa = PBXBuildFile; fileRef = 3778DFBEF00494FE5D31E79DFBB96B35 /* SDLError.m */; }; + 261863B80132A0BC07FDDDCF74A88507 /* SDLControlFramePayloadType.h in Headers */ = {isa = PBXBuildFile; fileRef = 285B908EABA56FEE3FBABD179F93E58C /* SDLControlFramePayloadType.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 261E2ED889FAC8724554E6B02245D729 /* SDLMenuCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B0B69E8E7BE0B46B0C8659E5046F112 /* SDLMenuCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2620F0B28CBE552798F639DFC8ADF7A7 /* SDLSeatMemoryActionType.m in Sources */ = {isa = PBXBuildFile; fileRef = 2205A00A1B4704AA9532149FA266EF7A /* SDLSeatMemoryActionType.m */; }; + 2667B1229C8C1AAFCB5CD02B1E3EAB10 /* SDLPreloadChoicesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 346DD6B5C6DEFF7D91F128D926AFB0FE /* SDLPreloadChoicesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 26C615A4EB161B3EC705D293B8D165AD /* SDLTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = C05B25FD08F4EDE81BBF8E97080430FB /* SDLTimer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 26C8FE72C49E22979FB3F49A0D007AB4 /* SDLGetFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D6986E5DF7E39BCD4F822E4CB001676F /* SDLGetFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 26D505993874143E36649CCE262C63CE /* emhashmap.c in Sources */ = {isa = PBXBuildFile; fileRef = B53DDEC25BD2CEEE368F8B2099D4269E /* emhashmap.c */; }; + 26E5E0310598C29F8DDE94067A2958CB /* SDLAppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 55217909B98035F7AFBC7F73096982A2 /* SDLAppInfo.m */; }; + 275BFC3C7C9C324194B6BB00671D2E13 /* SDLPerformInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D0219EB46973A2D486CE1181ECA2FE0F /* SDLPerformInteractionResponse.m */; }; + 279BC5E11138599E41CC590BC89D4968 /* SDLDeviceLevelStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = E4EC6315B72CAC0F33814470212DCDC3 /* SDLDeviceLevelStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 27B426645465AF05B798A3058FCE6D44 /* SDLCacheFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A2717B2D5DE554897D72CB951C42757 /* SDLCacheFileManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 27CB4D94922255DE00C087E636C77FED /* SDLSetAppIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = 20237D47AB74244F657CB78EAC6D5E1D /* SDLSetAppIcon.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 27F0E023B8465A23F6EADAEFD3386A66 /* SDLAudioFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 878CFADA0C9FAF4387BFEBA236775E0D /* SDLAudioFile.m */; }; + 27F44F85A8B72CE438D99AC77CFCB009 /* SDLShowAppMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 38E242E9C5BDB3380CD5DE37E9262B8D /* SDLShowAppMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 283A4555F3187593CF5BF0276861F516 /* SDLTireStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 013381222E2F09C3FC30E0546F2E0E85 /* SDLTireStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28498442BCD463C896D1E9738D30D149 /* SDLCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = A6B9669FEDAAA1EF5A7C9F94BED90F1E /* SDLCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 286884B8ECBF5EBF98E40CDEA1432CBC /* SDLSystemRequestResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DD46481394302F4F857FA386B5B3D6D8 /* SDLSystemRequestResponse.m */; }; + 2872CD02FF5C555D4B23ABF8457D1AB6 /* SDLReleaseInteriorVehicleDataModuleResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B4F48B7943331568869C78731D2C1A3 /* SDLReleaseInteriorVehicleDataModuleResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28B1880871255ABAB7B693DB477BE2BF /* SDLHMILevel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DFB940A77A15D0F3E0C0C48889F05B0 /* SDLHMILevel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28F0D6F6BB67A870D663D51FC0CE0746 /* SDLLifecycleConfigurationUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B3EA6783E26BB49A731FCF69628F558 /* SDLLifecycleConfigurationUpdate.m */; }; + 2901022E187FA529C011EE5A8AEDA672 /* SDLHMICapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B5397A5AAFDDF3AA577CDC4718DDD2C /* SDLHMICapabilities.m */; }; + 2985A53122A05128571159CFA1AD21D1 /* SDLScrollableMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 33A2A786BDAED219574077742C9AA3FC /* SDLScrollableMessage.m */; }; + 2A9FE21B0BA859AED5280902B130A9ED /* SDLCloseApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D21D2139E965A5CA024DB58BE117962 /* SDLCloseApplication.m */; }; + 2B6C25B8C9B489B00C3ED80593792E99 /* SDLUploadFileOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 927F104C5BC3088472101359E0E7B4FE /* SDLUploadFileOperation.m */; }; + 2B6CDC7B0101E699EFF3726D4E0388E4 /* SDLResetGlobalProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 7442CCEB4D854A9A904B550B922A6AD7 /* SDLResetGlobalProperties.m */; }; + 2B734A17FAB58B4CE730C0540D22988D /* SDLOnVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BE4028ADAD57F4A9176FEBC20B5EC95 /* SDLOnVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2BE1E8F5E2507C4C2E16D826F74B4DDA /* SDLGetFile.m in Sources */ = {isa = PBXBuildFile; fileRef = F6CEE3FF97A40D47F14C11800619E1DB /* SDLGetFile.m */; }; + 2C70ADEC205EC64A4DD444D3EE158409 /* SDLLightControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = B408FA5A72D8BD3C40461CF55C8CC884 /* SDLLightControlData.m */; }; + 2C7676C5700FEDFB6F40906E87614915 /* SDLModuleInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B887B61299E3CDBAD04F3FAF0C642DB /* SDLModuleInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2CB612FCC5FC2844742A9D63064C0735 /* SDLMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = DB53BFBC217D15847AE38FD82BFE5014 /* SDLMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2CEEFA0305B7075B60D8A82D8C7AE3C7 /* SDLLogTargetFile.h in Headers */ = {isa = PBXBuildFile; fileRef = CFAE2994F819888468C9D2EAC8918FDF /* SDLLogTargetFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2D094A7342D5409693FB87A9130B7A5D /* SDLVideoStreamingCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ABA9D773535CC39A270DD8160147CAB /* SDLVideoStreamingCapability.m */; }; + 2DAF25E7B98FBEF6D7DD2435E1AE63F5 /* SDLAsynchronousRPCRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C18115663476B7D482AC09B3DC33F5 /* SDLAsynchronousRPCRequestOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2DD3D1CD40C2BBC2A0781547C6922088 /* SDLBackgroundTaskManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EAC648706939F20E524EF7CD347A0C2 /* SDLBackgroundTaskManager.m */; }; + 2E8C0C18BE0AB72BAAA75756C7AA7EF6 /* SDLVehicleDataActiveStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 9238647073F63757659A703F1665A4D8 /* SDLVehicleDataActiveStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2E9FE8554C9075C973E8F7E8ADD01171 /* SDLRectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = FB0998F7945F98866D5AAEC80A248E5B /* SDLRectangle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2EA6C02C5692FEF6D1CE4C340FB9595E /* SDLGetWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C385BAB9B99A124EC2DEF4D689CB7BB /* SDLGetWayPoints.m */; }; + 2F19F6E35794A71E80EAE7F89B4AB5AB /* SDLLogModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 39EDE1E04ABABDD6EB636AABBB6871A0 /* SDLLogModel.m */; }; + 2F4FFEE16B3FD1784AB626573515DD35 /* SDLPermissionElement.m in Sources */ = {isa = PBXBuildFile; fileRef = B9F98F256A89963EAD420D333EB31F37 /* SDLPermissionElement.m */; }; + 2F9DB498E2C28210E3DF3810C99CB74E /* SDLVideoStreamingProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C1B74D20AD626E1FF7D59D1201016C8 /* SDLVideoStreamingProtocol.m */; }; + 2FA2DF4750EF0B673A0A8465018F35EA /* SDLSeatMemoryActionType.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AEB6BF5F6EEEDDC3AD1882CBE90B52D /* SDLSeatMemoryActionType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2FAFFC1A43E38BE0952DD64BE3EFBCD7 /* SDLHeadLampStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A4C87793B3C6B531E0A6541C94DAFB52 /* SDLHeadLampStatus.m */; }; + 2FD7CF9D67F1E9A67396EBCCCE51F42D /* SDLMediaClockFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 798FBD4B8BEE30A8944489D1A694BFDD /* SDLMediaClockFormat.m */; }; + 30170E4981190642C08902283DA8EA15 /* SDLLightControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 89C99B8EF7D6E80920E770B6E500F5A7 /* SDLLightControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 30353FA6C6AD3B18737ED0DEB34F77B8 /* SDLTouchManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = B1C140D9FFA2E9FCFD8A401D69499C73 /* SDLTouchManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 30532F9A11D1F1284F004B623EDDC92D /* SDLRectangle.m in Sources */ = {isa = PBXBuildFile; fileRef = 9304883AC1BF7D236BA9C5D9EF93A4AD /* SDLRectangle.m */; }; + 305E19FA7E71E7AC503766BD40DF92D4 /* SDLEncodedSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = 20E5AD672FECA3D8596890719BD59620 /* SDLEncodedSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 30D65525229B09FA9CFEBD81B8763C7B /* BiSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E9A0368A42FD75DB7B35822E72FE4CA /* BiSON-dummy.m */; }; + 30E5E0206E793A637F06DE630A981A59 /* SDLMenuLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A8B110CC3F7818FE4E9FBF59DA7831 /* SDLMenuLayout.m */; }; + 310677899FEA4BEC324AEC113080A4F5 /* SDLLogFileModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 95FA5938BB91EC86606D7D35B36D1799 /* SDLLogFileModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 312252BAF5168F0452B6032AF7262088 /* SDLControlFramePayloadRPCStartService.h in Headers */ = {isa = PBXBuildFile; fileRef = CDC3E3043CC87C0BB89DD7FD7BCE772A /* SDLControlFramePayloadRPCStartService.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 313D3F6741CB4A876DC870D6950185BD /* SDLHMIZoneCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DA4BCA93C02ABAD3179337438D37C21 /* SDLHMIZoneCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3193A89DD9C594CF5AF5C8FAAA01199A /* SDLStreamingMediaManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 95B6A24926E184BDA559B418D4A20232 /* SDLStreamingMediaManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 31F84B21B506C0A0DE2AB3959E41F9EE /* SDLUnsubscribeButtonResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 08DA15E3B091636F3E38EEE53E5BD64E /* SDLUnsubscribeButtonResponse.m */; }; + 31FE459EED3422D6D52406195997A5B5 /* SDLGenericResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 356850E904CD295F4FF6ED4BB15D4D57 /* SDLGenericResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 32210BF5CC463E9D45B351AC51D3701C /* SDLImageType.h in Headers */ = {isa = PBXBuildFile; fileRef = A60D22A926D93A0D726FFF6A31239E5D /* SDLImageType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 32272744E2728BF0CC353CF8075DE56D /* SDLPRNDL.h in Headers */ = {isa = PBXBuildFile; fileRef = 74AD80168C993652453FE3971FF647BC /* SDLPRNDL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3292D382EAD8519DAC1AE0E10F4D5062 /* NSMutableArray+Safe.h in Headers */ = {isa = PBXBuildFile; fileRef = 71626D352E691F8B7E7514EB0EAEAB01 /* NSMutableArray+Safe.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 32CF5B82101419D7815D0024314D4021 /* SDLPinchGesture.h in Headers */ = {isa = PBXBuildFile; fileRef = C9134305738F77B0E852842422F81D36 /* SDLPinchGesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 33735964ECB1F41B90FED9693684FC6A /* SDLFocusableItemHitTester.h in Headers */ = {isa = PBXBuildFile; fileRef = 48849036CC2BEE806DD74887DCF4875B /* SDLFocusableItemHitTester.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 33AA2D5C6064086920C929390E25D49F /* SDLWeatherServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B74FBD65102DD04AAD49A5F43E8D28B /* SDLWeatherServiceData.m */; }; + 33B2BF8E23DFF5A3C417CD80CD43CC32 /* SDLOnKeyboardInput.h in Headers */ = {isa = PBXBuildFile; fileRef = 72DEFC52DA69C0042103401227D6AE2E /* SDLOnKeyboardInput.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 33FCDDA1CB1F598D1C6207348791564D /* SDLDeleteSubMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = EB181A531DCA51446180DE770DFF44F1 /* SDLDeleteSubMenu.m */; }; + 342A1FB599F25F3A131C10A29A175FA8 /* SDLEncodedSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BD6D254A4BA71629C487F7B9B5FF780 /* SDLEncodedSyncPData.m */; }; + 348763461B039C50375433135292E6F8 /* SDLStreamingMediaManagerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D2BE3CCEA4B2BB726B06E6675B831E6 /* SDLStreamingMediaManagerConstants.m */; }; + 34DB843A171C44A34317D65BE3E173E8 /* SDLUnsubscribeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B14A2B419E2DC947711544B4DFA5659 /* SDLUnsubscribeButton.m */; }; + 3592348A1908B19BDCC82B075D3EF470 /* SDLProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 303674032980DBA4C264AC80AD1BF117 /* SDLProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 361298C811976BB148D53B2FD2C35863 /* SDLTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = FCFB1CA08F9688C66B82C8C2EDFDC54D /* SDLTextField.m */; }; + 361EA55F7977ACF8AFF73CCB49DD9002 /* SDLUnregisterAppInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA2B752BEA8AAB3CDE06DD763FC4CAF /* SDLUnregisterAppInterface.m */; }; + 364A7DB60D73F1034DBF45748AF68B26 /* SDLDisplayType.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F96F850E5D86162FB221E7A54E8EFD /* SDLDisplayType.m */; }; + 3666461CD2659EB1F156A9ED4B635DD8 /* SDLDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B9385D01A185AC52F1A077BBDC5759D /* SDLDeviceInfo.m */; }; + 366DB00DE052ED5F95A0CBBB863657F9 /* SDLDynamicMenuUpdateAlgorithm.h in Headers */ = {isa = PBXBuildFile; fileRef = 27513221634E83533BBE60EDA4667D93 /* SDLDynamicMenuUpdateAlgorithm.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 36A7484512448011EF3F2C0A38672487 /* SDLSetCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = E4AC2494F1A779D80138CD7A5D8980C6 /* SDLSetCloudAppProperties.m */; }; + 36DE87793D478673E902B66BA865E0B3 /* SDLDimension.h in Headers */ = {isa = PBXBuildFile; fileRef = A8A312C4D8E76C9BC500924B32C0A57F /* SDLDimension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 371E5AD456E767CBEB739FBFA55BE545 /* SDLDynamicMenuUpdateAlgorithm.m in Sources */ = {isa = PBXBuildFile; fileRef = D8BC4DC3D5C26DEF7E62FBB6D8922181 /* SDLDynamicMenuUpdateAlgorithm.m */; }; + 3754EAD930F3D40A42F3223321F899B0 /* SDLWeatherServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DCEF38864BBC13A94861FE01FD6837C /* SDLWeatherServiceManifest.m */; }; + 37B8173E99F5A470A7FD8F67DE82E815 /* SDLSequentialRPCRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 675E2F625AECD899CD113C3918FD540E /* SDLSequentialRPCRequestOperation.m */; }; + 37C9D90EE3EF9A798C26D18654A50F75 /* SDLSendHapticData.h in Headers */ = {isa = PBXBuildFile; fileRef = 4157869D41FABE62B8C192F3D08F1612 /* SDLSendHapticData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 386E9EFC772B289246945F8BE7241D87 /* SDLManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D725474F95CF3A37D8217D26C3D33F69 /* SDLManager.m */; }; + 38939F69AF45C6D6B3EFAAC3218AB7C1 /* SDLArtwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 880F24F11420E145AFB4143AF75C49B8 /* SDLArtwork.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 389E330EA7204E8C246622D7B2C64206 /* SDLGetVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C122D385DA1B67231C109629EFBCF67 /* SDLGetVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 38D106DD3F9A61296105A0BBFA74A793 /* SDLMassageMode.m in Sources */ = {isa = PBXBuildFile; fileRef = F0D39ACA0371B8A981CE9CDB1FE1F3C0 /* SDLMassageMode.m */; }; + 3947336D6D27AF2C2B8F484756012548 /* SDLPinchGesture.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F25040FF627FE9246171E4EA90E8CA3 /* SDLPinchGesture.m */; }; + 39DC456DDBBAD48E26F6455BBBE56443 /* NSMutableDictionary+SafeRemove.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B9DA57DC3982AC2A8A92052ECAB639A /* NSMutableDictionary+SafeRemove.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 39FE38C28A881AD8F5D28B4AF7F585D7 /* SDLLifecycleRPCAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F2DC8CFD2770D191663EE9B313E334F /* SDLLifecycleRPCAdapter.m */; }; + 3A7F3063768B19D7796C73C2EA441D2C /* SDLStaticIconName.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C31BC277EBBE8EABF6F1F7725ACEEAA /* SDLStaticIconName.m */; }; + 3A824D7618A73311D7673B00D46ECBA0 /* SDLConnectionManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 865CF3B1A51E7AF3086DD6E840A8C8C7 /* SDLConnectionManagerType.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3ABE3D33FBFE8B497368ADC4CF2DB3C6 /* SDLClusterModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B2C56DF1F1818D8E1FD488B352881DD0 /* SDLClusterModeStatus.m */; }; + 3ABFC40D5B2E13194B0D5B2EBA25822E /* SDLGetInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = D71F5B91669B94ED03ECE68DF8A69310 /* SDLGetInteriorVehicleData.m */; }; + 3B0D77042D0B05B201861684C71567FF /* SDLSystemCapabilityObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 19FBDDF5290895EF460401DCB7F2C9EB /* SDLSystemCapabilityObserver.m */; }; + 3B79D7FFB7B31333AB5B2EA58912DA0F /* SDLStreamingVideoScaleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FFB29DF01447220453AB1CF83DD5396 /* SDLStreamingVideoScaleManager.m */; }; + 3BE2CD266829ABCD9AA01020133A08D3 /* bson_util.c in Sources */ = {isa = PBXBuildFile; fileRef = EB5B9BB9D28C2BC68BFABDDE546A6246 /* bson_util.c */; }; + 3C3EC5487121EB98E99F0F97BE42C1EA /* SDLParameterPermissions.h in Headers */ = {isa = PBXBuildFile; fileRef = 079C8504D554E430687E23C3BB9F291F /* SDLParameterPermissions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3C67F554D0D515E034A5C7E22838CB9B /* SDLPutFile.m in Sources */ = {isa = PBXBuildFile; fileRef = FCC94AEE7EC43BA74EEFA5EC841EB296 /* SDLPutFile.m */; }; + 3C7453895CF4AE78AFA1E2A6DB28F6B1 /* SDLTBTState.m in Sources */ = {isa = PBXBuildFile; fileRef = A4525E374C0C6592950D6900876AA4F2 /* SDLTBTState.m */; }; + 3C875631F98D94D88FC9E91933B2C190 /* SDLBeltStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = D04E8AFADA5F4A1EFE947D76FC10E211 /* SDLBeltStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3D218CB9BCB99B81F0160E9EC92DA02E /* SDLIAPTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 38CB1A0076770A1F273C6EBCD6D8C8B0 /* SDLIAPTransport.m */; }; + 3D4438E9B8C4651BAA6CEB5D5039C883 /* SDLUnsubscribeVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = E6A9A7FEC27852B2A0E5BC59182279C3 /* SDLUnsubscribeVehicleData.m */; }; + 3D7803B431EF484181D70B0FD36525D1 /* SDLOnButtonEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = C26DB840FED234F39D27C9C871BAA550 /* SDLOnButtonEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3D8BB45F1239777FAD6FA461E204167A /* SDLSeatMemoryAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 80D9C9B56D254F2A33C2AE1EA81D9AF6 /* SDLSeatMemoryAction.m */; }; + 3DC0D34F7A82505A73EAC836507FAF16 /* SDLPowerModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = AB4899E896AC7243959C641E40D9EB6C /* SDLPowerModeStatus.m */; }; + 3E1C27FA8FB062F1EBF23125ECF0DCC7 /* SDLNavigationServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = F05E89950AFAAE21DF32ACB82FC50FCB /* SDLNavigationServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3E9AAB221B1FBCD6C5F6FDAF98BEDF7C /* SDLRPCMessageType.m in Sources */ = {isa = PBXBuildFile; fileRef = 00D366651669905A0972F086586FA9B4 /* SDLRPCMessageType.m */; }; + 3E9C0BA00FE324B6F5A23D5EB73376A4 /* SDLDeleteInteractionChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 181548D9FA28EF29C39F058DDD467003 /* SDLDeleteInteractionChoiceSet.m */; }; + 3EB130E67D616532CECE546D5B9198F5 /* SDLTextField+ScreenManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 270D8238A2295E6936F9BCC907DD8BB1 /* SDLTextField+ScreenManagerExtensions.m */; }; + 3EB29C6B91501244CBAA1180DEBA766E /* SDLRPCPermissionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 271D810484AEA55E4E3F80C25773E46A /* SDLRPCPermissionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3F0496824DC5D461075A4069C03F939E /* SDLRPCPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B78A428E3625D60C6EDC36E0B0E2FAA /* SDLRPCPayload.m */; }; + 3F142C8529F267AEEDB407067747D466 /* SDLHMISettingsControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 22F425A341DF24170003B4CF66D9AB40 /* SDLHMISettingsControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3F4FCFC6CA60801D30BF902812F1CC08 /* SDLGrid.m in Sources */ = {isa = PBXBuildFile; fileRef = ECBFE3D76862F81C78E80FCF7BBE9EF8 /* SDLGrid.m */; }; + 3F5A069FA9FFA9506975ECAA644E389B /* SDLAudioStreamManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CB7781E3AFB6084B7FF7B008C554AA /* SDLAudioStreamManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3F75A11E958789B91A510DD260CA7D5B /* SDLVoiceCommandManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C6724681B057A0BC81FDCBB5C63008EA /* SDLVoiceCommandManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3F83A26390073BDF79CA24F02C401B74 /* SDLSendHapticData.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F4D26F5662FB5B045698D0F6EA082B /* SDLSendHapticData.m */; }; + 3FDEB76B1310B44C542A23A99FFDC12A /* SDLDefrostZone.h in Headers */ = {isa = PBXBuildFile; fileRef = AF8586C62AFA2F4833F9F198CA2236FA /* SDLDefrostZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FF26779DAE684544CB75200EF942B03 /* SDLSubscribeButtonResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B58642FDAB1B0A7547822E7591B829 /* SDLSubscribeButtonResponse.m */; }; + 4008A1304DD99DB9C511DF3E470FC3D2 /* SDLSendLocationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F12CCA82A48E7EC083C69337418DE2F1 /* SDLSendLocationResponse.m */; }; + 401E5019769E747A0D6447BE8A3EAE13 /* SDLDialNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 410C7382DF348567CD7D56ECDD08CAC7 /* SDLDialNumber.m */; }; + 4031C08AF41EB5717E50F252EB9619DE /* SDLControlFramePayloadTransportEventUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = 026C522465461D2651A396400F15816E /* SDLControlFramePayloadTransportEventUpdate.m */; }; + 406DFE813A052A855D6676BE3C7442EC /* SDLTemperature.h in Headers */ = {isa = PBXBuildFile; fileRef = D16DBA7C10C34D2E22A67C65927F8D25 /* SDLTemperature.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4118ED81086EC0AB6C067C913FF309EF /* SDLTireStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 881888E1F3926DBD7D2B8B9D4057B6B9 /* SDLTireStatus.m */; }; + 4146591FBD90FC641348E6736882B2E5 /* SDLAsynchronousRPCRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 77B63B96875F1C820F190F3AC0A911ED /* SDLAsynchronousRPCRequestOperation.m */; }; + 414659B4BBF380B05FB6D14228116399 /* SDLNotificationDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2540FB48A65EFCB11FB8B5156DBA8201 /* SDLNotificationDispatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 416C55C12904245979B370B13EDE13C0 /* SDLCarWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 524A27962BB7A038C3B5A39B5A529ED5 /* SDLCarWindow.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4188A89659E8983E8F643EE3DA11134E /* SDLRAWH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = B11185632289362C4E685A33488343CF /* SDLRAWH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 41B5F7422392AF0E4913343AA37DFC09 /* SDLLanguage.h in Headers */ = {isa = PBXBuildFile; fileRef = CFFD94F699E758B296EBA10E07F683B1 /* SDLLanguage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 41C627171A616D718ABDDC5E9298BCDD /* SDLControlFramePayloadEndService.h in Headers */ = {isa = PBXBuildFile; fileRef = EBD94A8CDBA452B3D05316C90227BD89 /* SDLControlFramePayloadEndService.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 41F229081EA3B2C8DD97C7847EA59C00 /* bson_object.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = DD2A35B92D9AC44F072344ECC125D1B7 /* bson_object.h */; }; + 42B0127D5FE47E06FC473C2E73076C39 /* SDLSendHapticDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B837E51434913D84E58B09A8B04A7E84 /* SDLSendHapticDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 43433209F0A6AEBBC66F9C2C0C3677FB /* SDLDIDResult.h in Headers */ = {isa = PBXBuildFile; fileRef = AACAAE80DEC9BA4877F4673B9A256C7A /* SDLDIDResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 43AE76A59C4B8CBA13DF103BCCE5CBBD /* SDLEncryptionLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 58FE6CB1EE278E803C1B5FF6EB589249 /* SDLEncryptionLifecycleManager.m */; }; + 44298616B04419E21E3B52AA81344E41 /* SDLSetGlobalPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 221567F33875BCC7E8D9E6448B21CAEA /* SDLSetGlobalPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4459DBDBAC2274C4C6A3562284C82CD4 /* SDLKeyboardLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 00F802377FED3220A7D572E90814F78E /* SDLKeyboardLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 446DD73796C4DB12980BF45ECE1851A9 /* SDLSamplingRate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D6BD3775E7938F10CC4DDE5EFEB12C2 /* SDLSamplingRate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44812B4C0E8553CE1C5270014C84E4E8 /* SDLElectronicParkBrakeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 326B988FE7A92BB39F45659C26EDF13D /* SDLElectronicParkBrakeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44B209A527A69871374E1E156CFB0899 /* SDLEncodedSyncPDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 080C0AFE1D0A26741E58932027641033 /* SDLEncodedSyncPDataResponse.m */; }; + 44C7B81BAEBD57895AFB62013688DB25 /* SDLSecondaryTransportManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4937DF05A2FDF67D435549105737E0AD /* SDLSecondaryTransportManager.m */; }; + 44E2E8310C02EFCD578734633D24C5D5 /* SDLSyncPDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C754499B66CE148E693BB1FF1F468E2A /* SDLSyncPDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 455B22814822C82236B23D1CC8CAFC57 /* SDLNavigationAction.m in Sources */ = {isa = PBXBuildFile; fileRef = CA602EC4E5C28004D96933F0A7FC26A5 /* SDLNavigationAction.m */; }; + 45B89DB4BC754CABE301F3976E817DDF /* SDLAlertResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 83335AC43298E401A07294CE5F7FB4FA /* SDLAlertResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 45E837C2448C3A2E325E1F3C704DDDDB /* SDLGetInteriorVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CF64BCEDC0A50BBDFC1D74C9A0243BEA /* SDLGetInteriorVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 466C4783AC46602811E0B894FBCAEBA3 /* SDLPerformAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = 4411DAF1B7858D84F9A5933F44751B69 /* SDLPerformAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4681242BC3AA9D72A34C48AB5E217313 /* SDLPowerModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 743FE6CD7692742CFA7D4D7A6E714FC7 /* SDLPowerModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 468E23F01910C00372871E321677D708 /* SDLMenuManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 26FD9D1C417A073A9574CE798E12DFED /* SDLMenuManager.m */; }; + 46D8ED642B200A137512BB44D779E9AD /* SDLPerformAppServiceInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F34249B622DD4B497630858D68F221B /* SDLPerformAppServiceInteractionResponse.m */; }; + 47367F64A363C61D250A3468085643BD /* SDLCancelInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = 448B4ECBFE83DF3E2B77F2D820F2A368 /* SDLCancelInteraction.m */; }; + 477719EE4D3DE4F85F24E2648C5CEB6E /* SDLVrCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 8715DA57587883550705045298299293 /* SDLVrCapabilities.m */; }; + 4816981DC17C9216116E43146A4DF17E /* SDLProtocolReceivedMessageRouter.h in Headers */ = {isa = PBXBuildFile; fileRef = DCE361553E0EABB14A1C509A7093DE01 /* SDLProtocolReceivedMessageRouter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 482E7DA3E17EA819958A6ADE561D4A6C /* SDLVoiceCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B28910E4BB86E3DEC060B763E45C0FA /* SDLVoiceCommand.m */; }; + 48318B613184DDE2158BB0319C651664 /* SDLImageFieldName.m in Sources */ = {isa = PBXBuildFile; fileRef = 795BD010B79F761A42E76581AB8275FF /* SDLImageFieldName.m */; }; + 48533795DE37FD01F7C341BAD8E9F1A6 /* SDLDeleteCommandResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = CB3FBF9629A46D84216A895E9CC557D0 /* SDLDeleteCommandResponse.m */; }; + 486D0104F246B30FA7F8CED598B947F1 /* SDLOnSystemRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = C0739DA52D74882686FE054F273446BD /* SDLOnSystemRequest.m */; }; + 48A87FEEBAB7CDD8F8361A46EA1A6EEC /* SDLGetAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 20FED3C64AC281061455C114F2CDEEA8 /* SDLGetAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 48D2F37A0323E42FA7F9720CD932C164 /* SDLMutableDataQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = E069D9D3F86160512916B7ABC072595F /* SDLMutableDataQueue.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 48EC5046C8C0F0F88B2D70EFCC70A55B /* SDLDeliveryMode.h in Headers */ = {isa = PBXBuildFile; fileRef = EDD45B023BDB53CC20F889178F9F4D35 /* SDLDeliveryMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 48F332FAF2668AC6AEE9652BAFA7E8E9 /* EAAccessoryManager+SDLProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = EDB0328B80CB9DE895193A6A4467BB91 /* EAAccessoryManager+SDLProtocols.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 491C6573D1D0904EA6E083E25724DA04 /* SDLRPCStruct.h in Headers */ = {isa = PBXBuildFile; fileRef = F0E6D6348ED4BE7016042DB10D5CB6C1 /* SDLRPCStruct.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 491D694C8F0A8892857BD74CADEB69A0 /* SDLFocusableItemLocator.m in Sources */ = {isa = PBXBuildFile; fileRef = 11EBD8D7297FC1CE9479C7508D26FEF6 /* SDLFocusableItemLocator.m */; }; + 497C10D19DE00429231009C559672879 /* SDLSoftButtonTransitionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = A61B36731BEBEFB3938CDFBFC1EF305B /* SDLSoftButtonTransitionOperation.m */; }; + 4A1F895472135B6EDD8F124EC7FBD79C /* SDLOnRCStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B753AC886E9C4581F99D019C2AE558E5 /* SDLOnRCStatus.m */; }; + 4A82C43B943A07EB9B3B35C775D7E384 /* SDLRGBColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53151FA74CB6E2324C41DA26D397B648 /* SDLRGBColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4AA196AC12C2887B2B7F3BF50D5D33F3 /* SDLPCMAudioConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = CFAE9C8809F27A20EA7BA366B50D1D09 /* SDLPCMAudioConverter.m */; }; + 4AE20BD11A94133B07C8EADCD51AEF47 /* SDLCharacterSet.h in Headers */ = {isa = PBXBuildFile; fileRef = B3B2790352EE6BE9ABFDD04D31188B31 /* SDLCharacterSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4B3D121041EA80CF0A6C54EEDC4D567F /* SDLIconArchiveFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A55660E282AE3C863355F2402E8A0E1 /* SDLIconArchiveFile.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4B557114510641E1C5179A13E20947C2 /* SDLMsgVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B778D29FEEFC0DD5D2556DE02F267F8 /* SDLMsgVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4B8B28A242A8DDEF1B1FB81CBF000F1C /* SDLCompassDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = CCEFC169422E967386D07342ED9E5B8F /* SDLCompassDirection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4B98282E2AA74AA1026B2A51C6111F68 /* SDLButtonName.h in Headers */ = {isa = PBXBuildFile; fileRef = 659961EA97BC4FAE7763288542F9CB2F /* SDLButtonName.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4BA7B8B616FE3C0AE1EC144263805DB5 /* SDLAppInterfaceUnregisteredReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D17B47BB0D9A877AB0D85B41A630687 /* SDLAppInterfaceUnregisteredReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4CB426F09D090C57A0C0D743F5A802B1 /* BiSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 66FD520D0728F8EF271910AF32E9C621 /* BiSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4CCF6B5645070AD44CBC65C932FACE82 /* SDLAlertManeuver.m in Sources */ = {isa = PBXBuildFile; fileRef = 8012DBA7B04E0C0D6D13D3AB41B86CFA /* SDLAlertManeuver.m */; }; + 4D0CDF50A825C03A88E5F1D91B94FE14 /* SDLOnTouchEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A6433D1239C8C9171A35AE33070626 /* SDLOnTouchEvent.m */; }; + 4D7E7BA2A3F3F8258536082B0A8C408F /* SDLEmergencyEventType.h in Headers */ = {isa = PBXBuildFile; fileRef = 84C4889DD2C1AC35B627A69F8C7C3D42 /* SDLEmergencyEventType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4D9CCEE4CD5610447009B1E2E3102802 /* SDLPermissionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 2741946AE645F8BDA0E4E6BEFA965D56 /* SDLPermissionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E10FE11AA345AB32DF8C2C78AC72945 /* SDLLocationDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = A72EACA38EEC0588D3830851A96A2681 /* SDLLocationDetails.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E3A3B4BD619CC83FB17F5C37AF54790 /* SDLDefrostZone.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D33A9934F9557666AEADB5FF2C1768 /* SDLDefrostZone.m */; }; + 4E42B5A60D7D15B0A6D56BF106E0DF6C /* NSMutableDictionary+Store.m in Sources */ = {isa = PBXBuildFile; fileRef = 208C514CB24786D3F215E8EE314CA7B1 /* NSMutableDictionary+Store.m */; }; + 4E6DF2C01963631E37CB8DE7C06AFC7B /* SDLClimateControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C61578FBFA3147D20DF240420C54033 /* SDLClimateControlData.m */; }; + 4E98EC57EB6B986BCA31A8CBD8D47770 /* SDLUnpublishAppServiceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C3BF3454AF3C68B1EDF2469AF1478D8F /* SDLUnpublishAppServiceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4EB7EF3C3B8A753DE2CD8976DAC11678 /* SDLCheckChoiceVROptionalOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D870FC3F91ACC2B15AB223846D01700 /* SDLCheckChoiceVROptionalOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4EE7DC6A8E300AECCAD774FC04C06CC7 /* SDLFuelRange.h in Headers */ = {isa = PBXBuildFile; fileRef = D48DCBCD7C2098396B010A87235DBEC7 /* SDLFuelRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F09D2BD66940623B09B41ABAF668917 /* SDLIAPTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E24BC1F0E1A7E4BCD68AF3379A7B00 /* SDLIAPTransport.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4F59B76594C1905BB5FE6EE9197C1274 /* SDLSeatControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = ADECF6F036198C3154612FAAE7A54AA5 /* SDLSeatControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F6EC3B01C68F0C98C207FFE03CE1318 /* EAAccessoryManager+SDLProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = C2984A671B556FF5F5714ABB2F86EE8A /* EAAccessoryManager+SDLProtocols.m */; }; + 4F8500F87E23C15D287C5DD2DECE8B4B /* SDLRequestType.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EC4FB6334D52A0DA36EAF8AB148A89A /* SDLRequestType.m */; }; + 4F85738975C802A74B14297825DFB4CB /* SDLLifecycleProtocolHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = DBA779D91F961DC90E60E31DA4580DDF /* SDLLifecycleProtocolHandler.m */; }; + 4F8AE7258BB956DFB6C7040D9018ADF2 /* SDLShowConstantTBTResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 4484173D9CEBA083E87CF3BC381D844B /* SDLShowConstantTBTResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4FC54723A213B4601E377D642C8B7A3A /* SDLImageResolution.m in Sources */ = {isa = PBXBuildFile; fileRef = 12A3FA6BEC26E85A501F2A6A020EDBA3 /* SDLImageResolution.m */; }; + 4FCE0088480192BE0F5AD6E1F62569C1 /* NSBundle+SDLBundle.m in Sources */ = {isa = PBXBuildFile; fileRef = B04D130FB2F02F323455BD16B20ACE8B /* NSBundle+SDLBundle.m */; }; + 4FDC415F408F842E6797D412B962A94E /* SDLLayoutMode.m in Sources */ = {isa = PBXBuildFile; fileRef = BEB3EB4F638B59511646F2FAB436EA28 /* SDLLayoutMode.m */; }; + 5018CBE8BD73A237A1D49B52DFDA4469 /* SDLVehicleDataResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C4733935F901007F3F62700534869C2 /* SDLVehicleDataResult.m */; }; + 507614048885966692844A57CAB8F768 /* SDLSingleTireStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = EA25911F974B5B30D235AC704A107388 /* SDLSingleTireStatus.m */; }; + 5096182474D6C15A6B0FFAB419190E81 /* SDLEncryptionManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CED171DA1E775EB6E14EA2D2D5AF5D5 /* SDLEncryptionManagerConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 50AE63D8332621CC3493C807B8134262 /* SDLEqualizerSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = A46B7480DA60280AFABEE933D1777D59 /* SDLEqualizerSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 50C89E8901B132F3463B7FD73E2A7DF9 /* SDLIgnitionStableStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC369B414377098F2BD4E968676D84D /* SDLIgnitionStableStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 50FB6AFA657CFB352989099D13102F5B /* SDLFunctionID.h in Headers */ = {isa = PBXBuildFile; fileRef = 90DBBF1589F80689A14CB59C1644BEE7 /* SDLFunctionID.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51028908A8086942864F571CBEC493D6 /* SDLOnKeyboardInput.m in Sources */ = {isa = PBXBuildFile; fileRef = EA45F0C83A48EACA03748C23787612AB /* SDLOnKeyboardInput.m */; }; + 5122E43189822CFA912FF5442E49F767 /* NSBundle+SDLBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = FDBA9441EBE6863A395EF0DDA111A8FC /* NSBundle+SDLBundle.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 51378702549105BAEC08F36DF29A9C35 /* SDLShowConstantTBT.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B39BA281073C47D8203292D7923D0E8 /* SDLShowConstantTBT.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51558A65B02D8B1FBF6385B3763DBACB /* SDLCarWindowViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 92ACAA8B4D0D63E63F39B9F53DEFD855 /* SDLCarWindowViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51E5FDE48BA94ADB52A8A4C7D2E3CB3E /* SDLObjectWithPriority.m in Sources */ = {isa = PBXBuildFile; fileRef = D8C3E2092639989CC311D760FEFFF098 /* SDLObjectWithPriority.m */; }; + 51F564A4B2B0F3AD4D87627DC3996138 /* SDLTimerMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 52AD32EB63C924C84FDEC6DD43F329EE /* SDLTimerMode.m */; }; + 521E03E63F754E1A463AE59E6FC1A41C /* SDLPresetBankCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C9122F060BC11803A66A7401A0F946FD /* SDLPresetBankCapabilities.m */; }; + 528B18A7832F83E491FC2CE80FB6670B /* SDLCacheFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C9328B451F98B0315DBA9202D5241 /* SDLCacheFileManager.m */; }; + 529E1292ED8DB847A829F4DB43CA5167 /* SDLShow.m in Sources */ = {isa = PBXBuildFile; fileRef = F21009FEE092F6591C2E5955ACBCD7A7 /* SDLShow.m */; }; + 52A4C2B016A6EC2EFBB52FE9D6D75591 /* SDLShowAppMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 77D15E8AD5A19B2ED89FB10E91070268 /* SDLShowAppMenuResponse.m */; }; + 52B914BB3F72F83BBA465716FD859115 /* SDLLifecycleSyncPDataHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 445645662A65A1C42078DABD7A20509E /* SDLLifecycleSyncPDataHandler.m */; }; + 52DDF42FFF38F3CE6B04BFCA44933A35 /* SDLRPCFunctionNames.m in Sources */ = {isa = PBXBuildFile; fileRef = 04F52C5DC12FEA3AC1931C02FEB88081 /* SDLRPCFunctionNames.m */; }; + 532CBAD7F7203330EB116F867D78AD94 /* SDLImageResolution.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E7E805FF542E9C1C6E18B46AFABA56 /* SDLImageResolution.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5384C2E17CD387967780AB2004FA1D02 /* SDLSliderResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D48E02753FA770CE680D9502BD8F27F /* SDLSliderResponse.m */; }; + 5387C9D45457C73F1FE2DEC29EA23BAC /* SDLSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C10B9546CABAE071881D281D73820BB /* SDLSyncPData.m */; }; + 53A4C5BB897DE00C73D04FE9C798A378 /* SDLImageFieldName.h in Headers */ = {isa = PBXBuildFile; fileRef = F45151BA3773006A971D197673C22C5F /* SDLImageFieldName.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53D2AEBA404C140CAD3C1D71C71B671B /* SDLSetDisplayLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 881E4C25BD44C40E029B9496CF96582E /* SDLSetDisplayLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53E093C1DC6055913CCCC71F391E9A8B /* SDLIAPControlSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 86D33E8FBC03915470B26F43AFCE8644 /* SDLIAPControlSession.m */; }; + 53FB495454A995493CFBA59DA2A7186A /* SDLVehicleDataEventStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 363A1394DE1FFD6DF123791772377320 /* SDLVehicleDataEventStatus.m */; }; + 554E100F0671184D9B15CC7FFEF7C9D9 /* SDLEmergencyEventType.m in Sources */ = {isa = PBXBuildFile; fileRef = BB4BC0AA3756089C2F90667540A4880D /* SDLEmergencyEventType.m */; }; + 557D83DD1A2B8A0488AAE4F2C227DB16 /* SDLPerformAudioPassThruResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = BF926AC06548F171C59AEE3EFD6254AA /* SDLPerformAudioPassThruResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5583694D10586B8BE311BE8C17491438 /* SDLLogTargetFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 383B3E8FFC31FF9511326F14714F98E2 /* SDLLogTargetFile.m */; }; + 558629DF1394586DBF06BA79BC133AFC /* SDLMyKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 031BBB010D945FCF674851CA3A00B9F3 /* SDLMyKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5632263F62FB69A40803CE6C3D995709 /* SDLFunctionID.m in Sources */ = {isa = PBXBuildFile; fileRef = 1444B3657275C2D2C695FC678ED8EF62 /* SDLFunctionID.m */; }; + 56EE8DEB476EB170BA3E5B106F3C05CD /* SDLListFiles.h in Headers */ = {isa = PBXBuildFile; fileRef = A59281B6B7A635EC71C289B5AA8FAFEC /* SDLListFiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56F95DBFCAF964065E83931B5DAAE65E /* SDLControlFramePayloadRPCStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AB1DCB476513BFF046B549ACEA9FE45 /* SDLControlFramePayloadRPCStartService.m */; }; + 56FD57BF3791ACD2B74C0162F2BE9FBD /* BiSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C64A1B5B79B529141EBEF99FD0560328 /* BiSON.framework */; }; + 5722E858FD960FDCE31C18D4FC174A03 /* SDLTouchManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 709665B2A1B0E940E288AE35CA99AEDD /* SDLTouchManager.m */; }; + 5755FB5601F8050337ED594D86F3CA0C /* SDLRPCParameterNames.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FBCD2AEAD60094A7CB51F32D61FDFDA /* SDLRPCParameterNames.m */; }; + 5789D88EC2C3F5D751FB5B6579DD2BA8 /* NSMutableDictionary+SafeRemove.m in Sources */ = {isa = PBXBuildFile; fileRef = 8945F938BC1F0E55439AAB1ADFF84C1C /* NSMutableDictionary+SafeRemove.m */; }; + 57929D337BFC2A2910D7D58E49CBA51C /* SDLSeatControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 74815297D14D7E57559C2C6AF0F29BBF /* SDLSeatControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 580AE776FEBAFD0A7408EBC296789908 /* SDLLifecycleSystemRequestHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E3170BC3B4F4F5877B69D05DED54CBA /* SDLLifecycleSystemRequestHandler.m */; }; + 5814A19214584FF711E27A0165DB70B8 /* SDLOnTBTClientState.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B5BA0CEC12E67BC7F5BD539A70729DA /* SDLOnTBTClientState.m */; }; + 582C9ADF86D98712DAED3E320A3726F7 /* SDLSoftButtonState.h in Headers */ = {isa = PBXBuildFile; fileRef = E7395392C63B23687A1B8E76B8AB07F7 /* SDLSoftButtonState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 584B521B4CD67564DD2EAEA58D0741AD /* SDLAsynchronousOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F747C1DEC46DA7F32A9DA0A49F0887A5 /* SDLAsynchronousOperation.m */; }; + 5864283BEBFE5C0165A1AEA85C2C8BB2 /* SDLVehicleType.h in Headers */ = {isa = PBXBuildFile; fileRef = 52A7852C42AC1A630401AD0DB04DCACD /* SDLVehicleType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58E0719523FFA83A09D39EF3F58F6736 /* SDLKeyboardEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E74A07526CBD02470FDA755AB5D6C7 /* SDLKeyboardEvent.m */; }; + 5936185F7F9BDEA038CBC25861A7B800 /* SDLMediaClockFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = CF03C1888031E3BA51620916196E3F13 /* SDLMediaClockFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 59A56DDBA228D55C3134BD240398EED9 /* SDLDirection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D0CF36EE6F81BF9E7C336BFF6FA6882 /* SDLDirection.m */; }; + 59ED79597725A4AADB89371D24EBEBC1 /* SDLPermissionElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8673925B5FFBCA631C8D9562197C41 /* SDLPermissionElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5A47D62F5F8F9C203469C13B913B1462 /* SDLECallConfirmationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C252C93BD400D587AED7514EAE2990A /* SDLECallConfirmationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5A48DFAAD820439C6DD283B25B1B6699 /* SDLOnButtonPress.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A761B2562737FE71DC9907B5B509B09 /* SDLOnButtonPress.m */; }; + 5B7878B537CD40ED19460FE32BFE4B78 /* SDLRPCResponseNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5BC1A9155BA8ED843E0972909B9572 /* SDLRPCResponseNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B8FDF2A72CAB13B7848126ED89D4A99 /* SDLImageField.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D3EC08357B4F67E2BD4CACCC0300724 /* SDLImageField.m */; }; + 5BCCF4D01B9C4C5DDDC66A187E1158C4 /* SDLPRNDL.m in Sources */ = {isa = PBXBuildFile; fileRef = 02F85B02BD1D0104B4B4F60FE4E0B7A3 /* SDLPRNDL.m */; }; + 5BD31D6CFFAA15DBF142536BA3BD94EE /* SDLChangeRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = 057BF4E380C24A34B8A91DABCBD55757 /* SDLChangeRegistration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5BF9A79E2DB2C57D1AAB763884F1F50B /* SDLAppServiceRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 63CCE3D626BB22CCA767323E3EE5965A /* SDLAppServiceRecord.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C0C633DD0A3D67F0763146E88F96668 /* NSMapTable+Subscripting.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CFB911A9893560A2C355E39C00E5539 /* NSMapTable+Subscripting.m */; }; + 5C110E803525A9E4B32FD457F76865E0 /* SDLSeatLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 790A157900FC0357E1E10AE048065C70 /* SDLSeatLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C1C02512F9868EE4D3CB40D3EFEB29F /* TestSubscribeButtonObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = B7462198B3907DB7D73BC29114E41EAA /* TestSubscribeButtonObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5C2BC01A4218E85A37E7980742B3D0E7 /* SDLLockScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4F718CA865E4EBD8B3A40B5E3399596B /* SDLLockScreen.storyboard */; }; + 5C369D256AF7DC378B86FA8474FCDA3B /* SDLDeleteSubMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F2295CBB1464F89AF0CD86D10D353133 /* SDLDeleteSubMenuResponse.m */; }; + 5C6CEB2D9368DD956E8DFB71E7290E3C /* SDLPrimaryAudioSource.m in Sources */ = {isa = PBXBuildFile; fileRef = D08EB5D57959DC19650C80C22DAB3BE6 /* SDLPrimaryAudioSource.m */; }; + 5D956CAE93765CF2D19F46066504001A /* SDLKeyboardEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ED6CCE2CF434E4F07A3031783397721 /* SDLKeyboardEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DEB98011444C5BCFC62E391A0AC0074 /* SDLLifecycleConfigurationUpdate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EB6A8B5DA3D228DF8DC2F364DAA3F73 /* SDLLifecycleConfigurationUpdate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5E02140A9157AA4C9BEE6A9A044E4DC1 /* SDLIgnitionStableStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 7910570CD2F58D8D77EC77D4F5477546 /* SDLIgnitionStableStatus.m */; }; + 5E3F02846B693F10D67988B2311C5637 /* SDLHMISettingsControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = C588AF22E8C9EBAD69A20BE6D4709DD3 /* SDLHMISettingsControlData.m */; }; + 5E6226967B8FBB946A53C86E6730FC47 /* NSNumber+NumberType.h in Headers */ = {isa = PBXBuildFile; fileRef = 61BCAB5AD776DC231BC9B208AEA941FC /* NSNumber+NumberType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5F34BFCB3F62497D394181D996499346 /* SDLTurn.m in Sources */ = {isa = PBXBuildFile; fileRef = C1C6FBB24C1BC5CA5A7F2B3C4FFED418 /* SDLTurn.m */; }; + 5F380CC11226D4A05EC5A8276730B966 /* SDLPrioritizedObjectCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = B274AD52B0FF57921A0C62CA06B15804 /* SDLPrioritizedObjectCollection.m */; }; + 5F3CB89390876085191CC0A3D249692A /* SDLNavigationCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD062E44BAEAC8F381D25BB2C49F775 /* SDLNavigationCapability.m */; }; + 5F41FC573ECCB166C8CEA257C47841FA /* SDLGPSData.h in Headers */ = {isa = PBXBuildFile; fileRef = 200CFF87D513357375E0E8A676B4DCF0 /* SDLGPSData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5F5C149F78091F0E90FDC1E306A9F0BB /* SDLSoftButtonCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 84184A09E2EEE69596297343EBF3F35F /* SDLSoftButtonCapabilities.m */; }; + 5F86B7F362E3DB2F5EADF6A81651C848 /* SDLGetWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = 950F3C54DD8E214F44E5D973A18C2FC3 /* SDLGetWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5FB5DD9F6732B719FEC80F4FB928AAEF /* SDLVideoStreamingFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 808D3D1BD6F1044040D5B2D458E4B21C /* SDLVideoStreamingFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5FF2F52E73B01B06B0D1DD2B7502B928 /* SDLSystemCapabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CCD15C77520926C2D6DE6C44A380FD73 /* SDLSystemCapabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5FF666CC71C873FC835E1C8473DCC044 /* SDLDriverDistractionState.h in Headers */ = {isa = PBXBuildFile; fileRef = BD026A8DACC64BF05FE396E827AA092F /* SDLDriverDistractionState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6018282BC65CCED9D947B60ACB3549E6 /* SDLTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B6AA11A6ACA1FEDE8194897C492F598 /* SDLTouch.m */; }; + 603D7B56C9C81FD06C3EC810D7D782F7 /* SDLListFilesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 554FE2A409FB1FB6BF0E98F233F97E6C /* SDLListFilesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60497AADC0C7F17F737D365084E50302 /* SDLPowerModeQualificationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B1CFEA53176A71E567B91FF0E97CB278 /* SDLPowerModeQualificationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60680334C6656A73B54B98D1D6062EC2 /* SDLAudioStreamManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FE164609DE1ECF1EFF6A42F2D5BEEABC /* SDLAudioStreamManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 609D59858F614E865E35B9047D721B55 /* SDLLogTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = CDA21BAF0A80764F863AA3136B132BCC /* SDLLogTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60F49BAE1E585A348B04B8C10FE7876C /* SDLProtocolConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = C6544B04071C10C4B60339851B191DEB /* SDLProtocolConstants.m */; }; + 61286289354C21684DCA0FB800FCB7E3 /* SDLTemperature.m in Sources */ = {isa = PBXBuildFile; fileRef = C30E238F7AB23166E9F59B321FF1EDFE /* SDLTemperature.m */; }; + 615F5B49FC792C5089E5C9F8FEDA7EC9 /* SDLAppServiceType.m in Sources */ = {isa = PBXBuildFile; fileRef = 30C60087B34A79843BE53EE59A516D68 /* SDLAppServiceType.m */; }; + 61622F162E170CCC574404D22E2DF210 /* CVPixelBufferRef+SDLUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = E2D2C496603448224B3A478BD1E7C7FC /* CVPixelBufferRef+SDLUtil.m */; }; + 616D6920637E804849E0373AD2174843 /* SDLPerformInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = CB91F38B3D46D7DF0F73684B53D3BDD8 /* SDLPerformInteraction.m */; }; + 61E51A232CFFA49D07A9D4BBEB33C394 /* SDLButtonPressResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 297D3BF189B64B55B4EBFB1B4F256FD9 /* SDLButtonPressResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61EFCEEB040AC3FA357021A8C021BFDB /* SDLButtonPressMode.m in Sources */ = {isa = PBXBuildFile; fileRef = CD3B8A988BB67EDC48B5BBDC39F44164 /* SDLButtonPressMode.m */; }; + 61FAC7102046B7AA02E77C61022505B2 /* SDLGetDTCsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D1D048D4CD12A7F93CA9F3BEB86BB85C /* SDLGetDTCsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 624FB9F57A65D99E279F7B7030CE8F2A /* SDLPresentChoiceSetOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 78A7A95A29CAE2745B67B7C2F0F5FCD4 /* SDLPresentChoiceSetOperation.m */; }; + 62541828E1ED8584171F55DD3CF610D8 /* SDLAudioPassThruCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C18816A43577E38FE8908AD8B8B72321 /* SDLAudioPassThruCapabilities.m */; }; + 631017B15D80B89745179561A7882711 /* SDLPerformAudioPassThruResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1079F5E8BF4B26941ED6E2AC3446BCC1 /* SDLPerformAudioPassThruResponse.m */; }; + 6320CDF0BD3E03E4095435D5FF23AE05 /* SDLWindowType.m in Sources */ = {isa = PBXBuildFile; fileRef = 53911CEF89F12CFA7AEA7FF43FBF7E06 /* SDLWindowType.m */; }; + 63375F5754AB2A6330826FAEF85475FF /* SDLPerformAppServiceInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B456CA5D8FC2BB67712D9BE46D2EA781 /* SDLPerformAppServiceInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6389FBC37D9B7A5FCE86628A648D6023 /* SDLCloseApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = A4D71C10FFEEDB848F3F2C093F2DC642 /* SDLCloseApplication.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63917E3E16077B84F94481FEEE4EF4FA /* SDLDialNumberResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B29A443AF2301B12BD576CFDE7A4092C /* SDLDialNumberResponse.m */; }; + 63A78859EA9AFE1590C58ED29AD1773E /* SDLOnButtonPress.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A3F5B7EC0DC340080344B57171997C6 /* SDLOnButtonPress.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63D0F548923E6CCF260C1B0B8FAC6765 /* SDLManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C810B6DB2EF473A10A3289A980D1430 /* SDLManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63D41CDF01DD88B980D593CCB9F42789 /* SDLSetDisplayLayoutResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E7334963A37BC3A08C266E45F0DD29B9 /* SDLSetDisplayLayoutResponse.m */; }; + 64561042D6D620D2EE28EBB734BF03EF /* SDLWindowTypeCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AF964C803E435C54BC6C0D5656BC75A /* SDLWindowTypeCapabilities.m */; }; + 647A5E0ECA0ADC3528B86763362A0924 /* NSMapTable+Subscripting.h in Headers */ = {isa = PBXBuildFile; fileRef = BA157A4B51D5529A4050627BB1C06625 /* NSMapTable+Subscripting.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 64BBDF7281EAD65AEDDB047B1D987BDF /* SDLTimerMode.h in Headers */ = {isa = PBXBuildFile; fileRef = EFD2738443614AA486E73684C49EFD84 /* SDLTimerMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 65272CADF916905A96F9819D51EBE142 /* SDLSetMediaClockTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 009617EB39512D02064536C0802DF918 /* SDLSetMediaClockTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6546CB8FB941FA6521D2D53F4423E0A0 /* SDLOasisAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = ECA0A1828C5374CB24D7B145DA5A60D2 /* SDLOasisAddress.m */; }; + 6555ADD4F28D7D0113B1ADEA9908B813 /* SDLTouchType.h in Headers */ = {isa = PBXBuildFile; fileRef = F831CC11D420FA3CB7D9E212B2E9874C /* SDLTouchType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 65740342F23043EC9699F09D611C30B3 /* SDLDeleteWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = CBEBD6445D569D27DF83CCC6C9F8DC0E /* SDLDeleteWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 65FFC30295F6558FCA6A0D44DE401664 /* SDLUpdateTurnList.h in Headers */ = {isa = PBXBuildFile; fileRef = 59F1B488251110BAEA799A5E7C83E6A7 /* SDLUpdateTurnList.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 661388FE2DB8C7B278CC3595E6F7B8A9 /* SDLControlFramePayloadAudioStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 6644C7A504AD3CAC83C4A63B22675EB0 /* SDLControlFramePayloadAudioStartServiceAck.m */; }; + 663348139A84842D9DC8B687D034FAA3 /* SDLIAPControlSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 2118A772BE2023279116272EE7B812EB /* SDLIAPControlSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 665B8CB4DEEC8E138E60BBA8D5F6D783 /* SDLWindowCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 4417737422CDA6FC54D20FD73B984618 /* SDLWindowCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 667074D7329FC4A6C93D491CCA95AD28 /* SDLDateTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 3603AB47CCA7EABB5B1FDAC0C16A59C7 /* SDLDateTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 669E7D9BE46C978941CAF921CD8448E8 /* SDLAppServiceType.h in Headers */ = {isa = PBXBuildFile; fileRef = 70D15488C806D4BEC8709786B9EE4931 /* SDLAppServiceType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66AE1E0830F6B4805FB27212308F3740 /* SDLSystemCapabilityType.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B5B5ADAAD2A74CAACA981BBA0E650AC /* SDLSystemCapabilityType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66DD4C2351A07491E98BD7CD80A6A7DC /* SDLRPCStruct.m in Sources */ = {isa = PBXBuildFile; fileRef = FC438DC201BFBEC2EE4025086F8313F9 /* SDLRPCStruct.m */; }; + 66EFE45CF4E1A18BA9351BE5D23B4AE5 /* SDLAudioStreamManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E455C3FFF2568B4B1C81CC712A1DB06 /* SDLAudioStreamManager.m */; }; + 66FC0DCB94EBCBFBC1E6A3D16FCBE32B /* SDLSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F81576D0E235C0559B93C3A3784A4A6 /* SDLSystemRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 670B776F551B36D554119FB8026FE32F /* SDLDeleteInteractionChoiceSetResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DEE0B3D792D8D9B339974A65CFE9D595 /* SDLDeleteInteractionChoiceSetResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 672A6C9980B30F2A8A1A7E7ADC9CC09D /* SDLStreamingVideoScaleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 95F535D382BB81682B987861B7CB0DDC /* SDLStreamingVideoScaleManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 67692FE28D4340CE9F1E21ED290A7BF4 /* SDLMediaServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C69A475BAE41EDD24A00FB701BC3EC6 /* SDLMediaServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 676C546E11B1621DE2BB157860876C84 /* emhashmap.h in Copy emhashmap Public Headers */ = {isa = PBXBuildFile; fileRef = 4498BA293BEAD680B6055DB76B201258 /* emhashmap.h */; }; + 67D46AD5B6E35CB62DA133B5B348FA24 /* SDLGenericResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D1D89E21C967BEB9B2C7C143BF7A6A4 /* SDLGenericResponse.m */; }; + 67DD2F6C2C1B752CD9325DED259FEE1B /* SDLCreateWindowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E34195450014D320A5D463831A181938 /* SDLCreateWindowResponse.m */; }; + 67EF13392843998F139806BCF4599AEA /* SDLMenuManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = B2564FC1D10877AF9A91ABEB9100B92C /* SDLMenuManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 67F80DAB5A2C44767BBD1E0F87132790 /* SDLPermissionFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = BE76E8F8542A250DA8DF7178F62984AE /* SDLPermissionFilter.m */; }; + 682621E46D4F78FA33B4AE15672E7795 /* SDLCarModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 30D436C8BEF4813A0366098F52523C60 /* SDLCarModeStatus.m */; }; + 683759594A286A805CC281E2A1377FDF /* SDLPrioritizedObjectCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F9EA7382A67871A90547746B880626E /* SDLPrioritizedObjectCollection.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 68A1D017360BBBBC0074B9F8C38324D7 /* SDLTriggerSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 399963B38F59EC81F67BF3E9E31B2F1B /* SDLTriggerSource.m */; }; + 68A818CEEC6D3464F1F342FDA6F2A589 /* SDLDeleteChoicesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 32A8A151275801260ADFAEC896C908A8 /* SDLDeleteChoicesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 68B1EF92CDDDAE01715C7BE396C2F1A9 /* SDLAlertResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A9C1A17D21E9FA2E45F72C2B32CCE8F7 /* SDLAlertResponse.m */; }; + 68E4D80462EF8FE2BF63088DC7969409 /* SDLWayPointType.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5EACB795A74BEECD2B2D57A5D74C00 /* SDLWayPointType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68EA9F3B5A2C59F3DAEB02CB431641BE /* SDLSetGlobalProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 29F0F5DC74AC7556C287B80348D40588 /* SDLSetGlobalProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68EC307B38999212B1E4E52A2A6A5938 /* SDLSystemAction.h in Headers */ = {isa = PBXBuildFile; fileRef = F113CD1AE27E195E8E894E7CEFF2C186 /* SDLSystemAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68F032CE30BD7CE0AE34E486D3284828 /* SDLRPCPermissionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = FFDB98B89A59A3B2447CB847429D8C87 /* SDLRPCPermissionStatus.m */; }; + 68F7A1B469E057D5D1704769522F3430 /* SDLReleaseInteriorVehicleDataModuleResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 895A7D207902140EBA17041F62E54A34 /* SDLReleaseInteriorVehicleDataModuleResponse.m */; }; + 690DFDCAC21DB2CF0A4196DF85213638 /* SDLSetDisplayLayoutResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 02D17977948909712E8F721ABB765601 /* SDLSetDisplayLayoutResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 693B129F38CC2B703FD8A7F08CB78C2F /* SDLLifecycleRPCAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = E8B87E7B6C490A994E034330CB9660CA /* SDLLifecycleRPCAdapter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6965ACD0E911E9BD96D98B7BBF6999D2 /* SDLAddCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D48DAC1DBEA20AE11B03D74419A181C /* SDLAddCommand.m */; }; + 69A700328FFCFD1C1E2E9FF0F0529DEC /* SDLLockScreenPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 663A9EF7F5F3FD6EE0A2CD1D2AC97B32 /* SDLLockScreenPresenter.m */; }; + 69BC1D80B84B7F1707FED6EDB7A50848 /* SDLDisplayMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 91BF1416AB652B4C37A9DEB376B5AEE0 /* SDLDisplayMode.m */; }; + 69E988775F50BC03CB1A92A342B78898 /* SDLSystemContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 05EF0182EFA11F347688F90D543F5C41 /* SDLSystemContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69F72E41357AC14E6AEDFA5D29169648 /* SDLProtocolReceivedMessageRouter.m in Sources */ = {isa = PBXBuildFile; fileRef = DD6BDB7BD482EF289B2480B8CA328408 /* SDLProtocolReceivedMessageRouter.m */; }; + 6A10282A596AAC26FD1C0C7C25D5B703 /* SDLClusterModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5869C4B4CE96D9E62C0313B0D1A429CE /* SDLClusterModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6A32EE1E98F4B89DC22FF426ED90E128 /* SDLGetDTCsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 93B36FDBAD2C44E813F8584D034A63CF /* SDLGetDTCsResponse.m */; }; + 6A39551CE8FE95E61A13AC6303021CF1 /* SDLH264VideoEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 511FC688BC8715CB040A0DE1F8B24C2E /* SDLH264VideoEncoder.m */; }; + 6A77038D70724D42FBE36C660FA25984 /* SDLRadioControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 41EEEB77F744D0ED3EF519C0FD308F2D /* SDLRadioControlData.m */; }; + 6A99B6EF560D2A0736B874F45E8B1D06 /* SDLRemoteControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C3E1DA75336E5B7703B366F52EB61E9 /* SDLRemoteControlCapabilities.m */; }; + 6B045CB9000C16A8E5D3AD569DFDCF1F /* SDLStreamingProtocolDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = EE1FAE9A70F6C11454D435DA45460256 /* SDLStreamingProtocolDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6B57D1A412547788055E9DA7140CFC2B /* SDLModuleType.m in Sources */ = {isa = PBXBuildFile; fileRef = FC83851939F611364060849E34FD8F54 /* SDLModuleType.m */; }; + 6B6C4354D06CE6C89C8326CEF5DEC82C /* SDLBeltStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 8491710A7CDE4F582940CE688AF7A91B /* SDLBeltStatus.m */; }; + 6B8AD2A80230C69999C2557111A863D6 /* SDLDeleteInteractionChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = C24AADEEDA015C43C563DB8822396C0A /* SDLDeleteInteractionChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6BAED78EC69507553115F18851E48139 /* SDLAppHMIType.m in Sources */ = {isa = PBXBuildFile; fileRef = 67B1375F3DDA0692EAB06F16FF383182 /* SDLAppHMIType.m */; }; + 6C0DD486593A4C4E141651525DA3E0B4 /* SDLDeviceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 579644EEE9880D03CC5BDA3AAA01F743 /* SDLDeviceStatus.m */; }; + 6C5B7C4935BC2EE9F988FBCB42082F22 /* bson_array.c in Sources */ = {isa = PBXBuildFile; fileRef = 094B9EE84AB60943CDCB9F8C70FA11EC /* bson_array.c */; }; + 6CA6585CCC7F10A53605A5ED5C6E6B81 /* SDLVehicleDataNotificationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D150921AE68F0BB3EE9419F5B9B006D /* SDLVehicleDataNotificationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6D06E07A53474A734004B5F848586E0A /* SDLUpdateTurnListResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6965165C7082ACB5194C99CB6FA07E6B /* SDLUpdateTurnListResponse.m */; }; + 6D90411B199CDB756ECFF1B520D943CA /* SDLMaintenanceModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 761B798C05833C28B0A217F40C5D9DC6 /* SDLMaintenanceModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6E3FD9310F03098F4243193E0FBFDE22 /* SDLRPCNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 9468B7F69A0644FCBBCDBB810795C4B3 /* SDLRPCNotification.m */; }; + 6E5B5A9D4E5A1A3D974242BA837F34F0 /* SDLLifecycleMobileHMIStateHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D9A91B4DF7620814FB322D536E96E5C /* SDLLifecycleMobileHMIStateHandler.m */; }; + 6E9BE8E12179D20D279AB45E03DE90A5 /* SDLImageType.m in Sources */ = {isa = PBXBuildFile; fileRef = 133621C4947DCE93C647CED71714B924 /* SDLImageType.m */; }; + 6EC13292E4664E664044A60BCE60965F /* SDLFuelType.h in Headers */ = {isa = PBXBuildFile; fileRef = 751014CBE69345246F2D0A816DC57EFA /* SDLFuelType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6F0DF2DDAA5289F5AFFC0E041C66C3DD /* SDLMassageMode.h in Headers */ = {isa = PBXBuildFile; fileRef = E46DCE56EFD40F057672597BEDF9BC5C /* SDLMassageMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6F77FE57579EF72D016C882461807E4A /* SDLTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C51B2936414DC95DE04ABA7C8408101 /* SDLTextField.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6F9DB2F491CAE7DADD2B8B6D0AC37586 /* SDLResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E3B71900EA08E804133F37E5D6ADC285 /* SDLResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6FCD8781D26DE624CA3BE497CAB3C388 /* SDLCancelInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 79BE090F6A21A962EE21A4F1CEEF8475 /* SDLCancelInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 702B1574D8EBB3CECE5EE20403899AD4 /* SDLOnButtonEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = B123B8245FE7984988B165A780AED107 /* SDLOnButtonEvent.m */; }; + 703F4BBF41D33B378CCAA13A2E993693 /* SDLSoftButtonTransitionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B4CDDE3895D8DB904D1109A078E3244 /* SDLSoftButtonTransitionOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 704C9306EF48FE1BBAE20B7CAADE8FA8 /* SDLTouchType.m in Sources */ = {isa = PBXBuildFile; fileRef = 745677B913DC8E4E41FB2994B6781B3B /* SDLTouchType.m */; }; + 705C280F5C64DD6D5151417E328EBD00 /* SDLRTPH264Packetizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ECF2069806AE61431252D9A6ED62A8F /* SDLRTPH264Packetizer.m */; }; + 70645ECC9769D5C102088085D044489C /* SDLChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 99258EE24FD66E3BA4328B7EB26FED96 /* SDLChoiceSet.m */; }; + 70756AAE89B977A4D161441924CA9238 /* SDLHMIPermissions.h in Headers */ = {isa = PBXBuildFile; fileRef = 138D7E23E43103272A89FF94CAF440C3 /* SDLHMIPermissions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 70E35DA4DAB10B2117EF821AA552390E /* SDLFuelCutoffStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 35CFB929B710C6200396CA20289832F1 /* SDLFuelCutoffStatus.m */; }; + 7114457F0DC999CFA9DD249404EBB384 /* SDLVideoEncoderDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = AC622C32763FF5BF0D5E745522571CB6 /* SDLVideoEncoderDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 71886EF8686699A2B144C9FDB19500F0 /* SDLRegisterAppInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = C1B0FF7E975829A08686F5A95439E6AF /* SDLRegisterAppInterface.m */; }; + 719F1510793284941FE5BF903CA15B03 /* SDLMassageCushionFirmness.h in Headers */ = {isa = PBXBuildFile; fileRef = D987EAF5E95BE2470E9AFACD43D35461 /* SDLMassageCushionFirmness.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 71B061EECEA783CBDE28CC159BEB1C7E /* SDLServiceEncryptionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E82FE3223DC169D9038DD1EB8FC32E30 /* SDLServiceEncryptionDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 71BF4F92683DCBC2B99F2CA7C9F38AEB /* SDLUnsubscribeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C3FE6D390A5D3DF3DDB3C3E02CD486 /* SDLUnsubscribeButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7206EA4C3E70012194A19E7A57784E73 /* SDLRPCRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = E8061A69F7A640BFC2198A1B24F37983 /* SDLRPCRequest.m */; }; + 72087CE9FAB920594133BABA14505343 /* SDLWeatherServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = E78CF1EFD9F68E40428F71D4887D5C50 /* SDLWeatherServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 722D3B085A292F3B1F54D195F6374EA5 /* SDLDateTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EAE47EB9D6FA6A7086775871FD445E1 /* SDLDateTime.m */; }; + 728A4B617C43974BBB7EC3785D380ECC /* SDLSoftButtonCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = F281EBFE5ACD2B7340F65D4E7EEA5416 /* SDLSoftButtonCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72D0FE3256E463B80705508EA33D1904 /* SDLRPCNotificationNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = AF5B172A3AB107D165BE0B845E9FFA33 /* SDLRPCNotificationNotification.m */; }; + 72E713506534D95203F92A95487AD5B2 /* SDLPublishAppServiceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FD7EEC34E8024D6A971F56B948E0EE1 /* SDLPublishAppServiceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72F95D970F57DD3D099831677FBD44F6 /* SDLNavigationInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 01F187BD4B1741FD143AC9FEE6B6A9B8 /* SDLNavigationInstruction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 732010BF7C56D3F7501939DEF04CDB01 /* SDLOnAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = F3A5F47BE1D6B4E4B91C6E9FDC9B8BB3 /* SDLOnAudioPassThru.m */; }; + 733B8F6B2D6794F76EC54A74E1BF9391 /* SDLAddCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 810191FBC97CF880144ABEB67A432DD7 /* SDLAddCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 73AF02C61796BC9795EB99512699E5BA /* SDLTemplateColorScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 87C67CACB98D0E3DBC70C30114AA819D /* SDLTemplateColorScheme.m */; }; + 73CEDC08872351275F6942229AD3F2F2 /* SDLVrCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 585E39B167E64180E6C78FEC200638A0 /* SDLVrCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 741A73FF97C6C57457B593472329EBF1 /* SDLLogFileModuleMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 6832CC0E9D2EAF6011514D2D39624749 /* SDLLogFileModuleMap.m */; }; + 7456AC0029B0ED5013845EF8690B4800 /* SDLIAPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 49CD8EE4FC64B30478D9E206DAC78F84 /* SDLIAPSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7462ECF43D6F46BF304953FF4F06DF9C /* CVPixelBufferRef+SDLUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4071441DDC5077B72F75166D79DE65 /* CVPixelBufferRef+SDLUtil.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 74A5B28E5563DB190D6A5F4FCB5F95E2 /* SDLVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 25F504266BEC635D2B9887837CA00D26 /* SDLVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 74B5FD77F904539F2A425C2B6596E7CB /* SDLUnsubscribeVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = F1F3ABF315700CBC59CCB9DDE42C0C6F /* SDLUnsubscribeVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 74BC3B711C2F9F27EF800EC0D8BB3E7F /* SDLV1ProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = B74B5802B681CDB3E7A210BB0EEEB7D0 /* SDLV1ProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 74DEDAE776C51EFDD5DB1136F7BEACE3 /* SDLSubscribeWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 84BCD84500C53F400D5B51AB716B9A7C /* SDLSubscribeWayPointsResponse.m */; }; + 75B5CF174677B662157EE0E564B16CA9 /* SDLGetSystemCapabilityResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = BF781992E0488A0904062D8D4D4B7369 /* SDLGetSystemCapabilityResponse.m */; }; + 75E6C6F54EEA45DBB11CA4791C6541C4 /* SDLRAWH264Packetizer.m in Sources */ = {isa = PBXBuildFile; fileRef = D516C013762946799CEEFE4D998577D4 /* SDLRAWH264Packetizer.m */; }; + 75F75168E87F0477AF56A4433120E337 /* SDLLightCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 43FC77484E65E9648B5154177DA965B0 /* SDLLightCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76FB2772BBD488BD031C94BD2D790911 /* SDLVehicleDataEventStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = EB86E9E686A67D3B92112A90F2138FF8 /* SDLVehicleDataEventStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76FB8F453DF3B113045E68FC3BAEF526 /* SDLWayPointType.m in Sources */ = {isa = PBXBuildFile; fileRef = 10C447C90A40A49C0653E0D97B15E7C4 /* SDLWayPointType.m */; }; + 770D17FE53CB1E2885FE07DF770AA9B6 /* SDLCloseApplicationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C1F9C5416BB8D0ED9335E1A889B51A93 /* SDLCloseApplicationResponse.m */; }; + 774AABC7C408007271B765CB49CE11B5 /* SDLRDSData.m in Sources */ = {isa = PBXBuildFile; fileRef = BF737E9FCE10383D22E0AC258DC505F8 /* SDLRDSData.m */; }; + 7796527893D2EBB3895B55EF97A3800F /* SDLMenuParams.m in Sources */ = {isa = PBXBuildFile; fileRef = 49732759D432317F0DA45A467B441A1C /* SDLMenuParams.m */; }; + 77C1792F987AC3B2A678A95E3BD85C32 /* SDLNavigationInstruction.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BF22D8F89AAD3C5356C6D640553D7C9 /* SDLNavigationInstruction.m */; }; + 77F8B1D0628B527B45BE658B3B293E2D /* SDLShowConstantTBT.m in Sources */ = {isa = PBXBuildFile; fileRef = F3623CCA82E15DB239231177AEED9FE2 /* SDLShowConstantTBT.m */; }; + 7851718413DB3073469A983DC222E140 /* SDLResetGlobalProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 068BB05FC0F060EEA4D7C2CA18384BB6 /* SDLResetGlobalProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 785A0499CCC19692E52D12A856D8A998 /* SDLGetFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 556E40F610F2EB3D2F7A0EA1C6707035 /* SDLGetFileResponse.m */; }; + 785AFB7110E873CBC9CD1D4D6EFA9FAE /* SDLPerformAppServiceInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = B6F87FE59A859BA349CCDEFB67E12842 /* SDLPerformAppServiceInteraction.m */; }; + 78A8DD9987A5AD9F966EC563DE304315 /* SDLUnsubscribeVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 052CE8CBD47B13C4CF8725945BB4F79B /* SDLUnsubscribeVehicleDataResponse.m */; }; + 78BF11691585A2A34E9BF697CABDB77B /* SDLRPCResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C4F2955E72C9BC6322E9F39A5C0BCCE7 /* SDLRPCResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 78DD03DE1F2E1CDAF6EFBE85FB271659 /* SDLModuleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B4F218D5BBC11B808F5FCB846D65C36 /* SDLModuleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 79DC53A9C788ADDD57B9EDB85F999694 /* SDLSoftButtonType.h in Headers */ = {isa = PBXBuildFile; fileRef = E72B649C1BBFB6CC29A8201C5681766D /* SDLSoftButtonType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 79E2DC7E5768C6622D75EF018FB82F0F /* SDLRegisterAppInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F28BC6B50D22A511ABF2860A5A43136 /* SDLRegisterAppInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A10A582CE1C096717AD7336C1B7EBD4 /* SDLUnpublishAppService.m in Sources */ = {isa = PBXBuildFile; fileRef = B70A1025E2176483677FE18DB926E317 /* SDLUnpublishAppService.m */; }; + 7A1CDB9C2A552A2EDA566CE7B61B02FA /* SDLChoiceCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FABEE925707D9F7BE28A3E70A9545F08 /* SDLChoiceCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7B1E4523F92AFFECDEC08D8005987727 /* SDLUnregisterAppInterfaceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 166F38C67540EA16117D3D9B0786CA65 /* SDLUnregisterAppInterfaceResponse.m */; }; + 7B24FA06A268C3DA54C496C28B13E25A /* SDLLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0381C7F8F19AB2E83F3F40CB77F00DCB /* SDLLog.swift */; }; + 7B7B00F06DD077C562AC195054871C6D /* SDLProtocolMessageDisassembler.h in Headers */ = {isa = PBXBuildFile; fileRef = 7225B3942F9C5E129FA86F41720C7403 /* SDLProtocolMessageDisassembler.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7BDB9F0C874B2B2DC0EDF0ACD35410DC /* SDLSpeakResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 20267DD8ABB8C4937C58CB114EFA029A /* SDLSpeakResponse.m */; }; + 7BE925A905AB58CFA7FC82DE131D9C55 /* SDLRPCRequestNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A682C7A761BD4627EABB545706018F3 /* SDLRPCRequestNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D0062F56EACBA6F8476176C8FF0E2E7 /* SDLReadDID.h in Headers */ = {isa = PBXBuildFile; fileRef = 303C3E1F855B7BE56C54751F8820643A /* SDLReadDID.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D449072D02DC41B5EC19BC012176186 /* SDLVideoStreamingState.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F27E3C03AA7B2EAA902D3C1D95090DB /* SDLVideoStreamingState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7E128A41B92ABD534D3BED1EB0166F27 /* SDLWeatherAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = 19139224AA63FB5E62A3D689DD610047 /* SDLWeatherAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7E1B85155539D7490393F22A7B5DD864 /* SDLSubscribeButtonResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B552BC411A63CECEDC496B62D1B4B8FE /* SDLSubscribeButtonResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7E667B3B3745C84FA7FA7E7A83CDDDED /* SDLLogConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 9998667EF3AD9356F74EFEBA18B71B18 /* SDLLogConfiguration.m */; }; + 7E7594511BA3FB188C0D4874798AE1D6 /* SDLShowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C55134DFAC0BA632F4739F88E9C22F64 /* SDLShowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7ED73AD3B2A398A24F0F5F902C2BEC7E /* SDLNotificationConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 113CB9707D2133750B2A74C8E4E75D53 /* SDLNotificationConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7EF3CC27A41E978150622B382F5DBBC1 /* SDLSetGlobalPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D28C9BD0381F41CC4ECCDB3308A2629C /* SDLSetGlobalPropertiesResponse.m */; }; + 7EF977C0D687F79EEBE5556F4B91C795 /* SDLPreloadChoicesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EFA016E112D9F7CEE1696C8B3D236C1 /* SDLPreloadChoicesOperation.m */; }; + 7F2C743C5E22D4B43E3C96718A287635 /* SDLPublishAppServiceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 70634D4480B4DFDAB8FA657ADAEF768B /* SDLPublishAppServiceResponse.m */; }; + 7F5CE8EAAFC658D1733DC0D80A624DE1 /* SDLListFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D4C1FD6526097EEBD7A4AEE29623C7A /* SDLListFiles.m */; }; + 7F6424CEFDA3B3C532BCDDFAD1E0593F /* SDLResponseDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 96FDD76CCE5AB56B5E2F2065E5AA5F04 /* SDLResponseDispatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7F809464FB227F599754C4774F4F0D00 /* SDLSubscribeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 14CAEF2A13506951EA87997CC4AA236B /* SDLSubscribeButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8003E563EBF25F8D6C8BF11084650CED /* SDLControlFramePayloadEndService.m in Sources */ = {isa = PBXBuildFile; fileRef = 77CC97F51D3268076905BB31E39F4CD1 /* SDLControlFramePayloadEndService.m */; }; + 8015E7789F7FC9A108335F54BB07608A /* SDLProtocolDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A697E2FEB8F9928973AF1D4697F0C023 /* SDLProtocolDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 801B9BEFA66C3145C817445D8AE5BA1F /* SDLSoftButtonType.m in Sources */ = {isa = PBXBuildFile; fileRef = 611B8EA6CFB53369E15F75B735E1EF03 /* SDLSoftButtonType.m */; }; + 8063604BF5348DFC96A063DB686D9A0B /* SDLSetCloudAppPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 06C8E96119F2882B4C2C262F67AD29E7 /* SDLSetCloudAppPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8079D14942FAFBE0EE5A57F3665810AD /* SDLVrHelpItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 45E554466607C0B6553630AB6FB0D015 /* SDLVrHelpItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 80A4C0F0E1202AF9F786FDF9B730D7C2 /* SDLSetInteriorVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C1B6C3AA7551CF9A652411C8E74DBF34 /* SDLSetInteriorVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 80C005673FF0A17E64ABC38D3D87A0E7 /* SDLSeatMemoryAction.h in Headers */ = {isa = PBXBuildFile; fileRef = F60CF60AC5E2912FDBA7FB16CCDD927F /* SDLSeatMemoryAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 80C31DB7E8132BB5C12F3C7AEC99CE36 /* bson_array.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FDDC6658582C0B1CEC0775EEBEFEF01 /* bson_array.h */; }; + 80E9854ADFCBD2E2B0D0C318C5896D89 /* SDLSpeak.m in Sources */ = {isa = PBXBuildFile; fileRef = 060F9D8B01CC5577C06B7438BDB833E6 /* SDLSpeak.m */; }; + 80FDD0C4DF99B717DD2CC97FC228F91B /* SDLDistanceUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = BF812F295C7BC99D0E7260C44A30FA1A /* SDLDistanceUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 810BB67A4F073E317DDCD354D46D5798 /* SDLUnsubscribeWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A40F0AF559343F73CD03D070F06706FF /* SDLUnsubscribeWayPointsResponse.m */; }; + 8142B72C40C42732642DFE6C9E248FD4 /* SDLGetSystemCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 07761CF3C8D6A5A03E8B321C60A0DCE8 /* SDLGetSystemCapability.m */; }; + 817649F62E631491CB4D4AC78AD1F931 /* SDLSubscribeVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D765E0A70DFB9714A0F405D852A66FAB /* SDLSubscribeVehicleDataResponse.m */; }; + 81A2EE8BC56912D7216441DA5841C2DC /* SDLLifecycleSyncPDataHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3999098BE21C5D7373235405AF09F5A4 /* SDLLifecycleSyncPDataHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8202ACFD681FB7B0CF7F76BB088E01B2 /* SDLSendLocationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FD4A03C289D0C51D2ADFA923A6B14728 /* SDLSendLocationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 827C5F581A5FB46D0D7B9A13960CFC87 /* SDLSecondaryTransportManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A4A011384B18AB35F5D5E7615AABE7C2 /* SDLSecondaryTransportManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 82885DBB8D8EB8C4A666083AF5A1B140 /* SDLControlFramePayloadRegisterSecondaryTransportNak.m in Sources */ = {isa = PBXBuildFile; fileRef = A8F1FC7563B35841A0B1D696269FA3AB /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */; }; + 828C58703B8028751F490E8A6AA7DEE5 /* SDLLightState.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D162E149D1234C0EC8BD90C863EBC29 /* SDLLightState.m */; }; + 82DA35190CA47C0906DF3CF1F2275F9F /* bson_object.h in Headers */ = {isa = PBXBuildFile; fileRef = DD2A35B92D9AC44F072344ECC125D1B7 /* bson_object.h */; }; + 82FFF51387E80FCEDA5352282339DB5E /* SDLChoiceSetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C7F9ED55C903DF4E945CF493F83626F /* SDLChoiceSetManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 839759EA6DB888BEF170B204E7533E87 /* SDLAlertManeuverResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CC66876557B0753F1E8075EEECFA7C06 /* SDLAlertManeuverResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 83A68ADEDA90E33CC63142A22912ABF9 /* SDLKeyboardLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B2B524E9D5A872B97EC4D57EA21E041 /* SDLKeyboardLayout.m */; }; + 83A82DBF4D25D51D1476CD1761FD8193 /* SDLMetadataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 90137F76EDA22309EDDAEF4418590198 /* SDLMetadataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 83D2CD65D5D95573F01977E99B1D75E0 /* SDLDeleteSubMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B783431D6B033263CF2D12A61575D27F /* SDLDeleteSubMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 841D7336AA726A431DA23D4AE4B74B0C /* SDLGetInteriorVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D030FEAB644BB0DA021BED593500842A /* SDLGetInteriorVehicleDataResponse.m */; }; + 84540A4EDD1929D0EA78BAFA88717E6E /* SDLFileManagerConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 338899E14AD4EC3E7D4D257B7F18AF1C /* SDLFileManagerConfiguration.m */; }; + 8464C78AAB2ABA1F3432F3A7E05F6F2B /* SDLUnsubscribeWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 576CF948F88ECCCBFAC0594C7F4040B0 /* SDLUnsubscribeWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8472EC40CE62517B318FA0D8BEE85BED /* SDLAudioControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 089526E918DB53DC6E49872629FFC303 /* SDLAudioControlData.m */; }; + 8481C28E972233354B8C968975D53DED /* SDLOnHMIStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 88A98EF18C6CD1EA711938578B4CB959 /* SDLOnHMIStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 84A93A03350F9B2E58F388D5C6941ADF /* SDLUpdateTurnListResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C2B0CA84D3B9C68D496FD66419D566C3 /* SDLUpdateTurnListResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 84AC99C20CB76DB834582FBADBA11A3A /* SDLPresetBankCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 565B69B36A8F76F2E5BC0B5883391027 /* SDLPresetBankCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 84C5619937EB87E33EFD6E14666690ED /* SDLMassageCushionFirmness.m in Sources */ = {isa = PBXBuildFile; fileRef = CF7F2682404352A5DA48275A68971699 /* SDLMassageCushionFirmness.m */; }; + 851385917D7B75901BBEC54799544B16 /* SDLTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EA4853DDAAB63EC25DE5EFCC17C1914 /* SDLTimer.m */; }; + 853FBDDD33406416B3CD92C116D48527 /* SDLOnAppInterfaceUnregistered.h in Headers */ = {isa = PBXBuildFile; fileRef = F5DE8533E913F68EBF72EDF7E4D95FDA /* SDLOnAppInterfaceUnregistered.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 854A588B639BD42CC33822B7AEE5AEC3 /* SDLSetInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 3323659F219E52681E8003E7972EF6C6 /* SDLSetInteriorVehicleData.m */; }; + 85B6CE567D6BC650645D3BC8D7503A89 /* SDLMetadataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B735CFF284972E87F85DEDF52E7B4B0 /* SDLMetadataType.m */; }; + 860C590D39EEF30148340A4A972B2EA3 /* SDLSubscribeButtonObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CEDDEAFB2948E2135AAB8C34A9C9277 /* SDLSubscribeButtonObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 862FAFCD13F05A7A30DA725EA4BD11B2 /* SDLIgnitionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B4BC1552B9C96F9D0CA45A8320DDFA /* SDLIgnitionStatus.m */; }; + 8648110FFEF2D75F6B7F55C32146724C /* SDLKeypressMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 9041DBA4C0CB716742630EA1FC2D72B7 /* SDLKeypressMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 865B4D4D641A4E05B041FEF288509946 /* SDLUnsubscribeButtonResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 78BCD3CBF28669B305138E89FAF33DE4 /* SDLUnsubscribeButtonResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 869B5690CE0248DE52F1A2DED2BFBD8A /* SDLTouchCoord.h in Headers */ = {isa = PBXBuildFile; fileRef = DC1B6BD9F7404CCE757869AF75DC0434 /* SDLTouchCoord.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 86DB089944ED1B94905A6348FF65F560 /* SDLGetInteriorVehicleDataConsent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D07BF9A19096BDE35C54CB33E961268 /* SDLGetInteriorVehicleDataConsent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 874054E606BCA76A8EB634D9E108F2B8 /* SDLAlertManeuver.h in Headers */ = {isa = PBXBuildFile; fileRef = 7107118F63D85B4E1D0C3139EC411FA9 /* SDLAlertManeuver.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 875A8146A25E141985609DF2203B794A /* SDLRPCMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = CF9460897660A78535CEA62503CB6771 /* SDLRPCMessage.m */; }; + 8761C5C5FAE98F01177293BEF5214671 /* SDLButtonPressMode.h in Headers */ = {isa = PBXBuildFile; fileRef = E78DEB8B749679E27472A7740A653CED /* SDLButtonPressMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8772FCEC5E9710246CEE8FBCA4019860 /* SDLCreateInteractionChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 116815ADE5356987348CB6CA1D5E8C88 /* SDLCreateInteractionChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 877EEF9736AFC84910376C4956E2F72D /* SDLSetAppIconResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F9AC4187700727AA62E02334C521533 /* SDLSetAppIconResponse.m */; }; + 87A6792BA6AC2CE0161CFEF34F119059 /* SDLGetCloudAppPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F7B82FAB4C07FC4227B758EFFFD79F6 /* SDLGetCloudAppPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 87AC6CA51E70B12C479133AC047D6AD0 /* Pods-MobileWeather-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E7A92F6F5DF51067E86A63E8CD1EC5C /* Pods-MobileWeather-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88055DB6523505C026A7186A042B0A19 /* SDLIconArchiveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 7271B5F541D7EA6BA5478DFBDD079C30 /* SDLIconArchiveFile.m */; }; + 8915858705EA72AA41C1956BB876A8A1 /* SDLGPSData.m in Sources */ = {isa = PBXBuildFile; fileRef = A9E5A8AA97EA88C0C5010827AA38639E /* SDLGPSData.m */; }; + 8927C69D5DD6678A506F11A6E5004CA4 /* SDLGetVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = AFF9F053405AFE53208F5AF054964C4B /* SDLGetVehicleDataResponse.m */; }; + 89C7621F6C964ED4A80F6EDAEF5508C1 /* SDLLockScreenStatusManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 322553C18D16DC8359FEAAC9FC09B82A /* SDLLockScreenStatusManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 89F186632F6D84F43B5C85887FB6BF32 /* SDLDynamicMenuUpdateRunScore.m in Sources */ = {isa = PBXBuildFile; fileRef = B8C8AC93E9BA7751B05993A0779C952D /* SDLDynamicMenuUpdateRunScore.m */; }; + 8A14D6E4EE2461D75FAF5D8B9BEEDE4D /* SDLSendLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F06DFF88342148FB4F6EA0481D909CF /* SDLSendLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8A468CCE4EA458EED9B48499F95B50C9 /* SDLStreamingAudioManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F0D8AB40C82029C65CEECC77D7D8C1A /* SDLStreamingAudioManagerType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8A6BB66B60FA045F1595512D6C0499B1 /* SDLPowerModeQualificationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 678F1D8B5E1A5F63E7E494C394BAD3AA /* SDLPowerModeQualificationStatus.m */; }; + 8AC6D618D2B7B9D4C8336DCE6D260BD2 /* SDLCarWindowViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B0DCC93C381CC643F45864405E55E958 /* SDLCarWindowViewController.m */; }; + 8AD486A4ADCD0FF1DAF25B7345927219 /* SDLLogTargetAppleSystemLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A8807AD416E6BB85AFA2FF648C9ADFD /* SDLLogTargetAppleSystemLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8B60E0077AA57B200EE99D7969CE5725 /* SDLEncryptionLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 408658D7DB613F01047698ECAE093D90 /* SDLEncryptionLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8BE60469ACDDAE2C4D3125B9CC07C1C9 /* SDLChangeRegistrationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 84C5C4D0E7C8575BB285D8DD30E89F56 /* SDLChangeRegistrationResponse.m */; }; + 8C03788689B6BFF34AA7FDE462B5E83F /* SDLFuelRange.m in Sources */ = {isa = PBXBuildFile; fileRef = FCA1A0BB75E977F6C47C984A7E0B7329 /* SDLFuelRange.m */; }; + 8C340626051AFB39A7A54148ACAC7B83 /* SDLPCMAudioConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8E77F2592BA2AADA9952C6A050C4E2 /* SDLPCMAudioConverter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8C443CDAE7BE73B240DF7DF391CA1950 /* SDLTextFieldName.h in Headers */ = {isa = PBXBuildFile; fileRef = 76849B1E655537F0605C6BABA3DBCE8E /* SDLTextFieldName.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8CE0DA79C4FDC864AE221A3E92471547 /* SDLFocusableItemLocator.h in Headers */ = {isa = PBXBuildFile; fileRef = DEDA2F4C7E4A828FFB91244C19F756D0 /* SDLFocusableItemLocator.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8D061CCDAEEC859B14DA87086D16829C /* SDLGetSystemCapabilityResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF24E18157165E29DE67C839ABF0DF9 /* SDLGetSystemCapabilityResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8D61AE766EED51AC232160F87E00B811 /* SDLSequentialRPCRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F45A44BD6C12AA0EB5B0553231CD72F4 /* SDLSequentialRPCRequestOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8D6461D76103F1285DA80188D7295EE9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */; }; + 8D65C40824DFE60D525CED2C023A0F7A /* SDLLifecycleMobileHMIStateHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C902D9277607A16626B5FEB6FC12BE6 /* SDLLifecycleMobileHMIStateHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8D8A4A26C3D88C9A288A0BE158F5AECC /* SDLInteractionMode.h in Headers */ = {isa = PBXBuildFile; fileRef = E3FF43EE6114A0D361EE11A38FA91FB1 /* SDLInteractionMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8E80CC5191B3799B9446E341E7A1436F /* SDLRTPH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D75BCCCC055F72C4B46F1FF7ADE460C /* SDLRTPH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8E91351C40B6D32DD0C621B1E1F0ED58 /* SDLWindowCapability+ScreenManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = E6F7F96110B8644ABA5E6DE312BB0D7F /* SDLWindowCapability+ScreenManagerExtensions.m */; }; + 8EAC634A23B80D6CD82059550A5F6A95 /* SDLOnInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 682C1E866A0552DF161B4CA6BE8C02BD /* SDLOnInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8FB139DC468B629C24AE83DDCA703344 /* SDLObjectWithPriority.h in Headers */ = {isa = PBXBuildFile; fileRef = A83D74392A8FBE5A5BBCC7D29249B943 /* SDLObjectWithPriority.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 900DA1DA0A234DAD380424C769E4DEB4 /* SDLGetCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = C3F129DBFD0A6763197FE363BF2CE288 /* SDLGetCloudAppProperties.m */; }; + 90134E4A78B41A1419B50CDD40E9853B /* SDLScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E994AA0B434ED590CB3CEBE77F7F72F /* SDLScreenManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90410C380CABA5FB3BDE928DBFFE5296 /* SDLRadioState.h in Headers */ = {isa = PBXBuildFile; fileRef = 199A9F6B336A337B69923DC5C5B8543F /* SDLRadioState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90C56DC843F06A3447BBF31BD8347720 /* SDLButtonCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CA15BB34449EB60AC4245F6669B10C /* SDLButtonCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90C967F20ED1D42E7E4EF18EBCE60915 /* SDLDistanceUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F8B26301962DAB3A218E94BBF267589 /* SDLDistanceUnit.m */; }; + 90ECAE46CCBED46C36E8BB36C3A8B080 /* SDLLockScreenRootViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D37716D691664883B517AA8C5B0D4D48 /* SDLLockScreenRootViewController.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 911746B423568C0733997FC634BAEDFF /* SDLStreamingMediaConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 0050DA0BCF8282C74B54D6A62D359073 /* SDLStreamingMediaConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 91957F0442555A51D28E6AA37FBCC7A6 /* SDLVideoStreamingCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F45435EC8D3A8BC571D18035BCFCC2 /* SDLVideoStreamingCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 91F691863F419908423A46BD4884281D /* SDLBodyInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 994CECE8A7C71DE7FD91078E6AC4AF7F /* SDLBodyInformation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 92238BCEA4DFDFAA71A87191E4ECD566 /* SDLGetFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B104772AA6E58A9F090818DD41BA3D7 /* SDLGetFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9227D349F178FA9A6CB03E7C9D7371D7 /* SDLGetAppServiceDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 86B7CD8697FB29C377FF70D301A9BE51 /* SDLGetAppServiceDataResponse.m */; }; + 924C9E71DB2A227D30317E0D51B3E29A /* SDLTurnSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 57D658C85ECE3E69E79BB2FABFE5E487 /* SDLTurnSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 926C8094DD82B05E32B533990D9085E0 /* SDLRPCMessageType.h in Headers */ = {isa = PBXBuildFile; fileRef = C336638C51C89E3892AB1E786D8D97A6 /* SDLRPCMessageType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 927C947F095CE2F08573FEBABE2EF00A /* SDLTemplateConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = AA9CE864FB36C4F19622600C8C289B7C /* SDLTemplateConfiguration.m */; }; + 9284A3475A6E66F94C10D23DFD34B2E6 /* SDLClimateControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6235BA14F1F7044B98188F7FACCFE4C8 /* SDLClimateControlCapabilities.m */; }; + 92ADA69AC48C7B62950700FD91DE0207 /* SDLControlFramePayloadVideoStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = 25831F0759C377A291230FE1B42725AC /* SDLControlFramePayloadVideoStartService.m */; }; + 92C3ABE638A331C03AD29E1AAF919E66 /* SDLProtocolMessageAssembler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4594CC3FF1671BC10D8439D6DD794F5C /* SDLProtocolMessageAssembler.m */; }; + 93415208EBEF817C98ADBD5036CA1B2E /* SDLDeleteFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 69EB1D090E106984195E7886C58C910C /* SDLDeleteFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9388E820E8565F9117CDF46D2C2C107B /* SDLModuleInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3ADF6F4E6226B439753C2A759A9860E3 /* SDLModuleInfo.m */; }; + 93BD8B81C51CE40CB6A05AE7AE074C1A /* SDLSISData.h in Headers */ = {isa = PBXBuildFile; fileRef = B66ACED6C9FBD518D39C8CDB3849E983 /* SDLSISData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 93BD94B217E901E1EF481553053C6098 /* SDLHexUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = DBE7466B721D1E6A2BC31A2D5D2D8124 /* SDLHexUtility.m */; }; + 93DA28C985C4ACFB75AE57626D5206B9 /* SDLRPCNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 873FE0283FBF8E45FCF48C1242A364F2 /* SDLRPCNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 941FB36D28F8570C928318E6E2B285E6 /* SDLLockScreenStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = BDFE84853600B6F6F43B3F05550C2D91 /* SDLLockScreenStatus.m */; }; + 942414A05FF809E21FB3DB012A624EF4 /* TestSubscribeButtonObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A5AD3441FF3C7D1A42E2F592EC01E42 /* TestSubscribeButtonObserver.m */; }; + 945C1D3E2B5E534A1DCBB20F9207C238 /* SDLDeleteFileOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 10932B52AE70AF095B0197772101BF9E /* SDLDeleteFileOperation.m */; }; + 94CD4C275A0079DB1B44313AFB8C9157 /* SDLAppServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 57F1282A6F2ED03A5614C9C2B2DAAF2D /* SDLAppServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 94F5B9443E54B16196DA24D8D5BDFE20 /* SDLPredefinedWindows.h in Headers */ = {isa = PBXBuildFile; fileRef = FB3EB42F4E00D78C3E9D2EAB0CD56A65 /* SDLPredefinedWindows.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9581012BA1BF244C1798CC9F0F8FD912 /* SDLIgnitionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 76AA2E78DDBD9125228F85316E09095F /* SDLIgnitionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9585BEED50A4D422F43BF6EDAE401D14 /* SDLProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = C93964422ECEFB35C0A15E1AC214E587 /* SDLProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 95B5F07BEBB763878CE72E1B28008DA4 /* SDLStateMachine.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D74AD8B5D8CFF4297D85C83D4BAD091 /* SDLStateMachine.m */; }; + 95D89B876490D16D030AA0D34B6A405C /* SDLImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B5DB19512329465920F68B50C253776 /* SDLImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9603A9FB3A51776C2FAB23573513D478 /* SDLSetCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = B43FBF384A4067786E679B690EA2BDCE /* SDLSetCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 962B115D078E230C22DA4E91AA804C82 /* SDLLogFileModuleMap.h in Headers */ = {isa = PBXBuildFile; fileRef = B051F7FF13D4892208EA8EDC154E67C2 /* SDLLogFileModuleMap.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 962D1254984FEEA395E1C5D203BAE7AE /* SDLListFilesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 23D8613239E013C85A55566B014E652F /* SDLListFilesOperation.m */; }; + 966C2B23020D23A8D78F9953BF04589D /* SDLKeyboardProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A695B3A3F27221B6CBE669925E43199 /* SDLKeyboardProperties.m */; }; + 968CCBFF41DD6AF7457D8CE38CB12715 /* SDLRPCRequestNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = C2325615A6C0BEAE35B68E675087D313 /* SDLRPCRequestNotification.m */; }; + 96A470701A4EB6AB6BF58852B32BC224 /* SDLAppServicesCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 821880E4A2BC5BEF5F42B7CCFF64AB9D /* SDLAppServicesCapabilities.m */; }; + 96D889E335AC9CFF1639A13B0BF18736 /* NSMutableArray+Safe.m in Sources */ = {isa = PBXBuildFile; fileRef = 72A24826CB06B3C74BFF1FAC64D33A17 /* NSMutableArray+Safe.m */; }; + 96E61C55BA1EECD3A1E4775D8B3FD9B0 /* SDLSystemCapabilityType.m in Sources */ = {isa = PBXBuildFile; fileRef = AB9A647494B575CFA5ADA8C3FEC415DF /* SDLSystemCapabilityType.m */; }; + 96EED05BD75DD6497FF959D93C46E53C /* SDLOnSystemCapabilityUpdated.h in Headers */ = {isa = PBXBuildFile; fileRef = 2845FF7035CF7F607706E501DB44DE7E /* SDLOnSystemCapabilityUpdated.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 974F61EC8063CE5073BACEC8FB26D73C /* SDLAddCommandResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C42BD5083909F2F176B3762128DD9B06 /* SDLAddCommandResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 97FBF30CCEA2FD94D7297C91E5D8DE21 /* SDLAudioStreamingIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 808FA370A600BD6F4DF9382F215445CF /* SDLAudioStreamingIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9823B5569DCFBA54362B5478B81102B5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */; }; + 98A982A0D23CBE76B4B9481EBC5B7DCC /* SDLLifecycleConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 21FF3C3DE15BAD7345BC1A9C2B469984 /* SDLLifecycleConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 98D8C81B899984A0E7968B41F0F0031D /* SDLArtwork.m in Sources */ = {isa = PBXBuildFile; fileRef = C3EBAD2DFAF1E748D9CE7A71A8F7ADD2 /* SDLArtwork.m */; }; + 9907162460264A1E3245E22EAE049630 /* SDLNavigationServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = 50FA0F82B0F0FD360E29F2AC0D2F05D1 /* SDLNavigationServiceManifest.m */; }; + 994A5BCDA5C0EC5C5712514EBCFE024D /* SDLControlFramePayloadConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AB0EFA70338ECA876CAE278CBCEF17D /* SDLControlFramePayloadConstants.m */; }; + 999FE86F3A5166111487B9F4C4519044 /* SDLWeatherData.m in Sources */ = {isa = PBXBuildFile; fileRef = 69C08735FF330FCAC39AB5054B9E06AA /* SDLWeatherData.m */; }; + 9A3BC4EF0F8485DA14F489A5336420B4 /* SDLLogFileModule.m in Sources */ = {isa = PBXBuildFile; fileRef = C3BEF3FC0B61392A43041463481D99DC /* SDLLogFileModule.m */; }; + 9A4099CB0E977922DCD215920D51E6EF /* SDLVehicleDataNotificationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 544D38C68F8828FD1E9856024D36B44D /* SDLVehicleDataNotificationStatus.m */; }; + 9A48AC603DDEF5B24BD4076C2290AFC2 /* SDLControlFramePayloadVideoStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = CE545916C7D8D475FB552FAAE7AD0286 /* SDLControlFramePayloadVideoStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9AC6194F046D6E9C2F0E69C0D8C0AFE3 /* SDLOnSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 86206B1B96CF24D8B99B4EE97C44B185 /* SDLOnSyncPData.m */; }; + 9AFEB611162042E0D236BF151AE0A572 /* SDLPerformInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 95FF4C52E66589C119C22DF3909390AC /* SDLPerformInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B53BF4496D9FBFEB94AC0F5A27DD92F /* EAAccessory+SDLProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = 17D87C03746D4C019B47395971B49753 /* EAAccessory+SDLProtocols.m */; }; + 9BFCD1634ABB1FFE13CFD4447FCE9CB7 /* SDLConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FA1E34ACCBDEF2099EC4469F2405BBB /* SDLConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9C447D1F8CC18ED9C81322538C5D8745 /* SDLRadioState.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FFAB5BB716F6C328E6A31CC62B4B11D /* SDLRadioState.m */; }; + 9C5BB601A65D77A59756F8DA0CA60A4C /* SDLV2ProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = B96A1767D28449410C3C9A92255D7FA9 /* SDLV2ProtocolMessage.m */; }; + 9CA1C5D540B6F8A9D15AE08E08F282A8 /* SDLTPMS.m in Sources */ = {isa = PBXBuildFile; fileRef = 842712B0CDF8A50C05707074C6B3E1BE /* SDLTPMS.m */; }; + 9CB6CCA60A7BB877BEA0851591D86AB9 /* SDLKeypressMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 157D461716A9EC90AA0014DEAF19F1BF /* SDLKeypressMode.m */; }; + 9CC23329ACF6AC45A3CD5927CBCCDB70 /* SDLMaintenanceModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 9356A9B7DF203B1E599FF67CDB2AB2F4 /* SDLMaintenanceModeStatus.m */; }; + 9D4F3D442A1E6B6D5616F9E28EEBCBCF /* SDLVehicleDataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A703348831CBF1811100C05D2D7FC44 /* SDLVehicleDataType.m */; }; + 9D59CA4C3A29F154C87BF4F144F0304F /* SDLSeatControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E948ADD47AA0D93F041A0773607D8D6 /* SDLSeatControlCapabilities.m */; }; + 9DA7510D35653DAB61574EAF7CD41A60 /* bson_object.c in Sources */ = {isa = PBXBuildFile; fileRef = 956785ADB6C5C07C0C429DA47DA59E4E /* bson_object.c */; }; + 9E3DC35284B0EF19F839FF0F7045F243 /* SDLWindowCapability+ScreenManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F7A94FC00388D92F20C90B87BE945C /* SDLWindowCapability+ScreenManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9E6083DC34FA4DC0770B8119699D96A4 /* SDLVentilationMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 372472FCDD67DFC4CADCCC7B18520B62 /* SDLVentilationMode.m */; }; + 9EAA1FB46BE08D3EF32659A6DC6924E3 /* SDLSecurityType.h in Headers */ = {isa = PBXBuildFile; fileRef = 1580E808E8B8B029807BCC9320D098D6 /* SDLSecurityType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9EADD154CDB96A0D1B3E6E5382EC6E74 /* SDLDeleteWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 809D3FC9668359BFD1AD77E50506EFA2 /* SDLDeleteWindow.m */; }; + 9EB265F8BCAA7305BB4F1A09C414F989 /* SDLNavigationJunction.m in Sources */ = {isa = PBXBuildFile; fileRef = 60E560ED9A603C1EE72D1DC626FC9DA8 /* SDLNavigationJunction.m */; }; + 9F2F8E54F7ABE7EB152CF5017ED25735 /* SDLDeviceLevelStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E839A485728E494163C610E5F436EA9 /* SDLDeviceLevelStatus.m */; }; + 9F30B639E559F0B7DD77042DE4A3304E /* SDLVoiceCommandManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B476612D209040FF1C5E1D9D7D7DC068 /* SDLVoiceCommandManager.m */; }; + 9F3B8143751BFE86CD8EAA6F4AE05B8C /* SDLStartTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E2E8F901CA5F0F91FB51345F05D3027 /* SDLStartTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F921520417BF771C9E3891A5EF5430D /* SDLECallInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = F0851AE5D79F77344448BCED157FDBA1 /* SDLECallInfo.m */; }; + 9FA55423485F9631453E7AB46E9C4089 /* SDLButtonName.m in Sources */ = {isa = PBXBuildFile; fileRef = AD2F8C7E3E2CA2E54A878E1804C6819B /* SDLButtonName.m */; }; + 9FF51D0DFFAEE08A3ECA62113D394DB1 /* SDLAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 545945C37CA202B7C89B0BDB939DF95C /* SDLAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A00752000D6758411D62C24B0428BC3F /* SDLStreamingMediaManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C4251A6C0C3D88AFE2E87AE0572B7B32 /* SDLStreamingMediaManager.m */; }; + A07C3309D375FBFFB0B9076DE461F26C /* SDLMyKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 98FDC0A54C018DFA5E057249D1EDF737 /* SDLMyKey.m */; }; + A089C16C74635B52EBC65729AF6EBBAC /* SDLListFilesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 633E599F3936F7344FB0DBA1DB5127C1 /* SDLListFilesResponse.m */; }; + A13DA9493AD1940DF8E4F7C2929B710E /* SDLLightControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BF96D4C2DA598534A4D8326D5961403 /* SDLLightControlCapabilities.m */; }; + A14201E05A5F23717A4AF5E21AC4404A /* SDLStaticIconName.h in Headers */ = {isa = PBXBuildFile; fileRef = 16E0FE4610CAA939B208269D597C2BBF /* SDLStaticIconName.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A16DD1665116466714C5965E5600EB3B /* SDLMassageZone.h in Headers */ = {isa = PBXBuildFile; fileRef = C9703269E7ADB6FFB0BAC46F741BF3E1 /* SDLMassageZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1AF3C95FF46B13F93DA0EDFF0C63FC0 /* SDLLockScreenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 192A53884A3A908C146B28777940F5E7 /* SDLLockScreenManager.m */; }; + A1CB2DBE53FB15D96D2AEF47E2AA0B8F /* SDLTextAlignment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09287D9F2DCDB16BF6E036447C615805 /* SDLTextAlignment.m */; }; + A212124738A6FDA7630C16154422B70D /* SDLUnregisterAppInterfaceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 18D0C94E081C5652700A6657D0150BDA /* SDLUnregisterAppInterfaceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A22ECF3CB1A288D78157AC42FCBB68C3 /* SDLMediaServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 352942891F72F2773BF5C6130A6AF9B9 /* SDLMediaServiceData.m */; }; + A231ECE70CC02B9F1B199A860B67E5CA /* SDLMediaType.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E982E3129EE1BF2B88BE3ECFD70CFE7 /* SDLMediaType.m */; }; + A239E346274909BDC903979FD4B4C6FA /* SDLSpeechCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 0308C13EE2FCDF4DBE02F2C11AFBFC1A /* SDLSpeechCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A242E5E367F30640A5FFC65D998FCE23 /* SDLPhoneCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = A8D2591CD0E614AB45EEE6E819BC5715 /* SDLPhoneCapability.m */; }; + A28A71C756E62973A2AA45EFC9282570 /* SDLGlobals.m in Sources */ = {isa = PBXBuildFile; fileRef = 43BDEBA0AFE8CD88C63344AA13ECFD35 /* SDLGlobals.m */; }; + A2A9921EB8164C6246F43B98C428DAFB /* SDLPutFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 731A9565B4A85AFC0CCB16E396BCCA40 /* SDLPutFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A2E76D7B29F39B1C4109492C9D134EFD /* SDLHybridAppPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = D831A281EF816381B291008A9D4FAA9E /* SDLHybridAppPreference.m */; }; + A343D2D2F0859C8234D815B9A4E21190 /* SDLPerformAppServiceInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 66A4B1A486BE8F5F2523D7B998E03397 /* SDLPerformAppServiceInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A3609858C4CC85B82B2DB5EE1F16DCB8 /* SDLMenuParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C86D4CBB2B58B5DB610CFA8980934F5 /* SDLMenuParams.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A399E20CA220D299A8DF309E86426D1A /* SDLCreateWindowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 944E4D0EB351D4FF821AC8C6E8A6599F /* SDLCreateWindowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A3D6E5343C5EBA76EB0F377AFA744A12 /* SDLSoftButtonObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 388D88A1DB6D4B1CECD8ADE296D05335 /* SDLSoftButtonObject.m */; }; + A3E201F3B3EB3232CE70F87323B1AE4A /* SDLCarModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = C2465E4A570C1A14AA2E12DA0AE6B8C7 /* SDLCarModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A44C2604ED15FF19CA61B1C3536DED7C /* SDLDeleteWindowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 51B66260E43F75F7BD5D210137A3720C /* SDLDeleteWindowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A47AA1D939A83E24760E8911CD07437E /* SDLLocationCoordinate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ACC18BF8B3AA6A798755C8C4A61E644 /* SDLLocationCoordinate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A4A2DF6197C7023E874BE6BF12317FE5 /* SDLDiagnosticMessageResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B5504C8F1E24113D498111742CF96E /* SDLDiagnosticMessageResponse.m */; }; + A502C2D1CF7CD300D4DD57DAFB83957E /* SDLGetVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = F325EE523B44B2D99BDB8360522C5DAB /* SDLGetVehicleData.m */; }; + A55F2D47BEE40D7772843861B42840DC /* SDLButtonPress.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B426EF21719FFCBFD4CC285CE5B8E31 /* SDLButtonPress.m */; }; + A565805CB816BE9F3B0D0E09DC310653 /* SDLRPCMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = FC04BA45906F2ACFB5C2465C9AB915A3 /* SDLRPCMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A5BF758FF15B8A1CA545BCABF3ED58F9 /* SDLAmbientLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FD49396D5358F998A4629ED1C829892 /* SDLAmbientLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A5D2E31993A8DFCCE1145E7CEF4A1A55 /* SDLDialNumberResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 360BEE262B398C4DAF3FB595771EFA2D /* SDLDialNumberResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A61C1EA4AAC054DCFD62C8E3E430B5C2 /* SDLKeyboardProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EC3C54E0392906F04997BCF759C440D /* SDLKeyboardProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A64F8AC8AB4B30F78B3224EB3DEA4F08 /* SDLPermissionItem.h in Headers */ = {isa = PBXBuildFile; fileRef = CC4534AF33C9B2498C5DB1A3A5B390C3 /* SDLPermissionItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A6A0C5D8FC9C6B9F16298EDAF864E40F /* SDLHMILevel.m in Sources */ = {isa = PBXBuildFile; fileRef = F833AA2E2D10941E6E078E46A5A395A5 /* SDLHMILevel.m */; }; + A6A4551713557B3612CB818CA36D2180 /* SDLMenuConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A6A3F4A1DAD219F117FF921A98B3E55B /* SDLMenuConfiguration.m */; }; + A6DEEB95AC4B9E08CFB4DB6709EF54D1 /* SDLWeatherData.h in Headers */ = {isa = PBXBuildFile; fileRef = C185C026B8EEB00D5EDD482420CEB1C7 /* SDLWeatherData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A71EA2A436D225D95F38B7388412A08A /* SDLImageField+ScreenManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0656901E080D59E2E26E8D8989D2EED3 /* SDLImageField+ScreenManagerExtensions.m */; }; + A72713FA7E24B3B7BD7207DCE5FD4446 /* SDLSubscribeButtonObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = D1451982C674F8C57D7939A9DC79695B /* SDLSubscribeButtonObserver.m */; }; + A72A34CB87D792D08B1E2FB164AB3947 /* SDLComponentVolumeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E97BBBE0B504665860ED1CAA8E59FE8 /* SDLComponentVolumeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A73902712800A16C4859D7ADAF4C45CB /* SDLVrHelpItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 27CD966D3D85688EC1467BD37B74D1E0 /* SDLVrHelpItem.m */; }; + A752A770F02A5D857134CE5F0A8047ED /* SDLSupportedSeat.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DE402844A0376A05C991CFC47EF599E /* SDLSupportedSeat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A75998CF4F504D34746CEDA36C622C0E /* SDLAudioType.m in Sources */ = {isa = PBXBuildFile; fileRef = AB7CED9964DD3F087B0208B33F08C202 /* SDLAudioType.m */; }; + A7659903549585DFAFEABD6E439FE12F /* SDLSeatControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 59D419F67DD1ED5642ED9D9BBE63D388 /* SDLSeatControlData.m */; }; + A7F8FAB0C96FD69FA1FC28ED30B2ECBB /* SDLReadDID.m in Sources */ = {isa = PBXBuildFile; fileRef = 2947E91CDA3B132E494738EF13BCB952 /* SDLReadDID.m */; }; + A827485FDCFA229B69E2EC034F53E8C0 /* SDLRadioControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 35CB1DE90D5986B9423B7DFF67E9C2CB /* SDLRadioControlCapabilities.m */; }; + A8B394A4B621EDC8A9808654867417AA /* SDLMassageCushion.h in Headers */ = {isa = PBXBuildFile; fileRef = B41E3BF75DB009256653DF32F1496FE7 /* SDLMassageCushion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A8C832F5D8C9FFBC15B909B281A13441 /* SDLLocationCoordinate.m in Sources */ = {isa = PBXBuildFile; fileRef = D7B42911B767CE7D2DB7CD903DA4BA90 /* SDLLocationCoordinate.m */; }; + A8F40580F01A389445A4CB766D5FAEE2 /* SDLRadioControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = E7F0A2E1BCB7060346CDE26635657E5B /* SDLRadioControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A92EB02A106C15DC9A3AE3BC10A6ADFF /* SDLPutFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 63D098D74619FDADF2DBEDAB8939A5C8 /* SDLPutFileResponse.m */; }; + A98D7D891EBE12AE00ABB86C93553536 /* SDLEndAudioPassThruResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E148CD4DE2F892CDEA9A3C1BCCD3DE /* SDLEndAudioPassThruResponse.m */; }; + A9D3D0CE7B2A739C7873A2FFE9AF4E46 /* SDLAppHMIType.h in Headers */ = {isa = PBXBuildFile; fileRef = 76914E4FB138C6C29615A345C805BB4E /* SDLAppHMIType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA1D9E2BA2787A6184069465AC5831FA /* SDLAudioType.h in Headers */ = {isa = PBXBuildFile; fileRef = F66B5FBBDDB4463C3B333E131A0693E0 /* SDLAudioType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA7A1B60EBD72027EBDDCED773EEB144 /* SDLUnpublishAppService.h in Headers */ = {isa = PBXBuildFile; fileRef = CA63DD963834C98C595F586200D303A2 /* SDLUnpublishAppService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAD614157E529CD67FB103448F2FED1A /* SDLPublishAppService.h in Headers */ = {isa = PBXBuildFile; fileRef = DD54737AADEC12705D5ED30EB6CA1A1B /* SDLPublishAppService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AB15DC9878A7480D662E8E7F09FE83F8 /* SDLPresentKeyboardOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 813217C2A949443C3D0F3B06A2A3F439 /* SDLPresentKeyboardOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AB470733A71B7A4336A54B799BB903D7 /* SDLClimateControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E1639EE1075414A5D5EA690D7F79B69 /* SDLClimateControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AB52007367A5C4AB6820326CBAEF5F65 /* SDLGetAppServiceDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B0D6188E04884E87F16C5D09E4F25B7A /* SDLGetAppServiceDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ABB509C9A5348FF75C8D7AB737896B76 /* SDLRPCParameterNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 450AA0AE78066B15DEBE4151BFA7A1DD /* SDLRPCParameterNames.h */; settings = {ATTRIBUTES = (Project, ); }; }; + ABEFEBA9C5DF91EC41F22DC9994A35FB /* SDLComponentVolumeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 813A147E7FDCF70030F5AEC4B266E506 /* SDLComponentVolumeStatus.m */; }; + AC2DFB15873E4FCDEC002550ECDB8EB5 /* SDLLockScreenConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A75D986DAB949A4EA63D5DDFC11ECAC /* SDLLockScreenConfiguration.m */; }; + AC445B1933708F21D8AF1D6AF2FB074A /* SDLOnCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = C2FA6304D4FBBE0B4EAE346B56077504 /* SDLOnCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC4E1A3C06C91EA16765C11A4F70A766 /* SDLOnSystemCapabilityUpdated.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F83E2FDBC27F6BEBC1DB1957CD550D9 /* SDLOnSystemCapabilityUpdated.m */; }; + ACC70E74E729688F72E6AD7FD4B43460 /* SDLSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 6657481C1066F2BFD64C601F0DE30820 /* SDLSlider.m */; }; + ACFF233B8E3A348018FF3E76F0D95FF4 /* SDLStationIDNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 856D3BA7D8F100C4E870645839EC4088 /* SDLStationIDNumber.m */; }; + AD6F7731154088DF04ABF7B114C3E3D5 /* SDLHMISettingsControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BC571015C3D3C1EF66114AC5050FB2C /* SDLHMISettingsControlCapabilities.m */; }; + AD7801AB5E6D5F623B5063C6670D38C0 /* SDLVehicleDataActiveStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 182F56830437E660474472022B3B6A98 /* SDLVehicleDataActiveStatus.m */; }; + AE475D883F32EB2142B5EA25F969B6C1 /* SDLChoiceSetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E72CA0DD191E63F3A67CEBEC9625C1F5 /* SDLChoiceSetManager.m */; }; + AE9BD968DDEABA9836A36574FD0D8833 /* SDLManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 2ACE82786CE0ED6B2A519263CE025F18 /* SDLManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AEB12E59859E89B338584DD02E72BBDD /* SDLImageField+ScreenManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 506F62C867B2AA4ED9C51CA1DB62873F /* SDLImageField+ScreenManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AF04041B21448126565DE1FF073E50F3 /* SDLHMISettingsControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 57E4834E2857ECB273998AC9B9207D2E /* SDLHMISettingsControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AF46DF04E283DA2C025B970031AFCEF5 /* SDLLogManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E5657CE38BB08F9563C92FE224B79FB1 /* SDLLogManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFA866B8EAF18418E65247BAE7E556E7 /* SDLBodyInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E2C9383A7DCAF213C875854C59E3043 /* SDLBodyInformation.m */; }; + AFDCD08E8A842643D3F79AA1A1F57C96 /* SDLProtocolMessageDisassembler.m in Sources */ = {isa = PBXBuildFile; fileRef = 438BFB4FB40C6B387CF8D49072456C32 /* SDLProtocolMessageDisassembler.m */; }; + B026E62AE7AA73A7E308CEA35706423D /* SDLDisplayCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A43468737969CFBC34B9E215CE0D886 /* SDLDisplayCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B0A8D6493BC79BDED329310810FC6B7C /* SDLEncryptionConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = CB94E5F60A8212C2F399605867F18BD7 /* SDLEncryptionConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B0FDBE349EAE1AB26C3EDCDECBFBDBFB /* SDLDeliveryMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F7B026A5E29DCF1060FD41C895EB056 /* SDLDeliveryMode.m */; }; + B15FEA9D1CB41910C878C87E66276711 /* SDLOnEncodedSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = E72FB018DC8626B10CEA4186C29DEC69 /* SDLOnEncodedSyncPData.m */; }; + B1D805EE1F0226E6C240401C8961BC06 /* SDLPrerecordedSpeech.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A18641DB12A7690CFBB24321A955BBC /* SDLPrerecordedSpeech.m */; }; + B28AD4EB609E426CFA05E5537497ECFF /* SDLParameterPermissions.m in Sources */ = {isa = PBXBuildFile; fileRef = F91D92B21B5BD8E0E4A09822AE93C6CC /* SDLParameterPermissions.m */; }; + B2E0C4DA0C2AEC5B2A7B6ACBF4220E09 /* SDLVideoStreamingCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = FA7A7DA3C20C1725AD9388188E89250F /* SDLVideoStreamingCodec.m */; }; + B31FFC503045F9D0FD85A82167BB51EB /* SDLBackgroundTaskManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 121EABB22D7495B5EBE9D72C0E2F9D2B /* SDLBackgroundTaskManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B3C93590B5B3FC4891ECC8B30EFEE2D0 /* SDLLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BDE7DCAD2B3CFA25E38ADF8F9B7C9ED /* SDLLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B3F88965CBEF8C0FD322AE9E1CC5BDE1 /* SmartDeviceLink-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A9E9D261C1048E5D099A24A970F9FC3 /* SmartDeviceLink-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B418427429C057ED4BEDEEBC3B54E972 /* SDLRemoteControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E44B29B11FFF564D52CADA80FF7E157 /* SDLRemoteControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B49B1F5D35ACBF61C28026831A527A2F /* SDLPublishAppService.m in Sources */ = {isa = PBXBuildFile; fileRef = 76424AB29A53E628F57743FDF2F79FEF /* SDLPublishAppService.m */; }; + B49E4BAB49D46EA13D6E48EAA4CDF8B9 /* SDLEncryptionConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DE719023045A4F8E7FB620C98982C60 /* SDLEncryptionConfiguration.m */; }; + B4A8BF4B8F942574D50ECFF3AE010660 /* SDLPermissionItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C3239BD5861D539F39785429EBE0EFE /* SDLPermissionItem.m */; }; + B59731E62C036C36E1BF3B02EC02732C /* SDLPermissionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AA15811C6C82B48B1CE0CF72D93BB8E /* SDLPermissionStatus.m */; }; + B5B97B24E95245BBFA545A415B906F21 /* SDLFocusableItemLocatorType.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E3E1DD21F0F75C6E6C6BB96CE53E34F /* SDLFocusableItemLocatorType.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B646EC4DD347FE666670BB8E8FABA6B2 /* SDLEndAudioPassThruResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FE66F7EA43B7C8883B49BF7021DBB96 /* SDLEndAudioPassThruResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B67E53A87562D448A2B0B22F350200C9 /* SDLDeleteChoicesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = DE0871AD02E119A57E3097FB1311D3C1 /* SDLDeleteChoicesOperation.m */; }; + B6B9DB34FF134B3C30ABBA52DC9F9E0C /* SDLLockScreenStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = F27B5920FDC7FD3CE439214E9756A74E /* SDLLockScreenStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6DEB8B6987E3DC830711BB697BB2EA5 /* SDLMenuLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F44E48D23E1A8174BD093395CF63563 /* SDLMenuLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6F038FB2FD3D2A6122C859B0FD77F6C /* SDLServiceUpdateReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A942A35064A0FA53F092510D10B5198 /* SDLServiceUpdateReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B70DEE703AEA1B85CDE2C396ECAAF1FA /* SDLUploadFileOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = EBA42054F2C0D64D68F0AAFBD937E5CC /* SDLUploadFileOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B7117F6EF2052C5043114C3520AB787F /* SDLProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E1869CDF2207B055D23A497C6184140 /* SDLProtocolHeader.m */; }; + B72434B441A18026A9032BFCDB7C3C1C /* SDLAppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 824499C1074ACBA17C39242C022396D4 /* SDLAppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B743DF2EB989526A9B7CA860793CC0EC /* SDLSendHapticDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = BA836CEA6A1C9872BEEDA51C34FBD2BE /* SDLSendHapticDataResponse.m */; }; + B7630BA13320336380743669B1FD03D1 /* SDLRPCFunctionNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 9502CA77DD202D38FE595ACBF6558DDD /* SDLRPCFunctionNames.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B7666AC64BE2566C73733D5E4218946D /* SDLAppServiceRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 09CB1EF14BDD7FF6541D42C4AA269392 /* SDLAppServiceRecord.m */; }; + B8425BED5CAC2291C0479640AFAB2A22 /* SDLWarningLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 22F32629EED3C3C993F19F29509552C5 /* SDLWarningLightStatus.m */; }; + B85EAD39E2090312474E012A26CC234A /* SDLV1ProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 2761563B654943CE2BDBA7FAEF303886 /* SDLV1ProtocolHeader.m */; }; + B870F919C9CB4A6A1BB503EE28D958B0 /* SDLMutableDataQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 695B8ED2FCC305054E59AA1279EB261B /* SDLMutableDataQueue.m */; }; + B894F5782F2E7E7BC34056A80B601A6E /* SDLOnHashChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 01576AC9DF9C06D0764239C2D918DB93 /* SDLOnHashChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B8A5382FC2441B722AD2C82A370DA111 /* SDLLockScreenPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A53E97D25D99A5593B52E88C69877A8 /* SDLLockScreenPresenter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B8AD1E30EF9ABF9E7891A547006E7A70 /* bson_util.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 82FF30811604FAB65F49A60CF6868F75 /* bson_util.h */; }; + B8BDB8F2E45BF5101B5E5B926C88A2C5 /* SDLGlobalProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = 21F2AED434573DC685BDADF20194DD4E /* SDLGlobalProperty.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B8C8ACFC662321DA0803C3377DE8A738 /* SDLOnPermissionsChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 36421268915268D123352BDEDA5AC948 /* SDLOnPermissionsChange.m */; }; + B8E6DEEB54803908A1463045917D1DAA /* SDLOnAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 08FD56690946400B66FA81A3473A5CD0 /* SDLOnAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B90F0AC037A0C668401856BFB79D61C1 /* SDLTextFieldName.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BBEC9CD4C3851AF20E177DC499AFC7F /* SDLTextFieldName.m */; }; + B970D6C4028085CF32C4082F353EA558 /* SDLCreateWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = FD89634476BF88A8D8E8D716A8A8CD42 /* SDLCreateWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA0BFE367BFC3B4A7D3E2B5879C7F7B9 /* SDLSetGlobalProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F735242ADEB26A3EFED063A728FBFD17 /* SDLSetGlobalProperties.m */; }; + BA2FDF7FB9614291894702D810997E58 /* SDLServiceUpdateReason.m in Sources */ = {isa = PBXBuildFile; fileRef = 38E58E6ACD990EA45CAE7C8353A814AC /* SDLServiceUpdateReason.m */; }; + BB4E4601D7F85091B639CD980A0BC885 /* SDLVehicleDataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 84439E65ABFB04398E7E8680FA2A7755 /* SDLVehicleDataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BBC5285BF2004834D5B7AD500C948F15 /* SDLVideoStreamingCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = A80BF767FDD68AB1636D37FBA5E4E345 /* SDLVideoStreamingCodec.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BBFEBA37199DB7C2A7C50B66D41C769D /* SDLNotificationDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E2A334FC98479B6D81A09D35E4975DDA /* SDLNotificationDispatcher.m */; }; + BC24B3B714C06A50BA2C14B52A6F7E83 /* SDLLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 28C885A6D2F4227B45D870A38421B3A2 /* SDLLightStatus.m */; }; + BC45A3363C22BFDA59826F07C50A4886 /* SDLSubscribeWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F9EFD1A81F30902BAA0BFD14E95906A /* SDLSubscribeWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC69322845C93C436E64BCC888FC2C87 /* SDLRequestType.h in Headers */ = {isa = PBXBuildFile; fileRef = F1A2C4D06CB5BAF62E5ED897C126990F /* SDLRequestType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC9550536464FA9F75A2A288BE8822DD /* SDLIAPSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 909B5FA1FF8FFF76425CED5E51AF212F /* SDLIAPSession.m */; }; + BCCE283A6F1B81EEE8ED8D78E1AFB93C /* SDLDeleteCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = EE640E82A995C6B4B7358301B1821AB5 /* SDLDeleteCommand.m */; }; + BD0935CAB7454504F8A936DC7D9E8DBF /* SDLEndAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = AE2BAC066A795F9A2BC704A131DD796B /* SDLEndAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BD6BAA58C6AF239EEE661ED9DA99920A /* SDLV2ProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = BBD4EDFBF8EE19B3FBA0F3448A7B54B1 /* SDLV2ProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BD93F389EA6C6D84A7CE4D6C4F4D49C3 /* SDLLanguage.m in Sources */ = {isa = PBXBuildFile; fileRef = 05EF4CC4570D8BE1DE3ECC0889A81ED7 /* SDLLanguage.m */; }; + BDC2CD1A1E888B02795ECECDAC742755 /* SDLOnLanguageChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 057374D02ED1566D4CB631DFB6705D55 /* SDLOnLanguageChange.m */; }; + BDC97FB8252F310E34C402C05D46F82F /* SDLFileWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FDDB1063EBEFDA59DA01CE662F32CE8 /* SDLFileWrapper.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BEB387A0851CE78DA18EA4C1591A8D09 /* SDLPermissionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C083E636854B0B9353C528C02DD0119 /* SDLPermissionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF0DD23904A939E421F56AEA262F63F7 /* SDLWeatherServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = D22DDB6D7F55F6ED4E2E018BE51EB987 /* SDLWeatherServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF50E3A299C323B4D578ED1A35281FB8 /* SDLSyncMsgVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = ECE02258B281F599E9F848CF9A440B6D /* SDLSyncMsgVersion.m */; }; + BF742D0DA92B99A103C7C83E1B811C38 /* SDLOnAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = DD3CC83A67C250A8A7230DECEE87840D /* SDLOnAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BFEE044D016834F2B5E66E50008B1229 /* SDLChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = B9216714A4B6D6F70DA8E53B3F9320CA /* SDLChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C014B97737D79AA488368329DD9B9BE8 /* SDLAsynchronousRPCOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 646F19BE927B0171643AFCA74D750304 /* SDLAsynchronousRPCOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C0480F3D520ED0985E5BD3D021629BBC /* SDLFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B8C8887A387D235F538311D49C4D060 /* SDLFileManager.m */; }; + C08E8703CB3E2A985D9AF689F03A1E3A /* SDLTCPTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 74883F69A6EF23F8FE9794EE3CEE21EA /* SDLTCPTransport.m */; }; + C09A7EF3511E4D1DAA83BE9F2C58589F /* SDLLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B64A1F3DB42D6EF48AA200C070D9974C /* SDLLifecycleManager.m */; }; + C09F0A16E73306D9023FB1ABA362D8B1 /* SDLECallInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 3416AED17893B065F631CBB7B0714BAC /* SDLECallInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C141AA20F7F4A1CE0ABE4146D9DF4469 /* SDLUnsubscribeVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = BF23B355A2ED03E01AACD1364CDE9011 /* SDLUnsubscribeVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C1A2ACDFECBB62131B3E5E6278E5E8B0 /* SDLSoftButtonManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 74E30D8D3F070C400D8A5A719C652BE3 /* SDLSoftButtonManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C1D98456C85367AA570A828DC98EFD8A /* SDLSubscribeWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = 60C9980F7C06B067A4739AEF6364E6BB /* SDLSubscribeWayPoints.m */; }; + C2AF1FA0B237ECE3973A4D955B834D62 /* SDLLogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0EE4570CF0887B91A7C8D2E2E0414C /* SDLLogMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2E03A3D6572E22C87D81A604D47992F /* SDLMassageZone.m in Sources */ = {isa = PBXBuildFile; fileRef = D9FCEE47A681128EBFB0EFED02719BE8 /* SDLMassageZone.m */; }; + C2F4478D9CA02EA33BE8A7B5AF5BA595 /* SDLMediaServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = 08C7E71E744D35BDA4283D2972693EA5 /* SDLMediaServiceManifest.m */; }; + C2F71EF0CA12DAA83E5D5FD76B4C9AE7 /* SDLResult.m in Sources */ = {isa = PBXBuildFile; fileRef = EC49183B2BDBFC8AF747ABD142598757 /* SDLResult.m */; }; + C37E0A7500862346CC0188EE615B9E52 /* SDLV1ProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = A457A96BC13A557BA1810EA50BC942AC /* SDLV1ProtocolMessage.m */; }; + C3897010E229BC2F8FAAA59CA978C9C3 /* SDLSubscribeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D476F4C1BDF441FDB174D26DB9437AD3 /* SDLSubscribeButton.m */; }; + C3A36F166899F2091ACC48FBC1F71D97 /* SDLNavigationCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 17471B77EFB1B0CCB584D1BD7A3C1953 /* SDLNavigationCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C3E54CEBB8FB78A7494CE9DFF3058933 /* SDLDeviceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 382E3AEEA682773DFC104C615B3B6240 /* SDLDeviceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C406A5BDF00EF83E462C9746291C2A95 /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DC1AB877E125DDBE42B80EF6A00A5F98 /* SDLGetInteriorVehicleDataConsentResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C40C833F9ADA24E8D735707B4D7EBF1C /* SDLSpeakResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EE602770509983D76D37ABED9C3EB57 /* SDLSpeakResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C4720ECDF1EB5D70742BBA8C419E6BEE /* SDLGetInteriorVehicleDataConsent.m in Sources */ = {isa = PBXBuildFile; fileRef = D27F5613B42AA93A93AA3040A73BF94C /* SDLGetInteriorVehicleDataConsent.m */; }; + C49A60B1AE8BD2253AA0CFB78AED841C /* SDLCheckChoiceVROptionalOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = BC088F50F39FABB3A2835578295D6FCE /* SDLCheckChoiceVROptionalOperation.m */; }; + C4A2A9F354149CDA02580EFE345C5A7E /* SDLWiperStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A84D0C360959095854C5870445E677B /* SDLWiperStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C56F66D9B8AD9294B028C7C5C2270AB0 /* SDLTouchCoord.m in Sources */ = {isa = PBXBuildFile; fileRef = 180F965AD76BFA9FF73D2E6A17D76C66 /* SDLTouchCoord.m */; }; + C585713307985FD8E3FF5D0E372A8961 /* SDLVehicleDataStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 11BAC842CBB10B4B7C24DD4A558F24D1 /* SDLVehicleDataStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C5E5880273DD3A08B4F5CDAAACD699F0 /* SDLPresentKeyboardOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = A8F9E32E9728CC43CF973F445B0435EF /* SDLPresentKeyboardOperation.m */; }; + C6410DF2F1430F4ED083AA68B0639407 /* SDLProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9377AFD1675D463C7129EA86B5DB2AFC /* SDLProtocolMessage.m */; }; + C675EC6DE3912F5B5514656C3C6A5C44 /* SDLGetAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 489CBF13E068A7E6A66DF0EFDFFB7B8B /* SDLGetAppServiceData.m */; }; + C67BB4B67598E1831EEBDDD9DD3D4342 /* SDLFileType.h in Headers */ = {isa = PBXBuildFile; fileRef = F07D3E9880A5F22DA73856522EECD33A /* SDLFileType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C6941A6FF49829CAD804EF442CDEC532 /* SDLTCPTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = A26A29D7E64A6FED6EAEC44F2DAB8EF8 /* SDLTCPTransport.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C6A5D68AC8EFB53B34D18E8C12FD5CA0 /* SDLLayoutMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B09D19145E0FCA24838F5D274F3D523 /* SDLLayoutMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C6C679C53BD8DF8348E50BBD9B6EDBED /* SDLOnTouchEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 88FA7221DE85C8EE3F58E1425E6640BF /* SDLOnTouchEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C6C7B6FDA272B371411CA5B0011F2A89 /* SDLLightName.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A033E80AC09276E47884FBDAC7CA19 /* SDLLightName.m */; }; + C71B0B80E85DDF04457ED4A157EC63BE /* SDLGetDTCs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7725181B40E656D5EC95817265FFB76D /* SDLGetDTCs.m */; }; + C768AE4F1F770E7734CD8CC4B8A23306 /* SDLDeleteInteractionChoiceSetResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 856764E6D7C402933AA4B550B7ADCBCD /* SDLDeleteInteractionChoiceSetResponse.m */; }; + C7A212D73E761420B4E79A2901DD389C /* SDLButtonPress.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B1FA2D3A3AECF7476B6EB1A1004187A /* SDLButtonPress.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C7B9447E9D84622A6C05BCCA146CB768 /* SDLChangeRegistrationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AC9DBB4949F6A3B97B7BEB8AE95E1BE /* SDLChangeRegistrationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C81F5A18F9170388C41F9D93C9EF4103 /* SDLFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC08B2D1ECABDAF764AE254824DC457 /* SDLFileManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C8A0BF9E182B267629C254EB8B2AC221 /* SDLRPCRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD38BC5045E2280587608630721EB31 /* SDLRPCRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C8AFD07137303A4BAA1E27BE76C2476E /* SDLNavigationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 16EBB6180D66091B30DBE5C095E5CD44 /* SDLNavigationAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C8CE5EB649E1C10ECDA088CC6E53D487 /* CGPoint_Util.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F98A315A729E83EEEFA448CB1B4AE9D /* CGPoint_Util.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C913D3DD8C730B92D2A8BBC72947580A /* SDLFuelCutoffStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = E7CCD566D513D6EEC4E95B4D23D395FB /* SDLFuelCutoffStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C92CD2430E581982358A1362D3C8AF85 /* SDLVehicleType.m in Sources */ = {isa = PBXBuildFile; fileRef = C3EBDE4679B3284A0BCAA44A5D195BF4 /* SDLVehicleType.m */; }; + C9C7D39F1CA59D3F1BA74F9F4C1A4E8E /* SDLEncryptionManagerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = CA172B821F0003F4CA4CF26BF6E2EF6B /* SDLEncryptionManagerConstants.m */; }; + C9D33DEDBE5109B9371CCF78FA4B5192 /* SDLLogConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 72740556340F8C21368CF87A79C8F5DF /* SDLLogConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA250D82EAC0308FA595B87D98EC2259 /* SDLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C610CA798F30FD6426257E526AC02F4 /* SDLProtocol.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CAC102566CD54361F5086A273A706B8A /* SDLGlobalProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = F80DCE9605631CF67528BCC3D2584A4C /* SDLGlobalProperty.m */; }; + CAC7C9F6DE36100C778BB500C4B9FC66 /* SDLWarningLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A877633FFF7377994C92687A4E85E718 /* SDLWarningLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAD17BD965F06658766D62411C358BB6 /* SDLRPCPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = D935E4ACA5BD1466555211496C5A0F89 /* SDLRPCPayload.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CAD42BB6B985BECA56F3CED84173A6E4 /* SDLNavigationJunction.h in Headers */ = {isa = PBXBuildFile; fileRef = 218552AF91635BA12359F7249694AF3B /* SDLNavigationJunction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CB5893572A2A29A05C47351C7D774B1E /* SDLMassageModeData.h in Headers */ = {isa = PBXBuildFile; fileRef = F52EC5B14583173C4125CAE62815F05C /* SDLMassageModeData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CB96E61276D98E9A7E6EE9EA13F73E4A /* SDLDeleteCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B50E027677BEB5915991E589C93AA10 /* SDLDeleteCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CBDD5E404BA924F86C7D7148AC7D7628 /* SDLVentilationMode.h in Headers */ = {isa = PBXBuildFile; fileRef = CAFA794CC2E87DB83C46EC3AF3A8F7CD /* SDLVentilationMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CBF78451B2FF04F7214072DC193CC9FE /* SDLOnWayPointChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 9701CAEA001B151A3237DDBC5CCC06B0 /* SDLOnWayPointChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CBF7DF2B7DF0FB5F45F67AACFA74F66D /* SDLHMIZoneCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C68FA444D0ECFF71A216F789929F82 /* SDLHMIZoneCapabilities.m */; }; + CC65A5F101469227FED175DA7A220E03 /* SDLAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 863AFB2E5034F4791C4E19C43C1F917C /* SDLAssets.xcassets */; }; + CC9E43F7F975E29D4CEFADB3CF92530B /* SDLLifecycleConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D85052B41FE8A425641B594DBE76849 /* SDLLifecycleConfiguration.m */; }; + CD2FA1C8839FD6FE08DCC8A97DF7220F /* SDLGetInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C6985E2F4386AC03DB19BF363A41F0 /* SDLGetInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CD925B345A3E54E75A88CBDC423BCC37 /* SDLElectronicParkBrakeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 9232A35C7990DF5C5A02370607D23D1B /* SDLElectronicParkBrakeStatus.m */; }; + CE0907AF29BE4C2529034A3529439E98 /* SDLSupportedSeat.m in Sources */ = {isa = PBXBuildFile; fileRef = D42E48D6CC0F6C034CFD9C9FF1EED954 /* SDLSupportedSeat.m */; }; + CE33E214C4EF7F657B4E1A730C50298B /* SDLDeleteSubMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 202CF610C5F2342C8E54FB9049CF4F47 /* SDLDeleteSubMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF556B40CBEAB213E7FB5AB37B3A8F78 /* SDLCreateInteractionChoiceSetResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B663F05251D2CEC64244343870CC61B4 /* SDLCreateInteractionChoiceSetResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF5AB47D4857BD7D5D1BC6287E751617 /* SDLChoice.m in Sources */ = {isa = PBXBuildFile; fileRef = E00FDE680B46E1B812D8143C5D0A5271 /* SDLChoice.m */; }; + CFA9E37CDCB344B88BF96EB669E9520D /* SDLVehicleDataResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EB05BE08F0592AB8A2B2E5AA70E41FC /* SDLVehicleDataResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CFCF4FDADFD7796F5BEAF925B79BEBAA /* SDLDiagnosticMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E8B2B973E85F3287EF6B9408633BD6D /* SDLDiagnosticMessage.m */; }; + D0687F8DE9690C573C4C0446EE4F197C /* SDLTTSChunk.m in Sources */ = {isa = PBXBuildFile; fileRef = A6FD2FA90F20F6C5140D25FA0A41EB8C /* SDLTTSChunk.m */; }; + D08B9207BDA690B3F378DBC655D97704 /* SDLGrid.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AB253E744896719697E4F5307AA1F8F /* SDLGrid.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0C88B9168198144FE7FA6F3E4F7825D /* SDLSetAppIconResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DD6D85898628258D6A68C4B679B238B1 /* SDLSetAppIconResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0F7A93036C76522C1F67732C96D2A85 /* SDLHMICapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = B965BA54B73AAB7DD28ADEF78BD168DA /* SDLHMICapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D112A18A400F5F4553BB42CA33F9AD14 /* SDLDimension.m in Sources */ = {isa = PBXBuildFile; fileRef = B119F703EFD09662F12A91AC7015A81C /* SDLDimension.m */; }; + D14B926EFC1FDF906D5A57CF73D656A6 /* bson_array.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 3FDDC6658582C0B1CEC0775EEBEFEF01 /* bson_array.h */; }; + D14E04DA2DA7178B5A6B389E296D4DC6 /* SDLChoiceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A92F939214CB9AE0B8F4A9AC267DF28 /* SDLChoiceCell.m */; }; + D17A65C54A8CA8E5F268634CB63E3A60 /* SDLSetDisplayLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = BE4CA9FAD52700FBCAD76C76239758B3 /* SDLSetDisplayLayout.m */; }; + D1B56E95735916F4717FEEA32F73CD30 /* SDLH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 257C0CD607BEF7992A0953E0AD01C31D /* SDLH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D2076457A9AD3DAD99153504CC3E2942 /* SDLRPCResponseNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 50CB8DB198313EF592E6A9DE3B0F6CAC /* SDLRPCResponseNotification.m */; }; + D2083CC54CCEC2FE484B31F105CEAA31 /* SDLShowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 745681F76A482E1B3B632F0DDCDF603F /* SDLShowResponse.m */; }; + D2E1F6044277640103B8532FD88ECCCD /* SDLStreamingVideoLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9249C3F27F0E10C1E2F52FF5AB75D618 /* SDLStreamingVideoLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D2FDF52D5353CA1AE6DE662BA066B310 /* SDLControlFramePayloadNak.h in Headers */ = {isa = PBXBuildFile; fileRef = 120E0599820F60BBAB5980EF892809ED /* SDLControlFramePayloadNak.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D3632770E0BF2D28B2213E1AE13F8C85 /* SDLEnum.m in Sources */ = {isa = PBXBuildFile; fileRef = 57FF113F520A5C67641777D6914A56DE /* SDLEnum.m */; }; + D383905C1BC02D559216275118596959 /* SDLPredefinedLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C8B86BA2EF69ECCA8BB0E915700E2FD /* SDLPredefinedLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D3E51F57F33BBDB90E0026E6A50A8C18 /* SDLSliderResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CED9E972E8876CBE62B74E0A508DB50 /* SDLSliderResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D418AC49F67AAFA470ED4D742ACCB12D /* SDLAudioPassThruCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 28FD8035C89A39A37313F411B5C93EA4 /* SDLAudioPassThruCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D4BD6166FE38A9982C6D09ECE4E8E62C /* SDLMassageModeData.m in Sources */ = {isa = PBXBuildFile; fileRef = 5482FBD961552B74651C104693279E71 /* SDLMassageModeData.m */; }; + D4CE05EE4A4C7BED2C1545256717844E /* SDLAudioControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 2887D0C5085EA06F9D4FD170C6F4235C /* SDLAudioControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D51475FCE0E2024873BF20E3DC6E984D /* EAAccessory+SDLProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AB6823D25685820410ED63918C02E0A /* EAAccessory+SDLProtocols.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D5669FF6BD7F10510C5BFEEC1D6285CC /* SDLShow.h in Headers */ = {isa = PBXBuildFile; fileRef = B5B59F14B5A937BCC17AE1731AC44B43 /* SDLShow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5AFCC6EADD5C94029C13A88099C46E6 /* SDLTouchEventCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = BF47CEA7D6AB8CCC5CC7B1A41D6BD3B0 /* SDLTouchEventCapabilities.m */; }; + D5FF4F7258D11BD646907C8BBC834823 /* SDLMediaType.h in Headers */ = {isa = PBXBuildFile; fileRef = 815DBEEF21C974D2236762AC3D4FADB1 /* SDLMediaType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D613164BA0BA84926A93B0247D7A188E /* SDLGetInteriorVehicleDataConsentResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3030AFD52F92B429CA1F20183DDAE4FF /* SDLGetInteriorVehicleDataConsentResponse.m */; }; + D6B423A9B6701091982E34CA244F9A0E /* SDLCharacterSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AF9C51B912A87FCA50DB65BF6162630 /* SDLCharacterSet.m */; }; + D72091B46BA87644DA72787424704D7E /* SDLAudioStreamingState.h in Headers */ = {isa = PBXBuildFile; fileRef = A3F84DAD3D88A67D4CE282450BA269F8 /* SDLAudioStreamingState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D7A3CC246C315674298880EEB2B97169 /* SDLTBTState.h in Headers */ = {isa = PBXBuildFile; fileRef = 1535EB0F1986701BB26F15612FD19173 /* SDLTBTState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D7A4CAECEC686A01DA319E8C6E1D3C04 /* SDLStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A41267BCF7ACCDD59CABE41F6C1B46C /* SDLStateMachine.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D7C6624037B1FF6F5D58C6B12DA3F63B /* SDLTransportType.h in Headers */ = {isa = PBXBuildFile; fileRef = 4085E3CA18C0C722411355146D5FA236 /* SDLTransportType.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D80078A675B7A36DC01D242EFC0CD243 /* SDLTextAndGraphicManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5F2C4BA784D2770AEA68069BA870A6 /* SDLTextAndGraphicManager.m */; }; + D804E00C1E99EF81AE7B9E9BD98FDCF7 /* SDLLogFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = ECD19B85A34BEFF3300F295ACCA65603 /* SDLLogFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D86EFCCFCE0D86525E9DDB7949962ACD /* SDLBitsPerSample.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DE2FE3B6560346F8069F04D79D7E283 /* SDLBitsPerSample.m */; }; + D87AC2C573191F7995FD5F12D9A5CADC /* SDLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 37A578EB03978AF09B4B22E2D9B48EB6 /* SDLProtocol.m */; }; + D8A98474F332772BCCBB7FCCF0B24758 /* SDLDeleteFileOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5183ABBFFA966A641482836B262617DD /* SDLDeleteFileOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D92C780614F70CBC8E9275E0B7FF117A /* SDLChoice.h in Headers */ = {isa = PBXBuildFile; fileRef = 70FCA6EA14F58857FDC822D78A615F03 /* SDLChoice.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D96DDD8B9CA7EA5E0BAA7811256DD2D6 /* SDLAlertManeuverResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D0981807051884EEA83FBA93119C3343 /* SDLAlertManeuverResponse.m */; }; + D9AB3140951E8AAE2F2D9B4B5231CB1A /* SDLAirbagStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 8855466267A3B3D5676C6D27C57295EA /* SDLAirbagStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C1F69D50AFCD76135A06BBA8B9CC68 /* SDLLogTargetAppleSystemLog.m in Sources */ = {isa = PBXBuildFile; fileRef = A677CF8D17087FD37FABB05CE8384E98 /* SDLLogTargetAppleSystemLog.m */; }; + D9FA90B43920243882EBC7A5AB83B874 /* SDLHapticRect.m in Sources */ = {isa = PBXBuildFile; fileRef = 4149BB003DEF4C5C4BC5B7A332FD6707 /* SDLHapticRect.m */; }; + DA31C910CCC271F4076D1BBECE2CB207 /* SDLIAPConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DD50A61126C05D1E22DD18C08F59593 /* SDLIAPConstants.m */; }; + DABDCA12A6E91B9A065F97B7A9C5BFFE /* NSMutableDictionary+Store.h in Headers */ = {isa = PBXBuildFile; fileRef = E957BB923D9D863C7E408A84D7E62E28 /* NSMutableDictionary+Store.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DB0A2637AAC77D579CEAE3A3B0B7A781 /* SDLErrorConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A5A2F651034AEC49BAE3963D3AA8018 /* SDLErrorConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB2585B9615080A2C1A8A0D5069EBD6D /* SDLLockScreenRootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DD50AAA2369E60F10DA24C777F7D9D8 /* SDLLockScreenRootViewController.m */; }; + DBB1C2E6DDFF5465334168A7BE0F8356 /* SDLIAPControlSessionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F6B6A40C2D7A321D2ECEFC97E432FD89 /* SDLIAPControlSessionDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DBE730A70BE64357EEB827CBEF8550A6 /* SDLUpdateMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 087970D423C4D2D7AB2EE1EE71444F15 /* SDLUpdateMode.m */; }; + DBFAADE3779350453CD7BFAE86F35101 /* SDLTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = 37100CC61CBB83D8FD8AF13BB98BCD14 /* SDLTouch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DC02273D2AA5CEF43581EBE2A8747E52 /* SDLSubscribeButtonManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18CF297ABA10DB64D20A22E9C6634FF1 /* SDLSubscribeButtonManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DC7BA875C9FF947F0B1FBA4177C6F093 /* SDLDeleteWindowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C6AE16D11DEDEAAF0E172B5CDACB105 /* SDLDeleteWindowResponse.m */; }; + DE5388F35C48BCE6C7CDC9E3B72E900E /* SDLImage.m in Sources */ = {isa = PBXBuildFile; fileRef = AAE83D19F9F6CCFDFBE2E4176612A66A /* SDLImage.m */; }; + DE63E79D4F876DB8F9EE94E01C7D5069 /* SDLMediaServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = A9BC3AA38D28D6FBC7BBBEB0A7D0B622 /* SDLMediaServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE9575D32F7A6A605DD928E3EA6F90B6 /* SDLSoftButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 57C40F8D0811DF6059FEDB49AEBDC69C /* SDLSoftButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE972E82D89194FE5744335794CB8894 /* SDLError.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DE51752FED2D7FE208CE05FC220435D /* SDLError.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DEE7AD7F86B81A9BC1E2EE6C39A2FECC /* SDLPerformAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = C1B55A5D6E1EA252835733A44DF307EA /* SDLPerformAudioPassThru.m */; }; + DEF7B91670D14C4BCF191B13B1CBDB8D /* SDLPutFile.h in Headers */ = {isa = PBXBuildFile; fileRef = C78E389C985303221ECDC5D18E6DFD51 /* SDLPutFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DF507767E93AFB36A70ED75AFF3D7074 /* SDLDeleteFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F7EAA79417587FD8CB036BC849FA1552 /* SDLDeleteFileResponse.m */; }; + DF81482006B1DD064059CD729193F9FE /* SDLOnSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = CCDD6594ECBBE163AA3B6819EAECDD83 /* SDLOnSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DFB776F630297A0329B965599E305013 /* SDLDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = 684377DF2520C00D1850BD09A565E45D /* SDLDirection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DFE6BEA12EC622B3B238EE8C4009FB56 /* SDLOnInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = FE30695FCCBB7E0CC7987C538AFF14FD /* SDLOnInteriorVehicleData.m */; }; + E081B77445962FADA85C08A8E6FEA338 /* SDLAirbagStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B5D1F23B2E71DAA1B5D0B59605A90913 /* SDLAirbagStatus.m */; }; + E09A6ED07FF88A2B3DFCAD50F1598689 /* SDLFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 430C9D5FCDF96E9E712BC537CDC01EA1 /* SDLFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E0B1ED0FAEF62E7A9ECDE44B4C2834F7 /* SDLClimateControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = DEB1D477D9EB612F32B6432000660C59 /* SDLClimateControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E0E6BA7F5D22191786EEF3537BC1616E /* SDLSystemAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D90AE10D126FDEAC9EC89DC2DA4C9C9C /* SDLSystemAction.m */; }; + E0FC41FEC6C7E4801B4394F3200D1F14 /* SDLVehicleDataStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E745564AE37D33E39D0D5F6C4614133 /* SDLVehicleDataStatus.m */; }; + E1152B7BAE15B01DBAA1C1F7896402E6 /* SDLGetCloudAppPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B3717C92695FDC869375458442425C25 /* SDLGetCloudAppPropertiesResponse.m */; }; + E127F3F478549E5907B2850B362FED22 /* SDLAsynchronousOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EADC1263640A78820A3303343799BE6 /* SDLAsynchronousOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E144979B7797BD3CC98DC251768C9DC2 /* SDLAudioControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = BBBA34781B3503DDA95B0CAE4B42E438 /* SDLAudioControlCapabilities.m */; }; + E1C6FEC796F238A0D768AEEF13D8BF2F /* SDLDialNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D5AFE5EC9DFCBD550B6CE009570187A /* SDLDialNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E24DEEB6C2CD227A7D65A2670DB65D92 /* SDLDisplayCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7767E20AEA869F60F20EA97DB0E504E1 /* SDLDisplayCapabilities.m */; }; + E3157BC456D801956E1474CCF765F853 /* SDLScrollableMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 831E596C3FA752444D1ABCA67DB7BB9F /* SDLScrollableMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E329AF57A57A5BF7BD973D6F447B9CB3 /* SDLNotificationConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = FF791906F1FC8B75F3E5D9D9CDE8DADE /* SDLNotificationConstants.m */; }; + E395F72E06B6F2E54CE0B4977F3FAABD /* SDLFileManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = A39FC9ECBCE47531EA0F628BD8F31F5B /* SDLFileManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3D8E77FFD3C3CCD8FEF0CB36D65603B /* SDLDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = C70B2859CDC07782CF755E851575239E /* SDLDeviceInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3FB99D01C97093682E0A1EF03DEF33C /* SDLStreamingAudioLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = ED4168058B624B5FDD47D387C6D1E8A2 /* SDLStreamingAudioLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E45157D8F36A97F44996C299AFC261BF /* SDLSetMediaClockTimerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DEF6AE23910B9300DD3A0EB0B277C68E /* SDLSetMediaClockTimerResponse.m */; }; + E5060579BBE45E03FA927A5B6CCF64B5 /* SDLMassageCushion.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C8558030DFB952D8D24FA06D63E520 /* SDLMassageCushion.m */; }; + E5B246C5FA6496C31A85FB4A70C1D6A2 /* SDLUnsubscribeWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = A4BF66140123996F41DEFF60B1C946BD /* SDLUnsubscribeWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E5B88FE74B2EE51391E6F196C27429F4 /* SDLWiperStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 89DF44BE873C0C35B93160AF2AFA563E /* SDLWiperStatus.m */; }; + E605233B33437E5342710523DC192F16 /* SDLGlobals.h in Headers */ = {isa = PBXBuildFile; fileRef = 984B721B08C198B887A18CD320C0C30B /* SDLGlobals.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E64A8CC048B3B646F407159AC4BE4F4C /* SDLSoftButtonObject.h in Headers */ = {isa = PBXBuildFile; fileRef = D825304615E69EF79423978DDC24A034 /* SDLSoftButtonObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E66DB3C37E4973F7DDE47B53F4A1CED2 /* SDLSubscribeVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = F5911DA96561B2E0DB4E79F8EF63A561 /* SDLSubscribeVehicleData.m */; }; + E6A83EE82658F0FD32589B0165F03D06 /* SDLTTSChunk.h in Headers */ = {isa = PBXBuildFile; fileRef = FB58EAC6AED2BCF3595566AB716728B0 /* SDLTTSChunk.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E6D8226083D387CD8BD4EF2CE9F86DBF /* SDLReadDIDResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 44849D20DBCA2A08A69AC1CC08D2E12E /* SDLReadDIDResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E6E55A8F2A2BFBE31505BE9307FA5BD5 /* SDLTPMS.h in Headers */ = {isa = PBXBuildFile; fileRef = 117F46D8AD9F12EC389BFEC8EC4A4A7F /* SDLTPMS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E70C0DD38EBA9D727D26A5D6D38E50CC /* SDLSamplingRate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B617AF0E9B7984864BBC87BCDA8FD50 /* SDLSamplingRate.m */; }; + E76389D113E1B62086B889FF5763CBF2 /* SDLSoftButtonReplaceOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A2CC1AB9C604A7E227193554050F049 /* SDLSoftButtonReplaceOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E829F19D11C1077B6B68CA9E77E7A3CF /* SDLRegisterAppInterfaceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 88CF0A4361A069189BA99DE9D9F45FB5 /* SDLRegisterAppInterfaceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E92412A888974C3419F69E616690EBD9 /* SDLTurn.h in Headers */ = {isa = PBXBuildFile; fileRef = 3798CB99A6B7352DEED2C27BC86F9E32 /* SDLTurn.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E95A6B40C522978A7B5C7048F5CEA422 /* SDLButtonEventMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 17F39883F5C926723043B16C4FEB77D9 /* SDLButtonEventMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E9783EF1C9A4FEBF1663C195E052DFFA /* SDLConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C8B7EAEF425B5B3F0375A9301A599C4 /* SDLConfiguration.m */; }; + E9842B3A085EBC79B367D1EBCF4D3EDA /* SDLControlFramePayloadRPCStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = E1A8A1E0A076B07F56387D1063ABB1A3 /* SDLControlFramePayloadRPCStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EA1674D4751D7F85F5D79F9DBF218E8C /* SDLCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 89A76245B2627554C8BCFD4EC00D0102 /* SDLCloudAppProperties.m */; }; + EA3B5A546245509630C45FF94EE0F01B /* SDLRGBColor.m in Sources */ = {isa = PBXBuildFile; fileRef = C17FA75188543D16F15C11D353AD7B2D /* SDLRGBColor.m */; }; + EB2AE2C03AF5B038D0D8F8C5B7F86405 /* SDLSubscribeWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = 21D8EB78FB694C0B9754FB236AD82B6E /* SDLSubscribeWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB96732B0C7E6402276EDDF4DE47A4CC /* Pods-MobileWeather-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FC419B6D5F4F5B911DB8B2F295E08532 /* Pods-MobileWeather-dummy.m */; }; + EBE09075FFCB277CF9EA3E3A4D070C84 /* SDLScrollableMessageResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = BB097D4C8A058214236F5DA62E2D55D0 /* SDLScrollableMessageResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EBF9DDBD069ECC7C4BF0C8C6092DC67C /* SDLLogModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AC029B73C422385316B810096AC575F /* SDLLogModel.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EC00209B66BA6A8E9C3CECCD2F5B5B45 /* SDLSubscribeVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = AD92E87BD9A9816EC4D59E0AD66C1E62 /* SDLSubscribeVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EC0A56B098D4D9D2DEC520EF28D878C3 /* SDLLifecycleSystemRequestHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 5ED3A5134C0B156DBE89E14A72AB0F95 /* SDLLifecycleSystemRequestHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EC0E19F24C8F829BAAA5042EC6CEAE21 /* SDLPredefinedLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = A638ABDCA82A0FCFD9E2949D129993CD /* SDLPredefinedLayout.m */; }; + EC0E322A16F7612CAF6B035EC0C3EF99 /* SDLSetAppIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = E78CAECB818A0AAFD5ACB1B475C157D2 /* SDLSetAppIcon.m */; }; + EC1F50828A025FA4F94B70385787ABBF /* SDLVehicleDataResultCode.m in Sources */ = {isa = PBXBuildFile; fileRef = 93667B5FF68BE37BC728FB920DD912EA /* SDLVehicleDataResultCode.m */; }; + EC85B08AF38BBDD94B706D8341525764 /* SDLV2ProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 9303C2006A43927A3DDDA863577D7E24 /* SDLV2ProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; + ECC7D8F9B89FAEB6F736532C0E9492FA /* SDLUnregisterAppInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D1B8BCE12335818CDCDA92072B0EE7F /* SDLUnregisterAppInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ECF14494FD79560B8425DC6C914A0443 /* SDLAudioStreamingIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 73ACA9CF96F869FA20D4FA90D8076760 /* SDLAudioStreamingIndicator.m */; }; + EDCF0D12F91D225EE21FC90B90DF45B0 /* SDLIAPDataSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 79D0753524C87826EC27651FB26FD354 /* SDLIAPDataSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EDD61F460E67ABD6093235C76D0B3030 /* SDLDisplayMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 25D424DB2BA7511820D2FE4FCDC9E179 /* SDLDisplayMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EE126905164C9734AC28DDFC63C52D4A /* SDLSetCloudAppPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FB773F958DBC067615AA9A0590DBCC61 /* SDLSetCloudAppPropertiesResponse.m */; }; + EE67E315BD67A87FF40C84C77AA35394 /* SDLAppServiceCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DB78A3398DB496866979B7038BB5583 /* SDLAppServiceCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EEF6E7F741B89CE1B74279CDDD578B68 /* SDLShowAppMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C9AED1F70FC929F9636D503F5A4B658 /* SDLShowAppMenu.m */; }; + EF10AC48D2719E2DFB43ACCF6D899D0D /* SDLDynamicMenuUpdateRunScore.h in Headers */ = {isa = PBXBuildFile; fileRef = D4966D54B828A01F82DC4326A367A6B3 /* SDLDynamicMenuUpdateRunScore.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EF19B8608648A79B8FB439746726C03D /* SDLLightControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = C793CE4C5804B98CF64AF6F63FDCFD33 /* SDLLightControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EF5F16A2D1A46F4EAA5E69F72AD45ED6 /* SDLRPCResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 80BA52F7804336DB0F03FC8F1C10CD00 /* SDLRPCResponse.m */; }; + EF6207A4CDB7229EECBD4E564185CB8E /* SDLControlFramePayloadTransportEventUpdate.h in Headers */ = {isa = PBXBuildFile; fileRef = D9122ED144BA8E4A71AAE00847B80AD2 /* SDLControlFramePayloadTransportEventUpdate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EFE7C89F1D6188B957882AC34CE3D2EF /* SDLShowAppMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 950FAD2DDF31FA20CDC674CA6C66F3C6 /* SDLShowAppMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F03F8D0FD515F7D50A09B053578BE029 /* SDLRPCNotificationNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = E89CF33AA04C619DDD01D52E4CA9ACA2 /* SDLRPCNotificationNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F0771FB03F3BE78A03CDA6851381B1B6 /* SDLTextAlignment.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ECBAA05C55448900253CB47419A5374 /* SDLTextAlignment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F0900CEC7175AD4E95776489973B213F /* SDLGetCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 13701FFA4C23EEB343B1BAA4DE60E163 /* SDLGetCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1795858A80044888465909C25A2D3C6 /* SDLOnDriverDistraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 610922E85FBDB66F79FF6230A47D4B75 /* SDLOnDriverDistraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1A103230DFAE80CBB1C5E087DBBD700 /* SDLPhoneCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C86980F55A57904FF85C7623588A367 /* SDLPhoneCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1BC8A93814012F7CDFB754643FA878B /* SDLStreamingMediaConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FBC3FE7098E4D00F7657B9BFDBF6AA /* SDLStreamingMediaConfiguration.m */; }; + F1DD1651F7D575FF5C044437AA4FED30 /* SDLDriverDistractionState.m in Sources */ = {isa = PBXBuildFile; fileRef = C578DE7BA9E0FFC539C979EB88551881 /* SDLDriverDistractionState.m */; }; + F1FEB31C5C7A2C466F936C8CEAD401DD /* SDLAppServiceCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = F077FE63CBC553DC56DCF5958EC799BA /* SDLAppServiceCapability.m */; }; + F210B2382368AEBE9301E0EB34A26D6D /* SDLSeatLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 95168703431BF300E73567EE607D8A0C /* SDLSeatLocation.m */; }; + F256A192BBBE3C98C369D2375D6EB1E8 /* SDLEmergencyEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = A58155F4D86C1C49F4B0245936BBF3E6 /* SDLEmergencyEvent.m */; }; + F26364001CACD8039EE54E4E7BF8BEC8 /* SDLShowConstantTBTResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D3D372A87B4AFED15B15E0EC89F51A5 /* SDLShowConstantTBTResponse.m */; }; + F283AA06AE3E28E317A738DBA7DC9CA9 /* SDLPresentChoiceSetOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D34DA30DA43361D2C480A221DBB67CD0 /* SDLPresentChoiceSetOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F2B7CC9ADABB102423469D03817D6EEB /* SDLLightState.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FEC1FB5460DDB76F458A2F7F27AA236 /* SDLLightState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2D2FD0B10D0FFD8AE6299BD90601122 /* SDLLockScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 505A39ADC4E3561B7594E28FD0429E64 /* SDLLockScreenManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F326E244E8C563D5B3BD41A56D20D18A /* SDLMenuCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F5A4EE85CC2237920F6A3B30FCE073C4 /* SDLMenuCell.m */; }; + F3383B633BE898CB9A98120AC1D7D7E7 /* SDLECallConfirmationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = F796106033DB7CF49C2AFF239DDD2F71 /* SDLECallConfirmationStatus.m */; }; + F36307961DF70A8DFC73478E78F68284 /* emhashmap.h in Headers */ = {isa = PBXBuildFile; fileRef = 4498BA293BEAD680B6055DB76B201258 /* emhashmap.h */; }; + F3E03877BAD0D44D99FF726626072704 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h in Headers */ = {isa = PBXBuildFile; fileRef = 154F7BD449EBAB714A8FBF679C03A16F /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F4007F4A5519CFDDF825860E24FBB59B /* SDLUnpublishAppServiceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B777CF456AFE62300FFF21779B554D81 /* SDLUnpublishAppServiceResponse.m */; }; + F438AFD76D78B6660ACDA6441A358A2B /* SDLOnLockScreenStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = DBDC0BCD9D5A756A12269D89CA68E411 /* SDLOnLockScreenStatus.m */; }; + F4419F5F39751E51D708DC49653C24FE /* SDLOnSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = E2F7792FEE3F880C4B7A2CEF50105C43 /* SDLOnSystemRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F4531EDAE28E6B40E5897E5E50FBF9A2 /* SDLScreenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EA005E80F14C30BEEAD6843C40AC7D05 /* SDLScreenManager.m */; }; + F47674D7A51174A7C32C4BB40B703B55 /* SDLGetWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B002378124E8B08D2C433B0CBAE53FA5 /* SDLGetWayPointsResponse.m */; }; + F4D3DCD1482DC7169320000B0CFD58FC /* SDLLightName.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F343F8E278AA4A0EFBFBC077661846E /* SDLLightName.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F503C527CD5501588ED3673D9676BABD /* SDLModuleData.m in Sources */ = {isa = PBXBuildFile; fileRef = DF00C9E7609E5400EC4274851BEB8AE5 /* SDLModuleData.m */; }; + F54ABA2F5DB667EFFD347157BB9FFD99 /* SDLTouchEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 72279C07ABBAEA264B9075A1A89C7434 /* SDLTouchEvent.m */; }; + F54CBAF56B9B678D042AC19DD0255CA7 /* SDLOnAppInterfaceUnregistered.m in Sources */ = {isa = PBXBuildFile; fileRef = E9BCDAE3BF99C86CED1A5CB6384054CA /* SDLOnAppInterfaceUnregistered.m */; }; + F5739CA941079DCD8B42FAF36B4E99F8 /* SDLLockScreenStatusManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 05AF2492C648CAF3472BCDC0B4D590FD /* SDLLockScreenStatusManager.m */; }; + F581452AB8DD619BF9DEFCB7DAD3B495 /* SDLOnDriverDistraction.m in Sources */ = {isa = PBXBuildFile; fileRef = 31788B292B69F3A09E1B6F39CAD277FB /* SDLOnDriverDistraction.m */; }; + F586F836095468D7E035D0D52AE2D236 /* SDLScreenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 64BA143AD255D19B934724F34E2072CD /* SDLScreenParams.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F625647BF7E1785CD864DCDA9D21E7D6 /* SDLSyncPDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D3B8CF68FC478BF3823F6C4D2995ED5A /* SDLSyncPDataResponse.m */; }; + F66A68935B8E019A5A1FAE879ECA5384 /* bson_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 82FF30811604FAB65F49A60CF6868F75 /* bson_util.h */; }; + F736EA12A3CF2B12ED63AD84085A768B /* SDLHybridAppPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = A99EA0FB7F0C4D0EB328913A51F92615 /* SDLHybridAppPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F7466745158C54756E4285345452BD39 /* SDLRegisterAppInterfaceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C3E14078B0F9E5376F9494B8D3CA4C7 /* SDLRegisterAppInterfaceResponse.m */; }; + F752F614709B9EEA82F86F4A62BEA66C /* SDLAudioControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AF9D8696C22ABDC9B6EC313EC8554C4 /* SDLAudioControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F78527CC8638C170A0B00821EE5375DB /* SDLSystemCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D4B95B4B14683496035C798353826CA /* SDLSystemCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F7A72542FEA16DBFC8895F49973CEE69 /* SDLRadioBand.m in Sources */ = {isa = PBXBuildFile; fileRef = 98E14E95533F49ABC0D74A2121D62620 /* SDLRadioBand.m */; }; + F7DAA886D075CA259411B3B7A6395EA3 /* SDLAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9570AA3F2F4CC1AE3DEC19E631620F29 /* SDLAudioFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F83A6CB1994098C4B58D47D636F75951 /* SDLButtonCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 970F63E20BB6D882EF074800A3CE6176 /* SDLButtonCapabilities.m */; }; + F8442F1675B44DFC70114DBE8650387E /* SDLMenuConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = B47755B35347AB14C2570D1F7A7BC934 /* SDLMenuConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F8C787819D63B7D4622645AAAB479314 /* SDLAppServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = D55417FE7F7FC0C9B4F34CAE0D38AC5C /* SDLAppServiceManifest.m */; }; + F9B2C89631AA9232F9CB801641DAC31E /* SDLOasisAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = C9CB658027934C58CB5E44288BDE79BE /* SDLOasisAddress.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F9EBD1E23154F9D743AB6BA7CE13B787 /* SDLCarWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 94AB62DC444A4E92E8E71099CDED36CE /* SDLCarWindow.m */; }; + F9F67F2646FC92E2B9C54DABBB0D165D /* SDLTemplateColorScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = C1F3C424DD2CB129EBF8CFDEE9E339E1 /* SDLTemplateColorScheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA3B57CB38D403CC2A89A61D00EBE74C /* SDLSubscribeVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 347ECC1742A5C5DD03FA8380821DB34F /* SDLSubscribeVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA5BE5FA92E0BFEFCE58DD65F1AF67DB /* SDLStreamingMediaManagerDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 0482261E0D79D54F44C861DCF5D31296 /* SDLStreamingMediaManagerDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA62FBB392579EFE2754A875108A4301 /* SDLIAPDataSessionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F7A97AE27AA359A932FD6703E3DAE004 /* SDLIAPDataSessionDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FA63B81F435E767F24EA31CA32A38952 /* SDLCreateInteractionChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = F18A7D5B549029AE3017FE3E78F970C4 /* SDLCreateInteractionChoiceSet.m */; }; + FAD93E03EE1003989F8A89BE6F9E992A /* SDLGetWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CB3E5816DA0A95C87F21D3CEB5CDB491 /* SDLGetWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB5714ED15412CCCECA24EE3A2BA4886 /* SDLCompassDirection.m in Sources */ = {isa = PBXBuildFile; fileRef = 96D7A594E902D4A574B41FF1CEFB2D60 /* SDLCompassDirection.m */; }; + FB6039EBE381999530969D021FC20EDB /* SDLWindowTypeCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E9D2FA097525605C95E2AFE782A6BE6C /* SDLWindowTypeCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC03DDA275EDF285D7C124C51A321A72 /* SDLSISData.m in Sources */ = {isa = PBXBuildFile; fileRef = F9FDB0D2AA9E98077817EB3B8C90BC03 /* SDLSISData.m */; }; + FC2AA09F1FD2F926814EC569C07360FF /* SDLSeatLocationCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E027DB1F50B0C19CFFB73267754D157 /* SDLSeatLocationCapability.m */; }; + FC5FE1F84697A3314FBD5A170442BC40 /* SDLSystemRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F08A40DF1E002E9280563EFB8F024E54 /* SDLSystemRequest.m */; }; + FC78B70C9F799ACA864846610091A7EC /* SDLHMIPermissions.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CF01B1E30A78C156C0BFFA57CEAD88 /* SDLHMIPermissions.m */; }; + FC8ED395A93A30E8199D7647E28C52D9 /* SDLDisplayCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = CF06C121B2AD922B5E0F2F9075C29C29 /* SDLDisplayCapability.m */; }; + FCECADD9A357293803247BC3C76A9503 /* SDLControlFramePayloadVideoStartService.h in Headers */ = {isa = PBXBuildFile; fileRef = D454F140BD2837E493EFB52D5D399FF6 /* SDLControlFramePayloadVideoStartService.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FD1D54FC7E3963916E30AF17CF6C7E08 /* SDLRadioControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 7026D561A07AC0E8C0BE86D3E4C3DA7A /* SDLRadioControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FD44AF223147172C11BA5AF146AFD8EB /* SDLEncodedSyncPDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 879D45F15B6B19AD8392A3B6A475AB91 /* SDLEncodedSyncPDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FD4B9DEB7C0B8B83E8BB18B89BC2589E /* SDLAsynchronousRPCOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C38F093E9748ACAA9284BD728AA9AAF /* SDLAsynchronousRPCOperation.m */; }; + FDDD566B0FCC00853F7748B764791F7F /* SDLTextField+ScreenManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = FB6A10D40CFC0CC11ECFD6D0C56D5A5E /* SDLTextField+ScreenManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FE474D92574F0C37042FF367C1869FF4 /* SmartDeviceLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF84943922331DACE393EFF73879043 /* SmartDeviceLink.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FEA2C633BF61DAEA879091A9D48C0223 /* SDLProtocolConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = CB1A8B920D83FAD8420BFA57B9376BD2 /* SDLProtocolConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FEE7490180AF75B55DD253B9ADE512F5 /* SDLAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = 64CC24A0167F43E7EFCD3741ED2CD00A /* SDLAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FEF44E1D08BCE16AEDBF9C6B8C33E647 /* SDLControlFramePayloadConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = C56E766AC9995A99617E24C80F827D43 /* SDLControlFramePayloadConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FEFA37AA6D063CAC96E0FA294F03339E /* SDLMenuManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D879437E0B1DE45D4D626AD9DA1BD58 /* SDLMenuManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FF13ABB8D4771283578DFE394E35E422 /* SDLTransportDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EB24F185C13507CF836631F5BDF0A2C /* SDLTransportDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FF9013FBD59D4DB3DA6F80750DC9C3FA /* SDLButtonEventMode.m in Sources */ = {isa = PBXBuildFile; fileRef = A19E73266D6733F4C2E8727710A11ED9 /* SDLButtonEventMode.m */; }; + FF9ABE4F036C6B902A2B802E6E2479B2 /* SDLWindowCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 2643EB480894991204DC88CA218D09C2 /* SDLWindowCapability.m */; }; + FFCADB158DBD81417BDF149A09C7C861 /* SDLSetInteriorVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B7506383773C5D6EDE24916C30190446 /* SDLSetInteriorVehicleDataResponse.m */; }; + FFD72484C274C1D4F2A4EC9B8A2D38C5 /* SDLHapticRect.h in Headers */ = {isa = PBXBuildFile; fileRef = F2C4FC36D54FA4DCEB9CB7427F105086 /* SDLHapticRect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FFDC6E163ACB77CBE6819E9860BD4F22 /* SDLLogTargetOSLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 185F3515C64226DE214C71343949C0A5 /* SDLLogTargetOSLog.m */; }; + FFE6AD5AE2B963DF76A98DD2119B858D /* SDLSoftButtonManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 511CF82F1FB9D8A7C5929F635B3E778A /* SDLSoftButtonManager.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 4332B2D4BA920CE0A817B3F0771936D0 /* PBXContainerItemProxy */ = { + 4A02ED4C28844C389A4B072D1E10F4F6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 3E2F6F6EDD252B198A8442650E36D865; + remoteGlobalIDString = 3BAB8E4F4ED1E843F9C863ADE37B95B5; remoteInfo = BiSON; }; - 61E6D57C525EB9990F5F14267F32299F /* PBXContainerItemProxy */ = { + 605A77535A8FC7FC30C0D975BCB72186 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = BE3804893E5B3C73DADA6122238B017D; + remoteGlobalIDString = D80456DDA93CD634453A682E14808519; remoteInfo = SmartDeviceLink; }; - CE063CE7CAE6EEDB13586D4E39229E1D /* PBXContainerItemProxy */ = { + A9D46AB6AB677FC4ABCB10C5F8081AC3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 3E2F6F6EDD252B198A8442650E36D865; + remoteGlobalIDString = 3BAB8E4F4ED1E843F9C863ADE37B95B5; remoteInfo = BiSON; }; - DF3582EA5E1AF448450B31E20F1987B1 /* PBXContainerItemProxy */ = { + F7F1266388AA8BD3DD808CFAD47EADF5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = A3E9B5FE1F97D734A27EB5CC50CC9D46; + remoteGlobalIDString = 3D5C8508F5D7F6E6DD86E88C9CF9F8F4; remoteInfo = "SmartDeviceLink-SmartDeviceLink"; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 3D41F49E27EB41BFA8681DEC85560786 /* Copy emhashmap Public Headers */ = { + 07AD40EC7D44C9B8D14224BFDB2DD77E /* Copy . Public Headers */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; - dstPath = "$(PUBLIC_HEADERS_FOLDER_PATH)/emhashmap"; + dstPath = "$(PUBLIC_HEADERS_FOLDER_PATH)/."; dstSubfolderSpec = 16; files = ( - 292938C5EB7ABDEC2E715A153AB2C158 /* emhashmap.h in Copy emhashmap Public Headers */, + D14B926EFC1FDF906D5A57CF73D656A6 /* bson_array.h in Copy . Public Headers */, + 41F229081EA3B2C8DD97C7847EA59C00 /* bson_object.h in Copy . Public Headers */, + B8AD1E30EF9ABF9E7891A547006E7A70 /* bson_util.h in Copy . Public Headers */, ); - name = "Copy emhashmap Public Headers"; + name = "Copy . Public Headers"; runOnlyForDeploymentPostprocessing = 0; }; - FC110E3AF677A49FF455CEA235876FED /* Copy . Public Headers */ = { + 9A486A09638ADD3E6C8A7BDBBDBBF93A /* Copy emhashmap Public Headers */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; - dstPath = "$(PUBLIC_HEADERS_FOLDER_PATH)/."; + dstPath = "$(PUBLIC_HEADERS_FOLDER_PATH)/emhashmap"; dstSubfolderSpec = 16; files = ( - 38FE8058A8ACE4CEABEF049A44575FFF /* bson_array.h in Copy . Public Headers */, - 56E2C7C771DD69397A452F517EB06355 /* bson_object.h in Copy . Public Headers */, - 1505A5832FF9A3A8F285F03FF87D77EF /* bson_util.h in Copy . Public Headers */, + 676C546E11B1621DE2BB157860876C84 /* emhashmap.h in Copy emhashmap Public Headers */, ); - name = "Copy . Public Headers"; + name = "Copy emhashmap Public Headers"; runOnlyForDeploymentPostprocessing = 0; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 002DD635E351A128D9079F0337E8B71E /* SDLGetVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetVehicleDataResponse.m; path = SmartDeviceLink/SDLGetVehicleDataResponse.m; sourceTree = ""; }; - 00B26898CBB957B7498A0668CCF94CAE /* SDLAppInterfaceUnregisteredReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppInterfaceUnregisteredReason.m; path = SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m; sourceTree = ""; }; - 00DC145453C6AE5E4252C91AEC9E4D10 /* SDLLogConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogConstants.h; path = SmartDeviceLink/SDLLogConstants.h; sourceTree = ""; }; - 0111E8E88553B97161A2721E1AE43A1E /* SDLMenuManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuManager.m; path = SmartDeviceLink/SDLMenuManager.m; sourceTree = ""; }; - 01232C2185173CEDDE2F0AE4061AC646 /* ResourceBundle-SmartDeviceLink-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-SmartDeviceLink-Info.plist"; sourceTree = ""; }; - 016CB9356FC0EC057F66DB2E23F3B304 /* NSMutableDictionary+Store.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+Store.m"; path = "SmartDeviceLink/NSMutableDictionary+Store.m"; sourceTree = ""; }; - 0188C9625886A2778A6F31AEA7518719 /* SDLKeyboardProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardProperties.h; path = SmartDeviceLink/SDLKeyboardProperties.h; sourceTree = ""; }; - 01927F53ACFE6C35599C291FAECAE508 /* SDLSystemRequestResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemRequestResponse.h; path = SmartDeviceLink/SDLSystemRequestResponse.h; sourceTree = ""; }; - 01E87A8975185D153094D861550E2DE5 /* SDLManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLManager.m; path = SmartDeviceLink/SDLManager.m; sourceTree = ""; }; - 022836C73FFD3B13313C60652032D850 /* SDLSISData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSISData.m; path = SmartDeviceLink/SDLSISData.m; sourceTree = ""; }; - 02810AB1489C5C87EFC41C36A50AF1C6 /* SDLDeleteFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFile.h; path = SmartDeviceLink/SDLDeleteFile.h; sourceTree = ""; }; - 02E4BC4185F347014878E1B59F325DB7 /* SDLVehicleDataEventStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataEventStatus.h; path = SmartDeviceLink/SDLVehicleDataEventStatus.h; sourceTree = ""; }; - 0353FFB6B9F1743EB1D5CE992BD111F6 /* SDLOnButtonEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnButtonEvent.m; path = SmartDeviceLink/SDLOnButtonEvent.m; sourceTree = ""; }; - 03AA9FAC1C42C80A5F0956A6B96548A9 /* SDLMenuCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuCell.m; path = SmartDeviceLink/SDLMenuCell.m; sourceTree = ""; }; - 03E8ABDBE6E613232D8983F9512CB9A5 /* SDLSeatControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatControlCapabilities.h; path = SmartDeviceLink/SDLSeatControlCapabilities.h; sourceTree = ""; }; - 0440B26CB65E28F9B693133980FEDB2B /* SDLImageFieldName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageFieldName.h; path = SmartDeviceLink/SDLImageFieldName.h; sourceTree = ""; }; - 04546B8E310BE2EF2A7229A62D91C44E /* SDLGetWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetWayPoints.h; path = SmartDeviceLink/SDLGetWayPoints.h; sourceTree = ""; }; - 04992831D25E1188652283952664EC71 /* SDLEncodedSyncPDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncodedSyncPDataResponse.m; path = SmartDeviceLink/SDLEncodedSyncPDataResponse.m; sourceTree = ""; }; - 05044B5C8892129FF1D36B124D5DC0C9 /* SDLAudioStreamingState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamingState.m; path = SmartDeviceLink/SDLAudioStreamingState.m; sourceTree = ""; }; - 05CFD8AB043CBDA71EE6189923FD98CE /* SDLOnAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAudioPassThru.m; path = SmartDeviceLink/SDLOnAudioPassThru.m; sourceTree = ""; }; - 0606C8406E5F0896454C2482843C1837 /* SDLStartTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStartTime.m; path = SmartDeviceLink/SDLStartTime.m; sourceTree = ""; }; - 06D99FBDB86BF07446B44FB4FFCEE7F0 /* SDLLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleManager.m; path = SmartDeviceLink/SDLLifecycleManager.m; sourceTree = ""; }; - 07593F3189E4191BA5055F4E3E6AAAF7 /* SDLTouchEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchEvent.h; path = SmartDeviceLink/SDLTouchEvent.h; sourceTree = ""; }; - 075A05913BC6F33B82BB059FE069BD5B /* SDLUnregisterAppInterfaceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnregisterAppInterfaceResponse.h; path = SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h; sourceTree = ""; }; - 07AFE3CA1A94AE8F3B50436DAD7A651F /* SDLVehicleDataType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataType.h; path = SmartDeviceLink/SDLVehicleDataType.h; sourceTree = ""; }; - 07D5CF6B19D89EA1D458F113E19CDBFA /* SDLPredefinedLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPredefinedLayout.h; path = SmartDeviceLink/SDLPredefinedLayout.h; sourceTree = ""; }; - 0808036535D5C2927F44E2C70BC253A8 /* SDLClimateControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClimateControlData.h; path = SmartDeviceLink/SDLClimateControlData.h; sourceTree = ""; }; - 0837936F0C4FA3F85A7083B6C1445823 /* SDLMyKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMyKey.h; path = SmartDeviceLink/SDLMyKey.h; sourceTree = ""; }; - 0837D198E63D15DBF4D735082E0C46FE /* SDLSoftButtonState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonState.h; path = SmartDeviceLink/SDLSoftButtonState.h; sourceTree = ""; }; - 0890FF58FA08063F6B8494B01ED4A3B4 /* NSBundle+SDLBundle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+SDLBundle.m"; path = "SmartDeviceLink/NSBundle+SDLBundle.m"; sourceTree = ""; }; - 089D381F3674AEC193EFE48A7114A602 /* SDLAddCommandResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddCommandResponse.m; path = SmartDeviceLink/SDLAddCommandResponse.m; sourceTree = ""; }; - 094669C6706179A5AC880CA3B34CBE24 /* bson_array.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_array.h; path = src/bson_array.h; sourceTree = ""; }; - 0946E5C29231E794F5BE1235DBC535B1 /* SDLChoiceSetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceSetManager.m; path = SmartDeviceLink/SDLChoiceSetManager.m; sourceTree = ""; }; - 09B8E32CA0A3C22134FF5943402A19C2 /* SDLLanguage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLanguage.m; path = SmartDeviceLink/SDLLanguage.m; sourceTree = ""; }; - 0A4092219A6781B72119BACC1AF43FD9 /* SDLECallInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLECallInfo.m; path = SmartDeviceLink/SDLECallInfo.m; sourceTree = ""; }; - 0A4F2EA6C3CBD72615526EFA883EDCEF /* SDLTemperature.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemperature.m; path = SmartDeviceLink/SDLTemperature.m; sourceTree = ""; }; - 0ACF94031C97BEE9B67254A7A1FD9DCD /* SDLFileType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileType.m; path = SmartDeviceLink/SDLFileType.m; sourceTree = ""; }; - 0AFC13CD3915A647DA5736D2C6DDB276 /* SDLLogModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogModel.h; path = SmartDeviceLink/SDLLogModel.h; sourceTree = ""; }; - 0B86CE88D851B73EF7B846EEFECEB105 /* SDLWiperStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWiperStatus.h; path = SmartDeviceLink/SDLWiperStatus.h; sourceTree = ""; }; - 0C9316AA5BC0CAEF9D3E3B44A05F3E72 /* SDLDeleteInteractionChoiceSetResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteInteractionChoiceSetResponse.h; path = SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h; sourceTree = ""; }; - 0CB25C3CE5024B113E5C23EC30356631 /* SDLHMISettingsControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMISettingsControlCapabilities.h; path = SmartDeviceLink/SDLHMISettingsControlCapabilities.h; sourceTree = ""; }; - 0D715B7E1E49032AE4CB109BB45DBBE4 /* SDLPreloadChoicesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPreloadChoicesOperation.h; path = SmartDeviceLink/SDLPreloadChoicesOperation.h; sourceTree = ""; }; - 0D9C79FCE97A529AF5665757AE522244 /* SDLResetGlobalPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResetGlobalPropertiesResponse.h; path = SmartDeviceLink/SDLResetGlobalPropertiesResponse.h; sourceTree = ""; }; - 0DBA36F74030B4F0E6662F5C79F37411 /* SDLDiagnosticMessageResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDiagnosticMessageResponse.h; path = SmartDeviceLink/SDLDiagnosticMessageResponse.h; sourceTree = ""; }; - 0E03634E6C3AFED73B96488B3E52D16A /* SDLSoftButtonObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonObject.h; path = SmartDeviceLink/SDLSoftButtonObject.h; sourceTree = ""; }; - 0E6BD9A54F3B696772751E561C7CA26F /* SDLOnPermissionsChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnPermissionsChange.m; path = SmartDeviceLink/SDLOnPermissionsChange.m; sourceTree = ""; }; - 0E9121D1F31F40400B66520537D850C6 /* SDLFuelRange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelRange.h; path = SmartDeviceLink/SDLFuelRange.h; sourceTree = ""; }; - 0EC69CB6F6EE1A9CE6603EC0C528E22F /* SDLTextAndGraphicManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextAndGraphicManager.h; path = SmartDeviceLink/SDLTextAndGraphicManager.h; sourceTree = ""; }; - 0F18A46B205DECC8DF42A3B8D86D81C7 /* SDLStateMachine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStateMachine.m; path = SmartDeviceLink/SDLStateMachine.m; sourceTree = ""; }; - 0F6ED7ED1A5D6F4B1FF1AE4ABAAE5CC9 /* SDLRGBColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRGBColor.h; path = SmartDeviceLink/SDLRGBColor.h; sourceTree = ""; }; - 0FD3F3FCB6D7F8375707A5ADE2B0B9D7 /* SDLVideoEncoderDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoEncoderDelegate.h; path = SmartDeviceLink/SDLVideoEncoderDelegate.h; sourceTree = ""; }; - 100684D476010285D6DBE1D29DE9156F /* SDLPerformInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformInteractionResponse.m; path = SmartDeviceLink/SDLPerformInteractionResponse.m; sourceTree = ""; }; - 1037F8AF88F0F9193A9B244617C64731 /* SDLMassageCushion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageCushion.m; path = SmartDeviceLink/SDLMassageCushion.m; sourceTree = ""; }; - 1072E708C0802544B54DCFAE27D4E692 /* SDLV1ProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV1ProtocolHeader.m; path = SmartDeviceLink/SDLV1ProtocolHeader.m; sourceTree = ""; }; - 10A3387C1452124DC53D5493FAF3D437 /* BiSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = BiSON.framework; path = BiSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 113CC595E16045B043EF5DD17719EC29 /* SDLScrollableMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScrollableMessage.h; path = SmartDeviceLink/SDLScrollableMessage.h; sourceTree = ""; }; - 11932588F33A92E88B06122013AB8F35 /* SDLSetAppIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetAppIcon.m; path = SmartDeviceLink/SDLSetAppIcon.m; sourceTree = ""; }; - 119DF2CF5E29025380EAB643C5C9356A /* SDLOnInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnInteriorVehicleData.m; path = SmartDeviceLink/SDLOnInteriorVehicleData.m; sourceTree = ""; }; - 11A3AA37825F0E52099013FBF6A97454 /* SmartDeviceLink-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartDeviceLink-prefix.pch"; sourceTree = ""; }; - 11E2F665E33EE37B613491E89FC223ED /* SDLVrCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVrCapabilities.m; path = SmartDeviceLink/SDLVrCapabilities.m; sourceTree = ""; }; - 11FDF61E15EA556F1CEF592604857CFA /* SDLSetDisplayLayoutResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetDisplayLayoutResponse.m; path = SmartDeviceLink/SDLSetDisplayLayoutResponse.m; sourceTree = ""; }; - 1227D122A83DA58887D9CC98662EC031 /* SDLOnVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnVehicleData.h; path = SmartDeviceLink/SDLOnVehicleData.h; sourceTree = ""; }; - 12854D0AA526844E80820F9E8E5BEB1B /* SDLRadioState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioState.m; path = SmartDeviceLink/SDLRadioState.m; sourceTree = ""; }; - 12B0F792AFBD733E34339ED1088AD36E /* SDLDeviceInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceInfo.m; path = SmartDeviceLink/SDLDeviceInfo.m; sourceTree = ""; }; - 12E2885863DDF0D17C96EFAAEF45AC56 /* SDLListFiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFiles.m; path = SmartDeviceLink/SDLListFiles.m; sourceTree = ""; }; - 140FFEF6BCEE5E988BE93C6C07C53F70 /* SDLDistanceUnit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDistanceUnit.m; path = SmartDeviceLink/SDLDistanceUnit.m; sourceTree = ""; }; - 1452029094F815D4A37CB7AF1F8F68B1 /* SDLSoftButtonCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonCapabilities.m; path = SmartDeviceLink/SDLSoftButtonCapabilities.m; sourceTree = ""; }; - 1529E778CB489616CEC128365ED5CFA6 /* SDLV1ProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV1ProtocolHeader.h; path = SmartDeviceLink/SDLV1ProtocolHeader.h; sourceTree = ""; }; - 156154601077FD951E5C9AEEB63228A2 /* bson_array.c */ = {isa = PBXFileReference; includeInIndex = 1; name = bson_array.c; path = src/bson_array.c; sourceTree = ""; }; - 157A50F80F2AE11FF47679C6EB949AE8 /* SDLSeatControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatControlCapabilities.m; path = SmartDeviceLink/SDLSeatControlCapabilities.m; sourceTree = ""; }; - 1591790007AA3BAC73DAF98A1189DB79 /* SDLTextAlignment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextAlignment.m; path = SmartDeviceLink/SDLTextAlignment.m; sourceTree = ""; }; - 167B88D798FEEDC592CA68F9B81C3C53 /* SDLSetDisplayLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetDisplayLayout.m; path = SmartDeviceLink/SDLSetDisplayLayout.m; sourceTree = ""; }; - 16CB44DA8808ACB9442032A9896329A8 /* SDLFuelType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelType.m; path = SmartDeviceLink/SDLFuelType.m; sourceTree = ""; }; - 172391E2C767592E37556E01537A8ABF /* SmartDeviceLink.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SmartDeviceLink.modulemap; sourceTree = ""; }; - 17B3E3A1BA828AED08DF168DFCDBD517 /* SDLOnButtonEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnButtonEvent.h; path = SmartDeviceLink/SDLOnButtonEvent.h; sourceTree = ""; }; - 18278F1A7CF8A435D0169F4AF9BC7E07 /* SDLButtonPressResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPressResponse.m; path = SmartDeviceLink/SDLButtonPressResponse.m; sourceTree = ""; }; - 1843B9CA2192C5B3AFC14A50D86F80D2 /* SDLSystemContext.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemContext.m; path = SmartDeviceLink/SDLSystemContext.m; sourceTree = ""; }; - 18641A1747ED648E73C047ED9F2800CD /* SDLHMICapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMICapabilities.h; path = SmartDeviceLink/SDLHMICapabilities.h; sourceTree = ""; }; - 187CBCC47B981AD74A6F93EC13205BFB /* SDLSeatControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatControlData.m; path = SmartDeviceLink/SDLSeatControlData.m; sourceTree = ""; }; - 18E76DED3EBCF8F68EAC43044C919DBE /* SDLFuelType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelType.h; path = SmartDeviceLink/SDLFuelType.h; sourceTree = ""; }; - 19C8E45308B74793CF2A9B319797F667 /* SDLAudioStreamingIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamingIndicator.h; path = SmartDeviceLink/SDLAudioStreamingIndicator.h; sourceTree = ""; }; - 19D811F2001EAF0E3140A317A15C2D2E /* SDLDeleteFileOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFileOperation.h; path = SmartDeviceLink/SDLDeleteFileOperation.h; sourceTree = ""; }; - 19FDF6F587885D1F611772CA7772CAD2 /* SDLButtonName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonName.h; path = SmartDeviceLink/SDLButtonName.h; sourceTree = ""; }; - 1A44AD1324030A352FB7310E3D9272D9 /* SDLH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLH264Packetizer.h; path = SmartDeviceLink/SDLH264Packetizer.h; sourceTree = ""; }; - 1A475293FD2E00B06407A29CE402B3CE /* SDLVoiceCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommand.h; path = SmartDeviceLink/SDLVoiceCommand.h; sourceTree = ""; }; - 1A48D38CDD0CE56654C1E9EE2F457669 /* NSMutableArray+Safe.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+Safe.m"; path = "SmartDeviceLink/NSMutableArray+Safe.m"; sourceTree = ""; }; - 1A8C67EB84DA3FA114CA61C5D36FEC54 /* SDLEndAudioPassThruResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEndAudioPassThruResponse.h; path = SmartDeviceLink/SDLEndAudioPassThruResponse.h; sourceTree = ""; }; - 1AF600A0C57267F1F8E415344E6BAFFC /* SDLShowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowResponse.m; path = SmartDeviceLink/SDLShowResponse.m; sourceTree = ""; }; - 1B25AD2C3F432E69C3F7C65A1FD3AF35 /* SDLRegisterAppInterface.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRegisterAppInterface.m; path = SmartDeviceLink/SDLRegisterAppInterface.m; sourceTree = ""; }; - 1B49E94C86A8F29FC04ECE227ED8900A /* SDLSlider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSlider.h; path = SmartDeviceLink/SDLSlider.h; sourceTree = ""; }; - 1B5726B9900948F08E1B7069AA2DBD54 /* SDLTouchManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchManager.m; path = SmartDeviceLink/SDLTouchManager.m; sourceTree = ""; }; - 1B70EF9DB97245E1B7E90AB87E5B1191 /* SDLImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImage.m; path = SmartDeviceLink/SDLImage.m; sourceTree = ""; }; - 1BB32C87E0F8872B526E252CB1DD75D3 /* NSMutableDictionary+Store.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+Store.h"; path = "SmartDeviceLink/NSMutableDictionary+Store.h"; sourceTree = ""; }; - 1BCFAAA6F0A0783DBF1AE72813201ADF /* SDLControlFramePayloadVideoStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadVideoStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m; sourceTree = ""; }; - 1BEA6AFC834E233B564947D27D26EFA1 /* SDLChangeRegistrationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChangeRegistrationResponse.m; path = SmartDeviceLink/SDLChangeRegistrationResponse.m; sourceTree = ""; }; - 1C1D3256D905B03474679371A70F0D78 /* SDLComponentVolumeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLComponentVolumeStatus.m; path = SmartDeviceLink/SDLComponentVolumeStatus.m; sourceTree = ""; }; - 1C1FD7A0723D168384A7197B14A2529E /* SDLRequestType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRequestType.m; path = SmartDeviceLink/SDLRequestType.m; sourceTree = ""; }; - 1CB47175BD521EA36770290CCE23BAE6 /* SDLSubscribeVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeVehicleData.m; path = SmartDeviceLink/SDLSubscribeVehicleData.m; sourceTree = ""; }; - 1CE06A8C55FD9A4D7FA3F0CAF9744D42 /* SDLProtocolMessageAssembler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessageAssembler.m; path = SmartDeviceLink/SDLProtocolMessageAssembler.m; sourceTree = ""; }; - 1D5F6CEF1D510CDBB8CE4707724F6BCB /* SDLMenuParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuParams.m; path = SmartDeviceLink/SDLMenuParams.m; sourceTree = ""; }; - 1D65D5A42B23A3D0DFDB2A586619FD16 /* SDLLockScreen.storyboard */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.storyboard; name = SDLLockScreen.storyboard; path = Base.lproj/SDLLockScreen.storyboard; sourceTree = ""; }; - 1DA9D3D0835E0ECE0927CA88687021D3 /* SDLDeleteChoicesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteChoicesOperation.h; path = SmartDeviceLink/SDLDeleteChoicesOperation.h; sourceTree = ""; }; - 1DD055CF52ABC534D176AB5FE90081B1 /* SDLNavigationCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationCapability.m; path = SmartDeviceLink/SDLNavigationCapability.m; sourceTree = ""; }; - 1E13C460CB2039AE064C767DD711F563 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRegisterSecondaryTransportNak.h; path = SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.h; sourceTree = ""; }; - 1E464EACE963D6F07103805F407CD25F /* SDLPrerecordedSpeech.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrerecordedSpeech.h; path = SmartDeviceLink/SDLPrerecordedSpeech.h; sourceTree = ""; }; - 1E9AE8F88AA007A3E77461413B3DB811 /* SDLDistanceUnit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDistanceUnit.h; path = SmartDeviceLink/SDLDistanceUnit.h; sourceTree = ""; }; - 1EFC421DB5D3D2E385A73B206770639E /* SDLAddCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddCommand.m; path = SmartDeviceLink/SDLAddCommand.m; sourceTree = ""; }; - 1F4DBA778C889E7AE9BD815E523C2F54 /* SDLSystemAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemAction.h; path = SmartDeviceLink/SDLSystemAction.h; sourceTree = ""; }; - 1FF369F4106991D828A148129F2E8B0A /* SDLPrimaryAudioSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrimaryAudioSource.h; path = SmartDeviceLink/SDLPrimaryAudioSource.h; sourceTree = ""; }; - 2001EE7A12C7EDAE3783A1365BC342A3 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = en.lproj/SDLLockScreen.strings; sourceTree = ""; }; - 2032173FB118D500BFD0E7DA8D151574 /* SDLListFilesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFilesOperation.m; path = SmartDeviceLink/SDLListFilesOperation.m; sourceTree = ""; }; - 2046809A5315CAEC170D3C5D87341E36 /* SDLPerformInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformInteractionResponse.h; path = SmartDeviceLink/SDLPerformInteractionResponse.h; sourceTree = ""; }; - 2088BFCC8505D1E1234DF6E077FBF1ED /* SDLBeltStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBeltStatus.h; path = SmartDeviceLink/SDLBeltStatus.h; sourceTree = ""; }; - 209D2EF1609225256F98BE7E93F0E3D8 /* SDLAlertResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertResponse.h; path = SmartDeviceLink/SDLAlertResponse.h; sourceTree = ""; }; - 21CDAECFA811151A9856EAC58258EBDB /* SDLProtocolMessageDisassembler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessageDisassembler.m; path = SmartDeviceLink/SDLProtocolMessageDisassembler.m; sourceTree = ""; }; - 21FBCD7A2D38BA6674F5B0E20331F1B2 /* SDLTouchType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchType.m; path = SmartDeviceLink/SDLTouchType.m; sourceTree = ""; }; - 220469AA15E3466DA4D330C338703784 /* SDLPresetBankCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresetBankCapabilities.m; path = SmartDeviceLink/SDLPresetBankCapabilities.m; sourceTree = ""; }; - 22D36F8BAF8DA247629274EEAD8B24E7 /* SDLImageField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageField.h; path = SmartDeviceLink/SDLImageField.h; sourceTree = ""; }; - 22DAC079C1CE51D75F9F7BEFD7B1A840 /* SmartDeviceLink.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SmartDeviceLink.framework; path = SmartDeviceLink.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 22FA33898196119A09E11F83C8B822C4 /* SDLAddSubMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddSubMenuResponse.h; path = SmartDeviceLink/SDLAddSubMenuResponse.h; sourceTree = ""; }; - 230B9E5E007D13813F3B04ACEEF59470 /* SDLAudioStreamManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamManager.h; path = SmartDeviceLink/SDLAudioStreamManager.h; sourceTree = ""; }; - 2336A40D34E885F254A79371F2D5B37E /* SDLButtonCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonCapabilities.h; path = SmartDeviceLink/SDLButtonCapabilities.h; sourceTree = ""; }; - 23D2C8F579F60C519B6CD10AAB64E9D0 /* SDLListFilesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFilesResponse.m; path = SmartDeviceLink/SDLListFilesResponse.m; sourceTree = ""; }; - 23E7A3321143B3292C9376581ADDA901 /* SDLHMICapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMICapabilities.m; path = SmartDeviceLink/SDLHMICapabilities.m; sourceTree = ""; }; - 23EE9A21D80BC70F8C3386F5544D3716 /* SDLAppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppInfo.h; path = SmartDeviceLink/SDLAppInfo.h; sourceTree = ""; }; - 242E4D08F5FC5F8C12AC9DA213999E95 /* SDLScreenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScreenManager.h; path = SmartDeviceLink/SDLScreenManager.h; sourceTree = ""; }; - 2443CB63E3BC1583C506BBC04BE50078 /* BiSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BiSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 24B9F83191862C3DAB127D040D7E84C4 /* SDLObjectWithPriority.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLObjectWithPriority.m; path = SmartDeviceLink/SDLObjectWithPriority.m; sourceTree = ""; }; - 259D45E1AFB4F1787FC8E3DE5C59CEAC /* SDLStreamingVideoLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingVideoLifecycleManager.m; path = SmartDeviceLink/SDLStreamingVideoLifecycleManager.m; sourceTree = ""; }; - 25C4802F58BEA5CB3120F017CF4F345C /* SDLLockScreenStatusManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenStatusManager.m; path = SmartDeviceLink/SDLLockScreenStatusManager.m; sourceTree = ""; }; - 25E2288919FDE557C4ECB6A34711AA4D /* EAAccessoryManager+SDLProtocols.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EAAccessoryManager+SDLProtocols.h"; path = "SmartDeviceLink/EAAccessoryManager+SDLProtocols.h"; sourceTree = ""; }; - 26596C07D4C1E171071A437EB43CF250 /* SDLRPCPayload.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCPayload.h; path = SmartDeviceLink/SDLRPCPayload.h; sourceTree = ""; }; - 2661D6B4F1E4A0C87E7B79EB35BB7A17 /* SDLHapticRect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHapticRect.m; path = SmartDeviceLink/SDLHapticRect.m; sourceTree = ""; }; - 272E5831D3FF424605127427E7A90BC3 /* SDLPresetBankCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresetBankCapabilities.h; path = SmartDeviceLink/SDLPresetBankCapabilities.h; sourceTree = ""; }; - 273F3F9D10D2856912B911242697AB75 /* SDLAsynchronousRPCRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousRPCRequestOperation.m; path = SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m; sourceTree = ""; }; - 2783B441BC8A958210375C2CB1FFF38C /* SDLVideoStreamingProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingProtocol.m; path = SmartDeviceLink/SDLVideoStreamingProtocol.m; sourceTree = ""; }; - 278DFF1A727BCE036997E56393C855FA /* SDLSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncPData.h; path = SmartDeviceLink/SDLSyncPData.h; sourceTree = ""; }; - 27B167F71BD19841F6007D7C9CBF2BB1 /* SDLFuelCutoffStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelCutoffStatus.h; path = SmartDeviceLink/SDLFuelCutoffStatus.h; sourceTree = ""; }; - 28116C10F8E6839229E73642FA1E4D49 /* SDLUnsubscribeButtonResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeButtonResponse.m; path = SmartDeviceLink/SDLUnsubscribeButtonResponse.m; sourceTree = ""; }; - 2847C8BA2910893A2A6F1739775ED9F5 /* SDLDisplayCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayCapabilities.m; path = SmartDeviceLink/SDLDisplayCapabilities.m; sourceTree = ""; }; - 28A78FC1E596344107CD9C39F3E1AE20 /* SDLPermissionItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionItem.m; path = SmartDeviceLink/SDLPermissionItem.m; sourceTree = ""; }; - 28D6F148960DD83935B37C3D826B7260 /* SDLHMIPermissions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMIPermissions.h; path = SmartDeviceLink/SDLHMIPermissions.h; sourceTree = ""; }; - 290173F04289B99176783B66E57534AB /* SDLStreamingMediaManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaManager.m; path = SmartDeviceLink/SDLStreamingMediaManager.m; sourceTree = ""; }; - 2920908C8251D21559604E07DAE9CC4F /* SDLMutableDataQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMutableDataQueue.h; path = SmartDeviceLink/SDLMutableDataQueue.h; sourceTree = ""; }; - 294B2803493B4F22870B023507F06FC5 /* SDLDeleteInteractionChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteInteractionChoiceSet.m; path = SmartDeviceLink/SDLDeleteInteractionChoiceSet.m; sourceTree = ""; }; - 294E4A7904CB881EF7321E92C367DCC5 /* SDLTireStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTireStatus.h; path = SmartDeviceLink/SDLTireStatus.h; sourceTree = ""; }; - 294FE66477B32CB65903CAB08A4D0901 /* SDLTouchEventCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchEventCapabilities.m; path = SmartDeviceLink/SDLTouchEventCapabilities.m; sourceTree = ""; }; - 295ADFDF55945E4B0EBE8E376D911934 /* Pods-MobileWeather.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MobileWeather.modulemap"; sourceTree = ""; }; - 29B0DF7E121F9744DDEF8461BEE11346 /* SDLLogFileModuleMap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFileModuleMap.h; path = SmartDeviceLink/SDLLogFileModuleMap.h; sourceTree = ""; }; - 2AAFA2C903287C5055C4409F73717F08 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = de.lproj/SDLLockScreen.strings; sourceTree = ""; }; - 2B2C4A5A90D11A445D20A514AA2B6C69 /* SmartDeviceLink-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartDeviceLink-umbrella.h"; sourceTree = ""; }; - 2B7878ADF0F0D6A17DAE063071E6CA8D /* SDLVideoStreamingProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingProtocol.h; path = SmartDeviceLink/SDLVideoStreamingProtocol.h; sourceTree = ""; }; - 2BAFD24C619E18105CB98355ADC1DA09 /* SDLSoftButtonManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonManager.h; path = SmartDeviceLink/SDLSoftButtonManager.h; sourceTree = ""; }; - 2C02C584E9C325081E3002F99447C832 /* SmartDeviceLink.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = SmartDeviceLink.bundle; path = "SmartDeviceLink-SmartDeviceLink.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2C6F102A06A6693E2DF34B61E773CCDB /* SDLGetWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetWayPointsResponse.h; path = SmartDeviceLink/SDLGetWayPointsResponse.h; sourceTree = ""; }; - 2C915C4AA9086574E49D8331642E4948 /* SDLSupportedSeat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSupportedSeat.m; path = SmartDeviceLink/SDLSupportedSeat.m; sourceTree = ""; }; - 2CEC5466A9425A1BCFF272CB96BB09CF /* SDLAudioControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioControlCapabilities.h; path = SmartDeviceLink/SDLAudioControlCapabilities.h; sourceTree = ""; }; - 2E2EBD053D79C772222DE2E10B18D8FE /* SDLRemoteControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRemoteControlCapabilities.h; path = SmartDeviceLink/SDLRemoteControlCapabilities.h; sourceTree = ""; }; - 2EC269B1966033DB01819D2781AC4309 /* SDLSoftButtonType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonType.m; path = SmartDeviceLink/SDLSoftButtonType.m; sourceTree = ""; }; - 2EE41E56DC2D82CBE3A4B6F45276F73C /* SDLFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFile.m; path = SmartDeviceLink/SDLFile.m; sourceTree = ""; }; - 2F97703AD5D975F96461DFEF2BD9BE22 /* SDLButtonCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonCapabilities.m; path = SmartDeviceLink/SDLButtonCapabilities.m; sourceTree = ""; }; - 2FA874BD88EA74B7BB768D1914F61EEE /* SDLTBTState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTBTState.h; path = SmartDeviceLink/SDLTBTState.h; sourceTree = ""; }; - 2FD4201DF52143CC2A919A9470F285F4 /* SDLPermissionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionManager.m; path = SmartDeviceLink/SDLPermissionManager.m; sourceTree = ""; }; - 3000DA61AEE11E76574446153EA6A9D0 /* SDLStartTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStartTime.h; path = SmartDeviceLink/SDLStartTime.h; sourceTree = ""; }; - 300ED618507FFF56590E18E5EF202190 /* SDLResponseDispatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResponseDispatcher.m; path = SmartDeviceLink/SDLResponseDispatcher.m; sourceTree = ""; }; - 30350A37D735C91E7CF974A4830CA33B /* SDLECallInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLECallInfo.h; path = SmartDeviceLink/SDLECallInfo.h; sourceTree = ""; }; - 30A1C0974FFE84B3A299752EEA455C1B /* SDLCharacterSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCharacterSet.h; path = SmartDeviceLink/SDLCharacterSet.h; sourceTree = ""; }; - 30A208F2A2627ACEFA41F51C36E546F6 /* SDLSequentialRPCRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSequentialRPCRequestOperation.h; path = SmartDeviceLink/SDLSequentialRPCRequestOperation.h; sourceTree = ""; }; - 318E7D64E2E03688E5466308C0C8EAD0 /* SDLSetDisplayLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetDisplayLayout.h; path = SmartDeviceLink/SDLSetDisplayLayout.h; sourceTree = ""; }; - 31A35F792486DE7AFBB2EC2911AE103F /* SDLStreamingAudioLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingAudioLifecycleManager.h; path = SmartDeviceLink/SDLStreamingAudioLifecycleManager.h; sourceTree = ""; }; - 31CDA2AD721D16F7CB22C8FEB7BF1900 /* SDLOnRCStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnRCStatus.h; path = SmartDeviceLink/SDLOnRCStatus.h; sourceTree = ""; }; - 3265C5001A2B5C7FDD75B87FB09F0A9E /* SDLVehicleDataResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataResult.m; path = SmartDeviceLink/SDLVehicleDataResult.m; sourceTree = ""; }; - 32ED80D5DAF69F34604CA7B85C0B657F /* SDLOnWayPointChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnWayPointChange.h; path = SmartDeviceLink/SDLOnWayPointChange.h; sourceTree = ""; }; - 33232BB5262BA6F1226DA202E9671995 /* SDLV2ProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV2ProtocolHeader.h; path = SmartDeviceLink/SDLV2ProtocolHeader.h; sourceTree = ""; }; - 3333FE8BAEDEBFE42D614FE436BD845A /* SDLSystemRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemRequest.m; path = SmartDeviceLink/SDLSystemRequest.m; sourceTree = ""; }; - 3347A8E18A7BA7E697F4FAC02971C531 /* SDLLogFileModuleMap.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFileModuleMap.m; path = SmartDeviceLink/SDLLogFileModuleMap.m; sourceTree = ""; }; - 3469A6571DC2C323C8576335770482C5 /* SDLControlFramePayloadEndService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadEndService.m; path = SmartDeviceLink/SDLControlFramePayloadEndService.m; sourceTree = ""; }; - 34FB346A248BDC3502948C80F744F6B7 /* SDLLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleManager.h; path = SmartDeviceLink/SDLLifecycleManager.h; sourceTree = ""; }; - 35367A3B6B5D2710B91745AE6AD4682D /* SDLIgnitionStableStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIgnitionStableStatus.m; path = SmartDeviceLink/SDLIgnitionStableStatus.m; sourceTree = ""; }; - 35CCA10DFC8096AC5E016E46765C017C /* SDLSubscribeButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButton.h; path = SmartDeviceLink/SDLSubscribeButton.h; sourceTree = ""; }; - 363CE2A5FD5AF0FB3D59F4182F6820BA /* SDLNotificationConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNotificationConstants.h; path = SmartDeviceLink/SDLNotificationConstants.h; sourceTree = ""; }; - 365FC18DA34697E05E3D5EDB05B377B7 /* SDLViewControllerPresentable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLViewControllerPresentable.h; path = SmartDeviceLink/SDLViewControllerPresentable.h; sourceTree = ""; }; - 36627794E114102CDCC27CFF984888EB /* SDLLightControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightControlCapabilities.h; path = SmartDeviceLink/SDLLightControlCapabilities.h; sourceTree = ""; }; - 369B5BF8AEC7813E438E7A758338068A /* SDLRPCResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCResponse.h; path = SmartDeviceLink/SDLRPCResponse.h; sourceTree = ""; }; - 36EFA6746210C481724913EA6E678298 /* SDLFileWrapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileWrapper.m; path = SmartDeviceLink/SDLFileWrapper.m; sourceTree = ""; }; - 371C3337694484EFB099491CD7CBA561 /* SDLSystemCapabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityManager.h; path = SmartDeviceLink/SDLSystemCapabilityManager.h; sourceTree = ""; }; - 37245382BD437F67F1FF0EEB59160BD9 /* SDLLanguage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLanguage.h; path = SmartDeviceLink/SDLLanguage.h; sourceTree = ""; }; - 377445D67676F1D832550CE95B78BB4F /* SDLVrHelpItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVrHelpItem.m; path = SmartDeviceLink/SDLVrHelpItem.m; sourceTree = ""; }; - 37762E39468016593D2D4AD6F5570CCC /* SDLLogTargetFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetFile.h; path = SmartDeviceLink/SDLLogTargetFile.h; sourceTree = ""; }; - 37D8092920B8E5E088E7054B0E3942B8 /* SDLSubscribeWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeWayPointsResponse.m; path = SmartDeviceLink/SDLSubscribeWayPointsResponse.m; sourceTree = ""; }; - 37F60ABA9812A222448532EC0551BAAA /* SDLPrioritizedObjectCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrioritizedObjectCollection.h; path = SmartDeviceLink/SDLPrioritizedObjectCollection.h; sourceTree = ""; }; - 3884964D6FEB0D08398432C7EEDB2FAD /* SDLKeyboardEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardEvent.m; path = SmartDeviceLink/SDLKeyboardEvent.m; sourceTree = ""; }; - 3931112BA99F69A22491E261DD430300 /* SDLCharacterSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCharacterSet.m; path = SmartDeviceLink/SDLCharacterSet.m; sourceTree = ""; }; - 395E1A376C97C99D0683BCB39656C9FE /* SDLChangeRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChangeRegistration.m; path = SmartDeviceLink/SDLChangeRegistration.m; sourceTree = ""; }; - 396E2A6E63106E326669E7D49B49DEF8 /* SDLGPSData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGPSData.h; path = SmartDeviceLink/SDLGPSData.h; sourceTree = ""; }; - 3A3F10D75A29E72E114BC186C312F2C7 /* SDLKeyboardLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardLayout.m; path = SmartDeviceLink/SDLKeyboardLayout.m; sourceTree = ""; }; - 3A44B618A753930AEB7AB149D4B8216A /* SDLTemperatureUnit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemperatureUnit.h; path = SmartDeviceLink/SDLTemperatureUnit.h; sourceTree = ""; }; - 3A4D13E0009268C3B0AF4EE348B8F3E0 /* SDLPinchGesture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPinchGesture.m; path = SmartDeviceLink/SDLPinchGesture.m; sourceTree = ""; }; - 3AA1F076AA965641F75BD01CEF11B284 /* SDLRequestType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRequestType.h; path = SmartDeviceLink/SDLRequestType.h; sourceTree = ""; }; - 3AC5CC5E55197D747732B811BBCDDE2F /* SDLResetGlobalPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResetGlobalPropertiesResponse.m; path = SmartDeviceLink/SDLResetGlobalPropertiesResponse.m; sourceTree = ""; }; - 3B04648E1797EF5AE9C7A3A0EA1503FC /* SDLGPSData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGPSData.m; path = SmartDeviceLink/SDLGPSData.m; sourceTree = ""; }; - 3B11875C27CE5BA6B79B0F5FAEB42813 /* SDLOnKeyboardInput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnKeyboardInput.m; path = SmartDeviceLink/SDLOnKeyboardInput.m; sourceTree = ""; }; - 3B47C27C1C51D3C0496F6DC20D6173B7 /* SDLSoftButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButton.h; path = SmartDeviceLink/SDLSoftButton.h; sourceTree = ""; }; - 3B51FFE36220330A3CACA531C013CFCD /* SDLLockScreenPresenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenPresenter.m; path = SmartDeviceLink/SDLLockScreenPresenter.m; sourceTree = ""; }; - 3B798F817D25B6AC4EB2558AD624BFAC /* SDLDIDResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDIDResult.h; path = SmartDeviceLink/SDLDIDResult.h; sourceTree = ""; }; - 3BA470C9B9EB26D3D32BA81CC044675F /* SDLSpeakResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeakResponse.m; path = SmartDeviceLink/SDLSpeakResponse.m; sourceTree = ""; }; - 3BD2DB088EAE22C7DD20B753FE0006F9 /* SDLStreamingProtocolDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingProtocolDelegate.h; path = SmartDeviceLink/SDLStreamingProtocolDelegate.h; sourceTree = ""; }; - 3C41D652EF9BBF85E62105FDA5237EAA /* SmartDeviceLink-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SmartDeviceLink-dummy.m"; sourceTree = ""; }; - 3D2CD286B7D32EA822FA311A2885651B /* SDLOasisAddress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOasisAddress.m; path = SmartDeviceLink/SDLOasisAddress.m; sourceTree = ""; }; - 3D6C9643ED47D177A573F14BE3364185 /* SDLLifecycleConfigurationUpdate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleConfigurationUpdate.m; path = SmartDeviceLink/SDLLifecycleConfigurationUpdate.m; sourceTree = ""; }; - 3D6DF75BEFE354E7355FDB8A0CF69DC8 /* SDLRPCResponseNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCResponseNotification.m; path = SmartDeviceLink/SDLRPCResponseNotification.m; sourceTree = ""; }; - 3D77537101F4D37E9DC5CF089F2678B1 /* SDLStaticIconName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStaticIconName.h; path = SmartDeviceLink/SDLStaticIconName.h; sourceTree = ""; }; - 3D866FDF5A5451BCEB413407002EE42B /* SDLAlertResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertResponse.m; path = SmartDeviceLink/SDLAlertResponse.m; sourceTree = ""; }; - 3DB6E62464C24A09F0CCEDABD345B9B1 /* SDLOnRCStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnRCStatus.m; path = SmartDeviceLink/SDLOnRCStatus.m; sourceTree = ""; }; - 3DBFF64D9B2AD1BA9EE49B1585A50913 /* SDLVideoStreamingCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingCapability.h; path = SmartDeviceLink/SDLVideoStreamingCapability.h; sourceTree = ""; }; - 3E0F179B62A3D0B60D754AE594FDCD90 /* SDLAsynchronousOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousOperation.h; path = SmartDeviceLink/SDLAsynchronousOperation.h; sourceTree = ""; }; - 3E2E609CCF3FF8FA84D2EA7E5E75B6FF /* SDLPowerModeQualificationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPowerModeQualificationStatus.h; path = SmartDeviceLink/SDLPowerModeQualificationStatus.h; sourceTree = ""; }; - 3E81332C7D788E672B67F2C6B78E9E27 /* SDLSubscribeButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButton.m; path = SmartDeviceLink/SDLSubscribeButton.m; sourceTree = ""; }; - 3EA642FC8AF9F46DC3E8AE79DDE2E472 /* SDLReadDID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReadDID.h; path = SmartDeviceLink/SDLReadDID.h; sourceTree = ""; }; - 3EC8C09312FB4922A1226B9708C6A43C /* SDLRegisterAppInterface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRegisterAppInterface.h; path = SmartDeviceLink/SDLRegisterAppInterface.h; sourceTree = ""; }; - 3ED24853CBACABF3D277A172CDD9E2F6 /* SDLPhoneCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPhoneCapability.h; path = SmartDeviceLink/SDLPhoneCapability.h; sourceTree = ""; }; - 3EE7896D35763F8CAF64B08BA64C53DD /* SDLShowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowResponse.h; path = SmartDeviceLink/SDLShowResponse.h; sourceTree = ""; }; - 3F06E01500491105B758E90A6D3828F0 /* emhashmap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = emhashmap.h; path = src/emhashmap/emhashmap.h; sourceTree = ""; }; - 3F770F0B48C84089402B55A1C16E0BCE /* SDLRadioControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioControlCapabilities.m; path = SmartDeviceLink/SDLRadioControlCapabilities.m; sourceTree = ""; }; - 40A128D8E15179FEFF5E6E00D350F202 /* SDLHeadLampStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHeadLampStatus.m; path = SmartDeviceLink/SDLHeadLampStatus.m; sourceTree = ""; }; - 40C3DCCA2797BCCB1A582257FAD07C67 /* SDLSoftButtonCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonCapabilities.h; path = SmartDeviceLink/SDLSoftButtonCapabilities.h; sourceTree = ""; }; - 41B5153EEE7EBA7454C7569C8E96F5BB /* SDLOnSystemRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSystemRequest.m; path = SmartDeviceLink/SDLOnSystemRequest.m; sourceTree = ""; }; - 41E3A061FF1984AD8701A270A3DEF731 /* SDLPresentKeyboardOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresentKeyboardOperation.h; path = SmartDeviceLink/SDLPresentKeyboardOperation.h; sourceTree = ""; }; - 41EACD9F247C6BE29368926681946F79 /* SDLIAPTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPTransport.m; path = SmartDeviceLink/SDLIAPTransport.m; sourceTree = ""; }; - 4241F5A620863C29571F81EDA3052EF8 /* BiSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BiSON-prefix.pch"; sourceTree = ""; }; - 425112040C5A32D7A5A360DFF736A31A /* SDLKeyboardDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardDelegate.h; path = SmartDeviceLink/SDLKeyboardDelegate.h; sourceTree = ""; }; - 42EBF47E8F2913EC1CE334E935EB5CCB /* SDLAudioStreamingIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamingIndicator.m; path = SmartDeviceLink/SDLAudioStreamingIndicator.m; sourceTree = ""; }; - 4361BDEC05496F0B266C45DAC0E5FC5E /* SDLControlFramePayloadConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadConstants.m; path = SmartDeviceLink/SDLControlFramePayloadConstants.m; sourceTree = ""; }; - 439E51BAD933C8050127EB5370DDA5E3 /* SDLPRNDL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPRNDL.m; path = SmartDeviceLink/SDLPRNDL.m; sourceTree = ""; }; - 43CD4E20EA357AF78C5B0D31F5F31E3E /* SDLSendHapticData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendHapticData.h; path = SmartDeviceLink/SDLSendHapticData.h; sourceTree = ""; }; - 44506CC099F475752271FA11D05D3C75 /* SDLSecondaryTransportPrimaryProtocolHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSecondaryTransportPrimaryProtocolHandler.m; path = SmartDeviceLink/SDLSecondaryTransportPrimaryProtocolHandler.m; sourceTree = ""; }; - 449521F0B43B71DD5E353197D1D06E3C /* SDLResetGlobalProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResetGlobalProperties.m; path = SmartDeviceLink/SDLResetGlobalProperties.m; sourceTree = ""; }; - 44F6704B5CD4628340637ED433FA5BD9 /* SDLSingleTireStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSingleTireStatus.h; path = SmartDeviceLink/SDLSingleTireStatus.h; sourceTree = ""; }; - 45014C9975F976A709301510AA9BF5CA /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = "zh-Hans.lproj/SDLLockScreen.strings"; sourceTree = ""; }; - 45965A5B18DF1E47D2154BD8A8FAC30F /* SDLGlobalProperty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGlobalProperty.m; path = SmartDeviceLink/SDLGlobalProperty.m; sourceTree = ""; }; - 4622BBAB6C0909487F8E5B2C90DED6CF /* SDLDeleteSubMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteSubMenu.h; path = SmartDeviceLink/SDLDeleteSubMenu.h; sourceTree = ""; }; - 465CA59A8B0DC98C5EF708EAA534686B /* SDLLocationCoordinate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLocationCoordinate.m; path = SmartDeviceLink/SDLLocationCoordinate.m; sourceTree = ""; }; - 46852D0AC965ABFD040C0CBC94BA7ED3 /* SDLClimateControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClimateControlData.m; path = SmartDeviceLink/SDLClimateControlData.m; sourceTree = ""; }; - 468C5536AC1C0F7231083ECCF5A80D53 /* NSNumber+NumberType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+NumberType.h"; path = "SmartDeviceLink/NSNumber+NumberType.h"; sourceTree = ""; }; - 46A22E1778DAA87AC1078DE0B1FB4A24 /* SDLTouchEventCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchEventCapabilities.h; path = SmartDeviceLink/SDLTouchEventCapabilities.h; sourceTree = ""; }; - 46E9F30F07D90FE0DD803922742B11F4 /* SDLTurnSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTurnSignal.h; path = SmartDeviceLink/SDLTurnSignal.h; sourceTree = ""; }; - 46EE98845646D112104D2F453723124B /* SDLScrollableMessageResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScrollableMessageResponse.m; path = SmartDeviceLink/SDLScrollableMessageResponse.m; sourceTree = ""; }; - 471FCD3698B75159B2B7FE7C7034350A /* SDLMediaClockFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaClockFormat.m; path = SmartDeviceLink/SDLMediaClockFormat.m; sourceTree = ""; }; - 477073728CED1665888DAB004B490CE1 /* SDLECallConfirmationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLECallConfirmationStatus.h; path = SmartDeviceLink/SDLECallConfirmationStatus.h; sourceTree = ""; }; - 47CAE090B7FBD44E13C4D60C7AD48B5A /* SDLCompassDirection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCompassDirection.m; path = SmartDeviceLink/SDLCompassDirection.m; sourceTree = ""; }; - 47CE23F2A53DB7E089222EE09F29BB9D /* SDLChangeRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChangeRegistration.h; path = SmartDeviceLink/SDLChangeRegistration.h; sourceTree = ""; }; - 47E4A52D2392FB209D8115764D1AB1D9 /* SDLWayPointType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWayPointType.h; path = SmartDeviceLink/SDLWayPointType.h; sourceTree = ""; }; - 488731B70B7B275F56E7D61460E53EDB /* SDLEndAudioPassThruResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEndAudioPassThruResponse.m; path = SmartDeviceLink/SDLEndAudioPassThruResponse.m; sourceTree = ""; }; - 489D8CDA867A051C8CB4598886BC2C04 /* SDLTemperatureUnit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemperatureUnit.m; path = SmartDeviceLink/SDLTemperatureUnit.m; sourceTree = ""; }; - 48E79B4506F1594D6325574D14CD0E9F /* SDLDeleteCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteCommand.h; path = SmartDeviceLink/SDLDeleteCommand.h; sourceTree = ""; }; - 492D4F2D51A313D0902E178DD1AEF5B8 /* SDLSetGlobalPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetGlobalPropertiesResponse.m; path = SmartDeviceLink/SDLSetGlobalPropertiesResponse.m; sourceTree = ""; }; - 496F8FA240630F82A3F2A1D13DF8A11B /* SDLKeyboardProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardProperties.m; path = SmartDeviceLink/SDLKeyboardProperties.m; sourceTree = ""; }; - 49B5DC50A25037F3B47CD43A3A38A293 /* SDLMaintenanceModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMaintenanceModeStatus.h; path = SmartDeviceLink/SDLMaintenanceModeStatus.h; sourceTree = ""; }; - 4AE0C41A32832B291234AD2D5DDA906A /* bson_object.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_object.h; path = src/bson_object.h; sourceTree = ""; }; - 4AF1C559A0C4A201639345F720AFD5BB /* SDLCreateInteractionChoiceSetResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateInteractionChoiceSetResponse.m; path = SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m; sourceTree = ""; }; - 4B04DEDF8E1EC38E7797CB6ADC6AF974 /* SDLUnsubscribeVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeVehicleDataResponse.m; path = SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m; sourceTree = ""; }; - 4B40E200FFCC2C033F655E0762F736EC /* SDLLogFileModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFileModule.h; path = SmartDeviceLink/SDLLogFileModule.h; sourceTree = ""; }; - 4B4399C0A212B0ADF6F7FC0F8BE41255 /* SDLModuleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleData.h; path = SmartDeviceLink/SDLModuleData.h; sourceTree = ""; }; - 4B528FBE5DCB2E0BA367288234BCF214 /* SDLDateTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDateTime.m; path = SmartDeviceLink/SDLDateTime.m; sourceTree = ""; }; - 4B824FEA6352112490D78F7DC1FBA9B1 /* SDLStreamingAudioLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingAudioLifecycleManager.m; path = SmartDeviceLink/SDLStreamingAudioLifecycleManager.m; sourceTree = ""; }; - 4C38CF58405932FA0DE21389A5726742 /* SDLLockScreenViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenViewController.m; path = SmartDeviceLink/SDLLockScreenViewController.m; sourceTree = ""; }; - 4C5CF9F2FDF3B546DE71D830925E9009 /* SDLOnHashChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnHashChange.h; path = SmartDeviceLink/SDLOnHashChange.h; sourceTree = ""; }; - 4CB88BEF9293FF56B12501BD13427203 /* SDLAudioType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioType.h; path = SmartDeviceLink/SDLAudioType.h; sourceTree = ""; }; - 4CDD3D2D0CF385680EB87073079FCBB8 /* BiSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BiSON-umbrella.h"; sourceTree = ""; }; - 4D15B10D35949DEF7E116F8929404525 /* SDLAppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppInfo.m; path = SmartDeviceLink/SDLAppInfo.m; sourceTree = ""; }; - 4D7A37098585D1F6516F67BC762B9572 /* SDLSoftButtonObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonObject.m; path = SmartDeviceLink/SDLSoftButtonObject.m; sourceTree = ""; }; - 4EBBAF147C064ED2D11A1F98C0FDD1B2 /* SDLTouchManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchManager.h; path = SmartDeviceLink/SDLTouchManager.h; sourceTree = ""; }; - 4EC8912E98FFAFABA1F37F237009B570 /* SDLDeleteCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteCommand.m; path = SmartDeviceLink/SDLDeleteCommand.m; sourceTree = ""; }; - 4EDDC83C524683164037103A5F5B3B03 /* SDLResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResult.m; path = SmartDeviceLink/SDLResult.m; sourceTree = ""; }; - 4EE6606F6C0D71B52E9372BC5167AEDB /* SDLEndAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEndAudioPassThru.m; path = SmartDeviceLink/SDLEndAudioPassThru.m; sourceTree = ""; }; - 4F116A936C935377D447B23EA176F852 /* SDLProtocolReceivedMessageRouter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolReceivedMessageRouter.m; path = SmartDeviceLink/SDLProtocolReceivedMessageRouter.m; sourceTree = ""; }; - 4FC43F423FA3244DD43D35DB11AE4DCC /* SDLDeleteCommandResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteCommandResponse.h; path = SmartDeviceLink/SDLDeleteCommandResponse.h; sourceTree = ""; }; - 4FD44B3ACC314A595F73DDE8C41B4345 /* SDLRPCResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCResponse.m; path = SmartDeviceLink/SDLRPCResponse.m; sourceTree = ""; }; - 5026B768F427D41AD264854700D76084 /* SDLSetAppIconResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetAppIconResponse.m; path = SmartDeviceLink/SDLSetAppIconResponse.m; sourceTree = ""; }; - 5077BEA250C7539EE60A931402EE49B9 /* SDLVehicleDataActiveStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataActiveStatus.h; path = SmartDeviceLink/SDLVehicleDataActiveStatus.h; sourceTree = ""; }; - 50B52EA74D5660706430668E12DC6C34 /* SDLButtonPressResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPressResponse.h; path = SmartDeviceLink/SDLButtonPressResponse.h; sourceTree = ""; }; - 50B8BBC9E1B415E5920A1FBA5133F375 /* SDLAlert.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlert.m; path = SmartDeviceLink/SDLAlert.m; sourceTree = ""; }; - 50D7B874B9AE6B227AA8F4F50CAA1FCF /* SDLRectangle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRectangle.h; path = SmartDeviceLink/SDLRectangle.h; sourceTree = ""; }; - 50FEDDD1C36DDED7C4070C8E3AFE4306 /* SDLManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLManagerDelegate.h; path = SmartDeviceLink/SDLManagerDelegate.h; sourceTree = ""; }; - 510BD182D2555F3EC0384B30036E0ED9 /* SDLImageField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageField.m; path = SmartDeviceLink/SDLImageField.m; sourceTree = ""; }; - 5115280AA762C6A3FD3BAB916224BB7D /* SDLReadDIDResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReadDIDResponse.m; path = SmartDeviceLink/SDLReadDIDResponse.m; sourceTree = ""; }; - 515E6C76E4E40643313548862912653D /* SDLUnsubscribeVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeVehicleData.m; path = SmartDeviceLink/SDLUnsubscribeVehicleData.m; sourceTree = ""; }; - 51D7FA6FD82FCAA3F5859800C0D06812 /* NSBundle+SDLBundle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+SDLBundle.h"; path = "SmartDeviceLink/NSBundle+SDLBundle.h"; sourceTree = ""; }; - 527A7F8C142E616553D35AF4098262F1 /* SDLAsynchronousRPCRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousRPCRequestOperation.h; path = SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h; sourceTree = ""; }; - 52FD4FBAB16A6A7EC06FC2EAC24E3EB5 /* BiSON.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BiSON.xcconfig; sourceTree = ""; }; - 53342DFDFA72B33415BAE7AB03F96F02 /* SDLInteractionMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLInteractionMode.h; path = SmartDeviceLink/SDLInteractionMode.h; sourceTree = ""; }; - 539D18C1C073C34EF0AC35AC764611FC /* SDLPowerModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPowerModeStatus.m; path = SmartDeviceLink/SDLPowerModeStatus.m; sourceTree = ""; }; - 53A52D72644B89F231422DFAA23D9A94 /* SDLPCMAudioConverter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPCMAudioConverter.m; path = SmartDeviceLink/SDLPCMAudioConverter.m; sourceTree = ""; }; - 53AF765EA8E95848A51E4EF568E373E4 /* SDLPolicyDataParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPolicyDataParser.h; path = SmartDeviceLink/SDLPolicyDataParser.h; sourceTree = ""; }; - 53B6392C0544376075AE0688976F4995 /* SDLTouchEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchEvent.m; path = SmartDeviceLink/SDLTouchEvent.m; sourceTree = ""; }; - 5403F40FB18F1132FAFDAD339E3514B9 /* SDLButtonPressMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPressMode.h; path = SmartDeviceLink/SDLButtonPressMode.h; sourceTree = ""; }; - 5413252548EB4A0449D30D5673A28F0B /* SDLImageFieldName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageFieldName.m; path = SmartDeviceLink/SDLImageFieldName.m; sourceTree = ""; }; - 544E15AB2D6A32CDC138E9D68B84226E /* SDLSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncPData.m; path = SmartDeviceLink/SDLSyncPData.m; sourceTree = ""; }; - 549F7580C94EB69D5BE9C5F4B08F5083 /* SDLLogTargetAppleSystemLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetAppleSystemLog.h; path = SmartDeviceLink/SDLLogTargetAppleSystemLog.h; sourceTree = ""; }; - 54AD9BB2ED9351E39DEE63C0E9B9ED5F /* SDLVehicleDataStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataStatus.m; path = SmartDeviceLink/SDLVehicleDataStatus.m; sourceTree = ""; }; - 54DC3D413110C5F46BA1C71A76E934EE /* SDLOnAppInterfaceUnregistered.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAppInterfaceUnregistered.m; path = SmartDeviceLink/SDLOnAppInterfaceUnregistered.m; sourceTree = ""; }; - 552B58C8C471E41210FCFEC0FB79E946 /* SDLShowConstantTBT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowConstantTBT.h; path = SmartDeviceLink/SDLShowConstantTBT.h; sourceTree = ""; }; - 55A7A1220C06CCE1A9A4550B36EA8D03 /* SDLSetMediaClockTimerResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetMediaClockTimerResponse.m; path = SmartDeviceLink/SDLSetMediaClockTimerResponse.m; sourceTree = ""; }; - 55E755AC3C038CDDF96EE7AF1ED8DD5F /* SDLTemplateColorScheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemplateColorScheme.m; path = SmartDeviceLink/SDLTemplateColorScheme.m; sourceTree = ""; }; - 55F7F5D6907BDC05663E93F45A150CBF /* SDLPCMAudioConverter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPCMAudioConverter.h; path = SmartDeviceLink/SDLPCMAudioConverter.h; sourceTree = ""; }; - 55FBF2206E466027D718DFFDCE35B916 /* SDLDeleteFileOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileOperation.m; path = SmartDeviceLink/SDLDeleteFileOperation.m; sourceTree = ""; }; - 5608E1B518D7DC608F90543748504EDE /* SDLPerformAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAudioPassThru.m; path = SmartDeviceLink/SDLPerformAudioPassThru.m; sourceTree = ""; }; - 561E7859983DC63B87B4C26B0FE33EA8 /* SDLTCPTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTCPTransport.h; path = SmartDeviceLink/SDLTCPTransport.h; sourceTree = ""; }; - 567704385F3D6A56D7306254057ABE58 /* SDLTurn.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTurn.m; path = SmartDeviceLink/SDLTurn.m; sourceTree = ""; }; - 56D0196F865D56B6B7B5A1E790ABB1CD /* SDLTouchManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchManagerDelegate.h; path = SmartDeviceLink/SDLTouchManagerDelegate.h; sourceTree = ""; }; - 570466811B7708FD306FECA152F11CB9 /* SDLShowConstantTBT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowConstantTBT.m; path = SmartDeviceLink/SDLShowConstantTBT.m; sourceTree = ""; }; - 5761EF60549E9FE40D6E1CB212E18183 /* SDLHexUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHexUtility.h; path = SmartDeviceLink/SDLHexUtility.h; sourceTree = ""; }; - 57E931AA5B67D1C316B05D9969D72FA3 /* SDLElectronicParkBrakeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLElectronicParkBrakeStatus.m; path = SmartDeviceLink/SDLElectronicParkBrakeStatus.m; sourceTree = ""; }; - 5817B772125FFF900077E9623DCD7E0F /* SDLBodyInformation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBodyInformation.h; path = SmartDeviceLink/SDLBodyInformation.h; sourceTree = ""; }; - 584A0744AB8704605C04A7819AA5939D /* SDLCheckChoiceVROptionalOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCheckChoiceVROptionalOperation.m; path = SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m; sourceTree = ""; }; - 58A9BC0BD679E91F8A1E67C32BAB9F47 /* SDLTurn.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTurn.h; path = SmartDeviceLink/SDLTurn.h; sourceTree = ""; }; - 58B239BE8E1A3830C8DF443CC8EA4305 /* NSMapTable+Subscripting.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMapTable+Subscripting.h"; path = "SmartDeviceLink/NSMapTable+Subscripting.h"; sourceTree = ""; }; - 58FEBFDAA6ED51BFCA92BDE0533F474B /* SDLShow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShow.m; path = SmartDeviceLink/SDLShow.m; sourceTree = ""; }; - 599BA3E45332CFB483D279AAB352F58E /* SDLClimateControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClimateControlCapabilities.h; path = SmartDeviceLink/SDLClimateControlCapabilities.h; sourceTree = ""; }; - 5A46CDE4067982A9BB8B1C7265FA9B12 /* SDLPresentChoiceSetOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresentChoiceSetOperation.m; path = SmartDeviceLink/SDLPresentChoiceSetOperation.m; sourceTree = ""; }; - 5A53D998E7BE6ABB127ADBCB5D4437AE /* SDLModuleType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleType.m; path = SmartDeviceLink/SDLModuleType.m; sourceTree = ""; }; - 5A7CF2F17162C0947A4E9AF853EFDF84 /* SDLPerformInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformInteraction.h; path = SmartDeviceLink/SDLPerformInteraction.h; sourceTree = ""; }; - 5B01F7BB17F17473A280E74211727645 /* SDLManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLManager.h; path = SmartDeviceLink/SDLManager.h; sourceTree = ""; }; - 5B02040B6B2927923E23CE8142AD72B8 /* SDLPermissionFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionFilter.m; path = SmartDeviceLink/SDLPermissionFilter.m; sourceTree = ""; }; - 5B17A24A0D4554865BD3A2D6600A70C0 /* SDLTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTimer.h; path = SmartDeviceLink/SDLTimer.h; sourceTree = ""; }; - 5B67A0A948EFB9B13F0BD857E76ABAF1 /* CGPoint_Util.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CGPoint_Util.m; path = SmartDeviceLink/CGPoint_Util.m; sourceTree = ""; }; - 5BEB89763BD1E176E41C5EBB3826F50C /* SDLButtonEventMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonEventMode.m; path = SmartDeviceLink/SDLButtonEventMode.m; sourceTree = ""; }; - 5C2874B5B64A663350964F44E1ECA561 /* SDLSystemCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapability.m; path = SmartDeviceLink/SDLSystemCapability.m; sourceTree = ""; }; - 5C6E41A82E5A6888918B0B8014D20735 /* SDLScreenParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScreenParams.h; path = SmartDeviceLink/SDLScreenParams.h; sourceTree = ""; }; - 5CFD65E97C36BF1818AFA38283A9A5F4 /* SDLDeleteInteractionChoiceSetResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteInteractionChoiceSetResponse.m; path = SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m; sourceTree = ""; }; - 5DDA353CC3E6C2F475B1D16AC7477D4B /* SDLMetadataType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMetadataType.h; path = SmartDeviceLink/SDLMetadataType.h; sourceTree = ""; }; - 5ED1206D735E32E869AE7B5BDA210D19 /* SDLUnsubscribeWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeWayPointsResponse.h; path = SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h; sourceTree = ""; }; - 5F5FD2872F26AF396350B7190E6DE3E9 /* SDLStationIDNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStationIDNumber.h; path = SmartDeviceLink/SDLStationIDNumber.h; sourceTree = ""; }; - 5F63F1BC5EED51E8F4A0CC89A563E14B /* Pods-MobileWeather-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MobileWeather-dummy.m"; sourceTree = ""; }; - 5F82466C45406490A64E03020D7695E5 /* SDLGetSystemCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetSystemCapability.m; path = SmartDeviceLink/SDLGetSystemCapability.m; sourceTree = ""; }; - 5F829F2659AFF96D13AD1D9EE4B5EFA7 /* SDLRAWH264Packetizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRAWH264Packetizer.m; path = SmartDeviceLink/SDLRAWH264Packetizer.m; sourceTree = ""; }; - 5FCB10648C75AA3261FFEBA504FA91D1 /* SDLCarModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarModeStatus.m; path = SmartDeviceLink/SDLCarModeStatus.m; sourceTree = ""; }; - 5FE9C23070AA78567710035A0CBD5AAD /* SDLCompassDirection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCompassDirection.h; path = SmartDeviceLink/SDLCompassDirection.h; sourceTree = ""; }; - 5FEC2CD895899EA829A11AB6F3A45BB8 /* SDLH264VideoEncoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLH264VideoEncoder.m; path = SmartDeviceLink/SDLH264VideoEncoder.m; sourceTree = ""; }; - 6005348BEB563D39CB3F58D14980AAC3 /* SDLStaticIconName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStaticIconName.m; path = SmartDeviceLink/SDLStaticIconName.m; sourceTree = ""; }; - 60AC85822D7B2986864CEF6F1951ED33 /* SDLSetAppIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetAppIcon.h; path = SmartDeviceLink/SDLSetAppIcon.h; sourceTree = ""; }; - 60D99BD0A38FFE51A06990C44060C1B5 /* SDLStreamingAudioManagerType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingAudioManagerType.h; path = SmartDeviceLink/SDLStreamingAudioManagerType.h; sourceTree = ""; }; - 60E7BF58504667B6C399DDBD6B080290 /* SDLGetVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetVehicleDataResponse.h; path = SmartDeviceLink/SDLGetVehicleDataResponse.h; sourceTree = ""; }; - 60F3D61C1A9777D5DC05B26C11612C34 /* SDLShowConstantTBTResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowConstantTBTResponse.h; path = SmartDeviceLink/SDLShowConstantTBTResponse.h; sourceTree = ""; }; - 60FA77C4D30CEF11FC44F1FD78B7B62D /* SDLDriverDistractionState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDriverDistractionState.m; path = SmartDeviceLink/SDLDriverDistractionState.m; sourceTree = ""; }; - 613CB777291FE463B847AB0CE424E3E2 /* SDLTextFieldName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextFieldName.m; path = SmartDeviceLink/SDLTextFieldName.m; sourceTree = ""; }; - 61D900C5783B4A7CCFDED7AB11155F20 /* SDLPutFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPutFile.m; path = SmartDeviceLink/SDLPutFile.m; sourceTree = ""; }; - 61F82FF5A93D0558A5851A023E3C7B66 /* SDLPowerModeQualificationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPowerModeQualificationStatus.m; path = SmartDeviceLink/SDLPowerModeQualificationStatus.m; sourceTree = ""; }; - 61FA3AFD5648ADEAE62EFD80E14460DE /* SDLDateTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDateTime.h; path = SmartDeviceLink/SDLDateTime.h; sourceTree = ""; }; - 623492413C9581E1C2A71421E771D34D /* SDLSpeechCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeechCapabilities.h; path = SmartDeviceLink/SDLSpeechCapabilities.h; sourceTree = ""; }; - 624FFEDC969D0C72CDBCEF24B6F1FF30 /* SDLPolicyDataParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPolicyDataParser.m; path = SmartDeviceLink/SDLPolicyDataParser.m; sourceTree = ""; }; - 6263819ACF21688B5F135FFFFADBDDFF /* SDLTextFieldName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextFieldName.h; path = SmartDeviceLink/SDLTextFieldName.h; sourceTree = ""; }; - 627289BC87F3B0D346ED8F78C3279330 /* SDLChangeRegistrationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChangeRegistrationResponse.h; path = SmartDeviceLink/SDLChangeRegistrationResponse.h; sourceTree = ""; }; - 62825F78AC67E047CDD779B82434FFFB /* SDLRadioControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioControlCapabilities.h; path = SmartDeviceLink/SDLRadioControlCapabilities.h; sourceTree = ""; }; - 63466A9AB415882C06F7AE80584F210C /* SDLWarningLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWarningLightStatus.m; path = SmartDeviceLink/SDLWarningLightStatus.m; sourceTree = ""; }; - 63AB26B885F72FFE7CEF0E215898985A /* SDLOnDriverDistraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnDriverDistraction.h; path = SmartDeviceLink/SDLOnDriverDistraction.h; sourceTree = ""; }; - 641BBB21F504981EFCD18E36DC8154FA /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = fr.lproj/SDLLockScreen.strings; sourceTree = ""; }; - 645F30D3F4D32CB6290C7AAEB1B01792 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 652C07114772A9C6F9290111810BDD9B /* SDLIAPSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPSession.h; path = SmartDeviceLink/SDLIAPSession.h; sourceTree = ""; }; - 65E812DEA551B30816A17B71B1C41FBA /* SDLGetDTCs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetDTCs.m; path = SmartDeviceLink/SDLGetDTCs.m; sourceTree = ""; }; - 66350E5DE80B51CCE2C62602727CED1B /* SDLEncodedSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncodedSyncPData.m; path = SmartDeviceLink/SDLEncodedSyncPData.m; sourceTree = ""; }; - 679EDF19C388A9D5231B8F50D3AB5E33 /* SDLKeypressMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeypressMode.m; path = SmartDeviceLink/SDLKeypressMode.m; sourceTree = ""; }; - 67B626A3DF2C3F1EFB63B489EDD72508 /* SDLTouch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouch.h; path = SmartDeviceLink/SDLTouch.h; sourceTree = ""; }; - 6803B20ED362AB70967B0C7055309A61 /* SDLVehicleDataNotificationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataNotificationStatus.m; path = SmartDeviceLink/SDLVehicleDataNotificationStatus.m; sourceTree = ""; }; - 69EA01C2187093B7478259DDCAA70FFF /* SDLGetWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetWayPointsResponse.m; path = SmartDeviceLink/SDLGetWayPointsResponse.m; sourceTree = ""; }; - 6A19C848AB1E8F2E05CFD76981E2F0E4 /* SDLPermissionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionManager.h; path = SmartDeviceLink/SDLPermissionManager.h; sourceTree = ""; }; - 6A1AC42C1CE7CEE7544BFD3843B028D5 /* SDLRAWH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRAWH264Packetizer.h; path = SmartDeviceLink/SDLRAWH264Packetizer.h; sourceTree = ""; }; - 6A5D8127E561291818D7A21C758371D3 /* SDLRTPH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRTPH264Packetizer.h; path = SmartDeviceLink/SDLRTPH264Packetizer.h; sourceTree = ""; }; - 6A6B8D51F0041FD1CAA462F5ACAF4C92 /* SDLGetSystemCapabilityResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetSystemCapabilityResponse.h; path = SmartDeviceLink/SDLGetSystemCapabilityResponse.h; sourceTree = ""; }; - 6B6856DBF98E284150E71B1C1DA80384 /* SDLAudioFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioFile.h; path = SmartDeviceLink/SDLAudioFile.h; sourceTree = ""; }; - 6C44944669F93F4CD5B2A347BC128591 /* SDLOnTBTClientState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnTBTClientState.h; path = SmartDeviceLink/SDLOnTBTClientState.h; sourceTree = ""; }; - 6CD2936B444045437D2B8385225ABCD1 /* SDLProtocolReceivedMessageRouter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolReceivedMessageRouter.h; path = SmartDeviceLink/SDLProtocolReceivedMessageRouter.h; sourceTree = ""; }; - 6CD9E0DF1EFE3DE7FF4D549A53E52886 /* SDLSubscribeButtonResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonResponse.m; path = SmartDeviceLink/SDLSubscribeButtonResponse.m; sourceTree = ""; }; - 6CE607A99E39243283702C5108A74120 /* SDLFileWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileWrapper.h; path = SmartDeviceLink/SDLFileWrapper.h; sourceTree = ""; }; - 6D6C98D5009149E1EBB3CB41C86D68B8 /* SDLMassageCushionFirmness.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageCushionFirmness.m; path = SmartDeviceLink/SDLMassageCushionFirmness.m; sourceTree = ""; }; - 6E198C907E3D8D13A562100426F21D81 /* SDLSubscribeButtonResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonResponse.h; path = SmartDeviceLink/SDLSubscribeButtonResponse.h; sourceTree = ""; }; - 6E3A2064E0524131FC651270B2D6B5BD /* SDLInteractionMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLInteractionMode.m; path = SmartDeviceLink/SDLInteractionMode.m; sourceTree = ""; }; - 6E80F2AAA864A0E9A66967638620AE60 /* SDLCheckChoiceVROptionalOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCheckChoiceVROptionalOperation.h; path = SmartDeviceLink/SDLCheckChoiceVROptionalOperation.h; sourceTree = ""; }; - 6F6D75EF40F4FAB836D0BB49BD187336 /* SDLRadioControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioControlData.m; path = SmartDeviceLink/SDLRadioControlData.m; sourceTree = ""; }; - 6FCA8FB78161DD00FAD7CF36B71D6E64 /* SDLLogFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFilter.m; path = SmartDeviceLink/SDLLogFilter.m; sourceTree = ""; }; - 701B5609A93C858CAFCCEED925DA688E /* SDLVideoStreamingState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingState.h; path = SmartDeviceLink/SDLVideoStreamingState.h; sourceTree = ""; }; - 701F9FEB0B747B0243ACC80B6C9300A1 /* SDLChoiceSetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSetManager.h; path = SmartDeviceLink/SDLChoiceSetManager.h; sourceTree = ""; }; - 70578C80B038B8AA2C6EF0AEAC8B9A13 /* SDLFocusableItemHitTester.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemHitTester.h; path = SmartDeviceLink/SDLFocusableItemHitTester.h; sourceTree = ""; }; - 70616FFD3793CF95AC174A49C2C43D06 /* SDLOnTouchEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnTouchEvent.h; path = SmartDeviceLink/SDLOnTouchEvent.h; sourceTree = ""; }; - 71162CCC8CA6338D5ECE5EFE435E95AA /* SDLProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocol.m; path = SmartDeviceLink/SDLProtocol.m; sourceTree = ""; }; - 711AC2364C89D3D17514B14D663A1AF6 /* SDLError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLError.h; path = SmartDeviceLink/SDLError.h; sourceTree = ""; }; - 71AD2A07C9CFE4A12C4EF8EDD7F55F03 /* SDLSendHapticData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendHapticData.m; path = SmartDeviceLink/SDLSendHapticData.m; sourceTree = ""; }; - 7270226214680022216FC52367E6F29D /* SDLSamplingRate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSamplingRate.m; path = SmartDeviceLink/SDLSamplingRate.m; sourceTree = ""; }; - 7276A699E37C828398FD98759C45D7B5 /* SDLDimension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDimension.h; path = SmartDeviceLink/SDLDimension.h; sourceTree = ""; }; - 72782025CCF03AC32ADC435C468D3CC6 /* SDLOnPermissionsChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnPermissionsChange.h; path = SmartDeviceLink/SDLOnPermissionsChange.h; sourceTree = ""; }; - 72A178D46F20374B4187B44480590E7B /* SDLFileManagerConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileManagerConfiguration.m; path = SmartDeviceLink/SDLFileManagerConfiguration.m; sourceTree = ""; }; - 72D57C660CB1CFDB78815F561CA5B9C1 /* SDLDeleteChoicesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteChoicesOperation.m; path = SmartDeviceLink/SDLDeleteChoicesOperation.m; sourceTree = ""; }; - 72DA23D6B1B8CEE91F55CF693FD690B2 /* SDLVentilationMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVentilationMode.h; path = SmartDeviceLink/SDLVentilationMode.h; sourceTree = ""; }; - 72EC467B07A1E6122174621820BE095D /* SDLDiagnosticMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDiagnosticMessage.h; path = SmartDeviceLink/SDLDiagnosticMessage.h; sourceTree = ""; }; - 736669CDE9458CABAE6AC40FF3A7C523 /* SDLOnEncodedSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnEncodedSyncPData.h; path = SmartDeviceLink/SDLOnEncodedSyncPData.h; sourceTree = ""; }; - 7369D4C540A1A6DCB0914BE60C051602 /* SDLUpdateTurnList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateTurnList.h; path = SmartDeviceLink/SDLUpdateTurnList.h; sourceTree = ""; }; - 73BF15804B3C2E102BB06B6A1FB46829 /* SDLControlFramePayloadNak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadNak.h; path = SmartDeviceLink/SDLControlFramePayloadNak.h; sourceTree = ""; }; - 73BFFE658487D4F07A220194D46B6657 /* SDLGetSystemCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetSystemCapability.h; path = SmartDeviceLink/SDLGetSystemCapability.h; sourceTree = ""; }; - 73EC5A5C8B44BA83334F832BC77A7E87 /* SDLKeyboardEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardEvent.h; path = SmartDeviceLink/SDLKeyboardEvent.h; sourceTree = ""; }; - 73EE85CE5BDD312FCEE5664BB16E7CBC /* SDLSystemCapabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityManager.m; path = SmartDeviceLink/SDLSystemCapabilityManager.m; sourceTree = ""; }; - 7464353B95BD2991945285ACC552CABA /* SDLLayoutMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLayoutMode.h; path = SmartDeviceLink/SDLLayoutMode.h; sourceTree = ""; }; - 746FCB82877FFB49197939B552D51B4F /* NSMapTable+Subscripting.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMapTable+Subscripting.m"; path = "SmartDeviceLink/NSMapTable+Subscripting.m"; sourceTree = ""; }; - 74A196E00B38B0AA6CE7F5CFC4361BB1 /* SDLAudioStreamManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamManagerDelegate.h; path = SmartDeviceLink/SDLAudioStreamManagerDelegate.h; sourceTree = ""; }; - 74C1219630B98AA4BC12B5245AA5CFB1 /* SDLVrCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVrCapabilities.h; path = SmartDeviceLink/SDLVrCapabilities.h; sourceTree = ""; }; - 74E2780DEB856E31804FBDDB9114B2F7 /* Pods-MobileWeather.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MobileWeather.debug.xcconfig"; sourceTree = ""; }; - 750876967AB3BEF7925DBF19F38CFA89 /* SDLTemperature.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemperature.h; path = SmartDeviceLink/SDLTemperature.h; sourceTree = ""; }; - 753EB48A3869CA5247A0588801248775 /* Pods-MobileWeather-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MobileWeather-frameworks.sh"; sourceTree = ""; }; - 758828EDB3A486DAC7555C09C9C7A075 /* SDLSliderResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSliderResponse.h; path = SmartDeviceLink/SDLSliderResponse.h; sourceTree = ""; }; - 75A879FE5BDC2962D651DE4F586D85C2 /* SDLButtonPressMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPressMode.m; path = SmartDeviceLink/SDLButtonPressMode.m; sourceTree = ""; }; - 75F59B2A5FE3C87A65DDC7E417796E8F /* emhashmap.c */ = {isa = PBXFileReference; includeInIndex = 1; name = emhashmap.c; path = src/emhashmap/emhashmap.c; sourceTree = ""; }; - 76BD07CB451B98D050AD1A03BC6F8AB1 /* SDLLifecycleConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleConfiguration.h; path = SmartDeviceLink/SDLLifecycleConfiguration.h; sourceTree = ""; }; - 76F2EEF0C3FA77B20C8F1C40D7E3F410 /* SDLGetVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetVehicleData.m; path = SmartDeviceLink/SDLGetVehicleData.m; sourceTree = ""; }; - 77562F15814B203CF3A3408E7CC77E90 /* SDLOnEncodedSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnEncodedSyncPData.m; path = SmartDeviceLink/SDLOnEncodedSyncPData.m; sourceTree = ""; }; - 775FFE7FBE19948FC9401B4F0776F397 /* SDLReadDIDResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReadDIDResponse.h; path = SmartDeviceLink/SDLReadDIDResponse.h; sourceTree = ""; }; - 77668B969E6A294D650360BD5369A68C /* Pods-MobileWeather-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MobileWeather-resources.sh"; sourceTree = ""; }; - 77939ECABAEB5EA4A870437D89954DCF /* CGPoint_Util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CGPoint_Util.h; path = SmartDeviceLink/CGPoint_Util.h; sourceTree = ""; }; - 77E606788D8EBEE9E7E4BC5FE8E237A0 /* SDLDeviceInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceInfo.h; path = SmartDeviceLink/SDLDeviceInfo.h; sourceTree = ""; }; - 77FDF4FE519E3C33CA096626BFB7B6D1 /* SDLRGBColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRGBColor.m; path = SmartDeviceLink/SDLRGBColor.m; sourceTree = ""; }; - 7809E403E7F8FC0692079B5A7A0D8D33 /* SDLAlertManeuverResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertManeuverResponse.m; path = SmartDeviceLink/SDLAlertManeuverResponse.m; sourceTree = ""; }; - 780B1A1308BC973F769EB7125367DE11 /* SDLSendLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendLocation.h; path = SmartDeviceLink/SDLSendLocation.h; sourceTree = ""; }; - 785F69A758CC6573E45FE7A6598F61B5 /* SDLMassageMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageMode.h; path = SmartDeviceLink/SDLMassageMode.h; sourceTree = ""; }; - 78ABF68E893E072C56F7BA31130F1A5E /* SDLRPCNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCNotification.m; path = SmartDeviceLink/SDLRPCNotification.m; sourceTree = ""; }; - 7A0C6D3EDF3331CF707E1D745709165C /* SDLPrioritizedObjectCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrioritizedObjectCollection.m; path = SmartDeviceLink/SDLPrioritizedObjectCollection.m; sourceTree = ""; }; - 7A2714C0F9D631E857181A264EF1EC31 /* SDLOnHMIStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnHMIStatus.m; path = SmartDeviceLink/SDLOnHMIStatus.m; sourceTree = ""; }; - 7A6B4FAF65147D01EAB724CF22D4AE0D /* SDLVideoStreamingState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingState.m; path = SmartDeviceLink/SDLVideoStreamingState.m; sourceTree = ""; }; - 7A7D5318694339EFF9B87A0CAAB26449 /* SDLUnsubscribeButtonResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeButtonResponse.h; path = SmartDeviceLink/SDLUnsubscribeButtonResponse.h; sourceTree = ""; }; - 7A839994F9626443B093DB392F9B5E77 /* SDLProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolHeader.h; path = SmartDeviceLink/SDLProtocolHeader.h; sourceTree = ""; }; - 7A8536C9E1E43EAA321587775D6769CE /* SDLOnVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnVehicleData.m; path = SmartDeviceLink/SDLOnVehicleData.m; sourceTree = ""; }; - 7B3C337257E971AE52091FADEA1E69BD /* SDLVentilationMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVentilationMode.m; path = SmartDeviceLink/SDLVentilationMode.m; sourceTree = ""; }; - 7B5958E143197424F748276D3BB21607 /* SDLFunctionID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFunctionID.h; path = SmartDeviceLink/SDLFunctionID.h; sourceTree = ""; }; - 7B5A067FCC93D9B48C203E6F2CCD07ED /* SDLMassageCushionFirmness.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageCushionFirmness.h; path = SmartDeviceLink/SDLMassageCushionFirmness.h; sourceTree = ""; }; - 7B950AA451BBC249F3334DAC75609D89 /* SDLRDSData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRDSData.h; path = SmartDeviceLink/SDLRDSData.h; sourceTree = ""; }; - 7BEA19A69DC688C8CC9315D69EB8BEB5 /* SDLAudioStreamingState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamingState.h; path = SmartDeviceLink/SDLAudioStreamingState.h; sourceTree = ""; }; - 7C40B5ABF69E45AE08FA378534E3FD62 /* SDLRPCRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCRequest.m; path = SmartDeviceLink/SDLRPCRequest.m; sourceTree = ""; }; - 7CB4AB147F798B079321105636F4622F /* SDLRegisterAppInterfaceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRegisterAppInterfaceResponse.m; path = SmartDeviceLink/SDLRegisterAppInterfaceResponse.m; sourceTree = ""; }; - 7D566AE50B191DBFB833D69C8108A202 /* SDLSetGlobalProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetGlobalProperties.h; path = SmartDeviceLink/SDLSetGlobalProperties.h; sourceTree = ""; }; - 7D56D1383005F86119EEEC23396E20E2 /* SDLMenuParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuParams.h; path = SmartDeviceLink/SDLMenuParams.h; sourceTree = ""; }; - 7D684A0F936240CFF376CBBA6E49A8F0 /* SDLListFilesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFilesOperation.h; path = SmartDeviceLink/SDLListFilesOperation.h; sourceTree = ""; }; - 7D9DA21ABF7CDDBFB56BE7D70C6E7644 /* SDLListFiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFiles.h; path = SmartDeviceLink/SDLListFiles.h; sourceTree = ""; }; - 7DDA77991D5939F69DB2C0095DDD520A /* SDLProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolHeader.m; path = SmartDeviceLink/SDLProtocolHeader.m; sourceTree = ""; }; - 7E63FCE296EEC7CC4266B624CB94D0E3 /* SDLTouch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouch.m; path = SmartDeviceLink/SDLTouch.m; sourceTree = ""; }; - 7E68E92B02B4CA38AF0E73923EE34217 /* SDLLogTargetOSLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetOSLog.h; path = SmartDeviceLink/SDLLogTargetOSLog.h; sourceTree = ""; }; - 7E7D416F7CD293790F14F8B197775B43 /* SDLAddSubMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddSubMenu.h; path = SmartDeviceLink/SDLAddSubMenu.h; sourceTree = ""; }; - 7E7D99673CE2765D739C37675F9E6800 /* SDLLightState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightState.h; path = SmartDeviceLink/SDLLightState.h; sourceTree = ""; }; - 7EB0F5FE524CD2A868E27206CA4D9276 /* SDLSeatMemoryAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatMemoryAction.h; path = SmartDeviceLink/SDLSeatMemoryAction.h; sourceTree = ""; }; - 7F09A75F248CCF94E447F986B25B46A5 /* SDLSyncPDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncPDataResponse.h; path = SmartDeviceLink/SDLSyncPDataResponse.h; sourceTree = ""; }; - 7F60A682B29BD523A1C95D44BF818678 /* SDLScrollableMessageResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScrollableMessageResponse.h; path = SmartDeviceLink/SDLScrollableMessageResponse.h; sourceTree = ""; }; - 7F9E7450CE3C9AEF7780149EF7C0651C /* SDLTransportType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTransportType.h; path = SmartDeviceLink/SDLTransportType.h; sourceTree = ""; }; - 7FA676189DA006AC1F36A4F3A550F0D8 /* SDLFocusableItemLocatorType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemLocatorType.h; path = SmartDeviceLink/SDLFocusableItemLocatorType.h; sourceTree = ""; }; - 80560B5F4049C93EAE4148868C4BA8E2 /* SDLControlFramePayloadVideoStartService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadVideoStartService.h; path = SmartDeviceLink/SDLControlFramePayloadVideoStartService.h; sourceTree = ""; }; - 806DF22E4F83CEC997C374E69488DD96 /* SDLRPCResponseNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCResponseNotification.h; path = SmartDeviceLink/SDLRPCResponseNotification.h; sourceTree = ""; }; - 8080BD85150924CD82CF697853AB49DD /* SDLVrHelpItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVrHelpItem.h; path = SmartDeviceLink/SDLVrHelpItem.h; sourceTree = ""; }; - 8080F4FF2A48736FED1DA77E6D50B24C /* SDLLockScreenStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenStatus.m; path = SmartDeviceLink/SDLLockScreenStatus.m; sourceTree = ""; }; - 80BEAB2A97883B43F91D11C970DBFFE7 /* SDLBodyInformation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBodyInformation.m; path = SmartDeviceLink/SDLBodyInformation.m; sourceTree = ""; }; - 815EB3516762963F44C6C1862030AD02 /* SDLFuelCutoffStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelCutoffStatus.m; path = SmartDeviceLink/SDLFuelCutoffStatus.m; sourceTree = ""; }; - 8161E304DB3F786AAC3A62CA6B154DD8 /* SDLLockScreenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenManager.m; path = SmartDeviceLink/SDLLockScreenManager.m; sourceTree = ""; }; - 816405DEA579818D69E7209885E6B5FC /* SDLMenuCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuCell.h; path = SmartDeviceLink/SDLMenuCell.h; sourceTree = ""; }; - 824EBA2B2FB87B435FB19A9D74F6FE70 /* SDLGetVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetVehicleData.h; path = SmartDeviceLink/SDLGetVehicleData.h; sourceTree = ""; }; - 82541979FF412D8D3EBDE11F3B67A44F /* SDLGlobalProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGlobalProperty.h; path = SmartDeviceLink/SDLGlobalProperty.h; sourceTree = ""; }; - 82983133771C2647E3DB3C7CFCCC1923 /* SDLSetMediaClockTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetMediaClockTimer.m; path = SmartDeviceLink/SDLSetMediaClockTimer.m; sourceTree = ""; }; - 832FDE407750A0EEE8830B7E938FC6C4 /* SDLLockScreenPresenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenPresenter.h; path = SmartDeviceLink/SDLLockScreenPresenter.h; sourceTree = ""; }; - 843DDF1E82067D3BE72F657D2974D11F /* SDLHMIZoneCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMIZoneCapabilities.m; path = SmartDeviceLink/SDLHMIZoneCapabilities.m; sourceTree = ""; }; - 849B1DE4F355AEFA9C976B360A798DDD /* SDLVehicleDataResultCode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataResultCode.m; path = SmartDeviceLink/SDLVehicleDataResultCode.m; sourceTree = ""; }; - 84D9C9895A536BD8FB295228F8BF0398 /* EAAccessory+SDLProtocols.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EAAccessory+SDLProtocols.h"; path = "SmartDeviceLink/EAAccessory+SDLProtocols.h"; sourceTree = ""; }; - 8511C1F0379CE4B64BA23E97F063E0F8 /* SDLIgnitionStableStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIgnitionStableStatus.h; path = SmartDeviceLink/SDLIgnitionStableStatus.h; sourceTree = ""; }; - 853D4FF5772833364CFE76D24578AC9A /* SDLSlider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSlider.m; path = SmartDeviceLink/SDLSlider.m; sourceTree = ""; }; - 8592C8905CFA25913170F954352CB90D /* SDLTPMS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTPMS.m; path = SmartDeviceLink/SDLTPMS.m; sourceTree = ""; }; - 8599A0D8C169D439326F1693136570F0 /* SDLPrimaryAudioSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrimaryAudioSource.m; path = SmartDeviceLink/SDLPrimaryAudioSource.m; sourceTree = ""; }; - 85C64DA96B7AFBF4B86A506D16F6B044 /* SDLReadDID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReadDID.m; path = SmartDeviceLink/SDLReadDID.m; sourceTree = ""; }; - 85FB37CFF9AA36FAC92BFD1A5209922B /* SDLSecondaryTransportManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSecondaryTransportManager.m; path = SmartDeviceLink/SDLSecondaryTransportManager.m; sourceTree = ""; }; - 85FEDF2A2BBB46F56EDE42B6A54156AA /* SDLUploadFileOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUploadFileOperation.m; path = SmartDeviceLink/SDLUploadFileOperation.m; sourceTree = ""; }; - 8656F2DCBCA042060742160FFB6A86F8 /* SDLAddSubMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddSubMenu.m; path = SmartDeviceLink/SDLAddSubMenu.m; sourceTree = ""; }; - 869B8F548364045C3602F3A99BAB876A /* SDLOnLanguageChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnLanguageChange.h; path = SmartDeviceLink/SDLOnLanguageChange.h; sourceTree = ""; }; - 87013DF5230B21B6D6983AE6FFCB0A36 /* SDLHMISettingsControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMISettingsControlData.m; path = SmartDeviceLink/SDLHMISettingsControlData.m; sourceTree = ""; }; - 874714916D7F9E906404F014ADF12629 /* SDLLayoutMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLayoutMode.m; path = SmartDeviceLink/SDLLayoutMode.m; sourceTree = ""; }; - 876AB0F589E4C276C7433FAFE36B3E8A /* SDLOnSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSyncPData.h; path = SmartDeviceLink/SDLOnSyncPData.h; sourceTree = ""; }; - 878F4A0B3877E844E198E0B2E21CDFC0 /* SDLSeatMemoryActionType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatMemoryActionType.m; path = SmartDeviceLink/SDLSeatMemoryActionType.m; sourceTree = ""; }; - 87AE3D09CF88341F47674088B1C54CA1 /* SDLTextAlignment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextAlignment.h; path = SmartDeviceLink/SDLTextAlignment.h; sourceTree = ""; }; - 882E26AAED7919D8F46DB538C09492C7 /* bson_util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_util.h; path = src/bson_util.h; sourceTree = ""; }; - 88351DE654FF03D2560ABFC4142E23E3 /* SDLH264VideoEncoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLH264VideoEncoder.h; path = SmartDeviceLink/SDLH264VideoEncoder.h; sourceTree = ""; }; - 88A45748BCA864462CE96C229A58CF84 /* SDLLogFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFilter.h; path = SmartDeviceLink/SDLLogFilter.h; sourceTree = ""; }; - 88CD2BDF6FF3ED3F6B18D71D1A446DD8 /* SDLSoftButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButton.m; path = SmartDeviceLink/SDLSoftButton.m; sourceTree = ""; }; - 891473743E394C175627756BB86F52F0 /* SDLClusterModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClusterModeStatus.m; path = SmartDeviceLink/SDLClusterModeStatus.m; sourceTree = ""; }; - 8920D3ACDD019CFE7D7EC52C8C57C6AA /* SDLOnTBTClientState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnTBTClientState.m; path = SmartDeviceLink/SDLOnTBTClientState.m; sourceTree = ""; }; - 897C955F52B3CC643F621B391FE0E0CD /* SDLTouchCoord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchCoord.h; path = SmartDeviceLink/SDLTouchCoord.h; sourceTree = ""; }; - 8AD8A6F8A59C6A3CCC42BF3FFBDCE6F5 /* SDLSliderResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSliderResponse.m; path = SmartDeviceLink/SDLSliderResponse.m; sourceTree = ""; }; - 8B148286C9121F9CEAAF3BB7A9B9E1EB /* SDLGetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataResponse.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h; sourceTree = ""; }; - 8B152F340FD0B7F3F3070CC16D3CA123 /* SDLProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessage.h; path = SmartDeviceLink/SDLProtocolMessage.h; sourceTree = ""; }; - 8B32686218B33B63CF5B9A0030051449 /* SDLTimerMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTimerMode.h; path = SmartDeviceLink/SDLTimerMode.h; sourceTree = ""; }; - 8B4CA939A6A2196F72751084D8883EC5 /* SDLTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTimer.m; path = SmartDeviceLink/SDLTimer.m; sourceTree = ""; }; - 8B5B149DB553CC25C1ECE0141F2CAB44 /* SDLControlFramePayloadVideoStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadVideoStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h; sourceTree = ""; }; - 8BC3F0AF45DC8C9CA5D3AC7CA8176789 /* SDLImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImage.h; path = SmartDeviceLink/SDLImage.h; sourceTree = ""; }; - 8BDB404AF77A5DEA1B3DB84DA45A6AC8 /* SDLStationIDNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStationIDNumber.m; path = SmartDeviceLink/SDLStationIDNumber.m; sourceTree = ""; }; - 8C5D5F27602E0540AA5B35AF19980468 /* SDLSoftButtonState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonState.m; path = SmartDeviceLink/SDLSoftButtonState.m; sourceTree = ""; }; - 8D34D8B52315EA5525E7F73360845AFD /* BiSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BiSON-dummy.m"; sourceTree = ""; }; - 8D3777E8781C62321F0499DD71507012 /* SDLHMISettingsControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMISettingsControlData.h; path = SmartDeviceLink/SDLHMISettingsControlData.h; sourceTree = ""; }; - 8D4041302A5894E0CAEA69FF5FB1AFD2 /* SDLSeatControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatControlData.h; path = SmartDeviceLink/SDLSeatControlData.h; sourceTree = ""; }; - 8D616CFA82FBB4F1BEE449B4EA3CF4C7 /* SDLImageResolution.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageResolution.h; path = SmartDeviceLink/SDLImageResolution.h; sourceTree = ""; }; - 8D8320A911DB2A100461128D32DA4DA9 /* SDLTTSChunk.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTTSChunk.h; path = SmartDeviceLink/SDLTTSChunk.h; sourceTree = ""; }; - 8D8496D47F19D77551ECDEF2FA539E41 /* SDLEqualizerSettings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEqualizerSettings.m; path = SmartDeviceLink/SDLEqualizerSettings.m; sourceTree = ""; }; - 8D849908EC39EB73251A609C247278C7 /* SDLCarWindowViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarWindowViewController.m; path = SmartDeviceLink/SDLCarWindowViewController.m; sourceTree = ""; }; - 8DAD01D3B62C827AC23B4522D86C191C /* SDLRegisterAppInterfaceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRegisterAppInterfaceResponse.h; path = SmartDeviceLink/SDLRegisterAppInterfaceResponse.h; sourceTree = ""; }; - 8DF56FE670C445485FAD9CE424BBD979 /* SDLUnsubscribeButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeButton.h; path = SmartDeviceLink/SDLUnsubscribeButton.h; sourceTree = ""; }; - 8E089953D020C5C39366AAB493954078 /* SDLNames.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNames.h; path = SmartDeviceLink/SDLNames.h; sourceTree = ""; }; - 8E2AF364F85ABFC8AA5227B0DA913557 /* SDLSeatMemoryActionType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatMemoryActionType.h; path = SmartDeviceLink/SDLSeatMemoryActionType.h; sourceTree = ""; }; - 8E5B936160771899CBA8BD8776D883F5 /* SDLMediaClockFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaClockFormat.h; path = SmartDeviceLink/SDLMediaClockFormat.h; sourceTree = ""; }; - 8E8FE4312C8C948EBE6F6C07DBC1F9CA /* SDLEnum.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEnum.m; path = SmartDeviceLink/SDLEnum.m; sourceTree = ""; }; - 8EAD2D9917040C1DC2F23D0C4DCA7FA7 /* SDLProtocolMessageAssembler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessageAssembler.h; path = SmartDeviceLink/SDLProtocolMessageAssembler.h; sourceTree = ""; }; - 8EECA380F767D515D06515EB2526BCE8 /* SDLSpeak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeak.m; path = SmartDeviceLink/SDLSpeak.m; sourceTree = ""; }; - 8F06149E7100A56D1FA84248303C1817 /* SDLStreamingVideoLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingVideoLifecycleManager.h; path = SmartDeviceLink/SDLStreamingVideoLifecycleManager.h; sourceTree = ""; }; - 8FDAFB2B0FEFC8F3A7D9D65B1426C548 /* SDLDimension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDimension.m; path = SmartDeviceLink/SDLDimension.m; sourceTree = ""; }; - 9045B17D93E29F5654B083F0E3B91871 /* SDLRemoteControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRemoteControlCapabilities.m; path = SmartDeviceLink/SDLRemoteControlCapabilities.m; sourceTree = ""; }; - 905483586B21F30E32A6B74A710A1568 /* SDLLightState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightState.m; path = SmartDeviceLink/SDLLightState.m; sourceTree = ""; }; - 905FFC669528A903981179734581E823 /* SDLRadioBand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioBand.h; path = SmartDeviceLink/SDLRadioBand.h; sourceTree = ""; }; - 906B43B3B42C2419F13B44D7649B956D /* SDLRPCPayload.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCPayload.m; path = SmartDeviceLink/SDLRPCPayload.m; sourceTree = ""; }; - 90821605B6964E77F2FF24118D6EDB06 /* SDLLockScreenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenManager.h; path = SmartDeviceLink/SDLLockScreenManager.h; sourceTree = ""; }; - 90A2A6EB9EA9F0B38F2AC500E179C267 /* SDLEncodedSyncPDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncodedSyncPDataResponse.h; path = SmartDeviceLink/SDLEncodedSyncPDataResponse.h; sourceTree = ""; }; - 90B140356718D6990742118A0DE2E86F /* SDLSecurityType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSecurityType.h; path = SmartDeviceLink/SDLSecurityType.h; sourceTree = ""; }; - 918A4228C48EB0067BA2FD3AE232F617 /* SDLSetGlobalPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetGlobalPropertiesResponse.h; path = SmartDeviceLink/SDLSetGlobalPropertiesResponse.h; sourceTree = ""; }; - 91BDA2325DA14618CF06ECCE83BAA12C /* SDLTireStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTireStatus.m; path = SmartDeviceLink/SDLTireStatus.m; sourceTree = ""; }; - 92476ADB048D5680C09DCA2FEE51BA94 /* SDLCarModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarModeStatus.h; path = SmartDeviceLink/SDLCarModeStatus.h; sourceTree = ""; }; - 9254EF45C5191A8B292F657750380D1F /* SDLSequentialRPCRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSequentialRPCRequestOperation.m; path = SmartDeviceLink/SDLSequentialRPCRequestOperation.m; sourceTree = ""; }; - 92EC16D73BAA299A6234966E38DF6113 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 93003458C263C345C99E345CD6601231 /* SDLNavigationCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationCapability.h; path = SmartDeviceLink/SDLNavigationCapability.h; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 93CA586E7AC09FB55D500BAEB4C79347 /* SDLLightCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightCapabilities.m; path = SmartDeviceLink/SDLLightCapabilities.m; sourceTree = ""; }; - 94AD2AEEC4EEEC528DD817E891BE3839 /* SDLHMIPermissions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMIPermissions.m; path = SmartDeviceLink/SDLHMIPermissions.m; sourceTree = ""; }; - 94DAE9A99EFED4688FE48863309B3153 /* SDLSystemAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemAction.m; path = SmartDeviceLink/SDLSystemAction.m; sourceTree = ""; }; - 94ED036BFFFEB6CED0F8ABC49FB84C64 /* SDLPrerecordedSpeech.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrerecordedSpeech.m; path = SmartDeviceLink/SDLPrerecordedSpeech.m; sourceTree = ""; }; - 9520607250C0D896688E594437D291D7 /* SDLDisplayMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayMode.h; path = SmartDeviceLink/SDLDisplayMode.h; sourceTree = ""; }; - 954E4D3766D011A3C490F60A4060E2DD /* SDLMenuManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuManager.h; path = SmartDeviceLink/SDLMenuManager.h; sourceTree = ""; }; - 9573AD1DA7DB44D2BDFDA84EF4F972F5 /* SDLFuelRange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelRange.m; path = SmartDeviceLink/SDLFuelRange.m; sourceTree = ""; }; - 95A201BA4F4CA5F7F7471FC21C318016 /* SDLRPCNotificationNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCNotificationNotification.h; path = SmartDeviceLink/SDLRPCNotificationNotification.h; sourceTree = ""; }; - 95CBE58570B12C86B075BF40F1D826A5 /* SDLVoiceCommandManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandManager.m; path = SmartDeviceLink/SDLVoiceCommandManager.m; sourceTree = ""; }; - 962BB9FDAFCD322B51AFEAA3F30F88C5 /* SDLVehicleDataResultCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataResultCode.h; path = SmartDeviceLink/SDLVehicleDataResultCode.h; sourceTree = ""; }; - 96F0A1F8DFCA64ED227E5510C6C3B7E6 /* SDLControlFramePayloadRPCStartService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRPCStartService.h; path = SmartDeviceLink/SDLControlFramePayloadRPCStartService.h; sourceTree = ""; }; - 9736F1C92404CB74F50FE38E6AEDCCA9 /* SDLOnTouchEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnTouchEvent.m; path = SmartDeviceLink/SDLOnTouchEvent.m; sourceTree = ""; }; - 97A2BB0456C152B5DCFAA29084C974C2 /* Pods-MobileWeather-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MobileWeather-umbrella.h"; sourceTree = ""; }; - 97E65B30099BCC7FCE9EE35C4557EFB7 /* SDLVoiceCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommand.m; path = SmartDeviceLink/SDLVoiceCommand.m; sourceTree = ""; }; - 987EA3558DD5290384A844B45E024E3F /* SDLPerformAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAudioPassThru.h; path = SmartDeviceLink/SDLPerformAudioPassThru.h; sourceTree = ""; }; - 98B6D6A6F9EE01A14C26E8C787AEE11B /* NSMutableDictionary+SafeRemove.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+SafeRemove.m"; path = "SmartDeviceLink/NSMutableDictionary+SafeRemove.m"; sourceTree = ""; }; - 98BB477077ECCB5F159C026896A7ED82 /* SDLControlFramePayloadType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadType.h; path = SmartDeviceLink/SDLControlFramePayloadType.h; sourceTree = ""; }; - 98C4256ECA504E1CC027AB912D1F64E6 /* SDLVehicleDataType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataType.m; path = SmartDeviceLink/SDLVehicleDataType.m; sourceTree = ""; }; - 9919BFC927D3E2CF081C66079A4CF0CE /* SDLDisplayCapabilities+ShowManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLDisplayCapabilities+ShowManagerExtensions.h"; path = "SmartDeviceLink/SDLDisplayCapabilities+ShowManagerExtensions.h"; sourceTree = ""; }; - 9929B63756D6EFC654DDAE86E9C357D8 /* SDLUnsubscribeButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeButton.m; path = SmartDeviceLink/SDLUnsubscribeButton.m; sourceTree = ""; }; - 9A5E8DF4DFE51C93135F6D5D75D9EC8C /* SDLHeadLampStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHeadLampStatus.h; path = SmartDeviceLink/SDLHeadLampStatus.h; sourceTree = ""; }; - 9AE500F1F2C18FA80AF0901CBBAF168A /* SDLParameterPermissions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLParameterPermissions.h; path = SmartDeviceLink/SDLParameterPermissions.h; sourceTree = ""; }; - 9B40A91D25C52B221AA22FCE5737BFC4 /* SDLV2ProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV2ProtocolMessage.h; path = SmartDeviceLink/SDLV2ProtocolMessage.h; sourceTree = ""; }; - 9B77D58B46BB335AF89C58EAF72BD997 /* SDLTemplateColorScheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemplateColorScheme.h; path = SmartDeviceLink/SDLTemplateColorScheme.h; sourceTree = ""; }; - 9BB88EEF32E4A188F028653388F389D5 /* SDLRPCMessageType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCMessageType.h; path = SmartDeviceLink/SDLRPCMessageType.h; sourceTree = ""; }; - 9BCEE3F9721D24A5D1B1C3F3B4AEFAB3 /* SDLFileManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManager.h; path = SmartDeviceLink/SDLFileManager.h; sourceTree = ""; }; - 9C1ACD7149C1EA7C8D901437F63FF9B4 /* SDLRPCStruct.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCStruct.m; path = SmartDeviceLink/SDLRPCStruct.m; sourceTree = ""; }; - 9CD60AA200C1EA24343193DA9F81F600 /* SDLPermissionFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionFilter.h; path = SmartDeviceLink/SDLPermissionFilter.h; sourceTree = ""; }; - 9D3D807D79D5970559544493C272AA4D /* SDLEndAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEndAudioPassThru.h; path = SmartDeviceLink/SDLEndAudioPassThru.h; sourceTree = ""; }; - 9DB23C1F5BDF1F27A2D1917F3EAAC433 /* SDLWayPointType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWayPointType.m; path = SmartDeviceLink/SDLWayPointType.m; sourceTree = ""; }; - 9E1A67020D9B2731251C24228133ACB1 /* SDLGetInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleData.h; path = SmartDeviceLink/SDLGetInteriorVehicleData.h; sourceTree = ""; }; - 9E365ECDA4C5949303D4269A4E6C1025 /* SDLTextField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextField.h; path = SmartDeviceLink/SDLTextField.h; sourceTree = ""; }; - 9F05AA929B1AB82280E5802A1D843594 /* SDLPermissionItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionItem.h; path = SmartDeviceLink/SDLPermissionItem.h; sourceTree = ""; }; - 9F7FA38B067052115C9348DF8CDA8246 /* SDLCarWindowViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarWindowViewController.h; path = SmartDeviceLink/SDLCarWindowViewController.h; sourceTree = ""; }; - 9FF46BF4BEB8FEB342F1AD40824347D9 /* SDLLogTargetFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetFile.m; path = SmartDeviceLink/SDLLogTargetFile.m; sourceTree = ""; }; - A0A1B2614785041917BE4112674DC25B /* SDLOnCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnCommand.m; path = SmartDeviceLink/SDLOnCommand.m; sourceTree = ""; }; - A13F7104F602D8CCF55BE328CCAF9BAC /* SDLSendHapticDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendHapticDataResponse.h; path = SmartDeviceLink/SDLSendHapticDataResponse.h; sourceTree = ""; }; - A2307C9E899AF5180AD1093475004295 /* SDLGenericResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGenericResponse.h; path = SmartDeviceLink/SDLGenericResponse.h; sourceTree = ""; }; - A28C591186F83E65852201939A6CE8E2 /* SDLFileManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManagerConstants.h; path = SmartDeviceLink/SDLFileManagerConstants.h; sourceTree = ""; }; - A2A0B72BF01B26F54F317403448BC95C /* SDLProxyListener.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProxyListener.h; path = SmartDeviceLink/SDLProxyListener.h; sourceTree = ""; }; - A2FA6D88BF0D8BE275F4AF2C7C117908 /* SDLSystemContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemContext.h; path = SmartDeviceLink/SDLSystemContext.h; sourceTree = ""; }; - A30B036CAB80CB3556CC6DCC329BAF82 /* SDLDiagnosticMessageResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDiagnosticMessageResponse.m; path = SmartDeviceLink/SDLDiagnosticMessageResponse.m; sourceTree = ""; }; - A327553C1C9C5ABD7E4229FEC523EB59 /* SDLPresentChoiceSetOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresentChoiceSetOperation.h; path = SmartDeviceLink/SDLPresentChoiceSetOperation.h; sourceTree = ""; }; - A37889971568605D482199E64332631D /* SDLDiagnosticMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDiagnosticMessage.m; path = SmartDeviceLink/SDLDiagnosticMessage.m; sourceTree = ""; }; - A50DEDE3CBA973F53236F30FA2FAB778 /* SDLPRNDL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPRNDL.h; path = SmartDeviceLink/SDLPRNDL.h; sourceTree = ""; }; - A5621B5B05BA15084E7A134229CADA90 /* SDLAirbagStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAirbagStatus.h; path = SmartDeviceLink/SDLAirbagStatus.h; sourceTree = ""; }; - A56B12620457866F3F66271757C255A6 /* SDLTPMS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTPMS.h; path = SmartDeviceLink/SDLTPMS.h; sourceTree = ""; }; - A57F6B056F41644C1EB503B9714738C9 /* SDLRadioState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioState.h; path = SmartDeviceLink/SDLRadioState.h; sourceTree = ""; }; - A589684F65F9FCA9FE1606A5A4DA449B /* SDLRPCMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCMessage.h; path = SmartDeviceLink/SDLRPCMessage.h; sourceTree = ""; }; - A67726019D1949E4970552C764865F6C /* SDLFileType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileType.h; path = SmartDeviceLink/SDLFileType.h; sourceTree = ""; }; - A68DAFDC8E8417E2C745B8ADDB5AF994 /* SDLError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLError.m; path = SmartDeviceLink/SDLError.m; sourceTree = ""; }; - A6E4EB5AC1D8300869EFD910BC546776 /* SDLAudioFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioFile.m; path = SmartDeviceLink/SDLAudioFile.m; sourceTree = ""; }; - A6FFAA2E640CE5022DD2D19F7DCD3DE6 /* SDLEmergencyEventType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEmergencyEventType.m; path = SmartDeviceLink/SDLEmergencyEventType.m; sourceTree = ""; }; - A796FF7557DEDC03B40E84FCABF5003C /* SDLPutFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPutFileResponse.m; path = SmartDeviceLink/SDLPutFileResponse.m; sourceTree = ""; }; - A798CD52B9A6DE6399FEEDE186FB0D3C /* SDLCarWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarWindow.m; path = SmartDeviceLink/SDLCarWindow.m; sourceTree = ""; }; - A7F77770D5D28F7FF7EEFD4A3C75F542 /* SDLECallConfirmationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLECallConfirmationStatus.m; path = SmartDeviceLink/SDLECallConfirmationStatus.m; sourceTree = ""; }; - A7FD95DAB1B56B5CF9E3A6EE3B3987B2 /* SDLLifecycleConfigurationUpdate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleConfigurationUpdate.h; path = SmartDeviceLink/SDLLifecycleConfigurationUpdate.h; sourceTree = ""; }; - A865F676AEF73BD55A0E77571040471F /* dispatch_timer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dispatch_timer.h; path = SmartDeviceLink/dispatch_timer.h; sourceTree = ""; }; - A8713C1D0690D8AB53FDAB90435E668F /* SDLHMILevel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMILevel.m; path = SmartDeviceLink/SDLHMILevel.m; sourceTree = ""; }; - A874BEFEF52CB9BA5367A462CDEEADAF /* SDLEqualizerSettings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEqualizerSettings.h; path = SmartDeviceLink/SDLEqualizerSettings.h; sourceTree = ""; }; - A875DFABA35DCF8BD7D48B371863A251 /* SmartDeviceLink.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartDeviceLink.xcconfig; sourceTree = ""; }; - A89A9EFD2D36F49E08C182ABDCE2991F /* SDLVehicleType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleType.h; path = SmartDeviceLink/SDLVehicleType.h; sourceTree = ""; }; - A8A0243D063C6F7BCF41557EE5E3C603 /* SDLOnDriverDistraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnDriverDistraction.m; path = SmartDeviceLink/SDLOnDriverDistraction.m; sourceTree = ""; }; - A97DB73B7402B15C06515BCEE78C9981 /* SDLChoiceSetDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSetDelegate.h; path = SmartDeviceLink/SDLChoiceSetDelegate.h; sourceTree = ""; }; - A98FE233CFB9499820D654F8CB8D34A1 /* SDLOnAppInterfaceUnregistered.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAppInterfaceUnregistered.h; path = SmartDeviceLink/SDLOnAppInterfaceUnregistered.h; sourceTree = ""; }; - A99C0C1B0419FF7C520596517AACCC34 /* SDLControlFramePayloadRPCStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRPCStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h; sourceTree = ""; }; - A9DB741242CF4886179C79D2927C6839 /* SDLDeleteSubMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteSubMenuResponse.m; path = SmartDeviceLink/SDLDeleteSubMenuResponse.m; sourceTree = ""; }; - A9F36B56817FFB9EC0DC7EB9A60CABAC /* SDLOnSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSyncPData.m; path = SmartDeviceLink/SDLOnSyncPData.m; sourceTree = ""; }; - AA16F714E4ACF048C908C32836C32AAD /* SDLUnsubscribeVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeVehicleDataResponse.h; path = SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h; sourceTree = ""; }; - AA20B3EE1581C1E1FB217AFBA2AC5289 /* SDLRadioControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioControlData.h; path = SmartDeviceLink/SDLRadioControlData.h; sourceTree = ""; }; - AA7BA22D55AB85BB5FCC2ADEC30BD838 /* SDLLogManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogManager.m; path = SmartDeviceLink/SDLLogManager.m; sourceTree = ""; }; - AA8E57A241FA68D63DC62680BD9828FB /* SDLClusterModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClusterModeStatus.h; path = SmartDeviceLink/SDLClusterModeStatus.h; sourceTree = ""; }; - AAD0EC0A506E96A234F58256C7B4B0E9 /* SDLRPCStruct.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCStruct.h; path = SmartDeviceLink/SDLRPCStruct.h; sourceTree = ""; }; - AADF6CC67DB541A26C867733BFB837C3 /* SDLSetInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetInteriorVehicleData.h; path = SmartDeviceLink/SDLSetInteriorVehicleData.h; sourceTree = ""; }; - AB48679EACAE70BB29A1B43C2AA11F08 /* SDLProtocolListener.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolListener.h; path = SmartDeviceLink/SDLProtocolListener.h; sourceTree = ""; }; - AB71670E1D39EA195F20599D06B93C3C /* SDLSyncMsgVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncMsgVersion.m; path = SmartDeviceLink/SDLSyncMsgVersion.m; sourceTree = ""; }; - AB8C3882B2F5BCE64AF823BEAC3DBE49 /* SDLControlFramePayloadTransportEventUpdate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadTransportEventUpdate.m; path = SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m; sourceTree = ""; }; - ABA99CE85C327FFAD4C981FC5CF3D003 /* SDLWarningLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWarningLightStatus.h; path = SmartDeviceLink/SDLWarningLightStatus.h; sourceTree = ""; }; - ABE9C5E4BE504C29DCF7CF015D462C41 /* SDLGetSystemCapabilityResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetSystemCapabilityResponse.m; path = SmartDeviceLink/SDLGetSystemCapabilityResponse.m; sourceTree = ""; }; - AC02E9CDA5B401505FF227E9903BE9FE /* SDLCreateInteractionChoiceSetResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateInteractionChoiceSetResponse.h; path = SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h; sourceTree = ""; }; - AD448DE63DDE2D4588D5BCFF9FF3CED6 /* SDLVehicleDataEventStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataEventStatus.m; path = SmartDeviceLink/SDLVehicleDataEventStatus.m; sourceTree = ""; }; - AD6E04FFE3A2EB19E5F08CB202D45045 /* SDLUpdateMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateMode.h; path = SmartDeviceLink/SDLUpdateMode.h; sourceTree = ""; }; - ADACFA394C1A41666990BA02285C1D35 /* SDLAudioType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioType.m; path = SmartDeviceLink/SDLAudioType.m; sourceTree = ""; }; - ADD61F9CDD3CE6E6EC48EDEFE524E4CD /* SDLAddSubMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddSubMenuResponse.m; path = SmartDeviceLink/SDLAddSubMenuResponse.m; sourceTree = ""; }; - AE2A8A0E7CAEFE4B324B71C286DAE1CC /* SDLSamplingRate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSamplingRate.h; path = SmartDeviceLink/SDLSamplingRate.h; sourceTree = ""; }; - AE3FF30889101C49187282BA51A8910E /* SDLAmbientLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAmbientLightStatus.h; path = SmartDeviceLink/SDLAmbientLightStatus.h; sourceTree = ""; }; - AE4BF1C901C2B8B8492E917831A635EE /* SDLAudioControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioControlCapabilities.m; path = SmartDeviceLink/SDLAudioControlCapabilities.m; sourceTree = ""; }; - AFBBA4412E591D0464CD86B12758A2D7 /* SDLDeleteCommandResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteCommandResponse.m; path = SmartDeviceLink/SDLDeleteCommandResponse.m; sourceTree = ""; }; - AFF7A262EAE52FF8DBB294F33EA13B91 /* SDLCarWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarWindow.h; path = SmartDeviceLink/SDLCarWindow.h; sourceTree = ""; }; - B000BF1A6DCDCB42234749078E5855ED /* SDLHMILevel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMILevel.h; path = SmartDeviceLink/SDLHMILevel.h; sourceTree = ""; }; - B024EAAE8FE8613F0B95316436C6A9C6 /* SDLBeltStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBeltStatus.m; path = SmartDeviceLink/SDLBeltStatus.m; sourceTree = ""; }; - B0278E68A80F390A91516CE230C9B3CC /* SDLConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLConfiguration.h; path = SmartDeviceLink/SDLConfiguration.h; sourceTree = ""; }; - B03B3A058C9D0BF765F99E1614A30742 /* SDLDeleteInteractionChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteInteractionChoiceSet.h; path = SmartDeviceLink/SDLDeleteInteractionChoiceSet.h; sourceTree = ""; }; - B0CF7AD880B807C0CCA2FC1036A68225 /* SDLBitsPerSample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBitsPerSample.m; path = SmartDeviceLink/SDLBitsPerSample.m; sourceTree = ""; }; - B10C0BDDE44A8F647B3972B9E54F2BC1 /* SDLShowConstantTBTResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowConstantTBTResponse.m; path = SmartDeviceLink/SDLShowConstantTBTResponse.m; sourceTree = ""; }; - B13627FB4B377D445F3A6608F656BE31 /* SDLTouchCoord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchCoord.m; path = SmartDeviceLink/SDLTouchCoord.m; sourceTree = ""; }; - B1F9BC84E7389BF23179BED225E2CA39 /* SDLPinchGesture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPinchGesture.h; path = SmartDeviceLink/SDLPinchGesture.h; sourceTree = ""; }; - B1FDA204D0296A51FBA17788E5FA5502 /* SDLProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessage.m; path = SmartDeviceLink/SDLProtocolMessage.m; sourceTree = ""; }; - B2743E673B8A8B1412F3ACA1B22E27C9 /* SDLPowerModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPowerModeStatus.h; path = SmartDeviceLink/SDLPowerModeStatus.h; sourceTree = ""; }; - B2B07452EB490C836759502C767F6B41 /* CVPixelBufferRef+SDLUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CVPixelBufferRef+SDLUtil.h"; path = "SmartDeviceLink/CVPixelBufferRef+SDLUtil.h"; sourceTree = ""; }; - B302FF2683670AE1F2DDF27585C514DA /* SDLRPCRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCRequest.h; path = SmartDeviceLink/SDLRPCRequest.h; sourceTree = ""; }; - B30D5145EB60AD2060C601A064F64A2C /* SDLSpeechCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeechCapabilities.m; path = SmartDeviceLink/SDLSpeechCapabilities.m; sourceTree = ""; }; - B30EC6A6FFDC546EAEF3EC9419433DB1 /* SDLElectronicParkBrakeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLElectronicParkBrakeStatus.h; path = SmartDeviceLink/SDLElectronicParkBrakeStatus.h; sourceTree = ""; }; - B328DA9E16288A04E1F8DF443AC85626 /* SDLVideoStreamingCodec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingCodec.m; path = SmartDeviceLink/SDLVideoStreamingCodec.m; sourceTree = ""; }; - B39C5ADFF010CF8A14C3BEA134F54E7A /* SDLSeatMemoryAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatMemoryAction.m; path = SmartDeviceLink/SDLSeatMemoryAction.m; sourceTree = ""; }; - B3CAD82552831383429D5BFA74D39E8F /* SDLDeliveryMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeliveryMode.h; path = SmartDeviceLink/SDLDeliveryMode.h; sourceTree = ""; }; - B40BF1C57B79394267C903C5D78EBDC9 /* SDLDefrostZone.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDefrostZone.h; path = SmartDeviceLink/SDLDefrostZone.h; sourceTree = ""; }; - B4154878A32585ABCD9B57764494D6F8 /* SDLOnKeyboardInput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnKeyboardInput.h; path = SmartDeviceLink/SDLOnKeyboardInput.h; sourceTree = ""; }; - B4199F609394E04D0432D522B8AC2E3C /* SDLAlertManeuverResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertManeuverResponse.h; path = SmartDeviceLink/SDLAlertManeuverResponse.h; sourceTree = ""; }; - B42D746070F0FB7F229FC805F63C7474 /* SDLDisplayType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayType.h; path = SmartDeviceLink/SDLDisplayType.h; sourceTree = ""; }; - B455A6928538C43FF4BD1C7049CC4968 /* SDLLogConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogConfiguration.m; path = SmartDeviceLink/SDLLogConfiguration.m; sourceTree = ""; }; - B460414DB680F6055A83A1A74CFC1737 /* SDLNotificationConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNotificationConstants.m; path = SmartDeviceLink/SDLNotificationConstants.m; sourceTree = ""; }; - B4B24D0A8CF05DE6367A50C62E6BB4D3 /* SDLMassageModeData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageModeData.m; path = SmartDeviceLink/SDLMassageModeData.m; sourceTree = ""; }; - B5429C05F82922A34D6A265163EECD6B /* NSMutableDictionary+SafeRemove.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+SafeRemove.h"; path = "SmartDeviceLink/NSMutableDictionary+SafeRemove.h"; sourceTree = ""; }; - B588660C306C440BCD16E23BC80F8D14 /* SDLScreenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScreenManager.m; path = SmartDeviceLink/SDLScreenManager.m; sourceTree = ""; }; - B5B713A7888C5CA5C3D01DB96C67E877 /* bson_util.c */ = {isa = PBXFileReference; includeInIndex = 1; name = bson_util.c; path = src/bson_util.c; sourceTree = ""; }; - B6358C7513C0DFC92C417EFC736F3DAF /* SDLFocusableItemLocator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFocusableItemLocator.m; path = SmartDeviceLink/SDLFocusableItemLocator.m; sourceTree = ""; }; - B64DC108EFD38FF6AD0FFFF15424C17C /* SDLV2ProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV2ProtocolMessage.m; path = SmartDeviceLink/SDLV2ProtocolMessage.m; sourceTree = ""; }; - B67E7C32818DC46A3AEFD981A52B59B4 /* SDLPermissionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionStatus.h; path = SmartDeviceLink/SDLPermissionStatus.h; sourceTree = ""; }; - B6888E9AC86CB09F600E2D4D38162348 /* SDLSendHapticDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendHapticDataResponse.m; path = SmartDeviceLink/SDLSendHapticDataResponse.m; sourceTree = ""; }; - B6AFFD1A7B3E62B4C607E8E8C4787F6D /* SDLLockScreenConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenConfiguration.h; path = SmartDeviceLink/SDLLockScreenConfiguration.h; sourceTree = ""; }; - B6FB23E870874A2EEBD8388FECD14E7E /* SDLDIDResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDIDResult.m; path = SmartDeviceLink/SDLDIDResult.m; sourceTree = ""; }; - B7498C244FC10C66AF473A338A62111B /* SDLListFilesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFilesResponse.h; path = SmartDeviceLink/SDLListFilesResponse.h; sourceTree = ""; }; - B783979D82B11AE5D445D43DAC75137B /* SDLMassageZone.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageZone.h; path = SmartDeviceLink/SDLMassageZone.h; sourceTree = ""; }; - B80235ABD0E305BBF739141DD04FBCB5 /* SDLDialNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDialNumber.m; path = SmartDeviceLink/SDLDialNumber.m; sourceTree = ""; }; - B8054C0141274D800ABEAD4C1769C950 /* SDLModuleType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleType.h; path = SmartDeviceLink/SDLModuleType.h; sourceTree = ""; }; - B82BD5CA32CF72B71EEE56763F38464A /* SDLVideoStreamingCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingCapability.m; path = SmartDeviceLink/SDLVideoStreamingCapability.m; sourceTree = ""; }; - B836FFAC43577369039BC81E89BD1E84 /* SDLSetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetInteriorVehicleDataResponse.m; path = SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m; sourceTree = ""; }; - B8384F01A1AD1A5CBF97162B333FFE87 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - B9171F06491C70DE50D2DDEFFA1DCA85 /* SDLSyncMsgVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncMsgVersion.h; path = SmartDeviceLink/SDLSyncMsgVersion.h; sourceTree = ""; }; - B92B564AB97FF0351E59B770E4461D59 /* SDLRadioBand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioBand.m; path = SmartDeviceLink/SDLRadioBand.m; sourceTree = ""; }; - B96911424DB8E68C3F7A172EE62500E1 /* SDLUnregisterAppInterface.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnregisterAppInterface.m; path = SmartDeviceLink/SDLUnregisterAppInterface.m; sourceTree = ""; }; - BA2F928FB28C5D2FA571B57A0D084BAA /* SDLProtocolConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolConstants.h; path = SmartDeviceLink/SDLProtocolConstants.h; sourceTree = ""; }; - BA3A24BAD4F7C9627E27A09F459982DE /* SDLSubscribeVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeVehicleDataResponse.m; path = SmartDeviceLink/SDLSubscribeVehicleDataResponse.m; sourceTree = ""; }; - BA9299EB84229285AD544DBE93805F19 /* SDLControlFramePayloadAudioStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadAudioStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m; sourceTree = ""; }; - BAE73359DCF96D79A92A9621B8D305A0 /* SDLSendLocationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendLocationResponse.h; path = SmartDeviceLink/SDLSendLocationResponse.h; sourceTree = ""; }; - BB5F7AF6EB7A651AA9025D03B433AF00 /* SDLUnregisterAppInterface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnregisterAppInterface.h; path = SmartDeviceLink/SDLUnregisterAppInterface.h; sourceTree = ""; }; - BB6B9ADD337536D62D71C55DC701BE17 /* SDLLightCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightCapabilities.h; path = SmartDeviceLink/SDLLightCapabilities.h; sourceTree = ""; }; - BB6E2F8ABEE4FC81BB4C0673B65E197F /* SDLOnHashChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnHashChange.m; path = SmartDeviceLink/SDLOnHashChange.m; sourceTree = ""; }; - BBAD9286CA8D2CD34A4301E140079EFA /* SDLImageType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageType.m; path = SmartDeviceLink/SDLImageType.m; sourceTree = ""; }; - BBC3AEA3C7164BC2E9913A9CFF16E8F8 /* SDLUpdateTurnListResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateTurnListResponse.m; path = SmartDeviceLink/SDLUpdateTurnListResponse.m; sourceTree = ""; }; - BBD5269E6005271A97672076F3C57620 /* SDLControlFramePayloadVideoStartService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadVideoStartService.m; path = SmartDeviceLink/SDLControlFramePayloadVideoStartService.m; sourceTree = ""; }; - BC44F67089678BF264AE9F4517976CE3 /* SDLPreloadChoicesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPreloadChoicesOperation.m; path = SmartDeviceLink/SDLPreloadChoicesOperation.m; sourceTree = ""; }; - BC6C48BDF26AFE82AA25DF3EC54ECACA /* SDLRPCNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCNotification.h; path = SmartDeviceLink/SDLRPCNotification.h; sourceTree = ""; }; - BCDC250868911E64709B0E0D0CBD42E4 /* SDLLockScreenConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenConfiguration.m; path = SmartDeviceLink/SDLLockScreenConfiguration.m; sourceTree = ""; }; - BCECF54BBC67A7DBB0AC2A441E7A7E88 /* SDLGlobals.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGlobals.h; path = SmartDeviceLink/SDLGlobals.h; sourceTree = ""; }; - BD56DFEDFD0199DD5616B314968F8800 /* SDLDefrostZone.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDefrostZone.m; path = SmartDeviceLink/SDLDefrostZone.m; sourceTree = ""; }; - BD5E9F1868C5EA8FF16DD817FCC2983B /* SDLChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSet.h; path = SmartDeviceLink/SDLChoiceSet.h; sourceTree = ""; }; - BD63D162A710F26E0171321EA5F2591C /* SDLSyncPDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncPDataResponse.m; path = SmartDeviceLink/SDLSyncPDataResponse.m; sourceTree = ""; }; - BD7E70381BF9886C592D42AAACE7D474 /* SDLUnsubscribeWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeWayPointsResponse.m; path = SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m; sourceTree = ""; }; - BD9F491F208EEC3102D4031C7F6CB6B0 /* SDLLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightStatus.m; path = SmartDeviceLink/SDLLightStatus.m; sourceTree = ""; }; - BE3532020D03C0A5384CB77F8686B832 /* SDLConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLConfiguration.m; path = SmartDeviceLink/SDLConfiguration.m; sourceTree = ""; }; - BE57DE8735A70DC258F0E7D61021E93F /* SDLAddCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddCommand.h; path = SmartDeviceLink/SDLAddCommand.h; sourceTree = ""; }; - BE7366FB2C13FB0E264DF97EB1455D14 /* SDLGetInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleData.m; path = SmartDeviceLink/SDLGetInteriorVehicleData.m; sourceTree = ""; }; - BEDC2BDA5B8E9DAF263D585755CB6C1A /* SDLAirbagStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAirbagStatus.m; path = SmartDeviceLink/SDLAirbagStatus.m; sourceTree = ""; }; - BF184F14F7F8CAE1B2D74EEA9C58A028 /* SDLMetadataTags.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMetadataTags.h; path = SmartDeviceLink/SDLMetadataTags.h; sourceTree = ""; }; - BF41AF176C8CF91C7F0626C991C3CC3D /* SDLLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightStatus.h; path = SmartDeviceLink/SDLLightStatus.h; sourceTree = ""; }; - BF5E57DB0AA0B5AA154EA5AEA8AA3469 /* SDLClimateControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClimateControlCapabilities.m; path = SmartDeviceLink/SDLClimateControlCapabilities.m; sourceTree = ""; }; - C05DA9D93548A248694FE1C3597A20C1 /* SDLStreamDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamDelegate.h; path = SmartDeviceLink/SDLStreamDelegate.h; sourceTree = ""; }; - C09E630D5F83DF772B1E22DF41CE5473 /* SDLPerformInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformInteraction.m; path = SmartDeviceLink/SDLPerformInteraction.m; sourceTree = ""; }; - C0BD9783968411AD2C1ADF55A444B04E /* SDLNotificationDispatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNotificationDispatcher.m; path = SmartDeviceLink/SDLNotificationDispatcher.m; sourceTree = ""; }; - C14ECD4BF951829C7D97305625CF23F7 /* SDLLogManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogManager.h; path = SmartDeviceLink/SDLLogManager.h; sourceTree = ""; }; - C1913C9CAEBA0D15EEC15F086C59CC84 /* SDLIAPSessionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPSessionDelegate.h; path = SmartDeviceLink/SDLIAPSessionDelegate.h; sourceTree = ""; }; - C212942D2CC6534B8AF013D2AD51FDBB /* SDLOnSystemRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSystemRequest.h; path = SmartDeviceLink/SDLOnSystemRequest.h; sourceTree = ""; }; - C23D3E81A57DED8E5C1CB5C6740271CD /* SDLDeviceLevelStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceLevelStatus.m; path = SmartDeviceLink/SDLDeviceLevelStatus.m; sourceTree = ""; }; - C2D61349EFC5D6989D885B003CAA2CB7 /* SDLScreenshotViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScreenshotViewController.m; path = SmartDeviceLink/SDLScreenshotViewController.m; sourceTree = ""; }; - C3005BFD588C3A07F340E4B0B61F3DCF /* NSMutableArray+Safe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+Safe.h"; path = "SmartDeviceLink/NSMutableArray+Safe.h"; sourceTree = ""; }; - C30DC4A516525BCBECD781C4551F5D5A /* SDLScreenParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScreenParams.m; path = SmartDeviceLink/SDLScreenParams.m; sourceTree = ""; }; - C339E93BAAFE8EF680B5FF2F641586D1 /* SDLMetadataType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMetadataType.m; path = SmartDeviceLink/SDLMetadataType.m; sourceTree = ""; }; - C343EC627C793FA593EED8C0AD723864 /* SDLCreateInteractionChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateInteractionChoiceSet.m; path = SmartDeviceLink/SDLCreateInteractionChoiceSet.m; sourceTree = ""; }; - C3596A8E5AA2AB66C296A109794B893E /* SDLSystemRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemRequest.h; path = SmartDeviceLink/SDLSystemRequest.h; sourceTree = ""; }; - C395176F9C59B6418BA47A1577018FAA /* SDLAudioPassThruCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioPassThruCapabilities.m; path = SmartDeviceLink/SDLAudioPassThruCapabilities.m; sourceTree = ""; }; - C3AD77243F4F153EACAAED070520ED92 /* SDLPermissionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionStatus.m; path = SmartDeviceLink/SDLPermissionStatus.m; sourceTree = ""; }; - C43267362AC3279A3F73CFD64244B09E /* SDLLogTargetOSLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetOSLog.m; path = SmartDeviceLink/SDLLogTargetOSLog.m; sourceTree = ""; }; - C49C746FEF983198F94F124899429825 /* SDLPutFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPutFileResponse.h; path = SmartDeviceLink/SDLPutFileResponse.h; sourceTree = ""; }; - C534A8E7EB957888755A23CAD66D7EA1 /* SDLControlFramePayloadRPCStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRPCStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m; sourceTree = ""; }; - C588EEFCF45E3FAF0C2800BE518387F8 /* SDLIAPSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPSession.m; path = SmartDeviceLink/SDLIAPSession.m; sourceTree = ""; }; - C5EA591376DD52B8329D8B6224101BE5 /* SDLSetDisplayLayoutResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetDisplayLayoutResponse.h; path = SmartDeviceLink/SDLSetDisplayLayoutResponse.h; sourceTree = ""; }; - C64D7A63C4552BCCDBF2279977AA076F /* SDLSubscribeWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeWayPoints.m; path = SmartDeviceLink/SDLSubscribeWayPoints.m; sourceTree = ""; }; - C6B82BEAAE6A7BEC7C2C08C051A6FF6F /* SDLButtonEventMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonEventMode.h; path = SmartDeviceLink/SDLButtonEventMode.h; sourceTree = ""; }; - C6DF2C94DD0BF22417AAE9FD81EBA970 /* SDLPutFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPutFile.h; path = SmartDeviceLink/SDLPutFile.h; sourceTree = ""; }; - C72CB8FE47E78B2195E1D260F2BCBE55 /* SDLTTSChunk.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTTSChunk.m; path = SmartDeviceLink/SDLTTSChunk.m; sourceTree = ""; }; - C750AA9E3A4B741F05012DAB3CF5DCB8 /* SDLMassageZone.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageZone.m; path = SmartDeviceLink/SDLMassageZone.m; sourceTree = ""; }; - C75F3D86ED3595011FD0EF82DEE4B281 /* SDLTransportDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTransportDelegate.h; path = SmartDeviceLink/SDLTransportDelegate.h; sourceTree = ""; }; - C7908C42336E3E8EF7BF8A5ED5F36DE9 /* SDLResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResult.h; path = SmartDeviceLink/SDLResult.h; sourceTree = ""; }; - C796B5BE48E8ED08367A0096265A5C98 /* SDLScrollableMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScrollableMessage.m; path = SmartDeviceLink/SDLScrollableMessage.m; sourceTree = ""; }; - C796D07492208120D730817A83899617 /* SDLOnWayPointChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnWayPointChange.m; path = SmartDeviceLink/SDLOnWayPointChange.m; sourceTree = ""; }; - C7B0E1C7EE33B7EB279CD11839EE6739 /* SDLKeypressMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeypressMode.h; path = SmartDeviceLink/SDLKeypressMode.h; sourceTree = ""; }; - C7C905D0B465F2AEBC7292AFD9059B7B /* SDLLockScreenStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenStatus.h; path = SmartDeviceLink/SDLLockScreenStatus.h; sourceTree = ""; }; - C7DDA9F4F55CABEE280A8EFB020D3C65 /* SDLLightControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightControlData.h; path = SmartDeviceLink/SDLLightControlData.h; sourceTree = ""; }; - C80DF22B5D28FCE41F973EA350DED295 /* SDLControlFramePayloadRPCStartService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRPCStartService.m; path = SmartDeviceLink/SDLControlFramePayloadRPCStartService.m; sourceTree = ""; }; - C8CF322794D18B8D62BBDB8E3C98ACC9 /* SDLProtocolMessageDisassembler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessageDisassembler.h; path = SmartDeviceLink/SDLProtocolMessageDisassembler.h; sourceTree = ""; }; - C906B3598B3CFACF07B0ECE64FA3266D /* SDLVehicleDataStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataStatus.h; path = SmartDeviceLink/SDLVehicleDataStatus.h; sourceTree = ""; }; - C924DE2BB45B9FC311749106243E9660 /* SDLMassageMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageMode.m; path = SmartDeviceLink/SDLMassageMode.m; sourceTree = ""; }; - C98CE191527F3EEA9EB0D52A7E8C01E4 /* SDLTimerMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTimerMode.m; path = SmartDeviceLink/SDLTimerMode.m; sourceTree = ""; }; - C9C4E34BF96558991703677F909C69A4 /* SDLUnsubscribeWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeWayPoints.h; path = SmartDeviceLink/SDLUnsubscribeWayPoints.h; sourceTree = ""; }; - C9E6389F7EB9A2D0D5DFA03917B8774A /* SDLSubscribeWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeWayPoints.h; path = SmartDeviceLink/SDLSubscribeWayPoints.h; sourceTree = ""; }; - CA11528DBA2B358F2D49F69157EDCADB /* SDLAppInterfaceUnregisteredReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppInterfaceUnregisteredReason.h; path = SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h; sourceTree = ""; }; - CA449C346ED9EF7784D603168D130BF9 /* SDLTCPTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTCPTransport.m; path = SmartDeviceLink/SDLTCPTransport.m; sourceTree = ""; }; - CA4C4A31F252A3AA8D1F093D8AA1C2EE /* SDLSetAppIconResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetAppIconResponse.h; path = SmartDeviceLink/SDLSetAppIconResponse.h; sourceTree = ""; }; - CAE15697C2B379B5AD4250AD454DCC9F /* SDLDialNumberResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDialNumberResponse.m; path = SmartDeviceLink/SDLDialNumberResponse.m; sourceTree = ""; }; - CB01AD4F05816453518D94D580DA26A2 /* SDLGetDTCs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetDTCs.h; path = SmartDeviceLink/SDLGetDTCs.h; sourceTree = ""; }; - CB405DA5F788994C39DF7E19968B3417 /* SDLLocationDetails.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLocationDetails.h; path = SmartDeviceLink/SDLLocationDetails.h; sourceTree = ""; }; - CB43E3D640B1FB16CFCA612D7D97A8F1 /* SDLDeleteFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFileResponse.h; path = SmartDeviceLink/SDLDeleteFileResponse.h; sourceTree = ""; }; - CBACDEE19366DD9A08DD42FC984CACED /* SDLDeleteFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileResponse.m; path = SmartDeviceLink/SDLDeleteFileResponse.m; sourceTree = ""; }; - CBDCBD2A2EFEDA02586A671D16C8A613 /* SDLTBTState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTBTState.m; path = SmartDeviceLink/SDLTBTState.m; sourceTree = ""; }; - CC0A7A3D3F4D617D0E71AF1093961409 /* SDLGetDTCsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetDTCsResponse.h; path = SmartDeviceLink/SDLGetDTCsResponse.h; sourceTree = ""; }; - CC2CF1557DA0FDB593F5A186F18275B1 /* SDLImageType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageType.h; path = SmartDeviceLink/SDLImageType.h; sourceTree = ""; }; - CC8FA7074043AD0EFEB34FD5CEE11BD1 /* EAAccessory+SDLProtocols.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EAAccessory+SDLProtocols.m"; path = "SmartDeviceLink/EAAccessory+SDLProtocols.m"; sourceTree = ""; }; - CCAC618CC0C3328787BC012A68387719 /* SDLSingleTireStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSingleTireStatus.m; path = SmartDeviceLink/SDLSingleTireStatus.m; sourceTree = ""; }; - CCB1B296EDBE648A896D60F8CEE6EF27 /* SDLShow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShow.h; path = SmartDeviceLink/SDLShow.h; sourceTree = ""; }; - CCC2E4CCCC588380F82E83F43587F252 /* SDLEncodedSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncodedSyncPData.h; path = SmartDeviceLink/SDLEncodedSyncPData.h; sourceTree = ""; }; - CD72B7A1B82714D01D99FC2D5DCAD1CE /* SDLControlFramePayloadTransportEventUpdate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadTransportEventUpdate.h; path = SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.h; sourceTree = ""; }; - CD7F72B767014839B0530963C82FE3DF /* SDLMyKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMyKey.m; path = SmartDeviceLink/SDLMyKey.m; sourceTree = ""; }; - CDA5BC6134D5DF2253BC19AFE8F57649 /* Pods-MobileWeather-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MobileWeather-acknowledgements.markdown"; sourceTree = ""; }; - CDB08B4633B0694249B93A051D44062B /* SDLLogTargetAppleSystemLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetAppleSystemLog.m; path = SmartDeviceLink/SDLLogTargetAppleSystemLog.m; sourceTree = ""; }; - CDE5462216ECC40BC5E269381EBEA719 /* SDLAudioControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioControlData.h; path = SmartDeviceLink/SDLAudioControlData.h; sourceTree = ""; }; - CE55C6A5E5F61F14CD3DBE30F7B822EA /* Pods-MobileWeather.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MobileWeather.release.xcconfig"; sourceTree = ""; }; - CEF708FFC87490713BE7492E71C6CFC6 /* SDLDeleteFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFile.m; path = SmartDeviceLink/SDLDeleteFile.m; sourceTree = ""; }; - CF3E1C96AFEC7BF390F28147CA4DD532 /* SDLAmbientLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAmbientLightStatus.m; path = SmartDeviceLink/SDLAmbientLightStatus.m; sourceTree = ""; }; - CF7790CE899A39C998556055A1E7D05E /* SDLOasisAddress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOasisAddress.h; path = SmartDeviceLink/SDLOasisAddress.h; sourceTree = ""; }; - CFB25071577FDEADE8D9DA79FCE735B8 /* SDLOnLanguageChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnLanguageChange.m; path = SmartDeviceLink/SDLOnLanguageChange.m; sourceTree = ""; }; - CFCC4C078A82BC69C78877B984B1F7DE /* SDLTriggerSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTriggerSource.h; path = SmartDeviceLink/SDLTriggerSource.h; sourceTree = ""; }; - CFF52CDAD169EA0BE305F4FEA18AF00C /* SDLResetGlobalProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResetGlobalProperties.h; path = SmartDeviceLink/SDLResetGlobalProperties.h; sourceTree = ""; }; - D035F9030267FD1C5A40D1D1D91D8B01 /* SDLAppHMIType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppHMIType.h; path = SmartDeviceLink/SDLAppHMIType.h; sourceTree = ""; }; - D155EBD2551C3459E8B41CA19D856235 /* dispatch_timer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = dispatch_timer.m; path = SmartDeviceLink/dispatch_timer.m; sourceTree = ""; }; - D16AA0C2FE332401CE7F57F13834F32A /* SDLEmergencyEventType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEmergencyEventType.h; path = SmartDeviceLink/SDLEmergencyEventType.h; sourceTree = ""; }; - D189D97BE1019749C8B66808AB77A27B /* SDLButtonPress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPress.h; path = SmartDeviceLink/SDLButtonPress.h; sourceTree = ""; }; - D1C593EF742A7DEA18F01646BC598132 /* SDLBitsPerSample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBitsPerSample.h; path = SmartDeviceLink/SDLBitsPerSample.h; sourceTree = ""; }; - D1EC5DED346FD7BB7895AEBE3DFECB5F /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRegisterSecondaryTransportNak.m; path = SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m; sourceTree = ""; }; - D207F9B285022DA6A6CFAFCF14839E58 /* SDLAddCommandResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddCommandResponse.h; path = SmartDeviceLink/SDLAddCommandResponse.h; sourceTree = ""; }; - D20EED6DBEE6CA1DD9E9548FAC44753B /* SDLDialNumberResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDialNumberResponse.h; path = SmartDeviceLink/SDLDialNumberResponse.h; sourceTree = ""; }; - D27E5CC47CABA4801370B09E862441BE /* SDLOnLockScreenStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnLockScreenStatus.h; path = SmartDeviceLink/SDLOnLockScreenStatus.h; sourceTree = ""; }; - D2C578E5041CA51DAED52E0CA76D5B99 /* SDLStreamingMediaManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManagerConstants.h; path = SmartDeviceLink/SDLStreamingMediaManagerConstants.h; sourceTree = ""; }; - D2F29B3571AEDC6EF2A05C2FD2428B8C /* SDLSecondaryTransportPrimaryProtocolHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSecondaryTransportPrimaryProtocolHandler.h; path = SmartDeviceLink/SDLSecondaryTransportPrimaryProtocolHandler.h; sourceTree = ""; }; - D2F9491E9A021E2EABA56A03253B0372 /* SDLControlFramePayloadConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadConstants.h; path = SmartDeviceLink/SDLControlFramePayloadConstants.h; sourceTree = ""; }; - D2FA97C41ABC4E9B58E7AD67F60EC9E2 /* SDLStreamingMediaManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManager.h; path = SmartDeviceLink/SDLStreamingMediaManager.h; sourceTree = ""; }; - D322261099FDC3DD07B50C9CC5B1D750 /* EAAccessoryManager+SDLProtocols.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EAAccessoryManager+SDLProtocols.m"; path = "SmartDeviceLink/EAAccessoryManager+SDLProtocols.m"; sourceTree = ""; }; - D355CD2546086C41A89F4B7AAAE4C8E5 /* SDLHapticRect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHapticRect.h; path = SmartDeviceLink/SDLHapticRect.h; sourceTree = ""; }; - D48BBF34727DF6DE38DED9EC43E5E939 /* SDLControlFramePayloadNak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadNak.m; path = SmartDeviceLink/SDLControlFramePayloadNak.m; sourceTree = ""; }; - D48E12FC519B7176B5ABCBAFF3F4A7CA /* SDLUpdateMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateMode.m; path = SmartDeviceLink/SDLUpdateMode.m; sourceTree = ""; }; - D4AED0DCCD8F81481E37F6BFE21BAB4C /* SDLGlobals.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGlobals.m; path = SmartDeviceLink/SDLGlobals.m; sourceTree = ""; }; - D4BA8AEBC53D58106E0568ACFD4F7513 /* SDLSpeak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeak.h; path = SmartDeviceLink/SDLSpeak.h; sourceTree = ""; }; - D4D9CE10E16F6AE73297FC5DF7EA2F0C /* SDLPredefinedLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPredefinedLayout.m; path = SmartDeviceLink/SDLPredefinedLayout.m; sourceTree = ""; }; - D4F1CB611287E0564A46366E467F2B99 /* SDLSubscribeWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeWayPointsResponse.h; path = SmartDeviceLink/SDLSubscribeWayPointsResponse.h; sourceTree = ""; }; - D50321F21AFDE58F08A3BF69CD0D45B6 /* SDLComponentVolumeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLComponentVolumeStatus.h; path = SmartDeviceLink/SDLComponentVolumeStatus.h; sourceTree = ""; }; - D5819EE20D82F143CE1F0633E4D07C59 /* SDLSendLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendLocation.m; path = SmartDeviceLink/SDLSendLocation.m; sourceTree = ""; }; - D5B81F6F3103AD08D5BA5F4A084E857E /* SDLLogMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogMacros.h; path = SmartDeviceLink/SDLLogMacros.h; sourceTree = ""; }; - D5DBE882A800B18984D8EE83198A787C /* Pods-MobileWeather-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MobileWeather-acknowledgements.plist"; sourceTree = ""; }; - D66FF1E097F6C6ADBB8C030D347AE718 /* SDLSecondaryTransportManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSecondaryTransportManager.h; path = SmartDeviceLink/SDLSecondaryTransportManager.h; sourceTree = ""; }; - D67F7910E014171EF4A571F96DEED110 /* SDLLocationDetails.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLocationDetails.m; path = SmartDeviceLink/SDLLocationDetails.m; sourceTree = ""; }; - D682EE4635A0FD228944E10BD3DBD2D3 /* SDLVehicleType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleType.m; path = SmartDeviceLink/SDLVehicleType.m; sourceTree = ""; }; - D6FECF75926265826FDEA4124F3C90EF /* SDLTurnSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTurnSignal.m; path = SmartDeviceLink/SDLTurnSignal.m; sourceTree = ""; }; - D71FED2BCC771A573C90BD4F83AEFDFF /* SDLMaintenanceModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMaintenanceModeStatus.m; path = SmartDeviceLink/SDLMaintenanceModeStatus.m; sourceTree = ""; }; - D73A33145CFECBCAEE6723C53C833F84 /* SDLFunctionID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFunctionID.m; path = SmartDeviceLink/SDLFunctionID.m; sourceTree = ""; }; - D73D5CCFC3959A9781B253DDEBD3804A /* CVPixelBufferRef+SDLUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CVPixelBufferRef+SDLUtil.m"; path = "SmartDeviceLink/CVPixelBufferRef+SDLUtil.m"; sourceTree = ""; }; - D75553FBF05C6083BCE6F156DE8AFB6D /* SDLScreenshotViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScreenshotViewController.h; path = SmartDeviceLink/SDLScreenshotViewController.h; sourceTree = ""; }; - D77223E88DCDD7BB63B0B6D7D09CBFE7 /* SDLProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProxy.m; path = SmartDeviceLink/SDLProxy.m; sourceTree = ""; }; - D7B5B4BA4F26E2194066AB7EBEB93A57 /* SDLVehicleDataResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataResult.h; path = SmartDeviceLink/SDLVehicleDataResult.h; sourceTree = ""; }; - D7DD122ECD04717DF72D111757B25D26 /* SDLNotificationDispatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNotificationDispatcher.h; path = SmartDeviceLink/SDLNotificationDispatcher.h; sourceTree = ""; }; - D7E909DC64B7F89CB6C1A37B30E38768 /* SDLDisplayType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayType.m; path = SmartDeviceLink/SDLDisplayType.m; sourceTree = ""; }; - D82948567FD9B2929C169F79FA1C7E9A /* SDLChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceSet.m; path = SmartDeviceLink/SDLChoiceSet.m; sourceTree = ""; }; - D88D739C4F65E3A7EE9F3CCB7CF49C35 /* SDLMetadataTags.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMetadataTags.m; path = SmartDeviceLink/SDLMetadataTags.m; sourceTree = ""; }; - D8B425573155D00965E31D784C070BB2 /* SDLAudioControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioControlData.m; path = SmartDeviceLink/SDLAudioControlData.m; sourceTree = ""; }; - D8D039EA7810F354905A7B7DEC39AD3D /* SDLStreamingMediaConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaConfiguration.h; path = SmartDeviceLink/SDLStreamingMediaConfiguration.h; sourceTree = ""; }; - D8DEE8193F871BAF8FB10C6766E58037 /* SDLSetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetInteriorVehicleDataResponse.h; path = SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h; sourceTree = ""; }; - D93CCB1CAE537717BC9BCD4B03436DE4 /* SDLSubscribeVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeVehicleData.h; path = SmartDeviceLink/SDLSubscribeVehicleData.h; sourceTree = ""; }; - D9D727BA4020333B94CAAB14C5548B42 /* SDLSoftButtonType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonType.h; path = SmartDeviceLink/SDLSoftButtonType.h; sourceTree = ""; }; - DA0377EB4FCDD2096F6E8366E5B16C09 /* SDLHMIZoneCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMIZoneCapabilities.h; path = SmartDeviceLink/SDLHMIZoneCapabilities.h; sourceTree = ""; }; - DA0952F5884198F46D3797FB852A950B /* SDLModuleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleData.m; path = SmartDeviceLink/SDLModuleData.m; sourceTree = ""; }; - DA0D770C6A62BBA6A4927E049FD5FC38 /* SDLArtwork.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLArtwork.h; path = SmartDeviceLink/SDLArtwork.h; sourceTree = ""; }; - DA6DECFDEF3FAF260C7869F41CAB3C77 /* SDLSubscribeVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeVehicleDataResponse.h; path = SmartDeviceLink/SDLSubscribeVehicleDataResponse.h; sourceTree = ""; }; - DA84D035271BEC110F9662786D43FBD4 /* SDLMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMacros.h; path = SmartDeviceLink/SDLMacros.h; sourceTree = ""; }; - DAE97070D2DD7177A7C271893521CA74 /* SDLTouchType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchType.h; path = SmartDeviceLink/SDLTouchType.h; sourceTree = ""; }; - DB150042567FF8B4BA316079BE414F3C /* SDLConnectionManagerType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLConnectionManagerType.h; path = SmartDeviceLink/SDLConnectionManagerType.h; sourceTree = ""; }; - DBC88C050ABECE21892DC6034CC3F8B4 /* SDLLogModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogModel.m; path = SmartDeviceLink/SDLLogModel.m; sourceTree = ""; }; - DC22D9FCA0E86BCF2EB200AC5CB8E1AF /* SDLIgnitionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIgnitionStatus.m; path = SmartDeviceLink/SDLIgnitionStatus.m; sourceTree = ""; }; - DD018BD08DF216E04E994B4422402959 /* SDLChoiceCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceCell.h; path = SmartDeviceLink/SDLChoiceCell.h; sourceTree = ""; }; - DD5EBB52421A1DB35F7FC66083B6A92C /* SDLMutableDataQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMutableDataQueue.m; path = SmartDeviceLink/SDLMutableDataQueue.m; sourceTree = ""; }; - DDB5D173E33BC323A525338588E689F5 /* SDLResponseDispatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResponseDispatcher.h; path = SmartDeviceLink/SDLResponseDispatcher.h; sourceTree = ""; }; - DDBCD95E6AEEBA36D045DE905604EE77 /* SDLSISData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSISData.h; path = SmartDeviceLink/SDLSISData.h; sourceTree = ""; }; - DE28653246A6B19B5D9C82A38F1267A9 /* SDLVehicleDataNotificationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataNotificationStatus.h; path = SmartDeviceLink/SDLVehicleDataNotificationStatus.h; sourceTree = ""; }; - DE91B9B41F921F65A15BB1A61C45F3A1 /* SDLLogConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogConfiguration.h; path = SmartDeviceLink/SDLLogConfiguration.h; sourceTree = ""; }; - DECDC982A9EC09E0580A89EA45345121 /* SDLSystemCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapability.h; path = SmartDeviceLink/SDLSystemCapability.h; sourceTree = ""; }; - DF9E74F8390AAEB3D483417C6939A39E /* SDLPerformAudioPassThruResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAudioPassThruResponse.m; path = SmartDeviceLink/SDLPerformAudioPassThruResponse.m; sourceTree = ""; }; - E01A788B715A9CBF3F7896EF220491A9 /* SDLLightName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightName.h; path = SmartDeviceLink/SDLLightName.h; sourceTree = ""; }; - E0909068F2B40476D8DD18012ACEE182 /* SDLSoftButtonManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonManager.m; path = SmartDeviceLink/SDLSoftButtonManager.m; sourceTree = ""; }; - E0D02E23B750D15B087CF6991C7DD1E5 /* SDLSystemRequestResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemRequestResponse.m; path = SmartDeviceLink/SDLSystemRequestResponse.m; sourceTree = ""; }; - E15436608D62D13D53903727589401FD /* SDLMassageCushion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageCushion.h; path = SmartDeviceLink/SDLMassageCushion.h; sourceTree = ""; }; - E1C51C46435F3ED7FF9BB06FFC5A4F24 /* SDLFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFile.h; path = SmartDeviceLink/SDLFile.h; sourceTree = ""; }; - E2089987A5A19A000806B07EDD110D60 /* SDLAlertManeuver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertManeuver.h; path = SmartDeviceLink/SDLAlertManeuver.h; sourceTree = ""; }; - E280714FFF45ABB1CB9DC8A142136546 /* SDLLifecycleConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleConfiguration.m; path = SmartDeviceLink/SDLLifecycleConfiguration.m; sourceTree = ""; }; - E28E6185D21901A4C8918AA636A147E2 /* SDLProtocolConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolConstants.m; path = SmartDeviceLink/SDLProtocolConstants.m; sourceTree = ""; }; - E2ADED48EF297BC164761232F2B6215F /* SDLGetDTCsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetDTCsResponse.m; path = SmartDeviceLink/SDLGetDTCsResponse.m; sourceTree = ""; }; - E36102EF1851D3F66F89FB3A06D17F37 /* SmartDeviceLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SmartDeviceLink.h; path = SmartDeviceLink/SmartDeviceLink.h; sourceTree = ""; }; - E39097F54F4D74FE7229D93C71AA52B6 /* BiSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BiSON.modulemap; sourceTree = ""; }; - E3B8D796AD9F59926B271B6B8BC81CD3 /* SDLDeleteSubMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteSubMenu.m; path = SmartDeviceLink/SDLDeleteSubMenu.m; sourceTree = ""; }; - E3BF372C29FFEDC636D34D2F7BADCAAA /* SDLAudioStreamManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamManager.m; path = SmartDeviceLink/SDLAudioStreamManager.m; sourceTree = ""; }; - E435A1D99AE03AAB0AF44855E77E5EA0 /* bson_object.c */ = {isa = PBXFileReference; includeInIndex = 1; name = bson_object.c; path = src/bson_object.c; sourceTree = ""; }; - E439FC4CCB22233A41FA34B33784F938 /* SDLUpdateTurnListResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateTurnListResponse.h; path = SmartDeviceLink/SDLUpdateTurnListResponse.h; sourceTree = ""; }; - E49367CD2C96F4FB7B71A901D7B36355 /* SDLOnButtonPress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnButtonPress.h; path = SmartDeviceLink/SDLOnButtonPress.h; sourceTree = ""; }; - E521173FA983C64B20D3C21020B9DAA0 /* SDLAlertManeuver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertManeuver.m; path = SmartDeviceLink/SDLAlertManeuver.m; sourceTree = ""; }; - E553C3FC056DF2AE3262E3A00B4DF074 /* SDLChoice.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoice.m; path = SmartDeviceLink/SDLChoice.m; sourceTree = ""; }; - E5731FC6EAD9635A7EDD2F725FC4966C /* SDLDisplayMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayMode.m; path = SmartDeviceLink/SDLDisplayMode.m; sourceTree = ""; }; - E5EBE7E9894846207F571CA5AAB4D817 /* SDLRTPH264Packetizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRTPH264Packetizer.m; path = SmartDeviceLink/SDLRTPH264Packetizer.m; sourceTree = ""; }; - E5EC9ECC5F4F6ACD12B895CEC09422D0 /* SDLDriverDistractionState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDriverDistractionState.h; path = SmartDeviceLink/SDLDriverDistractionState.h; sourceTree = ""; }; - E631F9263CC1D82E8E2ED0FF4AFC488B /* SDLDeviceLevelStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceLevelStatus.h; path = SmartDeviceLink/SDLDeviceLevelStatus.h; sourceTree = ""; }; - E71309A18D09217CAF532B036D0FA97A /* SDLWiperStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWiperStatus.m; path = SmartDeviceLink/SDLWiperStatus.m; sourceTree = ""; }; - E7271585FE01A8942488AA222DE3AB43 /* SDLSystemCapabilityType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityType.m; path = SmartDeviceLink/SDLSystemCapabilityType.m; sourceTree = ""; }; - E7A313894B47D32C4EA5F371B0691870 /* SDLLocationCoordinate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLocationCoordinate.h; path = SmartDeviceLink/SDLLocationCoordinate.h; sourceTree = ""; }; - E7B4A0CE56A4C0A4142F88AD471CB508 /* SDLFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileManager.m; path = SmartDeviceLink/SDLFileManager.m; sourceTree = ""; }; - E814731FA7DC9943F7B808D89A9B9F91 /* SDLButtonPress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPress.m; path = SmartDeviceLink/SDLButtonPress.m; sourceTree = ""; }; - E8355E321C8CD5412294AEDC2B85517E /* SDLVehicleDataActiveStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataActiveStatus.m; path = SmartDeviceLink/SDLVehicleDataActiveStatus.m; sourceTree = ""; }; - E88F2B657B46A7ECC846CDFFF5390F31 /* SDLStreamDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamDelegate.m; path = SmartDeviceLink/SDLStreamDelegate.m; sourceTree = ""; }; - E8C4C7AA6A5BC02EF4D43A491686D9EA /* SDLVideoStreamingCodec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingCodec.h; path = SmartDeviceLink/SDLVideoStreamingCodec.h; sourceTree = ""; }; - E8D76C1021781ED7448582B85A5F97EA /* SDLAsynchronousOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousOperation.m; path = SmartDeviceLink/SDLAsynchronousOperation.m; sourceTree = ""; }; - E91E91E66C2D537CD449295C86997019 /* SDLIAPTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPTransport.h; path = SmartDeviceLink/SDLIAPTransport.h; sourceTree = ""; }; - E93E46F79CD1636328C3E622271F2F2C /* SDLOnHMIStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnHMIStatus.h; path = SmartDeviceLink/SDLOnHMIStatus.h; sourceTree = ""; }; - E979C453EEBA7D264D8AED785CF17294 /* SDLPresentKeyboardOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresentKeyboardOperation.m; path = SmartDeviceLink/SDLPresentKeyboardOperation.m; sourceTree = ""; }; - E9C5C58A3724605FC6E5584A0977F7CF /* SDLMassageModeData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageModeData.h; path = SmartDeviceLink/SDLMassageModeData.h; sourceTree = ""; }; - E9F83398A1E87F1CD45B5596A5D81AE4 /* SDLLockScreenViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenViewController.h; path = SmartDeviceLink/SDLLockScreenViewController.h; sourceTree = ""; }; - EA582BB114E38C65B6A91E4EE7B8F1F2 /* SDLUpdateTurnList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateTurnList.m; path = SmartDeviceLink/SDLUpdateTurnList.m; sourceTree = ""; }; - EA6D4C3D5EF2FDAE040D325A759CB6BB /* SDLSendLocationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendLocationResponse.m; path = SmartDeviceLink/SDLSendLocationResponse.m; sourceTree = ""; }; - EB02227CF664EEADE944C75221C640FC /* SDLFocusableItemLocator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemLocator.h; path = SmartDeviceLink/SDLFocusableItemLocator.h; sourceTree = ""; }; - EB782268F9B89A65FEEB9D8D3E0867E4 /* SDLGetWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetWayPoints.m; path = SmartDeviceLink/SDLGetWayPoints.m; sourceTree = ""; }; - EB818F5E2DD87AB284266FC69B4D5A12 /* SDLStreamingMediaManagerDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManagerDataSource.h; path = SmartDeviceLink/SDLStreamingMediaManagerDataSource.h; sourceTree = ""; }; - EBC44269990CF3B877BB2720CEC9CB74 /* SDLSetMediaClockTimerResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetMediaClockTimerResponse.h; path = SmartDeviceLink/SDLSetMediaClockTimerResponse.h; sourceTree = ""; }; - EBE2BDB35B173D11506009E03770CC5A /* SDLNames.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNames.m; path = SmartDeviceLink/SDLNames.m; sourceTree = ""; }; - EC39FC6F2170900B078272A1F0D1AFA2 /* SDLRectangle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRectangle.m; path = SmartDeviceLink/SDLRectangle.m; sourceTree = ""; }; - EC448CD8B6A7EC7C9542B754FDF978F2 /* SDLVideoStreamingFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingFormat.h; path = SmartDeviceLink/SDLVideoStreamingFormat.h; sourceTree = ""; }; - EC92A5CF1AF12B3C53B52D48314AB3A8 /* SDLFileManagerConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManagerConfiguration.h; path = SmartDeviceLink/SDLFileManagerConfiguration.h; sourceTree = ""; }; - ED1462950A60906FEC2552CD8926221F /* SDLEmergencyEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEmergencyEvent.h; path = SmartDeviceLink/SDLEmergencyEvent.h; sourceTree = ""; }; - ED2F31EF80C218AF069FF59E223A181C /* SDLProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProxy.h; path = SmartDeviceLink/SDLProxy.h; sourceTree = ""; }; - ED61ABE324F03833E5DD4900423E6100 /* SDLStreamingMediaManagerConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaManagerConstants.m; path = SmartDeviceLink/SDLStreamingMediaManagerConstants.m; sourceTree = ""; }; - ED9C3F415373C1FEC38B39E0C3E6A57B /* SDLSupportedSeat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSupportedSeat.h; path = SmartDeviceLink/SDLSupportedSeat.h; sourceTree = ""; }; - EDA3EFDEAD056017AB9C5A82679E99B2 /* SDLV1ProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV1ProtocolMessage.m; path = SmartDeviceLink/SDLV1ProtocolMessage.m; sourceTree = ""; }; - EDB42F987CA9D0C4BD5A37CB60D3AC3D /* SDLErrorConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLErrorConstants.h; path = SmartDeviceLink/SDLErrorConstants.h; sourceTree = ""; }; - EDCFB982E7DC04A76ED3DA3978F5DCA7 /* SDLRPCMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCMessage.m; path = SmartDeviceLink/SDLRPCMessage.m; sourceTree = ""; }; - EDF6F8E8BD9AB6D28CFCC4A88AC00A5A /* SDLDeleteSubMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteSubMenuResponse.h; path = SmartDeviceLink/SDLDeleteSubMenuResponse.h; sourceTree = ""; }; - EE1CFF1CC4DE8423C7542494529D17EA /* SDLObjectWithPriority.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLObjectWithPriority.h; path = SmartDeviceLink/SDLObjectWithPriority.h; sourceTree = ""; }; - EE5457E7487266451141B2F023DFB19C /* SDLCreateInteractionChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateInteractionChoiceSet.h; path = SmartDeviceLink/SDLCreateInteractionChoiceSet.h; sourceTree = ""; }; - EE9A3B75D5F68AA0D26EAAC23626F571 /* SDLDeviceStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceStatus.h; path = SmartDeviceLink/SDLDeviceStatus.h; sourceTree = ""; }; - EED6DA45D83CE687BCB94E414DFAC3E6 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = es.lproj/SDLLockScreen.strings; sourceTree = ""; }; - EF263A3DB489F2DFABE45E6A7B5EF757 /* SDLVideoStreamingFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingFormat.m; path = SmartDeviceLink/SDLVideoStreamingFormat.m; sourceTree = ""; }; - EF4EBDB80CEF89242D57537CB1A9D465 /* SDLOnCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnCommand.h; path = SmartDeviceLink/SDLOnCommand.h; sourceTree = ""; }; - EF6EF59CA601C0D108179F0F6F5C5085 /* SDLAppHMIType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppHMIType.m; path = SmartDeviceLink/SDLAppHMIType.m; sourceTree = ""; }; - EF87626A45BB35863F5E5817AF8441A0 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - EFDA01CCA143D1BF1A4477C8DE07B128 /* SDLGenericResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGenericResponse.m; path = SmartDeviceLink/SDLGenericResponse.m; sourceTree = ""; }; - F04DD54016688A8FBD677798DD52F1C5 /* SDLSystemCapabilityType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityType.h; path = SmartDeviceLink/SDLSystemCapabilityType.h; sourceTree = ""; }; - F07B93A82B076C766CF6D8E8DD56F230 /* SDLDialNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDialNumber.h; path = SmartDeviceLink/SDLDialNumber.h; sourceTree = ""; }; - F082C3105D51857B5A6D603751C8D9BB /* SDLEmergencyEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEmergencyEvent.m; path = SmartDeviceLink/SDLEmergencyEvent.m; sourceTree = ""; }; - F0877301378FB5E31DC1FF839B052571 /* SDLUnsubscribeWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeWayPoints.m; path = SmartDeviceLink/SDLUnsubscribeWayPoints.m; sourceTree = ""; }; - F0B0BD0A152C2E6D1C988C44BD243F7A /* SDLOnInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnInteriorVehicleData.h; path = SmartDeviceLink/SDLOnInteriorVehicleData.h; sourceTree = ""; }; - F0EB0D36D05552D95A93CA685238686E /* SDLArtwork.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLArtwork.m; path = SmartDeviceLink/SDLArtwork.m; sourceTree = ""; }; - F0FE7D045A05C40642E1D494C142ADE2 /* SDLParameterPermissions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLParameterPermissions.m; path = SmartDeviceLink/SDLParameterPermissions.m; sourceTree = ""; }; - F22C081156C963137E13B64F8EEDDBE7 /* SDLTriggerSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTriggerSource.m; path = SmartDeviceLink/SDLTriggerSource.m; sourceTree = ""; }; - F24E7F5DD21FD40A9EA898618D233EC9 /* SDLLogTarget.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTarget.h; path = SmartDeviceLink/SDLLogTarget.h; sourceTree = ""; }; - F26FA6D4CFDB68F6D5708D3320506CBD /* SDLTextField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextField.m; path = SmartDeviceLink/SDLTextField.m; sourceTree = ""; }; - F2B21041C8038135FEF53BB001EF0F91 /* SDLVoiceCommandManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommandManager.h; path = SmartDeviceLink/SDLVoiceCommandManager.h; sourceTree = ""; }; - F35822090B42F3897B8520B75DFCD4BB /* SDLPhoneCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPhoneCapability.m; path = SmartDeviceLink/SDLPhoneCapability.m; sourceTree = ""; }; - F3717E63FA48A5C50AAAE57A9318054D /* SDLV2ProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV2ProtocolHeader.m; path = SmartDeviceLink/SDLV2ProtocolHeader.m; sourceTree = ""; }; - F388207656E1E2BB02B35F9E54E554A1 /* SDLDisplayCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayCapabilities.h; path = SmartDeviceLink/SDLDisplayCapabilities.h; sourceTree = ""; }; - F3C46E32597E5AC52E2AF0079E7550A6 /* SDLControlFramePayloadAudioStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadAudioStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.h; sourceTree = ""; }; - F3DF41A5534678C031C7762017C9D5B8 /* SDLIgnitionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIgnitionStatus.h; path = SmartDeviceLink/SDLIgnitionStatus.h; sourceTree = ""; }; - F3F9A0650155304168FA15D074849F22 /* SDLLightControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightControlData.m; path = SmartDeviceLink/SDLLightControlData.m; sourceTree = ""; }; - F455B422DAF86C1424C82B369C3A8B08 /* SDLDisplayCapabilities+ShowManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLDisplayCapabilities+ShowManagerExtensions.m"; path = "SmartDeviceLink/SDLDisplayCapabilities+ShowManagerExtensions.m"; sourceTree = ""; }; - F5507ACACB0EE1CDC5827DB3CB5C3921 /* SDLTextAndGraphicManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextAndGraphicManager.m; path = SmartDeviceLink/SDLTextAndGraphicManager.m; sourceTree = ""; }; - F5A2F0A7C6B254D76F97A2422CF221C6 /* Pods_MobileWeather.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_MobileWeather.framework; path = "Pods-MobileWeather.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - F61313C1886B332D2F0390FEBEE186BE /* SDLChoice.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoice.h; path = SmartDeviceLink/SDLChoice.h; sourceTree = ""; }; - F69848BBB851E73A961ABD509A96FA9B /* SDLOnAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAudioPassThru.h; path = SmartDeviceLink/SDLOnAudioPassThru.h; sourceTree = ""; }; - F69BAB9533A64E79E944642D731471FD /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = ja.lproj/SDLLockScreen.strings; sourceTree = ""; }; - F6D88BD30A20B4D257B7CF47581E9CAF /* SDLDeliveryMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeliveryMode.m; path = SmartDeviceLink/SDLDeliveryMode.m; sourceTree = ""; }; - F7111C40A1B8D985183C000106A4045B /* SDLSetInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetInteriorVehicleData.m; path = SmartDeviceLink/SDLSetInteriorVehicleData.m; sourceTree = ""; }; - F75470D9588DBC08DC94E74BB7E678F4 /* SDLOnButtonPress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnButtonPress.m; path = SmartDeviceLink/SDLOnButtonPress.m; sourceTree = ""; }; - F783AA681B65EB189DCDDBF0D479C97C /* SDLButtonName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonName.m; path = SmartDeviceLink/SDLButtonName.m; sourceTree = ""; }; - F79AE8E9ADE72D6DE44E2276CEAD0C3A /* SDLOnLockScreenStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnLockScreenStatus.m; path = SmartDeviceLink/SDLOnLockScreenStatus.m; sourceTree = ""; }; - F7C5259708F8AF4982C24C1ED677BA04 /* SDLAudioPassThruCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioPassThruCapabilities.h; path = SmartDeviceLink/SDLAudioPassThruCapabilities.h; sourceTree = ""; }; - F8422108EBCA981187191FB5C1C6143F /* SDLAlert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlert.h; path = SmartDeviceLink/SDLAlert.h; sourceTree = ""; }; - F8BCA7DDAC02AAC3F3B4BD14435C2606 /* SDLImageResolution.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageResolution.m; path = SmartDeviceLink/SDLImageResolution.m; sourceTree = ""; }; - F8F030BFD1C8C53533F5FE9C47B23B0B /* SDLUnregisterAppInterfaceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnregisterAppInterfaceResponse.m; path = SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m; sourceTree = ""; }; - F99552D589ED900BF989DBEC687D6487 /* SDLPerformAudioPassThruResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAudioPassThruResponse.h; path = SmartDeviceLink/SDLPerformAudioPassThruResponse.h; sourceTree = ""; }; - FA55B3AD506D7300199B1A88A4C1922D /* SDLProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocol.h; path = SmartDeviceLink/SDLProtocol.h; sourceTree = ""; }; - FA7520D29ADDEAE0706E4E297C9EC00B /* SDLChoiceCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceCell.m; path = SmartDeviceLink/SDLChoiceCell.m; sourceTree = ""; }; - FAAFF0562BE405586BCF1FDDF36AE5ED /* SDLStateMachine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStateMachine.h; path = SmartDeviceLink/SDLStateMachine.h; sourceTree = ""; }; - FB4C01D533FFC24E248651CE7EA674CF /* SDLSetGlobalProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetGlobalProperties.m; path = SmartDeviceLink/SDLSetGlobalProperties.m; sourceTree = ""; }; - FB5934EB6BF2DD837A0DDD267F040DC8 /* SDLRDSData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRDSData.m; path = SmartDeviceLink/SDLRDSData.m; sourceTree = ""; }; - FB630387201D5C255AAC684842BE5C05 /* SDLHMISettingsControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMISettingsControlCapabilities.m; path = SmartDeviceLink/SDLHMISettingsControlCapabilities.m; sourceTree = ""; }; - FB7882BBC66764C5C31631C3E44872D9 /* SDLKeyboardLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardLayout.h; path = SmartDeviceLink/SDLKeyboardLayout.h; sourceTree = ""; }; - FB7A1B092EFFA569A0209062DB70F20C /* SDLDeviceStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceStatus.m; path = SmartDeviceLink/SDLDeviceStatus.m; sourceTree = ""; }; - FB963F962A2C0E4A36716A49E1417B18 /* SDLHexUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHexUtility.m; path = SmartDeviceLink/SDLHexUtility.m; sourceTree = ""; }; - FBA716CC59FBC7633B82964878203C10 /* SDLGetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataResponse.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m; sourceTree = ""; }; - FBB40AFB9493DDC169BE7015E9119C1C /* SDLLockScreenStatusManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenStatusManager.h; path = SmartDeviceLink/SDLLockScreenStatusManager.h; sourceTree = ""; }; - FBC88689D957B55C0048D1CEDB2EBBC2 /* SDLUnsubscribeVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeVehicleData.h; path = SmartDeviceLink/SDLUnsubscribeVehicleData.h; sourceTree = ""; }; - FCF86FF1762C0B9D3ADC7D0AC60200BD /* SDLEnum.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEnum.h; path = SmartDeviceLink/SDLEnum.h; sourceTree = ""; }; - FD86549ACDDE44723749A963C8649466 /* SDLLightControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightControlCapabilities.m; path = SmartDeviceLink/SDLLightControlCapabilities.m; sourceTree = ""; }; - FDD0F81844113F875E5530B74E5059C3 /* SDLLightName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightName.m; path = SmartDeviceLink/SDLLightName.m; sourceTree = ""; }; - FDE4AE55BBF8F01C929485F3093C57D4 /* SDLRPCNotificationNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCNotificationNotification.m; path = SmartDeviceLink/SDLRPCNotificationNotification.m; sourceTree = ""; }; - FE3D9FA9E20EADE3D814527B11431DD7 /* SDLSpeakResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeakResponse.h; path = SmartDeviceLink/SDLSpeakResponse.h; sourceTree = ""; }; - FE4DA3080A6AFF4573043FADA7FCB772 /* SDLControlFramePayloadEndService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadEndService.h; path = SmartDeviceLink/SDLControlFramePayloadEndService.h; sourceTree = ""; }; - FE7D0124F88DC1F3149FCBC1CC631444 /* SDLV1ProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV1ProtocolMessage.h; path = SmartDeviceLink/SDLV1ProtocolMessage.h; sourceTree = ""; }; - FE8503F612720EBE84C85E9D319C3366 /* SDLAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = SDLAssets.xcassets; path = SmartDeviceLink/Assets/SDLAssets.xcassets; sourceTree = ""; }; - FEA3CF62D8E20C66A2127F8FE3D3DFB5 /* SDLLogFileModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFileModule.m; path = SmartDeviceLink/SDLLogFileModule.m; sourceTree = ""; }; - FECAD3D772AE3D92F982F8D37CF84190 /* SDLStreamingMediaConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaConfiguration.m; path = SmartDeviceLink/SDLStreamingMediaConfiguration.m; sourceTree = ""; }; - FEF096B9ED60494498C54BF016616F93 /* SDLSetMediaClockTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetMediaClockTimer.h; path = SmartDeviceLink/SDLSetMediaClockTimer.h; sourceTree = ""; }; - FEF2F285408D6796CC68B3E5C8A67994 /* SDLUploadFileOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUploadFileOperation.h; path = SmartDeviceLink/SDLUploadFileOperation.h; sourceTree = ""; }; - FF41DB53E65BA7A9D44CF06053B930A2 /* SDLPermissionConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionConstants.h; path = SmartDeviceLink/SDLPermissionConstants.h; sourceTree = ""; }; + 0050DA0BCF8282C74B54D6A62D359073 /* SDLStreamingMediaConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaConfiguration.h; path = SmartDeviceLink/SDLStreamingMediaConfiguration.h; sourceTree = ""; }; + 009617EB39512D02064536C0802DF918 /* SDLSetMediaClockTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetMediaClockTimer.h; path = SmartDeviceLink/SDLSetMediaClockTimer.h; sourceTree = ""; }; + 00C68FA444D0ECFF71A216F789929F82 /* SDLHMIZoneCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMIZoneCapabilities.m; path = SmartDeviceLink/SDLHMIZoneCapabilities.m; sourceTree = ""; }; + 00D366651669905A0972F086586FA9B4 /* SDLRPCMessageType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCMessageType.m; path = SmartDeviceLink/SDLRPCMessageType.m; sourceTree = ""; }; + 00F5A6A079156BEB8005F1C89BA34E2C /* SDLLockScreenConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenConfiguration.h; path = SmartDeviceLink/SDLLockScreenConfiguration.h; sourceTree = ""; }; + 00F802377FED3220A7D572E90814F78E /* SDLKeyboardLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardLayout.h; path = SmartDeviceLink/SDLKeyboardLayout.h; sourceTree = ""; }; + 012CE07CE00E36054DA038C75909F04A /* SmartDeviceLink.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SmartDeviceLink.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 013381222E2F09C3FC30E0546F2E0E85 /* SDLTireStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTireStatus.h; path = SmartDeviceLink/SDLTireStatus.h; sourceTree = ""; }; + 01576AC9DF9C06D0764239C2D918DB93 /* SDLOnHashChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnHashChange.h; path = SmartDeviceLink/SDLOnHashChange.h; sourceTree = ""; }; + 01F187BD4B1741FD143AC9FEE6B6A9B8 /* SDLNavigationInstruction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationInstruction.h; path = SmartDeviceLink/SDLNavigationInstruction.h; sourceTree = ""; }; + 026C522465461D2651A396400F15816E /* SDLControlFramePayloadTransportEventUpdate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadTransportEventUpdate.m; path = SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m; sourceTree = ""; }; + 02D17977948909712E8F721ABB765601 /* SDLSetDisplayLayoutResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetDisplayLayoutResponse.h; path = SmartDeviceLink/SDLSetDisplayLayoutResponse.h; sourceTree = ""; }; + 02F85B02BD1D0104B4B4F60FE4E0B7A3 /* SDLPRNDL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPRNDL.m; path = SmartDeviceLink/SDLPRNDL.m; sourceTree = ""; }; + 02FDA2F0BEF128D86C26F8CC45E68CD1 /* SDLEmergencyEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEmergencyEvent.h; path = SmartDeviceLink/SDLEmergencyEvent.h; sourceTree = ""; }; + 0308C13EE2FCDF4DBE02F2C11AFBFC1A /* SDLSpeechCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeechCapabilities.h; path = SmartDeviceLink/SDLSpeechCapabilities.h; sourceTree = ""; }; + 031BBB010D945FCF674851CA3A00B9F3 /* SDLMyKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMyKey.h; path = SmartDeviceLink/SDLMyKey.h; sourceTree = ""; }; + 0381C7F8F19AB2E83F3F40CB77F00DCB /* SDLLog.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SDLLog.swift; path = SmartDeviceLinkSwift/SDLLog.swift; sourceTree = ""; }; + 03CB7781E3AFB6084B7FF7B008C554AA /* SDLAudioStreamManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamManagerDelegate.h; path = SmartDeviceLink/SDLAudioStreamManagerDelegate.h; sourceTree = ""; }; + 0482261E0D79D54F44C861DCF5D31296 /* SDLStreamingMediaManagerDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManagerDataSource.h; path = SmartDeviceLink/SDLStreamingMediaManagerDataSource.h; sourceTree = ""; }; + 04F52C5DC12FEA3AC1931C02FEB88081 /* SDLRPCFunctionNames.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCFunctionNames.m; path = SmartDeviceLink/SDLRPCFunctionNames.m; sourceTree = ""; }; + 052CE8CBD47B13C4CF8725945BB4F79B /* SDLUnsubscribeVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeVehicleDataResponse.m; path = SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m; sourceTree = ""; }; + 057374D02ED1566D4CB631DFB6705D55 /* SDLOnLanguageChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnLanguageChange.m; path = SmartDeviceLink/SDLOnLanguageChange.m; sourceTree = ""; }; + 057BF4E380C24A34B8A91DABCBD55757 /* SDLChangeRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChangeRegistration.h; path = SmartDeviceLink/SDLChangeRegistration.h; sourceTree = ""; }; + 05AF2492C648CAF3472BCDC0B4D590FD /* SDLLockScreenStatusManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenStatusManager.m; path = SmartDeviceLink/SDLLockScreenStatusManager.m; sourceTree = ""; }; + 05EF0182EFA11F347688F90D543F5C41 /* SDLSystemContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemContext.h; path = SmartDeviceLink/SDLSystemContext.h; sourceTree = ""; }; + 05EF4CC4570D8BE1DE3ECC0889A81ED7 /* SDLLanguage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLanguage.m; path = SmartDeviceLink/SDLLanguage.m; sourceTree = ""; }; + 060F9D8B01CC5577C06B7438BDB833E6 /* SDLSpeak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeak.m; path = SmartDeviceLink/SDLSpeak.m; sourceTree = ""; }; + 0656901E080D59E2E26E8D8989D2EED3 /* SDLImageField+ScreenManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLImageField+ScreenManagerExtensions.m"; path = "SmartDeviceLink/SDLImageField+ScreenManagerExtensions.m"; sourceTree = ""; }; + 068BB05FC0F060EEA4D7C2CA18384BB6 /* SDLResetGlobalProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResetGlobalProperties.h; path = SmartDeviceLink/SDLResetGlobalProperties.h; sourceTree = ""; }; + 06C8E96119F2882B4C2C262F67AD29E7 /* SDLSetCloudAppPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetCloudAppPropertiesResponse.h; path = SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h; sourceTree = ""; }; + 07586438D975F70590DE46C92B04B3D4 /* SDLOnAppServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAppServiceData.m; path = SmartDeviceLink/SDLOnAppServiceData.m; sourceTree = ""; }; + 07761CF3C8D6A5A03E8B321C60A0DCE8 /* SDLGetSystemCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetSystemCapability.m; path = SmartDeviceLink/SDLGetSystemCapability.m; sourceTree = ""; }; + 079C8504D554E430687E23C3BB9F291F /* SDLParameterPermissions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLParameterPermissions.h; path = SmartDeviceLink/SDLParameterPermissions.h; sourceTree = ""; }; + 080C0AFE1D0A26741E58932027641033 /* SDLEncodedSyncPDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncodedSyncPDataResponse.m; path = SmartDeviceLink/SDLEncodedSyncPDataResponse.m; sourceTree = ""; }; + 087970D423C4D2D7AB2EE1EE71444F15 /* SDLUpdateMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateMode.m; path = SmartDeviceLink/SDLUpdateMode.m; sourceTree = ""; }; + 089526E918DB53DC6E49872629FFC303 /* SDLAudioControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioControlData.m; path = SmartDeviceLink/SDLAudioControlData.m; sourceTree = ""; }; + 08C7E71E744D35BDA4283D2972693EA5 /* SDLMediaServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaServiceManifest.m; path = SmartDeviceLink/SDLMediaServiceManifest.m; sourceTree = ""; }; + 08DA15E3B091636F3E38EEE53E5BD64E /* SDLUnsubscribeButtonResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeButtonResponse.m; path = SmartDeviceLink/SDLUnsubscribeButtonResponse.m; sourceTree = ""; }; + 08FD56690946400B66FA81A3473A5CD0 /* SDLOnAppServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAppServiceData.h; path = SmartDeviceLink/SDLOnAppServiceData.h; sourceTree = ""; }; + 092865BB22501250C0C3FF3D5CF2E200 /* SDLAppServicesCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServicesCapabilities.h; path = SmartDeviceLink/SDLAppServicesCapabilities.h; sourceTree = ""; }; + 09287D9F2DCDB16BF6E036447C615805 /* SDLTextAlignment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextAlignment.m; path = SmartDeviceLink/SDLTextAlignment.m; sourceTree = ""; }; + 094B9EE84AB60943CDCB9F8C70FA11EC /* bson_array.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = bson_array.c; path = src/bson_array.c; sourceTree = ""; }; + 09CB1EF14BDD7FF6541D42C4AA269392 /* SDLAppServiceRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceRecord.m; path = SmartDeviceLink/SDLAppServiceRecord.m; sourceTree = ""; }; + 0A3F5B7EC0DC340080344B57171997C6 /* SDLOnButtonPress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnButtonPress.h; path = SmartDeviceLink/SDLOnButtonPress.h; sourceTree = ""; }; + 0A92F939214CB9AE0B8F4A9AC267DF28 /* SDLChoiceCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceCell.m; path = SmartDeviceLink/SDLChoiceCell.m; sourceTree = ""; }; + 0B1FA2D3A3AECF7476B6EB1A1004187A /* SDLButtonPress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPress.h; path = SmartDeviceLink/SDLButtonPress.h; sourceTree = ""; }; + 0B426EF21719FFCBFD4CC285CE5B8E31 /* SDLButtonPress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPress.m; path = SmartDeviceLink/SDLButtonPress.m; sourceTree = ""; }; + 0BBAEFCD3A5756020019D66827B7F6BA /* SDLSystemCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapability.m; path = SmartDeviceLink/SDLSystemCapability.m; sourceTree = ""; }; + 0BC571015C3D3C1EF66114AC5050FB2C /* SDLHMISettingsControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMISettingsControlCapabilities.m; path = SmartDeviceLink/SDLHMISettingsControlCapabilities.m; sourceTree = ""; }; + 0C385BAB9B99A124EC2DEF4D689CB7BB /* SDLGetWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetWayPoints.m; path = SmartDeviceLink/SDLGetWayPoints.m; sourceTree = ""; }; + 0C86980F55A57904FF85C7623588A367 /* SDLPhoneCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPhoneCapability.h; path = SmartDeviceLink/SDLPhoneCapability.h; sourceTree = ""; }; + 0D21D2139E965A5CA024DB58BE117962 /* SDLCloseApplication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCloseApplication.m; path = SmartDeviceLink/SDLCloseApplication.m; sourceTree = ""; }; + 0DD50A61126C05D1E22DD18C08F59593 /* SDLIAPConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPConstants.m; path = SmartDeviceLink/SDLIAPConstants.m; sourceTree = ""; }; + 0DD50AAA2369E60F10DA24C777F7D9D8 /* SDLLockScreenRootViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenRootViewController.m; path = SmartDeviceLink/SDLLockScreenRootViewController.m; sourceTree = ""; }; + 0DE2FE3B6560346F8069F04D79D7E283 /* SDLBitsPerSample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBitsPerSample.m; path = SmartDeviceLink/SDLBitsPerSample.m; sourceTree = ""; }; + 0DEF9947C4576AE910482FFD434E878E /* SDLPrerecordedSpeech.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrerecordedSpeech.h; path = SmartDeviceLink/SDLPrerecordedSpeech.h; sourceTree = ""; }; + 0E30FC7A94025A61E6EA176845E4BEF3 /* SDLSlider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSlider.h; path = SmartDeviceLink/SDLSlider.h; sourceTree = ""; }; + 0E3170BC3B4F4F5877B69D05DED54CBA /* SDLLifecycleSystemRequestHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleSystemRequestHandler.m; path = SmartDeviceLink/SDLLifecycleSystemRequestHandler.m; sourceTree = ""; }; + 0ECF2069806AE61431252D9A6ED62A8F /* SDLRTPH264Packetizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRTPH264Packetizer.m; path = SmartDeviceLink/SDLRTPH264Packetizer.m; sourceTree = ""; }; + 0EF49DE50EC4EBA86EC32278ADDCE591 /* SDLResetGlobalPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResetGlobalPropertiesResponse.m; path = SmartDeviceLink/SDLResetGlobalPropertiesResponse.m; sourceTree = ""; }; + 0F83E2FDBC27F6BEBC1DB1957CD550D9 /* SDLOnSystemCapabilityUpdated.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSystemCapabilityUpdated.m; path = SmartDeviceLink/SDLOnSystemCapabilityUpdated.m; sourceTree = ""; }; + 0F98A315A729E83EEEFA448CB1B4AE9D /* CGPoint_Util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CGPoint_Util.h; path = SmartDeviceLink/CGPoint_Util.h; sourceTree = ""; }; + 102FDAC56AEF5163B033D0CC47822A7F /* SDLCancelInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCancelInteractionResponse.m; path = SmartDeviceLink/SDLCancelInteractionResponse.m; sourceTree = ""; }; + 1079F5E8BF4B26941ED6E2AC3446BCC1 /* SDLPerformAudioPassThruResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAudioPassThruResponse.m; path = SmartDeviceLink/SDLPerformAudioPassThruResponse.m; sourceTree = ""; }; + 10932B52AE70AF095B0197772101BF9E /* SDLDeleteFileOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileOperation.m; path = SmartDeviceLink/SDLDeleteFileOperation.m; sourceTree = ""; }; + 10C447C90A40A49C0653E0D97B15E7C4 /* SDLWayPointType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWayPointType.m; path = SmartDeviceLink/SDLWayPointType.m; sourceTree = ""; }; + 1131203DD1A9D81CB8211E61876734B7 /* ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist"; sourceTree = ""; }; + 113CB9707D2133750B2A74C8E4E75D53 /* SDLNotificationConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNotificationConstants.h; path = SmartDeviceLink/SDLNotificationConstants.h; sourceTree = ""; }; + 116815ADE5356987348CB6CA1D5E8C88 /* SDLCreateInteractionChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateInteractionChoiceSet.h; path = SmartDeviceLink/SDLCreateInteractionChoiceSet.h; sourceTree = ""; }; + 117F46D8AD9F12EC389BFEC8EC4A4A7F /* SDLTPMS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTPMS.h; path = SmartDeviceLink/SDLTPMS.h; sourceTree = ""; }; + 11BAC842CBB10B4B7C24DD4A558F24D1 /* SDLVehicleDataStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataStatus.h; path = SmartDeviceLink/SDLVehicleDataStatus.h; sourceTree = ""; }; + 11EBD8D7297FC1CE9479C7508D26FEF6 /* SDLFocusableItemLocator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFocusableItemLocator.m; path = SmartDeviceLink/SDLFocusableItemLocator.m; sourceTree = ""; }; + 120E0599820F60BBAB5980EF892809ED /* SDLControlFramePayloadNak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadNak.h; path = SmartDeviceLink/SDLControlFramePayloadNak.h; sourceTree = ""; }; + 121EABB22D7495B5EBE9D72C0E2F9D2B /* SDLBackgroundTaskManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBackgroundTaskManager.h; path = SmartDeviceLink/SDLBackgroundTaskManager.h; sourceTree = ""; }; + 12816F5316A38E539BD4FBCC77ADE586 /* SDLGetSystemCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetSystemCapability.h; path = SmartDeviceLink/SDLGetSystemCapability.h; sourceTree = ""; }; + 12A3FA6BEC26E85A501F2A6A020EDBA3 /* SDLImageResolution.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageResolution.m; path = SmartDeviceLink/SDLImageResolution.m; sourceTree = ""; }; + 1333ABE7F346AAE4D08CC2F9393F2FBF /* SDLLockScreen.storyboard */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.storyboard; name = SDLLockScreen.storyboard; path = Base.lproj/SDLLockScreen.storyboard; sourceTree = ""; }; + 133621C4947DCE93C647CED71714B924 /* SDLImageType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageType.m; path = SmartDeviceLink/SDLImageType.m; sourceTree = ""; }; + 13701FFA4C23EEB343B1BAA4DE60E163 /* SDLGetCloudAppProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetCloudAppProperties.h; path = SmartDeviceLink/SDLGetCloudAppProperties.h; sourceTree = ""; }; + 138D7E23E43103272A89FF94CAF440C3 /* SDLHMIPermissions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMIPermissions.h; path = SmartDeviceLink/SDLHMIPermissions.h; sourceTree = ""; }; + 1444B3657275C2D2C695FC678ED8EF62 /* SDLFunctionID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFunctionID.m; path = SmartDeviceLink/SDLFunctionID.m; sourceTree = ""; }; + 14A578E900D2B9BF8DDA0AE05B717967 /* SDLLogManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogManager.m; path = SmartDeviceLink/SDLLogManager.m; sourceTree = ""; }; + 14A8D51B3439374BFB1554CBD1E477B8 /* SDLAlert.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlert.m; path = SmartDeviceLink/SDLAlert.m; sourceTree = ""; }; + 14CAEF2A13506951EA87997CC4AA236B /* SDLSubscribeButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButton.h; path = SmartDeviceLink/SDLSubscribeButton.h; sourceTree = ""; }; + 1535EB0F1986701BB26F15612FD19173 /* SDLTBTState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTBTState.h; path = SmartDeviceLink/SDLTBTState.h; sourceTree = ""; }; + 154F7BD449EBAB714A8FBF679C03A16F /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRegisterSecondaryTransportNak.h; path = SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.h; sourceTree = ""; }; + 1550A67573AAF420DF46830D2328EB6F /* SDLPerformInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformInteractionResponse.h; path = SmartDeviceLink/SDLPerformInteractionResponse.h; sourceTree = ""; }; + 157695036F630B99AA2A2162AAAAAF9E /* SDLDeleteFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFile.m; path = SmartDeviceLink/SDLDeleteFile.m; sourceTree = ""; }; + 157D461716A9EC90AA0014DEAF19F1BF /* SDLKeypressMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeypressMode.m; path = SmartDeviceLink/SDLKeypressMode.m; sourceTree = ""; }; + 1580E808E8B8B029807BCC9320D098D6 /* SDLSecurityType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSecurityType.h; path = SmartDeviceLink/SDLSecurityType.h; sourceTree = ""; }; + 16195BA066D92C5855624759BE7284F8 /* SDLFuelType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelType.m; path = SmartDeviceLink/SDLFuelType.m; sourceTree = ""; }; + 166F38C67540EA16117D3D9B0786CA65 /* SDLUnregisterAppInterfaceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnregisterAppInterfaceResponse.m; path = SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m; sourceTree = ""; }; + 16E0FE4610CAA939B208269D597C2BBF /* SDLStaticIconName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStaticIconName.h; path = SmartDeviceLink/SDLStaticIconName.h; sourceTree = ""; }; + 16EBB6180D66091B30DBE5C095E5CD44 /* SDLNavigationAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationAction.h; path = SmartDeviceLink/SDLNavigationAction.h; sourceTree = ""; }; + 17471B77EFB1B0CCB584D1BD7A3C1953 /* SDLNavigationCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationCapability.h; path = SmartDeviceLink/SDLNavigationCapability.h; sourceTree = ""; }; + 17D87C03746D4C019B47395971B49753 /* EAAccessory+SDLProtocols.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EAAccessory+SDLProtocols.m"; path = "SmartDeviceLink/EAAccessory+SDLProtocols.m"; sourceTree = ""; }; + 17F39883F5C926723043B16C4FEB77D9 /* SDLButtonEventMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonEventMode.h; path = SmartDeviceLink/SDLButtonEventMode.h; sourceTree = ""; }; + 180F965AD76BFA9FF73D2E6A17D76C66 /* SDLTouchCoord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchCoord.m; path = SmartDeviceLink/SDLTouchCoord.m; sourceTree = ""; }; + 181548D9FA28EF29C39F058DDD467003 /* SDLDeleteInteractionChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteInteractionChoiceSet.m; path = SmartDeviceLink/SDLDeleteInteractionChoiceSet.m; sourceTree = ""; }; + 182F56830437E660474472022B3B6A98 /* SDLVehicleDataActiveStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataActiveStatus.m; path = SmartDeviceLink/SDLVehicleDataActiveStatus.m; sourceTree = ""; }; + 18305D4E4A21F03086AE858DAC4C9BC4 /* SDLVoiceCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommand.h; path = SmartDeviceLink/SDLVoiceCommand.h; sourceTree = ""; }; + 185F3515C64226DE214C71343949C0A5 /* SDLLogTargetOSLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetOSLog.m; path = SmartDeviceLink/SDLLogTargetOSLog.m; sourceTree = ""; }; + 18C6985E2F4386AC03DB19BF363A41F0 /* SDLGetInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleData.h; path = SmartDeviceLink/SDLGetInteriorVehicleData.h; sourceTree = ""; }; + 18C8558030DFB952D8D24FA06D63E520 /* SDLMassageCushion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageCushion.m; path = SmartDeviceLink/SDLMassageCushion.m; sourceTree = ""; }; + 18CF297ABA10DB64D20A22E9C6634FF1 /* SDLSubscribeButtonManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonManager.h; path = SmartDeviceLink/SDLSubscribeButtonManager.h; sourceTree = ""; }; + 18D0C94E081C5652700A6657D0150BDA /* SDLUnregisterAppInterfaceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnregisterAppInterfaceResponse.h; path = SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h; sourceTree = ""; }; + 1908048E1CC8A27E740EF38F5430D864 /* SDLTextAndGraphicManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextAndGraphicManager.h; path = SmartDeviceLink/SDLTextAndGraphicManager.h; sourceTree = ""; }; + 19139224AA63FB5E62A3D689DD610047 /* SDLWeatherAlert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherAlert.h; path = SmartDeviceLink/SDLWeatherAlert.h; sourceTree = ""; }; + 192A53884A3A908C146B28777940F5E7 /* SDLLockScreenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenManager.m; path = SmartDeviceLink/SDLLockScreenManager.m; sourceTree = ""; }; + 199A9F6B336A337B69923DC5C5B8543F /* SDLRadioState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioState.h; path = SmartDeviceLink/SDLRadioState.h; sourceTree = ""; }; + 19FBDDF5290895EF460401DCB7F2C9EB /* SDLSystemCapabilityObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityObserver.m; path = SmartDeviceLink/SDLSystemCapabilityObserver.m; sourceTree = ""; }; + 1A4071441DDC5077B72F75166D79DE65 /* CVPixelBufferRef+SDLUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CVPixelBufferRef+SDLUtil.h"; path = "SmartDeviceLink/CVPixelBufferRef+SDLUtil.h"; sourceTree = ""; }; + 1A75D986DAB949A4EA63D5DDFC11ECAC /* SDLLockScreenConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenConfiguration.m; path = SmartDeviceLink/SDLLockScreenConfiguration.m; sourceTree = ""; }; + 1A761B2562737FE71DC9907B5B509B09 /* SDLOnButtonPress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnButtonPress.m; path = SmartDeviceLink/SDLOnButtonPress.m; sourceTree = ""; }; + 1B4F48B7943331568869C78731D2C1A3 /* SDLReleaseInteriorVehicleDataModuleResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReleaseInteriorVehicleDataModuleResponse.h; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h; sourceTree = ""; }; + 1B5378A0D8A574B369D8D84FC58D1882 /* SDLControlFramePayloadRPCStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRPCStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m; sourceTree = ""; }; + 1B74FBD65102DD04AAD49A5F43E8D28B /* SDLWeatherServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherServiceData.m; path = SmartDeviceLink/SDLWeatherServiceData.m; sourceTree = ""; }; + 1C7F206C35B6B523B922930AEAD75A25 /* SDLAppInterfaceUnregisteredReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppInterfaceUnregisteredReason.m; path = SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m; sourceTree = ""; }; + 1C8B86BA2EF69ECCA8BB0E915700E2FD /* SDLPredefinedLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPredefinedLayout.h; path = SmartDeviceLink/SDLPredefinedLayout.h; sourceTree = ""; }; + 1D2180BDF4301C114F0173CBFE678364 /* SDLSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncPData.h; path = SmartDeviceLink/SDLSyncPData.h; sourceTree = ""; }; + 1D48DAC1DBEA20AE11B03D74419A181C /* SDLAddCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddCommand.m; path = SmartDeviceLink/SDLAddCommand.m; sourceTree = ""; }; + 1D74AD8B5D8CFF4297D85C83D4BAD091 /* SDLStateMachine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStateMachine.m; path = SmartDeviceLink/SDLStateMachine.m; sourceTree = ""; }; + 1D9A91B4DF7620814FB322D536E96E5C /* SDLLifecycleMobileHMIStateHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleMobileHMIStateHandler.m; path = SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.m; sourceTree = ""; }; + 1DC9D9DFEFD8DA66012392040EC1C55F /* SDLCreateInteractionChoiceSetResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateInteractionChoiceSetResponse.m; path = SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m; sourceTree = ""; }; + 1E1869CDF2207B055D23A497C6184140 /* SDLProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolHeader.m; path = SmartDeviceLink/SDLProtocolHeader.m; sourceTree = ""; }; + 1E50C0F6174603A652E389F91F94FED1 /* SDLOnHMIStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnHMIStatus.m; path = SmartDeviceLink/SDLOnHMIStatus.m; sourceTree = ""; }; + 1E5F2C4BA784D2770AEA68069BA870A6 /* SDLTextAndGraphicManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextAndGraphicManager.m; path = SmartDeviceLink/SDLTextAndGraphicManager.m; sourceTree = ""; }; + 1E9A0368A42FD75DB7B35822E72FE4CA /* BiSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BiSON-dummy.m"; sourceTree = ""; }; + 1EAC648706939F20E524EF7CD347A0C2 /* SDLBackgroundTaskManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBackgroundTaskManager.m; path = SmartDeviceLink/SDLBackgroundTaskManager.m; sourceTree = ""; }; + 1EAE47EB9D6FA6A7086775871FD445E1 /* SDLDateTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDateTime.m; path = SmartDeviceLink/SDLDateTime.m; sourceTree = ""; }; + 1ECBAA05C55448900253CB47419A5374 /* SDLTextAlignment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextAlignment.h; path = SmartDeviceLink/SDLTextAlignment.h; sourceTree = ""; }; + 1EFA016E112D9F7CEE1696C8B3D236C1 /* SDLPreloadChoicesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPreloadChoicesOperation.m; path = SmartDeviceLink/SDLPreloadChoicesOperation.m; sourceTree = ""; }; + 1F9EA7382A67871A90547746B880626E /* SDLPrioritizedObjectCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrioritizedObjectCollection.h; path = SmartDeviceLink/SDLPrioritizedObjectCollection.h; sourceTree = ""; }; + 1FA3D11485B98D532358487B826F92A6 /* SDLButtonPressResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPressResponse.m; path = SmartDeviceLink/SDLButtonPressResponse.m; sourceTree = ""; }; + 1FBCD2AEAD60094A7CB51F32D61FDFDA /* SDLRPCParameterNames.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCParameterNames.m; path = SmartDeviceLink/SDLRPCParameterNames.m; sourceTree = ""; }; + 1FD7EEC34E8024D6A971F56B948E0EE1 /* SDLPublishAppServiceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPublishAppServiceResponse.h; path = SmartDeviceLink/SDLPublishAppServiceResponse.h; sourceTree = ""; }; + 1FF1117561E991A2D81068EDFF178C65 /* SDLNavigationServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationServiceData.m; path = SmartDeviceLink/SDLNavigationServiceData.m; sourceTree = ""; }; + 200CFF87D513357375E0E8A676B4DCF0 /* SDLGPSData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGPSData.h; path = SmartDeviceLink/SDLGPSData.h; sourceTree = ""; }; + 20237D47AB74244F657CB78EAC6D5E1D /* SDLSetAppIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetAppIcon.h; path = SmartDeviceLink/SDLSetAppIcon.h; sourceTree = ""; }; + 20267DD8ABB8C4937C58CB114EFA029A /* SDLSpeakResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeakResponse.m; path = SmartDeviceLink/SDLSpeakResponse.m; sourceTree = ""; }; + 202CF610C5F2342C8E54FB9049CF4F47 /* SDLDeleteSubMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteSubMenu.h; path = SmartDeviceLink/SDLDeleteSubMenu.h; sourceTree = ""; }; + 208C514CB24786D3F215E8EE314CA7B1 /* NSMutableDictionary+Store.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+Store.m"; path = "SmartDeviceLink/NSMutableDictionary+Store.m"; sourceTree = ""; }; + 20E5AD672FECA3D8596890719BD59620 /* SDLEncodedSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncodedSyncPData.h; path = SmartDeviceLink/SDLEncodedSyncPData.h; sourceTree = ""; }; + 20FED3C64AC281061455C114F2CDEEA8 /* SDLGetAppServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetAppServiceData.h; path = SmartDeviceLink/SDLGetAppServiceData.h; sourceTree = ""; }; + 2118A772BE2023279116272EE7B812EB /* SDLIAPControlSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPControlSession.h; path = SmartDeviceLink/SDLIAPControlSession.h; sourceTree = ""; }; + 21336DC8F1B0075CB0306847BECE7486 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = fr.lproj/SDLLockScreen.strings; sourceTree = ""; }; + 2156D0BCF6E0BA97352362D70EAD4710 /* SDLUpdateTurnList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateTurnList.m; path = SmartDeviceLink/SDLUpdateTurnList.m; sourceTree = ""; }; + 218552AF91635BA12359F7249694AF3B /* SDLNavigationJunction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationJunction.h; path = SmartDeviceLink/SDLNavigationJunction.h; sourceTree = ""; }; + 21D8EB78FB694C0B9754FB236AD82B6E /* SDLSubscribeWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeWayPoints.h; path = SmartDeviceLink/SDLSubscribeWayPoints.h; sourceTree = ""; }; + 21F2AED434573DC685BDADF20194DD4E /* SDLGlobalProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGlobalProperty.h; path = SmartDeviceLink/SDLGlobalProperty.h; sourceTree = ""; }; + 21FF3C3DE15BAD7345BC1A9C2B469984 /* SDLLifecycleConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleConfiguration.h; path = SmartDeviceLink/SDLLifecycleConfiguration.h; sourceTree = ""; }; + 2205A00A1B4704AA9532149FA266EF7A /* SDLSeatMemoryActionType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatMemoryActionType.m; path = SmartDeviceLink/SDLSeatMemoryActionType.m; sourceTree = ""; }; + 221567F33875BCC7E8D9E6448B21CAEA /* SDLSetGlobalPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetGlobalPropertiesResponse.h; path = SmartDeviceLink/SDLSetGlobalPropertiesResponse.h; sourceTree = ""; }; + 22F32629EED3C3C993F19F29509552C5 /* SDLWarningLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWarningLightStatus.m; path = SmartDeviceLink/SDLWarningLightStatus.m; sourceTree = ""; }; + 22F425A341DF24170003B4CF66D9AB40 /* SDLHMISettingsControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMISettingsControlCapabilities.h; path = SmartDeviceLink/SDLHMISettingsControlCapabilities.h; sourceTree = ""; }; + 235D21011FFD874789BF1B303492BB80 /* SDLStreamingMediaManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManagerConstants.h; path = SmartDeviceLink/SDLStreamingMediaManagerConstants.h; sourceTree = ""; }; + 23D8613239E013C85A55566B014E652F /* SDLListFilesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFilesOperation.m; path = SmartDeviceLink/SDLListFilesOperation.m; sourceTree = ""; }; + 23FBC3FE7098E4D00F7657B9BFDBF6AA /* SDLStreamingMediaConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaConfiguration.m; path = SmartDeviceLink/SDLStreamingMediaConfiguration.m; sourceTree = ""; }; + 2540FB48A65EFCB11FB8B5156DBA8201 /* SDLNotificationDispatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNotificationDispatcher.h; path = SmartDeviceLink/SDLNotificationDispatcher.h; sourceTree = ""; }; + 257C0CD607BEF7992A0953E0AD01C31D /* SDLH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLH264Packetizer.h; path = SmartDeviceLink/SDLH264Packetizer.h; sourceTree = ""; }; + 25831F0759C377A291230FE1B42725AC /* SDLControlFramePayloadVideoStartService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadVideoStartService.m; path = SmartDeviceLink/SDLControlFramePayloadVideoStartService.m; sourceTree = ""; }; + 25D424DB2BA7511820D2FE4FCDC9E179 /* SDLDisplayMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayMode.h; path = SmartDeviceLink/SDLDisplayMode.h; sourceTree = ""; }; + 25F504266BEC635D2B9887837CA00D26 /* SDLVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVersion.h; path = SmartDeviceLink/SDLVersion.h; sourceTree = ""; }; + 2643EB480894991204DC88CA218D09C2 /* SDLWindowCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWindowCapability.m; path = SmartDeviceLink/SDLWindowCapability.m; sourceTree = ""; }; + 26FD9D1C417A073A9574CE798E12DFED /* SDLMenuManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuManager.m; path = SmartDeviceLink/SDLMenuManager.m; sourceTree = ""; }; + 270D8238A2295E6936F9BCC907DD8BB1 /* SDLTextField+ScreenManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLTextField+ScreenManagerExtensions.m"; path = "SmartDeviceLink/SDLTextField+ScreenManagerExtensions.m"; sourceTree = ""; }; + 271D810484AEA55E4E3F80C25773E46A /* SDLRPCPermissionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCPermissionStatus.h; path = SmartDeviceLink/SDLRPCPermissionStatus.h; sourceTree = ""; }; + 2741946AE645F8BDA0E4E6BEFA965D56 /* SDLPermissionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionStatus.h; path = SmartDeviceLink/SDLPermissionStatus.h; sourceTree = ""; }; + 27513221634E83533BBE60EDA4667D93 /* SDLDynamicMenuUpdateAlgorithm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDynamicMenuUpdateAlgorithm.h; path = SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.h; sourceTree = ""; }; + 2761563B654943CE2BDBA7FAEF303886 /* SDLV1ProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV1ProtocolHeader.m; path = SmartDeviceLink/SDLV1ProtocolHeader.m; sourceTree = ""; }; + 27CD966D3D85688EC1467BD37B74D1E0 /* SDLVrHelpItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVrHelpItem.m; path = SmartDeviceLink/SDLVrHelpItem.m; sourceTree = ""; }; + 2845FF7035CF7F607706E501DB44DE7E /* SDLOnSystemCapabilityUpdated.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSystemCapabilityUpdated.h; path = SmartDeviceLink/SDLOnSystemCapabilityUpdated.h; sourceTree = ""; }; + 285B908EABA56FEE3FBABD179F93E58C /* SDLControlFramePayloadType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadType.h; path = SmartDeviceLink/SDLControlFramePayloadType.h; sourceTree = ""; }; + 2887D0C5085EA06F9D4FD170C6F4235C /* SDLAudioControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioControlCapabilities.h; path = SmartDeviceLink/SDLAudioControlCapabilities.h; sourceTree = ""; }; + 28C885A6D2F4227B45D870A38421B3A2 /* SDLLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightStatus.m; path = SmartDeviceLink/SDLLightStatus.m; sourceTree = ""; }; + 28FD8035C89A39A37313F411B5C93EA4 /* SDLAudioPassThruCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioPassThruCapabilities.h; path = SmartDeviceLink/SDLAudioPassThruCapabilities.h; sourceTree = ""; }; + 2947E91CDA3B132E494738EF13BCB952 /* SDLReadDID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReadDID.m; path = SmartDeviceLink/SDLReadDID.m; sourceTree = ""; }; + 29633F4DCFB56822424E2DE90E738544 /* SDLAmbientLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAmbientLightStatus.m; path = SmartDeviceLink/SDLAmbientLightStatus.m; sourceTree = ""; }; + 297D3BF189B64B55B4EBFB1B4F256FD9 /* SDLButtonPressResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPressResponse.h; path = SmartDeviceLink/SDLButtonPressResponse.h; sourceTree = ""; }; + 29F0F5DC74AC7556C287B80348D40588 /* SDLSetGlobalProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetGlobalProperties.h; path = SmartDeviceLink/SDLSetGlobalProperties.h; sourceTree = ""; }; + 2A55660E282AE3C863355F2402E8A0E1 /* SDLIconArchiveFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIconArchiveFile.h; path = SmartDeviceLink/SDLIconArchiveFile.h; sourceTree = ""; }; + 2AB253E744896719697E4F5307AA1F8F /* SDLGrid.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGrid.h; path = SmartDeviceLink/SDLGrid.h; sourceTree = ""; }; + 2ACE82786CE0ED6B2A519263CE025F18 /* SDLManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLManagerDelegate.h; path = SmartDeviceLink/SDLManagerDelegate.h; sourceTree = ""; }; + 2AF9D8696C22ABDC9B6EC313EC8554C4 /* SDLAudioControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioControlData.h; path = SmartDeviceLink/SDLAudioControlData.h; sourceTree = ""; }; + 2B5397A5AAFDDF3AA577CDC4718DDD2C /* SDLHMICapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMICapabilities.m; path = SmartDeviceLink/SDLHMICapabilities.m; sourceTree = ""; }; + 2B6AA11A6ACA1FEDE8194897C492F598 /* SDLTouch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouch.m; path = SmartDeviceLink/SDLTouch.m; sourceTree = ""; }; + 2B9DA57DC3982AC2A8A92052ECAB639A /* NSMutableDictionary+SafeRemove.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+SafeRemove.h"; path = "SmartDeviceLink/NSMutableDictionary+SafeRemove.h"; sourceTree = ""; }; + 2BD6D254A4BA71629C487F7B9B5FF780 /* SDLEncodedSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncodedSyncPData.m; path = SmartDeviceLink/SDLEncodedSyncPData.m; sourceTree = ""; }; + 2BE4028ADAD57F4A9176FEBC20B5EC95 /* SDLOnVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnVehicleData.h; path = SmartDeviceLink/SDLOnVehicleData.h; sourceTree = ""; }; + 2C10B9546CABAE071881D281D73820BB /* SDLSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncPData.m; path = SmartDeviceLink/SDLSyncPData.m; sourceTree = ""; }; + 2C38F093E9748ACAA9284BD728AA9AAF /* SDLAsynchronousRPCOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousRPCOperation.m; path = SmartDeviceLink/SDLAsynchronousRPCOperation.m; sourceTree = ""; }; + 2D2BE3CCEA4B2BB726B06E6675B831E6 /* SDLStreamingMediaManagerConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaManagerConstants.m; path = SmartDeviceLink/SDLStreamingMediaManagerConstants.m; sourceTree = ""; }; + 2D879437E0B1DE45D4D626AD9DA1BD58 /* SDLMenuManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuManager.h; path = SmartDeviceLink/SDLMenuManager.h; sourceTree = ""; }; + 2EC4FB6334D52A0DA36EAF8AB148A89A /* SDLRequestType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRequestType.m; path = SmartDeviceLink/SDLRequestType.m; sourceTree = ""; }; + 2F06DFF88342148FB4F6EA0481D909CF /* SDLSendLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendLocation.h; path = SmartDeviceLink/SDLSendLocation.h; sourceTree = ""; }; + 2F27E3C03AA7B2EAA902D3C1D95090DB /* SDLVideoStreamingState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingState.h; path = SmartDeviceLink/SDLVideoStreamingState.h; sourceTree = ""; }; + 2F7B82FAB4C07FC4227B758EFFFD79F6 /* SDLGetCloudAppPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetCloudAppPropertiesResponse.h; path = SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h; sourceTree = ""; }; + 2FD49396D5358F998A4629ED1C829892 /* SDLAmbientLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAmbientLightStatus.h; path = SmartDeviceLink/SDLAmbientLightStatus.h; sourceTree = ""; }; + 3030AFD52F92B429CA1F20183DDAE4FF /* SDLGetInteriorVehicleDataConsentResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataConsentResponse.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m; sourceTree = ""; }; + 303674032980DBA4C264AC80AD1BF117 /* SDLProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolHeader.h; path = SmartDeviceLink/SDLProtocolHeader.h; sourceTree = ""; }; + 303C3E1F855B7BE56C54751F8820643A /* SDLReadDID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReadDID.h; path = SmartDeviceLink/SDLReadDID.h; sourceTree = ""; }; + 304AFE04E482029F914E870FCBC54E4F /* SDLResponseDispatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResponseDispatcher.m; path = SmartDeviceLink/SDLResponseDispatcher.m; sourceTree = ""; }; + 30C60087B34A79843BE53EE59A516D68 /* SDLAppServiceType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceType.m; path = SmartDeviceLink/SDLAppServiceType.m; sourceTree = ""; }; + 30D436C8BEF4813A0366098F52523C60 /* SDLCarModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarModeStatus.m; path = SmartDeviceLink/SDLCarModeStatus.m; sourceTree = ""; }; + 31788B292B69F3A09E1B6F39CAD277FB /* SDLOnDriverDistraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnDriverDistraction.m; path = SmartDeviceLink/SDLOnDriverDistraction.m; sourceTree = ""; }; + 31BBFBBEB2100C4535679ABAF5A55F79 /* SDLSingleTireStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSingleTireStatus.h; path = SmartDeviceLink/SDLSingleTireStatus.h; sourceTree = ""; }; + 322553C18D16DC8359FEAAC9FC09B82A /* SDLLockScreenStatusManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenStatusManager.h; path = SmartDeviceLink/SDLLockScreenStatusManager.h; sourceTree = ""; }; + 326B988FE7A92BB39F45659C26EDF13D /* SDLElectronicParkBrakeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLElectronicParkBrakeStatus.h; path = SmartDeviceLink/SDLElectronicParkBrakeStatus.h; sourceTree = ""; }; + 32A8A151275801260ADFAEC896C908A8 /* SDLDeleteChoicesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteChoicesOperation.h; path = SmartDeviceLink/SDLDeleteChoicesOperation.h; sourceTree = ""; }; + 32C3FE6D390A5D3DF3DDB3C3E02CD486 /* SDLUnsubscribeButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeButton.h; path = SmartDeviceLink/SDLUnsubscribeButton.h; sourceTree = ""; }; + 3323659F219E52681E8003E7972EF6C6 /* SDLSetInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetInteriorVehicleData.m; path = SmartDeviceLink/SDLSetInteriorVehicleData.m; sourceTree = ""; }; + 338899E14AD4EC3E7D4D257B7F18AF1C /* SDLFileManagerConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileManagerConfiguration.m; path = SmartDeviceLink/SDLFileManagerConfiguration.m; sourceTree = ""; }; + 33A2A786BDAED219574077742C9AA3FC /* SDLScrollableMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScrollableMessage.m; path = SmartDeviceLink/SDLScrollableMessage.m; sourceTree = ""; }; + 3416AED17893B065F631CBB7B0714BAC /* SDLECallInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLECallInfo.h; path = SmartDeviceLink/SDLECallInfo.h; sourceTree = ""; }; + 346DD6B5C6DEFF7D91F128D926AFB0FE /* SDLPreloadChoicesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPreloadChoicesOperation.h; path = SmartDeviceLink/SDLPreloadChoicesOperation.h; sourceTree = ""; }; + 347ECC1742A5C5DD03FA8380821DB34F /* SDLSubscribeVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeVehicleData.h; path = SmartDeviceLink/SDLSubscribeVehicleData.h; sourceTree = ""; }; + 352942891F72F2773BF5C6130A6AF9B9 /* SDLMediaServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaServiceData.m; path = SmartDeviceLink/SDLMediaServiceData.m; sourceTree = ""; }; + 356850E904CD295F4FF6ED4BB15D4D57 /* SDLGenericResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGenericResponse.h; path = SmartDeviceLink/SDLGenericResponse.h; sourceTree = ""; }; + 35CB1DE90D5986B9423B7DFF67E9C2CB /* SDLRadioControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioControlCapabilities.m; path = SmartDeviceLink/SDLRadioControlCapabilities.m; sourceTree = ""; }; + 35CFB929B710C6200396CA20289832F1 /* SDLFuelCutoffStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelCutoffStatus.m; path = SmartDeviceLink/SDLFuelCutoffStatus.m; sourceTree = ""; }; + 3603AB47CCA7EABB5B1FDAC0C16A59C7 /* SDLDateTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDateTime.h; path = SmartDeviceLink/SDLDateTime.h; sourceTree = ""; }; + 360BEE262B398C4DAF3FB595771EFA2D /* SDLDialNumberResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDialNumberResponse.h; path = SmartDeviceLink/SDLDialNumberResponse.h; sourceTree = ""; }; + 363A1394DE1FFD6DF123791772377320 /* SDLVehicleDataEventStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataEventStatus.m; path = SmartDeviceLink/SDLVehicleDataEventStatus.m; sourceTree = ""; }; + 36421268915268D123352BDEDA5AC948 /* SDLOnPermissionsChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnPermissionsChange.m; path = SmartDeviceLink/SDLOnPermissionsChange.m; sourceTree = ""; }; + 37100CC61CBB83D8FD8AF13BB98BCD14 /* SDLTouch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouch.h; path = SmartDeviceLink/SDLTouch.h; sourceTree = ""; }; + 372472FCDD67DFC4CADCCC7B18520B62 /* SDLVentilationMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVentilationMode.m; path = SmartDeviceLink/SDLVentilationMode.m; sourceTree = ""; }; + 3778DFBEF00494FE5D31E79DFBB96B35 /* SDLError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLError.m; path = SmartDeviceLink/SDLError.m; sourceTree = ""; }; + 3798CB99A6B7352DEED2C27BC86F9E32 /* SDLTurn.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTurn.h; path = SmartDeviceLink/SDLTurn.h; sourceTree = ""; }; + 37A578EB03978AF09B4B22E2D9B48EB6 /* SDLProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocol.m; path = SmartDeviceLink/SDLProtocol.m; sourceTree = ""; }; + 37BB95EEE59CD21C3293F54E2CD22CEA /* SDLLifecycleProtocolHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleProtocolHandler.h; path = SmartDeviceLink/SDLLifecycleProtocolHandler.h; sourceTree = ""; }; + 382E3AEEA682773DFC104C615B3B6240 /* SDLDeviceStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceStatus.h; path = SmartDeviceLink/SDLDeviceStatus.h; sourceTree = ""; }; + 383B3E8FFC31FF9511326F14714F98E2 /* SDLLogTargetFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetFile.m; path = SmartDeviceLink/SDLLogTargetFile.m; sourceTree = ""; }; + 388D88A1DB6D4B1CECD8ADE296D05335 /* SDLSoftButtonObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonObject.m; path = SmartDeviceLink/SDLSoftButtonObject.m; sourceTree = ""; }; + 38CB1A0076770A1F273C6EBCD6D8C8B0 /* SDLIAPTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPTransport.m; path = SmartDeviceLink/SDLIAPTransport.m; sourceTree = ""; }; + 38E242E9C5BDB3380CD5DE37E9262B8D /* SDLShowAppMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowAppMenu.h; path = SmartDeviceLink/SDLShowAppMenu.h; sourceTree = ""; }; + 38E58E6ACD990EA45CAE7C8353A814AC /* SDLServiceUpdateReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLServiceUpdateReason.m; path = SmartDeviceLink/SDLServiceUpdateReason.m; sourceTree = ""; }; + 3999098BE21C5D7373235405AF09F5A4 /* SDLLifecycleSyncPDataHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleSyncPDataHandler.h; path = SmartDeviceLink/SDLLifecycleSyncPDataHandler.h; sourceTree = ""; }; + 399963B38F59EC81F67BF3E9E31B2F1B /* SDLTriggerSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTriggerSource.m; path = SmartDeviceLink/SDLTriggerSource.m; sourceTree = ""; }; + 39EDE1E04ABABDD6EB636AABBB6871A0 /* SDLLogModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogModel.m; path = SmartDeviceLink/SDLLogModel.m; sourceTree = ""; }; + 39FFFBA8ED556FDD85EBCF18BF7898C8 /* SDLSeatLocationCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatLocationCapability.h; path = SmartDeviceLink/SDLSeatLocationCapability.h; sourceTree = ""; }; + 3A53E97D25D99A5593B52E88C69877A8 /* SDLLockScreenPresenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenPresenter.h; path = SmartDeviceLink/SDLLockScreenPresenter.h; sourceTree = ""; }; + 3A703348831CBF1811100C05D2D7FC44 /* SDLVehicleDataType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataType.m; path = SmartDeviceLink/SDLVehicleDataType.m; sourceTree = ""; }; + 3A8807AD416E6BB85AFA2FF648C9ADFD /* SDLLogTargetAppleSystemLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetAppleSystemLog.h; path = SmartDeviceLink/SDLLogTargetAppleSystemLog.h; sourceTree = ""; }; + 3ADF6F4E6226B439753C2A759A9860E3 /* SDLModuleInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleInfo.m; path = SmartDeviceLink/SDLModuleInfo.m; sourceTree = ""; }; + 3AF9C51B912A87FCA50DB65BF6162630 /* SDLCharacterSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCharacterSet.m; path = SmartDeviceLink/SDLCharacterSet.m; sourceTree = ""; }; + 3B07FF648818147BBC509B12366D5DBE /* SDLV1ProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV1ProtocolHeader.h; path = SmartDeviceLink/SDLV1ProtocolHeader.h; sourceTree = ""; }; + 3B163DFB6631E803FE7DF33DF6D511D7 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = es.lproj/SDLLockScreen.strings; sourceTree = ""; }; + 3B4CDDE3895D8DB904D1109A078E3244 /* SDLSoftButtonTransitionOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonTransitionOperation.h; path = SmartDeviceLink/SDLSoftButtonTransitionOperation.h; sourceTree = ""; }; + 3B9385D01A185AC52F1A077BBDC5759D /* SDLDeviceInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceInfo.m; path = SmartDeviceLink/SDLDeviceInfo.m; sourceTree = ""; }; + 3C252C93BD400D587AED7514EAE2990A /* SDLECallConfirmationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLECallConfirmationStatus.h; path = SmartDeviceLink/SDLECallConfirmationStatus.h; sourceTree = ""; }; + 3C4374789272475208038484B688328D /* SDLScreenParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScreenParams.m; path = SmartDeviceLink/SDLScreenParams.m; sourceTree = ""; }; + 3C61578FBFA3147D20DF240420C54033 /* SDLClimateControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClimateControlData.m; path = SmartDeviceLink/SDLClimateControlData.m; sourceTree = ""; }; + 3C902D9277607A16626B5FEB6FC12BE6 /* SDLLifecycleMobileHMIStateHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleMobileHMIStateHandler.h; path = SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.h; sourceTree = ""; }; + 3CFB911A9893560A2C355E39C00E5539 /* NSMapTable+Subscripting.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMapTable+Subscripting.m"; path = "SmartDeviceLink/NSMapTable+Subscripting.m"; sourceTree = ""; }; + 3D0CF36EE6F81BF9E7C336BFF6FA6882 /* SDLDirection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDirection.m; path = SmartDeviceLink/SDLDirection.m; sourceTree = ""; }; + 3D0EE4570CF0887B91A7C8D2E2E0414C /* SDLLogMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogMacros.h; path = SmartDeviceLink/SDLLogMacros.h; sourceTree = ""; }; + 3DB78A3398DB496866979B7038BB5583 /* SDLAppServiceCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceCapability.h; path = SmartDeviceLink/SDLAppServiceCapability.h; sourceTree = ""; }; + 3DE9E361C8A5F013FAB70F518A575C64 /* SDLChoiceSetDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSetDelegate.h; path = SmartDeviceLink/SDLChoiceSetDelegate.h; sourceTree = ""; }; + 3E982E3129EE1BF2B88BE3ECFD70CFE7 /* SDLMediaType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaType.m; path = SmartDeviceLink/SDLMediaType.m; sourceTree = ""; }; + 3EADC1263640A78820A3303343799BE6 /* SDLAsynchronousOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousOperation.h; path = SmartDeviceLink/SDLAsynchronousOperation.h; sourceTree = ""; }; + 3EB05BE08F0592AB8A2B2E5AA70E41FC /* SDLVehicleDataResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataResult.h; path = SmartDeviceLink/SDLVehicleDataResult.h; sourceTree = ""; }; + 3EB6A8B5DA3D228DF8DC2F364DAA3F73 /* SDLLifecycleConfigurationUpdate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleConfigurationUpdate.h; path = SmartDeviceLink/SDLLifecycleConfigurationUpdate.h; sourceTree = ""; }; + 3EC3C54E0392906F04997BCF759C440D /* SDLKeyboardProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardProperties.h; path = SmartDeviceLink/SDLKeyboardProperties.h; sourceTree = ""; }; + 3F25040FF627FE9246171E4EA90E8CA3 /* SDLPinchGesture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPinchGesture.m; path = SmartDeviceLink/SDLPinchGesture.m; sourceTree = ""; }; + 3F343F8E278AA4A0EFBFBC077661846E /* SDLLightName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightName.h; path = SmartDeviceLink/SDLLightName.h; sourceTree = ""; }; + 3F9AC4187700727AA62E02334C521533 /* SDLSetAppIconResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetAppIconResponse.m; path = SmartDeviceLink/SDLSetAppIconResponse.m; sourceTree = ""; }; + 3FDDB1063EBEFDA59DA01CE662F32CE8 /* SDLFileWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileWrapper.h; path = SmartDeviceLink/SDLFileWrapper.h; sourceTree = ""; }; + 3FDDC6658582C0B1CEC0775EEBEFEF01 /* bson_array.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_array.h; path = src/bson_array.h; sourceTree = ""; }; + 3FE4CF814EDDBC348C63CE0ADEA512E8 /* SDLEndAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEndAudioPassThru.m; path = SmartDeviceLink/SDLEndAudioPassThru.m; sourceTree = ""; }; + 4055BE744BC2A9F663E6671A2480D01A /* SDLInteractionMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLInteractionMode.m; path = SmartDeviceLink/SDLInteractionMode.m; sourceTree = ""; }; + 4066A1AC90601F2ED75F112128204143 /* SDLIAPConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPConstants.h; path = SmartDeviceLink/SDLIAPConstants.h; sourceTree = ""; }; + 4085E3CA18C0C722411355146D5FA236 /* SDLTransportType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTransportType.h; path = SmartDeviceLink/SDLTransportType.h; sourceTree = ""; }; + 408658D7DB613F01047698ECAE093D90 /* SDLEncryptionLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncryptionLifecycleManager.h; path = SmartDeviceLink/SDLEncryptionLifecycleManager.h; sourceTree = ""; }; + 40B5504C8F1E24113D498111742CF96E /* SDLDiagnosticMessageResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDiagnosticMessageResponse.m; path = SmartDeviceLink/SDLDiagnosticMessageResponse.m; sourceTree = ""; }; + 40E148CD4DE2F892CDEA9A3C1BCCD3DE /* SDLEndAudioPassThruResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEndAudioPassThruResponse.m; path = SmartDeviceLink/SDLEndAudioPassThruResponse.m; sourceTree = ""; }; + 410C7382DF348567CD7D56ECDD08CAC7 /* SDLDialNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDialNumber.m; path = SmartDeviceLink/SDLDialNumber.m; sourceTree = ""; }; + 4149BB003DEF4C5C4BC5B7A332FD6707 /* SDLHapticRect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHapticRect.m; path = SmartDeviceLink/SDLHapticRect.m; sourceTree = ""; }; + 4157869D41FABE62B8C192F3D08F1612 /* SDLSendHapticData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendHapticData.h; path = SmartDeviceLink/SDLSendHapticData.h; sourceTree = ""; }; + 41DDF1201E3711F4B246F80D53C3BE29 /* SDLGetVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetVehicleDataResponse.h; path = SmartDeviceLink/SDLGetVehicleDataResponse.h; sourceTree = ""; }; + 41EEEB77F744D0ED3EF519C0FD308F2D /* SDLRadioControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioControlData.m; path = SmartDeviceLink/SDLRadioControlData.m; sourceTree = ""; }; + 430C9D5FCDF96E9E712BC537CDC01EA1 /* SDLFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFile.h; path = SmartDeviceLink/SDLFile.h; sourceTree = ""; }; + 438BFB4FB40C6B387CF8D49072456C32 /* SDLProtocolMessageDisassembler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessageDisassembler.m; path = SmartDeviceLink/SDLProtocolMessageDisassembler.m; sourceTree = ""; }; + 43BDEBA0AFE8CD88C63344AA13ECFD35 /* SDLGlobals.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGlobals.m; path = SmartDeviceLink/SDLGlobals.m; sourceTree = ""; }; + 43FC77484E65E9648B5154177DA965B0 /* SDLLightCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightCapabilities.h; path = SmartDeviceLink/SDLLightCapabilities.h; sourceTree = ""; }; + 4411DAF1B7858D84F9A5933F44751B69 /* SDLPerformAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAudioPassThru.h; path = SmartDeviceLink/SDLPerformAudioPassThru.h; sourceTree = ""; }; + 4417737422CDA6FC54D20FD73B984618 /* SDLWindowCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWindowCapability.h; path = SmartDeviceLink/SDLWindowCapability.h; sourceTree = ""; }; + 445645662A65A1C42078DABD7A20509E /* SDLLifecycleSyncPDataHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleSyncPDataHandler.m; path = SmartDeviceLink/SDLLifecycleSyncPDataHandler.m; sourceTree = ""; }; + 4484173D9CEBA083E87CF3BC381D844B /* SDLShowConstantTBTResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowConstantTBTResponse.h; path = SmartDeviceLink/SDLShowConstantTBTResponse.h; sourceTree = ""; }; + 44849D20DBCA2A08A69AC1CC08D2E12E /* SDLReadDIDResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReadDIDResponse.h; path = SmartDeviceLink/SDLReadDIDResponse.h; sourceTree = ""; }; + 448B4ECBFE83DF3E2B77F2D820F2A368 /* SDLCancelInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCancelInteraction.m; path = SmartDeviceLink/SDLCancelInteraction.m; sourceTree = ""; }; + 4498BA293BEAD680B6055DB76B201258 /* emhashmap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = emhashmap.h; path = src/emhashmap/emhashmap.h; sourceTree = ""; }; + 44A033E80AC09276E47884FBDAC7CA19 /* SDLLightName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightName.m; path = SmartDeviceLink/SDLLightName.m; sourceTree = ""; }; + 44A6433D1239C8C9171A35AE33070626 /* SDLOnTouchEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnTouchEvent.m; path = SmartDeviceLink/SDLOnTouchEvent.m; sourceTree = ""; }; + 450AA0AE78066B15DEBE4151BFA7A1DD /* SDLRPCParameterNames.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCParameterNames.h; path = SmartDeviceLink/SDLRPCParameterNames.h; sourceTree = ""; }; + 454C2F95ECB135A8B710295C27270E3C /* SmartDeviceLink.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartDeviceLink.release.xcconfig; sourceTree = ""; }; + 4594CC3FF1671BC10D8439D6DD794F5C /* SDLProtocolMessageAssembler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessageAssembler.m; path = SmartDeviceLink/SDLProtocolMessageAssembler.m; sourceTree = ""; }; + 45E554466607C0B6553630AB6FB0D015 /* SDLVrHelpItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVrHelpItem.h; path = SmartDeviceLink/SDLVrHelpItem.h; sourceTree = ""; }; + 46523A89CAE6EF97155926063D0C221A /* SDLHexUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHexUtility.h; path = SmartDeviceLink/SDLHexUtility.h; sourceTree = ""; }; + 48849036CC2BEE806DD74887DCF4875B /* SDLFocusableItemHitTester.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemHitTester.h; path = SmartDeviceLink/SDLFocusableItemHitTester.h; sourceTree = ""; }; + 489CBF13E068A7E6A66DF0EFDFFB7B8B /* SDLGetAppServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetAppServiceData.m; path = SmartDeviceLink/SDLGetAppServiceData.m; sourceTree = ""; }; + 48BF8E7CA87C2563EB4169EC2CFC771C /* SmartDeviceLink.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SmartDeviceLink.modulemap; sourceTree = ""; }; + 4937DF05A2FDF67D435549105737E0AD /* SDLSecondaryTransportManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSecondaryTransportManager.m; path = SmartDeviceLink/SDLSecondaryTransportManager.m; sourceTree = ""; }; + 49732759D432317F0DA45A467B441A1C /* SDLMenuParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuParams.m; path = SmartDeviceLink/SDLMenuParams.m; sourceTree = ""; }; + 49CD8EE4FC64B30478D9E206DAC78F84 /* SDLIAPSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPSession.h; path = SmartDeviceLink/SDLIAPSession.h; sourceTree = ""; }; + 4A1B97540C9445EBC294C833B507564A /* SDLListFilesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFilesOperation.h; path = SmartDeviceLink/SDLListFilesOperation.h; sourceTree = ""; }; + 4A2717B2D5DE554897D72CB951C42757 /* SDLCacheFileManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCacheFileManager.h; path = SmartDeviceLink/SDLCacheFileManager.h; sourceTree = ""; }; + 4A5A2F651034AEC49BAE3963D3AA8018 /* SDLErrorConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLErrorConstants.h; path = SmartDeviceLink/SDLErrorConstants.h; sourceTree = ""; }; + 4A84D0C360959095854C5870445E677B /* SDLWiperStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWiperStatus.h; path = SmartDeviceLink/SDLWiperStatus.h; sourceTree = ""; }; + 4AC029B73C422385316B810096AC575F /* SDLLogModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogModel.h; path = SmartDeviceLink/SDLLogModel.h; sourceTree = ""; }; + 4B0B69E8E7BE0B46B0C8659E5046F112 /* SDLMenuCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuCell.h; path = SmartDeviceLink/SDLMenuCell.h; sourceTree = ""; }; + 4B0CD534B92E485AC78B351897352A70 /* SDLLocationDetails.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLocationDetails.m; path = SmartDeviceLink/SDLLocationDetails.m; sourceTree = ""; }; + 4B14A2B419E2DC947711544B4DFA5659 /* SDLUnsubscribeButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeButton.m; path = SmartDeviceLink/SDLUnsubscribeButton.m; sourceTree = ""; }; + 4B28910E4BB86E3DEC060B763E45C0FA /* SDLVoiceCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommand.m; path = SmartDeviceLink/SDLVoiceCommand.m; sourceTree = ""; }; + 4B5B5ADAAD2A74CAACA981BBA0E650AC /* SDLSystemCapabilityType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityType.h; path = SmartDeviceLink/SDLSystemCapabilityType.h; sourceTree = ""; }; + 4B887B61299E3CDBAD04F3FAF0C642DB /* SDLModuleInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleInfo.h; path = SmartDeviceLink/SDLModuleInfo.h; sourceTree = ""; }; + 4BC369B414377098F2BD4E968676D84D /* SDLIgnitionStableStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIgnitionStableStatus.h; path = SmartDeviceLink/SDLIgnitionStableStatus.h; sourceTree = ""; }; + 4BC611A83E6B204442E6053A45D288D1 /* SDLImageField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageField.h; path = SmartDeviceLink/SDLImageField.h; sourceTree = ""; }; + 4BDE7DCAD2B3CFA25E38ADF8F9B7C9ED /* SDLLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleManager.h; path = SmartDeviceLink/SDLLifecycleManager.h; sourceTree = ""; }; + 4C31BC277EBBE8EABF6F1F7725ACEEAA /* SDLStaticIconName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStaticIconName.m; path = SmartDeviceLink/SDLStaticIconName.m; sourceTree = ""; }; + 4C7F9ED55C903DF4E945CF493F83626F /* SDLChoiceSetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSetManager.h; path = SmartDeviceLink/SDLChoiceSetManager.h; sourceTree = ""; }; + 4C9AED1F70FC929F9636D503F5A4B658 /* SDLShowAppMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowAppMenu.m; path = SmartDeviceLink/SDLShowAppMenu.m; sourceTree = ""; }; + 4D3EC08357B4F67E2BD4CACCC0300724 /* SDLImageField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageField.m; path = SmartDeviceLink/SDLImageField.m; sourceTree = ""; }; + 4D48E02753FA770CE680D9502BD8F27F /* SDLSliderResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSliderResponse.m; path = SmartDeviceLink/SDLSliderResponse.m; sourceTree = ""; }; + 4D75BCCCC055F72C4B46F1FF7ADE460C /* SDLRTPH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRTPH264Packetizer.h; path = SmartDeviceLink/SDLRTPH264Packetizer.h; sourceTree = ""; }; + 4E3E1DD21F0F75C6E6C6BB96CE53E34F /* SDLFocusableItemLocatorType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemLocatorType.h; path = SmartDeviceLink/SDLFocusableItemLocatorType.h; sourceTree = ""; }; + 4E839A485728E494163C610E5F436EA9 /* SDLDeviceLevelStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceLevelStatus.m; path = SmartDeviceLink/SDLDeviceLevelStatus.m; sourceTree = ""; }; + 4F29D039A34A2CA78536348CE96D9ACA /* SDLSetInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetInteriorVehicleData.h; path = SmartDeviceLink/SDLSetInteriorVehicleData.h; sourceTree = ""; }; + 505A39ADC4E3561B7594E28FD0429E64 /* SDLLockScreenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenManager.h; path = SmartDeviceLink/SDLLockScreenManager.h; sourceTree = ""; }; + 506F62C867B2AA4ED9C51CA1DB62873F /* SDLImageField+ScreenManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLImageField+ScreenManagerExtensions.h"; path = "SmartDeviceLink/SDLImageField+ScreenManagerExtensions.h"; sourceTree = ""; }; + 507FBFEE8A6A81402E77FB59A01BA642 /* SDLAppServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceData.m; path = SmartDeviceLink/SDLAppServiceData.m; sourceTree = ""; }; + 50B06BF759879E5F7FB48501D617628A /* SDLAddSubMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddSubMenu.m; path = SmartDeviceLink/SDLAddSubMenu.m; sourceTree = ""; }; + 50CB8DB198313EF592E6A9DE3B0F6CAC /* SDLRPCResponseNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCResponseNotification.m; path = SmartDeviceLink/SDLRPCResponseNotification.m; sourceTree = ""; }; + 50FA0F82B0F0FD360E29F2AC0D2F05D1 /* SDLNavigationServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationServiceManifest.m; path = SmartDeviceLink/SDLNavigationServiceManifest.m; sourceTree = ""; }; + 511CF82F1FB9D8A7C5929F635B3E778A /* SDLSoftButtonManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonManager.m; path = SmartDeviceLink/SDLSoftButtonManager.m; sourceTree = ""; }; + 511FC688BC8715CB040A0DE1F8B24C2E /* SDLH264VideoEncoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLH264VideoEncoder.m; path = SmartDeviceLink/SDLH264VideoEncoder.m; sourceTree = ""; }; + 5183ABBFFA966A641482836B262617DD /* SDLDeleteFileOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFileOperation.h; path = SmartDeviceLink/SDLDeleteFileOperation.h; sourceTree = ""; }; + 51B66260E43F75F7BD5D210137A3720C /* SDLDeleteWindowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteWindowResponse.h; path = SmartDeviceLink/SDLDeleteWindowResponse.h; sourceTree = ""; }; + 524A27962BB7A038C3B5A39B5A529ED5 /* SDLCarWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarWindow.h; path = SmartDeviceLink/SDLCarWindow.h; sourceTree = ""; }; + 52A7852C42AC1A630401AD0DB04DCACD /* SDLVehicleType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleType.h; path = SmartDeviceLink/SDLVehicleType.h; sourceTree = ""; }; + 52AD32EB63C924C84FDEC6DD43F329EE /* SDLTimerMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTimerMode.m; path = SmartDeviceLink/SDLTimerMode.m; sourceTree = ""; }; + 53151FA74CB6E2324C41DA26D397B648 /* SDLRGBColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRGBColor.h; path = SmartDeviceLink/SDLRGBColor.h; sourceTree = ""; }; + 533F7AB90936113C747905A9130536F7 /* SDLOnLanguageChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnLanguageChange.h; path = SmartDeviceLink/SDLOnLanguageChange.h; sourceTree = ""; }; + 53911CEF89F12CFA7AEA7FF43FBF7E06 /* SDLWindowType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWindowType.m; path = SmartDeviceLink/SDLWindowType.m; sourceTree = ""; }; + 53A6F7FC8DB6771A7F606C83EE0F33E9 /* SDLSyncMsgVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncMsgVersion.h; path = SmartDeviceLink/SDLSyncMsgVersion.h; sourceTree = ""; }; + 53F45435EC8D3A8BC571D18035BCFCC2 /* SDLVideoStreamingCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingCapability.h; path = SmartDeviceLink/SDLVideoStreamingCapability.h; sourceTree = ""; }; + 53F7A94FC00388D92F20C90B87BE945C /* SDLWindowCapability+ScreenManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLWindowCapability+ScreenManagerExtensions.h"; path = "SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.h"; sourceTree = ""; }; + 544D38C68F8828FD1E9856024D36B44D /* SDLVehicleDataNotificationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataNotificationStatus.m; path = SmartDeviceLink/SDLVehicleDataNotificationStatus.m; sourceTree = ""; }; + 545945C37CA202B7C89B0BDB939DF95C /* SDLAppServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceData.h; path = SmartDeviceLink/SDLAppServiceData.h; sourceTree = ""; }; + 5482FBD961552B74651C104693279E71 /* SDLMassageModeData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageModeData.m; path = SmartDeviceLink/SDLMassageModeData.m; sourceTree = ""; }; + 55217909B98035F7AFBC7F73096982A2 /* SDLAppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppInfo.m; path = SmartDeviceLink/SDLAppInfo.m; sourceTree = ""; }; + 5543FDC0294954DF0D4040D2E4999970 /* SDLOnRCStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnRCStatus.h; path = SmartDeviceLink/SDLOnRCStatus.h; sourceTree = ""; }; + 554FE2A409FB1FB6BF0E98F233F97E6C /* SDLListFilesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFilesResponse.h; path = SmartDeviceLink/SDLListFilesResponse.h; sourceTree = ""; }; + 5550D8512B86F0A9F6C54350FB7AAE2F /* SDLDiagnosticMessageResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDiagnosticMessageResponse.h; path = SmartDeviceLink/SDLDiagnosticMessageResponse.h; sourceTree = ""; }; + 556E40F610F2EB3D2F7A0EA1C6707035 /* SDLGetFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetFileResponse.m; path = SmartDeviceLink/SDLGetFileResponse.m; sourceTree = ""; }; + 5587E86763C14DCAE5CD85F2D66EEE60 /* SDLFileWrapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileWrapper.m; path = SmartDeviceLink/SDLFileWrapper.m; sourceTree = ""; }; + 565B69B36A8F76F2E5BC0B5883391027 /* SDLPresetBankCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresetBankCapabilities.h; path = SmartDeviceLink/SDLPresetBankCapabilities.h; sourceTree = ""; }; + 576CF948F88ECCCBFAC0594C7F4040B0 /* SDLUnsubscribeWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeWayPointsResponse.h; path = SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h; sourceTree = ""; }; + 576F83EF4D4371B437DFAE8A0F7CFAA1 /* SDLLockScreenViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenViewController.m; path = SmartDeviceLink/SDLLockScreenViewController.m; sourceTree = ""; }; + 579644EEE9880D03CC5BDA3AAA01F743 /* SDLDeviceStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceStatus.m; path = SmartDeviceLink/SDLDeviceStatus.m; sourceTree = ""; }; + 57C40F8D0811DF6059FEDB49AEBDC69C /* SDLSoftButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButton.h; path = SmartDeviceLink/SDLSoftButton.h; sourceTree = ""; }; + 57D658C85ECE3E69E79BB2FABFE5E487 /* SDLTurnSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTurnSignal.h; path = SmartDeviceLink/SDLTurnSignal.h; sourceTree = ""; }; + 57E4834E2857ECB273998AC9B9207D2E /* SDLHMISettingsControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMISettingsControlData.h; path = SmartDeviceLink/SDLHMISettingsControlData.h; sourceTree = ""; }; + 57F1282A6F2ED03A5614C9C2B2DAAF2D /* SDLAppServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceManifest.h; path = SmartDeviceLink/SDLAppServiceManifest.h; sourceTree = ""; }; + 57FF113F520A5C67641777D6914A56DE /* SDLEnum.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEnum.m; path = SmartDeviceLink/SDLEnum.m; sourceTree = ""; }; + 585E39B167E64180E6C78FEC200638A0 /* SDLVrCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVrCapabilities.h; path = SmartDeviceLink/SDLVrCapabilities.h; sourceTree = ""; }; + 5869C4B4CE96D9E62C0313B0D1A429CE /* SDLClusterModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClusterModeStatus.h; path = SmartDeviceLink/SDLClusterModeStatus.h; sourceTree = ""; }; + 58FE6CB1EE278E803C1B5FF6EB589249 /* SDLEncryptionLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncryptionLifecycleManager.m; path = SmartDeviceLink/SDLEncryptionLifecycleManager.m; sourceTree = ""; }; + 59D419F67DD1ED5642ED9D9BBE63D388 /* SDLSeatControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatControlData.m; path = SmartDeviceLink/SDLSeatControlData.m; sourceTree = ""; }; + 59D7FD29EEF5AC55F5624BD9B791ADD6 /* Pods-MobileWeather-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MobileWeather-Info.plist"; sourceTree = ""; }; + 59F1B488251110BAEA799A5E7C83E6A7 /* SDLUpdateTurnList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateTurnList.h; path = SmartDeviceLink/SDLUpdateTurnList.h; sourceTree = ""; }; + 59F336B19B5A14921AF73428A666E018 /* SDLCancelInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCancelInteractionResponse.h; path = SmartDeviceLink/SDLCancelInteractionResponse.h; sourceTree = ""; }; + 5A116087C3B6EFD78EC43CDA42ED9FA1 /* SDLMetadataTags.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMetadataTags.h; path = SmartDeviceLink/SDLMetadataTags.h; sourceTree = ""; }; + 5A695B3A3F27221B6CBE669925E43199 /* SDLKeyboardProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardProperties.m; path = SmartDeviceLink/SDLKeyboardProperties.m; sourceTree = ""; }; + 5A969288213535D08DB702C6481A24BE /* SmartDeviceLink-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartDeviceLink-prefix.pch"; sourceTree = ""; }; + 5AA15811C6C82B48B1CE0CF72D93BB8E /* SDLPermissionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionStatus.m; path = SmartDeviceLink/SDLPermissionStatus.m; sourceTree = ""; }; + 5ABA9D773535CC39A270DD8160147CAB /* SDLVideoStreamingCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingCapability.m; path = SmartDeviceLink/SDLVideoStreamingCapability.m; sourceTree = ""; }; + 5AE2355374C44304F88A7DFB00858AA2 /* SDLVideoStreamingFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingFormat.m; path = SmartDeviceLink/SDLVideoStreamingFormat.m; sourceTree = ""; }; + 5B384DD0203EADC9A558BDBF6CCD33DA /* SDLScrollableMessageResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScrollableMessageResponse.m; path = SmartDeviceLink/SDLScrollableMessageResponse.m; sourceTree = ""; }; + 5B4549A9A5E6AF77B821A8EA6F04A858 /* SDLUnsubscribeWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeWayPoints.m; path = SmartDeviceLink/SDLUnsubscribeWayPoints.m; sourceTree = ""; }; + 5B5DB19512329465920F68B50C253776 /* SDLImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImage.h; path = SmartDeviceLink/SDLImage.h; sourceTree = ""; }; + 5C083E636854B0B9353C528C02DD0119 /* SDLPermissionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionManager.h; path = SmartDeviceLink/SDLPermissionManager.h; sourceTree = ""; }; + 5C810B6DB2EF473A10A3289A980D1430 /* SDLManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLManager.h; path = SmartDeviceLink/SDLManager.h; sourceTree = ""; }; + 5CC08B2D1ECABDAF764AE254824DC457 /* SDLFileManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManager.h; path = SmartDeviceLink/SDLFileManager.h; sourceTree = ""; }; + 5CE9058C4CECC7EB2181F33AED464312 /* SDLAddSubMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddSubMenuResponse.m; path = SmartDeviceLink/SDLAddSubMenuResponse.m; sourceTree = ""; }; + 5CED9E972E8876CBE62B74E0A508DB50 /* SDLSliderResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSliderResponse.h; path = SmartDeviceLink/SDLSliderResponse.h; sourceTree = ""; }; + 5CEDDEAFB2948E2135AAB8C34A9C9277 /* SDLSubscribeButtonObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonObserver.h; path = SmartDeviceLink/SDLSubscribeButtonObserver.h; sourceTree = ""; }; + 5D3D372A87B4AFED15B15E0EC89F51A5 /* SDLShowConstantTBTResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowConstantTBTResponse.m; path = SmartDeviceLink/SDLShowConstantTBTResponse.m; sourceTree = ""; }; + 5D85052B41FE8A425641B594DBE76849 /* SDLLifecycleConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleConfiguration.m; path = SmartDeviceLink/SDLLifecycleConfiguration.m; sourceTree = ""; }; + 5DB8E34CADC6FD344370C3E41DF04943 /* SDLTouchEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchEvent.h; path = SmartDeviceLink/SDLTouchEvent.h; sourceTree = ""; }; + 5DE51752FED2D7FE208CE05FC220435D /* SDLError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLError.h; path = SmartDeviceLink/SDLError.h; sourceTree = ""; }; + 5DE719023045A4F8E7FB620C98982C60 /* SDLEncryptionConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncryptionConfiguration.m; path = SmartDeviceLink/SDLEncryptionConfiguration.m; sourceTree = ""; }; + 5DFB940A77A15D0F3E0C0C48889F05B0 /* SDLHMILevel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMILevel.h; path = SmartDeviceLink/SDLHMILevel.h; sourceTree = ""; }; + 5E027DB1F50B0C19CFFB73267754D157 /* SDLSeatLocationCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatLocationCapability.m; path = SmartDeviceLink/SDLSeatLocationCapability.m; sourceTree = ""; }; + 5E182A82AB3C691E7B275AADAB942174 /* SDLStreamingVideoLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingVideoLifecycleManager.m; path = SmartDeviceLink/SDLStreamingVideoLifecycleManager.m; sourceTree = ""; }; + 5E7A92F6F5DF51067E86A63E8CD1EC5C /* Pods-MobileWeather-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MobileWeather-umbrella.h"; sourceTree = ""; }; + 5E97BBBE0B504665860ED1CAA8E59FE8 /* SDLComponentVolumeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLComponentVolumeStatus.h; path = SmartDeviceLink/SDLComponentVolumeStatus.h; sourceTree = ""; }; + 5EA4853DDAAB63EC25DE5EFCC17C1914 /* SDLTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTimer.m; path = SmartDeviceLink/SDLTimer.m; sourceTree = ""; }; + 5ED3A5134C0B156DBE89E14A72AB0F95 /* SDLLifecycleSystemRequestHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleSystemRequestHandler.h; path = SmartDeviceLink/SDLLifecycleSystemRequestHandler.h; sourceTree = ""; }; + 5EF29BC404FD0F315A73C9D9A7351277 /* SDLFileType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileType.m; path = SmartDeviceLink/SDLFileType.m; sourceTree = ""; }; + 5F8B26301962DAB3A218E94BBF267589 /* SDLDistanceUnit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDistanceUnit.m; path = SmartDeviceLink/SDLDistanceUnit.m; sourceTree = ""; }; + 5F9EFD1A81F30902BAA0BFD14E95906A /* SDLSubscribeWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeWayPointsResponse.h; path = SmartDeviceLink/SDLSubscribeWayPointsResponse.h; sourceTree = ""; }; + 60C9980F7C06B067A4739AEF6364E6BB /* SDLSubscribeWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeWayPoints.m; path = SmartDeviceLink/SDLSubscribeWayPoints.m; sourceTree = ""; }; + 60E560ED9A603C1EE72D1DC626FC9DA8 /* SDLNavigationJunction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationJunction.m; path = SmartDeviceLink/SDLNavigationJunction.m; sourceTree = ""; }; + 610922E85FBDB66F79FF6230A47D4B75 /* SDLOnDriverDistraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnDriverDistraction.h; path = SmartDeviceLink/SDLOnDriverDistraction.h; sourceTree = ""; }; + 611B8EA6CFB53369E15F75B735E1EF03 /* SDLSoftButtonType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonType.m; path = SmartDeviceLink/SDLSoftButtonType.m; sourceTree = ""; }; + 61BCAB5AD776DC231BC9B208AEA941FC /* NSNumber+NumberType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+NumberType.h"; path = "SmartDeviceLink/NSNumber+NumberType.h"; sourceTree = ""; }; + 6235BA14F1F7044B98188F7FACCFE4C8 /* SDLClimateControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClimateControlCapabilities.m; path = SmartDeviceLink/SDLClimateControlCapabilities.m; sourceTree = ""; }; + 633E599F3936F7344FB0DBA1DB5127C1 /* SDLListFilesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFilesResponse.m; path = SmartDeviceLink/SDLListFilesResponse.m; sourceTree = ""; }; + 63CCE3D626BB22CCA767323E3EE5965A /* SDLAppServiceRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceRecord.h; path = SmartDeviceLink/SDLAppServiceRecord.h; sourceTree = ""; }; + 63D098D74619FDADF2DBEDAB8939A5C8 /* SDLPutFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPutFileResponse.m; path = SmartDeviceLink/SDLPutFileResponse.m; sourceTree = ""; }; + 646F19BE927B0171643AFCA74D750304 /* SDLAsynchronousRPCOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousRPCOperation.h; path = SmartDeviceLink/SDLAsynchronousRPCOperation.h; sourceTree = ""; }; + 64BA143AD255D19B934724F34E2072CD /* SDLScreenParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScreenParams.h; path = SmartDeviceLink/SDLScreenParams.h; sourceTree = ""; }; + 64CC24A0167F43E7EFCD3741ED2CD00A /* SDLAlert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlert.h; path = SmartDeviceLink/SDLAlert.h; sourceTree = ""; }; + 659961EA97BC4FAE7763288542F9CB2F /* SDLButtonName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonName.h; path = SmartDeviceLink/SDLButtonName.h; sourceTree = ""; }; + 663A9EF7F5F3FD6EE0A2CD1D2AC97B32 /* SDLLockScreenPresenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenPresenter.m; path = SmartDeviceLink/SDLLockScreenPresenter.m; sourceTree = ""; }; + 6644C7A504AD3CAC83C4A63B22675EB0 /* SDLControlFramePayloadAudioStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadAudioStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m; sourceTree = ""; }; + 6657481C1066F2BFD64C601F0DE30820 /* SDLSlider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSlider.m; path = SmartDeviceLink/SDLSlider.m; sourceTree = ""; }; + 66A4B1A486BE8F5F2523D7B998E03397 /* SDLPerformAppServiceInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAppServiceInteraction.h; path = SmartDeviceLink/SDLPerformAppServiceInteraction.h; sourceTree = ""; }; + 66FD520D0728F8EF271910AF32E9C621 /* BiSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BiSON-umbrella.h"; sourceTree = ""; }; + 675E2F625AECD899CD113C3918FD540E /* SDLSequentialRPCRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSequentialRPCRequestOperation.m; path = SmartDeviceLink/SDLSequentialRPCRequestOperation.m; sourceTree = ""; }; + 678F1D8B5E1A5F63E7E494C394BAD3AA /* SDLPowerModeQualificationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPowerModeQualificationStatus.m; path = SmartDeviceLink/SDLPowerModeQualificationStatus.m; sourceTree = ""; }; + 67B1375F3DDA0692EAB06F16FF383182 /* SDLAppHMIType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppHMIType.m; path = SmartDeviceLink/SDLAppHMIType.m; sourceTree = ""; }; + 67F8B6234CDA01ABF6D0A2BB501FAF2D /* Pods-MobileWeather.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MobileWeather.debug.xcconfig"; sourceTree = ""; }; + 682C1E866A0552DF161B4CA6BE8C02BD /* SDLOnInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnInteriorVehicleData.h; path = SmartDeviceLink/SDLOnInteriorVehicleData.h; sourceTree = ""; }; + 6832CC0E9D2EAF6011514D2D39624749 /* SDLLogFileModuleMap.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFileModuleMap.m; path = SmartDeviceLink/SDLLogFileModuleMap.m; sourceTree = ""; }; + 684377DF2520C00D1850BD09A565E45D /* SDLDirection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDirection.h; path = SmartDeviceLink/SDLDirection.h; sourceTree = ""; }; + 691225BFF1BB8235FF07367825ECE854 /* SDLTouchManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchManager.h; path = SmartDeviceLink/SDLTouchManager.h; sourceTree = ""; }; + 695B8ED2FCC305054E59AA1279EB261B /* SDLMutableDataQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMutableDataQueue.m; path = SmartDeviceLink/SDLMutableDataQueue.m; sourceTree = ""; }; + 6965165C7082ACB5194C99CB6FA07E6B /* SDLUpdateTurnListResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateTurnListResponse.m; path = SmartDeviceLink/SDLUpdateTurnListResponse.m; sourceTree = ""; }; + 69C08735FF330FCAC39AB5054B9E06AA /* SDLWeatherData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherData.m; path = SmartDeviceLink/SDLWeatherData.m; sourceTree = ""; }; + 69EB1D090E106984195E7886C58C910C /* SDLDeleteFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFile.h; path = SmartDeviceLink/SDLDeleteFile.h; sourceTree = ""; }; + 6A41267BCF7ACCDD59CABE41F6C1B46C /* SDLStateMachine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStateMachine.h; path = SmartDeviceLink/SDLStateMachine.h; sourceTree = ""; }; + 6A682C7A761BD4627EABB545706018F3 /* SDLRPCRequestNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCRequestNotification.h; path = SmartDeviceLink/SDLRPCRequestNotification.h; sourceTree = ""; }; + 6A942A35064A0FA53F092510D10B5198 /* SDLServiceUpdateReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLServiceUpdateReason.h; path = SmartDeviceLink/SDLServiceUpdateReason.h; sourceTree = ""; }; + 6A9E9D261C1048E5D099A24A970F9FC3 /* SmartDeviceLink-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartDeviceLink-umbrella.h"; sourceTree = ""; }; + 6AB0EFA70338ECA876CAE278CBCEF17D /* SDLControlFramePayloadConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadConstants.m; path = SmartDeviceLink/SDLControlFramePayloadConstants.m; sourceTree = ""; }; + 6AB1DCB476513BFF046B549ACEA9FE45 /* SDLControlFramePayloadRPCStartService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRPCStartService.m; path = SmartDeviceLink/SDLControlFramePayloadRPCStartService.m; sourceTree = ""; }; + 6B09D19145E0FCA24838F5D274F3D523 /* SDLLayoutMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLayoutMode.h; path = SmartDeviceLink/SDLLayoutMode.h; sourceTree = ""; }; + 6B2B524E9D5A872B97EC4D57EA21E041 /* SDLKeyboardLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardLayout.m; path = SmartDeviceLink/SDLKeyboardLayout.m; sourceTree = ""; }; + 6B3EA6783E26BB49A731FCF69628F558 /* SDLLifecycleConfigurationUpdate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleConfigurationUpdate.m; path = SmartDeviceLink/SDLLifecycleConfigurationUpdate.m; sourceTree = ""; }; + 6B5BA0CEC12E67BC7F5BD539A70729DA /* SDLOnTBTClientState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnTBTClientState.m; path = SmartDeviceLink/SDLOnTBTClientState.m; sourceTree = ""; }; + 6BBEC9CD4C3851AF20E177DC499AFC7F /* SDLTextFieldName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextFieldName.m; path = SmartDeviceLink/SDLTextFieldName.m; sourceTree = ""; }; + 6BF96D4C2DA598534A4D8326D5961403 /* SDLLightControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightControlCapabilities.m; path = SmartDeviceLink/SDLLightControlCapabilities.m; sourceTree = ""; }; + 6C122D385DA1B67231C109629EFBCF67 /* SDLGetVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetVehicleData.h; path = SmartDeviceLink/SDLGetVehicleData.h; sourceTree = ""; }; + 6C22133A4EF2323F887466EC7EED58C3 /* SDLStreamingAudioLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingAudioLifecycleManager.m; path = SmartDeviceLink/SDLStreamingAudioLifecycleManager.m; sourceTree = ""; }; + 6C69A475BAE41EDD24A00FB701BC3EC6 /* SDLMediaServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaServiceManifest.h; path = SmartDeviceLink/SDLMediaServiceManifest.h; sourceTree = ""; }; + 6C6AE16D11DEDEAAF0E172B5CDACB105 /* SDLDeleteWindowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteWindowResponse.m; path = SmartDeviceLink/SDLDeleteWindowResponse.m; sourceTree = ""; }; + 6D150921AE68F0BB3EE9419F5B9B006D /* SDLVehicleDataNotificationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataNotificationStatus.h; path = SmartDeviceLink/SDLVehicleDataNotificationStatus.h; sourceTree = ""; }; + 6D1B8BCE12335818CDCDA92072B0EE7F /* SDLUnregisterAppInterface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnregisterAppInterface.h; path = SmartDeviceLink/SDLUnregisterAppInterface.h; sourceTree = ""; }; + 6D40C571D57B74A89D78D4877D935250 /* SDLSoftButtonState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonState.m; path = SmartDeviceLink/SDLSoftButtonState.m; sourceTree = ""; }; + 6D4C1FD6526097EEBD7A4AEE29623C7A /* SDLListFiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFiles.m; path = SmartDeviceLink/SDLListFiles.m; sourceTree = ""; }; + 6E1639EE1075414A5D5EA690D7F79B69 /* SDLClimateControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClimateControlData.h; path = SmartDeviceLink/SDLClimateControlData.h; sourceTree = ""; }; + 6E44B29B11FFF564D52CADA80FF7E157 /* SDLRemoteControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRemoteControlCapabilities.h; path = SmartDeviceLink/SDLRemoteControlCapabilities.h; sourceTree = ""; }; + 6E5DD878D3427D986DE5573FF06202CB /* SDLPermissionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionManager.m; path = SmartDeviceLink/SDLPermissionManager.m; sourceTree = ""; }; + 6EA2B752BEA8AAB3CDE06DD763FC4CAF /* SDLUnregisterAppInterface.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnregisterAppInterface.m; path = SmartDeviceLink/SDLUnregisterAppInterface.m; sourceTree = ""; }; + 6EAB0821E72518202FBFA198CD9E48F0 /* SDLOnHashChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnHashChange.m; path = SmartDeviceLink/SDLOnHashChange.m; sourceTree = ""; }; + 6EB24F185C13507CF836631F5BDF0A2C /* SDLTransportDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTransportDelegate.h; path = SmartDeviceLink/SDLTransportDelegate.h; sourceTree = ""; }; + 6F2DC8CFD2770D191663EE9B313E334F /* SDLLifecycleRPCAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleRPCAdapter.m; path = SmartDeviceLink/SDLLifecycleRPCAdapter.m; sourceTree = ""; }; + 6F34249B622DD4B497630858D68F221B /* SDLPerformAppServiceInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAppServiceInteractionResponse.m; path = SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m; sourceTree = ""; }; + 6F81576D0E235C0559B93C3A3784A4A6 /* SDLSystemRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemRequest.h; path = SmartDeviceLink/SDLSystemRequest.h; sourceTree = ""; }; + 6FEC1FB5460DDB76F458A2F7F27AA236 /* SDLLightState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightState.h; path = SmartDeviceLink/SDLLightState.h; sourceTree = ""; }; + 6FFAB5BB716F6C328E6A31CC62B4B11D /* SDLRadioState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioState.m; path = SmartDeviceLink/SDLRadioState.m; sourceTree = ""; }; + 7026D561A07AC0E8C0BE86D3E4C3DA7A /* SDLRadioControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioControlCapabilities.h; path = SmartDeviceLink/SDLRadioControlCapabilities.h; sourceTree = ""; }; + 70634D4480B4DFDAB8FA657ADAEF768B /* SDLPublishAppServiceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPublishAppServiceResponse.m; path = SmartDeviceLink/SDLPublishAppServiceResponse.m; sourceTree = ""; }; + 709665B2A1B0E940E288AE35CA99AEDD /* SDLTouchManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchManager.m; path = SmartDeviceLink/SDLTouchManager.m; sourceTree = ""; }; + 70D15488C806D4BEC8709786B9EE4931 /* SDLAppServiceType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceType.h; path = SmartDeviceLink/SDLAppServiceType.h; sourceTree = ""; }; + 70FCA6EA14F58857FDC822D78A615F03 /* SDLChoice.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoice.h; path = SmartDeviceLink/SDLChoice.h; sourceTree = ""; }; + 7107118F63D85B4E1D0C3139EC411FA9 /* SDLAlertManeuver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertManeuver.h; path = SmartDeviceLink/SDLAlertManeuver.h; sourceTree = ""; }; + 71626D352E691F8B7E7514EB0EAEAB01 /* NSMutableArray+Safe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+Safe.h"; path = "SmartDeviceLink/NSMutableArray+Safe.h"; sourceTree = ""; }; + 7225B3942F9C5E129FA86F41720C7403 /* SDLProtocolMessageDisassembler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessageDisassembler.h; path = SmartDeviceLink/SDLProtocolMessageDisassembler.h; sourceTree = ""; }; + 72279C07ABBAEA264B9075A1A89C7434 /* SDLTouchEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchEvent.m; path = SmartDeviceLink/SDLTouchEvent.m; sourceTree = ""; }; + 7271B5F541D7EA6BA5478DFBDD079C30 /* SDLIconArchiveFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIconArchiveFile.m; path = SmartDeviceLink/SDLIconArchiveFile.m; sourceTree = ""; }; + 72740556340F8C21368CF87A79C8F5DF /* SDLLogConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogConfiguration.h; path = SmartDeviceLink/SDLLogConfiguration.h; sourceTree = ""; }; + 72A24826CB06B3C74BFF1FAC64D33A17 /* NSMutableArray+Safe.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+Safe.m"; path = "SmartDeviceLink/NSMutableArray+Safe.m"; sourceTree = ""; }; + 72DEFC52DA69C0042103401227D6AE2E /* SDLOnKeyboardInput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnKeyboardInput.h; path = SmartDeviceLink/SDLOnKeyboardInput.h; sourceTree = ""; }; + 731A9565B4A85AFC0CCB16E396BCCA40 /* SDLPutFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPutFileResponse.h; path = SmartDeviceLink/SDLPutFileResponse.h; sourceTree = ""; }; + 73ACA9CF96F869FA20D4FA90D8076760 /* SDLAudioStreamingIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamingIndicator.m; path = SmartDeviceLink/SDLAudioStreamingIndicator.m; sourceTree = ""; }; + 743FE6CD7692742CFA7D4D7A6E714FC7 /* SDLPowerModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPowerModeStatus.h; path = SmartDeviceLink/SDLPowerModeStatus.h; sourceTree = ""; }; + 7442CCEB4D854A9A904B550B922A6AD7 /* SDLResetGlobalProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResetGlobalProperties.m; path = SmartDeviceLink/SDLResetGlobalProperties.m; sourceTree = ""; }; + 745677B913DC8E4E41FB2994B6781B3B /* SDLTouchType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchType.m; path = SmartDeviceLink/SDLTouchType.m; sourceTree = ""; }; + 745681F76A482E1B3B632F0DDCDF603F /* SDLShowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowResponse.m; path = SmartDeviceLink/SDLShowResponse.m; sourceTree = ""; }; + 74815297D14D7E57559C2C6AF0F29BBF /* SDLSeatControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatControlCapabilities.h; path = SmartDeviceLink/SDLSeatControlCapabilities.h; sourceTree = ""; }; + 74883F69A6EF23F8FE9794EE3CEE21EA /* SDLTCPTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTCPTransport.m; path = SmartDeviceLink/SDLTCPTransport.m; sourceTree = ""; }; + 74A65D2D8ED21D32C107935C517191E4 /* SDLHeadLampStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHeadLampStatus.h; path = SmartDeviceLink/SDLHeadLampStatus.h; sourceTree = ""; }; + 74AD80168C993652453FE3971FF647BC /* SDLPRNDL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPRNDL.h; path = SmartDeviceLink/SDLPRNDL.h; sourceTree = ""; }; + 74E30D8D3F070C400D8A5A719C652BE3 /* SDLSoftButtonManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonManager.h; path = SmartDeviceLink/SDLSoftButtonManager.h; sourceTree = ""; }; + 751014CBE69345246F2D0A816DC57EFA /* SDLFuelType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelType.h; path = SmartDeviceLink/SDLFuelType.h; sourceTree = ""; }; + 7510FD20D7400BF8B329E618E46A0A19 /* SDLPermissionConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionConstants.h; path = SmartDeviceLink/SDLPermissionConstants.h; sourceTree = ""; }; + 761B798C05833C28B0A217F40C5D9DC6 /* SDLMaintenanceModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMaintenanceModeStatus.h; path = SmartDeviceLink/SDLMaintenanceModeStatus.h; sourceTree = ""; }; + 761CC69C3F5D1EFD734F628AEA4699D0 /* Pods-MobileWeather-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MobileWeather-frameworks.sh"; sourceTree = ""; }; + 76424AB29A53E628F57743FDF2F79FEF /* SDLPublishAppService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPublishAppService.m; path = SmartDeviceLink/SDLPublishAppService.m; sourceTree = ""; }; + 76849B1E655537F0605C6BABA3DBCE8E /* SDLTextFieldName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextFieldName.h; path = SmartDeviceLink/SDLTextFieldName.h; sourceTree = ""; }; + 76914E4FB138C6C29615A345C805BB4E /* SDLAppHMIType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppHMIType.h; path = SmartDeviceLink/SDLAppHMIType.h; sourceTree = ""; }; + 769339F5B0569F2B7DC24EC805CA5828 /* SDLLockScreenViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenViewController.h; path = SmartDeviceLink/SDLLockScreenViewController.h; sourceTree = ""; }; + 76AA2E78DDBD9125228F85316E09095F /* SDLIgnitionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIgnitionStatus.h; path = SmartDeviceLink/SDLIgnitionStatus.h; sourceTree = ""; }; + 76D324B05E41128D942966F0A0EEBB12 /* SDLDiagnosticMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDiagnosticMessage.h; path = SmartDeviceLink/SDLDiagnosticMessage.h; sourceTree = ""; }; + 7725181B40E656D5EC95817265FFB76D /* SDLGetDTCs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetDTCs.m; path = SmartDeviceLink/SDLGetDTCs.m; sourceTree = ""; }; + 773018652B375661E7ABA7CC63A04D1D /* SDLSystemCapabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityManager.m; path = SmartDeviceLink/SDLSystemCapabilityManager.m; sourceTree = ""; }; + 7767E20AEA869F60F20EA97DB0E504E1 /* SDLDisplayCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayCapabilities.m; path = SmartDeviceLink/SDLDisplayCapabilities.m; sourceTree = ""; }; + 77B63B96875F1C820F190F3AC0A911ED /* SDLAsynchronousRPCRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousRPCRequestOperation.m; path = SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m; sourceTree = ""; }; + 77CC97F51D3268076905BB31E39F4CD1 /* SDLControlFramePayloadEndService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadEndService.m; path = SmartDeviceLink/SDLControlFramePayloadEndService.m; sourceTree = ""; }; + 77D15E8AD5A19B2ED89FB10E91070268 /* SDLShowAppMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowAppMenuResponse.m; path = SmartDeviceLink/SDLShowAppMenuResponse.m; sourceTree = ""; }; + 77E74A07526CBD02470FDA755AB5D6C7 /* SDLKeyboardEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardEvent.m; path = SmartDeviceLink/SDLKeyboardEvent.m; sourceTree = ""; }; + 78A7A95A29CAE2745B67B7C2F0F5FCD4 /* SDLPresentChoiceSetOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresentChoiceSetOperation.m; path = SmartDeviceLink/SDLPresentChoiceSetOperation.m; sourceTree = ""; }; + 78BCD3CBF28669B305138E89FAF33DE4 /* SDLUnsubscribeButtonResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeButtonResponse.h; path = SmartDeviceLink/SDLUnsubscribeButtonResponse.h; sourceTree = ""; }; + 78F5E319075CD2E0DA4A60935A86DC1F /* SDLLogConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogConstants.h; path = SmartDeviceLink/SDLLogConstants.h; sourceTree = ""; }; + 790A157900FC0357E1E10AE048065C70 /* SDLSeatLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatLocation.h; path = SmartDeviceLink/SDLSeatLocation.h; sourceTree = ""; }; + 7910570CD2F58D8D77EC77D4F5477546 /* SDLIgnitionStableStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIgnitionStableStatus.m; path = SmartDeviceLink/SDLIgnitionStableStatus.m; sourceTree = ""; }; + 79477F35CD70B0D22D924DD87A435888 /* SDLControlFramePayloadVideoStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadVideoStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m; sourceTree = ""; }; + 795BD010B79F761A42E76581AB8275FF /* SDLImageFieldName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageFieldName.m; path = SmartDeviceLink/SDLImageFieldName.m; sourceTree = ""; }; + 798FBD4B8BEE30A8944489D1A694BFDD /* SDLMediaClockFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaClockFormat.m; path = SmartDeviceLink/SDLMediaClockFormat.m; sourceTree = ""; }; + 79BE090F6A21A962EE21A4F1CEEF8475 /* SDLCancelInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCancelInteraction.h; path = SmartDeviceLink/SDLCancelInteraction.h; sourceTree = ""; }; + 79D0753524C87826EC27651FB26FD354 /* SDLIAPDataSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPDataSession.h; path = SmartDeviceLink/SDLIAPDataSession.h; sourceTree = ""; }; + 79E7E805FF542E9C1C6E18B46AFABA56 /* SDLImageResolution.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageResolution.h; path = SmartDeviceLink/SDLImageResolution.h; sourceTree = ""; }; + 7A2CC1AB9C604A7E227193554050F049 /* SDLSoftButtonReplaceOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonReplaceOperation.h; path = SmartDeviceLink/SDLSoftButtonReplaceOperation.h; sourceTree = ""; }; + 7AC9DBB4949F6A3B97B7BEB8AE95E1BE /* SDLChangeRegistrationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChangeRegistrationResponse.h; path = SmartDeviceLink/SDLChangeRegistrationResponse.h; sourceTree = ""; }; + 7ACC18BF8B3AA6A798755C8C4A61E644 /* SDLLocationCoordinate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLocationCoordinate.h; path = SmartDeviceLink/SDLLocationCoordinate.h; sourceTree = ""; }; + 7AEB6BF5F6EEEDDC3AD1882CBE90B52D /* SDLSeatMemoryActionType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatMemoryActionType.h; path = SmartDeviceLink/SDLSeatMemoryActionType.h; sourceTree = ""; }; + 7AF24E18157165E29DE67C839ABF0DF9 /* SDLGetSystemCapabilityResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetSystemCapabilityResponse.h; path = SmartDeviceLink/SDLGetSystemCapabilityResponse.h; sourceTree = ""; }; + 7B1F6B431A4C7D300274DCDBE2BC7043 /* BiSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BiSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7B3EF2AF2354F5AF6D7A430764CE2C2B /* SDLV2ProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV2ProtocolHeader.m; path = SmartDeviceLink/SDLV2ProtocolHeader.m; sourceTree = ""; }; + 7B4F218D5BBC11B808F5FCB846D65C36 /* SDLModuleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleData.h; path = SmartDeviceLink/SDLModuleData.h; sourceTree = ""; }; + 7B50E027677BEB5915991E589C93AA10 /* SDLDeleteCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteCommand.h; path = SmartDeviceLink/SDLDeleteCommand.h; sourceTree = ""; }; + 7B628B43B6ADADBEB6501E049D64E37F /* SDLLightCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightCapabilities.m; path = SmartDeviceLink/SDLLightCapabilities.m; sourceTree = ""; }; + 7B78A428E3625D60C6EDC36E0B0E2FAA /* SDLRPCPayload.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCPayload.m; path = SmartDeviceLink/SDLRPCPayload.m; sourceTree = ""; }; + 7B8C8887A387D235F538311D49C4D060 /* SDLFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileManager.m; path = SmartDeviceLink/SDLFileManager.m; sourceTree = ""; }; + 7BF22D8F89AAD3C5356C6D640553D7C9 /* SDLNavigationInstruction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationInstruction.m; path = SmartDeviceLink/SDLNavigationInstruction.m; sourceTree = ""; }; + 7C4733935F901007F3F62700534869C2 /* SDLVehicleDataResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataResult.m; path = SmartDeviceLink/SDLVehicleDataResult.m; sourceTree = ""; }; + 7CE2B2F33B9741F264BE0D9D55A6BF32 /* SDLSystemCapabilityObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityObserver.h; path = SmartDeviceLink/SDLSystemCapabilityObserver.h; sourceTree = ""; }; + 7D162E149D1234C0EC8BD90C863EBC29 /* SDLLightState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightState.m; path = SmartDeviceLink/SDLLightState.m; sourceTree = ""; }; + 7D17B47BB0D9A877AB0D85B41A630687 /* SDLAppInterfaceUnregisteredReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppInterfaceUnregisteredReason.h; path = SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h; sourceTree = ""; }; + 7D4B95B4B14683496035C798353826CA /* SDLSystemCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapability.h; path = SmartDeviceLink/SDLSystemCapability.h; sourceTree = ""; }; + 7D5AFE5EC9DFCBD550B6CE009570187A /* SDLDialNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDialNumber.h; path = SmartDeviceLink/SDLDialNumber.h; sourceTree = ""; }; + 7D6BD3775E7938F10CC4DDE5EFEB12C2 /* SDLSamplingRate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSamplingRate.h; path = SmartDeviceLink/SDLSamplingRate.h; sourceTree = ""; }; + 7D870FC3F91ACC2B15AB223846D01700 /* SDLCheckChoiceVROptionalOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCheckChoiceVROptionalOperation.h; path = SmartDeviceLink/SDLCheckChoiceVROptionalOperation.h; sourceTree = ""; }; + 7E745564AE37D33E39D0D5F6C4614133 /* SDLVehicleDataStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataStatus.m; path = SmartDeviceLink/SDLVehicleDataStatus.m; sourceTree = ""; }; + 7E811202558CAA5E41CCE8C8544776CB /* SDLDisplayType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayType.h; path = SmartDeviceLink/SDLDisplayType.h; sourceTree = ""; }; + 7E8B2B973E85F3287EF6B9408633BD6D /* SDLDiagnosticMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDiagnosticMessage.m; path = SmartDeviceLink/SDLDiagnosticMessage.m; sourceTree = ""; }; + 7E948ADD47AA0D93F041A0773607D8D6 /* SDLSeatControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatControlCapabilities.m; path = SmartDeviceLink/SDLSeatControlCapabilities.m; sourceTree = ""; }; + 7E994AA0B434ED590CB3CEBE77F7F72F /* SDLScreenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScreenManager.h; path = SmartDeviceLink/SDLScreenManager.h; sourceTree = ""; }; + 7EE602770509983D76D37ABED9C3EB57 /* SDLSpeakResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeakResponse.h; path = SmartDeviceLink/SDLSpeakResponse.h; sourceTree = ""; }; + 7F28BC6B50D22A511ABF2860A5A43136 /* SDLRegisterAppInterface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRegisterAppInterface.h; path = SmartDeviceLink/SDLRegisterAppInterface.h; sourceTree = ""; }; + 7F2C5F89F8B578C3FB94E3AF3276CD61 /* BiSON.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BiSON.debug.xcconfig; sourceTree = ""; }; + 7F4125C10AB281EFB11D2A890DF0DE61 /* SDLMetadataTags.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMetadataTags.m; path = SmartDeviceLink/SDLMetadataTags.m; sourceTree = ""; }; + 7F44E48D23E1A8174BD093395CF63563 /* SDLMenuLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuLayout.h; path = SmartDeviceLink/SDLMenuLayout.h; sourceTree = ""; }; + 7F7B026A5E29DCF1060FD41C895EB056 /* SDLDeliveryMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeliveryMode.m; path = SmartDeviceLink/SDLDeliveryMode.m; sourceTree = ""; }; + 8012DBA7B04E0C0D6D13D3AB41B86CFA /* SDLAlertManeuver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertManeuver.m; path = SmartDeviceLink/SDLAlertManeuver.m; sourceTree = ""; }; + 808D3D1BD6F1044040D5B2D458E4B21C /* SDLVideoStreamingFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingFormat.h; path = SmartDeviceLink/SDLVideoStreamingFormat.h; sourceTree = ""; }; + 808FA370A600BD6F4DF9382F215445CF /* SDLAudioStreamingIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamingIndicator.h; path = SmartDeviceLink/SDLAudioStreamingIndicator.h; sourceTree = ""; }; + 809D3FC9668359BFD1AD77E50506EFA2 /* SDLDeleteWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteWindow.m; path = SmartDeviceLink/SDLDeleteWindow.m; sourceTree = ""; }; + 80B228053FDFC1AE6EC6A285F9C67826 /* SDLOnTBTClientState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnTBTClientState.h; path = SmartDeviceLink/SDLOnTBTClientState.h; sourceTree = ""; }; + 80BA52F7804336DB0F03FC8F1C10CD00 /* SDLRPCResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCResponse.m; path = SmartDeviceLink/SDLRPCResponse.m; sourceTree = ""; }; + 80D9C9B56D254F2A33C2AE1EA81D9AF6 /* SDLSeatMemoryAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatMemoryAction.m; path = SmartDeviceLink/SDLSeatMemoryAction.m; sourceTree = ""; }; + 810191FBC97CF880144ABEB67A432DD7 /* SDLAddCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddCommand.h; path = SmartDeviceLink/SDLAddCommand.h; sourceTree = ""; }; + 813217C2A949443C3D0F3B06A2A3F439 /* SDLPresentKeyboardOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresentKeyboardOperation.h; path = SmartDeviceLink/SDLPresentKeyboardOperation.h; sourceTree = ""; }; + 813A147E7FDCF70030F5AEC4B266E506 /* SDLComponentVolumeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLComponentVolumeStatus.m; path = SmartDeviceLink/SDLComponentVolumeStatus.m; sourceTree = ""; }; + 815DBEEF21C974D2236762AC3D4FADB1 /* SDLMediaType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaType.h; path = SmartDeviceLink/SDLMediaType.h; sourceTree = ""; }; + 81EC89561B1309E5EBCB47D731425C63 /* SmartDeviceLink-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SmartDeviceLink-Info.plist"; sourceTree = ""; }; + 821880E4A2BC5BEF5F42B7CCFF64AB9D /* SDLAppServicesCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServicesCapabilities.m; path = SmartDeviceLink/SDLAppServicesCapabilities.m; sourceTree = ""; }; + 824499C1074ACBA17C39242C022396D4 /* SDLAppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppInfo.h; path = SmartDeviceLink/SDLAppInfo.h; sourceTree = ""; }; + 82F4D26F5662FB5B045698D0F6EA082B /* SDLSendHapticData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendHapticData.m; path = SmartDeviceLink/SDLSendHapticData.m; sourceTree = ""; }; + 82FF30811604FAB65F49A60CF6868F75 /* bson_util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_util.h; path = src/bson_util.h; sourceTree = ""; }; + 831E596C3FA752444D1ABCA67DB7BB9F /* SDLScrollableMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScrollableMessage.h; path = SmartDeviceLink/SDLScrollableMessage.h; sourceTree = ""; }; + 83335AC43298E401A07294CE5F7FB4FA /* SDLAlertResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertResponse.h; path = SmartDeviceLink/SDLAlertResponse.h; sourceTree = ""; }; + 84184A09E2EEE69596297343EBF3F35F /* SDLSoftButtonCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonCapabilities.m; path = SmartDeviceLink/SDLSoftButtonCapabilities.m; sourceTree = ""; }; + 842712B0CDF8A50C05707074C6B3E1BE /* SDLTPMS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTPMS.m; path = SmartDeviceLink/SDLTPMS.m; sourceTree = ""; }; + 84439E65ABFB04398E7E8680FA2A7755 /* SDLVehicleDataType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataType.h; path = SmartDeviceLink/SDLVehicleDataType.h; sourceTree = ""; }; + 8491710A7CDE4F582940CE688AF7A91B /* SDLBeltStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBeltStatus.m; path = SmartDeviceLink/SDLBeltStatus.m; sourceTree = ""; }; + 84A87A780C05802FA7F395A3C3AFF5E4 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = ja.lproj/SDLLockScreen.strings; sourceTree = ""; }; + 84BCD84500C53F400D5B51AB716B9A7C /* SDLSubscribeWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeWayPointsResponse.m; path = SmartDeviceLink/SDLSubscribeWayPointsResponse.m; sourceTree = ""; }; + 84C4889DD2C1AC35B627A69F8C7C3D42 /* SDLEmergencyEventType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEmergencyEventType.h; path = SmartDeviceLink/SDLEmergencyEventType.h; sourceTree = ""; }; + 84C5C4D0E7C8575BB285D8DD30E89F56 /* SDLChangeRegistrationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChangeRegistrationResponse.m; path = SmartDeviceLink/SDLChangeRegistrationResponse.m; sourceTree = ""; }; + 851DB4FB9BD1E39F4B61D6DD51ABD057 /* SDLCreateWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateWindow.m; path = SmartDeviceLink/SDLCreateWindow.m; sourceTree = ""; }; + 856764E6D7C402933AA4B550B7ADCBCD /* SDLDeleteInteractionChoiceSetResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteInteractionChoiceSetResponse.m; path = SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m; sourceTree = ""; }; + 856D3BA7D8F100C4E870645839EC4088 /* SDLStationIDNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStationIDNumber.m; path = SmartDeviceLink/SDLStationIDNumber.m; sourceTree = ""; }; + 85B58642FDAB1B0A7547822E7591B829 /* SDLSubscribeButtonResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonResponse.m; path = SmartDeviceLink/SDLSubscribeButtonResponse.m; sourceTree = ""; }; + 8619125F9745A7BD3975F3CBD74C4613 /* SDLEnum.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEnum.h; path = SmartDeviceLink/SDLEnum.h; sourceTree = ""; }; + 86206B1B96CF24D8B99B4EE97C44B185 /* SDLOnSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSyncPData.m; path = SmartDeviceLink/SDLOnSyncPData.m; sourceTree = ""; }; + 863AFB2E5034F4791C4E19C43C1F917C /* SDLAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = SDLAssets.xcassets; path = SmartDeviceLink/Assets/SDLAssets.xcassets; sourceTree = ""; }; + 8659E6ED0DA1E9DEB1C42B4582F2C284 /* SDLSystemRequestResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemRequestResponse.h; path = SmartDeviceLink/SDLSystemRequestResponse.h; sourceTree = ""; }; + 865CF3B1A51E7AF3086DD6E840A8C8C7 /* SDLConnectionManagerType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLConnectionManagerType.h; path = SmartDeviceLink/SDLConnectionManagerType.h; sourceTree = ""; }; + 868ABD43DF81EE49690B9D5C41FB25D3 /* SDLGetDTCs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetDTCs.h; path = SmartDeviceLink/SDLGetDTCs.h; sourceTree = ""; }; + 86B7CD8697FB29C377FF70D301A9BE51 /* SDLGetAppServiceDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetAppServiceDataResponse.m; path = SmartDeviceLink/SDLGetAppServiceDataResponse.m; sourceTree = ""; }; + 86D33E8FBC03915470B26F43AFCE8644 /* SDLIAPControlSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPControlSession.m; path = SmartDeviceLink/SDLIAPControlSession.m; sourceTree = ""; }; + 8715DA57587883550705045298299293 /* SDLVrCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVrCapabilities.m; path = SmartDeviceLink/SDLVrCapabilities.m; sourceTree = ""; }; + 873FE0283FBF8E45FCF48C1242A364F2 /* SDLRPCNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCNotification.h; path = SmartDeviceLink/SDLRPCNotification.h; sourceTree = ""; }; + 878CFADA0C9FAF4387BFEBA236775E0D /* SDLAudioFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioFile.m; path = SmartDeviceLink/SDLAudioFile.m; sourceTree = ""; }; + 879D45F15B6B19AD8392A3B6A475AB91 /* SDLEncodedSyncPDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncodedSyncPDataResponse.h; path = SmartDeviceLink/SDLEncodedSyncPDataResponse.h; sourceTree = ""; }; + 87C67CACB98D0E3DBC70C30114AA819D /* SDLTemplateColorScheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemplateColorScheme.m; path = SmartDeviceLink/SDLTemplateColorScheme.m; sourceTree = ""; }; + 880F24F11420E145AFB4143AF75C49B8 /* SDLArtwork.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLArtwork.h; path = SmartDeviceLink/SDLArtwork.h; sourceTree = ""; }; + 881888E1F3926DBD7D2B8B9D4057B6B9 /* SDLTireStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTireStatus.m; path = SmartDeviceLink/SDLTireStatus.m; sourceTree = ""; }; + 881E4C25BD44C40E029B9496CF96582E /* SDLSetDisplayLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetDisplayLayout.h; path = SmartDeviceLink/SDLSetDisplayLayout.h; sourceTree = ""; }; + 8855466267A3B3D5676C6D27C57295EA /* SDLAirbagStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAirbagStatus.h; path = SmartDeviceLink/SDLAirbagStatus.h; sourceTree = ""; }; + 889A9936FDAA22D7E7DACA85443E9515 /* SDLSubscribeButtonManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonManager.m; path = SmartDeviceLink/SDLSubscribeButtonManager.m; sourceTree = ""; }; + 88A98EF18C6CD1EA711938578B4CB959 /* SDLOnHMIStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnHMIStatus.h; path = SmartDeviceLink/SDLOnHMIStatus.h; sourceTree = ""; }; + 88CF0A4361A069189BA99DE9D9F45FB5 /* SDLRegisterAppInterfaceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRegisterAppInterfaceResponse.h; path = SmartDeviceLink/SDLRegisterAppInterfaceResponse.h; sourceTree = ""; }; + 88FA7221DE85C8EE3F58E1425E6640BF /* SDLOnTouchEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnTouchEvent.h; path = SmartDeviceLink/SDLOnTouchEvent.h; sourceTree = ""; }; + 8945F938BC1F0E55439AAB1ADFF84C1C /* NSMutableDictionary+SafeRemove.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+SafeRemove.m"; path = "SmartDeviceLink/NSMutableDictionary+SafeRemove.m"; sourceTree = ""; }; + 895A7D207902140EBA17041F62E54A34 /* SDLReleaseInteriorVehicleDataModuleResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReleaseInteriorVehicleDataModuleResponse.m; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m; sourceTree = ""; }; + 89A76245B2627554C8BCFD4EC00D0102 /* SDLCloudAppProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCloudAppProperties.m; path = SmartDeviceLink/SDLCloudAppProperties.m; sourceTree = ""; }; + 89C99B8EF7D6E80920E770B6E500F5A7 /* SDLLightControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightControlCapabilities.h; path = SmartDeviceLink/SDLLightControlCapabilities.h; sourceTree = ""; }; + 89DF44BE873C0C35B93160AF2AFA563E /* SDLWiperStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWiperStatus.m; path = SmartDeviceLink/SDLWiperStatus.m; sourceTree = ""; }; + 8A18641DB12A7690CFBB24321A955BBC /* SDLPrerecordedSpeech.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrerecordedSpeech.m; path = SmartDeviceLink/SDLPrerecordedSpeech.m; sourceTree = ""; }; + 8A43468737969CFBC34B9E215CE0D886 /* SDLDisplayCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayCapability.h; path = SmartDeviceLink/SDLDisplayCapability.h; sourceTree = ""; }; + 8A578665B9047694A0F347F293DE12B4 /* SDLDIDResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDIDResult.m; path = SmartDeviceLink/SDLDIDResult.m; sourceTree = ""; }; + 8A5AD3441FF3C7D1A42E2F592EC01E42 /* TestSubscribeButtonObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TestSubscribeButtonObserver.m; path = SmartDeviceLink/TestSubscribeButtonObserver.m; sourceTree = ""; }; + 8AB6823D25685820410ED63918C02E0A /* EAAccessory+SDLProtocols.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EAAccessory+SDLProtocols.h"; path = "SmartDeviceLink/EAAccessory+SDLProtocols.h"; sourceTree = ""; }; + 8AF84943922331DACE393EFF73879043 /* SmartDeviceLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SmartDeviceLink.h; path = SmartDeviceLink/SmartDeviceLink.h; sourceTree = ""; }; + 8B140D8D2A0B9E079DA6C09D0FDD57F2 /* SDLMsgVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMsgVersion.m; path = SmartDeviceLink/SDLMsgVersion.m; sourceTree = ""; }; + 8B261757A2927398D6F981A1FCC62A65 /* SDLRDSData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRDSData.h; path = SmartDeviceLink/SDLRDSData.h; sourceTree = ""; }; + 8B39BA281073C47D8203292D7923D0E8 /* SDLShowConstantTBT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowConstantTBT.h; path = SmartDeviceLink/SDLShowConstantTBT.h; sourceTree = ""; }; + 8B5BC1A9155BA8ED843E0972909B9572 /* SDLRPCResponseNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCResponseNotification.h; path = SmartDeviceLink/SDLRPCResponseNotification.h; sourceTree = ""; }; + 8B735CFF284972E87F85DEDF52E7B4B0 /* SDLMetadataType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMetadataType.m; path = SmartDeviceLink/SDLMetadataType.m; sourceTree = ""; }; + 8B8673925B5FFBCA631C8D9562197C41 /* SDLPermissionElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionElement.h; path = SmartDeviceLink/SDLPermissionElement.h; sourceTree = ""; }; + 8B8E77F2592BA2AADA9952C6A050C4E2 /* SDLPCMAudioConverter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPCMAudioConverter.h; path = SmartDeviceLink/SDLPCMAudioConverter.h; sourceTree = ""; }; + 8C3E14078B0F9E5376F9494B8D3CA4C7 /* SDLRegisterAppInterfaceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRegisterAppInterfaceResponse.m; path = SmartDeviceLink/SDLRegisterAppInterfaceResponse.m; sourceTree = ""; }; + 8C3E1DA75336E5B7703B366F52EB61E9 /* SDLRemoteControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRemoteControlCapabilities.m; path = SmartDeviceLink/SDLRemoteControlCapabilities.m; sourceTree = ""; }; + 8C8B7EAEF425B5B3F0375A9301A599C4 /* SDLConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLConfiguration.m; path = SmartDeviceLink/SDLConfiguration.m; sourceTree = ""; }; + 8D1D89E21C967BEB9B2C7C143BF7A6A4 /* SDLGenericResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGenericResponse.m; path = SmartDeviceLink/SDLGenericResponse.m; sourceTree = ""; }; + 8DC2041DC5B9A5327C3B94AB4B3B41E6 /* SDLTemplateConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemplateConfiguration.h; path = SmartDeviceLink/SDLTemplateConfiguration.h; sourceTree = ""; }; + 8DCEF38864BBC13A94861FE01FD6837C /* SDLWeatherServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherServiceManifest.m; path = SmartDeviceLink/SDLWeatherServiceManifest.m; sourceTree = ""; }; + 8DE402844A0376A05C991CFC47EF599E /* SDLSupportedSeat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSupportedSeat.h; path = SmartDeviceLink/SDLSupportedSeat.h; sourceTree = ""; }; + 8E1C9328B451F98B0315DBA9202D5241 /* SDLCacheFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCacheFileManager.m; path = SmartDeviceLink/SDLCacheFileManager.m; sourceTree = ""; }; + 8E2C9383A7DCAF213C875854C59E3043 /* SDLBodyInformation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBodyInformation.m; path = SmartDeviceLink/SDLBodyInformation.m; sourceTree = ""; }; + 8E55EFB9D3BAD62918F64D3B710B38F8 /* BiSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BiSON-prefix.pch"; sourceTree = ""; }; + 8EF8FC180D4BBA0EC08C5AEB71F88B60 /* SDLChangeRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChangeRegistration.m; path = SmartDeviceLink/SDLChangeRegistration.m; sourceTree = ""; }; + 8FA1E34ACCBDEF2099EC4469F2405BBB /* SDLConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLConfiguration.h; path = SmartDeviceLink/SDLConfiguration.h; sourceTree = ""; }; + 90137F76EDA22309EDDAEF4418590198 /* SDLMetadataType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMetadataType.h; path = SmartDeviceLink/SDLMetadataType.h; sourceTree = ""; }; + 9041DBA4C0CB716742630EA1FC2D72B7 /* SDLKeypressMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeypressMode.h; path = SmartDeviceLink/SDLKeypressMode.h; sourceTree = ""; }; + 909B5FA1FF8FFF76425CED5E51AF212F /* SDLIAPSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPSession.m; path = SmartDeviceLink/SDLIAPSession.m; sourceTree = ""; }; + 90DBBF1589F80689A14CB59C1644BEE7 /* SDLFunctionID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFunctionID.h; path = SmartDeviceLink/SDLFunctionID.h; sourceTree = ""; }; + 91BF1416AB652B4C37A9DEB376B5AEE0 /* SDLDisplayMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayMode.m; path = SmartDeviceLink/SDLDisplayMode.m; sourceTree = ""; }; + 9232A35C7990DF5C5A02370607D23D1B /* SDLElectronicParkBrakeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLElectronicParkBrakeStatus.m; path = SmartDeviceLink/SDLElectronicParkBrakeStatus.m; sourceTree = ""; }; + 9238647073F63757659A703F1665A4D8 /* SDLVehicleDataActiveStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataActiveStatus.h; path = SmartDeviceLink/SDLVehicleDataActiveStatus.h; sourceTree = ""; }; + 9249C3F27F0E10C1E2F52FF5AB75D618 /* SDLStreamingVideoLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingVideoLifecycleManager.h; path = SmartDeviceLink/SDLStreamingVideoLifecycleManager.h; sourceTree = ""; }; + 927F104C5BC3088472101359E0E7B4FE /* SDLUploadFileOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUploadFileOperation.m; path = SmartDeviceLink/SDLUploadFileOperation.m; sourceTree = ""; }; + 92ACAA8B4D0D63E63F39B9F53DEFD855 /* SDLCarWindowViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarWindowViewController.h; path = SmartDeviceLink/SDLCarWindowViewController.h; sourceTree = ""; }; + 92CF01B1E30A78C156C0BFFA57CEAD88 /* SDLHMIPermissions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMIPermissions.m; path = SmartDeviceLink/SDLHMIPermissions.m; sourceTree = ""; }; + 92FB143CC43A57BDCD09A5180EFC7A56 /* SDLStationIDNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStationIDNumber.h; path = SmartDeviceLink/SDLStationIDNumber.h; sourceTree = ""; }; + 9303C2006A43927A3DDDA863577D7E24 /* SDLV2ProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV2ProtocolHeader.h; path = SmartDeviceLink/SDLV2ProtocolHeader.h; sourceTree = ""; }; + 9304883AC1BF7D236BA9C5D9EF93A4AD /* SDLRectangle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRectangle.m; path = SmartDeviceLink/SDLRectangle.m; sourceTree = ""; }; + 9356A9B7DF203B1E599FF67CDB2AB2F4 /* SDLMaintenanceModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMaintenanceModeStatus.m; path = SmartDeviceLink/SDLMaintenanceModeStatus.m; sourceTree = ""; }; + 93667B5FF68BE37BC728FB920DD912EA /* SDLVehicleDataResultCode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataResultCode.m; path = SmartDeviceLink/SDLVehicleDataResultCode.m; sourceTree = ""; }; + 9377AFD1675D463C7129EA86B5DB2AFC /* SDLProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessage.m; path = SmartDeviceLink/SDLProtocolMessage.m; sourceTree = ""; }; + 93B36FDBAD2C44E813F8584D034A63CF /* SDLGetDTCsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetDTCsResponse.m; path = SmartDeviceLink/SDLGetDTCsResponse.m; sourceTree = ""; }; + 93CA15BB34449EB60AC4245F6669B10C /* SDLButtonCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonCapabilities.h; path = SmartDeviceLink/SDLButtonCapabilities.h; sourceTree = ""; }; + 944E4D0EB351D4FF821AC8C6E8A6599F /* SDLCreateWindowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateWindowResponse.h; path = SmartDeviceLink/SDLCreateWindowResponse.h; sourceTree = ""; }; + 9468B7F69A0644FCBBCDBB810795C4B3 /* SDLRPCNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCNotification.m; path = SmartDeviceLink/SDLRPCNotification.m; sourceTree = ""; }; + 94AB62DC444A4E92E8E71099CDED36CE /* SDLCarWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarWindow.m; path = SmartDeviceLink/SDLCarWindow.m; sourceTree = ""; }; + 9502CA77DD202D38FE595ACBF6558DDD /* SDLRPCFunctionNames.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCFunctionNames.h; path = SmartDeviceLink/SDLRPCFunctionNames.h; sourceTree = ""; }; + 950F3C54DD8E214F44E5D973A18C2FC3 /* SDLGetWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetWayPoints.h; path = SmartDeviceLink/SDLGetWayPoints.h; sourceTree = ""; }; + 950FAD2DDF31FA20CDC674CA6C66F3C6 /* SDLShowAppMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowAppMenuResponse.h; path = SmartDeviceLink/SDLShowAppMenuResponse.h; sourceTree = ""; }; + 95168703431BF300E73567EE607D8A0C /* SDLSeatLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatLocation.m; path = SmartDeviceLink/SDLSeatLocation.m; sourceTree = ""; }; + 956785ADB6C5C07C0C429DA47DA59E4E /* bson_object.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = bson_object.c; path = src/bson_object.c; sourceTree = ""; }; + 9570AA3F2F4CC1AE3DEC19E631620F29 /* SDLAudioFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioFile.h; path = SmartDeviceLink/SDLAudioFile.h; sourceTree = ""; }; + 95B6A24926E184BDA559B418D4A20232 /* SDLStreamingMediaManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManager.h; path = SmartDeviceLink/SDLStreamingMediaManager.h; sourceTree = ""; }; + 95F535D382BB81682B987861B7CB0DDC /* SDLStreamingVideoScaleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingVideoScaleManager.h; path = SmartDeviceLink/SDLStreamingVideoScaleManager.h; sourceTree = ""; }; + 95FA5938BB91EC86606D7D35B36D1799 /* SDLLogFileModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFileModule.h; path = SmartDeviceLink/SDLLogFileModule.h; sourceTree = ""; }; + 95FF4C52E66589C119C22DF3909390AC /* SDLPerformInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformInteraction.h; path = SmartDeviceLink/SDLPerformInteraction.h; sourceTree = ""; }; + 96983BEA7459A4232662DD0F57B29510 /* SDLReadDIDResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReadDIDResponse.m; path = SmartDeviceLink/SDLReadDIDResponse.m; sourceTree = ""; }; + 96D7A594E902D4A574B41FF1CEFB2D60 /* SDLCompassDirection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCompassDirection.m; path = SmartDeviceLink/SDLCompassDirection.m; sourceTree = ""; }; + 96FDD76CCE5AB56B5E2F2065E5AA5F04 /* SDLResponseDispatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResponseDispatcher.h; path = SmartDeviceLink/SDLResponseDispatcher.h; sourceTree = ""; }; + 9701CAEA001B151A3237DDBC5CCC06B0 /* SDLOnWayPointChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnWayPointChange.h; path = SmartDeviceLink/SDLOnWayPointChange.h; sourceTree = ""; }; + 970F63E20BB6D882EF074800A3CE6176 /* SDLButtonCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonCapabilities.m; path = SmartDeviceLink/SDLButtonCapabilities.m; sourceTree = ""; }; + 984B721B08C198B887A18CD320C0C30B /* SDLGlobals.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGlobals.h; path = SmartDeviceLink/SDLGlobals.h; sourceTree = ""; }; + 98E14E95533F49ABC0D74A2121D62620 /* SDLRadioBand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioBand.m; path = SmartDeviceLink/SDLRadioBand.m; sourceTree = ""; }; + 98FDC0A54C018DFA5E057249D1EDF737 /* SDLMyKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMyKey.m; path = SmartDeviceLink/SDLMyKey.m; sourceTree = ""; }; + 99258EE24FD66E3BA4328B7EB26FED96 /* SDLChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceSet.m; path = SmartDeviceLink/SDLChoiceSet.m; sourceTree = ""; }; + 99287642C46A058853261EE0F8FB5803 /* SDLDeleteCommandResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteCommandResponse.h; path = SmartDeviceLink/SDLDeleteCommandResponse.h; sourceTree = ""; }; + 994CECE8A7C71DE7FD91078E6AC4AF7F /* SDLBodyInformation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBodyInformation.h; path = SmartDeviceLink/SDLBodyInformation.h; sourceTree = ""; }; + 9998667EF3AD9356F74EFEBA18B71B18 /* SDLLogConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogConfiguration.m; path = SmartDeviceLink/SDLLogConfiguration.m; sourceTree = ""; }; + 9AF964C803E435C54BC6C0D5656BC75A /* SDLWindowTypeCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWindowTypeCapabilities.m; path = SmartDeviceLink/SDLWindowTypeCapabilities.m; sourceTree = ""; }; + 9B104772AA6E58A9F090818DD41BA3D7 /* SDLGetFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetFile.h; path = SmartDeviceLink/SDLGetFile.h; sourceTree = ""; }; + 9B617AF0E9B7984864BBC87BCDA8FD50 /* SDLSamplingRate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSamplingRate.m; path = SmartDeviceLink/SDLSamplingRate.m; sourceTree = ""; }; + 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 9B778D29FEEFC0DD5D2556DE02F267F8 /* SDLMsgVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMsgVersion.h; path = SmartDeviceLink/SDLMsgVersion.h; sourceTree = ""; }; + 9BD062E44BAEAC8F381D25BB2C49F775 /* SDLNavigationCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationCapability.m; path = SmartDeviceLink/SDLNavigationCapability.m; sourceTree = ""; }; + 9C1B74D20AD626E1FF7D59D1201016C8 /* SDLVideoStreamingProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingProtocol.m; path = SmartDeviceLink/SDLVideoStreamingProtocol.m; sourceTree = ""; }; + 9C3239BD5861D539F39785429EBE0EFE /* SDLPermissionItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionItem.m; path = SmartDeviceLink/SDLPermissionItem.m; sourceTree = ""; }; + 9C51B2936414DC95DE04ABA7C8408101 /* SDLTextField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextField.h; path = SmartDeviceLink/SDLTextField.h; sourceTree = ""; }; + 9C610CA798F30FD6426257E526AC02F4 /* SDLProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocol.h; path = SmartDeviceLink/SDLProtocol.h; sourceTree = ""; }; + 9C86D4CBB2B58B5DB610CFA8980934F5 /* SDLMenuParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuParams.h; path = SmartDeviceLink/SDLMenuParams.h; sourceTree = ""; }; + 9CB3708FD84DFD102864FB3A724A9689 /* SDLSystemContext.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemContext.m; path = SmartDeviceLink/SDLSystemContext.m; sourceTree = ""; }; + 9CED171DA1E775EB6E14EA2D2D5AF5D5 /* SDLEncryptionManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncryptionManagerConstants.h; path = SmartDeviceLink/SDLEncryptionManagerConstants.h; sourceTree = ""; }; + 9D07BF9A19096BDE35C54CB33E961268 /* SDLGetInteriorVehicleDataConsent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataConsent.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9DA4BCA93C02ABAD3179337438D37C21 /* SDLHMIZoneCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMIZoneCapabilities.h; path = SmartDeviceLink/SDLHMIZoneCapabilities.h; sourceTree = ""; }; + 9E2E8F901CA5F0F91FB51345F05D3027 /* SDLStartTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStartTime.h; path = SmartDeviceLink/SDLStartTime.h; sourceTree = ""; }; + 9E455C3FFF2568B4B1C81CC712A1DB06 /* SDLAudioStreamManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamManager.m; path = SmartDeviceLink/SDLAudioStreamManager.m; sourceTree = ""; }; + 9E8C49B9AEFE2B7A0D27192F5F4FE6C7 /* SDLTemperatureUnit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemperatureUnit.h; path = SmartDeviceLink/SDLTemperatureUnit.h; sourceTree = ""; }; + 9ED6CCE2CF434E4F07A3031783397721 /* SDLKeyboardEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardEvent.h; path = SmartDeviceLink/SDLKeyboardEvent.h; sourceTree = ""; }; + 9F0D8AB40C82029C65CEECC77D7D8C1A /* SDLStreamingAudioManagerType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingAudioManagerType.h; path = SmartDeviceLink/SDLStreamingAudioManagerType.h; sourceTree = ""; }; + 9FE66F7EA43B7C8883B49BF7021DBB96 /* SDLEndAudioPassThruResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEndAudioPassThruResponse.h; path = SmartDeviceLink/SDLEndAudioPassThruResponse.h; sourceTree = ""; }; + 9FFB29DF01447220453AB1CF83DD5396 /* SDLStreamingVideoScaleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingVideoScaleManager.m; path = SmartDeviceLink/SDLStreamingVideoScaleManager.m; sourceTree = ""; }; + A11273079923EC17BEF8EA166ED142FD /* SDLModuleType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleType.h; path = SmartDeviceLink/SDLModuleType.h; sourceTree = ""; }; + A19E73266D6733F4C2E8727710A11ED9 /* SDLButtonEventMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonEventMode.m; path = SmartDeviceLink/SDLButtonEventMode.m; sourceTree = ""; }; + A26A29D7E64A6FED6EAEC44F2DAB8EF8 /* SDLTCPTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTCPTransport.h; path = SmartDeviceLink/SDLTCPTransport.h; sourceTree = ""; }; + A39FC9ECBCE47531EA0F628BD8F31F5B /* SDLFileManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManagerConstants.h; path = SmartDeviceLink/SDLFileManagerConstants.h; sourceTree = ""; }; + A3F84DAD3D88A67D4CE282450BA269F8 /* SDLAudioStreamingState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamingState.h; path = SmartDeviceLink/SDLAudioStreamingState.h; sourceTree = ""; }; + A40F0AF559343F73CD03D070F06706FF /* SDLUnsubscribeWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeWayPointsResponse.m; path = SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m; sourceTree = ""; }; + A4525E374C0C6592950D6900876AA4F2 /* SDLTBTState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTBTState.m; path = SmartDeviceLink/SDLTBTState.m; sourceTree = ""; }; + A457A96BC13A557BA1810EA50BC942AC /* SDLV1ProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV1ProtocolMessage.m; path = SmartDeviceLink/SDLV1ProtocolMessage.m; sourceTree = ""; }; + A46B7480DA60280AFABEE933D1777D59 /* SDLEqualizerSettings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEqualizerSettings.h; path = SmartDeviceLink/SDLEqualizerSettings.h; sourceTree = ""; }; + A47E1D7E285C5B3399B259F741739553 /* SDLTurnSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTurnSignal.m; path = SmartDeviceLink/SDLTurnSignal.m; sourceTree = ""; }; + A4A011384B18AB35F5D5E7615AABE7C2 /* SDLSecondaryTransportManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSecondaryTransportManager.h; path = SmartDeviceLink/SDLSecondaryTransportManager.h; sourceTree = ""; }; + A4BF66140123996F41DEFF60B1C946BD /* SDLUnsubscribeWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeWayPoints.h; path = SmartDeviceLink/SDLUnsubscribeWayPoints.h; sourceTree = ""; }; + A4C87793B3C6B531E0A6541C94DAFB52 /* SDLHeadLampStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHeadLampStatus.m; path = SmartDeviceLink/SDLHeadLampStatus.m; sourceTree = ""; }; + A4D71C10FFEEDB848F3F2C093F2DC642 /* SDLCloseApplication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCloseApplication.h; path = SmartDeviceLink/SDLCloseApplication.h; sourceTree = ""; }; + A58155F4D86C1C49F4B0245936BBF3E6 /* SDLEmergencyEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEmergencyEvent.m; path = SmartDeviceLink/SDLEmergencyEvent.m; sourceTree = ""; }; + A59281B6B7A635EC71C289B5AA8FAFEC /* SDLListFiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFiles.h; path = SmartDeviceLink/SDLListFiles.h; sourceTree = ""; }; + A5DF934A09C6ECE921C963F3156E087B /* SDLPermissionFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionFilter.h; path = SmartDeviceLink/SDLPermissionFilter.h; sourceTree = ""; }; + A60D22A926D93A0D726FFF6A31239E5D /* SDLImageType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageType.h; path = SmartDeviceLink/SDLImageType.h; sourceTree = ""; }; + A61B36731BEBEFB3938CDFBFC1EF305B /* SDLSoftButtonTransitionOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonTransitionOperation.m; path = SmartDeviceLink/SDLSoftButtonTransitionOperation.m; sourceTree = ""; }; + A638ABDCA82A0FCFD9E2949D129993CD /* SDLPredefinedLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPredefinedLayout.m; path = SmartDeviceLink/SDLPredefinedLayout.m; sourceTree = ""; }; + A677CF8D17087FD37FABB05CE8384E98 /* SDLLogTargetAppleSystemLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetAppleSystemLog.m; path = SmartDeviceLink/SDLLogTargetAppleSystemLog.m; sourceTree = ""; }; + A697E2FEB8F9928973AF1D4697F0C023 /* SDLProtocolDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolDelegate.h; path = SmartDeviceLink/SDLProtocolDelegate.h; sourceTree = ""; }; + A6A3F4A1DAD219F117FF921A98B3E55B /* SDLMenuConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuConfiguration.m; path = SmartDeviceLink/SDLMenuConfiguration.m; sourceTree = ""; }; + A6B9669FEDAAA1EF5A7C9F94BED90F1E /* SDLCloudAppProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCloudAppProperties.h; path = SmartDeviceLink/SDLCloudAppProperties.h; sourceTree = ""; }; + A6FD2FA90F20F6C5140D25FA0A41EB8C /* SDLTTSChunk.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTTSChunk.m; path = SmartDeviceLink/SDLTTSChunk.m; sourceTree = ""; }; + A72EACA38EEC0588D3830851A96A2681 /* SDLLocationDetails.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLocationDetails.h; path = SmartDeviceLink/SDLLocationDetails.h; sourceTree = ""; }; + A80BF767FDD68AB1636D37FBA5E4E345 /* SDLVideoStreamingCodec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingCodec.h; path = SmartDeviceLink/SDLVideoStreamingCodec.h; sourceTree = ""; }; + A83D74392A8FBE5A5BBCC7D29249B943 /* SDLObjectWithPriority.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLObjectWithPriority.h; path = SmartDeviceLink/SDLObjectWithPriority.h; sourceTree = ""; }; + A84893E9B393129BECE4A90B2112AA3D /* SDLWindowType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWindowType.h; path = SmartDeviceLink/SDLWindowType.h; sourceTree = ""; }; + A877633FFF7377994C92687A4E85E718 /* SDLWarningLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWarningLightStatus.h; path = SmartDeviceLink/SDLWarningLightStatus.h; sourceTree = ""; }; + A8A312C4D8E76C9BC500924B32C0A57F /* SDLDimension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDimension.h; path = SmartDeviceLink/SDLDimension.h; sourceTree = ""; }; + A8D2591CD0E614AB45EEE6E819BC5715 /* SDLPhoneCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPhoneCapability.m; path = SmartDeviceLink/SDLPhoneCapability.m; sourceTree = ""; }; + A8F1FC7563B35841A0B1D696269FA3AB /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRegisterSecondaryTransportNak.m; path = SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m; sourceTree = ""; }; + A8F74D221FAE93D785BB127D2DBA24CF /* SDLVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVersion.m; path = SmartDeviceLink/SDLVersion.m; sourceTree = ""; }; + A8F9E32E9728CC43CF973F445B0435EF /* SDLPresentKeyboardOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresentKeyboardOperation.m; path = SmartDeviceLink/SDLPresentKeyboardOperation.m; sourceTree = ""; }; + A99EA0FB7F0C4D0EB328913A51F92615 /* SDLHybridAppPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHybridAppPreference.h; path = SmartDeviceLink/SDLHybridAppPreference.h; sourceTree = ""; }; + A9BC3AA38D28D6FBC7BBBEB0A7D0B622 /* SDLMediaServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaServiceData.h; path = SmartDeviceLink/SDLMediaServiceData.h; sourceTree = ""; }; + A9C1A17D21E9FA2E45F72C2B32CCE8F7 /* SDLAlertResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertResponse.m; path = SmartDeviceLink/SDLAlertResponse.m; sourceTree = ""; }; + A9E5A8AA97EA88C0C5010827AA38639E /* SDLGPSData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGPSData.m; path = SmartDeviceLink/SDLGPSData.m; sourceTree = ""; }; + AA9CE864FB36C4F19622600C8C289B7C /* SDLTemplateConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemplateConfiguration.m; path = SmartDeviceLink/SDLTemplateConfiguration.m; sourceTree = ""; }; + AAA96D67B0E11DC1C39AA70AED46098E /* SDLRadioBand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioBand.h; path = SmartDeviceLink/SDLRadioBand.h; sourceTree = ""; }; + AACAAE80DEC9BA4877F4673B9A256C7A /* SDLDIDResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDIDResult.h; path = SmartDeviceLink/SDLDIDResult.h; sourceTree = ""; }; + AAE83D19F9F6CCFDFBE2E4176612A66A /* SDLImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImage.m; path = SmartDeviceLink/SDLImage.m; sourceTree = ""; }; + AB4899E896AC7243959C641E40D9EB6C /* SDLPowerModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPowerModeStatus.m; path = SmartDeviceLink/SDLPowerModeStatus.m; sourceTree = ""; }; + AB7CED9964DD3F087B0208B33F08C202 /* SDLAudioType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioType.m; path = SmartDeviceLink/SDLAudioType.m; sourceTree = ""; }; + AB9A647494B575CFA5ADA8C3FEC415DF /* SDLSystemCapabilityType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityType.m; path = SmartDeviceLink/SDLSystemCapabilityType.m; sourceTree = ""; }; + AC622C32763FF5BF0D5E745522571CB6 /* SDLVideoEncoderDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoEncoderDelegate.h; path = SmartDeviceLink/SDLVideoEncoderDelegate.h; sourceTree = ""; }; + AD2F8C7E3E2CA2E54A878E1804C6819B /* SDLButtonName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonName.m; path = SmartDeviceLink/SDLButtonName.m; sourceTree = ""; }; + AD92E87BD9A9816EC4D59E0AD66C1E62 /* SDLSubscribeVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeVehicleDataResponse.h; path = SmartDeviceLink/SDLSubscribeVehicleDataResponse.h; sourceTree = ""; }; + ADD3A5E2AF56D8C4B191087DCC79274E /* SmartDeviceLink.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartDeviceLink.debug.xcconfig; sourceTree = ""; }; + ADECF6F036198C3154612FAAE7A54AA5 /* SDLSeatControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatControlData.h; path = SmartDeviceLink/SDLSeatControlData.h; sourceTree = ""; }; + AE2BAC066A795F9A2BC704A131DD796B /* SDLEndAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEndAudioPassThru.h; path = SmartDeviceLink/SDLEndAudioPassThru.h; sourceTree = ""; }; + AF19BE6750BCA76EDC3A8FC9E6C92344 /* SDLLogFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFilter.m; path = SmartDeviceLink/SDLLogFilter.m; sourceTree = ""; }; + AF28A68579C98F539C039EA29CA59D4B /* SDLAudioStreamingState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamingState.m; path = SmartDeviceLink/SDLAudioStreamingState.m; sourceTree = ""; }; + AF5B172A3AB107D165BE0B845E9FFA33 /* SDLRPCNotificationNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCNotificationNotification.m; path = SmartDeviceLink/SDLRPCNotificationNotification.m; sourceTree = ""; }; + AF8586C62AFA2F4833F9F198CA2236FA /* SDLDefrostZone.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDefrostZone.h; path = SmartDeviceLink/SDLDefrostZone.h; sourceTree = ""; }; + AFF3E79663035A0B5E589A3D5DF2051B /* SDLControlFramePayloadNak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadNak.m; path = SmartDeviceLink/SDLControlFramePayloadNak.m; sourceTree = ""; }; + AFF9F053405AFE53208F5AF054964C4B /* SDLGetVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetVehicleDataResponse.m; path = SmartDeviceLink/SDLGetVehicleDataResponse.m; sourceTree = ""; }; + B002378124E8B08D2C433B0CBAE53FA5 /* SDLGetWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetWayPointsResponse.m; path = SmartDeviceLink/SDLGetWayPointsResponse.m; sourceTree = ""; }; + B04D130FB2F02F323455BD16B20ACE8B /* NSBundle+SDLBundle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+SDLBundle.m"; path = "SmartDeviceLink/NSBundle+SDLBundle.m"; sourceTree = ""; }; + B051F7FF13D4892208EA8EDC154E67C2 /* SDLLogFileModuleMap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFileModuleMap.h; path = SmartDeviceLink/SDLLogFileModuleMap.h; sourceTree = ""; }; + B0D6188E04884E87F16C5D09E4F25B7A /* SDLGetAppServiceDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetAppServiceDataResponse.h; path = SmartDeviceLink/SDLGetAppServiceDataResponse.h; sourceTree = ""; }; + B0DCC93C381CC643F45864405E55E958 /* SDLCarWindowViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarWindowViewController.m; path = SmartDeviceLink/SDLCarWindowViewController.m; sourceTree = ""; }; + B11185632289362C4E685A33488343CF /* SDLRAWH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRAWH264Packetizer.h; path = SmartDeviceLink/SDLRAWH264Packetizer.h; sourceTree = ""; }; + B119F703EFD09662F12A91AC7015A81C /* SDLDimension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDimension.m; path = SmartDeviceLink/SDLDimension.m; sourceTree = ""; }; + B123B8245FE7984988B165A780AED107 /* SDLOnButtonEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnButtonEvent.m; path = SmartDeviceLink/SDLOnButtonEvent.m; sourceTree = ""; }; + B1C140D9FFA2E9FCFD8A401D69499C73 /* SDLTouchManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchManagerDelegate.h; path = SmartDeviceLink/SDLTouchManagerDelegate.h; sourceTree = ""; }; + B1CFEA53176A71E567B91FF0E97CB278 /* SDLPowerModeQualificationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPowerModeQualificationStatus.h; path = SmartDeviceLink/SDLPowerModeQualificationStatus.h; sourceTree = ""; }; + B1F0D12088396E98ECB82370C6025F0B /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = en.lproj/SDLLockScreen.strings; sourceTree = ""; }; + B2564FC1D10877AF9A91ABEB9100B92C /* SDLMenuManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuManagerConstants.h; path = SmartDeviceLink/SDLMenuManagerConstants.h; sourceTree = ""; }; + B274AD52B0FF57921A0C62CA06B15804 /* SDLPrioritizedObjectCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrioritizedObjectCollection.m; path = SmartDeviceLink/SDLPrioritizedObjectCollection.m; sourceTree = ""; }; + B29A443AF2301B12BD576CFDE7A4092C /* SDLDialNumberResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDialNumberResponse.m; path = SmartDeviceLink/SDLDialNumberResponse.m; sourceTree = ""; }; + B2C56DF1F1818D8E1FD488B352881DD0 /* SDLClusterModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClusterModeStatus.m; path = SmartDeviceLink/SDLClusterModeStatus.m; sourceTree = ""; }; + B3717C92695FDC869375458442425C25 /* SDLGetCloudAppPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetCloudAppPropertiesResponse.m; path = SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m; sourceTree = ""; }; + B3B2790352EE6BE9ABFDD04D31188B31 /* SDLCharacterSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCharacterSet.h; path = SmartDeviceLink/SDLCharacterSet.h; sourceTree = ""; }; + B408FA5A72D8BD3C40461CF55C8CC884 /* SDLLightControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightControlData.m; path = SmartDeviceLink/SDLLightControlData.m; sourceTree = ""; }; + B41E3BF75DB009256653DF32F1496FE7 /* SDLMassageCushion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageCushion.h; path = SmartDeviceLink/SDLMassageCushion.h; sourceTree = ""; }; + B43FBF384A4067786E679B690EA2BDCE /* SDLSetCloudAppProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetCloudAppProperties.h; path = SmartDeviceLink/SDLSetCloudAppProperties.h; sourceTree = ""; }; + B456CA5D8FC2BB67712D9BE46D2EA781 /* SDLPerformAppServiceInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAppServiceInteractionResponse.h; path = SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h; sourceTree = ""; }; + B476612D209040FF1C5E1D9D7D7DC068 /* SDLVoiceCommandManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandManager.m; path = SmartDeviceLink/SDLVoiceCommandManager.m; sourceTree = ""; }; + B47755B35347AB14C2570D1F7A7BC934 /* SDLMenuConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuConfiguration.h; path = SmartDeviceLink/SDLMenuConfiguration.h; sourceTree = ""; }; + B53DDEC25BD2CEEE368F8B2099D4269E /* emhashmap.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = emhashmap.c; path = src/emhashmap/emhashmap.c; sourceTree = ""; }; + B552BC411A63CECEDC496B62D1B4B8FE /* SDLSubscribeButtonResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonResponse.h; path = SmartDeviceLink/SDLSubscribeButtonResponse.h; sourceTree = ""; }; + B5ACECDC2EB38CF822CD5E4F6482A49A /* CGPoint_Util.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CGPoint_Util.m; path = SmartDeviceLink/CGPoint_Util.m; sourceTree = ""; }; + B5B59F14B5A937BCC17AE1731AC44B43 /* SDLShow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShow.h; path = SmartDeviceLink/SDLShow.h; sourceTree = ""; }; + B5BDE0E2D5DE878BA2561C438678E7EA /* SDLBitsPerSample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBitsPerSample.h; path = SmartDeviceLink/SDLBitsPerSample.h; sourceTree = ""; }; + B5D1F23B2E71DAA1B5D0B59605A90913 /* SDLAirbagStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAirbagStatus.m; path = SmartDeviceLink/SDLAirbagStatus.m; sourceTree = ""; }; + B63DE7845F5EA943E8C3BC9F2728CFB8 /* SDLSetMediaClockTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetMediaClockTimer.m; path = SmartDeviceLink/SDLSetMediaClockTimer.m; sourceTree = ""; }; + B64A1F3DB42D6EF48AA200C070D9974C /* SDLLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleManager.m; path = SmartDeviceLink/SDLLifecycleManager.m; sourceTree = ""; }; + B658D9594E81D91F5F5FF21E8DD5044A /* Pods_MobileWeather.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MobileWeather.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B663F05251D2CEC64244343870CC61B4 /* SDLCreateInteractionChoiceSetResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateInteractionChoiceSetResponse.h; path = SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h; sourceTree = ""; }; + B66ACED6C9FBD518D39C8CDB3849E983 /* SDLSISData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSISData.h; path = SmartDeviceLink/SDLSISData.h; sourceTree = ""; }; + B6A8B110CC3F7818FE4E9FBF59DA7831 /* SDLMenuLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuLayout.m; path = SmartDeviceLink/SDLMenuLayout.m; sourceTree = ""; }; + B6F87FE59A859BA349CCDEFB67E12842 /* SDLPerformAppServiceInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAppServiceInteraction.m; path = SmartDeviceLink/SDLPerformAppServiceInteraction.m; sourceTree = ""; }; + B70A1025E2176483677FE18DB926E317 /* SDLUnpublishAppService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnpublishAppService.m; path = SmartDeviceLink/SDLUnpublishAppService.m; sourceTree = ""; }; + B7462198B3907DB7D73BC29114E41EAA /* TestSubscribeButtonObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TestSubscribeButtonObserver.h; path = SmartDeviceLink/TestSubscribeButtonObserver.h; sourceTree = ""; }; + B74B5802B681CDB3E7A210BB0EEEB7D0 /* SDLV1ProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV1ProtocolMessage.h; path = SmartDeviceLink/SDLV1ProtocolMessage.h; sourceTree = ""; }; + B7506383773C5D6EDE24916C30190446 /* SDLSetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetInteriorVehicleDataResponse.m; path = SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m; sourceTree = ""; }; + B753AC886E9C4581F99D019C2AE558E5 /* SDLOnRCStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnRCStatus.m; path = SmartDeviceLink/SDLOnRCStatus.m; sourceTree = ""; }; + B777CF456AFE62300FFF21779B554D81 /* SDLUnpublishAppServiceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnpublishAppServiceResponse.m; path = SmartDeviceLink/SDLUnpublishAppServiceResponse.m; sourceTree = ""; }; + B783431D6B033263CF2D12A61575D27F /* SDLDeleteSubMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteSubMenuResponse.h; path = SmartDeviceLink/SDLDeleteSubMenuResponse.h; sourceTree = ""; }; + B7A802ACC8F876FF3416830E0C985866 /* SDLReleaseInteriorVehicleDataModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReleaseInteriorVehicleDataModule.h; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h; sourceTree = ""; }; + B837E51434913D84E58B09A8B04A7E84 /* SDLSendHapticDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendHapticDataResponse.h; path = SmartDeviceLink/SDLSendHapticDataResponse.h; sourceTree = ""; }; + B8C8AC93E9BA7751B05993A0779C952D /* SDLDynamicMenuUpdateRunScore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDynamicMenuUpdateRunScore.m; path = SmartDeviceLink/SDLDynamicMenuUpdateRunScore.m; sourceTree = ""; }; + B9216714A4B6D6F70DA8E53B3F9320CA /* SDLChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSet.h; path = SmartDeviceLink/SDLChoiceSet.h; sourceTree = ""; }; + B965BA54B73AAB7DD28ADEF78BD168DA /* SDLHMICapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMICapabilities.h; path = SmartDeviceLink/SDLHMICapabilities.h; sourceTree = ""; }; + B96A1767D28449410C3C9A92255D7FA9 /* SDLV2ProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV2ProtocolMessage.m; path = SmartDeviceLink/SDLV2ProtocolMessage.m; sourceTree = ""; }; + B9F98F256A89963EAD420D333EB31F37 /* SDLPermissionElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionElement.m; path = SmartDeviceLink/SDLPermissionElement.m; sourceTree = ""; }; + BA157A4B51D5529A4050627BB1C06625 /* NSMapTable+Subscripting.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMapTable+Subscripting.h"; path = "SmartDeviceLink/NSMapTable+Subscripting.h"; sourceTree = ""; }; + BA1EE36D54B3E51448786809008AA6D3 /* SDLOnVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnVehicleData.m; path = SmartDeviceLink/SDLOnVehicleData.m; sourceTree = ""; }; + BA6551D7C8879D8E91C30E3DB455E34C /* SDLStartTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStartTime.m; path = SmartDeviceLink/SDLStartTime.m; sourceTree = ""; }; + BA836CEA6A1C9872BEEDA51C34FBD2BE /* SDLSendHapticDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendHapticDataResponse.m; path = SmartDeviceLink/SDLSendHapticDataResponse.m; sourceTree = ""; }; + BA96306DAEE794F0C9FC374D0556DB27 /* SDLVehicleDataResultCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataResultCode.h; path = SmartDeviceLink/SDLVehicleDataResultCode.h; sourceTree = ""; }; + BB04F62BFFD1CB792E34526F173104FF /* SDLFileManagerConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManagerConfiguration.h; path = SmartDeviceLink/SDLFileManagerConfiguration.h; sourceTree = ""; }; + BB097D4C8A058214236F5DA62E2D55D0 /* SDLScrollableMessageResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScrollableMessageResponse.h; path = SmartDeviceLink/SDLScrollableMessageResponse.h; sourceTree = ""; }; + BB4BC0AA3756089C2F90667540A4880D /* SDLEmergencyEventType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEmergencyEventType.m; path = SmartDeviceLink/SDLEmergencyEventType.m; sourceTree = ""; }; + BBBA34781B3503DDA95B0CAE4B42E438 /* SDLAudioControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioControlCapabilities.m; path = SmartDeviceLink/SDLAudioControlCapabilities.m; sourceTree = ""; }; + BBD4EDFBF8EE19B3FBA0F3448A7B54B1 /* SDLV2ProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV2ProtocolMessage.h; path = SmartDeviceLink/SDLV2ProtocolMessage.h; sourceTree = ""; }; + BC088F50F39FABB3A2835578295D6FCE /* SDLCheckChoiceVROptionalOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCheckChoiceVROptionalOperation.m; path = SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m; sourceTree = ""; }; + BC5A329C0A76812EF1D11777FDB665A8 /* SDLPrimaryAudioSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrimaryAudioSource.h; path = SmartDeviceLink/SDLPrimaryAudioSource.h; sourceTree = ""; }; + BD026A8DACC64BF05FE396E827AA092F /* SDLDriverDistractionState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDriverDistractionState.h; path = SmartDeviceLink/SDLDriverDistractionState.h; sourceTree = ""; }; + BDFE84853600B6F6F43B3F05550C2D91 /* SDLLockScreenStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenStatus.m; path = SmartDeviceLink/SDLLockScreenStatus.m; sourceTree = ""; }; + BE4CA9FAD52700FBCAD76C76239758B3 /* SDLSetDisplayLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetDisplayLayout.m; path = SmartDeviceLink/SDLSetDisplayLayout.m; sourceTree = ""; }; + BE76E8F8542A250DA8DF7178F62984AE /* SDLPermissionFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionFilter.m; path = SmartDeviceLink/SDLPermissionFilter.m; sourceTree = ""; }; + BE78691CB41A6B40E2140633BB7AA4A7 /* SDLOnPermissionsChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnPermissionsChange.h; path = SmartDeviceLink/SDLOnPermissionsChange.h; sourceTree = ""; }; + BEB3EB4F638B59511646F2FAB436EA28 /* SDLLayoutMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLayoutMode.m; path = SmartDeviceLink/SDLLayoutMode.m; sourceTree = ""; }; + BF23B355A2ED03E01AACD1364CDE9011 /* SDLUnsubscribeVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeVehicleDataResponse.h; path = SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h; sourceTree = ""; }; + BF3B79CB79DA4BF9796E3C06A34739EF /* BiSON.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BiSON.release.xcconfig; sourceTree = ""; }; + BF47CEA7D6AB8CCC5CC7B1A41D6BD3B0 /* SDLTouchEventCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchEventCapabilities.m; path = SmartDeviceLink/SDLTouchEventCapabilities.m; sourceTree = ""; }; + BF5EACB795A74BEECD2B2D57A5D74C00 /* SDLWayPointType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWayPointType.h; path = SmartDeviceLink/SDLWayPointType.h; sourceTree = ""; }; + BF737E9FCE10383D22E0AC258DC505F8 /* SDLRDSData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRDSData.m; path = SmartDeviceLink/SDLRDSData.m; sourceTree = ""; }; + BF781992E0488A0904062D8D4D4B7369 /* SDLGetSystemCapabilityResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetSystemCapabilityResponse.m; path = SmartDeviceLink/SDLGetSystemCapabilityResponse.m; sourceTree = ""; }; + BF812F295C7BC99D0E7260C44A30FA1A /* SDLDistanceUnit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDistanceUnit.h; path = SmartDeviceLink/SDLDistanceUnit.h; sourceTree = ""; }; + BF926AC06548F171C59AEE3EFD6254AA /* SDLPerformAudioPassThruResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAudioPassThruResponse.h; path = SmartDeviceLink/SDLPerformAudioPassThruResponse.h; sourceTree = ""; }; + C05B25FD08F4EDE81BBF8E97080430FB /* SDLTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTimer.h; path = SmartDeviceLink/SDLTimer.h; sourceTree = ""; }; + C0739DA52D74882686FE054F273446BD /* SDLOnSystemRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSystemRequest.m; path = SmartDeviceLink/SDLOnSystemRequest.m; sourceTree = ""; }; + C17FA75188543D16F15C11D353AD7B2D /* SDLRGBColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRGBColor.m; path = SmartDeviceLink/SDLRGBColor.m; sourceTree = ""; }; + C185C026B8EEB00D5EDD482420CEB1C7 /* SDLWeatherData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherData.h; path = SmartDeviceLink/SDLWeatherData.h; sourceTree = ""; }; + C18816A43577E38FE8908AD8B8B72321 /* SDLAudioPassThruCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioPassThruCapabilities.m; path = SmartDeviceLink/SDLAudioPassThruCapabilities.m; sourceTree = ""; }; + C197364227C0998A9025317EAD699894 /* SmartDeviceLink.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SmartDeviceLink.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + C1B0FF7E975829A08686F5A95439E6AF /* SDLRegisterAppInterface.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRegisterAppInterface.m; path = SmartDeviceLink/SDLRegisterAppInterface.m; sourceTree = ""; }; + C1B55A5D6E1EA252835733A44DF307EA /* SDLPerformAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAudioPassThru.m; path = SmartDeviceLink/SDLPerformAudioPassThru.m; sourceTree = ""; }; + C1B6C3AA7551CF9A652411C8E74DBF34 /* SDLSetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetInteriorVehicleDataResponse.h; path = SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h; sourceTree = ""; }; + C1C6FBB24C1BC5CA5A7F2B3C4FFED418 /* SDLTurn.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTurn.m; path = SmartDeviceLink/SDLTurn.m; sourceTree = ""; }; + C1F3C424DD2CB129EBF8CFDEE9E339E1 /* SDLTemplateColorScheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemplateColorScheme.h; path = SmartDeviceLink/SDLTemplateColorScheme.h; sourceTree = ""; }; + C1F9C5416BB8D0ED9335E1A889B51A93 /* SDLCloseApplicationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCloseApplicationResponse.m; path = SmartDeviceLink/SDLCloseApplicationResponse.m; sourceTree = ""; }; + C2325615A6C0BEAE35B68E675087D313 /* SDLRPCRequestNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCRequestNotification.m; path = SmartDeviceLink/SDLRPCRequestNotification.m; sourceTree = ""; }; + C23DBC473A201419B768CC403C329AA9 /* SDLReleaseInteriorVehicleDataModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReleaseInteriorVehicleDataModule.m; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m; sourceTree = ""; }; + C2465E4A570C1A14AA2E12DA0AE6B8C7 /* SDLCarModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarModeStatus.h; path = SmartDeviceLink/SDLCarModeStatus.h; sourceTree = ""; }; + C24AADEEDA015C43C563DB8822396C0A /* SDLDeleteInteractionChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteInteractionChoiceSet.h; path = SmartDeviceLink/SDLDeleteInteractionChoiceSet.h; sourceTree = ""; }; + C26DB840FED234F39D27C9C871BAA550 /* SDLOnButtonEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnButtonEvent.h; path = SmartDeviceLink/SDLOnButtonEvent.h; sourceTree = ""; }; + C2984A671B556FF5F5714ABB2F86EE8A /* EAAccessoryManager+SDLProtocols.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EAAccessoryManager+SDLProtocols.m"; path = "SmartDeviceLink/EAAccessoryManager+SDLProtocols.m"; sourceTree = ""; }; + C2B0CA84D3B9C68D496FD66419D566C3 /* SDLUpdateTurnListResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateTurnListResponse.h; path = SmartDeviceLink/SDLUpdateTurnListResponse.h; sourceTree = ""; }; + C2FA6304D4FBBE0B4EAE346B56077504 /* SDLOnCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnCommand.h; path = SmartDeviceLink/SDLOnCommand.h; sourceTree = ""; }; + C30E238F7AB23166E9F59B321FF1EDFE /* SDLTemperature.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemperature.m; path = SmartDeviceLink/SDLTemperature.m; sourceTree = ""; }; + C336638C51C89E3892AB1E786D8D97A6 /* SDLRPCMessageType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCMessageType.h; path = SmartDeviceLink/SDLRPCMessageType.h; sourceTree = ""; }; + C3BEF3FC0B61392A43041463481D99DC /* SDLLogFileModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFileModule.m; path = SmartDeviceLink/SDLLogFileModule.m; sourceTree = ""; }; + C3BF3454AF3C68B1EDF2469AF1478D8F /* SDLUnpublishAppServiceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnpublishAppServiceResponse.h; path = SmartDeviceLink/SDLUnpublishAppServiceResponse.h; sourceTree = ""; }; + C3EBAD2DFAF1E748D9CE7A71A8F7ADD2 /* SDLArtwork.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLArtwork.m; path = SmartDeviceLink/SDLArtwork.m; sourceTree = ""; }; + C3EBDE4679B3284A0BCAA44A5D195BF4 /* SDLVehicleType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleType.m; path = SmartDeviceLink/SDLVehicleType.m; sourceTree = ""; }; + C3F129DBFD0A6763197FE363BF2CE288 /* SDLGetCloudAppProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetCloudAppProperties.m; path = SmartDeviceLink/SDLGetCloudAppProperties.m; sourceTree = ""; }; + C4251A6C0C3D88AFE2E87AE0572B7B32 /* SDLStreamingMediaManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaManager.m; path = SmartDeviceLink/SDLStreamingMediaManager.m; sourceTree = ""; }; + C42BD5083909F2F176B3762128DD9B06 /* SDLAddCommandResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddCommandResponse.h; path = SmartDeviceLink/SDLAddCommandResponse.h; sourceTree = ""; }; + C4A900A3C04D81E8AFE979A9CD841CF8 /* SDLTouchEventCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchEventCapabilities.h; path = SmartDeviceLink/SDLTouchEventCapabilities.h; sourceTree = ""; }; + C4AC1439B1DAC65A9F876F7CBE5B8E3F /* SDLSetMediaClockTimerResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetMediaClockTimerResponse.h; path = SmartDeviceLink/SDLSetMediaClockTimerResponse.h; sourceTree = ""; }; + C4F2955E72C9BC6322E9F39A5C0BCCE7 /* SDLRPCResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCResponse.h; path = SmartDeviceLink/SDLRPCResponse.h; sourceTree = ""; }; + C55134DFAC0BA632F4739F88E9C22F64 /* SDLShowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowResponse.h; path = SmartDeviceLink/SDLShowResponse.h; sourceTree = ""; }; + C56E766AC9995A99617E24C80F827D43 /* SDLControlFramePayloadConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadConstants.h; path = SmartDeviceLink/SDLControlFramePayloadConstants.h; sourceTree = ""; }; + C578DE7BA9E0FFC539C979EB88551881 /* SDLDriverDistractionState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDriverDistractionState.m; path = SmartDeviceLink/SDLDriverDistractionState.m; sourceTree = ""; }; + C588AF22E8C9EBAD69A20BE6D4709DD3 /* SDLHMISettingsControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMISettingsControlData.m; path = SmartDeviceLink/SDLHMISettingsControlData.m; sourceTree = ""; }; + C64A1B5B79B529141EBEF99FD0560328 /* BiSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BiSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C6544B04071C10C4B60339851B191DEB /* SDLProtocolConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolConstants.m; path = SmartDeviceLink/SDLProtocolConstants.m; sourceTree = ""; }; + C6724681B057A0BC81FDCBB5C63008EA /* SDLVoiceCommandManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommandManager.h; path = SmartDeviceLink/SDLVoiceCommandManager.h; sourceTree = ""; }; + C6E24BC1F0E1A7E4BCD68AF3379A7B00 /* SDLIAPTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPTransport.h; path = SmartDeviceLink/SDLIAPTransport.h; sourceTree = ""; }; + C70B2859CDC07782CF755E851575239E /* SDLDeviceInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceInfo.h; path = SmartDeviceLink/SDLDeviceInfo.h; sourceTree = ""; }; + C754499B66CE148E693BB1FF1F468E2A /* SDLSyncPDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncPDataResponse.h; path = SmartDeviceLink/SDLSyncPDataResponse.h; sourceTree = ""; }; + C78E389C985303221ECDC5D18E6DFD51 /* SDLPutFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPutFile.h; path = SmartDeviceLink/SDLPutFile.h; sourceTree = ""; }; + C793CE4C5804B98CF64AF6F63FDCFD33 /* SDLLightControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightControlData.h; path = SmartDeviceLink/SDLLightControlData.h; sourceTree = ""; }; + C8C16DD6E47A4B9FA795780317963CB0 /* SDLDeleteFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFileResponse.h; path = SmartDeviceLink/SDLDeleteFileResponse.h; sourceTree = ""; }; + C9122F060BC11803A66A7401A0F946FD /* SDLPresetBankCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresetBankCapabilities.m; path = SmartDeviceLink/SDLPresetBankCapabilities.m; sourceTree = ""; }; + C9134305738F77B0E852842422F81D36 /* SDLPinchGesture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPinchGesture.h; path = SmartDeviceLink/SDLPinchGesture.h; sourceTree = ""; }; + C93964422ECEFB35C0A15E1AC214E587 /* SDLProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessage.h; path = SmartDeviceLink/SDLProtocolMessage.h; sourceTree = ""; }; + C9703269E7ADB6FFB0BAC46F741BF3E1 /* SDLMassageZone.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageZone.h; path = SmartDeviceLink/SDLMassageZone.h; sourceTree = ""; }; + C9CB658027934C58CB5E44288BDE79BE /* SDLOasisAddress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOasisAddress.h; path = SmartDeviceLink/SDLOasisAddress.h; sourceTree = ""; }; + CA172B821F0003F4CA4CF26BF6E2EF6B /* SDLEncryptionManagerConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncryptionManagerConstants.m; path = SmartDeviceLink/SDLEncryptionManagerConstants.m; sourceTree = ""; }; + CA602EC4E5C28004D96933F0A7FC26A5 /* SDLNavigationAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationAction.m; path = SmartDeviceLink/SDLNavigationAction.m; sourceTree = ""; }; + CA63DD963834C98C595F586200D303A2 /* SDLUnpublishAppService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnpublishAppService.h; path = SmartDeviceLink/SDLUnpublishAppService.h; sourceTree = ""; }; + CA97A48978C804461E3488F28629372A /* SDLLogTargetOSLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetOSLog.h; path = SmartDeviceLink/SDLLogTargetOSLog.h; sourceTree = ""; }; + CADB648304E13078D32B3FD465D4550E /* Pods-MobileWeather.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MobileWeather.modulemap"; sourceTree = ""; }; + CAFA794CC2E87DB83C46EC3AF3A8F7CD /* SDLVentilationMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVentilationMode.h; path = SmartDeviceLink/SDLVentilationMode.h; sourceTree = ""; }; + CB1A8B920D83FAD8420BFA57B9376BD2 /* SDLProtocolConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolConstants.h; path = SmartDeviceLink/SDLProtocolConstants.h; sourceTree = ""; }; + CB3E5816DA0A95C87F21D3CEB5CDB491 /* SDLGetWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetWayPointsResponse.h; path = SmartDeviceLink/SDLGetWayPointsResponse.h; sourceTree = ""; }; + CB3FBF9629A46D84216A895E9CC557D0 /* SDLDeleteCommandResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteCommandResponse.m; path = SmartDeviceLink/SDLDeleteCommandResponse.m; sourceTree = ""; }; + CB91F38B3D46D7DF0F73684B53D3BDD8 /* SDLPerformInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformInteraction.m; path = SmartDeviceLink/SDLPerformInteraction.m; sourceTree = ""; }; + CB94E5F60A8212C2F399605867F18BD7 /* SDLEncryptionConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncryptionConfiguration.h; path = SmartDeviceLink/SDLEncryptionConfiguration.h; sourceTree = ""; }; + CBDFD38C9C935811D67494103D5F4E6C /* Pods-MobileWeather-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MobileWeather-acknowledgements.plist"; sourceTree = ""; }; + CBEBD6445D569D27DF83CCC6C9F8DC0E /* SDLDeleteWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteWindow.h; path = SmartDeviceLink/SDLDeleteWindow.h; sourceTree = ""; }; + CC4534AF33C9B2498C5DB1A3A5B390C3 /* SDLPermissionItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionItem.h; path = SmartDeviceLink/SDLPermissionItem.h; sourceTree = ""; }; + CC66876557B0753F1E8075EEECFA7C06 /* SDLAlertManeuverResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertManeuverResponse.h; path = SmartDeviceLink/SDLAlertManeuverResponse.h; sourceTree = ""; }; + CCD15C77520926C2D6DE6C44A380FD73 /* SDLSystemCapabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityManager.h; path = SmartDeviceLink/SDLSystemCapabilityManager.h; sourceTree = ""; }; + CCDD6594ECBBE163AA3B6819EAECDD83 /* SDLOnSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSyncPData.h; path = SmartDeviceLink/SDLOnSyncPData.h; sourceTree = ""; }; + CCEFC169422E967386D07342ED9E5B8F /* SDLCompassDirection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCompassDirection.h; path = SmartDeviceLink/SDLCompassDirection.h; sourceTree = ""; }; + CD3B8A988BB67EDC48B5BBDC39F44164 /* SDLButtonPressMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPressMode.m; path = SmartDeviceLink/SDLButtonPressMode.m; sourceTree = ""; }; + CDA21BAF0A80764F863AA3136B132BCC /* SDLLogTarget.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTarget.h; path = SmartDeviceLink/SDLLogTarget.h; sourceTree = ""; }; + CDC3E3043CC87C0BB89DD7FD7BCE772A /* SDLControlFramePayloadRPCStartService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRPCStartService.h; path = SmartDeviceLink/SDLControlFramePayloadRPCStartService.h; sourceTree = ""; }; + CE545916C7D8D475FB552FAAE7AD0286 /* SDLControlFramePayloadVideoStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadVideoStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h; sourceTree = ""; }; + CE553E3605D4CBF175959C2A6AFFA992 /* SDLOnEncodedSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnEncodedSyncPData.h; path = SmartDeviceLink/SDLOnEncodedSyncPData.h; sourceTree = ""; }; + CF03C1888031E3BA51620916196E3F13 /* SDLMediaClockFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaClockFormat.h; path = SmartDeviceLink/SDLMediaClockFormat.h; sourceTree = ""; }; + CF06C121B2AD922B5E0F2F9075C29C29 /* SDLDisplayCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayCapability.m; path = SmartDeviceLink/SDLDisplayCapability.m; sourceTree = ""; }; + CF4CCE42229C9A7F2C4FACE1B032A768 /* SDLSoftButtonReplaceOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonReplaceOperation.m; path = SmartDeviceLink/SDLSoftButtonReplaceOperation.m; sourceTree = ""; }; + CF64BCEDC0A50BBDFC1D74C9A0243BEA /* SDLGetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataResponse.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h; sourceTree = ""; }; + CF7F2682404352A5DA48275A68971699 /* SDLMassageCushionFirmness.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageCushionFirmness.m; path = SmartDeviceLink/SDLMassageCushionFirmness.m; sourceTree = ""; }; + CF9460897660A78535CEA62503CB6771 /* SDLRPCMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCMessage.m; path = SmartDeviceLink/SDLRPCMessage.m; sourceTree = ""; }; + CFAE2994F819888468C9D2EAC8918FDF /* SDLLogTargetFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetFile.h; path = SmartDeviceLink/SDLLogTargetFile.h; sourceTree = ""; }; + CFAE9C8809F27A20EA7BA366B50D1D09 /* SDLPCMAudioConverter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPCMAudioConverter.m; path = SmartDeviceLink/SDLPCMAudioConverter.m; sourceTree = ""; }; + CFE665A143945D4F523E9805AC91DEE2 /* SDLOnCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnCommand.m; path = SmartDeviceLink/SDLOnCommand.m; sourceTree = ""; }; + CFFD94F699E758B296EBA10E07F683B1 /* SDLLanguage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLanguage.h; path = SmartDeviceLink/SDLLanguage.h; sourceTree = ""; }; + D0219EB46973A2D486CE1181ECA2FE0F /* SDLPerformInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformInteractionResponse.m; path = SmartDeviceLink/SDLPerformInteractionResponse.m; sourceTree = ""; }; + D030FEAB644BB0DA021BED593500842A /* SDLGetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataResponse.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m; sourceTree = ""; }; + D04E8AFADA5F4A1EFE947D76FC10E211 /* SDLBeltStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBeltStatus.h; path = SmartDeviceLink/SDLBeltStatus.h; sourceTree = ""; }; + D08EB5D57959DC19650C80C22DAB3BE6 /* SDLPrimaryAudioSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrimaryAudioSource.m; path = SmartDeviceLink/SDLPrimaryAudioSource.m; sourceTree = ""; }; + D0981807051884EEA83FBA93119C3343 /* SDLAlertManeuverResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertManeuverResponse.m; path = SmartDeviceLink/SDLAlertManeuverResponse.m; sourceTree = ""; }; + D0C18115663476B7D482AC09B3DC33F5 /* SDLAsynchronousRPCRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousRPCRequestOperation.h; path = SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h; sourceTree = ""; }; + D1451982C674F8C57D7939A9DC79695B /* SDLSubscribeButtonObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonObserver.m; path = SmartDeviceLink/SDLSubscribeButtonObserver.m; sourceTree = ""; }; + D16DBA7C10C34D2E22A67C65927F8D25 /* SDLTemperature.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemperature.h; path = SmartDeviceLink/SDLTemperature.h; sourceTree = ""; }; + D1D048D4CD12A7F93CA9F3BEB86BB85C /* SDLGetDTCsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetDTCsResponse.h; path = SmartDeviceLink/SDLGetDTCsResponse.h; sourceTree = ""; }; + D22DDB6D7F55F6ED4E2E018BE51EB987 /* SDLWeatherServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherServiceData.h; path = SmartDeviceLink/SDLWeatherServiceData.h; sourceTree = ""; }; + D27F5613B42AA93A93AA3040A73BF94C /* SDLGetInteriorVehicleDataConsent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataConsent.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m; sourceTree = ""; }; + D28C9BD0381F41CC4ECCDB3308A2629C /* SDLSetGlobalPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetGlobalPropertiesResponse.m; path = SmartDeviceLink/SDLSetGlobalPropertiesResponse.m; sourceTree = ""; }; + D34DA30DA43361D2C480A221DBB67CD0 /* SDLPresentChoiceSetOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresentChoiceSetOperation.h; path = SmartDeviceLink/SDLPresentChoiceSetOperation.h; sourceTree = ""; }; + D37716D691664883B517AA8C5B0D4D48 /* SDLLockScreenRootViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenRootViewController.h; path = SmartDeviceLink/SDLLockScreenRootViewController.h; sourceTree = ""; }; + D3B8CF68FC478BF3823F6C4D2995ED5A /* SDLSyncPDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncPDataResponse.m; path = SmartDeviceLink/SDLSyncPDataResponse.m; sourceTree = ""; }; + D3DA4CCC5B1886D2AC2DC948D22D54C9 /* SDLFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFile.m; path = SmartDeviceLink/SDLFile.m; sourceTree = ""; }; + D42E48D6CC0F6C034CFD9C9FF1EED954 /* SDLSupportedSeat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSupportedSeat.m; path = SmartDeviceLink/SDLSupportedSeat.m; sourceTree = ""; }; + D454F140BD2837E493EFB52D5D399FF6 /* SDLControlFramePayloadVideoStartService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadVideoStartService.h; path = SmartDeviceLink/SDLControlFramePayloadVideoStartService.h; sourceTree = ""; }; + D476F4C1BDF441FDB174D26DB9437AD3 /* SDLSubscribeButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButton.m; path = SmartDeviceLink/SDLSubscribeButton.m; sourceTree = ""; }; + D48DCBCD7C2098396B010A87235DBEC7 /* SDLFuelRange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelRange.h; path = SmartDeviceLink/SDLFuelRange.h; sourceTree = ""; }; + D4966D54B828A01F82DC4326A367A6B3 /* SDLDynamicMenuUpdateRunScore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDynamicMenuUpdateRunScore.h; path = SmartDeviceLink/SDLDynamicMenuUpdateRunScore.h; sourceTree = ""; }; + D4C1DE17C70124F2EC7ADB7C93FCA111 /* SDLDisplayCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayCapabilities.h; path = SmartDeviceLink/SDLDisplayCapabilities.h; sourceTree = ""; }; + D516C013762946799CEEFE4D998577D4 /* SDLRAWH264Packetizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRAWH264Packetizer.m; path = SmartDeviceLink/SDLRAWH264Packetizer.m; sourceTree = ""; }; + D55417FE7F7FC0C9B4F34CAE0D38AC5C /* SDLAppServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceManifest.m; path = SmartDeviceLink/SDLAppServiceManifest.m; sourceTree = ""; }; + D570A1BD7CC0E6336C341706DE07CA56 /* SDLWeatherAlert.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherAlert.m; path = SmartDeviceLink/SDLWeatherAlert.m; sourceTree = ""; }; + D68BE4979539A4404F1FA1C07DC34D55 /* SDLSpeechCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeechCapabilities.m; path = SmartDeviceLink/SDLSpeechCapabilities.m; sourceTree = ""; }; + D68D39C84895E461F1B9634D606671E1 /* SDLAddSubMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddSubMenuResponse.h; path = SmartDeviceLink/SDLAddSubMenuResponse.h; sourceTree = ""; }; + D6986E5DF7E39BCD4F822E4CB001676F /* SDLGetFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetFileResponse.h; path = SmartDeviceLink/SDLGetFileResponse.h; sourceTree = ""; }; + D71F5B91669B94ED03ECE68DF8A69310 /* SDLGetInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleData.m; path = SmartDeviceLink/SDLGetInteriorVehicleData.m; sourceTree = ""; }; + D725474F95CF3A37D8217D26C3D33F69 /* SDLManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLManager.m; path = SmartDeviceLink/SDLManager.m; sourceTree = ""; }; + D76301C2554A02484AFC7B13C487F7AF /* SDLResetGlobalPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResetGlobalPropertiesResponse.h; path = SmartDeviceLink/SDLResetGlobalPropertiesResponse.h; sourceTree = ""; }; + D765E0A70DFB9714A0F405D852A66FAB /* SDLSubscribeVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeVehicleDataResponse.m; path = SmartDeviceLink/SDLSubscribeVehicleDataResponse.m; sourceTree = ""; }; + D7B42911B767CE7D2DB7CD903DA4BA90 /* SDLLocationCoordinate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLocationCoordinate.m; path = SmartDeviceLink/SDLLocationCoordinate.m; sourceTree = ""; }; + D825304615E69EF79423978DDC24A034 /* SDLSoftButtonObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonObject.h; path = SmartDeviceLink/SDLSoftButtonObject.h; sourceTree = ""; }; + D831A281EF816381B291008A9D4FAA9E /* SDLHybridAppPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHybridAppPreference.m; path = SmartDeviceLink/SDLHybridAppPreference.m; sourceTree = ""; }; + D8BC4DC3D5C26DEF7E62FBB6D8922181 /* SDLDynamicMenuUpdateAlgorithm.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDynamicMenuUpdateAlgorithm.m; path = SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.m; sourceTree = ""; }; + D8C3E2092639989CC311D760FEFFF098 /* SDLObjectWithPriority.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLObjectWithPriority.m; path = SmartDeviceLink/SDLObjectWithPriority.m; sourceTree = ""; }; + D90AE10D126FDEAC9EC89DC2DA4C9C9C /* SDLSystemAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemAction.m; path = SmartDeviceLink/SDLSystemAction.m; sourceTree = ""; }; + D9122ED144BA8E4A71AAE00847B80AD2 /* SDLControlFramePayloadTransportEventUpdate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadTransportEventUpdate.h; path = SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.h; sourceTree = ""; }; + D935E4ACA5BD1466555211496C5A0F89 /* SDLRPCPayload.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCPayload.h; path = SmartDeviceLink/SDLRPCPayload.h; sourceTree = ""; }; + D987EAF5E95BE2470E9AFACD43D35461 /* SDLMassageCushionFirmness.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageCushionFirmness.h; path = SmartDeviceLink/SDLMassageCushionFirmness.h; sourceTree = ""; }; + D9FCEE47A681128EBFB0EFED02719BE8 /* SDLMassageZone.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageZone.m; path = SmartDeviceLink/SDLMassageZone.m; sourceTree = ""; }; + DAD38BC5045E2280587608630721EB31 /* SDLRPCRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCRequest.h; path = SmartDeviceLink/SDLRPCRequest.h; sourceTree = ""; }; + DADF8BE5914CC5FDE27CC4C54E6F38A6 /* SDLProtocolMessageAssembler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessageAssembler.h; path = SmartDeviceLink/SDLProtocolMessageAssembler.h; sourceTree = ""; }; + DB37F4EF3E6ADA6FA78C8A414C2980AF /* SDLTemperatureUnit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemperatureUnit.m; path = SmartDeviceLink/SDLTemperatureUnit.m; sourceTree = ""; }; + DB53BFBC217D15847AE38FD82BFE5014 /* SDLMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMacros.h; path = SmartDeviceLink/SDLMacros.h; sourceTree = ""; }; + DBA779D91F961DC90E60E31DA4580DDF /* SDLLifecycleProtocolHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleProtocolHandler.m; path = SmartDeviceLink/SDLLifecycleProtocolHandler.m; sourceTree = ""; }; + DBDC0BCD9D5A756A12269D89CA68E411 /* SDLOnLockScreenStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnLockScreenStatus.m; path = SmartDeviceLink/SDLOnLockScreenStatus.m; sourceTree = ""; }; + DBE7466B721D1E6A2BC31A2D5D2D8124 /* SDLHexUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHexUtility.m; path = SmartDeviceLink/SDLHexUtility.m; sourceTree = ""; }; + DC1AB877E125DDBE42B80EF6A00A5F98 /* SDLGetInteriorVehicleDataConsentResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataConsentResponse.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h; sourceTree = ""; }; + DC1B6BD9F7404CCE757869AF75DC0434 /* SDLTouchCoord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchCoord.h; path = SmartDeviceLink/SDLTouchCoord.h; sourceTree = ""; }; + DCE361553E0EABB14A1C509A7093DE01 /* SDLProtocolReceivedMessageRouter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolReceivedMessageRouter.h; path = SmartDeviceLink/SDLProtocolReceivedMessageRouter.h; sourceTree = ""; }; + DD2A35B92D9AC44F072344ECC125D1B7 /* bson_object.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_object.h; path = src/bson_object.h; sourceTree = ""; }; + DD3CC83A67C250A8A7230DECEE87840D /* SDLOnAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAudioPassThru.h; path = SmartDeviceLink/SDLOnAudioPassThru.h; sourceTree = ""; }; + DD46481394302F4F857FA386B5B3D6D8 /* SDLSystemRequestResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemRequestResponse.m; path = SmartDeviceLink/SDLSystemRequestResponse.m; sourceTree = ""; }; + DD54737AADEC12705D5ED30EB6CA1A1B /* SDLPublishAppService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPublishAppService.h; path = SmartDeviceLink/SDLPublishAppService.h; sourceTree = ""; }; + DD6BDB7BD482EF289B2480B8CA328408 /* SDLProtocolReceivedMessageRouter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolReceivedMessageRouter.m; path = SmartDeviceLink/SDLProtocolReceivedMessageRouter.m; sourceTree = ""; }; + DD6D85898628258D6A68C4B679B238B1 /* SDLSetAppIconResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetAppIconResponse.h; path = SmartDeviceLink/SDLSetAppIconResponse.h; sourceTree = ""; }; + DE0871AD02E119A57E3097FB1311D3C1 /* SDLDeleteChoicesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteChoicesOperation.m; path = SmartDeviceLink/SDLDeleteChoicesOperation.m; sourceTree = ""; }; + DEB1D477D9EB612F32B6432000660C59 /* SDLClimateControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClimateControlCapabilities.h; path = SmartDeviceLink/SDLClimateControlCapabilities.h; sourceTree = ""; }; + DEDA2F4C7E4A828FFB91244C19F756D0 /* SDLFocusableItemLocator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemLocator.h; path = SmartDeviceLink/SDLFocusableItemLocator.h; sourceTree = ""; }; + DEE0B3D792D8D9B339974A65CFE9D595 /* SDLDeleteInteractionChoiceSetResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteInteractionChoiceSetResponse.h; path = SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h; sourceTree = ""; }; + DEF6AE23910B9300DD3A0EB0B277C68E /* SDLSetMediaClockTimerResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetMediaClockTimerResponse.m; path = SmartDeviceLink/SDLSetMediaClockTimerResponse.m; sourceTree = ""; }; + DF00C9E7609E5400EC4274851BEB8AE5 /* SDLModuleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleData.m; path = SmartDeviceLink/SDLModuleData.m; sourceTree = ""; }; + E00FDE680B46E1B812D8143C5D0A5271 /* SDLChoice.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoice.m; path = SmartDeviceLink/SDLChoice.m; sourceTree = ""; }; + E069D9D3F86160512916B7ABC072595F /* SDLMutableDataQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMutableDataQueue.h; path = SmartDeviceLink/SDLMutableDataQueue.h; sourceTree = ""; }; + E0A61B983B6B91FDF2BA49150AE2356C /* SDLVideoStreamingState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingState.m; path = SmartDeviceLink/SDLVideoStreamingState.m; sourceTree = ""; }; + E0EBAA870975DA984A3928C8DCFE7A40 /* BiSON-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "BiSON-Info.plist"; sourceTree = ""; }; + E0F50AF8211EE62DF94E01FA5E79CE67 /* SDLTriggerSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTriggerSource.h; path = SmartDeviceLink/SDLTriggerSource.h; sourceTree = ""; }; + E1A8A1E0A076B07F56387D1063ABB1A3 /* SDLControlFramePayloadRPCStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRPCStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h; sourceTree = ""; }; + E1F96F850E5D86162FB221E7A54E8EFD /* SDLDisplayType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayType.m; path = SmartDeviceLink/SDLDisplayType.m; sourceTree = ""; }; + E28AD265DA83A4A53DB9748E338D4E1E /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = de.lproj/SDLLockScreen.strings; sourceTree = ""; }; + E2A334FC98479B6D81A09D35E4975DDA /* SDLNotificationDispatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNotificationDispatcher.m; path = SmartDeviceLink/SDLNotificationDispatcher.m; sourceTree = ""; }; + E2D2C496603448224B3A478BD1E7C7FC /* CVPixelBufferRef+SDLUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CVPixelBufferRef+SDLUtil.m"; path = "SmartDeviceLink/CVPixelBufferRef+SDLUtil.m"; sourceTree = ""; }; + E2F7792FEE3F880C4B7A2CEF50105C43 /* SDLOnSystemRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSystemRequest.h; path = SmartDeviceLink/SDLOnSystemRequest.h; sourceTree = ""; }; + E34195450014D320A5D463831A181938 /* SDLCreateWindowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateWindowResponse.m; path = SmartDeviceLink/SDLCreateWindowResponse.m; sourceTree = ""; }; + E3B71900EA08E804133F37E5D6ADC285 /* SDLResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResult.h; path = SmartDeviceLink/SDLResult.h; sourceTree = ""; }; + E3FF43EE6114A0D361EE11A38FA91FB1 /* SDLInteractionMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLInteractionMode.h; path = SmartDeviceLink/SDLInteractionMode.h; sourceTree = ""; }; + E4434753B7C23D766EC5A0D8B1EC7D24 /* Pods-MobileWeather-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MobileWeather-acknowledgements.markdown"; sourceTree = ""; }; + E46DCE56EFD40F057672597BEDF9BC5C /* SDLMassageMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageMode.h; path = SmartDeviceLink/SDLMassageMode.h; sourceTree = ""; }; + E4AC2494F1A779D80138CD7A5D8980C6 /* SDLSetCloudAppProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetCloudAppProperties.m; path = SmartDeviceLink/SDLSetCloudAppProperties.m; sourceTree = ""; }; + E4EC6315B72CAC0F33814470212DCDC3 /* SDLDeviceLevelStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceLevelStatus.h; path = SmartDeviceLink/SDLDeviceLevelStatus.h; sourceTree = ""; }; + E5657CE38BB08F9563C92FE224B79FB1 /* SDLLogManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogManager.h; path = SmartDeviceLink/SDLLogManager.h; sourceTree = ""; }; + E6A9A7FEC27852B2A0E5BC59182279C3 /* SDLUnsubscribeVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeVehicleData.m; path = SmartDeviceLink/SDLUnsubscribeVehicleData.m; sourceTree = ""; }; + E6F7F96110B8644ABA5E6DE312BB0D7F /* SDLWindowCapability+ScreenManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLWindowCapability+ScreenManagerExtensions.m"; path = "SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.m"; sourceTree = ""; }; + E72B649C1BBFB6CC29A8201C5681766D /* SDLSoftButtonType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonType.h; path = SmartDeviceLink/SDLSoftButtonType.h; sourceTree = ""; }; + E72CA0DD191E63F3A67CEBEC9625C1F5 /* SDLChoiceSetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceSetManager.m; path = SmartDeviceLink/SDLChoiceSetManager.m; sourceTree = ""; }; + E72FB018DC8626B10CEA4186C29DEC69 /* SDLOnEncodedSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnEncodedSyncPData.m; path = SmartDeviceLink/SDLOnEncodedSyncPData.m; sourceTree = ""; }; + E7334963A37BC3A08C266E45F0DD29B9 /* SDLSetDisplayLayoutResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetDisplayLayoutResponse.m; path = SmartDeviceLink/SDLSetDisplayLayoutResponse.m; sourceTree = ""; }; + E7395392C63B23687A1B8E76B8AB07F7 /* SDLSoftButtonState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonState.h; path = SmartDeviceLink/SDLSoftButtonState.h; sourceTree = ""; }; + E78CAECB818A0AAFD5ACB1B475C157D2 /* SDLSetAppIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetAppIcon.m; path = SmartDeviceLink/SDLSetAppIcon.m; sourceTree = ""; }; + E78CF1EFD9F68E40428F71D4887D5C50 /* SDLWeatherServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherServiceManifest.h; path = SmartDeviceLink/SDLWeatherServiceManifest.h; sourceTree = ""; }; + E78DEB8B749679E27472A7740A653CED /* SDLButtonPressMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPressMode.h; path = SmartDeviceLink/SDLButtonPressMode.h; sourceTree = ""; }; + E7BB33F82335ED3BB74B4FA4B921F6D0 /* SDLOnLockScreenStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnLockScreenStatus.h; path = SmartDeviceLink/SDLOnLockScreenStatus.h; sourceTree = ""; }; + E7CCD566D513D6EEC4E95B4D23D395FB /* SDLFuelCutoffStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelCutoffStatus.h; path = SmartDeviceLink/SDLFuelCutoffStatus.h; sourceTree = ""; }; + E7F0A2E1BCB7060346CDE26635657E5B /* SDLRadioControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioControlData.h; path = SmartDeviceLink/SDLRadioControlData.h; sourceTree = ""; }; + E8061A69F7A640BFC2198A1B24F37983 /* SDLRPCRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCRequest.m; path = SmartDeviceLink/SDLRPCRequest.m; sourceTree = ""; }; + E809A18658FB035135235C331745934C /* SDLViewControllerPresentable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLViewControllerPresentable.h; path = SmartDeviceLink/SDLViewControllerPresentable.h; sourceTree = ""; }; + E82FE3223DC169D9038DD1EB8FC32E30 /* SDLServiceEncryptionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLServiceEncryptionDelegate.h; path = SmartDeviceLink/SDLServiceEncryptionDelegate.h; sourceTree = ""; }; + E89CF33AA04C619DDD01D52E4CA9ACA2 /* SDLRPCNotificationNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCNotificationNotification.h; path = SmartDeviceLink/SDLRPCNotificationNotification.h; sourceTree = ""; }; + E8B87E7B6C490A994E034330CB9660CA /* SDLLifecycleRPCAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleRPCAdapter.h; path = SmartDeviceLink/SDLLifecycleRPCAdapter.h; sourceTree = ""; }; + E957BB923D9D863C7E408A84D7E62E28 /* NSMutableDictionary+Store.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+Store.h"; path = "SmartDeviceLink/NSMutableDictionary+Store.h"; sourceTree = ""; }; + E9865E2D3C6B1D187D3D04C2B429951E /* SDLEqualizerSettings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEqualizerSettings.m; path = SmartDeviceLink/SDLEqualizerSettings.m; sourceTree = ""; }; + E9B4BC1552B9C96F9D0CA45A8320DDFA /* SDLIgnitionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIgnitionStatus.m; path = SmartDeviceLink/SDLIgnitionStatus.m; sourceTree = ""; }; + E9BCDAE3BF99C86CED1A5CB6384054CA /* SDLOnAppInterfaceUnregistered.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAppInterfaceUnregistered.m; path = SmartDeviceLink/SDLOnAppInterfaceUnregistered.m; sourceTree = ""; }; + E9D2FA097525605C95E2AFE782A6BE6C /* SDLWindowTypeCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWindowTypeCapabilities.h; path = SmartDeviceLink/SDLWindowTypeCapabilities.h; sourceTree = ""; }; + E9F85118D824B3F5F59A8305E48245E0 /* SDLNavigationServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationServiceData.h; path = SmartDeviceLink/SDLNavigationServiceData.h; sourceTree = ""; }; + EA005E80F14C30BEEAD6843C40AC7D05 /* SDLScreenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScreenManager.m; path = SmartDeviceLink/SDLScreenManager.m; sourceTree = ""; }; + EA25911F974B5B30D235AC704A107388 /* SDLSingleTireStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSingleTireStatus.m; path = SmartDeviceLink/SDLSingleTireStatus.m; sourceTree = ""; }; + EA45F0C83A48EACA03748C23787612AB /* SDLOnKeyboardInput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnKeyboardInput.m; path = SmartDeviceLink/SDLOnKeyboardInput.m; sourceTree = ""; }; + EB181A531DCA51446180DE770DFF44F1 /* SDLDeleteSubMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteSubMenu.m; path = SmartDeviceLink/SDLDeleteSubMenu.m; sourceTree = ""; }; + EB5B9BB9D28C2BC68BFABDDE546A6246 /* bson_util.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = bson_util.c; path = src/bson_util.c; sourceTree = ""; }; + EB86E9E686A67D3B92112A90F2138FF8 /* SDLVehicleDataEventStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataEventStatus.h; path = SmartDeviceLink/SDLVehicleDataEventStatus.h; sourceTree = ""; }; + EBA42054F2C0D64D68F0AAFBD937E5CC /* SDLUploadFileOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUploadFileOperation.h; path = SmartDeviceLink/SDLUploadFileOperation.h; sourceTree = ""; }; + EBD94A8CDBA452B3D05316C90227BD89 /* SDLControlFramePayloadEndService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadEndService.h; path = SmartDeviceLink/SDLControlFramePayloadEndService.h; sourceTree = ""; }; + EC49183B2BDBFC8AF747ABD142598757 /* SDLResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResult.m; path = SmartDeviceLink/SDLResult.m; sourceTree = ""; }; + EC650878367AF7C7B83FAEC062BFA3A1 /* SDLKeyboardDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardDelegate.h; path = SmartDeviceLink/SDLKeyboardDelegate.h; sourceTree = ""; }; + ECA0A1828C5374CB24D7B145DA5A60D2 /* SDLOasisAddress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOasisAddress.m; path = SmartDeviceLink/SDLOasisAddress.m; sourceTree = ""; }; + ECBFE3D76862F81C78E80FCF7BBE9EF8 /* SDLGrid.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGrid.m; path = SmartDeviceLink/SDLGrid.m; sourceTree = ""; }; + ECD19B85A34BEFF3300F295ACCA65603 /* SDLLogFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFilter.h; path = SmartDeviceLink/SDLLogFilter.h; sourceTree = ""; }; + ECE02258B281F599E9F848CF9A440B6D /* SDLSyncMsgVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncMsgVersion.m; path = SmartDeviceLink/SDLSyncMsgVersion.m; sourceTree = ""; }; + ED4168058B624B5FDD47D387C6D1E8A2 /* SDLStreamingAudioLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingAudioLifecycleManager.h; path = SmartDeviceLink/SDLStreamingAudioLifecycleManager.h; sourceTree = ""; }; + EDB0328B80CB9DE895193A6A4467BB91 /* EAAccessoryManager+SDLProtocols.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EAAccessoryManager+SDLProtocols.h"; path = "SmartDeviceLink/EAAccessoryManager+SDLProtocols.h"; sourceTree = ""; }; + EDD45B023BDB53CC20F889178F9F4D35 /* SDLDeliveryMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeliveryMode.h; path = SmartDeviceLink/SDLDeliveryMode.h; sourceTree = ""; }; + EE1FAE9A70F6C11454D435DA45460256 /* SDLStreamingProtocolDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingProtocolDelegate.h; path = SmartDeviceLink/SDLStreamingProtocolDelegate.h; sourceTree = ""; }; + EE640E82A995C6B4B7358301B1821AB5 /* SDLDeleteCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteCommand.m; path = SmartDeviceLink/SDLDeleteCommand.m; sourceTree = ""; }; + EE8BF2510CC06F2DAEB2AE8D19B4346D /* SDLLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightStatus.h; path = SmartDeviceLink/SDLLightStatus.h; sourceTree = ""; }; + EEEFAB8E3FFC61EA0D729CFCA1DF85F5 /* Pods-MobileWeather.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MobileWeather.release.xcconfig"; sourceTree = ""; }; + EFD2738443614AA486E73684C49EFD84 /* SDLTimerMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTimerMode.h; path = SmartDeviceLink/SDLTimerMode.h; sourceTree = ""; }; + F05E89950AFAAE21DF32ACB82FC50FCB /* SDLNavigationServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationServiceManifest.h; path = SmartDeviceLink/SDLNavigationServiceManifest.h; sourceTree = ""; }; + F077FE63CBC553DC56DCF5958EC799BA /* SDLAppServiceCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceCapability.m; path = SmartDeviceLink/SDLAppServiceCapability.m; sourceTree = ""; }; + F07D3E9880A5F22DA73856522EECD33A /* SDLFileType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileType.h; path = SmartDeviceLink/SDLFileType.h; sourceTree = ""; }; + F0851AE5D79F77344448BCED157FDBA1 /* SDLECallInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLECallInfo.m; path = SmartDeviceLink/SDLECallInfo.m; sourceTree = ""; }; + F08A40DF1E002E9280563EFB8F024E54 /* SDLSystemRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemRequest.m; path = SmartDeviceLink/SDLSystemRequest.m; sourceTree = ""; }; + F0D39ACA0371B8A981CE9CDB1FE1F3C0 /* SDLMassageMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageMode.m; path = SmartDeviceLink/SDLMassageMode.m; sourceTree = ""; }; + F0E6D6348ED4BE7016042DB10D5CB6C1 /* SDLRPCStruct.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCStruct.h; path = SmartDeviceLink/SDLRPCStruct.h; sourceTree = ""; }; + F113CD1AE27E195E8E894E7CEFF2C186 /* SDLSystemAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemAction.h; path = SmartDeviceLink/SDLSystemAction.h; sourceTree = ""; }; + F12CCA82A48E7EC083C69337418DE2F1 /* SDLSendLocationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendLocationResponse.m; path = SmartDeviceLink/SDLSendLocationResponse.m; sourceTree = ""; }; + F18A7D5B549029AE3017FE3E78F970C4 /* SDLCreateInteractionChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateInteractionChoiceSet.m; path = SmartDeviceLink/SDLCreateInteractionChoiceSet.m; sourceTree = ""; }; + F19067B542E8E8B13534A927F11732B5 /* BiSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BiSON.modulemap; sourceTree = ""; }; + F1A2C4D06CB5BAF62E5ED897C126990F /* SDLRequestType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRequestType.h; path = SmartDeviceLink/SDLRequestType.h; sourceTree = ""; }; + F1F3ABF315700CBC59CCB9DDE42C0C6F /* SDLUnsubscribeVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeVehicleData.h; path = SmartDeviceLink/SDLUnsubscribeVehicleData.h; sourceTree = ""; }; + F21009FEE092F6591C2E5955ACBCD7A7 /* SDLShow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShow.m; path = SmartDeviceLink/SDLShow.m; sourceTree = ""; }; + F2295CBB1464F89AF0CD86D10D353133 /* SDLDeleteSubMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteSubMenuResponse.m; path = SmartDeviceLink/SDLDeleteSubMenuResponse.m; sourceTree = ""; }; + F27B5920FDC7FD3CE439214E9756A74E /* SDLLockScreenStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenStatus.h; path = SmartDeviceLink/SDLLockScreenStatus.h; sourceTree = ""; }; + F281EBFE5ACD2B7340F65D4E7EEA5416 /* SDLSoftButtonCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonCapabilities.h; path = SmartDeviceLink/SDLSoftButtonCapabilities.h; sourceTree = ""; }; + F2C4FC36D54FA4DCEB9CB7427F105086 /* SDLHapticRect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHapticRect.h; path = SmartDeviceLink/SDLHapticRect.h; sourceTree = ""; }; + F308C661B15B847B779C39D350766544 /* SDLAddSubMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddSubMenu.h; path = SmartDeviceLink/SDLAddSubMenu.h; sourceTree = ""; }; + F325EE523B44B2D99BDB8360522C5DAB /* SDLGetVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetVehicleData.m; path = SmartDeviceLink/SDLGetVehicleData.m; sourceTree = ""; }; + F3623CCA82E15DB239231177AEED9FE2 /* SDLShowConstantTBT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowConstantTBT.m; path = SmartDeviceLink/SDLShowConstantTBT.m; sourceTree = ""; }; + F3A5F47BE1D6B4E4B91C6E9FDC9B8BB3 /* SDLOnAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAudioPassThru.m; path = SmartDeviceLink/SDLOnAudioPassThru.m; sourceTree = ""; }; + F3CD46DEB812EEF3053AE7AD322133F4 /* SDLUpdateMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateMode.h; path = SmartDeviceLink/SDLUpdateMode.h; sourceTree = ""; }; + F3FC5C1D5936F9A265745B7DB5851979 /* SDLVideoStreamingProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingProtocol.h; path = SmartDeviceLink/SDLVideoStreamingProtocol.h; sourceTree = ""; }; + F45151BA3773006A971D197673C22C5F /* SDLImageFieldName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageFieldName.h; path = SmartDeviceLink/SDLImageFieldName.h; sourceTree = ""; }; + F45A44BD6C12AA0EB5B0553231CD72F4 /* SDLSequentialRPCRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSequentialRPCRequestOperation.h; path = SmartDeviceLink/SDLSequentialRPCRequestOperation.h; sourceTree = ""; }; + F52EC5B14583173C4125CAE62815F05C /* SDLMassageModeData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageModeData.h; path = SmartDeviceLink/SDLMassageModeData.h; sourceTree = ""; }; + F5911DA96561B2E0DB4E79F8EF63A561 /* SDLSubscribeVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeVehicleData.m; path = SmartDeviceLink/SDLSubscribeVehicleData.m; sourceTree = ""; }; + F5A4EE85CC2237920F6A3B30FCE073C4 /* SDLMenuCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuCell.m; path = SmartDeviceLink/SDLMenuCell.m; sourceTree = ""; }; + F5DE8533E913F68EBF72EDF7E4D95FDA /* SDLOnAppInterfaceUnregistered.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAppInterfaceUnregistered.h; path = SmartDeviceLink/SDLOnAppInterfaceUnregistered.h; sourceTree = ""; }; + F60CF60AC5E2912FDBA7FB16CCDD927F /* SDLSeatMemoryAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatMemoryAction.h; path = SmartDeviceLink/SDLSeatMemoryAction.h; sourceTree = ""; }; + F66B5FBBDDB4463C3B333E131A0693E0 /* SDLAudioType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioType.h; path = SmartDeviceLink/SDLAudioType.h; sourceTree = ""; }; + F6B6A40C2D7A321D2ECEFC97E432FD89 /* SDLIAPControlSessionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPControlSessionDelegate.h; path = SmartDeviceLink/SDLIAPControlSessionDelegate.h; sourceTree = ""; }; + F6CEE3FF97A40D47F14C11800619E1DB /* SDLGetFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetFile.m; path = SmartDeviceLink/SDLGetFile.m; sourceTree = ""; }; + F6D33A9934F9557666AEADB5FF2C1768 /* SDLDefrostZone.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDefrostZone.m; path = SmartDeviceLink/SDLDefrostZone.m; sourceTree = ""; }; + F735242ADEB26A3EFED063A728FBFD17 /* SDLSetGlobalProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetGlobalProperties.m; path = SmartDeviceLink/SDLSetGlobalProperties.m; sourceTree = ""; }; + F747C1DEC46DA7F32A9DA0A49F0887A5 /* SDLAsynchronousOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousOperation.m; path = SmartDeviceLink/SDLAsynchronousOperation.m; sourceTree = ""; }; + F747E1141A8856C814D76672F68FF23A /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = "zh-Hans.lproj/SDLLockScreen.strings"; sourceTree = ""; }; + F796106033DB7CF49C2AFF239DDD2F71 /* SDLECallConfirmationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLECallConfirmationStatus.m; path = SmartDeviceLink/SDLECallConfirmationStatus.m; sourceTree = ""; }; + F7A97AE27AA359A932FD6703E3DAE004 /* SDLIAPDataSessionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPDataSessionDelegate.h; path = SmartDeviceLink/SDLIAPDataSessionDelegate.h; sourceTree = ""; }; + F7EAA79417587FD8CB036BC849FA1552 /* SDLDeleteFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileResponse.m; path = SmartDeviceLink/SDLDeleteFileResponse.m; sourceTree = ""; }; + F80DCE9605631CF67528BCC3D2584A4C /* SDLGlobalProperty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGlobalProperty.m; path = SmartDeviceLink/SDLGlobalProperty.m; sourceTree = ""; }; + F831CC11D420FA3CB7D9E212B2E9874C /* SDLTouchType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchType.h; path = SmartDeviceLink/SDLTouchType.h; sourceTree = ""; }; + F833AA2E2D10941E6E078E46A5A395A5 /* SDLHMILevel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMILevel.m; path = SmartDeviceLink/SDLHMILevel.m; sourceTree = ""; }; + F91D92B21B5BD8E0E4A09822AE93C6CC /* SDLParameterPermissions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLParameterPermissions.m; path = SmartDeviceLink/SDLParameterPermissions.m; sourceTree = ""; }; + F92F17C1D868E9CB7F4CF24A1F1EE509 /* SDLIAPDataSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPDataSession.m; path = SmartDeviceLink/SDLIAPDataSession.m; sourceTree = ""; }; + F9FDB0D2AA9E98077817EB3B8C90BC03 /* SDLSISData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSISData.m; path = SmartDeviceLink/SDLSISData.m; sourceTree = ""; }; + FA6252C6FBD069E899B6254B7D8F58B5 /* SmartDeviceLink-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SmartDeviceLink-dummy.m"; sourceTree = ""; }; + FA7A7DA3C20C1725AD9388188E89250F /* SDLVideoStreamingCodec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingCodec.m; path = SmartDeviceLink/SDLVideoStreamingCodec.m; sourceTree = ""; }; + FABEE925707D9F7BE28A3E70A9545F08 /* SDLChoiceCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceCell.h; path = SmartDeviceLink/SDLChoiceCell.h; sourceTree = ""; }; + FB0998F7945F98866D5AAEC80A248E5B /* SDLRectangle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRectangle.h; path = SmartDeviceLink/SDLRectangle.h; sourceTree = ""; }; + FB207C099B87EED0B5CC938CCD5BCA17 /* SDLAddCommandResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddCommandResponse.m; path = SmartDeviceLink/SDLAddCommandResponse.m; sourceTree = ""; }; + FB3EB42F4E00D78C3E9D2EAB0CD56A65 /* SDLPredefinedWindows.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPredefinedWindows.h; path = SmartDeviceLink/SDLPredefinedWindows.h; sourceTree = ""; }; + FB58EAC6AED2BCF3595566AB716728B0 /* SDLTTSChunk.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTTSChunk.h; path = SmartDeviceLink/SDLTTSChunk.h; sourceTree = ""; }; + FB6A10D40CFC0CC11ECFD6D0C56D5A5E /* SDLTextField+ScreenManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLTextField+ScreenManagerExtensions.h"; path = "SmartDeviceLink/SDLTextField+ScreenManagerExtensions.h"; sourceTree = ""; }; + FB76E8AF108D2D2C116E5B5C72CECB28 /* SDLCloseApplicationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCloseApplicationResponse.h; path = SmartDeviceLink/SDLCloseApplicationResponse.h; sourceTree = ""; }; + FB773F958DBC067615AA9A0590DBCC61 /* SDLSetCloudAppPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetCloudAppPropertiesResponse.m; path = SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m; sourceTree = ""; }; + FC04BA45906F2ACFB5C2465C9AB915A3 /* SDLRPCMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCMessage.h; path = SmartDeviceLink/SDLRPCMessage.h; sourceTree = ""; }; + FC419B6D5F4F5B911DB8B2F295E08532 /* Pods-MobileWeather-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MobileWeather-dummy.m"; sourceTree = ""; }; + FC438DC201BFBEC2EE4025086F8313F9 /* SDLRPCStruct.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCStruct.m; path = SmartDeviceLink/SDLRPCStruct.m; sourceTree = ""; }; + FC83851939F611364060849E34FD8F54 /* SDLModuleType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleType.m; path = SmartDeviceLink/SDLModuleType.m; sourceTree = ""; }; + FCA1A0BB75E977F6C47C984A7E0B7329 /* SDLFuelRange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelRange.m; path = SmartDeviceLink/SDLFuelRange.m; sourceTree = ""; }; + FCC94AEE7EC43BA74EEFA5EC841EB296 /* SDLPutFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPutFile.m; path = SmartDeviceLink/SDLPutFile.m; sourceTree = ""; }; + FCFB1CA08F9688C66B82C8C2EDFDC54D /* SDLTextField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextField.m; path = SmartDeviceLink/SDLTextField.m; sourceTree = ""; }; + FD4A03C289D0C51D2ADFA923A6B14728 /* SDLSendLocationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendLocationResponse.h; path = SmartDeviceLink/SDLSendLocationResponse.h; sourceTree = ""; }; + FD89634476BF88A8D8E8D716A8A8CD42 /* SDLCreateWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateWindow.h; path = SmartDeviceLink/SDLCreateWindow.h; sourceTree = ""; }; + FDB100B41F41367A5046A8650FD53430 /* SDLSendLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendLocation.m; path = SmartDeviceLink/SDLSendLocation.m; sourceTree = ""; }; + FDBA9441EBE6863A395EF0DDA111A8FC /* NSBundle+SDLBundle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+SDLBundle.h"; path = "SmartDeviceLink/NSBundle+SDLBundle.h"; sourceTree = ""; }; + FE164609DE1ECF1EFF6A42F2D5BEEABC /* SDLAudioStreamManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamManager.h; path = SmartDeviceLink/SDLAudioStreamManager.h; sourceTree = ""; }; + FE1C11AC277FD13D61BE3491397D447F /* SDLSpeak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeak.h; path = SmartDeviceLink/SDLSpeak.h; sourceTree = ""; }; + FE30695FCCBB7E0CC7987C538AFF14FD /* SDLOnInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnInteriorVehicleData.m; path = SmartDeviceLink/SDLOnInteriorVehicleData.m; sourceTree = ""; }; + FED390E4F93350C474A580927CB768CE /* SDLControlFramePayloadAudioStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadAudioStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.h; sourceTree = ""; }; + FF05E55CA61B330811455432212034C1 /* SDLSoftButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButton.m; path = SmartDeviceLink/SDLSoftButton.m; sourceTree = ""; }; + FF21715135EC614F06983334F08B0E1E /* SDLH264VideoEncoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLH264VideoEncoder.h; path = SmartDeviceLink/SDLH264VideoEncoder.h; sourceTree = ""; }; + FF791906F1FC8B75F3E5D9D9CDE8DADE /* SDLNotificationConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNotificationConstants.m; path = SmartDeviceLink/SDLNotificationConstants.m; sourceTree = ""; }; + FF9381D8A697377FEAB359470F3303BD /* SDLOnWayPointChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnWayPointChange.m; path = SmartDeviceLink/SDLOnWayPointChange.m; sourceTree = ""; }; + FFDB98B89A59A3B2447CB847429D8C87 /* SDLRPCPermissionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCPermissionStatus.m; path = SmartDeviceLink/SDLRPCPermissionStatus.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 7083A34F69DCE3371D8BD936966F28F6 /* Frameworks */ = { + 0462C6BC022E3DA7F6D838C53ED0C2D7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B2976840313AD10C6A1E93F7DE61F2DA /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 90B37FB75C332CF50B6F094CBB91ED59 /* Frameworks */ = { + 3777EA804422776487C8F513BEE7F4AF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 56FD57BF3791ACD2B74C0162F2BE9FBD /* BiSON.framework in Frameworks */, + 0B933EE495EEB97207691239D9319BC2 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - A46C309A849BE8348ECD9F87883D9228 /* Frameworks */ = { + 59047D00004E0FC863A84D4A108701F4 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 11584E9D1A7D53016441935AA70254FF /* BiSON.framework in Frameworks */, - 15FEA41F68065902292818187AA0489D /* Foundation.framework in Frameworks */, + 8D6461D76103F1285DA80188D7295EE9 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - F7117A3E0F9864F48166082A4BAE25F2 /* Frameworks */ = { + 8DB01620F7C5C044421A8952D951B11D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A4DDCF8F4E1736C6B915831927CD6C43 /* Foundation.framework in Frameworks */, + 9823B5569DCFBA54362B5478B81102B5 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 223DF75254EF6C3F1112A5278985E072 /* Resources */ = { + 16078D60F18D9059209E00CB8AAD1C5E /* Resources */ = { isa = PBXGroup; children = ( - FE8503F612720EBE84C85E9D319C3366 /* SDLAssets.xcassets */, - B13E714E9CFF859E95191063BF63F15A /* SDLLockScreen.storyboard */, + 863AFB2E5034F4791C4E19C43C1F917C /* SDLAssets.xcassets */, + 4F718CA865E4EBD8B3A40B5E3399596B /* SDLLockScreen.storyboard */, ); name = Resources; sourceTree = ""; }; - 391CC307EFD8386027B82AF162DF097B /* Support Files */ = { + 1F44F6C17D07B2869644379E212938BC /* Pods */ = { isa = PBXGroup; children = ( - E39097F54F4D74FE7229D93C71AA52B6 /* BiSON.modulemap */, - 52FD4FBAB16A6A7EC06FC2EAC24E3EB5 /* BiSON.xcconfig */, - 8D34D8B52315EA5525E7F73360845AFD /* BiSON-dummy.m */, - 4241F5A620863C29571F81EDA3052EF8 /* BiSON-prefix.pch */, - 4CDD3D2D0CF385680EB87073079FCBB8 /* BiSON-umbrella.h */, - B8384F01A1AD1A5CBF97162B333FFE87 /* Info.plist */, + BDDB36FAFEC8E06EA81E7B69A93982ED /* BiSON */, + 4BF1E08B5422EDF7FEB85BA1E9A83CDD /* SmartDeviceLink */, ); - name = "Support Files"; - path = "../Target Support Files/BiSON"; + name = Pods; sourceTree = ""; }; - 462196DECD5CCA143A227ED2E509F276 /* Targets Support Files */ = { + 42E3F06399806A758479239FE8C48DF5 /* Frameworks */ = { isa = PBXGroup; children = ( - 887524F4B8C28A9E7D1161C2AC856ED6 /* Pods-MobileWeather */, + C64A1B5B79B529141EBEF99FD0560328 /* BiSON.framework */, + F3F423CA06AF8F084BD2AF6D368BA938 /* iOS */, ); - name = "Targets Support Files"; + name = Frameworks; sourceTree = ""; }; - 5751E6EF4F4C0461FE15A95624588B85 /* BiSON */ = { + 4B18C4D46DE5F2FB43CC1E819DAF000E /* Support Files */ = { isa = PBXGroup; children = ( - 156154601077FD951E5C9AEEB63228A2 /* bson_array.c */, - 094669C6706179A5AC880CA3B34CBE24 /* bson_array.h */, - E435A1D99AE03AAB0AF44855E77E5EA0 /* bson_object.c */, - 4AE0C41A32832B291234AD2D5DDA906A /* bson_object.h */, - B5B713A7888C5CA5C3D01DB96C67E877 /* bson_util.c */, - 882E26AAED7919D8F46DB538C09492C7 /* bson_util.h */, - 75F59B2A5FE3C87A65DDC7E417796E8F /* emhashmap.c */, - 3F06E01500491105B758E90A6D3828F0 /* emhashmap.h */, - 391CC307EFD8386027B82AF162DF097B /* Support Files */, + 1131203DD1A9D81CB8211E61876734B7 /* ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist */, + 48BF8E7CA87C2563EB4169EC2CFC771C /* SmartDeviceLink.modulemap */, + FA6252C6FBD069E899B6254B7D8F58B5 /* SmartDeviceLink-dummy.m */, + 81EC89561B1309E5EBCB47D731425C63 /* SmartDeviceLink-Info.plist */, + 5A969288213535D08DB702C6481A24BE /* SmartDeviceLink-prefix.pch */, + 6A9E9D261C1048E5D099A24A970F9FC3 /* SmartDeviceLink-umbrella.h */, + ADD3A5E2AF56D8C4B191087DCC79274E /* SmartDeviceLink.debug.xcconfig */, + 454C2F95ECB135A8B710295C27270E3C /* SmartDeviceLink.release.xcconfig */, ); - name = BiSON; - path = BiSON; + name = "Support Files"; + path = "../Target Support Files/SmartDeviceLink"; sourceTree = ""; }; - 7DB346D0F39D3F0E887471402A8071AB = { + 4BF1E08B5422EDF7FEB85BA1E9A83CDD /* SmartDeviceLink */ = { isa = PBXGroup; children = ( - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - D33C4317A1D33EEB7FCD5619E31325B4 /* Frameworks */, - EFCF632D30DD177693144070988C6729 /* Pods */, - 9C15808B654D772B81B471949702CF7D /* Products */, - 462196DECD5CCA143A227ED2E509F276 /* Targets Support Files */, + 51CBC7711516B96100D4A7273DBFA491 /* Default */, + 4B18C4D46DE5F2FB43CC1E819DAF000E /* Support Files */, + 89B38A6C0A3CAF4A24CF6CDBC710402E /* Swift */, ); + path = SmartDeviceLink; sourceTree = ""; }; - 887524F4B8C28A9E7D1161C2AC856ED6 /* Pods-MobileWeather */ = { + 51CBC7711516B96100D4A7273DBFA491 /* Default */ = { isa = PBXGroup; children = ( - EF87626A45BB35863F5E5817AF8441A0 /* Info.plist */, - 295ADFDF55945E4B0EBE8E376D911934 /* Pods-MobileWeather.modulemap */, - CDA5BC6134D5DF2253BC19AFE8F57649 /* Pods-MobileWeather-acknowledgements.markdown */, - D5DBE882A800B18984D8EE83198A787C /* Pods-MobileWeather-acknowledgements.plist */, - 5F63F1BC5EED51E8F4A0CC89A563E14B /* Pods-MobileWeather-dummy.m */, - 753EB48A3869CA5247A0588801248775 /* Pods-MobileWeather-frameworks.sh */, - 77668B969E6A294D650360BD5369A68C /* Pods-MobileWeather-resources.sh */, - 97A2BB0456C152B5DCFAA29084C974C2 /* Pods-MobileWeather-umbrella.h */, - 74E2780DEB856E31804FBDDB9114B2F7 /* Pods-MobileWeather.debug.xcconfig */, - CE55C6A5E5F61F14CD3DBE30F7B822EA /* Pods-MobileWeather.release.xcconfig */, + 0F98A315A729E83EEEFA448CB1B4AE9D /* CGPoint_Util.h */, + B5ACECDC2EB38CF822CD5E4F6482A49A /* CGPoint_Util.m */, + 1A4071441DDC5077B72F75166D79DE65 /* CVPixelBufferRef+SDLUtil.h */, + E2D2C496603448224B3A478BD1E7C7FC /* CVPixelBufferRef+SDLUtil.m */, + 8AB6823D25685820410ED63918C02E0A /* EAAccessory+SDLProtocols.h */, + 17D87C03746D4C019B47395971B49753 /* EAAccessory+SDLProtocols.m */, + EDB0328B80CB9DE895193A6A4467BB91 /* EAAccessoryManager+SDLProtocols.h */, + C2984A671B556FF5F5714ABB2F86EE8A /* EAAccessoryManager+SDLProtocols.m */, + FDBA9441EBE6863A395EF0DDA111A8FC /* NSBundle+SDLBundle.h */, + B04D130FB2F02F323455BD16B20ACE8B /* NSBundle+SDLBundle.m */, + BA157A4B51D5529A4050627BB1C06625 /* NSMapTable+Subscripting.h */, + 3CFB911A9893560A2C355E39C00E5539 /* NSMapTable+Subscripting.m */, + 71626D352E691F8B7E7514EB0EAEAB01 /* NSMutableArray+Safe.h */, + 72A24826CB06B3C74BFF1FAC64D33A17 /* NSMutableArray+Safe.m */, + 2B9DA57DC3982AC2A8A92052ECAB639A /* NSMutableDictionary+SafeRemove.h */, + 8945F938BC1F0E55439AAB1ADFF84C1C /* NSMutableDictionary+SafeRemove.m */, + E957BB923D9D863C7E408A84D7E62E28 /* NSMutableDictionary+Store.h */, + 208C514CB24786D3F215E8EE314CA7B1 /* NSMutableDictionary+Store.m */, + 61BCAB5AD776DC231BC9B208AEA941FC /* NSNumber+NumberType.h */, + 810191FBC97CF880144ABEB67A432DD7 /* SDLAddCommand.h */, + 1D48DAC1DBEA20AE11B03D74419A181C /* SDLAddCommand.m */, + C42BD5083909F2F176B3762128DD9B06 /* SDLAddCommandResponse.h */, + FB207C099B87EED0B5CC938CCD5BCA17 /* SDLAddCommandResponse.m */, + F308C661B15B847B779C39D350766544 /* SDLAddSubMenu.h */, + 50B06BF759879E5F7FB48501D617628A /* SDLAddSubMenu.m */, + D68D39C84895E461F1B9634D606671E1 /* SDLAddSubMenuResponse.h */, + 5CE9058C4CECC7EB2181F33AED464312 /* SDLAddSubMenuResponse.m */, + 8855466267A3B3D5676C6D27C57295EA /* SDLAirbagStatus.h */, + B5D1F23B2E71DAA1B5D0B59605A90913 /* SDLAirbagStatus.m */, + 64CC24A0167F43E7EFCD3741ED2CD00A /* SDLAlert.h */, + 14A8D51B3439374BFB1554CBD1E477B8 /* SDLAlert.m */, + 7107118F63D85B4E1D0C3139EC411FA9 /* SDLAlertManeuver.h */, + 8012DBA7B04E0C0D6D13D3AB41B86CFA /* SDLAlertManeuver.m */, + CC66876557B0753F1E8075EEECFA7C06 /* SDLAlertManeuverResponse.h */, + D0981807051884EEA83FBA93119C3343 /* SDLAlertManeuverResponse.m */, + 83335AC43298E401A07294CE5F7FB4FA /* SDLAlertResponse.h */, + A9C1A17D21E9FA2E45F72C2B32CCE8F7 /* SDLAlertResponse.m */, + 2FD49396D5358F998A4629ED1C829892 /* SDLAmbientLightStatus.h */, + 29633F4DCFB56822424E2DE90E738544 /* SDLAmbientLightStatus.m */, + 76914E4FB138C6C29615A345C805BB4E /* SDLAppHMIType.h */, + 67B1375F3DDA0692EAB06F16FF383182 /* SDLAppHMIType.m */, + 824499C1074ACBA17C39242C022396D4 /* SDLAppInfo.h */, + 55217909B98035F7AFBC7F73096982A2 /* SDLAppInfo.m */, + 7D17B47BB0D9A877AB0D85B41A630687 /* SDLAppInterfaceUnregisteredReason.h */, + 1C7F206C35B6B523B922930AEAD75A25 /* SDLAppInterfaceUnregisteredReason.m */, + 3DB78A3398DB496866979B7038BB5583 /* SDLAppServiceCapability.h */, + F077FE63CBC553DC56DCF5958EC799BA /* SDLAppServiceCapability.m */, + 545945C37CA202B7C89B0BDB939DF95C /* SDLAppServiceData.h */, + 507FBFEE8A6A81402E77FB59A01BA642 /* SDLAppServiceData.m */, + 57F1282A6F2ED03A5614C9C2B2DAAF2D /* SDLAppServiceManifest.h */, + D55417FE7F7FC0C9B4F34CAE0D38AC5C /* SDLAppServiceManifest.m */, + 63CCE3D626BB22CCA767323E3EE5965A /* SDLAppServiceRecord.h */, + 09CB1EF14BDD7FF6541D42C4AA269392 /* SDLAppServiceRecord.m */, + 092865BB22501250C0C3FF3D5CF2E200 /* SDLAppServicesCapabilities.h */, + 821880E4A2BC5BEF5F42B7CCFF64AB9D /* SDLAppServicesCapabilities.m */, + 70D15488C806D4BEC8709786B9EE4931 /* SDLAppServiceType.h */, + 30C60087B34A79843BE53EE59A516D68 /* SDLAppServiceType.m */, + 880F24F11420E145AFB4143AF75C49B8 /* SDLArtwork.h */, + C3EBAD2DFAF1E748D9CE7A71A8F7ADD2 /* SDLArtwork.m */, + 3EADC1263640A78820A3303343799BE6 /* SDLAsynchronousOperation.h */, + F747C1DEC46DA7F32A9DA0A49F0887A5 /* SDLAsynchronousOperation.m */, + 646F19BE927B0171643AFCA74D750304 /* SDLAsynchronousRPCOperation.h */, + 2C38F093E9748ACAA9284BD728AA9AAF /* SDLAsynchronousRPCOperation.m */, + D0C18115663476B7D482AC09B3DC33F5 /* SDLAsynchronousRPCRequestOperation.h */, + 77B63B96875F1C820F190F3AC0A911ED /* SDLAsynchronousRPCRequestOperation.m */, + 2887D0C5085EA06F9D4FD170C6F4235C /* SDLAudioControlCapabilities.h */, + BBBA34781B3503DDA95B0CAE4B42E438 /* SDLAudioControlCapabilities.m */, + 2AF9D8696C22ABDC9B6EC313EC8554C4 /* SDLAudioControlData.h */, + 089526E918DB53DC6E49872629FFC303 /* SDLAudioControlData.m */, + 9570AA3F2F4CC1AE3DEC19E631620F29 /* SDLAudioFile.h */, + 878CFADA0C9FAF4387BFEBA236775E0D /* SDLAudioFile.m */, + 28FD8035C89A39A37313F411B5C93EA4 /* SDLAudioPassThruCapabilities.h */, + C18816A43577E38FE8908AD8B8B72321 /* SDLAudioPassThruCapabilities.m */, + 808FA370A600BD6F4DF9382F215445CF /* SDLAudioStreamingIndicator.h */, + 73ACA9CF96F869FA20D4FA90D8076760 /* SDLAudioStreamingIndicator.m */, + A3F84DAD3D88A67D4CE282450BA269F8 /* SDLAudioStreamingState.h */, + AF28A68579C98F539C039EA29CA59D4B /* SDLAudioStreamingState.m */, + FE164609DE1ECF1EFF6A42F2D5BEEABC /* SDLAudioStreamManager.h */, + 9E455C3FFF2568B4B1C81CC712A1DB06 /* SDLAudioStreamManager.m */, + 03CB7781E3AFB6084B7FF7B008C554AA /* SDLAudioStreamManagerDelegate.h */, + F66B5FBBDDB4463C3B333E131A0693E0 /* SDLAudioType.h */, + AB7CED9964DD3F087B0208B33F08C202 /* SDLAudioType.m */, + 121EABB22D7495B5EBE9D72C0E2F9D2B /* SDLBackgroundTaskManager.h */, + 1EAC648706939F20E524EF7CD347A0C2 /* SDLBackgroundTaskManager.m */, + D04E8AFADA5F4A1EFE947D76FC10E211 /* SDLBeltStatus.h */, + 8491710A7CDE4F582940CE688AF7A91B /* SDLBeltStatus.m */, + B5BDE0E2D5DE878BA2561C438678E7EA /* SDLBitsPerSample.h */, + 0DE2FE3B6560346F8069F04D79D7E283 /* SDLBitsPerSample.m */, + 994CECE8A7C71DE7FD91078E6AC4AF7F /* SDLBodyInformation.h */, + 8E2C9383A7DCAF213C875854C59E3043 /* SDLBodyInformation.m */, + 93CA15BB34449EB60AC4245F6669B10C /* SDLButtonCapabilities.h */, + 970F63E20BB6D882EF074800A3CE6176 /* SDLButtonCapabilities.m */, + 17F39883F5C926723043B16C4FEB77D9 /* SDLButtonEventMode.h */, + A19E73266D6733F4C2E8727710A11ED9 /* SDLButtonEventMode.m */, + 659961EA97BC4FAE7763288542F9CB2F /* SDLButtonName.h */, + AD2F8C7E3E2CA2E54A878E1804C6819B /* SDLButtonName.m */, + 0B1FA2D3A3AECF7476B6EB1A1004187A /* SDLButtonPress.h */, + 0B426EF21719FFCBFD4CC285CE5B8E31 /* SDLButtonPress.m */, + E78DEB8B749679E27472A7740A653CED /* SDLButtonPressMode.h */, + CD3B8A988BB67EDC48B5BBDC39F44164 /* SDLButtonPressMode.m */, + 297D3BF189B64B55B4EBFB1B4F256FD9 /* SDLButtonPressResponse.h */, + 1FA3D11485B98D532358487B826F92A6 /* SDLButtonPressResponse.m */, + 4A2717B2D5DE554897D72CB951C42757 /* SDLCacheFileManager.h */, + 8E1C9328B451F98B0315DBA9202D5241 /* SDLCacheFileManager.m */, + 79BE090F6A21A962EE21A4F1CEEF8475 /* SDLCancelInteraction.h */, + 448B4ECBFE83DF3E2B77F2D820F2A368 /* SDLCancelInteraction.m */, + 59F336B19B5A14921AF73428A666E018 /* SDLCancelInteractionResponse.h */, + 102FDAC56AEF5163B033D0CC47822A7F /* SDLCancelInteractionResponse.m */, + C2465E4A570C1A14AA2E12DA0AE6B8C7 /* SDLCarModeStatus.h */, + 30D436C8BEF4813A0366098F52523C60 /* SDLCarModeStatus.m */, + 524A27962BB7A038C3B5A39B5A529ED5 /* SDLCarWindow.h */, + 94AB62DC444A4E92E8E71099CDED36CE /* SDLCarWindow.m */, + 92ACAA8B4D0D63E63F39B9F53DEFD855 /* SDLCarWindowViewController.h */, + B0DCC93C381CC643F45864405E55E958 /* SDLCarWindowViewController.m */, + 057BF4E380C24A34B8A91DABCBD55757 /* SDLChangeRegistration.h */, + 8EF8FC180D4BBA0EC08C5AEB71F88B60 /* SDLChangeRegistration.m */, + 7AC9DBB4949F6A3B97B7BEB8AE95E1BE /* SDLChangeRegistrationResponse.h */, + 84C5C4D0E7C8575BB285D8DD30E89F56 /* SDLChangeRegistrationResponse.m */, + B3B2790352EE6BE9ABFDD04D31188B31 /* SDLCharacterSet.h */, + 3AF9C51B912A87FCA50DB65BF6162630 /* SDLCharacterSet.m */, + 7D870FC3F91ACC2B15AB223846D01700 /* SDLCheckChoiceVROptionalOperation.h */, + BC088F50F39FABB3A2835578295D6FCE /* SDLCheckChoiceVROptionalOperation.m */, + 70FCA6EA14F58857FDC822D78A615F03 /* SDLChoice.h */, + E00FDE680B46E1B812D8143C5D0A5271 /* SDLChoice.m */, + FABEE925707D9F7BE28A3E70A9545F08 /* SDLChoiceCell.h */, + 0A92F939214CB9AE0B8F4A9AC267DF28 /* SDLChoiceCell.m */, + B9216714A4B6D6F70DA8E53B3F9320CA /* SDLChoiceSet.h */, + 99258EE24FD66E3BA4328B7EB26FED96 /* SDLChoiceSet.m */, + 3DE9E361C8A5F013FAB70F518A575C64 /* SDLChoiceSetDelegate.h */, + 4C7F9ED55C903DF4E945CF493F83626F /* SDLChoiceSetManager.h */, + E72CA0DD191E63F3A67CEBEC9625C1F5 /* SDLChoiceSetManager.m */, + DEB1D477D9EB612F32B6432000660C59 /* SDLClimateControlCapabilities.h */, + 6235BA14F1F7044B98188F7FACCFE4C8 /* SDLClimateControlCapabilities.m */, + 6E1639EE1075414A5D5EA690D7F79B69 /* SDLClimateControlData.h */, + 3C61578FBFA3147D20DF240420C54033 /* SDLClimateControlData.m */, + A4D71C10FFEEDB848F3F2C093F2DC642 /* SDLCloseApplication.h */, + 0D21D2139E965A5CA024DB58BE117962 /* SDLCloseApplication.m */, + FB76E8AF108D2D2C116E5B5C72CECB28 /* SDLCloseApplicationResponse.h */, + C1F9C5416BB8D0ED9335E1A889B51A93 /* SDLCloseApplicationResponse.m */, + A6B9669FEDAAA1EF5A7C9F94BED90F1E /* SDLCloudAppProperties.h */, + 89A76245B2627554C8BCFD4EC00D0102 /* SDLCloudAppProperties.m */, + 5869C4B4CE96D9E62C0313B0D1A429CE /* SDLClusterModeStatus.h */, + B2C56DF1F1818D8E1FD488B352881DD0 /* SDLClusterModeStatus.m */, + CCEFC169422E967386D07342ED9E5B8F /* SDLCompassDirection.h */, + 96D7A594E902D4A574B41FF1CEFB2D60 /* SDLCompassDirection.m */, + 5E97BBBE0B504665860ED1CAA8E59FE8 /* SDLComponentVolumeStatus.h */, + 813A147E7FDCF70030F5AEC4B266E506 /* SDLComponentVolumeStatus.m */, + 8FA1E34ACCBDEF2099EC4469F2405BBB /* SDLConfiguration.h */, + 8C8B7EAEF425B5B3F0375A9301A599C4 /* SDLConfiguration.m */, + 865CF3B1A51E7AF3086DD6E840A8C8C7 /* SDLConnectionManagerType.h */, + FED390E4F93350C474A580927CB768CE /* SDLControlFramePayloadAudioStartServiceAck.h */, + 6644C7A504AD3CAC83C4A63B22675EB0 /* SDLControlFramePayloadAudioStartServiceAck.m */, + C56E766AC9995A99617E24C80F827D43 /* SDLControlFramePayloadConstants.h */, + 6AB0EFA70338ECA876CAE278CBCEF17D /* SDLControlFramePayloadConstants.m */, + EBD94A8CDBA452B3D05316C90227BD89 /* SDLControlFramePayloadEndService.h */, + 77CC97F51D3268076905BB31E39F4CD1 /* SDLControlFramePayloadEndService.m */, + 120E0599820F60BBAB5980EF892809ED /* SDLControlFramePayloadNak.h */, + AFF3E79663035A0B5E589A3D5DF2051B /* SDLControlFramePayloadNak.m */, + 154F7BD449EBAB714A8FBF679C03A16F /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */, + A8F1FC7563B35841A0B1D696269FA3AB /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */, + CDC3E3043CC87C0BB89DD7FD7BCE772A /* SDLControlFramePayloadRPCStartService.h */, + 6AB1DCB476513BFF046B549ACEA9FE45 /* SDLControlFramePayloadRPCStartService.m */, + E1A8A1E0A076B07F56387D1063ABB1A3 /* SDLControlFramePayloadRPCStartServiceAck.h */, + 1B5378A0D8A574B369D8D84FC58D1882 /* SDLControlFramePayloadRPCStartServiceAck.m */, + D9122ED144BA8E4A71AAE00847B80AD2 /* SDLControlFramePayloadTransportEventUpdate.h */, + 026C522465461D2651A396400F15816E /* SDLControlFramePayloadTransportEventUpdate.m */, + 285B908EABA56FEE3FBABD179F93E58C /* SDLControlFramePayloadType.h */, + D454F140BD2837E493EFB52D5D399FF6 /* SDLControlFramePayloadVideoStartService.h */, + 25831F0759C377A291230FE1B42725AC /* SDLControlFramePayloadVideoStartService.m */, + CE545916C7D8D475FB552FAAE7AD0286 /* SDLControlFramePayloadVideoStartServiceAck.h */, + 79477F35CD70B0D22D924DD87A435888 /* SDLControlFramePayloadVideoStartServiceAck.m */, + 116815ADE5356987348CB6CA1D5E8C88 /* SDLCreateInteractionChoiceSet.h */, + F18A7D5B549029AE3017FE3E78F970C4 /* SDLCreateInteractionChoiceSet.m */, + B663F05251D2CEC64244343870CC61B4 /* SDLCreateInteractionChoiceSetResponse.h */, + 1DC9D9DFEFD8DA66012392040EC1C55F /* SDLCreateInteractionChoiceSetResponse.m */, + FD89634476BF88A8D8E8D716A8A8CD42 /* SDLCreateWindow.h */, + 851DB4FB9BD1E39F4B61D6DD51ABD057 /* SDLCreateWindow.m */, + 944E4D0EB351D4FF821AC8C6E8A6599F /* SDLCreateWindowResponse.h */, + E34195450014D320A5D463831A181938 /* SDLCreateWindowResponse.m */, + 3603AB47CCA7EABB5B1FDAC0C16A59C7 /* SDLDateTime.h */, + 1EAE47EB9D6FA6A7086775871FD445E1 /* SDLDateTime.m */, + AF8586C62AFA2F4833F9F198CA2236FA /* SDLDefrostZone.h */, + F6D33A9934F9557666AEADB5FF2C1768 /* SDLDefrostZone.m */, + 32A8A151275801260ADFAEC896C908A8 /* SDLDeleteChoicesOperation.h */, + DE0871AD02E119A57E3097FB1311D3C1 /* SDLDeleteChoicesOperation.m */, + 7B50E027677BEB5915991E589C93AA10 /* SDLDeleteCommand.h */, + EE640E82A995C6B4B7358301B1821AB5 /* SDLDeleteCommand.m */, + 99287642C46A058853261EE0F8FB5803 /* SDLDeleteCommandResponse.h */, + CB3FBF9629A46D84216A895E9CC557D0 /* SDLDeleteCommandResponse.m */, + 69EB1D090E106984195E7886C58C910C /* SDLDeleteFile.h */, + 157695036F630B99AA2A2162AAAAAF9E /* SDLDeleteFile.m */, + 5183ABBFFA966A641482836B262617DD /* SDLDeleteFileOperation.h */, + 10932B52AE70AF095B0197772101BF9E /* SDLDeleteFileOperation.m */, + C8C16DD6E47A4B9FA795780317963CB0 /* SDLDeleteFileResponse.h */, + F7EAA79417587FD8CB036BC849FA1552 /* SDLDeleteFileResponse.m */, + C24AADEEDA015C43C563DB8822396C0A /* SDLDeleteInteractionChoiceSet.h */, + 181548D9FA28EF29C39F058DDD467003 /* SDLDeleteInteractionChoiceSet.m */, + DEE0B3D792D8D9B339974A65CFE9D595 /* SDLDeleteInteractionChoiceSetResponse.h */, + 856764E6D7C402933AA4B550B7ADCBCD /* SDLDeleteInteractionChoiceSetResponse.m */, + 202CF610C5F2342C8E54FB9049CF4F47 /* SDLDeleteSubMenu.h */, + EB181A531DCA51446180DE770DFF44F1 /* SDLDeleteSubMenu.m */, + B783431D6B033263CF2D12A61575D27F /* SDLDeleteSubMenuResponse.h */, + F2295CBB1464F89AF0CD86D10D353133 /* SDLDeleteSubMenuResponse.m */, + CBEBD6445D569D27DF83CCC6C9F8DC0E /* SDLDeleteWindow.h */, + 809D3FC9668359BFD1AD77E50506EFA2 /* SDLDeleteWindow.m */, + 51B66260E43F75F7BD5D210137A3720C /* SDLDeleteWindowResponse.h */, + 6C6AE16D11DEDEAAF0E172B5CDACB105 /* SDLDeleteWindowResponse.m */, + EDD45B023BDB53CC20F889178F9F4D35 /* SDLDeliveryMode.h */, + 7F7B026A5E29DCF1060FD41C895EB056 /* SDLDeliveryMode.m */, + C70B2859CDC07782CF755E851575239E /* SDLDeviceInfo.h */, + 3B9385D01A185AC52F1A077BBDC5759D /* SDLDeviceInfo.m */, + E4EC6315B72CAC0F33814470212DCDC3 /* SDLDeviceLevelStatus.h */, + 4E839A485728E494163C610E5F436EA9 /* SDLDeviceLevelStatus.m */, + 382E3AEEA682773DFC104C615B3B6240 /* SDLDeviceStatus.h */, + 579644EEE9880D03CC5BDA3AAA01F743 /* SDLDeviceStatus.m */, + 76D324B05E41128D942966F0A0EEBB12 /* SDLDiagnosticMessage.h */, + 7E8B2B973E85F3287EF6B9408633BD6D /* SDLDiagnosticMessage.m */, + 5550D8512B86F0A9F6C54350FB7AAE2F /* SDLDiagnosticMessageResponse.h */, + 40B5504C8F1E24113D498111742CF96E /* SDLDiagnosticMessageResponse.m */, + 7D5AFE5EC9DFCBD550B6CE009570187A /* SDLDialNumber.h */, + 410C7382DF348567CD7D56ECDD08CAC7 /* SDLDialNumber.m */, + 360BEE262B398C4DAF3FB595771EFA2D /* SDLDialNumberResponse.h */, + B29A443AF2301B12BD576CFDE7A4092C /* SDLDialNumberResponse.m */, + AACAAE80DEC9BA4877F4673B9A256C7A /* SDLDIDResult.h */, + 8A578665B9047694A0F347F293DE12B4 /* SDLDIDResult.m */, + A8A312C4D8E76C9BC500924B32C0A57F /* SDLDimension.h */, + B119F703EFD09662F12A91AC7015A81C /* SDLDimension.m */, + 684377DF2520C00D1850BD09A565E45D /* SDLDirection.h */, + 3D0CF36EE6F81BF9E7C336BFF6FA6882 /* SDLDirection.m */, + D4C1DE17C70124F2EC7ADB7C93FCA111 /* SDLDisplayCapabilities.h */, + 7767E20AEA869F60F20EA97DB0E504E1 /* SDLDisplayCapabilities.m */, + 8A43468737969CFBC34B9E215CE0D886 /* SDLDisplayCapability.h */, + CF06C121B2AD922B5E0F2F9075C29C29 /* SDLDisplayCapability.m */, + 25D424DB2BA7511820D2FE4FCDC9E179 /* SDLDisplayMode.h */, + 91BF1416AB652B4C37A9DEB376B5AEE0 /* SDLDisplayMode.m */, + 7E811202558CAA5E41CCE8C8544776CB /* SDLDisplayType.h */, + E1F96F850E5D86162FB221E7A54E8EFD /* SDLDisplayType.m */, + BF812F295C7BC99D0E7260C44A30FA1A /* SDLDistanceUnit.h */, + 5F8B26301962DAB3A218E94BBF267589 /* SDLDistanceUnit.m */, + BD026A8DACC64BF05FE396E827AA092F /* SDLDriverDistractionState.h */, + C578DE7BA9E0FFC539C979EB88551881 /* SDLDriverDistractionState.m */, + 27513221634E83533BBE60EDA4667D93 /* SDLDynamicMenuUpdateAlgorithm.h */, + D8BC4DC3D5C26DEF7E62FBB6D8922181 /* SDLDynamicMenuUpdateAlgorithm.m */, + D4966D54B828A01F82DC4326A367A6B3 /* SDLDynamicMenuUpdateRunScore.h */, + B8C8AC93E9BA7751B05993A0779C952D /* SDLDynamicMenuUpdateRunScore.m */, + 3C252C93BD400D587AED7514EAE2990A /* SDLECallConfirmationStatus.h */, + F796106033DB7CF49C2AFF239DDD2F71 /* SDLECallConfirmationStatus.m */, + 3416AED17893B065F631CBB7B0714BAC /* SDLECallInfo.h */, + F0851AE5D79F77344448BCED157FDBA1 /* SDLECallInfo.m */, + 326B988FE7A92BB39F45659C26EDF13D /* SDLElectronicParkBrakeStatus.h */, + 9232A35C7990DF5C5A02370607D23D1B /* SDLElectronicParkBrakeStatus.m */, + 02FDA2F0BEF128D86C26F8CC45E68CD1 /* SDLEmergencyEvent.h */, + A58155F4D86C1C49F4B0245936BBF3E6 /* SDLEmergencyEvent.m */, + 84C4889DD2C1AC35B627A69F8C7C3D42 /* SDLEmergencyEventType.h */, + BB4BC0AA3756089C2F90667540A4880D /* SDLEmergencyEventType.m */, + 20E5AD672FECA3D8596890719BD59620 /* SDLEncodedSyncPData.h */, + 2BD6D254A4BA71629C487F7B9B5FF780 /* SDLEncodedSyncPData.m */, + 879D45F15B6B19AD8392A3B6A475AB91 /* SDLEncodedSyncPDataResponse.h */, + 080C0AFE1D0A26741E58932027641033 /* SDLEncodedSyncPDataResponse.m */, + CB94E5F60A8212C2F399605867F18BD7 /* SDLEncryptionConfiguration.h */, + 5DE719023045A4F8E7FB620C98982C60 /* SDLEncryptionConfiguration.m */, + 408658D7DB613F01047698ECAE093D90 /* SDLEncryptionLifecycleManager.h */, + 58FE6CB1EE278E803C1B5FF6EB589249 /* SDLEncryptionLifecycleManager.m */, + 9CED171DA1E775EB6E14EA2D2D5AF5D5 /* SDLEncryptionManagerConstants.h */, + CA172B821F0003F4CA4CF26BF6E2EF6B /* SDLEncryptionManagerConstants.m */, + AE2BAC066A795F9A2BC704A131DD796B /* SDLEndAudioPassThru.h */, + 3FE4CF814EDDBC348C63CE0ADEA512E8 /* SDLEndAudioPassThru.m */, + 9FE66F7EA43B7C8883B49BF7021DBB96 /* SDLEndAudioPassThruResponse.h */, + 40E148CD4DE2F892CDEA9A3C1BCCD3DE /* SDLEndAudioPassThruResponse.m */, + 8619125F9745A7BD3975F3CBD74C4613 /* SDLEnum.h */, + 57FF113F520A5C67641777D6914A56DE /* SDLEnum.m */, + A46B7480DA60280AFABEE933D1777D59 /* SDLEqualizerSettings.h */, + E9865E2D3C6B1D187D3D04C2B429951E /* SDLEqualizerSettings.m */, + 5DE51752FED2D7FE208CE05FC220435D /* SDLError.h */, + 3778DFBEF00494FE5D31E79DFBB96B35 /* SDLError.m */, + 4A5A2F651034AEC49BAE3963D3AA8018 /* SDLErrorConstants.h */, + 430C9D5FCDF96E9E712BC537CDC01EA1 /* SDLFile.h */, + D3DA4CCC5B1886D2AC2DC948D22D54C9 /* SDLFile.m */, + 5CC08B2D1ECABDAF764AE254824DC457 /* SDLFileManager.h */, + 7B8C8887A387D235F538311D49C4D060 /* SDLFileManager.m */, + BB04F62BFFD1CB792E34526F173104FF /* SDLFileManagerConfiguration.h */, + 338899E14AD4EC3E7D4D257B7F18AF1C /* SDLFileManagerConfiguration.m */, + A39FC9ECBCE47531EA0F628BD8F31F5B /* SDLFileManagerConstants.h */, + F07D3E9880A5F22DA73856522EECD33A /* SDLFileType.h */, + 5EF29BC404FD0F315A73C9D9A7351277 /* SDLFileType.m */, + 3FDDB1063EBEFDA59DA01CE662F32CE8 /* SDLFileWrapper.h */, + 5587E86763C14DCAE5CD85F2D66EEE60 /* SDLFileWrapper.m */, + 48849036CC2BEE806DD74887DCF4875B /* SDLFocusableItemHitTester.h */, + DEDA2F4C7E4A828FFB91244C19F756D0 /* SDLFocusableItemLocator.h */, + 11EBD8D7297FC1CE9479C7508D26FEF6 /* SDLFocusableItemLocator.m */, + 4E3E1DD21F0F75C6E6C6BB96CE53E34F /* SDLFocusableItemLocatorType.h */, + E7CCD566D513D6EEC4E95B4D23D395FB /* SDLFuelCutoffStatus.h */, + 35CFB929B710C6200396CA20289832F1 /* SDLFuelCutoffStatus.m */, + D48DCBCD7C2098396B010A87235DBEC7 /* SDLFuelRange.h */, + FCA1A0BB75E977F6C47C984A7E0B7329 /* SDLFuelRange.m */, + 751014CBE69345246F2D0A816DC57EFA /* SDLFuelType.h */, + 16195BA066D92C5855624759BE7284F8 /* SDLFuelType.m */, + 90DBBF1589F80689A14CB59C1644BEE7 /* SDLFunctionID.h */, + 1444B3657275C2D2C695FC678ED8EF62 /* SDLFunctionID.m */, + 356850E904CD295F4FF6ED4BB15D4D57 /* SDLGenericResponse.h */, + 8D1D89E21C967BEB9B2C7C143BF7A6A4 /* SDLGenericResponse.m */, + 20FED3C64AC281061455C114F2CDEEA8 /* SDLGetAppServiceData.h */, + 489CBF13E068A7E6A66DF0EFDFFB7B8B /* SDLGetAppServiceData.m */, + B0D6188E04884E87F16C5D09E4F25B7A /* SDLGetAppServiceDataResponse.h */, + 86B7CD8697FB29C377FF70D301A9BE51 /* SDLGetAppServiceDataResponse.m */, + 13701FFA4C23EEB343B1BAA4DE60E163 /* SDLGetCloudAppProperties.h */, + C3F129DBFD0A6763197FE363BF2CE288 /* SDLGetCloudAppProperties.m */, + 2F7B82FAB4C07FC4227B758EFFFD79F6 /* SDLGetCloudAppPropertiesResponse.h */, + B3717C92695FDC869375458442425C25 /* SDLGetCloudAppPropertiesResponse.m */, + 868ABD43DF81EE49690B9D5C41FB25D3 /* SDLGetDTCs.h */, + 7725181B40E656D5EC95817265FFB76D /* SDLGetDTCs.m */, + D1D048D4CD12A7F93CA9F3BEB86BB85C /* SDLGetDTCsResponse.h */, + 93B36FDBAD2C44E813F8584D034A63CF /* SDLGetDTCsResponse.m */, + 9B104772AA6E58A9F090818DD41BA3D7 /* SDLGetFile.h */, + F6CEE3FF97A40D47F14C11800619E1DB /* SDLGetFile.m */, + D6986E5DF7E39BCD4F822E4CB001676F /* SDLGetFileResponse.h */, + 556E40F610F2EB3D2F7A0EA1C6707035 /* SDLGetFileResponse.m */, + 18C6985E2F4386AC03DB19BF363A41F0 /* SDLGetInteriorVehicleData.h */, + D71F5B91669B94ED03ECE68DF8A69310 /* SDLGetInteriorVehicleData.m */, + 9D07BF9A19096BDE35C54CB33E961268 /* SDLGetInteriorVehicleDataConsent.h */, + D27F5613B42AA93A93AA3040A73BF94C /* SDLGetInteriorVehicleDataConsent.m */, + DC1AB877E125DDBE42B80EF6A00A5F98 /* SDLGetInteriorVehicleDataConsentResponse.h */, + 3030AFD52F92B429CA1F20183DDAE4FF /* SDLGetInteriorVehicleDataConsentResponse.m */, + CF64BCEDC0A50BBDFC1D74C9A0243BEA /* SDLGetInteriorVehicleDataResponse.h */, + D030FEAB644BB0DA021BED593500842A /* SDLGetInteriorVehicleDataResponse.m */, + 12816F5316A38E539BD4FBCC77ADE586 /* SDLGetSystemCapability.h */, + 07761CF3C8D6A5A03E8B321C60A0DCE8 /* SDLGetSystemCapability.m */, + 7AF24E18157165E29DE67C839ABF0DF9 /* SDLGetSystemCapabilityResponse.h */, + BF781992E0488A0904062D8D4D4B7369 /* SDLGetSystemCapabilityResponse.m */, + 6C122D385DA1B67231C109629EFBCF67 /* SDLGetVehicleData.h */, + F325EE523B44B2D99BDB8360522C5DAB /* SDLGetVehicleData.m */, + 41DDF1201E3711F4B246F80D53C3BE29 /* SDLGetVehicleDataResponse.h */, + AFF9F053405AFE53208F5AF054964C4B /* SDLGetVehicleDataResponse.m */, + 950F3C54DD8E214F44E5D973A18C2FC3 /* SDLGetWayPoints.h */, + 0C385BAB9B99A124EC2DEF4D689CB7BB /* SDLGetWayPoints.m */, + CB3E5816DA0A95C87F21D3CEB5CDB491 /* SDLGetWayPointsResponse.h */, + B002378124E8B08D2C433B0CBAE53FA5 /* SDLGetWayPointsResponse.m */, + 21F2AED434573DC685BDADF20194DD4E /* SDLGlobalProperty.h */, + F80DCE9605631CF67528BCC3D2584A4C /* SDLGlobalProperty.m */, + 984B721B08C198B887A18CD320C0C30B /* SDLGlobals.h */, + 43BDEBA0AFE8CD88C63344AA13ECFD35 /* SDLGlobals.m */, + 200CFF87D513357375E0E8A676B4DCF0 /* SDLGPSData.h */, + A9E5A8AA97EA88C0C5010827AA38639E /* SDLGPSData.m */, + 2AB253E744896719697E4F5307AA1F8F /* SDLGrid.h */, + ECBFE3D76862F81C78E80FCF7BBE9EF8 /* SDLGrid.m */, + 257C0CD607BEF7992A0953E0AD01C31D /* SDLH264Packetizer.h */, + FF21715135EC614F06983334F08B0E1E /* SDLH264VideoEncoder.h */, + 511FC688BC8715CB040A0DE1F8B24C2E /* SDLH264VideoEncoder.m */, + F2C4FC36D54FA4DCEB9CB7427F105086 /* SDLHapticRect.h */, + 4149BB003DEF4C5C4BC5B7A332FD6707 /* SDLHapticRect.m */, + 74A65D2D8ED21D32C107935C517191E4 /* SDLHeadLampStatus.h */, + A4C87793B3C6B531E0A6541C94DAFB52 /* SDLHeadLampStatus.m */, + 46523A89CAE6EF97155926063D0C221A /* SDLHexUtility.h */, + DBE7466B721D1E6A2BC31A2D5D2D8124 /* SDLHexUtility.m */, + B965BA54B73AAB7DD28ADEF78BD168DA /* SDLHMICapabilities.h */, + 2B5397A5AAFDDF3AA577CDC4718DDD2C /* SDLHMICapabilities.m */, + 5DFB940A77A15D0F3E0C0C48889F05B0 /* SDLHMILevel.h */, + F833AA2E2D10941E6E078E46A5A395A5 /* SDLHMILevel.m */, + 138D7E23E43103272A89FF94CAF440C3 /* SDLHMIPermissions.h */, + 92CF01B1E30A78C156C0BFFA57CEAD88 /* SDLHMIPermissions.m */, + 22F425A341DF24170003B4CF66D9AB40 /* SDLHMISettingsControlCapabilities.h */, + 0BC571015C3D3C1EF66114AC5050FB2C /* SDLHMISettingsControlCapabilities.m */, + 57E4834E2857ECB273998AC9B9207D2E /* SDLHMISettingsControlData.h */, + C588AF22E8C9EBAD69A20BE6D4709DD3 /* SDLHMISettingsControlData.m */, + 9DA4BCA93C02ABAD3179337438D37C21 /* SDLHMIZoneCapabilities.h */, + 00C68FA444D0ECFF71A216F789929F82 /* SDLHMIZoneCapabilities.m */, + A99EA0FB7F0C4D0EB328913A51F92615 /* SDLHybridAppPreference.h */, + D831A281EF816381B291008A9D4FAA9E /* SDLHybridAppPreference.m */, + 4066A1AC90601F2ED75F112128204143 /* SDLIAPConstants.h */, + 0DD50A61126C05D1E22DD18C08F59593 /* SDLIAPConstants.m */, + 2118A772BE2023279116272EE7B812EB /* SDLIAPControlSession.h */, + 86D33E8FBC03915470B26F43AFCE8644 /* SDLIAPControlSession.m */, + F6B6A40C2D7A321D2ECEFC97E432FD89 /* SDLIAPControlSessionDelegate.h */, + 79D0753524C87826EC27651FB26FD354 /* SDLIAPDataSession.h */, + F92F17C1D868E9CB7F4CF24A1F1EE509 /* SDLIAPDataSession.m */, + F7A97AE27AA359A932FD6703E3DAE004 /* SDLIAPDataSessionDelegate.h */, + 49CD8EE4FC64B30478D9E206DAC78F84 /* SDLIAPSession.h */, + 909B5FA1FF8FFF76425CED5E51AF212F /* SDLIAPSession.m */, + C6E24BC1F0E1A7E4BCD68AF3379A7B00 /* SDLIAPTransport.h */, + 38CB1A0076770A1F273C6EBCD6D8C8B0 /* SDLIAPTransport.m */, + 2A55660E282AE3C863355F2402E8A0E1 /* SDLIconArchiveFile.h */, + 7271B5F541D7EA6BA5478DFBDD079C30 /* SDLIconArchiveFile.m */, + 4BC369B414377098F2BD4E968676D84D /* SDLIgnitionStableStatus.h */, + 7910570CD2F58D8D77EC77D4F5477546 /* SDLIgnitionStableStatus.m */, + 76AA2E78DDBD9125228F85316E09095F /* SDLIgnitionStatus.h */, + E9B4BC1552B9C96F9D0CA45A8320DDFA /* SDLIgnitionStatus.m */, + 5B5DB19512329465920F68B50C253776 /* SDLImage.h */, + AAE83D19F9F6CCFDFBE2E4176612A66A /* SDLImage.m */, + 4BC611A83E6B204442E6053A45D288D1 /* SDLImageField.h */, + 4D3EC08357B4F67E2BD4CACCC0300724 /* SDLImageField.m */, + 506F62C867B2AA4ED9C51CA1DB62873F /* SDLImageField+ScreenManagerExtensions.h */, + 0656901E080D59E2E26E8D8989D2EED3 /* SDLImageField+ScreenManagerExtensions.m */, + F45151BA3773006A971D197673C22C5F /* SDLImageFieldName.h */, + 795BD010B79F761A42E76581AB8275FF /* SDLImageFieldName.m */, + 79E7E805FF542E9C1C6E18B46AFABA56 /* SDLImageResolution.h */, + 12A3FA6BEC26E85A501F2A6A020EDBA3 /* SDLImageResolution.m */, + A60D22A926D93A0D726FFF6A31239E5D /* SDLImageType.h */, + 133621C4947DCE93C647CED71714B924 /* SDLImageType.m */, + E3FF43EE6114A0D361EE11A38FA91FB1 /* SDLInteractionMode.h */, + 4055BE744BC2A9F663E6671A2480D01A /* SDLInteractionMode.m */, + EC650878367AF7C7B83FAEC062BFA3A1 /* SDLKeyboardDelegate.h */, + 9ED6CCE2CF434E4F07A3031783397721 /* SDLKeyboardEvent.h */, + 77E74A07526CBD02470FDA755AB5D6C7 /* SDLKeyboardEvent.m */, + 00F802377FED3220A7D572E90814F78E /* SDLKeyboardLayout.h */, + 6B2B524E9D5A872B97EC4D57EA21E041 /* SDLKeyboardLayout.m */, + 3EC3C54E0392906F04997BCF759C440D /* SDLKeyboardProperties.h */, + 5A695B3A3F27221B6CBE669925E43199 /* SDLKeyboardProperties.m */, + 9041DBA4C0CB716742630EA1FC2D72B7 /* SDLKeypressMode.h */, + 157D461716A9EC90AA0014DEAF19F1BF /* SDLKeypressMode.m */, + CFFD94F699E758B296EBA10E07F683B1 /* SDLLanguage.h */, + 05EF4CC4570D8BE1DE3ECC0889A81ED7 /* SDLLanguage.m */, + 6B09D19145E0FCA24838F5D274F3D523 /* SDLLayoutMode.h */, + BEB3EB4F638B59511646F2FAB436EA28 /* SDLLayoutMode.m */, + 21FF3C3DE15BAD7345BC1A9C2B469984 /* SDLLifecycleConfiguration.h */, + 5D85052B41FE8A425641B594DBE76849 /* SDLLifecycleConfiguration.m */, + 3EB6A8B5DA3D228DF8DC2F364DAA3F73 /* SDLLifecycleConfigurationUpdate.h */, + 6B3EA6783E26BB49A731FCF69628F558 /* SDLLifecycleConfigurationUpdate.m */, + 4BDE7DCAD2B3CFA25E38ADF8F9B7C9ED /* SDLLifecycleManager.h */, + B64A1F3DB42D6EF48AA200C070D9974C /* SDLLifecycleManager.m */, + 3C902D9277607A16626B5FEB6FC12BE6 /* SDLLifecycleMobileHMIStateHandler.h */, + 1D9A91B4DF7620814FB322D536E96E5C /* SDLLifecycleMobileHMIStateHandler.m */, + 37BB95EEE59CD21C3293F54E2CD22CEA /* SDLLifecycleProtocolHandler.h */, + DBA779D91F961DC90E60E31DA4580DDF /* SDLLifecycleProtocolHandler.m */, + E8B87E7B6C490A994E034330CB9660CA /* SDLLifecycleRPCAdapter.h */, + 6F2DC8CFD2770D191663EE9B313E334F /* SDLLifecycleRPCAdapter.m */, + 3999098BE21C5D7373235405AF09F5A4 /* SDLLifecycleSyncPDataHandler.h */, + 445645662A65A1C42078DABD7A20509E /* SDLLifecycleSyncPDataHandler.m */, + 5ED3A5134C0B156DBE89E14A72AB0F95 /* SDLLifecycleSystemRequestHandler.h */, + 0E3170BC3B4F4F5877B69D05DED54CBA /* SDLLifecycleSystemRequestHandler.m */, + 43FC77484E65E9648B5154177DA965B0 /* SDLLightCapabilities.h */, + 7B628B43B6ADADBEB6501E049D64E37F /* SDLLightCapabilities.m */, + 89C99B8EF7D6E80920E770B6E500F5A7 /* SDLLightControlCapabilities.h */, + 6BF96D4C2DA598534A4D8326D5961403 /* SDLLightControlCapabilities.m */, + C793CE4C5804B98CF64AF6F63FDCFD33 /* SDLLightControlData.h */, + B408FA5A72D8BD3C40461CF55C8CC884 /* SDLLightControlData.m */, + 3F343F8E278AA4A0EFBFBC077661846E /* SDLLightName.h */, + 44A033E80AC09276E47884FBDAC7CA19 /* SDLLightName.m */, + 6FEC1FB5460DDB76F458A2F7F27AA236 /* SDLLightState.h */, + 7D162E149D1234C0EC8BD90C863EBC29 /* SDLLightState.m */, + EE8BF2510CC06F2DAEB2AE8D19B4346D /* SDLLightStatus.h */, + 28C885A6D2F4227B45D870A38421B3A2 /* SDLLightStatus.m */, + A59281B6B7A635EC71C289B5AA8FAFEC /* SDLListFiles.h */, + 6D4C1FD6526097EEBD7A4AEE29623C7A /* SDLListFiles.m */, + 4A1B97540C9445EBC294C833B507564A /* SDLListFilesOperation.h */, + 23D8613239E013C85A55566B014E652F /* SDLListFilesOperation.m */, + 554FE2A409FB1FB6BF0E98F233F97E6C /* SDLListFilesResponse.h */, + 633E599F3936F7344FB0DBA1DB5127C1 /* SDLListFilesResponse.m */, + 7ACC18BF8B3AA6A798755C8C4A61E644 /* SDLLocationCoordinate.h */, + D7B42911B767CE7D2DB7CD903DA4BA90 /* SDLLocationCoordinate.m */, + A72EACA38EEC0588D3830851A96A2681 /* SDLLocationDetails.h */, + 4B0CD534B92E485AC78B351897352A70 /* SDLLocationDetails.m */, + 00F5A6A079156BEB8005F1C89BA34E2C /* SDLLockScreenConfiguration.h */, + 1A75D986DAB949A4EA63D5DDFC11ECAC /* SDLLockScreenConfiguration.m */, + 505A39ADC4E3561B7594E28FD0429E64 /* SDLLockScreenManager.h */, + 192A53884A3A908C146B28777940F5E7 /* SDLLockScreenManager.m */, + 3A53E97D25D99A5593B52E88C69877A8 /* SDLLockScreenPresenter.h */, + 663A9EF7F5F3FD6EE0A2CD1D2AC97B32 /* SDLLockScreenPresenter.m */, + D37716D691664883B517AA8C5B0D4D48 /* SDLLockScreenRootViewController.h */, + 0DD50AAA2369E60F10DA24C777F7D9D8 /* SDLLockScreenRootViewController.m */, + F27B5920FDC7FD3CE439214E9756A74E /* SDLLockScreenStatus.h */, + BDFE84853600B6F6F43B3F05550C2D91 /* SDLLockScreenStatus.m */, + 322553C18D16DC8359FEAAC9FC09B82A /* SDLLockScreenStatusManager.h */, + 05AF2492C648CAF3472BCDC0B4D590FD /* SDLLockScreenStatusManager.m */, + 769339F5B0569F2B7DC24EC805CA5828 /* SDLLockScreenViewController.h */, + 576F83EF4D4371B437DFAE8A0F7CFAA1 /* SDLLockScreenViewController.m */, + 72740556340F8C21368CF87A79C8F5DF /* SDLLogConfiguration.h */, + 9998667EF3AD9356F74EFEBA18B71B18 /* SDLLogConfiguration.m */, + 78F5E319075CD2E0DA4A60935A86DC1F /* SDLLogConstants.h */, + 95FA5938BB91EC86606D7D35B36D1799 /* SDLLogFileModule.h */, + C3BEF3FC0B61392A43041463481D99DC /* SDLLogFileModule.m */, + B051F7FF13D4892208EA8EDC154E67C2 /* SDLLogFileModuleMap.h */, + 6832CC0E9D2EAF6011514D2D39624749 /* SDLLogFileModuleMap.m */, + ECD19B85A34BEFF3300F295ACCA65603 /* SDLLogFilter.h */, + AF19BE6750BCA76EDC3A8FC9E6C92344 /* SDLLogFilter.m */, + 3D0EE4570CF0887B91A7C8D2E2E0414C /* SDLLogMacros.h */, + E5657CE38BB08F9563C92FE224B79FB1 /* SDLLogManager.h */, + 14A578E900D2B9BF8DDA0AE05B717967 /* SDLLogManager.m */, + 4AC029B73C422385316B810096AC575F /* SDLLogModel.h */, + 39EDE1E04ABABDD6EB636AABBB6871A0 /* SDLLogModel.m */, + CDA21BAF0A80764F863AA3136B132BCC /* SDLLogTarget.h */, + 3A8807AD416E6BB85AFA2FF648C9ADFD /* SDLLogTargetAppleSystemLog.h */, + A677CF8D17087FD37FABB05CE8384E98 /* SDLLogTargetAppleSystemLog.m */, + CFAE2994F819888468C9D2EAC8918FDF /* SDLLogTargetFile.h */, + 383B3E8FFC31FF9511326F14714F98E2 /* SDLLogTargetFile.m */, + CA97A48978C804461E3488F28629372A /* SDLLogTargetOSLog.h */, + 185F3515C64226DE214C71343949C0A5 /* SDLLogTargetOSLog.m */, + DB53BFBC217D15847AE38FD82BFE5014 /* SDLMacros.h */, + 761B798C05833C28B0A217F40C5D9DC6 /* SDLMaintenanceModeStatus.h */, + 9356A9B7DF203B1E599FF67CDB2AB2F4 /* SDLMaintenanceModeStatus.m */, + 5C810B6DB2EF473A10A3289A980D1430 /* SDLManager.h */, + D725474F95CF3A37D8217D26C3D33F69 /* SDLManager.m */, + 2ACE82786CE0ED6B2A519263CE025F18 /* SDLManagerDelegate.h */, + B41E3BF75DB009256653DF32F1496FE7 /* SDLMassageCushion.h */, + 18C8558030DFB952D8D24FA06D63E520 /* SDLMassageCushion.m */, + D987EAF5E95BE2470E9AFACD43D35461 /* SDLMassageCushionFirmness.h */, + CF7F2682404352A5DA48275A68971699 /* SDLMassageCushionFirmness.m */, + E46DCE56EFD40F057672597BEDF9BC5C /* SDLMassageMode.h */, + F0D39ACA0371B8A981CE9CDB1FE1F3C0 /* SDLMassageMode.m */, + F52EC5B14583173C4125CAE62815F05C /* SDLMassageModeData.h */, + 5482FBD961552B74651C104693279E71 /* SDLMassageModeData.m */, + C9703269E7ADB6FFB0BAC46F741BF3E1 /* SDLMassageZone.h */, + D9FCEE47A681128EBFB0EFED02719BE8 /* SDLMassageZone.m */, + CF03C1888031E3BA51620916196E3F13 /* SDLMediaClockFormat.h */, + 798FBD4B8BEE30A8944489D1A694BFDD /* SDLMediaClockFormat.m */, + A9BC3AA38D28D6FBC7BBBEB0A7D0B622 /* SDLMediaServiceData.h */, + 352942891F72F2773BF5C6130A6AF9B9 /* SDLMediaServiceData.m */, + 6C69A475BAE41EDD24A00FB701BC3EC6 /* SDLMediaServiceManifest.h */, + 08C7E71E744D35BDA4283D2972693EA5 /* SDLMediaServiceManifest.m */, + 815DBEEF21C974D2236762AC3D4FADB1 /* SDLMediaType.h */, + 3E982E3129EE1BF2B88BE3ECFD70CFE7 /* SDLMediaType.m */, + 4B0B69E8E7BE0B46B0C8659E5046F112 /* SDLMenuCell.h */, + F5A4EE85CC2237920F6A3B30FCE073C4 /* SDLMenuCell.m */, + B47755B35347AB14C2570D1F7A7BC934 /* SDLMenuConfiguration.h */, + A6A3F4A1DAD219F117FF921A98B3E55B /* SDLMenuConfiguration.m */, + 7F44E48D23E1A8174BD093395CF63563 /* SDLMenuLayout.h */, + B6A8B110CC3F7818FE4E9FBF59DA7831 /* SDLMenuLayout.m */, + 2D879437E0B1DE45D4D626AD9DA1BD58 /* SDLMenuManager.h */, + 26FD9D1C417A073A9574CE798E12DFED /* SDLMenuManager.m */, + B2564FC1D10877AF9A91ABEB9100B92C /* SDLMenuManagerConstants.h */, + 9C86D4CBB2B58B5DB610CFA8980934F5 /* SDLMenuParams.h */, + 49732759D432317F0DA45A467B441A1C /* SDLMenuParams.m */, + 5A116087C3B6EFD78EC43CDA42ED9FA1 /* SDLMetadataTags.h */, + 7F4125C10AB281EFB11D2A890DF0DE61 /* SDLMetadataTags.m */, + 90137F76EDA22309EDDAEF4418590198 /* SDLMetadataType.h */, + 8B735CFF284972E87F85DEDF52E7B4B0 /* SDLMetadataType.m */, + 7B4F218D5BBC11B808F5FCB846D65C36 /* SDLModuleData.h */, + DF00C9E7609E5400EC4274851BEB8AE5 /* SDLModuleData.m */, + 4B887B61299E3CDBAD04F3FAF0C642DB /* SDLModuleInfo.h */, + 3ADF6F4E6226B439753C2A759A9860E3 /* SDLModuleInfo.m */, + A11273079923EC17BEF8EA166ED142FD /* SDLModuleType.h */, + FC83851939F611364060849E34FD8F54 /* SDLModuleType.m */, + 9B778D29FEEFC0DD5D2556DE02F267F8 /* SDLMsgVersion.h */, + 8B140D8D2A0B9E079DA6C09D0FDD57F2 /* SDLMsgVersion.m */, + E069D9D3F86160512916B7ABC072595F /* SDLMutableDataQueue.h */, + 695B8ED2FCC305054E59AA1279EB261B /* SDLMutableDataQueue.m */, + 031BBB010D945FCF674851CA3A00B9F3 /* SDLMyKey.h */, + 98FDC0A54C018DFA5E057249D1EDF737 /* SDLMyKey.m */, + 16EBB6180D66091B30DBE5C095E5CD44 /* SDLNavigationAction.h */, + CA602EC4E5C28004D96933F0A7FC26A5 /* SDLNavigationAction.m */, + 17471B77EFB1B0CCB584D1BD7A3C1953 /* SDLNavigationCapability.h */, + 9BD062E44BAEAC8F381D25BB2C49F775 /* SDLNavigationCapability.m */, + 01F187BD4B1741FD143AC9FEE6B6A9B8 /* SDLNavigationInstruction.h */, + 7BF22D8F89AAD3C5356C6D640553D7C9 /* SDLNavigationInstruction.m */, + 218552AF91635BA12359F7249694AF3B /* SDLNavigationJunction.h */, + 60E560ED9A603C1EE72D1DC626FC9DA8 /* SDLNavigationJunction.m */, + E9F85118D824B3F5F59A8305E48245E0 /* SDLNavigationServiceData.h */, + 1FF1117561E991A2D81068EDFF178C65 /* SDLNavigationServiceData.m */, + F05E89950AFAAE21DF32ACB82FC50FCB /* SDLNavigationServiceManifest.h */, + 50FA0F82B0F0FD360E29F2AC0D2F05D1 /* SDLNavigationServiceManifest.m */, + 113CB9707D2133750B2A74C8E4E75D53 /* SDLNotificationConstants.h */, + FF791906F1FC8B75F3E5D9D9CDE8DADE /* SDLNotificationConstants.m */, + 2540FB48A65EFCB11FB8B5156DBA8201 /* SDLNotificationDispatcher.h */, + E2A334FC98479B6D81A09D35E4975DDA /* SDLNotificationDispatcher.m */, + C9CB658027934C58CB5E44288BDE79BE /* SDLOasisAddress.h */, + ECA0A1828C5374CB24D7B145DA5A60D2 /* SDLOasisAddress.m */, + A83D74392A8FBE5A5BBCC7D29249B943 /* SDLObjectWithPriority.h */, + D8C3E2092639989CC311D760FEFFF098 /* SDLObjectWithPriority.m */, + F5DE8533E913F68EBF72EDF7E4D95FDA /* SDLOnAppInterfaceUnregistered.h */, + E9BCDAE3BF99C86CED1A5CB6384054CA /* SDLOnAppInterfaceUnregistered.m */, + 08FD56690946400B66FA81A3473A5CD0 /* SDLOnAppServiceData.h */, + 07586438D975F70590DE46C92B04B3D4 /* SDLOnAppServiceData.m */, + DD3CC83A67C250A8A7230DECEE87840D /* SDLOnAudioPassThru.h */, + F3A5F47BE1D6B4E4B91C6E9FDC9B8BB3 /* SDLOnAudioPassThru.m */, + C26DB840FED234F39D27C9C871BAA550 /* SDLOnButtonEvent.h */, + B123B8245FE7984988B165A780AED107 /* SDLOnButtonEvent.m */, + 0A3F5B7EC0DC340080344B57171997C6 /* SDLOnButtonPress.h */, + 1A761B2562737FE71DC9907B5B509B09 /* SDLOnButtonPress.m */, + C2FA6304D4FBBE0B4EAE346B56077504 /* SDLOnCommand.h */, + CFE665A143945D4F523E9805AC91DEE2 /* SDLOnCommand.m */, + 610922E85FBDB66F79FF6230A47D4B75 /* SDLOnDriverDistraction.h */, + 31788B292B69F3A09E1B6F39CAD277FB /* SDLOnDriverDistraction.m */, + CE553E3605D4CBF175959C2A6AFFA992 /* SDLOnEncodedSyncPData.h */, + E72FB018DC8626B10CEA4186C29DEC69 /* SDLOnEncodedSyncPData.m */, + 01576AC9DF9C06D0764239C2D918DB93 /* SDLOnHashChange.h */, + 6EAB0821E72518202FBFA198CD9E48F0 /* SDLOnHashChange.m */, + 88A98EF18C6CD1EA711938578B4CB959 /* SDLOnHMIStatus.h */, + 1E50C0F6174603A652E389F91F94FED1 /* SDLOnHMIStatus.m */, + 682C1E866A0552DF161B4CA6BE8C02BD /* SDLOnInteriorVehicleData.h */, + FE30695FCCBB7E0CC7987C538AFF14FD /* SDLOnInteriorVehicleData.m */, + 72DEFC52DA69C0042103401227D6AE2E /* SDLOnKeyboardInput.h */, + EA45F0C83A48EACA03748C23787612AB /* SDLOnKeyboardInput.m */, + 533F7AB90936113C747905A9130536F7 /* SDLOnLanguageChange.h */, + 057374D02ED1566D4CB631DFB6705D55 /* SDLOnLanguageChange.m */, + E7BB33F82335ED3BB74B4FA4B921F6D0 /* SDLOnLockScreenStatus.h */, + DBDC0BCD9D5A756A12269D89CA68E411 /* SDLOnLockScreenStatus.m */, + BE78691CB41A6B40E2140633BB7AA4A7 /* SDLOnPermissionsChange.h */, + 36421268915268D123352BDEDA5AC948 /* SDLOnPermissionsChange.m */, + 5543FDC0294954DF0D4040D2E4999970 /* SDLOnRCStatus.h */, + B753AC886E9C4581F99D019C2AE558E5 /* SDLOnRCStatus.m */, + CCDD6594ECBBE163AA3B6819EAECDD83 /* SDLOnSyncPData.h */, + 86206B1B96CF24D8B99B4EE97C44B185 /* SDLOnSyncPData.m */, + 2845FF7035CF7F607706E501DB44DE7E /* SDLOnSystemCapabilityUpdated.h */, + 0F83E2FDBC27F6BEBC1DB1957CD550D9 /* SDLOnSystemCapabilityUpdated.m */, + E2F7792FEE3F880C4B7A2CEF50105C43 /* SDLOnSystemRequest.h */, + C0739DA52D74882686FE054F273446BD /* SDLOnSystemRequest.m */, + 80B228053FDFC1AE6EC6A285F9C67826 /* SDLOnTBTClientState.h */, + 6B5BA0CEC12E67BC7F5BD539A70729DA /* SDLOnTBTClientState.m */, + 88FA7221DE85C8EE3F58E1425E6640BF /* SDLOnTouchEvent.h */, + 44A6433D1239C8C9171A35AE33070626 /* SDLOnTouchEvent.m */, + 2BE4028ADAD57F4A9176FEBC20B5EC95 /* SDLOnVehicleData.h */, + BA1EE36D54B3E51448786809008AA6D3 /* SDLOnVehicleData.m */, + 9701CAEA001B151A3237DDBC5CCC06B0 /* SDLOnWayPointChange.h */, + FF9381D8A697377FEAB359470F3303BD /* SDLOnWayPointChange.m */, + 079C8504D554E430687E23C3BB9F291F /* SDLParameterPermissions.h */, + F91D92B21B5BD8E0E4A09822AE93C6CC /* SDLParameterPermissions.m */, + 8B8E77F2592BA2AADA9952C6A050C4E2 /* SDLPCMAudioConverter.h */, + CFAE9C8809F27A20EA7BA366B50D1D09 /* SDLPCMAudioConverter.m */, + 66A4B1A486BE8F5F2523D7B998E03397 /* SDLPerformAppServiceInteraction.h */, + B6F87FE59A859BA349CCDEFB67E12842 /* SDLPerformAppServiceInteraction.m */, + B456CA5D8FC2BB67712D9BE46D2EA781 /* SDLPerformAppServiceInteractionResponse.h */, + 6F34249B622DD4B497630858D68F221B /* SDLPerformAppServiceInteractionResponse.m */, + 4411DAF1B7858D84F9A5933F44751B69 /* SDLPerformAudioPassThru.h */, + C1B55A5D6E1EA252835733A44DF307EA /* SDLPerformAudioPassThru.m */, + BF926AC06548F171C59AEE3EFD6254AA /* SDLPerformAudioPassThruResponse.h */, + 1079F5E8BF4B26941ED6E2AC3446BCC1 /* SDLPerformAudioPassThruResponse.m */, + 95FF4C52E66589C119C22DF3909390AC /* SDLPerformInteraction.h */, + CB91F38B3D46D7DF0F73684B53D3BDD8 /* SDLPerformInteraction.m */, + 1550A67573AAF420DF46830D2328EB6F /* SDLPerformInteractionResponse.h */, + D0219EB46973A2D486CE1181ECA2FE0F /* SDLPerformInteractionResponse.m */, + 7510FD20D7400BF8B329E618E46A0A19 /* SDLPermissionConstants.h */, + 8B8673925B5FFBCA631C8D9562197C41 /* SDLPermissionElement.h */, + B9F98F256A89963EAD420D333EB31F37 /* SDLPermissionElement.m */, + A5DF934A09C6ECE921C963F3156E087B /* SDLPermissionFilter.h */, + BE76E8F8542A250DA8DF7178F62984AE /* SDLPermissionFilter.m */, + CC4534AF33C9B2498C5DB1A3A5B390C3 /* SDLPermissionItem.h */, + 9C3239BD5861D539F39785429EBE0EFE /* SDLPermissionItem.m */, + 5C083E636854B0B9353C528C02DD0119 /* SDLPermissionManager.h */, + 6E5DD878D3427D986DE5573FF06202CB /* SDLPermissionManager.m */, + 2741946AE645F8BDA0E4E6BEFA965D56 /* SDLPermissionStatus.h */, + 5AA15811C6C82B48B1CE0CF72D93BB8E /* SDLPermissionStatus.m */, + 0C86980F55A57904FF85C7623588A367 /* SDLPhoneCapability.h */, + A8D2591CD0E614AB45EEE6E819BC5715 /* SDLPhoneCapability.m */, + C9134305738F77B0E852842422F81D36 /* SDLPinchGesture.h */, + 3F25040FF627FE9246171E4EA90E8CA3 /* SDLPinchGesture.m */, + B1CFEA53176A71E567B91FF0E97CB278 /* SDLPowerModeQualificationStatus.h */, + 678F1D8B5E1A5F63E7E494C394BAD3AA /* SDLPowerModeQualificationStatus.m */, + 743FE6CD7692742CFA7D4D7A6E714FC7 /* SDLPowerModeStatus.h */, + AB4899E896AC7243959C641E40D9EB6C /* SDLPowerModeStatus.m */, + 1C8B86BA2EF69ECCA8BB0E915700E2FD /* SDLPredefinedLayout.h */, + A638ABDCA82A0FCFD9E2949D129993CD /* SDLPredefinedLayout.m */, + FB3EB42F4E00D78C3E9D2EAB0CD56A65 /* SDLPredefinedWindows.h */, + 346DD6B5C6DEFF7D91F128D926AFB0FE /* SDLPreloadChoicesOperation.h */, + 1EFA016E112D9F7CEE1696C8B3D236C1 /* SDLPreloadChoicesOperation.m */, + 0DEF9947C4576AE910482FFD434E878E /* SDLPrerecordedSpeech.h */, + 8A18641DB12A7690CFBB24321A955BBC /* SDLPrerecordedSpeech.m */, + D34DA30DA43361D2C480A221DBB67CD0 /* SDLPresentChoiceSetOperation.h */, + 78A7A95A29CAE2745B67B7C2F0F5FCD4 /* SDLPresentChoiceSetOperation.m */, + 813217C2A949443C3D0F3B06A2A3F439 /* SDLPresentKeyboardOperation.h */, + A8F9E32E9728CC43CF973F445B0435EF /* SDLPresentKeyboardOperation.m */, + 565B69B36A8F76F2E5BC0B5883391027 /* SDLPresetBankCapabilities.h */, + C9122F060BC11803A66A7401A0F946FD /* SDLPresetBankCapabilities.m */, + BC5A329C0A76812EF1D11777FDB665A8 /* SDLPrimaryAudioSource.h */, + D08EB5D57959DC19650C80C22DAB3BE6 /* SDLPrimaryAudioSource.m */, + 1F9EA7382A67871A90547746B880626E /* SDLPrioritizedObjectCollection.h */, + B274AD52B0FF57921A0C62CA06B15804 /* SDLPrioritizedObjectCollection.m */, + 74AD80168C993652453FE3971FF647BC /* SDLPRNDL.h */, + 02F85B02BD1D0104B4B4F60FE4E0B7A3 /* SDLPRNDL.m */, + 9C610CA798F30FD6426257E526AC02F4 /* SDLProtocol.h */, + 37A578EB03978AF09B4B22E2D9B48EB6 /* SDLProtocol.m */, + CB1A8B920D83FAD8420BFA57B9376BD2 /* SDLProtocolConstants.h */, + C6544B04071C10C4B60339851B191DEB /* SDLProtocolConstants.m */, + A697E2FEB8F9928973AF1D4697F0C023 /* SDLProtocolDelegate.h */, + 303674032980DBA4C264AC80AD1BF117 /* SDLProtocolHeader.h */, + 1E1869CDF2207B055D23A497C6184140 /* SDLProtocolHeader.m */, + C93964422ECEFB35C0A15E1AC214E587 /* SDLProtocolMessage.h */, + 9377AFD1675D463C7129EA86B5DB2AFC /* SDLProtocolMessage.m */, + DADF8BE5914CC5FDE27CC4C54E6F38A6 /* SDLProtocolMessageAssembler.h */, + 4594CC3FF1671BC10D8439D6DD794F5C /* SDLProtocolMessageAssembler.m */, + 7225B3942F9C5E129FA86F41720C7403 /* SDLProtocolMessageDisassembler.h */, + 438BFB4FB40C6B387CF8D49072456C32 /* SDLProtocolMessageDisassembler.m */, + DCE361553E0EABB14A1C509A7093DE01 /* SDLProtocolReceivedMessageRouter.h */, + DD6BDB7BD482EF289B2480B8CA328408 /* SDLProtocolReceivedMessageRouter.m */, + DD54737AADEC12705D5ED30EB6CA1A1B /* SDLPublishAppService.h */, + 76424AB29A53E628F57743FDF2F79FEF /* SDLPublishAppService.m */, + 1FD7EEC34E8024D6A971F56B948E0EE1 /* SDLPublishAppServiceResponse.h */, + 70634D4480B4DFDAB8FA657ADAEF768B /* SDLPublishAppServiceResponse.m */, + C78E389C985303221ECDC5D18E6DFD51 /* SDLPutFile.h */, + FCC94AEE7EC43BA74EEFA5EC841EB296 /* SDLPutFile.m */, + 731A9565B4A85AFC0CCB16E396BCCA40 /* SDLPutFileResponse.h */, + 63D098D74619FDADF2DBEDAB8939A5C8 /* SDLPutFileResponse.m */, + AAA96D67B0E11DC1C39AA70AED46098E /* SDLRadioBand.h */, + 98E14E95533F49ABC0D74A2121D62620 /* SDLRadioBand.m */, + 7026D561A07AC0E8C0BE86D3E4C3DA7A /* SDLRadioControlCapabilities.h */, + 35CB1DE90D5986B9423B7DFF67E9C2CB /* SDLRadioControlCapabilities.m */, + E7F0A2E1BCB7060346CDE26635657E5B /* SDLRadioControlData.h */, + 41EEEB77F744D0ED3EF519C0FD308F2D /* SDLRadioControlData.m */, + 199A9F6B336A337B69923DC5C5B8543F /* SDLRadioState.h */, + 6FFAB5BB716F6C328E6A31CC62B4B11D /* SDLRadioState.m */, + B11185632289362C4E685A33488343CF /* SDLRAWH264Packetizer.h */, + D516C013762946799CEEFE4D998577D4 /* SDLRAWH264Packetizer.m */, + 8B261757A2927398D6F981A1FCC62A65 /* SDLRDSData.h */, + BF737E9FCE10383D22E0AC258DC505F8 /* SDLRDSData.m */, + 303C3E1F855B7BE56C54751F8820643A /* SDLReadDID.h */, + 2947E91CDA3B132E494738EF13BCB952 /* SDLReadDID.m */, + 44849D20DBCA2A08A69AC1CC08D2E12E /* SDLReadDIDResponse.h */, + 96983BEA7459A4232662DD0F57B29510 /* SDLReadDIDResponse.m */, + FB0998F7945F98866D5AAEC80A248E5B /* SDLRectangle.h */, + 9304883AC1BF7D236BA9C5D9EF93A4AD /* SDLRectangle.m */, + 7F28BC6B50D22A511ABF2860A5A43136 /* SDLRegisterAppInterface.h */, + C1B0FF7E975829A08686F5A95439E6AF /* SDLRegisterAppInterface.m */, + 88CF0A4361A069189BA99DE9D9F45FB5 /* SDLRegisterAppInterfaceResponse.h */, + 8C3E14078B0F9E5376F9494B8D3CA4C7 /* SDLRegisterAppInterfaceResponse.m */, + B7A802ACC8F876FF3416830E0C985866 /* SDLReleaseInteriorVehicleDataModule.h */, + C23DBC473A201419B768CC403C329AA9 /* SDLReleaseInteriorVehicleDataModule.m */, + 1B4F48B7943331568869C78731D2C1A3 /* SDLReleaseInteriorVehicleDataModuleResponse.h */, + 895A7D207902140EBA17041F62E54A34 /* SDLReleaseInteriorVehicleDataModuleResponse.m */, + 6E44B29B11FFF564D52CADA80FF7E157 /* SDLRemoteControlCapabilities.h */, + 8C3E1DA75336E5B7703B366F52EB61E9 /* SDLRemoteControlCapabilities.m */, + F1A2C4D06CB5BAF62E5ED897C126990F /* SDLRequestType.h */, + 2EC4FB6334D52A0DA36EAF8AB148A89A /* SDLRequestType.m */, + 068BB05FC0F060EEA4D7C2CA18384BB6 /* SDLResetGlobalProperties.h */, + 7442CCEB4D854A9A904B550B922A6AD7 /* SDLResetGlobalProperties.m */, + D76301C2554A02484AFC7B13C487F7AF /* SDLResetGlobalPropertiesResponse.h */, + 0EF49DE50EC4EBA86EC32278ADDCE591 /* SDLResetGlobalPropertiesResponse.m */, + 96FDD76CCE5AB56B5E2F2065E5AA5F04 /* SDLResponseDispatcher.h */, + 304AFE04E482029F914E870FCBC54E4F /* SDLResponseDispatcher.m */, + E3B71900EA08E804133F37E5D6ADC285 /* SDLResult.h */, + EC49183B2BDBFC8AF747ABD142598757 /* SDLResult.m */, + 53151FA74CB6E2324C41DA26D397B648 /* SDLRGBColor.h */, + C17FA75188543D16F15C11D353AD7B2D /* SDLRGBColor.m */, + 9502CA77DD202D38FE595ACBF6558DDD /* SDLRPCFunctionNames.h */, + 04F52C5DC12FEA3AC1931C02FEB88081 /* SDLRPCFunctionNames.m */, + FC04BA45906F2ACFB5C2465C9AB915A3 /* SDLRPCMessage.h */, + CF9460897660A78535CEA62503CB6771 /* SDLRPCMessage.m */, + C336638C51C89E3892AB1E786D8D97A6 /* SDLRPCMessageType.h */, + 00D366651669905A0972F086586FA9B4 /* SDLRPCMessageType.m */, + 873FE0283FBF8E45FCF48C1242A364F2 /* SDLRPCNotification.h */, + 9468B7F69A0644FCBBCDBB810795C4B3 /* SDLRPCNotification.m */, + E89CF33AA04C619DDD01D52E4CA9ACA2 /* SDLRPCNotificationNotification.h */, + AF5B172A3AB107D165BE0B845E9FFA33 /* SDLRPCNotificationNotification.m */, + 450AA0AE78066B15DEBE4151BFA7A1DD /* SDLRPCParameterNames.h */, + 1FBCD2AEAD60094A7CB51F32D61FDFDA /* SDLRPCParameterNames.m */, + D935E4ACA5BD1466555211496C5A0F89 /* SDLRPCPayload.h */, + 7B78A428E3625D60C6EDC36E0B0E2FAA /* SDLRPCPayload.m */, + 271D810484AEA55E4E3F80C25773E46A /* SDLRPCPermissionStatus.h */, + FFDB98B89A59A3B2447CB847429D8C87 /* SDLRPCPermissionStatus.m */, + DAD38BC5045E2280587608630721EB31 /* SDLRPCRequest.h */, + E8061A69F7A640BFC2198A1B24F37983 /* SDLRPCRequest.m */, + 6A682C7A761BD4627EABB545706018F3 /* SDLRPCRequestNotification.h */, + C2325615A6C0BEAE35B68E675087D313 /* SDLRPCRequestNotification.m */, + C4F2955E72C9BC6322E9F39A5C0BCCE7 /* SDLRPCResponse.h */, + 80BA52F7804336DB0F03FC8F1C10CD00 /* SDLRPCResponse.m */, + 8B5BC1A9155BA8ED843E0972909B9572 /* SDLRPCResponseNotification.h */, + 50CB8DB198313EF592E6A9DE3B0F6CAC /* SDLRPCResponseNotification.m */, + F0E6D6348ED4BE7016042DB10D5CB6C1 /* SDLRPCStruct.h */, + FC438DC201BFBEC2EE4025086F8313F9 /* SDLRPCStruct.m */, + 4D75BCCCC055F72C4B46F1FF7ADE460C /* SDLRTPH264Packetizer.h */, + 0ECF2069806AE61431252D9A6ED62A8F /* SDLRTPH264Packetizer.m */, + 7D6BD3775E7938F10CC4DDE5EFEB12C2 /* SDLSamplingRate.h */, + 9B617AF0E9B7984864BBC87BCDA8FD50 /* SDLSamplingRate.m */, + 7E994AA0B434ED590CB3CEBE77F7F72F /* SDLScreenManager.h */, + EA005E80F14C30BEEAD6843C40AC7D05 /* SDLScreenManager.m */, + 64BA143AD255D19B934724F34E2072CD /* SDLScreenParams.h */, + 3C4374789272475208038484B688328D /* SDLScreenParams.m */, + 831E596C3FA752444D1ABCA67DB7BB9F /* SDLScrollableMessage.h */, + 33A2A786BDAED219574077742C9AA3FC /* SDLScrollableMessage.m */, + BB097D4C8A058214236F5DA62E2D55D0 /* SDLScrollableMessageResponse.h */, + 5B384DD0203EADC9A558BDBF6CCD33DA /* SDLScrollableMessageResponse.m */, + 74815297D14D7E57559C2C6AF0F29BBF /* SDLSeatControlCapabilities.h */, + 7E948ADD47AA0D93F041A0773607D8D6 /* SDLSeatControlCapabilities.m */, + ADECF6F036198C3154612FAAE7A54AA5 /* SDLSeatControlData.h */, + 59D419F67DD1ED5642ED9D9BBE63D388 /* SDLSeatControlData.m */, + 790A157900FC0357E1E10AE048065C70 /* SDLSeatLocation.h */, + 95168703431BF300E73567EE607D8A0C /* SDLSeatLocation.m */, + 39FFFBA8ED556FDD85EBCF18BF7898C8 /* SDLSeatLocationCapability.h */, + 5E027DB1F50B0C19CFFB73267754D157 /* SDLSeatLocationCapability.m */, + F60CF60AC5E2912FDBA7FB16CCDD927F /* SDLSeatMemoryAction.h */, + 80D9C9B56D254F2A33C2AE1EA81D9AF6 /* SDLSeatMemoryAction.m */, + 7AEB6BF5F6EEEDDC3AD1882CBE90B52D /* SDLSeatMemoryActionType.h */, + 2205A00A1B4704AA9532149FA266EF7A /* SDLSeatMemoryActionType.m */, + A4A011384B18AB35F5D5E7615AABE7C2 /* SDLSecondaryTransportManager.h */, + 4937DF05A2FDF67D435549105737E0AD /* SDLSecondaryTransportManager.m */, + 1580E808E8B8B029807BCC9320D098D6 /* SDLSecurityType.h */, + 4157869D41FABE62B8C192F3D08F1612 /* SDLSendHapticData.h */, + 82F4D26F5662FB5B045698D0F6EA082B /* SDLSendHapticData.m */, + B837E51434913D84E58B09A8B04A7E84 /* SDLSendHapticDataResponse.h */, + BA836CEA6A1C9872BEEDA51C34FBD2BE /* SDLSendHapticDataResponse.m */, + 2F06DFF88342148FB4F6EA0481D909CF /* SDLSendLocation.h */, + FDB100B41F41367A5046A8650FD53430 /* SDLSendLocation.m */, + FD4A03C289D0C51D2ADFA923A6B14728 /* SDLSendLocationResponse.h */, + F12CCA82A48E7EC083C69337418DE2F1 /* SDLSendLocationResponse.m */, + F45A44BD6C12AA0EB5B0553231CD72F4 /* SDLSequentialRPCRequestOperation.h */, + 675E2F625AECD899CD113C3918FD540E /* SDLSequentialRPCRequestOperation.m */, + E82FE3223DC169D9038DD1EB8FC32E30 /* SDLServiceEncryptionDelegate.h */, + 6A942A35064A0FA53F092510D10B5198 /* SDLServiceUpdateReason.h */, + 38E58E6ACD990EA45CAE7C8353A814AC /* SDLServiceUpdateReason.m */, + 20237D47AB74244F657CB78EAC6D5E1D /* SDLSetAppIcon.h */, + E78CAECB818A0AAFD5ACB1B475C157D2 /* SDLSetAppIcon.m */, + DD6D85898628258D6A68C4B679B238B1 /* SDLSetAppIconResponse.h */, + 3F9AC4187700727AA62E02334C521533 /* SDLSetAppIconResponse.m */, + B43FBF384A4067786E679B690EA2BDCE /* SDLSetCloudAppProperties.h */, + E4AC2494F1A779D80138CD7A5D8980C6 /* SDLSetCloudAppProperties.m */, + 06C8E96119F2882B4C2C262F67AD29E7 /* SDLSetCloudAppPropertiesResponse.h */, + FB773F958DBC067615AA9A0590DBCC61 /* SDLSetCloudAppPropertiesResponse.m */, + 881E4C25BD44C40E029B9496CF96582E /* SDLSetDisplayLayout.h */, + BE4CA9FAD52700FBCAD76C76239758B3 /* SDLSetDisplayLayout.m */, + 02D17977948909712E8F721ABB765601 /* SDLSetDisplayLayoutResponse.h */, + E7334963A37BC3A08C266E45F0DD29B9 /* SDLSetDisplayLayoutResponse.m */, + 29F0F5DC74AC7556C287B80348D40588 /* SDLSetGlobalProperties.h */, + F735242ADEB26A3EFED063A728FBFD17 /* SDLSetGlobalProperties.m */, + 221567F33875BCC7E8D9E6448B21CAEA /* SDLSetGlobalPropertiesResponse.h */, + D28C9BD0381F41CC4ECCDB3308A2629C /* SDLSetGlobalPropertiesResponse.m */, + 4F29D039A34A2CA78536348CE96D9ACA /* SDLSetInteriorVehicleData.h */, + 3323659F219E52681E8003E7972EF6C6 /* SDLSetInteriorVehicleData.m */, + C1B6C3AA7551CF9A652411C8E74DBF34 /* SDLSetInteriorVehicleDataResponse.h */, + B7506383773C5D6EDE24916C30190446 /* SDLSetInteriorVehicleDataResponse.m */, + 009617EB39512D02064536C0802DF918 /* SDLSetMediaClockTimer.h */, + B63DE7845F5EA943E8C3BC9F2728CFB8 /* SDLSetMediaClockTimer.m */, + C4AC1439B1DAC65A9F876F7CBE5B8E3F /* SDLSetMediaClockTimerResponse.h */, + DEF6AE23910B9300DD3A0EB0B277C68E /* SDLSetMediaClockTimerResponse.m */, + B5B59F14B5A937BCC17AE1731AC44B43 /* SDLShow.h */, + F21009FEE092F6591C2E5955ACBCD7A7 /* SDLShow.m */, + 38E242E9C5BDB3380CD5DE37E9262B8D /* SDLShowAppMenu.h */, + 4C9AED1F70FC929F9636D503F5A4B658 /* SDLShowAppMenu.m */, + 950FAD2DDF31FA20CDC674CA6C66F3C6 /* SDLShowAppMenuResponse.h */, + 77D15E8AD5A19B2ED89FB10E91070268 /* SDLShowAppMenuResponse.m */, + 8B39BA281073C47D8203292D7923D0E8 /* SDLShowConstantTBT.h */, + F3623CCA82E15DB239231177AEED9FE2 /* SDLShowConstantTBT.m */, + 4484173D9CEBA083E87CF3BC381D844B /* SDLShowConstantTBTResponse.h */, + 5D3D372A87B4AFED15B15E0EC89F51A5 /* SDLShowConstantTBTResponse.m */, + C55134DFAC0BA632F4739F88E9C22F64 /* SDLShowResponse.h */, + 745681F76A482E1B3B632F0DDCDF603F /* SDLShowResponse.m */, + 31BBFBBEB2100C4535679ABAF5A55F79 /* SDLSingleTireStatus.h */, + EA25911F974B5B30D235AC704A107388 /* SDLSingleTireStatus.m */, + B66ACED6C9FBD518D39C8CDB3849E983 /* SDLSISData.h */, + F9FDB0D2AA9E98077817EB3B8C90BC03 /* SDLSISData.m */, + 0E30FC7A94025A61E6EA176845E4BEF3 /* SDLSlider.h */, + 6657481C1066F2BFD64C601F0DE30820 /* SDLSlider.m */, + 5CED9E972E8876CBE62B74E0A508DB50 /* SDLSliderResponse.h */, + 4D48E02753FA770CE680D9502BD8F27F /* SDLSliderResponse.m */, + 57C40F8D0811DF6059FEDB49AEBDC69C /* SDLSoftButton.h */, + FF05E55CA61B330811455432212034C1 /* SDLSoftButton.m */, + F281EBFE5ACD2B7340F65D4E7EEA5416 /* SDLSoftButtonCapabilities.h */, + 84184A09E2EEE69596297343EBF3F35F /* SDLSoftButtonCapabilities.m */, + 74E30D8D3F070C400D8A5A719C652BE3 /* SDLSoftButtonManager.h */, + 511CF82F1FB9D8A7C5929F635B3E778A /* SDLSoftButtonManager.m */, + D825304615E69EF79423978DDC24A034 /* SDLSoftButtonObject.h */, + 388D88A1DB6D4B1CECD8ADE296D05335 /* SDLSoftButtonObject.m */, + 7A2CC1AB9C604A7E227193554050F049 /* SDLSoftButtonReplaceOperation.h */, + CF4CCE42229C9A7F2C4FACE1B032A768 /* SDLSoftButtonReplaceOperation.m */, + E7395392C63B23687A1B8E76B8AB07F7 /* SDLSoftButtonState.h */, + 6D40C571D57B74A89D78D4877D935250 /* SDLSoftButtonState.m */, + 3B4CDDE3895D8DB904D1109A078E3244 /* SDLSoftButtonTransitionOperation.h */, + A61B36731BEBEFB3938CDFBFC1EF305B /* SDLSoftButtonTransitionOperation.m */, + E72B649C1BBFB6CC29A8201C5681766D /* SDLSoftButtonType.h */, + 611B8EA6CFB53369E15F75B735E1EF03 /* SDLSoftButtonType.m */, + FE1C11AC277FD13D61BE3491397D447F /* SDLSpeak.h */, + 060F9D8B01CC5577C06B7438BDB833E6 /* SDLSpeak.m */, + 7EE602770509983D76D37ABED9C3EB57 /* SDLSpeakResponse.h */, + 20267DD8ABB8C4937C58CB114EFA029A /* SDLSpeakResponse.m */, + 0308C13EE2FCDF4DBE02F2C11AFBFC1A /* SDLSpeechCapabilities.h */, + D68BE4979539A4404F1FA1C07DC34D55 /* SDLSpeechCapabilities.m */, + 9E2E8F901CA5F0F91FB51345F05D3027 /* SDLStartTime.h */, + BA6551D7C8879D8E91C30E3DB455E34C /* SDLStartTime.m */, + 6A41267BCF7ACCDD59CABE41F6C1B46C /* SDLStateMachine.h */, + 1D74AD8B5D8CFF4297D85C83D4BAD091 /* SDLStateMachine.m */, + 16E0FE4610CAA939B208269D597C2BBF /* SDLStaticIconName.h */, + 4C31BC277EBBE8EABF6F1F7725ACEEAA /* SDLStaticIconName.m */, + 92FB143CC43A57BDCD09A5180EFC7A56 /* SDLStationIDNumber.h */, + 856D3BA7D8F100C4E870645839EC4088 /* SDLStationIDNumber.m */, + ED4168058B624B5FDD47D387C6D1E8A2 /* SDLStreamingAudioLifecycleManager.h */, + 6C22133A4EF2323F887466EC7EED58C3 /* SDLStreamingAudioLifecycleManager.m */, + 9F0D8AB40C82029C65CEECC77D7D8C1A /* SDLStreamingAudioManagerType.h */, + 0050DA0BCF8282C74B54D6A62D359073 /* SDLStreamingMediaConfiguration.h */, + 23FBC3FE7098E4D00F7657B9BFDBF6AA /* SDLStreamingMediaConfiguration.m */, + 95B6A24926E184BDA559B418D4A20232 /* SDLStreamingMediaManager.h */, + C4251A6C0C3D88AFE2E87AE0572B7B32 /* SDLStreamingMediaManager.m */, + 235D21011FFD874789BF1B303492BB80 /* SDLStreamingMediaManagerConstants.h */, + 2D2BE3CCEA4B2BB726B06E6675B831E6 /* SDLStreamingMediaManagerConstants.m */, + 0482261E0D79D54F44C861DCF5D31296 /* SDLStreamingMediaManagerDataSource.h */, + EE1FAE9A70F6C11454D435DA45460256 /* SDLStreamingProtocolDelegate.h */, + 9249C3F27F0E10C1E2F52FF5AB75D618 /* SDLStreamingVideoLifecycleManager.h */, + 5E182A82AB3C691E7B275AADAB942174 /* SDLStreamingVideoLifecycleManager.m */, + 95F535D382BB81682B987861B7CB0DDC /* SDLStreamingVideoScaleManager.h */, + 9FFB29DF01447220453AB1CF83DD5396 /* SDLStreamingVideoScaleManager.m */, + 14CAEF2A13506951EA87997CC4AA236B /* SDLSubscribeButton.h */, + D476F4C1BDF441FDB174D26DB9437AD3 /* SDLSubscribeButton.m */, + 18CF297ABA10DB64D20A22E9C6634FF1 /* SDLSubscribeButtonManager.h */, + 889A9936FDAA22D7E7DACA85443E9515 /* SDLSubscribeButtonManager.m */, + 5CEDDEAFB2948E2135AAB8C34A9C9277 /* SDLSubscribeButtonObserver.h */, + D1451982C674F8C57D7939A9DC79695B /* SDLSubscribeButtonObserver.m */, + B552BC411A63CECEDC496B62D1B4B8FE /* SDLSubscribeButtonResponse.h */, + 85B58642FDAB1B0A7547822E7591B829 /* SDLSubscribeButtonResponse.m */, + 347ECC1742A5C5DD03FA8380821DB34F /* SDLSubscribeVehicleData.h */, + F5911DA96561B2E0DB4E79F8EF63A561 /* SDLSubscribeVehicleData.m */, + AD92E87BD9A9816EC4D59E0AD66C1E62 /* SDLSubscribeVehicleDataResponse.h */, + D765E0A70DFB9714A0F405D852A66FAB /* SDLSubscribeVehicleDataResponse.m */, + 21D8EB78FB694C0B9754FB236AD82B6E /* SDLSubscribeWayPoints.h */, + 60C9980F7C06B067A4739AEF6364E6BB /* SDLSubscribeWayPoints.m */, + 5F9EFD1A81F30902BAA0BFD14E95906A /* SDLSubscribeWayPointsResponse.h */, + 84BCD84500C53F400D5B51AB716B9A7C /* SDLSubscribeWayPointsResponse.m */, + 8DE402844A0376A05C991CFC47EF599E /* SDLSupportedSeat.h */, + D42E48D6CC0F6C034CFD9C9FF1EED954 /* SDLSupportedSeat.m */, + 53A6F7FC8DB6771A7F606C83EE0F33E9 /* SDLSyncMsgVersion.h */, + ECE02258B281F599E9F848CF9A440B6D /* SDLSyncMsgVersion.m */, + 1D2180BDF4301C114F0173CBFE678364 /* SDLSyncPData.h */, + 2C10B9546CABAE071881D281D73820BB /* SDLSyncPData.m */, + C754499B66CE148E693BB1FF1F468E2A /* SDLSyncPDataResponse.h */, + D3B8CF68FC478BF3823F6C4D2995ED5A /* SDLSyncPDataResponse.m */, + F113CD1AE27E195E8E894E7CEFF2C186 /* SDLSystemAction.h */, + D90AE10D126FDEAC9EC89DC2DA4C9C9C /* SDLSystemAction.m */, + 7D4B95B4B14683496035C798353826CA /* SDLSystemCapability.h */, + 0BBAEFCD3A5756020019D66827B7F6BA /* SDLSystemCapability.m */, + CCD15C77520926C2D6DE6C44A380FD73 /* SDLSystemCapabilityManager.h */, + 773018652B375661E7ABA7CC63A04D1D /* SDLSystemCapabilityManager.m */, + 7CE2B2F33B9741F264BE0D9D55A6BF32 /* SDLSystemCapabilityObserver.h */, + 19FBDDF5290895EF460401DCB7F2C9EB /* SDLSystemCapabilityObserver.m */, + 4B5B5ADAAD2A74CAACA981BBA0E650AC /* SDLSystemCapabilityType.h */, + AB9A647494B575CFA5ADA8C3FEC415DF /* SDLSystemCapabilityType.m */, + 05EF0182EFA11F347688F90D543F5C41 /* SDLSystemContext.h */, + 9CB3708FD84DFD102864FB3A724A9689 /* SDLSystemContext.m */, + 6F81576D0E235C0559B93C3A3784A4A6 /* SDLSystemRequest.h */, + F08A40DF1E002E9280563EFB8F024E54 /* SDLSystemRequest.m */, + 8659E6ED0DA1E9DEB1C42B4582F2C284 /* SDLSystemRequestResponse.h */, + DD46481394302F4F857FA386B5B3D6D8 /* SDLSystemRequestResponse.m */, + 1535EB0F1986701BB26F15612FD19173 /* SDLTBTState.h */, + A4525E374C0C6592950D6900876AA4F2 /* SDLTBTState.m */, + A26A29D7E64A6FED6EAEC44F2DAB8EF8 /* SDLTCPTransport.h */, + 74883F69A6EF23F8FE9794EE3CEE21EA /* SDLTCPTransport.m */, + D16DBA7C10C34D2E22A67C65927F8D25 /* SDLTemperature.h */, + C30E238F7AB23166E9F59B321FF1EDFE /* SDLTemperature.m */, + 9E8C49B9AEFE2B7A0D27192F5F4FE6C7 /* SDLTemperatureUnit.h */, + DB37F4EF3E6ADA6FA78C8A414C2980AF /* SDLTemperatureUnit.m */, + C1F3C424DD2CB129EBF8CFDEE9E339E1 /* SDLTemplateColorScheme.h */, + 87C67CACB98D0E3DBC70C30114AA819D /* SDLTemplateColorScheme.m */, + 8DC2041DC5B9A5327C3B94AB4B3B41E6 /* SDLTemplateConfiguration.h */, + AA9CE864FB36C4F19622600C8C289B7C /* SDLTemplateConfiguration.m */, + 1ECBAA05C55448900253CB47419A5374 /* SDLTextAlignment.h */, + 09287D9F2DCDB16BF6E036447C615805 /* SDLTextAlignment.m */, + 1908048E1CC8A27E740EF38F5430D864 /* SDLTextAndGraphicManager.h */, + 1E5F2C4BA784D2770AEA68069BA870A6 /* SDLTextAndGraphicManager.m */, + 9C51B2936414DC95DE04ABA7C8408101 /* SDLTextField.h */, + FCFB1CA08F9688C66B82C8C2EDFDC54D /* SDLTextField.m */, + FB6A10D40CFC0CC11ECFD6D0C56D5A5E /* SDLTextField+ScreenManagerExtensions.h */, + 270D8238A2295E6936F9BCC907DD8BB1 /* SDLTextField+ScreenManagerExtensions.m */, + 76849B1E655537F0605C6BABA3DBCE8E /* SDLTextFieldName.h */, + 6BBEC9CD4C3851AF20E177DC499AFC7F /* SDLTextFieldName.m */, + C05B25FD08F4EDE81BBF8E97080430FB /* SDLTimer.h */, + 5EA4853DDAAB63EC25DE5EFCC17C1914 /* SDLTimer.m */, + EFD2738443614AA486E73684C49EFD84 /* SDLTimerMode.h */, + 52AD32EB63C924C84FDEC6DD43F329EE /* SDLTimerMode.m */, + 013381222E2F09C3FC30E0546F2E0E85 /* SDLTireStatus.h */, + 881888E1F3926DBD7D2B8B9D4057B6B9 /* SDLTireStatus.m */, + 37100CC61CBB83D8FD8AF13BB98BCD14 /* SDLTouch.h */, + 2B6AA11A6ACA1FEDE8194897C492F598 /* SDLTouch.m */, + DC1B6BD9F7404CCE757869AF75DC0434 /* SDLTouchCoord.h */, + 180F965AD76BFA9FF73D2E6A17D76C66 /* SDLTouchCoord.m */, + 5DB8E34CADC6FD344370C3E41DF04943 /* SDLTouchEvent.h */, + 72279C07ABBAEA264B9075A1A89C7434 /* SDLTouchEvent.m */, + C4A900A3C04D81E8AFE979A9CD841CF8 /* SDLTouchEventCapabilities.h */, + BF47CEA7D6AB8CCC5CC7B1A41D6BD3B0 /* SDLTouchEventCapabilities.m */, + 691225BFF1BB8235FF07367825ECE854 /* SDLTouchManager.h */, + 709665B2A1B0E940E288AE35CA99AEDD /* SDLTouchManager.m */, + B1C140D9FFA2E9FCFD8A401D69499C73 /* SDLTouchManagerDelegate.h */, + F831CC11D420FA3CB7D9E212B2E9874C /* SDLTouchType.h */, + 745677B913DC8E4E41FB2994B6781B3B /* SDLTouchType.m */, + 117F46D8AD9F12EC389BFEC8EC4A4A7F /* SDLTPMS.h */, + 842712B0CDF8A50C05707074C6B3E1BE /* SDLTPMS.m */, + 6EB24F185C13507CF836631F5BDF0A2C /* SDLTransportDelegate.h */, + 4085E3CA18C0C722411355146D5FA236 /* SDLTransportType.h */, + E0F50AF8211EE62DF94E01FA5E79CE67 /* SDLTriggerSource.h */, + 399963B38F59EC81F67BF3E9E31B2F1B /* SDLTriggerSource.m */, + FB58EAC6AED2BCF3595566AB716728B0 /* SDLTTSChunk.h */, + A6FD2FA90F20F6C5140D25FA0A41EB8C /* SDLTTSChunk.m */, + 3798CB99A6B7352DEED2C27BC86F9E32 /* SDLTurn.h */, + C1C6FBB24C1BC5CA5A7F2B3C4FFED418 /* SDLTurn.m */, + 57D658C85ECE3E69E79BB2FABFE5E487 /* SDLTurnSignal.h */, + A47E1D7E285C5B3399B259F741739553 /* SDLTurnSignal.m */, + CA63DD963834C98C595F586200D303A2 /* SDLUnpublishAppService.h */, + B70A1025E2176483677FE18DB926E317 /* SDLUnpublishAppService.m */, + C3BF3454AF3C68B1EDF2469AF1478D8F /* SDLUnpublishAppServiceResponse.h */, + B777CF456AFE62300FFF21779B554D81 /* SDLUnpublishAppServiceResponse.m */, + 6D1B8BCE12335818CDCDA92072B0EE7F /* SDLUnregisterAppInterface.h */, + 6EA2B752BEA8AAB3CDE06DD763FC4CAF /* SDLUnregisterAppInterface.m */, + 18D0C94E081C5652700A6657D0150BDA /* SDLUnregisterAppInterfaceResponse.h */, + 166F38C67540EA16117D3D9B0786CA65 /* SDLUnregisterAppInterfaceResponse.m */, + 32C3FE6D390A5D3DF3DDB3C3E02CD486 /* SDLUnsubscribeButton.h */, + 4B14A2B419E2DC947711544B4DFA5659 /* SDLUnsubscribeButton.m */, + 78BCD3CBF28669B305138E89FAF33DE4 /* SDLUnsubscribeButtonResponse.h */, + 08DA15E3B091636F3E38EEE53E5BD64E /* SDLUnsubscribeButtonResponse.m */, + F1F3ABF315700CBC59CCB9DDE42C0C6F /* SDLUnsubscribeVehicleData.h */, + E6A9A7FEC27852B2A0E5BC59182279C3 /* SDLUnsubscribeVehicleData.m */, + BF23B355A2ED03E01AACD1364CDE9011 /* SDLUnsubscribeVehicleDataResponse.h */, + 052CE8CBD47B13C4CF8725945BB4F79B /* SDLUnsubscribeVehicleDataResponse.m */, + A4BF66140123996F41DEFF60B1C946BD /* SDLUnsubscribeWayPoints.h */, + 5B4549A9A5E6AF77B821A8EA6F04A858 /* SDLUnsubscribeWayPoints.m */, + 576CF948F88ECCCBFAC0594C7F4040B0 /* SDLUnsubscribeWayPointsResponse.h */, + A40F0AF559343F73CD03D070F06706FF /* SDLUnsubscribeWayPointsResponse.m */, + F3CD46DEB812EEF3053AE7AD322133F4 /* SDLUpdateMode.h */, + 087970D423C4D2D7AB2EE1EE71444F15 /* SDLUpdateMode.m */, + 59F1B488251110BAEA799A5E7C83E6A7 /* SDLUpdateTurnList.h */, + 2156D0BCF6E0BA97352362D70EAD4710 /* SDLUpdateTurnList.m */, + C2B0CA84D3B9C68D496FD66419D566C3 /* SDLUpdateTurnListResponse.h */, + 6965165C7082ACB5194C99CB6FA07E6B /* SDLUpdateTurnListResponse.m */, + EBA42054F2C0D64D68F0AAFBD937E5CC /* SDLUploadFileOperation.h */, + 927F104C5BC3088472101359E0E7B4FE /* SDLUploadFileOperation.m */, + 3B07FF648818147BBC509B12366D5DBE /* SDLV1ProtocolHeader.h */, + 2761563B654943CE2BDBA7FAEF303886 /* SDLV1ProtocolHeader.m */, + B74B5802B681CDB3E7A210BB0EEEB7D0 /* SDLV1ProtocolMessage.h */, + A457A96BC13A557BA1810EA50BC942AC /* SDLV1ProtocolMessage.m */, + 9303C2006A43927A3DDDA863577D7E24 /* SDLV2ProtocolHeader.h */, + 7B3EF2AF2354F5AF6D7A430764CE2C2B /* SDLV2ProtocolHeader.m */, + BBD4EDFBF8EE19B3FBA0F3448A7B54B1 /* SDLV2ProtocolMessage.h */, + B96A1767D28449410C3C9A92255D7FA9 /* SDLV2ProtocolMessage.m */, + 9238647073F63757659A703F1665A4D8 /* SDLVehicleDataActiveStatus.h */, + 182F56830437E660474472022B3B6A98 /* SDLVehicleDataActiveStatus.m */, + EB86E9E686A67D3B92112A90F2138FF8 /* SDLVehicleDataEventStatus.h */, + 363A1394DE1FFD6DF123791772377320 /* SDLVehicleDataEventStatus.m */, + 6D150921AE68F0BB3EE9419F5B9B006D /* SDLVehicleDataNotificationStatus.h */, + 544D38C68F8828FD1E9856024D36B44D /* SDLVehicleDataNotificationStatus.m */, + 3EB05BE08F0592AB8A2B2E5AA70E41FC /* SDLVehicleDataResult.h */, + 7C4733935F901007F3F62700534869C2 /* SDLVehicleDataResult.m */, + BA96306DAEE794F0C9FC374D0556DB27 /* SDLVehicleDataResultCode.h */, + 93667B5FF68BE37BC728FB920DD912EA /* SDLVehicleDataResultCode.m */, + 11BAC842CBB10B4B7C24DD4A558F24D1 /* SDLVehicleDataStatus.h */, + 7E745564AE37D33E39D0D5F6C4614133 /* SDLVehicleDataStatus.m */, + 84439E65ABFB04398E7E8680FA2A7755 /* SDLVehicleDataType.h */, + 3A703348831CBF1811100C05D2D7FC44 /* SDLVehicleDataType.m */, + 52A7852C42AC1A630401AD0DB04DCACD /* SDLVehicleType.h */, + C3EBDE4679B3284A0BCAA44A5D195BF4 /* SDLVehicleType.m */, + CAFA794CC2E87DB83C46EC3AF3A8F7CD /* SDLVentilationMode.h */, + 372472FCDD67DFC4CADCCC7B18520B62 /* SDLVentilationMode.m */, + 25F504266BEC635D2B9887837CA00D26 /* SDLVersion.h */, + A8F74D221FAE93D785BB127D2DBA24CF /* SDLVersion.m */, + AC622C32763FF5BF0D5E745522571CB6 /* SDLVideoEncoderDelegate.h */, + 53F45435EC8D3A8BC571D18035BCFCC2 /* SDLVideoStreamingCapability.h */, + 5ABA9D773535CC39A270DD8160147CAB /* SDLVideoStreamingCapability.m */, + A80BF767FDD68AB1636D37FBA5E4E345 /* SDLVideoStreamingCodec.h */, + FA7A7DA3C20C1725AD9388188E89250F /* SDLVideoStreamingCodec.m */, + 808D3D1BD6F1044040D5B2D458E4B21C /* SDLVideoStreamingFormat.h */, + 5AE2355374C44304F88A7DFB00858AA2 /* SDLVideoStreamingFormat.m */, + F3FC5C1D5936F9A265745B7DB5851979 /* SDLVideoStreamingProtocol.h */, + 9C1B74D20AD626E1FF7D59D1201016C8 /* SDLVideoStreamingProtocol.m */, + 2F27E3C03AA7B2EAA902D3C1D95090DB /* SDLVideoStreamingState.h */, + E0A61B983B6B91FDF2BA49150AE2356C /* SDLVideoStreamingState.m */, + E809A18658FB035135235C331745934C /* SDLViewControllerPresentable.h */, + 18305D4E4A21F03086AE858DAC4C9BC4 /* SDLVoiceCommand.h */, + 4B28910E4BB86E3DEC060B763E45C0FA /* SDLVoiceCommand.m */, + C6724681B057A0BC81FDCBB5C63008EA /* SDLVoiceCommandManager.h */, + B476612D209040FF1C5E1D9D7D7DC068 /* SDLVoiceCommandManager.m */, + 585E39B167E64180E6C78FEC200638A0 /* SDLVrCapabilities.h */, + 8715DA57587883550705045298299293 /* SDLVrCapabilities.m */, + 45E554466607C0B6553630AB6FB0D015 /* SDLVrHelpItem.h */, + 27CD966D3D85688EC1467BD37B74D1E0 /* SDLVrHelpItem.m */, + A877633FFF7377994C92687A4E85E718 /* SDLWarningLightStatus.h */, + 22F32629EED3C3C993F19F29509552C5 /* SDLWarningLightStatus.m */, + BF5EACB795A74BEECD2B2D57A5D74C00 /* SDLWayPointType.h */, + 10C447C90A40A49C0653E0D97B15E7C4 /* SDLWayPointType.m */, + 19139224AA63FB5E62A3D689DD610047 /* SDLWeatherAlert.h */, + D570A1BD7CC0E6336C341706DE07CA56 /* SDLWeatherAlert.m */, + C185C026B8EEB00D5EDD482420CEB1C7 /* SDLWeatherData.h */, + 69C08735FF330FCAC39AB5054B9E06AA /* SDLWeatherData.m */, + D22DDB6D7F55F6ED4E2E018BE51EB987 /* SDLWeatherServiceData.h */, + 1B74FBD65102DD04AAD49A5F43E8D28B /* SDLWeatherServiceData.m */, + E78CF1EFD9F68E40428F71D4887D5C50 /* SDLWeatherServiceManifest.h */, + 8DCEF38864BBC13A94861FE01FD6837C /* SDLWeatherServiceManifest.m */, + 4417737422CDA6FC54D20FD73B984618 /* SDLWindowCapability.h */, + 2643EB480894991204DC88CA218D09C2 /* SDLWindowCapability.m */, + 53F7A94FC00388D92F20C90B87BE945C /* SDLWindowCapability+ScreenManagerExtensions.h */, + E6F7F96110B8644ABA5E6DE312BB0D7F /* SDLWindowCapability+ScreenManagerExtensions.m */, + A84893E9B393129BECE4A90B2112AA3D /* SDLWindowType.h */, + 53911CEF89F12CFA7AEA7FF43FBF7E06 /* SDLWindowType.m */, + E9D2FA097525605C95E2AFE782A6BE6C /* SDLWindowTypeCapabilities.h */, + 9AF964C803E435C54BC6C0D5656BC75A /* SDLWindowTypeCapabilities.m */, + 4A84D0C360959095854C5870445E677B /* SDLWiperStatus.h */, + 89DF44BE873C0C35B93160AF2AFA563E /* SDLWiperStatus.m */, + 8AF84943922331DACE393EFF73879043 /* SmartDeviceLink.h */, + B7462198B3907DB7D73BC29114E41EAA /* TestSubscribeButtonObserver.h */, + 8A5AD3441FF3C7D1A42E2F592EC01E42 /* TestSubscribeButtonObserver.m */, + 16078D60F18D9059209E00CB8AAD1C5E /* Resources */, ); - name = "Pods-MobileWeather"; - path = "Target Support Files/Pods-MobileWeather"; + name = Default; sourceTree = ""; }; - 9C15808B654D772B81B471949702CF7D /* Products */ = { + 51CE33EBE8FFBC30BEF32E469BF01E5D /* Support Files */ = { isa = PBXGroup; children = ( - 10A3387C1452124DC53D5493FAF3D437 /* BiSON.framework */, - F5A2F0A7C6B254D76F97A2422CF221C6 /* Pods_MobileWeather.framework */, - 2C02C584E9C325081E3002F99447C832 /* SmartDeviceLink.bundle */, - 22DAC079C1CE51D75F9F7BEFD7B1A840 /* SmartDeviceLink.framework */, + F19067B542E8E8B13534A927F11732B5 /* BiSON.modulemap */, + 1E9A0368A42FD75DB7B35822E72FE4CA /* BiSON-dummy.m */, + E0EBAA870975DA984A3928C8DCFE7A40 /* BiSON-Info.plist */, + 8E55EFB9D3BAD62918F64D3B710B38F8 /* BiSON-prefix.pch */, + 66FD520D0728F8EF271910AF32E9C621 /* BiSON-umbrella.h */, + 7F2C5F89F8B578C3FB94E3AF3276CD61 /* BiSON.debug.xcconfig */, + BF3B79CB79DA4BF9796E3C06A34739EF /* BiSON.release.xcconfig */, ); - name = Products; + name = "Support Files"; + path = "../Target Support Files/BiSON"; sourceTree = ""; }; - AE15DDFC52EA382558E11158499D0F9E /* Default */ = { + 540154A38CD9903DE4406A1DDBCCB05F /* Pods-MobileWeather */ = { isa = PBXGroup; children = ( - 77939ECABAEB5EA4A870437D89954DCF /* CGPoint_Util.h */, - 5B67A0A948EFB9B13F0BD857E76ABAF1 /* CGPoint_Util.m */, - B2B07452EB490C836759502C767F6B41 /* CVPixelBufferRef+SDLUtil.h */, - D73D5CCFC3959A9781B253DDEBD3804A /* CVPixelBufferRef+SDLUtil.m */, - A865F676AEF73BD55A0E77571040471F /* dispatch_timer.h */, - D155EBD2551C3459E8B41CA19D856235 /* dispatch_timer.m */, - 84D9C9895A536BD8FB295228F8BF0398 /* EAAccessory+SDLProtocols.h */, - CC8FA7074043AD0EFEB34FD5CEE11BD1 /* EAAccessory+SDLProtocols.m */, - 25E2288919FDE557C4ECB6A34711AA4D /* EAAccessoryManager+SDLProtocols.h */, - D322261099FDC3DD07B50C9CC5B1D750 /* EAAccessoryManager+SDLProtocols.m */, - 51D7FA6FD82FCAA3F5859800C0D06812 /* NSBundle+SDLBundle.h */, - 0890FF58FA08063F6B8494B01ED4A3B4 /* NSBundle+SDLBundle.m */, - 58B239BE8E1A3830C8DF443CC8EA4305 /* NSMapTable+Subscripting.h */, - 746FCB82877FFB49197939B552D51B4F /* NSMapTable+Subscripting.m */, - C3005BFD588C3A07F340E4B0B61F3DCF /* NSMutableArray+Safe.h */, - 1A48D38CDD0CE56654C1E9EE2F457669 /* NSMutableArray+Safe.m */, - B5429C05F82922A34D6A265163EECD6B /* NSMutableDictionary+SafeRemove.h */, - 98B6D6A6F9EE01A14C26E8C787AEE11B /* NSMutableDictionary+SafeRemove.m */, - 1BB32C87E0F8872B526E252CB1DD75D3 /* NSMutableDictionary+Store.h */, - 016CB9356FC0EC057F66DB2E23F3B304 /* NSMutableDictionary+Store.m */, - 468C5536AC1C0F7231083ECCF5A80D53 /* NSNumber+NumberType.h */, - BE57DE8735A70DC258F0E7D61021E93F /* SDLAddCommand.h */, - 1EFC421DB5D3D2E385A73B206770639E /* SDLAddCommand.m */, - D207F9B285022DA6A6CFAFCF14839E58 /* SDLAddCommandResponse.h */, - 089D381F3674AEC193EFE48A7114A602 /* SDLAddCommandResponse.m */, - 7E7D416F7CD293790F14F8B197775B43 /* SDLAddSubMenu.h */, - 8656F2DCBCA042060742160FFB6A86F8 /* SDLAddSubMenu.m */, - 22FA33898196119A09E11F83C8B822C4 /* SDLAddSubMenuResponse.h */, - ADD61F9CDD3CE6E6EC48EDEFE524E4CD /* SDLAddSubMenuResponse.m */, - A5621B5B05BA15084E7A134229CADA90 /* SDLAirbagStatus.h */, - BEDC2BDA5B8E9DAF263D585755CB6C1A /* SDLAirbagStatus.m */, - F8422108EBCA981187191FB5C1C6143F /* SDLAlert.h */, - 50B8BBC9E1B415E5920A1FBA5133F375 /* SDLAlert.m */, - E2089987A5A19A000806B07EDD110D60 /* SDLAlertManeuver.h */, - E521173FA983C64B20D3C21020B9DAA0 /* SDLAlertManeuver.m */, - B4199F609394E04D0432D522B8AC2E3C /* SDLAlertManeuverResponse.h */, - 7809E403E7F8FC0692079B5A7A0D8D33 /* SDLAlertManeuverResponse.m */, - 209D2EF1609225256F98BE7E93F0E3D8 /* SDLAlertResponse.h */, - 3D866FDF5A5451BCEB413407002EE42B /* SDLAlertResponse.m */, - AE3FF30889101C49187282BA51A8910E /* SDLAmbientLightStatus.h */, - CF3E1C96AFEC7BF390F28147CA4DD532 /* SDLAmbientLightStatus.m */, - D035F9030267FD1C5A40D1D1D91D8B01 /* SDLAppHMIType.h */, - EF6EF59CA601C0D108179F0F6F5C5085 /* SDLAppHMIType.m */, - 23EE9A21D80BC70F8C3386F5544D3716 /* SDLAppInfo.h */, - 4D15B10D35949DEF7E116F8929404525 /* SDLAppInfo.m */, - CA11528DBA2B358F2D49F69157EDCADB /* SDLAppInterfaceUnregisteredReason.h */, - 00B26898CBB957B7498A0668CCF94CAE /* SDLAppInterfaceUnregisteredReason.m */, - DA0D770C6A62BBA6A4927E049FD5FC38 /* SDLArtwork.h */, - F0EB0D36D05552D95A93CA685238686E /* SDLArtwork.m */, - 3E0F179B62A3D0B60D754AE594FDCD90 /* SDLAsynchronousOperation.h */, - E8D76C1021781ED7448582B85A5F97EA /* SDLAsynchronousOperation.m */, - 527A7F8C142E616553D35AF4098262F1 /* SDLAsynchronousRPCRequestOperation.h */, - 273F3F9D10D2856912B911242697AB75 /* SDLAsynchronousRPCRequestOperation.m */, - 2CEC5466A9425A1BCFF272CB96BB09CF /* SDLAudioControlCapabilities.h */, - AE4BF1C901C2B8B8492E917831A635EE /* SDLAudioControlCapabilities.m */, - CDE5462216ECC40BC5E269381EBEA719 /* SDLAudioControlData.h */, - D8B425573155D00965E31D784C070BB2 /* SDLAudioControlData.m */, - 6B6856DBF98E284150E71B1C1DA80384 /* SDLAudioFile.h */, - A6E4EB5AC1D8300869EFD910BC546776 /* SDLAudioFile.m */, - F7C5259708F8AF4982C24C1ED677BA04 /* SDLAudioPassThruCapabilities.h */, - C395176F9C59B6418BA47A1577018FAA /* SDLAudioPassThruCapabilities.m */, - 19C8E45308B74793CF2A9B319797F667 /* SDLAudioStreamingIndicator.h */, - 42EBF47E8F2913EC1CE334E935EB5CCB /* SDLAudioStreamingIndicator.m */, - 7BEA19A69DC688C8CC9315D69EB8BEB5 /* SDLAudioStreamingState.h */, - 05044B5C8892129FF1D36B124D5DC0C9 /* SDLAudioStreamingState.m */, - 230B9E5E007D13813F3B04ACEEF59470 /* SDLAudioStreamManager.h */, - E3BF372C29FFEDC636D34D2F7BADCAAA /* SDLAudioStreamManager.m */, - 74A196E00B38B0AA6CE7F5CFC4361BB1 /* SDLAudioStreamManagerDelegate.h */, - 4CB88BEF9293FF56B12501BD13427203 /* SDLAudioType.h */, - ADACFA394C1A41666990BA02285C1D35 /* SDLAudioType.m */, - 2088BFCC8505D1E1234DF6E077FBF1ED /* SDLBeltStatus.h */, - B024EAAE8FE8613F0B95316436C6A9C6 /* SDLBeltStatus.m */, - D1C593EF742A7DEA18F01646BC598132 /* SDLBitsPerSample.h */, - B0CF7AD880B807C0CCA2FC1036A68225 /* SDLBitsPerSample.m */, - 5817B772125FFF900077E9623DCD7E0F /* SDLBodyInformation.h */, - 80BEAB2A97883B43F91D11C970DBFFE7 /* SDLBodyInformation.m */, - 2336A40D34E885F254A79371F2D5B37E /* SDLButtonCapabilities.h */, - 2F97703AD5D975F96461DFEF2BD9BE22 /* SDLButtonCapabilities.m */, - C6B82BEAAE6A7BEC7C2C08C051A6FF6F /* SDLButtonEventMode.h */, - 5BEB89763BD1E176E41C5EBB3826F50C /* SDLButtonEventMode.m */, - 19FDF6F587885D1F611772CA7772CAD2 /* SDLButtonName.h */, - F783AA681B65EB189DCDDBF0D479C97C /* SDLButtonName.m */, - D189D97BE1019749C8B66808AB77A27B /* SDLButtonPress.h */, - E814731FA7DC9943F7B808D89A9B9F91 /* SDLButtonPress.m */, - 5403F40FB18F1132FAFDAD339E3514B9 /* SDLButtonPressMode.h */, - 75A879FE5BDC2962D651DE4F586D85C2 /* SDLButtonPressMode.m */, - 50B52EA74D5660706430668E12DC6C34 /* SDLButtonPressResponse.h */, - 18278F1A7CF8A435D0169F4AF9BC7E07 /* SDLButtonPressResponse.m */, - 92476ADB048D5680C09DCA2FEE51BA94 /* SDLCarModeStatus.h */, - 5FCB10648C75AA3261FFEBA504FA91D1 /* SDLCarModeStatus.m */, - AFF7A262EAE52FF8DBB294F33EA13B91 /* SDLCarWindow.h */, - A798CD52B9A6DE6399FEEDE186FB0D3C /* SDLCarWindow.m */, - 9F7FA38B067052115C9348DF8CDA8246 /* SDLCarWindowViewController.h */, - 8D849908EC39EB73251A609C247278C7 /* SDLCarWindowViewController.m */, - 47CE23F2A53DB7E089222EE09F29BB9D /* SDLChangeRegistration.h */, - 395E1A376C97C99D0683BCB39656C9FE /* SDLChangeRegistration.m */, - 627289BC87F3B0D346ED8F78C3279330 /* SDLChangeRegistrationResponse.h */, - 1BEA6AFC834E233B564947D27D26EFA1 /* SDLChangeRegistrationResponse.m */, - 30A1C0974FFE84B3A299752EEA455C1B /* SDLCharacterSet.h */, - 3931112BA99F69A22491E261DD430300 /* SDLCharacterSet.m */, - 6E80F2AAA864A0E9A66967638620AE60 /* SDLCheckChoiceVROptionalOperation.h */, - 584A0744AB8704605C04A7819AA5939D /* SDLCheckChoiceVROptionalOperation.m */, - F61313C1886B332D2F0390FEBEE186BE /* SDLChoice.h */, - E553C3FC056DF2AE3262E3A00B4DF074 /* SDLChoice.m */, - DD018BD08DF216E04E994B4422402959 /* SDLChoiceCell.h */, - FA7520D29ADDEAE0706E4E297C9EC00B /* SDLChoiceCell.m */, - BD5E9F1868C5EA8FF16DD817FCC2983B /* SDLChoiceSet.h */, - D82948567FD9B2929C169F79FA1C7E9A /* SDLChoiceSet.m */, - A97DB73B7402B15C06515BCEE78C9981 /* SDLChoiceSetDelegate.h */, - 701F9FEB0B747B0243ACC80B6C9300A1 /* SDLChoiceSetManager.h */, - 0946E5C29231E794F5BE1235DBC535B1 /* SDLChoiceSetManager.m */, - 599BA3E45332CFB483D279AAB352F58E /* SDLClimateControlCapabilities.h */, - BF5E57DB0AA0B5AA154EA5AEA8AA3469 /* SDLClimateControlCapabilities.m */, - 0808036535D5C2927F44E2C70BC253A8 /* SDLClimateControlData.h */, - 46852D0AC965ABFD040C0CBC94BA7ED3 /* SDLClimateControlData.m */, - AA8E57A241FA68D63DC62680BD9828FB /* SDLClusterModeStatus.h */, - 891473743E394C175627756BB86F52F0 /* SDLClusterModeStatus.m */, - 5FE9C23070AA78567710035A0CBD5AAD /* SDLCompassDirection.h */, - 47CAE090B7FBD44E13C4D60C7AD48B5A /* SDLCompassDirection.m */, - D50321F21AFDE58F08A3BF69CD0D45B6 /* SDLComponentVolumeStatus.h */, - 1C1D3256D905B03474679371A70F0D78 /* SDLComponentVolumeStatus.m */, - B0278E68A80F390A91516CE230C9B3CC /* SDLConfiguration.h */, - BE3532020D03C0A5384CB77F8686B832 /* SDLConfiguration.m */, - DB150042567FF8B4BA316079BE414F3C /* SDLConnectionManagerType.h */, - F3C46E32597E5AC52E2AF0079E7550A6 /* SDLControlFramePayloadAudioStartServiceAck.h */, - BA9299EB84229285AD544DBE93805F19 /* SDLControlFramePayloadAudioStartServiceAck.m */, - D2F9491E9A021E2EABA56A03253B0372 /* SDLControlFramePayloadConstants.h */, - 4361BDEC05496F0B266C45DAC0E5FC5E /* SDLControlFramePayloadConstants.m */, - FE4DA3080A6AFF4573043FADA7FCB772 /* SDLControlFramePayloadEndService.h */, - 3469A6571DC2C323C8576335770482C5 /* SDLControlFramePayloadEndService.m */, - 73BF15804B3C2E102BB06B6A1FB46829 /* SDLControlFramePayloadNak.h */, - D48BBF34727DF6DE38DED9EC43E5E939 /* SDLControlFramePayloadNak.m */, - 1E13C460CB2039AE064C767DD711F563 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */, - D1EC5DED346FD7BB7895AEBE3DFECB5F /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */, - 96F0A1F8DFCA64ED227E5510C6C3B7E6 /* SDLControlFramePayloadRPCStartService.h */, - C80DF22B5D28FCE41F973EA350DED295 /* SDLControlFramePayloadRPCStartService.m */, - A99C0C1B0419FF7C520596517AACCC34 /* SDLControlFramePayloadRPCStartServiceAck.h */, - C534A8E7EB957888755A23CAD66D7EA1 /* SDLControlFramePayloadRPCStartServiceAck.m */, - CD72B7A1B82714D01D99FC2D5DCAD1CE /* SDLControlFramePayloadTransportEventUpdate.h */, - AB8C3882B2F5BCE64AF823BEAC3DBE49 /* SDLControlFramePayloadTransportEventUpdate.m */, - 98BB477077ECCB5F159C026896A7ED82 /* SDLControlFramePayloadType.h */, - 80560B5F4049C93EAE4148868C4BA8E2 /* SDLControlFramePayloadVideoStartService.h */, - BBD5269E6005271A97672076F3C57620 /* SDLControlFramePayloadVideoStartService.m */, - 8B5B149DB553CC25C1ECE0141F2CAB44 /* SDLControlFramePayloadVideoStartServiceAck.h */, - 1BCFAAA6F0A0783DBF1AE72813201ADF /* SDLControlFramePayloadVideoStartServiceAck.m */, - EE5457E7487266451141B2F023DFB19C /* SDLCreateInteractionChoiceSet.h */, - C343EC627C793FA593EED8C0AD723864 /* SDLCreateInteractionChoiceSet.m */, - AC02E9CDA5B401505FF227E9903BE9FE /* SDLCreateInteractionChoiceSetResponse.h */, - 4AF1C559A0C4A201639345F720AFD5BB /* SDLCreateInteractionChoiceSetResponse.m */, - 61FA3AFD5648ADEAE62EFD80E14460DE /* SDLDateTime.h */, - 4B528FBE5DCB2E0BA367288234BCF214 /* SDLDateTime.m */, - B40BF1C57B79394267C903C5D78EBDC9 /* SDLDefrostZone.h */, - BD56DFEDFD0199DD5616B314968F8800 /* SDLDefrostZone.m */, - 1DA9D3D0835E0ECE0927CA88687021D3 /* SDLDeleteChoicesOperation.h */, - 72D57C660CB1CFDB78815F561CA5B9C1 /* SDLDeleteChoicesOperation.m */, - 48E79B4506F1594D6325574D14CD0E9F /* SDLDeleteCommand.h */, - 4EC8912E98FFAFABA1F37F237009B570 /* SDLDeleteCommand.m */, - 4FC43F423FA3244DD43D35DB11AE4DCC /* SDLDeleteCommandResponse.h */, - AFBBA4412E591D0464CD86B12758A2D7 /* SDLDeleteCommandResponse.m */, - 02810AB1489C5C87EFC41C36A50AF1C6 /* SDLDeleteFile.h */, - CEF708FFC87490713BE7492E71C6CFC6 /* SDLDeleteFile.m */, - 19D811F2001EAF0E3140A317A15C2D2E /* SDLDeleteFileOperation.h */, - 55FBF2206E466027D718DFFDCE35B916 /* SDLDeleteFileOperation.m */, - CB43E3D640B1FB16CFCA612D7D97A8F1 /* SDLDeleteFileResponse.h */, - CBACDEE19366DD9A08DD42FC984CACED /* SDLDeleteFileResponse.m */, - B03B3A058C9D0BF765F99E1614A30742 /* SDLDeleteInteractionChoiceSet.h */, - 294B2803493B4F22870B023507F06FC5 /* SDLDeleteInteractionChoiceSet.m */, - 0C9316AA5BC0CAEF9D3E3B44A05F3E72 /* SDLDeleteInteractionChoiceSetResponse.h */, - 5CFD65E97C36BF1818AFA38283A9A5F4 /* SDLDeleteInteractionChoiceSetResponse.m */, - 4622BBAB6C0909487F8E5B2C90DED6CF /* SDLDeleteSubMenu.h */, - E3B8D796AD9F59926B271B6B8BC81CD3 /* SDLDeleteSubMenu.m */, - EDF6F8E8BD9AB6D28CFCC4A88AC00A5A /* SDLDeleteSubMenuResponse.h */, - A9DB741242CF4886179C79D2927C6839 /* SDLDeleteSubMenuResponse.m */, - B3CAD82552831383429D5BFA74D39E8F /* SDLDeliveryMode.h */, - F6D88BD30A20B4D257B7CF47581E9CAF /* SDLDeliveryMode.m */, - 77E606788D8EBEE9E7E4BC5FE8E237A0 /* SDLDeviceInfo.h */, - 12B0F792AFBD733E34339ED1088AD36E /* SDLDeviceInfo.m */, - E631F9263CC1D82E8E2ED0FF4AFC488B /* SDLDeviceLevelStatus.h */, - C23D3E81A57DED8E5C1CB5C6740271CD /* SDLDeviceLevelStatus.m */, - EE9A3B75D5F68AA0D26EAAC23626F571 /* SDLDeviceStatus.h */, - FB7A1B092EFFA569A0209062DB70F20C /* SDLDeviceStatus.m */, - 72EC467B07A1E6122174621820BE095D /* SDLDiagnosticMessage.h */, - A37889971568605D482199E64332631D /* SDLDiagnosticMessage.m */, - 0DBA36F74030B4F0E6662F5C79F37411 /* SDLDiagnosticMessageResponse.h */, - A30B036CAB80CB3556CC6DCC329BAF82 /* SDLDiagnosticMessageResponse.m */, - F07B93A82B076C766CF6D8E8DD56F230 /* SDLDialNumber.h */, - B80235ABD0E305BBF739141DD04FBCB5 /* SDLDialNumber.m */, - D20EED6DBEE6CA1DD9E9548FAC44753B /* SDLDialNumberResponse.h */, - CAE15697C2B379B5AD4250AD454DCC9F /* SDLDialNumberResponse.m */, - 3B798F817D25B6AC4EB2558AD624BFAC /* SDLDIDResult.h */, - B6FB23E870874A2EEBD8388FECD14E7E /* SDLDIDResult.m */, - 7276A699E37C828398FD98759C45D7B5 /* SDLDimension.h */, - 8FDAFB2B0FEFC8F3A7D9D65B1426C548 /* SDLDimension.m */, - F388207656E1E2BB02B35F9E54E554A1 /* SDLDisplayCapabilities.h */, - 2847C8BA2910893A2A6F1739775ED9F5 /* SDLDisplayCapabilities.m */, - 9919BFC927D3E2CF081C66079A4CF0CE /* SDLDisplayCapabilities+ShowManagerExtensions.h */, - F455B422DAF86C1424C82B369C3A8B08 /* SDLDisplayCapabilities+ShowManagerExtensions.m */, - 9520607250C0D896688E594437D291D7 /* SDLDisplayMode.h */, - E5731FC6EAD9635A7EDD2F725FC4966C /* SDLDisplayMode.m */, - B42D746070F0FB7F229FC805F63C7474 /* SDLDisplayType.h */, - D7E909DC64B7F89CB6C1A37B30E38768 /* SDLDisplayType.m */, - 1E9AE8F88AA007A3E77461413B3DB811 /* SDLDistanceUnit.h */, - 140FFEF6BCEE5E988BE93C6C07C53F70 /* SDLDistanceUnit.m */, - E5EC9ECC5F4F6ACD12B895CEC09422D0 /* SDLDriverDistractionState.h */, - 60FA77C4D30CEF11FC44F1FD78B7B62D /* SDLDriverDistractionState.m */, - 477073728CED1665888DAB004B490CE1 /* SDLECallConfirmationStatus.h */, - A7F77770D5D28F7FF7EEFD4A3C75F542 /* SDLECallConfirmationStatus.m */, - 30350A37D735C91E7CF974A4830CA33B /* SDLECallInfo.h */, - 0A4092219A6781B72119BACC1AF43FD9 /* SDLECallInfo.m */, - B30EC6A6FFDC546EAEF3EC9419433DB1 /* SDLElectronicParkBrakeStatus.h */, - 57E931AA5B67D1C316B05D9969D72FA3 /* SDLElectronicParkBrakeStatus.m */, - ED1462950A60906FEC2552CD8926221F /* SDLEmergencyEvent.h */, - F082C3105D51857B5A6D603751C8D9BB /* SDLEmergencyEvent.m */, - D16AA0C2FE332401CE7F57F13834F32A /* SDLEmergencyEventType.h */, - A6FFAA2E640CE5022DD2D19F7DCD3DE6 /* SDLEmergencyEventType.m */, - CCC2E4CCCC588380F82E83F43587F252 /* SDLEncodedSyncPData.h */, - 66350E5DE80B51CCE2C62602727CED1B /* SDLEncodedSyncPData.m */, - 90A2A6EB9EA9F0B38F2AC500E179C267 /* SDLEncodedSyncPDataResponse.h */, - 04992831D25E1188652283952664EC71 /* SDLEncodedSyncPDataResponse.m */, - 9D3D807D79D5970559544493C272AA4D /* SDLEndAudioPassThru.h */, - 4EE6606F6C0D71B52E9372BC5167AEDB /* SDLEndAudioPassThru.m */, - 1A8C67EB84DA3FA114CA61C5D36FEC54 /* SDLEndAudioPassThruResponse.h */, - 488731B70B7B275F56E7D61460E53EDB /* SDLEndAudioPassThruResponse.m */, - FCF86FF1762C0B9D3ADC7D0AC60200BD /* SDLEnum.h */, - 8E8FE4312C8C948EBE6F6C07DBC1F9CA /* SDLEnum.m */, - A874BEFEF52CB9BA5367A462CDEEADAF /* SDLEqualizerSettings.h */, - 8D8496D47F19D77551ECDEF2FA539E41 /* SDLEqualizerSettings.m */, - 711AC2364C89D3D17514B14D663A1AF6 /* SDLError.h */, - A68DAFDC8E8417E2C745B8ADDB5AF994 /* SDLError.m */, - EDB42F987CA9D0C4BD5A37CB60D3AC3D /* SDLErrorConstants.h */, - E1C51C46435F3ED7FF9BB06FFC5A4F24 /* SDLFile.h */, - 2EE41E56DC2D82CBE3A4B6F45276F73C /* SDLFile.m */, - 9BCEE3F9721D24A5D1B1C3F3B4AEFAB3 /* SDLFileManager.h */, - E7B4A0CE56A4C0A4142F88AD471CB508 /* SDLFileManager.m */, - EC92A5CF1AF12B3C53B52D48314AB3A8 /* SDLFileManagerConfiguration.h */, - 72A178D46F20374B4187B44480590E7B /* SDLFileManagerConfiguration.m */, - A28C591186F83E65852201939A6CE8E2 /* SDLFileManagerConstants.h */, - A67726019D1949E4970552C764865F6C /* SDLFileType.h */, - 0ACF94031C97BEE9B67254A7A1FD9DCD /* SDLFileType.m */, - 6CE607A99E39243283702C5108A74120 /* SDLFileWrapper.h */, - 36EFA6746210C481724913EA6E678298 /* SDLFileWrapper.m */, - 70578C80B038B8AA2C6EF0AEAC8B9A13 /* SDLFocusableItemHitTester.h */, - EB02227CF664EEADE944C75221C640FC /* SDLFocusableItemLocator.h */, - B6358C7513C0DFC92C417EFC736F3DAF /* SDLFocusableItemLocator.m */, - 7FA676189DA006AC1F36A4F3A550F0D8 /* SDLFocusableItemLocatorType.h */, - 27B167F71BD19841F6007D7C9CBF2BB1 /* SDLFuelCutoffStatus.h */, - 815EB3516762963F44C6C1862030AD02 /* SDLFuelCutoffStatus.m */, - 0E9121D1F31F40400B66520537D850C6 /* SDLFuelRange.h */, - 9573AD1DA7DB44D2BDFDA84EF4F972F5 /* SDLFuelRange.m */, - 18E76DED3EBCF8F68EAC43044C919DBE /* SDLFuelType.h */, - 16CB44DA8808ACB9442032A9896329A8 /* SDLFuelType.m */, - 7B5958E143197424F748276D3BB21607 /* SDLFunctionID.h */, - D73A33145CFECBCAEE6723C53C833F84 /* SDLFunctionID.m */, - A2307C9E899AF5180AD1093475004295 /* SDLGenericResponse.h */, - EFDA01CCA143D1BF1A4477C8DE07B128 /* SDLGenericResponse.m */, - CB01AD4F05816453518D94D580DA26A2 /* SDLGetDTCs.h */, - 65E812DEA551B30816A17B71B1C41FBA /* SDLGetDTCs.m */, - CC0A7A3D3F4D617D0E71AF1093961409 /* SDLGetDTCsResponse.h */, - E2ADED48EF297BC164761232F2B6215F /* SDLGetDTCsResponse.m */, - 9E1A67020D9B2731251C24228133ACB1 /* SDLGetInteriorVehicleData.h */, - BE7366FB2C13FB0E264DF97EB1455D14 /* SDLGetInteriorVehicleData.m */, - 8B148286C9121F9CEAAF3BB7A9B9E1EB /* SDLGetInteriorVehicleDataResponse.h */, - FBA716CC59FBC7633B82964878203C10 /* SDLGetInteriorVehicleDataResponse.m */, - 73BFFE658487D4F07A220194D46B6657 /* SDLGetSystemCapability.h */, - 5F82466C45406490A64E03020D7695E5 /* SDLGetSystemCapability.m */, - 6A6B8D51F0041FD1CAA462F5ACAF4C92 /* SDLGetSystemCapabilityResponse.h */, - ABE9C5E4BE504C29DCF7CF015D462C41 /* SDLGetSystemCapabilityResponse.m */, - 824EBA2B2FB87B435FB19A9D74F6FE70 /* SDLGetVehicleData.h */, - 76F2EEF0C3FA77B20C8F1C40D7E3F410 /* SDLGetVehicleData.m */, - 60E7BF58504667B6C399DDBD6B080290 /* SDLGetVehicleDataResponse.h */, - 002DD635E351A128D9079F0337E8B71E /* SDLGetVehicleDataResponse.m */, - 04546B8E310BE2EF2A7229A62D91C44E /* SDLGetWayPoints.h */, - EB782268F9B89A65FEEB9D8D3E0867E4 /* SDLGetWayPoints.m */, - 2C6F102A06A6693E2DF34B61E773CCDB /* SDLGetWayPointsResponse.h */, - 69EA01C2187093B7478259DDCAA70FFF /* SDLGetWayPointsResponse.m */, - 82541979FF412D8D3EBDE11F3B67A44F /* SDLGlobalProperty.h */, - 45965A5B18DF1E47D2154BD8A8FAC30F /* SDLGlobalProperty.m */, - BCECF54BBC67A7DBB0AC2A441E7A7E88 /* SDLGlobals.h */, - D4AED0DCCD8F81481E37F6BFE21BAB4C /* SDLGlobals.m */, - 396E2A6E63106E326669E7D49B49DEF8 /* SDLGPSData.h */, - 3B04648E1797EF5AE9C7A3A0EA1503FC /* SDLGPSData.m */, - 1A44AD1324030A352FB7310E3D9272D9 /* SDLH264Packetizer.h */, - 88351DE654FF03D2560ABFC4142E23E3 /* SDLH264VideoEncoder.h */, - 5FEC2CD895899EA829A11AB6F3A45BB8 /* SDLH264VideoEncoder.m */, - D355CD2546086C41A89F4B7AAAE4C8E5 /* SDLHapticRect.h */, - 2661D6B4F1E4A0C87E7B79EB35BB7A17 /* SDLHapticRect.m */, - 9A5E8DF4DFE51C93135F6D5D75D9EC8C /* SDLHeadLampStatus.h */, - 40A128D8E15179FEFF5E6E00D350F202 /* SDLHeadLampStatus.m */, - 5761EF60549E9FE40D6E1CB212E18183 /* SDLHexUtility.h */, - FB963F962A2C0E4A36716A49E1417B18 /* SDLHexUtility.m */, - 18641A1747ED648E73C047ED9F2800CD /* SDLHMICapabilities.h */, - 23E7A3321143B3292C9376581ADDA901 /* SDLHMICapabilities.m */, - B000BF1A6DCDCB42234749078E5855ED /* SDLHMILevel.h */, - A8713C1D0690D8AB53FDAB90435E668F /* SDLHMILevel.m */, - 28D6F148960DD83935B37C3D826B7260 /* SDLHMIPermissions.h */, - 94AD2AEEC4EEEC528DD817E891BE3839 /* SDLHMIPermissions.m */, - 0CB25C3CE5024B113E5C23EC30356631 /* SDLHMISettingsControlCapabilities.h */, - FB630387201D5C255AAC684842BE5C05 /* SDLHMISettingsControlCapabilities.m */, - 8D3777E8781C62321F0499DD71507012 /* SDLHMISettingsControlData.h */, - 87013DF5230B21B6D6983AE6FFCB0A36 /* SDLHMISettingsControlData.m */, - DA0377EB4FCDD2096F6E8366E5B16C09 /* SDLHMIZoneCapabilities.h */, - 843DDF1E82067D3BE72F657D2974D11F /* SDLHMIZoneCapabilities.m */, - 652C07114772A9C6F9290111810BDD9B /* SDLIAPSession.h */, - C588EEFCF45E3FAF0C2800BE518387F8 /* SDLIAPSession.m */, - C1913C9CAEBA0D15EEC15F086C59CC84 /* SDLIAPSessionDelegate.h */, - E91E91E66C2D537CD449295C86997019 /* SDLIAPTransport.h */, - 41EACD9F247C6BE29368926681946F79 /* SDLIAPTransport.m */, - 8511C1F0379CE4B64BA23E97F063E0F8 /* SDLIgnitionStableStatus.h */, - 35367A3B6B5D2710B91745AE6AD4682D /* SDLIgnitionStableStatus.m */, - F3DF41A5534678C031C7762017C9D5B8 /* SDLIgnitionStatus.h */, - DC22D9FCA0E86BCF2EB200AC5CB8E1AF /* SDLIgnitionStatus.m */, - 8BC3F0AF45DC8C9CA5D3AC7CA8176789 /* SDLImage.h */, - 1B70EF9DB97245E1B7E90AB87E5B1191 /* SDLImage.m */, - 22D36F8BAF8DA247629274EEAD8B24E7 /* SDLImageField.h */, - 510BD182D2555F3EC0384B30036E0ED9 /* SDLImageField.m */, - 0440B26CB65E28F9B693133980FEDB2B /* SDLImageFieldName.h */, - 5413252548EB4A0449D30D5673A28F0B /* SDLImageFieldName.m */, - 8D616CFA82FBB4F1BEE449B4EA3CF4C7 /* SDLImageResolution.h */, - F8BCA7DDAC02AAC3F3B4BD14435C2606 /* SDLImageResolution.m */, - CC2CF1557DA0FDB593F5A186F18275B1 /* SDLImageType.h */, - BBAD9286CA8D2CD34A4301E140079EFA /* SDLImageType.m */, - 53342DFDFA72B33415BAE7AB03F96F02 /* SDLInteractionMode.h */, - 6E3A2064E0524131FC651270B2D6B5BD /* SDLInteractionMode.m */, - 425112040C5A32D7A5A360DFF736A31A /* SDLKeyboardDelegate.h */, - 73EC5A5C8B44BA83334F832BC77A7E87 /* SDLKeyboardEvent.h */, - 3884964D6FEB0D08398432C7EEDB2FAD /* SDLKeyboardEvent.m */, - FB7882BBC66764C5C31631C3E44872D9 /* SDLKeyboardLayout.h */, - 3A3F10D75A29E72E114BC186C312F2C7 /* SDLKeyboardLayout.m */, - 0188C9625886A2778A6F31AEA7518719 /* SDLKeyboardProperties.h */, - 496F8FA240630F82A3F2A1D13DF8A11B /* SDLKeyboardProperties.m */, - C7B0E1C7EE33B7EB279CD11839EE6739 /* SDLKeypressMode.h */, - 679EDF19C388A9D5231B8F50D3AB5E33 /* SDLKeypressMode.m */, - 37245382BD437F67F1FF0EEB59160BD9 /* SDLLanguage.h */, - 09B8E32CA0A3C22134FF5943402A19C2 /* SDLLanguage.m */, - 7464353B95BD2991945285ACC552CABA /* SDLLayoutMode.h */, - 874714916D7F9E906404F014ADF12629 /* SDLLayoutMode.m */, - 76BD07CB451B98D050AD1A03BC6F8AB1 /* SDLLifecycleConfiguration.h */, - E280714FFF45ABB1CB9DC8A142136546 /* SDLLifecycleConfiguration.m */, - A7FD95DAB1B56B5CF9E3A6EE3B3987B2 /* SDLLifecycleConfigurationUpdate.h */, - 3D6C9643ED47D177A573F14BE3364185 /* SDLLifecycleConfigurationUpdate.m */, - 34FB346A248BDC3502948C80F744F6B7 /* SDLLifecycleManager.h */, - 06D99FBDB86BF07446B44FB4FFCEE7F0 /* SDLLifecycleManager.m */, - BB6B9ADD337536D62D71C55DC701BE17 /* SDLLightCapabilities.h */, - 93CA586E7AC09FB55D500BAEB4C79347 /* SDLLightCapabilities.m */, - 36627794E114102CDCC27CFF984888EB /* SDLLightControlCapabilities.h */, - FD86549ACDDE44723749A963C8649466 /* SDLLightControlCapabilities.m */, - C7DDA9F4F55CABEE280A8EFB020D3C65 /* SDLLightControlData.h */, - F3F9A0650155304168FA15D074849F22 /* SDLLightControlData.m */, - E01A788B715A9CBF3F7896EF220491A9 /* SDLLightName.h */, - FDD0F81844113F875E5530B74E5059C3 /* SDLLightName.m */, - 7E7D99673CE2765D739C37675F9E6800 /* SDLLightState.h */, - 905483586B21F30E32A6B74A710A1568 /* SDLLightState.m */, - BF41AF176C8CF91C7F0626C991C3CC3D /* SDLLightStatus.h */, - BD9F491F208EEC3102D4031C7F6CB6B0 /* SDLLightStatus.m */, - 7D9DA21ABF7CDDBFB56BE7D70C6E7644 /* SDLListFiles.h */, - 12E2885863DDF0D17C96EFAAEF45AC56 /* SDLListFiles.m */, - 7D684A0F936240CFF376CBBA6E49A8F0 /* SDLListFilesOperation.h */, - 2032173FB118D500BFD0E7DA8D151574 /* SDLListFilesOperation.m */, - B7498C244FC10C66AF473A338A62111B /* SDLListFilesResponse.h */, - 23D2C8F579F60C519B6CD10AAB64E9D0 /* SDLListFilesResponse.m */, - E7A313894B47D32C4EA5F371B0691870 /* SDLLocationCoordinate.h */, - 465CA59A8B0DC98C5EF708EAA534686B /* SDLLocationCoordinate.m */, - CB405DA5F788994C39DF7E19968B3417 /* SDLLocationDetails.h */, - D67F7910E014171EF4A571F96DEED110 /* SDLLocationDetails.m */, - B6AFFD1A7B3E62B4C607E8E8C4787F6D /* SDLLockScreenConfiguration.h */, - BCDC250868911E64709B0E0D0CBD42E4 /* SDLLockScreenConfiguration.m */, - 90821605B6964E77F2FF24118D6EDB06 /* SDLLockScreenManager.h */, - 8161E304DB3F786AAC3A62CA6B154DD8 /* SDLLockScreenManager.m */, - 832FDE407750A0EEE8830B7E938FC6C4 /* SDLLockScreenPresenter.h */, - 3B51FFE36220330A3CACA531C013CFCD /* SDLLockScreenPresenter.m */, - C7C905D0B465F2AEBC7292AFD9059B7B /* SDLLockScreenStatus.h */, - 8080F4FF2A48736FED1DA77E6D50B24C /* SDLLockScreenStatus.m */, - FBB40AFB9493DDC169BE7015E9119C1C /* SDLLockScreenStatusManager.h */, - 25C4802F58BEA5CB3120F017CF4F345C /* SDLLockScreenStatusManager.m */, - E9F83398A1E87F1CD45B5596A5D81AE4 /* SDLLockScreenViewController.h */, - 4C38CF58405932FA0DE21389A5726742 /* SDLLockScreenViewController.m */, - DE91B9B41F921F65A15BB1A61C45F3A1 /* SDLLogConfiguration.h */, - B455A6928538C43FF4BD1C7049CC4968 /* SDLLogConfiguration.m */, - 00DC145453C6AE5E4252C91AEC9E4D10 /* SDLLogConstants.h */, - 4B40E200FFCC2C033F655E0762F736EC /* SDLLogFileModule.h */, - FEA3CF62D8E20C66A2127F8FE3D3DFB5 /* SDLLogFileModule.m */, - 29B0DF7E121F9744DDEF8461BEE11346 /* SDLLogFileModuleMap.h */, - 3347A8E18A7BA7E697F4FAC02971C531 /* SDLLogFileModuleMap.m */, - 88A45748BCA864462CE96C229A58CF84 /* SDLLogFilter.h */, - 6FCA8FB78161DD00FAD7CF36B71D6E64 /* SDLLogFilter.m */, - D5B81F6F3103AD08D5BA5F4A084E857E /* SDLLogMacros.h */, - C14ECD4BF951829C7D97305625CF23F7 /* SDLLogManager.h */, - AA7BA22D55AB85BB5FCC2ADEC30BD838 /* SDLLogManager.m */, - 0AFC13CD3915A647DA5736D2C6DDB276 /* SDLLogModel.h */, - DBC88C050ABECE21892DC6034CC3F8B4 /* SDLLogModel.m */, - F24E7F5DD21FD40A9EA898618D233EC9 /* SDLLogTarget.h */, - 549F7580C94EB69D5BE9C5F4B08F5083 /* SDLLogTargetAppleSystemLog.h */, - CDB08B4633B0694249B93A051D44062B /* SDLLogTargetAppleSystemLog.m */, - 37762E39468016593D2D4AD6F5570CCC /* SDLLogTargetFile.h */, - 9FF46BF4BEB8FEB342F1AD40824347D9 /* SDLLogTargetFile.m */, - 7E68E92B02B4CA38AF0E73923EE34217 /* SDLLogTargetOSLog.h */, - C43267362AC3279A3F73CFD64244B09E /* SDLLogTargetOSLog.m */, - DA84D035271BEC110F9662786D43FBD4 /* SDLMacros.h */, - 49B5DC50A25037F3B47CD43A3A38A293 /* SDLMaintenanceModeStatus.h */, - D71FED2BCC771A573C90BD4F83AEFDFF /* SDLMaintenanceModeStatus.m */, - 5B01F7BB17F17473A280E74211727645 /* SDLManager.h */, - 01E87A8975185D153094D861550E2DE5 /* SDLManager.m */, - 50FEDDD1C36DDED7C4070C8E3AFE4306 /* SDLManagerDelegate.h */, - E15436608D62D13D53903727589401FD /* SDLMassageCushion.h */, - 1037F8AF88F0F9193A9B244617C64731 /* SDLMassageCushion.m */, - 7B5A067FCC93D9B48C203E6F2CCD07ED /* SDLMassageCushionFirmness.h */, - 6D6C98D5009149E1EBB3CB41C86D68B8 /* SDLMassageCushionFirmness.m */, - 785F69A758CC6573E45FE7A6598F61B5 /* SDLMassageMode.h */, - C924DE2BB45B9FC311749106243E9660 /* SDLMassageMode.m */, - E9C5C58A3724605FC6E5584A0977F7CF /* SDLMassageModeData.h */, - B4B24D0A8CF05DE6367A50C62E6BB4D3 /* SDLMassageModeData.m */, - B783979D82B11AE5D445D43DAC75137B /* SDLMassageZone.h */, - C750AA9E3A4B741F05012DAB3CF5DCB8 /* SDLMassageZone.m */, - 8E5B936160771899CBA8BD8776D883F5 /* SDLMediaClockFormat.h */, - 471FCD3698B75159B2B7FE7C7034350A /* SDLMediaClockFormat.m */, - 816405DEA579818D69E7209885E6B5FC /* SDLMenuCell.h */, - 03AA9FAC1C42C80A5F0956A6B96548A9 /* SDLMenuCell.m */, - 954E4D3766D011A3C490F60A4060E2DD /* SDLMenuManager.h */, - 0111E8E88553B97161A2721E1AE43A1E /* SDLMenuManager.m */, - 7D56D1383005F86119EEEC23396E20E2 /* SDLMenuParams.h */, - 1D5F6CEF1D510CDBB8CE4707724F6BCB /* SDLMenuParams.m */, - BF184F14F7F8CAE1B2D74EEA9C58A028 /* SDLMetadataTags.h */, - D88D739C4F65E3A7EE9F3CCB7CF49C35 /* SDLMetadataTags.m */, - 5DDA353CC3E6C2F475B1D16AC7477D4B /* SDLMetadataType.h */, - C339E93BAAFE8EF680B5FF2F641586D1 /* SDLMetadataType.m */, - 4B4399C0A212B0ADF6F7FC0F8BE41255 /* SDLModuleData.h */, - DA0952F5884198F46D3797FB852A950B /* SDLModuleData.m */, - B8054C0141274D800ABEAD4C1769C950 /* SDLModuleType.h */, - 5A53D998E7BE6ABB127ADBCB5D4437AE /* SDLModuleType.m */, - 2920908C8251D21559604E07DAE9CC4F /* SDLMutableDataQueue.h */, - DD5EBB52421A1DB35F7FC66083B6A92C /* SDLMutableDataQueue.m */, - 0837936F0C4FA3F85A7083B6C1445823 /* SDLMyKey.h */, - CD7F72B767014839B0530963C82FE3DF /* SDLMyKey.m */, - 8E089953D020C5C39366AAB493954078 /* SDLNames.h */, - EBE2BDB35B173D11506009E03770CC5A /* SDLNames.m */, - 93003458C263C345C99E345CD6601231 /* SDLNavigationCapability.h */, - 1DD055CF52ABC534D176AB5FE90081B1 /* SDLNavigationCapability.m */, - 363CE2A5FD5AF0FB3D59F4182F6820BA /* SDLNotificationConstants.h */, - B460414DB680F6055A83A1A74CFC1737 /* SDLNotificationConstants.m */, - D7DD122ECD04717DF72D111757B25D26 /* SDLNotificationDispatcher.h */, - C0BD9783968411AD2C1ADF55A444B04E /* SDLNotificationDispatcher.m */, - CF7790CE899A39C998556055A1E7D05E /* SDLOasisAddress.h */, - 3D2CD286B7D32EA822FA311A2885651B /* SDLOasisAddress.m */, - EE1CFF1CC4DE8423C7542494529D17EA /* SDLObjectWithPriority.h */, - 24B9F83191862C3DAB127D040D7E84C4 /* SDLObjectWithPriority.m */, - A98FE233CFB9499820D654F8CB8D34A1 /* SDLOnAppInterfaceUnregistered.h */, - 54DC3D413110C5F46BA1C71A76E934EE /* SDLOnAppInterfaceUnregistered.m */, - F69848BBB851E73A961ABD509A96FA9B /* SDLOnAudioPassThru.h */, - 05CFD8AB043CBDA71EE6189923FD98CE /* SDLOnAudioPassThru.m */, - 17B3E3A1BA828AED08DF168DFCDBD517 /* SDLOnButtonEvent.h */, - 0353FFB6B9F1743EB1D5CE992BD111F6 /* SDLOnButtonEvent.m */, - E49367CD2C96F4FB7B71A901D7B36355 /* SDLOnButtonPress.h */, - F75470D9588DBC08DC94E74BB7E678F4 /* SDLOnButtonPress.m */, - EF4EBDB80CEF89242D57537CB1A9D465 /* SDLOnCommand.h */, - A0A1B2614785041917BE4112674DC25B /* SDLOnCommand.m */, - 63AB26B885F72FFE7CEF0E215898985A /* SDLOnDriverDistraction.h */, - A8A0243D063C6F7BCF41557EE5E3C603 /* SDLOnDriverDistraction.m */, - 736669CDE9458CABAE6AC40FF3A7C523 /* SDLOnEncodedSyncPData.h */, - 77562F15814B203CF3A3408E7CC77E90 /* SDLOnEncodedSyncPData.m */, - 4C5CF9F2FDF3B546DE71D830925E9009 /* SDLOnHashChange.h */, - BB6E2F8ABEE4FC81BB4C0673B65E197F /* SDLOnHashChange.m */, - E93E46F79CD1636328C3E622271F2F2C /* SDLOnHMIStatus.h */, - 7A2714C0F9D631E857181A264EF1EC31 /* SDLOnHMIStatus.m */, - F0B0BD0A152C2E6D1C988C44BD243F7A /* SDLOnInteriorVehicleData.h */, - 119DF2CF5E29025380EAB643C5C9356A /* SDLOnInteriorVehicleData.m */, - B4154878A32585ABCD9B57764494D6F8 /* SDLOnKeyboardInput.h */, - 3B11875C27CE5BA6B79B0F5FAEB42813 /* SDLOnKeyboardInput.m */, - 869B8F548364045C3602F3A99BAB876A /* SDLOnLanguageChange.h */, - CFB25071577FDEADE8D9DA79FCE735B8 /* SDLOnLanguageChange.m */, - D27E5CC47CABA4801370B09E862441BE /* SDLOnLockScreenStatus.h */, - F79AE8E9ADE72D6DE44E2276CEAD0C3A /* SDLOnLockScreenStatus.m */, - 72782025CCF03AC32ADC435C468D3CC6 /* SDLOnPermissionsChange.h */, - 0E6BD9A54F3B696772751E561C7CA26F /* SDLOnPermissionsChange.m */, - 31CDA2AD721D16F7CB22C8FEB7BF1900 /* SDLOnRCStatus.h */, - 3DB6E62464C24A09F0CCEDABD345B9B1 /* SDLOnRCStatus.m */, - 876AB0F589E4C276C7433FAFE36B3E8A /* SDLOnSyncPData.h */, - A9F36B56817FFB9EC0DC7EB9A60CABAC /* SDLOnSyncPData.m */, - C212942D2CC6534B8AF013D2AD51FDBB /* SDLOnSystemRequest.h */, - 41B5153EEE7EBA7454C7569C8E96F5BB /* SDLOnSystemRequest.m */, - 6C44944669F93F4CD5B2A347BC128591 /* SDLOnTBTClientState.h */, - 8920D3ACDD019CFE7D7EC52C8C57C6AA /* SDLOnTBTClientState.m */, - 70616FFD3793CF95AC174A49C2C43D06 /* SDLOnTouchEvent.h */, - 9736F1C92404CB74F50FE38E6AEDCCA9 /* SDLOnTouchEvent.m */, - 1227D122A83DA58887D9CC98662EC031 /* SDLOnVehicleData.h */, - 7A8536C9E1E43EAA321587775D6769CE /* SDLOnVehicleData.m */, - 32ED80D5DAF69F34604CA7B85C0B657F /* SDLOnWayPointChange.h */, - C796D07492208120D730817A83899617 /* SDLOnWayPointChange.m */, - 9AE500F1F2C18FA80AF0901CBBAF168A /* SDLParameterPermissions.h */, - F0FE7D045A05C40642E1D494C142ADE2 /* SDLParameterPermissions.m */, - 55F7F5D6907BDC05663E93F45A150CBF /* SDLPCMAudioConverter.h */, - 53A52D72644B89F231422DFAA23D9A94 /* SDLPCMAudioConverter.m */, - 987EA3558DD5290384A844B45E024E3F /* SDLPerformAudioPassThru.h */, - 5608E1B518D7DC608F90543748504EDE /* SDLPerformAudioPassThru.m */, - F99552D589ED900BF989DBEC687D6487 /* SDLPerformAudioPassThruResponse.h */, - DF9E74F8390AAEB3D483417C6939A39E /* SDLPerformAudioPassThruResponse.m */, - 5A7CF2F17162C0947A4E9AF853EFDF84 /* SDLPerformInteraction.h */, - C09E630D5F83DF772B1E22DF41CE5473 /* SDLPerformInteraction.m */, - 2046809A5315CAEC170D3C5D87341E36 /* SDLPerformInteractionResponse.h */, - 100684D476010285D6DBE1D29DE9156F /* SDLPerformInteractionResponse.m */, - FF41DB53E65BA7A9D44CF06053B930A2 /* SDLPermissionConstants.h */, - 9CD60AA200C1EA24343193DA9F81F600 /* SDLPermissionFilter.h */, - 5B02040B6B2927923E23CE8142AD72B8 /* SDLPermissionFilter.m */, - 9F05AA929B1AB82280E5802A1D843594 /* SDLPermissionItem.h */, - 28A78FC1E596344107CD9C39F3E1AE20 /* SDLPermissionItem.m */, - 6A19C848AB1E8F2E05CFD76981E2F0E4 /* SDLPermissionManager.h */, - 2FD4201DF52143CC2A919A9470F285F4 /* SDLPermissionManager.m */, - B67E7C32818DC46A3AEFD981A52B59B4 /* SDLPermissionStatus.h */, - C3AD77243F4F153EACAAED070520ED92 /* SDLPermissionStatus.m */, - 3ED24853CBACABF3D277A172CDD9E2F6 /* SDLPhoneCapability.h */, - F35822090B42F3897B8520B75DFCD4BB /* SDLPhoneCapability.m */, - B1F9BC84E7389BF23179BED225E2CA39 /* SDLPinchGesture.h */, - 3A4D13E0009268C3B0AF4EE348B8F3E0 /* SDLPinchGesture.m */, - 53AF765EA8E95848A51E4EF568E373E4 /* SDLPolicyDataParser.h */, - 624FFEDC969D0C72CDBCEF24B6F1FF30 /* SDLPolicyDataParser.m */, - 3E2E609CCF3FF8FA84D2EA7E5E75B6FF /* SDLPowerModeQualificationStatus.h */, - 61F82FF5A93D0558A5851A023E3C7B66 /* SDLPowerModeQualificationStatus.m */, - B2743E673B8A8B1412F3ACA1B22E27C9 /* SDLPowerModeStatus.h */, - 539D18C1C073C34EF0AC35AC764611FC /* SDLPowerModeStatus.m */, - 07D5CF6B19D89EA1D458F113E19CDBFA /* SDLPredefinedLayout.h */, - D4D9CE10E16F6AE73297FC5DF7EA2F0C /* SDLPredefinedLayout.m */, - 0D715B7E1E49032AE4CB109BB45DBBE4 /* SDLPreloadChoicesOperation.h */, - BC44F67089678BF264AE9F4517976CE3 /* SDLPreloadChoicesOperation.m */, - 1E464EACE963D6F07103805F407CD25F /* SDLPrerecordedSpeech.h */, - 94ED036BFFFEB6CED0F8ABC49FB84C64 /* SDLPrerecordedSpeech.m */, - A327553C1C9C5ABD7E4229FEC523EB59 /* SDLPresentChoiceSetOperation.h */, - 5A46CDE4067982A9BB8B1C7265FA9B12 /* SDLPresentChoiceSetOperation.m */, - 41E3A061FF1984AD8701A270A3DEF731 /* SDLPresentKeyboardOperation.h */, - E979C453EEBA7D264D8AED785CF17294 /* SDLPresentKeyboardOperation.m */, - 272E5831D3FF424605127427E7A90BC3 /* SDLPresetBankCapabilities.h */, - 220469AA15E3466DA4D330C338703784 /* SDLPresetBankCapabilities.m */, - 1FF369F4106991D828A148129F2E8B0A /* SDLPrimaryAudioSource.h */, - 8599A0D8C169D439326F1693136570F0 /* SDLPrimaryAudioSource.m */, - 37F60ABA9812A222448532EC0551BAAA /* SDLPrioritizedObjectCollection.h */, - 7A0C6D3EDF3331CF707E1D745709165C /* SDLPrioritizedObjectCollection.m */, - A50DEDE3CBA973F53236F30FA2FAB778 /* SDLPRNDL.h */, - 439E51BAD933C8050127EB5370DDA5E3 /* SDLPRNDL.m */, - FA55B3AD506D7300199B1A88A4C1922D /* SDLProtocol.h */, - 71162CCC8CA6338D5ECE5EFE435E95AA /* SDLProtocol.m */, - BA2F928FB28C5D2FA571B57A0D084BAA /* SDLProtocolConstants.h */, - E28E6185D21901A4C8918AA636A147E2 /* SDLProtocolConstants.m */, - 7A839994F9626443B093DB392F9B5E77 /* SDLProtocolHeader.h */, - 7DDA77991D5939F69DB2C0095DDD520A /* SDLProtocolHeader.m */, - AB48679EACAE70BB29A1B43C2AA11F08 /* SDLProtocolListener.h */, - 8B152F340FD0B7F3F3070CC16D3CA123 /* SDLProtocolMessage.h */, - B1FDA204D0296A51FBA17788E5FA5502 /* SDLProtocolMessage.m */, - 8EAD2D9917040C1DC2F23D0C4DCA7FA7 /* SDLProtocolMessageAssembler.h */, - 1CE06A8C55FD9A4D7FA3F0CAF9744D42 /* SDLProtocolMessageAssembler.m */, - C8CF322794D18B8D62BBDB8E3C98ACC9 /* SDLProtocolMessageDisassembler.h */, - 21CDAECFA811151A9856EAC58258EBDB /* SDLProtocolMessageDisassembler.m */, - 6CD2936B444045437D2B8385225ABCD1 /* SDLProtocolReceivedMessageRouter.h */, - 4F116A936C935377D447B23EA176F852 /* SDLProtocolReceivedMessageRouter.m */, - ED2F31EF80C218AF069FF59E223A181C /* SDLProxy.h */, - D77223E88DCDD7BB63B0B6D7D09CBFE7 /* SDLProxy.m */, - A2A0B72BF01B26F54F317403448BC95C /* SDLProxyListener.h */, - C6DF2C94DD0BF22417AAE9FD81EBA970 /* SDLPutFile.h */, - 61D900C5783B4A7CCFDED7AB11155F20 /* SDLPutFile.m */, - C49C746FEF983198F94F124899429825 /* SDLPutFileResponse.h */, - A796FF7557DEDC03B40E84FCABF5003C /* SDLPutFileResponse.m */, - 905FFC669528A903981179734581E823 /* SDLRadioBand.h */, - B92B564AB97FF0351E59B770E4461D59 /* SDLRadioBand.m */, - 62825F78AC67E047CDD779B82434FFFB /* SDLRadioControlCapabilities.h */, - 3F770F0B48C84089402B55A1C16E0BCE /* SDLRadioControlCapabilities.m */, - AA20B3EE1581C1E1FB217AFBA2AC5289 /* SDLRadioControlData.h */, - 6F6D75EF40F4FAB836D0BB49BD187336 /* SDLRadioControlData.m */, - A57F6B056F41644C1EB503B9714738C9 /* SDLRadioState.h */, - 12854D0AA526844E80820F9E8E5BEB1B /* SDLRadioState.m */, - 6A1AC42C1CE7CEE7544BFD3843B028D5 /* SDLRAWH264Packetizer.h */, - 5F829F2659AFF96D13AD1D9EE4B5EFA7 /* SDLRAWH264Packetizer.m */, - 7B950AA451BBC249F3334DAC75609D89 /* SDLRDSData.h */, - FB5934EB6BF2DD837A0DDD267F040DC8 /* SDLRDSData.m */, - 3EA642FC8AF9F46DC3E8AE79DDE2E472 /* SDLReadDID.h */, - 85C64DA96B7AFBF4B86A506D16F6B044 /* SDLReadDID.m */, - 775FFE7FBE19948FC9401B4F0776F397 /* SDLReadDIDResponse.h */, - 5115280AA762C6A3FD3BAB916224BB7D /* SDLReadDIDResponse.m */, - 50D7B874B9AE6B227AA8F4F50CAA1FCF /* SDLRectangle.h */, - EC39FC6F2170900B078272A1F0D1AFA2 /* SDLRectangle.m */, - 3EC8C09312FB4922A1226B9708C6A43C /* SDLRegisterAppInterface.h */, - 1B25AD2C3F432E69C3F7C65A1FD3AF35 /* SDLRegisterAppInterface.m */, - 8DAD01D3B62C827AC23B4522D86C191C /* SDLRegisterAppInterfaceResponse.h */, - 7CB4AB147F798B079321105636F4622F /* SDLRegisterAppInterfaceResponse.m */, - 2E2EBD053D79C772222DE2E10B18D8FE /* SDLRemoteControlCapabilities.h */, - 9045B17D93E29F5654B083F0E3B91871 /* SDLRemoteControlCapabilities.m */, - 3AA1F076AA965641F75BD01CEF11B284 /* SDLRequestType.h */, - 1C1FD7A0723D168384A7197B14A2529E /* SDLRequestType.m */, - CFF52CDAD169EA0BE305F4FEA18AF00C /* SDLResetGlobalProperties.h */, - 449521F0B43B71DD5E353197D1D06E3C /* SDLResetGlobalProperties.m */, - 0D9C79FCE97A529AF5665757AE522244 /* SDLResetGlobalPropertiesResponse.h */, - 3AC5CC5E55197D747732B811BBCDDE2F /* SDLResetGlobalPropertiesResponse.m */, - DDB5D173E33BC323A525338588E689F5 /* SDLResponseDispatcher.h */, - 300ED618507FFF56590E18E5EF202190 /* SDLResponseDispatcher.m */, - C7908C42336E3E8EF7BF8A5ED5F36DE9 /* SDLResult.h */, - 4EDDC83C524683164037103A5F5B3B03 /* SDLResult.m */, - 0F6ED7ED1A5D6F4B1FF1AE4ABAAE5CC9 /* SDLRGBColor.h */, - 77FDF4FE519E3C33CA096626BFB7B6D1 /* SDLRGBColor.m */, - A589684F65F9FCA9FE1606A5A4DA449B /* SDLRPCMessage.h */, - EDCFB982E7DC04A76ED3DA3978F5DCA7 /* SDLRPCMessage.m */, - 9BB88EEF32E4A188F028653388F389D5 /* SDLRPCMessageType.h */, - BC6C48BDF26AFE82AA25DF3EC54ECACA /* SDLRPCNotification.h */, - 78ABF68E893E072C56F7BA31130F1A5E /* SDLRPCNotification.m */, - 95A201BA4F4CA5F7F7471FC21C318016 /* SDLRPCNotificationNotification.h */, - FDE4AE55BBF8F01C929485F3093C57D4 /* SDLRPCNotificationNotification.m */, - 26596C07D4C1E171071A437EB43CF250 /* SDLRPCPayload.h */, - 906B43B3B42C2419F13B44D7649B956D /* SDLRPCPayload.m */, - B302FF2683670AE1F2DDF27585C514DA /* SDLRPCRequest.h */, - 7C40B5ABF69E45AE08FA378534E3FD62 /* SDLRPCRequest.m */, - 369B5BF8AEC7813E438E7A758338068A /* SDLRPCResponse.h */, - 4FD44B3ACC314A595F73DDE8C41B4345 /* SDLRPCResponse.m */, - 806DF22E4F83CEC997C374E69488DD96 /* SDLRPCResponseNotification.h */, - 3D6DF75BEFE354E7355FDB8A0CF69DC8 /* SDLRPCResponseNotification.m */, - AAD0EC0A506E96A234F58256C7B4B0E9 /* SDLRPCStruct.h */, - 9C1ACD7149C1EA7C8D901437F63FF9B4 /* SDLRPCStruct.m */, - 6A5D8127E561291818D7A21C758371D3 /* SDLRTPH264Packetizer.h */, - E5EBE7E9894846207F571CA5AAB4D817 /* SDLRTPH264Packetizer.m */, - AE2A8A0E7CAEFE4B324B71C286DAE1CC /* SDLSamplingRate.h */, - 7270226214680022216FC52367E6F29D /* SDLSamplingRate.m */, - 242E4D08F5FC5F8C12AC9DA213999E95 /* SDLScreenManager.h */, - B588660C306C440BCD16E23BC80F8D14 /* SDLScreenManager.m */, - 5C6E41A82E5A6888918B0B8014D20735 /* SDLScreenParams.h */, - C30DC4A516525BCBECD781C4551F5D5A /* SDLScreenParams.m */, - D75553FBF05C6083BCE6F156DE8AFB6D /* SDLScreenshotViewController.h */, - C2D61349EFC5D6989D885B003CAA2CB7 /* SDLScreenshotViewController.m */, - 113CC595E16045B043EF5DD17719EC29 /* SDLScrollableMessage.h */, - C796B5BE48E8ED08367A0096265A5C98 /* SDLScrollableMessage.m */, - 7F60A682B29BD523A1C95D44BF818678 /* SDLScrollableMessageResponse.h */, - 46EE98845646D112104D2F453723124B /* SDLScrollableMessageResponse.m */, - 03E8ABDBE6E613232D8983F9512CB9A5 /* SDLSeatControlCapabilities.h */, - 157A50F80F2AE11FF47679C6EB949AE8 /* SDLSeatControlCapabilities.m */, - 8D4041302A5894E0CAEA69FF5FB1AFD2 /* SDLSeatControlData.h */, - 187CBCC47B981AD74A6F93EC13205BFB /* SDLSeatControlData.m */, - 7EB0F5FE524CD2A868E27206CA4D9276 /* SDLSeatMemoryAction.h */, - B39C5ADFF010CF8A14C3BEA134F54E7A /* SDLSeatMemoryAction.m */, - 8E2AF364F85ABFC8AA5227B0DA913557 /* SDLSeatMemoryActionType.h */, - 878F4A0B3877E844E198E0B2E21CDFC0 /* SDLSeatMemoryActionType.m */, - D66FF1E097F6C6ADBB8C030D347AE718 /* SDLSecondaryTransportManager.h */, - 85FB37CFF9AA36FAC92BFD1A5209922B /* SDLSecondaryTransportManager.m */, - D2F29B3571AEDC6EF2A05C2FD2428B8C /* SDLSecondaryTransportPrimaryProtocolHandler.h */, - 44506CC099F475752271FA11D05D3C75 /* SDLSecondaryTransportPrimaryProtocolHandler.m */, - 90B140356718D6990742118A0DE2E86F /* SDLSecurityType.h */, - 43CD4E20EA357AF78C5B0D31F5F31E3E /* SDLSendHapticData.h */, - 71AD2A07C9CFE4A12C4EF8EDD7F55F03 /* SDLSendHapticData.m */, - A13F7104F602D8CCF55BE328CCAF9BAC /* SDLSendHapticDataResponse.h */, - B6888E9AC86CB09F600E2D4D38162348 /* SDLSendHapticDataResponse.m */, - 780B1A1308BC973F769EB7125367DE11 /* SDLSendLocation.h */, - D5819EE20D82F143CE1F0633E4D07C59 /* SDLSendLocation.m */, - BAE73359DCF96D79A92A9621B8D305A0 /* SDLSendLocationResponse.h */, - EA6D4C3D5EF2FDAE040D325A759CB6BB /* SDLSendLocationResponse.m */, - 30A208F2A2627ACEFA41F51C36E546F6 /* SDLSequentialRPCRequestOperation.h */, - 9254EF45C5191A8B292F657750380D1F /* SDLSequentialRPCRequestOperation.m */, - 60AC85822D7B2986864CEF6F1951ED33 /* SDLSetAppIcon.h */, - 11932588F33A92E88B06122013AB8F35 /* SDLSetAppIcon.m */, - CA4C4A31F252A3AA8D1F093D8AA1C2EE /* SDLSetAppIconResponse.h */, - 5026B768F427D41AD264854700D76084 /* SDLSetAppIconResponse.m */, - 318E7D64E2E03688E5466308C0C8EAD0 /* SDLSetDisplayLayout.h */, - 167B88D798FEEDC592CA68F9B81C3C53 /* SDLSetDisplayLayout.m */, - C5EA591376DD52B8329D8B6224101BE5 /* SDLSetDisplayLayoutResponse.h */, - 11FDF61E15EA556F1CEF592604857CFA /* SDLSetDisplayLayoutResponse.m */, - 7D566AE50B191DBFB833D69C8108A202 /* SDLSetGlobalProperties.h */, - FB4C01D533FFC24E248651CE7EA674CF /* SDLSetGlobalProperties.m */, - 918A4228C48EB0067BA2FD3AE232F617 /* SDLSetGlobalPropertiesResponse.h */, - 492D4F2D51A313D0902E178DD1AEF5B8 /* SDLSetGlobalPropertiesResponse.m */, - AADF6CC67DB541A26C867733BFB837C3 /* SDLSetInteriorVehicleData.h */, - F7111C40A1B8D985183C000106A4045B /* SDLSetInteriorVehicleData.m */, - D8DEE8193F871BAF8FB10C6766E58037 /* SDLSetInteriorVehicleDataResponse.h */, - B836FFAC43577369039BC81E89BD1E84 /* SDLSetInteriorVehicleDataResponse.m */, - FEF096B9ED60494498C54BF016616F93 /* SDLSetMediaClockTimer.h */, - 82983133771C2647E3DB3C7CFCCC1923 /* SDLSetMediaClockTimer.m */, - EBC44269990CF3B877BB2720CEC9CB74 /* SDLSetMediaClockTimerResponse.h */, - 55A7A1220C06CCE1A9A4550B36EA8D03 /* SDLSetMediaClockTimerResponse.m */, - CCB1B296EDBE648A896D60F8CEE6EF27 /* SDLShow.h */, - 58FEBFDAA6ED51BFCA92BDE0533F474B /* SDLShow.m */, - 552B58C8C471E41210FCFEC0FB79E946 /* SDLShowConstantTBT.h */, - 570466811B7708FD306FECA152F11CB9 /* SDLShowConstantTBT.m */, - 60F3D61C1A9777D5DC05B26C11612C34 /* SDLShowConstantTBTResponse.h */, - B10C0BDDE44A8F647B3972B9E54F2BC1 /* SDLShowConstantTBTResponse.m */, - 3EE7896D35763F8CAF64B08BA64C53DD /* SDLShowResponse.h */, - 1AF600A0C57267F1F8E415344E6BAFFC /* SDLShowResponse.m */, - 44F6704B5CD4628340637ED433FA5BD9 /* SDLSingleTireStatus.h */, - CCAC618CC0C3328787BC012A68387719 /* SDLSingleTireStatus.m */, - DDBCD95E6AEEBA36D045DE905604EE77 /* SDLSISData.h */, - 022836C73FFD3B13313C60652032D850 /* SDLSISData.m */, - 1B49E94C86A8F29FC04ECE227ED8900A /* SDLSlider.h */, - 853D4FF5772833364CFE76D24578AC9A /* SDLSlider.m */, - 758828EDB3A486DAC7555C09C9C7A075 /* SDLSliderResponse.h */, - 8AD8A6F8A59C6A3CCC42BF3FFBDCE6F5 /* SDLSliderResponse.m */, - 3B47C27C1C51D3C0496F6DC20D6173B7 /* SDLSoftButton.h */, - 88CD2BDF6FF3ED3F6B18D71D1A446DD8 /* SDLSoftButton.m */, - 40C3DCCA2797BCCB1A582257FAD07C67 /* SDLSoftButtonCapabilities.h */, - 1452029094F815D4A37CB7AF1F8F68B1 /* SDLSoftButtonCapabilities.m */, - 2BAFD24C619E18105CB98355ADC1DA09 /* SDLSoftButtonManager.h */, - E0909068F2B40476D8DD18012ACEE182 /* SDLSoftButtonManager.m */, - 0E03634E6C3AFED73B96488B3E52D16A /* SDLSoftButtonObject.h */, - 4D7A37098585D1F6516F67BC762B9572 /* SDLSoftButtonObject.m */, - 0837D198E63D15DBF4D735082E0C46FE /* SDLSoftButtonState.h */, - 8C5D5F27602E0540AA5B35AF19980468 /* SDLSoftButtonState.m */, - D9D727BA4020333B94CAAB14C5548B42 /* SDLSoftButtonType.h */, - 2EC269B1966033DB01819D2781AC4309 /* SDLSoftButtonType.m */, - D4BA8AEBC53D58106E0568ACFD4F7513 /* SDLSpeak.h */, - 8EECA380F767D515D06515EB2526BCE8 /* SDLSpeak.m */, - FE3D9FA9E20EADE3D814527B11431DD7 /* SDLSpeakResponse.h */, - 3BA470C9B9EB26D3D32BA81CC044675F /* SDLSpeakResponse.m */, - 623492413C9581E1C2A71421E771D34D /* SDLSpeechCapabilities.h */, - B30D5145EB60AD2060C601A064F64A2C /* SDLSpeechCapabilities.m */, - 3000DA61AEE11E76574446153EA6A9D0 /* SDLStartTime.h */, - 0606C8406E5F0896454C2482843C1837 /* SDLStartTime.m */, - FAAFF0562BE405586BCF1FDDF36AE5ED /* SDLStateMachine.h */, - 0F18A46B205DECC8DF42A3B8D86D81C7 /* SDLStateMachine.m */, - 3D77537101F4D37E9DC5CF089F2678B1 /* SDLStaticIconName.h */, - 6005348BEB563D39CB3F58D14980AAC3 /* SDLStaticIconName.m */, - 5F5FD2872F26AF396350B7190E6DE3E9 /* SDLStationIDNumber.h */, - 8BDB404AF77A5DEA1B3DB84DA45A6AC8 /* SDLStationIDNumber.m */, - C05DA9D93548A248694FE1C3597A20C1 /* SDLStreamDelegate.h */, - E88F2B657B46A7ECC846CDFFF5390F31 /* SDLStreamDelegate.m */, - 31A35F792486DE7AFBB2EC2911AE103F /* SDLStreamingAudioLifecycleManager.h */, - 4B824FEA6352112490D78F7DC1FBA9B1 /* SDLStreamingAudioLifecycleManager.m */, - 60D99BD0A38FFE51A06990C44060C1B5 /* SDLStreamingAudioManagerType.h */, - D8D039EA7810F354905A7B7DEC39AD3D /* SDLStreamingMediaConfiguration.h */, - FECAD3D772AE3D92F982F8D37CF84190 /* SDLStreamingMediaConfiguration.m */, - D2FA97C41ABC4E9B58E7AD67F60EC9E2 /* SDLStreamingMediaManager.h */, - 290173F04289B99176783B66E57534AB /* SDLStreamingMediaManager.m */, - D2C578E5041CA51DAED52E0CA76D5B99 /* SDLStreamingMediaManagerConstants.h */, - ED61ABE324F03833E5DD4900423E6100 /* SDLStreamingMediaManagerConstants.m */, - EB818F5E2DD87AB284266FC69B4D5A12 /* SDLStreamingMediaManagerDataSource.h */, - 3BD2DB088EAE22C7DD20B753FE0006F9 /* SDLStreamingProtocolDelegate.h */, - 8F06149E7100A56D1FA84248303C1817 /* SDLStreamingVideoLifecycleManager.h */, - 259D45E1AFB4F1787FC8E3DE5C59CEAC /* SDLStreamingVideoLifecycleManager.m */, - 35CCA10DFC8096AC5E016E46765C017C /* SDLSubscribeButton.h */, - 3E81332C7D788E672B67F2C6B78E9E27 /* SDLSubscribeButton.m */, - 6E198C907E3D8D13A562100426F21D81 /* SDLSubscribeButtonResponse.h */, - 6CD9E0DF1EFE3DE7FF4D549A53E52886 /* SDLSubscribeButtonResponse.m */, - D93CCB1CAE537717BC9BCD4B03436DE4 /* SDLSubscribeVehicleData.h */, - 1CB47175BD521EA36770290CCE23BAE6 /* SDLSubscribeVehicleData.m */, - DA6DECFDEF3FAF260C7869F41CAB3C77 /* SDLSubscribeVehicleDataResponse.h */, - BA3A24BAD4F7C9627E27A09F459982DE /* SDLSubscribeVehicleDataResponse.m */, - C9E6389F7EB9A2D0D5DFA03917B8774A /* SDLSubscribeWayPoints.h */, - C64D7A63C4552BCCDBF2279977AA076F /* SDLSubscribeWayPoints.m */, - D4F1CB611287E0564A46366E467F2B99 /* SDLSubscribeWayPointsResponse.h */, - 37D8092920B8E5E088E7054B0E3942B8 /* SDLSubscribeWayPointsResponse.m */, - ED9C3F415373C1FEC38B39E0C3E6A57B /* SDLSupportedSeat.h */, - 2C915C4AA9086574E49D8331642E4948 /* SDLSupportedSeat.m */, - B9171F06491C70DE50D2DDEFFA1DCA85 /* SDLSyncMsgVersion.h */, - AB71670E1D39EA195F20599D06B93C3C /* SDLSyncMsgVersion.m */, - 278DFF1A727BCE036997E56393C855FA /* SDLSyncPData.h */, - 544E15AB2D6A32CDC138E9D68B84226E /* SDLSyncPData.m */, - 7F09A75F248CCF94E447F986B25B46A5 /* SDLSyncPDataResponse.h */, - BD63D162A710F26E0171321EA5F2591C /* SDLSyncPDataResponse.m */, - 1F4DBA778C889E7AE9BD815E523C2F54 /* SDLSystemAction.h */, - 94DAE9A99EFED4688FE48863309B3153 /* SDLSystemAction.m */, - DECDC982A9EC09E0580A89EA45345121 /* SDLSystemCapability.h */, - 5C2874B5B64A663350964F44E1ECA561 /* SDLSystemCapability.m */, - 371C3337694484EFB099491CD7CBA561 /* SDLSystemCapabilityManager.h */, - 73EE85CE5BDD312FCEE5664BB16E7CBC /* SDLSystemCapabilityManager.m */, - F04DD54016688A8FBD677798DD52F1C5 /* SDLSystemCapabilityType.h */, - E7271585FE01A8942488AA222DE3AB43 /* SDLSystemCapabilityType.m */, - A2FA6D88BF0D8BE275F4AF2C7C117908 /* SDLSystemContext.h */, - 1843B9CA2192C5B3AFC14A50D86F80D2 /* SDLSystemContext.m */, - C3596A8E5AA2AB66C296A109794B893E /* SDLSystemRequest.h */, - 3333FE8BAEDEBFE42D614FE436BD845A /* SDLSystemRequest.m */, - 01927F53ACFE6C35599C291FAECAE508 /* SDLSystemRequestResponse.h */, - E0D02E23B750D15B087CF6991C7DD1E5 /* SDLSystemRequestResponse.m */, - 2FA874BD88EA74B7BB768D1914F61EEE /* SDLTBTState.h */, - CBDCBD2A2EFEDA02586A671D16C8A613 /* SDLTBTState.m */, - 561E7859983DC63B87B4C26B0FE33EA8 /* SDLTCPTransport.h */, - CA449C346ED9EF7784D603168D130BF9 /* SDLTCPTransport.m */, - 750876967AB3BEF7925DBF19F38CFA89 /* SDLTemperature.h */, - 0A4F2EA6C3CBD72615526EFA883EDCEF /* SDLTemperature.m */, - 3A44B618A753930AEB7AB149D4B8216A /* SDLTemperatureUnit.h */, - 489D8CDA867A051C8CB4598886BC2C04 /* SDLTemperatureUnit.m */, - 9B77D58B46BB335AF89C58EAF72BD997 /* SDLTemplateColorScheme.h */, - 55E755AC3C038CDDF96EE7AF1ED8DD5F /* SDLTemplateColorScheme.m */, - 87AE3D09CF88341F47674088B1C54CA1 /* SDLTextAlignment.h */, - 1591790007AA3BAC73DAF98A1189DB79 /* SDLTextAlignment.m */, - 0EC69CB6F6EE1A9CE6603EC0C528E22F /* SDLTextAndGraphicManager.h */, - F5507ACACB0EE1CDC5827DB3CB5C3921 /* SDLTextAndGraphicManager.m */, - 9E365ECDA4C5949303D4269A4E6C1025 /* SDLTextField.h */, - F26FA6D4CFDB68F6D5708D3320506CBD /* SDLTextField.m */, - 6263819ACF21688B5F135FFFFADBDDFF /* SDLTextFieldName.h */, - 613CB777291FE463B847AB0CE424E3E2 /* SDLTextFieldName.m */, - 5B17A24A0D4554865BD3A2D6600A70C0 /* SDLTimer.h */, - 8B4CA939A6A2196F72751084D8883EC5 /* SDLTimer.m */, - 8B32686218B33B63CF5B9A0030051449 /* SDLTimerMode.h */, - C98CE191527F3EEA9EB0D52A7E8C01E4 /* SDLTimerMode.m */, - 294E4A7904CB881EF7321E92C367DCC5 /* SDLTireStatus.h */, - 91BDA2325DA14618CF06ECCE83BAA12C /* SDLTireStatus.m */, - 67B626A3DF2C3F1EFB63B489EDD72508 /* SDLTouch.h */, - 7E63FCE296EEC7CC4266B624CB94D0E3 /* SDLTouch.m */, - 897C955F52B3CC643F621B391FE0E0CD /* SDLTouchCoord.h */, - B13627FB4B377D445F3A6608F656BE31 /* SDLTouchCoord.m */, - 07593F3189E4191BA5055F4E3E6AAAF7 /* SDLTouchEvent.h */, - 53B6392C0544376075AE0688976F4995 /* SDLTouchEvent.m */, - 46A22E1778DAA87AC1078DE0B1FB4A24 /* SDLTouchEventCapabilities.h */, - 294FE66477B32CB65903CAB08A4D0901 /* SDLTouchEventCapabilities.m */, - 4EBBAF147C064ED2D11A1F98C0FDD1B2 /* SDLTouchManager.h */, - 1B5726B9900948F08E1B7069AA2DBD54 /* SDLTouchManager.m */, - 56D0196F865D56B6B7B5A1E790ABB1CD /* SDLTouchManagerDelegate.h */, - DAE97070D2DD7177A7C271893521CA74 /* SDLTouchType.h */, - 21FBCD7A2D38BA6674F5B0E20331F1B2 /* SDLTouchType.m */, - A56B12620457866F3F66271757C255A6 /* SDLTPMS.h */, - 8592C8905CFA25913170F954352CB90D /* SDLTPMS.m */, - C75F3D86ED3595011FD0EF82DEE4B281 /* SDLTransportDelegate.h */, - 7F9E7450CE3C9AEF7780149EF7C0651C /* SDLTransportType.h */, - CFCC4C078A82BC69C78877B984B1F7DE /* SDLTriggerSource.h */, - F22C081156C963137E13B64F8EEDDBE7 /* SDLTriggerSource.m */, - 8D8320A911DB2A100461128D32DA4DA9 /* SDLTTSChunk.h */, - C72CB8FE47E78B2195E1D260F2BCBE55 /* SDLTTSChunk.m */, - 58A9BC0BD679E91F8A1E67C32BAB9F47 /* SDLTurn.h */, - 567704385F3D6A56D7306254057ABE58 /* SDLTurn.m */, - 46E9F30F07D90FE0DD803922742B11F4 /* SDLTurnSignal.h */, - D6FECF75926265826FDEA4124F3C90EF /* SDLTurnSignal.m */, - BB5F7AF6EB7A651AA9025D03B433AF00 /* SDLUnregisterAppInterface.h */, - B96911424DB8E68C3F7A172EE62500E1 /* SDLUnregisterAppInterface.m */, - 075A05913BC6F33B82BB059FE069BD5B /* SDLUnregisterAppInterfaceResponse.h */, - F8F030BFD1C8C53533F5FE9C47B23B0B /* SDLUnregisterAppInterfaceResponse.m */, - 8DF56FE670C445485FAD9CE424BBD979 /* SDLUnsubscribeButton.h */, - 9929B63756D6EFC654DDAE86E9C357D8 /* SDLUnsubscribeButton.m */, - 7A7D5318694339EFF9B87A0CAAB26449 /* SDLUnsubscribeButtonResponse.h */, - 28116C10F8E6839229E73642FA1E4D49 /* SDLUnsubscribeButtonResponse.m */, - FBC88689D957B55C0048D1CEDB2EBBC2 /* SDLUnsubscribeVehicleData.h */, - 515E6C76E4E40643313548862912653D /* SDLUnsubscribeVehicleData.m */, - AA16F714E4ACF048C908C32836C32AAD /* SDLUnsubscribeVehicleDataResponse.h */, - 4B04DEDF8E1EC38E7797CB6ADC6AF974 /* SDLUnsubscribeVehicleDataResponse.m */, - C9C4E34BF96558991703677F909C69A4 /* SDLUnsubscribeWayPoints.h */, - F0877301378FB5E31DC1FF839B052571 /* SDLUnsubscribeWayPoints.m */, - 5ED1206D735E32E869AE7B5BDA210D19 /* SDLUnsubscribeWayPointsResponse.h */, - BD7E70381BF9886C592D42AAACE7D474 /* SDLUnsubscribeWayPointsResponse.m */, - AD6E04FFE3A2EB19E5F08CB202D45045 /* SDLUpdateMode.h */, - D48E12FC519B7176B5ABCBAFF3F4A7CA /* SDLUpdateMode.m */, - 7369D4C540A1A6DCB0914BE60C051602 /* SDLUpdateTurnList.h */, - EA582BB114E38C65B6A91E4EE7B8F1F2 /* SDLUpdateTurnList.m */, - E439FC4CCB22233A41FA34B33784F938 /* SDLUpdateTurnListResponse.h */, - BBC3AEA3C7164BC2E9913A9CFF16E8F8 /* SDLUpdateTurnListResponse.m */, - FEF2F285408D6796CC68B3E5C8A67994 /* SDLUploadFileOperation.h */, - 85FEDF2A2BBB46F56EDE42B6A54156AA /* SDLUploadFileOperation.m */, - 1529E778CB489616CEC128365ED5CFA6 /* SDLV1ProtocolHeader.h */, - 1072E708C0802544B54DCFAE27D4E692 /* SDLV1ProtocolHeader.m */, - FE7D0124F88DC1F3149FCBC1CC631444 /* SDLV1ProtocolMessage.h */, - EDA3EFDEAD056017AB9C5A82679E99B2 /* SDLV1ProtocolMessage.m */, - 33232BB5262BA6F1226DA202E9671995 /* SDLV2ProtocolHeader.h */, - F3717E63FA48A5C50AAAE57A9318054D /* SDLV2ProtocolHeader.m */, - 9B40A91D25C52B221AA22FCE5737BFC4 /* SDLV2ProtocolMessage.h */, - B64DC108EFD38FF6AD0FFFF15424C17C /* SDLV2ProtocolMessage.m */, - 5077BEA250C7539EE60A931402EE49B9 /* SDLVehicleDataActiveStatus.h */, - E8355E321C8CD5412294AEDC2B85517E /* SDLVehicleDataActiveStatus.m */, - 02E4BC4185F347014878E1B59F325DB7 /* SDLVehicleDataEventStatus.h */, - AD448DE63DDE2D4588D5BCFF9FF3CED6 /* SDLVehicleDataEventStatus.m */, - DE28653246A6B19B5D9C82A38F1267A9 /* SDLVehicleDataNotificationStatus.h */, - 6803B20ED362AB70967B0C7055309A61 /* SDLVehicleDataNotificationStatus.m */, - D7B5B4BA4F26E2194066AB7EBEB93A57 /* SDLVehicleDataResult.h */, - 3265C5001A2B5C7FDD75B87FB09F0A9E /* SDLVehicleDataResult.m */, - 962BB9FDAFCD322B51AFEAA3F30F88C5 /* SDLVehicleDataResultCode.h */, - 849B1DE4F355AEFA9C976B360A798DDD /* SDLVehicleDataResultCode.m */, - C906B3598B3CFACF07B0ECE64FA3266D /* SDLVehicleDataStatus.h */, - 54AD9BB2ED9351E39DEE63C0E9B9ED5F /* SDLVehicleDataStatus.m */, - 07AFE3CA1A94AE8F3B50436DAD7A651F /* SDLVehicleDataType.h */, - 98C4256ECA504E1CC027AB912D1F64E6 /* SDLVehicleDataType.m */, - A89A9EFD2D36F49E08C182ABDCE2991F /* SDLVehicleType.h */, - D682EE4635A0FD228944E10BD3DBD2D3 /* SDLVehicleType.m */, - 72DA23D6B1B8CEE91F55CF693FD690B2 /* SDLVentilationMode.h */, - 7B3C337257E971AE52091FADEA1E69BD /* SDLVentilationMode.m */, - 0FD3F3FCB6D7F8375707A5ADE2B0B9D7 /* SDLVideoEncoderDelegate.h */, - 3DBFF64D9B2AD1BA9EE49B1585A50913 /* SDLVideoStreamingCapability.h */, - B82BD5CA32CF72B71EEE56763F38464A /* SDLVideoStreamingCapability.m */, - E8C4C7AA6A5BC02EF4D43A491686D9EA /* SDLVideoStreamingCodec.h */, - B328DA9E16288A04E1F8DF443AC85626 /* SDLVideoStreamingCodec.m */, - EC448CD8B6A7EC7C9542B754FDF978F2 /* SDLVideoStreamingFormat.h */, - EF263A3DB489F2DFABE45E6A7B5EF757 /* SDLVideoStreamingFormat.m */, - 2B7878ADF0F0D6A17DAE063071E6CA8D /* SDLVideoStreamingProtocol.h */, - 2783B441BC8A958210375C2CB1FFF38C /* SDLVideoStreamingProtocol.m */, - 701B5609A93C858CAFCCEED925DA688E /* SDLVideoStreamingState.h */, - 7A6B4FAF65147D01EAB724CF22D4AE0D /* SDLVideoStreamingState.m */, - 365FC18DA34697E05E3D5EDB05B377B7 /* SDLViewControllerPresentable.h */, - 1A475293FD2E00B06407A29CE402B3CE /* SDLVoiceCommand.h */, - 97E65B30099BCC7FCE9EE35C4557EFB7 /* SDLVoiceCommand.m */, - F2B21041C8038135FEF53BB001EF0F91 /* SDLVoiceCommandManager.h */, - 95CBE58570B12C86B075BF40F1D826A5 /* SDLVoiceCommandManager.m */, - 74C1219630B98AA4BC12B5245AA5CFB1 /* SDLVrCapabilities.h */, - 11E2F665E33EE37B613491E89FC223ED /* SDLVrCapabilities.m */, - 8080BD85150924CD82CF697853AB49DD /* SDLVrHelpItem.h */, - 377445D67676F1D832550CE95B78BB4F /* SDLVrHelpItem.m */, - ABA99CE85C327FFAD4C981FC5CF3D003 /* SDLWarningLightStatus.h */, - 63466A9AB415882C06F7AE80584F210C /* SDLWarningLightStatus.m */, - 47E4A52D2392FB209D8115764D1AB1D9 /* SDLWayPointType.h */, - 9DB23C1F5BDF1F27A2D1917F3EAAC433 /* SDLWayPointType.m */, - 0B86CE88D851B73EF7B846EEFECEB105 /* SDLWiperStatus.h */, - E71309A18D09217CAF532B036D0FA97A /* SDLWiperStatus.m */, - E36102EF1851D3F66F89FB3A06D17F37 /* SmartDeviceLink.h */, - 223DF75254EF6C3F1112A5278985E072 /* Resources */, + CADB648304E13078D32B3FD465D4550E /* Pods-MobileWeather.modulemap */, + E4434753B7C23D766EC5A0D8B1EC7D24 /* Pods-MobileWeather-acknowledgements.markdown */, + CBDFD38C9C935811D67494103D5F4E6C /* Pods-MobileWeather-acknowledgements.plist */, + FC419B6D5F4F5B911DB8B2F295E08532 /* Pods-MobileWeather-dummy.m */, + 761CC69C3F5D1EFD734F628AEA4699D0 /* Pods-MobileWeather-frameworks.sh */, + 59D7FD29EEF5AC55F5624BD9B791ADD6 /* Pods-MobileWeather-Info.plist */, + 5E7A92F6F5DF51067E86A63E8CD1EC5C /* Pods-MobileWeather-umbrella.h */, + 67F8B6234CDA01ABF6D0A2BB501FAF2D /* Pods-MobileWeather.debug.xcconfig */, + EEEFAB8E3FFC61EA0D729CFCA1DF85F5 /* Pods-MobileWeather.release.xcconfig */, ); - name = Default; + name = "Pods-MobileWeather"; + path = "Target Support Files/Pods-MobileWeather"; sourceTree = ""; }; - C33A2D509DAB2A367422C4169CF55BD7 /* Support Files */ = { + 86162AD35B5078217BAB16DE8DDBCA8F /* Targets Support Files */ = { isa = PBXGroup; children = ( - 645F30D3F4D32CB6290C7AAEB1B01792 /* Info.plist */, - 01232C2185173CEDDE2F0AE4061AC646 /* ResourceBundle-SmartDeviceLink-Info.plist */, - 172391E2C767592E37556E01537A8ABF /* SmartDeviceLink.modulemap */, - A875DFABA35DCF8BD7D48B371863A251 /* SmartDeviceLink.xcconfig */, - 3C41D652EF9BBF85E62105FDA5237EAA /* SmartDeviceLink-dummy.m */, - 11A3AA37825F0E52099013FBF6A97454 /* SmartDeviceLink-prefix.pch */, - 2B2C4A5A90D11A445D20A514AA2B6C69 /* SmartDeviceLink-umbrella.h */, + 540154A38CD9903DE4406A1DDBCCB05F /* Pods-MobileWeather */, ); - name = "Support Files"; - path = "../Target Support Files/SmartDeviceLink"; + name = "Targets Support Files"; sourceTree = ""; }; - D33C4317A1D33EEB7FCD5619E31325B4 /* Frameworks */ = { + 89B38A6C0A3CAF4A24CF6CDBC710402E /* Swift */ = { isa = PBXGroup; children = ( - 2443CB63E3BC1583C506BBC04BE50078 /* BiSON.framework */, - EEBB360A0DC8FDE36FC697A5EBB33C1B /* iOS */, + 0381C7F8F19AB2E83F3F40CB77F00DCB /* SDLLog.swift */, ); - name = Frameworks; + name = Swift; sourceTree = ""; }; - D95B17CEC3B07AC72E4F2C32E1496D1D /* SmartDeviceLink */ = { + BDDB36FAFEC8E06EA81E7B69A93982ED /* BiSON */ = { isa = PBXGroup; children = ( - AE15DDFC52EA382558E11158499D0F9E /* Default */, - C33A2D509DAB2A367422C4169CF55BD7 /* Support Files */, + 094B9EE84AB60943CDCB9F8C70FA11EC /* bson_array.c */, + 3FDDC6658582C0B1CEC0775EEBEFEF01 /* bson_array.h */, + 956785ADB6C5C07C0C429DA47DA59E4E /* bson_object.c */, + DD2A35B92D9AC44F072344ECC125D1B7 /* bson_object.h */, + EB5B9BB9D28C2BC68BFABDDE546A6246 /* bson_util.c */, + 82FF30811604FAB65F49A60CF6868F75 /* bson_util.h */, + B53DDEC25BD2CEEE368F8B2099D4269E /* emhashmap.c */, + 4498BA293BEAD680B6055DB76B201258 /* emhashmap.h */, + 51CE33EBE8FFBC30BEF32E469BF01E5D /* Support Files */, ); - name = SmartDeviceLink; - path = SmartDeviceLink; + path = BiSON; sourceTree = ""; }; - EEBB360A0DC8FDE36FC697A5EBB33C1B /* iOS */ = { + CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( - 92EC16D73BAA299A6234966E38DF6113 /* Foundation.framework */, + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + 42E3F06399806A758479239FE8C48DF5 /* Frameworks */, + 1F44F6C17D07B2869644379E212938BC /* Pods */, + DD304B7CA51DC6D1CDE0F21CD545A9F1 /* Products */, + 86162AD35B5078217BAB16DE8DDBCA8F /* Targets Support Files */, ); - name = iOS; sourceTree = ""; }; - EFCF632D30DD177693144070988C6729 /* Pods */ = { + DD304B7CA51DC6D1CDE0F21CD545A9F1 /* Products */ = { isa = PBXGroup; children = ( - 5751E6EF4F4C0461FE15A95624588B85 /* BiSON */, - D95B17CEC3B07AC72E4F2C32E1496D1D /* SmartDeviceLink */, + 7B1F6B431A4C7D300274DCDBE2BC7043 /* BiSON.framework */, + B658D9594E81D91F5F5FF21E8DD5044A /* Pods_MobileWeather.framework */, + C197364227C0998A9025317EAD699894 /* SmartDeviceLink.bundle */, + 012CE07CE00E36054DA038C75909F04A /* SmartDeviceLink.framework */, ); - name = Pods; + name = Products; + sourceTree = ""; + }; + F3F423CA06AF8F084BD2AF6D368BA938 /* iOS */ = { + isa = PBXGroup; + children = ( + 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */, + ); + name = iOS; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 18A91028EB1D39D0A2C3C7780F96D942 /* Headers */ = { + 1901E553EF7960531A828B98ACF2AA7D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - C90EF98864BD75342A61F68A623CB8A8 /* CGPoint_Util.h in Headers */, - E8D37B50A117D422D45107661FD8E4F7 /* CVPixelBufferRef+SDLUtil.h in Headers */, - 6385324515C13E42D57D36075A0FC12E /* dispatch_timer.h in Headers */, - 8543F60F5BA6080AC723E1AC53854113 /* EAAccessory+SDLProtocols.h in Headers */, - 25FC95E53399E920C720FE3402D2F4FC /* EAAccessoryManager+SDLProtocols.h in Headers */, - 15D110DCFB081B2926AB45DD7D8138AE /* NSBundle+SDLBundle.h in Headers */, - 0571E0DE81FA95CEFED6F44A914BD482 /* NSMapTable+Subscripting.h in Headers */, - BF9F0306CDDA8B33F143C2926A72802F /* NSMutableArray+Safe.h in Headers */, - DBF544509E5935118606279DCBE73CBA /* NSMutableDictionary+SafeRemove.h in Headers */, - B3340A79998FB27A4A960E6FF8DE1AEE /* NSMutableDictionary+Store.h in Headers */, - 619CC002A2516F79E03D6CF554719934 /* NSNumber+NumberType.h in Headers */, - B2843C8B6DCE85C9099DDD51289FA8F3 /* SDLAddCommand.h in Headers */, - FA068D27E688257BCD7280CADC7D92B2 /* SDLAddCommandResponse.h in Headers */, - C87E48E98E897FBB1A8CDD5C8D32A295 /* SDLAddSubMenu.h in Headers */, - 78B32A463421A20D742629D3899757EE /* SDLAddSubMenuResponse.h in Headers */, - 291D6E7A9B53BC97B4266E5E733A9D9A /* SDLAirbagStatus.h in Headers */, - 988933F47345563E06CD83A33A2497B6 /* SDLAlert.h in Headers */, - EF0ACB6858CA006466F6694250CF9080 /* SDLAlertManeuver.h in Headers */, - DC313AF20AB465AD1B65873649B218CE /* SDLAlertManeuverResponse.h in Headers */, - 769FA72939C4B110B101EE74EB4F5360 /* SDLAlertResponse.h in Headers */, - CF55A8209FBE274FC5E3A28FE189BEF3 /* SDLAmbientLightStatus.h in Headers */, - 003F2A9389ABE0BBA874152D87D81FE9 /* SDLAppHMIType.h in Headers */, - 81B622E5CB6CB2D43A77962869486595 /* SDLAppInfo.h in Headers */, - A03A74F2BDDFCA7947186B392BE459D0 /* SDLAppInterfaceUnregisteredReason.h in Headers */, - BAC2A22D53D529749AE9E63363597669 /* SDLArtwork.h in Headers */, - B4FEDD245E82D4842767CF205FDCF3B2 /* SDLAsynchronousOperation.h in Headers */, - 1E08FC40843DC74847587D066152384B /* SDLAsynchronousRPCRequestOperation.h in Headers */, - B728DE284F9AEB0D6439FA532EBD40EF /* SDLAudioControlCapabilities.h in Headers */, - A72129C33CCE32DE7ADB0005986FEC46 /* SDLAudioControlData.h in Headers */, - CE7AFCEE65570E4C568F22CB173C5909 /* SDLAudioFile.h in Headers */, - F0D07E28EC0315EE585092ED33E1E9E3 /* SDLAudioPassThruCapabilities.h in Headers */, - 83D66C311A68AC9FE1602F18A540186C /* SDLAudioStreamingIndicator.h in Headers */, - 515B7E5A2A5B4CA5C242F2B9A1A86114 /* SDLAudioStreamingState.h in Headers */, - 684AE1E013C508054D4BB8A5264F4914 /* SDLAudioStreamManager.h in Headers */, - F52461B0208D07BDA1B362B49B8FBD5C /* SDLAudioStreamManagerDelegate.h in Headers */, - B34592C75BAACACAD4D062D7D56524FD /* SDLAudioType.h in Headers */, - FA0983BF15E5145CFF7EC67FCDA6D1C5 /* SDLBeltStatus.h in Headers */, - 437F9E9979EBC890F4E7986AF8E9F555 /* SDLBitsPerSample.h in Headers */, - D7B7374DBEDD5A3F684E01BA9AAFB3B3 /* SDLBodyInformation.h in Headers */, - 9C79AE73E65C63E06E551EA421B90DA0 /* SDLButtonCapabilities.h in Headers */, - 3A8524D9DB82B710CFA048A740AEDA10 /* SDLButtonEventMode.h in Headers */, - A260AEDA4AEC867A486C90AC7177F8BB /* SDLButtonName.h in Headers */, - 058E093A87092E9F8CFDD67549A024E8 /* SDLButtonPress.h in Headers */, - 3FA8BF893B4ABCE89302AF12D3FDD36B /* SDLButtonPressMode.h in Headers */, - 859B69F68E9CDA169469B014F93CFF09 /* SDLButtonPressResponse.h in Headers */, - A5813FA00B9D0DDB00A2F9B0B354D18F /* SDLCarModeStatus.h in Headers */, - 7A3E7ABDBE6A87ACD034680F232F6ED4 /* SDLCarWindow.h in Headers */, - 2E899075BD1FB0B43B0336F04BFFE82C /* SDLCarWindowViewController.h in Headers */, - 495B9BFB4528B543B85D33626944F27C /* SDLChangeRegistration.h in Headers */, - 7358421F622FE594A4276021A5C124E2 /* SDLChangeRegistrationResponse.h in Headers */, - 0B2BA4773B46F54A3FAFF496DBB0C22B /* SDLCharacterSet.h in Headers */, - 429EA9BAF3633D69D00E9A993542B0F3 /* SDLCheckChoiceVROptionalOperation.h in Headers */, - BC92CAA3D4E2A84EF568CF1F6A8D4EA6 /* SDLChoice.h in Headers */, - 9D973B2FD8134B223C95C435F2ACF9DE /* SDLChoiceCell.h in Headers */, - 10C8FD6897674ADEC7AA22D4778243FC /* SDLChoiceSet.h in Headers */, - 4EA7202E9058AF4E5B55B73766E402BF /* SDLChoiceSetDelegate.h in Headers */, - 20259D21A0257386BD4E5F40489851AE /* SDLChoiceSetManager.h in Headers */, - 7716C0BB0E2A2EA9A0EFD9505E71D45D /* SDLClimateControlCapabilities.h in Headers */, - CBB7C3BD819864F8F7C49032EFA00D4C /* SDLClimateControlData.h in Headers */, - 786DE4402DE0397F432C0614F6F5D1C9 /* SDLClusterModeStatus.h in Headers */, - 88DA25C0BE006FCB2279BB1A6C976F4C /* SDLCompassDirection.h in Headers */, - 383A60466C0BB252F9AABE852853A442 /* SDLComponentVolumeStatus.h in Headers */, - E6C36EB3D959CB47DC2F7526CBDF05B5 /* SDLConfiguration.h in Headers */, - D9D4D5CB73090194E27617D1C080282F /* SDLConnectionManagerType.h in Headers */, - 8BD7401C23DB6C1771107EB9E6C5E198 /* SDLControlFramePayloadAudioStartServiceAck.h in Headers */, - 434FECDCEFCE761DC9E53E8421A0E199 /* SDLControlFramePayloadConstants.h in Headers */, - 62BF3EE28FBFBA5CB49DAD3459171B92 /* SDLControlFramePayloadEndService.h in Headers */, - 8537418E304BA431B24196D5DF17D90D /* SDLControlFramePayloadNak.h in Headers */, - 1EC36ED907B978EC0A6740DDF3A82BE6 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h in Headers */, - 0C1066FA2F180C4335C3C6E7E0E512D6 /* SDLControlFramePayloadRPCStartService.h in Headers */, - DC0D059B471EFFAE3AF0F0D27E0841B3 /* SDLControlFramePayloadRPCStartServiceAck.h in Headers */, - 1739F7A2929471F3CFED544E1DB590B3 /* SDLControlFramePayloadTransportEventUpdate.h in Headers */, - D2AA6A0847C1540C26611AFD1A458831 /* SDLControlFramePayloadType.h in Headers */, - 32384E122DC41DB6FC369BA1B8E44975 /* SDLControlFramePayloadVideoStartService.h in Headers */, - 076A7957F5EDB9C2D34F2DEDF72E2913 /* SDLControlFramePayloadVideoStartServiceAck.h in Headers */, - 347171ED94BCFE1BEF4C751C357A2A61 /* SDLCreateInteractionChoiceSet.h in Headers */, - DFC0D308D215E6C2FD5552BB594D606B /* SDLCreateInteractionChoiceSetResponse.h in Headers */, - 59009DFAF888264F9A6837699BECC40C /* SDLDateTime.h in Headers */, - A3EFD42D9E0CE488A058DF4A1B6E5710 /* SDLDefrostZone.h in Headers */, - 2517D425680862344E8C97608651C465 /* SDLDeleteChoicesOperation.h in Headers */, - 2E36360E596C81768C64F8254B0BCF9E /* SDLDeleteCommand.h in Headers */, - A89FDFB482A1D220E3FE11CE3EC92F6A /* SDLDeleteCommandResponse.h in Headers */, - D298B6C507EA5D92E14F3EE72084B685 /* SDLDeleteFile.h in Headers */, - 6436A7A4CBA712CAB6877C560BEC7842 /* SDLDeleteFileOperation.h in Headers */, - 3BAF653EF94A79F057AF28E92D08B01F /* SDLDeleteFileResponse.h in Headers */, - 998696CF7E4C4635B7866B440F36390C /* SDLDeleteInteractionChoiceSet.h in Headers */, - 5E316BDBF7BA14D7869ECF1990470200 /* SDLDeleteInteractionChoiceSetResponse.h in Headers */, - FDA99C72FCCC08F9958850EDAC37789B /* SDLDeleteSubMenu.h in Headers */, - 2493AB5474953E83E8BEF5B7CD0FCE78 /* SDLDeleteSubMenuResponse.h in Headers */, - 5B07AB7D077651E513AA9A2ED1CF44B4 /* SDLDeliveryMode.h in Headers */, - 6D3EC75329E42B60C09DB45B4FE8F1A5 /* SDLDeviceInfo.h in Headers */, - 9E6917D8CD6BD3DB0895114934894D7A /* SDLDeviceLevelStatus.h in Headers */, - 3E26B72E94D4E8F720765C08644B1835 /* SDLDeviceStatus.h in Headers */, - 9C032EBF1A2F7D118592980A8F2B5972 /* SDLDiagnosticMessage.h in Headers */, - 5D12F2534B91CD52D0F0C56CF0CB6D27 /* SDLDiagnosticMessageResponse.h in Headers */, - 8DEBA1421C4DD7D3A9595087D4FA4E2E /* SDLDialNumber.h in Headers */, - 7CE26F1A66FB46B9FE889042A76408FD /* SDLDialNumberResponse.h in Headers */, - 07D3F1E805ECDD0CCAB66FB862AB8EA9 /* SDLDIDResult.h in Headers */, - 746FF0E71473A927DAF049430D5F2054 /* SDLDimension.h in Headers */, - F6C2994179CF8C6D8997F66B10D39091 /* SDLDisplayCapabilities+ShowManagerExtensions.h in Headers */, - 20E317ACB2A7231E7F68ADC230EBA7A3 /* SDLDisplayCapabilities.h in Headers */, - 0ED96B8030E489BC011881CBD27DCE0B /* SDLDisplayMode.h in Headers */, - 400A84C63C1928674225B0C3DEB1808E /* SDLDisplayType.h in Headers */, - 6E50FF0AFB0BD5AA002DA12EEB5DE34C /* SDLDistanceUnit.h in Headers */, - 9E98FCEE1AE1AABD075AF6F88E5A11F9 /* SDLDriverDistractionState.h in Headers */, - 7F2FA0BF4A1EA840E50CBC116B9E06BF /* SDLECallConfirmationStatus.h in Headers */, - 55062BA3F586C30FA46844D3567CA266 /* SDLECallInfo.h in Headers */, - F75264C66077CC891F71C3A5611EE09F /* SDLElectronicParkBrakeStatus.h in Headers */, - 7DA0AC10F035DC7E6330F5738A07F804 /* SDLEmergencyEvent.h in Headers */, - 849D05FD8CC51033404A1F6BA659FFF0 /* SDLEmergencyEventType.h in Headers */, - D7B19CAC07C0BB3FBC0A0FBFA40EE4E7 /* SDLEncodedSyncPData.h in Headers */, - C8C63F6FD4AB7D018238973433CD8038 /* SDLEncodedSyncPDataResponse.h in Headers */, - 5E1FDFF0DF4769CCCCF4900C09B233E1 /* SDLEndAudioPassThru.h in Headers */, - 4B9C79D4D0C403D33ECCD91413C71EFD /* SDLEndAudioPassThruResponse.h in Headers */, - D9662B2D0FFFFC7D6F7AE41C3EA3BAD2 /* SDLEnum.h in Headers */, - 9535545C5CCEB1727A7FDD58F4472585 /* SDLEqualizerSettings.h in Headers */, - 123E4A14DF16CBD8A5546FDD02907F56 /* SDLError.h in Headers */, - B1E5DC6AFCD91956685EBECEDD18A5AC /* SDLErrorConstants.h in Headers */, - F94CBB0E94F35122982422C9033CA290 /* SDLFile.h in Headers */, - DEF46BCD95E1763B276ADAF2871CC8B4 /* SDLFileManager.h in Headers */, - C240737DBB222CA96204E77426DE226F /* SDLFileManagerConfiguration.h in Headers */, - B6DB66B9F7DFF4D68204FA9456D899E6 /* SDLFileManagerConstants.h in Headers */, - 9B1553AD58BCAD6C76ADC2FBF49B965D /* SDLFileType.h in Headers */, - B23EE41C00A3F0043DAE18BF6B9B07FD /* SDLFileWrapper.h in Headers */, - B53A06CB47243ACC775687934F194823 /* SDLFocusableItemHitTester.h in Headers */, - F9D28D386FF090E6BCA7E2A0A547A3E2 /* SDLFocusableItemLocator.h in Headers */, - 858549FFA24533E78E3F4CECF92F262B /* SDLFocusableItemLocatorType.h in Headers */, - 258C95788E0E8D970F0EE4DF62E4CB2A /* SDLFuelCutoffStatus.h in Headers */, - F2CCEB4B6CC84795E8F6EC28CC2031CD /* SDLFuelRange.h in Headers */, - 6FABBA50253B6A9D25C9285817C97E31 /* SDLFuelType.h in Headers */, - 6EA08212E297F9E760FDB281CCE92EFD /* SDLFunctionID.h in Headers */, - 59495B95A002F05146D2D3968AF824C2 /* SDLGenericResponse.h in Headers */, - 13E1E1C1E31D813C4E5AF16D5017862C /* SDLGetDTCs.h in Headers */, - 599848E2E7D1412C801D088F449542F9 /* SDLGetDTCsResponse.h in Headers */, - 61FE567235554FC51922417BD35DD62A /* SDLGetInteriorVehicleData.h in Headers */, - 4E1D974330808D7F6DE4687340BF78CB /* SDLGetInteriorVehicleDataResponse.h in Headers */, - B4C5252945C315C0E6E69D8440590D6D /* SDLGetSystemCapability.h in Headers */, - 9A07DA3DAA36B7AB9A76ABDB3EF0C614 /* SDLGetSystemCapabilityResponse.h in Headers */, - 6F489960F374B7AD6F326CEE9496523C /* SDLGetVehicleData.h in Headers */, - F23657E3ED082FFD12BCEBB03B8E4754 /* SDLGetVehicleDataResponse.h in Headers */, - 7CFBA7D2F01E5D1593312B5CB73ABF13 /* SDLGetWayPoints.h in Headers */, - 3E976B7DAF7D086E310C9DFEB791F70E /* SDLGetWayPointsResponse.h in Headers */, - 913F900A3AC826216BB2009A6733D1D3 /* SDLGlobalProperty.h in Headers */, - 273FFE3A5B1FE211BE08322FF75F43B5 /* SDLGlobals.h in Headers */, - 66F0A4248266DE30C5660FC3E0C7D829 /* SDLGPSData.h in Headers */, - DC145C39228AF96CABD48303A921B8B2 /* SDLH264Packetizer.h in Headers */, - 10070EB551593AE8DE8856DA6C40A8B1 /* SDLH264VideoEncoder.h in Headers */, - F18D99D31992908DCAAD16351D1225E7 /* SDLHapticRect.h in Headers */, - FE2A39B8680A279AEEAA731E3C160C35 /* SDLHeadLampStatus.h in Headers */, - F25F7B5F861203B7E554F493EFD1CD01 /* SDLHexUtility.h in Headers */, - 45AB8E12BABFBA44F627D44826815A3C /* SDLHMICapabilities.h in Headers */, - 0F85058037E726C869FAB2BFB6CBC93D /* SDLHMILevel.h in Headers */, - B3678FE725134C7745A585E3AD169630 /* SDLHMIPermissions.h in Headers */, - DF506D6F22A6093E23C6CE899FCBF525 /* SDLHMISettingsControlCapabilities.h in Headers */, - 7462E7EB73EE5F66A111FDBC628E92EB /* SDLHMISettingsControlData.h in Headers */, - 6EE15D9FAFC9ADFE4A9A0AA14DBEFCCF /* SDLHMIZoneCapabilities.h in Headers */, - AB36E87567F8F026FA7C691FC523EADB /* SDLIAPSession.h in Headers */, - 167504994CBF7AD0EF8085D7BCC5AA56 /* SDLIAPSessionDelegate.h in Headers */, - C7F572CD8595C0784BB96DC83093E5B1 /* SDLIAPTransport.h in Headers */, - 7F2F0C20D109DD27352C422FF2D10BF2 /* SDLIgnitionStableStatus.h in Headers */, - 30A929E1C35E2D215DD8EE99B82074D4 /* SDLIgnitionStatus.h in Headers */, - 4CC172DE9DE64D8C7CEB557E19EA3C06 /* SDLImage.h in Headers */, - E27B64C34264C556BAE7E03E240D214E /* SDLImageField.h in Headers */, - 49AE1FF6E889BF5CFD8C7F6FC61A1990 /* SDLImageFieldName.h in Headers */, - 39601039B7D4C9F81E0435945B4C0A72 /* SDLImageResolution.h in Headers */, - 88D8A69F374852EE90264942E3534F74 /* SDLImageType.h in Headers */, - C29244BB43FA90C077ED24B501BF576E /* SDLInteractionMode.h in Headers */, - 4F00F1BC25190AD1A39A832E385D6092 /* SDLKeyboardDelegate.h in Headers */, - DF7FA4C2B136CEAEE342364C6442AFEF /* SDLKeyboardEvent.h in Headers */, - 75D810843E2A0E4FA90FACFFE42AB56F /* SDLKeyboardLayout.h in Headers */, - 58720313B5ED4BD082DEDE72CB6F9137 /* SDLKeyboardProperties.h in Headers */, - 94E4A781FA4063E85C9A4FD45660EBB7 /* SDLKeypressMode.h in Headers */, - CDDC9E0F469E0BE091E773E3F0110385 /* SDLLanguage.h in Headers */, - 43DCE09FC284FDD30495C63109F3805D /* SDLLayoutMode.h in Headers */, - 57B5A0D95AD17758F024FF65C4FC827A /* SDLLifecycleConfiguration.h in Headers */, - ACB952D7CB8FF538A78A86B53F4DE0E6 /* SDLLifecycleConfigurationUpdate.h in Headers */, - AA06B0C9844FF70FB97853669C2F214F /* SDLLifecycleManager.h in Headers */, - E7744B78F3F530A78D8502D28037C347 /* SDLLightCapabilities.h in Headers */, - FC21A4EA24E55CA18CF2CAC980D68C76 /* SDLLightControlCapabilities.h in Headers */, - 38B289D35FE88B0513826F20E2E49C47 /* SDLLightControlData.h in Headers */, - ED043AF96986740F0C2B21FD16A546BD /* SDLLightName.h in Headers */, - 79A8011035A5ED9C33769968D9F02C0C /* SDLLightState.h in Headers */, - AAB333DBF720AF65DAF65F8C8B14C3D5 /* SDLLightStatus.h in Headers */, - CE8C65228A5636BE8221B77B66919C40 /* SDLListFiles.h in Headers */, - 036C103636557CFD8B87DB584E23529C /* SDLListFilesOperation.h in Headers */, - 4C8CCBF1734D58A4E654681E85C56324 /* SDLListFilesResponse.h in Headers */, - AA678D7881C85FB884D4CE2B4CAEE7D4 /* SDLLocationCoordinate.h in Headers */, - B02142E65DBCEB7BBCC9D454B91563E1 /* SDLLocationDetails.h in Headers */, - 891252AB8734EC4A6D2787E7C37C981A /* SDLLockScreenConfiguration.h in Headers */, - 53A860936F0006E7C14D7EC0756B3126 /* SDLLockScreenManager.h in Headers */, - CFA1FE007ECB8784BE22168AAFE932F4 /* SDLLockScreenPresenter.h in Headers */, - 5D8DF32389AB46560922E067FE0AC6C4 /* SDLLockScreenStatus.h in Headers */, - E71F05B18DC830EF0AB7959F28D68BE2 /* SDLLockScreenStatusManager.h in Headers */, - 0E6F99FA384B285DFBA13427F6695DCF /* SDLLockScreenViewController.h in Headers */, - 7E0C562145A87C039B0760E3E95A3EFC /* SDLLogConfiguration.h in Headers */, - FDF34E6C9E3E756D281B22CE59F9C228 /* SDLLogConstants.h in Headers */, - 994808B23DAB46CCA68B9AFEE5AA1810 /* SDLLogFileModule.h in Headers */, - 3D49B9BD85156CA47C272AFCA46CD969 /* SDLLogFileModuleMap.h in Headers */, - BBAF43468910C178ED4F66EF361737AB /* SDLLogFilter.h in Headers */, - C67F697EAA10CBA54090E5D5FE109D8E /* SDLLogMacros.h in Headers */, - 4831DC00268ABDC3B71DF092EC92C6A1 /* SDLLogManager.h in Headers */, - 334A1C8E8A34F736E4D8AD86F78DCDA2 /* SDLLogModel.h in Headers */, - 82CBBE4620700F92B289B34597B60B59 /* SDLLogTarget.h in Headers */, - EAE41EFE7BBEF6574E83490434678CA0 /* SDLLogTargetAppleSystemLog.h in Headers */, - 3C408E7824C741EB34570DF86CC34B97 /* SDLLogTargetFile.h in Headers */, - 97996A8675B8EFDB46D6108CDCA8764C /* SDLLogTargetOSLog.h in Headers */, - 8EA68FBFA7BBDC1E219596A73B121187 /* SDLMacros.h in Headers */, - CA24651E9FF81F72B30850927978390F /* SDLMaintenanceModeStatus.h in Headers */, - BFE07457F18B4DBAA72F681CDD33F26B /* SDLManager.h in Headers */, - F42830430D0A02D43C2BE85C2AD22238 /* SDLManagerDelegate.h in Headers */, - CA2B853982B0413B0F1ACA2C5D5EB02E /* SDLMassageCushion.h in Headers */, - C45864A59439501BACD3B69022FEE2CB /* SDLMassageCushionFirmness.h in Headers */, - 575532F352FD30C241A4F8A08E86A802 /* SDLMassageMode.h in Headers */, - 52BDA4C17AD653F1FF67D7B5546AEA20 /* SDLMassageModeData.h in Headers */, - F1DFF6D17DFF429191689AFE9893BF89 /* SDLMassageZone.h in Headers */, - 75D5B0EBD0FD6C50F0689C4989661209 /* SDLMediaClockFormat.h in Headers */, - 3A3C1A36F9538E34D2AF0C0F83D4966C /* SDLMenuCell.h in Headers */, - AF891D3AC32CD2E250A193DBEB75E8F8 /* SDLMenuManager.h in Headers */, - 3467C8330CDCF0CC7649922ED7F36898 /* SDLMenuParams.h in Headers */, - 4DF00792D0599F38F8C53D1D9524E0CF /* SDLMetadataTags.h in Headers */, - 64359BE45C63371C5239DD515C7643E8 /* SDLMetadataType.h in Headers */, - 7B7F4C3B894E9E410F1719500F12F018 /* SDLModuleData.h in Headers */, - 5E1950E995CFEBB2895EF04F61D72770 /* SDLModuleType.h in Headers */, - 7663F4D01A32404CB6A0B75C791FCE66 /* SDLMutableDataQueue.h in Headers */, - BA42E573B3566AF55B459CF0ACD07832 /* SDLMyKey.h in Headers */, - D252C26EF52D5A65AD8618B89CD0E71B /* SDLNames.h in Headers */, - 1549440C97D34FA71CACDA059B859453 /* SDLNavigationCapability.h in Headers */, - BE4A1689602B2C09FD8FA8DE3F3B73A4 /* SDLNotificationConstants.h in Headers */, - 78FD1DAD8440B443E2EC83997DF47F1A /* SDLNotificationDispatcher.h in Headers */, - 90A1A5F00F12FEA450305FDB8DA22633 /* SDLOasisAddress.h in Headers */, - D2AC82A60C50DF5B3AB264477E371A24 /* SDLObjectWithPriority.h in Headers */, - A99019E5BF5AAFA16DAF00E30D45848C /* SDLOnAppInterfaceUnregistered.h in Headers */, - 687F0FC1C9C0461816CAF03E60188497 /* SDLOnAudioPassThru.h in Headers */, - 201B959BDABF5FECAA5F31E36BD684FF /* SDLOnButtonEvent.h in Headers */, - 1E328C92B78121A10A37CCF65B7BFDC2 /* SDLOnButtonPress.h in Headers */, - 3AF64F5B141F2725382B1699A20FFEAB /* SDLOnCommand.h in Headers */, - EC6A50FA7B1C3692FA221AF509564BA6 /* SDLOnDriverDistraction.h in Headers */, - 0702B0DF5EBA25FE409412BD730CDE6D /* SDLOnEncodedSyncPData.h in Headers */, - D3AEE02B2C18420EEA41862651CD4B99 /* SDLOnHashChange.h in Headers */, - 6201D5C7EB24ED976AAD8B7474A46AC0 /* SDLOnHMIStatus.h in Headers */, - A0E50A30072966DDBC89DC2292B1BF21 /* SDLOnInteriorVehicleData.h in Headers */, - 7F6436B3FF706FA2681113944117A4F4 /* SDLOnKeyboardInput.h in Headers */, - 0656439CE3C4359D7352910005E8BB73 /* SDLOnLanguageChange.h in Headers */, - 90F9085E102C7CDDE4CCB42C81782F8A /* SDLOnLockScreenStatus.h in Headers */, - 1F89230366EB77189F7AB10C48498682 /* SDLOnPermissionsChange.h in Headers */, - 70C8FA5936878326DCDFCB8B2D8D8CF6 /* SDLOnRCStatus.h in Headers */, - C4B784E497838C5791CD068CC9FD5797 /* SDLOnSyncPData.h in Headers */, - B5F9C1FA9FDC4E44F7C22996F836FB03 /* SDLOnSystemRequest.h in Headers */, - 83753EBED7DB7EFE978690DC635F9C91 /* SDLOnTBTClientState.h in Headers */, - C62823793A24D46599DB784AB0180FDE /* SDLOnTouchEvent.h in Headers */, - A8B8B6A9CCD830A1D066620FA41AEA8B /* SDLOnVehicleData.h in Headers */, - E953FBD34825D2C156A1CA52077AF11F /* SDLOnWayPointChange.h in Headers */, - DBC8778A5AEDF1F7B552088CB11AA577 /* SDLParameterPermissions.h in Headers */, - 1B9A6C694B31434F1A613A3A6726370C /* SDLPCMAudioConverter.h in Headers */, - 42789451B228CE1B731E2E475BE328FA /* SDLPerformAudioPassThru.h in Headers */, - B4E0400D3FE8F9C74EB1B9E8B52B454B /* SDLPerformAudioPassThruResponse.h in Headers */, - DA6CEDEB9BC4B14B984E13BBCD2BACEF /* SDLPerformInteraction.h in Headers */, - 3393CBA33B034A44C8403C7D34C5DA5E /* SDLPerformInteractionResponse.h in Headers */, - C1418E30FC1D6F83D57DD0716512D3A6 /* SDLPermissionConstants.h in Headers */, - 21E4ECE5FAEC39D18ED9A5AA744BFB1F /* SDLPermissionFilter.h in Headers */, - 274BB6D13057A65EF40FBA8E855C8B08 /* SDLPermissionItem.h in Headers */, - F075039C9251E96378A56699649789EF /* SDLPermissionManager.h in Headers */, - 7C24C1FF5B42A7B232F6D3863D956603 /* SDLPermissionStatus.h in Headers */, - 09AFF0F1484FE0DDAE1141C6DAF770B2 /* SDLPhoneCapability.h in Headers */, - 55CB4738C7BE3FF112CB1344ACAB02AC /* SDLPinchGesture.h in Headers */, - 411F1579BA150460D876451769A164B8 /* SDLPolicyDataParser.h in Headers */, - 4C14B6D0764534FC82D19C8C2869824B /* SDLPowerModeQualificationStatus.h in Headers */, - 349DCC63C4006E9925925A22528F76DA /* SDLPowerModeStatus.h in Headers */, - DFE9FB3071C537972E5F890964F3FD89 /* SDLPredefinedLayout.h in Headers */, - 92A53AB6471AAB551EA6F4D2AA5D5970 /* SDLPreloadChoicesOperation.h in Headers */, - 466120C8F06FAB14E27D8C4AB40CBC4A /* SDLPrerecordedSpeech.h in Headers */, - 675267DB44A9C5A3A49616891C41FD59 /* SDLPresentChoiceSetOperation.h in Headers */, - A4BA38CDDAB4106E601B200EB5265772 /* SDLPresentKeyboardOperation.h in Headers */, - 6F15506076F3F351F97967128708885B /* SDLPresetBankCapabilities.h in Headers */, - 6F6B40B2CC73CC75F8F089F7F460035C /* SDLPrimaryAudioSource.h in Headers */, - 129E5BCEF6FBF9E5E9F0679CF261F5C4 /* SDLPrioritizedObjectCollection.h in Headers */, - 65A0562B9FD082EBCE7EE6BD8CD03CA1 /* SDLPRNDL.h in Headers */, - 640872600613401330E11A7B81EC41B8 /* SDLProtocol.h in Headers */, - 4A4C8D8B27D9B504C8B90FBA2E532D26 /* SDLProtocolConstants.h in Headers */, - 1B7830EADD088604F2AF02DCC234E999 /* SDLProtocolHeader.h in Headers */, - 166A12220CD441B64A1807EF59255F59 /* SDLProtocolListener.h in Headers */, - 84BCD25F112313EF4F15675D3A650A3A /* SDLProtocolMessage.h in Headers */, - 231E01EC4A0471AC2C5B7D80E1EF4E09 /* SDLProtocolMessageAssembler.h in Headers */, - E2C1DF7393AC7180F65F923203F85987 /* SDLProtocolMessageDisassembler.h in Headers */, - 859097EF70C7B5BBFD63FDB2EA23C662 /* SDLProtocolReceivedMessageRouter.h in Headers */, - B6B3F8A6266891E8B5B206290B54C75B /* SDLProxy.h in Headers */, - 7AA91B2E529CBF170D94D7517000D8C9 /* SDLProxyListener.h in Headers */, - 5F7C7801F2715031EC0DC8C0BF322C24 /* SDLPutFile.h in Headers */, - E382C92F1EE9D721478B6783BEF088C6 /* SDLPutFileResponse.h in Headers */, - 201BC1035FC21891C355380570851086 /* SDLRadioBand.h in Headers */, - 869F21A1E29089A877752C424560023A /* SDLRadioControlCapabilities.h in Headers */, - F64AA1D446842CBC012273E3553DECAD /* SDLRadioControlData.h in Headers */, - 6B1BFB30E6C8E61D070CF22A0D60EF5C /* SDLRadioState.h in Headers */, - 2B1FB46E0F181116C988EBDF4D4DB810 /* SDLRAWH264Packetizer.h in Headers */, - 584C7EB8C8A0BA9BE2912964F610EB11 /* SDLRDSData.h in Headers */, - 757AC3096594B571097AB04B242DA216 /* SDLReadDID.h in Headers */, - 800B5BDB6D355F95E41BDE9E48CDF6D2 /* SDLReadDIDResponse.h in Headers */, - ECF6A7007CAD7FB05D06CA5DE6BDEA5D /* SDLRectangle.h in Headers */, - 2882AFECA228F8969A51130E89673181 /* SDLRegisterAppInterface.h in Headers */, - F392E30534A543EE54B570597B2B6ED5 /* SDLRegisterAppInterfaceResponse.h in Headers */, - 6B35838B0C178C20C8F9AA7B39AD2436 /* SDLRemoteControlCapabilities.h in Headers */, - E4FD7A3BFF7D90B2E3C8D039F3A55FA6 /* SDLRequestType.h in Headers */, - C70F44985B6FB4D2AC93E965F94E15F2 /* SDLResetGlobalProperties.h in Headers */, - 0A7DD843FDC6B6AC4D05C4F6DEF98F1B /* SDLResetGlobalPropertiesResponse.h in Headers */, - A48AFD46D7B705927709DA96B9E8D3B1 /* SDLResponseDispatcher.h in Headers */, - BF7FABFA7BBD38EEE5648DE2B39DBE12 /* SDLResult.h in Headers */, - 7C976E665344372DA60F4309CD8553A7 /* SDLRGBColor.h in Headers */, - F3DADEE968371419C83BA1305E0D0D23 /* SDLRPCMessage.h in Headers */, - E9CB1203295B52F61A258390A808BE1F /* SDLRPCMessageType.h in Headers */, - D253590B398009E277462AA9F81E182B /* SDLRPCNotification.h in Headers */, - F484B27FF61CF3F02647B9CF32FB3749 /* SDLRPCNotificationNotification.h in Headers */, - B9741C990F20745A35DA6D4EC72DF4EB /* SDLRPCPayload.h in Headers */, - A35B3F5D7B41F136D3A5852434706449 /* SDLRPCRequest.h in Headers */, - 1A659FD8B2997C6F955A402B154AF758 /* SDLRPCResponse.h in Headers */, - 92F3D65CBC805FF006AB22F0C8641965 /* SDLRPCResponseNotification.h in Headers */, - ADF922C1D9AEF15ECA8978C946C6624B /* SDLRPCStruct.h in Headers */, - 5C437A40847C6E19312701C758CF4D27 /* SDLRTPH264Packetizer.h in Headers */, - 74F68BB605550B1170CA892F522DBEE2 /* SDLSamplingRate.h in Headers */, - 6CD9FA00A43F43A0895239773EFECE3F /* SDLScreenManager.h in Headers */, - 7164A7E8BA2EBEE0EDD857AB70B1C470 /* SDLScreenParams.h in Headers */, - 994313BB8B5E490016DD97E6DAFA38C2 /* SDLScreenshotViewController.h in Headers */, - FD57C4F9A26CBE0B39E9D9925DD048B3 /* SDLScrollableMessage.h in Headers */, - 3AFAF31C231616DA37D8CD47E04CC41E /* SDLScrollableMessageResponse.h in Headers */, - 8F296101D47FC1947CA562C2FE18F52F /* SDLSeatControlCapabilities.h in Headers */, - 0F3C44731E9340CDB1C6E7DEB7C1FC4F /* SDLSeatControlData.h in Headers */, - D2267FFAE91F8D0A79C37572C55890CE /* SDLSeatMemoryAction.h in Headers */, - ED247219AD435BE12533D301314B1760 /* SDLSeatMemoryActionType.h in Headers */, - 408E1481ED7E584C084651E3762D4E39 /* SDLSecondaryTransportManager.h in Headers */, - E792CF1027E6F625EA94598E49B6E5E5 /* SDLSecondaryTransportPrimaryProtocolHandler.h in Headers */, - 2F049A5ED5B21F687DD4F9D16A0F9156 /* SDLSecurityType.h in Headers */, - 3B6564F00DD0815E2507EEF5C57377DB /* SDLSendHapticData.h in Headers */, - 6CE817B375D223147971E231C0C75D4C /* SDLSendHapticDataResponse.h in Headers */, - EA652BBCE2C1ECEAE6D0B46DB88C749C /* SDLSendLocation.h in Headers */, - EE83DA4A9631A6BF74579B86A67E1804 /* SDLSendLocationResponse.h in Headers */, - ABEDA30EF4F593654B283DA8F058E3CD /* SDLSequentialRPCRequestOperation.h in Headers */, - 0DAD037A68C669CFE3EBEBC37D801AC9 /* SDLSetAppIcon.h in Headers */, - D29BAC5BC371347F34C2FAC8BD100551 /* SDLSetAppIconResponse.h in Headers */, - 78B6E75E6E07E1C52EC9D077C61170D8 /* SDLSetDisplayLayout.h in Headers */, - 29881505409B144B88BEBD744924B014 /* SDLSetDisplayLayoutResponse.h in Headers */, - 3FF9BDBD8CF6A2C502BAB51531850403 /* SDLSetGlobalProperties.h in Headers */, - 149559E04D003DD95B330F083C6EFEF6 /* SDLSetGlobalPropertiesResponse.h in Headers */, - 51E74B85BF49CE5F58DF9AEEB54490EC /* SDLSetInteriorVehicleData.h in Headers */, - 0CF2E4CE8AC7CAEE2AE1EB464B39B27C /* SDLSetInteriorVehicleDataResponse.h in Headers */, - C49CED2148870F4A7DE15B452D748284 /* SDLSetMediaClockTimer.h in Headers */, - 785603287327EDE2E8CB19C650E46E35 /* SDLSetMediaClockTimerResponse.h in Headers */, - 1586782A8AD64A27B92BAC3F7617BE73 /* SDLShow.h in Headers */, - B95DA5F4BA9F33C17EDB495B42E2E5F8 /* SDLShowConstantTBT.h in Headers */, - CD6C20F6FDEAE8571ED2AD1712BD818E /* SDLShowConstantTBTResponse.h in Headers */, - 57A7AF43D521F0DB9874292AF1805173 /* SDLShowResponse.h in Headers */, - 0C85798D69FDDC43CB144B2249D68973 /* SDLSingleTireStatus.h in Headers */, - D0B0475A1C019E7EF1553ADBF05EACA3 /* SDLSISData.h in Headers */, - D6FDB9CF88C1C24908F7D34AE8EBFC5A /* SDLSlider.h in Headers */, - 012B3ABCF4946FE9589E5FC943EF26CD /* SDLSliderResponse.h in Headers */, - 1DA2C3B957587D4E0BD6631AA0280261 /* SDLSoftButton.h in Headers */, - 4EAD8DB9B8C89502F5E80EB8905DECFB /* SDLSoftButtonCapabilities.h in Headers */, - 22EFD15D95BC17236824C5F2F14D6FFC /* SDLSoftButtonManager.h in Headers */, - D1DB885408A583118BF5C5D3CEEF2101 /* SDLSoftButtonObject.h in Headers */, - 52D43CD53B5DA5E1569F96CB92DFFB0E /* SDLSoftButtonState.h in Headers */, - 78C1738424A8DA7F057E3394302AF48A /* SDLSoftButtonType.h in Headers */, - A2357C4F782211B242032600460F8BD6 /* SDLSpeak.h in Headers */, - 19BD0353B0B855035E94DD0620B146A9 /* SDLSpeakResponse.h in Headers */, - F7E486C3F2B050B7186372B26F184BB8 /* SDLSpeechCapabilities.h in Headers */, - 15055A719FF7684389EABCCB36FB1EF4 /* SDLStartTime.h in Headers */, - 81B60E21B42BEAE2B1067348CC1151D8 /* SDLStateMachine.h in Headers */, - E8BCD1132B57860BAB25B93D6D5A5B88 /* SDLStaticIconName.h in Headers */, - 55F4E9D9A49AACE252669F2F3DABF237 /* SDLStationIDNumber.h in Headers */, - A3F4FDBC260B68148500950ACC9E38ED /* SDLStreamDelegate.h in Headers */, - E6FE356D60F2E1FE3B9CF6D0F2D86B4E /* SDLStreamingAudioLifecycleManager.h in Headers */, - 6DF459A12E445476B870AFBD22EEDC6E /* SDLStreamingAudioManagerType.h in Headers */, - D10C16DCE3858A52927E0C50F5410909 /* SDLStreamingMediaConfiguration.h in Headers */, - 66D0EE1DE1C35AE704F2EABD55682B64 /* SDLStreamingMediaManager.h in Headers */, - 787972CCEDF25360956170291DC29744 /* SDLStreamingMediaManagerConstants.h in Headers */, - A19CF41CC6B501ADD92F104E198068E3 /* SDLStreamingMediaManagerDataSource.h in Headers */, - 43774A9EC2370F6C642EDF653F0BB834 /* SDLStreamingProtocolDelegate.h in Headers */, - 0F2C3722EE24EF668D5E91BF9F6168F1 /* SDLStreamingVideoLifecycleManager.h in Headers */, - 6B32F18C846F4543DE1158232607CB4A /* SDLSubscribeButton.h in Headers */, - D89C1FA54A43B215AFCFD3D02A9FE859 /* SDLSubscribeButtonResponse.h in Headers */, - CEB154360D775A21CD191027DDB95C44 /* SDLSubscribeVehicleData.h in Headers */, - CBE2CBC7919B5B61C7F975964A267330 /* SDLSubscribeVehicleDataResponse.h in Headers */, - 22A378951B6903C864AB262623FFC244 /* SDLSubscribeWayPoints.h in Headers */, - 8768410D76920D09B094F699B31235F4 /* SDLSubscribeWayPointsResponse.h in Headers */, - 0A840116FACAC91080F2AAA3B46FA324 /* SDLSupportedSeat.h in Headers */, - 16D72417871BC6886A16169FAC0BF43D /* SDLSyncMsgVersion.h in Headers */, - 9F4FDA9BDFC9DD7866A89040EB346078 /* SDLSyncPData.h in Headers */, - 1FDDEF6CE2FEE041A91814E14163CD1D /* SDLSyncPDataResponse.h in Headers */, - E6F7715C5A376997A40D10429AE3A0B7 /* SDLSystemAction.h in Headers */, - DB8F4DDAFBDBC69A91E870F8CA086337 /* SDLSystemCapability.h in Headers */, - A3E5A07FFF83575D7828AC61BCE80F96 /* SDLSystemCapabilityManager.h in Headers */, - A86093E9F1596CD649184DEAB4B50EAA /* SDLSystemCapabilityType.h in Headers */, - 5296E7FC0E92E8CEA624DDB20E0F1C4F /* SDLSystemContext.h in Headers */, - 15EAD5D89DF9B5BF90660D3DBE20DD22 /* SDLSystemRequest.h in Headers */, - 9354EC7D6C645D3D684A0420AE46C73F /* SDLSystemRequestResponse.h in Headers */, - 4DF4CC747977B62A390CD466CB6BB7CA /* SDLTBTState.h in Headers */, - 1F53A32AF3B60B1B9C6E4E902DF6E88C /* SDLTCPTransport.h in Headers */, - A749C4A7A68E79A0F0C8F6B331D546EF /* SDLTemperature.h in Headers */, - 8813BE16A05532E0C390B98240FC4C92 /* SDLTemperatureUnit.h in Headers */, - E6D564C8EDE8CAE7FCA5512DB2DADA6E /* SDLTemplateColorScheme.h in Headers */, - 015A9931D5C5DAD3DE552D44D27BB5AA /* SDLTextAlignment.h in Headers */, - 7068C62C81BC53E62B4E56697908FBB8 /* SDLTextAndGraphicManager.h in Headers */, - E3A6309B863DBD37F355F41D4F97D179 /* SDLTextField.h in Headers */, - 7D22E37A70C6734FB513539B67D8D57C /* SDLTextFieldName.h in Headers */, - 678F5B3A655D04036EB44DD84E0060FC /* SDLTimer.h in Headers */, - F9E963605CD967D489802FD36C976317 /* SDLTimerMode.h in Headers */, - 083BB0E418F625B54EBFFF9758F7AF1D /* SDLTireStatus.h in Headers */, - 724A1144F6F9981F9D5BA1F6B7CAD6B5 /* SDLTouch.h in Headers */, - 59C827211A0E601F88C73D961DB3DAAB /* SDLTouchCoord.h in Headers */, - 5E2A4D95173D3879F8B9DECA7665C7DB /* SDLTouchEvent.h in Headers */, - 249A608D638CC97C67FF52638A8BC1E8 /* SDLTouchEventCapabilities.h in Headers */, - 8B8F050BB059033CE82056F8B3AA1422 /* SDLTouchManager.h in Headers */, - F18CBAD8CC913B833F300406A391E822 /* SDLTouchManagerDelegate.h in Headers */, - 94C192D6CD9EEB91C139154B12E3FE97 /* SDLTouchType.h in Headers */, - 2148B98C41264719B44F19627F9FBD31 /* SDLTPMS.h in Headers */, - 7F1FC25EA0852CF016F1DE044E3AF9BA /* SDLTransportDelegate.h in Headers */, - E4D9EA180566751F71491F35AF1EEAAD /* SDLTransportType.h in Headers */, - 13046E7D195824105B265892E8F29A75 /* SDLTriggerSource.h in Headers */, - B22652C5CF5A39F6A3AAA5493903F728 /* SDLTTSChunk.h in Headers */, - E6E9A49EFA611517F7EF0EDCD9E35960 /* SDLTurn.h in Headers */, - 3DFAA6CD24C655BF8371A79A2EC83586 /* SDLTurnSignal.h in Headers */, - 372A4DD37D49C94C3723DEBE22096647 /* SDLUnregisterAppInterface.h in Headers */, - 5C6EC3B4AAB8284B0D2C2D673F8A6317 /* SDLUnregisterAppInterfaceResponse.h in Headers */, - 04A31A6BC5E931600DCC014081A75187 /* SDLUnsubscribeButton.h in Headers */, - C11C7C6D95CF1B64A27A3C1CBE57B28A /* SDLUnsubscribeButtonResponse.h in Headers */, - EDB68C70A29C8AE09C277286983EC845 /* SDLUnsubscribeVehicleData.h in Headers */, - BBF8951D6AFCB3E302E4CB39FE4344F9 /* SDLUnsubscribeVehicleDataResponse.h in Headers */, - 64E3700E866F1EF4E958A30E218BADC4 /* SDLUnsubscribeWayPoints.h in Headers */, - 8E352B731B8D43C9B57913C974585A10 /* SDLUnsubscribeWayPointsResponse.h in Headers */, - 964C64B372CE0D95A9D5E598846FE2F8 /* SDLUpdateMode.h in Headers */, - 026E2E7BA3A540EBA8D0832D920C2B18 /* SDLUpdateTurnList.h in Headers */, - FEAD2B1271EDD3169B3D76024AD5092E /* SDLUpdateTurnListResponse.h in Headers */, - B152AAFE3E671150EA261D245C9FFDAA /* SDLUploadFileOperation.h in Headers */, - 2B65E6D0CA1FCFDA5C4E8CDDD530576C /* SDLV1ProtocolHeader.h in Headers */, - 437E6D94102B6E5418512171E8D213C4 /* SDLV1ProtocolMessage.h in Headers */, - 1A7A149DB1FA14F639B11F2A069A3D3B /* SDLV2ProtocolHeader.h in Headers */, - D4FA68CB7EBA468F4313C8ECAA2FF128 /* SDLV2ProtocolMessage.h in Headers */, - B4A2AC4C44023971E080A8F53EBD059A /* SDLVehicleDataActiveStatus.h in Headers */, - 1271206750820665E80A01A8537575FA /* SDLVehicleDataEventStatus.h in Headers */, - 3BBCFF9EEB7DD0EFAD2C19FB38782EBE /* SDLVehicleDataNotificationStatus.h in Headers */, - AEFD7DEF7644ED0633E76E4EB8592B9E /* SDLVehicleDataResult.h in Headers */, - 969FB5BDFE1E1390A4B59B44B78194BC /* SDLVehicleDataResultCode.h in Headers */, - A05249EC89A880332ECA1EEE71D1E23E /* SDLVehicleDataStatus.h in Headers */, - C7282A5FE73E0A5AC905B82AFC0D080B /* SDLVehicleDataType.h in Headers */, - 932CE5DA675E60B3C981DB384E9DF021 /* SDLVehicleType.h in Headers */, - 4A44E1A476DF6AC77050CA0BB5741996 /* SDLVentilationMode.h in Headers */, - F7D31D19BB642433366C20F57E886B16 /* SDLVideoEncoderDelegate.h in Headers */, - 835C88CAD5F6D267574720BED6A0CD97 /* SDLVideoStreamingCapability.h in Headers */, - 88DEDA2DC0F96EFB29F541C4D70AC91F /* SDLVideoStreamingCodec.h in Headers */, - 51919410D0B2A35D6F25634DF3F64F46 /* SDLVideoStreamingFormat.h in Headers */, - 8C8F935BE65EB35F0E8AE6726390EE7B /* SDLVideoStreamingProtocol.h in Headers */, - D8CDF9E279165504252719FCB033CA38 /* SDLVideoStreamingState.h in Headers */, - CD8957C7832748CCE7AF519D51A65D48 /* SDLViewControllerPresentable.h in Headers */, - 84BC28431CE62A0DC048B62F0355C56C /* SDLVoiceCommand.h in Headers */, - 8DA1C57ADF79BF80EE4695C6CF9FEE4D /* SDLVoiceCommandManager.h in Headers */, - 071358FCEBD7244CFC1C47E3B728FD3F /* SDLVrCapabilities.h in Headers */, - 411926320DE8319BF26921FFA2D23DC6 /* SDLVrHelpItem.h in Headers */, - 2AB5518F631822ED03580B2E57398F64 /* SDLWarningLightStatus.h in Headers */, - 22B4F2B08E7E10F17896F6020E3E7FC5 /* SDLWayPointType.h in Headers */, - 2EB3DD389E800C6F48E46F70274CBFD3 /* SDLWiperStatus.h in Headers */, - 47636D3515ED3884E8B188742491FC2E /* SmartDeviceLink-umbrella.h in Headers */, - C7F51464E201A11CC86EB0D583DD34E5 /* SmartDeviceLink.h in Headers */, + 87AC6CA51E70B12C479133AC047D6AD0 /* Pods-MobileWeather-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2D6530FE0F1A846C099BB9EC9B279457 /* Headers */ = { + 80D22BB0358122D6924BDD518FC87D4B /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 24E48DFBB1C4B4AA81A4639689F86DAD /* Pods-MobileWeather-umbrella.h in Headers */, + C8CE5EB649E1C10ECDA088CC6E53D487 /* CGPoint_Util.h in Headers */, + 7462ECF43D6F46BF304953FF4F06DF9C /* CVPixelBufferRef+SDLUtil.h in Headers */, + D51475FCE0E2024873BF20E3DC6E984D /* EAAccessory+SDLProtocols.h in Headers */, + 48F332FAF2668AC6AEE9652BAFA7E8E9 /* EAAccessoryManager+SDLProtocols.h in Headers */, + 5122E43189822CFA912FF5442E49F767 /* NSBundle+SDLBundle.h in Headers */, + 647A5E0ECA0ADC3528B86763362A0924 /* NSMapTable+Subscripting.h in Headers */, + 3292D382EAD8519DAC1AE0E10F4D5062 /* NSMutableArray+Safe.h in Headers */, + 39DC456DDBBAD48E26F6455BBBE56443 /* NSMutableDictionary+SafeRemove.h in Headers */, + DABDCA12A6E91B9A065F97B7A9C5BFFE /* NSMutableDictionary+Store.h in Headers */, + 5E6226967B8FBB946A53C86E6730FC47 /* NSNumber+NumberType.h in Headers */, + 733B8F6B2D6794F76EC54A74E1BF9391 /* SDLAddCommand.h in Headers */, + 974F61EC8063CE5073BACEC8FB26D73C /* SDLAddCommandResponse.h in Headers */, + 145286E6935D42A4892E1B68B64CEE1D /* SDLAddSubMenu.h in Headers */, + 1299B38E94144A30AE45024F7CC05532 /* SDLAddSubMenuResponse.h in Headers */, + D9AB3140951E8AAE2F2D9B4B5231CB1A /* SDLAirbagStatus.h in Headers */, + FEE7490180AF75B55DD253B9ADE512F5 /* SDLAlert.h in Headers */, + 874054E606BCA76A8EB634D9E108F2B8 /* SDLAlertManeuver.h in Headers */, + 839759EA6DB888BEF170B204E7533E87 /* SDLAlertManeuverResponse.h in Headers */, + 45B89DB4BC754CABE301F3976E817DDF /* SDLAlertResponse.h in Headers */, + A5BF758FF15B8A1CA545BCABF3ED58F9 /* SDLAmbientLightStatus.h in Headers */, + A9D3D0CE7B2A739C7873A2FFE9AF4E46 /* SDLAppHMIType.h in Headers */, + B72434B441A18026A9032BFCDB7C3C1C /* SDLAppInfo.h in Headers */, + 4BA7B8B616FE3C0AE1EC144263805DB5 /* SDLAppInterfaceUnregisteredReason.h in Headers */, + EE67E315BD67A87FF40C84C77AA35394 /* SDLAppServiceCapability.h in Headers */, + 9FF51D0DFFAEE08A3ECA62113D394DB1 /* SDLAppServiceData.h in Headers */, + 94CD4C275A0079DB1B44313AFB8C9157 /* SDLAppServiceManifest.h in Headers */, + 5BF9A79E2DB2C57D1AAB763884F1F50B /* SDLAppServiceRecord.h in Headers */, + 023E2436FD8188E9E8A6CA420BC6D170 /* SDLAppServicesCapabilities.h in Headers */, + 669E7D9BE46C978941CAF921CD8448E8 /* SDLAppServiceType.h in Headers */, + 38939F69AF45C6D6B3EFAAC3218AB7C1 /* SDLArtwork.h in Headers */, + E127F3F478549E5907B2850B362FED22 /* SDLAsynchronousOperation.h in Headers */, + C014B97737D79AA488368329DD9B9BE8 /* SDLAsynchronousRPCOperation.h in Headers */, + 2DAF25E7B98FBEF6D7DD2435E1AE63F5 /* SDLAsynchronousRPCRequestOperation.h in Headers */, + D4CE05EE4A4C7BED2C1545256717844E /* SDLAudioControlCapabilities.h in Headers */, + F752F614709B9EEA82F86F4A62BEA66C /* SDLAudioControlData.h in Headers */, + F7DAA886D075CA259411B3B7A6395EA3 /* SDLAudioFile.h in Headers */, + D418AC49F67AAFA470ED4D742ACCB12D /* SDLAudioPassThruCapabilities.h in Headers */, + 97FBF30CCEA2FD94D7297C91E5D8DE21 /* SDLAudioStreamingIndicator.h in Headers */, + D72091B46BA87644DA72787424704D7E /* SDLAudioStreamingState.h in Headers */, + 60680334C6656A73B54B98D1D6062EC2 /* SDLAudioStreamManager.h in Headers */, + 3F5A069FA9FFA9506975ECAA644E389B /* SDLAudioStreamManagerDelegate.h in Headers */, + AA1D9E2BA2787A6184069465AC5831FA /* SDLAudioType.h in Headers */, + B31FFC503045F9D0FD85A82167BB51EB /* SDLBackgroundTaskManager.h in Headers */, + 3C875631F98D94D88FC9E91933B2C190 /* SDLBeltStatus.h in Headers */, + 02AB9B1AA28B31228B74A8126EA4F6E9 /* SDLBitsPerSample.h in Headers */, + 91F691863F419908423A46BD4884281D /* SDLBodyInformation.h in Headers */, + 90C56DC843F06A3447BBF31BD8347720 /* SDLButtonCapabilities.h in Headers */, + E95A6B40C522978A7B5C7048F5CEA422 /* SDLButtonEventMode.h in Headers */, + 4B98282E2AA74AA1026B2A51C6111F68 /* SDLButtonName.h in Headers */, + C7A212D73E761420B4E79A2901DD389C /* SDLButtonPress.h in Headers */, + 8761C5C5FAE98F01177293BEF5214671 /* SDLButtonPressMode.h in Headers */, + 61E51A232CFFA49D07A9D4BBEB33C394 /* SDLButtonPressResponse.h in Headers */, + 27B426645465AF05B798A3058FCE6D44 /* SDLCacheFileManager.h in Headers */, + 6FCD8781D26DE624CA3BE497CAB3C388 /* SDLCancelInteraction.h in Headers */, + 25FE556376226762A75B4CB7AAF596BC /* SDLCancelInteractionResponse.h in Headers */, + A3E201F3B3EB3232CE70F87323B1AE4A /* SDLCarModeStatus.h in Headers */, + 416C55C12904245979B370B13EDE13C0 /* SDLCarWindow.h in Headers */, + 51558A65B02D8B1FBF6385B3763DBACB /* SDLCarWindowViewController.h in Headers */, + 5BD31D6CFFAA15DBF142536BA3BD94EE /* SDLChangeRegistration.h in Headers */, + C7B9447E9D84622A6C05BCCA146CB768 /* SDLChangeRegistrationResponse.h in Headers */, + 4AE20BD11A94133B07C8EADCD51AEF47 /* SDLCharacterSet.h in Headers */, + 4EB7EF3C3B8A753DE2CD8976DAC11678 /* SDLCheckChoiceVROptionalOperation.h in Headers */, + D92C780614F70CBC8E9275E0B7FF117A /* SDLChoice.h in Headers */, + 7A1CDB9C2A552A2EDA566CE7B61B02FA /* SDLChoiceCell.h in Headers */, + BFEE044D016834F2B5E66E50008B1229 /* SDLChoiceSet.h in Headers */, + 251BAE21F7CECAFA6F0EE5688FACF319 /* SDLChoiceSetDelegate.h in Headers */, + 82FFF51387E80FCEDA5352282339DB5E /* SDLChoiceSetManager.h in Headers */, + E0B1ED0FAEF62E7A9ECDE44B4C2834F7 /* SDLClimateControlCapabilities.h in Headers */, + AB470733A71B7A4336A54B799BB903D7 /* SDLClimateControlData.h in Headers */, + 6389FBC37D9B7A5FCE86628A648D6023 /* SDLCloseApplication.h in Headers */, + 1F50DF24E9A0014A9BCFC634EC76C186 /* SDLCloseApplicationResponse.h in Headers */, + 28498442BCD463C896D1E9738D30D149 /* SDLCloudAppProperties.h in Headers */, + 6A10282A596AAC26FD1C0C7C25D5B703 /* SDLClusterModeStatus.h in Headers */, + 4B8B28A242A8DDEF1B1FB81CBF000F1C /* SDLCompassDirection.h in Headers */, + A72A34CB87D792D08B1E2FB164AB3947 /* SDLComponentVolumeStatus.h in Headers */, + 9BFCD1634ABB1FFE13CFD4447FCE9CB7 /* SDLConfiguration.h in Headers */, + 3A824D7618A73311D7673B00D46ECBA0 /* SDLConnectionManagerType.h in Headers */, + 0E07F39B9DC463DCFC8D2D7E96CEB223 /* SDLControlFramePayloadAudioStartServiceAck.h in Headers */, + FEF44E1D08BCE16AEDBF9C6B8C33E647 /* SDLControlFramePayloadConstants.h in Headers */, + 41C627171A616D718ABDDC5E9298BCDD /* SDLControlFramePayloadEndService.h in Headers */, + D2FDF52D5353CA1AE6DE662BA066B310 /* SDLControlFramePayloadNak.h in Headers */, + F3E03877BAD0D44D99FF726626072704 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h in Headers */, + 312252BAF5168F0452B6032AF7262088 /* SDLControlFramePayloadRPCStartService.h in Headers */, + E9842B3A085EBC79B367D1EBCF4D3EDA /* SDLControlFramePayloadRPCStartServiceAck.h in Headers */, + EF6207A4CDB7229EECBD4E564185CB8E /* SDLControlFramePayloadTransportEventUpdate.h in Headers */, + 261863B80132A0BC07FDDDCF74A88507 /* SDLControlFramePayloadType.h in Headers */, + FCECADD9A357293803247BC3C76A9503 /* SDLControlFramePayloadVideoStartService.h in Headers */, + 9A48AC603DDEF5B24BD4076C2290AFC2 /* SDLControlFramePayloadVideoStartServiceAck.h in Headers */, + 8772FCEC5E9710246CEE8FBCA4019860 /* SDLCreateInteractionChoiceSet.h in Headers */, + CF556B40CBEAB213E7FB5AB37B3A8F78 /* SDLCreateInteractionChoiceSetResponse.h in Headers */, + B970D6C4028085CF32C4082F353EA558 /* SDLCreateWindow.h in Headers */, + A399E20CA220D299A8DF309E86426D1A /* SDLCreateWindowResponse.h in Headers */, + 667074D7329FC4A6C93D491CCA95AD28 /* SDLDateTime.h in Headers */, + 3FDEB76B1310B44C542A23A99FFDC12A /* SDLDefrostZone.h in Headers */, + 68A818CEEC6D3464F1F342FDA6F2A589 /* SDLDeleteChoicesOperation.h in Headers */, + CB96E61276D98E9A7E6EE9EA13F73E4A /* SDLDeleteCommand.h in Headers */, + 0F6A60ED43283E82D2B9D2B44891F791 /* SDLDeleteCommandResponse.h in Headers */, + 93415208EBEF817C98ADBD5036CA1B2E /* SDLDeleteFile.h in Headers */, + D8A98474F332772BCCBB7FCCF0B24758 /* SDLDeleteFileOperation.h in Headers */, + 0D4E9787AFBEBE399ED33BC220BBF5DB /* SDLDeleteFileResponse.h in Headers */, + 6B8AD2A80230C69999C2557111A863D6 /* SDLDeleteInteractionChoiceSet.h in Headers */, + 670B776F551B36D554119FB8026FE32F /* SDLDeleteInteractionChoiceSetResponse.h in Headers */, + CE33E214C4EF7F657B4E1A730C50298B /* SDLDeleteSubMenu.h in Headers */, + 83D2CD65D5D95573F01977E99B1D75E0 /* SDLDeleteSubMenuResponse.h in Headers */, + 65740342F23043EC9699F09D611C30B3 /* SDLDeleteWindow.h in Headers */, + A44C2604ED15FF19CA61B1C3536DED7C /* SDLDeleteWindowResponse.h in Headers */, + 48EC5046C8C0F0F88B2D70EFCC70A55B /* SDLDeliveryMode.h in Headers */, + E3D8E77FFD3C3CCD8FEF0CB36D65603B /* SDLDeviceInfo.h in Headers */, + 279BC5E11138599E41CC590BC89D4968 /* SDLDeviceLevelStatus.h in Headers */, + C3E54CEBB8FB78A7494CE9DFF3058933 /* SDLDeviceStatus.h in Headers */, + 04AC3A2D5D8EA70CD7DC71985028059E /* SDLDiagnosticMessage.h in Headers */, + 011DC22B43225C9180D2B058811D31AA /* SDLDiagnosticMessageResponse.h in Headers */, + E1C6FEC796F238A0D768AEEF13D8BF2F /* SDLDialNumber.h in Headers */, + A5D2E31993A8DFCCE1145E7CEF4A1A55 /* SDLDialNumberResponse.h in Headers */, + 43433209F0A6AEBBC66F9C2C0C3677FB /* SDLDIDResult.h in Headers */, + 36DE87793D478673E902B66BA865E0B3 /* SDLDimension.h in Headers */, + DFB776F630297A0329B965599E305013 /* SDLDirection.h in Headers */, + 1CCDD2195B5F545AC27DCDEEE82662AD /* SDLDisplayCapabilities.h in Headers */, + B026E62AE7AA73A7E308CEA35706423D /* SDLDisplayCapability.h in Headers */, + EDD61F460E67ABD6093235C76D0B3030 /* SDLDisplayMode.h in Headers */, + 1DD7C0B18941D631AC369A549BCCF337 /* SDLDisplayType.h in Headers */, + 80FDD0C4DF99B717DD2CC97FC228F91B /* SDLDistanceUnit.h in Headers */, + 5FF666CC71C873FC835E1C8473DCC044 /* SDLDriverDistractionState.h in Headers */, + 366DB00DE052ED5F95A0CBBB863657F9 /* SDLDynamicMenuUpdateAlgorithm.h in Headers */, + EF10AC48D2719E2DFB43ACCF6D899D0D /* SDLDynamicMenuUpdateRunScore.h in Headers */, + 5A47D62F5F8F9C203469C13B913B1462 /* SDLECallConfirmationStatus.h in Headers */, + C09F0A16E73306D9023FB1ABA362D8B1 /* SDLECallInfo.h in Headers */, + 44812B4C0E8553CE1C5270014C84E4E8 /* SDLElectronicParkBrakeStatus.h in Headers */, + 1DCA61545F36E072ADB3AC5B84120804 /* SDLEmergencyEvent.h in Headers */, + 4D7E7BA2A3F3F8258536082B0A8C408F /* SDLEmergencyEventType.h in Headers */, + 305E19FA7E71E7AC503766BD40DF92D4 /* SDLEncodedSyncPData.h in Headers */, + FD44AF223147172C11BA5AF146AFD8EB /* SDLEncodedSyncPDataResponse.h in Headers */, + B0A8D6493BC79BDED329310810FC6B7C /* SDLEncryptionConfiguration.h in Headers */, + 8B60E0077AA57B200EE99D7969CE5725 /* SDLEncryptionLifecycleManager.h in Headers */, + 5096182474D6C15A6B0FFAB419190E81 /* SDLEncryptionManagerConstants.h in Headers */, + BD0935CAB7454504F8A936DC7D9E8DBF /* SDLEndAudioPassThru.h in Headers */, + B646EC4DD347FE666670BB8E8FABA6B2 /* SDLEndAudioPassThruResponse.h in Headers */, + 03FD1A58E5CE6B4F5D7AC73BD8F04106 /* SDLEnum.h in Headers */, + 50AE63D8332621CC3493C807B8134262 /* SDLEqualizerSettings.h in Headers */, + DE972E82D89194FE5744335794CB8894 /* SDLError.h in Headers */, + DB0A2637AAC77D579CEAE3A3B0B7A781 /* SDLErrorConstants.h in Headers */, + E09A6ED07FF88A2B3DFCAD50F1598689 /* SDLFile.h in Headers */, + C81F5A18F9170388C41F9D93C9EF4103 /* SDLFileManager.h in Headers */, + 0AC91200FA1934E943493ECCC8136122 /* SDLFileManagerConfiguration.h in Headers */, + E395F72E06B6F2E54CE0B4977F3FAABD /* SDLFileManagerConstants.h in Headers */, + C67BB4B67598E1831EEBDDD9DD3D4342 /* SDLFileType.h in Headers */, + BDC97FB8252F310E34C402C05D46F82F /* SDLFileWrapper.h in Headers */, + 33735964ECB1F41B90FED9693684FC6A /* SDLFocusableItemHitTester.h in Headers */, + 8CE0DA79C4FDC864AE221A3E92471547 /* SDLFocusableItemLocator.h in Headers */, + B5B97B24E95245BBFA545A415B906F21 /* SDLFocusableItemLocatorType.h in Headers */, + C913D3DD8C730B92D2A8BBC72947580A /* SDLFuelCutoffStatus.h in Headers */, + 4EE7DC6A8E300AECCAD774FC04C06CC7 /* SDLFuelRange.h in Headers */, + 6EC13292E4664E664044A60BCE60965F /* SDLFuelType.h in Headers */, + 50FB6AFA657CFB352989099D13102F5B /* SDLFunctionID.h in Headers */, + 31FE459EED3422D6D52406195997A5B5 /* SDLGenericResponse.h in Headers */, + 48A87FEEBAB7CDD8F8361A46EA1A6EEC /* SDLGetAppServiceData.h in Headers */, + AB52007367A5C4AB6820326CBAEF5F65 /* SDLGetAppServiceDataResponse.h in Headers */, + F0900CEC7175AD4E95776489973B213F /* SDLGetCloudAppProperties.h in Headers */, + 87A6792BA6AC2CE0161CFEF34F119059 /* SDLGetCloudAppPropertiesResponse.h in Headers */, + 172F0217F50B3802792873291333615B /* SDLGetDTCs.h in Headers */, + 61FAC7102046B7AA02E77C61022505B2 /* SDLGetDTCsResponse.h in Headers */, + 92238BCEA4DFDFAA71A87191E4ECD566 /* SDLGetFile.h in Headers */, + 26C8FE72C49E22979FB3F49A0D007AB4 /* SDLGetFileResponse.h in Headers */, + CD2FA1C8839FD6FE08DCC8A97DF7220F /* SDLGetInteriorVehicleData.h in Headers */, + 86DB089944ED1B94905A6348FF65F560 /* SDLGetInteriorVehicleDataConsent.h in Headers */, + C406A5BDF00EF83E462C9746291C2A95 /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */, + 45E837C2448C3A2E325E1F3C704DDDDB /* SDLGetInteriorVehicleDataResponse.h in Headers */, + 07FE270AE156157348A04C871085DC67 /* SDLGetSystemCapability.h in Headers */, + 8D061CCDAEEC859B14DA87086D16829C /* SDLGetSystemCapabilityResponse.h in Headers */, + 389E330EA7204E8C246622D7B2C64206 /* SDLGetVehicleData.h in Headers */, + 174101305620EC2BDD86A2324EAD2250 /* SDLGetVehicleDataResponse.h in Headers */, + 5F86B7F362E3DB2F5EADF6A81651C848 /* SDLGetWayPoints.h in Headers */, + FAD93E03EE1003989F8A89BE6F9E992A /* SDLGetWayPointsResponse.h in Headers */, + B8BDB8F2E45BF5101B5E5B926C88A2C5 /* SDLGlobalProperty.h in Headers */, + E605233B33437E5342710523DC192F16 /* SDLGlobals.h in Headers */, + 5F41FC573ECCB166C8CEA257C47841FA /* SDLGPSData.h in Headers */, + D08B9207BDA690B3F378DBC655D97704 /* SDLGrid.h in Headers */, + D1B56E95735916F4717FEEA32F73CD30 /* SDLH264Packetizer.h in Headers */, + 24863AF1DC6EA3BBCDC32937F67E71A6 /* SDLH264VideoEncoder.h in Headers */, + FFD72484C274C1D4F2A4EC9B8A2D38C5 /* SDLHapticRect.h in Headers */, + 1B7FC0D068CB65F067EE1EF97AE651EF /* SDLHeadLampStatus.h in Headers */, + 23F309309CBB2F13AE5498C66F9CBBA4 /* SDLHexUtility.h in Headers */, + D0F7A93036C76522C1F67732C96D2A85 /* SDLHMICapabilities.h in Headers */, + 28B1880871255ABAB7B693DB477BE2BF /* SDLHMILevel.h in Headers */, + 70756AAE89B977A4D161441924CA9238 /* SDLHMIPermissions.h in Headers */, + 3F142C8529F267AEEDB407067747D466 /* SDLHMISettingsControlCapabilities.h in Headers */, + AF04041B21448126565DE1FF073E50F3 /* SDLHMISettingsControlData.h in Headers */, + 313D3F6741CB4A876DC870D6950185BD /* SDLHMIZoneCapabilities.h in Headers */, + F736EA12A3CF2B12ED63AD84085A768B /* SDLHybridAppPreference.h in Headers */, + 2280C3166A90D6C9945AE301208FA48F /* SDLIAPConstants.h in Headers */, + 663348139A84842D9DC8B687D034FAA3 /* SDLIAPControlSession.h in Headers */, + DBB1C2E6DDFF5465334168A7BE0F8356 /* SDLIAPControlSessionDelegate.h in Headers */, + EDCF0D12F91D225EE21FC90B90DF45B0 /* SDLIAPDataSession.h in Headers */, + FA62FBB392579EFE2754A875108A4301 /* SDLIAPDataSessionDelegate.h in Headers */, + 7456AC0029B0ED5013845EF8690B4800 /* SDLIAPSession.h in Headers */, + 4F09D2BD66940623B09B41ABAF668917 /* SDLIAPTransport.h in Headers */, + 4B3D121041EA80CF0A6C54EEDC4D567F /* SDLIconArchiveFile.h in Headers */, + 50C89E8901B132F3463B7FD73E2A7DF9 /* SDLIgnitionStableStatus.h in Headers */, + 9581012BA1BF244C1798CC9F0F8FD912 /* SDLIgnitionStatus.h in Headers */, + 95D89B876490D16D030AA0D34B6A405C /* SDLImage.h in Headers */, + AEB12E59859E89B338584DD02E72BBDD /* SDLImageField+ScreenManagerExtensions.h in Headers */, + 245F13ECAB0929AEE2AEEDE7127267E2 /* SDLImageField.h in Headers */, + 53A4C5BB897DE00C73D04FE9C798A378 /* SDLImageFieldName.h in Headers */, + 532CBAD7F7203330EB116F867D78AD94 /* SDLImageResolution.h in Headers */, + 32210BF5CC463E9D45B351AC51D3701C /* SDLImageType.h in Headers */, + 8D8A4A26C3D88C9A288A0BE158F5AECC /* SDLInteractionMode.h in Headers */, + 1129F96669BD2895C203A36F68AC5039 /* SDLKeyboardDelegate.h in Headers */, + 5D956CAE93765CF2D19F46066504001A /* SDLKeyboardEvent.h in Headers */, + 4459DBDBAC2274C4C6A3562284C82CD4 /* SDLKeyboardLayout.h in Headers */, + A61C1EA4AAC054DCFD62C8E3E430B5C2 /* SDLKeyboardProperties.h in Headers */, + 8648110FFEF2D75F6B7F55C32146724C /* SDLKeypressMode.h in Headers */, + 41B5F7422392AF0E4913343AA37DFC09 /* SDLLanguage.h in Headers */, + C6A5D68AC8EFB53B34D18E8C12FD5CA0 /* SDLLayoutMode.h in Headers */, + 98A982A0D23CBE76B4B9481EBC5B7DCC /* SDLLifecycleConfiguration.h in Headers */, + 5DEB98011444C5BCFC62E391A0AC0074 /* SDLLifecycleConfigurationUpdate.h in Headers */, + B3C93590B5B3FC4891ECC8B30EFEE2D0 /* SDLLifecycleManager.h in Headers */, + 8D65C40824DFE60D525CED2C023A0F7A /* SDLLifecycleMobileHMIStateHandler.h in Headers */, + 0A5F18BE6407FA7AAC0208B310CCA32F /* SDLLifecycleProtocolHandler.h in Headers */, + 693B129F38CC2B703FD8A7F08CB78C2F /* SDLLifecycleRPCAdapter.h in Headers */, + 81A2EE8BC56912D7216441DA5841C2DC /* SDLLifecycleSyncPDataHandler.h in Headers */, + EC0A56B098D4D9D2DEC520EF28D878C3 /* SDLLifecycleSystemRequestHandler.h in Headers */, + 75F75168E87F0477AF56A4433120E337 /* SDLLightCapabilities.h in Headers */, + 30170E4981190642C08902283DA8EA15 /* SDLLightControlCapabilities.h in Headers */, + EF19B8608648A79B8FB439746726C03D /* SDLLightControlData.h in Headers */, + F4D3DCD1482DC7169320000B0CFD58FC /* SDLLightName.h in Headers */, + F2B7CC9ADABB102423469D03817D6EEB /* SDLLightState.h in Headers */, + 1CDF2C5793F2F158F1C6972F6555B83C /* SDLLightStatus.h in Headers */, + 56EE8DEB476EB170BA3E5B106F3C05CD /* SDLListFiles.h in Headers */, + 0C842D098EED306B734C442A93C4D3B0 /* SDLListFilesOperation.h in Headers */, + 603D7B56C9C81FD06C3EC810D7D782F7 /* SDLListFilesResponse.h in Headers */, + A47AA1D939A83E24760E8911CD07437E /* SDLLocationCoordinate.h in Headers */, + 4E10FE11AA345AB32DF8C2C78AC72945 /* SDLLocationDetails.h in Headers */, + 10E36D3AD6990D109C03EF220CB91E32 /* SDLLockScreenConfiguration.h in Headers */, + F2D2FD0B10D0FFD8AE6299BD90601122 /* SDLLockScreenManager.h in Headers */, + B8A5382FC2441B722AD2C82A370DA111 /* SDLLockScreenPresenter.h in Headers */, + 90ECAE46CCBED46C36E8BB36C3A8B080 /* SDLLockScreenRootViewController.h in Headers */, + B6B9DB34FF134B3C30ABBA52DC9F9E0C /* SDLLockScreenStatus.h in Headers */, + 89C7621F6C964ED4A80F6EDAEF5508C1 /* SDLLockScreenStatusManager.h in Headers */, + 143FEB3EE4BC244DDD88E14344D6B76C /* SDLLockScreenViewController.h in Headers */, + C9D33DEDBE5109B9371CCF78FA4B5192 /* SDLLogConfiguration.h in Headers */, + 0F3B5FE619F16BEE1403425BD8C7F520 /* SDLLogConstants.h in Headers */, + 310677899FEA4BEC324AEC113080A4F5 /* SDLLogFileModule.h in Headers */, + 962B115D078E230C22DA4E91AA804C82 /* SDLLogFileModuleMap.h in Headers */, + D804E00C1E99EF81AE7B9E9BD98FDCF7 /* SDLLogFilter.h in Headers */, + C2AF1FA0B237ECE3973A4D955B834D62 /* SDLLogMacros.h in Headers */, + AF46DF04E283DA2C025B970031AFCEF5 /* SDLLogManager.h in Headers */, + EBF9DDBD069ECC7C4BF0C8C6092DC67C /* SDLLogModel.h in Headers */, + 609D59858F614E865E35B9047D721B55 /* SDLLogTarget.h in Headers */, + 8AD486A4ADCD0FF1DAF25B7345927219 /* SDLLogTargetAppleSystemLog.h in Headers */, + 2CEEFA0305B7075B60D8A82D8C7AE3C7 /* SDLLogTargetFile.h in Headers */, + 1283216835F6ABF78E4E5E54EA7962E0 /* SDLLogTargetOSLog.h in Headers */, + 2CB612FCC5FC2844742A9D63064C0735 /* SDLMacros.h in Headers */, + 6D90411B199CDB756ECFF1B520D943CA /* SDLMaintenanceModeStatus.h in Headers */, + 63D0F548923E6CCF260C1B0B8FAC6765 /* SDLManager.h in Headers */, + AE9BD968DDEABA9836A36574FD0D8833 /* SDLManagerDelegate.h in Headers */, + A8B394A4B621EDC8A9808654867417AA /* SDLMassageCushion.h in Headers */, + 719F1510793284941FE5BF903CA15B03 /* SDLMassageCushionFirmness.h in Headers */, + 6F0DF2DDAA5289F5AFFC0E041C66C3DD /* SDLMassageMode.h in Headers */, + CB5893572A2A29A05C47351C7D774B1E /* SDLMassageModeData.h in Headers */, + A16DD1665116466714C5965E5600EB3B /* SDLMassageZone.h in Headers */, + 5936185F7F9BDEA038CBC25861A7B800 /* SDLMediaClockFormat.h in Headers */, + DE63E79D4F876DB8F9EE94E01C7D5069 /* SDLMediaServiceData.h in Headers */, + 67692FE28D4340CE9F1E21ED290A7BF4 /* SDLMediaServiceManifest.h in Headers */, + D5FF4F7258D11BD646907C8BBC834823 /* SDLMediaType.h in Headers */, + 261E2ED889FAC8724554E6B02245D729 /* SDLMenuCell.h in Headers */, + F8442F1675B44DFC70114DBE8650387E /* SDLMenuConfiguration.h in Headers */, + B6DEB8B6987E3DC830711BB697BB2EA5 /* SDLMenuLayout.h in Headers */, + FEFA37AA6D063CAC96E0FA294F03339E /* SDLMenuManager.h in Headers */, + 67EF13392843998F139806BCF4599AEA /* SDLMenuManagerConstants.h in Headers */, + A3609858C4CC85B82B2DB5EE1F16DCB8 /* SDLMenuParams.h in Headers */, + 180E06FF7C4938D1766280C11FB4E657 /* SDLMetadataTags.h in Headers */, + 83A82DBF4D25D51D1476CD1761FD8193 /* SDLMetadataType.h in Headers */, + 78DD03DE1F2E1CDAF6EFBE85FB271659 /* SDLModuleData.h in Headers */, + 2C7676C5700FEDFB6F40906E87614915 /* SDLModuleInfo.h in Headers */, + 1CDB4452916538DA9605B54CD9CF9253 /* SDLModuleType.h in Headers */, + 4B557114510641E1C5179A13E20947C2 /* SDLMsgVersion.h in Headers */, + 48D2F37A0323E42FA7F9720CD932C164 /* SDLMutableDataQueue.h in Headers */, + 558629DF1394586DBF06BA79BC133AFC /* SDLMyKey.h in Headers */, + C8AFD07137303A4BAA1E27BE76C2476E /* SDLNavigationAction.h in Headers */, + C3A36F166899F2091ACC48FBC1F71D97 /* SDLNavigationCapability.h in Headers */, + 72F95D970F57DD3D099831677FBD44F6 /* SDLNavigationInstruction.h in Headers */, + CAD42BB6B985BECA56F3CED84173A6E4 /* SDLNavigationJunction.h in Headers */, + 105369E74A34167632F2CE1FEEC4B7CC /* SDLNavigationServiceData.h in Headers */, + 3E1C27FA8FB062F1EBF23125ECF0DCC7 /* SDLNavigationServiceManifest.h in Headers */, + 7ED73AD3B2A398A24F0F5F902C2BEC7E /* SDLNotificationConstants.h in Headers */, + 414659B4BBF380B05FB6D14228116399 /* SDLNotificationDispatcher.h in Headers */, + F9B2C89631AA9232F9CB801641DAC31E /* SDLOasisAddress.h in Headers */, + 8FB139DC468B629C24AE83DDCA703344 /* SDLObjectWithPriority.h in Headers */, + 853FBDDD33406416B3CD92C116D48527 /* SDLOnAppInterfaceUnregistered.h in Headers */, + B8E6DEEB54803908A1463045917D1DAA /* SDLOnAppServiceData.h in Headers */, + BF742D0DA92B99A103C7C83E1B811C38 /* SDLOnAudioPassThru.h in Headers */, + 3D7803B431EF484181D70B0FD36525D1 /* SDLOnButtonEvent.h in Headers */, + 63A78859EA9AFE1590C58ED29AD1773E /* SDLOnButtonPress.h in Headers */, + AC445B1933708F21D8AF1D6AF2FB074A /* SDLOnCommand.h in Headers */, + F1795858A80044888465909C25A2D3C6 /* SDLOnDriverDistraction.h in Headers */, + 17CECF9E5DD0110F7D4844C33B8355D1 /* SDLOnEncodedSyncPData.h in Headers */, + B894F5782F2E7E7BC34056A80B601A6E /* SDLOnHashChange.h in Headers */, + 8481C28E972233354B8C968975D53DED /* SDLOnHMIStatus.h in Headers */, + 8EAC634A23B80D6CD82059550A5F6A95 /* SDLOnInteriorVehicleData.h in Headers */, + 33B2BF8E23DFF5A3C417CD80CD43CC32 /* SDLOnKeyboardInput.h in Headers */, + 0E3ECC9ABD6472D32DC6E58A3E08B44E /* SDLOnLanguageChange.h in Headers */, + 21675C3CF6D3BF02A34431A59D05325A /* SDLOnLockScreenStatus.h in Headers */, + 10FDDEDD0CB42C86BE626249764D1B85 /* SDLOnPermissionsChange.h in Headers */, + 23A7D1922ACCA1C1A1469D21A8AAAC31 /* SDLOnRCStatus.h in Headers */, + DF81482006B1DD064059CD729193F9FE /* SDLOnSyncPData.h in Headers */, + 96EED05BD75DD6497FF959D93C46E53C /* SDLOnSystemCapabilityUpdated.h in Headers */, + F4419F5F39751E51D708DC49653C24FE /* SDLOnSystemRequest.h in Headers */, + 1F04F9E2D54DFA9F857F25B8733C4D20 /* SDLOnTBTClientState.h in Headers */, + C6C679C53BD8DF8348E50BBD9B6EDBED /* SDLOnTouchEvent.h in Headers */, + 2B734A17FAB58B4CE730C0540D22988D /* SDLOnVehicleData.h in Headers */, + CBF78451B2FF04F7214072DC193CC9FE /* SDLOnWayPointChange.h in Headers */, + 3C3EC5487121EB98E99F0F97BE42C1EA /* SDLParameterPermissions.h in Headers */, + 8C340626051AFB39A7A54148ACAC7B83 /* SDLPCMAudioConverter.h in Headers */, + A343D2D2F0859C8234D815B9A4E21190 /* SDLPerformAppServiceInteraction.h in Headers */, + 63375F5754AB2A6330826FAEF85475FF /* SDLPerformAppServiceInteractionResponse.h in Headers */, + 466C4783AC46602811E0B894FBCAEBA3 /* SDLPerformAudioPassThru.h in Headers */, + 557D83DD1A2B8A0488AAE4F2C227DB16 /* SDLPerformAudioPassThruResponse.h in Headers */, + 9AFEB611162042E0D236BF151AE0A572 /* SDLPerformInteraction.h in Headers */, + 03BFBA09CDC067C038AE6B2618500579 /* SDLPerformInteractionResponse.h in Headers */, + 0699763FA69B0EF2765A379706BFBB5C /* SDLPermissionConstants.h in Headers */, + 59ED79597725A4AADB89371D24EBEBC1 /* SDLPermissionElement.h in Headers */, + 25872E377E8B390BC6BC2DBA36F64FBF /* SDLPermissionFilter.h in Headers */, + A64F8AC8AB4B30F78B3224EB3DEA4F08 /* SDLPermissionItem.h in Headers */, + BEB387A0851CE78DA18EA4C1591A8D09 /* SDLPermissionManager.h in Headers */, + 4D9CCEE4CD5610447009B1E2E3102802 /* SDLPermissionStatus.h in Headers */, + F1A103230DFAE80CBB1C5E087DBBD700 /* SDLPhoneCapability.h in Headers */, + 32CF5B82101419D7815D0024314D4021 /* SDLPinchGesture.h in Headers */, + 60497AADC0C7F17F737D365084E50302 /* SDLPowerModeQualificationStatus.h in Headers */, + 4681242BC3AA9D72A34C48AB5E217313 /* SDLPowerModeStatus.h in Headers */, + D383905C1BC02D559216275118596959 /* SDLPredefinedLayout.h in Headers */, + 94F5B9443E54B16196DA24D8D5BDFE20 /* SDLPredefinedWindows.h in Headers */, + 2667B1229C8C1AAFCB5CD02B1E3EAB10 /* SDLPreloadChoicesOperation.h in Headers */, + 17388E0CEAD1357464CC365A3C483F55 /* SDLPrerecordedSpeech.h in Headers */, + F283AA06AE3E28E317A738DBA7DC9CA9 /* SDLPresentChoiceSetOperation.h in Headers */, + AB15DC9878A7480D662E8E7F09FE83F8 /* SDLPresentKeyboardOperation.h in Headers */, + 84AC99C20CB76DB834582FBADBA11A3A /* SDLPresetBankCapabilities.h in Headers */, + 14A912514B48A2F767D72FFC45C7057E /* SDLPrimaryAudioSource.h in Headers */, + 683759594A286A805CC281E2A1377FDF /* SDLPrioritizedObjectCollection.h in Headers */, + 32272744E2728BF0CC353CF8075DE56D /* SDLPRNDL.h in Headers */, + CA250D82EAC0308FA595B87D98EC2259 /* SDLProtocol.h in Headers */, + FEA2C633BF61DAEA879091A9D48C0223 /* SDLProtocolConstants.h in Headers */, + 8015E7789F7FC9A108335F54BB07608A /* SDLProtocolDelegate.h in Headers */, + 3592348A1908B19BDCC82B075D3EF470 /* SDLProtocolHeader.h in Headers */, + 9585BEED50A4D422F43BF6EDAE401D14 /* SDLProtocolMessage.h in Headers */, + 1866DAB2990E2E6758DBFCC4AFFC1164 /* SDLProtocolMessageAssembler.h in Headers */, + 7B7B00F06DD077C562AC195054871C6D /* SDLProtocolMessageDisassembler.h in Headers */, + 4816981DC17C9216116E43146A4DF17E /* SDLProtocolReceivedMessageRouter.h in Headers */, + AAD614157E529CD67FB103448F2FED1A /* SDLPublishAppService.h in Headers */, + 72E713506534D95203F92A95487AD5B2 /* SDLPublishAppServiceResponse.h in Headers */, + DEF7B91670D14C4BCF191B13B1CBDB8D /* SDLPutFile.h in Headers */, + A2A9921EB8164C6246F43B98C428DAFB /* SDLPutFileResponse.h in Headers */, + 0AD6F7B5EC996D9805558DCB02414DA7 /* SDLRadioBand.h in Headers */, + FD1D54FC7E3963916E30AF17CF6C7E08 /* SDLRadioControlCapabilities.h in Headers */, + A8F40580F01A389445A4CB766D5FAEE2 /* SDLRadioControlData.h in Headers */, + 90410C380CABA5FB3BDE928DBFFE5296 /* SDLRadioState.h in Headers */, + 4188A89659E8983E8F643EE3DA11134E /* SDLRAWH264Packetizer.h in Headers */, + 157BAA3EB92752922B163EA46E9D0DB9 /* SDLRDSData.h in Headers */, + 7D0062F56EACBA6F8476176C8FF0E2E7 /* SDLReadDID.h in Headers */, + E6D8226083D387CD8BD4EF2CE9F86DBF /* SDLReadDIDResponse.h in Headers */, + 2E9FE8554C9075C973E8F7E8ADD01171 /* SDLRectangle.h in Headers */, + 79E2DC7E5768C6622D75EF018FB82F0F /* SDLRegisterAppInterface.h in Headers */, + E829F19D11C1077B6B68CA9E77E7A3CF /* SDLRegisterAppInterfaceResponse.h in Headers */, + 022788A008E07EC139761666C4AFE592 /* SDLReleaseInteriorVehicleDataModule.h in Headers */, + 2872CD02FF5C555D4B23ABF8457D1AB6 /* SDLReleaseInteriorVehicleDataModuleResponse.h in Headers */, + B418427429C057ED4BEDEEBC3B54E972 /* SDLRemoteControlCapabilities.h in Headers */, + BC69322845C93C436E64BCC888FC2C87 /* SDLRequestType.h in Headers */, + 7851718413DB3073469A983DC222E140 /* SDLResetGlobalProperties.h in Headers */, + 1DBD98BA90ACDD24E656DA81B6F5D53E /* SDLResetGlobalPropertiesResponse.h in Headers */, + 7F6424CEFDA3B3C532BCDDFAD1E0593F /* SDLResponseDispatcher.h in Headers */, + 6F9DB2F491CAE7DADD2B8B6D0AC37586 /* SDLResult.h in Headers */, + 4A82C43B943A07EB9B3B35C775D7E384 /* SDLRGBColor.h in Headers */, + B7630BA13320336380743669B1FD03D1 /* SDLRPCFunctionNames.h in Headers */, + A565805CB816BE9F3B0D0E09DC310653 /* SDLRPCMessage.h in Headers */, + 926C8094DD82B05E32B533990D9085E0 /* SDLRPCMessageType.h in Headers */, + 93DA28C985C4ACFB75AE57626D5206B9 /* SDLRPCNotification.h in Headers */, + F03F8D0FD515F7D50A09B053578BE029 /* SDLRPCNotificationNotification.h in Headers */, + ABB509C9A5348FF75C8D7AB737896B76 /* SDLRPCParameterNames.h in Headers */, + CAD17BD965F06658766D62411C358BB6 /* SDLRPCPayload.h in Headers */, + 3EB29C6B91501244CBAA1180DEBA766E /* SDLRPCPermissionStatus.h in Headers */, + C8A0BF9E182B267629C254EB8B2AC221 /* SDLRPCRequest.h in Headers */, + 7BE925A905AB58CFA7FC82DE131D9C55 /* SDLRPCRequestNotification.h in Headers */, + 78BF11691585A2A34E9BF697CABDB77B /* SDLRPCResponse.h in Headers */, + 5B7878B537CD40ED19460FE32BFE4B78 /* SDLRPCResponseNotification.h in Headers */, + 491C6573D1D0904EA6E083E25724DA04 /* SDLRPCStruct.h in Headers */, + 8E80CC5191B3799B9446E341E7A1436F /* SDLRTPH264Packetizer.h in Headers */, + 446DD73796C4DB12980BF45ECE1851A9 /* SDLSamplingRate.h in Headers */, + 90134E4A78B41A1419B50CDD40E9853B /* SDLScreenManager.h in Headers */, + F586F836095468D7E035D0D52AE2D236 /* SDLScreenParams.h in Headers */, + E3157BC456D801956E1474CCF765F853 /* SDLScrollableMessage.h in Headers */, + EBE09075FFCB277CF9EA3E3A4D070C84 /* SDLScrollableMessageResponse.h in Headers */, + 57929D337BFC2A2910D7D58E49CBA51C /* SDLSeatControlCapabilities.h in Headers */, + 4F59B76594C1905BB5FE6EE9197C1274 /* SDLSeatControlData.h in Headers */, + 5C110E803525A9E4B32FD457F76865E0 /* SDLSeatLocation.h in Headers */, + 0B8CFC9287CE4FD15A45F365C86B5FFE /* SDLSeatLocationCapability.h in Headers */, + 80C005673FF0A17E64ABC38D3D87A0E7 /* SDLSeatMemoryAction.h in Headers */, + 2FA2DF4750EF0B673A0A8465018F35EA /* SDLSeatMemoryActionType.h in Headers */, + 827C5F581A5FB46D0D7B9A13960CFC87 /* SDLSecondaryTransportManager.h in Headers */, + 9EAA1FB46BE08D3EF32659A6DC6924E3 /* SDLSecurityType.h in Headers */, + 37C9D90EE3EF9A798C26D18654A50F75 /* SDLSendHapticData.h in Headers */, + 42B0127D5FE47E06FC473C2E73076C39 /* SDLSendHapticDataResponse.h in Headers */, + 8A14D6E4EE2461D75FAF5D8B9BEEDE4D /* SDLSendLocation.h in Headers */, + 8202ACFD681FB7B0CF7F76BB088E01B2 /* SDLSendLocationResponse.h in Headers */, + 8D61AE766EED51AC232160F87E00B811 /* SDLSequentialRPCRequestOperation.h in Headers */, + 71B061EECEA783CBDE28CC159BEB1C7E /* SDLServiceEncryptionDelegate.h in Headers */, + B6F038FB2FD3D2A6122C859B0FD77F6C /* SDLServiceUpdateReason.h in Headers */, + 27CB4D94922255DE00C087E636C77FED /* SDLSetAppIcon.h in Headers */, + D0C88B9168198144FE7FA6F3E4F7825D /* SDLSetAppIconResponse.h in Headers */, + 9603A9FB3A51776C2FAB23573513D478 /* SDLSetCloudAppProperties.h in Headers */, + 8063604BF5348DFC96A063DB686D9A0B /* SDLSetCloudAppPropertiesResponse.h in Headers */, + 53D2AEBA404C140CAD3C1D71C71B671B /* SDLSetDisplayLayout.h in Headers */, + 690DFDCAC21DB2CF0A4196DF85213638 /* SDLSetDisplayLayoutResponse.h in Headers */, + 68EA9F3B5A2C59F3DAEB02CB431641BE /* SDLSetGlobalProperties.h in Headers */, + 44298616B04419E21E3B52AA81344E41 /* SDLSetGlobalPropertiesResponse.h in Headers */, + 0DB4E8891C30BCE56D71B24F6AC8874E /* SDLSetInteriorVehicleData.h in Headers */, + 80A4C0F0E1202AF9F786FDF9B730D7C2 /* SDLSetInteriorVehicleDataResponse.h in Headers */, + 65272CADF916905A96F9819D51EBE142 /* SDLSetMediaClockTimer.h in Headers */, + 0C68DF7AC21D2860D88C4EAFD8B95C31 /* SDLSetMediaClockTimerResponse.h in Headers */, + D5669FF6BD7F10510C5BFEEC1D6285CC /* SDLShow.h in Headers */, + 27F44F85A8B72CE438D99AC77CFCB009 /* SDLShowAppMenu.h in Headers */, + EFE7C89F1D6188B957882AC34CE3D2EF /* SDLShowAppMenuResponse.h in Headers */, + 51378702549105BAEC08F36DF29A9C35 /* SDLShowConstantTBT.h in Headers */, + 4F8AE7258BB956DFB6C7040D9018ADF2 /* SDLShowConstantTBTResponse.h in Headers */, + 7E7594511BA3FB188C0D4874798AE1D6 /* SDLShowResponse.h in Headers */, + 0066A50956A60610464FC1F18D624CF7 /* SDLSingleTireStatus.h in Headers */, + 93BD8B81C51CE40CB6A05AE7AE074C1A /* SDLSISData.h in Headers */, + 107C1A8D01DEA7B07FC9EA5B18C62015 /* SDLSlider.h in Headers */, + D3E51F57F33BBDB90E0026E6A50A8C18 /* SDLSliderResponse.h in Headers */, + DE9575D32F7A6A605DD928E3EA6F90B6 /* SDLSoftButton.h in Headers */, + 728A4B617C43974BBB7EC3785D380ECC /* SDLSoftButtonCapabilities.h in Headers */, + C1A2ACDFECBB62131B3E5E6278E5E8B0 /* SDLSoftButtonManager.h in Headers */, + E64A8CC048B3B646F407159AC4BE4F4C /* SDLSoftButtonObject.h in Headers */, + E76389D113E1B62086B889FF5763CBF2 /* SDLSoftButtonReplaceOperation.h in Headers */, + 582C9ADF86D98712DAED3E320A3726F7 /* SDLSoftButtonState.h in Headers */, + 703F4BBF41D33B378CCAA13A2E993693 /* SDLSoftButtonTransitionOperation.h in Headers */, + 79DC53A9C788ADDD57B9EDB85F999694 /* SDLSoftButtonType.h in Headers */, + 1AB0F0C524720148B94C531A6EC007E7 /* SDLSpeak.h in Headers */, + C40C833F9ADA24E8D735707B4D7EBF1C /* SDLSpeakResponse.h in Headers */, + A239E346274909BDC903979FD4B4C6FA /* SDLSpeechCapabilities.h in Headers */, + 9F3B8143751BFE86CD8EAA6F4AE05B8C /* SDLStartTime.h in Headers */, + D7A4CAECEC686A01DA319E8C6E1D3C04 /* SDLStateMachine.h in Headers */, + A14201E05A5F23717A4AF5E21AC4404A /* SDLStaticIconName.h in Headers */, + 08FA3423342DC39363ADE4F4A3D7A5E0 /* SDLStationIDNumber.h in Headers */, + E3FB99D01C97093682E0A1EF03DEF33C /* SDLStreamingAudioLifecycleManager.h in Headers */, + 8A468CCE4EA458EED9B48499F95B50C9 /* SDLStreamingAudioManagerType.h in Headers */, + 911746B423568C0733997FC634BAEDFF /* SDLStreamingMediaConfiguration.h in Headers */, + 3193A89DD9C594CF5AF5C8FAAA01199A /* SDLStreamingMediaManager.h in Headers */, + 17E4FFBC4E56178F24E14C3672E2A532 /* SDLStreamingMediaManagerConstants.h in Headers */, + FA5BE5FA92E0BFEFCE58DD65F1AF67DB /* SDLStreamingMediaManagerDataSource.h in Headers */, + 6B045CB9000C16A8E5D3AD569DFDCF1F /* SDLStreamingProtocolDelegate.h in Headers */, + D2E1F6044277640103B8532FD88ECCCD /* SDLStreamingVideoLifecycleManager.h in Headers */, + 672A6C9980B30F2A8A1A7E7ADC9CC09D /* SDLStreamingVideoScaleManager.h in Headers */, + 7F809464FB227F599754C4774F4F0D00 /* SDLSubscribeButton.h in Headers */, + DC02273D2AA5CEF43581EBE2A8747E52 /* SDLSubscribeButtonManager.h in Headers */, + 860C590D39EEF30148340A4A972B2EA3 /* SDLSubscribeButtonObserver.h in Headers */, + 7E1B85155539D7490393F22A7B5DD864 /* SDLSubscribeButtonResponse.h in Headers */, + FA3B57CB38D403CC2A89A61D00EBE74C /* SDLSubscribeVehicleData.h in Headers */, + EC00209B66BA6A8E9C3CECCD2F5B5B45 /* SDLSubscribeVehicleDataResponse.h in Headers */, + EB2AE2C03AF5B038D0D8F8C5B7F86405 /* SDLSubscribeWayPoints.h in Headers */, + BC45A3363C22BFDA59826F07C50A4886 /* SDLSubscribeWayPointsResponse.h in Headers */, + A752A770F02A5D857134CE5F0A8047ED /* SDLSupportedSeat.h in Headers */, + 20FDB32A5B293CF83F082EDA2F290768 /* SDLSyncMsgVersion.h in Headers */, + 1E1C18899CFA06BDF66E3C1276224C50 /* SDLSyncPData.h in Headers */, + 44E2E8310C02EFCD578734633D24C5D5 /* SDLSyncPDataResponse.h in Headers */, + 68EC307B38999212B1E4E52A2A6A5938 /* SDLSystemAction.h in Headers */, + F78527CC8638C170A0B00821EE5375DB /* SDLSystemCapability.h in Headers */, + 5FF2F52E73B01B06B0D1DD2B7502B928 /* SDLSystemCapabilityManager.h in Headers */, + 260B1F3FE55BFBBDA28A06E4EA9B2277 /* SDLSystemCapabilityObserver.h in Headers */, + 66AE1E0830F6B4805FB27212308F3740 /* SDLSystemCapabilityType.h in Headers */, + 69E988775F50BC03CB1A92A342B78898 /* SDLSystemContext.h in Headers */, + 66FC0DCB94EBCBFBC1E6A3D16FCBE32B /* SDLSystemRequest.h in Headers */, + 04437FB778E703F55CBAE8E1E6B26E79 /* SDLSystemRequestResponse.h in Headers */, + D7A3CC246C315674298880EEB2B97169 /* SDLTBTState.h in Headers */, + C6941A6FF49829CAD804EF442CDEC532 /* SDLTCPTransport.h in Headers */, + 406DFE813A052A855D6676BE3C7442EC /* SDLTemperature.h in Headers */, + 1E78598094FD94D3F1B5A829104E11A8 /* SDLTemperatureUnit.h in Headers */, + F9F67F2646FC92E2B9C54DABBB0D165D /* SDLTemplateColorScheme.h in Headers */, + 20BCA8A438D8E11BEABF1C8D8B366DD6 /* SDLTemplateConfiguration.h in Headers */, + F0771FB03F3BE78A03CDA6851381B1B6 /* SDLTextAlignment.h in Headers */, + 13972B331486A40C0383D0FF8694E4BC /* SDLTextAndGraphicManager.h in Headers */, + FDDD566B0FCC00853F7748B764791F7F /* SDLTextField+ScreenManagerExtensions.h in Headers */, + 6F77FE57579EF72D016C882461807E4A /* SDLTextField.h in Headers */, + 8C443CDAE7BE73B240DF7DF391CA1950 /* SDLTextFieldName.h in Headers */, + 26C615A4EB161B3EC705D293B8D165AD /* SDLTimer.h in Headers */, + 64BBDF7281EAD65AEDDB047B1D987BDF /* SDLTimerMode.h in Headers */, + 283A4555F3187593CF5BF0276861F516 /* SDLTireStatus.h in Headers */, + DBFAADE3779350453CD7BFAE86F35101 /* SDLTouch.h in Headers */, + 869B5690CE0248DE52F1A2DED2BFBD8A /* SDLTouchCoord.h in Headers */, + 1BC4F89B700407702412F597B8D6A4C0 /* SDLTouchEvent.h in Headers */, + 237E939E34B845012E338C238CCDDAD1 /* SDLTouchEventCapabilities.h in Headers */, + 07236B7C2904B1537466E4F3B99A7483 /* SDLTouchManager.h in Headers */, + 30353FA6C6AD3B18737ED0DEB34F77B8 /* SDLTouchManagerDelegate.h in Headers */, + 6555ADD4F28D7D0113B1ADEA9908B813 /* SDLTouchType.h in Headers */, + E6E55A8F2A2BFBE31505BE9307FA5BD5 /* SDLTPMS.h in Headers */, + FF13ABB8D4771283578DFE394E35E422 /* SDLTransportDelegate.h in Headers */, + D7C6624037B1FF6F5D58C6B12DA3F63B /* SDLTransportType.h in Headers */, + 0110C3A32BF6872DBCE812C8BBEFF1BE /* SDLTriggerSource.h in Headers */, + E6A83EE82658F0FD32589B0165F03D06 /* SDLTTSChunk.h in Headers */, + E92412A888974C3419F69E616690EBD9 /* SDLTurn.h in Headers */, + 924C9E71DB2A227D30317E0D51B3E29A /* SDLTurnSignal.h in Headers */, + AA7A1B60EBD72027EBDDCED773EEB144 /* SDLUnpublishAppService.h in Headers */, + 4E98EC57EB6B986BCA31A8CBD8D47770 /* SDLUnpublishAppServiceResponse.h in Headers */, + ECC7D8F9B89FAEB6F736532C0E9492FA /* SDLUnregisterAppInterface.h in Headers */, + A212124738A6FDA7630C16154422B70D /* SDLUnregisterAppInterfaceResponse.h in Headers */, + 71BF4F92683DCBC2B99F2CA7C9F38AEB /* SDLUnsubscribeButton.h in Headers */, + 865B4D4D641A4E05B041FEF288509946 /* SDLUnsubscribeButtonResponse.h in Headers */, + 74B5FD77F904539F2A425C2B6596E7CB /* SDLUnsubscribeVehicleData.h in Headers */, + C141AA20F7F4A1CE0ABE4146D9DF4469 /* SDLUnsubscribeVehicleDataResponse.h in Headers */, + E5B246C5FA6496C31A85FB4A70C1D6A2 /* SDLUnsubscribeWayPoints.h in Headers */, + 8464C78AAB2ABA1F3432F3A7E05F6F2B /* SDLUnsubscribeWayPointsResponse.h in Headers */, + 07103FB478E54508351B3BE23E35492E /* SDLUpdateMode.h in Headers */, + 65FFC30295F6558FCA6A0D44DE401664 /* SDLUpdateTurnList.h in Headers */, + 84A93A03350F9B2E58F388D5C6941ADF /* SDLUpdateTurnListResponse.h in Headers */, + B70DEE703AEA1B85CDE2C396ECAAF1FA /* SDLUploadFileOperation.h in Headers */, + 017D3194B0FDE2D9A6C3A9ED92EDEDE5 /* SDLV1ProtocolHeader.h in Headers */, + 74BC3B711C2F9F27EF800EC0D8BB3E7F /* SDLV1ProtocolMessage.h in Headers */, + EC85B08AF38BBDD94B706D8341525764 /* SDLV2ProtocolHeader.h in Headers */, + BD6BAA58C6AF239EEE661ED9DA99920A /* SDLV2ProtocolMessage.h in Headers */, + 2E8C0C18BE0AB72BAAA75756C7AA7EF6 /* SDLVehicleDataActiveStatus.h in Headers */, + 76FB2772BBD488BD031C94BD2D790911 /* SDLVehicleDataEventStatus.h in Headers */, + 6CA6585CCC7F10A53605A5ED5C6E6B81 /* SDLVehicleDataNotificationStatus.h in Headers */, + CFA9E37CDCB344B88BF96EB669E9520D /* SDLVehicleDataResult.h in Headers */, + 1C2AFD76AF172CA723E4F2D158FB0649 /* SDLVehicleDataResultCode.h in Headers */, + C585713307985FD8E3FF5D0E372A8961 /* SDLVehicleDataStatus.h in Headers */, + BB4E4601D7F85091B639CD980A0BC885 /* SDLVehicleDataType.h in Headers */, + 5864283BEBFE5C0165A1AEA85C2C8BB2 /* SDLVehicleType.h in Headers */, + CBDD5E404BA924F86C7D7148AC7D7628 /* SDLVentilationMode.h in Headers */, + 74A5B28E5563DB190D6A5F4FCB5F95E2 /* SDLVersion.h in Headers */, + 7114457F0DC999CFA9DD249404EBB384 /* SDLVideoEncoderDelegate.h in Headers */, + 91957F0442555A51D28E6AA37FBCC7A6 /* SDLVideoStreamingCapability.h in Headers */, + BBC5285BF2004834D5B7AD500C948F15 /* SDLVideoStreamingCodec.h in Headers */, + 5FB5DD9F6732B719FEC80F4FB928AAEF /* SDLVideoStreamingFormat.h in Headers */, + 2584B04D87C22A32D2A58FDCDB7C40A9 /* SDLVideoStreamingProtocol.h in Headers */, + 7D449072D02DC41B5EC19BC012176186 /* SDLVideoStreamingState.h in Headers */, + 1D4B6C284868B1006C28D7EB5E755169 /* SDLViewControllerPresentable.h in Headers */, + 1F3DC8D6580E5EFD9D430958C7434B53 /* SDLVoiceCommand.h in Headers */, + 3F75A11E958789B91A510DD260CA7D5B /* SDLVoiceCommandManager.h in Headers */, + 73CEDC08872351275F6942229AD3F2F2 /* SDLVrCapabilities.h in Headers */, + 8079D14942FAFBE0EE5A57F3665810AD /* SDLVrHelpItem.h in Headers */, + CAC7C9F6DE36100C778BB500C4B9FC66 /* SDLWarningLightStatus.h in Headers */, + 68E4D80462EF8FE2BF63088DC7969409 /* SDLWayPointType.h in Headers */, + 7E128A41B92ABD534D3BED1EB0166F27 /* SDLWeatherAlert.h in Headers */, + A6DEEB95AC4B9E08CFB4DB6709EF54D1 /* SDLWeatherData.h in Headers */, + BF0DD23904A939E421F56AEA262F63F7 /* SDLWeatherServiceData.h in Headers */, + 72087CE9FAB920594133BABA14505343 /* SDLWeatherServiceManifest.h in Headers */, + 9E3DC35284B0EF19F839FF0F7045F243 /* SDLWindowCapability+ScreenManagerExtensions.h in Headers */, + 665B8CB4DEEC8E138E60BBA8D5F6D783 /* SDLWindowCapability.h in Headers */, + 1CAAE194909CE3C7EF3D0CCEAA15CC0B /* SDLWindowType.h in Headers */, + FB6039EBE381999530969D021FC20EDB /* SDLWindowTypeCapabilities.h in Headers */, + C4A2A9F354149CDA02580EFE345C5A7E /* SDLWiperStatus.h in Headers */, + B3F88965CBEF8C0FD322AE9E1CC5BDE1 /* SmartDeviceLink-umbrella.h in Headers */, + FE474D92574F0C37042FF367C1869FF4 /* SmartDeviceLink.h in Headers */, + 5C1C02512F9868EE4D3CB40D3EFEB29F /* TestSubscribeButtonObserver.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 833F0FD22CBF10DD3610FD37C874F565 /* Headers */ = { + B66CE0E28833C1ADF2E05A768FE24F69 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 7D0F53729B80BA2F3DB3CE67B31FDC04 /* BiSON-umbrella.h in Headers */, - 9D2B5BC81F36332FAA2C687D2C6D8191 /* bson_array.h in Headers */, - 9638A2B8DCC8F94FCB32EEDB97FB5E3A /* bson_object.h in Headers */, - 2C00826991FC81F4268A7FA1B8BE3A72 /* bson_util.h in Headers */, - AF9AA3EDD4471FF420FE44DF4BA82A0D /* emhashmap.h in Headers */, + 4CB426F09D090C57A0C0D743F5A802B1 /* BiSON-umbrella.h in Headers */, + 80C31DB7E8132BB5C12F3C7AEC99CE36 /* bson_array.h in Headers */, + 82DA35190CA47C0906DF3CF1F2275F9F /* bson_object.h in Headers */, + F66A68935B8E019A5A1FAE879ECA5384 /* bson_util.h in Headers */, + F36307961DF70A8DFC73478E78F68284 /* emhashmap.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 26B19BB60F7CAAE61519DDA79A8D437B /* Pods-MobileWeather */ = { + 3BAB8E4F4ED1E843F9C863ADE37B95B5 /* BiSON */ = { isa = PBXNativeTarget; - buildConfigurationList = 425C99E18BB0F3FE7820356728F55ADA /* Build configuration list for PBXNativeTarget "Pods-MobileWeather" */; + buildConfigurationList = 76B36B34F146E145104894A1D2A3BA87 /* Build configuration list for PBXNativeTarget "BiSON" */; buildPhases = ( - AA8D112EC3333BFF896E871D7BFEFB59 /* Sources */, - F7117A3E0F9864F48166082A4BAE25F2 /* Frameworks */, - 2D6530FE0F1A846C099BB9EC9B279457 /* Headers */, + B66CE0E28833C1ADF2E05A768FE24F69 /* Headers */, + 9A486A09638ADD3E6C8A7BDBBDBBF93A /* Copy emhashmap Public Headers */, + 07AD40EC7D44C9B8D14224BFDB2DD77E /* Copy . Public Headers */, + BDACCF4256FF7D99C68707BD29EAAC54 /* Sources */, + 8DB01620F7C5C044421A8952D951B11D /* Frameworks */, + 74125B44A08712DA5C7E97D229D21B72 /* Resources */, ); buildRules = ( ); dependencies = ( - 5623240A514EBCE1B36A2FE9293DB43A /* PBXTargetDependency */, - E55BD8FDB5311749542AF52766E95D32 /* PBXTargetDependency */, ); - name = "Pods-MobileWeather"; - productName = "Pods-MobileWeather"; - productReference = F5A2F0A7C6B254D76F97A2422CF221C6 /* Pods_MobileWeather.framework */; + name = BiSON; + productName = BiSON; + productReference = 7B1F6B431A4C7D300274DCDBE2BC7043 /* BiSON.framework */; productType = "com.apple.product-type.framework"; }; - 3E2F6F6EDD252B198A8442650E36D865 /* BiSON */ = { + 3D5C8508F5D7F6E6DD86E88C9CF9F8F4 /* SmartDeviceLink-SmartDeviceLink */ = { isa = PBXNativeTarget; - buildConfigurationList = 367D336DB3F8F34ACC64B522B883EA49 /* Build configuration list for PBXNativeTarget "BiSON" */; + buildConfigurationList = 582AB056CF0E2D5C1E680A386FADDA07 /* Build configuration list for PBXNativeTarget "SmartDeviceLink-SmartDeviceLink" */; buildPhases = ( - 56FD2C90395CF2B63B7F778E14AEE85A /* Sources */, - 7083A34F69DCE3371D8BD936966F28F6 /* Frameworks */, - 833F0FD22CBF10DD3610FD37C874F565 /* Headers */, - FC110E3AF677A49FF455CEA235876FED /* Copy . Public Headers */, - 3D41F49E27EB41BFA8681DEC85560786 /* Copy emhashmap Public Headers */, + FD48AF844ED7A4F116F59DA460F8FE50 /* Sources */, + 0462C6BC022E3DA7F6D838C53ED0C2D7 /* Frameworks */, + F1EC2EA1EFEAE79FA119FDA1F224AF36 /* Resources */, ); buildRules = ( ); dependencies = ( ); - name = BiSON; - productName = BiSON; - productReference = 10A3387C1452124DC53D5493FAF3D437 /* BiSON.framework */; - productType = "com.apple.product-type.framework"; + name = "SmartDeviceLink-SmartDeviceLink"; + productName = "SmartDeviceLink-SmartDeviceLink"; + productReference = C197364227C0998A9025317EAD699894 /* SmartDeviceLink.bundle */; + productType = "com.apple.product-type.bundle"; }; - A3E9B5FE1F97D734A27EB5CC50CC9D46 /* SmartDeviceLink-SmartDeviceLink */ = { + 3E4681F4DA28159D4B2A602AFCC94AFF /* Pods-MobileWeather */ = { isa = PBXNativeTarget; - buildConfigurationList = AA25ECC3F480B9CE3A581E1DDDB962E8 /* Build configuration list for PBXNativeTarget "SmartDeviceLink-SmartDeviceLink" */; + buildConfigurationList = 6E72C1838712FC6ECD613377491FF02D /* Build configuration list for PBXNativeTarget "Pods-MobileWeather" */; buildPhases = ( - 51E9C69D0D7BBFA3E3A429005CC045F2 /* Sources */, - 90B37FB75C332CF50B6F094CBB91ED59 /* Frameworks */, - 3914FAD7C053E6DACB2CB577E92D51FD /* Resources */, + 1901E553EF7960531A828B98ACF2AA7D /* Headers */, + E3D50D58A9FF2A6D484EB5EC0062F364 /* Sources */, + 59047D00004E0FC863A84D4A108701F4 /* Frameworks */, + 45A6443D7E3CE460FACBC4943AAA3286 /* Resources */, ); buildRules = ( ); dependencies = ( + A9790C90E6F821B435B62092D612A7A5 /* PBXTargetDependency */, + 1F7C56A3DE4502DD81BC6DE14A5370CA /* PBXTargetDependency */, ); - name = "SmartDeviceLink-SmartDeviceLink"; - productName = "SmartDeviceLink-SmartDeviceLink"; - productReference = 2C02C584E9C325081E3002F99447C832 /* SmartDeviceLink.bundle */; - productType = "com.apple.product-type.bundle"; + name = "Pods-MobileWeather"; + productName = "Pods-MobileWeather"; + productReference = B658D9594E81D91F5F5FF21E8DD5044A /* Pods_MobileWeather.framework */; + productType = "com.apple.product-type.framework"; }; - BE3804893E5B3C73DADA6122238B017D /* SmartDeviceLink */ = { + D80456DDA93CD634453A682E14808519 /* SmartDeviceLink */ = { isa = PBXNativeTarget; - buildConfigurationList = BEA9B9B2A7ABEF5E4F8DBC5B1D19D276 /* Build configuration list for PBXNativeTarget "SmartDeviceLink" */; + buildConfigurationList = 7DD0E3264F81B11844214F608181EE18 /* Build configuration list for PBXNativeTarget "SmartDeviceLink" */; buildPhases = ( - BB4EF5B024669089E542F6F6321F8415 /* Sources */, - A46C309A849BE8348ECD9F87883D9228 /* Frameworks */, - 417C2AC1565611E683B737A0730C477E /* Resources */, - 18A91028EB1D39D0A2C3C7780F96D942 /* Headers */, + 80D22BB0358122D6924BDD518FC87D4B /* Headers */, + 792BD0F9B9A50172DA8479D077F2AC48 /* Sources */, + 3777EA804422776487C8F513BEE7F4AF /* Frameworks */, + E03FEC8C7B952E3BF6875003BFACF4CA /* Resources */, ); buildRules = ( ); dependencies = ( - 8BB3FE097AA3A80DA2603A33138DE543 /* PBXTargetDependency */, - D064D180D7F923F17DAFCAA92AB41F84 /* PBXTargetDependency */, + F73743FB0482539B50C0127AAB9A6FC5 /* PBXTargetDependency */, + 6A9400F0EC45681DD223AD35E9CDDC5D /* PBXTargetDependency */, ); name = SmartDeviceLink; productName = SmartDeviceLink; - productReference = 22DAC079C1CE51D75F9F7BEFD7B1A840 /* SmartDeviceLink.framework */; + productReference = 012CE07CE00E36054DA038C75909F04A /* SmartDeviceLink.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0930; - LastUpgradeCheck = 0930; + LastSwiftUpdateCheck = 1100; + LastUpgradeCheck = 1100; }; - buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, + Base, + de, + es, + fr, + ja, + "zh-Hans", ); - mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = 9C15808B654D772B81B471949702CF7D /* Products */; + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = DD304B7CA51DC6D1CDE0F21CD545A9F1 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 3E2F6F6EDD252B198A8442650E36D865 /* BiSON */, - 26B19BB60F7CAAE61519DDA79A8D437B /* Pods-MobileWeather */, - BE3804893E5B3C73DADA6122238B017D /* SmartDeviceLink */, - A3E9B5FE1F97D734A27EB5CC50CC9D46 /* SmartDeviceLink-SmartDeviceLink */, + 3BAB8E4F4ED1E843F9C863ADE37B95B5 /* BiSON */, + 3E4681F4DA28159D4B2A602AFCC94AFF /* Pods-MobileWeather */, + D80456DDA93CD634453A682E14808519 /* SmartDeviceLink */, + 3D5C8508F5D7F6E6DD86E88C9CF9F8F4 /* SmartDeviceLink-SmartDeviceLink */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 3914FAD7C053E6DACB2CB577E92D51FD /* Resources */ = { + 45A6443D7E3CE460FACBC4943AAA3286 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 173A65311019663622CC26C99029C75B /* SDLAssets.xcassets in Resources */, - 7CAE7568850D1AA81715A2EF9F9815AB /* SDLLockScreen.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 417C2AC1565611E683B737A0730C477E /* Resources */ = { + 74125B44A08712DA5C7E97D229D21B72 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - F031E5966EF2B48A72EDB2BAB660396B /* SmartDeviceLink.bundle in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E03FEC8C7B952E3BF6875003BFACF4CA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 06CF5C974D40D1CAE5DA0BD8B6BEDA1A /* SmartDeviceLink.bundle in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F1EC2EA1EFEAE79FA119FDA1F224AF36 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CC65A5F101469227FED175DA7A220E03 /* SDLAssets.xcassets in Resources */, + 5C2BC01A4218E85A37E7980742B3D0E7 /* SDLLockScreen.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 51E9C69D0D7BBFA3E3A429005CC045F2 /* Sources */ = { + 792BD0F9B9A50172DA8479D077F2AC48 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 04867FEAFBAA4F32FDEE6D4D145C1B19 /* CGPoint_Util.m in Sources */, + 61622F162E170CCC574404D22E2DF210 /* CVPixelBufferRef+SDLUtil.m in Sources */, + 9B53BF4496D9FBFEB94AC0F5A27DD92F /* EAAccessory+SDLProtocols.m in Sources */, + 4F6EC3B01C68F0C98C207FFE03CE1318 /* EAAccessoryManager+SDLProtocols.m in Sources */, + 4FCE0088480192BE0F5AD6E1F62569C1 /* NSBundle+SDLBundle.m in Sources */, + 5C0C633DD0A3D67F0763146E88F96668 /* NSMapTable+Subscripting.m in Sources */, + 96D889E335AC9CFF1639A13B0BF18736 /* NSMutableArray+Safe.m in Sources */, + 5789D88EC2C3F5D751FB5B6579DD2BA8 /* NSMutableDictionary+SafeRemove.m in Sources */, + 4E42B5A60D7D15B0A6D56BF106E0DF6C /* NSMutableDictionary+Store.m in Sources */, + 6965ACD0E911E9BD96D98B7BBF6999D2 /* SDLAddCommand.m in Sources */, + 252F2EB3219E3AA3C08C5A57AA3B4B34 /* SDLAddCommandResponse.m in Sources */, + 10B7FA44559708E235A4D2429B1DD44C /* SDLAddSubMenu.m in Sources */, + 1BA2F03BE97087A041FE88AEE1781741 /* SDLAddSubMenuResponse.m in Sources */, + E081B77445962FADA85C08A8E6FEA338 /* SDLAirbagStatus.m in Sources */, + 247BCA2300E405F276470156679EA6E5 /* SDLAlert.m in Sources */, + 4CCF6B5645070AD44CBC65C932FACE82 /* SDLAlertManeuver.m in Sources */, + D96DDD8B9CA7EA5E0BAA7811256DD2D6 /* SDLAlertManeuverResponse.m in Sources */, + 68B1EF92CDDDAE01715C7BE396C2F1A9 /* SDLAlertResponse.m in Sources */, + 1CF92ED9901B6CC836F3981EFADF0EAE /* SDLAmbientLightStatus.m in Sources */, + 6BAED78EC69507553115F18851E48139 /* SDLAppHMIType.m in Sources */, + 26E5E0310598C29F8DDE94067A2958CB /* SDLAppInfo.m in Sources */, + 02E615FEAD3D67B70BD9E50488658C20 /* SDLAppInterfaceUnregisteredReason.m in Sources */, + F1FEB31C5C7A2C466F936C8CEAD401DD /* SDLAppServiceCapability.m in Sources */, + 24801F1525B3F26C7DE78E9D6F1EC07C /* SDLAppServiceData.m in Sources */, + F8C787819D63B7D4622645AAAB479314 /* SDLAppServiceManifest.m in Sources */, + B7666AC64BE2566C73733D5E4218946D /* SDLAppServiceRecord.m in Sources */, + 96A470701A4EB6AB6BF58852B32BC224 /* SDLAppServicesCapabilities.m in Sources */, + 615F5B49FC792C5089E5C9F8FEDA7EC9 /* SDLAppServiceType.m in Sources */, + 98D8C81B899984A0E7968B41F0F0031D /* SDLArtwork.m in Sources */, + 584B521B4CD67564DD2EAEA58D0741AD /* SDLAsynchronousOperation.m in Sources */, + FD4B9DEB7C0B8B83E8BB18B89BC2589E /* SDLAsynchronousRPCOperation.m in Sources */, + 4146591FBD90FC641348E6736882B2E5 /* SDLAsynchronousRPCRequestOperation.m in Sources */, + E144979B7797BD3CC98DC251768C9DC2 /* SDLAudioControlCapabilities.m in Sources */, + 8472EC40CE62517B318FA0D8BEE85BED /* SDLAudioControlData.m in Sources */, + 27F0E023B8465A23F6EADAEFD3386A66 /* SDLAudioFile.m in Sources */, + 62541828E1ED8584171F55DD3CF610D8 /* SDLAudioPassThruCapabilities.m in Sources */, + ECF14494FD79560B8425DC6C914A0443 /* SDLAudioStreamingIndicator.m in Sources */, + 0BD5D8A58EE45EC6BAB24293E3FEA017 /* SDLAudioStreamingState.m in Sources */, + 66EFE45CF4E1A18BA9351BE5D23B4AE5 /* SDLAudioStreamManager.m in Sources */, + A75998CF4F504D34746CEDA36C622C0E /* SDLAudioType.m in Sources */, + 2DD3D1CD40C2BBC2A0781547C6922088 /* SDLBackgroundTaskManager.m in Sources */, + 6B6C4354D06CE6C89C8326CEF5DEC82C /* SDLBeltStatus.m in Sources */, + D86EFCCFCE0D86525E9DDB7949962ACD /* SDLBitsPerSample.m in Sources */, + AFA866B8EAF18418E65247BAE7E556E7 /* SDLBodyInformation.m in Sources */, + F83A6CB1994098C4B58D47D636F75951 /* SDLButtonCapabilities.m in Sources */, + FF9013FBD59D4DB3DA6F80750DC9C3FA /* SDLButtonEventMode.m in Sources */, + 9FA55423485F9631453E7AB46E9C4089 /* SDLButtonName.m in Sources */, + A55F2D47BEE40D7772843861B42840DC /* SDLButtonPress.m in Sources */, + 61EFCEEB040AC3FA357021A8C021BFDB /* SDLButtonPressMode.m in Sources */, + 19835AEE7EA809F00EE8C6FA4A1F1304 /* SDLButtonPressResponse.m in Sources */, + 528B18A7832F83E491FC2CE80FB6670B /* SDLCacheFileManager.m in Sources */, + 47367F64A363C61D250A3468085643BD /* SDLCancelInteraction.m in Sources */, + 07B6661A4C2C025E3467589D6971E4DB /* SDLCancelInteractionResponse.m in Sources */, + 682621E46D4F78FA33B4AE15672E7795 /* SDLCarModeStatus.m in Sources */, + F9EBD1E23154F9D743AB6BA7CE13B787 /* SDLCarWindow.m in Sources */, + 8AC6D618D2B7B9D4C8336DCE6D260BD2 /* SDLCarWindowViewController.m in Sources */, + 1ABF5FF95BD4B3072309D0302C023D69 /* SDLChangeRegistration.m in Sources */, + 8BE60469ACDDAE2C4D3125B9CC07C1C9 /* SDLChangeRegistrationResponse.m in Sources */, + D6B423A9B6701091982E34CA244F9A0E /* SDLCharacterSet.m in Sources */, + C49A60B1AE8BD2253AA0CFB78AED841C /* SDLCheckChoiceVROptionalOperation.m in Sources */, + CF5AB47D4857BD7D5D1BC6287E751617 /* SDLChoice.m in Sources */, + D14E04DA2DA7178B5A6B389E296D4DC6 /* SDLChoiceCell.m in Sources */, + 70645ECC9769D5C102088085D044489C /* SDLChoiceSet.m in Sources */, + AE475D883F32EB2142B5EA25F969B6C1 /* SDLChoiceSetManager.m in Sources */, + 9284A3475A6E66F94C10D23DFD34B2E6 /* SDLClimateControlCapabilities.m in Sources */, + 4E6DF2C01963631E37CB8DE7C06AFC7B /* SDLClimateControlData.m in Sources */, + 2A9FE21B0BA859AED5280902B130A9ED /* SDLCloseApplication.m in Sources */, + 770D17FE53CB1E2885FE07DF770AA9B6 /* SDLCloseApplicationResponse.m in Sources */, + EA1674D4751D7F85F5D79F9DBF218E8C /* SDLCloudAppProperties.m in Sources */, + 3ABE3D33FBFE8B497368ADC4CF2DB3C6 /* SDLClusterModeStatus.m in Sources */, + FB5714ED15412CCCECA24EE3A2BA4886 /* SDLCompassDirection.m in Sources */, + ABEFEBA9C5DF91EC41F22DC9994A35FB /* SDLComponentVolumeStatus.m in Sources */, + E9783EF1C9A4FEBF1663C195E052DFFA /* SDLConfiguration.m in Sources */, + 661388FE2DB8C7B278CC3595E6F7B8A9 /* SDLControlFramePayloadAudioStartServiceAck.m in Sources */, + 994A5BCDA5C0EC5C5712514EBCFE024D /* SDLControlFramePayloadConstants.m in Sources */, + 8003E563EBF25F8D6C8BF11084650CED /* SDLControlFramePayloadEndService.m in Sources */, + 09CB3258A7C0449C98FC1A8FFCBD7E8B /* SDLControlFramePayloadNak.m in Sources */, + 82885DBB8D8EB8C4A666083AF5A1B140 /* SDLControlFramePayloadRegisterSecondaryTransportNak.m in Sources */, + 56F95DBFCAF964065E83931B5DAAE65E /* SDLControlFramePayloadRPCStartService.m in Sources */, + 18A04DAC7FB0A146DAC40573D200166B /* SDLControlFramePayloadRPCStartServiceAck.m in Sources */, + 4031C08AF41EB5717E50F252EB9619DE /* SDLControlFramePayloadTransportEventUpdate.m in Sources */, + 92ADA69AC48C7B62950700FD91DE0207 /* SDLControlFramePayloadVideoStartService.m in Sources */, + 158A038BFD11A6E0BC5A6E687F9E3647 /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */, + FA63B81F435E767F24EA31CA32A38952 /* SDLCreateInteractionChoiceSet.m in Sources */, + 20DAB1C92EC44DFEFEF56D51198C572D /* SDLCreateInteractionChoiceSetResponse.m in Sources */, + 1F84AE9ABE9E1282B0FABD9A18DE176B /* SDLCreateWindow.m in Sources */, + 67DD2F6C2C1B752CD9325DED259FEE1B /* SDLCreateWindowResponse.m in Sources */, + 722D3B085A292F3B1F54D195F6374EA5 /* SDLDateTime.m in Sources */, + 4E3A3B4BD619CC83FB17F5C37AF54790 /* SDLDefrostZone.m in Sources */, + B67E53A87562D448A2B0B22F350200C9 /* SDLDeleteChoicesOperation.m in Sources */, + BCCE283A6F1B81EEE8ED8D78E1AFB93C /* SDLDeleteCommand.m in Sources */, + 48533795DE37FD01F7C341BAD8E9F1A6 /* SDLDeleteCommandResponse.m in Sources */, + 21F4851D28775B178740FCDD77840B46 /* SDLDeleteFile.m in Sources */, + 945C1D3E2B5E534A1DCBB20F9207C238 /* SDLDeleteFileOperation.m in Sources */, + DF507767E93AFB36A70ED75AFF3D7074 /* SDLDeleteFileResponse.m in Sources */, + 3E9C0BA00FE324B6F5A23D5EB73376A4 /* SDLDeleteInteractionChoiceSet.m in Sources */, + C768AE4F1F770E7734CD8CC4B8A23306 /* SDLDeleteInteractionChoiceSetResponse.m in Sources */, + 33FCDDA1CB1F598D1C6207348791564D /* SDLDeleteSubMenu.m in Sources */, + 5C369D256AF7DC378B86FA8474FCDA3B /* SDLDeleteSubMenuResponse.m in Sources */, + 9EADD154CDB96A0D1B3E6E5382EC6E74 /* SDLDeleteWindow.m in Sources */, + DC7BA875C9FF947F0B1FBA4177C6F093 /* SDLDeleteWindowResponse.m in Sources */, + B0FDBE349EAE1AB26C3EDCDECBFBDBFB /* SDLDeliveryMode.m in Sources */, + 3666461CD2659EB1F156A9ED4B635DD8 /* SDLDeviceInfo.m in Sources */, + 9F2F8E54F7ABE7EB152CF5017ED25735 /* SDLDeviceLevelStatus.m in Sources */, + 6C0DD486593A4C4E141651525DA3E0B4 /* SDLDeviceStatus.m in Sources */, + CFCF4FDADFD7796F5BEAF925B79BEBAA /* SDLDiagnosticMessage.m in Sources */, + A4A2DF6197C7023E874BE6BF12317FE5 /* SDLDiagnosticMessageResponse.m in Sources */, + 401E5019769E747A0D6447BE8A3EAE13 /* SDLDialNumber.m in Sources */, + 63917E3E16077B84F94481FEEE4EF4FA /* SDLDialNumberResponse.m in Sources */, + 1D3DFC81393C32B76E87A25331260E3D /* SDLDIDResult.m in Sources */, + D112A18A400F5F4553BB42CA33F9AD14 /* SDLDimension.m in Sources */, + 59A56DDBA228D55C3134BD240398EED9 /* SDLDirection.m in Sources */, + E24DEEB6C2CD227A7D65A2670DB65D92 /* SDLDisplayCapabilities.m in Sources */, + FC8ED395A93A30E8199D7647E28C52D9 /* SDLDisplayCapability.m in Sources */, + 69BC1D80B84B7F1707FED6EDB7A50848 /* SDLDisplayMode.m in Sources */, + 364A7DB60D73F1034DBF45748AF68B26 /* SDLDisplayType.m in Sources */, + 90C967F20ED1D42E7E4EF18EBCE60915 /* SDLDistanceUnit.m in Sources */, + F1DD1651F7D575FF5C044437AA4FED30 /* SDLDriverDistractionState.m in Sources */, + 371E5AD456E767CBEB739FBFA55BE545 /* SDLDynamicMenuUpdateAlgorithm.m in Sources */, + 89F186632F6D84F43B5C85887FB6BF32 /* SDLDynamicMenuUpdateRunScore.m in Sources */, + F3383B633BE898CB9A98120AC1D7D7E7 /* SDLECallConfirmationStatus.m in Sources */, + 9F921520417BF771C9E3891A5EF5430D /* SDLECallInfo.m in Sources */, + CD925B345A3E54E75A88CBDC423BCC37 /* SDLElectronicParkBrakeStatus.m in Sources */, + F256A192BBBE3C98C369D2375D6EB1E8 /* SDLEmergencyEvent.m in Sources */, + 554E100F0671184D9B15CC7FFEF7C9D9 /* SDLEmergencyEventType.m in Sources */, + 342A1FB599F25F3A131C10A29A175FA8 /* SDLEncodedSyncPData.m in Sources */, + 44B209A527A69871374E1E156CFB0899 /* SDLEncodedSyncPDataResponse.m in Sources */, + B49E4BAB49D46EA13D6E48EAA4CDF8B9 /* SDLEncryptionConfiguration.m in Sources */, + 43AE76A59C4B8CBA13DF103BCCE5CBBD /* SDLEncryptionLifecycleManager.m in Sources */, + C9C7D39F1CA59D3F1BA74F9F4C1A4E8E /* SDLEncryptionManagerConstants.m in Sources */, + 1C8C72AEDD049473754C1840C1174517 /* SDLEndAudioPassThru.m in Sources */, + A98D7D891EBE12AE00ABB86C93553536 /* SDLEndAudioPassThruResponse.m in Sources */, + D3632770E0BF2D28B2213E1AE13F8C85 /* SDLEnum.m in Sources */, + 184B5F2AB049F7AEACB2B4E425EF9DA2 /* SDLEqualizerSettings.m in Sources */, + 260EDB6847E1D91E446BD87705E9889D /* SDLError.m in Sources */, + 035191FB5FFFEEABB361B4A406A43A41 /* SDLFile.m in Sources */, + C0480F3D520ED0985E5BD3D021629BBC /* SDLFileManager.m in Sources */, + 84540A4EDD1929D0EA78BAFA88717E6E /* SDLFileManagerConfiguration.m in Sources */, + 012F6AE0D9162FA9149FB63AA537BF0C /* SDLFileType.m in Sources */, + 0E4D84974346309363F47C9BC13F891F /* SDLFileWrapper.m in Sources */, + 491D694C8F0A8892857BD74CADEB69A0 /* SDLFocusableItemLocator.m in Sources */, + 70E35DA4DAB10B2117EF821AA552390E /* SDLFuelCutoffStatus.m in Sources */, + 8C03788689B6BFF34AA7FDE462B5E83F /* SDLFuelRange.m in Sources */, + 0DEB36187DADB983909A6D14D84906B8 /* SDLFuelType.m in Sources */, + 5632263F62FB69A40803CE6C3D995709 /* SDLFunctionID.m in Sources */, + 67D46AD5B6E35CB62DA133B5B348FA24 /* SDLGenericResponse.m in Sources */, + C675EC6DE3912F5B5514656C3C6A5C44 /* SDLGetAppServiceData.m in Sources */, + 9227D349F178FA9A6CB03E7C9D7371D7 /* SDLGetAppServiceDataResponse.m in Sources */, + 900DA1DA0A234DAD380424C769E4DEB4 /* SDLGetCloudAppProperties.m in Sources */, + E1152B7BAE15B01DBAA1C1F7896402E6 /* SDLGetCloudAppPropertiesResponse.m in Sources */, + C71B0B80E85DDF04457ED4A157EC63BE /* SDLGetDTCs.m in Sources */, + 6A32EE1E98F4B89DC22FF426ED90E128 /* SDLGetDTCsResponse.m in Sources */, + 2BE1E8F5E2507C4C2E16D826F74B4DDA /* SDLGetFile.m in Sources */, + 785A0499CCC19692E52D12A856D8A998 /* SDLGetFileResponse.m in Sources */, + 3ABFC40D5B2E13194B0D5B2EBA25822E /* SDLGetInteriorVehicleData.m in Sources */, + C4720ECDF1EB5D70742BBA8C419E6BEE /* SDLGetInteriorVehicleDataConsent.m in Sources */, + D613164BA0BA84926A93B0247D7A188E /* SDLGetInteriorVehicleDataConsentResponse.m in Sources */, + 841D7336AA726A431DA23D4AE4B74B0C /* SDLGetInteriorVehicleDataResponse.m in Sources */, + 8142B72C40C42732642DFE6C9E248FD4 /* SDLGetSystemCapability.m in Sources */, + 75B5CF174677B662157EE0E564B16CA9 /* SDLGetSystemCapabilityResponse.m in Sources */, + A502C2D1CF7CD300D4DD57DAFB83957E /* SDLGetVehicleData.m in Sources */, + 8927C69D5DD6678A506F11A6E5004CA4 /* SDLGetVehicleDataResponse.m in Sources */, + 2EA6C02C5692FEF6D1CE4C340FB9595E /* SDLGetWayPoints.m in Sources */, + F47674D7A51174A7C32C4BB40B703B55 /* SDLGetWayPointsResponse.m in Sources */, + CAC102566CD54361F5086A273A706B8A /* SDLGlobalProperty.m in Sources */, + A28A71C756E62973A2AA45EFC9282570 /* SDLGlobals.m in Sources */, + 8915858705EA72AA41C1956BB876A8A1 /* SDLGPSData.m in Sources */, + 3F4FCFC6CA60801D30BF902812F1CC08 /* SDLGrid.m in Sources */, + 6A39551CE8FE95E61A13AC6303021CF1 /* SDLH264VideoEncoder.m in Sources */, + D9FA90B43920243882EBC7A5AB83B874 /* SDLHapticRect.m in Sources */, + 2FAFFC1A43E38BE0952DD64BE3EFBCD7 /* SDLHeadLampStatus.m in Sources */, + 93BD94B217E901E1EF481553053C6098 /* SDLHexUtility.m in Sources */, + 2901022E187FA529C011EE5A8AEDA672 /* SDLHMICapabilities.m in Sources */, + A6A0C5D8FC9C6B9F16298EDAF864E40F /* SDLHMILevel.m in Sources */, + FC78B70C9F799ACA864846610091A7EC /* SDLHMIPermissions.m in Sources */, + AD6F7731154088DF04ABF7B114C3E3D5 /* SDLHMISettingsControlCapabilities.m in Sources */, + 5E3F02846B693F10D67988B2311C5637 /* SDLHMISettingsControlData.m in Sources */, + CBF7DF2B7DF0FB5F45F67AACFA74F66D /* SDLHMIZoneCapabilities.m in Sources */, + A2E76D7B29F39B1C4109492C9D134EFD /* SDLHybridAppPreference.m in Sources */, + DA31C910CCC271F4076D1BBECE2CB207 /* SDLIAPConstants.m in Sources */, + 53E093C1DC6055913CCCC71F391E9A8B /* SDLIAPControlSession.m in Sources */, + 01DFEF5F29A72D78E26203AC58138181 /* SDLIAPDataSession.m in Sources */, + BC9550536464FA9F75A2A288BE8822DD /* SDLIAPSession.m in Sources */, + 3D218CB9BCB99B81F0160E9EC92DA02E /* SDLIAPTransport.m in Sources */, + 88055DB6523505C026A7186A042B0A19 /* SDLIconArchiveFile.m in Sources */, + 5E02140A9157AA4C9BEE6A9A044E4DC1 /* SDLIgnitionStableStatus.m in Sources */, + 862FAFCD13F05A7A30DA725EA4BD11B2 /* SDLIgnitionStatus.m in Sources */, + DE5388F35C48BCE6C7CDC9E3B72E900E /* SDLImage.m in Sources */, + A71EA2A436D225D95F38B7388412A08A /* SDLImageField+ScreenManagerExtensions.m in Sources */, + 5B8FDF2A72CAB13B7848126ED89D4A99 /* SDLImageField.m in Sources */, + 48318B613184DDE2158BB0319C651664 /* SDLImageFieldName.m in Sources */, + 4FC54723A213B4601E377D642C8B7A3A /* SDLImageResolution.m in Sources */, + 6E9BE8E12179D20D279AB45E03DE90A5 /* SDLImageType.m in Sources */, + 045750228497D4A9200D3F5B8E4364CD /* SDLInteractionMode.m in Sources */, + 58E0719523FFA83A09D39EF3F58F6736 /* SDLKeyboardEvent.m in Sources */, + 83A68ADEDA90E33CC63142A22912ABF9 /* SDLKeyboardLayout.m in Sources */, + 966C2B23020D23A8D78F9953BF04589D /* SDLKeyboardProperties.m in Sources */, + 9CB6CCA60A7BB877BEA0851591D86AB9 /* SDLKeypressMode.m in Sources */, + BD93F389EA6C6D84A7CE4D6C4F4D49C3 /* SDLLanguage.m in Sources */, + 4FDC415F408F842E6797D412B962A94E /* SDLLayoutMode.m in Sources */, + CC9E43F7F975E29D4CEFADB3CF92530B /* SDLLifecycleConfiguration.m in Sources */, + 28F0D6F6BB67A870D663D51FC0CE0746 /* SDLLifecycleConfigurationUpdate.m in Sources */, + C09A7EF3511E4D1DAA83BE9F2C58589F /* SDLLifecycleManager.m in Sources */, + 6E5B5A9D4E5A1A3D974242BA837F34F0 /* SDLLifecycleMobileHMIStateHandler.m in Sources */, + 4F85738975C802A74B14297825DFB4CB /* SDLLifecycleProtocolHandler.m in Sources */, + 39FE38C28A881AD8F5D28B4AF7F585D7 /* SDLLifecycleRPCAdapter.m in Sources */, + 52B914BB3F72F83BBA465716FD859115 /* SDLLifecycleSyncPDataHandler.m in Sources */, + 580AE776FEBAFD0A7408EBC296789908 /* SDLLifecycleSystemRequestHandler.m in Sources */, + 13FB2D6E2ACF6617CF28D7BC8F966E73 /* SDLLightCapabilities.m in Sources */, + A13DA9493AD1940DF8E4F7C2929B710E /* SDLLightControlCapabilities.m in Sources */, + 2C70ADEC205EC64A4DD444D3EE158409 /* SDLLightControlData.m in Sources */, + C6C7B6FDA272B371411CA5B0011F2A89 /* SDLLightName.m in Sources */, + 828C58703B8028751F490E8A6AA7DEE5 /* SDLLightState.m in Sources */, + BC24B3B714C06A50BA2C14B52A6F7E83 /* SDLLightStatus.m in Sources */, + 7F5CE8EAAFC658D1733DC0D80A624DE1 /* SDLListFiles.m in Sources */, + 962D1254984FEEA395E1C5D203BAE7AE /* SDLListFilesOperation.m in Sources */, + A089C16C74635B52EBC65729AF6EBBAC /* SDLListFilesResponse.m in Sources */, + A8C832F5D8C9FFBC15B909B281A13441 /* SDLLocationCoordinate.m in Sources */, + 0D455F85C037AA10A41AB17B5E73F7D9 /* SDLLocationDetails.m in Sources */, + AC2DFB15873E4FCDEC002550ECDB8EB5 /* SDLLockScreenConfiguration.m in Sources */, + A1AF3C95FF46B13F93DA0EDFF0C63FC0 /* SDLLockScreenManager.m in Sources */, + 69A700328FFCFD1C1E2E9FF0F0529DEC /* SDLLockScreenPresenter.m in Sources */, + DB2585B9615080A2C1A8A0D5069EBD6D /* SDLLockScreenRootViewController.m in Sources */, + 941FB36D28F8570C928318E6E2B285E6 /* SDLLockScreenStatus.m in Sources */, + F5739CA941079DCD8B42FAF36B4E99F8 /* SDLLockScreenStatusManager.m in Sources */, + 16ACD830584EB36BBCD51EE70C466504 /* SDLLockScreenViewController.m in Sources */, + 7B24FA06A268C3DA54C496C28B13E25A /* SDLLog.swift in Sources */, + 7E667B3B3745C84FA7FA7E7A83CDDDED /* SDLLogConfiguration.m in Sources */, + 9A3BC4EF0F8485DA14F489A5336420B4 /* SDLLogFileModule.m in Sources */, + 741A73FF97C6C57457B593472329EBF1 /* SDLLogFileModuleMap.m in Sources */, + 1815A9C8A4247E4E7613B7EF15930B09 /* SDLLogFilter.m in Sources */, + 1AF57B3641E4C70E402DC7D0D99D10B3 /* SDLLogManager.m in Sources */, + 2F19F6E35794A71E80EAE7F89B4AB5AB /* SDLLogModel.m in Sources */, + D9C1F69D50AFCD76135A06BBA8B9CC68 /* SDLLogTargetAppleSystemLog.m in Sources */, + 5583694D10586B8BE311BE8C17491438 /* SDLLogTargetFile.m in Sources */, + FFDC6E163ACB77CBE6819E9860BD4F22 /* SDLLogTargetOSLog.m in Sources */, + 9CC23329ACF6AC45A3CD5927CBCCDB70 /* SDLMaintenanceModeStatus.m in Sources */, + 386E9EFC772B289246945F8BE7241D87 /* SDLManager.m in Sources */, + E5060579BBE45E03FA927A5B6CCF64B5 /* SDLMassageCushion.m in Sources */, + 84C5619937EB87E33EFD6E14666690ED /* SDLMassageCushionFirmness.m in Sources */, + 38D106DD3F9A61296105A0BBFA74A793 /* SDLMassageMode.m in Sources */, + D4BD6166FE38A9982C6D09ECE4E8E62C /* SDLMassageModeData.m in Sources */, + C2E03A3D6572E22C87D81A604D47992F /* SDLMassageZone.m in Sources */, + 2FD7CF9D67F1E9A67396EBCCCE51F42D /* SDLMediaClockFormat.m in Sources */, + A22ECF3CB1A288D78157AC42FCBB68C3 /* SDLMediaServiceData.m in Sources */, + C2F4478D9CA02EA33BE8A7B5AF5BA595 /* SDLMediaServiceManifest.m in Sources */, + A231ECE70CC02B9F1B199A860B67E5CA /* SDLMediaType.m in Sources */, + F326E244E8C563D5B3BD41A56D20D18A /* SDLMenuCell.m in Sources */, + A6A4551713557B3612CB818CA36D2180 /* SDLMenuConfiguration.m in Sources */, + 30E5E0206E793A637F06DE630A981A59 /* SDLMenuLayout.m in Sources */, + 468E23F01910C00372871E321677D708 /* SDLMenuManager.m in Sources */, + 7796527893D2EBB3895B55EF97A3800F /* SDLMenuParams.m in Sources */, + 0E670FBA97E4397EE7B3E77471F4D8BD /* SDLMetadataTags.m in Sources */, + 85B6CE567D6BC650645D3BC8D7503A89 /* SDLMetadataType.m in Sources */, + F503C527CD5501588ED3673D9676BABD /* SDLModuleData.m in Sources */, + 9388E820E8565F9117CDF46D2C2C107B /* SDLModuleInfo.m in Sources */, + 6B57D1A412547788055E9DA7140CFC2B /* SDLModuleType.m in Sources */, + 1B0890B8A98812BF360C72316B4CDA04 /* SDLMsgVersion.m in Sources */, + B870F919C9CB4A6A1BB503EE28D958B0 /* SDLMutableDataQueue.m in Sources */, + A07C3309D375FBFFB0B9076DE461F26C /* SDLMyKey.m in Sources */, + 455B22814822C82236B23D1CC8CAFC57 /* SDLNavigationAction.m in Sources */, + 5F3CB89390876085191CC0A3D249692A /* SDLNavigationCapability.m in Sources */, + 77C1792F987AC3B2A678A95E3BD85C32 /* SDLNavigationInstruction.m in Sources */, + 9EB265F8BCAA7305BB4F1A09C414F989 /* SDLNavigationJunction.m in Sources */, + 14861AC8930B7F124EB641618C8EC24B /* SDLNavigationServiceData.m in Sources */, + 9907162460264A1E3245E22EAE049630 /* SDLNavigationServiceManifest.m in Sources */, + E329AF57A57A5BF7BD973D6F447B9CB3 /* SDLNotificationConstants.m in Sources */, + BBFEBA37199DB7C2A7C50B66D41C769D /* SDLNotificationDispatcher.m in Sources */, + 6546CB8FB941FA6521D2D53F4423E0A0 /* SDLOasisAddress.m in Sources */, + 51E5FDE48BA94ADB52A8A4C7D2E3CB3E /* SDLObjectWithPriority.m in Sources */, + F54CBAF56B9B678D042AC19DD0255CA7 /* SDLOnAppInterfaceUnregistered.m in Sources */, + 17F93BD73F0A59E175D277959F26E49E /* SDLOnAppServiceData.m in Sources */, + 732010BF7C56D3F7501939DEF04CDB01 /* SDLOnAudioPassThru.m in Sources */, + 702B1574D8EBB3CECE5EE20403899AD4 /* SDLOnButtonEvent.m in Sources */, + 5A48DFAAD820439C6DD283B25B1B6699 /* SDLOnButtonPress.m in Sources */, + 09718516EA3E6A7A5CFC06F350845401 /* SDLOnCommand.m in Sources */, + F581452AB8DD619BF9DEFCB7DAD3B495 /* SDLOnDriverDistraction.m in Sources */, + B15FEA9D1CB41910C878C87E66276711 /* SDLOnEncodedSyncPData.m in Sources */, + 0C4CAB319C0DD76BC32BE6C5EBB1B41C /* SDLOnHashChange.m in Sources */, + 2191D6A77C470AA4A0164CB8E52CC83D /* SDLOnHMIStatus.m in Sources */, + DFE6BEA12EC622B3B238EE8C4009FB56 /* SDLOnInteriorVehicleData.m in Sources */, + 51028908A8086942864F571CBEC493D6 /* SDLOnKeyboardInput.m in Sources */, + BDC2CD1A1E888B02795ECECDAC742755 /* SDLOnLanguageChange.m in Sources */, + F438AFD76D78B6660ACDA6441A358A2B /* SDLOnLockScreenStatus.m in Sources */, + B8C8ACFC662321DA0803C3377DE8A738 /* SDLOnPermissionsChange.m in Sources */, + 4A1F895472135B6EDD8F124EC7FBD79C /* SDLOnRCStatus.m in Sources */, + 9AC6194F046D6E9C2F0E69C0D8C0AFE3 /* SDLOnSyncPData.m in Sources */, + AC4E1A3C06C91EA16765C11A4F70A766 /* SDLOnSystemCapabilityUpdated.m in Sources */, + 486D0104F246B30FA7F8CED598B947F1 /* SDLOnSystemRequest.m in Sources */, + 5814A19214584FF711E27A0165DB70B8 /* SDLOnTBTClientState.m in Sources */, + 4D0CDF50A825C03A88E5F1D91B94FE14 /* SDLOnTouchEvent.m in Sources */, + 03DB16B1FFEB1C86E3BD993FE8734543 /* SDLOnVehicleData.m in Sources */, + 1FB5E6E796E7E74B7DE35289B91F3756 /* SDLOnWayPointChange.m in Sources */, + B28AD4EB609E426CFA05E5537497ECFF /* SDLParameterPermissions.m in Sources */, + 4AA196AC12C2887B2B7F3BF50D5D33F3 /* SDLPCMAudioConverter.m in Sources */, + 785AFB7110E873CBC9CD1D4D6EFA9FAE /* SDLPerformAppServiceInteraction.m in Sources */, + 46D8ED642B200A137512BB44D779E9AD /* SDLPerformAppServiceInteractionResponse.m in Sources */, + DEE7AD7F86B81A9BC1E2EE6C39A2FECC /* SDLPerformAudioPassThru.m in Sources */, + 631017B15D80B89745179561A7882711 /* SDLPerformAudioPassThruResponse.m in Sources */, + 616D6920637E804849E0373AD2174843 /* SDLPerformInteraction.m in Sources */, + 275BFC3C7C9C324194B6BB00671D2E13 /* SDLPerformInteractionResponse.m in Sources */, + 2F4FFEE16B3FD1784AB626573515DD35 /* SDLPermissionElement.m in Sources */, + 67F80DAB5A2C44767BBD1E0F87132790 /* SDLPermissionFilter.m in Sources */, + B4A8BF4B8F942574D50ECFF3AE010660 /* SDLPermissionItem.m in Sources */, + 0551A6C1A7387993229F74C2DA8DFED0 /* SDLPermissionManager.m in Sources */, + B59731E62C036C36E1BF3B02EC02732C /* SDLPermissionStatus.m in Sources */, + A242E5E367F30640A5FFC65D998FCE23 /* SDLPhoneCapability.m in Sources */, + 3947336D6D27AF2C2B8F484756012548 /* SDLPinchGesture.m in Sources */, + 8A6BB66B60FA045F1595512D6C0499B1 /* SDLPowerModeQualificationStatus.m in Sources */, + 3DC0D34F7A82505A73EAC836507FAF16 /* SDLPowerModeStatus.m in Sources */, + EC0E19F24C8F829BAAA5042EC6CEAE21 /* SDLPredefinedLayout.m in Sources */, + 7EF977C0D687F79EEBE5556F4B91C795 /* SDLPreloadChoicesOperation.m in Sources */, + B1D805EE1F0226E6C240401C8961BC06 /* SDLPrerecordedSpeech.m in Sources */, + 624FB9F57A65D99E279F7B7030CE8F2A /* SDLPresentChoiceSetOperation.m in Sources */, + C5E5880273DD3A08B4F5CDAAACD699F0 /* SDLPresentKeyboardOperation.m in Sources */, + 521E03E63F754E1A463AE59E6FC1A41C /* SDLPresetBankCapabilities.m in Sources */, + 5C6CEB2D9368DD956E8DFB71E7290E3C /* SDLPrimaryAudioSource.m in Sources */, + 5F380CC11226D4A05EC5A8276730B966 /* SDLPrioritizedObjectCollection.m in Sources */, + 5BCCF4D01B9C4C5DDDC66A187E1158C4 /* SDLPRNDL.m in Sources */, + D87AC2C573191F7995FD5F12D9A5CADC /* SDLProtocol.m in Sources */, + 60F49BAE1E585A348B04B8C10FE7876C /* SDLProtocolConstants.m in Sources */, + B7117F6EF2052C5043114C3520AB787F /* SDLProtocolHeader.m in Sources */, + C6410DF2F1430F4ED083AA68B0639407 /* SDLProtocolMessage.m in Sources */, + 92C3ABE638A331C03AD29E1AAF919E66 /* SDLProtocolMessageAssembler.m in Sources */, + AFDCD08E8A842643D3F79AA1A1F57C96 /* SDLProtocolMessageDisassembler.m in Sources */, + 69F72E41357AC14E6AEDFA5D29169648 /* SDLProtocolReceivedMessageRouter.m in Sources */, + B49B1F5D35ACBF61C28026831A527A2F /* SDLPublishAppService.m in Sources */, + 7F2C743C5E22D4B43E3C96718A287635 /* SDLPublishAppServiceResponse.m in Sources */, + 3C67F554D0D515E034A5C7E22838CB9B /* SDLPutFile.m in Sources */, + A92EB02A106C15DC9A3AE3BC10A6ADFF /* SDLPutFileResponse.m in Sources */, + F7A72542FEA16DBFC8895F49973CEE69 /* SDLRadioBand.m in Sources */, + A827485FDCFA229B69E2EC034F53E8C0 /* SDLRadioControlCapabilities.m in Sources */, + 6A77038D70724D42FBE36C660FA25984 /* SDLRadioControlData.m in Sources */, + 9C447D1F8CC18ED9C81322538C5D8745 /* SDLRadioState.m in Sources */, + 75E6C6F54EEA45DBB11CA4791C6541C4 /* SDLRAWH264Packetizer.m in Sources */, + 774AABC7C408007271B765CB49CE11B5 /* SDLRDSData.m in Sources */, + A7F8FAB0C96FD69FA1FC28ED30B2ECBB /* SDLReadDID.m in Sources */, + 018583F6E7B468815A4573F80262E82C /* SDLReadDIDResponse.m in Sources */, + 30532F9A11D1F1284F004B623EDDC92D /* SDLRectangle.m in Sources */, + 71886EF8686699A2B144C9FDB19500F0 /* SDLRegisterAppInterface.m in Sources */, + F7466745158C54756E4285345452BD39 /* SDLRegisterAppInterfaceResponse.m in Sources */, + 22EE85743201277158FD54ED1EFC1B31 /* SDLReleaseInteriorVehicleDataModule.m in Sources */, + 68F7A1B469E057D5D1704769522F3430 /* SDLReleaseInteriorVehicleDataModuleResponse.m in Sources */, + 6A99B6EF560D2A0736B874F45E8B1D06 /* SDLRemoteControlCapabilities.m in Sources */, + 4F8500F87E23C15D287C5DD2DECE8B4B /* SDLRequestType.m in Sources */, + 2B6CDC7B0101E699EFF3726D4E0388E4 /* SDLResetGlobalProperties.m in Sources */, + 23918DCD6B118E665408EF1F6E7FD543 /* SDLResetGlobalPropertiesResponse.m in Sources */, + 0357B14944269911EAAD982BCA3F4A66 /* SDLResponseDispatcher.m in Sources */, + C2F71EF0CA12DAA83E5D5FD76B4C9AE7 /* SDLResult.m in Sources */, + EA3B5A546245509630C45FF94EE0F01B /* SDLRGBColor.m in Sources */, + 52DDF42FFF38F3CE6B04BFCA44933A35 /* SDLRPCFunctionNames.m in Sources */, + 875A8146A25E141985609DF2203B794A /* SDLRPCMessage.m in Sources */, + 3E9AAB221B1FBCD6C5F6FDAF98BEDF7C /* SDLRPCMessageType.m in Sources */, + 6E3FD9310F03098F4243193E0FBFDE22 /* SDLRPCNotification.m in Sources */, + 72D0FE3256E463B80705508EA33D1904 /* SDLRPCNotificationNotification.m in Sources */, + 5755FB5601F8050337ED594D86F3CA0C /* SDLRPCParameterNames.m in Sources */, + 3F0496824DC5D461075A4069C03F939E /* SDLRPCPayload.m in Sources */, + 68F032CE30BD7CE0AE34E486D3284828 /* SDLRPCPermissionStatus.m in Sources */, + 7206EA4C3E70012194A19E7A57784E73 /* SDLRPCRequest.m in Sources */, + 968CCBFF41DD6AF7457D8CE38CB12715 /* SDLRPCRequestNotification.m in Sources */, + EF5F16A2D1A46F4EAA5E69F72AD45ED6 /* SDLRPCResponse.m in Sources */, + D2076457A9AD3DAD99153504CC3E2942 /* SDLRPCResponseNotification.m in Sources */, + 66DD4C2351A07491E98BD7CD80A6A7DC /* SDLRPCStruct.m in Sources */, + 705C280F5C64DD6D5151417E328EBD00 /* SDLRTPH264Packetizer.m in Sources */, + E70C0DD38EBA9D727D26A5D6D38E50CC /* SDLSamplingRate.m in Sources */, + F4531EDAE28E6B40E5897E5E50FBF9A2 /* SDLScreenManager.m in Sources */, + 040C6196B4B9154BCBFD11E9FAE0466D /* SDLScreenParams.m in Sources */, + 2985A53122A05128571159CFA1AD21D1 /* SDLScrollableMessage.m in Sources */, + 1514165F8C64FE072961FCC0853C48A1 /* SDLScrollableMessageResponse.m in Sources */, + 9D59CA4C3A29F154C87BF4F144F0304F /* SDLSeatControlCapabilities.m in Sources */, + A7659903549585DFAFEABD6E439FE12F /* SDLSeatControlData.m in Sources */, + F210B2382368AEBE9301E0EB34A26D6D /* SDLSeatLocation.m in Sources */, + FC2AA09F1FD2F926814EC569C07360FF /* SDLSeatLocationCapability.m in Sources */, + 3D8BB45F1239777FAD6FA461E204167A /* SDLSeatMemoryAction.m in Sources */, + 2620F0B28CBE552798F639DFC8ADF7A7 /* SDLSeatMemoryActionType.m in Sources */, + 44C7B81BAEBD57895AFB62013688DB25 /* SDLSecondaryTransportManager.m in Sources */, + 3F83A26390073BDF79CA24F02C401B74 /* SDLSendHapticData.m in Sources */, + B743DF2EB989526A9B7CA860793CC0EC /* SDLSendHapticDataResponse.m in Sources */, + 1E0B34809FC5E69B56D3EA6B2A1F6298 /* SDLSendLocation.m in Sources */, + 4008A1304DD99DB9C511DF3E470FC3D2 /* SDLSendLocationResponse.m in Sources */, + 37B8173E99F5A470A7FD8F67DE82E815 /* SDLSequentialRPCRequestOperation.m in Sources */, + BA2FDF7FB9614291894702D810997E58 /* SDLServiceUpdateReason.m in Sources */, + EC0E322A16F7612CAF6B035EC0C3EF99 /* SDLSetAppIcon.m in Sources */, + 877EEF9736AFC84910376C4956E2F72D /* SDLSetAppIconResponse.m in Sources */, + 36A7484512448011EF3F2C0A38672487 /* SDLSetCloudAppProperties.m in Sources */, + EE126905164C9734AC28DDFC63C52D4A /* SDLSetCloudAppPropertiesResponse.m in Sources */, + D17A65C54A8CA8E5F268634CB63E3A60 /* SDLSetDisplayLayout.m in Sources */, + 63D41CDF01DD88B980D593CCB9F42789 /* SDLSetDisplayLayoutResponse.m in Sources */, + BA0BFE367BFC3B4A7D3E2B5879C7F7B9 /* SDLSetGlobalProperties.m in Sources */, + 7EF3CC27A41E978150622B382F5DBBC1 /* SDLSetGlobalPropertiesResponse.m in Sources */, + 854A588B639BD42CC33822B7AEE5AEC3 /* SDLSetInteriorVehicleData.m in Sources */, + FFCADB158DBD81417BDF149A09C7C861 /* SDLSetInteriorVehicleDataResponse.m in Sources */, + 00CB17531475454F299A0A8C2D46C476 /* SDLSetMediaClockTimer.m in Sources */, + E45157D8F36A97F44996C299AFC261BF /* SDLSetMediaClockTimerResponse.m in Sources */, + 529E1292ED8DB847A829F4DB43CA5167 /* SDLShow.m in Sources */, + EEF6E7F741B89CE1B74279CDDD578B68 /* SDLShowAppMenu.m in Sources */, + 52A4C2B016A6EC2EFBB52FE9D6D75591 /* SDLShowAppMenuResponse.m in Sources */, + 77F8B1D0628B527B45BE658B3B293E2D /* SDLShowConstantTBT.m in Sources */, + F26364001CACD8039EE54E4E7BF8BEC8 /* SDLShowConstantTBTResponse.m in Sources */, + D2083CC54CCEC2FE484B31F105CEAA31 /* SDLShowResponse.m in Sources */, + 507614048885966692844A57CAB8F768 /* SDLSingleTireStatus.m in Sources */, + FC03DDA275EDF285D7C124C51A321A72 /* SDLSISData.m in Sources */, + ACC70E74E729688F72E6AD7FD4B43460 /* SDLSlider.m in Sources */, + 5384C2E17CD387967780AB2004FA1D02 /* SDLSliderResponse.m in Sources */, + 14C2FEF6C23E292C7F15E45015C72645 /* SDLSoftButton.m in Sources */, + 5F5C149F78091F0E90FDC1E306A9F0BB /* SDLSoftButtonCapabilities.m in Sources */, + FFE6AD5AE2B963DF76A98DD2119B858D /* SDLSoftButtonManager.m in Sources */, + A3D6E5343C5EBA76EB0F377AFA744A12 /* SDLSoftButtonObject.m in Sources */, + 1B5C00162799C6FCF2D19928932C85D5 /* SDLSoftButtonReplaceOperation.m in Sources */, + 2394A20ABF6920FF93BCE2BBA53462C5 /* SDLSoftButtonState.m in Sources */, + 497C10D19DE00429231009C559672879 /* SDLSoftButtonTransitionOperation.m in Sources */, + 801B9BEFA66C3145C817445D8AE5BA1F /* SDLSoftButtonType.m in Sources */, + 80E9854ADFCBD2E2B0D0C318C5896D89 /* SDLSpeak.m in Sources */, + 7BDB9F0C874B2B2DC0EDF0ACD35410DC /* SDLSpeakResponse.m in Sources */, + 1C89E481A5D7EF11BBBD00A7639D1CEE /* SDLSpeechCapabilities.m in Sources */, + 1782A870F0444CD170E723B94D9D9938 /* SDLStartTime.m in Sources */, + 95B5F07BEBB763878CE72E1B28008DA4 /* SDLStateMachine.m in Sources */, + 3A7F3063768B19D7796C73C2EA441D2C /* SDLStaticIconName.m in Sources */, + ACFF233B8E3A348018FF3E76F0D95FF4 /* SDLStationIDNumber.m in Sources */, + 17C52BC9B9BE5AA733DFC59948575010 /* SDLStreamingAudioLifecycleManager.m in Sources */, + F1BC8A93814012F7CDFB754643FA878B /* SDLStreamingMediaConfiguration.m in Sources */, + A00752000D6758411D62C24B0428BC3F /* SDLStreamingMediaManager.m in Sources */, + 348763461B039C50375433135292E6F8 /* SDLStreamingMediaManagerConstants.m in Sources */, + 016271ED126FCB8B88C223982FE04B7A /* SDLStreamingVideoLifecycleManager.m in Sources */, + 3B79D7FFB7B31333AB5B2EA58912DA0F /* SDLStreamingVideoScaleManager.m in Sources */, + C3897010E229BC2F8FAAA59CA978C9C3 /* SDLSubscribeButton.m in Sources */, + 0E3B22B9667D90B77024475A54B97B6A /* SDLSubscribeButtonManager.m in Sources */, + A72713FA7E24B3B7BD7207DCE5FD4446 /* SDLSubscribeButtonObserver.m in Sources */, + 3FF26779DAE684544CB75200EF942B03 /* SDLSubscribeButtonResponse.m in Sources */, + E66DB3C37E4973F7DDE47B53F4A1CED2 /* SDLSubscribeVehicleData.m in Sources */, + 817649F62E631491CB4D4AC78AD1F931 /* SDLSubscribeVehicleDataResponse.m in Sources */, + C1D98456C85367AA570A828DC98EFD8A /* SDLSubscribeWayPoints.m in Sources */, + 74DEDAE776C51EFDD5DB1136F7BEACE3 /* SDLSubscribeWayPointsResponse.m in Sources */, + CE0907AF29BE4C2529034A3529439E98 /* SDLSupportedSeat.m in Sources */, + BF50E3A299C323B4D578ED1A35281FB8 /* SDLSyncMsgVersion.m in Sources */, + 5387C9D45457C73F1FE2DEC29EA23BAC /* SDLSyncPData.m in Sources */, + F625647BF7E1785CD864DCDA9D21E7D6 /* SDLSyncPDataResponse.m in Sources */, + E0E6BA7F5D22191786EEF3537BC1616E /* SDLSystemAction.m in Sources */, + 0BBAEC4E7FDE7908CB2F92C7B294C4D8 /* SDLSystemCapability.m in Sources */, + 14696775CAFCCDDD4E89AF56DF5B4D81 /* SDLSystemCapabilityManager.m in Sources */, + 3B0D77042D0B05B201861684C71567FF /* SDLSystemCapabilityObserver.m in Sources */, + 96E61C55BA1EECD3A1E4775D8B3FD9B0 /* SDLSystemCapabilityType.m in Sources */, + 0BF4C3DD58C44DA1F4C0174DD975AA7F /* SDLSystemContext.m in Sources */, + FC5FE1F84697A3314FBD5A170442BC40 /* SDLSystemRequest.m in Sources */, + 286884B8ECBF5EBF98E40CDEA1432CBC /* SDLSystemRequestResponse.m in Sources */, + 3C7453895CF4AE78AFA1E2A6DB28F6B1 /* SDLTBTState.m in Sources */, + C08E8703CB3E2A985D9AF689F03A1E3A /* SDLTCPTransport.m in Sources */, + 61286289354C21684DCA0FB800FCB7E3 /* SDLTemperature.m in Sources */, + 1699B1DC3B210BB0EA3EC3477569179C /* SDLTemperatureUnit.m in Sources */, + 73AF02C61796BC9795EB99512699E5BA /* SDLTemplateColorScheme.m in Sources */, + 927C947F095CE2F08573FEBABE2EF00A /* SDLTemplateConfiguration.m in Sources */, + A1CB2DBE53FB15D96D2AEF47E2AA0B8F /* SDLTextAlignment.m in Sources */, + D80078A675B7A36DC01D242EFC0CD243 /* SDLTextAndGraphicManager.m in Sources */, + 3EB130E67D616532CECE546D5B9198F5 /* SDLTextField+ScreenManagerExtensions.m in Sources */, + 361298C811976BB148D53B2FD2C35863 /* SDLTextField.m in Sources */, + B90F0AC037A0C668401856BFB79D61C1 /* SDLTextFieldName.m in Sources */, + 851385917D7B75901BBEC54799544B16 /* SDLTimer.m in Sources */, + 51F564A4B2B0F3AD4D87627DC3996138 /* SDLTimerMode.m in Sources */, + 4118ED81086EC0AB6C067C913FF309EF /* SDLTireStatus.m in Sources */, + 6018282BC65CCED9D947B60ACB3549E6 /* SDLTouch.m in Sources */, + C56F66D9B8AD9294B028C7C5C2270AB0 /* SDLTouchCoord.m in Sources */, + F54ABA2F5DB667EFFD347157BB9FFD99 /* SDLTouchEvent.m in Sources */, + D5AFCC6EADD5C94029C13A88099C46E6 /* SDLTouchEventCapabilities.m in Sources */, + 5722E858FD960FDCE31C18D4FC174A03 /* SDLTouchManager.m in Sources */, + 704C9306EF48FE1BBAE20B7CAADE8FA8 /* SDLTouchType.m in Sources */, + 9CA1C5D540B6F8A9D15AE08E08F282A8 /* SDLTPMS.m in Sources */, + 68A1D017360BBBBC0074B9F8C38324D7 /* SDLTriggerSource.m in Sources */, + D0687F8DE9690C573C4C0446EE4F197C /* SDLTTSChunk.m in Sources */, + 5F34BFCB3F62497D394181D996499346 /* SDLTurn.m in Sources */, + 24529E6BF87EACE46A7B5EBD319B9CBE /* SDLTurnSignal.m in Sources */, + 7A10A582CE1C096717AD7336C1B7EBD4 /* SDLUnpublishAppService.m in Sources */, + F4007F4A5519CFDDF825860E24FBB59B /* SDLUnpublishAppServiceResponse.m in Sources */, + 361EA55F7977ACF8AFF73CCB49DD9002 /* SDLUnregisterAppInterface.m in Sources */, + 7B1E4523F92AFFECDEC08D8005987727 /* SDLUnregisterAppInterfaceResponse.m in Sources */, + 34DB843A171C44A34317D65BE3E173E8 /* SDLUnsubscribeButton.m in Sources */, + 31F84B21B506C0A0DE2AB3959E41F9EE /* SDLUnsubscribeButtonResponse.m in Sources */, + 3D4438E9B8C4651BAA6CEB5D5039C883 /* SDLUnsubscribeVehicleData.m in Sources */, + 78A8DD9987A5AD9F966EC563DE304315 /* SDLUnsubscribeVehicleDataResponse.m in Sources */, + 0F25929AD33907EB2347A3F23241C047 /* SDLUnsubscribeWayPoints.m in Sources */, + 810BB67A4F073E317DDCD354D46D5798 /* SDLUnsubscribeWayPointsResponse.m in Sources */, + DBE730A70BE64357EEB827CBEF8550A6 /* SDLUpdateMode.m in Sources */, + 1FD1613858BF4AF4DD707C31690E31F1 /* SDLUpdateTurnList.m in Sources */, + 6D06E07A53474A734004B5F848586E0A /* SDLUpdateTurnListResponse.m in Sources */, + 2B6C25B8C9B489B00C3ED80593792E99 /* SDLUploadFileOperation.m in Sources */, + B85EAD39E2090312474E012A26CC234A /* SDLV1ProtocolHeader.m in Sources */, + C37E0A7500862346CC0188EE615B9E52 /* SDLV1ProtocolMessage.m in Sources */, + 0567BA39C9D8F87D132349786EF77E51 /* SDLV2ProtocolHeader.m in Sources */, + 9C5BB601A65D77A59756F8DA0CA60A4C /* SDLV2ProtocolMessage.m in Sources */, + AD7801AB5E6D5F623B5063C6670D38C0 /* SDLVehicleDataActiveStatus.m in Sources */, + 53FB495454A995493CFBA59DA2A7186A /* SDLVehicleDataEventStatus.m in Sources */, + 9A4099CB0E977922DCD215920D51E6EF /* SDLVehicleDataNotificationStatus.m in Sources */, + 5018CBE8BD73A237A1D49B52DFDA4469 /* SDLVehicleDataResult.m in Sources */, + EC1F50828A025FA4F94B70385787ABBF /* SDLVehicleDataResultCode.m in Sources */, + E0FC41FEC6C7E4801B4394F3200D1F14 /* SDLVehicleDataStatus.m in Sources */, + 9D4F3D442A1E6B6D5616F9E28EEBCBCF /* SDLVehicleDataType.m in Sources */, + C92CD2430E581982358A1362D3C8AF85 /* SDLVehicleType.m in Sources */, + 9E6083DC34FA4DC0770B8119699D96A4 /* SDLVentilationMode.m in Sources */, + 04B18BE8079A29A81ACA01FED3181CED /* SDLVersion.m in Sources */, + 2D094A7342D5409693FB87A9130B7A5D /* SDLVideoStreamingCapability.m in Sources */, + B2E0C4DA0C2AEC5B2A7B6ACBF4220E09 /* SDLVideoStreamingCodec.m in Sources */, + 031495D4969E56B37EACAA1F70767994 /* SDLVideoStreamingFormat.m in Sources */, + 2F9DB498E2C28210E3DF3810C99CB74E /* SDLVideoStreamingProtocol.m in Sources */, + 16AB530744D2106B1F11B0430918DF43 /* SDLVideoStreamingState.m in Sources */, + 482E7DA3E17EA819958A6ADE561D4A6C /* SDLVoiceCommand.m in Sources */, + 9F30B639E559F0B7DD77042DE4A3304E /* SDLVoiceCommandManager.m in Sources */, + 477719EE4D3DE4F85F24E2648C5CEB6E /* SDLVrCapabilities.m in Sources */, + A73902712800A16C4859D7ADAF4C45CB /* SDLVrHelpItem.m in Sources */, + B8425BED5CAC2291C0479640AFAB2A22 /* SDLWarningLightStatus.m in Sources */, + 76FB8F453DF3B113045E68FC3BAEF526 /* SDLWayPointType.m in Sources */, + 1697CD08D2311669260F79B71E513B5F /* SDLWeatherAlert.m in Sources */, + 999FE86F3A5166111487B9F4C4519044 /* SDLWeatherData.m in Sources */, + 33AA2D5C6064086920C929390E25D49F /* SDLWeatherServiceData.m in Sources */, + 3754EAD930F3D40A42F3223321F899B0 /* SDLWeatherServiceManifest.m in Sources */, + 8E91351C40B6D32DD0C621B1E1F0ED58 /* SDLWindowCapability+ScreenManagerExtensions.m in Sources */, + FF9ABE4F036C6B902A2B802E6E2479B2 /* SDLWindowCapability.m in Sources */, + 6320CDF0BD3E03E4095435D5FF23AE05 /* SDLWindowType.m in Sources */, + 64561042D6D620D2EE28EBB734BF03EF /* SDLWindowTypeCapabilities.m in Sources */, + E5B88FE74B2EE51391E6F196C27429F4 /* SDLWiperStatus.m in Sources */, + 0640A84E3A042DC547293AA195F16D9E /* SmartDeviceLink-dummy.m in Sources */, + 942414A05FF809E21FB3DB012A624EF4 /* TestSubscribeButtonObserver.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 56FD2C90395CF2B63B7F778E14AEE85A /* Sources */ = { + BDACCF4256FF7D99C68707BD29EAAC54 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A6B07EC2A552D4C3CE7E38B7B52F0AA0 /* BiSON-dummy.m in Sources */, - 5AF1EBA29AB4A8847180272F72D31646 /* bson_array.c in Sources */, - 8DA880DCDE62B93A8B72040B2F3D6DE7 /* bson_object.c in Sources */, - 82C83C702C0EECAF4017163557F3FA8F /* bson_util.c in Sources */, - 24F89E570279A8E298ADE0E960556438 /* emhashmap.c in Sources */, + 30D65525229B09FA9CFEBD81B8763C7B /* BiSON-dummy.m in Sources */, + 6C5B7C4935BC2EE9F988FBCB42082F22 /* bson_array.c in Sources */, + 9DA7510D35653DAB61574EAF7CD41A60 /* bson_object.c in Sources */, + 3BE2CD266829ABCD9AA01020133A08D3 /* bson_util.c in Sources */, + 26D505993874143E36649CCE262C63CE /* emhashmap.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - AA8D112EC3333BFF896E871D7BFEFB59 /* Sources */ = { + E3D50D58A9FF2A6D484EB5EC0062F364 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8C6D09960AD4258C1FBEAD9661CEE7B2 /* Pods-MobileWeather-dummy.m in Sources */, + EB96732B0C7E6402276EDDF4DE47A4CC /* Pods-MobileWeather-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - BB4EF5B024669089E542F6F6321F8415 /* Sources */ = { + FD48AF844ED7A4F116F59DA460F8FE50 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9EBCE76DE98833613834363DB468BB91 /* CGPoint_Util.m in Sources */, - 5C521E0E378A0669EC6687EABC73348B /* CVPixelBufferRef+SDLUtil.m in Sources */, - 62402E9F6585EA4BFFB41AD1688ED42D /* dispatch_timer.m in Sources */, - BB82C9646A001AB965203DD7C4ABF3E3 /* EAAccessory+SDLProtocols.m in Sources */, - 8F652C9DFD39903EB774478F3919DF53 /* EAAccessoryManager+SDLProtocols.m in Sources */, - 49982C103746564D3C54F20348D77469 /* NSBundle+SDLBundle.m in Sources */, - A617B91AA4286B0A000C26DFFAE1EB03 /* NSMapTable+Subscripting.m in Sources */, - A5E9728E958AED1757923FDF86CBD7DA /* NSMutableArray+Safe.m in Sources */, - 5EF2AE196488BFA83CD8CA7756F48187 /* NSMutableDictionary+SafeRemove.m in Sources */, - DF21D101EABAB6E00CF7E707E3943AD1 /* NSMutableDictionary+Store.m in Sources */, - B1BDCEA6C3090C2A73DC0C4F9F609696 /* SDLAddCommand.m in Sources */, - D5F42ACD5C21B49D9C40D94249422D03 /* SDLAddCommandResponse.m in Sources */, - 9DC9EB76C1350A19BB7B96D0F33195ED /* SDLAddSubMenu.m in Sources */, - AAA0FFF042B3B99C9D92A269A62CFF5B /* SDLAddSubMenuResponse.m in Sources */, - FFE5C4FAF2039AF094D03BDEDBF3C70A /* SDLAirbagStatus.m in Sources */, - 405952B0F156E80362027E2FB42E7359 /* SDLAlert.m in Sources */, - 99655449FA6C22312D322E788018DA07 /* SDLAlertManeuver.m in Sources */, - ABDA96A8547F3A930F93224BA116D218 /* SDLAlertManeuverResponse.m in Sources */, - D866508C9A7CA2A7E6CF7766FAA58F33 /* SDLAlertResponse.m in Sources */, - 01E264376DA7D789A6C586CC33D3C4C6 /* SDLAmbientLightStatus.m in Sources */, - AE6AA7E705E0E8737639988A68796CB4 /* SDLAppHMIType.m in Sources */, - D8F8B76ED83E7B308A73BAB23CFAB95F /* SDLAppInfo.m in Sources */, - 21944956FCF8A98A64B49943C532E71C /* SDLAppInterfaceUnregisteredReason.m in Sources */, - 9D2ED0822374AFBFA643EB06818A8E53 /* SDLArtwork.m in Sources */, - 8BC6E562601625464A53BC742A91365C /* SDLAsynchronousOperation.m in Sources */, - AEB730B02D81F89C55665B4144B9E402 /* SDLAsynchronousRPCRequestOperation.m in Sources */, - 6015D768048B1FF2C7D93F5AD3E9B89C /* SDLAudioControlCapabilities.m in Sources */, - F567248A2CBDD5AC8CF6BCC431DE09F3 /* SDLAudioControlData.m in Sources */, - 37A4441323BF715ECDFDFA44AA52E595 /* SDLAudioFile.m in Sources */, - 51D83C643384BAFE2BFFD0E8068521B4 /* SDLAudioPassThruCapabilities.m in Sources */, - 579B11FBED84C912A3799334269EED04 /* SDLAudioStreamingIndicator.m in Sources */, - CC06A5DB08416090311AA26C5F53BBB9 /* SDLAudioStreamingState.m in Sources */, - 77A71EAA82BAB13693880A019AD0B2F7 /* SDLAudioStreamManager.m in Sources */, - 3DC9DBBED5AF3AED802AEB1ACE6EC16C /* SDLAudioType.m in Sources */, - 8EA3AB26A43188089B88B94C7DE08F0B /* SDLBeltStatus.m in Sources */, - FAE6DA6BB36C59AFE54B415046D950BB /* SDLBitsPerSample.m in Sources */, - 335977B731AE1FB611913B0EA91AEA9D /* SDLBodyInformation.m in Sources */, - 0D8709506F394E503E05C5FAF3ABBFA9 /* SDLButtonCapabilities.m in Sources */, - 73080D254467A5B7B0544ABAFF474274 /* SDLButtonEventMode.m in Sources */, - 96E47B55DC6DB8E5B2764DB1F2DD99F3 /* SDLButtonName.m in Sources */, - E2CA6F1E1BA296B8C0844441245CF6B3 /* SDLButtonPress.m in Sources */, - F8D81C0A73C636F00FBBCC4073DAE257 /* SDLButtonPressMode.m in Sources */, - 1C479CD7E70CE6D721A82B6F56781D9A /* SDLButtonPressResponse.m in Sources */, - A991D517EC28BDF3C6FCD730F75057EA /* SDLCarModeStatus.m in Sources */, - D925212DD2A0D89BD7B257984208A356 /* SDLCarWindow.m in Sources */, - 27C60458AA9E71EB3C734B5CAFCE3B65 /* SDLCarWindowViewController.m in Sources */, - AC6FDFCC094C6CFAF1D0E57D75386505 /* SDLChangeRegistration.m in Sources */, - 07992A606FAD1F7083358DCA54121B87 /* SDLChangeRegistrationResponse.m in Sources */, - 3AFFD7E781E276C04B0910990FB2A7F1 /* SDLCharacterSet.m in Sources */, - E1F35758D07A31CFFA6E16184DD11EC4 /* SDLCheckChoiceVROptionalOperation.m in Sources */, - E0D2935FD815FD8E1B90AE2117FF6E6A /* SDLChoice.m in Sources */, - 1AC1E5C6107C9FDEC28FEAF2722D5871 /* SDLChoiceCell.m in Sources */, - A130399749A0500EDE7C2E9B679E2E02 /* SDLChoiceSet.m in Sources */, - 572B49D1EB5811BFC8A1AE03DED056AC /* SDLChoiceSetManager.m in Sources */, - 784C343D84C571A9BEB4CE3475052D4F /* SDLClimateControlCapabilities.m in Sources */, - 7D6FF10BD398DDB43B07B51E5B2BDD86 /* SDLClimateControlData.m in Sources */, - EDD76FFA6CC558AC6D28F89D749A34AC /* SDLClusterModeStatus.m in Sources */, - 4BF834C82F82A4F455757C75795D7614 /* SDLCompassDirection.m in Sources */, - 89AAE75E084941AB4DC95BC6170B0423 /* SDLComponentVolumeStatus.m in Sources */, - CEDC3780A021B4690015BF1407BE9A10 /* SDLConfiguration.m in Sources */, - 193649645204AE4D57E75DAE6C1478B8 /* SDLControlFramePayloadAudioStartServiceAck.m in Sources */, - 1B1CF15B78F656247732F33363542D95 /* SDLControlFramePayloadConstants.m in Sources */, - 1958620E37609F5E8C593B01464E3016 /* SDLControlFramePayloadEndService.m in Sources */, - 83DB672B245743109384B786A824D9D5 /* SDLControlFramePayloadNak.m in Sources */, - 7397FD913BC034E932B3090DE6B570D6 /* SDLControlFramePayloadRegisterSecondaryTransportNak.m in Sources */, - 01AF4CA766F62C8C5C54073C21E0FD7A /* SDLControlFramePayloadRPCStartService.m in Sources */, - 9AD204320DEEEFCC935A51AC0E8AD022 /* SDLControlFramePayloadRPCStartServiceAck.m in Sources */, - CC5A27F6A8046BF6A0D45A9E9AFF83EB /* SDLControlFramePayloadTransportEventUpdate.m in Sources */, - 1CA2B5A4769F94EE01AAF587330FB376 /* SDLControlFramePayloadVideoStartService.m in Sources */, - E3263DFA6CB2DA52B1251FBBC9267E9B /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */, - 861219BAC33161FABE35382945E05D5D /* SDLCreateInteractionChoiceSet.m in Sources */, - 393038430FFE5671B2073A6A30C9BC0B /* SDLCreateInteractionChoiceSetResponse.m in Sources */, - 152CAC480630AF81E594747FE28E1C52 /* SDLDateTime.m in Sources */, - 69FB93D0116138B7E07F844C8EAB85EF /* SDLDefrostZone.m in Sources */, - 8265AF842FC74F52B21E42CB7BBA5F46 /* SDLDeleteChoicesOperation.m in Sources */, - A6D1DBBA7DFF61CCAC20DE99B9C18480 /* SDLDeleteCommand.m in Sources */, - 4A2E9931CEB4FBE60C639025C745949F /* SDLDeleteCommandResponse.m in Sources */, - B1A82109D4F75BBAED4C9B9740AECAAD /* SDLDeleteFile.m in Sources */, - 973BBB450E46C22063DD9BAEF384D18D /* SDLDeleteFileOperation.m in Sources */, - E52889D43E0FB7B64BB000FC9047EF4F /* SDLDeleteFileResponse.m in Sources */, - 67F2B71B297BD5B7A61826F8EE8D3EB3 /* SDLDeleteInteractionChoiceSet.m in Sources */, - BE9319F3CAB5BEBB2D2B9C3693A61652 /* SDLDeleteInteractionChoiceSetResponse.m in Sources */, - 202E9DEB4FC551880653BF4C6A734E33 /* SDLDeleteSubMenu.m in Sources */, - CD2072082E2208D2809019E27BEC0280 /* SDLDeleteSubMenuResponse.m in Sources */, - 6471C1EA39AB6BDD493349BB0F3F5052 /* SDLDeliveryMode.m in Sources */, - 90FB25EE09CDEE341453FFA847FBCAF7 /* SDLDeviceInfo.m in Sources */, - BE28266EAACE9D36007982EC36642F3A /* SDLDeviceLevelStatus.m in Sources */, - 5D58DF92FE6CE32BE79D5D559E6CFFED /* SDLDeviceStatus.m in Sources */, - 59E429B41FBD1AF0DC31AAFE203A786C /* SDLDiagnosticMessage.m in Sources */, - 19A64D1B86FF6BBF8E5BCEE6D72FAF03 /* SDLDiagnosticMessageResponse.m in Sources */, - BE12FBB6C580D3CE614365E50F41BAD1 /* SDLDialNumber.m in Sources */, - 0717BF49DDC3867CD2FDBCD81323A243 /* SDLDialNumberResponse.m in Sources */, - E781F22072DFC3F3132D5BB0D708E0D0 /* SDLDIDResult.m in Sources */, - B3D81BDC992C8624295DE288FB51BFDE /* SDLDimension.m in Sources */, - 0C17C9D742C4AB41CAD90B0A5CDC8A6A /* SDLDisplayCapabilities+ShowManagerExtensions.m in Sources */, - C2175B1A68E5F1D5F6D9FDA658245F99 /* SDLDisplayCapabilities.m in Sources */, - 057F789BB0FF5E0665773379E05E7196 /* SDLDisplayMode.m in Sources */, - EC518DA48EE5DF5912CD141D90D73648 /* SDLDisplayType.m in Sources */, - 70C704BD6E1E11AED47E7DD908749648 /* SDLDistanceUnit.m in Sources */, - A045FA88AAD56D9955A82693961E4503 /* SDLDriverDistractionState.m in Sources */, - 2ED2A5AEEA3F8EB3EA96F61E307B8AB1 /* SDLECallConfirmationStatus.m in Sources */, - F5EEF1197BE6FC5D8F9224FA2F6F636B /* SDLECallInfo.m in Sources */, - 6993E23A089FA7816120DFB82DAC3578 /* SDLElectronicParkBrakeStatus.m in Sources */, - B1520998FBEAB581CCB90729DA9FBF79 /* SDLEmergencyEvent.m in Sources */, - 20FC1896A18BA80D09A29EC6381D135A /* SDLEmergencyEventType.m in Sources */, - 29074EE6C7F221B0EA5003F0EC9E43FA /* SDLEncodedSyncPData.m in Sources */, - 816F4CFFE91C7D74124ED71DBAB0C286 /* SDLEncodedSyncPDataResponse.m in Sources */, - 6923C05E7716FDBCF161524774C2F927 /* SDLEndAudioPassThru.m in Sources */, - DF2622D04F645AB7DB9F9580800B6CC9 /* SDLEndAudioPassThruResponse.m in Sources */, - 3772577D7A7B0E0B0F79BE6861768803 /* SDLEnum.m in Sources */, - A49ECD1FA4B35BFE783DCB2D31D81762 /* SDLEqualizerSettings.m in Sources */, - A8C6468067C324C2E794EA6C7DAF885F /* SDLError.m in Sources */, - 781AEA16368564E74F2D0E43DC20D7E9 /* SDLFile.m in Sources */, - BD482921E979DAC6FB18B587970D1D84 /* SDLFileManager.m in Sources */, - 777B60664323D91B12134EE0BF4121B2 /* SDLFileManagerConfiguration.m in Sources */, - 96303796E0911FC98A50B810061DC683 /* SDLFileType.m in Sources */, - E6FFA1AD1EE5AA93DAE10797F2C8AA28 /* SDLFileWrapper.m in Sources */, - AA43891B9817657D5D57BD1D1B688482 /* SDLFocusableItemLocator.m in Sources */, - B431062954149A07B585826BA03ED313 /* SDLFuelCutoffStatus.m in Sources */, - 1DDF3601757242CCCF58BC6FDAEBD1CA /* SDLFuelRange.m in Sources */, - 9963ED0F7988732750C0516556DBAD4B /* SDLFuelType.m in Sources */, - B3563BE6893B433851161F1A5F44E7CF /* SDLFunctionID.m in Sources */, - CF23B80D9FCD04DE4B06E5497F4077C3 /* SDLGenericResponse.m in Sources */, - B92E9CD2034D4AB8A8C34D5C4FE2F688 /* SDLGetDTCs.m in Sources */, - 7277022B57CFC404A1EB8857A1CDF021 /* SDLGetDTCsResponse.m in Sources */, - 54B362CBD1794B25EEE2DAB2312458B0 /* SDLGetInteriorVehicleData.m in Sources */, - 59F1D49EF414749ADFD938A46FFE2E72 /* SDLGetInteriorVehicleDataResponse.m in Sources */, - EB8DDB9AD4603D10647FC08ABE42610D /* SDLGetSystemCapability.m in Sources */, - F38321F6E1B732F7CEDB3AE3023BF33E /* SDLGetSystemCapabilityResponse.m in Sources */, - C2003D216D43E1ADED716B86E0A11239 /* SDLGetVehicleData.m in Sources */, - F57A663D28734BF9EE81B1C59E30E436 /* SDLGetVehicleDataResponse.m in Sources */, - 53C76685D4035A70E7F85A6A141A374D /* SDLGetWayPoints.m in Sources */, - 79E37A64DEFA4B2F78CD1D7285440A4C /* SDLGetWayPointsResponse.m in Sources */, - 64A1FA70011DC1E2C21168C60FF3D41B /* SDLGlobalProperty.m in Sources */, - A5C97B66E1C6546C695D44B4F300302B /* SDLGlobals.m in Sources */, - 031CAC2ADCDA99AB8EE5132902ABC87E /* SDLGPSData.m in Sources */, - 76AE451EE727182D27416E47091AB4F3 /* SDLH264VideoEncoder.m in Sources */, - F8DCABDD288571F66402C114F3899498 /* SDLHapticRect.m in Sources */, - 91AD5EF96211EFE7FBF554AAE63C5E71 /* SDLHeadLampStatus.m in Sources */, - 1421CC9DED21AA027010DDAE45669ADB /* SDLHexUtility.m in Sources */, - C829128D3348C34402574DA56198E32A /* SDLHMICapabilities.m in Sources */, - 2665B47AE0D9E489A35A4B5583C7A574 /* SDLHMILevel.m in Sources */, - D8C7F0FC37A24FE15023B9CDF862E669 /* SDLHMIPermissions.m in Sources */, - 1F06A449FFC01FF0CA8553A0BEB0F700 /* SDLHMISettingsControlCapabilities.m in Sources */, - 1BA017560FC8B74AF9D489992FBA4405 /* SDLHMISettingsControlData.m in Sources */, - 13ADD1BF8C10734FB2EBAA866AD33717 /* SDLHMIZoneCapabilities.m in Sources */, - D3292C49FB3876E7E43FD0008983749D /* SDLIAPSession.m in Sources */, - FFC8023A64FCF411F0C9499967FB8289 /* SDLIAPTransport.m in Sources */, - AD1C347575BADD6069B7C8A3FCB78769 /* SDLIgnitionStableStatus.m in Sources */, - 5B1792B416C069B7D262E07E84F29E84 /* SDLIgnitionStatus.m in Sources */, - A9104F71B52E4C481C35F160AEC293DF /* SDLImage.m in Sources */, - B116992E85C07AD8037A93C763446C72 /* SDLImageField.m in Sources */, - 3A86DEA68BC55354523B90DFB98DFC85 /* SDLImageFieldName.m in Sources */, - D90C6ED75895BEF7908635D1106B319C /* SDLImageResolution.m in Sources */, - A18AA79836D24CA82F1ABED3711E0402 /* SDLImageType.m in Sources */, - 7CCEC1E66E94041D1F74F9CF22E21F50 /* SDLInteractionMode.m in Sources */, - 123A59D297B9772831BB7A508CC41777 /* SDLKeyboardEvent.m in Sources */, - E2BA5C9098A6A510F2A19C5CA6F82AB2 /* SDLKeyboardLayout.m in Sources */, - 5B8D3395CC4E7B16F282021534A1B89F /* SDLKeyboardProperties.m in Sources */, - CD4F211339E854BC70C82A9ED1F01CBA /* SDLKeypressMode.m in Sources */, - 3487D5F34B6779F25E0C691435723CEB /* SDLLanguage.m in Sources */, - 54D790EEC81BAD764B8EEE49AD2A4158 /* SDLLayoutMode.m in Sources */, - CC7745805D84963CD8F0AF6400C02D08 /* SDLLifecycleConfiguration.m in Sources */, - AE94A5275773442E585794CE54A68795 /* SDLLifecycleConfigurationUpdate.m in Sources */, - E667646278FC1293CFD847649D8655CC /* SDLLifecycleManager.m in Sources */, - BBFCDC011B28D53B121AFA90E312A472 /* SDLLightCapabilities.m in Sources */, - AFAEB2A40167436131D8BDDE78C054B4 /* SDLLightControlCapabilities.m in Sources */, - 7FA0297BD2724D838BD70099450698EB /* SDLLightControlData.m in Sources */, - 5FE8EC1EBFBAC58BD6EF78358BCD2BA4 /* SDLLightName.m in Sources */, - DF74594B1C61223786D0D9B8D050E83F /* SDLLightState.m in Sources */, - EA6F912B14512ED4F79A1D2E6FC711CC /* SDLLightStatus.m in Sources */, - F8A3D17447CD1BBD2A178E1E9E42DB70 /* SDLListFiles.m in Sources */, - 8E9B107A40C3460FB540F154FFB49BC0 /* SDLListFilesOperation.m in Sources */, - 759E2DFEBA77AB77AC3841384A4642F8 /* SDLListFilesResponse.m in Sources */, - 8F67745B0596A71442906332D380019B /* SDLLocationCoordinate.m in Sources */, - 03AFC841308A9314BFE45A87E7D12155 /* SDLLocationDetails.m in Sources */, - 61A5483B85509933A8FD8A9C0DD79570 /* SDLLockScreenConfiguration.m in Sources */, - ADAE4EE6135058511597D79281C11C8D /* SDLLockScreenManager.m in Sources */, - ED155EF629DE9E96CF03905433FF317D /* SDLLockScreenPresenter.m in Sources */, - 4312EB672436060772606A0E4925DA81 /* SDLLockScreenStatus.m in Sources */, - 6A948ECACEF216EBE9DDB24C6478D643 /* SDLLockScreenStatusManager.m in Sources */, - F8106552810652AB6D988BA704E3AC60 /* SDLLockScreenViewController.m in Sources */, - C7CAA9586C7CBFC1BF7283B5E0D3538F /* SDLLogConfiguration.m in Sources */, - 58E5CC6C7FDD68D29452343D6BCDC80E /* SDLLogFileModule.m in Sources */, - 57823C7275F6F68B5C74AF6905FC904B /* SDLLogFileModuleMap.m in Sources */, - DC19EC9C46AE5676346DA606DAF9AC92 /* SDLLogFilter.m in Sources */, - 3383C263F5066BB955902D08E0E0BA76 /* SDLLogManager.m in Sources */, - 4D22C3E35127657A059FAAC74E84CA9F /* SDLLogModel.m in Sources */, - A039FEEC54EC4A0BE526247BDAB60B67 /* SDLLogTargetAppleSystemLog.m in Sources */, - 8BDBA188EE37C24C29B742DFE65D3220 /* SDLLogTargetFile.m in Sources */, - C7FC6D013EDDB9E6F8380666F3A722D5 /* SDLLogTargetOSLog.m in Sources */, - 7F95596B16851C7F2C54180FC0777A21 /* SDLMaintenanceModeStatus.m in Sources */, - F4D7E3DB98D985518CBA00A931EE7A89 /* SDLManager.m in Sources */, - B78F6243D01B5B588754F9C82619A450 /* SDLMassageCushion.m in Sources */, - 7ACB3CE55A4AC735DA8662EC6501EEFA /* SDLMassageCushionFirmness.m in Sources */, - F5DCCFB916C50F9482F9C37FE84C14CB /* SDLMassageMode.m in Sources */, - 6F380499045F205FAE7E1D8BF98179B7 /* SDLMassageModeData.m in Sources */, - E229FDBBECD87A87201C7BEB4DC29D97 /* SDLMassageZone.m in Sources */, - 2A5F0B29E4EBD8734741D831CA6A7E6A /* SDLMediaClockFormat.m in Sources */, - 01F70F292D4F11D03C358ACC1E2DAC8D /* SDLMenuCell.m in Sources */, - 8522A1A57853E7CF7C31DA0A7A4AB0E3 /* SDLMenuManager.m in Sources */, - E86251450D4D5A10419413C51E5980F9 /* SDLMenuParams.m in Sources */, - 3FD99D42147F557EFE878C489E853A98 /* SDLMetadataTags.m in Sources */, - 5819D315BD81F71750C6BAD914F7C5BE /* SDLMetadataType.m in Sources */, - B39F57C03DCE7EA738793B7AA9AEFE0C /* SDLModuleData.m in Sources */, - 6A87455EC4D7876D3DA2E5BE5F5AF0E9 /* SDLModuleType.m in Sources */, - 6DA110ED4E5F99E15B2978088CCE0F95 /* SDLMutableDataQueue.m in Sources */, - 28F0252D9017ED26A005BEF79E464662 /* SDLMyKey.m in Sources */, - 52F293B8D8F2DBC5884789F9F340441A /* SDLNames.m in Sources */, - BA644B2242904BB213F13216743786E5 /* SDLNavigationCapability.m in Sources */, - 4AB73C7BEAA65EE7156FB5C3CC87DF2D /* SDLNotificationConstants.m in Sources */, - AA97A6D784675068A531B73FF5FD0376 /* SDLNotificationDispatcher.m in Sources */, - 8D3B4AF8D23A9F7DB6AB859C69156FA6 /* SDLOasisAddress.m in Sources */, - 9CE741D0B5CFA7C1782FA1CDAEE6EA87 /* SDLObjectWithPriority.m in Sources */, - 6E9DFC2CB83FEE9A4AFEA9AD7EE227C6 /* SDLOnAppInterfaceUnregistered.m in Sources */, - 72D0F8CE4CAFAF66BCCD89088FFA6164 /* SDLOnAudioPassThru.m in Sources */, - DBE8765BED5677C418D627EE206306C3 /* SDLOnButtonEvent.m in Sources */, - 70A3EF519C0F612927B5E8D0E787FD6C /* SDLOnButtonPress.m in Sources */, - 50E94328E77465FC58A98C08B155AA3E /* SDLOnCommand.m in Sources */, - E7F2901D28061C231237AB39E5917BCB /* SDLOnDriverDistraction.m in Sources */, - 2F62D67C96619CF8418DDE8660AA87FF /* SDLOnEncodedSyncPData.m in Sources */, - 930D36D2C2CFB72D4B2C3A01D36D8278 /* SDLOnHashChange.m in Sources */, - EBDF38FA85CF97881115CB93F448E837 /* SDLOnHMIStatus.m in Sources */, - BB6BF4F84E821FAC00199C2BAF9AF74A /* SDLOnInteriorVehicleData.m in Sources */, - 4DE6D3DB00935100770B101E4FD4DD74 /* SDLOnKeyboardInput.m in Sources */, - 8BCAE1C114A5E67B3A5ACE4C6AAF7A74 /* SDLOnLanguageChange.m in Sources */, - CD60F83D031F7CC693D74CBD3D03564C /* SDLOnLockScreenStatus.m in Sources */, - 073092D66C7A45B78F01D6F5BAD82BA1 /* SDLOnPermissionsChange.m in Sources */, - A83965F5D3DA1873875BD519055B6EB8 /* SDLOnRCStatus.m in Sources */, - D8ED71A2B9F5E9D98C447D485332A99F /* SDLOnSyncPData.m in Sources */, - 5C5BDD02AE87289FABF6D1E1D55E8620 /* SDLOnSystemRequest.m in Sources */, - 76DD5F04C9D0EFF928EFE824F480388E /* SDLOnTBTClientState.m in Sources */, - 3A979A73791B243B088224560C08E152 /* SDLOnTouchEvent.m in Sources */, - 7CBFDD61D75E8B7A0F25E3FA795820C2 /* SDLOnVehicleData.m in Sources */, - D8A80A1C68EC4F43025883478D8CB9D0 /* SDLOnWayPointChange.m in Sources */, - 86CC298B59D86368CE05871D9544B024 /* SDLParameterPermissions.m in Sources */, - 31DFC3583830E0D966124FC8F5C27762 /* SDLPCMAudioConverter.m in Sources */, - 2B70751465E898CA237B574CFDE37BB6 /* SDLPerformAudioPassThru.m in Sources */, - 4EADDCED77CBC447F15EEE6612C32794 /* SDLPerformAudioPassThruResponse.m in Sources */, - AC3116F5CDE0A01ACBE881AD2932FA50 /* SDLPerformInteraction.m in Sources */, - ACBE2276330CA5BFAEB45D60559E0EE3 /* SDLPerformInteractionResponse.m in Sources */, - F7F7B60B5DDE0E8C3148AFDCF3FEBF48 /* SDLPermissionFilter.m in Sources */, - BAF3F93166B7EE5043FFDFA7B86DF85B /* SDLPermissionItem.m in Sources */, - 1A97C3CB44D389A20089C76508C7FD3F /* SDLPermissionManager.m in Sources */, - 67E4D3D07E7C652B79B0DC9D37FC0B84 /* SDLPermissionStatus.m in Sources */, - 48117AC5842CE566308EBCC6BAD70A38 /* SDLPhoneCapability.m in Sources */, - D8F7988ACC1BECA9C734EB18818833CF /* SDLPinchGesture.m in Sources */, - 3B060D93370643ABBC11440CA95137C5 /* SDLPolicyDataParser.m in Sources */, - 446DBDD10A24217E2C75E80F8AE8F3AC /* SDLPowerModeQualificationStatus.m in Sources */, - D60E50F38B718A2C85F0D682D384A5CF /* SDLPowerModeStatus.m in Sources */, - CE6CC0FEC610B058C1ABF457E41231B0 /* SDLPredefinedLayout.m in Sources */, - 39E89EB33BF91A8DD6826358A94C18A8 /* SDLPreloadChoicesOperation.m in Sources */, - 10E1C185CE7C51FA5DE4FD583AE99495 /* SDLPrerecordedSpeech.m in Sources */, - 9F370913738F86970698DAFB0A38971E /* SDLPresentChoiceSetOperation.m in Sources */, - E0BEFED8F43D0F005D5A05202F986C32 /* SDLPresentKeyboardOperation.m in Sources */, - FB71EC687E318FDBEEAD61E01DDEDB0D /* SDLPresetBankCapabilities.m in Sources */, - EB931FD87B77F6DB93801D24D19E70A4 /* SDLPrimaryAudioSource.m in Sources */, - BCEEAB66BF7313700D582FC1B90F169A /* SDLPrioritizedObjectCollection.m in Sources */, - BED9682A2C62CD033C513A4F91F34BB4 /* SDLPRNDL.m in Sources */, - E7C6FBA916500B31D6BAD5FD6A7FC253 /* SDLProtocol.m in Sources */, - 15C348C6C1D4657D5CCCB39DA48F874D /* SDLProtocolConstants.m in Sources */, - 29DA019909278383AF531314E1F4750D /* SDLProtocolHeader.m in Sources */, - D39D3D539295DA37870D3C521DF13AE3 /* SDLProtocolMessage.m in Sources */, - 9FDADA82B9C13E7CC61B02E43B7A59AF /* SDLProtocolMessageAssembler.m in Sources */, - ABBD345B8597491398E3FC8823936405 /* SDLProtocolMessageDisassembler.m in Sources */, - 79C6CE11C7DF25024C6679A5DB1F4FAE /* SDLProtocolReceivedMessageRouter.m in Sources */, - E6384B8090DE58E1C6D8EBB98CD828FA /* SDLProxy.m in Sources */, - DCA6C0C2052238C2A0119B020C87F0E8 /* SDLPutFile.m in Sources */, - BDB5E2E5DFA96C828137342BB8D6085B /* SDLPutFileResponse.m in Sources */, - BF9FC9118C99B6AE3D6240A775901119 /* SDLRadioBand.m in Sources */, - FF59DFEE18469A77E54029DB64085770 /* SDLRadioControlCapabilities.m in Sources */, - 6F3A11071AAAAB089CAFF163A89E33C6 /* SDLRadioControlData.m in Sources */, - B16E136F1D126EFDC395DBC4EB838678 /* SDLRadioState.m in Sources */, - 1F2C08924DAF09EAEDDF8E4A9B8F50C5 /* SDLRAWH264Packetizer.m in Sources */, - 783B704F7AE68B152C43E52B371B7BDE /* SDLRDSData.m in Sources */, - 3B9FD9C8C2D64BE1E7B4A60D8F1CF79C /* SDLReadDID.m in Sources */, - CD099D30E79DA7E13360CD0B9596F9C0 /* SDLReadDIDResponse.m in Sources */, - 30CDC22F7251B357A4C3CFAA72C47DE7 /* SDLRectangle.m in Sources */, - 8A13A50A3BCFE1E95F5D0294DF0729C9 /* SDLRegisterAppInterface.m in Sources */, - 8EF3ABA3CA3403D40675B8DF873BE0B5 /* SDLRegisterAppInterfaceResponse.m in Sources */, - 804B8220D4707682A8FA3F55A42A8B7F /* SDLRemoteControlCapabilities.m in Sources */, - FFC02EFE8F4650236EE18746F3C99B26 /* SDLRequestType.m in Sources */, - 60125BE2D194F959E8B41E59AE5902A5 /* SDLResetGlobalProperties.m in Sources */, - BB7153824E5C733FC1351739C572EF43 /* SDLResetGlobalPropertiesResponse.m in Sources */, - 05DE0CE31E8EF0D73230A47C79E5DED1 /* SDLResponseDispatcher.m in Sources */, - C6E3BB800E0219BB7BD53B85E7DDAB76 /* SDLResult.m in Sources */, - EE17450F281E5551AAAD2D4122552E83 /* SDLRGBColor.m in Sources */, - 513047C3242BF4788D7F04DA59A65D4F /* SDLRPCMessage.m in Sources */, - 5296B7BC7A799A4645A24AA665985F9C /* SDLRPCNotification.m in Sources */, - 32E4FFA8285A6E57F005EAC005EB2A0F /* SDLRPCNotificationNotification.m in Sources */, - 7F83B8D30D412264CB064FBCA65280F7 /* SDLRPCPayload.m in Sources */, - F05E6947D5F62C46FFEFE2F7AA748FC8 /* SDLRPCRequest.m in Sources */, - 6F43639A1BCFD9F961DFD27B0FF5ADD2 /* SDLRPCResponse.m in Sources */, - D6F70552F77E46D51BDF1F117BD35E88 /* SDLRPCResponseNotification.m in Sources */, - 95C30385C00538D6AD46FF3B45B58543 /* SDLRPCStruct.m in Sources */, - D794844555DFBAF7F8B9F9BD93380E66 /* SDLRTPH264Packetizer.m in Sources */, - 2F92A39FA7844E294BA89D4504DE5B40 /* SDLSamplingRate.m in Sources */, - D4684E7B5630AC0841E5F97E0E7410DC /* SDLScreenManager.m in Sources */, - 2D2C73A94C3702E247D80930EDD01C6E /* SDLScreenParams.m in Sources */, - D5F4416658C287713DE58A8B42779AD6 /* SDLScreenshotViewController.m in Sources */, - DDA293D9DD24D4B90840CB223F377E91 /* SDLScrollableMessage.m in Sources */, - F41E22F7099FD22A75464C95A275593F /* SDLScrollableMessageResponse.m in Sources */, - 64A03FA26A7101B6BCC79CE756523718 /* SDLSeatControlCapabilities.m in Sources */, - B039BBFA1D64E0C27D884E975E689356 /* SDLSeatControlData.m in Sources */, - 4242BC8D2B19A8AECDD82CEC36EAD1D3 /* SDLSeatMemoryAction.m in Sources */, - F3B256DF9728486349ACBAC2FF17275C /* SDLSeatMemoryActionType.m in Sources */, - 0B6AF6FF70CEFC947736C354315B0BED /* SDLSecondaryTransportManager.m in Sources */, - A346431BFB5EAF37478A562E9F32AED7 /* SDLSecondaryTransportPrimaryProtocolHandler.m in Sources */, - 5ED42ED122955A56A12165FEAA266553 /* SDLSendHapticData.m in Sources */, - BBEBB3879498EFCDA6A77C5026EAD41F /* SDLSendHapticDataResponse.m in Sources */, - D960D612D98D46D5AA86EBB3A7291634 /* SDLSendLocation.m in Sources */, - 944EAE83486EADA35F0A0957440A30FC /* SDLSendLocationResponse.m in Sources */, - 63D5C70769C0A8BBE254DA0612185BF1 /* SDLSequentialRPCRequestOperation.m in Sources */, - 78714ABA9091EDC61A1532C19CEF622C /* SDLSetAppIcon.m in Sources */, - 53246289694B5FAFAF6A3539272C199F /* SDLSetAppIconResponse.m in Sources */, - CEAB90B0ECF3BE31B9E22C076BC46BD8 /* SDLSetDisplayLayout.m in Sources */, - 4EDB1D54059A62B1E89AC859B6AFFC98 /* SDLSetDisplayLayoutResponse.m in Sources */, - 6453343C771486277D24FDAE17FA8C17 /* SDLSetGlobalProperties.m in Sources */, - 56413091A8C554F6CB22273E720F72B9 /* SDLSetGlobalPropertiesResponse.m in Sources */, - BDA78B840E859D4BA56C7361728B06CD /* SDLSetInteriorVehicleData.m in Sources */, - 44398A25FFF8E8E3BA94AA4B16401BD1 /* SDLSetInteriorVehicleDataResponse.m in Sources */, - 89F9CC51698C7CE001EB2AA56B413072 /* SDLSetMediaClockTimer.m in Sources */, - 9A1D30D7941623B78C80B13034F85CAA /* SDLSetMediaClockTimerResponse.m in Sources */, - FFD2DE79E153D602C64F7CC2C58EE395 /* SDLShow.m in Sources */, - 10E9D8F067B9536C43ECFB83D7A73E3C /* SDLShowConstantTBT.m in Sources */, - F2DE3C75015CD483965F2CBDFB21C57C /* SDLShowConstantTBTResponse.m in Sources */, - 76CCB2091B2141F0DE187DEDF9CEB84C /* SDLShowResponse.m in Sources */, - F9EF9685DAD362ED40662958F0775431 /* SDLSingleTireStatus.m in Sources */, - 32EF617251A6BDB80B1116AA30B88887 /* SDLSISData.m in Sources */, - 2424E72E3E34EC0D796FF72BA0253B6A /* SDLSlider.m in Sources */, - F547698FEF2F7006BB277000FECE7C27 /* SDLSliderResponse.m in Sources */, - 2A23BC577603227C59F175A756C07E75 /* SDLSoftButton.m in Sources */, - 2A736C0C17FD26D7F036E75358F1C35B /* SDLSoftButtonCapabilities.m in Sources */, - 5E4443EFA38A0E9D9356E31E93CD6194 /* SDLSoftButtonManager.m in Sources */, - 8A993F6473BDF02FF0BE27F6D0090945 /* SDLSoftButtonObject.m in Sources */, - 2796B141DB2CB8FF9D5D4331365FBF7C /* SDLSoftButtonState.m in Sources */, - 503E1255E56FFE55DCA95B9431D029AC /* SDLSoftButtonType.m in Sources */, - 404C3CDFE0A33CF1EA1F85DDDCAC7724 /* SDLSpeak.m in Sources */, - AB07E9AD2BC645CB49B998D2EE9ECD97 /* SDLSpeakResponse.m in Sources */, - 30FFC9E6B1C8D0793671168174052553 /* SDLSpeechCapabilities.m in Sources */, - FDED759629FA131DEDB2F00DDCC3D57C /* SDLStartTime.m in Sources */, - DDFD1462487F0102630F4A0082C2257F /* SDLStateMachine.m in Sources */, - 1546CE1E88D907835BF0B788B395892E /* SDLStaticIconName.m in Sources */, - AE5E9504FB6C14FA328062715259EC5F /* SDLStationIDNumber.m in Sources */, - 70A85F0E16284719A8CCB392E2F37115 /* SDLStreamDelegate.m in Sources */, - CF87235765D43F50AAD12EEF32C7E285 /* SDLStreamingAudioLifecycleManager.m in Sources */, - CAA156021879DF0FB3AB2D5C5E90B614 /* SDLStreamingMediaConfiguration.m in Sources */, - DBFA41154367EDB649205FAB3A0AB1D8 /* SDLStreamingMediaManager.m in Sources */, - 51B9760ED13D36DA0194F8F065F87132 /* SDLStreamingMediaManagerConstants.m in Sources */, - 33F5B083FEAEF4A293D5DDCC66055D3E /* SDLStreamingVideoLifecycleManager.m in Sources */, - CEF940DCF2F81856401D9F1A362614EB /* SDLSubscribeButton.m in Sources */, - 691B6D70692287E94DC8130566976727 /* SDLSubscribeButtonResponse.m in Sources */, - 13AFC08B1A38979CD13E5F43B4038A00 /* SDLSubscribeVehicleData.m in Sources */, - F4B664B8731CFEE056D3DC6EE1979783 /* SDLSubscribeVehicleDataResponse.m in Sources */, - 2F4833E75460BBDCA6974CF6A25393D3 /* SDLSubscribeWayPoints.m in Sources */, - 77982001C189F612C9F6EBD7141F0845 /* SDLSubscribeWayPointsResponse.m in Sources */, - BB1C9CDA7915D4AFB05EB4CFAE8BD7DC /* SDLSupportedSeat.m in Sources */, - 2E5A270CA153C9237A20FBA1325DC854 /* SDLSyncMsgVersion.m in Sources */, - 0B7F66B4664A408860F0AF0E101A7227 /* SDLSyncPData.m in Sources */, - 2608EAE325BED25A8AE2266BE7306894 /* SDLSyncPDataResponse.m in Sources */, - 04CCC763BF97B9B5CD4E91D041427E7A /* SDLSystemAction.m in Sources */, - 7F41F9E5C935DE00F69F9446B0C02FB0 /* SDLSystemCapability.m in Sources */, - D4B21BBBE0438AD091A68184121C3687 /* SDLSystemCapabilityManager.m in Sources */, - 59CAECCC79309B3484BAAB9997144D13 /* SDLSystemCapabilityType.m in Sources */, - 471FFFF32E90503833F9ED85A037ADB7 /* SDLSystemContext.m in Sources */, - E13279B99727C389AFD55E86CEC6BA58 /* SDLSystemRequest.m in Sources */, - E4D497DFC67512E4D1F4009C9E89F0FD /* SDLSystemRequestResponse.m in Sources */, - 108679E1326013DA6810D4FCCF8D199A /* SDLTBTState.m in Sources */, - EA61BA97EB572FF25C639B4F9E68C659 /* SDLTCPTransport.m in Sources */, - F5965C8BECB2C649963997914210A539 /* SDLTemperature.m in Sources */, - 0621820D4B49EAC554475DCBB4960D32 /* SDLTemperatureUnit.m in Sources */, - 021AB76D29434458BB6B0DCE77D21101 /* SDLTemplateColorScheme.m in Sources */, - 0B6EB8772E0D15EAF628AD3F5C4C6B2F /* SDLTextAlignment.m in Sources */, - 338656B244397A1FE7AEAB4924A0637D /* SDLTextAndGraphicManager.m in Sources */, - 14DA1D729A8C3713459C867141BD057E /* SDLTextField.m in Sources */, - 7746DA8115BFA3F56B0E3CECF27104B7 /* SDLTextFieldName.m in Sources */, - C073B1D727561E1DE8F62DF675A41174 /* SDLTimer.m in Sources */, - BBBD5ED4D03D7C262186F7E2C45AE4FB /* SDLTimerMode.m in Sources */, - 858C3DF22080180C08F0980AD34A89FF /* SDLTireStatus.m in Sources */, - B71902D2F4098F712EF8B0B91C4BA816 /* SDLTouch.m in Sources */, - 93E7DF6ABAB0B63BCF3A43F04806CA92 /* SDLTouchCoord.m in Sources */, - A76BE724EA8A0BC5D7BD18F12331771D /* SDLTouchEvent.m in Sources */, - 1026CB34F032E55D9178DF90D78A7891 /* SDLTouchEventCapabilities.m in Sources */, - A64A381029902ECF5EA9881C2D3757F1 /* SDLTouchManager.m in Sources */, - 4262A88F6772DAFA6EB0986E93A7F7D1 /* SDLTouchType.m in Sources */, - 7FE813856BB80DB6CEFF1C7E5882006C /* SDLTPMS.m in Sources */, - E0C0F1716131F4FE8CBD8D1CC0A41FD0 /* SDLTriggerSource.m in Sources */, - FA5C8678979CE1CE6335D0580B458AE7 /* SDLTTSChunk.m in Sources */, - 776242583F47FE5061962145742DFD9D /* SDLTurn.m in Sources */, - 60F18842E21833886C8FB23CB53BD584 /* SDLTurnSignal.m in Sources */, - 8E8ACC9765AE19DC38F34CC924DCFE9B /* SDLUnregisterAppInterface.m in Sources */, - 4DE4F6C69D2B336533D5AB7CFB92805B /* SDLUnregisterAppInterfaceResponse.m in Sources */, - 689DCEDD61B14AA9EB35BB6011B0FF9D /* SDLUnsubscribeButton.m in Sources */, - 3CFF28EB8DF6F6B428CA1801E5F3B25F /* SDLUnsubscribeButtonResponse.m in Sources */, - FBC44B18BAE4EF95422584B6C2EF0367 /* SDLUnsubscribeVehicleData.m in Sources */, - A31E11C8073E52862D92D5D91953829F /* SDLUnsubscribeVehicleDataResponse.m in Sources */, - 6DDEBD45DBC204F6707EEE60817DF84C /* SDLUnsubscribeWayPoints.m in Sources */, - 94AA8314B82E73293B721B3103718D68 /* SDLUnsubscribeWayPointsResponse.m in Sources */, - 3E79D874393A3D7EBE0DA7412D7A6662 /* SDLUpdateMode.m in Sources */, - 24F2853B85F0CD908042C0887DD98DA6 /* SDLUpdateTurnList.m in Sources */, - E04A342E4724E073B5A460D2C5AE91BC /* SDLUpdateTurnListResponse.m in Sources */, - 1906B555E30994355B5939D36DBB9B7D /* SDLUploadFileOperation.m in Sources */, - C1736382406AD2485186181877F6AE82 /* SDLV1ProtocolHeader.m in Sources */, - 638569796129B05B2960F6135497396F /* SDLV1ProtocolMessage.m in Sources */, - AA4B736B9E1FD5C7E26F8A60D16B2A6D /* SDLV2ProtocolHeader.m in Sources */, - 274DA5F32BF29A3E4AC88D8C1D475054 /* SDLV2ProtocolMessage.m in Sources */, - 508710487E6E5D73B47302E30A095473 /* SDLVehicleDataActiveStatus.m in Sources */, - 8FA6FDBF6D81BD1B23490E769F293984 /* SDLVehicleDataEventStatus.m in Sources */, - 62849765FA318D1EE6F25BE2142CFD47 /* SDLVehicleDataNotificationStatus.m in Sources */, - EE668C077436E23D23D3D8143234DBFF /* SDLVehicleDataResult.m in Sources */, - 1144A41A128E7245639EF7EEAAFFB49C /* SDLVehicleDataResultCode.m in Sources */, - 54FB1AD8D55EE13D2BDE103CE981F096 /* SDLVehicleDataStatus.m in Sources */, - AF6A66360D7812FD96B343939D9E2B12 /* SDLVehicleDataType.m in Sources */, - 0E2509ED429DFEEBE4D2B4291C1A5647 /* SDLVehicleType.m in Sources */, - 94B42CFC4C940C7C72952993D42D7909 /* SDLVentilationMode.m in Sources */, - 27B47B95DCD6EFEE0AE4B2447B6E9D50 /* SDLVideoStreamingCapability.m in Sources */, - E8DC65D3D7BC1104A34ABA80362BEA50 /* SDLVideoStreamingCodec.m in Sources */, - 6377C7E09DD017030CAD64860B15B8F0 /* SDLVideoStreamingFormat.m in Sources */, - 25FC9867BFEF6F22B87571B2026C382D /* SDLVideoStreamingProtocol.m in Sources */, - 3CF801D23C44F6D1B84C15AA973D5911 /* SDLVideoStreamingState.m in Sources */, - 0AFCF277B445FBBDD394315DCF739CDA /* SDLVoiceCommand.m in Sources */, - 05FB1FD36DAE4750C26E6F3EE1AE94EA /* SDLVoiceCommandManager.m in Sources */, - 25BD608CDC74BDA8361298894AAC1BF6 /* SDLVrCapabilities.m in Sources */, - F8E512A9CAF6B80125DBCE5093A48B6B /* SDLVrHelpItem.m in Sources */, - 45ECBD14B4B63213CB8EAE14A26F47E0 /* SDLWarningLightStatus.m in Sources */, - 50197887724DB2B0F9BBBEDFD115EB01 /* SDLWayPointType.m in Sources */, - 18BBDEAE907C6E3913765F188D1F22A7 /* SDLWiperStatus.m in Sources */, - DCB23496E88481D6F8C0122ACB9F58CA /* SmartDeviceLink-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 5623240A514EBCE1B36A2FE9293DB43A /* PBXTargetDependency */ = { + 1F7C56A3DE4502DD81BC6DE14A5370CA /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = BiSON; - target = 3E2F6F6EDD252B198A8442650E36D865 /* BiSON */; - targetProxy = CE063CE7CAE6EEDB13586D4E39229E1D /* PBXContainerItemProxy */; + name = SmartDeviceLink; + target = D80456DDA93CD634453A682E14808519 /* SmartDeviceLink */; + targetProxy = 605A77535A8FC7FC30C0D975BCB72186 /* PBXContainerItemProxy */; }; - 8BB3FE097AA3A80DA2603A33138DE543 /* PBXTargetDependency */ = { + 6A9400F0EC45681DD223AD35E9CDDC5D /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = BiSON; - target = 3E2F6F6EDD252B198A8442650E36D865 /* BiSON */; - targetProxy = 4332B2D4BA920CE0A817B3F0771936D0 /* PBXContainerItemProxy */; + name = "SmartDeviceLink-SmartDeviceLink"; + target = 3D5C8508F5D7F6E6DD86E88C9CF9F8F4 /* SmartDeviceLink-SmartDeviceLink */; + targetProxy = F7F1266388AA8BD3DD808CFAD47EADF5 /* PBXContainerItemProxy */; }; - D064D180D7F923F17DAFCAA92AB41F84 /* PBXTargetDependency */ = { + A9790C90E6F821B435B62092D612A7A5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "SmartDeviceLink-SmartDeviceLink"; - target = A3E9B5FE1F97D734A27EB5CC50CC9D46 /* SmartDeviceLink-SmartDeviceLink */; - targetProxy = DF3582EA5E1AF448450B31E20F1987B1 /* PBXContainerItemProxy */; + name = BiSON; + target = 3BAB8E4F4ED1E843F9C863ADE37B95B5 /* BiSON */; + targetProxy = 4A02ED4C28844C389A4B072D1E10F4F6 /* PBXContainerItemProxy */; }; - E55BD8FDB5311749542AF52766E95D32 /* PBXTargetDependency */ = { + F73743FB0482539B50C0127AAB9A6FC5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = SmartDeviceLink; - target = BE3804893E5B3C73DADA6122238B017D /* SmartDeviceLink */; - targetProxy = 61E6D57C525EB9990F5F14267F32299F /* PBXContainerItemProxy */; + name = BiSON; + target = 3BAB8E4F4ED1E843F9C863ADE37B95B5 /* BiSON */; + targetProxy = A9D46AB6AB677FC4ABCB10C5F8081AC3 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - B13E714E9CFF859E95191063BF63F15A /* SDLLockScreen.storyboard */ = { + 4F718CA865E4EBD8B3A40B5E3399596B /* SDLLockScreen.storyboard */ = { isa = PBXVariantGroup; children = ( - 1D65D5A42B23A3D0DFDB2A586619FD16 /* SDLLockScreen.storyboard */, - 2AAFA2C903287C5055C4409F73717F08 /* SDLLockScreen.strings */, - 2001EE7A12C7EDAE3783A1365BC342A3 /* SDLLockScreen.strings */, - EED6DA45D83CE687BCB94E414DFAC3E6 /* SDLLockScreen.strings */, - 641BBB21F504981EFCD18E36DC8154FA /* SDLLockScreen.strings */, - F69BAB9533A64E79E944642D731471FD /* SDLLockScreen.strings */, - 45014C9975F976A709301510AA9BF5CA /* SDLLockScreen.strings */, + 1333ABE7F346AAE4D08CC2F9393F2FBF /* SDLLockScreen.storyboard */, + E28AD265DA83A4A53DB9748E338D4E1E /* SDLLockScreen.strings */, + B1F0D12088396E98ECB82370C6025F0B /* SDLLockScreen.strings */, + 3B163DFB6631E803FE7DF33DF6D511D7 /* SDLLockScreen.strings */, + 21336DC8F1B0075CB0306847BECE7486 /* SDLLockScreen.strings */, + 84A87A780C05802FA7F395A3C3AFF5E4 /* SDLLockScreen.strings */, + F747E1141A8856C814D76672F68FF23A /* SDLLockScreen.strings */, ); name = SDLLockScreen.storyboard; path = SmartDeviceLink/Assets; @@ -4106,88 +4876,9 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 1EE19F5DD95931924296F637BF18BD8F /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; - 22FFC1BFD3B651C09A543504BA587E84 /* Release */ = { + 26EFD5231F594EABB797BFFA643CD11A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A875DFABA35DCF8BD7D48B371863A251 /* SmartDeviceLink.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SmartDeviceLink"; - INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = SmartDeviceLink; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 31A2BC5BDD3E77CC203FBAA11B183683 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A875DFABA35DCF8BD7D48B371863A251 /* SmartDeviceLink.xcconfig */; + baseConfigurationReference = 7F2C5F89F8B578C3FB94E3AF3276CD61 /* BiSON.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4198,14 +4889,14 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SmartDeviceLink/SmartDeviceLink-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/BiSON/BiSON-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/BiSON/BiSON-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink.modulemap"; - PRODUCT_MODULE_NAME = SmartDeviceLink; - PRODUCT_NAME = SmartDeviceLink; + MODULEMAP_FILE = "Target Support Files/BiSON/BiSON.modulemap"; + PRODUCT_MODULE_NAME = BiSON; + PRODUCT_NAME = BiSON; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; @@ -4215,9 +4906,9 @@ }; name = Debug; }; - 5F7C0B45F40BCFDC5E85A6713DB6CC6D /* Release */ = { + 773B52F6B10233217994B6AD776F9856 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 52FD4FBAB16A6A7EC06FC2EAC24E3EB5 /* BiSON.xcconfig */; + baseConfigurationReference = BF3B79CB79DA4BF9796E3C06A34739EF /* BiSON.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4229,7 +4920,7 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; GCC_PREFIX_HEADER = "Target Support Files/BiSON/BiSON-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/BiSON/Info.plist"; + INFOPLIST_FILE = "Target Support Files/BiSON/BiSON-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -4246,46 +4937,14 @@ }; name = Release; }; - 82EB595907E302F55B40F3206A1C4E06 /* Debug */ = { + 85761D12E93C4E0DE954B8F490D8DCDC /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 74E2780DEB856E31804FBDDB9114B2F7 /* Pods-MobileWeather.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-MobileWeather/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-MobileWeather/Pods-MobileWeather.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 932031B4E6CBDA770B7D4B16B19F5523 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A875DFABA35DCF8BD7D48B371863A251 /* SmartDeviceLink.xcconfig */; + baseConfigurationReference = 454C2F95ECB135A8B710295C27270E3C /* SmartDeviceLink.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SmartDeviceLink"; - INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-Info.plist"; + IBSC_MODULE = SmartDeviceLink; + INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; PRODUCT_NAME = SmartDeviceLink; SDKROOT = iphoneos; @@ -4293,42 +4952,13 @@ TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; - name = Debug; - }; - A68CA6B2C6ECF018D6834C146C722BBC /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 52FD4FBAB16A6A7EC06FC2EAC24E3EB5 /* BiSON.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/BiSON/BiSON-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/BiSON/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/BiSON/BiSON.modulemap"; - PRODUCT_MODULE_NAME = BiSON; - PRODUCT_NAME = BiSON; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; + name = Release; }; - EBDA139474D120E88ACA321FE9BC98BF /* Release */ = { + 8A914B17F98B593DA99BC2E1D8F90524 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A875DFABA35DCF8BD7D48B371863A251 /* SmartDeviceLink.xcconfig */; + baseConfigurationReference = EEEFAB8E3FFC61EA0D729CFCA1DF85F5 /* Pods-MobileWeather.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4338,17 +4968,19 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SmartDeviceLink/SmartDeviceLink-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-MobileWeather/Pods-MobileWeather-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink.modulemap"; - PRODUCT_MODULE_NAME = SmartDeviceLink; - PRODUCT_NAME = SmartDeviceLink; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-MobileWeather/Pods-MobileWeather.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -4356,7 +4988,7 @@ }; name = Release; }; - F4568DEE257655D290C2B9CEAB37C934 /* Release */ = { + 8F17DC3A99F99FBAD606CE6963886315 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -4388,8 +5020,6 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; @@ -4406,19 +5036,133 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; }; name = Release; }; - FA423EC7DFF792381A5D40075F189527 /* Release */ = { + 916E0404255105F480DC4950B7625F7A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CE55C6A5E5F61F14CD3DBE30F7B822EA /* Pods-MobileWeather.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + CFC22820B8A447AC0F8964290AF4AE78 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = ADD3A5E2AF56D8C4B191087DCC79274E /* SmartDeviceLink.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/SmartDeviceLink/SmartDeviceLink-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink.modulemap"; + PRODUCT_MODULE_NAME = SmartDeviceLink; + PRODUCT_NAME = SmartDeviceLink; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + E8B0CF6A46D90B17B1144734B96F70DA /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = ADD3A5E2AF56D8C4B191087DCC79274E /* SmartDeviceLink.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SmartDeviceLink"; + IBSC_MODULE = SmartDeviceLink; + INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = SmartDeviceLink; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + EC6B6A47B57FD756A2B55473E625009F /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 454C2F95ECB135A8B710295C27270E3C /* SmartDeviceLink.release.xcconfig */; + buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4428,10 +5172,43 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-MobileWeather/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/SmartDeviceLink/SmartDeviceLink-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink.modulemap"; + PRODUCT_MODULE_NAME = SmartDeviceLink; + PRODUCT_NAME = SmartDeviceLink; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + F97EB3953FBCD102F1F2DBA2847A79CC /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 67F8B6234CDA01ABF6D0A2BB501FAF2D /* Pods-MobileWeather.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-MobileWeather/Pods-MobileWeather-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-MobileWeather/Pods-MobileWeather.modulemap"; OTHER_LDFLAGS = ""; @@ -4442,61 +5219,60 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 1EE19F5DD95931924296F637BF18BD8F /* Debug */, - F4568DEE257655D290C2B9CEAB37C934 /* Release */, + 916E0404255105F480DC4950B7625F7A /* Debug */, + 8F17DC3A99F99FBAD606CE6963886315 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 367D336DB3F8F34ACC64B522B883EA49 /* Build configuration list for PBXNativeTarget "BiSON" */ = { + 582AB056CF0E2D5C1E680A386FADDA07 /* Build configuration list for PBXNativeTarget "SmartDeviceLink-SmartDeviceLink" */ = { isa = XCConfigurationList; buildConfigurations = ( - A68CA6B2C6ECF018D6834C146C722BBC /* Debug */, - 5F7C0B45F40BCFDC5E85A6713DB6CC6D /* Release */, + E8B0CF6A46D90B17B1144734B96F70DA /* Debug */, + 85761D12E93C4E0DE954B8F490D8DCDC /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 425C99E18BB0F3FE7820356728F55ADA /* Build configuration list for PBXNativeTarget "Pods-MobileWeather" */ = { + 6E72C1838712FC6ECD613377491FF02D /* Build configuration list for PBXNativeTarget "Pods-MobileWeather" */ = { isa = XCConfigurationList; buildConfigurations = ( - 82EB595907E302F55B40F3206A1C4E06 /* Debug */, - FA423EC7DFF792381A5D40075F189527 /* Release */, + F97EB3953FBCD102F1F2DBA2847A79CC /* Debug */, + 8A914B17F98B593DA99BC2E1D8F90524 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - AA25ECC3F480B9CE3A581E1DDDB962E8 /* Build configuration list for PBXNativeTarget "SmartDeviceLink-SmartDeviceLink" */ = { + 76B36B34F146E145104894A1D2A3BA87 /* Build configuration list for PBXNativeTarget "BiSON" */ = { isa = XCConfigurationList; buildConfigurations = ( - 932031B4E6CBDA770B7D4B16B19F5523 /* Debug */, - 22FFC1BFD3B651C09A543504BA587E84 /* Release */, + 26EFD5231F594EABB797BFFA643CD11A /* Debug */, + 773B52F6B10233217994B6AD776F9856 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BEA9B9B2A7ABEF5E4F8DBC5B1D19D276 /* Build configuration list for PBXNativeTarget "SmartDeviceLink" */ = { + 7DD0E3264F81B11844214F608181EE18 /* Build configuration list for PBXNativeTarget "SmartDeviceLink" */ = { isa = XCConfigurationList; buildConfigurations = ( - 31A2BC5BDD3E77CC203FBAA11B183683 /* Debug */, - EBDA139474D120E88ACA321FE9BC98BF /* Release */, + CFC22820B8A447AC0F8964290AF4AE78 /* Debug */, + EC6B6A47B57FD756A2B55473E625009F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; } diff --git a/Pods/SmartDeviceLink/LICENSE b/Pods/SmartDeviceLink/LICENSE index d59b381..817ee3c 100644 --- a/Pods/SmartDeviceLink/LICENSE +++ b/Pods/SmartDeviceLink/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2017 - 2018 SmartDeviceLink Consortium, Inc. +Copyright (c) 2017 - 2020 SmartDeviceLink Consortium, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Pods/SmartDeviceLink/README.md b/Pods/SmartDeviceLink/README.md index bfb1e49..55b24f4 100644 --- a/Pods/SmartDeviceLink/README.md +++ b/Pods/SmartDeviceLink/README.md @@ -1,13 +1,11 @@ - +[![Accio supported](https://img.shields.io/badge/Accio-supported-0A7CF5.svg?style=flat)](https://github.com/JamitLabs/Accio) +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Version](https://img.shields.io/cocoapods/v/SmartDeviceLink-iOS.svg?style=flat)](https://cocoapods.org/pods/SmartDeviceLink-iOS) [![License](https://img.shields.io/cocoapods/l/SmartDeviceLink-iOS.svg?style=flat)](https://cocoapods.org/pods/SmartDeviceLink-iOS) -[![Build Status](https://img.shields.io/travis/smartdevicelink/sdl_ios/master.svg?style=flat)](https://travis-ci.org/smartdevicelink/sdl_ios) +![SmartDeviceLink Tests](https://github.com/smartdevicelink/sdl_ios/workflows/SmartDeviceLink%20Tests/badge.svg) [![codecov](https://codecov.io/gh/smartdevicelink/sdl_ios/branch/master/graph/badge.svg)](https://codecov.io/gh/smartdevicelink/sdl_ios) [![Documentation](docs/badge.svg)](https://smartdevicelink.com/en/guides/iOS/getting-started/installation/) -[![CocoaPods Downloads](https://img.shields.io/cocoapods/dt/SmartDeviceLink-iOS.svg?maxAge=172800)](https://cocoapods.org/pods/SmartDeviceLink-iOS) -[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) -[![Slack Status](http://sdlslack.herokuapp.com/badge.svg)](http://slack.smartdevicelink.com) - +[![Slack Status](http://sdlslack.herokuapp.com/badge.svg)](http://slack.smartdevicelink.com) # SmartDeviceLink (SDL) @@ -35,14 +33,26 @@ See the [changelog](https://github.com/smartdevicelink/sdl_ios/blob/master/CHANG ### Installing +#### Accio + +You can install this library using [Accio/SwiftPM](https://github.com/JamitLabs/Accio) documentation page. Please follow the steps to install and initialization Accio into a current or new application. + +In your Package.swift file , you want to add `.package(url: "https://github.com/smartdevicelink/sdl_ios.git", .from: "6.6.0"),` to the dependencies array. Then add `SmartDeviceLink` to the targets dependencies array. + +Please see [Mainifest format](https://github.com/apple/swift-package-manager/blob/master/Documentation/PackageDescriptionV4.md) to specify dependencies to a specific branch / version of SDL. + +###### Swift + +If you are building a Swift app, then add this instead `SmartDeviceLinkSwift` to the targets dependencies array. + ##### Cocoapods You can install this library using [Cocoapods](https://cocoapods.org/pods/SmartDeviceLink-iOS). You can get started with Cocoapods by [following their install guide](https://guides.cocoapods.org/using/getting-started.html#getting-started), and learn how to use Cocoapods to install dependencies [by following this guide](https://guides.cocoapods.org/using/using-cocoapods.html). -In your podfile, you want to add `pod 'SmartDeviceLink', '~> 6.1'`. Then run `pod install` inside your terminal. With Cocoapods, we support iOS 8.0+. +In your podfile, you want to add `pod 'SmartDeviceLink', '~> 6.6'`. Then run `pod install` inside your terminal. With Cocoapods, we support iOS 8.0+. ###### Swift -If you are building a Swift app, then add this instead `pod 'SmartDeviceLink/Swift', '~> 6.1'`. Then run `pod install` in your terminal. +If you are building a Swift app, then add this instead `pod 'SmartDeviceLink/Swift', '~> 6.6'`. Then run `pod install` in your terminal. ##### Carthage @@ -150,3 +160,21 @@ xcodebuild -project "SmartDeviceLink-iOS.xcodeproj" -scheme "SmartDeviceLink" -s ``` You can optionally pipe the result to [xcpretty](https://github.com/supermarin/xcpretty). + +#### Lock Screen Screenshot Tests +We run some additional tests using [FBSnapshotTestCase](https://github.com/uber/ios-snapshot-test-case). These tests generate the lock screen view controller and compare it to generated screenshots. By default, the generated screenshots use the iPhone 11 / iPhone XR simulator. If you run unit tests against those simulators, the tests should pass. + +##### Re-Generating Lock Screen Screenshots +If you need to change which simulator is used to generate the screenshots, or if you need to re-generate the screenshots for another reason, you can. Go to `SDLLockScreenViewControllerSnapshotTests.m` and take the following steps: + +1. Uncomment the following line: + +```objc +// self.recordMode = YES; +``` + +2. Run unit tests on the simulator that you want to use to generate the screenshots. Tests should fail because record mode is on. + +3. Re-comment out the line. + +4. Run unit tests again; they should pass this time. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard index 6d65f20..e18e4a9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard +++ b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard @@ -1,107 +1,226 @@ - - - - + + - - + - + - + - + - - - - - - - - + - + - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -112,11 +231,13 @@ - + + + diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/Contents.json b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/Contents.json new file mode 100644 index 0000000..b93cb64 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "lock_arrow_left_black.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "lock_arrow_left_black@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "lock_arrow_left_black@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/lock_arrow_left_black.png b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/lock_arrow_left_black.png new file mode 100644 index 0000000000000000000000000000000000000000..3b98a89cde84fe5a20ca5743c4be2cc099727c0d GIT binary patch literal 282 zcmV+#0prlm_sPK& zUT^}}slyoz@H-%Rm_r2fJ|K;_gaLjBBp-{2VBQC$71uDp?|>9y74}6TMt&f`TdBv$ z8_E$+5k}rnkGB$F1o&Dya0^R-5N~A!_J&HtQvrL!2;NEv13pd>HerD80qMa#%=>_p zU>64X9*}-K!n_Yi84h89?*SRcGc1`jAlfoIRCVp@VWy|M21K7beg9P;QVCH-X0;*I gs8TC4K~b~&6~3nVsgFubbN~PV07*qoM6N<$g1cxV7-WRg0K+Xv8|%D8Ib4E_a+ZSO5Tu9cMoQn(?PCz=@;yojW1CR+WGh_VaDyQ7P9`>n}(eadPjtJ7lb{%u$ z--AqYl@mr2fONCNM~)oEL8iIR6~i=054$i%yL^GhcS>o z_6x-@1~SiG;T&c_`Z+LwVFqM@dm|hMKn6H8gJA$Y7m3Bv>;{PCO4~aw# uM3H%-7PBB~LJXod)kxIH9HePm-9G_!80Id_xsbB}0000p)ie9yhGz7!C-k0ax-}67;@7XWM`{B9jx##>J$)PSyi|iWF zyq0+zyz17BmRAlkYE%ndgU0lJ0~TOf+5z3! z5Cxc)c1|Du$pTD^I;gw?;EZP9sstil3J;T_Vwswlt|zE&>i)23K}DX_!3zeyBe z3Tvw_>T?Y&z!cIEJ*Wuq&cepc$Fr+##oZ`XsCWY zu|+8@%nn`EqBTn?VUFpkIZ6p(cIujzGGHkg%z&O{fl?}%UAnFx*|3xbW>C*FLMaK% zZjEQPR!RbMTyxo>gooLq3H{8HB{a+ly~q?LFw9;}X1i7b!<^L1tWiS3v}-DRlz=d& z^eO~PD3}i22!av{=Coc1VhIA%shgotg1`*xO*oe9VfN`(K$PrZ&ggAW7GQwkql{nv z!0_iXF#LnbB^hA2h{(&e~ ku8n9O7|*&i&6}{kUs62AqjvJ<_y7O^07*qoM6N<$f?Q}kAOHXW literal 0 HcmV?d00001 diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/Contents.json b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/Contents.json new file mode 100644 index 0000000..b3c3a4a --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "lock_arrow_right_black.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "lock_arrow_right_black@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "lock_arrow_right_black@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/lock_arrow_right_black.png b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/lock_arrow_right_black.png new file mode 100644 index 0000000000000000000000000000000000000000..fdd933091f641adeba6349e031dc97f08ee4b431 GIT binary patch literal 269 zcmV+o0rLKdP)GrIeCVQj#RUz_(-P z&U={Ln=Evn_u0-&Gf!t`&N=VNhFRKR7X)r z;*k|v6p{kR3@Ie?#A+jtldnP&i4%qu5_x8gR)s`P8Bs{&g>~8#5;TlPHnNxQccP{_kAaV=QO=i;&CaO$jHbAo5atI4%EU8k6MR%5ETDV(_5KFr){x1_^ wdx#B0WkPH*vk9?Gh;6Dth>gsJ_`_EB4=WYsE}Q`ptN;K207*qoM6N<$fXArKUYph0K|!J)yyp~0acXlS@YLqkJD(9qD(kduSZ z5CjcDAP7MOfdnEUBBDgn_s5AdW{@Af&~JFoGvAl@{+@f@d++<6^Z$e6_c1}IAta8% zGQ-A@D5f$=mr*2&DXcJJ7>QykQ*;|hqL{)emy9G)OyvW zVk*x$ZfJ>O3ZJ;jE`!SxQ<>(3(Itv0eC8UvjW173WrmXmm?)<3h3ieto7Or8Hhjgv zAFo-@sRoYG#CdFo^3S~3#QWdIC#1Crl^dPfXamP+;ynHrUum&NF`2yNv|=*(#trr= zCX-j3QA{S^xk;O1GI`Be#bok>TkKOzCbRS@CUxH2rd=_ayrEw)nf&Aq`xTSP9D|BU zoi}$mpqNbNIj5LZ?r~5tnY`t^Vp6%!A;n~}z>s26dB9=CWU|Nw#ia6(4#i}$#6`s@ zMloK>{PI_fKbQT3sTgm`D8`$Z-u73F56XPBtQZ$#xO_=5F8EW7OJrSCu9z*(6}Mpo z;>M*w-0ByJn_~lUJ9#7)Ukt# zim|+Jq! 0.0); - return (fontSize > 0) ? [UIFont boldSystemFontOfSize:fontSize] : nil; + return (fontSize > 0) ? [UIFont systemFontOfSize:fontSize] : nil; } UIImage * _Nullable sdl_createTextImage(NSString *text, CGSize size) { UIFont *font = sdl_findFontSizeToFitText(size, text); if (!font) { - NSLog(@"Text cannot fit inside frame"); + SDLLogW(@"Text cannot fit inside frame"); return nil; } @@ -46,7 +51,7 @@ CGContextSaveGState(context); NSMutableParagraphStyle* textStyle = NSMutableParagraphStyle.defaultParagraphStyle.mutableCopy; - textStyle.alignment = NSTextAlignmentCenter; + textStyle.alignment = NSTextAlignmentLeft; NSDictionary* textAttributes = @{ NSFontAttributeName: font, @@ -57,11 +62,12 @@ options:NSStringDrawingUsesLineFragmentOrigin attributes:textAttributes context:nil]; - - CGRect textInset = CGRectMake(0, + + CGFloat padding = SDLVideoStringMessagePadding * size.width; + CGRect textInset = CGRectMake(0 + padding, (frame.size.height - CGRectGetHeight(textFrame)) / 2.0, - frame.size.width, - frame.size.height); + frame.size.width - (padding * 2), + frame.size.height - (padding * 2)); [text drawInRect:textInset withAttributes:textAttributes]; @@ -78,7 +84,7 @@ Boolean CVPixelBufferAddText(CVPixelBufferRef CV_NONNULL pixelBuffer, NSString * UIImage *image = sdl_createTextImage(text, CGSizeMake(width, height)); if (!image) { - NSLog(@"Could not create text image."); + SDLLogE(@"Could not create text image."); return false; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.h b/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.h index baeb46c..26493a1 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.h @@ -12,15 +12,29 @@ NS_ASSUME_NONNULL_BEGIN -typedef NSString* SDLName SDL_SWIFT_ENUM; +typedef NSString* SDLRPCParameterName SDL_SWIFT_ENUM; typedef NSString* SDLEnum SDL_SWIFT_ENUM; @interface NSDictionary (Store) -- (void)sdl_setObject:(NSObject *)object forName:(SDLName)name; -- (nullable id)sdl_objectForName:(SDLName)name; -- (nullable id)sdl_objectForName:(SDLName)name ofClass:(Class)classType; -- (NSArray *)sdl_objectsForName:(SDLName)name ofClass:(Class)classType; +- (void)sdl_setObject:(nullable NSObject *)object forName:(SDLRPCParameterName)name; + +- (nullable SDLEnum)sdl_enumForName:(SDLRPCParameterName)name error:(NSError * _Nullable *)error; +- (nullable NSArray *)sdl_enumsForName:(SDLRPCParameterName)name error:(NSError * _Nullable *)error; + +/** + * @param classType expected class of returned object + * @param error if stored value isn't classType + * @return object of classType or nil +*/ +- (nullable id)sdl_objectForName:(SDLRPCParameterName)name ofClass:(Class)classType error:(NSError * _Nullable *)error; + +/** + * @param classType expected class of array objects + * @param error if array objects value isn't classType or stored objects aren't array + * @return return array of classType or nil +*/ +- (nullable NSArray *)sdl_objectsForName:(SDLRPCParameterName)name ofClass:(Class)classType error:(NSError * _Nullable *)error; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.m b/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.m index 777489b..c1a8136 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.m @@ -7,12 +7,14 @@ // #import "NSMutableDictionary+Store.h" +#import "SDLRPCStruct.h" +#import "SDLError.h" NS_ASSUME_NONNULL_BEGIN @implementation NSMutableDictionary (Store) -- (void)sdl_setObject:(NSObject *)object forName:(SDLName)name { +- (void)sdl_setObject:(nullable NSObject *)object forName:(SDLRPCParameterName)name { if (object != nil) { self[name] = object; } else { @@ -20,37 +22,84 @@ - (void)sdl_setObject:(NSObject *)object forName:(SDLName)name { } } -- (nullable id)sdl_objectForName:(SDLName)name { +- (nullable id)sdl_objectForName:(SDLRPCParameterName)name { return self[name]; } -- (nullable id)sdl_objectForName:(SDLName)name ofClass:(Class)classType { - NSObject *obj = [self sdl_objectForName:name]; +#pragma mark - enum + +- (nullable SDLRPCParameterName)sdl_enumForName:(SDLRPCParameterName)name error:(NSError * _Nullable __autoreleasing * _Nullable)error { + return [self sdl_objectForName:name ofClass:NSString.class error:error]; +} + +#pragma mark - enums + +- (nullable NSArray *)sdl_enumsForName:(SDLRPCParameterName)name error:(NSError * _Nullable __autoreleasing * _Nullable)error { + return [self sdl_objectsForName:name ofClass:NSString.class error:error]; +} + +#pragma mark - object + +- (nullable id)sdl_objectForName:(SDLRPCParameterName)name ofClass:(Class)classType error:(NSError * _Nullable __autoreleasing * _Nullable)error { + id obj = [self sdl_objectForName:name]; + if (obj == nil || [obj isKindOfClass:classType]) { return obj; + // translate dictionaries to objects + } else if ([obj isKindOfClass:NSDictionary.class] && [classType instancesRespondToSelector:@selector(initWithDictionary:)]) { + obj = [[classType alloc] initWithDictionary:(NSDictionary *)obj]; + // update store so that the object isn't created multiple times + [self sdl_setObject:obj forName:name]; + return obj; } else { - return [[classType alloc] initWithDictionary:(NSDictionary *)obj]; + // The object in the store is not correct, we'll assert in debug and return an error and nil + NSError *wrongObjectError = [NSError sdl_rpcStore_invalidObjectErrorWithObject:obj expectedType:classType]; + + SDLLogAssert(@"Retrieving object from store error: %@, for object key: \"%@\", in dictionary: %@", wrongObjectError.localizedFailureReason, name, self); + + if (error) { + *error = wrongObjectError; + } + return nil; } } -- (NSArray *)sdl_objectsForName:(SDLName)name ofClass:(Class)classType { - NSArray *array = [self sdl_objectForName:name]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isMemberOfClass:classType]) { +#pragma mark - objects + +- (nullable NSArray *)sdl_objectsForName:(SDLRPCParameterName)name ofClass:(Class)classType error:(NSError * _Nullable __autoreleasing * _Nullable)error { + NSArray *array = [self sdl_objectForName:name ofClass:NSArray.class error:error]; + if (array == nil || array.count < 1 || [array.firstObject isKindOfClass:classType]) { // It's an array of the actual class type, just return return array; - } else { + } else if ([classType instancesRespondToSelector:@selector(initWithDictionary:)]) { // It's an array of dictionaries, make them into their class type NSMutableArray *newList = [NSMutableArray arrayWithCapacity:array.count]; for (NSDictionary *dict in array) { - [newList addObject:[[classType alloc] initWithDictionary:dict]]; + if ([dict isKindOfClass:NSDictionary.class]) { + [newList addObject:[[classType alloc] initWithDictionary:dict]]; + } + } + array = [newList copy]; + [self sdl_setObject:array forName:name]; + return array; + } else { + // The object in the store is not correct, we'll assert in debug and return an error and nil + NSError *wrongObjectError = nil; + + if ([array isKindOfClass:NSArray.class] && ![array.firstObject isKindOfClass:classType]) { + wrongObjectError = [NSError sdl_rpcStore_invalidObjectErrorWithObject:array.firstObject expectedType:classType]; + } else { + wrongObjectError = [NSError sdl_rpcStore_invalidObjectErrorWithObject:array expectedType:NSArray.class]; } - return [newList copy]; + + SDLLogAssert(@"Retrieving array from store error: %@", wrongObjectError.localizedFailureReason); + if (error) { + *error = wrongObjectError; + } + return nil; } } - @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSNumber+NumberType.h b/Pods/SmartDeviceLink/SmartDeviceLink/NSNumber+NumberType.h index 935fba9..f373d6d 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSNumber+NumberType.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/NSNumber+NumberType.h @@ -9,7 +9,7 @@ #import /** - * A decleration that this NSNumber contains an NSInteger. + * A declaration that this NSNumber contains an NSInteger. */ @protocol SDLInt @end @@ -32,6 +32,7 @@ @protocol SDLFloat @end +/// Extensions to NSNumber allowing for details on what kind of NSNumber is contained within. @interface NSNumber (NumberType) @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommand.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommand.m index b90fc2d..0613f31 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommand.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommand.m @@ -7,17 +7,21 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLMenuParams.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAddCommand +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameAddCommand]) { + if (self = [super initWithName:SDLRPCFunctionNameAddCommand]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithHandler:(nullable SDLRPCCommandNotificationHandler)handler { self = [self init]; @@ -102,35 +106,36 @@ - (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)cmdID { - [parameters sdl_setObject:cmdID forName:SDLNameCommandId]; + [self.parameters sdl_setObject:cmdID forName:SDLRPCParameterNameCommandId]; } - (NSNumber *)cmdID { - return [parameters sdl_objectForName:SDLNameCommandId]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameCommandId ofClass:NSNumber.class error:&error]; } - (void)setMenuParams:(nullable SDLMenuParams *)menuParams { - [parameters sdl_setObject:menuParams forName:SDLNameMenuParams]; + [self.parameters sdl_setObject:menuParams forName:SDLRPCParameterNameMenuParams]; } - (nullable SDLMenuParams *)menuParams { - return [parameters sdl_objectForName:SDLNameMenuParams ofClass:SDLMenuParams.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuParams ofClass:SDLMenuParams.class error:nil]; } - (void)setVrCommands:(nullable NSArray *)vrCommands { - [parameters sdl_setObject:vrCommands forName:SDLNameVRCommands]; + [self.parameters sdl_setObject:vrCommands forName:SDLRPCParameterNameVRCommands]; } - (nullable NSArray *)vrCommands { - return [parameters sdl_objectForName:SDLNameVRCommands]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameVRCommands ofClass:NSString.class error:nil]; } - (void)setCmdIcon:(nullable SDLImage *)cmdIcon { - [parameters sdl_setObject:cmdIcon forName:SDLNameCommandIcon]; + [self.parameters sdl_setObject:cmdIcon forName:SDLRPCParameterNameCommandIcon]; } - (nullable SDLImage *)cmdIcon { - return [parameters sdl_objectForName:SDLNameCommandIcon ofClass:SDLImage.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameCommandIcon ofClass:SDLImage.class error:nil]; } -(id)copyWithZone:(nullable NSZone *)zone { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommandResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommandResponse.m index 877b189..1906f7f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommandResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommandResponse.m @@ -3,17 +3,21 @@ #import "SDLAddCommandResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAddCommandResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameAddCommand]) { + if (self = [super initWithName:SDLRPCFunctionNameAddCommand]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.h index bd5537c..6f289e8 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.h @@ -3,6 +3,8 @@ #import "SDLRPCRequest.h" +#import "SDLMenuLayout.h" + @class SDLImage; /** @@ -23,11 +25,40 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLAddSubMenu : SDLRPCRequest + +/// Convenience init for creating an add submenu +/// +/// @param menuId A menu id +/// @param menuName The menu name +/// @return An SDLAddSubMenu object - (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName; -- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName position:(UInt8)position __deprecated_msg(("Use initWithId:menuName:menuIcon:position: instead")); +/// Convenience init for creating an add submenu +/// +/// @param menuId A menu id +/// @param menuName The menu name +/// @param position The position within the menu to add +/// @return An SDLAddSubMenu object +- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName position:(UInt8)position __deprecated_msg("Use initWithId:menuName:menuLayout:menuIcon:position: instead"); + +/// Convenience init for creating an add submenu +/// +/// @param menuId A menu id +/// @param menuName The menu name +/// @param icon The icon to show on the menu item +/// @param position The position within the menu to add +/// @return An SDLAddSubMenu object +- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName menuIcon:(nullable SDLImage *)icon position:(UInt8)position __deprecated_msg("Use initWithId:menuName:menuLayout:menuIcon:position: instead"); -- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName menuIcon:(nullable SDLImage *)icon position:(UInt8)position; +/// Convenience init for creating an add submenu with all properties. +/// +/// @param menuId A menu id +/// @param menuName The menu name +/// @param menuLayout The sub-menu layout +/// @param icon The icon to show on the menu item +/// @param position The position within the menu to add +/// @return An SDLAddSubMenu object +- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName menuLayout:(nullable SDLMenuLayout)menuLayout menuIcon:(nullable SDLImage *)icon position:(UInt8)position; /** * a Menu ID that identifies a sub menu @@ -68,6 +99,11 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) SDLImage *menuIcon; +/** + The sub-menu layout. See available menu layouts on SDLWindowCapability.menuLayoutsAvailable. Defaults to LIST. + */ +@property (strong, nonatomic, nullable) SDLMenuLayout menuLayout; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.m index 2792b65..649a10a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.m @@ -4,74 +4,93 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAddSubMenu +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameAddSubMenu]) { + if (self = [super initWithName:SDLRPCFunctionNameAddSubMenu]) { } return self; } +#pragma clang diagnostic pop -- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName menuIcon:(nullable SDLImage *)icon position:(UInt8)position { - self = [self initWithId:menuId menuName:menuName]; - if (!self) { return nil; } +- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName { + self = [self init]; + if (!self) { + return nil; + } - self.position = @(position); - self.menuIcon = icon; + self.menuID = @(menuId); + self.menuName = menuName; return self; } - (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName position:(UInt8)position { - return [self initWithId:menuId menuName:menuName menuIcon:nil position:position]; + return [self initWithId:menuId menuName:menuName menuLayout:nil menuIcon:nil position:position]; } -- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName { - self = [self init]; - if (!self) { - return nil; - } +- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName menuIcon:(nullable SDLImage *)icon position:(UInt8)position { + return [self initWithId:menuId menuName:menuName menuLayout:nil menuIcon:icon position:position]; +} - self.menuID = @(menuId); - self.menuName = menuName; +- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName menuLayout:(nullable SDLMenuLayout)menuLayout menuIcon:(nullable SDLImage *)icon position:(UInt8)position { + self = [self initWithId:menuId menuName:menuName]; + if (!self) { return nil; } + + self.position = @(position); + self.menuIcon = icon; + self.menuLayout = menuLayout; return self; } - (void)setMenuID:(NSNumber *)menuID { - [parameters sdl_setObject:menuID forName:SDLNameMenuId]; + [self.parameters sdl_setObject:menuID forName:SDLRPCParameterNameMenuId]; } - (NSNumber *)menuID { - return [parameters sdl_objectForName:SDLNameMenuId]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuId ofClass:NSNumber.class error:&error]; } - (void)setPosition:(nullable NSNumber *)position { - [parameters sdl_setObject:position forName:SDLNamePosition]; + [self.parameters sdl_setObject:position forName:SDLRPCParameterNamePosition]; } - (nullable NSNumber *)position { - return [parameters sdl_objectForName:SDLNamePosition]; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePosition ofClass:NSNumber.class error:nil]; } - (void)setMenuName:(NSString *)menuName { - [parameters sdl_setObject:menuName forName:SDLNameMenuName]; + [self.parameters sdl_setObject:menuName forName:SDLRPCParameterNameMenuName]; } - (NSString *)menuName { - return [parameters sdl_objectForName:SDLNameMenuName]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuName ofClass:NSString.class error:&error]; } - (void)setMenuIcon:(nullable SDLImage *)menuIcon { - [parameters sdl_setObject:menuIcon forName:SDLNameMenuIcon]; + [self.parameters sdl_setObject:menuIcon forName:SDLRPCParameterNameMenuIcon]; } - (nullable SDLImage *)menuIcon { - return [parameters sdl_objectForName:SDLNameMenuIcon ofClass:[SDLImage class]]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuIcon ofClass:[SDLImage class] error:nil]; +} + +- (void)setMenuLayout:(nullable SDLMenuLayout)menuLayout { + [self.parameters sdl_setObject:menuLayout forName:SDLRPCParameterNameMenuLayout]; +} + +- (nullable SDLMenuLayout)menuLayout { + return [self.parameters sdl_enumForName:SDLRPCParameterNameMenuLayout error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenuResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenuResponse.m index 41ab1d8..e47fe72 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenuResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenuResponse.m @@ -3,17 +3,21 @@ #import "SDLAddSubMenuResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAddSubMenuResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameAddSubMenu]) { + if (self = [super initWithName:SDLRPCFunctionNameAddSubMenu]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAirbagStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAirbagStatus.m index 453d083..650a2c5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAirbagStatus.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAirbagStatus.m @@ -3,73 +3,81 @@ #import "SDLAirbagStatus.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAirbagStatus - (void)setDriverAirbagDeployed:(SDLVehicleDataEventStatus)driverAirbagDeployed { - [store sdl_setObject:driverAirbagDeployed forName:SDLNameDriverAirbagDeployed]; + [self.store sdl_setObject:driverAirbagDeployed forName:SDLRPCParameterNameDriverAirbagDeployed]; } - (SDLVehicleDataEventStatus)driverAirbagDeployed { - return [store sdl_objectForName:SDLNameDriverAirbagDeployed]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameDriverAirbagDeployed error:&error]; } - (void)setDriverSideAirbagDeployed:(SDLVehicleDataEventStatus)driverSideAirbagDeployed { - [store sdl_setObject:driverSideAirbagDeployed forName:SDLNameDriverSideAirbagDeployed]; + [self.store sdl_setObject:driverSideAirbagDeployed forName:SDLRPCParameterNameDriverSideAirbagDeployed]; } - (SDLVehicleDataEventStatus)driverSideAirbagDeployed { - return [store sdl_objectForName:SDLNameDriverSideAirbagDeployed]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameDriverSideAirbagDeployed error:&error]; } - (void)setDriverCurtainAirbagDeployed:(SDLVehicleDataEventStatus)driverCurtainAirbagDeployed { - [store sdl_setObject:driverCurtainAirbagDeployed forName:SDLNameDriverCurtainAirbagDeployed]; + [self.store sdl_setObject:driverCurtainAirbagDeployed forName:SDLRPCParameterNameDriverCurtainAirbagDeployed]; } - (SDLVehicleDataEventStatus)driverCurtainAirbagDeployed { - return [store sdl_objectForName:SDLNameDriverCurtainAirbagDeployed]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameDriverCurtainAirbagDeployed error:&error]; } - (void)setPassengerAirbagDeployed:(SDLVehicleDataEventStatus)passengerAirbagDeployed { - [store sdl_setObject:passengerAirbagDeployed forName:SDLNamePassengerAirbagDeployed];} + [self.store sdl_setObject:passengerAirbagDeployed forName:SDLRPCParameterNamePassengerAirbagDeployed];} - (SDLVehicleDataEventStatus)passengerAirbagDeployed { - return [store sdl_objectForName:SDLNamePassengerAirbagDeployed]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNamePassengerAirbagDeployed error:&error]; } - (void)setPassengerCurtainAirbagDeployed:(SDLVehicleDataEventStatus)passengerCurtainAirbagDeployed { - [store sdl_setObject:passengerCurtainAirbagDeployed forName:SDLNamePassengerCurtainAirbagDeployed]; + [self.store sdl_setObject:passengerCurtainAirbagDeployed forName:SDLRPCParameterNamePassengerCurtainAirbagDeployed]; } - (SDLVehicleDataEventStatus)passengerCurtainAirbagDeployed { - return [store sdl_objectForName:SDLNamePassengerCurtainAirbagDeployed]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNamePassengerCurtainAirbagDeployed error:&error]; } - (void)setDriverKneeAirbagDeployed:(SDLVehicleDataEventStatus)driverKneeAirbagDeployed { - [store sdl_setObject:driverKneeAirbagDeployed forName:SDLNameDriverKneeAirbagDeployed]; + [self.store sdl_setObject:driverKneeAirbagDeployed forName:SDLRPCParameterNameDriverKneeAirbagDeployed]; } - (SDLVehicleDataEventStatus)driverKneeAirbagDeployed { - return [store sdl_objectForName:SDLNameDriverKneeAirbagDeployed]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameDriverKneeAirbagDeployed error:&error]; } - (void)setPassengerSideAirbagDeployed:(SDLVehicleDataEventStatus)passengerSideAirbagDeployed { - [store sdl_setObject:passengerSideAirbagDeployed forName:SDLNamePassengerSideAirbagDeployed]; + [self.store sdl_setObject:passengerSideAirbagDeployed forName:SDLRPCParameterNamePassengerSideAirbagDeployed]; } - (SDLVehicleDataEventStatus)passengerSideAirbagDeployed { - return [store sdl_objectForName:SDLNamePassengerSideAirbagDeployed]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNamePassengerSideAirbagDeployed error:&error]; } - (void)setPassengerKneeAirbagDeployed:(SDLVehicleDataEventStatus)passengerKneeAirbagDeployed { - [store sdl_setObject:passengerKneeAirbagDeployed forName:SDLNamePassengerKneeAirbagDeployed]; + [self.store sdl_setObject:passengerKneeAirbagDeployed forName:SDLRPCParameterNamePassengerKneeAirbagDeployed]; } - (SDLVehicleDataEventStatus)passengerKneeAirbagDeployed { - return [store sdl_objectForName:SDLNamePassengerKneeAirbagDeployed]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNamePassengerKneeAirbagDeployed error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.h index ad97d7e..6a9a25e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.h @@ -4,157 +4,261 @@ #import "SDLRPCRequest.h" +@class SDLImage; @class SDLSoftButton; @class SDLTTSChunk; +NS_ASSUME_NONNULL_BEGIN + /** - * Shows an alert which typically consists of text-to-speech message and text on the display. At least either alertText1, alertText2 or TTSChunks need to be provided. - * - *
    - *
  • The displayed portion of the SDLAlert, if any, will persist until the - * specified timeout has elapsed, or the SDLAlert is preempted
  • - *
  • An SDLAlert will preempt (abort) any SmartDeviceLink Operation that is in-progress, - * except an already-in-progress SDLAlert
  • - *
  • An SDLAlert cannot be preempted by any SmartDeviceLink Operation
  • - *
  • An SDLAlert can be preempted by a user action (button push)
  • - *
  • An SDLAlert will fail if it is issued while another SDLAlert is in progress
  • - *
  • Although each Alert parameter is optional, in fact each SDLAlert request - * must supply at least one of the following parameters:
    - *
      - *
    • alertText1
    • - *
    • alertText2
    • - *
    • alertText3
    • - *
    • ttsChunks
    • - *
    - *
  • - *
- *
- * HMILevel needs to be FULL or LIMITED.
- * If the app has been granted function group Notification the SDLHMILevel can - * also be BACKGROUND
- * - * @since SDL 1.0 - */ + Shows an alert which typically consists of text-to-speech message and text on the display. Either `alertText1`, `alertText2` or `TTSChunks` needs to be set or the request will be rejected. -NS_ASSUME_NONNULL_BEGIN + If connecting to SDL Core v.6.0+, the alert can be canceled programmatically using the `cancelID`. Canceling will not dismiss the alert's speech - only the modal view will be dismissed. On older versions of SDL Core, the alert will persist until the user has interacted with the alert or the specified timeout has elapsed. + @since SDL 1.0 + */ @interface SDLAlert : SDLRPCRequest +/** + Convenience init for creating a modal view with text, buttons, and optional sound cues. -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 duration:(UInt16)duration; + @param alertText The string to be displayed in the first field of the display + @param softButtons Soft buttons to be displayed + @param playTone Whether the alert tone should be played before the TTS (if any) is spoken + @param ttsChunks Speech or a sound file to be played when the alert shows + @param cancelID An ID for this specific alert to allow cancellation through the `CancelInteraction` RPC + @param icon Image to be displayed in the alert + @return An SDLAlert object + */ +- (instancetype)initWithAlertText:(nullable NSString *)alertText softButtons:(nullable NSArray *)softButtons playTone:(BOOL)playTone ttsChunks:(nullable NSArray *)ttsChunks alertIcon:(nullable SDLImage *)icon cancelID:(UInt32)cancelID; -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3; +/** + Convenience init for creating a sound-only alert. -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration; + @param ttsChunks Speech or a sound file to be played when the alert shows + @param playTone Whether the alert tone should be played before the TTS is spoken + @return An SDLAlert object + */ +- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks playTone:(BOOL)playTone; -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons; +/** + Convenience init for setting all alert parameters. -- (instancetype)initWithTTS:(nullable NSString *)ttsText playTone:(BOOL)playTone; + @param alertText1 The first line of the alert + @param alertText2 The second line of the alert + @param alertText3 The third line of the alert + @param softButtons Buttons for the alert + @param playTone Whether the alert tone should be played before the TTS (if any) is spoken + @param ttsChunks An array of text chunks to be spoken or a prerecorded sound file + @param duration The duration of the displayed portion of the alert, in milliseconds + @param progressIndicator Whether an animation indicating that loading of a feature is progressing should be shown + @param cancelID An ID for this specific alert to allow cancellation through the `CancelInteraction` RPC + @param icon Image to be displayed in the alert + @return An SDLAlert object + */ +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 softButtons:(nullable NSArray *)softButtons playTone:(BOOL)playTone ttsChunks:(nullable NSArray *)ttsChunks duration:(UInt16)duration progressIndicator:(BOOL)progressIndicator alertIcon:(nullable SDLImage *)icon cancelID:(UInt32)cancelID; -- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 playTone:(BOOL)playTone duration:(UInt16)duration; +/** + Convenience init for creating an alert with two lines of text and a timeout. -- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration; + @param alertText1 The first line of the alert + @param alertText2 The second line of the alert + @param duration The duration of the displayed portion of the alert, in milliseconds + @return An SDLAlert object + */ +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 duration:(UInt16)duration __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); -- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks playTone:(BOOL)playTone; +/** + Convenience init for creating an alert with three lines of text. -- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone softButtons:(nullable NSArray *)softButtons; + @param alertText1 The first line of the alert + @param alertText2 The second line of the alert + @param alertText3 The third line of the alert + @return An SDLAlert object + */ +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); -- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons; +/** + Convenience init for creating an alert with three lines of text and a timeout. + @param alertText1 The first line of the alert + @param alertText2 The second line of the alert + @param alertText3 The third line of the alert + @param duration The duration of the displayed portion of the alert, in milliseconds + @return An SDLAlert object + */ +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); /** - * The String to be displayed in the first field of the display during the Alert - * - * @discussion Length is limited to what is indicated in *SDLRegisterAppInterface* response - * - * If omitted, top display line will be cleared - * - * Text is always centered - * - * Optional, Max length 500 chars + Convenience init for creating an alert with three lines of text and a timeout. + + @param alertText1 The first line of the alert + @param alertText2 The second line of the alert + @param alertText3 The third line of the alert + @param duration The duration of the displayed portion of the alert, in milliseconds + @param softButtons Buttons for the alert + @return An SDLAlert object + */ +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); + +/** + Convenience init for creating a speech-only alert. + + @param ttsText Speech to be played + @param playTone Whether the alert tone should be played before the TTS is spoken + @return An SDLAlert object + */ +- (instancetype)initWithTTS:(nullable NSString *)ttsText playTone:(BOOL)playTone __deprecated_msg("Use initWithTTS:playTone: instead"); + +/** + Convenience init for creating an alert with two lines of text, optional sound cues, and a timout. + + @param ttsText Speech to be played + @param alertText1 The first line of the alert + @param alertText2 The second line of the alert + @param playTone Whether the alert tone should be played before the TTS is spoken + @param duration The duration of the displayed portion of the alert, in milliseconds + @return An SDLAlert object + */ +- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 playTone:(BOOL)playTone duration:(UInt16)duration __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); + +/** + Convenience init for creating an alert with three lines of text, optional sound cues, and a timout. + + @param ttsText Speech to be played + @param alertText1 The first line of the alert + @param alertText2 The second line of the alert + @param alertText3 The third line of the alert + @param playTone Whether the alert tone should be played before the TTS is spoken + @param duration The duration of the displayed portion of the alert, in milliseconds + @return An SDLAlert object + */ +- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); + +/** + Convenience init for creating an alert with three lines of text, soft buttons, and optional sound cues. + + @param ttsChunks Speech or a sound file to be played when the alert shows + @param alertText1 The first line of the alert + @param alertText2 The second line of the alert + @param alertText3 The third line of the alert + @param playTone Whether the alert tone should be played before the TTS is spoken + @param softButtons Buttons for the alert + @return An SDLAlert object + */ +- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone softButtons:(nullable NSArray *)softButtons __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); + +/** + Convenience init for creating an alert with three lines of text, soft buttons, optional sound cues, and a timout. + + @param ttsChunks Speech or a sound file to be played when the alert shows + @param alertText1 The first line of the alert + @param alertText2 The second line of the alert + @param alertText3 The third line of the alert + @param playTone Whether the alert tone should be played before the TTS is spoken + @param duration The duration of the displayed portion of the alert, in milliseconds + @param softButtons Buttons for the alert + @return An SDLAlert object + */ +- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); + +/** + The first line of the alert text field. + + @discussion At least either `alertText1`, `alertText2` or `ttsChunks` need to be provided. + @discussion If supported, the `displayCapabilities` will have a `TextField` with a `name` of `alertText1`. + + String, Optional, Max length 500 chars + @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSString *alertText1; /** - * The String to be displayed in the second field of the display during the Alert - * - * @discussion Only permitted if HMI supports a second display line - * - * Length is limited to what is indicated in *SDLRegisterAppInterface* response - * - * If omitted, second display line will be cleared - * - * Text is always centered - * - * Optional, Max length 500 chars + The second line of the alert text field. + + @discussion At least either `alertText1`, `alertText2` or `ttsChunks` need to be provided. + @discussion If supported, the `displayCapabilities` will have a `TextField` with a `name` of `alertText2` + + String, Optional, Max length 500 chars + @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSString *alertText2; /** - * the String to be displayed in the third field of the display during the Alert - * @discussion Only permitted if HMI supports a third display line - * - * Length is limited to what is indicated in *SDLRegisterAppInterface* response - * - * If omitted, third display line will be cleared - * - * Text is always centered - * - * Optional, Max length 500 chars + The optional third line of the alert text field. + + @discussion If supported, the `displayCapabilities` will have a `TextField` with a `name` of `alertText3` + + String, Optional, Max length 500 chars + @since SDL 2.0 */ @property (nullable, strong, nonatomic) NSString *alertText3; /** - * An array which, taken together, specify what is to be spoken to the user - * - * Optional, Array of SDLTTSChunk, Array length 1 - 100 - * - * @see SDLTTSChunk + An array of text chunks to be spoken or a prerecorded sound file. + + @discussion At least either `alertText1`, `alertText2` or `ttsChunks` need to be provided. + + Array of SDLTTSChunk, Optional, Array length 1 - 100 + + @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSArray *ttsChunks; /** - * The duration of the displayed portion of the alert, in milliseconds. - * - * @discussion After this amount of time has passed, the display fields alertText1 and alertText2 will revert to what was displayed in those fields before the alert began. - * - * Typical timeouts are 3 - 5 seconds - * - * If omitted, the timeout is set to 5 seconds - * - * Optional, Integer, 3000 - 10000 + The duration of the displayed portion of the alert, in milliseconds. Typical timeouts are 3 - 5 seconds. If omitted, the timeout is set to a default of 5 seconds. + + Integer, Optional, Min value: 3000, Max value: 10000 + + @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSNumber *duration; /** - * Whether the alert tone should be played before the TTS (if any) is spoken. - * - * @discussion If ommitted, no tone is played - * - * Optional, Boolean + Whether the alert tone should be played before the TTS (if any) is spoken. If omitted or set to false, no tone is played. + + Boolean, Optional + + @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSNumber *playTone; /** - * If supported on the given platform, the alert GUI will include some sort of animation indicating that loading of a feature is progressing. e.g. a spinning wheel or hourglass, etc. - * - * Optional, Boolean - * - * @since SmartDeviceLink 2.0 + If supported on the given platform, the alert GUI will include some sort of animation indicating that loading of a feature is progressing (e.g. a spinning wheel or hourglass, etc.). + + Boolean, Optional + + @since SDL 2.0 */ @property (nullable, strong, nonatomic) NSNumber *progressIndicator; /** - * App defined SoftButtons. - * - * @discussion If omitted on supported displays, the displayed alert shall not have any SoftButtons - * - * Optional, Array of SDLSoftButton, Array size 0 - 4 - * - * @see SDLSoftButton + Buttons for the displayed alert. If omitted on supported displays, the displayed alert shall not have any buttons. + + Array of SDLSoftButton, Optional, Array size 0 - 4 + + @since SDL 2.0 */ @property (nullable, strong, nonatomic) NSArray *softButtons; +/** + An ID for this specific alert to allow cancellation through the `CancelInteraction` RPC. + + Integer, Optional + + @see SDLCancelInteraction + @since SDL 6.0 + */ +@property (nullable, strong, nonatomic) NSNumber *cancelID; + +/** + Image to be displayed in the alert. If omitted on supported displays, no (or the default if applicable) icon should be displayed. + + SDLImage, Optional + @since SDL 6.0 + */ +@property (nullable, strong, nonatomic) SDLImage *alertIcon; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.m index 0f7c78a..041943a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.m @@ -3,24 +3,60 @@ #import "SDLAlert.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLImage.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSoftButton.h" #import "SDLTTSChunk.h" -static UInt16 const SDLDefaultDuration = 5000; +static UInt16 const DefaultAlertDuration = 5000; NS_ASSUME_NONNULL_BEGIN @implementation SDLAlert +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameAlert]) { + if (self = [super initWithName:SDLRPCFunctionNameAlert]) { } return self; } +#pragma clang diagnostic pop + +- (instancetype)initWithAlertText:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 softButtons:(nullable NSArray *)softButtons playTone:(BOOL)playTone ttsChunks:(nullable NSArray *)ttsChunks duration:(nullable NSNumber *)duration progressIndicator:(BOOL)progressIndicator alertIcon:(nullable SDLImage *)icon cancelID:(nullable NSNumber *)cancelID { + self = [self init]; + if (!self) { + return nil; + } + self.alertText1 = alertText1; + self.alertText2 = alertText2; + self.alertText3 = alertText3; + self.ttsChunks = ttsChunks; + self.duration = duration; + self.playTone = @(playTone); + self.progressIndicator = @(progressIndicator); + self.softButtons = softButtons; + self.alertIcon = icon; + self.cancelID = cancelID; + + return self; +} + +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 softButtons:(nullable NSArray *)softButtons playTone:(BOOL)playTone ttsChunks:(nullable NSArray *)ttsChunks duration:(UInt16)duration progressIndicator:(BOOL)progressIndicator alertIcon:(nullable SDLImage *)icon cancelID:(UInt32)cancelID { + return [self initWithAlertText:alertText1 alertText2:alertText2 alertText3:alertText3 softButtons:softButtons playTone:playTone ttsChunks:ttsChunks duration:@(duration) progressIndicator:progressIndicator alertIcon:icon cancelID:@(cancelID)]; +} + +- (instancetype)initWithTTS:(nullable NSString *)ttsText playTone:(BOOL)playTone { + return [self initWithTTS:ttsText alertText1:nil alertText2:nil playTone:playTone duration:DefaultAlertDuration]; +} + +- (instancetype)initWithAlertText:(nullable NSString *)alertText softButtons:(nullable NSArray *)softButtons playTone:(BOOL)playTone ttsChunks:(nullable NSArray *)ttsChunks alertIcon:(nullable SDLImage *)icon cancelID:(UInt32)cancelID { + return [self initWithAlertText:alertText alertText2:nil alertText3:nil softButtons:softButtons playTone:playTone ttsChunks:ttsChunks duration:nil progressIndicator:false alertIcon:icon cancelID:@(cancelID)]; +} - (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 { - return [self initWithAlertText1:alertText1 alertText2:alertText2 alertText3:alertText3 duration:SDLDefaultDuration]; + return [self initWithAlertText1:alertText1 alertText2:alertText2 alertText3:alertText3 duration:DefaultAlertDuration]; } - (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 duration:(UInt16)duration { @@ -35,10 +71,6 @@ - (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(n return [self initWithTTSChunks:nil alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:NO duration:duration softButtons:softButtons]; } -- (instancetype)initWithTTS:(nullable NSString *)ttsText playTone:(BOOL)playTone { - return [self initWithTTS:ttsText alertText1:nil alertText2:nil playTone:playTone duration:SDLDefaultDuration]; -} - - (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 playTone:(BOOL)playTone duration:(UInt16)duration { return [self initWithTTS:ttsText alertText1:alertText1 alertText2:alertText2 alertText3:nil playTone:playTone duration:duration]; } @@ -49,92 +81,97 @@ - (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NS } - (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks playTone:(BOOL)playTone { - return [self initWithTTSChunks:ttsChunks alertText1:nil alertText2:nil alertText3:nil playTone:playTone duration:SDLDefaultDuration softButtons:nil]; + return [self initWithAlertText:nil alertText2:nil alertText3:nil softButtons:nil playTone:playTone ttsChunks:ttsChunks duration:nil progressIndicator:false alertIcon:nil cancelID:nil]; } - (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone softButtons:(nullable NSArray *)softButtons { - return [self initWithTTSChunks:ttsChunks alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:playTone duration:SDLDefaultDuration softButtons:softButtons]; + return [self initWithTTSChunks:ttsChunks alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:playTone duration:DefaultAlertDuration softButtons:softButtons]; } - (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons { - self = [self init]; - if (!self) { - return nil; - } - - self.ttsChunks = [ttsChunks mutableCopy]; - self.alertText1 = alertText1; - self.alertText2 = alertText2; - self.alertText3 = alertText3; - self.playTone = @(playTone); - self.duration = @(duration); - self.softButtons = [softButtons mutableCopy]; - - return self; + return [self initWithAlertText:alertText1 alertText2:alertText2 alertText3:alertText3 softButtons:softButtons playTone:playTone ttsChunks:ttsChunks duration:@(duration) progressIndicator:false alertIcon:nil cancelID:nil]; } +#pragma mark - Getters and Setters + - (void)setAlertText1:(nullable NSString *)alertText1 { - [parameters sdl_setObject:alertText1 forName:SDLNameAlertText1]; + [self.parameters sdl_setObject:alertText1 forName:SDLRPCParameterNameAlertText1]; } - (nullable NSString *)alertText1 { - return [parameters sdl_objectForName:SDLNameAlertText1]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAlertText1 ofClass:NSString.class error:nil]; } - (void)setAlertText2:(nullable NSString *)alertText2 { - [parameters sdl_setObject:alertText2 forName:SDLNameAlertText2]; + [self.parameters sdl_setObject:alertText2 forName:SDLRPCParameterNameAlertText2]; } - (nullable NSString *)alertText2 { - return [parameters sdl_objectForName:SDLNameAlertText2]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAlertText2 ofClass:NSString.class error:nil]; } - (void)setAlertText3:(nullable NSString *)alertText3 { - [parameters sdl_setObject:alertText3 forName:SDLNameAlertText3]; + [self.parameters sdl_setObject:alertText3 forName:SDLRPCParameterNameAlertText3]; } - (nullable NSString *)alertText3 { - return [parameters sdl_objectForName:SDLNameAlertText3]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAlertText3 ofClass:NSString.class error:nil]; } - (void)setTtsChunks:(nullable NSArray *)ttsChunks { - [parameters sdl_setObject:ttsChunks forName:SDLNameTTSChunks]; + [self.parameters sdl_setObject:ttsChunks forName:SDLRPCParameterNameTTSChunks]; } - (nullable NSArray *)ttsChunks { - return [parameters sdl_objectsForName:SDLNameTTSChunks ofClass:SDLTTSChunk.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameTTSChunks ofClass:SDLTTSChunk.class error:nil]; } - (void)setDuration:(nullable NSNumber *)duration { - [parameters sdl_setObject:duration forName:SDLNameDuration]; + [self.parameters sdl_setObject:duration forName:SDLRPCParameterNameDuration]; } - (nullable NSNumber *)duration { - return [parameters sdl_objectForName:SDLNameDuration]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDuration ofClass:NSNumber.class error:nil]; } - (void)setPlayTone:(nullable NSNumber *)playTone { - [parameters sdl_setObject:playTone forName:SDLNamePlayTone]; + [self.parameters sdl_setObject:playTone forName:SDLRPCParameterNamePlayTone]; } - (nullable NSNumber *)playTone { - return [parameters sdl_objectForName:SDLNamePlayTone]; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePlayTone ofClass:NSNumber.class error:nil]; } - (void)setProgressIndicator:(nullable NSNumber *)progressIndicator { - [parameters sdl_setObject:progressIndicator forName:SDLNameProgressIndicator]; + [self.parameters sdl_setObject:progressIndicator forName:SDLRPCParameterNameProgressIndicator]; } - (nullable NSNumber *)progressIndicator { - return [parameters sdl_objectForName:SDLNameProgressIndicator]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameProgressIndicator ofClass:NSNumber.class error:nil]; } - (void)setSoftButtons:(nullable NSArray *)softButtons { - [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; + [self.parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; } - (nullable NSArray *)softButtons { - return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; +} + +- (void)setAlertIcon:(nullable SDLImage *)alertIcon { + [self.parameters sdl_setObject:alertIcon forName:SDLRPCParameterNameAlertIcon]; +} + +- (nullable SDLImage *)alertIcon { + return [self.parameters sdl_objectForName:SDLRPCParameterNameAlertIcon ofClass:SDLImage.class error:nil]; +} + +- (void)setCancelID:(nullable NSNumber *)cancelID { + [self.parameters sdl_setObject:cancelID forName:SDLRPCParameterNameCancelID]; +} + +- (nullable NSNumber *)cancelID { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCancelID ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.h index afb0e51..3da7e63 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.h @@ -18,7 +18,19 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLAlertManeuver : SDLRPCRequest +/// Convenience init to create an alert maneuver with required parameters +/// +/// @param ttsText The text to speak +/// @param softButtons An arry of soft buttons +/// +/// @return An SDLAlertManeuver object - (instancetype)initWithTTS:(nullable NSString *)ttsText softButtons:(nullable NSArray *)softButtons; + +/// Convenience init to create an alert maneuver with all parameters +/// +/// @param ttsChunks An array of text chunks +/// @param softButtons An arry of soft buttons +/// @return An SDLAlertManeuver object - (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks softButtons:(nullable NSArray *)softButtons; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.m index f56a535..c92ee6b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.m @@ -5,7 +5,8 @@ #import "SDLAlertManeuver.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSoftButton.h" #import "SDLTTSChunk.h" @@ -13,11 +14,14 @@ @implementation SDLAlertManeuver +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameAlertManeuver]) { + if (self = [super initWithName:SDLRPCFunctionNameAlertManeuver]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithTTS:(nullable NSString *)ttsText softButtons:(nullable NSArray *)softButtons { @@ -38,19 +42,19 @@ - (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks s } - (void)setTtsChunks:(nullable NSArray *)ttsChunks { - [parameters sdl_setObject:ttsChunks forName:SDLNameTTSChunks]; + [self.parameters sdl_setObject:ttsChunks forName:SDLRPCParameterNameTTSChunks]; } - (nullable NSArray *)ttsChunks { - return [parameters sdl_objectsForName:SDLNameTTSChunks ofClass:SDLTTSChunk.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameTTSChunks ofClass:SDLTTSChunk.class error:nil]; } - (void)setSoftButtons:(nullable NSArray *)softButtons { - [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; + [self.parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; } - (nullable NSArray *)softButtons { - return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuverResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuverResponse.m index 99cc21c..89c0f33 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuverResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuverResponse.m @@ -4,17 +4,21 @@ #import "SDLAlertManeuverResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAlertManeuverResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameAlertManeuver]) { + if (self = [super initWithName:SDLRPCFunctionNameAlertManeuver]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.h index 771d666..db73310 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.h @@ -14,6 +14,9 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLAlertResponse : SDLRPCResponse +/// Amount of time (in seconds) that an app must wait before resending an alert. +/// +/// @since RPC 2.0 @property (nullable, strong, nonatomic) NSNumber *tryAgainTime; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.m index e2da4bb..401b29e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.m @@ -4,23 +4,27 @@ #import "SDLAlertResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAlertResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameAlert]) { + if (self = [super initWithName:SDLRPCFunctionNameAlert]) { } return self; } +#pragma clang diagnostic pop - (void)setTryAgainTime:(nullable NSNumber *)tryAgainTime { - [parameters sdl_setObject:tryAgainTime forName:SDLNameTryAgainTime];} + [self.parameters sdl_setObject:tryAgainTime forName:SDLRPCParameterNameTryAgainTime];} - (nullable NSNumber *)tryAgainTime { - return [parameters sdl_objectForName:SDLNameTryAgainTime]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTryAgainTime ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.h index c73064d..2aaff16 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.h @@ -10,6 +10,9 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLAppInfo : SDLRPCStruct +/// Convenience init with no parameters +/// +/// @return An SDLAppInfo object + (instancetype)currentAppInfo; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.m index a9102d4..1b7ec01 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.m @@ -4,7 +4,7 @@ #import "SDLAppInfo.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" static NSString *const SDLBundleShortVersionStringKey = @"CFBundleShortVersionString"; static NSString *const SDLBundleAppNameKey = @"CFBundleName"; @@ -27,27 +27,30 @@ + (instancetype)currentAppInfo { } - (void)setAppDisplayName:(NSString *)appDisplayName { - [store sdl_setObject:appDisplayName forName:SDLNameAppDisplayName]; + [self.store sdl_setObject:appDisplayName forName:SDLRPCParameterNameAppDisplayName]; } - (NSString *)appDisplayName { - return [store sdl_objectForName:SDLNameAppDisplayName]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameAppDisplayName ofClass:NSString.class error:&error]; } - (void)setAppBundleID:(NSString *)appBundleID { - [store sdl_setObject:appBundleID forName:SDLNameAppBundleId]; + [self.store sdl_setObject:appBundleID forName:SDLRPCParameterNameAppBundleId]; } - (NSString *)appBundleID { - return [store sdl_objectForName:SDLNameAppBundleId]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameAppBundleId ofClass:NSString.class error:&error]; } - (void)setAppVersion:(NSString *)appVersion { - [store sdl_setObject:appVersion forName:SDLNameAppVersion]; + [self.store sdl_setObject:appVersion forName:SDLRPCParameterNameAppVersion]; } - (NSString *)appVersion { - return [store sdl_objectForName:SDLNameAppVersion]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameAppVersion ofClass:NSString.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h index 79b3f1c..8b30c64 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h @@ -63,3 +63,13 @@ extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReason * @since SDL 2.0 */ extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonAppUnauthorized; + +/// The app could not register due to a protocol violation +/// +/// @since RPC 4.0 +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonProtocolViolation; + +/// The HMI resource is unsupported +/// +/// @since RPC 4.1 +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m index cf8cae7..8bc3231 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m @@ -14,3 +14,5 @@ SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonMasterReset = @"MASTER_RESET"; SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonFactoryDefaults = @"FACTORY_DEFAULTS"; SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonAppUnauthorized = @"APP_UNAUTHORIZED"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonProtocolViolation = @"PROTOCOL_VIOLATION"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource = @"UNSUPPORTED_HMI_RESOURCE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.h new file mode 100644 index 0000000..803f82c --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.h @@ -0,0 +1,56 @@ +// +// SDLAppServiceCapability.h +// SmartDeviceLink +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" +#import "SDLServiceUpdateReason.h" + +@class SDLAppServiceRecord; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A currently available service. + * + * @since RPC 5.1 + */ +@interface SDLAppServiceCapability : SDLRPCStruct + +/** + * Convenience init for required parameters. + * + * @param updatedAppServiceRecord Service record for a specific app service provider + * @return A SDLAppServiceCapability object + */ +- (instancetype)initWithUpdatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for all parameters. + * + * @param updateReason Update reason for this service record + * @param updatedAppServiceRecord Service record for a specific app service provider + * @return A SDLAppServiceCapability object + */ +- (instancetype)initWithUpdateReason:(nullable SDLServiceUpdateReason)updateReason updatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord; + +/** + * Only included in `OnSystemCapbilityUpdated`. Update reason for this service record. + * + * SDLServiceUpdateReason, Optional + */ +@property (nullable, strong, nonatomic) SDLServiceUpdateReason updateReason; + +/** + * Service record for a specific app service provider. + * + * SDLAppServiceRecord, Required + */ +@property (strong, nonatomic) SDLAppServiceRecord *updatedAppServiceRecord; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.m new file mode 100644 index 0000000..595540c --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.m @@ -0,0 +1,61 @@ +// +// SDLAppServiceCapability.m +// SmartDeviceLink +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAppServiceCapability.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLAppServiceRecord.h" +#import "SDLRPCParameterNames.h" +#import "SDLServiceUpdateReason.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLAppServiceCapability + +- (instancetype)initWithUpdatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord { + self = [super init]; + if (!self) { + return self; + } + + self.updatedAppServiceRecord = updatedAppServiceRecord; + + return self; +} + +- (instancetype)initWithUpdateReason:(nullable SDLServiceUpdateReason)updateReason updatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord { + self = [self initWithUpdatedAppServiceRecord:updatedAppServiceRecord]; + if (!self) { + return self; + } + + self.updateReason = updateReason; + + return self; +} + +- (void)setUpdateReason:(nullable SDLServiceUpdateReason)updateReason { + [self.store sdl_setObject:updateReason forName:SDLRPCParameterNameUpdateReason]; +} + +- (nullable SDLServiceUpdateReason)updateReason { + return [self.store sdl_enumForName:SDLRPCParameterNameUpdateReason error:nil]; +} + +- (void)setUpdatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord { + [self.store sdl_setObject:updatedAppServiceRecord forName:SDLRPCParameterNameUpdatedAppServiceRecord]; +} + +- (SDLAppServiceRecord *)updatedAppServiceRecord { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameUpdatedAppServiceRecord ofClass:SDLAppServiceRecord.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.h new file mode 100644 index 0000000..28a6121 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.h @@ -0,0 +1,112 @@ +// +// SDLAppServiceData.h +// SmartDeviceLink +// +// Created by Nicole on 2/1/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +#import "SDLAppServiceType.h" + +@class SDLMediaServiceData; +@class SDLNavigationServiceData; +@class SDLWeatherServiceData; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * Contains all the current data of the app service. The serviceType will link to which of the service data objects are included in this object (e.g. if the service type is MEDIA, the mediaServiceData param should be included). + * + * @since RPC 5.1 + */ +@interface SDLAppServiceData : SDLRPCStruct + +/** + * Convenience init for service type and service id. + * + * @param serviceType The type of service that is to be offered by this app. + * @param serviceId A unique ID tied to this specific service record. + * @return A SDLAppServiceData object + */ +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType serviceId:(NSString *)serviceId NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for media service data. + * + * @param mediaServiceData The media service data + * @param serviceId A unique ID tied to this specific service record. + * @return A SDLAppServiceData object + */ +- (instancetype)initWithMediaServiceData:(SDLMediaServiceData *)mediaServiceData serviceId:(NSString *)serviceId; + +/** + * Convenience init for weather service data. + * + * @param weatherServiceData The weather service data + * @param serviceId A unique ID tied to this specific service record. + * @return A SDLAppServiceData object + */ +- (instancetype)initWithWeatherServiceData:(SDLWeatherServiceData *)weatherServiceData serviceId:(NSString *)serviceId; + +/** + * Convenience init for navigation service data. + * + * @param navigationServiceData The navigation service data + * @param serviceId A unique ID tied to this specific service record. + * @return A SDLAppServiceData object + */ +- (instancetype)initWithNavigationServiceData:(SDLNavigationServiceData *)navigationServiceData serviceId:(NSString *)serviceId; + +/** + * Convenience init for all parameters. + * + * @param serviceType The type of service that is to be offered by this app. + * @param serviceId A unique ID tied to this specific service record. + * @param mediaServiceData The media service data + * @param weatherServiceData The weather service data + * @param navigationServiceData The navigation service data + * @return A SDLAppServiceData object + */ +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType serviceId:(NSString *)serviceId mediaServiceData:(nullable SDLMediaServiceData *)mediaServiceData weatherServiceData:(nullable SDLWeatherServiceData *)weatherServiceData navigationServiceData:(nullable SDLNavigationServiceData *)navigationServiceData; + +/** + * The type of service that is to be offered by this app. See `AppServiceType` for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core. + * + * String, See `SDLAppServiceType`, Required + */ +@property (strong, nonatomic) NSString *serviceType; + +/** + * A unique ID tied to this specific service record. The ID is supplied by the module that services publish themselves. + * + * String, Required + */ +@property (strong, nonatomic) NSString *serviceId; + +/** + * The media service data. + * + * SDLMediaServiceData, Optional + */ +@property (nullable, strong, nonatomic) SDLMediaServiceData *mediaServiceData; + +/** + * The weather service data. + * + * SDLWeatherServiceData, Optional + */ +@property (nullable, strong, nonatomic) SDLWeatherServiceData *weatherServiceData; + +/** + * The navigation service data. + * + * SDLNavigationServiceData, Optional + */ +@property (nullable, strong, nonatomic) SDLNavigationServiceData *navigationServiceData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.m new file mode 100644 index 0000000..13565a7 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.m @@ -0,0 +1,124 @@ +// +// SDLAppServiceData.m +// SmartDeviceLink +// +// Created by Nicole on 2/1/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAppServiceData.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +#import "SDLAppServiceType.h" +#import "SDLMediaServiceData.h" +#import "SDLNavigationServiceData.h" +#import "SDLWeatherServiceData.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLAppServiceData + +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType serviceId:(NSString *)serviceId { + self = [super init]; + if (!self) { + return nil; + } + + self.serviceType = serviceType; + self.serviceId = serviceId; + + return self; +} + +- (instancetype)initWithMediaServiceData:(SDLMediaServiceData *)mediaServiceData serviceId:(NSString *)serviceId { + self = [self initWithAppServiceType:SDLAppServiceTypeMedia serviceId:serviceId]; + if (!self) { + return nil; + } + + self.mediaServiceData = mediaServiceData; + + return self; +} + +- (instancetype)initWithWeatherServiceData:(SDLWeatherServiceData *)weatherServiceData serviceId:(NSString *)serviceId { + self = [self initWithAppServiceType:SDLAppServiceTypeWeather serviceId:serviceId]; + if (!self) { + return nil; + } + + self.weatherServiceData = weatherServiceData; + + return self; +} + +- (instancetype)initWithNavigationServiceData:(SDLNavigationServiceData *)navigationServiceData serviceId:(NSString *)serviceId { + self = [self initWithAppServiceType:SDLAppServiceTypeNavigation serviceId:serviceId]; + if (!self) { + return nil; + } + + self.navigationServiceData = navigationServiceData; + + return self; +} + +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType serviceId:(NSString *)serviceId mediaServiceData:(nullable SDLMediaServiceData *)mediaServiceData weatherServiceData:(nullable SDLWeatherServiceData *)weatherServiceData navigationServiceData:(nullable SDLNavigationServiceData *)navigationServiceData { + self = [self initWithAppServiceType:serviceType serviceId:serviceId]; + if (!self) { + return nil; + } + + self.mediaServiceData = mediaServiceData; + self.weatherServiceData = weatherServiceData; + self.navigationServiceData = navigationServiceData; + + return self; +} + +- (void)setServiceType:(NSString *)serviceType { + [self.store sdl_setObject:serviceType forName:SDLRPCParameterNameServiceType]; +} + +- (NSString *)serviceType { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameServiceType ofClass:NSString.class error:&error]; +} + +- (void)setServiceId:(NSString *)serviceId { + [self.store sdl_setObject:serviceId forName:SDLRPCParameterNameServiceID]; +} + +- (NSString *)serviceId { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameServiceID ofClass:NSString.class error:&error]; +} + +- (void)setWeatherServiceData:(nullable SDLWeatherServiceData *)weatherServiceData { + [self.store sdl_setObject:weatherServiceData forName:SDLRPCParameterNameWeatherServiceData]; +} + +- (nullable SDLWeatherServiceData *)weatherServiceData { + return [self.store sdl_objectForName:SDLRPCParameterNameWeatherServiceData ofClass:SDLWeatherServiceData.class error:nil]; +} + +- (void)setMediaServiceData:(nullable SDLMediaServiceData *)mediaServiceData { + [self.store sdl_setObject:mediaServiceData forName:SDLRPCParameterNameMediaServiceData]; +} + +- (nullable SDLMediaServiceData *)mediaServiceData { + return [self.store sdl_objectForName:SDLRPCParameterNameMediaServiceData ofClass:SDLMediaServiceData.class error:nil]; +} + +- (void)setNavigationServiceData:(nullable SDLNavigationServiceData *)navigationServiceData { + [self.store sdl_setObject:navigationServiceData forName:SDLRPCParameterNameNavigationServiceData]; +} + +- (nullable SDLNavigationServiceData *)navigationServiceData { + return [self.store sdl_objectForName:SDLRPCParameterNameNavigationServiceData ofClass:SDLNavigationServiceData.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.h new file mode 100644 index 0000000..1548181 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.h @@ -0,0 +1,219 @@ +// +// SDLAppServiceManifest.h +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +#import "SDLAppServiceType.h" + +@class SDLFunctionID; +@class SDLImage; +@class SDLMediaServiceManifest; +@class SDLNavigationServiceManifest; +@class SDLSyncMsgVersion; +@class SDLMsgVersion; +@class SDLWeatherServiceManifest; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * This manifest contains all the information necessary for the service to be published, activated, and allow consumers to interact with it + */ +@interface SDLAppServiceManifest : SDLRPCStruct + +/** + * Convenience init for serviceType. + * + * @param serviceType The type of service that is to be offered by this app + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for a media service manifest. + * + * @param serviceName Unique name of this service + * @param serviceIcon The file name of the icon to be associated with this service + * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false + * @param rpcSpecVersion This is the max RPC Spec version the app service understands + * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly + * @param mediaServiceManifest A media service manifest + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithMediaServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest __deprecated_msg(("Use initWithMediaServiceName:serviceIcon:allowAppConsumers:maxRPCSpecVersion:handledRPCs:mediaServiceManifest instead")); + +/** + * Convenience init for a media service manifest. + * + * @param serviceName Unique name of this service + * @param serviceIcon The file name of the icon to be associated with this service + * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false + * @param maxRPCSpecVersion This is the max RPC Spec version the app service understands + * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly + * @param mediaServiceManifest A media service manifest + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithMediaServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest; + +/** + * Convenience init for a weather service manifest. + * + * @param serviceName Unique name of this service + * @param serviceIcon The file name of the icon to be associated with this service + * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false + * @param rpcSpecVersion This is the max RPC Spec version the app service understands + * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly + * @param weatherServiceManifest A weather service manifest + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithWeatherServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest __deprecated_msg(("Use initWithWeatherServiceName:serviceIcon:allowAppConsumers::maxRPCSpecVersion:handledRPCs:weatherServiceManifest instead")); + +/** + * Convenience init for a weather service manifest. + * + * @param serviceName Unique name of this service + * @param serviceIcon The file name of the icon to be associated with this service + * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false + * @param maxRPCSpecVersion This is the max RPC Spec version the app service understands + * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly + * @param weatherServiceManifest A weather service manifest + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithWeatherServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest; + +/** + * Convenience init for a navigation service manifest. + * + * @param serviceName Unique name of this service + * @param serviceIcon The file name of the icon to be associated with this service + * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false + * @param rpcSpecVersion This is the max RPC Spec version the app service understands + * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly + * @param navigationServiceManifest A navigation service manifest + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithNavigationServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest __deprecated_msg(("Use initWithNavigationServiceName:serviceIcon:allowAppConsumers:macRPCSpecVersion:handledRPCs:navigationServiceManifest instead")); + +/** + * Convenience init for a navigation service manifest. + * + * @param serviceName Unique name of this service + * @param serviceIcon The file name of the icon to be associated with this service + * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false + * @param maxRPCSpecVersion This is the max RPC Spec version the app service understands + * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly + * @param navigationServiceManifest A navigation service manifest + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithNavigationServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest; + +/** + * Convenience init for all parameters. + * + * @param serviceName Unique name of this service + * @param serviceType The type of service that is to be offered by this app + * @param serviceIcon The file name of the icon to be associated with this service + * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false + * @param rpcSpecVersion This is the max RPC Spec version the app service understands + * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly + * @param mediaServiceManifest A media service manifest + * @param weatherServiceManifest A weather service manifest + * @param navigationServiceManifest A navigation service manifest + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithServiceName:(nullable NSString *)serviceName serviceType:(SDLAppServiceType)serviceType serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest __deprecated_msg(("Use initWithServiceName:serviceType:serviceIcon:allowAppConsumers:maxRPCSpecVersion:handledRPCs:mediaServiceManifest:weatherServiceManifest:navigationServiceManifest instead")); + +/** + * Convenience init for all parameters. + * + * @param serviceName Unique name of this service + * @param serviceType The type of service that is to be offered by this app + * @param serviceIcon The file name of the icon to be associated with this service + * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false + * @param maxRPCSpecVersion This is the max RPC Spec version the app service understands + * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly + * @param mediaServiceManifest A media service manifest + * @param weatherServiceManifest A weather service manifest + * @param navigationServiceManifest A navigation service manifest + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithServiceName:(nullable NSString *)serviceName serviceType:(SDLAppServiceType)serviceType serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest; + +/** + * Unique name of this service. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *serviceName; + +/** + * The type of service that is to be offered by this app. See AppServiceType for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core. + * + * String, See `SDLAppServiceType`, Required + */ +@property (strong, nonatomic) NSString *serviceType; + +/** + * The file name of the icon to be associated with this service. Most likely the same as the appIcon. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) SDLImage *serviceIcon; + +/** + * If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false. + * + * Boolean, Optional, default = NO + */ +@property (nullable, strong, nonatomic) NSNumber *allowAppConsumers; + +/** + * This is the max RPC Spec version the app service understands. This is important during the RPC passthrough functionality. If not included, it is assumed the max version of the module is acceptable. + * + * SyncMsgVersion, Optional + */ +@property (nullable, strong, nonatomic) SDLSyncMsgVersion *rpcSpecVersion __deprecated_msg(("Use maxRPCSpecVersion instead")); + +/** + * This is the max RPC Spec version the app service understands. This is important during the RPC passthrough functionality. If not included, it is assumed the max version of the module is acceptable. + * + * SDLMsgVersion, Optional + */ +@property (nullable, strong, nonatomic) SDLMsgVersion *maxRPCSpecVersion; + +/** + * This field contains the Function IDs for the RPCs that this service intends to handle correctly. This means the service will provide meaningful responses. See FunctionID for enum equivalent values. This parameter is an integer to allow for new function IDs to be used by apps on older versions of SDL Core. + * + * Array of Integers, See `SDLFunctionID`, Optional + */ +@property (nullable, strong, nonatomic) NSArray *handledRPCs; + +/** + * A media service manifest. + * + * SDLMediaServiceManifest, Optional + */ +@property (nullable, strong, nonatomic) SDLMediaServiceManifest *mediaServiceManifest; + +/** + * A weather service manifest. + * + * SDLWeatherServiceManifest, Optional + */ +@property (nullable, strong, nonatomic) SDLWeatherServiceManifest *weatherServiceManifest; + +/** + * A navigation service manifest. + * + * SDLNavigationServiceManifest, Optional + */ +@property (nullable, strong, nonatomic) SDLNavigationServiceManifest *navigationServiceManifest; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.m new file mode 100644 index 0000000..fe58491 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.m @@ -0,0 +1,205 @@ +// +// SDLAppServiceManifest.m +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAppServiceManifest.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +#import "SDLFunctionID.h" +#import "SDLImage.h" +#import "SDLMediaServiceManifest.h" +#import "SDLNavigationServiceManifest.h" +#import "SDLSyncMsgVersion.h" +#import "SDLMsgVersion.h" +#import "SDLWeatherServiceManifest.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLAppServiceManifest + +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType { + self = [super init]; + if (!self) { + return self; + } + + self.serviceType = serviceType; + + return self; +} + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)initWithMediaServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest { + return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeMedia serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers rpcSpecVersion:rpcSpecVersion handledRPCs:handledRPCs mediaServiceManifest:mediaServiceManifest weatherServiceManifest:nil navigationServiceManifest:nil]; +} +#pragma clang diagnostic pop + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)initWithWeatherServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest { + return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeWeather serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers rpcSpecVersion:rpcSpecVersion handledRPCs:handledRPCs mediaServiceManifest:nil weatherServiceManifest:weatherServiceManifest navigationServiceManifest:nil]; +} +#pragma clang diagnostic pop + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)initWithNavigationServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { + return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeNavigation serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers rpcSpecVersion:rpcSpecVersion handledRPCs:handledRPCs mediaServiceManifest:nil weatherServiceManifest:nil navigationServiceManifest:navigationServiceManifest]; +} +#pragma clang diagnostic pop + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)initWithServiceName:(nullable NSString *)serviceName serviceType:(SDLAppServiceType)serviceType serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { + self = [self initWithAppServiceType:serviceType]; + if (!self) { + return self; + } + + self.serviceName = serviceName; + self.serviceIcon = serviceIcon; + self.allowAppConsumers = @(allowAppConsumers); + self.rpcSpecVersion = rpcSpecVersion; + self.handledRPCs = handledRPCs; + self.mediaServiceManifest = mediaServiceManifest; + self.weatherServiceManifest = weatherServiceManifest; + self.navigationServiceManifest = navigationServiceManifest; + + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithMediaServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest { + return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeMedia serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers maxRPCSpecVersion:maxRPCSpecVersion handledRPCs:handledRPCs mediaServiceManifest:mediaServiceManifest weatherServiceManifest:nil navigationServiceManifest:nil]; +} + +- (instancetype)initWithWeatherServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest { + return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeWeather serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers maxRPCSpecVersion:maxRPCSpecVersion handledRPCs:handledRPCs mediaServiceManifest:nil weatherServiceManifest:weatherServiceManifest navigationServiceManifest:nil]; +} + +- (instancetype)initWithNavigationServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { + return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeNavigation serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers maxRPCSpecVersion:maxRPCSpecVersion handledRPCs:handledRPCs mediaServiceManifest:nil weatherServiceManifest:nil navigationServiceManifest:navigationServiceManifest]; +} + +- (instancetype)initWithServiceName:(nullable NSString *)serviceName serviceType:(SDLAppServiceType)serviceType serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { + self = [self initWithAppServiceType:serviceType]; + if (!self) { + return self; + } + + self.serviceName = serviceName; + self.serviceIcon = serviceIcon; + self.allowAppConsumers = @(allowAppConsumers); + self.maxRPCSpecVersion = maxRPCSpecVersion; + self.handledRPCs = handledRPCs; + self.mediaServiceManifest = mediaServiceManifest; + self.weatherServiceManifest = weatherServiceManifest; + self.navigationServiceManifest = navigationServiceManifest; + + return self; +} + +- (void)setServiceName:(nullable NSString *)serviceName { + [self.store sdl_setObject:serviceName forName:SDLRPCParameterNameServiceName]; +} + +- (nullable NSString *)serviceName { + return [self.store sdl_objectForName:SDLRPCParameterNameServiceName ofClass:NSString.class error:nil]; +} + +- (void)setServiceType:(NSString *)serviceType { + [self.store sdl_setObject:serviceType forName:SDLRPCParameterNameServiceType]; +} + +- (NSString *)serviceType { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameServiceType ofClass:NSString.class error:&error]; +} + +- (void)setServiceIcon:(nullable SDLImage *)serviceIcon { + [self.store sdl_setObject:serviceIcon forName:SDLRPCParameterNameServiceIcon]; +} + +- (nullable SDLImage *)serviceIcon { + return [self.store sdl_objectForName:SDLRPCParameterNameServiceIcon ofClass:SDLImage.class error:nil]; +} + +- (void)setAllowAppConsumers:(nullable NSNumber *)allowAppConsumers { + [self.store sdl_setObject:allowAppConsumers forName:SDLRPCParameterNameAllowAppConsumers]; +} + +- (nullable NSNumber *)allowAppConsumers { + return [self.store sdl_objectForName:SDLRPCParameterNameAllowAppConsumers ofClass:NSNumber.class error:nil]; +} + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (void)setRpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion { + if (rpcSpecVersion == nil) { + [self.store sdl_setObject:nil forName:SDLRPCParameterNameRPCSpecVersion]; + return; + } + SDLMsgVersion *maxRPCSpecVersion = [[SDLMsgVersion alloc] initWithMajorVersion:(uint8_t)rpcSpecVersion.majorVersion.unsignedIntValue minorVersion:(uint8_t)rpcSpecVersion.minorVersion.unsignedIntValue patchVersion:(uint8_t)rpcSpecVersion.patchVersion.unsignedIntValue]; + [self.store sdl_setObject:maxRPCSpecVersion forName:SDLRPCParameterNameRPCSpecVersion]; +} + +- (nullable SDLSyncMsgVersion *)rpcSpecVersion { + SDLMsgVersion *maxRPCSpecVersion = [self.store sdl_objectForName:SDLRPCParameterNameRPCSpecVersion ofClass:SDLMsgVersion.class error:nil]; + + if(maxRPCSpecVersion == nil) { + return [self.store sdl_objectForName:SDLRPCParameterNameRPCSpecVersion ofClass:SDLSyncMsgVersion.class error:nil]; + } + + return [[SDLSyncMsgVersion alloc] initWithMajorVersion:(uint8_t)maxRPCSpecVersion.majorVersion.unsignedIntValue minorVersion:(uint8_t)maxRPCSpecVersion.minorVersion.unsignedIntValue patchVersion:(uint8_t)maxRPCSpecVersion.patchVersion.unsignedIntValue]; +} +#pragma clang diagnostic pop + +- (void)setMaxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion { + [self.store sdl_setObject:maxRPCSpecVersion forName:SDLRPCParameterNameRPCSpecVersion]; +} + +- (nullable SDLMsgVersion *)maxRPCSpecVersion { + return [self.store sdl_objectForName:SDLRPCParameterNameRPCSpecVersion ofClass:SDLMsgVersion.class error:nil]; +} + +- (void)setHandledRPCs:(nullable NSArray *)handledRPCs { + [self.store sdl_setObject:handledRPCs forName:SDLRPCParameterNameHandledRPCs]; +} + +- (nullable NSArray *)handledRPCs { + return [self.store sdl_objectsForName:SDLRPCParameterNameHandledRPCs ofClass:NSNumber.class error:nil]; +} + +- (void)setWeatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest { + [self.store sdl_setObject:weatherServiceManifest forName:SDLRPCParameterNameWeatherServiceManifest]; +} + +- (nullable SDLWeatherServiceManifest *)weatherServiceManifest { + return [self.store sdl_objectForName:SDLRPCParameterNameWeatherServiceManifest ofClass:SDLWeatherServiceManifest.class error:nil]; +} + +- (void)setMediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest { + [self.store sdl_setObject:mediaServiceManifest forName:SDLRPCParameterNameMediaServiceManifest]; +} + +- (nullable SDLMediaServiceManifest *)mediaServiceManifest { + return [self.store sdl_objectForName:SDLRPCParameterNameMediaServiceManifest ofClass:SDLMediaServiceManifest.class error:nil]; +} + +- (void)setNavigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { + [self.store sdl_setObject:navigationServiceManifest forName:SDLRPCParameterNameNavigationServiceManifest]; +} + +- (nullable SDLNavigationServiceManifest *)navigationServiceManifest { + return [self.store sdl_objectForName:SDLRPCParameterNameNavigationServiceManifest ofClass:SDLNavigationServiceManifest.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.h new file mode 100644 index 0000000..fd5a3bf --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.h @@ -0,0 +1,64 @@ +// +// SDLAppServiceRecord.h +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +@class SDLAppServiceManifest; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * This is the record of an app service publisher that the module has. It should contain the most up to date information including the service's active state. + * + * @since RPC 5.1 + */ +@interface SDLAppServiceRecord : SDLRPCStruct + +/** + * Convenience init for all parameters. + * + * @param serviceID A unique ID tied to this specific service record + * @param serviceManifest Manifest for the service that this record is for + * @param servicePublished If true, the service is published and available. If false, the service has likely just been unpublished, and should be considered unavailable + * @param serviceActive If true, the service is the active primary service of the supplied service type. + * @return A SDLAppServiceRecord object + */ +- (instancetype)initWithServiceID:(NSString *)serviceID serviceManifest:(SDLAppServiceManifest *)serviceManifest servicePublished:(BOOL)servicePublished serviceActive:(BOOL)serviceActive; + +/** + * A unique ID tied to this specific service record. The ID is supplied by the module that services publish themselves. + * + * String, Required + */ +@property (strong, nonatomic) NSString *serviceID; + +/** + * Manifest for the service that this record is for. + * + * SDLAppServiceManifest, Required + */ +@property (strong, nonatomic) SDLAppServiceManifest *serviceManifest; + +/** + * If true, the service is published and available. If false, the service has likely just been unpublished, and should be considered unavailable. + * + * Boolean, Required + */ +@property (strong, nonatomic) NSNumber *servicePublished; + +/** + * If true, the service is the active primary service of the supplied service type. It will receive all potential RPCs that are passed through to that service type. If false, it is not the primary service of the supplied type. See servicePublished for its availability. + * + * Boolean, Required + */ +@property (strong, nonatomic) NSNumber *serviceActive; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.m new file mode 100644 index 0000000..72711d0 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.m @@ -0,0 +1,71 @@ +// +// SDLAppServiceRecord.m +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAppServiceRecord.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLAppServiceManifest.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLAppServiceRecord + +- (instancetype)initWithServiceID:(NSString *)serviceID serviceManifest:(SDLAppServiceManifest *)serviceManifest servicePublished:(BOOL)servicePublished serviceActive:(BOOL)serviceActive { + self = [self init]; + if (!self) { + return self; + } + + self.serviceID = serviceID; + self.serviceManifest = serviceManifest; + self.servicePublished = @(servicePublished); + self.serviceActive = @(serviceActive); + + return self; +} + +- (void)setServiceID:(NSString *)serviceID { + [self.store sdl_setObject:serviceID forName:SDLRPCParameterNameServiceID]; +} + +- (NSString *)serviceID { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameServiceID ofClass:NSString.class error:&error]; +} + +- (void)setServiceManifest:(SDLAppServiceManifest *)serviceManifest { + [self.store sdl_setObject:serviceManifest forName:SDLRPCParameterNameServiceManifest]; +} + +- (SDLAppServiceManifest *)serviceManifest { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameServiceManifest ofClass:SDLAppServiceManifest.class error:&error]; +} + +- (void)setServicePublished:(NSNumber *)servicePublished { + [self.store sdl_setObject:servicePublished forName:SDLRPCParameterNameServicePublished]; +} + +- (NSNumber *)servicePublished { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameServicePublished ofClass:NSNumber.class error:&error]; +} + +- (void)setServiceActive:(NSNumber *)serviceActive { + [self.store sdl_setObject:serviceActive forName:SDLRPCParameterNameServiceActive]; +} + +- (NSNumber *)serviceActive { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameServiceActive ofClass:NSNumber.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.h new file mode 100644 index 0000000..920f510 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.h @@ -0,0 +1,29 @@ +// +// SDLAppServiceType.h +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * Enumeration listing possible app service types. + */ +typedef SDLEnum SDLAppServiceType SDL_SWIFT_ENUM; + +/** + * The app will have a service type of media. + */ +extern SDLAppServiceType const SDLAppServiceTypeMedia; + +/** + * The app will have a service type of weather. + */ +extern SDLAppServiceType const SDLAppServiceTypeWeather; + +/** + * The app will have a service type of navigation. + */ +extern SDLAppServiceType const SDLAppServiceTypeNavigation; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.m new file mode 100644 index 0000000..7309903 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.m @@ -0,0 +1,13 @@ +// +// SDLAppServiceType.m +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAppServiceType.h" + +SDLAppServiceType const SDLAppServiceTypeMedia = @"MEDIA"; +SDLAppServiceType const SDLAppServiceTypeWeather = @"WEATHER"; +SDLAppServiceType const SDLAppServiceTypeNavigation = @"NAVIGATION"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.h new file mode 100644 index 0000000..feb843c --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.h @@ -0,0 +1,39 @@ +// +// SDLAppServicesCapabilities.h +// SmartDeviceLink +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +@class SDLAppServiceCapability; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Capabilities of app services including what service types are supported and the current state of services. + * + * @since RPC 5.1 + */ +@interface SDLAppServicesCapabilities : SDLRPCStruct + +/** + * Convenience init. + * + * @param appServices An array of currently available services. + * @return A SDLAppServicesCapabilities object + */ +- (instancetype)initWithAppServices:(nullable NSArray *)appServices; + +/** + * An array of currently available services. If this is an update to the capability the affected services will include an update reason in that item. + * + * Array of SDLAppServiceCapability, Optional + */ +@property (nullable, strong, nonatomic) NSArray *appServices; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.m new file mode 100644 index 0000000..a31b5d4 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.m @@ -0,0 +1,40 @@ +// +// SDLAppServicesCapabilities.m +// SmartDeviceLink +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAppServicesCapabilities.h" + +#import "SDLAppServiceCapability.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLAppServicesCapabilities + +- (instancetype)initWithAppServices:(nullable NSArray *)appServices { + self = [self init]; + if (!self) { + return self; + } + + self.appServices = appServices; + + return self; +} + +- (void)setAppServices:(nullable NSArray *)appServices { + [self.store sdl_setObject:appServices forName:SDLRPCParameterNameAppServices]; +} + +- (nullable NSArray *)appServices { + return [self.store sdl_objectsForName:SDLRPCParameterNameAppServices ofClass:SDLAppServiceCapability.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.h index 4773fec..0e8bd61 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.h @@ -9,14 +9,25 @@ #import #import "SDLFile.h" +#import "SDLStaticIconName.h" +@class SDLImage; + +/// Image format of an artwork file typedef NS_ENUM(NSUInteger, SDLArtworkImageFormat) { + + /// Image format: PNG SDLArtworkImageFormatPNG, + + /// Image format: JPG SDLArtworkImageFormatJPG }; NS_ASSUME_NONNULL_BEGIN +/** + An SDLFile subclass specifically designed for images + */ @interface SDLArtwork : SDLFile /** @@ -26,6 +37,11 @@ NS_ASSUME_NONNULL_BEGIN */ @property (assign, nonatomic, readonly) BOOL isTemplate; +/** + The Image RPC representing this artwork. Generally for use internally, you should instead pass an artwork to a Screen Manager method. + */ +@property (strong, nonatomic, readonly) SDLImage *imageRPC; + /** * Convenience helper to create an ephemeral artwork from an image. * @@ -59,6 +75,15 @@ NS_ASSUME_NONNULL_BEGIN */ + (instancetype)artworkWithImage:(UIImage *)image asImageFormat:(SDLArtworkImageFormat)imageFormat NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to false"); +/** + Create an SDLArtwork that represents a static icon. This can only be passed to the screen manager; passing this directly to the file manager will fail. + + @param staticIcon The static icon to be shown on the remote system. + + @return An instance of this class to be passed to a screen manager. + */ ++ (instancetype)artworkWithStaticIcon:(SDLStaticIconName)staticIcon NS_SWIFT_UNAVAILABLE("Use the standard initializer"); + /** * Convenience helper to create a persistent artwork from an image. * @@ -115,6 +140,15 @@ NS_ASSUME_NONNULL_BEGIN */ - (instancetype)initWithImage:(UIImage *)image persistent:(BOOL)persistent asImageFormat:(SDLArtworkImageFormat)imageFormat; +/** + Create an SDLArtwork that represents a static icon. This can only be passed to the screen manager; passing this directly to the file manager will fail. + + @param staticIcon The static icon to be shown on the remote system. + + @return An instance of this class to be passed to a screen manager. + */ +- (instancetype)initWithStaticIcon:(SDLStaticIconName)staticIcon; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.m index d9bf2e5..adb3391 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.m @@ -6,12 +6,20 @@ // Copyright © 2015 smartdevicelink. All rights reserved. // +#import + #import "SDLArtwork.h" #import "SDLFileType.h" -#import +#import "SDLImage.h" NS_ASSUME_NONNULL_BEGIN +@interface SDLFile () + +@property (assign, nonatomic, readwrite) BOOL isStaticIcon; + +@end + @interface SDLArtwork () @property (strong, nonatomic) UIImage *image; @@ -22,11 +30,6 @@ @interface SDLArtwork () @implementation SDLArtwork -- (void)setImage:(UIImage *)image { - _image = image; - _isTemplate = (image.renderingMode == UIImageRenderingModeAlwaysTemplate); -} - #pragma mark - Lifecycle + (instancetype)artworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat { @@ -37,6 +40,10 @@ + (instancetype)artworkWithImage:(UIImage *)image asImageFormat:(SDLArtworkImage return [[self alloc] initWithImage:image persistent:NO asImageFormat:imageFormat]; } ++ (instancetype)artworkWithStaticIcon:(SDLStaticIconName)staticIcon { + return [[self alloc] initWithStaticIcon:staticIcon]; +} + + (instancetype)persistentArtworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat { return [[self alloc] initWithImage:image name:name persistent:YES asImageFormat:imageFormat]; } @@ -60,6 +67,30 @@ - (instancetype)initWithImage:(UIImage *)image persistent:(BOOL)persistent asIma return [super initWithData:[self.class sdl_dataForUIImage:image imageFormat:imageFormat] name:(imageName != nil ? imageName : @"") fileExtension:[self.class sdl_fileExtensionForImageFormat:imageFormat] persistent:persistent]; } +- (instancetype)initWithStaticIcon:(SDLStaticIconName)staticIcon { + self = [super initWithData:[staticIcon dataUsingEncoding:NSASCIIStringEncoding] name:staticIcon fileExtension:@"" persistent:NO]; + self.isStaticIcon = true; + + return self; +} + +#pragma mark - Setters and Getters + +- (void)setImage:(UIImage *)image { + _image = image; + _isTemplate = (image.renderingMode == UIImageRenderingModeAlwaysTemplate); +} + +- (SDLImage *)imageRPC { + if (self.isStaticIcon) { + return [[SDLImage alloc] initWithStaticIconName:self.name]; + } else { + return [[SDLImage alloc] initWithName:self.name isTemplate:self.isTemplate]; + } +} + +#pragma mark - Helper Methods + /** * Returns the JPG or PNG image data for a UIImage. * @@ -146,6 +177,10 @@ - (BOOL)isEqualToArtwork:(SDLArtwork *)artwork { return haveEqualNames && haveEqualData && haveEqualFormats; } +- (NSString *)description { + return [NSString stringWithFormat:@"SDLArtwork name: %@, image: %@, isTemplate: %@, isStaticIcon: %@", self.name, self.image, (self.isTemplate ? @"YES" : @"NO"), (self.isStaticIcon ? @"YES" : @"NO")]; +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.h index ad0697b..b7e0e06 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.h @@ -12,6 +12,7 @@ @property (copy, nonatomic, readonly, nullable) NSError *error; +- (void)start; - (void)finishOperation; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.m index 49450f4..d2e1238 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.m @@ -8,16 +8,21 @@ #import "SDLAsynchronousOperation.h" +#import "SDLLogMacros.h" + @implementation SDLAsynchronousOperation { BOOL executing; BOOL finished; } - (void)start { + SDLLogV(@"Starting operation: %@", self); + if (self.isCancelled) { [self willChangeValueForKey:@"isFinished"]; finished = YES; [self didChangeValueForKey:@"isFinished"]; + SDLLogV(@"Operation was cancelled: %@", self); return; } @@ -28,6 +33,7 @@ - (void)start { } - (void)finishOperation { + SDLLogV(@"Finishing Operation: %@", self); [self willChangeValueForKey:@"isExecuting"]; executing = NO; [self didChangeValueForKey:@"isExecuting"]; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.h new file mode 100644 index 0000000..8bb27de --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.h @@ -0,0 +1,39 @@ +// +// SDLAsynchronousRPCOperation.h +// SmartDeviceLink +// +// Created by Nicole on 2/20/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLAsynchronousOperation.h" +#import "SDLLifecycleManager.h" + +@protocol SDLConnectionManagerType; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Sends an RPC of type `Response` or `Notification`. Since these RPCs do not get a response from Core, the operation is considered finished as soon as the RPC is sent. RPCs of type `Request` can not be sent using this operation as `Request`s must get a response from Core before the operation is considered finished. To send `Requests` use the `SDLAsynchronousRPCRequestOperation` or the `SDLSequentialRPCRequestOperation` + */ +@interface SDLAsynchronousRPCOperation : SDLAsynchronousOperation + +/** + * An RPC of type `SDLRPCResponse` or `SDLRPCNotification`. + */ +@property (copy, nonatomic) __kindof SDLRPCMessage *rpc; + +/** + * Convenience init. + * + * @param connectionManager The connection manager used to send the RPC + * @param rpc An RPC of type `SDLRPCResponse` or `SDLRPCNotification` to be sent by the connection manager. + * @return A SDLAsynchronousRPCOperation object + */ +- (instancetype)initWithConnectionManager:(id)connectionManager rpc:(__kindof SDLRPCMessage *)rpc; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.m new file mode 100644 index 0000000..ad169c8 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.m @@ -0,0 +1,84 @@ +// +// SDLAsynchronousRPCOperation.m +// SmartDeviceLink +// +// Created by Nicole on 2/20/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAsynchronousRPCOperation.h" + +#import "SDLConnectionManagerType.h" +#import "SDLError.h" +#import "SDLRPCMessage.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLAsynchronousRPCOperation () + +@property (weak, nonatomic) id connectionManager; +@property (strong, nonatomic) NSUUID *operationId; + +@end + +@implementation SDLAsynchronousRPCOperation + +- (instancetype)init { + self = [super init]; + if (!self) { return nil; } + + _operationId = [NSUUID UUID]; + + return self; +} + +- (instancetype)initWithConnectionManager:(id)connectionManager rpc:(__kindof SDLRPCMessage *)rpc { + self = [self init]; + + _rpc = rpc; + _connectionManager = connectionManager; + + return self; +} + +- (void)start { + [super start]; + if (self.isCancelled) { return; } + + [self sdl_sendRPC:self.rpc]; +} + +- (void)sdl_sendRPC:(__kindof SDLRPCMessage *)rpc { + if (self.isCancelled) { + [self sdl_abortOperation]; + return; + } + + [self.connectionManager sendConnectionRPC:rpc]; + [self finishOperation]; +} + +- (void)sdl_abortOperation { + [self finishOperation]; +} + +#pragma mark - Property Overrides +- (nullable NSString *)name { + return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; +} + +- (NSOperationQueuePriority)queuePriority { + return NSOperationQueuePriorityNormal; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"%@", self.name]; +} + +- (NSString *)debugDescription { + return [NSString stringWithFormat:@"%@, request type=%@", self.name, self.rpc.class]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h index a24165d..908d0d3 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h @@ -15,12 +15,35 @@ NS_ASSUME_NONNULL_BEGIN +/** + * Sends an array RPCs of type `Request` asynchronously. Requests must get a response from Core before the operation is considered finished. + */ @interface SDLAsynchronousRPCRequestOperation : SDLAsynchronousOperation -@property (copy, nonatomic) NSArray *requests; - +/** + * An array of RPCs of type `Request`. + */ +@property (strong, nonatomic) NSArray *requests; + +/** + * Convenience init for sending an array of requests asynchronously. + * + * @param connectionManager The connection manager used to send the RPCs + * @param requests The requests to be sent to Core + * @param progressHandler Called as each request gets a response from Core + * @param completionHandler Called when all requests have a response from Core + * @return A SDLAsynchronousRPCRequestOperation object + */ - (instancetype)initWithConnectionManager:(id)connectionManager requests:(NSArray *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; +/** + * Convenience init for sending one request asynchronously. + * + * @param connectionManager The connection manager used to send the RPCs + * @param request The request to be sent to Core + * @param responseHandler Called when the request has a response from Core + * @return A SDLAsynchronousRPCRequestOperation object + */ - (instancetype)initWithConnectionManager:(id)connectionManager request:(SDLRPCRequest *)request responseHandler:(nullable SDLResponseHandler)responseHandler; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m index 5c67e3e..92b157e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m @@ -72,6 +72,7 @@ - (instancetype)initWithConnectionManager:(id)connecti - (void)start { [super start]; + if (self.isCancelled) { return; } [self sdl_sendRequests]; } @@ -91,29 +92,30 @@ - (void)sdl_sendRequests { - (void)sdl_sendRequest:(SDLRPCRequest *)request { __weak typeof(self) weakSelf = self; [self.connectionManager sendConnectionRequest:request withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - __strong typeof(self) strongSelf = weakSelf; + if (weakSelf == nil) { return; } - if (strongSelf.isCancelled) { - [self sdl_abortOperationWithRequest:request]; + if (weakSelf.isCancelled) { + [weakSelf sdl_abortOperationWithRequest:request]; BLOCK_RETURN; } - strongSelf.requestsComplete++; + weakSelf.requestsComplete++; // If this request failed set our internal request failed to YES if (error != nil) { - strongSelf.requestFailed = YES; + weakSelf.requestFailed = YES; } - if (strongSelf.progressHandler != NULL) { - strongSelf.progressHandler(request, response, error, strongSelf.percentComplete); - } else if (strongSelf.responseHandler != NULL) { - strongSelf.responseHandler(request, response, error); + if (weakSelf.progressHandler != NULL) { + float percentComplete = weakSelf.percentComplete; + weakSelf.progressHandler(request, response, error, percentComplete); + } else if (weakSelf.responseHandler != NULL) { + weakSelf.responseHandler(request, response, error); } // If we've received responses for all requests, call the completion handler. - if (strongSelf.requestsComplete >= strongSelf.requests.count) { - [strongSelf finishOperation]; + if (weakSelf.requestsComplete >= weakSelf.requests.count) { + [weakSelf finishOperation]; } }]; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.h index b7f29a0..7c2d6bb 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.h @@ -2,9 +2,15 @@ // #import "SDLRPCMessage.h" +#import "SDLModuleInfo.h" NS_ASSUME_NONNULL_BEGIN +/** + Describes a head unit's audio control capabilities. + + @since RPC 5.0 + */ @interface SDLAudioControlCapabilities : SDLRPCStruct /** @@ -13,7 +19,16 @@ NS_ASSUME_NONNULL_BEGIN @param name The short friendly name of the audio control module. @return An instance of the SDLAudioControlCapabilities class. */ -- (instancetype)initWithModuleName:(NSString *)name; +- (instancetype)initWithModuleName:(NSString *)name __deprecated_msg("Use initWithModuleName:moduleInfo: instead"); + +/** + Constructs a newly allocated SDLAudioControlCapabilities object with audio control module name (max 100 chars) + + @param name The short friendly name of the audio control module. + @param moduleInfo Information about a RC module, including its id. + @return An instance of the SDLAudioControlCapabilities class. + */ +- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo; /** Constructs a newly allocated SDLAudioControlCapabilities object with given parameters @@ -25,7 +40,20 @@ NS_ASSUME_NONNULL_BEGIN @param equalizerMaxChannelID Equalizer channel ID (between 1-100). @return An instance of the SDLAudioControlCapabilities class. */ -- (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NSNumber *)sourceAvailable keepContextAvailable:(nullable NSNumber *)keepContextAvailable volumeAvailable:(nullable NSNumber *)volumeAvailable equalizerAvailable:(nullable NSNumber *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber *)equalizerMaxChannelID; +- (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NSNumber *)sourceAvailable keepContextAvailable:(nullable NSNumber *)keepContextAvailable volumeAvailable:(nullable NSNumber *)volumeAvailable equalizerAvailable:(nullable NSNumber *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber *)equalizerMaxChannelID __deprecated_msg("Use initWithModuleName:moduleInfo:sourceAvailable:keepContextAvailable:volumeAvailable:equalizerAvailable:equalizerMaxChannelID: instead"); + +/** + Constructs a newly allocated SDLAudioControlCapabilities object with given parameters + + @param name The short friendly name of the audio control module. + @param moduleInfo Information about a RC module, including its id. + @param sourceAvailable Availability of the control of audio source. + @param volumeAvailable Availability of the volume of audio source. + @param equalizerAvailable Availability of the equalizer of audio source. + @param equalizerMaxChannelID Equalizer channel ID (between 1-100). + @return An instance of the SDLAudioControlCapabilities class. + */ +- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo sourceAvailable:(nullable NSNumber *)sourceAvailable keepContextAvailable:(nullable NSNumber *)keepContextAvailable volumeAvailable:(nullable NSNumber *)volumeAvailable equalizerAvailable:(nullable NSNumber *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber *)equalizerMaxChannelID; /** * @abstract The short friendly name of the audio control module. @@ -71,6 +99,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSNumber *equalizerMaxChannelId; +/** + * Information about a RC module, including its id. + * + * Optional + */ +@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.m index e0d64d4..bc7ff56 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.m @@ -2,7 +2,7 @@ // #import "SDLAudioControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -19,6 +19,17 @@ - (instancetype)initWithModuleName:(NSString *)name { return self; } +- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo { + self = [self init]; + if (!self) { + return nil; + } + self.moduleName = name; + self.moduleInfo = moduleInfo; + + return self; +} + - (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NSNumber *)sourceAvailable keepContextAvailable:(nullable NSNumber *)keepContextAvailable volumeAvailable:(nullable NSNumber *)volumeAvailable equalizerAvailable:(nullable NSNumber *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber *)equalizerMaxChannelID { self = [self init]; if (!self) { @@ -34,52 +45,80 @@ - (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NS return self; } +- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo sourceAvailable:(nullable NSNumber *)sourceAvailable keepContextAvailable:(nullable NSNumber *)keepContextAvailable volumeAvailable:(nullable NSNumber *)volumeAvailable equalizerAvailable:(nullable NSNumber *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber *)equalizerMaxChannelID { + self = [self init]; + if (!self) { + return nil; + } + + self.moduleName = name; + self.moduleInfo = moduleInfo; + self.sourceAvailable = sourceAvailable; + self.keepContextAvailable = keepContextAvailable; + self.volumeAvailable = volumeAvailable; + self.equalizerAvailable = equalizerAvailable; + self.equalizerMaxChannelId = equalizerMaxChannelID; + + return self; + +} + + - (void)setModuleName:(NSString *)moduleName { - [store sdl_setObject:moduleName forName:SDLNameModuleName]; + [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } - (NSString *)moduleName { - return [store sdl_objectForName:SDLNameModuleName]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; } - (void)setSourceAvailable:(nullable NSNumber *)sourceAvailable { - [store sdl_setObject:sourceAvailable forName:SDLNameSourceAvailable]; + [self.store sdl_setObject:sourceAvailable forName:SDLRPCParameterNameSourceAvailable]; } - (nullable NSNumber *)sourceAvailable { - return [store sdl_objectForName:SDLNameSourceAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameSourceAvailable ofClass:NSNumber.class error:nil]; } - (void)setKeepContextAvailable:(nullable NSNumber *)keepContextAvailable { - [store sdl_setObject:keepContextAvailable forName:SDLNameKeepContextAvailable]; + [self.store sdl_setObject:keepContextAvailable forName:SDLRPCParameterNameKeepContextAvailable]; } - (nullable NSNumber *)keepContextAvailable { - return [store sdl_objectForName:SDLNameKeepContextAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameKeepContextAvailable ofClass:NSNumber.class error:nil]; } - (void)setVolumeAvailable:(nullable NSNumber *)volumeAvailable { - [store sdl_setObject:volumeAvailable forName:SDLNameVolumeAvailable]; + [self.store sdl_setObject:volumeAvailable forName:SDLRPCParameterNameVolumeAvailable]; } - (nullable NSNumber *)volumeAvailable { - return [store sdl_objectForName:SDLNameVolumeAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameVolumeAvailable ofClass:NSNumber.class error:nil]; } - (void)setEqualizerAvailable:(nullable NSNumber *)equalizerAvailable { - [store sdl_setObject:equalizerAvailable forName:SDLNameEqualizerAvailable]; + [self.store sdl_setObject:equalizerAvailable forName:SDLRPCParameterNameEqualizerAvailable]; } - (nullable NSNumber *)equalizerAvailable { - return [store sdl_objectForName:SDLNameEqualizerAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameEqualizerAvailable ofClass:NSNumber.class error:nil]; } - (void)setEqualizerMaxChannelId:(nullable NSNumber *)equalizerMaxChannelId { - [store sdl_setObject:equalizerMaxChannelId forName:SDLNameEqualizerMaxChannelId]; + [self.store sdl_setObject:equalizerMaxChannelId forName:SDLRPCParameterNameEqualizerMaxChannelId]; } - (nullable NSNumber *)equalizerMaxChannelId { - return [store sdl_objectForName:SDLNameEqualizerMaxChannelId]; + return [self.store sdl_objectForName:SDLRPCParameterNameEqualizerMaxChannelId ofClass:NSNumber.class error:nil]; +} + +- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { + [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; +} + +- (nullable SDLModuleInfo *)moduleInfo { + return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.h index 3261b42..2cd9963 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.h @@ -8,6 +8,11 @@ NS_ASSUME_NONNULL_BEGIN +/** + The audio control data information. + + @since RPC 5.0 + */ @interface SDLAudioControlData : SDLRPCStruct diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.m index 4a572f0..67296c9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.m @@ -2,8 +2,9 @@ // #import "SDLAudioControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" +#import "SDLEqualizerSettings.h" NS_ASSUME_NONNULL_BEGIN @@ -24,36 +25,36 @@ - (instancetype)initWithSource:(nullable SDLPrimaryAudioSource)source keepContex } - (void)setSource:(nullable SDLPrimaryAudioSource)source { - [store sdl_setObject:source forName:SDLNameSource]; + [self.store sdl_setObject:source forName:SDLRPCParameterNameSource]; } - (nullable SDLPrimaryAudioSource)source { - return [store sdl_objectForName:SDLNameSource]; + return [self.store sdl_enumForName:SDLRPCParameterNameSource error:nil]; } - (void)setKeepContext:(nullable NSNumber *)keepContext { - [store sdl_setObject:keepContext forName:SDLNameKeepContext]; + [self.store sdl_setObject:keepContext forName:SDLRPCParameterNameKeepContext]; } - (nullable NSNumber *)keepContext { - return [store sdl_objectForName:SDLNameKeepContext]; + return [self.store sdl_objectForName:SDLRPCParameterNameKeepContext ofClass:NSNumber.class error:nil]; } - (void)setVolume:(nullable NSNumber *)volume { - [store sdl_setObject:volume forName:SDLNameVolume]; + [self.store sdl_setObject:volume forName:SDLRPCParameterNameVolume]; } - (nullable NSNumber *)volume { - return [store sdl_objectForName:SDLNameVolume]; + return [self.store sdl_objectForName:SDLRPCParameterNameVolume ofClass:NSNumber.class error:nil]; } - (void)setEqualizerSettings:(nullable NSArray *)equalizerSettings { - [store sdl_setObject:equalizerSettings forName:SDLNameEqualizerSettings]; + [self.store sdl_setObject:equalizerSettings forName:SDLRPCParameterNameEqualizerSettings]; } - (nullable NSArray *)equalizerSettings { - return [store sdl_objectForName:SDLNameEqualizerSettings]; + return [self.store sdl_objectsForName:SDLRPCParameterNameEqualizerSettings ofClass:SDLEqualizerSettings.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.h index e34c37a..a930294 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.h @@ -10,23 +10,54 @@ NS_ASSUME_NONNULL_BEGIN +/** + Includes inforamtion about a given audio file + */ @interface SDLAudioFile : NSObject -@property (copy, nonatomic, readonly) NSURL *inputFileURL; +/** + If initialized with a file URL, the file URL it came from + */ +@property (nullable, copy, nonatomic, readonly) NSURL *inputFileURL; -@property (copy, nonatomic, readonly) NSURL *outputFileURL; +/** + If initialized with a file URL, where the transcoder should produce the transcoded PCM audio file + */ +@property (nullable, copy, nonatomic, readonly) NSURL *outputFileURL; /** In seconds. UINT32_MAX if unknown. */ @property (assign, nonatomic) UInt32 estimatedDuration; +/** + The PCM audio data to be transferred and played + */ @property (copy, nonatomic, readonly) NSData *data; +/** + The size of the PCM audio data in bytes + */ @property (assign, nonatomic, readonly) unsigned long long fileSize; +/** + Initialize an audio file to be queued and played + + @param inputURL The file that exists on the device to be transcoded and queued + @param outputURL The target URL that the transcoded file will be output to + @param duration The duration of the file + @return The audio file object + */ - (instancetype)initWithInputFileURL:(NSURL *)inputURL outputFileURL:(NSURL *)outputURL estimatedDuration:(UInt32)duration; +/** + Initialize a buffer of PCM audio data to be queued and played + + @param data The PCM audio data buffer + @return The audio file object + */ +- (instancetype)initWithData:(NSData *)data; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.m index 1d0e2ef..46b50f5 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.m @@ -32,6 +32,15 @@ - (instancetype)initWithInputFileURL:(NSURL *)inputURL outputFileURL:(NSURL *)ou return self; } +- (instancetype)initWithData:(NSData *)data { + self = [super init]; + if (!self) { return nil; } + + _data = data; + + return self; +} + - (NSData *)data { if (_data.length == 0) { return [NSData dataWithContentsOfURL:_outputFileURL]; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioPassThruCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioPassThruCapabilities.m index 2681707..c84263a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioPassThruCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioPassThruCapabilities.m @@ -5,34 +5,37 @@ #import "SDLAudioPassThruCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAudioPassThruCapabilities - (void)setSamplingRate:(SDLSamplingRate)samplingRate { - [store sdl_setObject:samplingRate forName:SDLNameSamplingRate]; + [self.store sdl_setObject:samplingRate forName:SDLRPCParameterNameSamplingRate]; } - (SDLSamplingRate)samplingRate { - return [store sdl_objectForName:SDLNameSamplingRate]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameSamplingRate error:&error]; } - (void)setBitsPerSample:(SDLBitsPerSample)bitsPerSample { - [store sdl_setObject:bitsPerSample forName:SDLNameBitsPerSample]; + [self.store sdl_setObject:bitsPerSample forName:SDLRPCParameterNameBitsPerSample]; } - (SDLBitsPerSample)bitsPerSample { - return [store sdl_objectForName:SDLNameBitsPerSample]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameBitsPerSample error:&error]; } - (void)setAudioType:(SDLAudioType)audioType { - [store sdl_setObject:audioType forName:SDLNameAudioType]; + [self.store sdl_setObject:audioType forName:SDLRPCParameterNameAudioType]; } - (SDLAudioType)audioType { - return [store sdl_objectForName:SDLNameAudioType]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameAudioType error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.h index e6608f8..7ec8a59 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.h @@ -16,13 +16,9 @@ NS_ASSUME_NONNULL_BEGIN -extern NSString *const SDLErrorDomainAudioStreamManager; - -typedef NS_ENUM(NSInteger, SDLAudioStreamManagerError) { - SDLAudioStreamManagerErrorNotConnected = -1, - SDLAudioStreamManagerErrorNoQueuedAudio = -2 -}; - +/** + The manager to control the audio stream + */ @interface SDLAudioStreamManager : NSObject /** @@ -66,6 +62,22 @@ typedef NS_ENUM(NSInteger, SDLAudioStreamManagerError) { */ - (void)pushWithFileURL:(NSURL *)fileURL; +/** + Push a new audio buffer onto the queue. Call `playNextWhenReady` to start playing the pushed audio buffer. + + This data must be of the required PCM format. See SDLSystemCapabilityManager.pcmStreamCapability and SDLAudioPassThruCapability.h. + + This is *an example* of a PCM format used by some head units: + - audioType: PCM + - samplingRate: 16kHZ + - bitsPerSample: 16 bits + + There is generally only one channel to the data. + + @param data The audio buffer to be pushed onto the queue + */ +- (void)pushWithData:(NSData *)data; + /** Play the next item in the queue. If an item is currently playing, it will continue playing and this item will begin playing after it is completed. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.m index 69312b0..f848627 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.m @@ -9,17 +9,17 @@ #import "SDLAudioStreamManager.h" #import "SDLAudioFile.h" +#import "SDLAudioStreamManagerDelegate.h" +#import "SDLError.h" #import "SDLFile.h" +#import "SDLGlobals.h" #import "SDLLogMacros.h" #import "SDLManager.h" #import "SDLPCMAudioConverter.h" -#import "SDLAudioStreamManagerDelegate.h" #import "SDLStreamingAudioManagerType.h" NS_ASSUME_NONNULL_BEGIN -NSString *const SDLErrorDomainAudioStreamManager = @"com.sdl.extension.pcmAudioStreamManager"; - @interface SDLAudioStreamManager () @property (weak, nonatomic) id streamManager; @@ -38,18 +38,35 @@ - (instancetype)initWithManager:(id)streamManager if (!self) { return nil; } _mutableQueue = [NSMutableArray array]; - _audioQueue = dispatch_queue_create("com.sdl.audiomanager.transcode", DISPATCH_QUEUE_SERIAL); _shouldPlayWhenReady = NO; + if (@available(iOS 10.0, *)) { + _audioQueue = dispatch_queue_create_with_target("com.sdl.audiomanager.transcode", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); + } else { + _audioQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; + } + _streamManager = streamManager; return self; } +- (void)stop { + dispatch_async(_audioQueue, ^{ + self.shouldPlayWhenReady = NO; + [self.mutableQueue removeAllObjects]; + }); +} + +#pragma mark - Getters + - (NSArray *)queue { return [_mutableQueue copy]; } +#pragma mark - Pushing to the Queue +#pragma mark Files + - (void)pushWithFileURL:(NSURL *)fileURL { dispatch_async(_audioQueue, ^{ [self sdl_pushWithContentsOfURL:fileURL]; @@ -79,6 +96,21 @@ - (void)sdl_pushWithContentsOfURL:(NSURL *)fileURL { } } +#pragma mark Raw Data + +- (void)pushWithData:(NSData *)data { + dispatch_async(_audioQueue, ^{ + [self sdl_pushWithData:data]; + }); +} + +- (void)sdl_pushWithData:(NSData *)data { + SDLAudioFile *audioFile = [[SDLAudioFile alloc] initWithData:data]; + [self.mutableQueue addObject:audioFile]; +} + +#pragma mark Playing from the Queue + - (void)playNextWhenReady { dispatch_async(_audioQueue, ^{ [self sdl_playNextWhenReady]; @@ -93,7 +125,7 @@ - (void)sdl_playNextWhenReady { if (!self.streamManager.isAudioConnected) { if (self.delegate != nil) { - NSError *error = [NSError errorWithDomain:SDLErrorDomainAudioStreamManager code:SDLAudioStreamManagerErrorNotConnected userInfo:nil]; + NSError *error = [NSError sdl_audioStreamManager_notConnected]; [self.delegate audioStreamManager:self errorDidOccurForFile:self.mutableQueue.firstObject.inputFileURL error:error]; } return; @@ -104,34 +136,46 @@ - (void)sdl_playNextWhenReady { [self.mutableQueue removeObjectAtIndex:0]; // Strip the first bunch of bytes (because of how Apple outputs the data) and send to the audio stream, if we don't do this, it will make a weird click sound + NSData *audioData = nil; + if (file.inputFileURL != nil) { + audioData = [file.data subdataWithRange:NSMakeRange(5760, (file.data.length - 5760))]; + } else { + audioData = file.data; + } + + // Send the audio file, which starts it playing immediately SDLLogD(@"Playing audio file: %@", file); - NSData *audioData = [file.data subdataWithRange:NSMakeRange(5760, (file.data.length - 5760))]; __block BOOL success = [self.streamManager sendAudioData:audioData]; self.playing = YES; + // Determine the length of the audio PCM data and perform a few items once the audio has finished playing float audioLengthSecs = (float)audioData.length / (float)32000.0; __weak typeof(self) weakself = self; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(audioLengthSecs * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - weakself.playing = NO; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(audioLengthSecs * NSEC_PER_SEC)), [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ + __strong typeof(weakself) strongSelf = weakself; + + strongSelf.playing = NO; NSError *error = nil; - if (weakself.delegate != nil) { - [weakself.delegate audioStreamManager:weakself fileDidFinishPlaying:file.inputFileURL successfully:success]; + if (strongSelf.delegate != nil) { + if (file.inputFileURL != nil) { + [strongSelf.delegate audioStreamManager:strongSelf fileDidFinishPlaying:file.inputFileURL successfully:success]; + } else if ([strongSelf.delegate respondsToSelector:@selector(audioStreamManager:dataBufferDidFinishPlayingSuccessfully:)]) { + [strongSelf.delegate audioStreamManager:strongSelf dataBufferDidFinishPlayingSuccessfully:success]; + } } + SDLLogD(@"Ending Audio file: %@", file); [[NSFileManager defaultManager] removeItemAtURL:file.outputFileURL error:&error]; - if (weakself.delegate != nil && error != nil) { - [weakself.delegate audioStreamManager:weakself errorDidOccurForFile:file.inputFileURL error:error]; + if (strongSelf.delegate != nil && error != nil) { + if (file.inputFileURL != nil) { + [strongSelf.delegate audioStreamManager:strongSelf errorDidOccurForFile:file.inputFileURL error:error]; + } else if ([strongSelf.delegate respondsToSelector:@selector(audioStreamManager:errorDidOccurForDataBuffer:)]) { + [strongSelf.delegate audioStreamManager:strongSelf errorDidOccurForDataBuffer:error]; + } } }); } -- (void)stop { - dispatch_async(_audioQueue, ^{ - self.shouldPlayWhenReady = NO; - [self.mutableQueue removeAllObjects]; - }); -} - @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManagerDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManagerDelegate.h index acad147..79948d6 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManagerDelegate.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManagerDelegate.h @@ -13,6 +13,7 @@ NS_ASSUME_NONNULL_BEGIN +/// Delegate for the AudioStreamManager @protocol SDLAudioStreamManagerDelegate @required @@ -29,12 +30,30 @@ NS_ASSUME_NONNULL_BEGIN /** Called when a file from the SDLAudioStreamManager could not play - @param audioManager A reference to the audio stream manager + @param audioManager A reference to the audio stream manager @param fileURL The URL that failed @param error The error that occurred */ - (void)audioStreamManager:(SDLAudioStreamManager *)audioManager errorDidOccurForFile:(NSURL *)fileURL error:(NSError *)error; +@optional + +/** + Called when a data buffer from the SDLAudioStreamManager finishes playing + + @param audioManager A reference to the audio stream manager + @param successfully Whether or not the data buffer played successfully + */ +- (void)audioStreamManager:(SDLAudioStreamManager *)audioManager dataBufferDidFinishPlayingSuccessfully:(BOOL)successfully; + +/** + Called when a data buffer from the SDLAudioStreamManager could not play + + @param audioManager A reference to the audio stream manager + @param error The error that occurred + */ +- (void)audioStreamManager:(SDLAudioStreamManager *)audioManager errorDidOccurForDataBuffer:(NSError *)error; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.h new file mode 100644 index 0000000..8d9f18a --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.h @@ -0,0 +1,41 @@ +// +// SDLBackgroundTaskManager.h +// SmartDeviceLink +// +// Created by Nicole on 6/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * Class for managing a background task. + */ +@interface SDLBackgroundTaskManager : NSObject + +/// Handler called when the background task is about to expire. Use this handler to perform some cleanup before the background task is destroyed. When you have finished cleanup, you must call the `endBackgroundTask` function so the background task can be destroyed. If you do not call `endBackgroundTask`, the system may kill the app. +/// @return Whether or not to wait for the subscriber to cleanup. If NO, the background task will be killed immediately. If YES, the background task will not be destroyed until the `endBackgroundTask` method is called by the subscriber. +@property (copy, nonatomic, nullable) BOOL (^taskExpiringHandler)(void); + +- (instancetype)init NS_UNAVAILABLE; + +/** + * Convenience init for starting a background task with a specific name. + * + * @param backgroundTaskName The name for the background task + * @return A SDLBackgroundTaskManager object + */ +- (instancetype)initWithBackgroundTaskName:(NSString *)backgroundTaskName; + +/// Starts a background task. If the app is not currently backgrounded, the background task will remain dormant until the app moves to the background. +- (void)startBackgroundTask; + +/// Destroys the background task. +- (void)endBackgroundTask; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.m new file mode 100644 index 0000000..7746008 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.m @@ -0,0 +1,88 @@ +// +// SDLBackgroundTaskManager.m +// SmartDeviceLink +// +// Created by Nicole on 6/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLBackgroundTaskManager.h" + +#import "SDLLogMacros.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLBackgroundTaskManager () +@property (copy, nonatomic) NSString *backgroundTaskName; +@property (assign, nonatomic) UIBackgroundTaskIdentifier currentBackgroundTaskId; + +@end + +@implementation SDLBackgroundTaskManager + +- (instancetype)initWithBackgroundTaskName:(NSString *)backgroundTaskName { + SDLLogV(@"Creating background task manager with name %@", backgroundTaskName); + self = [super init]; + if (!self) { + return nil; + } + + _backgroundTaskName = backgroundTaskName; + + return self; +} + +- (void)startBackgroundTask { + if (self.currentBackgroundTaskId != UIBackgroundTaskInvalid) { + SDLLogV(@"The %@ background task is already running.", self.backgroundTaskName); + return; + } + + __weak typeof(self) weakSelf = self; + self.currentBackgroundTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithName:self.backgroundTaskName expirationHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + SDLLogD(@"The background task %@ is expiring.", strongSelf.backgroundTaskName); + + // We have ~1 second to do cleanup before ending the background task. If we take too long, the system will kill the app. + if (strongSelf.taskExpiringHandler != nil) { + SDLLogD(@"Checking if subscriber wants to to perform some cleanup before ending the background task %@", strongSelf.backgroundTaskName); + BOOL waitForCleanupToFinish = strongSelf.taskExpiringHandler(); + if (waitForCleanupToFinish) { + SDLLogD(@"The subscriber will end background task itself %@. Waiting...", self.backgroundTaskName); + } else { + SDLLogV(@"Subscriber does not want to perform cleanup. Ending the background task %@", strongSelf.backgroundTaskName); + [strongSelf endBackgroundTask]; + } + } else { + // No subscriber. Just end the background task. + SDLLogV(@"Ending background task %@", strongSelf.backgroundTaskName); + [strongSelf endBackgroundTask]; + } + }]; + + SDLLogD(@"The %@ background task started with id: %lu", self.backgroundTaskName, (unsigned long)self.currentBackgroundTaskId); +} + +- (void)endBackgroundTask { + SDLLogV(@"Attempting to end background task %@", self.backgroundTaskName); + self.taskExpiringHandler = nil; + + if (self.currentBackgroundTaskId == UIBackgroundTaskInvalid) { + SDLLogV(@"Background task %@ with id %lu already ended. Returning...", self.backgroundTaskName, (unsigned long)self.currentBackgroundTaskId); + return; + } + + SDLLogD(@"Ending background task %@ with id: %lu", self.backgroundTaskName, (unsigned long)self.currentBackgroundTaskId); + [[UIApplication sharedApplication] endBackgroundTask:self.currentBackgroundTaskId]; + self.currentBackgroundTaskId = UIBackgroundTaskInvalid; +} + +- (void)dealloc { + SDLLogV(@"Destroying the manager"); + [self endBackgroundTask]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBeltStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBeltStatus.m index d65a1fd..89a5271 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBeltStatus.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBeltStatus.m @@ -4,7 +4,7 @@ #import "SDLBeltStatus.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLVehicleDataEventStatus.h" NS_ASSUME_NONNULL_BEGIN @@ -12,123 +12,138 @@ @implementation SDLBeltStatus - (void)setDriverBeltDeployed:(SDLVehicleDataEventStatus)driverBeltDeployed { - [store sdl_setObject:driverBeltDeployed forName:SDLNameDriverBeltDeployed]; + [self.store sdl_setObject:driverBeltDeployed forName:SDLRPCParameterNameDriverBeltDeployed]; } - (SDLVehicleDataEventStatus)driverBeltDeployed { - return [store sdl_objectForName:SDLNameDriverBeltDeployed]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameDriverBeltDeployed error:&error]; } - (void)setPassengerBeltDeployed:(SDLVehicleDataEventStatus)passengerBeltDeployed { - [store sdl_setObject:passengerBeltDeployed forName:SDLNamePassengerBeltDeployed]; + [self.store sdl_setObject:passengerBeltDeployed forName:SDLRPCParameterNamePassengerBeltDeployed]; } - (SDLVehicleDataEventStatus)passengerBeltDeployed { - return [store sdl_objectForName:SDLNamePassengerBeltDeployed]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNamePassengerBeltDeployed error:&error]; } - (void)setPassengerBuckleBelted:(SDLVehicleDataEventStatus)passengerBuckleBelted { - [store sdl_setObject:passengerBuckleBelted forName:SDLNamePassengerBuckleBelted]; + [self.store sdl_setObject:passengerBuckleBelted forName:SDLRPCParameterNamePassengerBuckleBelted]; } - (SDLVehicleDataEventStatus)passengerBuckleBelted { - return [store sdl_objectForName:SDLNamePassengerBuckleBelted]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNamePassengerBuckleBelted error:&error]; } - (void)setDriverBuckleBelted:(SDLVehicleDataEventStatus)driverBuckleBelted { - [store sdl_setObject:driverBuckleBelted forName:SDLNameDriverBuckleBelted]; + [self.store sdl_setObject:driverBuckleBelted forName:SDLRPCParameterNameDriverBuckleBelted]; } - (SDLVehicleDataEventStatus)driverBuckleBelted { - return [store sdl_objectForName:SDLNameDriverBuckleBelted]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameDriverBuckleBelted error:&error]; } - (void)setLeftRow2BuckleBelted:(SDLVehicleDataEventStatus)leftRow2BuckleBelted { - [store sdl_setObject:leftRow2BuckleBelted forName:SDLNameLeftRow2BuckleBelted]; + [self.store sdl_setObject:leftRow2BuckleBelted forName:SDLRPCParameterNameLeftRow2BuckleBelted]; } - (SDLVehicleDataEventStatus)leftRow2BuckleBelted { - return [store sdl_objectForName:SDLNameLeftRow2BuckleBelted]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameLeftRow2BuckleBelted error:&error]; } - (void)setPassengerChildDetected:(SDLVehicleDataEventStatus)passengerChildDetected { - [store sdl_setObject:passengerChildDetected forName:SDLNamePassengerChildDetected]; + [self.store sdl_setObject:passengerChildDetected forName:SDLRPCParameterNamePassengerChildDetected]; } - (SDLVehicleDataEventStatus)passengerChildDetected { - return [store sdl_objectForName:SDLNamePassengerChildDetected]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNamePassengerChildDetected error:&error]; } - (void)setRightRow2BuckleBelted:(SDLVehicleDataEventStatus)rightRow2BuckleBelted { - [store sdl_setObject:rightRow2BuckleBelted forName:SDLNameRightRow2BuckleBelted]; + [self.store sdl_setObject:rightRow2BuckleBelted forName:SDLRPCParameterNameRightRow2BuckleBelted]; } - (SDLVehicleDataEventStatus)rightRow2BuckleBelted { - return [store sdl_objectForName:SDLNameRightRow2BuckleBelted]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameRightRow2BuckleBelted error:&error]; } - (void)setMiddleRow2BuckleBelted:(SDLVehicleDataEventStatus)middleRow2BuckleBelted { - [store sdl_setObject:middleRow2BuckleBelted forName:SDLNameMiddleRow2BuckleBelted]; + [self.store sdl_setObject:middleRow2BuckleBelted forName:SDLRPCParameterNameMiddleRow2BuckleBelted]; } - (SDLVehicleDataEventStatus)middleRow2BuckleBelted { - return [store sdl_objectForName:SDLNameMiddleRow2BuckleBelted]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameMiddleRow2BuckleBelted error:&error]; } - (void)setMiddleRow3BuckleBelted:(SDLVehicleDataEventStatus)middleRow3BuckleBelted { - [store sdl_setObject:middleRow3BuckleBelted forName:SDLNameMiddleRow3BuckleBelted]; + [self.store sdl_setObject:middleRow3BuckleBelted forName:SDLRPCParameterNameMiddleRow3BuckleBelted]; } - (SDLVehicleDataEventStatus)middleRow3BuckleBelted { - return [store sdl_objectForName:SDLNameMiddleRow3BuckleBelted]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameMiddleRow3BuckleBelted error:&error]; } - (void)setLeftRow3BuckleBelted:(SDLVehicleDataEventStatus)leftRow3BuckleBelted { - [store sdl_setObject:leftRow3BuckleBelted forName:SDLNameLeftRow3BuckleBelted]; + [self.store sdl_setObject:leftRow3BuckleBelted forName:SDLRPCParameterNameLeftRow3BuckleBelted]; } - (SDLVehicleDataEventStatus)leftRow3BuckleBelted { - return [store sdl_objectForName:SDLNameLeftRow3BuckleBelted]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameLeftRow3BuckleBelted error:&error]; } - (void)setRightRow3BuckleBelted:(SDLVehicleDataEventStatus)rightRow3BuckleBelted { - [store sdl_setObject:rightRow3BuckleBelted forName:SDLNameRightRow3BuckleBelted]; + [self.store sdl_setObject:rightRow3BuckleBelted forName:SDLRPCParameterNameRightRow3BuckleBelted]; } - (SDLVehicleDataEventStatus)rightRow3BuckleBelted { - return [store sdl_objectForName:SDLNameRightRow3BuckleBelted]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameRightRow3BuckleBelted error:&error]; } - (void)setLeftRearInflatableBelted:(SDLVehicleDataEventStatus)leftRearInflatableBelted { - [store sdl_setObject:leftRearInflatableBelted forName:SDLNameLeftRearInflatableBelted]; + [self.store sdl_setObject:leftRearInflatableBelted forName:SDLRPCParameterNameLeftRearInflatableBelted]; } - (SDLVehicleDataEventStatus)leftRearInflatableBelted { - return [store sdl_objectForName:SDLNameLeftRearInflatableBelted]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameLeftRearInflatableBelted error:&error]; } - (void)setRightRearInflatableBelted:(SDLVehicleDataEventStatus)rightRearInflatableBelted { - [store sdl_setObject:rightRearInflatableBelted forName:SDLNameRightRearInflatableBelted]; + [self.store sdl_setObject:rightRearInflatableBelted forName:SDLRPCParameterNameRightRearInflatableBelted]; } - (SDLVehicleDataEventStatus)rightRearInflatableBelted { - return [store sdl_objectForName:SDLNameRightRearInflatableBelted]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameRightRearInflatableBelted error:&error]; } - (void)setMiddleRow1BeltDeployed:(SDLVehicleDataEventStatus)middleRow1BeltDeployed { - [store sdl_setObject:middleRow1BeltDeployed forName:SDLNameMiddleRow1BeltDeployed]; + [self.store sdl_setObject:middleRow1BeltDeployed forName:SDLRPCParameterNameMiddleRow1BeltDeployed]; } - (SDLVehicleDataEventStatus)middleRow1BeltDeployed { - return [store sdl_objectForName:SDLNameMiddleRow1BeltDeployed]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameMiddleRow1BeltDeployed error:&error]; } - (void)setMiddleRow1BuckleBelted:(SDLVehicleDataEventStatus)middleRow1BuckleBelted { - [store sdl_setObject:middleRow1BuckleBelted forName:SDLNameMiddleRow1BuckleBelted]; + [self.store sdl_setObject:middleRow1BuckleBelted forName:SDLRPCParameterNameMiddleRow1BuckleBelted]; } - (SDLVehicleDataEventStatus)middleRow1BuckleBelted { - return [store sdl_objectForName:SDLNameMiddleRow1BuckleBelted]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameMiddleRow1BuckleBelted error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBodyInformation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBodyInformation.m index 3ffbe97..fe8aa8b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBodyInformation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBodyInformation.m @@ -7,66 +7,69 @@ #import "NSMutableDictionary+Store.h" #import "SDLIgnitionStableStatus.h" #import "SDLIgnitionStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLBodyInformation - (void)setParkBrakeActive:(NSNumber *)parkBrakeActive { - [store sdl_setObject:parkBrakeActive forName:SDLNameParkBrakeActive]; + [self.store sdl_setObject:parkBrakeActive forName:SDLRPCParameterNameParkBrakeActive]; } - (NSNumber *)parkBrakeActive { - return [store sdl_objectForName:SDLNameParkBrakeActive]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameParkBrakeActive ofClass:NSNumber.class error:&error]; } - (void)setIgnitionStableStatus:(SDLIgnitionStableStatus)ignitionStableStatus { - [store sdl_setObject:ignitionStableStatus forName:SDLNameIgnitionStableStatus]; + [self.store sdl_setObject:ignitionStableStatus forName:SDLRPCParameterNameIgnitionStableStatus]; } - (SDLIgnitionStableStatus)ignitionStableStatus { - return [store sdl_objectForName:SDLNameIgnitionStableStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameIgnitionStableStatus error:&error]; } - (void)setIgnitionStatus:(SDLIgnitionStatus)ignitionStatus { - [store sdl_setObject:ignitionStatus forName:SDLNameIgnitionStatus]; + [self.store sdl_setObject:ignitionStatus forName:SDLRPCParameterNameIgnitionStatus]; } - (SDLIgnitionStatus)ignitionStatus { - return [store sdl_objectForName:SDLNameIgnitionStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameIgnitionStatus error:&error]; } - (void)setDriverDoorAjar:(nullable NSNumber *)driverDoorAjar { - [store sdl_setObject:driverDoorAjar forName:SDLNameDriverDoorAjar]; + [self.store sdl_setObject:driverDoorAjar forName:SDLRPCParameterNameDriverDoorAjar]; } - (nullable NSNumber *)driverDoorAjar { - return [store sdl_objectForName:SDLNameDriverDoorAjar]; + return [self.store sdl_objectForName:SDLRPCParameterNameDriverDoorAjar ofClass:NSNumber.class error:nil]; } - (void)setPassengerDoorAjar:(nullable NSNumber *)passengerDoorAjar { - [store sdl_setObject:passengerDoorAjar forName:SDLNamePassengerDoorAjar]; + [self.store sdl_setObject:passengerDoorAjar forName:SDLRPCParameterNamePassengerDoorAjar]; } - (nullable NSNumber *)passengerDoorAjar { - return [store sdl_objectForName:SDLNamePassengerDoorAjar]; + return [self.store sdl_objectForName:SDLRPCParameterNamePassengerDoorAjar ofClass:NSNumber.class error:nil]; } - (void)setRearLeftDoorAjar:(nullable NSNumber *)rearLeftDoorAjar { - [store sdl_setObject:rearLeftDoorAjar forName:SDLNameRearLeftDoorAjar]; + [self.store sdl_setObject:rearLeftDoorAjar forName:SDLRPCParameterNameRearLeftDoorAjar]; } - (nullable NSNumber *)rearLeftDoorAjar { - return [store sdl_objectForName:SDLNameRearLeftDoorAjar]; + return [self.store sdl_objectForName:SDLRPCParameterNameRearLeftDoorAjar ofClass:NSNumber.class error:nil]; } - (void)setRearRightDoorAjar:(nullable NSNumber *)rearRightDoorAjar { - [store sdl_setObject:rearRightDoorAjar forName:SDLNameRearRightDoorAjar]; + [self.store sdl_setObject:rearRightDoorAjar forName:SDLRPCParameterNameRearRightDoorAjar]; } - (nullable NSNumber *)rearRightDoorAjar { - return [store sdl_objectForName:SDLNameRearRightDoorAjar]; + return [self.store sdl_objectForName:SDLRPCParameterNameRearRightDoorAjar ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.h index 35600f5..1333da2 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.h @@ -4,6 +4,7 @@ #import "SDLRPCMessage.h" #import "SDLButtonName.h" +#import "SDLModuleInfo.h" /** @@ -44,6 +45,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic) NSNumber *upDownAvailable; +/** + * Information about a RC module, including its id. + * + * Optional + */ +@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.m index 42aeb7a..1685d09 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.m @@ -4,42 +4,54 @@ #import "SDLButtonCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLButtonCapabilities - (void)setName:(SDLButtonName)name { - [store sdl_setObject:name forName:SDLNameName]; + [self.store sdl_setObject:name forName:SDLRPCParameterNameName]; } - (SDLButtonName)name { - return [store sdl_objectForName:SDLNameName]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameName error:&error]; } - (void)setShortPressAvailable:(NSNumber *)shortPressAvailable { - [store sdl_setObject:shortPressAvailable forName:SDLNameShortPressAvailable]; + [self.store sdl_setObject:shortPressAvailable forName:SDLRPCParameterNameShortPressAvailable]; } - (NSNumber *)shortPressAvailable { - return [store sdl_objectForName:SDLNameShortPressAvailable]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameShortPressAvailable ofClass:NSNumber.class error:&error]; } - (void)setLongPressAvailable:(NSNumber *)longPressAvailable { - [store sdl_setObject:longPressAvailable forName:SDLNameLongPressAvailable]; + [self.store sdl_setObject:longPressAvailable forName:SDLRPCParameterNameLongPressAvailable]; } - (NSNumber *)longPressAvailable { - return [store sdl_objectForName:SDLNameLongPressAvailable]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLongPressAvailable ofClass:NSNumber.class error:&error]; } - (void)setUpDownAvailable:(NSNumber *)upDownAvailable { - [store sdl_setObject:upDownAvailable forName:SDLNameUpDownAvailable]; + [self.store sdl_setObject:upDownAvailable forName:SDLRPCParameterNameUpDownAvailable]; } - (NSNumber *)upDownAvailable { - return [store sdl_objectForName:SDLNameUpDownAvailable]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameUpDownAvailable ofClass:NSNumber.class error:&error]; +} + +- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { + [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; +} + +- (nullable SDLModuleInfo *)moduleInfo { + return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.h index cb767ef..4f6007f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.h @@ -208,3 +208,79 @@ extern SDLButtonName const SDLButtonNameShuffle; * Represents a Repeat button. */ extern SDLButtonName const SDLButtonNameRepeat; + +#pragma mark - Navigation Buttons +/** + * Represents a Navigate to center button. + */ +extern SDLButtonName const SDLButtonNameNavCenterLocation; + +/** + * Represents a Zoom in button. + */ +extern SDLButtonName const SDLButtonNameNavZoomIn; + +/** + * Represents a Zoom out button. + */ +extern SDLButtonName const SDLButtonNameNavZoomOut; + +/** + * Represents a Pan up button + */ +extern SDLButtonName const SDLButtonNameNavPanUp; + +/** + * Represents a Pan up/right button + */ +extern SDLButtonName const SDLButtonNameNavPanUpRight; + +/** + * Represents a Pan right button + */ +extern SDLButtonName const SDLButtonNameNavPanRight; + +/** + * Represents a Pan down/right button + */ +extern SDLButtonName const SDLButtonNameNavPanDownRight; + +/** + * Represents a Pan down button + */ +extern SDLButtonName const SDLButtonNameNavPanDown; + +/** + * Represents a Pan down left button + */ +extern SDLButtonName const SDLButtonNameNavPanDownLeft; + +/** + * Represents a Pan left button + */ +extern SDLButtonName const SDLButtonNameNavPanLeft; + +/** + * Represents a Pan up left button + */ +extern SDLButtonName const SDLButtonNameNavPanUpLeft; + +/** + * Represents a Tilt button. If supported, this toggles between a top-down view and an angled/3D view. If your app supports different, but substantially similar options, then you may implement those. If you don't implement these or similar options, do not subscribe to this button. + */ +extern SDLButtonName const SDLButtonNameNavTiltToggle; + +/** + * Represents a Rotate clockwise button + */ +extern SDLButtonName const SDLButtonNameNavRotateClockwise; + +/** + * Represents a Rotate counterclockwise button + */ +extern SDLButtonName const SDLButtonNameNavRotateCounterClockwise; + +/** + * Represents a Heading toggle button. If supported, this toggles between locking the orientation to north or to the vehicle's heading. If your app supports different, but substantially similar options, then you may implement those. If you don't implement these or similar options, do not subscribe to this button. + */ +extern SDLButtonName const SDLButtonNameNavHeadingToggle; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.m index fe8e1ac..c0979df 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.m @@ -40,3 +40,18 @@ SDLButtonName const SDLButtonNameSource = @"SOURCE"; SDLButtonName const SDLButtonNameShuffle = @"SHUFFLE"; SDLButtonName const SDLButtonNameRepeat = @"REPEAT"; +SDLButtonName const SDLButtonNameNavCenterLocation = @"NAV_CENTER_LOCATION"; +SDLButtonName const SDLButtonNameNavZoomIn = @"NAV_ZOOM_IN"; +SDLButtonName const SDLButtonNameNavZoomOut = @"NAV_ZOOM_OUT"; +SDLButtonName const SDLButtonNameNavPanUp = @"NAV_PAN_UP"; +SDLButtonName const SDLButtonNameNavPanUpRight = @"NAV_PAN_UP_RIGHT"; +SDLButtonName const SDLButtonNameNavPanRight = @"NAV_PAN_RIGHT"; +SDLButtonName const SDLButtonNameNavPanDownRight = @"NAV_PAN_DOWN_RIGHT"; +SDLButtonName const SDLButtonNameNavPanDown = @"NAV_PAN_DOWN"; +SDLButtonName const SDLButtonNameNavPanDownLeft = @"NAV_PAN_DOWN_LEFT"; +SDLButtonName const SDLButtonNameNavPanLeft = @"NAV_PAN_LEFT"; +SDLButtonName const SDLButtonNameNavPanUpLeft = @"NAV_PAN_UP_LEFT"; +SDLButtonName const SDLButtonNameNavTiltToggle = @"NAV_TILT_TOGGLE"; +SDLButtonName const SDLButtonNameNavRotateClockwise = @"NAV_ROTATE_CLOCKWISE"; +SDLButtonName const SDLButtonNameNavRotateCounterClockwise = @"NAV_ROTATE_COUNTERCLOCKWISE"; +SDLButtonName const SDLButtonNameNavHeadingToggle = @"NAV_HEADING_TOGGLE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.h index b019b4e..c5769ca 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.h @@ -7,15 +7,47 @@ #import "SDLButtonName.h" #import "SDLButtonPressMode.h" -/** - * This RPC allows a remote control type mobile application to simulate a hardware button press event. - */ - NS_ASSUME_NONNULL_BEGIN +/** + This RPC allows a remote control type mobile application to simulate a hardware button press event. + + @since RPC 4.5 +*/ @interface SDLButtonPress : SDLRPCRequest -- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType) moduleType; +/** +Constructs a newly allocated SDLButtonPress object with the given parameters + +@param buttonName the name of the button +@param moduleType the module where the button should be pressed + +@return An instance of the SDLButtonPress class. +*/ +- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType __deprecated_msg(("Use initWithButtonName:moduleType:moduleId:buttonPressMode: instead"));; + +/** +Constructs a newly allocated SDLButtonPress object with the given parameters + +@param buttonName the name of the button +@param moduleType the module where the button should be pressed +@param moduleId the id of the module + +@return An instance of the SDLButtonPress class. +*/ +- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType moduleId:(nullable NSString *)moduleId __deprecated_msg(("Use initWithButtonName:moduleType:moduleId:buttonPressMode: instead"));; + +/** +Constructs a newly allocated SDLButtonPress object with the given parameters + +@param buttonName the name of the button +@param moduleType the module where the button should be pressed +@param moduleId the id of the module +@param buttonPressMode indicates LONG or SHORT button press event + +@return An instance of the SDLButtonPress class. +*/ +- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType moduleId:(nullable NSString *)moduleId buttonPressMode:(SDLButtonPressMode)buttonPressMode; /** * The module where the button should be pressed. @@ -23,6 +55,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic) SDLModuleType moduleType; +/** + * Id of a module, published by System Capability. + * + * Optional + */ +@property (nullable, strong, nonatomic) NSString *moduleId; + /** * The name of supported RC climate or radio button. * diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.m index 3555780..419f0d7 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.m @@ -3,20 +3,24 @@ // #import "SDLButtonPress.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLButtonPress +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameButtonPress]) { + if (self = [super initWithName:SDLRPCFunctionNameButtonPress]) { } return self; } +#pragma clang diagnostic pop -- (instancetype)initWithButtonName:(SDLButtonName) buttonName moduleType:(SDLModuleType) moduleType { +- (instancetype)initWithButtonName:(SDLButtonName) buttonName moduleType:(SDLModuleType)moduleType { self = [self init]; if (!self) { return nil; @@ -28,28 +32,67 @@ - (instancetype)initWithButtonName:(SDLButtonName) buttonName moduleType:(SDLMod return self; } +- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType moduleId:(nullable NSString *)moduleId { + self = [self init]; + if (!self) { + return nil; + } + + self.buttonName = buttonName; + self.moduleType = moduleType; + self.moduleId = moduleId; + + return self; +} + +- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType moduleId:(nullable NSString *)moduleId buttonPressMode:(SDLButtonPressMode)buttonPressMode { + self = [self init]; + if (!self) { + return nil; + } + + self.buttonName = buttonName; + self.moduleType = moduleType; + self.moduleId = moduleId; + self.buttonPressMode = buttonPressMode; + + return self; +} + - (void)setModuleType:(SDLModuleType)moduleType { - [parameters sdl_setObject:moduleType forName:SDLNameModuleType]; + [self.parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; } - (SDLModuleType)moduleType { - return [parameters sdl_objectForName:SDLNameModuleType]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; } - (void)setButtonName:(SDLButtonName)buttonName { - [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; + [self.parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; } - (SDLButtonName)buttonName { - return [parameters sdl_objectForName:SDLNameButtonName]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; } - (void)setButtonPressMode:(SDLButtonPressMode)buttonPressMode { - [parameters sdl_setObject:buttonPressMode forName:SDLNameButtonPressMode]; + [self.parameters sdl_setObject:buttonPressMode forName:SDLRPCParameterNameButtonPressMode]; } - (SDLButtonPressMode)buttonPressMode { - return [parameters sdl_objectForName:SDLNameButtonPressMode]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonPressMode error:&error]; +} + +- (void)setModuleId:(nullable NSString *)moduleId { + [self.parameters sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId]; +} + +- (nullable NSString *)moduleId { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressResponse.m index 3e768a8..0dde4c5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressResponse.m @@ -3,17 +3,21 @@ // #import "SDLButtonPressResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLButtonPressResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameButtonPress]) { + if (self = [super initWithName:SDLRPCFunctionNameButtonPress]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.h new file mode 100644 index 0000000..abdd957 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.h @@ -0,0 +1,29 @@ +// +// SDLCacheFileManager.h +// SmartDeviceLink +// +// Created by James Lapinski on 3/10/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +@class SDLOnSystemRequest; + +NS_ASSUME_NONNULL_BEGIN + +typedef void (^ImageRetrievalCompletionHandler)(UIImage * _Nullable image, NSError * _Nullable error); + +@interface SDLCacheFileManager : NSObject + +/** + * Handles a system request from the head unit to use a lock screen icon from a URL. + * + * @param request The system request from the head unit for the icon specified in its URL. + * @param completion The handler called when the manager retrieves the icon or fails to do so with an error. +*/ +- (void)retrieveImageForRequest:(SDLOnSystemRequest *)request withCompletionHandler:(ImageRetrievalCompletionHandler)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.m new file mode 100644 index 0000000..e5b1e23 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.m @@ -0,0 +1,292 @@ +// +// SDLCacheFileManager.m +// SmartDeviceLink +// +// Created by James Lapinski on 3/10/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLCacheFileManager.h" +#import "SDLError.h" +#import "SDLIconArchiveFile.h" +#import "SDLLogMacros.h" +#import "SDLOnSystemRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +static float DefaultConnectionTimeout = 45.0; +NSString *const SDLErrorDomainCacheManager = @"com.sdl.cacheManager"; + +@interface SDLCacheFileManager() + +@property (nonatomic, strong) NSURLSession *urlSession; +@property (strong, nonatomic, readonly) NSString *cacheFileBaseDirectory; +@property (strong, nonatomic, readonly) NSString *archiveFilePath; +@property (strong, nonatomic, nullable) NSURLSessionDataTask *dataTask; +@property (strong, nonatomic) NSFileManager *fileManager; + +@end + +@implementation SDLCacheFileManager + +- (instancetype)init { + self = [super init]; + if (!self) { return nil; } + + NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; + configuration.timeoutIntervalForRequest = DefaultConnectionTimeout; + configuration.timeoutIntervalForResource = DefaultConnectionTimeout; + configuration.requestCachePolicy = NSURLRequestUseProtocolCachePolicy; + + _urlSession = [NSURLSession sessionWithConfiguration:configuration]; + _fileManager = [NSFileManager defaultManager]; + + return self; +} + +- (void)retrieveImageForRequest:(SDLOnSystemRequest *)request withCompletionHandler:(ImageRetrievalCompletionHandler)completion { + NSError *error = nil; + UIImage *icon = nil; + + // Check if the directory already exists; if it does not, create it + if (![self.fileManager fileExistsAtPath:self.cacheFileBaseDirectory]) { + [self.fileManager createDirectoryAtPath:self.cacheFileBaseDirectory withIntermediateDirectories:YES attributes:nil error:&error]; + + if (error != nil) { + SDLLogE(@"Could not create directory at specified path: %@; we will attempt to download and return image anyway", error); + } + } + + // Attempt to retrieve archive file from directory cache + SDLIconArchiveFile *iconArchiveFile = nil; + @try { + iconArchiveFile = [NSKeyedUnarchiver unarchiveObjectWithFile:self.archiveFilePath]; + } @catch (NSException *exception) { + SDLLogE(@"Unable to retrieve archive file from file path: %@", exception); + } + + // Check if there's no archive file in the directory. If there isn't clear the entire directory + if (iconArchiveFile == nil || iconArchiveFile.lockScreenIconCaches.count == 0) { + [self.class sdl_clearDirectoryWithPath:self.cacheFileBaseDirectory fileManager:self.fileManager]; + iconArchiveFile = [[SDLIconArchiveFile alloc] init]; + } + + // Loop through the icons in the cache file copy and check if it's the file we're looking for + NSArray *iconCachesCopy = [iconArchiveFile.lockScreenIconCaches copy]; + for (SDLLockScreenIconCache *iconCache in iconCachesCopy) { + // The icon isn't the one we're looking for + if (![iconCache.iconUrl isEqualToString:request.url]) { continue; } + + // The icon we're looking for has expired + if ([self.class numberOfDaysFromDateCreated:iconCache.lastModifiedDate] >= 30) { break; } + + // Create the file path for the image by hashing the URL which creates a guaranteed unique path name + NSString *imageFilePath = [self.cacheFileBaseDirectory stringByAppendingPathComponent:[self.class sdl_md5HashFromString:request.url]]; + icon = [UIImage imageWithContentsOfFile:imageFilePath]; + + // If we fail to get icon at path, break loop early to download new icon + if (icon == nil) { + SDLLogW(@"No icon was found at the path, we need to download a new icon"); + [self.class sdl_clearDirectoryWithPath:self.cacheFileBaseDirectory fileManager:self.fileManager]; + iconArchiveFile = [[SDLIconArchiveFile alloc] init]; + break; + } + + return completion(icon, nil); + } + + // If we got to this point, retrieving the icon failed for some reason. We will download the image and try to store it instead. + [self sdl_downloadIconFromRequestURL:request.url withCompletionHandler:^(UIImage * _Nullable image, NSError * _Nullable error) { + if (error != nil) { + SDLLogE(@"Downloading the lock screen icon failed with error: %@", error); + return completion(nil, error); + } + + // Save lock screen icon to file path + NSString *iconFilePath = [self.class sdl_writeImage:image toFilePath:self.cacheFileBaseDirectory imageURL:request.url]; + if (iconFilePath == nil) { + SDLLogE(@"Could not save lock screen icon to path with error: %@; we will return the image anyway", error); + return completion(image, nil); + } + + // Update archive file with icon + BOOL writeSuccess = [self updateArchiveFileWithIconURL:request.url iconFilePath:iconFilePath archiveFile:iconArchiveFile error:&error]; + if (error != nil || !writeSuccess) { + SDLLogE(@"Could not update archive file with error: %@; we will return the image anyway", error); + } + + return completion(image, nil); + }]; +} + + +#pragma mark - Cache Directory and Files + +/** + * Handles the request to clear all files from lock screen icon directory in cache. +*/ ++ (void)sdl_clearDirectoryWithPath:(NSString *)path fileManager:(NSFileManager *)fileManager { + NSError *error = nil; + for (NSString *file in [fileManager contentsOfDirectoryAtPath:path error:&error]) { + if (error != nil) { + SDLLogE(@"Cannot clear directory; failed retrieving contents of directory: %@ with error: %@", path, error); + break; + } + + BOOL success = [fileManager removeItemAtPath:[path stringByAppendingPathComponent:file] error:&error]; + if (!success || error != nil) { + SDLLogE(@"Could not clear directory at path: %@; Could not delete file: %@", path, error); + break; + } + } +} + +/** + * Handles request to save icon image to cache. + * + * @param icon The icon to be saved to the cache + * @param filePath The directory location to save the icon at + * @param urlString The url of the icon to be hashed and used as file name + * @return A string representation of the directory the icon was saved to +*/ ++ (nullable NSString *)sdl_writeImage:(UIImage *)icon toFilePath:(NSString *)filePath imageURL:(NSString *)urlString { + NSError *error = nil; + + NSData *iconPNGData = UIImagePNGRepresentation(icon); + NSString *iconStorageName = [self.class sdl_md5HashFromString:urlString]; + NSString *imageFilePath = [filePath stringByAppendingPathComponent:[iconStorageName stringByAppendingString:@".png"]]; + + BOOL writeSuccess = [iconPNGData writeToFile:imageFilePath atomically:YES]; + if (!writeSuccess) { + SDLLogE(@"Could not write image file to specified path: %@", error); + return nil; + } + + return imageFilePath; +} + +/** + * Handles request to update archive file. Will create a new archive file if one is not present. + * + * @param iconURL The System request URL used to retrieve the icon + * @param iconFilePath The directory path where the icon file is held + * @param archiveFile Current archive file to update + * @param error An error that occurs if the archiver fails to archive the object to file +*/ +- (BOOL)updateArchiveFileWithIconURL:(NSString *)iconURL + iconFilePath:(NSString *)iconFilePath + archiveFile:(SDLIconArchiveFile *)archiveFile + error:(NSError **)error { + NSMutableArray *archiveArray = [archiveFile.lockScreenIconCaches mutableCopy]; + + // Need to remove duplicate SDLLockScreenIconCache object if handling expired icon + for (SDLLockScreenIconCache *iconCacheCopy in archiveArray) { + if ([iconCacheCopy.iconUrl isEqualToString:iconURL]) { + [archiveArray removeObject:iconCacheCopy]; + break; + } + } + + // Add the new file to the archive + [archiveArray addObject:[[SDLLockScreenIconCache alloc] initWithIconUrl:iconURL iconFilePath:iconFilePath]]; + archiveFile.lockScreenIconCaches = archiveArray; + + // HAX: Update this when we are iOS 11.0+. You will need to create a data object using 'archivedDataWithRootObject:requiringSecureCoding:error:', and write it to file using 'writeToFile:options:error:' + // Write the new archive to disk + BOOL writeSuccess = [NSKeyedArchiver archiveRootObject:archiveFile toFile:self.archiveFilePath]; + if (!writeSuccess) { + if (!*error) { + *error = [NSError errorWithDomain:SDLErrorDomainCacheFileManager code:SDLCacheManagerErrorUpdateIconArchiveFileFailure userInfo:nil]; + SDLLogE(@"Error attempting to write archive file to cache: %@", *error); + } + + return NO; + } + + return YES; +} + + +#pragma mark - Directory Getters + +- (NSString *)cacheFileBaseDirectory { + NSString *cacheDirectory = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject; + return [cacheDirectory stringByAppendingPathComponent:@"/sdl/lockScreenIcon/"]; +} + +- (NSString *)archiveFilePath { + return [self.cacheFileBaseDirectory stringByAppendingPathComponent:@"archiveCacheFile.plist"]; +} + + +#pragma mark - Download Image + +/** + * Handles request to download icon from request + * + * @param requestURL The System request URL used to download icon + * @param completion The completion handler is called when the icon download succeeds or fails with error +*/ +- (void)sdl_downloadIconFromRequestURL:(NSString *)requestURL withCompletionHandler:(ImageRetrievalCompletionHandler)completion { + NSURL *url = [NSURL URLWithString:requestURL]; + if ([url.scheme isEqualToString:@"http"]) { + url = [NSURL URLWithString:[requestURL stringByReplacingCharactersInRange:NSMakeRange(0, 4) withString:@"https"]]; + } + + self.dataTask = [self.urlSession dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { + if (error != nil) { + SDLLogW(@"Lock screen icon download task failed: %@", error); + return completion(nil, error); + } + + UIImage *icon = [UIImage imageWithData:data]; + if (icon == nil) { + SDLLogW(@"Returned data conversion to image failed: %@", error); + return completion(nil, error); + } + + return completion(icon, nil); + }]; + + [self.dataTask resume]; +} + + +#pragma mark - Helper Methods + +/** + * Creates a directory friendly string representation of a URL string by hashing the URL using the MD5 hash function. + * + * HAX: A MD5 hash always creates a string with 32 characters (128-bits). Due to some implementations of Core not following the spec, file names that are too long are being rejected. To try to accommodate this setup, hashed file names are being truncated to 16 characters. + * + * @param string The string to hash + * @return A MD5 hash of the string + */ ++ (NSString *)sdl_md5HashFromString:(NSString *)string { + const char* str = [string UTF8String]; + unsigned char hash[CC_MD5_DIGEST_LENGTH]; + CC_MD5(str, (CC_LONG)strlen(str), hash); + NSMutableString *formattedHash = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH]; + // HAX: To shorten the string to 16 characters, the loop has been shortened to 8 fom 16. + for (int i = 0; i < CC_MD5_DIGEST_LENGTH / 2; i += 1) { + [formattedHash appendFormat:@"%02x", hash[i]]; + } + return formattedHash; +} + +/** + * Determines the number of days from a spicified date. + * + * @param date The date to be compared against + * @return Integer representing number of days + */ ++ (NSInteger)numberOfDaysFromDateCreated:(NSDate *)date { + NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay fromDate:date toDate:[NSDate date] options:kNilOptions]; + return components.day; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.h new file mode 100644 index 0000000..20b0976 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.h @@ -0,0 +1,115 @@ +// +// SDLCancelInteraction.h +// SmartDeviceLink +// +// Created by Nicole on 7/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + Used to dismiss a modal view programmatically without needing to wait for the timeout to complete. Can be used to dismiss alerts, scrollable messages, sliders, and perform interactions (i.e. pop-up menus). + + @see SDLAlert, SDLScrollableMessage, SDLSlider, SDLPerformInteraction + */ +@interface SDLCancelInteraction : SDLRPCRequest + +/** + Convenience init for dismissing the currently presented modal view (either an alert, slider, scrollable message, or perform interation). + + @param functionID The ID of the type of modal view to dismiss + @return A SDLCancelInteraction object + */ +- (instancetype)initWithFunctionID:(UInt32)functionID; + +/** + Convenience init for dismissing a specific view. + + @param functionID The ID of the type of interaction to dismiss + @param cancelID The ID of the specific interaction to dismiss + @return A SDLCancelInteraction object + */ +- (instancetype)initWithFunctionID:(UInt32)functionID cancelID:(UInt32)cancelID; + +/** + Convenience init for dismissing an alert. + + @param cancelID The ID of the specific interaction to dismiss + @return A SDLCancelInteraction object + */ +- (instancetype)initWithAlertCancelID:(UInt32)cancelID; + +/** + Convenience init for dismissing a slider. + + @param cancelID The ID of the specific interaction to dismiss + @return A SDLCancelInteraction object + */ +- (instancetype)initWithSliderCancelID:(UInt32)cancelID; + +/** + Convenience init for dismissing a scrollable message. + + @param cancelID The ID of the specific interaction to dismiss + @return A SDLCancelInteraction object + */ +- (instancetype)initWithScrollableMessageCancelID:(UInt32)cancelID; + +/** + Convenience init for dismissing a perform interaction. + + @param cancelID The ID of the specific interaction to dismiss + @return A SDLCancelInteraction object + */ +- (instancetype)initWithPerformInteractionCancelID:(UInt32)cancelID; + +/** + Convenience init for dismissing the currently presented alert. + + @return A SDLCancelInteraction object + */ ++ (instancetype)alert; + +/** + Convenience init for dismissing the currently presented slider. + + @return A SDLCancelInteraction object + */ ++ (instancetype)slider; + +/** + Convenience init for dismissing the currently presented scrollable message. + + @return A SDLCancelInteraction object + */ ++ (instancetype)scrollableMessage; + +/** + Convenience init for dismissing the currently presented perform interaction. + + @return A SDLCancelInteraction object + */ ++ (instancetype)performInteraction NS_SWIFT_NAME(performInteraction()); + +/** + The ID of the specific interaction to dismiss. If not set, the most recent of the RPC type set in functionID will be dismissed. + + Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *cancelID; + +/** + The ID of the type of interaction to dismiss. + + Only values 10 (PerformInteractionID), 12 (AlertID), 25 (ScrollableMessageID), and 26 (SliderID) are permitted. + + Integer, Required + */ +@property (strong, nonatomic) NSNumber *functionID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.m new file mode 100644 index 0000000..40de4fb --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.m @@ -0,0 +1,103 @@ +// +// SDLCancelInteraction.m +// SmartDeviceLink +// +// Created by Nicole on 7/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLCancelInteraction.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLFunctionID.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLCancelInteraction + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameCancelInteraction]) { + } + return self; +} +#pragma clang diagnostic pop + + +- (instancetype)initWithFunctionID:(UInt32)functionID { + self = [self init]; + if (!self) { + return nil; + } + + self.functionID = @(functionID); + + return self; +} + +- (instancetype)initWithFunctionID:(UInt32)functionID cancelID:(UInt32)cancelID { + self = [self initWithFunctionID:functionID]; + if (!self) { + return nil; + } + + self.cancelID = @(cancelID); + + return self; +} + +- (instancetype)initWithAlertCancelID:(UInt32)cancelID { + return [self initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameAlert].unsignedIntValue cancelID:cancelID]; +} + +- (instancetype)initWithSliderCancelID:(UInt32)cancelID { + return [self initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameSlider].unsignedIntValue cancelID:cancelID]; +} + +- (instancetype)initWithScrollableMessageCancelID:(UInt32)cancelID { + return [self initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameScrollableMessage].unsignedIntValue cancelID:cancelID]; +} + +- (instancetype)initWithPerformInteractionCancelID:(UInt32)cancelID { + return [self initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNamePerformInteraction].unsignedIntValue cancelID:cancelID]; +} + ++ (instancetype)alert { + return [[self alloc] initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameAlert].unsignedIntValue]; +} + ++ (instancetype)slider { + return [[self alloc] initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameSlider].unsignedIntValue]; +} + ++ (instancetype)scrollableMessage { + return [[self alloc] initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameScrollableMessage].unsignedIntValue]; +} + ++ (instancetype)performInteraction { + return [[self alloc] initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNamePerformInteraction].unsignedIntValue]; +} + +- (void)setCancelID:(nullable NSNumber *)cancelID { + [self.parameters sdl_setObject:cancelID forName:SDLRPCParameterNameCancelID]; +} + +- (nullable NSNumber *)cancelID { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCancelID ofClass:NSNumber.class error:nil]; +} + +- (void)setFunctionID:(NSNumber *)functionID { + [self.parameters sdl_setObject:functionID forName:SDLRPCParameterNameFunctionID]; +} + +- (NSNumber *)functionID { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFunctionID ofClass:NSNumber.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.h new file mode 100644 index 0000000..9a2ba5c --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.h @@ -0,0 +1,20 @@ +// +// SDLCancelInteractionResponse.h +// SmartDeviceLink +// +// Created by Nicole on 7/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + Response to the request to dismiss a modal view. If no applicable request can be dismissed, the `resultCode` will be `IGNORED`. + */ +@interface SDLCancelInteractionResponse : SDLRPCResponse + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.m new file mode 100644 index 0000000..325fa96 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.m @@ -0,0 +1,27 @@ +// +// SDLCancelInteractionResponse.m +// SmartDeviceLink +// +// Created by Nicole on 7/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLCancelInteractionResponse.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLCancelInteractionResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameCancelInteraction]) { + } + return self; +} +#pragma clang diagnostic pop + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.h index aaed77b..45d2f0a 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.h @@ -19,7 +19,6 @@ NS_ASSUME_NONNULL_BEGIN /** Initialize the CarWindow automatic streamer. - @param streamManager The stream manager to use for retrieving head unit dimension details and forwarding video frame data @param configuration The streaming media configuration @return An instance of this class @@ -27,10 +26,13 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithStreamManager:(SDLStreamingVideoLifecycleManager *)streamManager configuration:(SDLStreamingMediaConfiguration *)configuration; /** - * View Controller that will be streamed. + View controller that will be streamed. */ @property (strong, nonatomic, nullable) UIViewController *rootViewController; +/** + Called by SDLStreamingMediaManager in sync with the streaming framerate. Captures a screenshot of the view controller and sends the data to Core. + */ - (void)syncFrame; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.m old mode 100755 new mode 100644 index 5e2e025..12f2e83 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.m @@ -20,6 +20,7 @@ #import "SDLStateMachine.h" #import "SDLStreamingMediaConfiguration.h" #import "SDLStreamingVideoLifecycleManager.h" +#import "SDLStreamingVideoScaleManager.h" #import "SDLStreamingMediaManagerConstants.h" NS_ASSUME_NONNULL_BEGIN @@ -41,7 +42,7 @@ @interface SDLCarWindow () @implementation SDLCarWindow -- (instancetype)initWithStreamManager:(SDLStreamingVideoLifecycleManager *)streamManager configuration:(nonnull SDLStreamingMediaConfiguration *)configuration { +- (instancetype)initWithStreamManager:(SDLStreamingVideoLifecycleManager *)streamManager configuration:(SDLStreamingMediaConfiguration *)configuration { self = [super init]; if (!self) { return nil; } @@ -72,7 +73,6 @@ - (void)syncFrame { } CGRect bounds = self.rootViewController.view.bounds; - UIGraphicsBeginImageContextWithOptions(bounds.size, YES, 1.0f); switch (self.renderingType) { case SDLCarWindowRenderingTypeLayer: { @@ -92,8 +92,14 @@ - (void)syncFrame { CGImageRef imageRef = screenshot.CGImage; CVPixelBufferRef pixelBuffer = [self.class sdl_pixelBufferForImageRef:imageRef usingPool:self.streamManager.pixelBufferPool]; if (pixelBuffer != nil) { - [self.streamManager sendVideoData:pixelBuffer]; + BOOL success = [self.streamManager sendVideoData:pixelBuffer]; + if (!success) { + SDLLogE(@"Video frame will not be sent because the video frame encoding failed"); + return; + } CVPixelBufferRelease(pixelBuffer); + } else { + SDLLogE(@"Video frame will not be sent because the pixelBuffer is nil"); } } @@ -118,12 +124,10 @@ - (void)sdl_didDismissLockScreenViewController:(NSNotification *)notification { - (void)sdl_didReceiveVideoStreamStarted:(NSNotification *)notification { self.videoStreamStarted = true; - dispatch_async(dispatch_get_main_queue(), ^{ - // If the video stream has started, we want to resize the streamingViewController to the size from the RegisterAppInterface - self.rootViewController.view.frame = CGRectMake(0, 0, self.streamManager.screenSize.width, self.streamManager.screenSize.height); - self.rootViewController.view.bounds = self.rootViewController.view.frame; + SDLLogD(@"Video stream started"); - SDLLogD(@"Video stream started, setting CarWindow frame to: %@", NSStringFromCGRect(self.rootViewController.view.bounds)); + dispatch_async(dispatch_get_main_queue(), ^{ + [self sdl_applyDisplayDimensionsToRootViewController:self.rootViewController]; }); } @@ -152,11 +156,7 @@ - (void)setRootViewController:(nullable UIViewController *)rootViewController { @throw [NSException sdl_carWindowOrientationException]; } - if (self.streamManager.screenSize.width != 0) { - rootViewController.view.frame = CGRectMake(0, 0, self.streamManager.screenSize.width, self.streamManager.screenSize.height); - rootViewController.view.bounds = rootViewController.view.frame; - } - + [self sdl_applyDisplayDimensionsToRootViewController:rootViewController]; self->_rootViewController = rootViewController; }); } @@ -185,6 +185,28 @@ + (nullable CVPixelBufferRef)sdl_pixelBufferForImageRef:(CGImageRef)imageRef usi return pixelBuffer; } +/** + Sets the rootViewController's frame to the display's viewport dimensions. + + @param rootViewController The view controller to resize + */ +- (void)sdl_applyDisplayDimensionsToRootViewController:(UIViewController *)rootViewController { + if (self.streamManager.videoScaleManager.appViewportFrame.size.width == 0) { + // The dimensions of the display screen is unknown because the connected head unit did not provide a screen resolution in the `RegisterAppInterfaceResponse` or in the video start service ACK. + SDLLogW(@"The dimensions of the display's screen are unknown. The CarWindow frame will not be resized."); + return; + } + + if (CGRectEqualToRect(rootViewController.view.frame, self.streamManager.videoScaleManager.appViewportFrame)) { + SDLLogV(@"The rootViewController frame is already the correct size: %@", NSStringFromCGRect(rootViewController.view.frame)); + return; + } + + rootViewController.view.frame = self.streamManager.videoScaleManager.appViewportFrame; + rootViewController.view.bounds = rootViewController.view.frame; + + SDLLogD(@"Setting CarWindow frame to: %@", NSStringFromCGRect(rootViewController.view.frame)); +} #pragma mark Backgrounded Screen / Text diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.h index 9f5e2e2..5e16d16 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.h @@ -19,8 +19,28 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLChangeRegistration : SDLRPCRequest +/** +Constructs a newly allocated SDLChangeRegistration object with required parameters + +@param language the name of the button +@param hmiDisplayLanguage the module where the button should be pressed + +@return An instance of the SDLChangeRegistration class. +*/ - (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage; +/** +Constructs a newly allocated SDLChangeRegistration object with all parameters + +@param language the language the app wants to change to +@param hmiDisplayLanguage HMI display language +@param appName request a new app name registration +@param ttsName request a new TTSName registration +@param ngnMediaScreenAppName request a new app short name registration +@param vrSynonyms request a new VR synonyms registration + +@return An instance of the SDLChangeRegistration class. +*/ - (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage appName:(nullable NSString *)appName ttsName:(nullable NSArray *)ttsName ngnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName vrSynonyms:(nullable NSArray *)vrSynonyms; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.m index 6d5c2bb..87a14cb 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.m @@ -5,18 +5,22 @@ #import "SDLChangeRegistration.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTTSChunk.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLChangeRegistration +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameChangeRegistration]) { + if (self = [super initWithName:SDLRPCFunctionNameChangeRegistration]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage { self = [self initWithLanguage:language hmiDisplayLanguage:hmiDisplayLanguage appName:nil ttsName:nil ngnMediaScreenAppName:nil vrSynonyms:nil]; @@ -44,51 +48,53 @@ - (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLa } - (void)setLanguage:(SDLLanguage)language { - [parameters sdl_setObject:language forName:SDLNameLanguage]; + [self.parameters sdl_setObject:language forName:SDLRPCParameterNameLanguage]; } - (SDLLanguage)language { - return [parameters sdl_objectForName:SDLNameLanguage]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameLanguage error:&error]; } - (void)setHmiDisplayLanguage:(SDLLanguage )hmiDisplayLanguage { - [parameters sdl_setObject:hmiDisplayLanguage forName:SDLNameHMIDisplayLanguage]; + [self.parameters sdl_setObject:hmiDisplayLanguage forName:SDLRPCParameterNameHMIDisplayLanguage]; } - (SDLLanguage)hmiDisplayLanguage { - return [parameters sdl_objectForName:SDLNameHMIDisplayLanguage]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameHMIDisplayLanguage error:&error]; } - (void)setAppName:(nullable NSString *)appName { - [parameters sdl_setObject:appName forName:SDLNameAppName]; + [self.parameters sdl_setObject:appName forName:SDLRPCParameterNameAppName]; } - (nullable NSString *)appName { - return [[parameters sdl_objectForName:SDLNameAppName] copy]; + return [[self.parameters sdl_objectForName:SDLRPCParameterNameAppName ofClass:NSString.class error:nil] copy]; } - (void)setTtsName:(nullable NSArray *)ttsName { - [parameters sdl_setObject:ttsName forName:SDLNameTTSName]; + [self.parameters sdl_setObject:ttsName forName:SDLRPCParameterNameTTSName]; } - (nullable NSArray *)ttsName { - return [parameters sdl_objectsForName:SDLNameTTSName ofClass:SDLTTSChunk.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameTTSName ofClass:SDLTTSChunk.class error:nil]; } - (void)setNgnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName { - [parameters sdl_setObject:ngnMediaScreenAppName forName:SDLNameNGNMediaScreenAppName]; + [self.parameters sdl_setObject:ngnMediaScreenAppName forName:SDLRPCParameterNameNGNMediaScreenAppName]; } - (nullable NSString *)ngnMediaScreenAppName { - return [parameters sdl_objectForName:SDLNameNGNMediaScreenAppName]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameNGNMediaScreenAppName ofClass:NSString.class error:nil]; } - (void)setVrSynonyms:(nullable NSArray *)vrSynonyms { - [parameters sdl_setObject:vrSynonyms forName:SDLNameVRSynonyms]; + [self.parameters sdl_setObject:vrSynonyms forName:SDLRPCParameterNameVRSynonyms]; } - (nullable NSArray *)vrSynonyms { - return [parameters sdl_objectForName:SDLNameVRSynonyms]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameVRSynonyms ofClass:NSString.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistrationResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistrationResponse.m index 1e5e6cb..a404935 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistrationResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistrationResponse.m @@ -5,17 +5,21 @@ #import "SDLChangeRegistrationResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLChangeRegistrationResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameChangeRegistration]) { + if (self = [super initWithName:SDLRPCFunctionNameChangeRegistration]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m index 0c1be6f..0615cb0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m @@ -11,12 +11,14 @@ #import "SDLChoice.h" #import "SDLCreateInteractionChoiceSet.h" #import "SDLConnectionManagerType.h" +#import "SDLDeleteInteractionChoiceSet.h" #import "SDLLogMacros.h" NS_ASSUME_NONNULL_BEGIN @interface SDLCheckChoiceVROptionalOperation() +@property (strong, nonatomic) NSUUID *operationId; @property (weak, nonatomic) id connectionManager; @property (copy, nonatomic, nullable) NSError *internalError; @@ -29,12 +31,14 @@ - (instancetype)initWithConnectionManager:(id)connecti if (!self) { return nil; } _connectionManager = connectionManager; + _operationId = [NSUUID UUID]; return self; } - (void)start { [super start]; + if (self.isCancelled) { return; } [self sdl_sendTestChoices]; } @@ -47,7 +51,7 @@ - (void)sdl_sendTestChoices { weakself.vrOptional = YES; weakself.internalError = nil; - [weakself finishOperation]; + [weakself sdl_deleteTestChoices]; return; } @@ -58,7 +62,7 @@ - (void)sdl_sendTestChoices { weakself.vrOptional = NO; weakself.internalError = nil; - [weakself finishOperation]; + [weakself sdl_deleteTestChoices]; return; } @@ -70,6 +74,15 @@ - (void)sdl_sendTestChoices { }]; } +- (void)sdl_deleteTestChoices { + SDLDeleteInteractionChoiceSet *deleteChoiceSet = [[SDLDeleteInteractionChoiceSet alloc] initWithId:0]; + + __weak typeof(self) weakself = self; + [self.connectionManager sendConnectionManagerRequest:deleteChoiceSet withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + [weakself finishOperation]; + }]; +} + + (SDLCreateInteractionChoiceSet *)sdl_testCellWithVR:(BOOL)hasVR { SDLChoice *choice = [[SDLChoice alloc] init]; choice.choiceID = @0; @@ -84,7 +97,7 @@ + (SDLCreateInteractionChoiceSet *)sdl_testCellWithVR:(BOOL)hasVR { #pragma mark - Property Overrides - (nullable NSString *)name { - return @"com.sdl.choicesetmanager.checkVROptional"; + return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; } - (NSOperationQueuePriority)queuePriority { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.h index 9abdb56..9651159 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.h @@ -9,14 +9,36 @@ /** * A choice is an option which a user can select either via the menu or via voice recognition (VR) during an application initiated interaction. * - * Since SmartDeviceLink 1.0 + * Since RPC 1.0 */ NS_ASSUME_NONNULL_BEGIN @interface SDLChoice : SDLRPCStruct +/** +Constructs a newly allocated SDLChangeRegistration object with the required parameters + +@param choiceId the application-scoped identifier that uniquely identifies this choice +@param menuName text which appears in menu, representing this choice +@param vrCommands vr synonyms for this choice + +@return An instance of the SDLChangeRegistration class. +*/ - (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(nullable NSArray *)vrCommands; +/** +Constructs a newly allocated SDLChangeRegistration object with all parameters + +@param choiceId the application-scoped identifier that uniquely identifies this choice +@param menuName text which appears in menu, representing this choice +@param vrCommands vr synonyms for this choice +@param image the image of the choice +@param secondaryText secondary text to display; e.g. address of POI in a search result entry +@param secondaryImage secondary image for choice +@param tertiaryText tertiary text to display; e.g. distance to POI for a search result entry + +@return An instance of the SDLChangeRegistration class. +*/ - (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(nullable NSArray *)vrCommands image:(nullable SDLImage *)image secondaryText:(nullable NSString *)secondaryText secondaryImage:(nullable SDLImage *)secondaryImage tertiaryText:(nullable NSString *)tertiaryText; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.m index 7545ec4..e384ddf 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -39,59 +39,61 @@ - (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrComm } - (void)setChoiceID:(NSNumber *)choiceID { - [store sdl_setObject:choiceID forName:SDLNameChoiceId]; + [self.store sdl_setObject:choiceID forName:SDLRPCParameterNameChoiceId]; } - (NSNumber *)choiceID { - return [store sdl_objectForName:SDLNameChoiceId]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameChoiceId ofClass:NSNumber.class error:&error]; } - (void)setMenuName:(NSString *)menuName { - [store sdl_setObject:menuName forName:SDLNameMenuName]; + [self.store sdl_setObject:menuName forName:SDLRPCParameterNameMenuName]; } - (NSString *)menuName { - return [store sdl_objectForName:SDLNameMenuName]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMenuName ofClass:NSString.class error:&error]; } - (void)setVrCommands:(nullable NSArray *)vrCommands { - [store sdl_setObject:vrCommands forName:SDLNameVRCommands]; + [self.store sdl_setObject:vrCommands forName:SDLRPCParameterNameVRCommands]; } - (nullable NSArray *)vrCommands { - return [store sdl_objectForName:SDLNameVRCommands]; + return [self.store sdl_objectsForName:SDLRPCParameterNameVRCommands ofClass:NSString.class error:nil]; } - (void)setImage:(nullable SDLImage *)image { - [store sdl_setObject:image forName:SDLNameImage]; + [self.store sdl_setObject:image forName:SDLRPCParameterNameImage]; } - (nullable SDLImage *)image { - return [store sdl_objectForName:SDLNameImage ofClass:SDLImage.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameImage ofClass:SDLImage.class error:nil]; } - (void)setSecondaryText:(nullable NSString *)secondaryText { - [store sdl_setObject:secondaryText forName:SDLNameSecondaryText]; + [self.store sdl_setObject:secondaryText forName:SDLRPCParameterNameSecondaryText]; } - (nullable NSString *)secondaryText { - return [store sdl_objectForName:SDLNameSecondaryText]; + return [self.store sdl_objectForName:SDLRPCParameterNameSecondaryText ofClass:NSString.class error:nil]; } - (void)setTertiaryText:(nullable NSString *)tertiaryText { - [store sdl_setObject:tertiaryText forName:SDLNameTertiaryText]; + [self.store sdl_setObject:tertiaryText forName:SDLRPCParameterNameTertiaryText]; } - (nullable NSString *)tertiaryText { - return [store sdl_objectForName:SDLNameTertiaryText]; + return [self.store sdl_objectForName:SDLRPCParameterNameTertiaryText ofClass:NSString.class error:nil]; } - (void)setSecondaryImage:(nullable SDLImage *)secondaryImage { - [store sdl_setObject:secondaryImage forName:SDLNameSecondaryImage]; + [self.store sdl_setObject:secondaryImage forName:SDLRPCParameterNameSecondaryImage]; } - (nullable SDLImage *)secondaryImage { - return [store sdl_objectForName:SDLNameSecondaryImage ofClass:SDLImage.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameSecondaryImage ofClass:SDLImage.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceCell.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceCell.h index 5ca267d..197f019 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceCell.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceCell.h @@ -12,6 +12,7 @@ NS_ASSUME_NONNULL_BEGIN +/// A selectable item within an SDLChoiceSet @interface SDLChoiceCell: NSObject /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.h index bb411b8..6740335 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.h @@ -15,11 +15,23 @@ NS_ASSUME_NONNULL_BEGIN +/** + Notifies the subscriber that the choice set should be cancelled. + */ +typedef void (^SDLChoiceSetCanceledHandler)(void); + +/// The layout to use when a choice set is displayed typedef NS_ENUM(NSUInteger, SDLChoiceSetLayout) { + /// Menu items will be displayed in a list SDLChoiceSetLayoutList, + + /// Menu items will be displayed as a tiled list SDLChoiceSetLayoutTiles, }; +/** + The choice set to be displayed to the user. Contains a list of selectable options. + */ @interface SDLChoiceSet: NSObject /** @@ -123,6 +135,12 @@ typedef NS_ENUM(NSUInteger, SDLChoiceSetLayout) { */ - (instancetype)initWithTitle:(NSString *)title delegate:(id)delegate layout:(SDLChoiceSetLayout)layout timeout:(NSTimeInterval)timeout initialPrompt:(nullable NSArray *)initialPrompt timeoutPrompt:(nullable NSArray *)timeoutPrompt helpPrompt:(nullable NSArray *)helpPrompt vrHelpList:(nullable NSArray *)helpList choices:(NSArray *)choices; + +/** + Cancels the choice set. If the choice set has not yet been sent to Core, it will not be sent. If the choice set is already presented on Core, the choice set will be immediately dismissed. Canceling an already presented choice set will only work if connected to Core versions 6.0+. On older versions of Core, the choice set will not be dismissed. + */ +- (void)cancel; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.m index 62bd974..45a830b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.m @@ -15,6 +15,12 @@ NS_ASSUME_NONNULL_BEGIN +@interface SDLChoiceSet() + +@property (nullable, copy, nonatomic) SDLChoiceSetCanceledHandler canceledHandler; + +@end + @implementation SDLChoiceSet static NSTimeInterval _defaultTimeout = 10.0; @@ -47,7 +53,7 @@ - (instancetype)initWithTitle:(NSString *)title delegate:(id 100) { - SDLLogW(@"Attempted to create a choice set with %lu choices; Only 1 - 100 choices are valid", choices.count); + SDLLogW(@"Attempted to create a choice set with %lu choices; Only 1 - 100 choices are valid", (unsigned long)choices.count); return nil; } @@ -57,7 +63,7 @@ - (instancetype)initWithTitle:(NSString *)title delegate:(id 500) { - SDLLogW(@"Attempted to create a choice set with a %lu length. Only 500 characters are supported", title.length); + SDLLogW(@"Attempted to create a choice set title with a %lu length. Only 500 characters are supported", (unsigned long)title.length); return nil; } @@ -105,6 +111,13 @@ - (instancetype)initWithTitle:(NSString *)title delegate:(id *)helpList { + _helpList = helpList; + + for (NSUInteger i = 0; i < _helpList.count; i++) { + _helpList[i].position = @(i + 1); + } +} + #pragma mark - Etc. - (NSString *)description { return [NSString stringWithFormat:@"SDLChoiceSet: \"%@\", layout: %@", _title, (_layout == SDLChoiceSetLayoutList ? @"List" : @"Tiles")]; } +- (NSString *)debugDescription { + return [NSString stringWithFormat:@"SDLChoiceSet: Title: \"%@\", layout: %@, timeout: %@, initial prompt: \"%@\", timeout prompt: \"%@\", help prompt: \"%@\", help list: %@, choices: %@", _title, (_layout == SDLChoiceSetLayoutList ? @"List" : @"Tiles"), @(_timeout), _initialPrompt, _timeoutPrompt, _helpPrompt, _helpList, _choices]; +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetDelegate.h index 22c9f9d..de7573e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetDelegate.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetDelegate.h @@ -15,9 +15,21 @@ NS_ASSUME_NONNULL_BEGIN +/// Delegate for the the SDLChoiceSet. Contains methods that get called when an action is taken on a choice cell. @protocol SDLChoiceSetDelegate +/// Delegate method called after a choice set item is selected +/// +/// @param choiceSet The choice set displayed +/// @param choice The item selected +/// @param source The trigger source +/// @param rowIndex The row of the selected choice - (void)choiceSet:(SDLChoiceSet *)choiceSet didSelectChoice:(SDLChoiceCell *)choice withSource:(SDLTriggerSource)source atRowIndex:(NSUInteger)rowIndex; + +/// Delegate method called on an error +/// +/// @param choiceSet The choice set +/// @param error The error - (void)choiceSet:(SDLChoiceSet *)choiceSet didReceiveError:(NSError *)error; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.h index 1c3c9c3..e0c11ac 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.h @@ -9,11 +9,13 @@ #import #import "SDLInteractionMode.h" +#import "NSNumber+NumberType.h" @class SDLChoiceCell; @class SDLChoiceSet; @class SDLFileManager; @class SDLKeyboardProperties; +@class SDLSystemCapabilityManager; @protocol SDLConnectionManagerType; @protocol SDLKeyboardDelegate; @@ -50,9 +52,10 @@ extern SDLChoiceManagerState *const SDLChoiceManagerStateStartupError; @param connectionManager The connection manager object for sending RPCs @param fileManager The file manager object for uploading files + @param systemCapabilityManager The system capability manager object for reading window capabilities @return The choice set manager */ -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager; +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager; /** Start the manager and prepare to manage choice sets @@ -99,8 +102,18 @@ extern SDLChoiceManagerState *const SDLChoiceManagerStateStartupError; @param initialText The initial text within the keyboard input field. It will disappear once the user selects the field in order to enter text @param delegate The keyboard delegate called when the user interacts with the keyboard + @return A unique id that can be used to cancel this keyboard. If `null`, no keyboard was created. */ -- (void)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id)delegate; +- (nullable NSNumber *)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id)delegate; + +/** + Cancels the keyboard-only interface if it is currently showing. If the keyboard has not yet been sent to Core, it will not be sent. + + This will only dismiss an already presented keyboard if connected to head units running SDL 6.0+. + + @param cancelID The unique ID assigned to the keyboard, passed as the return value from `presentKeyboardWithInitialText:keyboardDelegate:` + */ +- (void)dismissKeyboardWithCancelID:(NSNumber *)cancelID; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.m index 8d1ac4f..a8d3468 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.m @@ -17,17 +17,17 @@ #import "SDLCreateInteractionChoiceSet.h" #import "SDLCreateInteractionChoiceSetResponse.h" #import "SDLDeleteChoicesOperation.h" -#import "SDLDisplayCapabilities.h" -#import "SDLDisplayCapabilities+ShowManagerExtensions.h" +#import "SDLDisplayCapability.h" #import "SDLError.h" #import "SDLFileManager.h" +#import "SDLGlobals.h" #import "SDLHMILevel.h" -#import "SDLImage.h" #import "SDLKeyboardProperties.h" #import "SDLLogMacros.h" #import "SDLOnHMIStatus.h" #import "SDLPerformInteraction.h" #import "SDLPerformInteractionResponse.h" +#import "SDLPredefinedWindows.h" #import "SDLPreloadChoicesOperation.h" #import "SDLPresentChoiceSetOperation.h" #import "SDLPresentKeyboardOperation.h" @@ -36,7 +36,10 @@ #import "SDLRPCResponseNotification.h" #import "SDLSetDisplayLayoutResponse.h" #import "SDLStateMachine.h" -#import "SDLSystemContext.h" +#import "SDLSystemCapability.h" +#import "SDLSystemCapabilityManager.h" +#import "SDLWindowCapability.h" +#import "SDLWindowCapability+ScreenManagerExtensions.h" NS_ASSUME_NONNULL_BEGIN @@ -57,13 +60,14 @@ @interface SDLChoiceSetManager() @property (weak, nonatomic) id connectionManager; @property (weak, nonatomic) SDLFileManager *fileManager; +@property (weak, nonatomic) SDLSystemCapabilityManager *systemCapabilityManager; @property (strong, nonatomic, readonly) SDLStateMachine *stateMachine; @property (strong, nonatomic) NSOperationQueue *transactionQueue; +@property (copy, nonatomic) dispatch_queue_t readWriteQueue; @property (copy, nonatomic, nullable) SDLHMILevel currentHMILevel; -@property (copy, nonatomic, nullable) SDLSystemContext currentSystemContext; -@property (strong, nonatomic, nullable) SDLDisplayCapabilities *displayCapabilities; +@property (copy, nonatomic, nullable) SDLWindowCapability *currentWindowCapability; @property (strong, nonatomic) NSMutableSet *preloadedMutableChoices; @property (strong, nonatomic, readonly) NSSet *pendingPreloadChoices; @@ -72,40 +76,53 @@ @interface SDLChoiceSetManager() @property (strong, nonatomic, nullable) SDLAsynchronousOperation *pendingPresentOperation; @property (assign, nonatomic) UInt16 nextChoiceId; +@property (assign, nonatomic) UInt16 nextCancelId; @property (assign, nonatomic, getter=isVROptional) BOOL vrOptional; @end UInt16 const ChoiceCellIdMin = 1; +UInt16 const ChoiceCellCancelIdMin = 1; @implementation SDLChoiceSetManager #pragma mark - Lifecycle -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager { +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager { self = [super init]; if (!self) { return nil; } _connectionManager = connectionManager; _fileManager = fileManager; + _systemCapabilityManager = systemCapabilityManager; _stateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLChoiceManagerStateShutdown states:[self.class sdl_stateTransitionDictionary]]; _transactionQueue = [self sdl_newTransactionQueue]; + if (@available(iOS 10.0, *)) { + _readWriteQueue = dispatch_queue_create_with_target("com.sdl.screenManager.choiceSetManager.readWriteQueue", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); + } else { + _readWriteQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; + } + _preloadedMutableChoices = [NSMutableSet set]; _pendingMutablePreloadChoices = [NSMutableSet set]; _nextChoiceId = ChoiceCellIdMin; + _nextCancelId = ChoiceCellCancelIdMin; _vrOptional = YES; _keyboardConfiguration = [self sdl_defaultKeyboardConfiguration]; + _currentHMILevel = SDLHMILevelNone; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_registerResponse:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_displayLayoutResponse:) name:SDLDidReceiveSetDisplayLayoutResponse object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusNotification:) name:SDLDidChangeHMIStatusNotification object:nil]; return self; } - (void)start { + SDLLogD(@"Starting manager"); + + [self.systemCapabilityManager subscribeToCapabilityType:SDLSystemCapabilityTypeDisplays withObserver:self selector:@selector(sdl_displayCapabilityDidUpdate:)]; + if ([self.currentState isEqualToString:SDLChoiceManagerStateShutdown]) { [self.stateMachine transitionToState:SDLChoiceManagerStateCheckingVoiceOptional]; } @@ -114,7 +131,11 @@ - (void)start { } - (void)stop { - [self.stateMachine transitionToState:SDLChoiceManagerStateShutdown]; + SDLLogD(@"Stopping manager"); + + [self sdl_runSyncOnQueue:^{ + [self.stateMachine transitionToState:SDLChoiceManagerStateShutdown]; + }]; } + (NSDictionary *)sdl_stateTransitionDictionary { @@ -128,20 +149,35 @@ - (void)stop { - (NSOperationQueue *)sdl_newTransactionQueue { NSOperationQueue *queue = [[NSOperationQueue alloc] init]; - queue.name = @"SDLChoiceSetManager Transaction Queue"; + queue.name = @"com.sdl.screenManager.choiceSetManager.transactionQueue"; queue.maxConcurrentOperationCount = 1; - queue.qualityOfService = NSQualityOfServiceUserInitiated; + queue.underlyingQueue = [SDLGlobals sharedGlobals].sdlConcurrentQueue; queue.suspended = YES; return queue; } +/// Suspend the transaction queue if we are in HMI NONE +/// OR if the text field name "menu name" (i.e. is the primary choice text) cannot be used, we assume we cannot present a PI. +- (void)sdl_updateTransactionQueueSuspended { + if ([self.currentHMILevel isEqualToEnum:SDLHMILevelNone] + || (![self.currentWindowCapability hasTextFieldOfName:SDLTextFieldNameMenuName])) { + SDLLogD(@"Suspending the transaction queue. Current HMI level is: %@, window capability has MenuName (choice primary text): %@", self.currentHMILevel, ([self.currentWindowCapability hasTextFieldOfName:SDLTextFieldNameMenuName] ? @"YES" : @"NO")); + self.transactionQueue.suspended = YES; + } else { + SDLLogD(@"Starting the transaction queue"); + self.transactionQueue.suspended = NO; + } +} + #pragma mark - State Management - (void)didEnterStateShutdown { - _currentHMILevel = nil; - _currentSystemContext = nil; - _displayCapabilities = nil; + SDLLogV(@"Manager shutting down"); + + NSAssert(dispatch_get_specific(SDLProcessingQueueName) != nil, @"%@ must only be called on the SDL serial queue", NSStringFromSelector(_cmd)); + + _currentHMILevel = SDLHMILevelNone; [self.transactionQueue cancelAllOperations]; self.transactionQueue = [self sdl_newTransactionQueue]; @@ -151,24 +187,23 @@ - (void)didEnterStateShutdown { _vrOptional = YES; _nextChoiceId = ChoiceCellIdMin; + _nextCancelId = ChoiceCellCancelIdMin; } - (void)didEnterStateCheckingVoiceOptional { // Setup by sending a Choice Set without VR, seeing if there's an error. If there is, send one with VR. This choice set will be used for `presentKeyboard` interactions. SDLCheckChoiceVROptionalOperation *checkOp = [[SDLCheckChoiceVROptionalOperation alloc] initWithConnectionManager:self.connectionManager]; - __weak typeof(self) weakself = self; + __weak typeof(self) weakSelf = self; __weak typeof(checkOp) weakOp = checkOp; checkOp.completionBlock = ^{ - if ([self.currentState isEqualToString:SDLChoiceManagerStateShutdown]) { - return; - } + if ([self.currentState isEqualToString:SDLChoiceManagerStateShutdown]) { return; } - weakself.vrOptional = weakOp.isVROptional; + weakSelf.vrOptional = weakOp.isVROptional; if (weakOp.error != nil) { - [weakself.stateMachine transitionToState:SDLChoiceManagerStateStartupError]; + [weakSelf.stateMachine transitionToState:SDLChoiceManagerStateStartupError]; } else { - [weakself.stateMachine transitionToState:SDLChoiceManagerStateReady]; + [weakSelf.stateMachine transitionToState:SDLChoiceManagerStateReady]; } }; @@ -184,13 +219,25 @@ - (void)didEnterStateStartupError { #pragma mark Upload / Delete - (void)preloadChoices:(NSArray *)choices withCompletionHandler:(nullable SDLPreloadChoiceCompletionHandler)handler { - if (![self.currentState isEqualToString:SDLChoiceManagerStateReady]) { return; } + SDLLogV(@"Request to preload choices: %@", choices); + if ([self.currentState isEqualToString:SDLChoiceManagerStateShutdown]) { + NSError *error = [NSError sdl_choiceSetManager_incorrectState:self.currentState]; + SDLLogE(@"Attempted to preload choices but the choice set manager is shut down: %@", error); + if (handler != nil) { + handler(error); + } + return; + } NSMutableSet *choicesToUpload = [[self sdl_choicesToBeUploadedWithArray:choices] mutableCopy]; - [choicesToUpload minusSet:self.preloadedMutableChoices]; - [choicesToUpload minusSet:self.pendingMutablePreloadChoices]; + + [self sdl_runSyncOnQueue:^{ + [choicesToUpload minusSet:self.preloadedMutableChoices]; + [choicesToUpload minusSet:self.pendingMutablePreloadChoices]; + }]; if (choicesToUpload.count == 0) { + SDLLogD(@"All choices already preloaded. No need to perform a preload"); if (handler != nil) { handler(nil); } @@ -201,26 +248,48 @@ - (void)preloadChoices:(NSArray *)choices withCompletionHandler [self sdl_updateIdsOnChoices:choicesToUpload]; // Add the preload cells to the pending preloads - [self.pendingMutablePreloadChoices unionSet:choicesToUpload]; + [self sdl_runSyncOnQueue:^{ + [self.pendingMutablePreloadChoices unionSet:choicesToUpload]; + }]; // Upload pending preloads - SDLPreloadChoicesOperation *preloadOp = [[SDLPreloadChoicesOperation alloc] initWithConnectionManager:self.connectionManager fileManager:self.fileManager displayCapabilities:self.displayCapabilities isVROptional:self.isVROptional cellsToPreload:choicesToUpload]; + // For backward compatibility with Gen38Inch display type head units + SDLLogD(@"Preloading choices"); + SDLLogV(@"Choices to be uploaded: %@", choicesToUpload); + NSString *displayName = self.systemCapabilityManager.displays.firstObject.displayName; + SDLPreloadChoicesOperation *preloadOp = [[SDLPreloadChoicesOperation alloc] initWithConnectionManager:self.connectionManager fileManager:self.fileManager displayName:displayName windowCapability:self.systemCapabilityManager.defaultMainWindowCapability isVROptional:self.isVROptional cellsToPreload:choicesToUpload]; __weak typeof(self) weakSelf = self; __weak typeof(preloadOp) weakPreloadOp = preloadOp; preloadOp.completionBlock = ^{ - [weakSelf.preloadedMutableChoices unionSet:choicesToUpload]; - [weakSelf.pendingMutablePreloadChoices minusSet:choicesToUpload]; + __strong typeof(weakSelf) strongSelf = weakSelf; + SDLLogD(@"Choices finished preloading"); if (handler != nil) { handler(weakPreloadOp.error); } + + // Check if the manager has shutdown because the list of uploaded and pending choices should not be updated + if ([strongSelf.currentState isEqualToString:SDLChoiceManagerStateShutdown]) { + SDLLogD(@"Cancelling preloading choices because the manager is shut down"); + return; + } + + [strongSelf sdl_runSyncOnQueue:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + [strongSelf.preloadedMutableChoices unionSet:choicesToUpload]; + [strongSelf.pendingMutablePreloadChoices minusSet:choicesToUpload]; + }]; }; [self.transactionQueue addOperation:preloadOp]; } - (void)deleteChoices:(NSArray *)choices { - if (![self.currentState isEqualToString:SDLChoiceManagerStateReady]) { return; } + SDLLogV(@"Request to delete choices: %@", choices); + if (![self.currentState isEqualToString:SDLChoiceManagerStateReady]) { + SDLLogE(@"Attempted to delete choices in an incorrect state: %@, they will not be deleted", self.currentState); + return; + } // Find cells to be deleted that are already uploaded or are pending upload NSSet *cellsToBeDeleted = [self sdl_choicesToBeDeletedWithArray:choices]; @@ -234,12 +303,14 @@ - (void)deleteChoices:(NSArray *)choices { if (self.pendingPresentationSet.delegate != nil) { [self.pendingPresentationSet.delegate choiceSet:self.pendingPresentationSet didReceiveError:[NSError sdl_choiceSetManager_choicesDeletedBeforePresentation:@{@"deletedChoices": choices}]]; } - self.pendingPresentationSet = nil; } // Remove the cells from pending and delete choices - [self.pendingMutablePreloadChoices minusSet:cellsToBeRemovedFromPending]; + [self sdl_runSyncOnQueue:^{ + [self.pendingMutablePreloadChoices minusSet:cellsToBeRemovedFromPending]; + }]; + for (SDLAsynchronousOperation *op in self.transactionQueue.operations) { if (![op isMemberOfClass:[SDLPreloadChoicesOperation class]]) { continue; } @@ -253,15 +324,27 @@ - (void)deleteChoices:(NSArray *)choices { [self sdl_findIdsOnChoices:cellsToBeDeleted]; SDLDeleteChoicesOperation *deleteOp = [[SDLDeleteChoicesOperation alloc] initWithConnectionManager:self.connectionManager cellsToDelete:cellsToBeDeleted]; - __weak typeof(self) weakself = self; + __weak typeof(self) weakSelf = self; __weak typeof(deleteOp) weakOp = deleteOp; deleteOp.completionBlock = ^{ + SDLLogD(@"Finished deleting choices"); + + __strong typeof(weakSelf) strongSelf = weakSelf; if (weakOp.error != nil) { SDLLogE(@"Failed to delete choices: %@", weakOp.error); return; } - [weakself.preloadedMutableChoices minusSet:cellsToBeDeleted]; + // Check if the manager has shutdown because the list of uploaded choices should not be updated + if ([strongSelf.currentState isEqualToString:SDLChoiceManagerStateShutdown]) { + SDLLogD(@"Cancelling deleting choices because manager is shut down"); + return; + } + + [strongSelf sdl_runSyncOnQueue:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + [strongSelf.preloadedMutableChoices minusSet:cellsToBeDeleted]; + }]; }; [self.transactionQueue addOperation:deleteOp]; } @@ -269,71 +352,111 @@ - (void)deleteChoices:(NSArray *)choices { #pragma mark Present - (void)presentChoiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode withKeyboardDelegate:(nullable id)delegate { - if (![self.currentState isEqualToString:SDLChoiceManagerStateReady]) { return; } + if (![self.currentState isEqualToString:SDLChoiceManagerStateReady]) { + SDLLogE(@"Attempted to present choices in an incorrect state: %@, it will not be presented", self.currentState); + return; + } + if (choiceSet == nil) { SDLLogW(@"Attempted to present a nil choice set, ignoring."); return; } - if (self.pendingPresentationSet != nil) { + if (self.pendingPresentationSet != nil && !self.pendingPresentOperation.isFinished) { + SDLLogW(@"A choice set is pending: %@. We will try to cancel it in favor of presenting a different choice set: %@. If it's already on screen it cannot be cancelled", self.pendingPresentationSet, choiceSet); [self.pendingPresentOperation cancel]; } + SDLLogD(@"Preloading and presenting choice set: %@", choiceSet); self.pendingPresentationSet = choiceSet; - [self preloadChoices:self.pendingPresentationSet.choices withCompletionHandler:nil]; + + [self preloadChoices:self.pendingPresentationSet.choices withCompletionHandler:^(NSError * _Nullable error) { + if (error != nil) { + [choiceSet.delegate choiceSet:choiceSet didReceiveError:error]; + return; + } + }]; [self sdl_findIdsOnChoiceSet:self.pendingPresentationSet]; SDLPresentChoiceSetOperation *presentOp = nil; if (delegate == nil) { // Non-searchable choice set - presentOp = [[SDLPresentChoiceSetOperation alloc] initWithConnectionManager:self.connectionManager choiceSet:self.pendingPresentationSet mode:mode keyboardProperties:nil keyboardDelegate:nil]; + presentOp = [[SDLPresentChoiceSetOperation alloc] initWithConnectionManager:self.connectionManager choiceSet:self.pendingPresentationSet mode:mode keyboardProperties:nil keyboardDelegate:nil cancelID:self.nextCancelId]; } else { // Searchable choice set - presentOp = [[SDLPresentChoiceSetOperation alloc] initWithConnectionManager:self.connectionManager choiceSet:self.pendingPresentationSet mode:mode keyboardProperties:self.keyboardConfiguration keyboardDelegate:delegate]; + presentOp = [[SDLPresentChoiceSetOperation alloc] initWithConnectionManager:self.connectionManager choiceSet:self.pendingPresentationSet mode:mode keyboardProperties:self.keyboardConfiguration keyboardDelegate:delegate cancelID:self.nextCancelId]; } self.pendingPresentOperation = presentOp; - __weak typeof(self) weakself = self; + __weak typeof(self) weakSelf = self; __weak typeof(presentOp) weakOp = presentOp; self.pendingPresentOperation.completionBlock = ^{ + __strong typeof(weakSelf) strongSelf = weakSelf; __strong typeof(weakOp) strongOp = weakOp; + SDLLogD(@"Finished presenting choice set: %@", strongOp.choiceSet); if (strongOp.error != nil && strongOp.choiceSet.delegate != nil) { [strongOp.choiceSet.delegate choiceSet:strongOp.choiceSet didReceiveError:strongOp.error]; } else if (strongOp.selectedCell != nil && strongOp.choiceSet.delegate != nil) { [strongOp.choiceSet.delegate choiceSet:strongOp.choiceSet didSelectChoice:strongOp.selectedCell withSource:strongOp.selectedTriggerSource atRowIndex:strongOp.selectedCellRow]; } - weakself.pendingPresentationSet = nil; - weakself.pendingPresentOperation = nil; + strongSelf.pendingPresentOperation = nil; + strongSelf.pendingPresentationSet = nil; }; + [self.transactionQueue addOperation:presentOp]; } -- (void)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id)delegate { - if (![self.currentState isEqualToString:SDLChoiceManagerStateReady]) { return; } +- (nullable NSNumber *)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id)delegate { + if (![self.currentState isEqualToString:SDLChoiceManagerStateReady]) { + SDLLogE(@"Attempted to present keyboard in an incorrect state: %@, it will not be presented", self.currentState); + return nil; + } if (self.pendingPresentationSet != nil) { + SDLLogW(@"There's already a pending presentation set, cancelling it in favor of a keyboard"); [self.pendingPresentOperation cancel]; self.pendingPresentationSet = nil; } + SDLLogD(@"Presenting keyboard with initial text: %@", initialText); // Present a keyboard with the choice set that we used to test VR's optional state - self.pendingPresentOperation = [[SDLPresentKeyboardOperation alloc] initWithConnectionManager:self.connectionManager keyboardProperties:self.keyboardConfiguration initialText:initialText keyboardDelegate:delegate]; + UInt16 keyboardCancelId = self.nextCancelId; + self.pendingPresentOperation = [[SDLPresentKeyboardOperation alloc] initWithConnectionManager:self.connectionManager keyboardProperties:self.keyboardConfiguration initialText:initialText keyboardDelegate:delegate cancelID:keyboardCancelId]; [self.transactionQueue addOperation:self.pendingPresentOperation]; + return @(keyboardCancelId); +} + +- (void)dismissKeyboardWithCancelID:(NSNumber *)cancelID { + for (SDLAsynchronousOperation *op in self.transactionQueue.operations) { + if (![op isKindOfClass:SDLPresentKeyboardOperation.class]) { continue; } + + SDLPresentKeyboardOperation *keyboardOperation = (SDLPresentKeyboardOperation *)op; + if (keyboardOperation.cancelId != cancelID.unsignedShortValue) { continue; } + + SDLLogD(@"Dismissing keyboard with cancel ID: %@", cancelID); + [keyboardOperation dismissKeyboard]; + break; + } } #pragma mark - Choice Management Helpers +/// Checks the passed list of choices to be uploaded and returns the items that have not yet been uploaded to the module. +/// @param choices The choices to be uploaded +/// @return The choices that have not yet been uploaded to the module - (NSSet *)sdl_choicesToBeUploadedWithArray:(NSArray *)choices { - // Check if any of the choices already exist on the head unit and remove them from being preloaded NSMutableSet *choicesSet = [NSMutableSet setWithArray:choices]; [choicesSet minusSet:self.preloadedChoices]; return [choicesSet copy]; } +/// Checks the passed list of choices to be deleted and returns the items that have been uploaded to the module. +/// @param choices The choices to be deleted +/// @return The choices that have been uploaded to the module - (NSSet *)sdl_choicesToBeDeletedWithArray:(NSArray *)choices { NSMutableSet *choicesSet = [NSMutableSet setWithArray:choices]; [choicesSet intersectSet:self.preloadedChoices]; @@ -341,6 +464,9 @@ - (void)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id *)sdl_choicesToBeRemovedFromPendingWithArray:(NSArray *)choices { NSMutableSet *choicesSet = [NSMutableSet setWithArray:choices]; [choicesSet intersectSet:self.pendingPreloadChoices]; @@ -348,33 +474,39 @@ - (void)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id *)choices { for (SDLChoiceCell *cell in choices) { cell.choiceId = self.nextChoiceId; - self.nextChoiceId++; } } +/// Checks each choice item to find out if it has already been uploaded or if it is the the process of being uploaded. If so, the choice item is assigned the unique id of the uploaded item. +/// @param choiceSet A set of choice items - (void)sdl_findIdsOnChoiceSet:(SDLChoiceSet *)choiceSet { - return [self sdl_findIdsOnChoices:[NSSet setWithArray:choiceSet.choices]]; + [self sdl_findIdsOnChoices:[NSSet setWithArray:choiceSet.choices]]; } +/// Checks each choice item to find out if it has already been uploaded or if it is the the process of being uploaded. If so, the choice item is assigned the unique id of the uploaded item. +/// @param choices An array of choice items - (void)sdl_findIdsOnChoices:(NSSet *)choices { for (SDLChoiceCell *cell in choices) { SDLChoiceCell *uploadCell = [self.pendingPreloadChoices member:cell] ?: [self.preloadedChoices member:cell]; - if (uploadCell != nil) { - cell.choiceId = uploadCell.choiceId; - } + if (uploadCell == nil) { continue; } + cell.choiceId = uploadCell.choiceId; } } -#pragma mark - Setters +#pragma mark - Keyboard Configuration - (void)setKeyboardConfiguration:(nullable SDLKeyboardProperties *)keyboardConfiguration { if (keyboardConfiguration == nil) { + SDLLogD(@"Updating keyboard configuration to the default"); _keyboardConfiguration = [self sdl_defaultKeyboardConfiguration]; } else { - _keyboardConfiguration = [[SDLKeyboardProperties alloc] initWithLanguage:keyboardConfiguration.language layout:keyboardConfiguration.keyboardLayout keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:keyboardConfiguration.limitedCharacterList autoCompleteText:keyboardConfiguration.autoCompleteText]; + SDLLogD(@"Updating keyboard configuration to a new configuration: %@", keyboardConfiguration); + _keyboardConfiguration = [[SDLKeyboardProperties alloc] initWithLanguage:keyboardConfiguration.language layout:keyboardConfiguration.keyboardLayout keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:keyboardConfiguration.limitedCharacterList autoCompleteText:keyboardConfiguration.autoCompleteText autoCompleteList:keyboardConfiguration.autoCompleteList]; if (keyboardConfiguration.keypressMode != SDLKeypressModeResendCurrentEntry) { SDLLogW(@"Attempted to set a keyboard configuration with an invalid keypress mode; only .resentCurrentEntry is valid. This value will be ignored, the rest of the properties will be set."); @@ -383,73 +515,94 @@ - (void)setKeyboardConfiguration:(nullable SDLKeyboardProperties *)keyboardConfi } - (SDLKeyboardProperties *)sdl_defaultKeyboardConfiguration { - return [[SDLKeyboardProperties alloc] initWithLanguage:SDLLanguageEnUs layout:SDLKeyboardLayoutQWERTY keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:nil autoCompleteText:nil]; + return [[SDLKeyboardProperties alloc] initWithLanguage:SDLLanguageEnUs layout:SDLKeyboardLayoutQWERTY keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:nil autoCompleteText:nil autoCompleteList:nil]; } #pragma mark - Getters - (NSSet *)preloadedChoices { - return [_preloadedMutableChoices copy]; + __block NSSet *set = nil; + [self sdl_runSyncOnQueue:^{ + set = [self->_preloadedMutableChoices copy]; + }]; + + return set; } - (NSSet *)pendingPreloadChoices { - return [_pendingMutablePreloadChoices copy]; + __block NSSet *set = nil; + [self sdl_runSyncOnQueue:^{ + set = [self->_pendingMutablePreloadChoices copy]; + }]; + + return set; +} + +- (UInt16)nextChoiceId { + __block UInt16 choiceId = 0; + [self sdl_runSyncOnQueue:^{ + choiceId = self->_nextChoiceId; + self->_nextChoiceId = choiceId + 1; + }]; + + return choiceId; +} + +- (UInt16)nextCancelId { + __block UInt16 cancelId = 0; + [self sdl_runSyncOnQueue:^{ + cancelId = self->_nextCancelId; + self->_nextCancelId = cancelId + 1; + }]; + + return cancelId; } - (NSString *)currentState { return self.stateMachine.currentState; } -#pragma mark - RPC Responses / Notifications +#pragma mark Utilities -- (void)sdl_registerResponse:(SDLRPCResponseNotification *)notification { - SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response; - - if (!response.success.boolValue) { return; } - if (response.displayCapabilities == nil) { - SDLLogE(@"RegisterAppInterface succeeded but didn't send a display capabilities. A lot of things will probably break."); - return; +/// Checks if we are already on a serial queue. If so, the block is added to the queue; if not, the block is dispatched to the serial `readWrite` queue. +/// @discussion Used to synchronize access to class properties. +/// @param block The block to be executed. +- (void)sdl_runSyncOnQueue:(void (^)(void))block { + if (dispatch_get_specific(SDLProcessingQueueName) != nil) { + block(); + } else { + dispatch_sync(self.readWriteQueue, block); } - - self.displayCapabilities = response.displayCapabilities; } -- (void)sdl_displayLayoutResponse:(SDLRPCResponseNotification *)notification { - SDLSetDisplayLayoutResponse *response = (SDLSetDisplayLayoutResponse *)notification.response; +#pragma mark - RPC Responses / Notifications - if (!response.success.boolValue) { return; } - if (response.displayCapabilities == nil) { - SDLLogE(@"SetDisplayLayout succeeded but didn't send a display capabilities. A lot of things will probably break."); - return; +- (void)sdl_displayCapabilityDidUpdate:(SDLSystemCapability *)systemCapability { + NSArray *capabilities = systemCapability.displayCapabilities; + if (capabilities == nil || capabilities.count == 0) { + self.currentWindowCapability = nil; + } else { + SDLDisplayCapability *mainDisplay = capabilities[0]; + for (SDLWindowCapability *windowCapability in mainDisplay.windowCapabilities) { + NSUInteger currentWindowID = windowCapability.windowID != nil ? windowCapability.windowID.unsignedIntegerValue : SDLPredefinedWindowsDefaultWindow; + if (currentWindowID != SDLPredefinedWindowsDefaultWindow) { continue; } + + self.currentWindowCapability = windowCapability; + break; + } } - self.displayCapabilities = response.displayCapabilities; + [self sdl_updateTransactionQueueSuspended]; } - (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { // We can only present a choice set if we're in FULL SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; - SDLHMILevel oldHMILevel = self.currentHMILevel; - self.currentHMILevel = hmiStatus.hmiLevel; - - if ([self.currentHMILevel isEqualToEnum:SDLHMILevelNone]) { - self.transactionQueue.suspended = YES; - } - - if ([oldHMILevel isEqualToEnum:SDLHMILevelNone] && ![self.currentHMILevel isEqualToEnum:SDLHMILevelNone]) { - self.transactionQueue.suspended = NO; - } - - // We need to check for this to make sure we can currently present the dialog. If the current context is HMI_OBSCURED or ALERT, we have to wait for MAIN to present - self.currentSystemContext = hmiStatus.systemContext; + if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { return; } - if ([self.currentSystemContext isEqualToEnum:SDLSystemContextHMIObscured] || [self.currentSystemContext isEqualToEnum:SDLSystemContextAlert]) { - self.transactionQueue.suspended = YES; - } + self.currentHMILevel = hmiStatus.hmiLevel; - if ([self.currentSystemContext isEqualToEnum:SDLSystemContextMain] && ![self.currentHMILevel isEqualToEnum:SDLHMILevelNone]) { - self.transactionQueue.suspended = NO; - } + [self sdl_updateTransactionQueueSuspended]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.h index 8608279..351b8dd 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.h @@ -5,6 +5,7 @@ #import "SDLRPCMessage.h" #import "SDLDefrostZone.h" #import "SDLVentilationMode.h" +#import "SDLModuleInfo.h" NS_ASSUME_NONNULL_BEGIN @@ -13,9 +14,81 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLClimateControlCapabilities : SDLRPCStruct -- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable __deprecated_msg("Use initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: instead"); - -- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable; +/// Convenience init to describe the climate control capabilities. +/// +/// @param moduleName The short friendly name of the climate control module +/// @param fanSpeedAvailable Availability of the control of fan speed +/// @param desiredTemperatureAvailable Availability of the control of desired temperature +/// @param acEnableAvailable Availability of the control of turn on/off AC +/// @param acMaxEnableAvailable Availability of the control of enable/disable air conditioning is ON on the maximum level +/// @param circulateAirEnableAvailable Availability of the control of enable/disable circulate Air mode +/// @param autoModeEnableAvailable Availability of the control of enable/disable auto mode +/// @param dualModeEnableAvailable Availability of the control of enable/disable dual mode +/// @param defrostZoneAvailable Availability of the control of defrost zones +/// @param ventilationModeAvailable Availability of the control of air ventilation mode +/// @return An SDLClimateControlCapabilities object +- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable __deprecated_msg("Use initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: climateEnableAvailable: instead"); + + +/// Convenience init to describe the climate control capabilities. +/// +/// @param moduleName The short friendly name of the climate control module +/// @param fanSpeedAvailable Availability of the control of fan speed +/// @param desiredTemperatureAvailable Availability of the control of desired temperature +/// @param acEnableAvailable Availability of the control of turn on/off AC +/// @param acMaxEnableAvailable Availability of the control of enable/disable air conditioning is ON on the maximum level +/// @param circulateAirEnableAvailable Availability of the control of enable/disable circulate Air mode +/// @param autoModeEnableAvailable Availability of the control of enable/disable auto mode +/// @param dualModeEnableAvailable Availability of the control of enable/disable dual mode +/// @param defrostZoneAvailable Availability of the control of defrost zones +/// @param ventilationModeAvailable Availability of the control of air ventilation mode +/// @param heatedSteeringWheelAvailable Availability of the control (enable/disable) of heated Steering Wheel +/// @param heatedWindshieldAvailable Availability of the control (enable/disable) of heated Windshield +/// @param heatedRearWindowAvailable Availability of the control (enable/disable) of heated Rear Window +/// @param heatedMirrorsAvailable Availability of the control (enable/disable) of heated Mirrors +/// @return An SDLClimateControlCapabilities object +- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable __deprecated_msg("Use initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: climateEnableAvailable: instead"); + +/// Convenience init to describe the climate control capabilities. +/// +/// @param moduleName The short friendly name of the climate control module +/// @param fanSpeedAvailable Availability of the control of fan speed +/// @param desiredTemperatureAvailable Availability of the control of desired temperature +/// @param acEnableAvailable Availability of the control of turn on/off AC +/// @param acMaxEnableAvailable Availability of the control of enable/disable air conditioning is ON on the maximum level +/// @param circulateAirEnableAvailable Availability of the control of enable/disable circulate Air mode +/// @param autoModeEnableAvailable Availability of the control of enable/disable auto mode +/// @param dualModeEnableAvailable Availability of the control of enable/disable dual mode +/// @param defrostZoneAvailable Availability of the control of defrost zones +/// @param ventilationModeAvailable Availability of the control of air ventilation mode +/// @param heatedSteeringWheelAvailable Availability of the control (enable/disable) of heated Steering Wheel +/// @param heatedWindshieldAvailable Availability of the control (enable/disable) of heated Windshield +/// @param heatedRearWindowAvailable Availability of the control (enable/disable) of heated Rear Window +/// @param heatedMirrorsAvailable Availability of the control (enable/disable) of heated Mirrors +/// @param climateEnableAvailable Availability of the control of enable/disable climate control +/// @return An SDLClimateControlCapabilities object +- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable __deprecated_msg("Use initWithModuleName: moduleId:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: climateEnableAvailable: instead"); + +/// Convenience init to describe the climate control capabilities with all properities. +/// +/// @param moduleName The short friendly name of the climate control module. +/// @param moduleInfo Information about a RC module, including its id +/// @param fanSpeedAvailable Availability of the control of fan speed +/// @param desiredTemperatureAvailable Availability of the control of desired temperature +/// @param acEnableAvailable Availability of the control of turn on/off AC +/// @param acMaxEnableAvailable Availability of the control of enable/disable air conditioning is ON on the maximum level +/// @param circulateAirEnableAvailable Availability of the control of enable/disable circulate Air mode. +/// @param autoModeEnableAvailable Availability of the control of enable/disable auto mode +/// @param dualModeEnableAvailable Availability of the control of enable/disable dual mode +/// @param defrostZoneAvailable Availability of the control of defrost zones +/// @param ventilationModeAvailable Availability of the control of air ventilation mode +/// @param heatedSteeringWheelAvailable Availability of the control (enable/disable) of heated Steering Wheel +/// @param heatedWindshieldAvailable Availability of the control (enable/disable) of heated Windshield +/// @param heatedRearWindowAvailable Availability of the control (enable/disable) of heated Rear Window +/// @param heatedMirrorsAvailable Availability of the control (enable/disable) of heated Mirrors +/// @param climateEnableAvailable Availability of the control of enable/disable climate control +/// @return An SDLClimateControlCapabilities object +- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable; /** * The short friendly name of the climate control module. @@ -146,6 +219,21 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSNumber *heatedMirrorsAvailable; +/** + * @abstract Availability of the control of enable/disable climate control. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *climateEnableAvailable; + +/** + * Information about a RC module, including its id. + * + * Optional + */ +@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.m index 429331a..5742cb8 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.m @@ -3,7 +3,7 @@ // #import "SDLClimateControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -11,17 +11,25 @@ @implementation SDLClimateControlCapabilities - (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable { - return [self initWithModuleName:moduleName fanSpeedAvailable:fanSpeedAvailable desiredTemperatureAvailable:desiredTemperatureAvailable acEnableAvailable:acEnableAvailable acMaxEnableAvailable:acMaxEnableAvailable circulateAirAvailable:circulateAirEnableAvailable autoModeEnableAvailable:autoModeEnableAvailable dualModeEnableAvailable:dualModeEnableAvailable defrostZoneAvailable:defrostZoneAvailable ventilationModeAvailable:ventilationModeAvailable heatedSteeringWheelAvailable:NO heatedWindshieldAvailable:NO heatedRearWindowAvailable:NO heatedMirrorsAvailable:NO]; } - (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)steeringWheelAvailable heatedWindshieldAvailable:(BOOL)windshieldAvailable heatedRearWindowAvailable:(BOOL)rearWindowAvailable heatedMirrorsAvailable:(BOOL)mirrorsAvailable { + return [self initWithModuleName:moduleName fanSpeedAvailable:fanSpeedAvailable desiredTemperatureAvailable:desiredTemperatureAvailable acEnableAvailable:acEnableAvailable acMaxEnableAvailable:acMaxEnableAvailable circulateAirAvailable:circulateAirEnableAvailable autoModeEnableAvailable:autoModeEnableAvailable dualModeEnableAvailable:dualModeEnableAvailable defrostZoneAvailable:defrostZoneAvailable ventilationModeAvailable:ventilationModeAvailable heatedSteeringWheelAvailable:steeringWheelAvailable heatedWindshieldAvailable:windshieldAvailable heatedRearWindowAvailable:rearWindowAvailable heatedMirrorsAvailable:mirrorsAvailable climateEnableAvailable:NO]; +} + +- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)steeringWheelAvailable heatedWindshieldAvailable:(BOOL)windshieldAvailable heatedRearWindowAvailable:(BOOL)rearWindowAvailable heatedMirrorsAvailable:(BOOL)mirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable{ + return [self initWithModuleName:moduleName moduleInfo:nil fanSpeedAvailable:fanSpeedAvailable desiredTemperatureAvailable:desiredTemperatureAvailable acEnableAvailable:acEnableAvailable acMaxEnableAvailable:acMaxEnableAvailable circulateAirAvailable:circulateAirEnableAvailable autoModeEnableAvailable:autoModeEnableAvailable dualModeEnableAvailable:dualModeEnableAvailable defrostZoneAvailable:defrostZoneAvailable ventilationModeAvailable:ventilationModeAvailable heatedSteeringWheelAvailable:steeringWheelAvailable heatedWindshieldAvailable:windshieldAvailable heatedRearWindowAvailable:rearWindowAvailable heatedMirrorsAvailable:mirrorsAvailable climateEnableAvailable:NO]; +} + +- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)steeringWheelAvailable heatedWindshieldAvailable:(BOOL)windshieldAvailable heatedRearWindowAvailable:(BOOL)rearWindowAvailable heatedMirrorsAvailable:(BOOL)mirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable{ self = [self init]; if (!self) { return nil; } - + self.moduleName = moduleName; + self.moduleInfo = moduleInfo; self.fanSpeedAvailable = @(fanSpeedAvailable); self.desiredTemperatureAvailable = @(desiredTemperatureAvailable); self.acEnableAvailable = @(acEnableAvailable); @@ -35,135 +43,153 @@ - (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOO self.heatedWindshieldAvailable = @(windshieldAvailable); self.heatedRearWindowAvailable = @(rearWindowAvailable); self.heatedMirrorsAvailable = @(mirrorsAvailable); + self.climateEnableAvailable = @(climateEnableAvailable); return self; } - (void)setModuleName:(NSString *)moduleName { - [store sdl_setObject:moduleName forName:SDLNameModuleName]; + [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } - (NSString *)moduleName { - return [store sdl_objectForName:SDLNameModuleName]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; } - (void)setFanSpeedAvailable:(nullable NSNumber *)fanSpeedAvailable { - [store sdl_setObject:fanSpeedAvailable forName:SDLNameFanSpeedAvailable]; + [self.store sdl_setObject:fanSpeedAvailable forName:SDLRPCParameterNameFanSpeedAvailable]; } - (nullable NSNumber *)fanSpeedAvailable { - return [store sdl_objectForName:SDLNameFanSpeedAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameFanSpeedAvailable ofClass:NSNumber.class error:nil]; } - (void)setDesiredTemperatureAvailable:(nullable NSNumber *)desiredTemperatureAvailable { - [store sdl_setObject:desiredTemperatureAvailable forName:SDLNameDesiredTemperatureAvailable]; + [self.store sdl_setObject:desiredTemperatureAvailable forName:SDLRPCParameterNameDesiredTemperatureAvailable]; } - (nullable NSNumber *)desiredTemperatureAvailable { - return [store sdl_objectForName:SDLNameDesiredTemperatureAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameDesiredTemperatureAvailable ofClass:NSNumber.class error:nil]; } - (void)setAcEnableAvailable:(nullable NSNumber *)acEnableAvailable { - [store sdl_setObject:acEnableAvailable forName:SDLNameACEnableAvailable]; + [self.store sdl_setObject:acEnableAvailable forName:SDLRPCParameterNameACEnableAvailable]; } - (nullable NSNumber *)acEnableAvailable { - return [store sdl_objectForName:SDLNameACEnableAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameACEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setAcMaxEnableAvailable:(nullable NSNumber *)acMaxEnableAvailable { - [store sdl_setObject:acMaxEnableAvailable forName:SDLNameACMaxEnableAvailable]; + [self.store sdl_setObject:acMaxEnableAvailable forName:SDLRPCParameterNameACMaxEnableAvailable]; } - (nullable NSNumber *)acMaxEnableAvailable { - return [store sdl_objectForName:SDLNameACMaxEnableAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameACMaxEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setCirculateAirEnableAvailable:(nullable NSNumber *)circulateAirEnableAvailable { - [store sdl_setObject:circulateAirEnableAvailable forName:SDLNameCirculateAirEnableAvailable]; + [self.store sdl_setObject:circulateAirEnableAvailable forName:SDLRPCParameterNameCirculateAirEnableAvailable]; } - (nullable NSNumber *)circulateAirEnableAvailable { - return [store sdl_objectForName:SDLNameCirculateAirEnableAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameCirculateAirEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setAutoModeEnableAvailable:(nullable NSNumber *)autoModeEnableAvailable { - [store sdl_setObject:autoModeEnableAvailable forName:SDLNameAutoModeEnableAvailable]; + [self.store sdl_setObject:autoModeEnableAvailable forName:SDLRPCParameterNameAutoModeEnableAvailable]; } - (nullable NSNumber *)autoModeEnableAvailable { - return [store sdl_objectForName:SDLNameAutoModeEnableAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameAutoModeEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setDualModeEnableAvailable:(nullable NSNumber *)dualModeEnableAvailable { - [store sdl_setObject:dualModeEnableAvailable forName:SDLNameDualModeEnableAvailable]; + [self.store sdl_setObject:dualModeEnableAvailable forName:SDLRPCParameterNameDualModeEnableAvailable]; } - (nullable NSNumber *)dualModeEnableAvailable { - return [store sdl_objectForName:SDLNameDualModeEnableAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameDualModeEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setDefrostZoneAvailable:(nullable NSNumber *)defrostZoneAvailable { - [store sdl_setObject:defrostZoneAvailable forName:SDLNameDefrostZoneAvailable]; + [self.store sdl_setObject:defrostZoneAvailable forName:SDLRPCParameterNameDefrostZoneAvailable]; } - (nullable NSNumber *)defrostZoneAvailable { - return [store sdl_objectForName:SDLNameDefrostZoneAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameDefrostZoneAvailable ofClass:NSNumber.class error:nil]; } - (void)setDefrostZone:(nullable NSArray *)defrostZone { - [store sdl_setObject:defrostZone forName:SDLNameDefrostZone]; + [self.store sdl_setObject:defrostZone forName:SDLRPCParameterNameDefrostZone]; } - (nullable NSArray *)defrostZone { - return [store sdl_objectForName:SDLNameDefrostZone]; + return [self.store sdl_enumsForName:SDLRPCParameterNameDefrostZone error:nil]; } - (void)setVentilationModeAvailable:(nullable NSNumber *)ventilationModeAvailable { - [store sdl_setObject:ventilationModeAvailable forName:SDLNameVentilationModeAvailable]; + [self.store sdl_setObject:ventilationModeAvailable forName:SDLRPCParameterNameVentilationModeAvailable]; } - (nullable NSNumber *)ventilationModeAvailable { - return [store sdl_objectForName:SDLNameVentilationModeAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameVentilationModeAvailable ofClass:NSNumber.class error:nil]; } - (void)setVentilationMode:(nullable NSArray *)ventilationMode { - [store sdl_setObject:ventilationMode forName:SDLNameVentilationMode]; + [self.store sdl_setObject:ventilationMode forName:SDLRPCParameterNameVentilationMode]; } - (nullable NSArray *)ventilationMode { - return [store sdl_objectForName:SDLNameVentilationMode]; + return [self.store sdl_enumsForName:SDLRPCParameterNameVentilationMode error:nil]; } - (void)setHeatedSteeringWheelAvailable:(nullable NSNumber *)heatedSteeringWheelAvailable { - [store sdl_setObject:heatedSteeringWheelAvailable forName:SDLNameHeatedSteeringWheelAvailable]; + [self.store sdl_setObject:heatedSteeringWheelAvailable forName:SDLRPCParameterNameHeatedSteeringWheelAvailable]; } - (nullable NSNumber *)heatedSteeringWheelAvailable { - return [store sdl_objectForName:SDLNameHeatedSteeringWheelAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeatedSteeringWheelAvailable ofClass:NSNumber.class error:nil]; } - (void)setHeatedWindshieldAvailable:(nullable NSNumber *)heatedWindshieldAvailable { - [store sdl_setObject:heatedWindshieldAvailable forName:SDLNameHeatedWindshieldAvailable]; + [self.store sdl_setObject:heatedWindshieldAvailable forName:SDLRPCParameterNameHeatedWindshieldAvailable]; } - (nullable NSNumber *)heatedWindshieldAvailable { - return [store sdl_objectForName:SDLNameHeatedWindshieldAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeatedWindshieldAvailable ofClass:NSNumber.class error:nil]; } - (void)setHeatedRearWindowAvailable:(nullable NSNumber *)heatedRearWindowAvailable { - [store sdl_setObject:heatedRearWindowAvailable forName:SDLNameHeatedRearWindowAvailable]; + [self.store sdl_setObject:heatedRearWindowAvailable forName:SDLRPCParameterNameHeatedRearWindowAvailable]; } - (nullable NSNumber *)heatedRearWindowAvailable { - return [store sdl_objectForName:SDLNameHeatedRearWindowAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeatedRearWindowAvailable ofClass:NSNumber.class error:nil]; } - (void)setHeatedMirrorsAvailable:(nullable NSNumber *)heatedMirrorsAvailable { - [store sdl_setObject:heatedMirrorsAvailable forName:SDLNameHeatedMirrorsAvailable]; + [self.store sdl_setObject:heatedMirrorsAvailable forName:SDLRPCParameterNameHeatedMirrorsAvailable]; } - (nullable NSNumber *)heatedMirrorsAvailable { - return [store sdl_objectForName:SDLNameHeatedMirrorsAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeatedMirrorsAvailable ofClass:NSNumber.class error:nil]; +} + +- (void)setClimateEnableAvailable:(nullable NSNumber *)climateEnableAvailable { + [self.store sdl_setObject:climateEnableAvailable forName:SDLRPCParameterNameClimateEnableAvailable]; +} + +- (nullable NSNumber *)climateEnableAvailable { + return [self.store sdl_objectForName:SDLRPCParameterNameClimateEnableAvailable ofClass:NSNumber.class error:nil]; +} + +- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { + [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; +} + +- (nullable SDLModuleInfo *)moduleInfo { + return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.h index 29938b2..f811967 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.h @@ -16,9 +16,53 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLClimateControlData : SDLRPCStruct -- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode __deprecated_msg("Use initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone: dualModeEnable:acMaxEnable:ventilationMode:heatedSteeringWheelEnable: heatedWindshieldEnable:heatedRearWindowEnable:heatedMirrorsEnable: instead"); - -- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode heatedSteeringWheelEnable:(nullable NSNumber *)heatedSteeringWheelEnable heatedWindshieldEnable:(nullable NSNumber *)heatedWindshieldEnable heatedRearWindowEnable:(nullable NSNumber *)heatedRearWindowEnable heatedMirrorsEnable:(nullable NSNumber *)heatedMirrorsEnable; +/// Convenience init for climate control data. +/// @param fanSpeed Speed of Fan in integer +/// @param desiredTemperature Desired Temperature in SDLTemperature +/// @param acEnable Represents if AC is enabled +/// @param circulateAirEnable Represents if circulation of air is enabled +/// @param autoModeEnable Represents if auto mode is enabled +/// @param defrostZone Represents the kind of defrost zone +/// @param dualModeEnable Represents if dual mode is enabled +/// @param acMaxEnable Represents if ac max is enabled +/// @param ventilationMode Represents the kind of ventilation zone +/// @return An SDLClimateControlData object +- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode __deprecated_msg("Use initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone: dualModeEnable:acMaxEnable:ventilationMode:heatedSteeringWheelEnable: heatedWindshieldEnable:heatedRearWindowEnable:heatedMirrorsEnable:climateEnable instead"); + +/// Convenience init for climate control data. +/// @param fanSpeed Speed of Fan in integer +/// @param desiredTemperature Desired Temperature in SDLTemperature +/// @param acEnable Represents if AC is enabled +/// @param circulateAirEnable Represents if circulation of air is enabled +/// @param autoModeEnable Represents if auto mode is enabled +/// @param defrostZone Represents the kind of defrost zone +/// @param dualModeEnable Represents if dual mode is enabled +/// @param acMaxEnable Represents if ac max is enabled +/// @param ventilationMode Represents the kind of ventilation zone +/// @param heatedSteeringWheelEnable Represents if heated steering wheel is enabled +/// @param heatedWindshieldEnable Represents if heated windshield is enabled +/// @param heatedRearWindowEnable Represents if heated rear window is enabled +/// @param heatedMirrorsEnable Represents if heated mirrors are enabled +/// @return An SDLClimateControlData object +- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode heatedSteeringWheelEnable:(nullable NSNumber *)heatedSteeringWheelEnable heatedWindshieldEnable:(nullable NSNumber *)heatedWindshieldEnable heatedRearWindowEnable:(nullable NSNumber *)heatedRearWindowEnable heatedMirrorsEnable:(nullable NSNumber *)heatedMirrorsEnable __deprecated_msg("Use initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone: dualModeEnable:acMaxEnable:ventilationMode:heatedSteeringWheelEnable: heatedWindshieldEnable:heatedRearWindowEnable:heatedMirrorsEnable:climateEnable instead"); + +/// Convenience init for climate control data with all properties. +/// @param fanSpeed Speed of Fan in integer +/// @param desiredTemperature Desired Temperature in SDLTemperature +/// @param acEnable Represents if AC is enabled +/// @param circulateAirEnable Represents if circulation of air is enabled +/// @param autoModeEnable Represents if auto mode is enabled +/// @param defrostZone Represents the kind of defrost zone +/// @param dualModeEnable Represents if dual mode is enabled +/// @param acMaxEnable Represents if ac max is enabled +/// @param ventilationMode Represents the kind of ventilation zone +/// @param heatedSteeringWheelEnable Represents if heated steering wheel is enabled +/// @param heatedWindshieldEnable Represents if heated windshield is enabled +/// @param heatedRearWindowEnable Represents if heated rear window is enabled +/// @param heatedMirrorsEnable Represents if heated mirrors are enabled +/// @param climateEnable Represents if climate is enabled +/// @return An SDLClimateControlData object +- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode heatedSteeringWheelEnable:(nullable NSNumber *)heatedSteeringWheelEnable heatedWindshieldEnable:(nullable NSNumber *)heatedWindshieldEnable heatedRearWindowEnable:(nullable NSNumber *)heatedRearWindowEnable heatedMirrorsEnable:(nullable NSNumber *)heatedMirrorsEnable climateEnable:(nullable NSNumber *)climateEnable; /** * Speed of Fan in integer @@ -65,7 +109,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nullable, strong, nonatomic) NSNumber *autoModeEnable; /** - * Represents the kind of defrost zone + * Represents the kind of defrost zone. * * Optional, SDLDefrostZone */ @@ -86,7 +130,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nullable, strong, nonatomic) NSNumber *acMaxEnable; /** - * Represents the kind of Ventilation zone + * Represents the kind of Ventilation zone. * * Optional, SDLVentilationMode */ @@ -120,6 +164,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSNumber *heatedMirrorsEnable; +/** + * @abstract Value false means disabled, value true means enabled. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *climateEnable; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.m index 0a57e40..bed8ba3 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.m @@ -3,7 +3,7 @@ // #import "SDLClimateControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLTemperature.h" #import "NSMutableDictionary+Store.h" @@ -38,116 +38,148 @@ - (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTe return self; } +- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode heatedSteeringWheelEnable:(nullable NSNumber *)heatedSteeringWheelEnable heatedWindshieldEnable:(nullable NSNumber *)heatedWindshieldEnable heatedRearWindowEnable:(nullable NSNumber *)heatedRearWindowEnable heatedMirrorsEnable:(nullable NSNumber *)heatedMirrorsEnable climateEnable:(nullable NSNumber *)climateEnable { + self = [self init]; + if (!self) { + return nil; + } + + self.fanSpeed = fanSpeed; + self.desiredTemperature = desiredTemperature; + self.acEnable = acEnable; + self.circulateAirEnable = circulateAirEnable; + self.autoModeEnable = autoModeEnable; + self.defrostZone = defrostZone; + self.dualModeEnable = dualModeEnable; + self.acMaxEnable = acMaxEnable; + self.ventilationMode = ventilationMode; + self.heatedSteeringWheelEnable = heatedSteeringWheelEnable; + self.heatedWindshieldEnable = heatedWindshieldEnable; + self.heatedRearWindowEnable = heatedRearWindowEnable; + self.heatedMirrorsEnable = heatedMirrorsEnable; + self.climateEnable = climateEnable; + + return self; +} + - (void)setFanSpeed:(nullable NSNumber *)fanSpeed { - [store sdl_setObject:fanSpeed forName:SDLNameFanSpeed]; + [self.store sdl_setObject:fanSpeed forName:SDLRPCParameterNameFanSpeed]; } - (nullable NSNumber *)fanSpeed { - return [store sdl_objectForName:SDLNameFanSpeed]; + return [self.store sdl_objectForName:SDLRPCParameterNameFanSpeed ofClass:NSNumber.class error:nil]; } - (void)setCurrentTemperature:(nullable SDLTemperature *)currentTemperature { - [store sdl_setObject:currentTemperature forName:SDLNameCurrentTemperature]; + [self.store sdl_setObject:currentTemperature forName:SDLRPCParameterNameCurrentTemperature]; } - (nullable SDLTemperature *)currentTemperature { - return [store sdl_objectForName:SDLNameCurrentTemperature ofClass:SDLTemperature.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameCurrentTemperature ofClass:SDLTemperature.class error:nil]; } - (void)setDesiredTemperature:(nullable SDLTemperature *)desiredTemperature { - [store sdl_setObject:desiredTemperature forName:SDLNameDesiredTemperature]; + [self.store sdl_setObject:desiredTemperature forName:SDLRPCParameterNameDesiredTemperature]; } - (nullable SDLTemperature *)desiredTemperature { - return [store sdl_objectForName:SDLNameDesiredTemperature ofClass:SDLTemperature.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameDesiredTemperature ofClass:SDLTemperature.class error:nil]; } - (void)setAcEnable:(nullable NSNumber *)acEnable { - [store sdl_setObject:acEnable forName:SDLNameACEnable]; + [self.store sdl_setObject:acEnable forName:SDLRPCParameterNameACEnable]; } - (nullable NSNumber *)acEnable { - return [store sdl_objectForName:SDLNameACEnable]; + return [self.store sdl_objectForName:SDLRPCParameterNameACEnable ofClass:NSNumber.class error:nil]; } - (void)setCirculateAirEnable:(nullable NSNumber *)circulateAirEnable { - [store sdl_setObject:circulateAirEnable forName:SDLNameCirculateAirEnable]; + [self.store sdl_setObject:circulateAirEnable forName:SDLRPCParameterNameCirculateAirEnable]; } - (nullable NSNumber *)circulateAirEnable { - return [store sdl_objectForName:SDLNameCirculateAirEnable]; + return [self.store sdl_objectForName:SDLRPCParameterNameCirculateAirEnable ofClass:NSNumber.class error:nil]; } - (void)setAutoModeEnable:(nullable NSNumber *)autoModeEnable { - [store sdl_setObject:autoModeEnable forName:SDLNameAutoModeEnable]; + [self.store sdl_setObject:autoModeEnable forName:SDLRPCParameterNameAutoModeEnable]; } - (nullable NSNumber *)autoModeEnable { - return [store sdl_objectForName:SDLNameAutoModeEnable]; + return [self.store sdl_objectForName:SDLRPCParameterNameAutoModeEnable ofClass:NSNumber.class error:nil]; } - (void)setDefrostZone:(nullable SDLDefrostZone)defrostZone { - [store sdl_setObject:defrostZone forName:SDLNameDefrostZone]; + [self.store sdl_setObject:defrostZone forName:SDLRPCParameterNameDefrostZone]; } - (nullable SDLDefrostZone)defrostZone { - return [store sdl_objectForName:SDLNameDefrostZone]; + return [self.store sdl_enumForName:SDLRPCParameterNameDefrostZone error:nil]; } - (void)setDualModeEnable:(nullable NSNumber *)dualModeEnable { - [store sdl_setObject:dualModeEnable forName:SDLNameDualModeEnable]; + [self.store sdl_setObject:dualModeEnable forName:SDLRPCParameterNameDualModeEnable]; } - (nullable NSNumber *)dualModeEnable { - return [store sdl_objectForName:SDLNameDualModeEnable]; + return [self.store sdl_objectForName:SDLRPCParameterNameDualModeEnable ofClass:NSNumber.class error:nil]; } - (void)setAcMaxEnable:(nullable NSNumber *)acMaxEnable { - [store sdl_setObject:acMaxEnable forName:SDLNameACMaxEnable]; + [self.store sdl_setObject:acMaxEnable forName:SDLRPCParameterNameACMaxEnable]; } - (nullable NSNumber *)acMaxEnable { - return [store sdl_objectForName:SDLNameACMaxEnable]; + return [self.store sdl_objectForName:SDLRPCParameterNameACMaxEnable ofClass:NSNumber.class error:nil]; } - (void)setVentilationMode:(nullable SDLVentilationMode)ventilationMode { - [store sdl_setObject:ventilationMode forName:SDLNameVentilationMode]; + [self.store sdl_setObject:ventilationMode forName:SDLRPCParameterNameVentilationMode]; } - (nullable SDLVentilationMode)ventilationMode { - return [store sdl_objectForName:SDLNameVentilationMode]; + return [self.store sdl_enumForName:SDLRPCParameterNameVentilationMode error:nil]; } - (void)setHeatedSteeringWheelEnable:(nullable NSNumber *)heatedSteeringWheelEnable { - [store sdl_setObject:heatedSteeringWheelEnable forName:SDLNameHeatedSteeringWheelEnable]; + [self.store sdl_setObject:heatedSteeringWheelEnable forName:SDLRPCParameterNameHeatedSteeringWheelEnable]; } - (nullable NSNumber *)heatedSteeringWheelEnable { - return [store sdl_objectForName:SDLNameHeatedSteeringWheelEnable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeatedSteeringWheelEnable ofClass:NSNumber.class error:nil]; } - (void)setHeatedWindshieldEnable:(nullable NSNumber *)heatedWindshieldEnable { - [store sdl_setObject:heatedWindshieldEnable forName:SDLNameHeatedWindshieldEnable]; + [self.store sdl_setObject:heatedWindshieldEnable forName:SDLRPCParameterNameHeatedWindshieldEnable]; } - (nullable NSNumber *)heatedWindshieldEnable { - return [store sdl_objectForName:SDLNameHeatedWindshieldEnable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeatedWindshieldEnable ofClass:NSNumber.class error:nil]; } - (void)setHeatedRearWindowEnable:(nullable NSNumber *)heatedRearWindowEnable { - [store sdl_setObject:heatedRearWindowEnable forName:SDLNameHeatedRearWindowEnable]; + [self.store sdl_setObject:heatedRearWindowEnable forName:SDLRPCParameterNameHeatedRearWindowEnable]; } - (nullable NSNumber *)heatedRearWindowEnable { - return [store sdl_objectForName:SDLNameHeatedRearWindowEnable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeatedRearWindowEnable ofClass:NSNumber.class error:nil]; } - (void)setHeatedMirrorsEnable:(nullable NSNumber *)heatedMirrorsEnable { - [store sdl_setObject:heatedMirrorsEnable forName:SDLNameHeatedMirrorsEnable]; + [self.store sdl_setObject:heatedMirrorsEnable forName:SDLRPCParameterNameHeatedMirrorsEnable]; } - (nullable NSNumber *)heatedMirrorsEnable { - return [store sdl_objectForName:SDLNameHeatedMirrorsEnable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeatedMirrorsEnable ofClass:NSNumber.class error:nil]; +} + +- (void)setClimateEnable:(nullable NSNumber *)climateEnable { + [self.store sdl_setObject:climateEnable forName:SDLRPCParameterNameClimateEnable]; +} + +- (nullable NSNumber *)climateEnable { + return [self.store sdl_objectForName:SDLRPCParameterNameClimateEnable ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.h new file mode 100644 index 0000000..38418e9 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.h @@ -0,0 +1,20 @@ +// +// SDLCloseApplication.h +// SmartDeviceLink +// +// Created by Nicole on 7/9/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Used by an app to set itself to a `HMILevel` of `NONE`. The app will close but will still be registered. If the app is a navigation app it will no longer be used as the preferred mobile-navigation application by the module. + */ +@interface SDLCloseApplication : SDLRPCRequest + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.m new file mode 100644 index 0000000..743a707 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.m @@ -0,0 +1,27 @@ +// +// SDLCloseApplication.m +// SmartDeviceLink +// +// Created by Nicole on 7/9/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLCloseApplication.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLCloseApplication + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameCloseApplication]) { + } + return self; +} +#pragma clang diagnostic pop + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.h new file mode 100644 index 0000000..a789293 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.h @@ -0,0 +1,20 @@ +// +// SDLCloseApplicationResponse.h +// SmartDeviceLink +// +// Created by Nicole on 7/9/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Response to the request to close this app on the module. + */ +@interface SDLCloseApplicationResponse : SDLRPCResponse + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.m new file mode 100644 index 0000000..3c77431 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.m @@ -0,0 +1,27 @@ +// +// SDLCloseApplicationResponse.m +// SmartDeviceLink +// +// Created by Nicole on 7/9/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLCloseApplicationResponse.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLCloseApplicationResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameCloseApplication]) { + } + return self; +} +#pragma clang diagnostic pop + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.h new file mode 100644 index 0000000..6f64956 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.h @@ -0,0 +1,94 @@ +// +// SDLCloudAppProperties.h +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCStruct.h" + +#import "SDLHybridAppPreference.h" + + +NS_ASSUME_NONNULL_BEGIN + +/** + * The cloud application properties. + */ +@interface SDLCloudAppProperties : SDLRPCStruct + +/** + * Convenience init for required parameters. + * + * @param appID The id of the cloud app + * @return A SDLCloudAppProperties object + */ +- (instancetype)initWithAppID:(NSString *)appID NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for all parameters. + * + * @param appID The id of the cloud app + * @param nicknames An array of app names a cloud app is allowed to register with + * @param enabled If true, the cloud app will appear in the HMI's app list; if false, the cloud app will not appear in the HMI's app list + * @param authToken Used to authenticate websocket connection on app activation + * @param cloudTransportType Specifies the connection type Core should use + * @param hybridAppPreference Specifies the user preference to use the cloud app version or mobile app version when both are available + * @param endpoint The websocket endpoint + * @return A SDLCloudAppProperties object + */ +- (instancetype)initWithAppID:(NSString *)appID nicknames:(nullable NSArray *)nicknames enabled:(BOOL)enabled authToken:(nullable NSString *)authToken cloudTransportType:(nullable NSString *)cloudTransportType hybridAppPreference:(nullable SDLHybridAppPreference)hybridAppPreference endpoint:(nullable NSString *)endpoint; + +/** + * An array of app names a cloud app is allowed to register with. If included in a `SetCloudAppProperties` request, this value will overwrite the existing "nicknames" field in the app policies section of the policy table. + * + * Array of Strings, Optional, String length: minlength="0" maxlength="100", Array size: minsize="0" maxsize="100" + */ +@property (nullable, strong, nonatomic) NSArray *nicknames; + +/** + * The id of the cloud app. + * + * String, Required, maxlength="100" + */ +@property (strong, nonatomic) NSString *appID; + +/** + * If true, the cloud app will appear in the HMI's app list; if false, the cloud app will not appear in the HMI's app list. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *enabled; + +/** + * Used to authenticate websocket connection on app activation. + * + * String, Optional, maxlength="65535" + */ +@property (nullable, strong, nonatomic) NSString *authToken; + +/** + * Specifies the connection type Core should use. Currently the ones that work in SDL Core are `WS` or `WSS`, but an OEM can implement their own transport adapter to handle different values. + * + * String, Optional, maxlength="100" + */ +@property (nullable, strong, nonatomic) NSString *cloudTransportType; + +/** + * Specifies the user preference to use the cloud app version or mobile app version when both are available. + * + * SDLHybridAppPreference, Optional + */ +@property (nullable, strong, nonatomic) SDLHybridAppPreference hybridAppPreference; + +/** + * The websocket endpoint. + * + * String, Optional, maxlength="65535" + */ +@property (nullable, strong, nonatomic) NSString *endpoint; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.m new file mode 100644 index 0000000..3a2ad32 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.m @@ -0,0 +1,105 @@ +// +// SDLCloudAppProperties.m +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLCloudAppProperties.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLCloudAppProperties + +- (instancetype)initWithAppID:(NSString *)appID { + self = [super init]; + if (!self) { + return nil; + } + + self.appID = appID; + + return self; +} + +- (instancetype)initWithAppID:(NSString *)appID nicknames:(nullable NSArray *)nicknames enabled:(BOOL)enabled authToken:(nullable NSString *)authToken cloudTransportType:(nullable NSString *)cloudTransportType hybridAppPreference:(nullable SDLHybridAppPreference)hybridAppPreference endpoint:(nullable NSString *)endpoint { + self = [self initWithAppID:appID]; + if (!self) { + return nil; + } + + self.nicknames = nicknames; + self.enabled = @(enabled); + self.authToken = authToken; + self.cloudTransportType = cloudTransportType; + self.hybridAppPreference = hybridAppPreference; + self.endpoint = endpoint; + + return self; +} + +- (void)setNicknames:(nullable NSArray *)nicknames { + [self.store sdl_setObject:nicknames forName:SDLRPCParameterNameNicknames]; +} + +- (nullable NSArray *)nicknames { + return [self.store sdl_objectsForName:SDLRPCParameterNameNicknames ofClass:NSString.class error:nil]; +} + +- (void)setAppID:(NSString *)appID { + [self.store sdl_setObject:appID forName:SDLRPCParameterNameAppId]; +} + +- (NSString *)appID { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameAppId ofClass:NSString.class error:&error]; +} + +- (void)setEnabled:(nullable NSNumber *)enabled { + [self.store sdl_setObject:enabled forName:SDLRPCParameterNameEnabled]; +} + +- (nullable NSNumber *)enabled { + return [self.store sdl_objectForName:SDLRPCParameterNameEnabled ofClass:NSNumber.class error:nil]; +} + +- (void)setAuthToken:(nullable NSString *)authToken { + [self.store sdl_setObject:authToken forName:SDLRPCParameterNameAuthToken]; +} + +- (nullable NSString *)authToken { + return [self.store sdl_objectForName:SDLRPCParameterNameAuthToken ofClass:NSString.class error:nil]; +} + +- (void)setCloudTransportType:(nullable NSString *)cloudTransportType { + [self.store sdl_setObject:cloudTransportType forName:SDLRPCParameterNameCloudTransportType]; +} + +- (nullable NSString *)cloudTransportType { + return [self.store sdl_objectForName:SDLRPCParameterNameCloudTransportType ofClass:NSString.class error:nil]; +} + +- (void)setHybridAppPreference:(nullable SDLHybridAppPreference)hybridAppPreference { + [self.store sdl_setObject:hybridAppPreference forName:SDLRPCParameterNameHybridAppPreference]; +} + +- (nullable SDLHybridAppPreference)hybridAppPreference { + return [self.store sdl_enumForName:SDLRPCParameterNameHybridAppPreference error:nil]; +} + +- (void)setEndpoint:(nullable NSString *)endpoint { + [self.store sdl_setObject:endpoint forName:SDLRPCParameterNameEndpoint]; +} + +- (nullable NSString *)endpoint { + return [self.store sdl_objectForName:SDLRPCParameterNameEndpoint ofClass:NSString.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClusterModeStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClusterModeStatus.m index e182fa1..1558c05 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClusterModeStatus.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClusterModeStatus.m @@ -4,42 +4,46 @@ #import "SDLClusterModeStatus.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLClusterModeStatus - (void)setPowerModeActive:(NSNumber *)powerModeActive { - [store sdl_setObject:powerModeActive forName:SDLNamePowerModeActive]; + [self.store sdl_setObject:powerModeActive forName:SDLRPCParameterNamePowerModeActive]; } - (NSNumber *)powerModeActive { - return [store sdl_objectForName:SDLNamePowerModeActive]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNamePowerModeActive ofClass:NSNumber.class error:&error]; } - (void)setPowerModeQualificationStatus:(SDLPowerModeQualificationStatus)powerModeQualificationStatus { - [store sdl_setObject:powerModeQualificationStatus forName:SDLNamePowerModeQualificationStatus]; + [self.store sdl_setObject:powerModeQualificationStatus forName:SDLRPCParameterNamePowerModeQualificationStatus]; } - (SDLPowerModeQualificationStatus)powerModeQualificationStatus { - return [store sdl_objectForName:SDLNamePowerModeQualificationStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNamePowerModeQualificationStatus error:&error]; } - (void)setCarModeStatus:(SDLCarModeStatus)carModeStatus { - [store sdl_setObject:carModeStatus forName:SDLNameCarModeStatus]; + [self.store sdl_setObject:carModeStatus forName:SDLRPCParameterNameCarModeStatus]; } - (SDLCarModeStatus)carModeStatus { - return [store sdl_objectForName:SDLNameCarModeStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameCarModeStatus error:&error]; } - (void)setPowerModeStatus:(SDLPowerModeStatus)powerModeStatus { - [store sdl_setObject:powerModeStatus forName:SDLNamePowerModeStatus]; + [self.store sdl_setObject:powerModeStatus forName:SDLRPCParameterNamePowerModeStatus]; } - (SDLPowerModeStatus)powerModeStatus { - return [store sdl_objectForName:SDLNamePowerModeStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNamePowerModeStatus error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.h index 2cd6420..17c7dc6 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.h @@ -13,9 +13,11 @@ @class SDLLockScreenConfiguration; @class SDLLogConfiguration; @class SDLStreamingMediaConfiguration; +@class SDLEncryptionConfiguration; NS_ASSUME_NONNULL_BEGIN +/// Contains information about the app's configurtion, such as lifecycle, lockscreen, encryption, etc. @interface SDLConfiguration : NSObject /** @@ -36,7 +38,7 @@ NS_ASSUME_NONNULL_BEGIN /** * The streaming media configuration. */ -@property (copy, nonatomic, readonly) SDLStreamingMediaConfiguration *streamingMediaConfig; +@property (copy, nonatomic, readonly, nullable) SDLStreamingMediaConfiguration *streamingMediaConfig; /** * The file manager configuration. @@ -44,25 +46,37 @@ NS_ASSUME_NONNULL_BEGIN @property (copy, nonatomic, readonly) SDLFileManagerConfiguration *fileManagerConfig; /** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen and logging configurations. + * The encryption configuration. + */ +@property (copy, nonatomic, readonly) SDLEncryptionConfiguration *encryptionConfig; + +/** + * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging, file manager and encryption configurations. * * @param lifecycleConfig The lifecycle configuration to be used. * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. + * @param fileManagerConfig The file manager configuration to be used or `defaultConfiguration` if nil. + * @param encryptionConfig The encryption configuration to be used. If nil, the `defaultConfiguration` will be used. * @return The configuration */ -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:fileManager: instead"); +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig encryption:(nullable SDLEncryptionConfiguration *)encryptionConfig; /** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and file manager configurations. + * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging, streaming media, file manager and encryption configurations. * * @param lifecycleConfig The lifecycle configuration to be used. * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. + * @param streamingMediaConfig The streaming media configuration to be used or nil if not used. * @param fileManagerConfig The file manager configuration to be used or `defaultConfiguration` if nil. + * @param encryptionConfig The encryption configuration to be used. If nil, the `defaultConfiguration` will be used. * @return The configuration */ -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig; +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig encryption:(nullable SDLEncryptionConfiguration *)encryptionConfig; + + +#pragma mark - Deprecated Initializers /** * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen and logging configurations. @@ -72,7 +86,7 @@ NS_ASSUME_NONNULL_BEGIN * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. * @return The configuration */ -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig __deprecated_msg("Use configurationWithLifecycle:lockScreen:logging:fileManager: instead") NS_SWIFT_UNAVAILABLE("Use an initializer instead"); +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:fileManager:encryption: instead"); /** * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and file manager configurations. @@ -83,7 +97,7 @@ NS_ASSUME_NONNULL_BEGIN * @param fileManagerConfig The file manager configuration to be used or `defaultConfiguration` if nil. * @return The configuration */ -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig NS_SWIFT_UNAVAILABLE("Use an initializer instead"); +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:fileManager:encryption: instead"); /** * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and streaming media configurations. @@ -94,7 +108,7 @@ NS_ASSUME_NONNULL_BEGIN * @param streamingMediaConfig The streaming media configuration to be used or nil if not used. * @return The configuration */ -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:streamingMedia:fileManager: instead"); +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:streamingMedia:fileManager:encryption: instead"); /** * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging, streaming media and file manager configurations. @@ -106,18 +120,18 @@ NS_ASSUME_NONNULL_BEGIN * @param fileManagerConfig The file manager configuration to be used or `defaultConfiguration` if nil. * @return The configuration */ -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig; +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:streamingMedia:fileManager:encryption: instead"); /** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and streaming media configurations. + * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and file manager configurations. * * @param lifecycleConfig The lifecycle configuration to be used. * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. - * @param streamingMediaConfig The streaming media configuration to be used or nil if not used. + * @param fileManagerConfig The file manager configuration to be used or `defaultConfiguration` if nil. * @return The configuration */ -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig __deprecated_msg("Use configurationWithLifecycle:lockScreen:logging:streamingMedia:fileManager: instead") NS_SWIFT_UNAVAILABLE("Use an initializer instead"); ++ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:fileManager:encryption: instead") NS_SWIFT_UNAVAILABLE("Use an initializer instead"); /** * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging, streaming media and file manager configurations. @@ -129,7 +143,28 @@ NS_ASSUME_NONNULL_BEGIN * @param fileManagerConfig The file manager configuration to be used or `defaultConfiguration` if nil. * @return The configuration */ -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig NS_SWIFT_UNAVAILABLE("Use an initializer instead"); ++ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:streamingMedia:fileManager:encryption: instead") NS_SWIFT_UNAVAILABLE("Use an initializer instead"); + +/** + * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and streaming media configurations. + * + * @param lifecycleConfig The lifecycle configuration to be used. + * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. + * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. + * @param streamingMediaConfig The streaming media configuration to be used or nil if not used. + * @return The configuration + */ ++ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:streamingMedia:fileManager:encryption: instead") NS_SWIFT_UNAVAILABLE("Use an initializer instead"); + +/** + * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen and logging configurations. + * + * @param lifecycleConfig The lifecycle configuration to be used. + * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. + * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. + * @return The configuration + */ ++ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:fileManager:encryption: instead") NS_SWIFT_UNAVAILABLE("Use an initializer instead"); @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.m index a96b27d..bd1e85f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.m @@ -13,6 +13,7 @@ #import "SDLLockScreenConfiguration.h" #import "SDLLogConfiguration.h" #import "SDLStreamingMediaConfiguration.h" +#import "SDLEncryptionConfiguration.h" NS_ASSUME_NONNULL_BEGIN @@ -23,25 +24,19 @@ - (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfigur } - (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig { - return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:nil fileManager:nil]; + return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:nil fileManager:nil encryption:nil]; } - (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig { - return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig fileManager:nil]; + return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig fileManager:nil encryption:nil]; } - (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig { - self = [super init]; - if (!self) { - return nil; - } - - _lifecycleConfig = lifecycleConfig; - _lockScreenConfig = lockScreenConfig ?: [SDLLockScreenConfiguration enabledConfiguration]; - _loggingConfig = logConfig ?: [SDLLogConfiguration defaultConfiguration]; - _fileManagerConfig = fileManagerConfig ?: [SDLFileManagerConfiguration defaultConfiguration]; + return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig fileManager:fileManagerConfig encryption:nil]; +} - return self; +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig encryption:(nullable SDLEncryptionConfiguration *)encryptionConfig { + return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig streamingMedia:nil fileManager:fileManagerConfig encryption:encryptionConfig]; } + (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfiguration { @@ -49,7 +44,7 @@ + (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycl } + (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig { - return [self configurationWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:nil fileManager:nil]; + return [[self alloc] initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:nil fileManager:nil encryption:nil]; } + (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig { @@ -57,14 +52,18 @@ + (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycl } + (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig { - return [[self alloc] initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig fileManager:fileManagerConfig]; + return [[self alloc] initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig fileManager:fileManagerConfig encryption:nil]; } - (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig { - return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig streamingMedia:streamingMediaConfig fileManager:nil]; + return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig streamingMedia:streamingMediaConfig fileManager:nil encryption:nil]; } - (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig { + return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig streamingMedia:streamingMediaConfig fileManager:fileManagerConfig encryption:nil]; +} + +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig encryption:(nullable SDLEncryptionConfiguration *)encryptionConfig { self = [super init]; if (!self) { return nil; @@ -85,6 +84,14 @@ - (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig l } _fileManagerConfig = fileManagerConfig ?: [SDLFileManagerConfiguration defaultConfiguration]; + _encryptionConfig = encryptionConfig ?: [SDLEncryptionConfiguration defaultConfiguration]; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + if (_encryptionConfig.securityManagers == nil && _streamingMediaConfig.securityManagers != nil) { + _encryptionConfig.securityManagers = _streamingMediaConfig.securityManagers; + } +#pragma clang diagnostic pop return self; } @@ -94,13 +101,13 @@ + (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycl } + (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig { - return [[self alloc] initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig streamingMedia:streamingMediaConfig fileManager:fileManagerConfig]; + return [[self alloc] initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig streamingMedia:streamingMediaConfig fileManager:fileManagerConfig encryption:nil]; } #pragma mark - NSCopying - (id)copyWithZone:(nullable NSZone *)zone { - SDLConfiguration *new = [[SDLConfiguration allocWithZone:zone] initWithLifecycle:_lifecycleConfig lockScreen:_lockScreenConfig logging:_loggingConfig streamingMedia:_streamingMediaConfig fileManager:_fileManagerConfig]; + SDLConfiguration *new = [[SDLConfiguration allocWithZone:zone] initWithLifecycle:_lifecycleConfig lockScreen:_lockScreenConfig logging:_loggingConfig streamingMedia:_streamingMediaConfig fileManager:_fileManagerConfig encryption:_encryptionConfig]; return new; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLConnectionManagerType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLConnectionManagerType.h index f7052f6..2602a73 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLConnectionManagerType.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLConnectionManagerType.h @@ -10,6 +10,7 @@ #import @class SDLRPCRequest; +@class SDLRPCMessage; @class SDLRegisterAppInterfaceResponse; @@ -26,15 +27,47 @@ NS_ASSUME_NONNULL_BEGIN - (void)sendConnectionManagerRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler; /** - Send an RPC without bypassing the block on RPC sends before managers complete setup. - - @param request The RPC request to be sent to the remote head unit. - @param handler A completion block called when the response is received. + * Sends an RPC of type `SDLRPCRequest` without bypassing the block on RPC sends before managers complete setup. + * + * @param request An RPC of type `SDLRPCRequest` be sent to Core. + * @param handler Called when the response is received by Core */ - (void)sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler; +/** + * Sends an RPC of type `SDLRPCResponse` or `SDLRPCNotification` without bypassing the block on RPC sends before managers complete setup. Unlike requests, responses and notifications sent to Core do not get a response from Core, so no handler is needed. + * + * Do not use to send an RPC of type `SDLRPCRequest`. Instead use `sendConnectionRequest:withResponseHandler:` to send a request. + * + * @param rpc An RPC of type `SDLRPCResponse` or `SDLRPCNotification` to be sent to Core. + */ +- (void)sendConnectionRPC:(__kindof SDLRPCMessage *)rpc; + +/** +* Sends an RPC of type `SDLRPCResponse` or `SDLRPCNotification` and bypasses the block on RPC sends before managers complete setup. Unlike requests, responses and notifications sent to Core do not get a response from Core, so no handler is needed. +* +* Do not use to send an RPC of type `SDLRPCRequest`. Instead use `sendConnectionRequest:withResponseHandler:` to send a request. +* +* @param rpc An RPC of type `SDLRPCResponse` or `SDLRPCNotification` to be sent to Core. +*/ +- (void)sendConnectionManagerRPC:(__kindof SDLRPCMessage *)rpc; + +/** + * Sends an array of RPCs of type `Request` asynchronously. The requests are sent without bypassing the block on RPC sends before managers complete setup. + * + * @param requests An array of RPCs of type `Request` + * @param progressHandler The progress handler is called as each request gets a response from Core. + * @param completionHandler The completion handler is called when all requests have a response from Core. + */ - (void)sendRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; +/** + * Sends an array of RPCs of type `Request` sequentially. The requests are sent without bypassing the block on RPC sends before managers complete setup. + * + * @param requests An array of RPCs of type `Request` + * @param progressHandler The progress handler is called as each request gets a response from Core. + * @param completionHandler The completion handler is called when all requests have a response from Core. + */ - (void)sendSequentialRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m index be5460b..2dd186b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m @@ -65,7 +65,11 @@ - (nullable NSData *)data { } - (void)sdl_parse:(NSData *)data { - BsonObject payloadObject = bson_object_from_bytes((BytePtr)data.bytes); + BsonObject payloadObject; + size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); + if (retval <= 0) { + return; + } self.mtu = bson_object_get_int64(&payloadObject, SDLControlFrameMTUKey); diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.h index 37eb51d..e0bd1d5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.h @@ -25,3 +25,4 @@ extern char *const SDLControlFrameAudioServiceTransportsKey; extern char *const SDLControlFrameVideoServiceTransportsKey; extern char *const SDLControlFrameTCPIPAddressKey; extern char *const SDLControlFrameTCPPortKey; +extern char *const SDLControlFrameAuthTokenKey; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.m index 4104876..c365c78 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.m @@ -14,14 +14,15 @@ char *const SDLControlFrameProtocolVersionKey = "protocolVersion"; char *const SDLControlFrameHashIdKey = "hashId"; char *const SDLControlFrameMTUKey = "mtu"; -char *const SDLControlFrameReasonKey = "reason"; +char *const SDLControlFrameSecondaryTransportsKey = "secondaryTransports"; +char *const SDLControlFrameAudioServiceTransportsKey = "audioServiceTransports"; +char *const SDLControlFrameVideoServiceTransportsKey = "videoServiceTransports"; +char *const SDLControlFrameAuthTokenKey = "authToken"; char *const SDLControlFrameRejectedParams = "rejectedParams"; +char *const SDLControlFrameReasonKey = "reason"; char *const SDLControlFrameVideoProtocolKey = "videoProtocol"; char *const SDLControlFrameVideoCodecKey = "videoCodec"; char *const SDLControlFrameHeightKey = "height"; char *const SDLControlFrameWidthKey = "width"; -char *const SDLControlFrameSecondaryTransportsKey = "secondaryTransports"; -char *const SDLControlFrameAudioServiceTransportsKey = "audioServiceTransports"; -char *const SDLControlFrameVideoServiceTransportsKey = "videoServiceTransports"; char *const SDLControlFrameTCPIPAddressKey = "tcpIpAddress"; char *const SDLControlFrameTCPPortKey = "tcpPort"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadEndService.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadEndService.m index 372400e..cabfb09 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadEndService.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadEndService.m @@ -65,7 +65,11 @@ - (nullable NSData *)data { } - (void)sdl_parse:(NSData *)data { - BsonObject payloadObject = bson_object_from_bytes((BytePtr)data.bytes); + BsonObject payloadObject; + size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); + if (retval <= 0) { + return; + } self.hashId = bson_object_get_int32(&payloadObject, SDLControlFrameHashIdKey); diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadNak.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadNak.m index 15f5c51..55b9a6d 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadNak.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadNak.m @@ -70,7 +70,12 @@ - (nullable NSData *)data { } - (void)sdl_parse:(NSData *)data { - BsonObject payloadObject = bson_object_from_bytes((BytePtr)data.bytes); + BsonObject payloadObject; + size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); + if (retval <= 0) { + return; + } + BsonArray *arrayObject = bson_object_get_array(&payloadObject, SDLControlFrameRejectedParams); if (arrayObject == NULL) { return; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartService.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartService.m index d943d6a..6409884 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartService.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartService.m @@ -64,7 +64,11 @@ - (nullable NSData *)data { } - (void)sdl_parse:(NSData *)data { - BsonObject payloadObject = bson_object_from_bytes((BytePtr)data.bytes); + BsonObject payloadObject; + size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); + if (retval <= 0) { + return; + } char *utf8String = bson_object_get_string(&payloadObject, SDLControlFrameProtocolVersionKey); if (utf8String != NULL) { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h index ba339bd..295204a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h @@ -20,6 +20,9 @@ NS_ASSUME_NONNULL_BEGIN /// Max transport unit to be used for this service @property (assign, nonatomic, readonly) int64_t mtu; +/// A token used to authenticate a websocket connection on app activation. +@property (copy, nonatomic, readonly, nullable) NSString *authToken; + /// The negotiated version of the protocol. Must be in the format "Major.Minor.Patch" @property (copy, nonatomic, readonly, nullable) NSString *protocolVersion; @@ -32,7 +35,7 @@ NS_ASSUME_NONNULL_BEGIN /** List of transports that are allowed to carry video service. The values can be either 1 (primary transport) or 2 (secondary transport) and are listed in preferred order. */ @property (copy, nonatomic, readonly, nullable) NSArray *videoServiceTransports; -- (instancetype)initWithHashId:(int32_t)hashId mtu:(int64_t)mtu protocolVersion:(nullable NSString *)protocolVersion secondaryTransports:(nullable NSArray *)secondaryTransports audioServiceTransports:(nullable NSArray *)audioServiceTransports videoServiceTransports:(nullable NSArray *)videoServiceTransports; +- (instancetype)initWithHashId:(int32_t)hashId mtu:(int64_t)mtu authToken:(nullable NSString *)authToken protocolVersion:(nullable NSString *)protocolVersion secondaryTransports:(nullable NSArray *)secondaryTransports audioServiceTransports:(nullable NSArray *)audioServiceTransports videoServiceTransports:(nullable NSArray *)videoServiceTransports; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m index 536ecfc..e6afae6 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m @@ -18,6 +18,7 @@ @interface SDLControlFramePayloadRPCStartServiceAck () @property (assign, nonatomic, readwrite) int32_t hashId; @property (assign, nonatomic, readwrite) int64_t mtu; +@property (copy, nonatomic, readwrite, nullable) NSString *authToken; @property (copy, nonatomic, readwrite, nullable) NSString *protocolVersion; @property (copy, nonatomic, readwrite, nullable) NSArray *secondaryTransports; @property (copy, nonatomic, readwrite, nullable) NSArray *audioServiceTransports; @@ -30,6 +31,7 @@ @implementation SDLControlFramePayloadRPCStartServiceAck - (instancetype)initWithHashId:(int32_t)hashId mtu:(int64_t)mtu + authToken:(nullable NSString *)authToken protocolVersion:(nullable NSString *)protocolVersion secondaryTransports:(nullable NSArray *)secondaryTransports audioServiceTransports:(nullable NSArray *)audioServiceTransports @@ -39,6 +41,7 @@ - (instancetype)initWithHashId:(int32_t)hashId _hashId = hashId; _mtu = mtu; + _authToken = authToken; _protocolVersion = protocolVersion; _secondaryTransports = secondaryTransports; _audioServiceTransports = audioServiceTransports; @@ -79,6 +82,10 @@ - (nullable NSData *)data { bson_object_put_int64(&payloadObject, SDLControlFrameMTUKey, self.mtu); } + if (self.authToken != nil) { + bson_object_put_string(&payloadObject, SDLControlFrameAuthTokenKey, (char *)self.authToken.UTF8String); + } + if (self.protocolVersion != nil) { bson_object_put_string(&payloadObject, SDLControlFrameProtocolVersionKey, (char *)self.protocolVersion.UTF8String); } @@ -96,7 +103,6 @@ - (nullable NSData *)data { } [self sdl_addServiceTransports:&payloadObject fromArray:self.audioServiceTransports forKey:SDLControlFrameAudioServiceTransportsKey]; - [self sdl_addServiceTransports:&payloadObject fromArray:self.videoServiceTransports forKey:SDLControlFrameVideoServiceTransportsKey]; BytePtr bsonData = bson_object_to_bytes(&payloadObject); @@ -108,14 +114,23 @@ - (nullable NSData *)data { } - (void)sdl_parse:(NSData *)data { - BsonObject payloadObject = bson_object_from_bytes((BytePtr)data.bytes); + BsonObject payloadObject; + size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); + if (retval <= 0) { + return; + } self.hashId = bson_object_get_int32(&payloadObject, SDLControlFrameHashIdKey); self.mtu = bson_object_get_int64(&payloadObject, SDLControlFrameMTUKey); - char *utf8String = bson_object_get_string(&payloadObject, SDLControlFrameProtocolVersionKey); - if (utf8String != NULL) { - self.protocolVersion = [NSString stringWithUTF8String:utf8String]; + char *protocolVersionUTF8String = bson_object_get_string(&payloadObject, SDLControlFrameProtocolVersionKey); + if (protocolVersionUTF8String != NULL) { + self.protocolVersion = [NSString stringWithUTF8String:protocolVersionUTF8String]; + } + + char *authTokenUTF8String = bson_object_get_string(&payloadObject, SDLControlFrameAuthTokenKey); + if (authTokenUTF8String != NULL) { + self.authToken = [NSString stringWithUTF8String:authTokenUTF8String]; } BsonArray *arrayObject = bson_object_get_array(&payloadObject, SDLControlFrameSecondaryTransportsKey); @@ -123,15 +138,14 @@ - (void)sdl_parse:(NSData *)data { NSMutableArray *secondaryTransports = [NSMutableArray array]; size_t index = 0; - while ((utf8String = bson_array_get_string(arrayObject, index)) != NULL) { - [secondaryTransports addObject:[NSString stringWithUTF8String:utf8String]]; + while ((protocolVersionUTF8String = bson_array_get_string(arrayObject, index)) != NULL) { + [secondaryTransports addObject:[NSString stringWithUTF8String:protocolVersionUTF8String]]; index++; } self.secondaryTransports = [secondaryTransports copy]; } self.audioServiceTransports = [self sdl_getServiceTransports:&payloadObject forKey:SDLControlFrameAudioServiceTransportsKey]; - self.videoServiceTransports = [self sdl_getServiceTransports:&payloadObject forKey:SDLControlFrameVideoServiceTransportsKey]; bson_object_deinitialize(&payloadObject); @@ -179,7 +193,7 @@ - (void)sdl_addServiceTransports:(BsonObject *)payloadObject fromArray:(NSArray< } - (NSString *)description { - return [NSString stringWithFormat:@"<%@>: Protocol Version: %@, hash id: %d, MTU: %lld, secondary transports: %@, transports for audio service: %@, transports for video service: %@", NSStringFromClass(self.class), self.protocolVersion, self.hashId, self.mtu, self.secondaryTransports, self.audioServiceTransports, self.videoServiceTransports]; + return [NSString stringWithFormat:@"<%@>: Protocol Version: %@, hash id: %d, MTU: %lld, auth token: %@, secondary transports: %@, transports for audio service: %@, transports for video service: %@", NSStringFromClass(self.class), self.protocolVersion, self.hashId, self.mtu, self.authToken, self.secondaryTransports, self.audioServiceTransports, self.videoServiceTransports]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m index 570d41f..600fd1b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m @@ -64,7 +64,11 @@ - (nullable NSData *)data { } - (void)sdl_parse:(NSData *)data { - BsonObject payloadObject = bson_object_from_bytes((BytePtr)data.bytes); + BsonObject payloadObject; + size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); + if (retval <= 0) { + return; + } char *reasonString = bson_object_get_string(&payloadObject, SDLControlFrameReasonKey); if (reasonString != NULL) { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m index daaf3f1..24b49cc 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m @@ -80,7 +80,11 @@ - (nullable NSData *)data { } - (void)sdl_parse:(NSData *)data { - BsonObject payloadObject = bson_object_from_bytes((BytePtr)data.bytes); + BsonObject payloadObject; + size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); + if (retval <= 0) { + return; + } char *utf8String = bson_object_get_string(&payloadObject, SDLControlFrameTCPIPAddressKey); if (utf8String != NULL) { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartService.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartService.m index d33698e..d8dc841 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartService.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartService.m @@ -87,7 +87,11 @@ - (nullable NSData *)data { } - (void)sdl_parse:(NSData *)data { - BsonObject payloadObject = bson_object_from_bytes((BytePtr)data.bytes); + BsonObject payloadObject; + size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); + if (retval <= 0) { + return; + } self.height = bson_object_get_int32(&payloadObject, SDLControlFrameHeightKey); self.width = bson_object_get_int32(&payloadObject, SDLControlFrameWidthKey); diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m index d690d66..7f071df 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m @@ -93,7 +93,11 @@ - (nullable NSData *)data { } - (void)sdl_parse:(NSData *)data { - BsonObject payloadObject = bson_object_from_bytes((BytePtr)data.bytes); + BsonObject payloadObject; + size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); + if (retval <= 0) { + return; + } self.mtu = bson_object_get_int64(&payloadObject, SDLControlFrameMTUKey); self.height = bson_object_get_int32(&payloadObject, SDLControlFrameHeightKey); diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.h index 1e09446..da54d58 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.h @@ -23,6 +23,11 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLCreateInteractionChoiceSet : SDLRPCRequest +/// Convenience init for creating a choice set RPC +/// +/// @param choiceId A unique ID that identifies the Choice Set +/// @param choiceSet Array of choices, which the user can select by menu or voice recognition +/// @return An SDLCreateInteractionChoiceSet object - (instancetype)initWithId:(UInt32)choiceId choiceSet:(NSArray *)choiceSet; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.m index 570054e..00ee170 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.m @@ -6,17 +6,21 @@ #import "NSMutableDictionary+Store.h" #import "SDLChoice.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLCreateInteractionChoiceSet +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameCreateInteractionChoiceSet]) { + if (self = [super initWithName:SDLRPCFunctionNameCreateInteractionChoiceSet]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithId:(UInt32)choiceId choiceSet:(NSArray *)choiceSet { self = [self init]; @@ -30,19 +34,21 @@ - (instancetype)initWithId:(UInt32)choiceId choiceSet:(NSArray *)ch } - (void)setInteractionChoiceSetID:(NSNumber *)interactionChoiceSetID { - [parameters sdl_setObject:interactionChoiceSetID forName:SDLNameInteractionChoiceSetId]; + [self.parameters sdl_setObject:interactionChoiceSetID forName:SDLRPCParameterNameInteractionChoiceSetId]; } - (NSNumber *)interactionChoiceSetID { - return [parameters sdl_objectForName:SDLNameInteractionChoiceSetId]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameInteractionChoiceSetId ofClass:NSNumber.class error:&error]; } - (void)setChoiceSet:(NSArray *)choiceSet { - [parameters sdl_setObject:choiceSet forName:SDLNameChoiceSet]; + [self.parameters sdl_setObject:choiceSet forName:SDLRPCParameterNameChoiceSet]; } - (NSArray *)choiceSet { - return [parameters sdl_objectsForName:SDLNameChoiceSet ofClass:SDLChoice.class]; + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameChoiceSet ofClass:SDLChoice.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m index b9de5f3..37b8bad 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m @@ -5,17 +5,21 @@ #import "SDLCreateInteractionChoiceSetResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLCreateInteractionChoiceSetResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameCreateInteractionChoiceSet]) { + if (self = [super initWithName:SDLRPCFunctionNameCreateInteractionChoiceSet]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.h new file mode 100644 index 0000000..ad4475e --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.h @@ -0,0 +1,72 @@ +// +// SDLCreateWindow.h +// SmartDeviceLink +// + +#import "SDLRPCRequest.h" +#import "SDLWindowType.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + Create a new window on the display with the specified window type. + @discussion Windows of different types like MAIN or WIDGET windows can be created. Every application will have a pre-created MAIN window available. A widget is a small window that the app can create to provide information and soft buttons for quick app control. Widgets can be created depending on the capabilities of the system. Widgets can be associated with a specific App Service type such as `MEDIA` or `NAVIGATION`. As an example if a `MEDIA` app becomes active, this app becomes audible and is allowed to play audio. If the media app has created a widget with `MEDIA` type associated, this widget will automatically be activated together with the app. + + @since SDL 6.0 + */ +@interface SDLCreateWindow : SDLRPCRequest + + +/** + Constructor with the required parameters + + @param windowId The type of the window to be created. Main window or widget. + @param windowName The window name to be used by the HMI. @see windowName + @param windowType The type of the window to be created. Main window or widget. + */ +- (instancetype)initWithId:(NSUInteger)windowId windowName:(NSString *)windowName windowType:(SDLWindowType)windowType; + +/** + Convinience constructor with all the parameters. + + @param windowId The type of the window to be created. Main window or widget. + @param windowName The window name to be used by the HMI. @see windowName + @param windowType The type of the window to be created. Main window or widget. + @param associatedServiceType Allows an app to create a widget related to a specific service type. @see associatedServiceType + @param duplicateUpdatesFromWindowID Optional parameter. Specify whether the content sent to an existing window should be duplicated to the created window. If there isn't a window with the ID, the request will be rejected with `INVALID_DATA`. + */ +- (instancetype)initWithId:(NSUInteger)windowId windowName:(NSString *)windowName windowType:(SDLWindowType)windowType associatedServiceType:(nullable NSString *)associatedServiceType duplicateUpdatesFromWindowID:(NSUInteger)duplicateUpdatesFromWindowID; + + +/** + A unique ID to identify the window. + @discussion The value of '0' will always be the default main window on the main display and should not be used in this context as it will already be created for the app. See PredefinedWindows enum. Creating a window with an ID that is already in use will be rejected with `INVALID_ID`. + */ +@property (strong, nonatomic) NSNumber *windowID; + +/** + The window name to be used by the HMI. + @discussion The name of the pre-created default window will match the app name. Multiple apps can share the same window name except for the default main window. Creating a window with a name which is already in use by the app will result in `DUPLICATE_NAME`. MaxLength 100. + */ +@property (strong, nonatomic) NSString *windowName; + +/** + The type of the window to be created. Main window or widget. + */ +@property (strong, nonatomic) SDLWindowType type; + +/** + Allows an app to create a widget related to a specific service type. + @discussion As an example if a `MEDIA` app becomes active, this app becomes audible and is allowed to play audio. Actions such as skip or play/pause will be directed to this active media app. In case of widgets, the system can provide a single "media" widget which will act as a placeholder for the active media app. It is only allowed to have one window per service type. This means that a media app can only have a single MEDIA widget. Still the app can create widgets omitting this parameter. Those widgets would be available as app specific widgets that are permanently included in the HMI. This parameter is related to widgets only. The default main window, which is pre-created during app registration, will be created based on the HMI types specified in the app registration request. + */ +@property (strong, nonatomic, nullable) NSString *associatedServiceType; + + +/** + Optional parameter. Specify whether the content sent to an existing window should be duplicated to the created window. If there isn't a window with the ID, the request will be rejected with `INVALID_DATA`. + */ +@property (strong, nonatomic, nullable) NSNumber *duplicateUpdatesFromWindowID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.m new file mode 100644 index 0000000..b6b55ec --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.m @@ -0,0 +1,96 @@ +// +// SDLCreateWindow.m +// SmartDeviceLink + +#import "SDLCreateWindow.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLCreateWindow + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameCreateWindow]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithId:(NSUInteger)windowId windowName:(NSString *)windowName windowType:(SDLWindowType)windowType { + self = [self init]; + if (!self) { + return nil; + } + self.windowID = @(windowId); + self.windowName = windowName; + self.type = windowType; + return self; +} + +- (instancetype)initWithId:(NSUInteger)windowId windowName:(NSString *)windowName windowType:(SDLWindowType)windowType associatedServiceType:(nullable NSString *)associatedServiceType duplicateUpdatesFromWindowID:(NSUInteger)duplicateUpdatesFromWindowID { + self = [self initWithId:windowId windowName:windowName windowType:windowType]; + if (!self) { + return nil; + } + self.associatedServiceType = associatedServiceType; + self.duplicateUpdatesFromWindowID = @(duplicateUpdatesFromWindowID); + return self; +} + + +#pragma mark - Getters / Setters + +- (void)setWindowID:(NSNumber *)windowID { + [self.parameters sdl_setObject:windowID forName:SDLRPCParameterNameWindowId]; +} + +- (NSNumber *)windowID { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:&error]; +} + +- (void)setWindowName:(NSString *)windowName { + [self.parameters sdl_setObject:windowName forName:SDLRPCParameterNameWindowName]; +} + +- (NSString *)windowName { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowName ofClass:NSString.class error:&error]; +} + + +- (void)setType:(SDLWindowType)type { + [self.parameters sdl_setObject:type forName:SDLRPCParameterNameType]; +} + +- (SDLWindowType)type { + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameType error:&error]; +} + +- (void)setAssociatedServiceType:(nullable NSString *)associatedServiceType { + [self.parameters sdl_setObject:associatedServiceType forName:SDLRPCParameterNameAssociatedServiceType]; +} + +- (nullable NSString *)associatedServiceType { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAssociatedServiceType ofClass:NSString.class error:&error]; +} + +- (void)setDuplicateUpdatesFromWindowID:(nullable NSNumber *)duplicateUpdatesFromWindowID { + [self.parameters sdl_setObject:duplicateUpdatesFromWindowID forName:SDLRPCParameterNameDuplicateUpdatesFromWindowID]; +} + +- (nullable NSNumber *)duplicateUpdatesFromWindowID { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDuplicateUpdatesFromWindowID ofClass:NSNumber.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.h new file mode 100644 index 0000000..62684e1 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.h @@ -0,0 +1,16 @@ +// +// SDLCreateWindowResponse.h +// SmartDeviceLink + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Response to SDLCreateWindow +/// +/// @since RPC 6.0 +@interface SDLCreateWindowResponse : SDLRPCResponse + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.m new file mode 100644 index 0000000..a9f6a30 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.m @@ -0,0 +1,23 @@ +// +// SDLCreateWindowResponse.m +// SmartDeviceLink + +#import "SDLCreateWindowResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +@implementation SDLCreateWindowResponse + + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameCreateWindow]) { + } + return self; +} +#pragma clang diagnostic pop + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDIDResult.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDIDResult.m index 0d0e5d3..4f661d8 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDIDResult.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDIDResult.m @@ -4,34 +4,36 @@ #import "SDLDIDResult.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDIDResult - (void)setResultCode:(SDLVehicleDataResultCode)resultCode { - [store sdl_setObject:resultCode forName:SDLNameResultCode]; + [self.store sdl_setObject:resultCode forName:SDLRPCParameterNameResultCode]; } - (SDLVehicleDataResultCode)resultCode { - return [store sdl_objectForName:SDLNameResultCode]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameResultCode error:&error]; } - (void)setDidLocation:(NSNumber *)didLocation { - [store sdl_setObject:didLocation forName:SDLNameDIDLocation]; + [self.store sdl_setObject:didLocation forName:SDLRPCParameterNameDIDLocation]; } - (NSNumber *)didLocation { - return [store sdl_objectForName:SDLNameDIDLocation]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameDIDLocation ofClass:NSNumber.class error:&error]; } - (void)setData:(nullable NSString *)data { - [store sdl_setObject:data forName:SDLNameData]; + [self.store sdl_setObject:data forName:SDLRPCParameterNameData]; } - (nullable NSString *)data { - return [store sdl_objectForName:SDLNameData]; + return [self.store sdl_objectForName:SDLRPCParameterNameData ofClass:NSString.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.h index a7c6e36..905012f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.h @@ -10,12 +10,46 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLDateTime : SDLRPCStruct +/// Convenience init for creating a date +/// +/// @param hour Hour part of time +/// @param minute Minutes part of time +/// @return An SDLDateTime object - (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute; +/// Convenience init for creating a date +/// +/// @param hour Hour part of time +/// @param minute Minutes part of time +/// @param second Seconds part of time +/// @param millisecond Milliseconds part of time +/// @return An SDLDateTime object - (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond; +/// Convenience init for creating a date +/// +/// @param hour Hour part of time +/// @param minute Minutes part of time +/// @param second Seconds part of time +/// @param millisecond Milliseconds part of time +/// @param day Day of the month +/// @param month Month of the year +/// @param year The year in YYYY format +/// @return An SDLDateTime object - (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond day:(UInt8)day month:(UInt8)month year:(UInt16)year; +/// Convenience init for creating a date with all properties +/// +/// @param hour Hour part of time +/// @param minute Minutes part of time +/// @param second Seconds part of time +/// @param millisecond Milliseconds part of time +/// @param day Day of the month +/// @param month Month of the year +/// @param year The year in YYYY format +/// @param timezoneMinuteOffset Time zone offset in Min with regard to UTC +/// @param timezoneHourOffset Time zone offset in Hours with regard to UTC +/// @return An SDLDateTime object - (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond day:(UInt8)day month:(UInt8)month year:(UInt16)year timezoneMinuteOffset:(UInt8)timezoneMinuteOffset timezoneHourOffset:(int)timezoneHourOffset; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.m index 88c691c..c5a4521 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.m @@ -4,7 +4,7 @@ #import "SDLDateTime.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" @implementation SDLDateTime @@ -59,75 +59,84 @@ - (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)seco } - (void)setMillisecond:(NSNumber *)millisecond { - [store sdl_setObject:millisecond forName:SDLNameMillisecond]; + [self.store sdl_setObject:millisecond forName:SDLRPCParameterNameMillisecond]; } - (NSNumber *)millisecond { - return [store sdl_objectForName:SDLNameMillisecond]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMillisecond ofClass:NSNumber.class error:&error]; } - (void)setSecond:(NSNumber *)second { - [store sdl_setObject:second forName:SDLNameSecond]; + [self.store sdl_setObject:second forName:SDLRPCParameterNameSecond]; } - (NSNumber *)second { - return [store sdl_objectForName:SDLNameSecond]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameSecond ofClass:NSNumber.class error:&error]; } - (void)setMinute:(NSNumber *)minute { - [store sdl_setObject:minute forName:SDLNameMinute]; + [self.store sdl_setObject:minute forName:SDLRPCParameterNameMinute]; } - (NSNumber *)minute { - return [store sdl_objectForName:SDLNameMinute]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMinute ofClass:NSNumber.class error:&error]; } - (void)setHour:(NSNumber *)hour { - [store sdl_setObject:hour forName:SDLNameHour]; + [self.store sdl_setObject:hour forName:SDLRPCParameterNameHour]; } - (NSNumber *)hour { - return [store sdl_objectForName:SDLNameHour]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameHour ofClass:NSNumber.class error:&error]; } - (void)setDay:(NSNumber *)day { - [store sdl_setObject:day forName:SDLNameDay]; + [self.store sdl_setObject:day forName:SDLRPCParameterNameDay]; } - (NSNumber *)day { - return [store sdl_objectForName:SDLNameDay]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameDay ofClass:NSNumber.class error:&error]; } - (void)setMonth:(NSNumber *)month { - [store sdl_setObject:month forName:SDLNameMonth]; + [self.store sdl_setObject:month forName:SDLRPCParameterNameMonth]; } - (NSNumber *)month { - return [store sdl_objectForName:SDLNameMonth]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMonth ofClass:NSNumber.class error:&error]; } - (void)setYear:(NSNumber *)year { - [store sdl_setObject:year forName:SDLNameYear]; + [self.store sdl_setObject:year forName:SDLRPCParameterNameYear]; } - (NSNumber *)year { - return [store sdl_objectForName:SDLNameYear]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameYear ofClass:NSNumber.class error:&error]; } - (void)setTimezoneMinuteOffset:(NSNumber *)timezoneMinuteOffset { - [store sdl_setObject:timezoneMinuteOffset forName:SDLNameTimezoneMinuteOffset]; + [self.store sdl_setObject:timezoneMinuteOffset forName:SDLRPCParameterNameTimezoneMinuteOffset]; } - (NSNumber *)timezoneMinuteOffset { - return [store sdl_objectForName:SDLNameTimezoneMinuteOffset]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameTimezoneMinuteOffset ofClass:NSNumber.class error:&error]; } - (void)setTimezoneHourOffset:(NSNumber *)timezoneHourOffset { - [store sdl_setObject:timezoneHourOffset forName:SDLNameTimezoneHourOffset]; + [self.store sdl_setObject:timezoneHourOffset forName:SDLRPCParameterNameTimezoneHourOffset]; } - (NSNumber *)timezoneHourOffset { - return [store sdl_objectForName:SDLNameTimezoneHourOffset]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameTimezoneHourOffset ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteChoicesOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteChoicesOperation.m index 46b7c0d..027c549 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteChoicesOperation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteChoicesOperation.m @@ -23,6 +23,7 @@ @interface SDLChoiceCell() @interface SDLDeleteChoicesOperation() +@property (strong, nonatomic) NSUUID *operationId; @property (strong, nonatomic) NSSet *cellsToDelete; @property (weak, nonatomic) id connectionManager; @property (copy, nonatomic, nullable) NSError *internalError; @@ -37,12 +38,14 @@ - (instancetype)initWithConnectionManager:(id)connecti _connectionManager = connectionManager; _cellsToDelete = cells; + _operationId = [NSUUID UUID]; return self; } - (void)start { [super start]; + if (self.isCancelled) { return; } [self sdl_sendDeletions]; } @@ -71,7 +74,7 @@ - (void)sdl_sendDeletions { #pragma mark - Property Overrides - (nullable NSString *)name { - return @"com.sdl.choicesetmanager.deleteChoices"; + return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; } - (NSOperationQueuePriority)queuePriority { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.h index 3d7e458..f6b059c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.h @@ -21,6 +21,10 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLDeleteCommand : SDLRPCRequest +/// Convenience init to remove a command from the menu +/// +/// @param commandId The Command ID that identifies the Command to be deleted from Command Menu +/// @return An SDLDeleteCommand object - (instancetype)initWithId:(UInt32)commandId; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.m index d96276d..563cde4 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.m @@ -5,17 +5,21 @@ #import "SDLDeleteCommand.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteCommand +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteCommand]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteCommand]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithId:(UInt32)commandId { self = [self init]; @@ -29,11 +33,12 @@ - (instancetype)initWithId:(UInt32)commandId { } - (void)setCmdID:(NSNumber *)cmdID { - [parameters sdl_setObject:cmdID forName:SDLNameCommandId]; + [self.parameters sdl_setObject:cmdID forName:SDLRPCParameterNameCommandId]; } - (NSNumber *)cmdID { - return [parameters sdl_objectForName:SDLNameCommandId]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameCommandId ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommandResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommandResponse.m index f956c02..57460a8 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommandResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommandResponse.m @@ -5,17 +5,21 @@ #import "SDLDeleteCommandResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteCommandResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteCommand]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteCommand]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.h index 927d2a7..04e1814 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.h @@ -17,6 +17,10 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLDeleteFile : SDLRPCRequest +/// Convenience init to delete a file +/// +/// @param fileName A file reference name +/// @return An SDLDeleteFile object - (instancetype)initWithFileName:(NSString *)fileName; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.m index b7a8929..8c1a057 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.m @@ -5,17 +5,21 @@ #import "SDLDeleteFile.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteFile +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteFile]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteFile]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithFileName:(NSString *)fileName { self = [self init]; @@ -29,11 +33,12 @@ - (instancetype)initWithFileName:(NSString *)fileName { } - (void)setSyncFileName:(NSString *)syncFileName { - [parameters sdl_setObject:syncFileName forName:SDLNameSyncFileName]; + [self.parameters sdl_setObject:syncFileName forName:SDLRPCParameterNameSyncFileName]; } - (NSString *)syncFileName { - return [parameters sdl_objectForName:SDLNameSyncFileName]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncFileName ofClass:NSString.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.h index 78563c5..9252ae7 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.h @@ -29,6 +29,21 @@ NS_ASSUME_NONNULL_BEGIN */ - (instancetype)initWithFileName:(NSString *)fileName connectionManager:(id)connectionManager completionHandler:(nullable SDLFileManagerDeleteCompletionHandler)completionHandler; +/** + The name of the file to be deleted on the remote system. + */ +@property (copy, nonatomic, readonly) NSString *fileName; + +/** + The connection manager which will handle transporting the request to the remote system. + */ +@property (weak, nonatomic, readonly) id connectionManager; + +/** + A completion handler to be called when the delete finishes. + */ +@property (copy, nonatomic, nullable, readonly) SDLFileManagerDeleteCompletionHandler completionHandler; + @end -NS_ASSUME_NONNULL_END \ No newline at end of file +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.m index 4d974a2..e7ce7e2 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.m @@ -40,6 +40,7 @@ - (instancetype)initWithFileName:(NSString *)fileName connectionManager:(id *)spaceAvailable { - [parameters sdl_setObject:spaceAvailable forName:SDLNameSpaceAvailable]; + [self.parameters sdl_setObject:spaceAvailable forName:SDLRPCParameterNameSpaceAvailable]; } - (nullable NSNumber *)spaceAvailable { - return [parameters sdl_objectForName:SDLNameSpaceAvailable]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSpaceAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h index 3bef8d7..19bbc06 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h @@ -23,6 +23,10 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLDeleteInteractionChoiceSet : SDLRPCRequest +/// Convenience init to delete a choice set +/// +/// @param choiceId A unique ID that identifies the Choice Set +/// @return An SDLDeleteInteractionChoiceSet object - (instancetype)initWithId:(UInt32)choiceId; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m index a1f2585..2017414 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m @@ -5,17 +5,21 @@ #import "SDLDeleteInteractionChoiceSet.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteInteractionChoiceSet +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteInteractionChoiceSet]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteInteractionChoiceSet]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithId:(UInt32)choiceId { self = [self init]; @@ -29,11 +33,12 @@ - (instancetype)initWithId:(UInt32)choiceId { } - (void)setInteractionChoiceSetID:(NSNumber *)interactionChoiceSetID { - [parameters sdl_setObject:interactionChoiceSetID forName:SDLNameInteractionChoiceSetId]; + [self.parameters sdl_setObject:interactionChoiceSetID forName:SDLRPCParameterNameInteractionChoiceSetId]; } - (NSNumber *)interactionChoiceSetID { - return [parameters sdl_objectForName:SDLNameInteractionChoiceSetId]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameInteractionChoiceSetId ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m index e6cc631..abc14d7 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m @@ -5,17 +5,21 @@ #import "SDLDeleteInteractionChoiceSetResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteInteractionChoiceSetResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteInteractionChoiceSet]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteInteractionChoiceSet]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.h index c6562e9..5f9bf73 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.h @@ -21,6 +21,10 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLDeleteSubMenu : SDLRPCRequest +/// Convenience init to delete a submenu +/// +/// @param menuId Identifies the SDLSubMenu to be delete +/// @return An SDLDeleteSubMenu object - (instancetype)initWithId:(UInt32)menuId; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.m index b03372c..2fd2910 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.m @@ -5,17 +5,21 @@ #import "SDLDeleteSubMenu.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteSubMenu +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteSubMenu]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteSubMenu]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithId:(UInt32)menuId { self = [self init]; @@ -29,11 +33,12 @@ - (instancetype)initWithId:(UInt32)menuId { } - (void)setMenuID:(NSNumber *)menuID { - [parameters sdl_setObject:menuID forName:SDLNameMenuId]; + [self.parameters sdl_setObject:menuID forName:SDLRPCParameterNameMenuId]; } - (NSNumber *)menuID { - return [parameters sdl_objectForName:SDLNameMenuId]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuId ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenuResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenuResponse.m index 5594763..d9c3355 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenuResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenuResponse.m @@ -5,17 +5,21 @@ #import "SDLDeleteSubMenuResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteSubMenuResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteSubMenu]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteSubMenu]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.h new file mode 100644 index 0000000..2561b45 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.h @@ -0,0 +1,32 @@ +// +// SDLDeleteWindow.h +// SmartDeviceLink + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + Deletes previously created window of the SDL application. + + @since SDL 6.0 + */ +@interface SDLDeleteWindow : SDLRPCRequest + +/** + @param windowId A unique ID to identify the window. The value of '0' will always be the default main window on the main display and cannot be deleted. + */ +- (instancetype)initWithId:(NSUInteger)windowId; + +/** + A unique ID to identify the window. + + The value of '0' will always be the default main window on the main display and cannot be deleted. + + @see PredefinedWindows enum. + */ +@property (strong, nonatomic) NSNumber *windowID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.m new file mode 100644 index 0000000..d4f6189 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.m @@ -0,0 +1,40 @@ +// +// SDLDeleteWindow.m +// SmartDeviceLink + +#import "SDLDeleteWindow.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +@implementation SDLDeleteWindow + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameDeleteWindow]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithId:(NSUInteger)windowId { + self = [self init]; + if (!self) { + return nil; + } + self.windowID = @(windowId); + return self; +} + +- (void)setWindowID:(NSNumber *)windowID { + [self.parameters sdl_setObject:windowID forName:SDLRPCParameterNameWindowId]; +} + +- (NSNumber *)windowID { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:&error]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.h new file mode 100644 index 0000000..e2308bd --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.h @@ -0,0 +1,21 @@ +// +// SDLDeleteWindowResponse.h +// SmartDeviceLink +// +// Created by cssoeutest1 on 11.07.19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Response to DeleteWindow +/// +/// @since RPC 6.0 +@interface SDLDeleteWindowResponse : SDLRPCResponse + +@end + +NS_ASSUME_NONNULL_END + diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.m new file mode 100644 index 0000000..c7cf300 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.m @@ -0,0 +1,26 @@ +// +// SDLDeleteWindowResponse.m +// SmartDeviceLink +// +// Created by cssoeutest1 on 11.07.19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLDeleteWindowResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +@implementation SDLDeleteWindowResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameDeleteWindow]) { + } + return self; +} +#pragma clang diagnostic pop + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.h index ba43d32..f30e2d5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.h @@ -10,6 +10,9 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLDeviceInfo : SDLRPCStruct +/// Convenience init. Object will contain all information about the connected device automatically. +/// +/// @return An SDLDeviceInfo object + (instancetype)currentDevice; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.m index 8b321bf..a28f275 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.m @@ -8,7 +8,7 @@ #import #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -30,51 +30,51 @@ + (instancetype)currentDevice { } - (void)setHardware:(nullable NSString *)hardware { - [store sdl_setObject:hardware forName:SDLNameHardware]; + [self.store sdl_setObject:hardware forName:SDLRPCParameterNameHardware]; } - (nullable NSString *)hardware { - return [store sdl_objectForName:SDLNameHardware]; + return [self.store sdl_objectForName:SDLRPCParameterNameHardware ofClass:NSString.class error:nil]; } - (void)setFirmwareRev:(nullable NSString *)firmwareRev { - [store sdl_setObject:firmwareRev forName:SDLNameFirmwareRevision]; + [self.store sdl_setObject:firmwareRev forName:SDLRPCParameterNameFirmwareRevision]; } - (nullable NSString *)firmwareRev { - return [store sdl_objectForName:SDLNameFirmwareRevision]; + return [self.store sdl_objectForName:SDLRPCParameterNameFirmwareRevision ofClass:NSString.class error:nil]; } - (void)setOs:(nullable NSString *)os { - [store sdl_setObject:os forName:SDLNameOS]; + [self.store sdl_setObject:os forName:SDLRPCParameterNameOS]; } - (nullable NSString *)os { - return [store sdl_objectForName:SDLNameOS]; + return [self.store sdl_objectForName:SDLRPCParameterNameOS ofClass:NSString.class error:nil]; } - (void)setOsVersion:(nullable NSString *)osVersion { - [store sdl_setObject:osVersion forName:SDLNameOSVersion]; + [self.store sdl_setObject:osVersion forName:SDLRPCParameterNameOSVersion]; } - (nullable NSString *)osVersion { - return [store sdl_objectForName:SDLNameOSVersion]; + return [self.store sdl_objectForName:SDLRPCParameterNameOSVersion ofClass:NSString.class error:nil]; } - (void)setCarrier:(nullable NSString *)carrier { - [store sdl_setObject:carrier forName:SDLNameCarrier]; + [self.store sdl_setObject:carrier forName:SDLRPCParameterNameCarrier]; } - (nullable NSString *)carrier { - return [store sdl_objectForName:SDLNameCarrier]; + return [self.store sdl_objectForName:SDLRPCParameterNameCarrier ofClass:NSString.class error:nil]; } - (void)setMaxNumberRFCOMMPorts:(nullable NSNumber *)maxNumberRFCOMMPorts { - [store sdl_setObject:maxNumberRFCOMMPorts forName:SDLNameMaxNumberRFCOMMPorts]; + [self.store sdl_setObject:maxNumberRFCOMMPorts forName:SDLRPCParameterNameMaxNumberRFCOMMPorts]; } - (nullable NSNumber *)maxNumberRFCOMMPorts { - return [store sdl_objectForName:SDLNameMaxNumberRFCOMMPorts]; + return [self.store sdl_objectForName:SDLRPCParameterNameMaxNumberRFCOMMPorts ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceStatus.m index ca449c5..2b91012 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceStatus.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceStatus.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLDeviceLevelStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLPrimaryAudioSource.h" NS_ASSUME_NONNULL_BEGIN @@ -13,91 +13,102 @@ @implementation SDLDeviceStatus - (void)setVoiceRecOn:(NSNumber *)voiceRecOn { - [store sdl_setObject:voiceRecOn forName:SDLNameVoiceRecognitionOn]; + [self.store sdl_setObject:voiceRecOn forName:SDLRPCParameterNameVoiceRecognitionOn]; } - (NSNumber *)voiceRecOn { - return [store sdl_objectForName:SDLNameVoiceRecognitionOn]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameVoiceRecognitionOn ofClass:NSNumber.class error:&error]; } - (void)setBtIconOn:(NSNumber *)btIconOn { - [store sdl_setObject:btIconOn forName:SDLNameBluetoothIconOn]; + [self.store sdl_setObject:btIconOn forName:SDLRPCParameterNameBluetoothIconOn]; } - (NSNumber *)btIconOn { - return [store sdl_objectForName:SDLNameBluetoothIconOn]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameBluetoothIconOn ofClass:NSNumber.class error:&error]; } - (void)setCallActive:(NSNumber *)callActive { - [store sdl_setObject:callActive forName:SDLNameCallActive]; + [self.store sdl_setObject:callActive forName:SDLRPCParameterNameCallActive]; } - (NSNumber *)callActive { - return [store sdl_objectForName:SDLNameCallActive]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameCallActive ofClass:NSNumber.class error:&error]; } - (void)setPhoneRoaming:(NSNumber *)phoneRoaming { - [store sdl_setObject:phoneRoaming forName:SDLNamePhoneRoaming]; + [self.store sdl_setObject:phoneRoaming forName:SDLRPCParameterNamePhoneRoaming]; } - (NSNumber *)phoneRoaming { - return [store sdl_objectForName:SDLNamePhoneRoaming]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNamePhoneRoaming ofClass:NSNumber.class error:&error]; } - (void)setTextMsgAvailable:(NSNumber *)textMsgAvailable { - [store sdl_setObject:textMsgAvailable forName:SDLNameTextMessageAvailable]; + [self.store sdl_setObject:textMsgAvailable forName:SDLRPCParameterNameTextMessageAvailable]; } - (NSNumber *)textMsgAvailable { - return [store sdl_objectForName:SDLNameTextMessageAvailable]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameTextMessageAvailable ofClass:NSNumber.class error:&error]; } - (void)setBattLevelStatus:(SDLDeviceLevelStatus )battLevelStatus { - [store sdl_setObject:battLevelStatus forName:SDLNameBatteryLevelStatus]; + [self.store sdl_setObject:battLevelStatus forName:SDLRPCParameterNameBatteryLevelStatus]; } - (SDLDeviceLevelStatus)battLevelStatus { - return [store sdl_objectForName:SDLNameBatteryLevelStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameBatteryLevelStatus error:&error]; } - (void)setStereoAudioOutputMuted:(NSNumber *)stereoAudioOutputMuted { - [store sdl_setObject:stereoAudioOutputMuted forName:SDLNameStereoAudioOutputMuted]; + [self.store sdl_setObject:stereoAudioOutputMuted forName:SDLRPCParameterNameStereoAudioOutputMuted]; } - (NSNumber *)stereoAudioOutputMuted { - return [store sdl_objectForName:SDLNameStereoAudioOutputMuted]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameStereoAudioOutputMuted ofClass:NSNumber.class error:&error]; } - (void)setMonoAudioOutputMuted:(NSNumber *)monoAudioOutputMuted { - [store sdl_setObject:monoAudioOutputMuted forName:SDLNameMonoAudioOutputMuted]; + [self.store sdl_setObject:monoAudioOutputMuted forName:SDLRPCParameterNameMonoAudioOutputMuted]; } - (NSNumber *)monoAudioOutputMuted { - return [store sdl_objectForName:SDLNameMonoAudioOutputMuted]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMonoAudioOutputMuted ofClass:NSNumber.class error:&error]; } - (void)setSignalLevelStatus:(SDLDeviceLevelStatus)signalLevelStatus { - [store sdl_setObject:signalLevelStatus forName:SDLNameSignalLevelStatus]; + [self.store sdl_setObject:signalLevelStatus forName:SDLRPCParameterNameSignalLevelStatus]; } - (SDLDeviceLevelStatus)signalLevelStatus { - return [store sdl_objectForName:SDLNameSignalLevelStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameSignalLevelStatus error:&error]; } - (void)setPrimaryAudioSource:(SDLPrimaryAudioSource)primaryAudioSource { - [store sdl_setObject:primaryAudioSource forName:SDLNamePrimaryAudioSource]; + [self.store sdl_setObject:primaryAudioSource forName:SDLRPCParameterNamePrimaryAudioSource]; } - (SDLPrimaryAudioSource)primaryAudioSource { - return [store sdl_objectForName:SDLNamePrimaryAudioSource]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNamePrimaryAudioSource error:&error]; } - (void)setECallEventActive:(NSNumber *)eCallEventActive { - [store sdl_setObject:eCallEventActive forName:SDLNameECallEventActive]; + [self.store sdl_setObject:eCallEventActive forName:SDLRPCParameterNameECallEventActive]; } - (NSNumber *)eCallEventActive { - return [store sdl_objectForName:SDLNameECallEventActive]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameECallEventActive ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.h index c4ede3b..385c72b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.h @@ -14,6 +14,12 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLDiagnosticMessage : SDLRPCRequest +/// Convenience init +/// +/// @param targetId Name of target ECU +/// @param length Length of message (in bytes) +/// @param data Array of bytes comprising CAN message +/// @return An SDLDiagnosticMessage object - (instancetype)initWithTargetId:(UInt16)targetId length:(UInt16)length data:(NSArray *> *)data; /** @@ -35,7 +41,7 @@ NS_ASSUME_NONNULL_BEGIN * * Required, Array of NSNumber (Integers), Array size 1 - 65535, Integer Size 0 - 255 */ -@property (strong, nonatomic) NSArray *> *messageData; +@property (strong, nonatomic) NSArray *messageData; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.m index dff509a..adef6c9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.m @@ -5,17 +5,21 @@ #import "SDLDiagnosticMessage.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDiagnosticMessage +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameDiagnosticMessage]) { + if (self = [super initWithName:SDLRPCFunctionNameDiagnosticMessage]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithTargetId:(UInt16)targetId length:(UInt16)length data:(NSArray *)data { self = [self init]; @@ -31,27 +35,30 @@ - (instancetype)initWithTargetId:(UInt16)targetId length:(UInt16)length data:(NS } - (void)setTargetID:(NSNumber *)targetID { - [parameters sdl_setObject:targetID forName:SDLNameTargetId]; + [self.parameters sdl_setObject:targetID forName:SDLRPCParameterNameTargetId]; } - (NSNumber *)targetID { - return [parameters sdl_objectForName:SDLNameTargetId]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTargetId ofClass:NSNumber.class error:&error]; } - (void)setMessageLength:(NSNumber *)messageLength { - [parameters sdl_setObject:messageLength forName:SDLNameMessageLength]; + [self.parameters sdl_setObject:messageLength forName:SDLRPCParameterNameMessageLength]; } - (NSNumber *)messageLength { - return [parameters sdl_objectForName:SDLNameMessageLength]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMessageLength ofClass:NSNumber.class error:&error]; } -- (void)setMessageData:(NSArray *> *)messageData { - [parameters sdl_setObject:messageData forName:SDLNameMessageData]; +- (void)setMessageData:(NSArray *)messageData { + [self.parameters sdl_setObject:messageData forName:SDLRPCParameterNameMessageData]; } -- (NSArray *> *)messageData { - return [parameters sdl_objectForName:SDLNameMessageData]; +- (NSArray *)messageData { + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameMessageData ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.h index f78dbe2..2912bea 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.h @@ -16,9 +16,9 @@ NS_ASSUME_NONNULL_BEGIN /** Array of bytes comprising CAN message result. - Required + Optional */ -@property (strong, nonatomic) NSArray *> *messageDataResult; +@property (nullable, strong, nonatomic) NSArray *messageDataResult; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.m index fac8876..dbfaa03 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.m @@ -4,24 +4,29 @@ #import "SDLDiagnosticMessageResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDiagnosticMessageResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameDiagnosticMessage]) { + if (self = [super initWithName:SDLRPCFunctionNameDiagnosticMessage]) { } return self; } +#pragma clang diagnostic pop -- (void)setMessageDataResult:(NSArray *> *)messageDataResult { - [parameters sdl_setObject:messageDataResult forName:SDLNameMessageDataResult]; +- (void)setMessageDataResult:(nullable NSArray *)messageDataResult { + [self.parameters sdl_setObject:messageDataResult forName:SDLRPCParameterNameMessageDataResult]; } -- (NSArray *> *)messageDataResult { - return [parameters sdl_objectForName:SDLNameMessageDataResult]; +- (nullable NSArray *)messageDataResult { + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameMessageDataResult ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.h index 292ab7a..44c6b77 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.h @@ -14,6 +14,10 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLDialNumber : SDLRPCRequest +/// Convenience init to initiate a dial number request +/// +/// @param number Up to 40 character string representing the phone number. All characters stripped except for '0'-'9', '*', '#', ',', ';', and '+'. +/// @return An SDLDialNumber object - (instancetype)initWithNumber:(NSString *)number; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.m index 7930892..eaed1eb 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.m @@ -5,15 +5,19 @@ #import "SDLDialNumber.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" @implementation SDLDialNumber +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameDialNumber]) { + if (self = [super initWithName:SDLRPCFunctionNameDialNumber]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithNumber:(NSString *)number { self = [self init]; @@ -27,11 +31,12 @@ - (instancetype)initWithNumber:(NSString *)number { } - (void)setNumber:(NSString *)number { - [parameters sdl_setObject:number forName:SDLNameNumber]; + [self.parameters sdl_setObject:number forName:SDLRPCParameterNameNumber]; } - (NSString *)number { - return [parameters sdl_objectForName:SDLNameNumber]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameNumber ofClass:NSString.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumberResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumberResponse.m index b791e2c..b8073cf 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumberResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumberResponse.m @@ -5,17 +5,21 @@ #import "SDLDialNumberResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDialNumberResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameDialNumber]) { + if (self = [super initWithName:SDLRPCFunctionNameDialNumber]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.h new file mode 100644 index 0000000..7f21ca3 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.h @@ -0,0 +1,26 @@ +// +// SDLDirection.h +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * A navigation direction. + */ +typedef SDLEnum SDLDirection SDL_SWIFT_ENUM; + +/** + * Direction left + */ +extern SDLDirection const SDLDirectionLeft; + +/** + * Direction right + */ +extern SDLDirection const SDLDirectionRight; + + diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.m new file mode 100644 index 0000000..1a11c77 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.m @@ -0,0 +1,12 @@ +// +// SDLDirection.m +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLDirection.h" + +SDLDirection const SDLDirectionLeft = @"LEFT"; +SDLDirection const SDLDirectionRight = @"RIGHT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities+ShowManagerExtensions.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities+ShowManagerExtensions.h deleted file mode 100644 index 375fc0e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities+ShowManagerExtensions.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// SDLDisplayCapabilities+ShowManagerExtensions.h -// SmartDeviceLink -// -// Created by Joel Fischer on 2/28/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLDisplayCapabilities.h" -#import "SDLImageFieldName.h" -#import "SDLTextFieldName.h" - -@interface SDLDisplayCapabilities (ShowManagerExtensions) - -@property (assign, nonatomic, readonly) NSUInteger maxNumberOfMainFieldLines; - -- (BOOL)hasTextFieldOfName:(SDLTextFieldName)name; -- (BOOL)hasImageFieldOfName:(SDLImageFieldName)name; - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.h index b278ef3..b564437 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.h @@ -75,11 +75,11 @@ NS_ASSUME_NONNULL_BEGIN @property (strong, nonatomic) NSNumber *graphicSupported; /** - * Number of presets the screen supports + * An array of all predefined persistent display templates available on the head unit. * - * @discussion The number of on-screen custom presets available (if any) + * Optional, Array of String, max string size 100, 0 - 100 objects, since SDL 3.0 * - * Optional, Array of String, max string size 100, 0 - 100 objects + * See SDLPredefinedLayout */ @property (nullable, strong, nonatomic) NSArray *templatesAvailable; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.m index c161543..b85208a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.m @@ -4,7 +4,7 @@ #import "SDLDisplayCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLImageField.h" #import "SDLScreenParams.h" #import "SDLTextField.h" @@ -14,75 +14,79 @@ @implementation SDLDisplayCapabilities - (void)setDisplayType:(SDLDisplayType)displayType { - [store sdl_setObject:displayType forName:SDLNameDisplayType]; + [self.store sdl_setObject:displayType forName:SDLRPCParameterNameDisplayType]; } - (SDLDisplayType)displayType { - return [store sdl_objectForName:SDLNameDisplayType]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameDisplayType error:&error]; } - (void)setDisplayName:(nullable NSString *)displayName { - [store sdl_setObject:displayName forName:SDLNameDisplayName]; + [self.store sdl_setObject:displayName forName:SDLRPCParameterNameDisplayName]; } - (nullable NSString *)displayName { - return [store sdl_objectForName:SDLNameDisplayName]; + return [self.store sdl_objectForName:SDLRPCParameterNameDisplayName ofClass:NSString.class error:nil]; } - (void)setTextFields:(NSArray *)textFields { - [store sdl_setObject:textFields forName:SDLNameTextFields]; + [self.store sdl_setObject:textFields forName:SDLRPCParameterNameTextFields]; } - (NSArray *)textFields { - return [store sdl_objectsForName:SDLNameTextFields ofClass:SDLTextField.class]; + NSError *error = nil; + return [self.store sdl_objectsForName:SDLRPCParameterNameTextFields ofClass:SDLTextField.class error:&error]; } - (void)setImageFields:(nullable NSArray *)imageFields { - [store sdl_setObject:imageFields forName:SDLNameImageFields]; + [self.store sdl_setObject:imageFields forName:SDLRPCParameterNameImageFields]; } - (nullable NSArray *)imageFields { - return [store sdl_objectsForName:SDLNameImageFields ofClass:SDLImageField.class]; + return [self.store sdl_objectsForName:SDLRPCParameterNameImageFields ofClass:SDLImageField.class error:nil]; } - (void)setMediaClockFormats:(NSArray *)mediaClockFormats { - [store sdl_setObject:mediaClockFormats forName:SDLNameMediaClockFormats]; + [self.store sdl_setObject:mediaClockFormats forName:SDLRPCParameterNameMediaClockFormats]; } - (NSArray *)mediaClockFormats { - return [store sdl_objectForName:SDLNameMediaClockFormats]; + NSError *error = nil; + return [self.store sdl_enumsForName:SDLRPCParameterNameMediaClockFormats error:&error]; } - (void)setGraphicSupported:(NSNumber *)graphicSupported { - [store sdl_setObject:graphicSupported forName:SDLNameGraphicSupported]; + [self.store sdl_setObject:graphicSupported forName:SDLRPCParameterNameGraphicSupported]; } - (NSNumber *)graphicSupported { - return [store sdl_objectForName:SDLNameGraphicSupported]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameGraphicSupported ofClass:NSNumber.class error:&error]; } - (void)setTemplatesAvailable:(nullable NSArray *)templatesAvailable { - [store sdl_setObject:templatesAvailable forName:SDLNameTemplatesAvailable]; + [self.store sdl_setObject:templatesAvailable forName:SDLRPCParameterNameTemplatesAvailable]; } - (nullable NSArray *)templatesAvailable { - return [store sdl_objectForName:SDLNameTemplatesAvailable]; + return [self.store sdl_objectsForName:SDLRPCParameterNameTemplatesAvailable ofClass:NSString.class error:nil]; } - (void)setScreenParams:(nullable SDLScreenParams *)screenParams { - [store sdl_setObject:screenParams forName:SDLNameScreenParams]; + [self.store sdl_setObject:screenParams forName:SDLRPCParameterNameScreenParams]; } - (nullable SDLScreenParams *)screenParams { - return [store sdl_objectForName:SDLNameScreenParams ofClass:SDLScreenParams.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameScreenParams ofClass:SDLScreenParams.class error:nil]; } - (void)setNumCustomPresetsAvailable:(nullable NSNumber *)numCustomPresetsAvailable { - [store sdl_setObject:numCustomPresetsAvailable forName:SDLNameNumberCustomPresetsAvailable]; + [self.store sdl_setObject:numCustomPresetsAvailable forName:SDLRPCParameterNameNumberCustomPresetsAvailable]; } - (nullable NSNumber *)numCustomPresetsAvailable { - return [store sdl_objectForName:SDLNameNumberCustomPresetsAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameNumberCustomPresetsAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.h new file mode 100644 index 0000000..7be6a58 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.h @@ -0,0 +1,66 @@ +// +// SDLDisplayCapability.h +// SmartDeviceLink + +#import "SDLRPCStruct.h" + +@class SDLWindowCapability; +@class SDLWindowTypeCapabilities; + +NS_ASSUME_NONNULL_BEGIN + +/** + Contain the display related information and all windows related to that display. + + @since SDL 6.0 + */ +@interface SDLDisplayCapability : SDLRPCStruct + +/** + Init with required properties + + @param displayName Name of the display. + */ +- (instancetype)initWithDisplayName:(NSString *)displayName; + +/// This method is broken (the types don't match the parameter names) and will always return nil. Use initWithDisplayName:windowCapabilities:windowTypeSupported: instead. +- (instancetype)initWithDisplayName:(NSString *)displayName windowTypeSupported:(nullable NSArray *)windowTypeSupported windowCapabilities:(nullable NSArray *)windowCapabilities __deprecated_msg("This method is broken and will return nil every time. Use initWithDisplayName:windowCapabilities:windowTypeSupported: instead"); + +/** + Init with all the properities + + @param displayName Name of the display. + @param windowCapabilities Contains a list of capabilities of all windows related to the app. @see windowCapabilities + @param windowTypeSupported Informs the application how many windows the app is allowed to create per type. + */ +- (instancetype)initWithDisplayName:(NSString *)displayName windowCapabilities:(nullable NSArray *)windowCapabilities windowTypeSupported:(nullable NSArray *)windowTypeSupported; + + +/** + Name of the display. + */ +@property (strong, nonatomic, nullable) NSString *displayName; + +/** + Informs the application how many windows the app is allowed to create per type. + + Min size 1 + Max size 100 + */ +@property (strong, nonatomic, nullable) NSArray *windowTypeSupported; + +/** + Contains a list of capabilities of all windows related to the app. Once the app has registered the capabilities of all windows will be provided, but GetSystemCapability still allows requesting window capabilities of all windows. + + After registration, only windows with capabilities changed will be included. Following cases will cause only affected windows to be included: + + 1. App creates a new window. After the window is created, a system capability notification will be sent related only to the created window. + 2. App sets a new template to the window. The new template changes window capabilties. The notification will reflect those changes to the single window. + + Min size 1, Max size 1000 + */ +@property (strong, nonatomic, nullable) NSArray *windowCapabilities; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.m new file mode 100644 index 0000000..04c23cc --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.m @@ -0,0 +1,72 @@ +// +// SDLDisplayCapability.m +// SmartDeviceLink + +#import "SDLDisplayCapability.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLWindowTypeCapabilities.h" +#import "SDLWindowCapability.h" + +@implementation SDLDisplayCapability + +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + return self; +} + +- (instancetype)initWithDisplayName:(NSString *)displayName { + self = [self init]; + if (!self) { + return nil; + } + self.displayName = displayName; + return self; +} + +- (instancetype)initWithDisplayName:(NSString *)displayName windowTypeSupported:(NSArray *)windowTypeSupported windowCapabilities:(NSArray *)windowCapabilities { + SDLLogE(@"This method is broken (the types don't match the parameter names) and will always return nil. Use initWithDisplayName:windowCapabilities:windowTypeSupported: instead."); + + return nil; +} + +- (instancetype)initWithDisplayName:(NSString *)displayName windowCapabilities:(nullable NSArray *)windowCapabilities windowTypeSupported:(nullable NSArray *)windowTypeSupported { + self = [self initWithDisplayName:displayName]; + if (!self) { + return nil; + } + self.windowTypeSupported = windowTypeSupported; + self.windowCapabilities = windowCapabilities; + return self; +} + +- (void)setDisplayName:(NSString *)displayName { + [self.store sdl_setObject:displayName forName:SDLRPCParameterNameDisplayName]; +} + +- (NSString *)displayName { + return [self.store sdl_objectForName:SDLRPCParameterNameDisplayName ofClass:NSString.class error:nil]; +} + +- (void)setWindowTypeSupported:(nullable NSArray *)windowTypeSupported { + [self.store sdl_setObject:windowTypeSupported forName:SDLRPCParameterNameWindowTypeSupported]; +} + +- (nullable NSArray *)windowTypeSupported { + return [self.store sdl_objectsForName:SDLRPCParameterNameWindowTypeSupported ofClass:SDLWindowTypeCapabilities.class error:nil]; +} + +- (void)setWindowCapabilities:(nullable NSArray *)windowCapabilities { + [self.store sdl_setObject:windowCapabilities forName:SDLRPCParameterNameWindowCapabilities]; +} + +- (nullable NSArray *)windowCapabilities { + return [self.store sdl_objectsForName:SDLRPCParameterNameWindowCapabilities ofClass:SDLWindowCapability.class error:nil]; +} + + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.h new file mode 100644 index 0000000..64d7d25 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.h @@ -0,0 +1,28 @@ +// +// SDLMenuUpdateAlgorithm.h +// SmartDeviceLink +// +// Created by Justin Gluck on 5/14/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +@class SDLDynamicMenuUpdateRunScore; +@class SDLMenuCell; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLDynamicMenuUpdateAlgorithm : NSObject + +/** + Compares the old and the new menus to find the best combination of add and delete commands + + @param oldMenuCells The old menu array + @param updatedMenuCells The new menu array + */ ++ (nullable SDLDynamicMenuUpdateRunScore *)compareOldMenuCells:(NSArray *)oldMenuCells updatedMenuCells:(NSArray *)updatedMenuCells; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.m new file mode 100644 index 0000000..51bfd14 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.m @@ -0,0 +1,104 @@ +// +// SDLMenuUpdateAlgorithm.m +// SmartDeviceLink +// +// Created by Justin Gluck on 5/14/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLDynamicMenuUpdateAlgorithm.h" +#import "SDLDynamicMenuUpdateRunScore.h" +#import "SDLMenuCell.h" +#import "SDLLogMacros.h" +#import "SDLMenuManagerConstants.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLDynamicMenuUpdateAlgorithm + +#pragma mark - Update Menu Cells ++ (nullable SDLDynamicMenuUpdateRunScore *)compareOldMenuCells:(NSArray *)oldMenuCells updatedMenuCells:(NSArray *)updatedMenuCells{ + if (oldMenuCells.count > 0 && updatedMenuCells.count == 0) { + return [[SDLDynamicMenuUpdateRunScore alloc] initWithOldStatus:[SDLDynamicMenuUpdateAlgorithm sdl_buildAllDeleteStatusesforMenu:oldMenuCells] updatedStatus:@[] score:0]; + }else if (oldMenuCells.count == 0 && updatedMenuCells.count > 0) { + return [[SDLDynamicMenuUpdateRunScore alloc] initWithOldStatus:@[] updatedStatus:[SDLDynamicMenuUpdateAlgorithm sdl_buildAllAddStatusesForMenu:updatedMenuCells] score:updatedMenuCells.count]; + } else if (oldMenuCells.count == 0 && updatedMenuCells.count == 0) { + return nil; + } + + return [SDLDynamicMenuUpdateAlgorithm sdl_startCompareAtRun:0 oldMenuCells:oldMenuCells updatedMenuCells:updatedMenuCells]; +} + ++ (nullable SDLDynamicMenuUpdateRunScore *)sdl_startCompareAtRun:(NSUInteger)startRun oldMenuCells:(NSArray *)oldMenuCells updatedMenuCells:(NSArray *)updatedMenuCells { + SDLDynamicMenuUpdateRunScore *bestScore = nil; + + for (NSUInteger run = startRun; run < oldMenuCells.count; run++) { + // Set the menu status as a 1-1 array, start off will oldMenus = all Deletes, newMenu = all Adds + NSMutableArray *oldMenuStatus = [SDLDynamicMenuUpdateAlgorithm sdl_buildAllDeleteStatusesforMenu:oldMenuCells]; + NSMutableArray *newMenuStatus = [SDLDynamicMenuUpdateAlgorithm sdl_buildAllAddStatusesForMenu:updatedMenuCells]; + + NSUInteger startIndex = 0; + for (NSUInteger oldCellIndex = run; oldCellIndex < oldMenuCells.count; oldCellIndex++) { //For each old item + // Create inner loop to compare old cells to new cells to find a match, if a match if found we mark the index at match for both the old and the new status to keep since we do not want to send RPCs for those cases + for (NSUInteger newCellIndex = startIndex; newCellIndex < updatedMenuCells.count; newCellIndex++) { + if ([oldMenuCells[oldCellIndex] isEqual:updatedMenuCells[newCellIndex]]) { + oldMenuStatus[oldCellIndex] = @(MenuCellStateKeep); + newMenuStatus[newCellIndex] = @(MenuCellStateKeep); + startIndex = newCellIndex + 1; + break; + } + } + } + + // Add RPC are the biggest operation so we need to find the run with the least amount of Adds. We will reset the run we use each time a runscore is less than the current score. + NSUInteger numberOfAdds = 0; + for (NSUInteger status = 0; status < newMenuStatus.count; status++) { + // 0 = Delete 1 = Add 2 = Keep + if (newMenuStatus[status].integerValue == MenuCellStateAdd) { + numberOfAdds++; + } + } + + // As soon as we a run that requires 0 Adds we will use it since we cant do better then 0 + if (numberOfAdds == 0) { + bestScore = [[SDLDynamicMenuUpdateRunScore alloc] initWithOldStatus:oldMenuStatus updatedStatus:newMenuStatus score:numberOfAdds]; + return bestScore; + } + // if we havent create the bestScore object or if the current score beats the old score then we will create a new bestScore + if (bestScore == nil || numberOfAdds < bestScore.score) { + bestScore = [[SDLDynamicMenuUpdateRunScore alloc] initWithOldStatus:oldMenuStatus updatedStatus:newMenuStatus score:numberOfAdds]; + } + } + + return bestScore; +} + +/** + Builds a 1-1 array of Deletes for every element in the array + + @param oldMenu The old menu array + */ ++ (NSMutableArray *)sdl_buildAllDeleteStatusesforMenu:(NSArray *)oldMenu { + NSMutableArray *oldMenuStatus = [[NSMutableArray alloc] init]; + for (NSUInteger index = 0; index < oldMenu.count; index++) { + [oldMenuStatus addObject:@(MenuCellStateDelete)]; + } + return [oldMenuStatus mutableCopy]; +} + +/** + Builds a 1-1 array of Adds for every element in the array + + @param newMenu The new menu array + */ ++ (NSMutableArray *)sdl_buildAllAddStatusesForMenu:(NSArray *)newMenu { + NSMutableArray *newMenuStatus = [[NSMutableArray alloc] init]; + for (NSUInteger index = 0; index < newMenu.count; index++) { + [newMenuStatus addObject:@(MenuCellStateAdd)]; + } + return [newMenuStatus mutableCopy]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.h new file mode 100644 index 0000000..12f2519 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.h @@ -0,0 +1,34 @@ +// +// SDLMenuRunScore.h +// SmartDeviceLink +// +// Created by Justin Gluck on 5/13/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLDynamicMenuUpdateRunScore : NSObject + +/** + Will contain all the Deletes and Keeps + */ +@property (copy, nonatomic, readonly) NSArray *oldStatus; + +/** + Will contain all the Adds and Keeps + */ +@property (copy, nonatomic, readonly) NSArray *updatedStatus; + +/** + Will contain the score, number of total Adds that will need to be created + */ +@property (assign, nonatomic, readonly) NSUInteger score; + +- (instancetype)initWithOldStatus:(NSArray *)oldStatus updatedStatus:(NSArray *)updatedStatus score:(NSUInteger)score; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.m new file mode 100644 index 0000000..5066904 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.m @@ -0,0 +1,28 @@ +// +// SDLMenuRunScore.m +// SmartDeviceLink +// +// Created by Justin Gluck on 5/13/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLDynamicMenuUpdateRunScore.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLDynamicMenuUpdateRunScore + +- (instancetype)initWithOldStatus:(NSArray *)oldStatus updatedStatus:(NSArray *)updatedStatus score:(NSUInteger)score { + self = [super init]; + if (!self) { return nil; } + + _oldStatus = oldStatus; + _updatedStatus = updatedStatus; + _score = score; + + return self; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallInfo.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallInfo.m index 656ee33..61820ed 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallInfo.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallInfo.m @@ -4,34 +4,37 @@ #import "SDLECallInfo.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLECallInfo - (void)setECallNotificationStatus:(SDLVehicleDataNotificationStatus)eCallNotificationStatus { - [store sdl_setObject:eCallNotificationStatus forName:SDLNameECallNotificationStatus]; + [self.store sdl_setObject:eCallNotificationStatus forName:SDLRPCParameterNameECallNotificationStatus]; } - (SDLVehicleDataNotificationStatus)eCallNotificationStatus { - return [store sdl_objectForName:SDLNameECallNotificationStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameECallNotificationStatus error:&error]; } - (void)setAuxECallNotificationStatus:(SDLVehicleDataNotificationStatus)auxECallNotificationStatus { - [store sdl_setObject:auxECallNotificationStatus forName:SDLNameAuxECallNotificationStatus]; + [self.store sdl_setObject:auxECallNotificationStatus forName:SDLRPCParameterNameAuxECallNotificationStatus]; } - (SDLVehicleDataNotificationStatus)auxECallNotificationStatus { - return [store sdl_objectForName:SDLNameAuxECallNotificationStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameAuxECallNotificationStatus error:&error]; } - (void)setECallConfirmationStatus:(SDLECallConfirmationStatus)eCallConfirmationStatus { - [store sdl_setObject:eCallConfirmationStatus forName:SDLNameECallConfirmationStatus]; + [self.store sdl_setObject:eCallConfirmationStatus forName:SDLRPCParameterNameECallConfirmationStatus]; } - (SDLECallConfirmationStatus)eCallConfirmationStatus { - return [store sdl_objectForName:SDLNameECallConfirmationStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameECallConfirmationStatus error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEvent.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEvent.m index 1aa1874..0052ac0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEvent.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEvent.m @@ -4,50 +4,55 @@ #import "SDLEmergencyEvent.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLEmergencyEvent - (void)setEmergencyEventType:(SDLEmergencyEventType)emergencyEventType { - [store sdl_setObject:emergencyEventType forName:SDLNameEmergencyEventType]; + [self.store sdl_setObject:emergencyEventType forName:SDLRPCParameterNameEmergencyEventType]; } - (SDLEmergencyEventType)emergencyEventType { - return [store sdl_objectForName:SDLNameEmergencyEventType]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameEmergencyEventType error:&error]; } - (void)setFuelCutoffStatus:(SDLFuelCutoffStatus)fuelCutoffStatus { - [store sdl_setObject:fuelCutoffStatus forName:SDLNameFuelCutoffStatus]; + [self.store sdl_setObject:fuelCutoffStatus forName:SDLRPCParameterNameFuelCutoffStatus]; } - (SDLFuelCutoffStatus)fuelCutoffStatus { - return [store sdl_objectForName:SDLNameFuelCutoffStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameFuelCutoffStatus error:&error]; } - (void)setRolloverEvent:(SDLVehicleDataEventStatus)rolloverEvent { - [store sdl_setObject:rolloverEvent forName:SDLNameRolloverEvent]; + [self.store sdl_setObject:rolloverEvent forName:SDLRPCParameterNameRolloverEvent]; } - (SDLVehicleDataEventStatus)rolloverEvent { - return [store sdl_objectForName:SDLNameRolloverEvent]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameRolloverEvent error:&error]; } - (void)setMaximumChangeVelocity:(NSNumber *)maximumChangeVelocity { - [store sdl_setObject:maximumChangeVelocity forName:SDLNameMaximumChangeVelocity]; + [self.store sdl_setObject:maximumChangeVelocity forName:SDLRPCParameterNameMaximumChangeVelocity]; } - (NSNumber *)maximumChangeVelocity { - return [store sdl_objectForName:SDLNameMaximumChangeVelocity]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMaximumChangeVelocity ofClass:NSNumber.class error:&error]; } - (void)setMultipleEvents:(SDLVehicleDataEventStatus)multipleEvents { - [store sdl_setObject:multipleEvents forName:SDLNameMultipleEvents]; + [self.store sdl_setObject:multipleEvents forName:SDLRPCParameterNameMultipleEvents]; } - (SDLVehicleDataEventStatus)multipleEvents { - return [store sdl_objectForName:SDLNameMultipleEvents]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameMultipleEvents error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.h index 402147c..8f81d00 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.h @@ -4,7 +4,7 @@ #import "SDLRPCRequest.h" -/* +/** * Allows encoded data in the form of SyncP packets to be sent to the SYNC module. Legacy / v1 Protocol implementation; use SyncPData instead. * * *** DEPRECATED *** @@ -12,6 +12,7 @@ NS_ASSUME_NONNULL_BEGIN +__deprecated @interface SDLEncodedSyncPData : SDLRPCRequest /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.m index 3f98385..6db36b6 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.m @@ -5,24 +5,32 @@ #import "SDLEncodedSyncPData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" @implementation SDLEncodedSyncPData +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameEncodedSyncPData]) { + if (self = [super initWithName:SDLRPCFunctionNameEncodedSyncPData]) { } return self; } +#pragma clang diagnostic pop - (void)setData:(NSArray *)data { - [parameters sdl_setObject:data forName:SDLNameData]; + [self.parameters sdl_setObject:data forName:SDLRPCParameterNameData]; } - (NSArray *)data { - return [parameters sdl_objectForName:SDLNameData]; + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameData ofClass:NSString.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.h index 8536ad3..5313bbb 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.h @@ -11,6 +11,7 @@ NS_ASSUME_NONNULL_BEGIN **DEPRECATED** */ +__deprecated @interface SDLEncodedSyncPDataResponse : SDLRPCResponse @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.m index c8d4c67..95c8cc6 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.m @@ -5,17 +5,24 @@ #import "SDLEncodedSyncPDataResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" @implementation SDLEncodedSyncPDataResponse +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameEncodedSyncPData]) { + if (self = [super initWithName:SDLRPCFunctionNameEncodedSyncPData]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.h new file mode 100644 index 0000000..5918844 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.h @@ -0,0 +1,48 @@ +// +// SDLEncryptionConfiguration.h +// SmartDeviceLink +// +// Created by standa1 on 6/17/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLServiceEncryptionDelegate.h" + +@protocol SDLSecurityType; + +NS_ASSUME_NONNULL_BEGIN + +/// The encryption configuration data +@interface SDLEncryptionConfiguration : NSObject + +/** + * A set of security managers used to encrypt traffic data. Each OEM has their own proprietary security manager. + */ +@property (copy, nonatomic, nullable) NSArray> *securityManagers; + +/** + * A delegate callback that will tell you when an acknowledgement has occurred for starting as secure service. + */ +@property (weak, nonatomic, nullable) id delegate; + +/** + * Creates a default encryption configuration. + * + * @return A default configuration that may be customized. + */ ++ (instancetype)defaultConfiguration; + +/** + Creates a secure configuration for each of the security managers provided. + + @param securityManagers The security managers to be used. + @param delegate The delegate callback. + @return The configuration + */ +- (instancetype)initWithSecurityManagers:(nullable NSArray> *)securityManagers delegate:(nullable id)delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.m new file mode 100644 index 0000000..dbb26b6 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.m @@ -0,0 +1,45 @@ +// +// SDLEncryptionConfiguration.m +// SmartDeviceLink +// +// Created by standa1 on 6/17/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEncryptionConfiguration.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLEncryptionConfiguration + ++ (instancetype)defaultConfiguration { + return [[self.class alloc] initWithSecurityManagers:nil delegate:nil]; +} + +- (instancetype)initWithSecurityManagers:(nullable NSArray> *)securityManagers delegate:(nullable id)delegate { + self = [super init]; + if (!self) { + return nil; + } + + _securityManagers = securityManagers; + _delegate = delegate; + + return self; +} + +#pragma mark - NSCopying + +- (id)copyWithZone:(nullable NSZone *)zone { + SDLEncryptionConfiguration *newConfig = [[self.class allocWithZone:zone] init]; + + newConfig.securityManagers = self.securityManagers; + newConfig.delegate = self.delegate; + + return newConfig; +} + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.h new file mode 100644 index 0000000..33641fc --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.h @@ -0,0 +1,59 @@ +// +// SDLEncryptionLifecycleManager.h +// SmartDeviceLink +// +// Created by standa1 on 6/27/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import +#import "SDLConnectionManagerType.h" +#import "SDLProtocolDelegate.h" + +@class SDLConfiguration; +@class SDLProtocol; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLEncryptionLifecycleManager : NSObject + +/** + * Whether or not the encryption session is connected. + */ +@property (assign, nonatomic, readonly, getter=isEncryptionReady) BOOL encryptionReady; + + +- (instancetype)init NS_UNAVAILABLE; + +/** + Create a new encryption lifecycle manager for apps that need encryption. + + @param connectionManager The pass-through for RPCs + @param configuration This session's configuration + @return A new encryption lifecycle manager + */ +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration; + +/** + * Start the manager. This is used internally to get notified of the ACK message. + */ +- (void)startWithProtocol:(SDLProtocol *)protocol; + +/** + * Stop the manager. This method is used internally. + */ +- (void)stop; + +/** + * Check whether or not an RPC needs encryption. + */ +- (BOOL)rpcRequiresEncryption:(__kindof SDLRPCMessage *)rpc; + +/** + * Attempt to manually start a secure service. + */ +- (void)startEncryptionService; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.m new file mode 100644 index 0000000..b6dbc73 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.m @@ -0,0 +1,327 @@ +// +// SDLEncryptionLifecycleManager.m +// SmartDeviceLink +// +// Created by standa1 on 6/27/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAsynchronousRPCRequestOperation.h" +#import "SDLConfiguration.h" +#import "SDLEncryptionLifecycleManager.h" +#import "SDLEncryptionManagerConstants.h" +#import "SDLEncryptionConfiguration.h" +#import "SDLError.h" +#import "SDLLifecycleConfiguration.h" +#import "SDLLogMacros.h" +#import "SDLOnHMIStatus.h" +#import "SDLOnPermissionsChange.h" +#import "SDLPermissionItem.h" +#import "SDLPermissionConstants.h" +#import "SDLProtocol.h" +#import "SDLProtocolMessage.h" +#import "SDLRegisterAppInterfaceResponse.h" +#import "SDLRPCNotificationNotification.h" +#import "SDLRPCResponseNotification.h" +#import "SDLServiceEncryptionDelegate.h" +#import "SDLStateMachine.h" +#import "SDLVehicleType.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NSString SDLVehicleMake; + +@interface SDLEncryptionLifecycleManager() + +@property (weak, nonatomic) id connectionManager; +@property (weak, nonatomic) SDLProtocol *protocol; + +@property (strong, nonatomic, readwrite) SDLStateMachine *encryptionStateMachine; +@property (copy, nonatomic, nullable) SDLHMILevel currentHMILevel; +@property (strong, nonatomic, nullable) NSMutableDictionary *permissions; +@property (assign, nonatomic) BOOL requiresEncryption; +@property (strong, nonatomic) SDLConfiguration *configuration; + +@property (nonatomic, strong) NSMutableDictionary *securityManagers; + +@end + +@implementation SDLEncryptionLifecycleManager + +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration { + self = [super init]; + if (!self) { + return nil; + } + + SDLLogV(@"Creating EncryptionLifecycleManager"); + _connectionManager = connectionManager; + _currentHMILevel = nil; + _requiresEncryption = NO; + _securityManagers = [NSMutableDictionary dictionary]; + _encryptionStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLEncryptionLifecycleManagerStateStopped states:[self.class sdl_encryptionStateTransitionDictionary]]; + _permissions = [NSMutableDictionary dictionary]; + _configuration = configuration; + + for (Class securityManagerClass in _configuration.encryptionConfig.securityManagers) { + if (![securityManagerClass conformsToProtocol:@protocol(SDLSecurityType)]) { + NSString *reason = [NSString stringWithFormat:@"Invalid security manager: Class %@ does not conform to SDLSecurityType protocol", NSStringFromClass(securityManagerClass)]; + @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:reason userInfo:nil]; + } + + NSSet *vehicleMakes = [securityManagerClass availableMakes]; + if (vehicleMakes == nil || vehicleMakes.count == 0) { + NSString *reason = [NSString stringWithFormat:@"Invalid security manager: Failed to retrieve makes for class %@", NSStringFromClass(securityManagerClass)]; + @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:reason userInfo:nil]; + } + + for (NSString *vehicleMake in vehicleMakes) { + self.securityManagers[vehicleMake] = securityManagerClass; + } + } + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_registerAppInterfaceResponseReceived:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_permissionsDidChange:) name:SDLDidChangePermissionsNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiLevelDidChange:) name:SDLDidChangeHMIStatusNotification object:nil]; + + return self; +} + +#pragma mark - Lifecycle + +- (void)startWithProtocol:(SDLProtocol *)protocol { + SDLLogD(@"Starting encryption manager"); + _protocol = protocol; + + @synchronized(self.protocol.protocolDelegateTable) { + if (![self.protocol.protocolDelegateTable containsObject:self]) { + [self.protocol.protocolDelegateTable addObject:self]; + } + } +} + +- (void)stop { + SDLLogD(@"Stopping encryption manager"); + + [_permissions removeAllObjects]; + _protocol = nil; + _currentHMILevel = nil; + _requiresEncryption = NO; + + [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStopped]; +} + +- (BOOL)isEncryptionReady { + return [self.encryptionStateMachine isCurrentState:SDLEncryptionLifecycleManagerStateReady]; +} + +- (void)startEncryptionService { + [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStarting]; +} + +- (void)sdl_startEncryptionService { + SDLLogV(@"Attempting to start Encryption Service"); + if (!self.protocol || !self.currentHMILevel) { + SDLLogV(@"Encryption manager is not yet started"); + [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:[NSError sdl_encryption_lifecycle_notReadyError]]; + return; + } + + if (![self.currentHMILevel isEqualToEnum:SDLHMILevelNone]) { + if ([self sdl_appRequiresEncryption]) { + [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStarting]; + } else { + SDLLogE(@"Encryption Manager is not ready to encrypt."); + [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:[NSError sdl_encryption_lifecycle_notReadyError]]; + } + } +} + +- (void)sdl_sendEncryptionStartService { + SDLLogD(@"Sending secure rpc start service"); + [self.protocol startSecureServiceWithType:SDLServiceTypeRPC payload:nil tlsInitializationHandler:^(BOOL success, NSError *error) { + if (error) { + SDLLogE(@"TLS setup error: %@", error); + [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStopped]; + [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:error]; + } + }]; +} + +#pragma mark - State Machine + ++ (NSDictionary *)sdl_encryptionStateTransitionDictionary { + return @{ + SDLEncryptionLifecycleManagerStateStopped : @[SDLEncryptionLifecycleManagerStateStarting], + SDLEncryptionLifecycleManagerStateStarting : @[SDLEncryptionLifecycleManagerStateStopped, SDLEncryptionLifecycleManagerStateReady], + SDLEncryptionLifecycleManagerStateReady : @[SDLEncryptionLifecycleManagerStateStopped] + }; +} + +- (void)didEnterStateEncryptionStarting { + SDLLogD(@"Encryption manager is starting"); + [self sdl_sendEncryptionStartService]; +} + +- (void)didEnterStateEncryptionReady { + SDLLogD(@"Encryption manager is ready"); +} + +- (void)didEnterStateEncryptionStopped { + SDLLogD(@"Encryption manager stopped"); +} + +#pragma mark - SDLProtocolListener +#pragma mark Encryption Start Service ACK + +- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { + switch (startServiceACK.header.serviceType) { + case SDLServiceTypeRPC: { + [self sdl_handleEncryptionStartServiceACK:startServiceACK]; + } break; + default: break; + } +} + +- (void)sdl_handleEncryptionStartServiceACK:(SDLProtocolMessage *)encryptionStartServiceAck { + if (encryptionStartServiceAck.header.encrypted) { + SDLLogD(@"Encryption service started"); + [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateReady]; + [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:YES error:nil]; + } else { + SDLLogD(@"Encryption service ACK received encryption = OFF"); + [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStopped]; + [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:[NSError sdl_encryption_lifecycle_encryption_off]]; + } +} + +#pragma mark Encryption Start Service NAK + +- (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceNAK { + switch (startServiceNAK.header.serviceType) { + case SDLServiceTypeRPC: { + [self sdl_handleEncryptionStartServiceNAK:startServiceNAK]; + } break; + default: break; + } +} + +- (void)sdl_handleEncryptionStartServiceNAK:(SDLProtocolMessage *)audioStartServiceNak { + SDLLogW(@"Encryption service failed to start due to NAK"); + [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStopped]; + [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:[NSError sdl_encryption_lifecycle_nak]]; +} + +#pragma mark Encryption End Service + +- (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { + switch (endServiceACK.header.serviceType) { + case SDLServiceTypeRPC: { + SDLLogW(@"Encryption RPC service ended with end service ACK"); + [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStopped]; + [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:[NSError sdl_encryption_lifecycle_notReadyError]]; + } break; + default: break; + } +} + +- (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { + switch (endServiceNAK.header.serviceType) { + case SDLServiceTypeRPC: { + SDLLogW(@"Encryption RPC service ended with end service NAK"); + [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStopped]; + [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:[NSError sdl_encryption_lifecycle_notReadyError]]; + } break; + default: break; + } +} + +#pragma mark - Notifications + +- (void)sdl_registerAppInterfaceResponseReceived:(SDLRPCResponseNotification *)notification { + if (![notification isResponseMemberOfClass:[SDLRegisterAppInterfaceResponse class]]) { return; } + + SDLRegisterAppInterfaceResponse *registerResponse = notification.response; + self.protocol.securityManager = [self sdl_securityManagerForMake:registerResponse.vehicleType.make]; + if (self.protocol.securityManager && [self.protocol.securityManager respondsToSelector:@selector(setAppId:)]) { + self.protocol.securityManager.appId = self.configuration.lifecycleConfig.fullAppId ? self.configuration.lifecycleConfig.fullAppId : self.configuration.lifecycleConfig.appId; + } +} + +- (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { + if (![notification isNotificationMemberOfClass:[SDLOnHMIStatus class]]) { return; } + + SDLOnHMIStatus *hmiStatus = notification.notification; + self.currentHMILevel = hmiStatus.hmiLevel; + + // if startWithProtocol has not been called yet, abort here + if (!self.protocol) { return; } + + if ([self.encryptionStateMachine isCurrentState:SDLEncryptionLifecycleManagerStateStopped]) { + [self sdl_startEncryptionService]; + } +} + +- (void)sdl_permissionsDidChange:(SDLRPCNotificationNotification *)notification { + if (![notification isNotificationMemberOfClass:[SDLOnPermissionsChange class]]) { + return; + } + + SDLOnPermissionsChange *onPermissionChange = notification.notification; + NSArray *permissionItems = onPermissionChange.permissionItem; + [self.permissions removeAllObjects]; + + for (SDLPermissionItem *item in permissionItems) { + self.permissions[item.rpcName] = item; + } + + self.requiresEncryption = (onPermissionChange.requireEncryption != nil) ? onPermissionChange.requireEncryption.boolValue : [self sdl_containsAtLeastOneRPCThatRequiresEncryption]; + + // if startWithProtocol has not been called yet, abort here + if (!self.protocol) { return; } + + if ([self.encryptionStateMachine isCurrentState:SDLEncryptionLifecycleManagerStateStopped]) { + [self sdl_startEncryptionService]; + } +} + + +#pragma mark - Utilities + +- (nullable id)sdl_securityManagerForMake:(NSString *)make { + if ((make != nil) && (self.securityManagers[make] != nil)) { + Class securityManagerClass = self.securityManagers[make]; + return [[securityManagerClass alloc] init]; + } + + return nil; +} + +#pragma mark Encryption Status + +- (BOOL)sdl_appRequiresEncryption { + if (self.requiresEncryption && [self sdl_containsAtLeastOneRPCThatRequiresEncryption]) { + return YES; + } + return NO; +} + +- (BOOL)rpcRequiresEncryption:(__kindof SDLRPCMessage *)rpc { + if (self.permissions[rpc.name].requireEncryption != nil) { + return self.permissions[rpc.name].requireEncryption.boolValue; + } + return NO; +} + +- (BOOL)sdl_containsAtLeastOneRPCThatRequiresEncryption { + for (SDLPermissionItem *item in self.permissions.allValues) { + if (item.requireEncryption) { + return YES; + } + } + return NO; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.h new file mode 100644 index 0000000..43e00c3 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.h @@ -0,0 +1,18 @@ +// +// SDLEncryptionManagerConstants.h +// SmartDeviceLink +// +// Created by standa1 on 6/28/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NSString SDLEncryptionLifecycleManagerState; +extern SDLEncryptionLifecycleManagerState *const SDLEncryptionLifecycleManagerStateStopped; +extern SDLEncryptionLifecycleManagerState *const SDLEncryptionLifecycleManagerStateStarting; +extern SDLEncryptionLifecycleManagerState *const SDLEncryptionLifecycleManagerStateReady; + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.m new file mode 100644 index 0000000..80181d7 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.m @@ -0,0 +1,13 @@ +// +// SDLEncryptionManagerConstants.m +// SmartDeviceLink +// +// Created by standa1 on 6/28/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEncryptionManagerConstants.h" + +SDLEncryptionLifecycleManagerState *const SDLEncryptionLifecycleManagerStateStopped = @"EncryptionStopped"; +SDLEncryptionLifecycleManagerState *const SDLEncryptionLifecycleManagerStateStarting = @"EncryptionStarting"; +SDLEncryptionLifecycleManagerState *const SDLEncryptionLifecycleManagerStateReady = @"EncryptionReady"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThru.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThru.m index 127702a..3bc00b4 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThru.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThru.m @@ -5,17 +5,21 @@ #import "SDLEndAudioPassThru.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLEndAudioPassThru +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameEndAudioPassThru]) { + if (self = [super initWithName:SDLRPCFunctionNameEndAudioPassThru]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThruResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThruResponse.m index 3efaa39..e6a99a1 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThruResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThruResponse.m @@ -5,17 +5,21 @@ #import "SDLEndAudioPassThruResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLEndAudioPassThruResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameEndAudioPassThru]) { + if (self = [super initWithName:SDLRPCFunctionNameEndAudioPassThru]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEnum.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEnum.h index d22bc44..c62a733 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEnum.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEnum.h @@ -7,8 +7,10 @@ NS_ASSUME_NONNULL_BEGIN +/// NSString SDLEnum typedef typedef NSString* SDLEnum SDL_SWIFT_ENUM; +/// Extensions to NSString specifically for SDL string enums @interface NSString (SDLEnum) /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.h index 64da621..c42db47 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.h @@ -11,6 +11,10 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLEqualizerSettings : SDLRPCStruct +/// Convenience init +/// +/// @param channelId Read-only channel / frequency name +/// @param channelSetting Reflects the setting, from 0%-100%. - (instancetype)initWithChannelId:(UInt8)channelId channelSetting:(UInt8)channelSetting; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.m index 1106d45..7db9a35 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.m @@ -2,7 +2,7 @@ // #import "SDLEqualizerSettings.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -22,27 +22,29 @@ - (instancetype)initWithChannelId:(UInt8)channelId channelSetting:(UInt8)channel } - (void)setChannelId:(NSNumber *)channelId { - [store sdl_setObject:channelId forName:SDLNameChannelId]; + [self.store sdl_setObject:channelId forName:SDLRPCParameterNameChannelId]; } - (NSNumber *)channelId { - return [store sdl_objectForName:SDLNameChannelId]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameChannelId ofClass:NSNumber.class error:&error]; } - (void)setChannelName:(nullable NSString *)channelName { - [store sdl_setObject:channelName forName:SDLNameChannelName]; + [self.store sdl_setObject:channelName forName:SDLRPCParameterNameChannelName]; } - (nullable NSString *)channelName { - return [store sdl_objectForName:SDLNameChannelName]; + return [self.store sdl_objectForName:SDLRPCParameterNameChannelName ofClass:NSString.class error:nil]; } - (void)setChannelSetting:(NSNumber *)channelSetting { - [store sdl_setObject:channelSetting forName:SDLNameChannelSetting]; + [self.store sdl_setObject:channelSetting forName:SDLRPCParameterNameChannelSetting]; } - (NSNumber *)channelSetting { - return [store sdl_objectForName:SDLNameChannelSetting]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameChannelSetting ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.h index 4a0cbd7..622da44 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.h @@ -23,20 +23,30 @@ extern SDLErrorDomain *const SDLErrorDomainTextAndGraphicManager; extern SDLErrorDomain *const SDLErrorDomainSoftButtonManager; extern SDLErrorDomain *const SDLErrorDomainMenuManager; extern SDLErrorDomain *const SDLErrorDomainChoiceSetManager; +extern SDLErrorDomain *const SDLErrorDomainSystemCapabilityManager; extern SDLErrorDomain *const SDLErrorDomainTransport; +extern SDLErrorDomain *const SDLErrorDomainRPCStore; +extern SDLErrorDomain *const SDLErrorDomainCacheFileManager; +extern SDLErrorDomain *const SDLErrorDomainAudioStreamManager; + @interface NSError (SDLErrors) +#pragma mark SDLEncryptionLifecycleManager ++ (NSError *)sdl_encryption_lifecycle_notReadyError; ++ (NSError *)sdl_encryption_lifecycle_encryption_off; ++ (NSError *)sdl_encryption_lifecycle_nak; + #pragma mark SDLManager -+ (NSError *)sdl_lifecycle_rpcErrorWithDescription:(NSString *)description andReason:(NSString *)reason; ++ (NSError *)sdl_lifecycle_rpcErrorWithDescription:(nullable NSString *)description andReason:(nullable NSString *)reason; + (NSError *)sdl_lifecycle_notConnectedError; + (NSError *)sdl_lifecycle_notReadyError; -+ (NSError *)sdl_lifecycle_unknownRemoteErrorWithDescription:(NSString *)description andReason:(NSString *)reason; ++ (NSError *)sdl_lifecycle_unknownRemoteErrorWithDescription:(nullable NSString *)description andReason:(nullable NSString *)reason; + (NSError *)sdl_lifecycle_managersFailedToStart; -+ (NSError *)sdl_lifecycle_startedWithBadResult:(SDLResult)result info:(NSString *)info; -+ (NSError *)sdl_lifecycle_startedWithWarning:(SDLResult)result info:(NSString *)info; -+ (NSError *)sdl_lifecycle_failedWithBadResult:(SDLResult)result info:(NSString *)info; ++ (NSError *)sdl_lifecycle_startedWithBadResult:(nullable SDLResult)result info:(nullable NSString *)info; ++ (NSError *)sdl_lifecycle_startedWithWarning:(nullable SDLResult)result info:(nullable NSString *)info; ++ (NSError *)sdl_lifecycle_failedWithBadResult:(nullable SDLResult)result info:(nullable NSString *)info; + (NSError *)sdl_lifecycle_multipleRequestsCancelled; #pragma mark SDLFileManager @@ -50,10 +60,12 @@ extern SDLErrorDomain *const SDLErrorDomainTransport; + (NSError *)sdl_fileManager_fileDoesNotExistError; + (NSError *)sdl_fileManager_fileUploadCanceled; + (NSError *)sdl_fileManager_dataMissingError; ++ (NSError *)sdl_fileManager_staticIconError; -#pragma mark Show Managers +#pragma mark Screen Managers + (NSError *)sdl_softButtonManager_pendingUpdateSuperseded; ++ (NSError *)sdl_subscribeButtonManager_notSubscribed; + (NSError *)sdl_textAndGraphicManager_pendingUpdateSuperseded; #pragma mark Menu Manager @@ -65,6 +77,15 @@ extern SDLErrorDomain *const SDLErrorDomainTransport; + (NSError *)sdl_choiceSetManager_choicesDeletedBeforePresentation:(NSDictionary *)userInfo; + (NSError *)sdl_choiceSetManager_choiceDeletionFailed:(NSDictionary *)userInfo; + (NSError *)sdl_choiceSetManager_choiceUploadFailed:(NSDictionary *)userInfo; ++ (NSError *)sdl_choiceSetManager_failedToCreateMenuItems; ++ (NSError *)sdl_choiceSetManager_incorrectState:(NSString *)state; + + +#pragma mark System Capability Manager + ++ (NSError *)sdl_systemCapabilityManager_moduleDoesNotSupportSystemCapabilities; ++ (NSError *)sdl_systemCapabilityManager_cannotUpdateInHMINONE; ++ (NSError *)sdl_systemCapabilityManager_cannotUpdateTypeDISPLAYS; #pragma mark Transport @@ -73,6 +94,18 @@ extern SDLErrorDomain *const SDLErrorDomainTransport; + (NSError *)sdl_transport_connectionTimedOutError; + (NSError *)sdl_transport_networkDownError; +#pragma mark Store + ++ (NSError *)sdl_rpcStore_invalidObjectErrorWithObject:(id)wrongObject expectedType:(Class)type; + +#pragma mark Cache File Manager + ++ (NSError *)sdl_cacheFileManager_updateIconArchiveFileFailed; + +#pragma mark Audio Stream Manager + ++ (NSError *)sdl_audioStreamManager_notConnected; + @end @interface NSException (SDLExceptions) @@ -82,6 +115,9 @@ extern SDLErrorDomain *const SDLErrorDomainTransport; + (NSException *)sdl_missingFilesException; + (NSException *)sdl_invalidSoftButtonStateException; + (NSException *)sdl_carWindowOrientationException; ++ (NSException *)sdl_invalidLockscreenSetupException; ++ (NSException *)sdl_invalidSystemCapabilitySelectorExceptionWithSelector:(SEL)selector; ++ (NSException *)sdl_invalidSubscribeButtonSelectorExceptionWithSelector:(SEL)selector; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.m index 2597a56..19e3795 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.m @@ -8,28 +8,75 @@ #import "SDLError.h" +#import "SDLChoiceSetManager.h" + NS_ASSUME_NONNULL_BEGIN #pragma mark Error Domains SDLErrorDomain *const SDLErrorDomainLifecycleManager = @"com.sdl.lifecyclemanager.error"; +SDLErrorDomain *const SDLErrorDomainEncryptionLifecycleManager = @"com.sdl.encryptionlifecyclemanager.error"; SDLErrorDomain *const SDLErrorDomainFileManager = @"com.sdl.filemanager.error"; SDLErrorDomain *const SDLErrorDomainTextAndGraphicManager = @"com.sdl.textandgraphicmanager.error"; SDLErrorDomain *const SDLErrorDomainSoftButtonManager = @"com.sdl.softbuttonmanager.error"; +SDLErrorDomain *const SDLErrorDomainSubscribeButtonManager = @"com.sdl.subscribebuttonmanager.error"; SDLErrorDomain *const SDLErrorDomainMenuManager = @"com.sdl.menumanager.error"; SDLErrorDomain *const SDLErrorDomainChoiceSetManager = @"com.sdl.choicesetmanager.error"; +SDLErrorDomain *const SDLErrorDomainSystemCapabilityManager = @"com.sdl.systemcapabilitymanager.error"; SDLErrorDomain *const SDLErrorDomainTransport = @"com.sdl.transport.error"; +SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error"; +SDLErrorDomain *const SDLErrorDomainCacheFileManager = @"com.sdl.cachefilemanager.error"; +SDLErrorDomain *const SDLErrorDomainAudioStreamManager = @"com.sdl.extension.pcmAudioStreamManager"; @implementation NSError (SDLErrors) +#pragma mark - SDLEncryptionLifecycleManager ++ (NSError *)sdl_encryption_lifecycle_notReadyError { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: @"Encryption Lifecycle manager not ready", + NSLocalizedFailureReasonErrorKey: @"The SDL library is not finished setting up the connection, please wait until the encryption lifecycleState is SDLEncryptionLifecycleStateReady", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure HMI is not NONE and at least one RPC requires encryption in permissions?" + }; + + return [NSError errorWithDomain:SDLErrorDomainEncryptionLifecycleManager + code:SDLEncryptionLifecycleManagerErrorNotConnected + userInfo:userInfo]; +} + ++ (NSError *)sdl_encryption_lifecycle_encryption_off { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: @"Encryption Lifecycle received a ACK with encryption bit = 0", + NSLocalizedFailureReasonErrorKey: @"The SDL library received ACK with encryption = OFF.", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure you are on a supported remote head unit with proper policies and your app id is approved." + }; + + return [NSError errorWithDomain:SDLErrorDomainEncryptionLifecycleManager + code:SDLEncryptionLifecycleManagerErrorEncryptionOff + userInfo:userInfo]; +} + ++ (NSError *)sdl_encryption_lifecycle_nak { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: @"Encryption Lifecycle received a negative acknowledgement", + NSLocalizedFailureReasonErrorKey: @"The remote head unit sent a NAK. Encryption service failed to start due to NAK.", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure your certificates are valid." + }; + + return [NSError errorWithDomain:SDLErrorDomainEncryptionLifecycleManager + code:SDLEncryptionLifecycleManagerErrorNAK + userInfo:userInfo]; + +} + #pragma mark - SDLManager -+ (NSError *)sdl_lifecycle_rpcErrorWithDescription:(NSString *)description andReason:(NSString *)reason { ++ (NSError *)sdl_lifecycle_rpcErrorWithDescription:(nullable NSString *)description andReason:(nullable NSString *)reason { + NSString *descriptionString = description ?: @""; + NSString *reasonString = reason ?: @""; NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(description, nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(reason, nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil) - }; + NSLocalizedDescriptionKey: descriptionString, + NSLocalizedFailureReasonErrorKey: reasonString + }; return [NSError errorWithDomain:SDLErrorDomainLifecycleManager code:SDLManagerErrorRPCRequestFailed userInfo:userInfo]; @@ -37,10 +84,9 @@ + (NSError *)sdl_lifecycle_rpcErrorWithDescription:(NSString *)description andRe + (NSError *)sdl_lifecycle_notConnectedError { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"Could not find a connection", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The SDL library could not find a current connection to an SDL hardware device", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil) - }; + NSLocalizedDescriptionKey: @"Could not find a connection", + NSLocalizedFailureReasonErrorKey: @"The SDL library could not find a current connection to an SDL hardware device" + }; return [NSError errorWithDomain:SDLErrorDomainLifecycleManager code:SDLManagerErrorNotConnected @@ -49,22 +95,22 @@ + (NSError *)sdl_lifecycle_notConnectedError { + (NSError *)sdl_lifecycle_notReadyError { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"Lifecycle manager not ready", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The SDL library is not finished setting up the connection, please wait until the lifecycleState is SDLLifecycleStateReady", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil) - }; + NSLocalizedDescriptionKey: @"Lifecycle manager not ready", + NSLocalizedFailureReasonErrorKey: @"The SDL library is not finished setting up the connection, please wait until the lifecycleState is SDLLifecycleStateReady" + }; return [NSError errorWithDomain:SDLErrorDomainLifecycleManager code:SDLManagerErrorNotConnected userInfo:userInfo]; } -+ (NSError *)sdl_lifecycle_unknownRemoteErrorWithDescription:(NSString *)description andReason:(NSString *)reason { ++ (NSError *)sdl_lifecycle_unknownRemoteErrorWithDescription:(nullable NSString *)description andReason:(nullable NSString *)reason { + NSString *descriptionString = description ?: @""; + NSString *reasonString = reason ?: @""; NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(description, nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(reason, nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil) - }; + NSLocalizedDescriptionKey: descriptionString, + NSLocalizedFailureReasonErrorKey: reasonString + }; return [NSError errorWithDomain:SDLErrorDomainLifecycleManager code:SDLManagerErrorUnknownRemoteError userInfo:userInfo]; @@ -76,31 +122,37 @@ + (NSError *)sdl_lifecycle_managersFailedToStart { userInfo:nil]; } -+ (NSError *)sdl_lifecycle_startedWithBadResult:(SDLResult)result info:(NSString *)info { ++ (NSError *)sdl_lifecycle_startedWithBadResult:(nullable SDLResult)result info:(nullable NSString *)info { + NSString *resultString = result ?: @""; + NSString *infoString = info ?: @""; NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(result, nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(info, nil) - }; + NSLocalizedDescriptionKey: resultString, + NSLocalizedFailureReasonErrorKey: infoString + }; return [NSError errorWithDomain:SDLErrorDomainLifecycleManager code:SDLManagerErrorRegistrationFailed userInfo:userInfo]; } -+ (NSError *)sdl_lifecycle_startedWithWarning:(SDLResult)result info:(NSString *)info { ++ (NSError *)sdl_lifecycle_startedWithWarning:(nullable SDLResult)result info:(nullable NSString *)info { + NSString *resultString = result ?: @""; + NSString *infoString = info ?: @""; NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(result, nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(info, nil) + NSLocalizedDescriptionKey: resultString, + NSLocalizedFailureReasonErrorKey: infoString }; return [NSError errorWithDomain:SDLErrorDomainLifecycleManager code:SDLManagerErrorRegistrationSuccessWithWarning userInfo:userInfo]; } -+ (NSError *)sdl_lifecycle_failedWithBadResult:(SDLResult)result info:(NSString *)info { ++ (NSError *)sdl_lifecycle_failedWithBadResult:(nullable SDLResult)result info:(nullable NSString *)info { + NSString *resultString = result ?: @""; + NSString *infoString = info ?: @""; NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(result, nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(info, nil) - }; + NSLocalizedDescriptionKey: resultString, + NSLocalizedFailureReasonErrorKey: infoString + }; return [NSError errorWithDomain:SDLErrorDomainLifecycleManager code:SDLManagerErrorRegistrationFailed userInfo:userInfo]; @@ -117,37 +169,37 @@ + (NSError *)sdl_lifecycle_multipleRequestsCancelled { + (NSError *)sdl_fileManager_cannotOverwriteError { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"Cannot overwrite remote file", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The remote file system already has a file of this name, and the file manager is set to not automatically overwrite files", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Set SDLFileManager autoOverwrite to YES, or call forceUploadFile:completion:", nil) - }; + NSLocalizedDescriptionKey: @"Cannot overwrite remote file", + NSLocalizedFailureReasonErrorKey: @"The remote file system already has a file of this name, and the file manager is set to not automatically overwrite files", + NSLocalizedRecoverySuggestionErrorKey: @"Set SDLFileManager autoOverwrite to YES, or call forceUploadFile:completion:" + }; return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorCannotOverwrite userInfo:userInfo]; } + (NSError *)sdl_fileManager_noKnownFileError { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"No such remote file is currently known", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The remote file is not currently known by the file manager. It could be that this file does not exist on the remote system or that the file manager has not completed its initialization and received a list of files from the remote system.", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure a file with this name is present on the remote system and that the file manager has finished its initialization.", nil) - }; + NSLocalizedDescriptionKey: @"No such remote file is currently known", + NSLocalizedFailureReasonErrorKey: @"The remote file is not currently known by the file manager. It could be that this file does not exist on the remote system or that the file manager has not completed its initialization and received a list of files from the remote system.", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure a file with this name is present on the remote system and that the file manager has finished its initialization." + }; return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorNoKnownFile userInfo:userInfo]; } + (NSError *)sdl_fileManager_unableToStartError { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"The file manager was unable to start", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"This may be because files are not supported on this unit and / or LISTFILES returned an error", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that the system is sending back a proper LIST FILES response", nil) - }; + NSLocalizedDescriptionKey: @"The file manager was unable to start", + NSLocalizedFailureReasonErrorKey: @"This may be because files are not supported on this unit and / or LISTFILES returned an error", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure that the system is sending back a proper LIST FILES response" + }; return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorUnableToStart userInfo:userInfo]; } + (NSError *)sdl_fileManager_unableToUploadError { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"The file manager was unable to send this file", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"This could be because the file manager has not started, or the head unit does not support files", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that the system is sending back a proper LIST FILES response and check the file manager's state", nil) - }; + NSLocalizedDescriptionKey: @"The file manager was unable to send this file", + NSLocalizedFailureReasonErrorKey: @"This could be because the file manager has not started, or the head unit does not support files", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure that the system is sending back a proper LIST FILES response and check the file manager's state" + }; return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorUnableToUpload userInfo:userInfo]; } @@ -161,29 +213,38 @@ + (NSError *)sdl_fileManager_unableToDelete_ErrorWithUserInfo:(NSDictionary *)us + (NSError *)sdl_fileManager_fileUploadCanceled { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"The file upload was canceled", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The file upload transaction was canceled before it could be completed", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"The file upload was canceled", nil) + NSLocalizedDescriptionKey: @"The file upload was canceled", + NSLocalizedFailureReasonErrorKey: @"The file upload transaction was canceled before it could be completed", + NSLocalizedRecoverySuggestionErrorKey: @"The file upload was canceled" }; return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerUploadCanceled userInfo:userInfo]; } + (NSError *)sdl_fileManager_dataMissingError { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"The file upload was canceled", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The data for the file is missing", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure the data used to create the file is valid", nil) + NSLocalizedDescriptionKey: @"The file upload was canceled", + NSLocalizedFailureReasonErrorKey: @"The data for the file is missing", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure the data used to create the file is valid" }; return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorFileDataMissing userInfo:userInfo]; } ++ (NSError *)sdl_fileManager_staticIconError { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: @"The file upload was canceled", + NSLocalizedFailureReasonErrorKey: @"The file is a static icon, which cannot be uploaded", + NSLocalizedRecoverySuggestionErrorKey: @"Stop trying to upload a static icon, set it via the screen manager or create an SDLImage instead" + }; + return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorStaticIcon userInfo:userInfo]; +} + #pragma mark SDLUploadFileOperation + (NSError *)sdl_fileManager_fileDoesNotExistError { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"The file manager was unable to send the file", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"This could be because the file does not exist at the specified file path or that passed data is invalid", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that the the correct file path is being set and that the passed data is valid", nil) + NSLocalizedDescriptionKey: @"The file manager was unable to send the file", + NSLocalizedFailureReasonErrorKey: @"This could be because the file does not exist at the specified file path or that passed data is invalid", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure that the the correct file path is being set and that the passed data is valid" }; return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorFileDoesNotExist userInfo:userInfo]; } @@ -198,6 +259,15 @@ + (NSError *)sdl_softButtonManager_pendingUpdateSuperseded { return [NSError errorWithDomain:SDLErrorDomainSoftButtonManager code:SDLSoftButtonManagerErrorPendingUpdateSuperseded userInfo:nil]; } ++ (NSError *)sdl_subscribeButtonManager_notSubscribed { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: @"Subscribe Button Manager error", + NSLocalizedFailureReasonErrorKey: @"The subscribe button manager has not yet subscribed to the button being unsubscribed.", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure you have used the Subscribe Button Manager to subscribe to the button name that you are attempting to unsubscribe." + }; + return [NSError errorWithDomain:SDLErrorDomainSubscribeButtonManager code:SDLSubscribeButtonManagerErrorNotSubscribed userInfo:userInfo]; +} + #pragma mark Menu Manager + (NSError *)sdl_menuManager_failedToUpdateWithDictionary:(NSDictionary *)userInfo { @@ -218,44 +288,125 @@ + (NSError *)sdl_choiceSetManager_choiceUploadFailed:(NSDictionary *)userInfo { return [NSError errorWithDomain:SDLErrorDomainChoiceSetManager code:SDLChoiceSetManagerErrorUploadFailed userInfo:userInfo]; } ++ (NSError *)sdl_choiceSetManager_failedToCreateMenuItems { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: @"Choice Set Manager error", + NSLocalizedFailureReasonErrorKey: @"Choice set manager failed to create menu items due to menuName being empty.", + NSLocalizedRecoverySuggestionErrorKey: @"If you are setting the menuName, it is possible that the head unit is sending incorrect displayCapabilities." + }; + return [NSError errorWithDomain:SDLErrorDomainChoiceSetManager code:SDLChoiceSetManagerErrorFailedToCreateMenuItems userInfo:userInfo]; +} + ++ (NSError *)sdl_choiceSetManager_incorrectState:(SDLChoiceManagerState *)state { + NSString *errorString = [NSString stringWithFormat:@"Choice Set Manager error invalid state: %@", state]; + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: errorString, + NSLocalizedFailureReasonErrorKey: @"The choice set manager could be in an invalid state because the head unit doesn't support choice sets or the manager failed to set up correctly.", + NSLocalizedRecoverySuggestionErrorKey: @"If you are setting the menuName, it is possible that the head unit is sending incorrect displayCapabilities." + }; + return [NSError errorWithDomain:SDLErrorDomainChoiceSetManager code:SDLChoiceSetManagerErrorInvalidState userInfo:userInfo]; +} + +#pragma mark System Capability Manager + ++ (NSError *)sdl_systemCapabilityManager_moduleDoesNotSupportSystemCapabilities { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: @"Module does not understand system capabilities", + NSLocalizedFailureReasonErrorKey: @"The connected module does not support system capabilities", + NSLocalizedRecoverySuggestionErrorKey: @"Use isCapabilitySupported to find out if the feature is supported on the head unit, but no more information about the feature is available on this module" + }; + return [NSError errorWithDomain:SDLErrorDomainSystemCapabilityManager code:SDLSystemCapabilityManagerErrorModuleDoesNotSupportSystemCapabilities userInfo:userInfo]; +} + ++ (NSError *)sdl_systemCapabilityManager_cannotUpdateInHMINONE { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: @"System capabilities cannot be updated in HMI NONE.", + NSLocalizedFailureReasonErrorKey: @"The system capability manager attempted to subscribe or update a system capability in HMI NONE, which is not allowed.", + NSLocalizedRecoverySuggestionErrorKey: @"Wait until you are in HMI BACKGROUND, LIMITED, OR FULL before subscribing or updating a capability." + }; + return [NSError errorWithDomain:SDLErrorDomainSystemCapabilityManager code:SDLSystemCapabilityManagerErrorHMINone userInfo:userInfo]; +} + ++ (NSError *)sdl_systemCapabilityManager_cannotUpdateTypeDISPLAYS { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: @"System capability type DISPLAYS cannot be updated.", + NSLocalizedFailureReasonErrorKey: @"The system capability manager attempted to update system capability type DISPLAYS, which is not allowed.", + NSLocalizedRecoverySuggestionErrorKey: @"Subscribe to DISPLAYS to automatically receive updates or retrieve a cached display capability value directly from the SystemCapabilityManager." + }; + return [NSError errorWithDomain:SDLErrorDomainSystemCapabilityManager code:SDLSystemCapabilityManagerErrorCannotUpdateTypeDisplays userInfo:userInfo]; +} + #pragma mark Transport + (NSError *)sdl_transport_unknownError { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"TCP connection error", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"TCP connection cannot be established due to unknown error.", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that correct IP address and TCP port number are specified, and the phone is connected to the correct Wi-Fi network.", nil) + NSLocalizedDescriptionKey: @"TCP connection error", + NSLocalizedFailureReasonErrorKey: @"TCP connection cannot be established due to unknown error.", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure that correct IP address and TCP port number are specified, and the phone is connected to the correct Wi-Fi network." }; return [NSError errorWithDomain:SDLErrorDomainTransport code:SDLTransportErrorUnknown userInfo:userInfo]; } + (NSError *)sdl_transport_connectionRefusedError { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"TCP connection cannot be established", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The TCP connection is refused by head unit. Possible causes are that the specified TCP port number is not correct, or SDL Core is not running properly on the head unit.", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that correct IP address and TCP port number are specified. Also, make sure that SDL Core on the head unit enables TCP transport.", nil) + NSLocalizedDescriptionKey: @"TCP connection cannot be established", + NSLocalizedFailureReasonErrorKey: @"The TCP connection is refused by head unit. Possible causes are that the specified TCP port number is not correct, or SDL Core is not running properly on the head unit.", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure that correct IP address and TCP port number are specified. Also, make sure that SDL Core on the head unit enables TCP transport." }; return [NSError errorWithDomain:SDLErrorDomainTransport code:SDLTransportErrorConnectionRefused userInfo:userInfo]; } + (NSError *)sdl_transport_connectionTimedOutError { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"TCP connection timed out", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The TCP connection cannot be established within a given time. Possible causes are that the specified IP address is not correct, or the connection is blocked by a firewall.", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that correct IP address and TCP port number are specified. Also, make sure that the head unit's system configuration accepts TCP connections.", nil) + NSLocalizedDescriptionKey: @"TCP connection timed out", + NSLocalizedFailureReasonErrorKey: @"The TCP connection cannot be established within a given time. Possible causes are that the specified IP address is not correct, or the connection is blocked by a firewall.", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure that correct IP address and TCP port number are specified. Also, make sure that the head unit's system configuration accepts TCP connections." }; return [NSError errorWithDomain:SDLErrorDomainTransport code:SDLTransportErrorConnectionTimedOut userInfo:userInfo]; } + (NSError *)sdl_transport_networkDownError { NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(@"Network is not available", nil), - NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"TCP connection cannot be established because the phone is not connected to the network. Possible causes are: Wi-Fi being disabled on the phone or the phone is connected to a wrong Wi-Fi network.", nil), - NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that the phone is connected to the Wi-Fi network that has the head unit on it. Also, make sure that correct IP address and TCP port number are specified.", nil) + NSLocalizedDescriptionKey: @"Network is not available", + NSLocalizedFailureReasonErrorKey: @"TCP connection cannot be established because the phone is not connected to the network. Possible causes are: Wi-Fi being disabled on the phone or the phone is connected to a wrong Wi-Fi network.", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure that the phone is connected to the Wi-Fi network that has the head unit on it. Also, make sure that correct IP address and TCP port number are specified." }; return [NSError errorWithDomain:SDLErrorDomainTransport code:SDLTransportErrorNetworkDown userInfo:userInfo]; } +#pragma mark Store + ++ (NSError *)sdl_rpcStore_invalidObjectErrorWithObject:(id)wrongObject expectedType:(Class)type { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: @"Type of stored value doesn't match with requested", + NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"Requested %@ but returned %@", NSStringFromClass(type), NSStringFromClass([wrongObject class])], + NSLocalizedRecoverySuggestionErrorKey: @"Check the object type returned from the head unit system" + }; + return [NSError errorWithDomain:SDLErrorDomainRPCStore code:SDLRPCStoreErrorGetInvalidObject userInfo:userInfo]; +} + +#pragma mark Cache File Manager + ++ (NSError *)sdl_cacheFileManager_updateIconArchiveFileFailed { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: @"Failed to update the icon archive file", + NSLocalizedFailureReasonErrorKey: @"Unable to archive icon archive file to file path", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure that file path is valid" + }; + return [NSError errorWithDomain:SDLErrorDomainCacheFileManager code:SDLCacheManagerErrorUpdateIconArchiveFileFailure userInfo:userInfo]; +} + +#pragma mark Audio Stream Manager ++ (NSError *)sdl_audioStreamManager_notConnected { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: @"Couldn't send audio data, the audio service is not connected", + NSLocalizedFailureReasonErrorKey: @"The audio service must be connected before sending audio data", + NSLocalizedRecoverySuggestionErrorKey: @"Make sure that a connection has been established, you are a NAVIGATION app and have the NAVIGATION app type in your configuration, and you are the active NAVIGATION app" + }; + + return [NSError errorWithDomain:SDLErrorDomainAudioStreamManager code:SDLAudioStreamManagerErrorNotConnected userInfo:userInfo]; +} + @end @@ -263,16 +414,16 @@ @implementation NSException (SDLExceptions) + (NSException *)sdl_missingHandlerException { return [NSException - exceptionWithName:@"MissingHandlerException" - reason:@"This request requires a handler to be specified using the WithHandler class" - userInfo:nil]; + exceptionWithName:@"MissingHandlerException" + reason:@"This request requires a handler to be specified using the WithHandler class" + userInfo:nil]; } + (NSException *)sdl_missingIdException { return [NSException - exceptionWithName:@"MissingIdException" - reason:@"This request requires an ID (command, softbutton, etc) to be specified" - userInfo:nil]; + exceptionWithName:@"MissingIdException" + reason:@"This request requires an ID (command, softbutton, etc) to be specified" + userInfo:nil]; } + (NSException *)sdl_missingFilesException { @@ -292,6 +443,24 @@ + (NSException *)sdl_carWindowOrientationException { userInfo:nil]; } ++ (NSException *)sdl_invalidLockscreenSetupException { + return [NSException exceptionWithName:@"com.sdl.lockscreen.setupException" + reason:@"SDL must be setup _after_ your app's window already exists" + userInfo:nil]; +} + ++ (NSException *)sdl_invalidSystemCapabilitySelectorExceptionWithSelector:(SEL)selector { + return [NSException exceptionWithName:@"com.sdl.systemCapabilityManager.selectorException" + reason:[NSString stringWithFormat:@"Capability observation selector: %@ does not match possible selectors, which must have between 0 and 3 parameters, or is not a selector on the observer object. Check that your selector is formatted correctly, and that your observer is not nil. You should unsubscribe an observer before it goes to nil.", NSStringFromSelector(selector)] + userInfo:nil]; +} + ++ (NSException *)sdl_invalidSubscribeButtonSelectorExceptionWithSelector:(SEL)selector { + return [NSException exceptionWithName:@"com.sdl.subscribeButtonManager.selectorException" + reason:[NSString stringWithFormat:@"Subscribe button observation selector: %@ does not match possible selectors, which must have between 0 and 4 parameters, or is not a selector on the observer object. Check that your selector is formatted correctly, and that your observer is not nil. You should unsubscribe an observer before it goes to nil.", NSStringFromSelector(selector)] + userInfo:nil]; +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLErrorConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLErrorConstants.h index 8503d8b..a668375 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLErrorConstants.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLErrorConstants.h @@ -8,6 +8,24 @@ #import +/** + * Errors associated with the SDLManager class. + */ +typedef NS_ENUM(NSInteger, SDLEncryptionLifecycleManagerError) { + /** + * Some action was attempted that requires a connection to the remote head unit. + */ + SDLEncryptionLifecycleManagerErrorNotConnected = -1, + /** + * Received ACK with encryption bit set to false from the remote head unit + */ + SDLEncryptionLifecycleManagerErrorEncryptionOff = -2, + /** + * Received NAK from the remote head unit. + */ + SDLEncryptionLifecycleManagerErrorNAK = -3 +}; + /** * Errors associated with the SDLManager class. */ @@ -70,55 +88,82 @@ typedef NS_ENUM(NSInteger, SDLFileManagerError) { * The file manager could not find the local file. */ SDLFileManagerErrorFileDoesNotExist = -5, - /* + /** * The file upload was canceled. */ SDLFileManagerUploadCanceled = -6, - /* + /** * One or more of multiple files being uploaded or deleted failed. */ SDLFileManagerMultipleFileUploadTasksFailed = -7, - /* + /** * One or more of multiple files being uploaded or deleted failed. */ SDLFileManagerMultipleFileDeleteTasksFailed = -8, - /* + /** * The file data is nil or empty. */ SDLFileManagerErrorFileDataMissing = -9, + /** + * The file is a static icon, which cannot be uploaded + */ + SDLFileManagerErrorStaticIcon = -10, }; /** Errors associated with the ScreenManager class - - - SDLTextAndGraphicManagerErrorPendingUpdateSuperseded: A pending update was superseded by a newer requested update. The old update will not be sent */ typedef NS_ENUM(NSInteger, SDLTextAndGraphicManagerError) { + /// A pending update was superseded by a newer requested update. The old update will not be sent SDLTextAndGraphicManagerErrorPendingUpdateSuperseded = -1 }; /** - Errors associated with the ScreenManager class - - - SDLSoftButtonManagerErrorPendingUpdateSuperseded: A pending update was superseded by a newer requested update. The old update will not be sent + Errors associated with the Soft Button Manager class */ typedef NS_ENUM(NSInteger, SDLSoftButtonManagerError) { + /// A pending update was superseded by a newer requested update. The old update will not be sent SDLSoftButtonManagerErrorPendingUpdateSuperseded = -1 }; /** - Errors associated with the ScreenManager class + Errors associated with the Subscribe Button Manager class + */ +typedef NS_ENUM(NSInteger, SDLSubscribeButtonManagerError) { + /// Attempting to unsubscribe to a subscribe button that has not yet been subscribed to yet. + SDLSubscribeButtonManagerErrorNotSubscribed = -1 +}; - - SDLMenuManagerErrorRPCsFailed: Sending menu-related RPCs returned an error from the remote system +/** + Errors associated with the ScreenManager class */ typedef NS_ENUM(NSInteger, SDLMenuManagerError) { + /// Sending menu-related RPCs returned an error from the remote system SDLMenuManagerErrorRPCsFailed = -1 }; +/// Errors associated with Choice Set class typedef NS_ENUM(NSInteger, SDLChoiceSetManagerError) { + /// The choice set has been deleted before it was presented SDLChoiceSetManagerErrorPendingPresentationDeleted = -1, + + /// The choice set failed to delete SDLChoiceSetManagerErrorDeletionFailed = -2, + + /// The upload failed SDLChoiceSetManagerErrorUploadFailed = -3, + + /// The menu items failed to be created + SDLChoiceSetManagerErrorFailedToCreateMenuItems = -4, + + /// Invalid state + SDLChoiceSetManagerErrorInvalidState = -5 +}; + +typedef NS_ENUM(NSInteger, SDLSystemCapabilityManagerError) { + SDLSystemCapabilityManagerErrorModuleDoesNotSupportSystemCapabilities = -1, + SDLSystemCapabilityManagerErrorHMINone = -2, + SDLSystemCapabilityManagerErrorCannotUpdateTypeDisplays = -3 }; /** @@ -145,3 +190,28 @@ typedef NS_ENUM(NSInteger, SDLTransportError) { */ SDLTransportErrorNetworkDown = -4, }; + +/** + * Errors associated with store. + */ +typedef NS_ENUM(NSInteger, SDLRPCStoreError) { + /** + * In dictionary stored value with unexpected type + */ + SDLRPCStoreErrorGetInvalidObject = -1, +}; + +typedef NS_ENUM(NSInteger, SDLCacheFileManagerError) { + /** + * Failed to update archive file + */ + SDLCacheManagerErrorUpdateIconArchiveFileFailure = -1, +}; + +typedef NS_ENUM(NSInteger, SDLAudioStreamManagerError) { + /// The audio stream is not currently connected + SDLAudioStreamManagerErrorNotConnected = -1, + + /// Attempted to play but there's no audio in the queue + SDLAudioStreamManagerErrorNoQueuedAudio = -2 +}; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.h index 7212315..4b2273d 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.h @@ -13,6 +13,7 @@ NS_ASSUME_NONNULL_BEGIN +/// Crates an SDLFile from a file @interface SDLFile : NSObject /** @@ -55,6 +56,16 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, readonly) NSInputStream *inputStream; +/** + Describes whether or not this file is represented by static icon data. The head unit will present its representation of the static icon concept when sent this data. + + A file that represents a static icon may not be uploaded via the File Manager. It must be set using the Screen Manager. + + Support for this feature may vary by system, but it will generally be more supported in soft buttons and menus. + */ +@property (assign, nonatomic, readonly) BOOL isStaticIcon; + +/// Initializer unavailable - (instancetype)init NS_UNAVAILABLE; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.m index 5e92571..1efe745 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.m @@ -24,6 +24,9 @@ @interface SDLFile () @property (copy, nonatomic, readwrite) NSString *name; @property (nonatomic, readwrite) NSInputStream *inputStream; + +@property (assign, nonatomic, readwrite) BOOL isStaticIcon; + @end @@ -163,6 +166,10 @@ - (id)copyWithZone:(nullable NSZone *)zone { #pragma mark - NSObject overrides +- (NSString *)description { + return [NSString stringWithFormat:@"SDLFile: %@", self.name]; +} + - (NSUInteger)hash { return self.name.hash ^ self.data.hash; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.h index 5eae0ff..91a0201 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.h @@ -18,6 +18,11 @@ NS_ASSUME_NONNULL_BEGIN +/// The handler that is called when the manager is set up or failed to set up with an error. +/// This is for internal use only. +/// +/// @param success True if every request succeeded, false if any failed. +/// @param error The error that occurred during the request if any occurred. typedef void (^SDLFileManagerStartupCompletionHandler)(BOOL success, NSError *__nullable error); diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.m index 9ff7498..0e34ab3 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.m @@ -45,14 +45,13 @@ @interface SDLFileManager () // Local state @property (strong, nonatomic) NSOperationQueue *transactionQueue; -@property (strong, nonatomic) NSMutableDictionary *uploadsInProgress; @property (strong, nonatomic) NSMutableSet *uploadedEphemeralFileNames; @property (strong, nonatomic) SDLStateMachine *stateMachine; @property (copy, nonatomic, nullable) SDLFileManagerStartupCompletionHandler startupCompletionHandler; @property (strong, nonatomic) NSMutableDictionary *> *failedFileUploadsCount; -@property (assign, nonatomic) UInt8 maxFileUploadAttempts; -@property (assign, nonatomic) UInt8 maxArtworkUploadAttempts; +@property (assign, nonatomic) NSUInteger maxFileUploadAttempts; +@property (assign, nonatomic) NSUInteger maxArtworkUploadAttempts; @end @@ -77,9 +76,9 @@ - (instancetype)initWithConnectionManager:(id)manager _mutableRemoteFileNames = [NSMutableSet set]; _transactionQueue = [[NSOperationQueue alloc] init]; - _transactionQueue.name = @"SDLFileManager Transaction Queue"; + _transactionQueue.name = @"com.sdl.fileManager.transactionQueue"; + _transactionQueue.underlyingQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; _transactionQueue.maxConcurrentOperationCount = 1; - _uploadsInProgress = [[NSMutableDictionary alloc] init]; _uploadedEphemeralFileNames = [[NSMutableSet alloc] init]; _stateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLFileManagerStateShutdown states:[self.class sdl_stateTransitionDictionary]]; @@ -105,11 +104,13 @@ - (void)startWithCompletionHandler:(nullable SDLFileManagerStartupCompletionHand - (void)stop { [self.stateMachine transitionToState:SDLFileManagerStateShutdown]; - - // Clear the failed uploads tracking so failed files can be uploaded again when a new connection has been established with Core - _failedFileUploadsCount = [NSMutableDictionary dictionary]; } +- (void)dealloc { + if (self.currentState != SDLFileManagerStateShutdown) { + [self.stateMachine transitionToState:SDLFileManagerStateShutdown]; + } +} #pragma mark - Getters @@ -161,6 +162,9 @@ - (void)didEnterStateShutdown { [self.class sdl_clearTemporaryFileDirectory]; self.bytesAvailable = 0; + // Clear the failed uploads tracking so failed files can be uploaded again when a new connection has been established with Core + _failedFileUploadsCount = [NSMutableDictionary dictionary]; + if (self.startupCompletionHandler != nil) { self.startupCompletionHandler(NO, [NSError sdl_fileManager_unableToStartError]); self.startupCompletionHandler = nil; @@ -177,6 +181,12 @@ - (void)didEnterStateFetchingInitialList { // If there was an error, we'll pass the error to the startup handler and cancel out if (error != nil) { + // HAX: In the case we are DISALLOWED we still want to transition to a ready state. Some head units return DISALLOWED for this RPC but otherwise work. + if([error.userInfo[@"resultCode"] isEqualToEnum:SDLResultDisallowed]) { + SDLLogW(@"ListFiles is disallowed. Certain file manager APIs may not work properly."); + [weakSelf.stateMachine transitionToState:SDLFileManagerStateReady]; + BLOCK_RETURN; + } [weakSelf.stateMachine transitionToState:SDLFileManagerStateStartupError]; BLOCK_RETURN; } @@ -262,7 +272,7 @@ - (void)deleteRemoteFilesWithNames:(NSArray *)names completionHan dispatch_group_leave(deleteFilesTask); // Wait for all files to be deleted - dispatch_group_notify(deleteFilesTask, dispatch_get_main_queue(), ^{ + dispatch_group_notify(deleteFilesTask, [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ if (completionHandler == nil) { return; } if (failedDeletes.count > 0) { return completionHandler([NSError sdl_fileManager_unableToDelete_ErrorWithUserInfo:failedDeletes]); @@ -302,9 +312,20 @@ - (void)uploadFiles:(NSArray *)files progressHandler:(nullable SDLFil dispatch_group_t uploadFilesTask = dispatch_group_create(); dispatch_group_enter(uploadFilesTask); - for(SDLFile *file in files) { - dispatch_group_enter(uploadFilesTask); + // Wait for all files to be uploaded + dispatch_group_notify(uploadFilesTask, [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ + if (completionHandler == nil) { return; } + if (failedUploads.count > 0) { + return completionHandler([NSError sdl_fileManager_unableToUpload_ErrorWithUserInfo:failedUploads]); + } + return completionHandler(nil); + }); + + for(NSUInteger i = 0; i < files.count; i++) { + SDLFile *file = files[i]; + dispatch_group_enter(uploadFilesTask); + __weak typeof(self) weakself = self; [self uploadFile:file completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { if(!success) { failedUploads[file.name] = error; @@ -313,14 +334,17 @@ - (void)uploadFiles:(NSArray *)files progressHandler:(nullable SDLFil // Send an update for each file sent to the remote if (progressHandler != nil) { totalBytesUploaded += file.fileSize; - float uploadPercentage = [self sdl_uploadPercentage:totalBytesToUpload uploadedBytes:totalBytesUploaded]; + float uploadPercentage = [weakself sdl_uploadPercentage:totalBytesToUpload uploadedBytes:totalBytesUploaded]; BOOL continueWithRemainingUploads = progressHandler(file.name, uploadPercentage, error); if (!continueWithRemainingUploads) { // Cancel any remaining files waiting to be uploaded - for(SDLFile *file in files) { - NSOperation *fileUploadOperation = self.uploadsInProgress[file.name]; - if (fileUploadOperation) { - [fileUploadOperation cancel]; + for(NSUInteger j = i + 1; j < files.count; j++) { + SDLFile *cancelFile = files[j]; + for (SDLUploadFileOperation *op in weakself.transactionQueue.operations) { + if ([op.fileWrapper.file isEqual:cancelFile]) { + [op cancel]; + break; + } } } @@ -332,15 +356,6 @@ - (void)uploadFiles:(NSArray *)files progressHandler:(nullable SDLFil }]; } dispatch_group_leave(uploadFilesTask); - - // Wait for all files to be uploaded - dispatch_group_notify(uploadFilesTask, dispatch_get_main_queue(), ^{ - if (completionHandler == nil) { return; } - if (failedUploads.count > 0) { - return completionHandler([NSError sdl_fileManager_unableToUpload_ErrorWithUserInfo:failedUploads]); - } - return completionHandler(nil); - }); } - (void)uploadFile:(SDLFile *)file completionHandler:(nullable SDLFileManagerUploadCompletionHandler)handler { @@ -351,6 +366,13 @@ - (void)uploadFile:(SDLFile *)file completionHandler:(nullable SDLFileManagerUpl return; } + if (file.isStaticIcon) { + if (handler != nil) { + handler(NO, self.bytesAvailable, [NSError sdl_fileManager_staticIconError]); + } + return; + } + // Make sure we are able to send files if (![self.currentState isEqualToString:SDLFileManagerStateReady]) { if (handler != nil) { @@ -365,7 +387,7 @@ - (void)uploadFile:(SDLFile *)file completionHandler:(nullable SDLFileManagerUpl } // Check our overwrite settings and error out if it would overwrite - if (file.overwrite == NO && [self.remoteFileNames containsObject:file.name]) { + if (!file.overwrite && [self.remoteFileNames containsObject:file.name]) { if (handler != nil) { handler(NO, self.bytesAvailable, [NSError sdl_fileManager_cannotOverwriteError]); } @@ -382,23 +404,17 @@ - (void)sdl_uploadFile:(SDLFile *)file completionHandler:(nullable SDLFileManage __weak typeof(self) weakSelf = self; SDLFileWrapper *fileWrapper = [SDLFileWrapper wrapperWithFile:file completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError *_Nullable error) { - if (self.uploadsInProgress[file.name]) { - [self.uploadsInProgress removeObjectForKey:file.name]; - } - if (success) { weakSelf.bytesAvailable = bytesAvailable; [weakSelf.mutableRemoteFileNames addObject:fileName]; [weakSelf.uploadedEphemeralFileNames addObject:fileName]; } else { - self.failedFileUploadsCount = [self.class sdl_incrementFailedUploadCountForFileName:file.name failedFileUploadsCount:self.failedFileUploadsCount]; + weakSelf.failedFileUploadsCount = [weakSelf.class sdl_incrementFailedUploadCountForFileName:file.name failedFileUploadsCount:weakSelf.failedFileUploadsCount]; - UInt8 maxUploadCount = [file isKindOfClass:[SDLArtwork class]] ? self.maxArtworkUploadAttempts : self.maxFileUploadAttempts; - if ([self sdl_canFileBeUploadedAgain:file maxUploadCount:maxUploadCount failedFileUploadsCount:self.failedFileUploadsCount]) { + NSUInteger maxUploadCount = [file isMemberOfClass:[SDLArtwork class]] ? weakSelf.maxArtworkUploadAttempts : self.maxFileUploadAttempts; + if ([weakSelf sdl_canFileBeUploadedAgain:file maxUploadCount:maxUploadCount failedFileUploadsCount:weakSelf.failedFileUploadsCount]) { SDLLogD(@"Attempting to resend file with name %@ after a failed upload attempt", file.name); - return [self sdl_uploadFile:file completionHandler:handler]; - } else { - SDLLogE(@"File named %@ failed to upload. Max number of upload attempts reached", file.name); + return [weakSelf sdl_uploadFile:file completionHandler:handler]; } } @@ -409,18 +425,18 @@ - (void)sdl_uploadFile:(SDLFile *)file completionHandler:(nullable SDLFileManage SDLUploadFileOperation *uploadOperation = [[SDLUploadFileOperation alloc] initWithFile:fileWrapper connectionManager:self.connectionManager]; - self.uploadsInProgress[file.name] = uploadOperation; [self.transactionQueue addOperation:uploadOperation]; } #pragma mark Artworks - (void)uploadArtwork:(SDLArtwork *)artwork completionHandler:(nullable SDLFileManagerUploadArtworkCompletionHandler)completion { + __weak typeof(self) weakself = self; [self uploadFile:artwork completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { if (completion == nil) { return; } - if ([self sdl_isErrorCannotOverwriteError:error]) { + if ([weakself sdl_isErrorCannotOverwriteError:error]) { // Artwork with same name already uploaded to remote - return completion(true, artwork.name, bytesAvailable, nil); + return completion(YES, artwork.name, bytesAvailable, nil); } completion(success, artwork.name, bytesAvailable, error); }]; @@ -435,9 +451,10 @@ - (void)uploadArtworks:(NSArray *)artworks progressHandler:(nullab @throw [NSException sdl_missingFilesException]; } + __weak typeof(self) weakself = self; [self uploadFiles:artworks progressHandler:^BOOL(SDLFileName * _Nonnull fileName, float uploadPercentage, NSError * _Nullable error) { if (progressHandler == nil) { return YES; } - if ([self sdl_isErrorCannotOverwriteError:error]) { + if ([weakself sdl_isErrorCannotOverwriteError:error]) { return progressHandler(fileName, uploadPercentage, nil); } return progressHandler(fileName, uploadPercentage, error); @@ -452,7 +469,7 @@ - (void)uploadArtworks:(NSArray *)artworks progressHandler:(nullab if (error != nil) { for (NSString *erroredArtworkName in error.userInfo) { - if (![self sdl_isErrorCannotOverwriteError:[error.userInfo objectForKey:erroredArtworkName]]) { + if (![weakself sdl_isErrorCannotOverwriteError:error.userInfo[erroredArtworkName]]) { [successfulArtworkUploadNames removeObject:erroredArtworkName]; } else { // An overwrite error means that an artwork with the same name is already uploaded to the remote @@ -518,12 +535,29 @@ - (float)sdl_uploadPercentage:(float)totalBytes uploadedBytes:(float)uploadedByt * @param maxUploadCount The max number of times the file is allowed to be uploaded to Core * @return True if the file still needs to be (re)sent to Core; false if not. */ -- (BOOL)sdl_canFileBeUploadedAgain:(nullable SDLFile *)file maxUploadCount:(UInt8)maxUploadCount failedFileUploadsCount:(NSMutableDictionary *> *)failedFileUploadsCount { - if (!file || [self hasUploadedFile:file]) { +- (BOOL)sdl_canFileBeUploadedAgain:(nullable SDLFile *)file maxUploadCount:(NSUInteger)maxUploadCount failedFileUploadsCount:(NSMutableDictionary *> *)failedFileUploadsCount { + if (![self.currentState isEqualToString:SDLFileManagerStateReady]) { + SDLLogW(@"File named %@ failed to upload. The file manager has shutdown so the file upload will not retry.", file.name); + return NO; + } + + if (!file) { + SDLLogE(@"File can not be uploaded because it is not a valid file."); return NO; } + + if ([self hasUploadedFile:file]) { + SDLLogD(@"File named %@ has already been uploaded.", file.name); + return NO; + } + NSNumber *failedUploadCount = failedFileUploadsCount[file.name]; - return (failedUploadCount == nil) ? YES : (failedUploadCount.integerValue < maxUploadCount); + BOOL canFileBeUploadedAgain = (failedUploadCount == nil) ? YES : (failedUploadCount.unsignedIntegerValue < maxUploadCount); + if (!canFileBeUploadedAgain) { + SDLLogE(@"File named %@ failed to upload. Max number of upload attempts reached.", file.name); + } + + return canFileBeUploadedAgain; } /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConfiguration.h index 693a411..7bf61df 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConfiguration.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConfiguration.h @@ -12,6 +12,7 @@ NS_ASSUME_NONNULL_BEGIN +/// File manager configuration information @interface SDLFileManagerConfiguration : NSObject /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConstants.h index 39950b4..d6733f8 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConstants.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConstants.h @@ -12,6 +12,7 @@ NS_ASSUME_NONNULL_BEGIN +/// Typedef SDLFileName typedef NSString SDLFileName; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.h index 3f065f1..02afcb5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.h @@ -14,6 +14,11 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLFocusableItemLocator : NSObject +/** + Whether or not this will attempt to send haptic RPCs. + + @note Defaults to NO. + */ @property (nonatomic, assign) BOOL enableHapticDataRequests; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.m index 1969512..e416c2a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.m @@ -13,6 +13,7 @@ #import "SDLRectangle.h" #import "SDLHapticRect.h" #import "SDLSendHapticData.h" +#import "SDLStreamingVideoScaleManager.h" #import "SDLTouch.h" NS_ASSUME_NONNULL_BEGIN @@ -23,17 +24,18 @@ @interface SDLFocusableItemLocator() Array of focusable view objects extracted from the projection window */ @property (nonatomic, strong) NSMutableArray *focusableViews; +@property (nonatomic, weak) id connectionManager; /** - reference to SDLConnectionManager - */ -@property (nonatomic, weak) id connectionManager; -@end + The scale manager that scales from the display screen coordinate system to the app's viewport coordinate system +*/ +@property (strong, nonatomic) SDLStreamingVideoScaleManager *videoScaleManager; +@end @implementation SDLFocusableItemLocator -- (instancetype)initWithViewController:(UIViewController *)viewController connectionManager:(id)connectionManager { +- (instancetype)initWithViewController:(UIViewController *)viewController connectionManager:(id)connectionManager videoScaleManager:(SDLStreamingVideoScaleManager *)videoScaleManager { self = [super init]; if(!self) { return nil; @@ -41,24 +43,41 @@ - (instancetype)initWithViewController:(UIViewController *)viewController connec _viewController = viewController; _connectionManager = connectionManager; + _videoScaleManager = videoScaleManager; + _focusableViews = [NSMutableArray array]; + _enableHapticDataRequests = NO; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_projectionViewUpdated:) name:SDLDidUpdateProjectionView object:nil]; return self; } +- (void)start { + SDLLogD(@"Starting"); + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_projectionViewUpdated:) name:SDLDidUpdateProjectionView object:nil]; +} + +- (void)stop { + SDLLogD(@"Stopping"); + [[NSNotificationCenter defaultCenter] removeObserver:self]; + [self.focusableViews removeAllObjects]; +} + - (void)updateInterfaceLayout { if (@available(iOS 9.0, *)) { - self.focusableViews = [[NSMutableArray alloc] init]; + [self.focusableViews removeAllObjects]; [self sdl_parseViewHierarchy:self.viewController.view]; - // If there is a preferred view bring that into top of the array + // If there is a preferred view, move it to the front of the array NSUInteger preferredViewIndex = [self.focusableViews indexOfObject:self.viewController.view.subviews.lastObject.preferredFocusedView]; if (preferredViewIndex != NSNotFound && self.focusableViews.count > 1) { [self.focusableViews exchangeObjectAtIndex:preferredViewIndex withObjectAtIndex:0]; } + SDLLogD(@"Updated VC layout, sending new haptic rects"); + SDLLogV(@"For focusable views: %@", self.focusableViews); [self sdl_sendHapticRPC]; + } else { + SDLLogE(@"Attempted to update user interface layout, but it only works on iOS 9.0+"); } } @@ -73,10 +92,14 @@ - (void)sdl_parseViewHierarchy:(UIView *)currentView { return; } + SDLLogD(@"Parsing UIView heirarchy"); + SDLLogV(@"UIView: %@", currentView); if (@available(iOS 9.0, *)) { + // Finding focusable subviews NSArray *focusableSubviews = [currentView.subviews filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(UIView * _Nullable evaluatedObject, NSDictionary * _Nullable bindings) { return (evaluatedObject.canBecomeFocused || [evaluatedObject isKindOfClass:[UIButton class]]); }]]; + SDLLogV(@"Found focusable subviews: %@", focusableSubviews); BOOL isButton = [currentView isKindOfClass:[UIButton class]]; if ((currentView.canBecomeFocused || isButton) && focusableSubviews.count == 0) { @@ -101,29 +124,37 @@ - (void)sdl_parseViewHierarchy:(UIView *)currentView { */ - (void)sdl_sendHapticRPC { if (!self.enableHapticDataRequests) { + SDLLogV(@"Attempting to send haptic data to a head unit that does not support haptic data. Haptic data will not be sent."); + return; + } + + if (self.focusableViews.count == 0) { + SDLLogV(@"No haptic data to send for this view."); return; } NSMutableArray *hapticRects = [[NSMutableArray alloc] init]; - for (UIView *view in self.focusableViews) { CGPoint originOnScreen = [self.viewController.view convertPoint:view.frame.origin toView:nil]; CGRect convertedRect = {originOnScreen, view.bounds.size}; - SDLRectangle* rect = [[SDLRectangle alloc] initWithCGRect:(convertedRect)]; + SDLRectangle *rect = [[SDLRectangle alloc] initWithCGRect:convertedRect]; // using the view index as the id field in SendHapticData request (should be guaranteed unique) NSUInteger rectId = [self.focusableViews indexOfObject:view]; SDLHapticRect *hapticRect = [[SDLHapticRect alloc] initWithId:(UInt32)rectId rect:rect]; + hapticRect = [self.videoScaleManager scaleHapticRect:hapticRect]; + [hapticRects addObject:hapticRect]; } - - SDLSendHapticData* hapticRPC = [[SDLSendHapticData alloc] initWithHapticRectData:hapticRects]; + + SDLLogV(@"Sending haptic data: %@", hapticRects); + SDLSendHapticData *hapticRPC = [[SDLSendHapticData alloc] initWithHapticRectData:hapticRects]; [self.connectionManager sendConnectionManagerRequest:hapticRPC withResponseHandler:nil]; } #pragma mark SDLFocusableItemHitTester functions - (nullable UIView *)viewForPoint:(CGPoint)point { UIView *selectedView = nil; - + for (UIView *view in self.focusableViews) { //Convert the absolute location to local location and check if that falls within view boundary CGPoint localPoint = [view convertPoint:point fromView:self.viewController.view]; @@ -137,7 +168,8 @@ - (nullable UIView *)viewForPoint:(CGPoint)point { } } } - + + SDLLogD(@"Found a focusable view: %@, for point: %@", selectedView, NSStringFromCGPoint(point)); return selectedView; } @@ -148,7 +180,13 @@ - (nullable UIView *)viewForPoint:(CGPoint)point { @param notification object with notification data */ - (void)sdl_projectionViewUpdated:(NSNotification *)notification { - [self updateInterfaceLayout]; + if ([NSThread isMainThread]) { + [self updateInterfaceLayout]; + } else { + dispatch_async(dispatch_get_main_queue(), ^{ + [self updateInterfaceLayout]; + }); + } } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocatorType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocatorType.h index 64c2337..cc43ad2 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocatorType.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocatorType.h @@ -9,6 +9,7 @@ #import "SDLConnectionManagerType.h" @class SDLManager; +@class SDLStreamingVideoScaleManager; NS_ASSUME_NONNULL_BEGIN @@ -31,8 +32,15 @@ NS_ASSUME_NONNULL_BEGIN @param viewController UIViewController to be checked for focusable views @param connectionManager Object of a class that implements ConnectionManagerType. This is used for RPC communication. + @param videoScaleManager The scale manager that scales from the display screen coordinate system to the app's viewport coordinate system */ -- (instancetype)initWithViewController:(UIViewController *)viewController connectionManager:(id)connectionManager; +- (instancetype)initWithViewController:(UIViewController *)viewController connectionManager:(id)connectionManager videoScaleManager:(SDLStreamingVideoScaleManager *)videoScaleManager; + +/// Start observing updates +- (void)start; + +/// Stop observing updates and clear data +- (void)stop; /** updateInterfaceLayout crawls through the view hierarchy, updates and keep tracks of views to be reported through Haptic RPC. This function is automatically called when SDLDidUpdateProjectionView notification is sent by the application. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelRange.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelRange.m index 19ebeba..1512a09 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelRange.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelRange.m @@ -9,26 +9,26 @@ #import "SDLFuelRange.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLFuelRange - (void)setType:(nullable SDLFuelType)type { - [store sdl_setObject:type forName:SDLNameType]; + [self.store sdl_setObject:type forName:SDLRPCParameterNameType]; } - (nullable SDLFuelType)type { - return [store sdl_objectForName:SDLNameType]; + return [self.store sdl_enumForName:SDLRPCParameterNameType error:nil]; } - (void)setRange:(nullable NSNumber *)range { - [store sdl_setObject:range forName:SDLNameRange]; + [self.store sdl_setObject:range forName:SDLRPCParameterNameRange]; } - (nullable NSNumber *)range { - return [store sdl_objectForName:SDLNameRange]; + return [self.store sdl_objectForName:SDLRPCParameterNameRange ofClass:NSNumber.class error:nil]; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.h index d82e38d..575d176 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.h @@ -1,21 +1,28 @@ // SDLFunctionID.h // - #import - -#import "NSMutableDictionary+Store.h" -#import "SDLNames.h" #import "NSNumber+NumberType.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN +/// A function ID for an SDL RPC @interface SDLFunctionID : NSObject +/// The shared object for pulling function id information + (instancetype)sharedInstance; -- (nullable SDLName)functionNameForId:(UInt32)functionID; -- (nullable NSNumber *)functionIdForName:(SDLName)functionName; +/// Gets the function name for a given SDL RPC function ID +/// +/// @param functionID A function ID +/// @returns An SDLRPCFunctionName +- (nullable SDLRPCFunctionName)functionNameForId:(UInt32)functionID; + +/// Gets the function ID for a given SDL RPC function name +/// +/// @param functionName The RPC function name +- (nullable NSNumber *)functionIdForName:(SDLRPCFunctionName)functionName; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.m index f96bc83..1a3b93b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.m @@ -4,6 +4,9 @@ #import "SDLFunctionID.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCFunctionNames.h" + NS_ASSUME_NONNULL_BEGIN @interface SDLFunctionID () @@ -30,86 +33,105 @@ - (instancetype)init { } self.functionIds = @{ - @0: SDLNameReserved, - @1: SDLNameRegisterAppInterface, - @2: SDLNameUnregisterAppInterface, - @3: SDLNameSetGlobalProperties, - @4: SDLNameResetGlobalProperties, - @5: SDLNameAddCommand, - @6: SDLNameDeleteCommand, - @7: SDLNameAddSubMenu, - @8: SDLNameDeleteSubMenu, - @9: SDLNameCreateInteractionChoiceSet, - @10: SDLNamePerformInteraction, - @11: SDLNameDeleteInteractionChoiceSet, - @12: SDLNameAlert, - @13: SDLNameShow, - @14: SDLNameSpeak, - @15: SDLNameSetMediaClockTimer, - @16: SDLNamePerformAudioPassThru, - @17: SDLNameEndAudioPassThru, - @18: SDLNameSubscribeButton, - @19: SDLNameUnsubscribeButton, - @20: SDLNameSubscribeVehicleData, - @21: SDLNameUnsubscribeVehicleData, - @22: SDLNameGetVehicleData, - @23: SDLNameReadDID, - @24: SDLNameGetDTCs, - @25: SDLNameScrollableMessage, - @26: SDLNameSlider, - @27: SDLNameShowConstantTBT, - @28: SDLNameAlertManeuver, - @29: SDLNameUpdateTurnList, - @30: SDLNameChangeRegistration, - @31: SDLNameGenericResponse, - @32: SDLNamePutFile, - @33: SDLNameDeleteFile, - @34: SDLNameListFiles, - @35: SDLNameSetAppIcon, - @36: SDLNameSetDisplayLayout, - @37: SDLNameDiagnosticMessage, - @38: SDLNameSystemRequest, - @39: SDLNameSendLocation, - @40: SDLNameDialNumber, - @41: SDLNameButtonPress, - @43: SDLNameGetInteriorVehicleData, - @44: SDLNameSetInteriorVehicleData, - @45: SDLNameGetWayPoints, - @46: SDLNameSubscribeWayPoints, - @47: SDLNameUnsubscribeWayPoints, - @48: SDLNameGetSystemCapability, - @49: SDLNameSendHapticData, - @32768: SDLNameOnHMIStatus, - @32769: SDLNameOnAppInterfaceUnregistered, - @32770: SDLNameOnButtonEvent, - @32771: SDLNameOnButtonPress, - @32772: SDLNameOnVehicleData, - @32773: SDLNameOnCommand, - @32774: SDLNameOnTBTClientState, - @32775: SDLNameOnDriverDistraction, - @32776: SDLNameOnPermissionsChange, - @32777: SDLNameOnAudioPassThru, - @32778: SDLNameOnLanguageChange, - @32779: SDLNameOnKeyboardInput, - @32780: SDLNameOnTouchEvent, - @32781: SDLNameOnSystemRequest, - @32782: SDLNameOnHashChange, - @32783: SDLNameOnInteriorVehicleData, - @32784: SDLNameOnWayPointChange, - @32785: SDLNameOnRCStatus, - @65536: SDLNameEncodedSyncPData, - @65537: SDLNameSyncPData, - @98304: SDLNameOnEncodedSyncPData, - @98305: SDLNameOnSyncPData + @0: SDLRPCFunctionNameReserved, + @1: SDLRPCFunctionNameRegisterAppInterface, + @2: SDLRPCFunctionNameUnregisterAppInterface, + @3: SDLRPCFunctionNameSetGlobalProperties, + @4: SDLRPCFunctionNameResetGlobalProperties, + @5: SDLRPCFunctionNameAddCommand, + @6: SDLRPCFunctionNameDeleteCommand, + @7: SDLRPCFunctionNameAddSubMenu, + @8: SDLRPCFunctionNameDeleteSubMenu, + @9: SDLRPCFunctionNameCreateInteractionChoiceSet, + @10: SDLRPCFunctionNamePerformInteraction, + @11: SDLRPCFunctionNameDeleteInteractionChoiceSet, + @12: SDLRPCFunctionNameAlert, + @13: SDLRPCFunctionNameShow, + @14: SDLRPCFunctionNameSpeak, + @15: SDLRPCFunctionNameSetMediaClockTimer, + @16: SDLRPCFunctionNamePerformAudioPassThru, + @17: SDLRPCFunctionNameEndAudioPassThru, + @18: SDLRPCFunctionNameSubscribeButton, + @19: SDLRPCFunctionNameUnsubscribeButton, + @20: SDLRPCFunctionNameSubscribeVehicleData, + @21: SDLRPCFunctionNameUnsubscribeVehicleData, + @22: SDLRPCFunctionNameGetVehicleData, + @23: SDLRPCFunctionNameReadDID, + @24: SDLRPCFunctionNameGetDTCs, + @25: SDLRPCFunctionNameScrollableMessage, + @26: SDLRPCFunctionNameSlider, + @27: SDLRPCFunctionNameShowConstantTBT, + @28: SDLRPCFunctionNameAlertManeuver, + @29: SDLRPCFunctionNameUpdateTurnList, + @30: SDLRPCFunctionNameChangeRegistration, + @31: SDLRPCFunctionNameGenericResponse, + @32: SDLRPCFunctionNamePutFile, + @33: SDLRPCFunctionNameDeleteFile, + @34: SDLRPCFunctionNameListFiles, + @35: SDLRPCFunctionNameSetAppIcon, + @36: SDLRPCFunctionNameSetDisplayLayout, + @37: SDLRPCFunctionNameDiagnosticMessage, + @38: SDLRPCFunctionNameSystemRequest, + @39: SDLRPCFunctionNameSendLocation, + @40: SDLRPCFunctionNameDialNumber, + @41: SDLRPCFunctionNameButtonPress, + @43: SDLRPCFunctionNameGetInteriorVehicleData, + @44: SDLRPCFunctionNameSetInteriorVehicleData, + @45: SDLRPCFunctionNameGetWayPoints, + @46: SDLRPCFunctionNameSubscribeWayPoints, + @47: SDLRPCFunctionNameUnsubscribeWayPoints, + @48: SDLRPCFunctionNameGetSystemCapability, + @49: SDLRPCFunctionNameSendHapticData, + @50: SDLRPCFunctionNameSetCloudAppProperties, + @51: SDLRPCFunctionNameGetCloudAppProperties, + @52: SDLRPCFunctionNamePublishAppService, + @53: SDLRPCFunctionNameGetAppServiceData, + @54: SDLRPCFunctionNameGetFile, + @55: SDLRPCFunctionNamePerformAppServiceInteraction, + @56: SDLRPCFunctionNameUnpublishAppService, + @57: SDLRPCFunctionNameCancelInteraction, + @58: SDLRPCFunctionNameCloseApplication, + @59: SDLRPCFunctionNameShowAppMenu, + @60: SDLRPCFunctionNameCreateWindow, + @61: SDLRPCFunctionNameDeleteWindow, + @62: SDLRPCFunctionNameGetInteriorVehicleDataConsent, + @63: SDLRPCFunctionNameReleaseInteriorVehicleDataModule, + @32768: SDLRPCFunctionNameOnHMIStatus, + @32769: SDLRPCFunctionNameOnAppInterfaceUnregistered, + @32770: SDLRPCFunctionNameOnButtonEvent, + @32771: SDLRPCFunctionNameOnButtonPress, + @32772: SDLRPCFunctionNameOnVehicleData, + @32773: SDLRPCFunctionNameOnCommand, + @32774: SDLRPCFunctionNameOnTBTClientState, + @32775: SDLRPCFunctionNameOnDriverDistraction, + @32776: SDLRPCFunctionNameOnPermissionsChange, + @32777: SDLRPCFunctionNameOnAudioPassThru, + @32778: SDLRPCFunctionNameOnLanguageChange, + @32779: SDLRPCFunctionNameOnKeyboardInput, + @32780: SDLRPCFunctionNameOnTouchEvent, + @32781: SDLRPCFunctionNameOnSystemRequest, + @32782: SDLRPCFunctionNameOnHashChange, + @32783: SDLRPCFunctionNameOnInteriorVehicleData, + @32784: SDLRPCFunctionNameOnWayPointChange, + @32785: SDLRPCFunctionNameOnRCStatus, + @32786: SDLRPCFunctionNameOnAppServiceData, + @32787: SDLRPCFunctionNameOnSystemCapabilityUpdated, +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + @65536: SDLRPCFunctionNameEncodedSyncPData, + @65537: SDLRPCFunctionNameSyncPData, + @98304: SDLRPCFunctionNameOnEncodedSyncPData, + @98305: SDLRPCFunctionNameOnSyncPData +#pragma clang diagnostic pop }; return self; } -- (nullable SDLName)functionNameForId:(UInt32)functionID { +- (nullable SDLRPCFunctionName)functionNameForId:(UInt32)functionID { return self.functionIds[@(functionID)]; } -- (nullable NSNumber *)functionIdForName:(SDLName)functionName { +- (nullable NSNumber *)functionIdForName:(SDLRPCFunctionName)functionName { return [[self.functionIds allKeysForObject:functionName] firstObject]; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.h index f0bead9..417a99a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.h @@ -151,6 +151,15 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSNumber *speed; +/** + * True, if GPS lat/long, time, and altitude have been purposefully shifted (requires a proprietary algorithm to unshift). + * False, if the GPS data is raw and un-shifted. + * If not provided, then value is assumed False. + * + * Optional, BOOL + */ +@property (nullable, strong, nonatomic) NSNumber *shifted; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.m index eda7edb..e70c6ff 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.m @@ -4,154 +4,164 @@ #import "SDLGPSData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGPSData - (void)setLongitudeDegrees:(NSNumber *)longitudeDegrees { - [store sdl_setObject:longitudeDegrees forName:SDLNameLongitudeDegrees]; + [self.store sdl_setObject:longitudeDegrees forName:SDLRPCParameterNameLongitudeDegrees]; } - (NSNumber *)longitudeDegrees { - return [store sdl_objectForName:SDLNameLongitudeDegrees]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLongitudeDegrees ofClass:NSNumber.class error:&error]; } - (void)setLatitudeDegrees:(NSNumber *)latitudeDegrees { - [store sdl_setObject:latitudeDegrees forName:SDLNameLatitudeDegrees]; + [self.store sdl_setObject:latitudeDegrees forName:SDLRPCParameterNameLatitudeDegrees]; } - (NSNumber *)latitudeDegrees { - return [store sdl_objectForName:SDLNameLatitudeDegrees]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLatitudeDegrees ofClass:NSNumber.class error:&error]; } - (void)setUtcYear:(nullable NSNumber *)utcYear { - [store sdl_setObject:utcYear forName:SDLNameUTCYear]; + [self.store sdl_setObject:utcYear forName:SDLRPCParameterNameUTCYear]; } - (nullable NSNumber *)utcYear { - return [store sdl_objectForName:SDLNameUTCYear]; + return [self.store sdl_objectForName:SDLRPCParameterNameUTCYear ofClass:NSNumber.class error:nil]; } - (void)setUtcMonth:(nullable NSNumber *)utcMonth { - [store sdl_setObject:utcMonth forName:SDLNameUTCMonth]; + [self.store sdl_setObject:utcMonth forName:SDLRPCParameterNameUTCMonth]; } - (nullable NSNumber *)utcMonth { - return [store sdl_objectForName:SDLNameUTCMonth]; + return [self.store sdl_objectForName:SDLRPCParameterNameUTCMonth ofClass:NSNumber.class error:nil]; } - (void)setUtcDay:(nullable NSNumber *)utcDay { - [store sdl_setObject:utcDay forName:SDLNameUTCDay]; + [self.store sdl_setObject:utcDay forName:SDLRPCParameterNameUTCDay]; } - (nullable NSNumber *)utcDay { - return [store sdl_objectForName:SDLNameUTCDay]; + return [self.store sdl_objectForName:SDLRPCParameterNameUTCDay ofClass:NSNumber.class error:nil]; } - (void)setUtcHours:(nullable NSNumber *)utcHours { - [store sdl_setObject:utcHours forName:SDLNameUTCHours]; + [self.store sdl_setObject:utcHours forName:SDLRPCParameterNameUTCHours]; } - (nullable NSNumber *)utcHours { - return [store sdl_objectForName:SDLNameUTCHours]; + return [self.store sdl_objectForName:SDLRPCParameterNameUTCHours ofClass:NSNumber.class error:nil]; } - (void)setUtcMinutes:(nullable NSNumber *)utcMinutes { - [store sdl_setObject:utcMinutes forName:SDLNameUTCMinutes]; + [self.store sdl_setObject:utcMinutes forName:SDLRPCParameterNameUTCMinutes]; } - (nullable NSNumber *)utcMinutes { - return [store sdl_objectForName:SDLNameUTCMinutes]; + return [self.store sdl_objectForName:SDLRPCParameterNameUTCMinutes ofClass:NSNumber.class error:nil]; } - (void)setUtcSeconds:(nullable NSNumber *)utcSeconds { - [store sdl_setObject:utcSeconds forName:SDLNameUTCSeconds]; + [self.store sdl_setObject:utcSeconds forName:SDLRPCParameterNameUTCSeconds]; } - (nullable NSNumber *)utcSeconds { - return [store sdl_objectForName:SDLNameUTCSeconds]; + return [self.store sdl_objectForName:SDLRPCParameterNameUTCSeconds ofClass:NSNumber.class error:nil]; } - (void)setCompassDirection:(nullable SDLCompassDirection)compassDirection { - [store sdl_setObject:compassDirection forName:SDLNameCompassDirection]; + [self.store sdl_setObject:compassDirection forName:SDLRPCParameterNameCompassDirection]; } - (nullable SDLCompassDirection)compassDirection { - return [store sdl_objectForName:SDLNameCompassDirection]; + return [self.store sdl_enumForName:SDLRPCParameterNameCompassDirection error:nil]; } - (void)setPdop:(nullable NSNumber *)pdop { - [store sdl_setObject:pdop forName:SDLNamePDOP]; + [self.store sdl_setObject:pdop forName:SDLRPCParameterNamePDOP]; } - (nullable NSNumber *)pdop { - return [store sdl_objectForName:SDLNamePDOP]; + return [self.store sdl_objectForName:SDLRPCParameterNamePDOP ofClass:NSNumber.class error:nil]; } - (void)setHdop:(nullable NSNumber *)hdop { - [store sdl_setObject:hdop forName:SDLNameHDOP]; + [self.store sdl_setObject:hdop forName:SDLRPCParameterNameHDOP]; } - (nullable NSNumber *)hdop { - return [store sdl_objectForName:SDLNameHDOP]; + return [self.store sdl_objectForName:SDLRPCParameterNameHDOP ofClass:NSNumber.class error:nil]; } - (void)setVdop:(nullable NSNumber *)vdop { - [store sdl_setObject:vdop forName:SDLNameVDOP]; + [self.store sdl_setObject:vdop forName:SDLRPCParameterNameVDOP]; } - (nullable NSNumber *)vdop { - return [store sdl_objectForName:SDLNameVDOP]; + return [self.store sdl_objectForName:SDLRPCParameterNameVDOP ofClass:NSNumber.class error:nil]; } - (void)setActual:(nullable NSNumber *)actual { - [store sdl_setObject:actual forName:SDLNameActual]; + [self.store sdl_setObject:actual forName:SDLRPCParameterNameActual]; } - (nullable NSNumber *)actual { - return [store sdl_objectForName:SDLNameActual]; + return [self.store sdl_objectForName:SDLRPCParameterNameActual ofClass:NSNumber.class error:nil]; } - (void)setSatellites:(nullable NSNumber *)satellites { - [store sdl_setObject:satellites forName:SDLNameSatellites]; + [self.store sdl_setObject:satellites forName:SDLRPCParameterNameSatellites]; } - (nullable NSNumber *)satellites { - return [store sdl_objectForName:SDLNameSatellites]; + return [self.store sdl_objectForName:SDLRPCParameterNameSatellites ofClass:NSNumber.class error:nil]; } - (void)setDimension:(nullable SDLDimension)dimension { - [store sdl_setObject:dimension forName:SDLNameDimension]; + [self.store sdl_setObject:dimension forName:SDLRPCParameterNameDimension]; } - (nullable SDLDimension)dimension { - return [store sdl_objectForName:SDLNameDimension]; + return [self.store sdl_enumForName:SDLRPCParameterNameDimension error:nil]; } - (void)setAltitude:(nullable NSNumber *)altitude { - [store sdl_setObject:altitude forName:SDLNameAltitude]; + [self.store sdl_setObject:altitude forName:SDLRPCParameterNameAltitude]; } - (nullable NSNumber *)altitude { - return [store sdl_objectForName:SDLNameAltitude]; + return [self.store sdl_objectForName:SDLRPCParameterNameAltitude ofClass:NSNumber.class error:nil]; } - (void)setHeading:(nullable NSNumber *)heading { - [store sdl_setObject:heading forName:SDLNameHeading]; + [self.store sdl_setObject:heading forName:SDLRPCParameterNameHeading]; } - (nullable NSNumber *)heading { - return [store sdl_objectForName:SDLNameHeading]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeading ofClass:NSNumber.class error:nil]; } - (void)setSpeed:(nullable NSNumber *)speed { - [store sdl_setObject:speed forName:SDLNameSpeed]; + [self.store sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber *)speed { - return [store sdl_objectForName:SDLNameSpeed]; + return [self.store sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; +} + +- (void)setShifted:(nullable NSNumber *)shifted { + [self.store sdl_setObject:shifted forName:SDLRPCParameterNameShifted]; +} + +- (nullable NSNumber *)shifted { + return [self.store sdl_objectForName:SDLRPCParameterNameShifted ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGenericResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGenericResponse.m index 6c38490..59cca10 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGenericResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGenericResponse.m @@ -5,17 +5,21 @@ #import "SDLGenericResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGenericResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameGenericResponse]) { + if (self = [super initWithName:SDLRPCFunctionNameGenericResponse]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.h new file mode 100644 index 0000000..e1882a3 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.h @@ -0,0 +1,61 @@ +// +// SDLGetAppServiceData.h +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +#import "SDLAppServiceType.h" + + +NS_ASSUME_NONNULL_BEGIN + +/** + * This request asks the module for current data related to the specific service. It also includes an option to subscribe to that service for future updates. + */ +@interface SDLGetAppServiceData : SDLRPCRequest + +/** + * Convenience init for service type. + * + * @param serviceType The app service type + * @return A SDLGetAppServiceData object + */ +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType; + +/** + * Convenience init for subscribing to a service type. + * + * @param serviceType The app service type + * @return A SDLGetAppServiceData object + */ +- (instancetype)initAndSubscribeToAppServiceType:(SDLAppServiceType)serviceType; + +/** + Convenience init for unsubscribing to a service type + + @param serviceType The app service type + @return A SDLGetAppServiceData object + */ +- (instancetype)initAndUnsubscribeToAppServiceType:(SDLAppServiceType)serviceType; + +/** + * The type of service that is to be offered by this app. See `AppServiceType` for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core. + * + * String, See `SDLAppServiceType`, Required + */ +@property (strong, nonatomic) NSString *serviceType; + +/** + * If true, the consumer is requesting to subscribe to all future updates from the service publisher. If false, the consumer doesn't wish to subscribe and should be unsubscribed if it was previously subscribed. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *subscribe; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.m new file mode 100644 index 0000000..55efbbd --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.m @@ -0,0 +1,77 @@ +// +// SDLGetAppServiceData.m +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetAppServiceData.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetAppServiceData + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetAppServiceData]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType { + self = [self init]; + if (!self) { + return nil; + } + + self.serviceType = serviceType; + + return self; +} + +- (instancetype)initAndSubscribeToAppServiceType:(SDLAppServiceType)serviceType { + return [self initWithServiceType:serviceType subscribe:YES]; +} + +- (instancetype)initAndUnsubscribeToAppServiceType:(SDLAppServiceType)serviceType { + return [self initWithServiceType:serviceType subscribe:NO]; +} + +- (instancetype)initWithServiceType:(SDLAppServiceType)serviceType subscribe:(BOOL)subscribe { + self = [self initWithAppServiceType:serviceType]; + if (!self) { + return nil; + } + + self.subscribe = @(subscribe); + + return self; +} + +- (void)setServiceType:(NSString *)serviceType { + [self.parameters sdl_setObject:serviceType forName:SDLRPCParameterNameServiceType]; +} + +- (NSString *)serviceType { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceType ofClass:NSString.class error:&error]; +} + +- (void)setSubscribe:(nullable NSNumber *)subscribe { + [self.parameters sdl_setObject:subscribe forName:SDLRPCParameterNameSubscribe]; +} + +- (nullable NSNumber *)subscribe { + return [self.parameters sdl_objectForName:SDLRPCParameterNameSubscribe ofClass:NSNumber.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.h new file mode 100644 index 0000000..30b2c6c --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.h @@ -0,0 +1,37 @@ +// +// SDLGetAppServiceDataResponse.h +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +@class SDLAppServiceData; + +NS_ASSUME_NONNULL_BEGIN + +/** + * This response includes the data that was requested from the specific service. + */ +@interface SDLGetAppServiceDataResponse : SDLRPCResponse + +/** + * Convenience init. + * + * @param serviceData Contains all the current data of the app service + * @return A SDLGetAppServiceDataResponse object + */ +- (instancetype)initWithAppServiceData:(SDLAppServiceData *)serviceData; + +/** + * Contains all the current data of the app service. + * + * SDLAppServiceData, Optional + */ +@property (nullable, strong, nonatomic) SDLAppServiceData *serviceData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.m new file mode 100644 index 0000000..110d673 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.m @@ -0,0 +1,50 @@ +// +// SDLGetAppServiceDataResponse.m +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetAppServiceDataResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLAppServiceData.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetAppServiceDataResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetAppServiceData]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithAppServiceData:(SDLAppServiceData *)serviceData { + self = [self init]; + if (!self) { + return nil; + } + + self.serviceData = serviceData; + + return self; +} + +- (void)setServiceData:(nullable SDLAppServiceData *)serviceData { + [self.parameters sdl_setObject:serviceData forName:SDLRPCParameterNameServiceData]; +} + +- (nullable SDLAppServiceData *)serviceData { + return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceData ofClass:SDLAppServiceData.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.h new file mode 100644 index 0000000..9103b3a --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.h @@ -0,0 +1,35 @@ +// +// SDLGetCloudAppProperties.h +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * RPC used to get the current properties of a cloud application. + */ +@interface SDLGetCloudAppProperties : SDLRPCRequest + +/** + * Convenience init. + * + * @param appID The id of the cloud app + * @return A SDLGetCloudAppProperties object + */ +- (instancetype)initWithAppID:(NSString *)appID; + +/** + * The id of the cloud app. + * + * String, Required, maxlength="100" + */ +@property (strong, nonatomic) NSString *appID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.m new file mode 100644 index 0000000..030c2bd --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.m @@ -0,0 +1,50 @@ +// +// SDLGetCloudAppProperties.m +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetCloudAppProperties.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetCloudAppProperties + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetCloudAppProperties]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithAppID:(NSString *)appID { + self = [self init]; + if (!self) { + return nil; + } + + self.appID = appID; + + return self; +} + +- (void)setAppID:(NSString *)appID { + [self.parameters sdl_setObject:appID forName:SDLRPCParameterNameAppId]; +} + +- (NSString *)appID { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAppId ofClass:NSString.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h new file mode 100644 index 0000000..356bd32 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h @@ -0,0 +1,38 @@ +// +// SDLGetCloudAppPropertiesResponse.h +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +@class SDLCloudAppProperties; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * The response to GetCloudAppProperties + */ +@interface SDLGetCloudAppPropertiesResponse : SDLRPCResponse + +/** + * Convenience init. + * + * @param properties The requested cloud application properties + * @return A SDLGetCloudAppPropertiesResponse object + */ +- (instancetype)initWithProperties:(SDLCloudAppProperties *)properties; + +/** + * The requested cloud application properties. + * + * SDLCloudAppProperties, Optional + */ +@property (nullable, strong, nonatomic) SDLCloudAppProperties *properties; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m new file mode 100644 index 0000000..6114c46 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m @@ -0,0 +1,51 @@ +// +// SDLGetCloudAppPropertiesResponse.m +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetCloudAppPropertiesResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLCloudAppProperties.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetCloudAppPropertiesResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetCloudAppProperties]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithProperties:(SDLCloudAppProperties *)properties { + self = [self init]; + if (!self) { + return nil; + } + + self.properties = properties; + + return self; +} + +- (void)setProperties:(nullable SDLCloudAppProperties *)properties { + [self.parameters sdl_setObject:properties forName:SDLRPCParameterNameProperties]; +} + +- (nullable SDLCloudAppProperties *)properties { + return [self.parameters sdl_objectForName:SDLRPCParameterNameProperties ofClass:SDLCloudAppProperties.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.h index 3cc55e5..2ba8339 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.h @@ -18,8 +18,17 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLGetDTCs : SDLRPCRequest +/// Convenience init +/// +/// @param name Name of the module to receive the DTC form +/// @return An SDLGetDTCs object - (instancetype)initWithECUName:(UInt16)name; +/// Convenience init with all properties +/// +/// @param name Name of the module to receive the DTC form +/// @param mask DTC Mask Byte to be sent in diagnostic request to module +/// @return An SDLGetDTCs object - (instancetype)initWithECUName:(UInt16)name mask:(UInt8)mask; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.m index 3bbd551..95fcff1 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.m @@ -5,17 +5,21 @@ #import "SDLGetDTCs.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetDTCs +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameGetDTCs]) { + if (self = [super initWithName:SDLRPCFunctionNameGetDTCs]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithECUName:(UInt16)name mask:(UInt8)mask { self = [self initWithECUName:name]; @@ -40,19 +44,20 @@ - (instancetype)initWithECUName:(UInt16)name { } - (void)setEcuName:(NSNumber *)ecuName { - [parameters sdl_setObject:ecuName forName:SDLNameECUName]; + [self.parameters sdl_setObject:ecuName forName:SDLRPCParameterNameECUName]; } - (NSNumber *)ecuName { - return [parameters sdl_objectForName:SDLNameECUName]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameECUName ofClass:NSNumber.class error:&error]; } - (void)setDtcMask:(nullable NSNumber *)dtcMask { - [parameters sdl_setObject:dtcMask forName:SDLNameDTCMask]; + [self.parameters sdl_setObject:dtcMask forName:SDLRPCParameterNameDTCMask]; } - (nullable NSNumber *)dtcMask { - return [parameters sdl_objectForName:SDLNameDTCMask]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDTCMask ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.h index 3a8a5a9..fd05f41 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.h @@ -16,8 +16,10 @@ NS_ASSUME_NONNULL_BEGIN /** 2 byte ECU Header for DTC response (as defined in VHR_Layout_Specification_DTCs.pdf) + + Optional */ -@property (strong, nonatomic) NSNumber *ecuHeader; +@property (nullable, strong, nonatomic) NSNumber *ecuHeader; /** Array of all reported DTCs on module (ecuHeader contains information if list is truncated). Each DTC is represented by 4 bytes (3 bytes of data and 1 byte status as defined in VHR_Layout_Specification_DTCs.pdf). diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.m index 898a36d..3d141c9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.m @@ -5,32 +5,38 @@ #import "SDLGetDTCsResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetDTCsResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameGetDTCs]) { + if (self = [super initWithName:SDLRPCFunctionNameGetDTCs]) { } return self; } +#pragma clang diagnostic pop -- (void)setEcuHeader:(NSNumber *)ecuHeader { - [parameters sdl_setObject:ecuHeader forName:SDLNameECUHeader]; +- (void)setEcuHeader:(nullable NSNumber *)ecuHeader { + [self.parameters sdl_setObject:ecuHeader forName:SDLRPCParameterNameECUHeader]; } -- (NSNumber *)ecuHeader { - return [parameters sdl_objectForName:SDLNameECUHeader]; +- (nullable NSNumber *)ecuHeader { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameECUHeader ofClass:NSNumber.class error:&error]; } - (void)setDtc:(NSArray *)dtc { - [parameters sdl_setObject:dtc forName:SDLNameDTC]; + [self.parameters sdl_setObject:dtc forName:SDLRPCParameterNameDTC]; } - (NSArray *)dtc { - return [parameters sdl_objectForName:SDLNameDTC]; + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameDTC ofClass:NSString.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.h new file mode 100644 index 0000000..bdc7936 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.h @@ -0,0 +1,86 @@ +// +// SDLGetFile.h +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" +#import "SDLFileType.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * This request is sent to the module to retrieve a file. + */ +@interface SDLGetFile : SDLRPCRequest + +/** + * Convenience init for required parameters. + * + * @param fileName File name that should be retrieved. + * @return A SDLGetFile object + */ +- (instancetype)initWithFileName:(NSString *)fileName; + +/** + * Convenience init for sending a small file. + * + * @param fileName File name that should be retrieved. + * @param appServiceId ID of the service that should have uploaded the requested file + * @param fileType Selected file type + * @return A SDLGetFile object + */ +- (instancetype)initWithFileName:(NSString *)fileName appServiceId:(nullable NSString *)appServiceId fileType:(nullable SDLFileType)fileType; + +/** + * Convenience init for sending a large file in multiple data chunks. + * + * @param fileName File name that should be retrieved. + * @param appServiceId ID of the service that should have uploaded the requested file + * @param fileType Selected file type + * @param offset Offset in bytes for resuming partial data chunks + * @param length Length in bytes for resuming partial data chunks + * @return A SDLGetFile object + */ +- (instancetype)initWithFileName:(NSString *)fileName appServiceId:(nullable NSString *)appServiceId fileType:(nullable SDLFileType)fileType offset:(UInt32)offset length:(UInt32)length; + +/** + * File name that should be retrieved. + * + * String, Required, Max string length 255 chars + */ +@property (strong, nonatomic) NSString *fileName; + +/** + * ID of the service that should have uploaded the requested file. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *appServiceId; + +/** + * Selected file type. + * + * SDLFileType, Optional + */ +@property (nullable, strong, nonatomic) SDLFileType fileType; + +/** + * Optional offset in bytes for resuming partial data chunks. + * + * Integer, Optional, minvalue="0" maxvalue="2000000000" + */ +@property (nullable, strong, nonatomic) NSNumber *offset; + +/** + * Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded. + * + * Integer, Optional, minvalue="0" maxvalue="2000000000" + */ +@property (nullable, strong, nonatomic) NSNumber *length; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.m new file mode 100644 index 0000000..239a034 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.m @@ -0,0 +1,107 @@ +// +// SDLGetFile.m +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetFile.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetFile + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetFile]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithFileName:(NSString *)fileName { + self = [self init]; + if (!self) { + return nil; + } + + self.fileName = fileName; + + return self; +} + +- (instancetype)initWithFileName:(NSString *)fileName appServiceId:(nullable NSString *)appServiceId fileType:(nullable SDLFileType)fileType { + self = [self initWithFileName:fileName]; + if (!self) { + return nil; + } + + self.appServiceId = appServiceId; + self.fileType = fileType; + + return self; +} + +- (instancetype)initWithFileName:(NSString *)fileName appServiceId:(nullable NSString *)appServiceId fileType:(nullable SDLFileType)fileType offset:(UInt32)offset length:(UInt32)length { + self = [self initWithFileName:fileName appServiceId:appServiceId fileType:fileType]; + if (!self) { + return nil; + } + + self.offset = @(offset); + self.length = @(length); + + return self; +} + +- (void)setFileName:(NSString *)fileName { + [self.parameters sdl_setObject:fileName forName:SDLRPCParameterNameFilename]; +} + +- (NSString *)fileName { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFilename ofClass:NSString.class error:&error]; +} + +- (void)setAppServiceId:(nullable NSString *)appServiceId { + [self.parameters sdl_setObject:appServiceId forName:SDLRPCParameterNameAppServiceId]; +} + +- (nullable NSString *)appServiceId { + return [self.parameters sdl_objectForName:SDLRPCParameterNameAppServiceId ofClass:NSString.class error:nil]; +} + +- (void)setFileType:(nullable SDLFileType)fileType { + [self.parameters sdl_setObject:fileType forName:SDLRPCParameterNameFileType]; +} + +- (nullable SDLFileType)fileType { + return [self.parameters sdl_enumForName:SDLRPCParameterNameFileType error:nil]; +} + +- (void)setOffset:(nullable NSNumber *)offset { + [self.parameters sdl_setObject:offset forName:SDLRPCParameterNameOffset]; +} + +- (nullable NSNumber *)offset { + return [self.parameters sdl_objectForName:SDLRPCParameterNameOffset ofClass:NSNumber.class error:nil]; +} + +- (void)setLength:(nullable NSNumber *)length { + [self.parameters sdl_setObject:length forName:SDLRPCParameterNameLength]; +} + +- (nullable NSNumber *)length { + return [self.parameters sdl_objectForName:SDLRPCParameterNameLength ofClass:NSNumber.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.h new file mode 100644 index 0000000..52a2fb5 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.h @@ -0,0 +1,61 @@ +// +// SDLGetFileResponse.h +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +#import "SDLFileType.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Response to GetFiles +/// +/// @since RPC 5.1 +@interface SDLGetFileResponse : SDLRPCResponse + +/** + * Convenience init for all parameters. + * + * @param offset Optional offset in bytes for resuming partial data chunks + * @param length Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded + * @param fileType File type that is being sent in response + * @param crc Additional CRC32 checksum to protect data integrity up to 512 Mbits + * @return A SDLGetFileResponse object + */ +- (instancetype)initWithOffset:(UInt32)offset length:(UInt32)length fileType:(nullable SDLFileType)fileType crc:(UInt32)crc; + +/** + * Optional offset in bytes for resuming partial data chunks. + * + * Integer, Optional, minvalue="0" maxvalue="2000000000" + */ +@property (nullable, strong, nonatomic) NSNumber *offset; + +/** + * Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded. + * + * Integer, Optional, minvalue="0" maxvalue="2000000000" + */ +@property (nullable, strong, nonatomic) NSNumber *length; + +/** + * File type that is being sent in response. + * + * SDLFileType, Optional + */ +@property (nullable, strong, nonatomic) SDLFileType fileType; + +/** + * Additional CRC32 checksum to protect data integrity up to 512 Mbits. + * + * Integer, Optional, minvalue="0" maxvalue="4294967295" + */ +@property (nullable, strong, nonatomic) NSNumber *crc; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.m new file mode 100644 index 0000000..57a2b3f --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.m @@ -0,0 +1,76 @@ +// +// SDLGetFileResponse.m +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetFileResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetFileResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetFile]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithOffset:(UInt32)offset length:(UInt32)length fileType:(nullable SDLFileType)fileType crc:(UInt32)crc { + self = [self init]; + if (!self) { + return nil; + } + + self.offset = @(offset); + self.length = @(length); + self.fileType = fileType; + self.crc = @(crc); + + return self; +} + +- (void)setOffset:(nullable NSNumber *)offset { + [self.parameters sdl_setObject:offset forName:SDLRPCParameterNameOffset]; +} + +- (nullable NSNumber *)offset { + return [self.parameters sdl_objectForName:SDLRPCParameterNameOffset ofClass:NSNumber.class error:nil]; +} + +- (void)setLength:(nullable NSNumber *)length { + [self.parameters sdl_setObject:length forName:SDLRPCParameterNameLength]; +} + +- (nullable NSNumber *)length { + return [self.parameters sdl_objectForName:SDLRPCParameterNameLength ofClass:NSNumber.class error:nil]; +} + +- (void)setFileType:(nullable SDLFileType)fileType { + [self.parameters sdl_setObject:fileType forName:SDLRPCParameterNameFileType]; +} + +- (nullable SDLFileType)fileType { + return [self.parameters sdl_enumForName:SDLRPCParameterNameFileType error:nil]; +} + +- (void)setCrc:(nullable NSNumber *)crc { + [self.parameters sdl_setObject:crc forName:SDLRPCParameterNameCRC]; +} + +- (nullable NSNumber *)crc { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCRC ofClass:NSNumber.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.h index 01d208f..baddec9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.h @@ -4,6 +4,7 @@ #import "SDLRPCRequest.h" #import "SDLModuleType.h" +#import "SDLModuleInfo.h" /** * Reads the current status value of specified remote control module (type). @@ -17,11 +18,44 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLGetInteriorVehicleData : SDLRPCRequest -- (instancetype)initWithModuleType:(SDLModuleType)moduleType; +/// Convenience init to get information of a particular module type with a module ID. +/// +/// @param moduleType The type of a RC module to retrieve module data from the vehicle +/// @param moduleId Id of a module, published by System Capability +/// @return An SDLGetInteriorVehicleData object +- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId; -- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType; +/// Convenience init to get information and subscribe to a particular module type with a module ID. +/// +/// @param moduleType The type of a RC module to retrieve module data from the vehicle +/// @param moduleId Id of a module, published by System Capability +/// @return An SDLGetInteriorVehicleData object +- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId; -- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType; +/// Convenience init to unsubscribe from particular module with a module ID. +/// +/// @param moduleType The type of a RC module to retrieve module data from the vehicle +/// @param moduleId Id of a module, published by System Capability +/// @return An SDLGetInteriorVehicleData object +- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId; + +/// Convenience init to get information of a particular module type. +/// +/// @param moduleType The type of a RC module to retrieve module data from the vehicle +/// @return An SDLGetInteriorVehicleData object +- (instancetype)initWithModuleType:(SDLModuleType)moduleType __deprecated_msg("Use initWithModuleType:moduleId: instead"); + +/// Convenience init to get information and subscribe to a particular module type. +/// +/// @param moduleType The type of a RC module to retrieve module data from the vehicle +/// @return An SDLGetInteriorVehicleData object +- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType __deprecated_msg("Use initAndSubscribeToModuleType:moduleId: instead"); + +/// Convenience init to unsubscribe from particular module type. +/// +/// @param moduleType The type of a RC module to retrieve module data from the vehicle +/// @return An SDLGetInteriorVehicleData object +- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType __deprecated_msg("Use initAndUnsubscribeToModuleType:moduleId:"); /** * The type of a RC module to retrieve module data from the vehicle. @@ -30,8 +64,16 @@ NS_ASSUME_NONNULL_BEGIN @property (strong, nonatomic) SDLModuleType moduleType; /** - * If subscribe is true, the head unit will register onInteriorVehicleData notifications for the requested moduelType. - * If subscribe is false, the head unit will unregister onInteriorVehicleData notifications for the requested moduelType. + * Id of a module, published by System Capability. + * + * Optional + */ +@property (nullable, strong, nonatomic) NSString *moduleId; + +/** + * If subscribe is true, the head unit will register OnInteriorVehicleData notifications for the requested module (moduleId and moduleType). + * If subscribe is false, the head unit will unregister OnInteriorVehicleData notifications for the requested module (moduleId and moduleType). + * If subscribe is not included, the subscription status of the app for the requested module (moduleId and moduleType) will remain unchanged. * * optional, Boolean, default Value = false */ diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.m index efdf2c3..57f0aa8 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.m @@ -3,18 +3,60 @@ // #import "SDLGetInteriorVehicleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetInteriorVehicleData +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameGetInteriorVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameGetInteriorVehicleData]) { } return self; } +#pragma clang diagnostic pop + +- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId { + self = [self init]; + if (!self) { + return nil; + } + + self.moduleType = moduleType; + self.moduleId = moduleId; + + return self; +} + +- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId { + self = [self init]; + if (!self) { + return nil; + } + + self.moduleType = moduleType; + self.moduleId = moduleId; + self.subscribe = @(YES); + + return self; +} + +- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId { + self = [self init]; + if (!self) { + return nil; + } + + self.moduleType = moduleType; + self.moduleId = moduleId; + self.subscribe = @(NO); + + return self; +} - (instancetype)initWithModuleType:(SDLModuleType)moduleType; { self = [self init]; @@ -52,19 +94,29 @@ - (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType { } - (void)setModuleType:(SDLModuleType)moduleType { - [parameters sdl_setObject:moduleType forName:SDLNameModuleType]; + [self.parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; } - (SDLModuleType)moduleType { - return [parameters sdl_objectForName:SDLNameModuleType]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; } - (void)setSubscribe:(nullable NSNumber *)subscribe { - [parameters sdl_setObject:subscribe forName:SDLNameSubscribe]; + [self.parameters sdl_setObject:subscribe forName:SDLRPCParameterNameSubscribe]; } - (nullable NSNumber *)subscribe { - return [parameters sdl_objectForName:SDLNameSubscribe]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSubscribe ofClass:NSNumber.class error:nil]; +} + +- (void)setModuleId:(nullable NSString *)moduleId { + [self.parameters sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId]; +} + +- (nullable NSString *)moduleId { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h new file mode 100644 index 0000000..b3ab234 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h @@ -0,0 +1,43 @@ +// +// SDLGetInteriorVehicleDataConsent.h +// SmartDeviceLink +// +// Created by standa1 on 7/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" +#import "SDLModuleType.h" + +NS_ASSUME_NONNULL_BEGIN + + +/// This RPC allows you to get consent to control a certian module +/// +/// @since RPC 6.0 +@interface SDLGetInteriorVehicleDataConsent : SDLRPCRequest + +/// Convenience init to get consent to control a module +/// +/// @param moduleType The module type that the app requests to control +/// @param moduleIds Ids of a module of same type, published by System Capability +/// @return An SDLGetInteriorVehicleDataConsent object +- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleIds:(NSArray *)moduleIds; + +/** + * The module type that the app requests to control. + * + * Required + */ +@property (strong, nonatomic) SDLModuleType moduleType; + +/** + * Ids of a module of same type, published by System Capability. + * + * Required + */ +@property (strong, nonatomic) NSArray *moduleIds; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m new file mode 100644 index 0000000..88ed0d8 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m @@ -0,0 +1,55 @@ +// +// SDLGetInteriorVehicleDataConsent.m +// SmartDeviceLink +// +// Created by standa1 on 7/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetInteriorVehicleDataConsent.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" +#import "NSMutableDictionary+Store.h" + +@implementation SDLGetInteriorVehicleDataConsent + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetInteriorVehicleDataConsent]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleIds:(NSArray *)moduleIds { + self = [self init]; + if (!self) { + return nil; + } + + self.moduleType = moduleType; + self.moduleIds = moduleIds; + + return self; +} + +- (void)setModuleType:(SDLModuleType)moduleType { + [self.parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; +} + +- (SDLModuleType)moduleType { + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; +} + +- (void)setModuleIds:(NSArray *)moduleIds { + [self.parameters sdl_setObject:moduleIds forName:SDLRPCParameterNameModuleIds]; +} + +- (NSArray *)moduleIds { + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameModuleIds ofClass:NSString.class error:&error]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h new file mode 100644 index 0000000..cbe315d --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h @@ -0,0 +1,29 @@ +// +// SDLGetInteriorVehicleDataConsentResponse.h +// SmartDeviceLink +// +// Created by standa1 on 7/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Response to GetInteriorVehicleDataConsent +/// +/// @since RPC 6.0 +@interface SDLGetInteriorVehicleDataConsentResponse : SDLRPCResponse + +/** + This array has the same size as "moduleIds" in the request; each element corresponding to one moduleId + "true" - if SDL grants the permission for the requested module + "false" - SDL denies the permission for the requested module. + + Optional, contains a boolean + */ +@property (strong, nonatomic, nullable) NSArray *allowed; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m new file mode 100644 index 0000000..369b636 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m @@ -0,0 +1,34 @@ +// +// SDLGetInteriorVehicleDataConsentResponse.m +// SmartDeviceLink +// +// Created by standa1 on 7/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetInteriorVehicleDataConsentResponse.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCFunctionNames.h" +#import "SDLRPCParameterNames.h" + +@implementation SDLGetInteriorVehicleDataConsentResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetInteriorVehicleDataConsent]) { + } + return self; +} +#pragma clang diagnostic pop + +- (void)setAllowed:(nullable NSArray *)allowed { + [self.parameters sdl_setObject:allowed forName:SDLRPCParameterNameAllowed]; +} + +- (nullable NSArray *)allowed { + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameAllowed ofClass:NSNumber.class error:&error]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h index 3725318..5ab234e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h @@ -14,8 +14,10 @@ NS_ASSUME_NONNULL_BEGIN /** The requested data + + Optional */ -@property (strong, nonatomic) SDLModuleData *moduleData; +@property (nullable, strong, nonatomic) SDLModuleData *moduleData; /** It is a conditional-mandatory parameter: must be returned in case "subscribe" parameter was present in the related request. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m index 43491be..c729e66 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m @@ -4,7 +4,8 @@ #import "SDLGetInteriorVehicleDataResponse.h" #import "SDLModuleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -12,26 +13,30 @@ @implementation SDLGetInteriorVehicleDataResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameGetInteriorVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameGetInteriorVehicleData]) { } return self; } +#pragma clang diagnostic pop -- (void)setModuleData:(SDLModuleData *)moduleData { - [parameters sdl_setObject:moduleData forName:SDLNameModuleData]; +- (void)setModuleData:(nullable SDLModuleData *)moduleData { + [self.parameters sdl_setObject:moduleData forName:SDLRPCParameterNameModuleData]; } -- (SDLModuleData *)moduleData { - return [parameters sdl_objectForName:SDLNameModuleData ofClass:SDLModuleData.class]; +- (nullable SDLModuleData *)moduleData { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleData ofClass:SDLModuleData.class error:&error]; } - (void)setIsSubscribed:(nullable NSNumber *)isSubscribed { - [parameters sdl_setObject:isSubscribed forName:SDLNameIsSubscribed]; + [self.parameters sdl_setObject:isSubscribed forName:SDLRPCParameterNameIsSubscribed]; } - (nullable NSNumber *)isSubscribed { - return [parameters sdl_objectForName:SDLNameIsSubscribed]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameIsSubscribed ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.h index 7d7490e..004074e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.h @@ -13,17 +13,44 @@ NS_ASSUME_NONNULL_BEGIN +/** + * SDL RPC Request for expanded information about a supported system/HMI capability + * + * @since SDL 4.5 + */ @interface SDLGetSystemCapability : SDLRPCRequest +/** + * Convenience init + * + * @param type The type of system capability + * @return A SDLSystemCapabilityType object + */ - (instancetype)initWithType:(SDLSystemCapabilityType)type; /** - They type of capability you'd like to receive in the response. + * Convenience init + * + * @param type The type of system capability + * @param subscribe Whether or not to subscribe to updates of the supplied service capability type + * @return A SDLSystemCapabilityType object + */ +- (instancetype)initWithType:(SDLSystemCapabilityType)type subscribe:(BOOL)subscribe; - Mandatory +/** + * The type of system capability to get more information on + * + * SDLSystemCapabilityType, Required */ @property (strong, nonatomic) SDLSystemCapabilityType systemCapabilityType; +/** + * Flag to subscribe to updates of the supplied service capability type. If true, the requester will be subscribed. If false, the requester will not be subscribed and be removed as a subscriber if it was previously subscribed. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *subscribe; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.m index 5bc0e2b..0e966de 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.m @@ -9,18 +9,22 @@ #import "SDLGetSystemCapability.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSystemCapabilityType.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetSystemCapability +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameGetSystemCapability]) { + if (self = [super initWithName:SDLRPCFunctionNameGetSystemCapability]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithType:(SDLSystemCapabilityType)type { self = [self init]; @@ -33,12 +37,32 @@ - (instancetype)initWithType:(SDLSystemCapabilityType)type { return self; } +- (instancetype)initWithType:(SDLSystemCapabilityType)type subscribe:(BOOL)subscribe { + self = [self initWithType:type]; + if (!self) { + return nil; + } + + self.subscribe = @(subscribe); + + return self; +} + - (void)setSystemCapabilityType:(SDLSystemCapabilityType)type { - [parameters sdl_setObject:type forName:SDLNameSystemCapabilityType]; + [self.parameters sdl_setObject:type forName:SDLRPCParameterNameSystemCapabilityType]; } - (SDLSystemCapabilityType)systemCapabilityType { - return [parameters sdl_objectForName:SDLNameSystemCapabilityType]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameSystemCapabilityType error:&error]; +} + +- (void)setSubscribe:(nullable NSNumber *)subscribe { + [self.parameters sdl_setObject:subscribe forName:SDLRPCParameterNameSubscribe]; +} + +- (nullable NSNumber *)subscribe { + return [self.parameters sdl_objectForName:SDLRPCParameterNameSubscribe ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.h index 2c43726..215a4c4 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.h @@ -22,8 +22,10 @@ NS_ASSUME_NONNULL_BEGIN /** The requested system capability, of the type that was sent in the request + + Optional */ -@property (strong, nonatomic) SDLSystemCapability *systemCapability; +@property (nullable, strong, nonatomic) SDLSystemCapability *systemCapability; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.m index 00c1cf7..730f74c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.m @@ -9,7 +9,8 @@ #import "SDLGetSystemCapabilityResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSystemCapability.h" @@ -17,21 +18,25 @@ @implementation SDLGetSystemCapabilityResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - self = [super initWithName:SDLNameGetSystemCapability]; + self = [super initWithName:SDLRPCFunctionNameGetSystemCapability]; if (!self) { return nil; } return self; } +#pragma clang diagnostic pop -- (void)setSystemCapability:(SDLSystemCapability *)systemCapability { - [parameters sdl_setObject:systemCapability forName:SDLNameSystemCapability]; +- (void)setSystemCapability:(nullable SDLSystemCapability *)systemCapability { + [self.parameters sdl_setObject:systemCapability forName:SDLRPCParameterNameSystemCapability]; } -- (SDLSystemCapability *)systemCapability { - return [parameters sdl_objectForName:SDLNameSystemCapability ofClass:SDLSystemCapability.class]; +- (nullable SDLSystemCapability *)systemCapability { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSystemCapability ofClass:SDLSystemCapability.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.h index 82b3f7c..8e70820 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.h @@ -47,7 +47,7 @@ NS_ASSUME_NONNULL_BEGIN * @param wiperStatus Get wiperStatus data * @return A SDLGetVehicleData object */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); /** * Convenience init for getting data for all possible vehicle data items. @@ -83,7 +83,44 @@ NS_ASSUME_NONNULL_BEGIN * @param wiperStatus Get wiperStatus data * @return A SDLGetVehicleData object */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus; +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); + +/** + * Convenience init for getting data for all possible vehicle data items. + * + * @param accelerationPedalPosition Get accelerationPedalPosition data + * @param airbagStatus Get airbagStatus data + * @param beltStatus Get beltStatus data + * @param bodyInformation Get bodyInformation data + * @param cloudAppVehicleID Get cloudAppVehicleID data + * @param clusterModeStatus Get clusterModeStatus data + * @param deviceStatus Get deviceStatus data + * @param driverBraking Get driverBraking data + * @param eCallInfo Get eCallInfo data + * @param electronicParkBrakeStatus Get electronicParkBrakeStatus data + * @param emergencyEvent Get emergencyEvent data + * @param engineOilLife Get engineOilLife data + * @param engineTorque Get engineTorque data + * @param externalTemperature Get externalTemperature data + * @param fuelLevel Get fuelLevel data + * @param fuelLevelState Get fuelLevelState data + * @param fuelRange Get fuelRange data + * @param gps Get gps data + * @param headLampStatus Get headLampStatus data + * @param instantFuelConsumption Get instantFuelConsumption data + * @param myKey Get myKey data + * @param odometer Get odometer data + * @param prndl Get prndl data + * @param rpm Get rpm data + * @param speed Get speed data + * @param steeringWheelAngle Get steeringWheelAngle data + * @param tirePressure Get tirePressure data + * @param turnSignal Get turnSignal data + * @param vin Get vin data + * @param wiperStatus Get wiperStatus data + * @return A SDLGetVehicleData object + */ +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus; /** * A boolean value. If true, requests GPS data. @@ -230,6 +267,31 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSNumber *turnSignal; +/** + A boolean value. If true, requests the Cloud App Vehicle ID. + */ +@property (nullable, strong, nonatomic) NSNumber *cloudAppVehicleID; + +/** + Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @param vehicleDataState A boolean value. If true, requests the OEM custom vehicle data item. + + Added in SmartDeviceLink 6.0 + */ +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); + +/** + Gets the OEM custom vehicle data value for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @return The state of an OEM custom vehicle data item for the given vehicle data name. + + Added in SmartDeviceLink 6.0 + */ +- (nullable NSNumber *)getOEMCustomVehicleData:(NSString *)vehicleDataName; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.m index 6b795b0..30b8dfe 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.m @@ -5,23 +5,31 @@ #import "SDLGetVehicleData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetVehicleData +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameGetVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameGetVehicleData]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus { return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:NO emergencyEvent:emergencyEvent engineOilLife:NO engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:NO gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:NO vin:vin wiperStatus:wiperStatus]; } - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus { + return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation cloudAppVehicleID:NO clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:electronicParkBrakeStatus emergencyEvent:emergencyEvent engineOilLife:engineOilLife engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:fuelRange gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:turnSignal vin:vin wiperStatus:wiperStatus]; +} + +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus { self = [self init]; if (!self) { return nil; @@ -31,6 +39,7 @@ - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPositio self.airbagStatus = @(airbagStatus); self.beltStatus = @(beltStatus); self.bodyInformation = @(bodyInformation); + self.cloudAppVehicleID = @(cloudAppVehicleID); self.clusterModeStatus = @(clusterModeStatus); self.deviceStatus = @(deviceStatus); self.driverBraking = @(driverBraking); @@ -61,235 +70,251 @@ - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPositio } - (void)setGps:(nullable NSNumber *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable NSNumber *)gps { - return [parameters sdl_objectForName:SDLNameGPS]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:NSNumber.class error:nil]; } - (void)setSpeed:(nullable NSNumber *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber *)speed { - return [parameters sdl_objectForName:SDLNameSpeed]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; } - (void)setRpm:(nullable NSNumber *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable NSNumber *)rpm { - return [parameters sdl_objectForName:SDLNameRPM]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel:(nullable NSNumber *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable NSNumber *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel_State:(nullable NSNumber *)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable NSNumber *)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:NSNumber.class error:nil]; } - (void)setFuelRange:(nullable NSNumber *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable NSNumber *)fuelRange { - return [parameters sdl_objectForName:SDLNameFuelRange]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:NSNumber.class error:nil]; } - (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable NSNumber *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; } - (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable NSNumber *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; } - (void)setVin:(nullable NSNumber *)vin { - [parameters sdl_setObject:vin forName:SDLNameVIN]; + [self.parameters sdl_setObject:vin forName:SDLRPCParameterNameVIN]; } - (nullable NSNumber *)vin { - return [parameters sdl_objectForName:SDLNameVIN]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameVIN ofClass:NSNumber.class error:nil]; } - (void)setPrndl:(nullable NSNumber *)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable NSNumber *)prndl { - return [parameters sdl_objectForName:SDLNamePRNDL]; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:NSNumber.class error:nil]; } - (void)setTirePressure:(nullable NSNumber *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable NSNumber *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:NSNumber.class error:nil]; } - (void)setOdometer:(nullable NSNumber *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable NSNumber *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; } - (void)setBeltStatus:(nullable NSNumber *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable NSNumber *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:NSNumber.class error:nil]; } - (void)setBodyInformation:(nullable NSNumber *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable NSNumber *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:NSNumber.class error:nil]; } - (void)setDeviceStatus:(nullable NSNumber *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable NSNumber *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:NSNumber.class error:nil]; } - (void)setDriverBraking:(nullable NSNumber *)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable NSNumber *)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:NSNumber.class error:nil]; } - (void)setWiperStatus:(nullable NSNumber *)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable NSNumber *)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:NSNumber.class error:nil]; } - (void)setHeadLampStatus:(nullable NSNumber *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable NSNumber *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:NSNumber.class error:nil]; } - (void)setEngineOilLife:(nullable NSNumber *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; + [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable NSNumber *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; } - (void)setEngineTorque:(nullable NSNumber *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable NSNumber *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; } - (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable NSNumber *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; } - (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable NSNumber *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; } - (void)setECallInfo:(nullable NSNumber *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable NSNumber *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:NSNumber.class error:nil]; } - (void)setAirbagStatus:(nullable NSNumber *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable NSNumber *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:NSNumber.class error:nil]; } - (void)setEmergencyEvent:(nullable NSNumber *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable NSNumber *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:NSNumber.class error:nil]; } - (void)setClusterModeStatus:(nullable NSNumber *)clusterModeStatus { - [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; + [self.parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; } - (nullable NSNumber *)clusterModeStatus { - return [parameters sdl_objectForName:SDLNameClusterModeStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:NSNumber.class error:nil]; } - (void)setMyKey:(nullable NSNumber *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable NSNumber *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:NSNumber.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable NSNumber *)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable NSNumber *)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:NSNumber.class error:nil]; } - (void)setTurnSignal:(nullable NSNumber *)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable NSNumber *)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:NSNumber.class error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable NSNumber *)cloudAppVehicleID { + [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable NSNumber *)cloudAppVehicleID { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSNumber.class error:nil]; +} + +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState { + [self.parameters sdl_setObject:@(vehicleDataState) forName:vehicleDataName]; +} + +- (nullable NSNumber *)getOEMCustomVehicleData:(NSString *)vehicleDataName { + return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.h index 689a750..7e727ae 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.h @@ -181,6 +181,30 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) SDLTurnSignal turnSignal; +/** + The cloud app vehicle ID + */ +@property (nullable, strong, nonatomic) NSString *cloudAppVehicleID; + +/** + Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @param vehicleDataState An object containing the OEM custom vehicle data item. + + Added in SmartDeviceLink 6.0 + */ +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); + +/** + Gets the OEM custom vehicle data item for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @return An OEM custom vehicle data object for the given vehicle data name. + + Added in SmartDeviceLink 6.0 + */ +- (nullable NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.m index 9e8aeff..25ddde3 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.m @@ -16,249 +16,269 @@ #import "SDLGPSData.h" #import "SDLHeadLampStatus.h" #import "SDLMyKey.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTireStatus.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetVehicleDataResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameGetVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameGetVehicleData]) { } return self; } +#pragma clang diagnostic pop - (void)setGps:(nullable SDLGPSData *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable SDLGPSData *)gps { - return [parameters sdl_objectForName:SDLNameGPS ofClass:SDLGPSData.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLGPSData.class error:nil]; } - (void)setSpeed:(nullable NSNumber *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber *)speed { - return [parameters sdl_objectForName:SDLNameSpeed]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; } - (void)setRpm:(nullable NSNumber *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable NSNumber *)rpm { - return [parameters sdl_objectForName:SDLNameRPM]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel:(nullable NSNumber *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable NSNumber *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel_State:(nullable SDLComponentVolumeStatus)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable SDLComponentVolumeStatus)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameFuelLevelState error:nil]; } - (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (void)setFuelRange:(nullable NSArray *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable NSArray *)fuelRange { - return [parameters sdl_objectsForName:SDLNameFuelRange ofClass:SDLFuelRange.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameFuelRange ofClass:SDLFuelRange.class error:nil]; } - (nullable NSNumber *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; } - (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable NSNumber *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; } - (void)setVin:(nullable NSString *)vin { - [parameters sdl_setObject:vin forName:SDLNameVIN]; + [self.parameters sdl_setObject:vin forName:SDLRPCParameterNameVIN]; } - (nullable NSString *)vin { - return [parameters sdl_objectForName:SDLNameVIN]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameVIN ofClass:NSString.class error:nil]; } - (void)setPrndl:(nullable SDLPRNDL)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable SDLPRNDL)prndl { - return [parameters sdl_objectForName:SDLNamePRNDL]; + return [self.parameters sdl_enumForName:SDLRPCParameterNamePRNDL error:nil]; } - (void)setTirePressure:(nullable SDLTireStatus *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable SDLTireStatus *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure ofClass:SDLTireStatus.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLTireStatus.class error:nil]; } - (void)setOdometer:(nullable NSNumber *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable NSNumber *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; } - (void)setBeltStatus:(nullable SDLBeltStatus *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable SDLBeltStatus *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus ofClass:SDLBeltStatus.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLBeltStatus.class error:nil]; } - (void)setBodyInformation:(nullable SDLBodyInformation *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable SDLBodyInformation *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation ofClass:SDLBodyInformation.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLBodyInformation.class error:nil]; } - (void)setDeviceStatus:(nullable SDLDeviceStatus *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable SDLDeviceStatus *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus ofClass:SDLDeviceStatus.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLDeviceStatus.class error:nil]; } - (void)setDriverBraking:(nullable SDLVehicleDataEventStatus)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable SDLVehicleDataEventStatus)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameDriverBraking error:nil]; } - (void)setWiperStatus:(nullable SDLWiperStatus)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable SDLWiperStatus)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameWiperStatus error:nil]; } - (void)setHeadLampStatus:(nullable SDLHeadLampStatus *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable SDLHeadLampStatus *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus ofClass:SDLHeadLampStatus.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLHeadLampStatus.class error:nil]; } - (void)setEngineOilLife:(nullable NSNumber *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; + [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable NSNumber *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; } - (void)setEngineTorque:(nullable NSNumber *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable NSNumber *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; } - (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable NSNumber *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; } - (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable NSNumber *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; } - (void)setECallInfo:(nullable SDLECallInfo *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable SDLECallInfo *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo ofClass:SDLECallInfo.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLECallInfo.class error:nil]; } - (void)setAirbagStatus:(nullable SDLAirbagStatus *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable SDLAirbagStatus *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus ofClass:SDLAirbagStatus.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLAirbagStatus.class error:nil]; } - (void)setEmergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable SDLEmergencyEvent *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent ofClass:SDLEmergencyEvent.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLEmergencyEvent.class error:nil]; } - (void)setClusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus { - [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; + [self.parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; } - (nullable SDLClusterModeStatus *)clusterModeStatus { - return [parameters sdl_objectForName:SDLNameClusterModeStatus ofClass:SDLClusterModeStatus.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:SDLClusterModeStatus.class error:nil]; } - (void)setMyKey:(nullable SDLMyKey *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable SDLMyKey *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey ofClass:SDLMyKey.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLMyKey.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameElectronicParkBrakeStatus error:nil]; } - (void)setTurnSignal:(nullable SDLTurnSignal)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable SDLTurnSignal)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameTurnSignal error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable NSString *)cloudAppVehicleID { + [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable NSString *)cloudAppVehicleID { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSString.class error:nil]; +} + +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState { + [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName]; +} + +- (nullable NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName { + return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSObject.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.h index be84df5..331acc3 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.h @@ -7,8 +7,15 @@ NS_ASSUME_NONNULL_BEGIN +/// This RPC allows you to get navigation waypoint data +/// +/// @since RPC 4.1 @interface SDLGetWayPoints : SDLRPCRequest +/// Convenience init to get waypoints. +/// +/// @param type To request for either the destination only or for all waypoints including destination +/// @return An SDLGetWayPoints object - (instancetype)initWithType:(SDLWayPointType)type; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.m index 74eba33..6e7f7a4 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.m @@ -4,17 +4,21 @@ #import "SDLGetWayPoints.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetWayPoints +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameGetWayPoints]) { + if (self = [super initWithName:SDLRPCFunctionNameGetWayPoints]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithType:(SDLWayPointType)type { @@ -29,11 +33,11 @@ - (instancetype)initWithType:(SDLWayPointType)type { } - (void)setWaypointType:(nullable SDLWayPointType)waypointType { - [parameters sdl_setObject:waypointType forName:SDLNameWayPointType]; + [self.parameters sdl_setObject:waypointType forName:SDLRPCParameterNameWayPointType]; } - (nullable SDLWayPointType)waypointType { - return [parameters sdl_objectForName:SDLNameWayPointType]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameWayPointType error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPointsResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPointsResponse.m index b2f5e62..fec1128 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPointsResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPointsResponse.m @@ -5,24 +5,28 @@ #import "NSMutableDictionary+Store.h" #import "SDLLocationDetails.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetWayPointsResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameGetWayPoints]) { + if (self = [super initWithName:SDLRPCFunctionNameGetWayPoints]) { } return self; } +#pragma clang diagnostic pop - (void)setWaypoints:(nullable NSArray *)waypoints { - [parameters sdl_setObject:waypoints forName:SDLNameWayPoints]; + [self.parameters sdl_setObject:waypoints forName:SDLRPCParameterNameWayPoints]; } - (nullable NSArray *)waypoints { - return [parameters sdl_objectsForName:SDLNameWayPoints ofClass:SDLLocationDetails.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameWayPoints ofClass:SDLLocationDetails.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.h index e719cd4..9175288 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.h @@ -45,3 +45,8 @@ extern SDLGlobalProperty const SDLGlobalPropertyMenuIcon; * Property related to the keyboard */ extern SDLGlobalProperty const SDLGlobalPropertyKeyboard; + +/** + * Location of the user's seat of setGlobalProperties + */ +extern SDLGlobalProperty const SDLGlobalPropertyUserLocation; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.m index 0053784..410af91 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.m @@ -11,3 +11,4 @@ SDLGlobalProperty const SDLGlobalPropertyMenuName = @"MENUNAME"; SDLGlobalProperty const SDLGlobalPropertyMenuIcon = @"MENUICON"; SDLGlobalProperty const SDLGlobalPropertyKeyboard = @"KEYBOARDPROPERTIES"; +SDLGlobalProperty const SDLGlobalPropertyUserLocation = @"USER_LOCATION"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.h index 84407f1..004a0e8 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.h @@ -8,8 +8,10 @@ #import -#import "SDLProtocolHeader.h" -#import "SDLSyncMsgVersion.h" +#import "SDLProtocolConstants.h" + +@class SDLProtocolHeader; +@class SDLVersion; NS_ASSUME_NONNULL_BEGIN @@ -24,12 +26,17 @@ extern NSUInteger const SDLDefaultMTUSize; extern NSUInteger const SDLV1MTUSize; extern NSUInteger const SDLV3MTUSize; +extern void *const SDLProcessingQueueName; +extern void *const SDLConcurrentQueueName; + @interface SDLGlobals : NSObject -@property (copy, nonatomic, readonly) NSString *protocolVersion; -@property (assign, nonatomic, readonly) NSInteger majorProtocolVersion; -@property (strong, nonatomic) SDLSyncMsgVersion *rpcVersion; -@property (copy, nonatomic) NSString *maxHeadUnitVersion; +@property (copy, nonatomic, readonly) SDLVersion *protocolVersion; +@property (strong, nonatomic) SDLVersion *rpcVersion; +@property (copy, nonatomic) SDLVersion *maxHeadUnitProtocolVersion; + +@property (copy, nonatomic) dispatch_queue_t sdlProcessingQueue; +@property (copy, nonatomic) dispatch_queue_t sdlConcurrentQueue; + (instancetype)sharedGlobals; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.m index d5364a1..dc78e7a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.m @@ -9,17 +9,21 @@ #import "SDLGlobals.h" #import "SDLLogMacros.h" +#import "SDLProtocolHeader.h" +#import "SDLVersion.h" NS_ASSUME_NONNULL_BEGIN // VERSION DEPENDENT CODE -NSString *const SDLMaxProxyProtocolVersion = @"5.1.0"; -NSString *const SDLMaxProxyRPCVersion = @"5.0.0"; +NSString *const SDLMaxProxyProtocolVersion = @"5.2.0"; +NSString *const SDLMaxProxyRPCVersion = @"6.0.0"; NSUInteger const SDLDefaultMTUSize = UINT32_MAX; NSUInteger const SDLV1MTUSize = 1024; NSUInteger const SDLV3MTUSize = 131024; +void *const SDLProcessingQueueName = "com.sdl.serialProcessing"; +void *const SDLConcurrentQueueName = "com.sdl.concurrentProcessing"; typedef NSNumber *ServiceTypeBox; typedef NSNumber *MTUBox; @@ -28,7 +32,7 @@ @interface SDLGlobals () @property (strong, nonatomic) NSMutableDictionary *dynamicMTUDict; -@property (copy, nonatomic, readwrite) NSString *protocolVersion; +@property (copy, nonatomic, readwrite) SDLVersion *protocolVersion; @end @@ -51,25 +55,30 @@ - (instancetype)init { return nil; } - _protocolVersion = @"1.0.0"; - _maxHeadUnitVersion = @"0.0.0"; - _rpcVersion = [[SDLSyncMsgVersion alloc] initWithMajorVersion:1 minorVersion:0 patchVersion:0]; + _protocolVersion = [[SDLVersion alloc] initWithString:@"1.0.0"]; + _maxHeadUnitProtocolVersion = [[SDLVersion alloc] initWithString:@"0.0.0"]; + _rpcVersion = [[SDLVersion alloc] initWithString:@"1.0.0"]; _dynamicMTUDict = [NSMutableDictionary dictionary]; + dispatch_queue_attr_t qosSerial = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL, QOS_CLASS_USER_INITIATED, 0); + dispatch_queue_attr_t qosConcurrent = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_CONCURRENT, QOS_CLASS_USER_INITIATED, 0); + + _sdlProcessingQueue = dispatch_queue_create(SDLProcessingQueueName, qosSerial); + dispatch_queue_set_specific(_sdlProcessingQueue, SDLProcessingQueueName, SDLProcessingQueueName, NULL); + _sdlConcurrentQueue = dispatch_queue_create(SDLConcurrentQueueName, qosConcurrent); + dispatch_queue_set_specific(_sdlConcurrentQueue, SDLConcurrentQueueName, SDLConcurrentQueueName, NULL); + return self; } #pragma mark - Custom Getters / Setters -- (void)setMaxHeadUnitVersion:(NSString *)maxHeadUnitVersion { - self.protocolVersion = [self sdl_isVersion:maxHeadUnitVersion greaterThanVersion:SDLMaxProxyProtocolVersion] ? SDLMaxProxyProtocolVersion : maxHeadUnitVersion; - - _maxHeadUnitVersion = maxHeadUnitVersion; -} +- (void)setMaxHeadUnitProtocolVersion:(SDLVersion *)maxHeadUnitVersion { + SDLVersion *maxProxyProtocolVersion = [SDLVersion versionWithString:SDLMaxProxyProtocolVersion]; + self.protocolVersion = [maxHeadUnitVersion isGreaterThanVersion:maxProxyProtocolVersion] ? maxProxyProtocolVersion : maxHeadUnitVersion; -- (NSInteger)majorProtocolVersion { - return [self.protocolVersion substringWithRange:NSMakeRange(0, 1)].integerValue; + _maxHeadUnitProtocolVersion = maxHeadUnitVersion; } - (void)setDynamicMTUSize:(NSUInteger)maxMTUSize forServiceType:(SDLServiceType)serviceType { @@ -90,13 +99,9 @@ - (NSUInteger)mtuSizeForServiceType:(SDLServiceType)serviceType { #pragma mark - Helpers -- (BOOL)sdl_isVersion:(NSString *)version1 greaterThanVersion:(NSString *)version2 { - return ([version1 compare:version2 options:NSNumericSearch] == NSOrderedDescending); -} - - (NSUInteger)sdl_defaultMaxMTUSize { // VERSION DEPENDENT CODE - switch (self.majorProtocolVersion) { + switch (self.protocolVersion.major) { case 1: // fallthrough case 2: { // HAX: This was set to 1024 at some point, for an unknown reason. We can't change it because of backward compatibility & validation concerns. The actual MTU for v1/2 is 1500 bytes. @@ -106,14 +111,14 @@ - (NSUInteger)sdl_defaultMaxMTUSize { case 4: // fallthrough case 5: { // If the head unit isn't running v3/4, but that's the connection scheme we're using, then we have to know that they could be running an MTU that's not 128k, so we default back to the v1/2 MTU for safety. - if ([self sdl_isVersion:self.maxHeadUnitVersion greaterThanVersion:SDLMaxProxyProtocolVersion]) { + if ([self.maxHeadUnitProtocolVersion isGreaterThanVersion:[SDLVersion versionWithString:SDLMaxProxyProtocolVersion]]) { return SDLV1MTUSize; } else { return SDLV3MTUSize; } } break; default: { - NSAssert(NO, @"Unknown version number for MTU Size: %@", @(self.majorProtocolVersion)); + NSAssert(NO, @"Unknown MTU size for protocol version: %@", self.protocolVersion); return 0; } } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.h new file mode 100644 index 0000000..64ad01e --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.h @@ -0,0 +1,56 @@ +// +// SDLGrid.h +// SmartDeviceLink +// +// Created by standa1 on 7/10/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessage.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Describes a location (origin coordinates and span) of a vehicle component. + */ +@interface SDLGrid : SDLRPCStruct + +/** + * + * Required, Integer, -1 - 100 + */ +@property (strong, nonatomic) NSNumber *col; + +/** + * + * Required, Integer, -1 - 100 + */ +@property (strong, nonatomic) NSNumber *row; + +/** + * + * Optional, Integer, -1 - 100 + */ +@property (strong, nonatomic, nullable) NSNumber *level; + +/** + * + * Optional, Integer, 1 - 100 + */ +@property (strong, nonatomic, nullable) NSNumber *colspan; + +/** + * + * Optional, Integer, 1 - 100 + */ +@property (strong, nonatomic, nullable) NSNumber *rowspan; + +/** + * + * Optional, Integer, 1 - 100 + */ +@property (strong, nonatomic, nullable) NSNumber *levelspan; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.m new file mode 100644 index 0000000..f0e5d33 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.m @@ -0,0 +1,70 @@ +// +// SDLGrid.m +// SmartDeviceLink +// +// Created by standa1 on 7/10/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGrid.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +@implementation SDLGrid + +- (void)setCol:(NSNumber *)col { + [self.store sdl_setObject:col forName:SDLRPCParameterNameCol]; +} + +- (NSNumber *)col { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameCol ofClass:NSNumber.class error:&error]; +} + +- (void)setRow:(NSNumber *)row { + [self.store sdl_setObject:row forName:SDLRPCParameterNameRow]; +} + +- (NSNumber *)row { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameRow ofClass:NSNumber.class error:&error]; +} + +- (void)setLevel:(nullable NSNumber *)level { + [self.store sdl_setObject:level forName:SDLRPCParameterNameLevel]; +} + +- (nullable NSNumber *)level { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLevel ofClass:NSNumber.class error:&error]; +} + +- (void)setColspan:(nullable NSNumber *)colspan { + [self.store sdl_setObject:colspan forName:SDLRPCParameterNameColSpan]; +} + +- (nullable NSNumber *)colspan { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameColSpan ofClass:NSNumber.class error:&error]; +} + +- (void)setRowspan:(nullable NSNumber *)rowspan { + [self.store sdl_setObject:rowspan forName:SDLRPCParameterNameRowSpan]; +} + +- (nullable NSNumber *)rowspan { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameRowSpan ofClass:NSNumber.class error:&error]; +} + +- (void)setLevelspan:(nullable NSNumber *)levelspan { + [self.store sdl_setObject:levelspan forName:SDLRPCParameterNameLevelSpan]; +} + +- (nullable NSNumber *)levelspan { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLevelSpan ofClass:NSNumber.class error:&error]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.h index cbeeb4f..58bde05 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.h @@ -51,14 +51,14 @@ extern NSString *const SDLErrorDomainVideoEncoder; /** * The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder. * - * @warning This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). + * @warning This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). * @discussion Clients may call this once and retain the resulting pool, this call is cheap enough that it's OK to call it once per frame. */ @property (assign, nonatomic, readonly) CVPixelBufferPoolRef CV_NULLABLE pixelBufferPool; - (instancetype)init NS_UNAVAILABLE; -- (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions:(CGSize)dimensions properties:(NSDictionary *)properties delegate:(id __nullable)delegate error:(NSError **)error NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions:(CGSize)dimensions ssrc:(UInt32)ssrc properties:(NSDictionary *)properties delegate:(id __nullable)delegate error:(NSError **)error NS_DESIGNATED_INITIALIZER; - (void)stop; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.m index c4d0254..2d58a12 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.m @@ -22,10 +22,15 @@ @interface SDLH264VideoEncoder () @property (assign, nonatomic, nullable) VTCompressionSessionRef compressionSession; -@property (assign, nonatomic, nullable) CFDictionaryRef sdl_pixelBufferOptions; +@property (assign, nonatomic, nullable) CFDictionaryRef pixelBufferOptions; @property (assign, nonatomic) NSUInteger currentFrameNumber; @property (assign, nonatomic) double timestampOffset; +@property (assign, nonatomic, readwrite) CVPixelBufferPoolRef CV_NULLABLE pixelBufferPool; + +/// Width and height of the video frame. +@property (assign, nonatomic) CGSize dimensions; + @end @@ -45,7 +50,7 @@ + (void)initialize { }; } -- (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions:(CGSize)dimensions properties:(NSDictionary *)properties delegate:(id __nullable)delegate error:(NSError **)error { +- (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions:(CGSize)dimensions ssrc:(UInt32)ssrc properties:(NSDictionary *)properties delegate:(id __nullable)delegate error:(NSError **)error { self = [super init]; if (!self) { return nil; @@ -54,86 +59,46 @@ - (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions: _compressionSession = NULL; _currentFrameNumber = 0; _videoEncoderSettings = properties; - + _dimensions = dimensions; _delegate = delegate; - - OSStatus status; - - // Create a compression session - status = VTCompressionSessionCreate(NULL, (int32_t)dimensions.width, (int32_t)dimensions.height, kCMVideoCodecType_H264, NULL, self.sdl_pixelBufferOptions, NULL, &sdl_videoEncoderOutputCallback, (__bridge void *)self, &_compressionSession); - - if (status != noErr) { - if (!*error) { - *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionCreationFailure userInfo:@{ @"OSStatus": @(status) }]; - SDLLogE(@"Error attempting to create video compression session: %@", *error); - } - + + BOOL compressionSessionCreated = [self sdl_createCompressionSessionWithError:error]; + if (!compressionSessionCreated) { return nil; } - - CFRelease(_sdl_pixelBufferOptions); - _sdl_pixelBufferOptions = nil; - - // Validate that the video encoder properties are valid. - CFDictionaryRef supportedProperties; - status = VTSessionCopySupportedPropertyDictionary(self.compressionSession, &supportedProperties); - if (status != noErr) { - if (!*error) { - *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{ @"OSStatus": @(status) }]; - } - + + BOOL videoEncoderPropertiesValid = [self sdl_validateVideoEncoderPropertiesOnCompressionSession:self.compressionSession withError:error]; + if (!videoEncoderPropertiesValid) { return nil; } - - NSArray* videoEncoderKeys = self.videoEncoderSettings.allKeys; - for (NSString *key in videoEncoderKeys) { - if (CFDictionaryContainsKey(supportedProperties, (__bridge CFStringRef)key) == false) { - if (!*error) { - NSString *description = [NSString stringWithFormat:@"\"%@\" is not a supported key.", key]; - *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{NSLocalizedDescriptionKey: description}]; - } - CFRelease(supportedProperties); - return nil; - } - } - CFRelease(supportedProperties); - - // Populate the video encoder settings from provided dictionary. - for (NSString *key in videoEncoderKeys) { - id value = self.videoEncoderSettings[key]; - - status = VTSessionSetProperty(self.compressionSession, (__bridge CFStringRef)key, (__bridge CFTypeRef)value); - if (status != noErr) { - if (!*error) { - NSString *description = [NSString stringWithFormat:@"Setting key failed \"%@\"", key]; - *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{NSLocalizedDescriptionKey: description, @"OSStatus": @(status)}]; - } - return nil; - } + + BOOL propertiesSetOnCompressionSession = [self sdl_setPropertiesOnCompressionSession:self.compressionSession withError:error]; + if (!propertiesSetOnCompressionSession) { + return nil; } if ([protocol isEqualToEnum:SDLVideoStreamingProtocolRAW]) { _packetizer = [[SDLRAWH264Packetizer alloc] init]; } else if ([protocol isEqualToEnum:SDLVideoStreamingProtocolRTP]) { - _packetizer = [[SDLRTPH264Packetizer alloc] init]; + _packetizer = [[SDLRTPH264Packetizer alloc] initWithSSRC:ssrc]; } else { - if (!*error) { - *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorProtocolUnknown userInfo:@{ @"encoder": protocol}]; + if (error != NULL) { + *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorProtocolUnknown userInfo:@{@"encoder": protocol}]; } return nil; } - _timestampOffset = 0.0; - return self; } - (void)stop { - if (self.compressionSession != NULL) { - VTCompressionSessionInvalidate(self.compressionSession); - CFRelease(self.compressionSession); - self.compressionSession = NULL; - } + _currentFrameNumber = 0; + _timestampOffset = 0.0; + + CFRelease(_pixelBufferOptions); + _pixelBufferOptions = nil; + + [self sdl_invalidateCompressionSession]; } - (BOOL)encodeFrame:(CVImageBufferRef)imageBuffer { @@ -153,6 +118,11 @@ - (BOOL)encodeFrame:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime) OSStatus status = VTCompressionSessionEncodeFrame(_compressionSession, imageBuffer, presentationTimestamp, kCMTimeInvalid, NULL, (__bridge void *)self, NULL); + // HAX: [#1620](https://github.com/smartdevicelink/sdl_ios/issues/1620) On some older iPhones VTCompressionSessionEncodeFrame fails with a kVTInvalidSessionErr when the device is locked. Attempt to fix this by recreating the compression session. + if (status == kVTInvalidSessionErr) { + [self sdl_resetCompressionSession]; + } + return (status == noErr); } @@ -176,11 +146,28 @@ - (CVPixelBufferRef CV_NULLABLE)newPixelBuffer { } - (CVPixelBufferPoolRef CV_NULLABLE)pixelBufferPool { - return VTCompressionSessionGetPixelBufferPool(self.compressionSession); + // HAX: When the app is backgrounded, sometimes the compression session gets invalidated (this can happen the first time the app is backgrounded or the tenth). This causes the pool and/or the compression session to fail when the app is foregrounded and video frames are sent again. Attempt to fix this by recreating the compression session. + if (_pixelBufferPool == NULL) { + BOOL success = [self sdl_resetCompressionSession]; + if (!success) { + return NULL; + } + + _pixelBufferPool = VTCompressionSessionGetPixelBufferPool(self.compressionSession); + } + + return _pixelBufferPool; } #pragma mark - Private #pragma mark Callback + +/// Callback function that VideoToolbox calls when encoding is complete. +/// @param outputCallbackRefCon The callback's reference value +/// @param sourceFrameRefCon The frame's reference value +/// @param status Returns `noErr` if compression was successful, or an error if not successful +/// @param infoFlags Information about the encode operation (frame dropped or if encode ran asynchronously) +/// @param sampleBuffer Contains the compressed frame if compression was successful and the frame was not dropped; null otherwise void sdl_videoEncoderOutputCallback(void * CM_NULLABLE outputCallbackRefCon, void * CM_NULLABLE sourceFrameRefCon, OSStatus status, VTEncodeInfoFlags infoFlags, CM_NULLABLE CMSampleBufferRef sampleBuffer) { // If there was an error in the encoding, drop the frame if (status != noErr) { @@ -216,8 +203,8 @@ void sdl_videoEncoderOutputCallback(void * CM_NULLABLE outputCallbackRefCon, voi } #pragma mark Getters -- (CFDictionaryRef _Nullable)sdl_pixelBufferOptions { - if (_sdl_pixelBufferOptions == nil) { +- (CFDictionaryRef _Nullable)pixelBufferOptions { + if (_pixelBufferOptions == nil) { CFMutableDictionaryRef pixelBufferOptions = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); OSType pixelFormatType = kCVPixelFormatType_32BGRA; @@ -230,10 +217,10 @@ - (CFDictionaryRef _Nullable)sdl_pixelBufferOptions { CFRelease(pixelFormatNumberRef); - _sdl_pixelBufferOptions = pixelBufferOptions; + _pixelBufferOptions = pixelBufferOptions; } - return _sdl_pixelBufferOptions; + return _pixelBufferOptions; } #pragma mark Helpers @@ -307,11 +294,116 @@ + (NSArray *)sdl_extractNalUnitsFromSampleBuffer:(CMSampleBufferRef)sampleBuffer // Move to the next NAL unit in the block buffer bufferOffset += AVCCHeaderLength + NALUnitLength; } - - + return nalUnits; } +/// Forces the completion of any pending frames and invalidates the current VTCompressionSession +- (void)sdl_invalidateCompressionSession { + if (self.compressionSession == NULL) { return; } + + VTCompressionSessionCompleteFrames(self.compressionSession, kCMTimeInvalid); + VTCompressionSessionInvalidate(self.compressionSession); + CFRelease(self.compressionSession); + self.compressionSession = NULL; +} + +/// Recreates a compression session and sets the video encoder properties on the session after an error occurs. +/// @return True if the compression session was created successfully; false if not +- (BOOL)sdl_resetCompressionSession { + // Destroy the current compression session before attempting to create a new one. Otherwise the attempt to create a new compression session sometimes fails. + [self sdl_invalidateCompressionSession]; + + NSError *error = nil; + BOOL compressionSessionCreated = [self sdl_createCompressionSessionWithError:&error]; + if (!compressionSessionCreated) { + SDLLogE(@"Error creating the compression session: %@", error.localizedDescription); + return NO; + } + + BOOL propertiesSetOnCompressionSession = [self sdl_setPropertiesOnCompressionSession:self.compressionSession withError:&error]; + if (!propertiesSetOnCompressionSession) { + SDLLogE(@"Error setting the properties on the compression session: %@", error.localizedDescription); + return NO; + } + + return YES; +} + +/// Creates a compression session using the dimensions passed when the video encoder was created. +/// @param error Error set if the compression session was not created successfully +/// @return True if the compression session was created successfully; false if not +- (BOOL)sdl_createCompressionSessionWithError:(NSError **)error { + OSStatus status = VTCompressionSessionCreate(NULL, (int32_t)self.dimensions.width, (int32_t)self.dimensions.height, kCMVideoCodecType_H264, NULL, self.pixelBufferOptions, NULL, &sdl_videoEncoderOutputCallback, (__bridge void *)self, &_compressionSession); + + if (status != noErr) { + if (error != NULL) { + *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionCreationFailure userInfo:@{@"OSStatus":@(status), NSLocalizedDescriptionKey:@"Compression session could not be created"}]; + } + + return NO; + } + + return (status == noErr); +} + +/// Validates the properties set by the developer into the encoder settings dictionary. If any are not available for use, the session will be cancelled. +/// @param compressionSession The compression session on which the video encoder properties will be set +/// @param error Error set if the video encoder properties are not valid +/// @return True if the video encoder properties are valid; false if not +- (BOOL)sdl_validateVideoEncoderPropertiesOnCompressionSession:(VTCompressionSessionRef)compressionSession withError:(NSError **)error { + OSStatus status; + + // Validate that the video encoder properties are valid. + CFDictionaryRef supportedProperties; + status = VTSessionCopySupportedPropertyDictionary(compressionSession, &supportedProperties); + if (status != noErr) { + if (error != NULL) { + *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{@"OSStatus":@(status), NSLocalizedDescriptionKey:[NSString stringWithFormat:@"\"%@\" are not supported properties.", supportedProperties]}]; + } + return NO; + } + + NSArray *videoEncoderKeys = self.videoEncoderSettings.allKeys; + for (NSString *key in videoEncoderKeys) { + if (CFDictionaryContainsKey(supportedProperties, (__bridge CFStringRef)key) == false) { + if (error != NULL) { + *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{NSLocalizedDescriptionKey:[NSString stringWithFormat:@"\"%@\" is not a supported key.", key]}]; + } + CFRelease(supportedProperties); + return NO; + } + } + CFRelease(supportedProperties); + + return YES; +} + +/// Sets the video encoding properties on the compression session. +/// @param compressionSession The compression session on which to set the video encoding properties +/// @param error Error set if the properties were not successfully set on the video toolbox session +/// @return True if the video encoding properties were set successfully; false if not +- (BOOL)sdl_setPropertiesOnCompressionSession:(VTCompressionSessionRef)compressionSession withError:(NSError **)error { + OSStatus status; + + NSArray* videoEncoderKeys = self.videoEncoderSettings.allKeys; + for (NSString *key in videoEncoderKeys) { + id value = self.videoEncoderSettings[key]; + status = VTSessionSetProperty(compressionSession, (__bridge CFStringRef)key, (__bridge CFTypeRef)value); + if (status != noErr) { + if (error != NULL) { + *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{@"OSStatus": @(status), NSLocalizedDescriptionKey:[NSString stringWithFormat:@"Setting key failed \"%@\"", key]}]; + } + return NO; + } + } + + self.currentFrameNumber = 0; + self.timestampOffset = 0.0; + + return YES; +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.h index 43ee2b8..84a2eec 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.h @@ -6,12 +6,19 @@ NS_ASSUME_NONNULL_BEGIN +/** + Contains information about the HMI capabilities. + + Since SDL 3.0 +**/ @interface SDLHMICapabilities : SDLRPCStruct /** Availability of built in Nav. True: Available, False: Not Available Boolean value. Optional. + + Since SDL 3.0 */ @property (nullable, copy, nonatomic) NSNumber *navigation; @@ -19,6 +26,8 @@ NS_ASSUME_NONNULL_BEGIN Availability of built in phone. True: Available, False: Not Available Boolean value. Optional. + + Since SDL 3.0 */ @property (nullable, copy, nonatomic) NSNumber *phoneCall; @@ -26,9 +35,49 @@ NS_ASSUME_NONNULL_BEGIN Availability of built in video streaming. True: Available, False: Not Available Boolean value. Optional. + + Since SDL 4.5 */ @property (nullable, copy, nonatomic) NSNumber *videoStreaming; +/** + Availability of built in remote control. True: Available, False: Not Available + + Boolean value. Optional. + + Since SDL 4.5 +**/ +@property (nullable, copy, nonatomic) NSNumber *remoteControl; + +/** + Availability of app services. True: Available, False: Not Available + + App services is supported since SDL 5.1. If your connection is 5.1+, you can assume that app services is available even though between v5.1 and v6.0 this parameter is `nil`. + + Boolean value. Optional. + + Since SDL 6.0 +**/ +@property (nullable, copy, nonatomic) NSNumber *appServices; + +/** + Availability of displays. True: Available, False: Not Available + + Boolean value. Optional. + + Since SDL 6.0 +**/ +@property (nullable, copy, nonatomic) NSNumber *displays; + +/** + Availability of seatLocation. True: Available, False: Not Available + + Boolean value. Optional. + + Since SDL 6.0 + **/ +@property (nullable, copy, nonatomic) NSNumber *seatLocation; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.m index 01fd019..fd0104e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.m @@ -5,34 +5,66 @@ #import "SDLHMICapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLHMICapabilities - (void)setNavigation:(nullable NSNumber *)navigation { - [store sdl_setObject:navigation forName:SDLNameNavigation]; + [self.store sdl_setObject:navigation forName:SDLRPCParameterNameNavigation]; } - (nullable NSNumber *)navigation { - return [store sdl_objectForName:SDLNameNavigation]; + return [self.store sdl_objectForName:SDLRPCParameterNameNavigation ofClass:NSNumber.class error:nil]; } - (void)setPhoneCall:(nullable NSNumber *)phoneCall { - [store sdl_setObject:phoneCall forName:SDLNamePhoneCall]; + [self.store sdl_setObject:phoneCall forName:SDLRPCParameterNamePhoneCall]; } - (nullable NSNumber *)phoneCall { - return [store sdl_objectForName:SDLNamePhoneCall]; + return [self.store sdl_objectForName:SDLRPCParameterNamePhoneCall ofClass:NSNumber.class error:nil]; } - (void)setVideoStreaming:(nullable NSNumber *)videoStreaming { - [store sdl_setObject:videoStreaming forName:SDLNameVideoStreaming]; + [self.store sdl_setObject:videoStreaming forName:SDLRPCParameterNameVideoStreaming]; } - (nullable NSNumber *)videoStreaming { - return [store sdl_objectForName:SDLNameVideoStreaming]; + return [self.store sdl_objectForName:SDLRPCParameterNameVideoStreaming ofClass:NSNumber.class error:nil]; +} + +- (void)setRemoteControl:(nullable NSNumber *)remoteControl { + [self.store sdl_setObject:remoteControl forName:SDLRPCParameterNameRemoteControl]; +} + +- (nullable NSNumber *)remoteControl { + return [self.store sdl_objectForName:SDLRPCParameterNameRemoteControl ofClass:NSNumber.class error:nil]; +} + +- (void)setAppServices:(nullable NSNumber *)appServices { + [self.store sdl_setObject:appServices forName:SDLRPCParameterNameAppServices]; +} + +- (nullable NSNumber *)appServices { + return [self.store sdl_objectForName:SDLRPCParameterNameAppServices ofClass:NSNumber.class error:nil]; +} + +- (void)setDisplays:(nullable NSNumber *)displays { + [self.store sdl_setObject:displays forName:SDLRPCParameterNameDisplays]; +} + +- (nullable NSNumber *)displays { + return [self.store sdl_objectForName:SDLRPCParameterNameDisplays ofClass:NSNumber.class error:nil]; +} + +- (void)setSeatLocation:(nullable NSNumber *)seatLocation { + [self.store sdl_setObject:seatLocation forName:SDLRPCParameterNameSeatLocation]; +} + +- (nullable NSNumber *)seatLocation { + return [self.store sdl_objectForName:SDLRPCParameterNameSeatLocation ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIPermissions.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIPermissions.m index 96d947a..5cd8bb8 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIPermissions.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIPermissions.m @@ -5,26 +5,28 @@ #import "SDLHMIPermissions.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLHMIPermissions - (void)setAllowed:(NSArray *)allowed { - [store sdl_setObject:allowed forName:SDLNameAllowed]; + [self.store sdl_setObject:allowed forName:SDLRPCParameterNameAllowed]; } - (NSArray *)allowed { - return [store sdl_objectForName:SDLNameAllowed]; + NSError *error = nil; + return [self.store sdl_enumsForName:SDLRPCParameterNameAllowed error:&error]; } - (void)setUserDisallowed:(NSArray *)userDisallowed { - [store sdl_setObject:userDisallowed forName:SDLNameUserDisallowed]; + [self.store sdl_setObject:userDisallowed forName:SDLRPCParameterNameUserDisallowed]; } - (NSArray *)userDisallowed { - return [store sdl_objectForName:SDLNameUserDisallowed]; + NSError *error = nil; + return [self.store sdl_enumsForName:SDLRPCParameterNameUserDisallowed error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.h index da7d043..b79ec60 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.h @@ -2,9 +2,13 @@ // #import "SDLRPCMessage.h" +#import "SDLModuleInfo.h" NS_ASSUME_NONNULL_BEGIN +/// HMI data struct for HMI control settings +/// +/// @since 5.0 @interface SDLHMISettingsControlCapabilities : SDLRPCStruct /** @@ -14,7 +18,17 @@ NS_ASSUME_NONNULL_BEGIN @return An instance of the SDLHMISettingsControlCapabilities class */ -- (instancetype)initWithModuleName:(NSString *)moduleName; +- (instancetype)initWithModuleName:(NSString *)moduleName __deprecated_msg("Use initWithModuleName:moduleInfo:"); + +/** + Constructs a newly allocated SDLHMISettingsControlCapabilities object with moduleName + + @param moduleName The short friendly name of the hmi setting module + @param moduleInfo Information about a RC module, including its id. + + @return An instance of the SDLHMISettingsControlCapabilities class + */ +- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo; /** Constructs a newly allocated SDLHMISettingsControlCapabilities object with given parameters @@ -26,7 +40,20 @@ NS_ASSUME_NONNULL_BEGIN @return An instance of the SDLHMISettingsControlCapabilities class */ -- (instancetype)initWithModuleName:(NSString *)moduleName distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable; +- (instancetype)initWithModuleName:(NSString *)moduleName distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable __deprecated_msg("Use initWithModuleName:moduleInfo:distanceUnitAvailable:distanceUnitAvailable:temperatureUnitAvailable:displayModeUnitAvailable:"); + +/** + Constructs a newly allocated SDLHMISettingsControlCapabilities object with given parameters + + @param moduleName The short friendly name of the hmi setting module. + @param moduleInfo Information about a RC module, including its id. + @param distanceUnitAvailable Availability of the control of distance unit. + @param temperatureUnitAvailable Availability of the control of temperature unit. + @param displayModeUnitAvailable Availability of the control of displayMode unit. + + @return An instance of the SDLHMISettingsControlCapabilities class + */ +- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable; /** * @abstract The short friendly name of the hmi setting module. @@ -57,6 +84,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSNumber *displayModeUnitAvailable; +/** + * Information about a RC module, including its id. + * + * Optional + */ +@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.m index 5059367..d7dab5f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.m @@ -2,7 +2,7 @@ // #import "SDLHMISettingsControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -19,6 +19,17 @@ - (instancetype)initWithModuleName:(NSString *)moduleName { return self; } +- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo { + self = [self init]; + if(!self) { + return nil; + } + self.moduleName = moduleName; + self.moduleInfo = moduleInfo; + + return self; +} + - (instancetype)initWithModuleName:(NSString *)moduleName distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable { self = [self init]; if(!self) { @@ -32,37 +43,60 @@ - (instancetype)initWithModuleName:(NSString *)moduleName distanceUnitAvailable: return self; } +- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable { + self = [self init]; + if(!self) { + return nil; + } + self.moduleName = moduleName; + self.moduleInfo = moduleInfo; + self.distanceUnitAvailable = @(distanceUnitAvailable); + self.temperatureUnitAvailable = @(temperatureUnitAvailable); + self.displayModeUnitAvailable = @(displayModeUnitAvailable); + + return self; +} + - (void)setModuleName:(NSString *)moduleName { - [store sdl_setObject:moduleName forName:SDLNameModuleName]; + [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } - (NSString *)moduleName { - return [store sdl_objectForName:SDLNameModuleName]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; } - (void)setDistanceUnitAvailable:(nullable NSNumber *)distanceUnitAvailable { - [store sdl_setObject:distanceUnitAvailable forName:SDLNameDistanceUnitAvailable]; + [self.store sdl_setObject:distanceUnitAvailable forName:SDLRPCParameterNameDistanceUnitAvailable]; } - (nullable NSNumber *)distanceUnitAvailable { - return [store sdl_objectForName:SDLNameDistanceUnitAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameDistanceUnitAvailable ofClass:NSNumber.class error:nil]; } - (void)setTemperatureUnitAvailable:(nullable NSNumber *)temperatureUnitAvailable { - [store sdl_setObject:temperatureUnitAvailable forName:SDLNameTemperatureUnitAvailable]; + [self.store sdl_setObject:temperatureUnitAvailable forName:SDLRPCParameterNameTemperatureUnitAvailable]; } - (nullable NSNumber *)temperatureUnitAvailable { - return [store sdl_objectForName:SDLNameTemperatureUnitAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameTemperatureUnitAvailable ofClass:NSNumber.class error:nil]; } - (void)setDisplayModeUnitAvailable:(nullable NSNumber *)displayModeUnitAvailable { - [store sdl_setObject:displayModeUnitAvailable forName:SDLNameDisplayModeUnitAvailable]; + [self.store sdl_setObject:displayModeUnitAvailable forName:SDLRPCParameterNameDisplayModeUnitAvailable]; } - (nullable NSNumber *)displayModeUnitAvailable { - return [store sdl_objectForName:SDLNameDisplayModeUnitAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameDisplayModeUnitAvailable ofClass:NSNumber.class error:nil]; +} + +- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { + [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; +} + +- (nullable SDLModuleInfo *)moduleInfo { + return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlData.m index 4a17a92..df7982e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlData.m @@ -2,7 +2,7 @@ // #import "SDLHMISettingsControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -22,27 +22,27 @@ - (instancetype)initWithDisplaymode:(SDLDisplayMode)displayMode temperatureUnit: } - (void)setDisplayMode:(nullable SDLDisplayMode)displayMode { - [store sdl_setObject:displayMode forName:SDLNameDisplayMode]; + [self.store sdl_setObject:displayMode forName:SDLRPCParameterNameDisplayMode]; } - (nullable SDLDisplayMode)displayMode { - return [store sdl_objectForName:SDLNameDisplayMode]; + return [self.store sdl_enumForName:SDLRPCParameterNameDisplayMode error:nil]; } - (void)setDistanceUnit:(nullable SDLDistanceUnit)distanceUnit { - [store sdl_setObject:distanceUnit forName:SDLNameDistanceUnit]; + [self.store sdl_setObject:distanceUnit forName:SDLRPCParameterNameDistanceUnit]; } - (nullable SDLDistanceUnit)distanceUnit { - return [store sdl_objectForName:SDLNameDistanceUnit]; + return [self.store sdl_enumForName:SDLRPCParameterNameDistanceUnit error:nil]; } - (void)setTemperatureUnit:(nullable SDLTemperatureUnit)temperatureUnit { - [store sdl_setObject:temperatureUnit forName:SDLNameTemperatureUnit]; + [self.store sdl_setObject:temperatureUnit forName:SDLRPCParameterNameTemperatureUnit]; } - (nullable SDLTemperatureUnit)temperatureUnit { - return [store sdl_objectForName:SDLNameTemperatureUnit]; + return [self.store sdl_enumForName:SDLRPCParameterNameTemperatureUnit error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.h index 44de771..ca7182a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.h @@ -19,6 +19,11 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLHapticRect : SDLRPCStruct +/// Convenience init with all parameters +/// +/// @param id A user control spatial identifier +/// @param rect The position of the haptic rectangle to be highlighted. The center of this rectangle will be "touched" when a press occurs +/// @return An SDLHapticRect object - (instancetype)initWithId:(UInt32)id rect:(SDLRectangle *)rect; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.m index 330756d..6641f52 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.m @@ -8,7 +8,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLHapticRect.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLRectangle.h" NS_ASSUME_NONNULL_BEGIN @@ -28,19 +28,20 @@ - (instancetype)initWithId:(UInt32)id rect:(nonnull SDLRectangle *)rect { } - (void)setId:(NSNumber *)id { - [store sdl_setObject:id forName:SDLNameId]; + [self.store sdl_setObject:id forName:SDLRPCParameterNameId]; } - (NSNumber *)id { - return [store sdl_objectForName:SDLNameId]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameId ofClass:NSNumber.class error:&error]; } - (void)setRect:(SDLRectangle *)rect { - [store sdl_setObject:rect forName:SDLNameRect]; + [self.store sdl_setObject:rect forName:SDLRPCParameterNameRect]; } - (SDLRectangle *)rect { - return [store sdl_objectForName:SDLNameRect ofClass:SDLRectangle.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameRect ofClass:SDLRectangle.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHeadLampStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHeadLampStatus.m index e26d3ab..e9f018f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHeadLampStatus.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHeadLampStatus.m @@ -5,34 +5,36 @@ #import "NSMutableDictionary+Store.h" #import "SDLAmbientLightStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLHeadLampStatus - (void)setLowBeamsOn:(NSNumber *)lowBeamsOn { - [store sdl_setObject:lowBeamsOn forName:SDLNameLowBeamsOn]; + [self.store sdl_setObject:lowBeamsOn forName:SDLRPCParameterNameLowBeamsOn]; } - (NSNumber *)lowBeamsOn { - return [store sdl_objectForName:SDLNameLowBeamsOn]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLowBeamsOn ofClass:NSNumber.class error:&error]; } - (void)setHighBeamsOn:(NSNumber *)highBeamsOn { - [store sdl_setObject:highBeamsOn forName:SDLNameHighBeamsOn]; + [self.store sdl_setObject:highBeamsOn forName:SDLRPCParameterNameHighBeamsOn]; } - (NSNumber *)highBeamsOn { - return [store sdl_objectForName:SDLNameHighBeamsOn]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameHighBeamsOn ofClass:NSNumber.class error:&error]; } - (void)setAmbientLightSensorStatus:(nullable SDLAmbientLightStatus)ambientLightSensorStatus { - [store sdl_setObject:ambientLightSensorStatus forName:SDLNameAmbientLightSensorStatus]; + [self.store sdl_setObject:ambientLightSensorStatus forName:SDLRPCParameterNameAmbientLightSensorStatus]; } - (nullable SDLAmbientLightStatus)ambientLightSensorStatus { - return [store sdl_objectForName:SDLNameAmbientLightSensorStatus]; + return [self.store sdl_enumForName:SDLRPCParameterNameAmbientLightSensorStatus error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.h new file mode 100644 index 0000000..171edba --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.h @@ -0,0 +1,29 @@ +// +// SDLHybridAppPreference.h +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * Enumeration for the user's preference of which app type to use when both are available. + */ +typedef SDLEnum SDLHybridAppPreference SDL_SWIFT_ENUM; + +/** + * App preference of mobile. + */ +extern SDLHybridAppPreference const SDLHybridAppPreferenceMobile; + +/** + * App preference of cloud. + */ +extern SDLHybridAppPreference const SDLHybridAppPreferenceCloud; + +/** + * App preference of both. Allows both the mobile and the cloud versions of the app to attempt to connect at the same time, however the first app that is registered is the one that is allowed to stay registered. + */ +extern SDLHybridAppPreference const SDLHybridAppPreferenceBoth; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.m new file mode 100644 index 0000000..963bc41 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.m @@ -0,0 +1,13 @@ +// +// SDLHybridAppPreference.m +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLHybridAppPreference.h" + +SDLHybridAppPreference const SDLHybridAppPreferenceMobile = @"MOBILE"; +SDLHybridAppPreference const SDLHybridAppPreferenceCloud = @"CLOUD"; +SDLHybridAppPreference const SDLHybridAppPreferenceBoth = @"BOTH"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.h new file mode 100644 index 0000000..0f72f93 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.h @@ -0,0 +1,14 @@ +// +// SDLIAPConstants.h +// SmartDeviceLink +// +// Created by Nicole on 4/17/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +extern NSString *const ControlProtocolString; +extern NSString *const IndexedProtocolStringPrefix; +extern NSString *const LegacyProtocolString; +extern NSString *const MultiSessionProtocolString; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.m new file mode 100644 index 0000000..3990d76 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.m @@ -0,0 +1,14 @@ +// +// SDLIAPConstants.m +// SmartDeviceLink +// +// Created by Nicole on 4/17/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLIAPConstants.h" + +NSString *const ControlProtocolString = @"com.smartdevicelink.prot0"; +NSString *const IndexedProtocolStringPrefix = @"com.smartdevicelink.prot"; +NSString *const LegacyProtocolString = @"com.ford.sync.prot0"; +NSString *const MultiSessionProtocolString = @"com.smartdevicelink.multisession"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.h new file mode 100644 index 0000000..03940ef --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.h @@ -0,0 +1,39 @@ +// +// SDLIAPControlSession.h +// SmartDeviceLink +// +// Created by Nicole on 4/16/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLIAPSession.h" + +@class EAAccessory; + +@protocol SDLIAPControlSessionDelegate; + +NS_ASSUME_NONNULL_BEGIN + +/** + * The communications channel between the app and the SDL enabled accessory. The control session is used to get the unique protocol string needed to create a session with Core. The control session is only used with legacy head units that do not support the multisession protocol (the multisession protocol allows multiple apps to connect over the same protocol string). A control session is needed because each SDL enabled app needs to connect to the accessory using a unique protocol string. + * + * When the protocol string is received from Core, the control session is closed as a new session with Core must be established with the received protocol string. Core has ~10 seconds to send the protocol string, otherwise the control session is closed and new attempt is made to establish a control session with Core. + */ +@interface SDLIAPControlSession : SDLIAPSession + +- (instancetype)init NS_UNAVAILABLE; + +/** + * Creates a new control session. + * + * @param accessory The accessory to connect to. + * @param delegate The control session delegate + * @return A SDLIAPControlSession object + */ +- (instancetype)initWithAccessory:(nullable EAAccessory *)accessory delegate:(id)delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.m new file mode 100644 index 0000000..50d7a98 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.m @@ -0,0 +1,261 @@ +// +// SDLIAPControlSession.m +// SmartDeviceLink +// +// Created by Nicole on 4/16/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLIAPControlSession.h" + +#import "EAAccessory+SDLProtocols.h" +#import "EAAccessoryManager+SDLProtocols.h" +#import "SDLIAPConstants.h" +#import "SDLIAPControlSessionDelegate.h" +#import "SDLIAPSession.h" +#import "SDLLogMacros.h" +#import "SDLTimer.h" + + +NS_ASSUME_NONNULL_BEGIN + +int const ProtocolIndexTimeoutSeconds = 10; + +@interface SDLIAPControlSession () + +@property (nullable, strong, nonatomic) SDLTimer *protocolIndexTimer; +@property (weak, nonatomic) id delegate; + +@end + +@implementation SDLIAPControlSession + +#pragma mark - Session lifecycle + +- (instancetype)initWithAccessory:(nullable EAAccessory *)accessory delegate:(id)delegate { + SDLLogV(@"SDLIAPControlSession init"); + + self = [super initWithAccessory:accessory forProtocol:ControlProtocolString]; + if (!self) { return nil; } + + _protocolIndexTimer = nil; + _delegate = delegate; + + return self; +} + +#pragma mark Start + +- (void)startSession { + if (self.accessory == nil) { + SDLLogW(@"There is no control session in progress, attempting to create a new control session."); + [self.delegate controlSessionShouldRetry]; + } else { + SDLLogD(@"Starting a control session with accessory (%@)", self.accessory.name); + __weak typeof(self) weakSelf = self; + [self sdl_startStreamsWithCompletionHandler:^(BOOL success) { + __strong typeof(weakSelf) strongSelf = weakSelf; + if (!success) { + SDLLogW(@"Control session failed to setup with accessory: %@. Attempting to create a new control session", strongSelf.accessory); + [strongSelf destroySessionWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + [strongSelf.delegate controlSessionShouldRetry]; + }]; + } else { + SDLLogD(@"Waiting for the protocol string from Core, setting timeout timer for %d seconds", ProtocolIndexTimeoutSeconds); + strongSelf.protocolIndexTimer = [strongSelf sdl_createControlSessionProtocolIndexStringDataTimeoutTimer]; + } + }]; + } +} + +/// Opens the input and output streams for the session on the main thread. +/// @discussion We must close the input/output streams from the same thread that owns the streams' run loop, otherwise if the streams are closed from another thread a random crash may occur. Since only a small amount of data will be transmitted on this stream before it is closed, we will open and close the streams on the main thread instead of creating a separate thread. +- (void)sdl_startStreamsWithCompletionHandler:(void (^)(BOOL success))completionHandler { + if (![super createSession]) { + return completionHandler(NO); + } + + __weak typeof(self) weakSelf = self; + dispatch_async(dispatch_get_main_queue(), ^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + + SDLLogD(@"Created the control session successfully"); + [super startStream:strongSelf.eaSession.outputStream]; + [super startStream:strongSelf.eaSession.inputStream]; + + return completionHandler(YES); + }); +} + +#pragma mark Stop + +/// Makes sure the session is closed and destroyed on the main thread. +/// @param disconnectCompletionHandler Handler called when the session has disconnected +- (void)destroySessionWithCompletionHandler:(void (^)(void))disconnectCompletionHandler { + SDLLogD(@"Destroying the control session"); + dispatch_async(dispatch_get_main_queue(), ^{ + [self sdl_stopAndDestroySession]; + return disconnectCompletionHandler(); + }); +} + +/// Closes the session streams and then destroys the session. +- (void)sdl_stopAndDestroySession { + NSAssert(NSThread.isMainThread, @"%@ must only be called on the main thread", NSStringFromSelector(_cmd)); + + [super stopStream:self.eaSession.outputStream]; + [super stopStream:self.eaSession.inputStream]; + [super cleanupClosedSession]; +} + + +#pragma mark - NSStreamDelegate + +/** + * Handles events on the input/output streams of the open session. + * + * @param stream The stream (either input or output) that the event occured on + * @param eventCode The stream event code + */ +- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { + switch (eventCode) { + case NSStreamEventOpenCompleted: { + [self sdl_streamDidOpen:stream]; + break; + } + case NSStreamEventHasBytesAvailable: { + [self sdl_streamHasBytesAvailable:(NSInputStream *)stream]; + break; + } + case NSStreamEventErrorOccurred: { + [self sdl_streamDidError:stream]; + break; + } + case NSStreamEventEndEncountered: { + [self sdl_streamDidEnd:stream]; + break; + } + case NSStreamEventNone: + case NSStreamEventHasSpaceAvailable: + default: { + break; + } + } +} + +/** + * Called when the session gets a `NSStreamEventOpenCompleted`. When both the input and output streams open, start a timer to get data from Core within a certain timeframe. + * + * @param stream The stream that got the event code. + */ +- (void)sdl_streamDidOpen:(NSStream *)stream { + if (stream == [self.eaSession outputStream]) { + SDLLogD(@"Control session output stream opened"); + self.isOutputStreamOpen = YES; + } else if (stream == [self.eaSession inputStream]) { + SDLLogD(@"Control session input stream opened"); + self.isInputStreamOpen = YES; + } + + // When both streams are open, session initialization is complete. Let the delegate know. + if (self.isInputStreamOpen && self.isOutputStreamOpen) { + SDLLogV(@"Control session I/O streams opened for protocol: %@", self.protocolString); + [self sdl_startControlSessionProtocolIndexStringDataTimeoutTimer]; + } +} + +/** + * Called when the session gets a `NSStreamEventEndEncountered` event code. The current session is closed and a new session is attempted. + */ +- (void)sdl_streamDidEnd:(NSStream *)stream { + SDLLogD(@"Control stream ended"); + + // End events come in pairs, only perform this once per set. + [self.protocolIndexTimer cancel]; + + __weak typeof(self) weakSelf = self; + [self destroySessionWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + [strongSelf.delegate controlSessionShouldRetry]; + }]; +} + +/** + * Called when the session gets a `NSStreamEventHasBytesAvailable` event code. A protocol string is created from the received data. Since a new session needs to be established with the protocol string, the current session is closed and a new session is created. + */ +- (void)sdl_streamHasBytesAvailable:(NSInputStream *)inputStream { + SDLLogV(@"Control stream received data"); + + // Read in the stream a single byte at a time + uint8_t buf[1]; + NSInteger len = [inputStream read:buf maxLength:1]; + if (len <= 0) { + SDLLogV(@"No data in the control stream"); + return; + } + + // If we have data from the control stream, use the data to create the protocol string needed to establish the data session. + NSString *indexedProtocolString = [NSString stringWithFormat:@"%@%@", IndexedProtocolStringPrefix, @(buf[0])]; + SDLLogD(@"Control Stream will switch to protocol %@", indexedProtocolString); + + // Destroy the control session as it is no longer needed, and then create the data session. + __weak typeof(self) weakSelf = self; + [self destroySessionWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + if (strongSelf.accessory.isConnected) { + [strongSelf.protocolIndexTimer cancel]; + [strongSelf.delegate controlSession:strongSelf didReceiveProtocolString:indexedProtocolString]; + } + }]; +} + +/** + * Called when the session gets a `NSStreamEventErrorOccurred` event code. The current session is closed and a new session is attempted. + */ +- (void)sdl_streamDidError:(NSStream *)stream { + SDLLogE(@"Control stream error"); + + [self.protocolIndexTimer cancel]; + __weak typeof(self) weakSelf = self; + [self destroySessionWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + [strongSelf.delegate controlSessionShouldRetry]; + }]; +} + +#pragma mark - Timer + +/** + * Creates a timer for the session. Core has ~10 seconds to send the protocol string, otherwise when the timer's elapsed block is called, the current session is closed and a new session is attempted. + * + * @return A timer + */ +- (SDLTimer *)sdl_createControlSessionProtocolIndexStringDataTimeoutTimer { + SDLTimer *protocolIndexTimer = [[SDLTimer alloc] initWithDuration:ProtocolIndexTimeoutSeconds repeat:NO]; + + __weak typeof(self) weakSelf = self; + void (^elapsedBlock)(void) = ^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + SDLLogW(@"Control session failed to get the protocol string from Core after %d seconds, retrying.", ProtocolIndexTimeoutSeconds); + [strongSelf destroySessionWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + [strongSelf.delegate controlSessionShouldRetry]; + }]; + }; + + protocolIndexTimer.elapsedBlock = elapsedBlock; + return protocolIndexTimer; +} + +/** + * Starts a timer for the session. Core has ~10 seconds to send the protocol string, otherwise the control session is closed and the delegate will be notified that it should attempt to establish a new control session. + */ +- (void)sdl_startControlSessionProtocolIndexStringDataTimeoutTimer { + if (self.protocolIndexTimer == nil) { return; } + [self.protocolIndexTimer start]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSessionDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSessionDelegate.h new file mode 100644 index 0000000..67ba2b0 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSessionDelegate.h @@ -0,0 +1,23 @@ +// +// SDLIAPControlSessionDelegate.h +// SmartDeviceLink-iOS +// +// Created by Nicole on 5/13/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +@class SDLIAPControlSession; + +NS_ASSUME_NONNULL_BEGIN + +@protocol SDLIAPControlSessionDelegate + +- (void)controlSessionShouldRetry; +- (void)controlSession:(SDLIAPControlSession *)controlSession didReceiveProtocolString:(NSString *)protocolString; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.h new file mode 100644 index 0000000..463af6e --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.h @@ -0,0 +1,40 @@ +// +// SDLIAPDataSession.h +// SmartDeviceLink +// +// Created by Nicole on 4/17/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLIAPSession.h" + +@protocol SDLIAPDataSessionDelegate; + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLIAPDataSession : SDLIAPSession + +- (instancetype)init NS_UNAVAILABLE; + +/** + * Creates a new data session. + * + * @param accessory The new connected accessory. + * @param delegate The data session delegate + * @return A SDLIAPSession object + */ +- (instancetype)initWithAccessory:(nullable EAAccessory *)accessory delegate:(id)delegate forProtocol:(NSString *)protocol; + +/** + * Sends data to Core via the data session. + * + * @param data The data to send to Core + */ +- (void)sendData:(NSData *)data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.m new file mode 100644 index 0000000..785573f --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.m @@ -0,0 +1,375 @@ +// +// SDLIAPDataSession.m +// SmartDeviceLink +// +// Created by Nicole on 4/17/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLIAPDataSession.h" + +#import "SDLGlobals.h" +#import "SDLIAPConstants.h" +#import "SDLIAPDataSessionDelegate.h" +#import "SDLIAPSession.h" +#import "SDLLogMacros.h" +#import "SDLMutableDataQueue.h" + +NSString *const IOStreamThreadName = @"com.smartdevicelink.iostream"; +NSTimeInterval const IOStreamThreadCanceledSemaphoreWaitSecs = 1.0; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLIAPDataSession () + +@property (nullable, nonatomic, strong) NSThread *ioStreamThread; +@property (nonatomic, strong) SDLMutableDataQueue *sendDataQueue; +@property (weak, nonatomic) id delegate; +/// A semaphore used to block the current thread until we know that the I/O streams have been shutdown on the ioStreamThread +@property (nonatomic, strong) dispatch_semaphore_t ioStreamThreadCancelledSemaphore; + +@end + +@implementation SDLIAPDataSession + +#pragma mark - Lifecycle + +- (instancetype)initWithAccessory:(nullable EAAccessory *)accessory delegate:(id)delegate forProtocol:(NSString *)protocol; { + SDLLogV(@"iAP data session init for accessory: %@", accessory); + + self = [super initWithAccessory:accessory forProtocol:protocol]; + if (!self) { return nil; } + + _delegate = delegate; + _sendDataQueue = [[SDLMutableDataQueue alloc] init]; + _ioStreamThreadCancelledSemaphore = dispatch_semaphore_create(0); + + return self; +} + + +#pragma mark Start + +- (void)startSession { + if (self.accessory == nil) { + SDLLogW(@"Failed to setup data session"); + if (self.delegate == nil) { return; } + [self.delegate dataSessionShouldRetry]; + } else { + SDLLogD(@"Starting data session with accessory: %@, using protocol: %@", self.accessory.name, self.protocolString); + + if (![super createSession]) { + SDLLogW(@"Data session failed to setup with accessory: %@. Retrying...", self.accessory); + __weak typeof(self) weakSelf = self; + [self destroySessionWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + if (strongSelf.delegate == nil) { return; } + [strongSelf.delegate dataSessionShouldRetry]; + }]; + } + + if (self.eaSession != nil) { + self.ioStreamThread = [[NSThread alloc] initWithTarget:self selector:@selector(sdl_accessoryEventLoop) object:nil]; + [self.ioStreamThread setName:IOStreamThreadName]; + [self.ioStreamThread start]; + } + } +} + +#pragma mark Stop + +/// Waits for the ioStreamThread to close and destroy the I/O streams. +/// @param disconnectCompletionHandler Handler called when the session has disconnected +- (void)destroySessionWithCompletionHandler:(void (^)(void))disconnectCompletionHandler { + SDLLogD(@"Destroying the data session"); + + if (self.ioStreamThread == nil) { + SDLLogV(@"No data session established"); + [super cleanupClosedSession]; + return disconnectCompletionHandler(); + } + + // Tell the ioStreamThread to shutdown the I/O streams. The I/O streams must be opened and closed on the same thread; if they are not, random crashes can occur. Dispatch this task to the main queue to ensure that this task is performed on the Main Thread. We are using the Main Thread for ease since we don't want to create a separate thread just to wait on closing the I/O streams. Using the Main Thread ensures that semaphore wait is not called from ioStreamThread, which would block the ioStreamThread and prevent shutdown. + __weak typeof(self) weakSelf = self; + dispatch_async(dispatch_get_main_queue(), ^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + + // Attempt to cancel the ioStreamThread. Once the thread realizes it has been cancelled, it will cleanup the I/O streams. Make sure to wake up the run loop in case there is no current I/O event running on the ioThread. + [strongSelf.ioStreamThread cancel]; + [strongSelf performSelector:@selector(sdl_doNothing) onThread:self.ioStreamThread withObject:nil waitUntilDone:NO]; + + // Block the thread until the semaphore has been released by the ioStreamThread (or a timeout has occured). + BOOL cancelledSuccessfully = [strongSelf sdl_isIOThreadCancelled]; + if (!cancelledSuccessfully) { + SDLLogE(@"The I/O streams were not shut down successfully. We might not be able to create a new session with an accessory during the same app session. If this happens, only force quitting and restarting the app will allow new sessions."); + } + + [strongSelf.sendDataQueue removeAllObjects]; + + disconnectCompletionHandler(); + }); +} + +/// Wait for the ioStreamThread to destroy the I/O streams. Make sure this method is not called on the ioStreamThread, as it will block the thread until the timeout occurs. +/// @return Whether or not the session's I/O streams were closed successfully. +- (BOOL)sdl_isIOThreadCancelled { + NSAssert(![NSThread.currentThread.name isEqualToString:IOStreamThreadName], @"%@ must not be called from the ioStreamThread!", NSStringFromSelector(_cmd)); + + long lWait = dispatch_semaphore_wait(self.ioStreamThreadCancelledSemaphore, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(IOStreamThreadCanceledSemaphoreWaitSecs * NSEC_PER_SEC))); + if (lWait == 0) { + SDLLogD(@"ioStreamThread cancelled successfully"); + return YES; + } + + SDLLogE(@"Failed to cancel ioStreamThread within %.1f seconds", IOStreamThreadCanceledSemaphoreWaitSecs); + return NO; +} + +/// Helper method for waking up the ioStreamThread. +- (void)sdl_doNothing {} + +#pragma mark - Sending data + +- (void)sendData:(NSData *)data { + // Enqueue the data for transmission on the IO thread + [self.sendDataQueue enqueueBuffer:data.mutableCopy]; + + [self performSelector:@selector(sdl_dequeueAndWriteToOutputStream) onThread:self.ioStreamThread withObject:nil waitUntilDone:NO]; +} + +/** + * Sends any queued data to Core on the output stream for the session. + */ +- (void)sdl_dequeueAndWriteToOutputStream { + if ([self.ioStreamThread isCancelled]) { + SDLLogW(@"Attempted to send data on I/O thread but the thread is cancelled."); + return; + } + + NSOutputStream *ostream = self.eaSession.outputStream; + if (!ostream.hasSpaceAvailable) { + SDLLogV(@"Attempted to send data with output stream but there is no space available."); + return; + } + + NSMutableData *remainder = [self.sendDataQueue frontBuffer]; + if (remainder == nil) { + SDLLogV(@"No more data to write to data session's output stream. Returning"); + return; + } + + NSUInteger bytesRemaining = remainder.length; + NSInteger bytesWritten = [ostream write:remainder.bytes maxLength:bytesRemaining]; + + if (bytesWritten < 0) { + if (ostream.streamError != nil) { + // Once a stream has reported an error, it cannot be re-used for read or write operations. Shut down the stream and attempt to create a new session. + [self sdl_streamDidError:ostream]; + } else { + // The write operation failed but there is no further information about the error. This can occur when disconnecting from an external accessory. + SDLLogE(@"Output stream write operation failed"); + } + } else if (bytesWritten == bytesRemaining) { + // Remove the data from the queue + [self.sendDataQueue popBuffer]; + } else { + // Cleave the sent bytes from the data, the remainder will sit at the head of the queue + [remainder replaceBytesInRange:NSMakeRange(0, (NSUInteger)bytesWritten) withBytes:NULL length:0]; + } +} + +#pragma mark - NSStreamDelegate + +/** + * Handles events on the input/output streams of the open session. + * + * @param stream The stream (either input or output) that the event occured on + * @param eventCode The stream event code + */ +- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { + switch (eventCode) { + case NSStreamEventOpenCompleted: { + [self sdl_streamDidOpen:stream]; + break; + } + case NSStreamEventHasBytesAvailable: { + [self sdl_streamHasBytesAvailable:(NSInputStream *)stream]; + break; + } + case NSStreamEventHasSpaceAvailable: { + [self sdl_streamHasSpaceToWrite]; + break; + } + case NSStreamEventErrorOccurred: { + [self sdl_streamDidError:stream]; + break; + } + case NSStreamEventEndEncountered: { + [self sdl_streamDidEnd:stream]; + break; + } + case NSStreamEventNone: + default: { + break; + } + } +} + +/** + * Called when the session gets a `NSStreamEventOpenCompleted`. When both the input and output streams open, notify the lifecycle manager that a connection has been established with the accessory. + * + * @param stream The stream that got the event code. + */ +- (void)sdl_streamDidOpen:(NSStream *)stream { + if (stream == [self.eaSession outputStream]) { + SDLLogD(@"Data session output stream opened"); + self.isOutputStreamOpen = YES; + } else if (stream == [self.eaSession inputStream]) { + SDLLogD(@"Data session input stream opened"); + self.isInputStreamOpen = YES; + } + + // When both streams are open, session initialization is complete. Let the delegate know. + if (self.isInputStreamOpen && self.isOutputStreamOpen) { + SDLLogV(@"Data session I/O streams opened for protocol: %@", self.protocolString); + if (self.delegate == nil) { return; } + [self.delegate dataSessionDidConnect]; + } +} + +/** + * Called when the session gets a `NSStreamEventEndEncountered` event code. The current session is closed and a new session is attempted. + */ +- (void)sdl_streamDidEnd:(NSStream *)stream { + NSAssert(!NSThread.isMainThread, @"%@ should only be called on the IO thread", NSStringFromSelector(_cmd)); + + SDLLogD(@"Data stream ended"); + if (self.accessory == nil) { + SDLLogD(@"Data session is nil"); + return; + } + + // The handler will be called on the I/O thread, but the session stop method must be called on the main thread + dispatch_async(dispatch_get_main_queue(), ^{ + __weak typeof(self) weakSelf = self; + [self destroySessionWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + if (strongSelf.delegate == nil) { return; } + [strongSelf.delegate dataSessionShouldRetry]; + }]; + }); + + // To prevent deadlocks the handler must return to the runloop and not block the thread +} + +/** + * Called when the session gets a `NSStreamEventHasBytesAvailable` event code. The data is passed to the listener. + */ +- (void)sdl_streamHasBytesAvailable:(NSInputStream *)inputStream { + NSAssert(!NSThread.isMainThread, @"%@ should only be called on the IO thread", NSStringFromSelector(_cmd)); + uint8_t buf[[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]]; + while (inputStream.streamStatus == NSStreamStatusOpen && inputStream.hasBytesAvailable) { + // It is necessary to check the stream status and whether there are bytes available because the dataStreamHasBytesHandler is executed on the IO thread and the accessory disconnect notification arrives on the main thread, causing data to be passed to the delegate while the main thread is tearing down the transport. + NSInteger bytesRead = [inputStream read:buf maxLength:[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]]; + if (bytesRead < 0) { + SDLLogE(@"Failed to read from data stream"); + break; + } + + NSData *dataIn = [NSData dataWithBytes:buf length:(NSUInteger)bytesRead]; + SDLLogBytes(dataIn, SDLLogBytesDirectionReceive); + + if (bytesRead > 0) { + if (self.delegate == nil) { return; } + [self.delegate dataSessionDidReceiveData:dataIn]; + } else { + break; + } + } +} + +/** + * Called when the session gets a `NSStreamEventHasSpaceAvailable` event code. Send any queued data to Core. + */ +- (void)sdl_streamHasSpaceToWrite { + [self sdl_dequeueAndWriteToOutputStream]; +} + +/** + * Called when the session gets a `NSStreamEventErrorOccurred` event code. The current session is closed and a new session is attempted. + */ +- (void)sdl_streamDidError:(NSStream *)stream { + NSAssert(!NSThread.isMainThread, @"%@ should only be called on the IO thread", NSStringFromSelector(_cmd)); + + SDLLogE(@"Data session %s stream errored", stream == self.eaSession.inputStream ? "input" : "output"); + + // To prevent deadlocks the handler must return to the runloop and not block the thread + dispatch_async(dispatch_get_main_queue(), ^{ + __weak typeof(self) weakSelf = self; + [self destroySessionWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + if (![strongSelf.protocolString isEqualToString:LegacyProtocolString]) { + if (strongSelf.delegate == nil) { return; } + [strongSelf.delegate dataSessionShouldRetry]; + } + }]; + }); +} + +#pragma mark - Stream lifecycle + +// Data session I/O thread +- (void)sdl_accessoryEventLoop { + @autoreleasepool { + NSAssert(self.eaSession != nil, @"Session must be assigned before calling"); + if (!self.eaSession) { + return; + } + + [self startStream:self.eaSession.inputStream]; + [self startStream:self.eaSession.outputStream]; + + SDLLogD(@"Starting the accessory event loop on thread: %@", NSThread.currentThread.name); + + while (self.ioStreamThread != nil && !self.ioStreamThread.cancelled) { + // Enqueued data will be written to and read from the streams in the runloop + [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.25f]]; + } + + SDLLogD(@"Closing the accessory event loop on thread: %@", NSThread.currentThread.name); + + // Close I/O streams + [self sdl_closeSession]; + [super cleanupClosedSession]; + + // If a thread is blocked waiting on the I/O streams to shutdown, let the thread know that shutdown has completed. + dispatch_semaphore_signal(self.ioStreamThreadCancelledSemaphore); + } +} + +// Must be called on accessoryEventLoop. +- (void)sdl_closeSession { + if (self.eaSession == nil) { + return; + } + + SDLLogD(@"Closing EASession for accessory connection id: %tu, name: %@", self.connectionID, self.eaSession.accessory.name); + + [self stopStream:[self.eaSession inputStream]]; + [self stopStream:[self.eaSession outputStream]]; +} + +- (void)startStream:(NSStream *)stream { + NSAssert([[NSThread currentThread] isEqual:self.ioStreamThread] || [NSThread isMainThread], @"startStream is being called on the wrong thread!!!"); + [super startStream:stream]; +} + +- (void)stopStream:(NSStream *)stream { + NSAssert([[NSThread currentThread] isEqual:self.ioStreamThread] || [NSThread isMainThread], @"stopStream is being called on the wrong thread!!!"); + [super stopStream:stream]; +} + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSessionDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSessionDelegate.h new file mode 100644 index 0000000..687da5f --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSessionDelegate.h @@ -0,0 +1,21 @@ +// +// SDLIAPDataSessionDelegate.h +// SmartDeviceLink-iOS +// +// Created by Nicole on 5/13/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol SDLIAPDataSessionDelegate + +- (void)dataSessionShouldRetry; +- (void)dataSessionDidReceiveData:(NSData *)data; +- (void)dataSessionDidConnect; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.h index 542d937..6bc62ed 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.h @@ -2,31 +2,100 @@ // SDLIAPSession.h // -#import "SDLIAPSessionDelegate.h" #import #import -@class SDLStreamDelegate; NS_ASSUME_NONNULL_BEGIN -typedef void (^SessionCompletionHandler)(BOOL success); -@interface SDLIAPSession : NSObject +@interface SDLIAPSession : NSObject -@property (nullable, strong, nonatomic) EAAccessory *accessory; -@property (nullable, strong, nonatomic) NSString *protocol; -@property (nullable, strong, nonatomic) EASession *easession; -@property (nullable, weak, nonatomic) id delegate; -@property (nullable, strong, nonatomic) SDLStreamDelegate *streamDelegate; +/** + * The accessory with which to open a session. + */ +@property (nullable, strong, nonatomic, readonly) EAAccessory *accessory; + +/** + * The session created between the app and the accessory. + */ +@property (nullable, strong, nonatomic, readonly) EASession *eaSession; + +/** + * The unique protocol string used to create the session with the accessory. + */ +@property (nullable, strong, nonatomic, readonly) NSString *protocolString; + +/** + * Returns whether or not both the input and output streams for the session are closed. + */ @property (assign, readonly, getter=isStopped) BOOL stopped; -- (instancetype)initWithAccessory:(EAAccessory *)accessory - forProtocol:(NSString *)protocol; +/** + * The input stream for the session is open when a `NSStreamEventOpenCompleted` event is received for the input stream. The input stream is closed when the stream status is `NSStreamStatusClosed`. + */ +@property (nonatomic, assign) BOOL isInputStreamOpen; + +/** + * The output stream for the session is open when a `NSStreamEventOpenCompleted` event is received for the output stream. The output stream has been closed when the stream status is `NSStreamStatusClosed`. + */ +@property (nonatomic, assign) BOOL isOutputStreamOpen; + +/** + * The unique ID assigned to the session between the app and accessory. If no session exists the value will be 0. + */ +@property (assign, nonatomic, readonly) NSUInteger connectionID; + +/** + * Returns whether the session has open I/O streams. + */ +@property (assign, nonatomic, readonly, getter=isSessionInProgress) BOOL sessionInProgress; + +/** + * Convenience initializer for setting an accessory and protocol string. + * + * @param accessory The accessory with which to open a session + * @param protocol The unique protocol string used to create the session with the accessory + * @return A SDLIAPSession object + */ +- (instancetype)initWithAccessory:(nullable EAAccessory *)accessory forProtocol:(NSString *)protocol; + +/** + * Starts a session. + */ +- (void)startSession; + +/// Stops the current session. +/// @param disconnectCompletionHandler Handler called when the session has been closed +- (void)destroySessionWithCompletionHandler:(void (^)(void))disconnectCompletionHandler; + +/** + * Creates a session with the accessory. + * + * @return Whether or not the session was created successfully + */ +- (BOOL)createSession; + +/** + * Starts a session input or output stream. + * + * @param stream The stream to be started. + */ +- (void)startStream:(NSStream *)stream; + +/** + * Stops a session input or output stream. + * + * @param stream The stream to be stopped. + */ +- (void)stopStream:(NSStream *)stream; + +/** + * Cleans up a closed session + */ +- (void)cleanupClosedSession; + -- (BOOL)start; -- (void)stop; -- (void)sendData:(NSData *)data; @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.m index 98cc358..eaf7972 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.m @@ -5,289 +5,105 @@ #import "SDLIAPSession.h" #import "SDLLogMacros.h" #import "SDLMutableDataQueue.h" -#import "SDLStreamDelegate.h" #import "SDLTimer.h" NS_ASSUME_NONNULL_BEGIN -NSString *const IOStreamThreadName = @"com.smartdevicelink.iostream"; -NSTimeInterval const StreamThreadWaitSecs = 10.0; - @interface SDLIAPSession () -@property (nonatomic, assign) BOOL isInputStreamOpen; -@property (nonatomic, assign) BOOL isOutputStreamOpen; -@property (nonatomic, assign) BOOL isDataSession; -@property (nullable, nonatomic, strong) NSThread *ioStreamThread; -@property (nonatomic, strong) SDLMutableDataQueue *sendDataQueue; -@property (nonatomic, strong) dispatch_semaphore_t canceledSemaphore; +@property (nullable, strong, nonatomic, readwrite) EASession *eaSession; +@property (nullable, strong, nonatomic, readwrite) EAAccessory *accessory; +@property (nullable, strong, nonatomic, readwrite) NSString *protocolString; @end - @implementation SDLIAPSession #pragma mark - Lifecycle -- (instancetype)initWithAccessory:(EAAccessory *)accessory forProtocol:(NSString *)protocol { - SDLLogD(@"SDLIAPSession initWithAccessory:%@ forProtocol:%@", accessory, protocol); +- (instancetype)initWithAccessory:(nullable EAAccessory *)accessory forProtocol:(NSString *)protocol { + SDLLogD(@"SDLIAPSession init with accessory:%@ for protocol:%@", accessory.name, protocol); self = [super init]; - if (self) { - _isDataSession = [protocol isEqualToString:@"com.smartdevicelink.prot0"] ? NO : YES; - _accessory = accessory; - _protocol = protocol; - _canceledSemaphore = dispatch_semaphore_create(0); - _sendDataQueue = [[SDLMutableDataQueue alloc] init]; - _isInputStreamOpen = NO; - _isOutputStreamOpen = NO; - } - return self; -} - - -#pragma mark - Public Stream Lifecycle - -- (BOOL)start { - __weak typeof(self) weakSelf = self; - SDLLogD(@"Opening EASession withAccessory:%@ forProtocol:%@", _accessory.name, _protocol); - - // TODO: This assignment should be broken out of the if and the if / else should be flipped. - if ((self.easession = [[EASession alloc] initWithAccessory:self.accessory forProtocol:self.protocol])) { - __strong typeof(self) strongSelf = weakSelf; - - SDLLogD(@"Created Session Object"); - - strongSelf.streamDelegate.streamErrorHandler = [self streamErroredHandler]; - strongSelf.streamDelegate.streamOpenHandler = [self streamOpenedHandler]; - if (self.isDataSession) { - self.streamDelegate.streamHasSpaceHandler = [self sdl_streamHasSpaceHandler]; - // Start I/O event loop processing events in iAP channel - self.ioStreamThread = [[NSThread alloc] initWithTarget:self selector:@selector(sdl_accessoryEventLoop) object:nil]; - [self.ioStreamThread setName:IOStreamThreadName]; - [self.ioStreamThread start]; - } else { - // Set up control session -- no need for its own thread - [self startStream:self.easession.outputStream]; - [self startStream:self.easession.inputStream]; - } - return YES; - - } else { - SDLLogE(@"Error: Could Not Create Session Object"); - return NO; - } -} - -- (void)stop { - if ([NSThread isMainThread]) { - [self sdl_stop]; - } else { - dispatch_sync(dispatch_get_main_queue(), ^{ - [self sdl_stop]; - }); - } -} + if (!self) { return nil; } -- (void)sdl_stop { - NSAssert(NSThread.isMainThread, @"%@ must only be called on the main thread", NSStringFromSelector(_cmd)); - if (self.isDataSession) { - [self.ioStreamThread cancel]; - - long lWait = dispatch_semaphore_wait(self.canceledSemaphore, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(StreamThreadWaitSecs * NSEC_PER_SEC))); - if (lWait == 0) { - SDLLogW(@"Stream thread cancelled"); - } else { - SDLLogE(@"Failed to cancel stream thread"); - } - self.ioStreamThread = nil; - self.isDataSession = NO; - } else { - // Stop control session - [self stopStream:self.easession.outputStream]; - [self stopStream:self.easession.inputStream]; - } - self.easession = nil; -} - -- (BOOL)isStopped { - return !self.isOutputStreamOpen && !self.isInputStreamOpen; -} - -#pragma mark - data send methods - -- (void)sendData:(NSData *)data { - // Enqueue the data for transmission on the IO thread - [self.sendDataQueue enqueueBuffer:data.mutableCopy]; - - [self performSelector:@selector(sdl_dequeueAndWriteToOutputStream) onThread:self.ioStreamThread withObject:nil waitUntilDone:NO]; -} - -- (void)sdl_dequeueAndWriteToOutputStream { - NSOutputStream *ostream = self.easession.outputStream; - if (!ostream.hasSpaceAvailable) { - return; - } - - NSMutableData *remainder = [self.sendDataQueue frontBuffer]; - - if (remainder != nil && ostream.streamStatus == NSStreamStatusOpen) { - NSUInteger bytesRemaining = remainder.length; - NSInteger bytesWritten = [ostream write:remainder.bytes maxLength:bytesRemaining]; - if (bytesWritten < 0) { - if (ostream.streamError != nil) { - [self sdl_handleOutputStreamWriteError:ostream.streamError]; - } else { - // The write operation failed but there is no further information about the error. This can occur when disconnecting from an external accessory. - SDLLogE(@"Output stream write operation failed"); - } - } else if (bytesWritten == bytesRemaining) { - // Remove the data from the queue - [self.sendDataQueue popBuffer]; - } else { - // Cleave the sent bytes from the data, the remainder will sit at the head of the queue - [remainder replaceBytesInRange:NSMakeRange(0, (NSUInteger)bytesWritten) withBytes:NULL length:0]; - } - } -} + _accessory = accessory; + _protocolString = protocol; + _isInputStreamOpen = NO; + _isOutputStreamOpen = NO; -- (void)sdl_handleOutputStreamWriteError:(NSError *)error { - SDLLogE(@"Output stream error: %@", error); - // TODO: We should look at the domain and the code as a tuple and decide how to handle the error based on both values. For now, if the stream is closed, we will flush the send queue and leave it as-is otherwise so that temporary error conditions can be dealt with by retrying - if (self.easession == nil || - self.easession.outputStream == nil || - self.easession.outputStream.streamStatus != NSStreamStatusOpen) { - [self.sendDataQueue removeAllObjects]; - } + return self; } -#pragma mark - background I/O for data session - -// Data session I/O thread -- (void)sdl_accessoryEventLoop { - @autoreleasepool { - NSAssert(self.easession, @"_session must be assigned before calling"); - - if (!self.easession) { - return; - } - - [self startStream:self.easession.inputStream]; - [self startStream:self.easession.outputStream]; - - SDLLogD(@"Starting the accessory event loop"); - while (!NSThread.currentThread.cancelled) { - // Enqueued data will be written to and read from the streams in the runloop - [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.25f]]; - } - - SDLLogD(@"Closing the accessory session for id: %tu, name: %@", self.easession.accessory.connectionID, self.easession.accessory.name); +#pragma mark - Abstract Methods - // Close I/O streams of the iAP session - [self sdl_closeSession]; - dispatch_semaphore_signal(self.canceledSemaphore); - } -} +- (void)startSession {} -// Must be called on accessoryEventLoop. -- (void)sdl_closeSession { - if (!self.easession) { - return; - } +- (void)destroySessionWithCompletionHandler:(void (^)(void))disconnectCompletionHandler {} - SDLLogD(@"Close EASession for accessory id: %tu, name: %@", self.easession.accessory.connectionID, self.easession.accessory.name); +#pragma mark - Private Stream Lifecycle Helpers - [self stopStream:[self.easession inputStream]]; - [self stopStream:[self.easession outputStream]]; +- (BOOL)createSession { + SDLLogD(@"Opening EASession with accessory: %@", self.accessory.name); + self.eaSession = [[EASession alloc] initWithAccessory:self.accessory forProtocol:self.protocolString]; + return (self.eaSession != nil); } - -#pragma mark - Private Stream Lifecycle Helpers - - (void)startStream:(NSStream *)stream { - stream.delegate = self.streamDelegate; - NSAssert((self.isDataSession && [[NSThread currentThread] isEqual:self.ioStreamThread]) || [NSThread isMainThread], @"startStream is being called on the wrong thread!!!"); + stream.delegate = self; [stream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [stream open]; } - (void)stopStream:(NSStream *)stream { - // Verify stream is in a state that can be closed. - // (N.B. Closing a stream that has not been opened has very, very bad effects.) - - // When you disconect the cable you get a stream end event and come here but stream is already in closed state. - // Still need to remove from run loop. - - NSAssert((self.isDataSession && [[NSThread currentThread] isEqual:self.ioStreamThread]) || [NSThread isMainThread], @"stopStream is being called on the wrong thread!!!"); - + // Verify stream is in a state that can be closed. Closing a stream that has not been opened has very bad effects. NSUInteger status1 = stream.streamStatus; if (status1 != NSStreamStatusNotOpen && status1 != NSStreamStatusClosed) { [stream close]; + } else if (status1 == NSStreamStatusNotOpen) { + // It's implicitly removed from the stream when it's closed, but not if it was never opened. + // When the USB cable is disconnected, the app will will call this method after the `NSStreamEventEndEncountered` event. The stream will already be in the closed state but it still needs to be removed from the run loop. + [stream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; } - [stream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [stream setDelegate:nil]; NSUInteger status2 = stream.streamStatus; if (status2 == NSStreamStatusClosed) { - if (stream == [self.easession inputStream]) { - SDLLogD(@"Input Stream Closed"); + if (stream == [self.eaSession inputStream]) { + SDLLogD(@"Input stream closed"); self.isInputStreamOpen = NO; - } else if (stream == [self.easession outputStream]) { - SDLLogD(@"Output Stream Closed"); + } else if (stream == [self.eaSession outputStream]) { + SDLLogD(@"Output stream closed"); self.isOutputStreamOpen = NO; } } } +- (void)cleanupClosedSession { + if (self.eaSession == nil) { + SDLLogD(@"Attempting to close session with accessory: %@, but it is already closed", self.accessory.name); + return; + } -#pragma mark - Stream Handlers - -- (SDLStreamOpenHandler)streamOpenedHandler { - __weak typeof(self) weakSelf = self; - - return ^(NSStream *stream) { - __strong typeof(weakSelf) strongSelf = weakSelf; - - if (stream == [strongSelf.easession outputStream]) { - SDLLogD(@"Output Stream Opened"); - strongSelf.isOutputStreamOpen = YES; - } else if (stream == [strongSelf.easession inputStream]) { - SDLLogD(@"Input Stream Opened"); - strongSelf.isInputStreamOpen = YES; - } - - // When both streams are open, session initialization is complete. Let the delegate know. - if (strongSelf.isInputStreamOpen && strongSelf.isOutputStreamOpen) { - [strongSelf.delegate onSessionInitializationCompleteForSession:weakSelf]; - } - }; + self.eaSession = nil; + SDLLogD(@"Session closed with: %@", self.accessory.name); + self.accessory.delegate = nil; } -- (SDLStreamErrorHandler)streamErroredHandler { - __weak typeof(self) weakSelf = self; - - return ^(NSStream *stream) { - __strong typeof(weakSelf) strongSelf = weakSelf; +#pragma mark - Getters - SDLLogW(@"Stream Error: %@", stream); - [strongSelf.delegate onSessionStreamsEnded:strongSelf]; - }; +- (BOOL)isStopped { + return !self.isOutputStreamOpen && !self.isInputStreamOpen; } -- (SDLStreamHasSpaceHandler)sdl_streamHasSpaceHandler { - __weak typeof(self) weakSelf = self; - - return ^(NSStream *stream) { - __strong typeof(weakSelf) strongSelf = weakSelf; - - if (!strongSelf.isDataSession) { - return; - } +- (NSUInteger)connectionID { + return self.eaSession.accessory.connectionID; +} - [strongSelf sdl_dequeueAndWriteToOutputStream]; - }; +- (BOOL)isSessionInProgress { + return !self.isStopped; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSessionDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSessionDelegate.h deleted file mode 100644 index 66d182a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSessionDelegate.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLIAPSessionDelegate.h -// - -#import -@class SDLIAPSession; - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLIAPSessionDelegate - -/** - * Session initialized - * - * @param session A SDLIAPSession object - */ -- (void)onSessionInitializationCompleteForSession:(SDLIAPSession *)session; - - -/** - * Session ended - * - * @param session A SDLIAPSession object - */ -- (void)onSessionStreamsEnded:(SDLIAPSession *)session; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.h index ec32ae1..5b76878 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.h @@ -4,21 +4,11 @@ #import #import "SDLTransportType.h" -#import "SDLIAPSessionDelegate.h" -NS_ASSUME_NONNULL_BEGIN - -@interface SDLIAPTransport : NSObject -/** - * Session for transporting data between the app and Core. - */ -@property (nullable, strong, nonatomic) SDLIAPSession *controlSession; +NS_ASSUME_NONNULL_BEGIN -/** - * Session for establishing a connection with Core. Once the connection has been established, the session is closed and a control session is established. - */ -@property (nullable, strong, nonatomic) SDLIAPSession *session; +@interface SDLIAPTransport : NSObject /** * The subscribed listener. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.m index 5283ae6..11da3a1 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.m @@ -1,40 +1,34 @@ // SDLIAPTransport.h -// #import #import +#import "SDLIAPTransport.h" + #import "EAAccessory+SDLProtocols.h" #import "EAAccessoryManager+SDLProtocols.h" #import "SDLGlobals.h" -#import "SDLIAPSession.h" -#import "SDLIAPTransport.h" -#import "SDLIAPTransport.h" +#import "SDLIAPConstants.h" +#import "SDLIAPControlSession.h" +#import "SDLIAPControlSessionDelegate.h" +#import "SDLIAPDataSession.h" +#import "SDLIAPDataSessionDelegate.h" #import "SDLLogMacros.h" -#import "SDLStreamDelegate.h" -#import "SDLTimer.h" #import NS_ASSUME_NONNULL_BEGIN -NSString *const LegacyProtocolString = @"com.ford.sync.prot0"; -NSString *const ControlProtocolString = @"com.smartdevicelink.prot0"; -NSString *const IndexedProtocolStringPrefix = @"com.smartdevicelink.prot"; -NSString *const MultiSessionProtocolString = @"com.smartdevicelink.multisession"; -NSString *const BackgroundTaskName = @"com.sdl.transport.iap.backgroundTask"; - int const CreateSessionRetries = 3; -int const ProtocolIndexTimeoutSeconds = 10; -@interface SDLIAPTransport () { - BOOL _alreadyDestructed; -} +@interface SDLIAPTransport () +@property (nullable, strong, nonatomic) SDLIAPControlSession *controlSession; +@property (nullable, strong, nonatomic) SDLIAPDataSession *dataSession; @property (assign, nonatomic) int retryCounter; @property (assign, nonatomic) BOOL sessionSetupInProgress; -@property (nonatomic, assign) UIBackgroundTaskIdentifier backgroundTaskId; -@property (nullable, strong, nonatomic) SDLTimer *protocolIndexTimer; +@property (assign, nonatomic) BOOL transportDestroyed; +@property (assign, nonatomic) BOOL accessoryConnectDuringActiveSession; @end @@ -42,58 +36,29 @@ @interface SDLIAPTransport () { @implementation SDLIAPTransport - (instancetype)init { - SDLLogV(@"SDLIAPTransport Init"); - if (self = [super init]) { - _alreadyDestructed = NO; - _sessionSetupInProgress = NO; - _session = nil; - _controlSession = nil; - _retryCounter = 0; - _protocolIndexTimer = nil; - - // Get notifications if an accessory connects in future - [self sdl_startEventListening]; - - // Wait for setup to complete before scanning for accessories + SDLLogV(@"SDLIAPTransport init"); + self = [super init]; + if (!self) { + return nil; } - - return self; -} -#pragma mark - Background Task + _sessionSetupInProgress = NO; + _transportDestroyed = NO; + _dataSession = nil; + _controlSession = nil; + _retryCounter = 0; + _accessoryConnectDuringActiveSession = NO; -/** - * Starts a background task that allows the app to search for accessories and while the app is in the background. - */ -- (void)sdl_backgroundTaskStart { - if (self.backgroundTaskId != UIBackgroundTaskInvalid) { - return; - } + // Get notifications if an accessory connects in future + [self sdl_startEventListening]; - SDLLogD(@"Starting background task"); - self.backgroundTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithName:BackgroundTaskName expirationHandler:^{ - SDLLogD(@"Background task expired"); - [self sdl_backgroundTaskEnd]; - }]; -} + // Wait for setup to complete before scanning for accessories -/** - * Cleans up a background task when it is stopped. - */ -- (void)sdl_backgroundTaskEnd { - if (self.backgroundTaskId == UIBackgroundTaskInvalid) { - return; - } - - SDLLogD(@"Ending background task"); - [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTaskId]; - self.backgroundTaskId = UIBackgroundTaskInvalid; + return self; } #pragma mark - Notifications -#pragma mark Subscription - /** * Registers for system notifications about connected accessories and the app life cycle. */ @@ -103,22 +68,10 @@ - (void)sdl_startEventListening { selector:@selector(sdl_accessoryConnected:) name:EAAccessoryDidConnectNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_accessoryDisconnected:) name:EAAccessoryDidDisconnectNotification object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(sdl_applicationWillEnterForeground:) - name:UIApplicationWillEnterForegroundNotification - object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(sdl_applicationDidEnterBackground:) - name:UIApplicationDidEnterBackgroundNotification - object:nil]; - [[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications]; } @@ -130,7 +83,6 @@ - (void)sdl_stopEventListening { [[NSNotificationCenter defaultCenter] removeObserver:self]; } - #pragma mark EAAccessory Notifications /** @@ -139,542 +91,470 @@ - (void)sdl_stopEventListening { * @param notification Contains information about the connected accessory */ - (void)sdl_accessoryConnected:(NSNotification *)notification { - double retryDelay = self.retryDelay; - SDLLogD(@"Accessory Connected (%@), Opening in %0.03fs", notification.userInfo[EAAccessoryKey], retryDelay); - - if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) { - SDLLogD(@"Accessory connected while app is in background. Starting background task."); - [self sdl_backgroundTaskStart]; + EAAccessory *newAccessory = notification.userInfo[EAAccessoryKey]; + + if ([self sdl_isDataSessionActive:self.dataSession newAccessory:newAccessory]) { + self.accessoryConnectDuringActiveSession = YES; + return; } + double retryDelay = self.sdl_retryDelay; + SDLLogD(@"Accessory Connected (%@), Opening in %0.03fs", notification.userInfo[EAAccessoryKey], retryDelay); + self.retryCounter = 0; [self performSelector:@selector(sdl_connect:) withObject:nil afterDelay:retryDelay]; } /** - * Handles a notification sent by the system when an accessory has been disconnected by cleaning up after the disconnected device. Only check for the data session, the control session is handled separately + * Checks if the newly connected accessory connected while a data session is already opened. This can happen when a session is established over bluetooth and then the user connects to the same head unit with a USB cord. + * + * @param dataSession The current data session + * @param newAccessory The newly connected accessory + * @return True if the accessory connected while a data session is already in progress; false if not + */ +- (BOOL)sdl_isDataSessionActive:(nullable SDLIAPDataSession *)dataSession newAccessory:(EAAccessory *)newAccessory { + if (dataSession == nil || !dataSession.isSessionInProgress) { + return NO; + } + + if (dataSession.isSessionInProgress && (dataSession.connectionID != newAccessory.connectionID)) { + SDLLogD(@"Switching transports from Bluetooth to USB. Waiting for disconnect notification."); + return YES; + } + + return NO; +} + +/** + * Handles a notification sent by the system when an accessory has been disconnected by cleaning up after the disconnected device. * * @param notification Contains information about the connected accessory */ - (void)sdl_accessoryDisconnected:(NSNotification *)notification { EAAccessory *accessory = [notification.userInfo objectForKey:EAAccessoryKey]; - if (accessory.connectionID != self.session.accessory.connectionID) { - SDLLogV(@"Accessory disconnected during control session (%@)", accessory); - self.retryCounter = 0; + SDLLogD(@"Accessory with serial number: %@, and connectionID: %lu disconnecting.", accessory.serialNumber, (unsigned long)accessory.connectionID); + + if (self.accessoryConnectDuringActiveSession == YES) { + SDLLogD(@"Switching transports from Bluetooth to USB. Will reconnect over Bluetooth after disconnecting the USB session."); + self.accessoryConnectDuringActiveSession = NO; } - if ([accessory.serialNumber isEqualToString:self.session.accessory.serialNumber]) { - SDLLogV(@"Accessory disconnected during data session (%@)", accessory); - self.retryCounter = 0; - self.sessionSetupInProgress = NO; - [self disconnect]; - [self.delegate onTransportDisconnected]; + + if (!self.controlSession.isSessionInProgress && !self.dataSession.isSessionInProgress) { + SDLLogV(@"Accessory (%@, %@), disconnected, but no session is in progress.", accessory.name, accessory.serialNumber); + [self sdl_closeSessions]; + } else if (self.dataSession.isSessionInProgress) { + if (self.dataSession.connectionID != accessory.connectionID) { + SDLLogD(@"Accessory's connectionID, %lu, does not match the connectionID of the current data session, %lu. Another phone disconnected from the head unit. The session will not be closed.", accessory.connectionID, self.dataSession.connectionID); + return; + } + // The data session has been established. Tell the delegate that the transport has disconnected. The lifecycle manager will destroy and create a new transport object. + SDLLogV(@"Accessory (%@, %@) disconnected during a data session", accessory.name, accessory.serialNumber); + [self sdl_destroyTransport]; + } else if (self.controlSession.isSessionInProgress) { + if (self.controlSession.connectionID != accessory.connectionID) { + SDLLogD(@"Accessory's connectionID, %lu, does not match the connectionID of the current control session, %lu. Another phone disconnected from the head unit. The session will not be closed.", accessory.connectionID, self.controlSession.connectionID); + return; + } + // The data session has yet to be established so the transport has not yet connected. DO NOT unregister for notifications from the accessory. + SDLLogV(@"Accessory (%@, %@) disconnected during a control session", accessory.name, accessory.serialNumber); + [self sdl_closeSessions]; + } else { + SDLLogV(@"Accessory (%@, %@) disconnecting during an unknown session", accessory.name, accessory.serialNumber); + [self sdl_closeSessions]; } } -#pragma mark App Lifecycle Notifications - /** - * Handles a notification sent by the system when the app enters the foreground. - * - * If the app is still searching for an accessory, a background task will be started so the app can still search for and/or connect with an accessory while it is in the background. - * - * @param notification Notification + * Closes and cleans up the sessions after a control session has been closed. Since a data session has not been established, the lifecycle manager has not transitioned to state started. Do not unregister for notifications from accessory connections/disconnections otherwise the library will not be able to connect to an accessory again. */ -- (void)sdl_applicationWillEnterForeground:(NSNotification *)notification { - SDLLogV(@"App foregrounded, attempting connection"); - [self sdl_backgroundTaskEnd]; - [self connect]; +- (void)sdl_closeSessions { + self.retryCounter = 0; + self.sessionSetupInProgress = NO; + + [self sdl_closeSessionsWithCompletionHandler:nil]; } /** - * Handles a notification sent by the system when the app enters the background. - * - * @param notification Notification + * Tells the lifecycle manager that the data session has been closed. The lifecycle manager will destroy it's `SDLIAPTransport` object and then create a new one to listen for a new connection to the accessory. */ -- (void)sdl_applicationDidEnterBackground:(NSNotification *)notification { - SDLLogV(@"App backgrounded, starting background task"); - [self sdl_backgroundTaskStart]; +- (void)sdl_destroyTransport { + self.retryCounter = 0; + self.sessionSetupInProgress = NO; + self.transportDestroyed = YES; + __weak typeof(self) weakSelf = self; + [self disconnectWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + [strongSelf.delegate onTransportDisconnected]; + }]; } #pragma mark - Stream Lifecycle -- (void)connect { - UIApplicationState state = [UIApplication sharedApplication].applicationState; - if (state != UIApplicationStateActive) { - SDLLogV(@"App inactive on connect, starting background task"); - [self sdl_backgroundTaskStart]; - } - - [self sdl_connect:nil]; -} +#pragma mark SDLTransportTypeProtocol /** - * Starts the process to connect to an accessory. If no accessory specified, scans for a valid accessory. + * Sends data to Core * - * @param accessory The accessory to attempt connection with or nil to scan for accessories. + * @param data The data to be sent to Core */ -- (void)sdl_connect:(nullable EAAccessory *)accessory { - if (!self.session && !self.sessionSetupInProgress) { - // We don't have a session are not attempting to set one up, attempt to connect - SDLLogV(@"Session not setup, starting setup"); - self.sessionSetupInProgress = YES; - [self sdl_establishSessionWithAccessory:accessory]; - } else if (self.session) { - // Session already established - SDLLogV(@"Session already established"); - } else { - // Session attempting to be established - SDLLogV(@"Session setup already in progress"); +- (void)sendData:(NSData *)data { + if (!self.dataSession.sessionInProgress) { + SDLLogW(@"Attempting to send data to Core but there is no data session in progress"); + return; } + [self.dataSession sendData:data]; } /** - * Cleans up after a disconnected accessory by closing any open input streams. + * Attempts to connect to an accessory. */ -- (void)disconnect { - SDLLogD(@"Disconnecting IAP data session"); - // Stop event listening here so that even if the transport is disconnected by the proxy we unregister for accessory local notifications - [self sdl_stopEventListening]; - if (self.controlSession != nil) { - [self.controlSession stop]; - self.controlSession.streamDelegate = nil; - self.controlSession = nil; - } else if (self.session != nil) { - [self.session stop]; - self.session.streamDelegate = nil; - self.session = nil; - } +- (void)connect { + [self sdl_connect:nil]; } - -#pragma mark - Creating Session Streams - /** - * Attempt to connect an accessory using the control or legacy protocols, then return whether or not we've generated an IAP session. - * - * @param accessory The accessory to attempt a connection with - * @return Whether or not we succesfully created a session. + * Cleans up after a disconnected accessory by closing any open I/O streams. */ -- (BOOL)sdl_connectAccessory:(EAAccessory *)accessory { - BOOL connecting = NO; - if ([self.class sdl_supportsRequiredProtocolStrings] != nil) { - NSString *failedString = [self.class sdl_supportsRequiredProtocolStrings]; - SDLLogE(@"A required External Accessory protocol string is missing from the info.plist: %@", failedString); - NSAssert(NO, @"Some SDL protocol strings are not supported, check the README for all strings that must be included in your info.plist file. Missing string: %@", failedString); - return connecting; - } +- (void)disconnectWithCompletionHandler:(void (^)(void))disconnectCompletionHandler { + SDLLogD(@"Disconnecting IAP transport"); + // Stop event listening here so that even if the transport is disconnected by `SDLProxy` when there is a start session timeout, the class unregisters for accessory notifications + [self sdl_stopEventListening]; - if ([accessory supportsProtocol:MultiSessionProtocolString] && SDL_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9")) { - [self sdl_createIAPDataSessionWithAccessory:accessory forProtocol:MultiSessionProtocolString]; - connecting = YES; - } else if ([accessory supportsProtocol:ControlProtocolString]) { - [self sdl_createIAPControlSessionWithAccessory:accessory]; - connecting = YES; - } else if ([accessory supportsProtocol:LegacyProtocolString]) { - [self sdl_createIAPDataSessionWithAccessory:accessory forProtocol:LegacyProtocolString]; - connecting = YES; - } - return connecting; + self.retryCounter = 0; + self.sessionSetupInProgress = NO; + self.transportDestroyed = YES; + + [self sdl_closeSessionsWithCompletionHandler:disconnectCompletionHandler]; } -/** - Check all required protocol strings in the info.plist dictionary. - @return A missing protocol string or nil if all strings are supported. - */ -+ (nullable NSString *)sdl_supportsRequiredProtocolStrings { - NSArray *protocolStrings = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UISupportedExternalAccessoryProtocols"]; +#pragma mark Helpers - if (![protocolStrings containsObject:MultiSessionProtocolString]) { - return MultiSessionProtocolString; - } - - if (![protocolStrings containsObject:LegacyProtocolString]) { - return LegacyProtocolString; +/** + * Starts the process to connect to an accessory. If no accessory specified, scans for a valid accessory. + * + * @param accessory The accessory to attempt connection with or nil to scan for accessories. + */ +- (void)sdl_connect:(nullable EAAccessory *)accessory { + if (self.transportDestroyed) { + SDLLogV(@"Will not attempt to connect to an accessory because the data session disconnected. Waiting for lifecycle manager to create a new transport object."); + return; } - for (int i = 0; i < 30; i++) { - NSString *indexedProtocolString = [NSString stringWithFormat:@"%@%i", IndexedProtocolStringPrefix, i]; - if (![protocolStrings containsObject:indexedProtocolString]) { - return indexedProtocolString; - } + if ((self.dataSession == nil || !self.dataSession.isSessionInProgress) && !self.sessionSetupInProgress) { + // No data session has been established are not attempting to set one up, attempt to connect + SDLLogV(@"No data session in progress. Starting setup."); + self.sessionSetupInProgress = YES; + [self sdl_establishSessionWithAccessory:accessory]; + } else if (self.dataSession.isSessionInProgress) { + SDLLogW(@"Data session I/O streams already opened. Ignoring attempt to create session."); + } else { + SDLLogW(@"Data session I/O streams are currently being opened. Ignoring attempt to create session."); } - - return nil; } /** - * Attept to establish a session with an accessory, or if nil is passed, to scan for one. + * Attempts to establish a session with the passed accessory. If nil is passed the accessory manager is checked for connected SDL enabled accessories. * * @param accessory The accessory to try to establish a session with, or nil to scan all connected accessories. */ - (void)sdl_establishSessionWithAccessory:(nullable EAAccessory *)accessory { - SDLLogD(@"Attempting to connect"); + SDLLogD(@"Attempting to connect accessory named: %@, with connectionID: %lu", accessory.name, (unsigned long)accessory.connectionID); if (self.retryCounter < CreateSessionRetries) { - // We should be attempting to connect self.retryCounter++; - - EAAccessory *sdlAccessory = accessory; - // If we are being called from sdl_connectAccessory, the EAAccessoryDidConnectNotification will contain the SDL accessory to connect to and we can connect without searching the accessory manager's connected accessory list. Otherwise, we fall through to a search. - if (sdlAccessory != nil && [self sdl_connectAccessory:sdlAccessory]) { - // Connection underway, exit - return; - } - if ([self.class sdl_supportsRequiredProtocolStrings] != nil) { - NSString *failedString = [self.class sdl_supportsRequiredProtocolStrings]; - SDLLogE(@"A required External Accessory protocol string is missing from the info.plist: %@", failedString); - NSAssert(NO, @"Some SDL protocol strings are not supported, check the README for all strings that must be included in your info.plist file. Missing string: %@", failedString); + // If the accessory is not `nil` attempt to create a session with the accessory. + if (accessory != nil && [self sdl_establishSessionWithConnectedAccessory:accessory]) { + // Session was created successfully with the accessory return; } - - // Determine if we can start a multi-app session or a legacy (single-app) session - if ((sdlAccessory = [EAAccessoryManager findAccessoryForProtocol:MultiSessionProtocolString]) && SDL_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9")) { - [self sdl_createIAPDataSessionWithAccessory:sdlAccessory forProtocol:MultiSessionProtocolString]; - } else if ((sdlAccessory = [EAAccessoryManager findAccessoryForProtocol:ControlProtocolString])) { - [self sdl_createIAPControlSessionWithAccessory:sdlAccessory]; - } else if ((sdlAccessory = [EAAccessoryManager findAccessoryForProtocol:LegacyProtocolString])) { - [self sdl_createIAPDataSessionWithAccessory:sdlAccessory forProtocol:LegacyProtocolString]; - } else { - // No compatible accessory - SDLLogV(@"No accessory supporting SDL was found, dismissing setup"); + + // Search through the EAAccessoryManager's connected accessory list for an SDL enabled accessory and attempt to create a session with the accessory. + BOOL sessionEstablished = [self sdl_establishSessionWithAccessory]; + if (!sessionEstablished) { + SDLLogV(@"No accessory supporting SDL was found, dismissing setup. Available connected accessories: %@", EAAccessoryManager.sharedAccessoryManager.connectedAccessories); self.sessionSetupInProgress = NO; } - } else { - // We are beyond the number of retries allowed - SDLLogW(@"Surpassed allowed retry attempts"); + // We have surpassed the number of retries allowed + SDLLogW(@"Surpassed allowed retry attempts (%d), dismissing setup", CreateSessionRetries); self.sessionSetupInProgress = NO; } } -- (void)sdl_createIAPControlSessionWithAccessory:(EAAccessory *)accessory { - SDLLogD(@"Starting IAP control session (%@)", accessory); - self.controlSession = [[SDLIAPSession alloc] initWithAccessory:accessory forProtocol:ControlProtocolString]; - - if (self.controlSession) { - self.controlSession.delegate = self; - - if (self.protocolIndexTimer == nil) { - self.protocolIndexTimer = [[SDLTimer alloc] initWithDuration:ProtocolIndexTimeoutSeconds repeat:NO]; - } else { - [self.protocolIndexTimer cancel]; - } - - __weak typeof(self) weakSelf = self; - void (^elapsedBlock)(void) = ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - - SDLLogW(@"Control session timeout"); - [strongSelf.controlSession stop]; - strongSelf.controlSession.streamDelegate = nil; - strongSelf.controlSession = nil; - [strongSelf sdl_retryEstablishSession]; - }; - self.protocolIndexTimer.elapsedBlock = elapsedBlock; - - SDLStreamDelegate *controlStreamDelegate = [[SDLStreamDelegate alloc] init]; - controlStreamDelegate.streamHasBytesHandler = [self sdl_controlStreamHasBytesHandlerForAccessory:accessory]; - controlStreamDelegate.streamEndHandler = [self sdl_controlStreamEndedHandler]; - controlStreamDelegate.streamErrorHandler = [self sdl_controlStreamErroredHandler]; - self.controlSession.streamDelegate = controlStreamDelegate; - - if (![self.controlSession start]) { - SDLLogW(@"Control session failed to setup (%@)", accessory); - self.controlSession.streamDelegate = nil; - self.controlSession = nil; - [self sdl_retryEstablishSession]; - } - } else { - SDLLogW(@"Failed to setup control session (%@)", accessory); - [self sdl_retryEstablishSession]; - } -} - -- (void)sdl_createIAPDataSessionWithAccessory:(EAAccessory *)accessory forProtocol:(NSString *)protocol { - SDLLogD(@"Starting data session (%@:%@)", protocol, accessory); - self.session = [[SDLIAPSession alloc] initWithAccessory:accessory forProtocol:protocol]; - if (self.session) { - self.session.delegate = self; - - SDLStreamDelegate *ioStreamDelegate = [[SDLStreamDelegate alloc] init]; - self.session.streamDelegate = ioStreamDelegate; - ioStreamDelegate.streamHasBytesHandler = [self sdl_dataStreamHasBytesHandler]; - ioStreamDelegate.streamEndHandler = [self sdl_dataStreamEndedHandler]; - ioStreamDelegate.streamErrorHandler = [self sdl_dataStreamErroredHandler]; - - if (![self.session start]) { - SDLLogW(@"Data session failed to setup (%@)", accessory); - self.session.streamDelegate = nil; - self.session = nil; - [self sdl_retryEstablishSession]; - } - } else { - SDLLogW(@"Failed to setup data session (%@)", accessory); - [self sdl_retryEstablishSession]; - } -} - +/** + * Stops any ongoing sessions if necessary and tries to find an accessory which which to create a session. + */ - (void)sdl_retryEstablishSession { // Current strategy disallows automatic retries. self.sessionSetupInProgress = NO; - if (self.session != nil) { - [self.session stop]; - self.session.delegate = nil; - self.session = nil; - } - - // Search connected accessories - [self sdl_connect:nil]; -} -// This gets called after both I/O streams of the session have opened. -- (void)onSessionInitializationCompleteForSession:(SDLIAPSession *)session { - // Control Session Opened - if ([ControlProtocolString isEqualToString:session.protocol]) { - SDLLogD(@"Control Session Established"); - - if (!self.session) { - [self.protocolIndexTimer start]; - } - } - - // Data Session Opened - if (![ControlProtocolString isEqualToString:session.protocol]) { - self.sessionSetupInProgress = NO; - SDLLogD(@"Data Session Established"); - [self.delegate onTransportConnected]; - } + __weak typeof(self) weakSelf = self; + [self sdl_closeSessionsWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + // Search connected accessories + [strongSelf sdl_connect:nil]; + }]; } +/// Helper method for closing both the data and control sessions. +/// @param disconnectCompletionHandler Handler called when both the data and control sessions have been disconnected successfully +- (void)sdl_closeSessionsWithCompletionHandler:(nullable void (^)(void))disconnectCompletionHandler { + dispatch_group_t endSessionsTask = dispatch_group_create(); + dispatch_group_enter(endSessionsTask); -#pragma mark - Session End + if (self.controlSession != nil) { + dispatch_group_enter(endSessionsTask); + [self.controlSession destroySessionWithCompletionHandler:^{ + SDLLogV(@"Control session destroyed"); + dispatch_group_leave(endSessionsTask); + }]; + } -// Retry establishSession on Stream End events only if it was the control session and we haven't already connected on non-control protocol -- (void)onSessionStreamsEnded:(SDLIAPSession *)session { - SDLLogV(@"Session streams ended (%@)", session.protocol); - if (!self.session && [ControlProtocolString isEqualToString:session.protocol]) { - [session stop]; - [self sdl_retryEstablishSession]; + if (self.dataSession != nil) { + dispatch_group_enter(endSessionsTask); + [self.dataSession destroySessionWithCompletionHandler:^{ + SDLLogV(@"Data session destroyed"); + dispatch_group_leave(endSessionsTask); + }]; } + + dispatch_group_leave(endSessionsTask); + + // This will always run after all `leave` calls + dispatch_group_notify(endSessionsTask, [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ + SDLLogV(@"Both the data and control sessions are closed"); + if (disconnectCompletionHandler != nil) { + disconnectCompletionHandler(); + } + }); } -#pragma mark - Data Transmission +#pragma mark - Session Delegates -- (void)sendData:(NSData *)data { - if (self.session == nil || !self.session.accessory.connected) { - return; - } - - [self.session sendData:data]; +#pragma mark Control Session + +/** + * Called when the control session should be retried. + */ +- (void)controlSessionShouldRetry { + SDLLogV(@"Retrying the control session"); + [self sdl_retryEstablishSession]; } +/** + * Called when the control session got the protocol string successfully and the data session can be opened with the protocol string. + * + * @param controlSession The control session + * @param protocolString The protocol string to be used to open the data session + */ +- (void)controlSession:(nonnull SDLIAPControlSession *)controlSession didReceiveProtocolString:(nonnull NSString *)protocolString { + SDLLogD(@"Control transport session received data session number: %@", protocolString); + self.dataSession = [[SDLIAPDataSession alloc] initWithAccessory:controlSession.accessory delegate:self forProtocol:protocolString]; + [self.dataSession startSession]; +} -#pragma mark - Stream Handlers -#pragma mark Control Stream -- (SDLStreamEndHandler)sdl_controlStreamEndedHandler { - __weak typeof(self) weakSelf = self; - - return ^(NSStream *stream) { - __strong typeof(weakSelf) strongSelf = weakSelf; - SDLLogD(@"Control stream ended"); - - // End events come in pairs, only perform this once per set. - if (strongSelf.controlSession != nil) { - [strongSelf.protocolIndexTimer cancel]; - [strongSelf.controlSession stop]; - strongSelf.controlSession.streamDelegate = nil; - strongSelf.controlSession = nil; - [strongSelf sdl_retryEstablishSession]; - } - }; -} +#pragma mark Data Session -- (SDLStreamHasBytesHandler)sdl_controlStreamHasBytesHandlerForAccessory:(EAAccessory *)accessory { - __weak typeof(self) weakSelf = self; - - return ^(NSInputStream *istream) { - __strong typeof(weakSelf) strongSelf = weakSelf; - SDLLogV(@"Control stream received data"); - - // Read in the stream a single byte at a time - uint8_t buf[1]; - NSInteger len = [istream read:buf maxLength:1]; - if (len <= 0) { - return; - } - - // If we have data from the stream - // Determine protocol string of the data session, then create that data session - NSString *indexedProtocolString = [NSString stringWithFormat:@"%@%@", IndexedProtocolStringPrefix, @(buf[0])]; - SDLLogD(@"Control Stream will switch to protocol %@", indexedProtocolString); - - // Destroy the control session - dispatch_sync(dispatch_get_main_queue(), ^{ - [strongSelf.controlSession stop]; - strongSelf.controlSession.streamDelegate = nil; - strongSelf.controlSession = nil; - }); - - if (accessory.isConnected) { - dispatch_async(dispatch_get_main_queue(), ^{ - [strongSelf sdl_createIAPDataSessionWithAccessory:accessory forProtocol:indexedProtocolString]; - [strongSelf.protocolIndexTimer cancel]; - }); - } +/** + * Called when the data session receives data from Core + * + * @param data The received data + */ +- (void)dataSessionDidReceiveData:(nonnull NSData *)data { + [self.delegate onDataReceived:data]; +} - [strongSelf sdl_backgroundTaskStart]; - }; +/** + * Called when the data session should be retried. + */ +- (void)dataSessionShouldRetry { + SDLLogV(@"Retrying the data session"); + [self sdl_retryEstablishSession]; } -- (SDLStreamErrorHandler)sdl_controlStreamErroredHandler { - __weak typeof(self) weakSelf = self; - - return ^(NSStream *stream) { - __strong typeof(weakSelf) strongSelf = weakSelf; - SDLLogE(@"Control stream error"); - - [strongSelf.protocolIndexTimer cancel]; - [strongSelf.controlSession stop]; - strongSelf.controlSession.streamDelegate = nil; - strongSelf.controlSession = nil; - [strongSelf sdl_retryEstablishSession]; - }; +/** + * Called when the data session has been established. Notify the delegate that the transport has been connected. + */ +- (void)dataSessionDidConnect { + self.sessionSetupInProgress = NO; + [self.delegate onTransportConnected]; } -#pragma mark Data Stream +#pragma mark - Helpers -- (SDLStreamEndHandler)sdl_dataStreamEndedHandler { - __weak typeof(self) weakSelf = self; - return ^(NSStream *stream) { - NSAssert(!NSThread.isMainThread, @"%@ should only be called on the IO thread", NSStringFromSelector(_cmd)); - __strong typeof(weakSelf) strongSelf = weakSelf; +#pragma mark Protocol Strings - SDLLogD(@"Data stream ended"); - if (strongSelf.session == nil) { - SDLLogD(@"Data session is nil"); - return; - } - // The handler will be called on the IO thread, but the session stop method must be called on the main thread - dispatch_async(dispatch_get_main_queue(), ^{ - [strongSelf.session stop]; - strongSelf.session.streamDelegate = nil; - strongSelf.session = nil; - - // We don't call sdl_retryEstablishSession here because the stream end event usually fires when the accessory is disconnected - }); - - // To prevent deadlocks the handler must return to the runloop and not block the thread - }; +/** + * Checks if the app's info.plist contains all the required protocol strings. + * + * @return True if the app's info.plist has all required protocol strings; false if not. + */ ++ (BOOL)sdl_plistContainsAllSupportedProtocolStrings { + if ([self.class sdl_supportsRequiredProtocolStrings] != nil) { + NSString *failedString = [self.class sdl_supportsRequiredProtocolStrings]; + SDLLogE(@"A required External Accessory protocol string is missing from the info.plist: %@", failedString); + NSAssert(NO, @"Some SDL protocol strings are not supported, check the README for all strings that must be included in your info.plist file. Missing string: %@", failedString); + return NO; + } + return YES; } -- (SDLStreamHasBytesHandler)sdl_dataStreamHasBytesHandler { - __weak typeof(self) weakSelf = self; - return ^(NSInputStream *istream) { - NSAssert(!NSThread.isMainThread, @"%@ should only be called on the IO thread", NSStringFromSelector(_cmd)); - __strong typeof(weakSelf) strongSelf = weakSelf; - uint8_t buf[[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]]; - while (istream.streamStatus == NSStreamStatusOpen && istream.hasBytesAvailable) { - // It is necessary to check the stream status and whether there are bytes available because the dataStreamHasBytesHandler is executed on the IO thread and the accessory disconnect notification arrives on the main thread, causing data to be passed to the delegate while the main thread is tearing down the transport. - - NSInteger bytesRead = [istream read:buf maxLength:[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]]; - if (bytesRead < 0) { - SDLLogE(@"Failed to read from data stream"); - break; - } - - NSData *dataIn = [NSData dataWithBytes:buf length:(NSUInteger)bytesRead]; - SDLLogBytes(dataIn, SDLLogBytesDirectionReceive); - - if (bytesRead > 0) { - [strongSelf.delegate onDataReceived:dataIn]; - } else { - break; - } +/** + * Compares all required protocol strings against the protocol strings in the info.plist dictionary. + * + * @return A missing protocol string or nil if all strings are supported. + */ ++ (nullable NSString *)sdl_supportsRequiredProtocolStrings { + NSArray *protocolStrings = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UISupportedExternalAccessoryProtocols"]; + + if (![protocolStrings containsObject:MultiSessionProtocolString]) { + return MultiSessionProtocolString; + } + + if (![protocolStrings containsObject:LegacyProtocolString]) { + return LegacyProtocolString; + } + + for (int i = 0; i < 30; i++) { + NSString *indexedProtocolString = [NSString stringWithFormat:@"%@%i", IndexedProtocolStringPrefix, i]; + if (![protocolStrings containsObject:indexedProtocolString]) { + return indexedProtocolString; } + } - [strongSelf sdl_backgroundTaskStart]; - }; + return nil; } -- (SDLStreamErrorHandler)sdl_dataStreamErroredHandler { - __weak typeof(self) weakSelf = self; - return ^(NSStream *stream) { - NSAssert(!NSThread.isMainThread, @"%@ should only be called on the IO thread", NSStringFromSelector(_cmd)); - __strong typeof(weakSelf) strongSelf = weakSelf; - SDLLogE(@"Data stream error"); - dispatch_async(dispatch_get_main_queue(), ^{ - [strongSelf.session stop]; - strongSelf.session.streamDelegate = nil; - strongSelf.session = nil; - if (![LegacyProtocolString isEqualToString:strongSelf.session.protocol]) { - [strongSelf sdl_retryEstablishSession]; - } - }); - - // To prevent deadlocks the handler must return to the runloop and not block the thread - }; -} +#pragma mark Retry Delay -- (double)retryDelay { +/** + * Generates a random number of seconds between 1.5 and 9.5 used to delay the retry control and data session attempts. + * + * @return A random number of seconds. + */ +- (double)sdl_retryDelay { const double MinRetrySeconds = 1.5; const double MaxRetrySeconds = 9.5; double RetryRangeSeconds = MaxRetrySeconds - MinRetrySeconds; - + static double appDelaySeconds = 0; - + // HAX: This pull the app name and hashes it in an attempt to provide a more even distribution of retry delays. The evidence that this does so is anecdotal. A more ideal solution would be to use a list of known, installed SDL apps on the phone to try and deterministically generate an even delay. if (appDelaySeconds == 0) { NSString *appName = [[NSProcessInfo processInfo] processName]; if (appName == nil) { appName = @"noname"; } - + // Run the app name through an md5 hasher const char *ptr = [appName UTF8String]; unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH]; CC_MD5(ptr, (unsigned int)strlen(ptr), md5Buffer); - + // Generate a string of the hex hash NSMutableString *output = [NSMutableString stringWithString:@"0x"]; for (int i = 0; i < 8; i++) { [output appendFormat:@"%02X", md5Buffer[i]]; } - + // Transform the string into a number between 0 and 1 unsigned long long firstHalf; NSScanner *pScanner = [NSScanner scannerWithString:output]; [pScanner scanHexLongLong:&firstHalf]; double hashBasedValueInRange0to1 = ((double)firstHalf) / 0xffffffffffffffff; - + // Transform the number into a number between min and max appDelaySeconds = ((RetryRangeSeconds * hashBasedValueInRange0to1) + MinRetrySeconds); } - + return appDelaySeconds; } +#pragma mark Create Sessions -#pragma mark - Lifecycle Destruction +/** + * List of protocol strings supported by SDL enabled head units. Newer head units use the multisession protocol string which allows multiple apps to connect over 1 protocol string. Legacy head units use the control or legacy protocol string which only allows 1 app to connect over 1 protocol string. + * + * @return A list of SDL accessory supported protocol strings ordered from most recently supported to least preferred. + */ ++ (NSArray *)protocolStrings { + // Order of the protocol strings is important!! + return @[MultiSessionProtocolString, ControlProtocolString, LegacyProtocolString]; +} -- (void)sdl_destructObjects { - if (!_alreadyDestructed) { - [self sdl_backgroundTaskEnd]; - _alreadyDestructed = YES; - self.controlSession = nil; - self.session = nil; - self.delegate = nil; - self.sessionSetupInProgress = NO; +/** + * Attempts to create a session with a connected accessory. + * + * @param connectedAccessory The connected accessory + * @return True if a session was started with the connected accessory, false if not + */ +- (BOOL)sdl_establishSessionWithConnectedAccessory:(EAAccessory *)connectedAccessory { + for (NSString *protocolString in [self.class protocolStrings]) { + if (![connectedAccessory supportsProtocol:protocolString]) { + continue; + } + + BOOL connecting = [self createSessionWithAccessory:connectedAccessory protocolString:protocolString]; + if (connecting) { + return connecting; + } } + + return NO; } -- (void)dealloc { - [self disconnect]; - [self sdl_destructObjects]; - SDLLogD(@"SDLIAPTransport dealloc"); +/** + * Searches through the EAAccessoryManager's list of connected accessories for an SDL enabled accessory. If an accessory is found a session is attempted with the accessory. + * + * @return True if a session was started with the connected accessory, false if no session could be created or if no SDL enabled accessory was found. + */ +- (BOOL)sdl_establishSessionWithAccessory { + for (NSString *protocolString in [self.class protocolStrings]) { + EAAccessory *sdlAccessory = [EAAccessoryManager findAccessoryForProtocol:protocolString]; + if (sdlAccessory == nil) { + continue; + } + + BOOL connecting = [self createSessionWithAccessory:sdlAccessory protocolString:protocolString]; + if (connecting) { + return connecting; + } + } + + return NO; +} + +/** + * Creates a session with a passed accessory and protocol string. If the accessory supports the multisession protocol string, a data session can be created right away with the accessory. If the accessory does not support the multisession protocol string, but does support the control protocol string, two sessions must be created. First, a control session is created to get the new protocol string needed to create a data session with the accessory. Then, the control session is destroyed and the data session created with the new protocol string. + * + * @param accessory The connected accessory + * @param protocolString The unique protocol string used to create the session with the accessory + * @return True if a session was started with the connected accessory, false if no session could be created or if no SDL enabled accessory was found. + */ +- (BOOL)createSessionWithAccessory:(EAAccessory *)accessory protocolString:(NSString *)protocolString { + if (![self.class sdl_plistContainsAllSupportedProtocolStrings]) { + return NO; + } + + if ([protocolString isEqualToString:MultiSessionProtocolString] && SDL_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9")) { + self.dataSession = [[SDLIAPDataSession alloc] initWithAccessory:accessory delegate:self forProtocol:protocolString]; + [self.dataSession startSession]; + return YES; + } else if ([protocolString isEqualToString:ControlProtocolString]) { + self.controlSession = [[SDLIAPControlSession alloc] initWithAccessory:accessory delegate:self]; + [self.controlSession startSession]; + return YES; + } else if ([protocolString isEqualToString:LegacyProtocolString]) { + self.dataSession = [[SDLIAPDataSession alloc] initWithAccessory:accessory delegate:self forProtocol:protocolString]; + [self.dataSession startSession]; + return YES; + } + + return NO; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.h new file mode 100644 index 0000000..9d50ade --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.h @@ -0,0 +1,29 @@ +// +// SDLIconArchiveFile.h +// SmartDeviceLink +// +// Created by James Lapinski on 3/10/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLIconArchiveFile : NSObject + +@property (nonatomic, copy) NSArray *lockScreenIconCaches; + +@end + +@interface SDLLockScreenIconCache : NSObject + +@property (nonatomic, copy) NSString *iconUrl; +@property (nonatomic, copy) NSString *iconFilePath; +@property (nonatomic, copy) NSDate *lastModifiedDate; + +- (instancetype)initWithIconUrl:(NSString *)iconUrl iconFilePath:(NSString *)iconFilePath; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.m new file mode 100644 index 0000000..d4bb70d --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.m @@ -0,0 +1,75 @@ +// +// SDLIconArchiveFile.m +// SmartDeviceLink +// +// Created by James Lapinski on 3/10/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLIconArchiveFile.h" + +@implementation SDLIconArchiveFile + +- (instancetype)init { + self = [super init]; + if (!self) { return nil; } + + self.lockScreenIconCaches = [[NSArray alloc] init]; + + return self; +} + +- (instancetype)initWithCoder:(NSCoder *)decoder { + self = [super init]; + if (!self) { return nil; } + + self.lockScreenIconCaches = [decoder decodeObjectOfClass:[NSArray self] forKey:@"lockScreenIconCaches"]; + + return self; +} + ++ (BOOL)supportsSecureCoding { + return YES; +} + +- (void)encodeWithCoder:(NSCoder *)encoder { + [encoder encodeObject:self.lockScreenIconCaches forKey:@"lockScreenIconCaches"]; +} + +@end + +@implementation SDLLockScreenIconCache + +- (instancetype)initWithIconUrl:(NSString *)iconUrl iconFilePath:(NSString *)iconFilePath { + self = [super init]; + if (!self) { return nil; } + + self.iconUrl = iconUrl; + self.iconFilePath = iconFilePath; + self.lastModifiedDate = [NSDate date]; + + return self; +} + +- (instancetype)initWithCoder:(NSCoder *)decoder { + self = [super init]; + if (!self) { return nil; } + + self.iconUrl = [decoder decodeObjectOfClass:[NSString self] forKey:@"iconUrl"]; + self.iconFilePath = [decoder decodeObjectOfClass:[NSString self] forKey:@"iconFilePath"]; + self.lastModifiedDate = [decoder decodeObjectOfClass:[NSDate self] forKey:@"lastModifiedDate"]; + + return self; +} + ++ (BOOL)supportsSecureCoding { + return YES; +} + +- (void)encodeWithCoder:(NSCoder *)encoder { + [encoder encodeObject:self.iconUrl forKey:@"iconUrl"]; + [encoder encodeObject:self.iconFilePath forKey:@"iconFilePath"]; + [encoder encodeObject:self.lastModifiedDate forKey:@"lastModifiedDate"]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImage.m index fcf0581..740cb45 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImage.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImage.m @@ -4,7 +4,7 @@ #import "SDLImage.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -57,27 +57,29 @@ - (instancetype)initWithStaticIconName:(SDLStaticIconName)staticIconName { #pragma mark - Getters / Setters - (void)setValue:(NSString *)value { - [store sdl_setObject:value forName:SDLNameValue]; + [self.store sdl_setObject:value forName:SDLRPCParameterNameValue]; } - (NSString *)value { - return [store sdl_objectForName:SDLNameValue]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameValue ofClass:NSString.class error:&error]; } - (void)setImageType:(SDLImageType)imageType { - [store sdl_setObject:imageType forName:SDLNameImageType]; + [self.store sdl_setObject:imageType forName:SDLRPCParameterNameImageType]; } - (SDLImageType)imageType { - return [store sdl_objectForName:SDLNameImageType]; + return [self.store sdl_enumForName:SDLRPCParameterNameImageType error:nil]; } - (void)setIsTemplate:(NSNumber *)isTemplate { - [store sdl_setObject:isTemplate forName:SDLNameImageTemplate]; + [self.store sdl_setObject:isTemplate forName:SDLRPCParameterNameImageTemplate]; } - (NSNumber *)isTemplate { - return [store sdl_objectForName:SDLNameImageTemplate]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameImageTemplate ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.h new file mode 100644 index 0000000..6c21266 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.h @@ -0,0 +1,19 @@ +// +// SDLImageField+ScreenManagerExtensions.h +// SmartDeviceLink +// +// Created by Joel Fischer on 5/20/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLImageField (ScreenManagerExtensions) + ++ (NSArray *)allImageFields; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.m new file mode 100644 index 0000000..1c7cc09 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.m @@ -0,0 +1,30 @@ +// +// SDLImageField+ScreenManagerExtensions.m +// SmartDeviceLink +// +// Created by Joel Fischer on 5/20/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLImageField+ScreenManagerExtensions.h" + +@implementation SDLImageField (ScreenManagerExtensions) + ++ (NSArray *)sdl_allImageFieldNames { + return @[SDLImageFieldNameAppIcon, SDLImageFieldNameGraphic, SDLImageFieldNameMenuIcon, SDLImageFieldNameTurnIcon, SDLImageFieldNameAlertIcon, SDLImageFieldNameChoiceImage, SDLImageFieldNameCommandIcon, SDLImageFieldNameLocationImage, SDLImageFieldNameSoftButtonImage, SDLImageFieldNameSecondaryGraphic, SDLImageFieldNameShowConstantTBTIcon, SDLImageFieldNameChoiceSecondaryImage, SDLImageFieldNameVoiceRecognitionHelpItem, SDLImageFieldNameShowConstantTBTNextTurnIcon]; +} + ++ (NSArray *)sdl_allImageFileTypes { + return @[SDLFileTypeBMP, SDLFileTypePNG, SDLFileTypeJPEG]; +} + ++ (NSArray *)allImageFields { + NSMutableArray *tempImageFields = [NSMutableArray array]; + for (SDLImageFieldName fieldName in [self sdl_allImageFieldNames]) { + [tempImageFields addObject:[[SDLImageField alloc] initWithName:fieldName imageTypeSupported:[self sdl_allImageFileTypes] imageResolution:nil]]; + } + + return tempImageFields; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.h index 5e8d9ab..610b1a5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.h @@ -36,6 +36,12 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) SDLImageResolution *imageResolution; +/// Convenience initalizer for the ImageField RPC struct +/// @param name The name identifying this image field +/// @param imageTypeSupported The image data types this field supports +/// @param imageResolution The native resolution of this image field +- (instancetype)initWithName:(SDLImageFieldName)name imageTypeSupported:(NSArray *)imageTypeSupported imageResolution:(nullable SDLImageResolution *)imageResolution; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.m index d25b6e2..85532ff 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.m @@ -6,34 +6,47 @@ #import "NSMutableDictionary+Store.h" #import "SDLImageFieldName.h" #import "SDLImageResolution.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLImageField - (void)setName:(SDLImageFieldName)name { - [store sdl_setObject:name forName:SDLNameName]; + [self.store sdl_setObject:name forName:SDLRPCParameterNameName]; } - (SDLImageFieldName)name { - return [store sdl_objectForName:SDLNameName]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameName error:&error]; } - (void)setImageTypeSupported:(NSArray *)imageTypeSupported { - [store sdl_setObject:imageTypeSupported forName:SDLNameImageTypeSupported]; + [self.store sdl_setObject:imageTypeSupported forName:SDLRPCParameterNameImageTypeSupported]; } - (NSArray *)imageTypeSupported { - return [store sdl_objectForName:SDLNameImageTypeSupported]; + NSError *error = nil; + return [self.store sdl_enumsForName:SDLRPCParameterNameImageTypeSupported error:&error]; } - (void)setImageResolution:(nullable SDLImageResolution *)imageResolution { - [store sdl_setObject:imageResolution forName:SDLNameImageResolution]; + [self.store sdl_setObject:imageResolution forName:SDLRPCParameterNameImageResolution]; } - (nullable SDLImageResolution *)imageResolution { - return [store sdl_objectForName:SDLNameImageResolution ofClass:SDLImageResolution.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameImageResolution ofClass:SDLImageResolution.class error:nil]; +} + +- (instancetype)initWithName:(SDLImageFieldName)name imageTypeSupported:(NSArray *)imageTypeSupported imageResolution:(nullable SDLImageResolution *)imageResolution { + self = [self init]; + if (!self) { return nil; } + + self.name = name; + self.imageTypeSupported = imageTypeSupported; + self.imageResolution = imageResolution; + + return self; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.h index 34e50c3..cd3e101 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.h @@ -11,6 +11,11 @@ */ typedef SDLEnum SDLImageFieldName SDL_SWIFT_ENUM; +/** + The image field for Alert + */ +extern SDLImageFieldName const SDLImageFieldNameAlertIcon; + /** The image field for SoftButton */ diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.m index 63397b0..0282f25 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.m @@ -4,6 +4,7 @@ #import "SDLImageFieldName.h" +SDLImageFieldName const SDLImageFieldNameAlertIcon = @"alertIcon"; SDLImageFieldName const SDLImageFieldNameSoftButtonImage = @"softButtonImage"; SDLImageFieldName const SDLImageFieldNameChoiceImage = @"choiceImage"; SDLImageFieldName const SDLImageFieldNameChoiceSecondaryImage = @"choiceSecondaryImage"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.h index 2e68bfd..bd9a82a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.h @@ -25,6 +25,11 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic) NSNumber *resolutionHeight; +/// Convenience init with all parameters +/// +/// @param width Resolution width +/// @param height Resolution height +/// @return An SDLImageResolution object - (instancetype)initWithWidth:(uint16_t)width height:(uint16_t)height; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.m index f2f9c45..b94e819 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.m @@ -5,7 +5,7 @@ #import "SDLImageResolution.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -22,19 +22,21 @@ - (instancetype)initWithWidth:(uint16_t)width height:(uint16_t)height { } - (void)setResolutionWidth:(NSNumber *)resolutionWidth { - [store sdl_setObject:resolutionWidth forName:SDLNameResolutionWidth]; + [self.store sdl_setObject:resolutionWidth forName:SDLRPCParameterNameResolutionWidth]; } - (NSNumber *)resolutionWidth { - return [store sdl_objectForName:SDLNameResolutionWidth]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameResolutionWidth ofClass:NSNumber.class error:&error]; } - (void)setResolutionHeight:(NSNumber *)resolutionHeight { - [store sdl_setObject:resolutionHeight forName:SDLNameResolutionHeight]; + [self.store sdl_setObject:resolutionHeight forName:SDLRPCParameterNameResolutionHeight]; } - (NSNumber *)resolutionHeight { - return [store sdl_objectForName:SDLNameResolutionHeight]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameResolutionHeight ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardDelegate.h index 5178327..5637a2a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardDelegate.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardDelegate.h @@ -17,10 +17,17 @@ NS_ASSUME_NONNULL_BEGIN /** This handler is called when you wish to update your autocomplete text in response to the user's input - @param updatedAutocompleteText The new autocomplete text to use + @param updatedAutocompleteText The autocomplete results to use */ typedef void(^SDLKeyboardAutocompleteCompletionHandler)(NSString *_Nullable updatedAutocompleteText); +/** + This handler is called when you wish to update your autocomplete text in response to the user's input. + + @param updatedAutoCompleteList The list of autocomplete results to use, a max of 100 items are allowed + */ +typedef void(^SDLKeyboardAutoCompleteResultsHandler)(NSArray *_Nullable updatedAutoCompleteList); + /** This handler is called when you wish to update your keyboard's limitedCharacterSet in response to the user's input @@ -28,10 +35,9 @@ typedef void(^SDLKeyboardAutocompleteCompletionHandler)(NSString *_Nullable upd */ typedef void(^SDLKeyboardCharacterSetCompletionHandler)(NSArray *_Nullable updatedCharacterSet); +/// They delegate of a keyboard popup allowing customization at runtime of the keyboard. @protocol SDLKeyboardDelegate -// - /** The keyboard session completed with some input. @@ -65,7 +71,17 @@ typedef void(^SDLKeyboardCharacterSetCompletionHandler)(NSArray *_Nu @param currentInputText The user's full current input text @param completionHandler A completion handler to update the autoCompleteText */ -- (void)updateAutocompleteWithInput:(NSString *)currentInputText completionHandler:(SDLKeyboardAutocompleteCompletionHandler)completionHandler; +- (void)updateAutocompleteWithInput:(NSString *)currentInputText completionHandler:(SDLKeyboardAutocompleteCompletionHandler)completionHandler __deprecated_msg("Use updateAutocompleteWithInput:autoCompleteResultsHandler:"); + +/** + Implement this if you wish to updated the KeyboardProperties.autoCompleteList as the user updates their input. This is called upon a KEYPRESS event. + + This allows you to present a list of options that the user can use to fill in the search / text box with suggestions you provide. + + @param currentInputText The user's full current input text + @param resultsHandler A completion handler to update the autoCompleteList + */ +- (void)updateAutocompleteWithInput:(NSString *)currentInputText autoCompleteResultsHandler:(SDLKeyboardAutoCompleteResultsHandler)resultsHandler; /** Implement this if you wish to update the limitedCharacterSet as the user updates their input. This is called upon a KEYPRESS event. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.h index a4a0dbf..19b494e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.h @@ -14,7 +14,30 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLKeyboardProperties : SDLRPCStruct -- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText; +/** + Create a Keyboard Properties RPC object + + @param language The language to set the keyboard to + @param layout The layout of the keyboard + @param keypressMode The mode of keypresses to use + @param limitedCharacterList A list of characters restricting what the user is allowed to press + @param autoCompleteText A string to show the user to complete what they are typing + @return The RPC object + */ +- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText __deprecated_msg(("use initWithLanguagelayout:keypressMode:limitedCharacterList:autoCompleteText:autoCompleteList: instead")); + +/** + Create a Keyboard Properties RPC object + + @param language The language to set the keyboard to + @param layout The layout of the keyboard + @param keypressMode The mode of keypresses to use + @param limitedCharacterList A list of characters restricting what the user is allowed to press + @param autoCompleteText A string to show to user to complete what they are typing + @param autoCompleteList A list of strings to show the user to complete what they are typing. + @return The RPC object + */ +- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText autoCompleteList:(nullable NSArray *)autoCompleteList; /** The keyboard language @@ -53,6 +76,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSString *autoCompleteText; +/** + Allows an app to show a list of possible autocomplete suggestions as the user types + + Optional, 1-100 items, max string length 1000 characters (note that these may not all be displayed on the screen) + */ +@property (nullable, strong, nonatomic) NSArray *autoCompleteList; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.m index 3c79612..0adb701 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.m @@ -4,13 +4,17 @@ #import "SDLKeyboardProperties.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLKeyboardProperties - (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText { + return [self initWithLanguage:language layout:layout keypressMode:keypressMode limitedCharacterList:limitedCharacterList autoCompleteText:autoCompleteText autoCompleteList:nil]; +} + +- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText autoCompleteList:(nullable NSArray *)autoCompleteList { self = [self init]; if (!self) { return nil; @@ -21,48 +25,57 @@ - (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable self.keypressMode = keypressMode; self.limitedCharacterList = [limitedCharacterList mutableCopy]; self.autoCompleteText = autoCompleteText; + self.autoCompleteList = autoCompleteList; return self; } - (void)setLanguage:(nullable SDLLanguage)language { - [store sdl_setObject:language forName:SDLNameLanguage]; + [self.store sdl_setObject:language forName:SDLRPCParameterNameLanguage]; } - (nullable SDLLanguage)language { - return [store sdl_objectForName:SDLNameLanguage]; + return [self.store sdl_enumForName:SDLRPCParameterNameLanguage error:nil]; } - (void)setKeyboardLayout:(nullable SDLKeyboardLayout)keyboardLayout { - [store sdl_setObject:keyboardLayout forName:SDLNameKeyboardLayout]; + [self.store sdl_setObject:keyboardLayout forName:SDLRPCParameterNameKeyboardLayout]; } - (nullable SDLKeyboardLayout)keyboardLayout { - return [store sdl_objectForName:SDLNameKeyboardLayout]; + return [self.store sdl_enumForName:SDLRPCParameterNameKeyboardLayout error:nil]; } - (void)setKeypressMode:(nullable SDLKeypressMode)keypressMode { - [store sdl_setObject:keypressMode forName:SDLNameKeypressMode]; + [self.store sdl_setObject:keypressMode forName:SDLRPCParameterNameKeypressMode]; } - (nullable SDLKeypressMode)keypressMode { - return [store sdl_objectForName:SDLNameKeypressMode]; + return [self.store sdl_enumForName:SDLRPCParameterNameKeypressMode error:nil]; } - (void)setLimitedCharacterList:(nullable NSArray *)limitedCharacterList { - [store sdl_setObject:limitedCharacterList forName:SDLNameLimitedCharacterList]; + [self.store sdl_setObject:limitedCharacterList forName:SDLRPCParameterNameLimitedCharacterList]; } - (nullable NSArray *)limitedCharacterList { - return [store sdl_objectForName:SDLNameLimitedCharacterList]; + return [self.store sdl_objectsForName:SDLRPCParameterNameLimitedCharacterList ofClass:NSString.class error:nil]; } - (void)setAutoCompleteText:(nullable NSString *)autoCompleteText { - [store sdl_setObject:autoCompleteText forName:SDLNameAutoCompleteText]; + [self.store sdl_setObject:autoCompleteText forName:SDLRPCParameterNameAutoCompleteText]; } - (nullable NSString *)autoCompleteText { - return [store sdl_objectForName:SDLNameAutoCompleteText]; + return [self.store sdl_objectForName:SDLRPCParameterNameAutoCompleteText ofClass:NSString.class error:nil]; +} + +- (void)setAutoCompleteList:(nullable NSArray *)autoCompleteList { + [self.store sdl_setObject:autoCompleteList forName:SDLRPCParameterNameAutoCompleteList]; +} + +- (nullable NSArray *)autoCompleteList { + return [self.store sdl_objectsForName:SDLRPCParameterNameAutoCompleteList ofClass:NSString.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.h index a558c0d..f2b5930 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.h @@ -14,15 +14,26 @@ @class SDLFile; @class SDLTemplateColorScheme; @class SDLTTSChunk; +@class SDLVersion; NS_ASSUME_NONNULL_BEGIN +/// List of secondary transports +typedef NS_OPTIONS(NSUInteger, SDLSecondaryTransports) { + /// No secondary transport + SDLSecondaryTransportsNone = 0, + + /// TCP as secondary transport + SDLSecondaryTransportsTCP = 1 << 0 +}; + /** * Configuration options for SDLManager */ @interface SDLLifecycleConfiguration : NSObject +/// Initializer unavailable - (instancetype)init NS_UNAVAILABLE; /** @@ -167,6 +178,25 @@ NS_ASSUME_NONNULL_BEGIN */ @property (copy, nonatomic, nullable) SDLTemplateColorScheme *nightColorScheme; +/** + The minimum protocol version that will be permitted to connect. This defaults to 1.0.0. If the protocol version of the head unit connected is below this version, the app will disconnect with an EndService protocol message and will not register. + */ +@property (strong, nonatomic) SDLVersion *minimumProtocolVersion; + +/** + The minimum RPC version that will be permitted to connect. This defaults to 1.0.0. If the RPC version of the head unit connected is below this version, an UnregisterAppInterface will be sent. + */ +@property (strong, nonatomic) SDLVersion *minimumRPCVersion; + +/** + Which transports are permitted to be used as secondary transports. A secondary transport is a transport that is connected as an alternate, higher bandwidth transport for situations when a low-bandwidth primary transport (such as Bluetooth) will restrict certain features (such as video streaming navigation). + + The only currently available secondary transport is TCP over WiFi. This is set to permit TCP by default, but it can be disabled by using SDLSecondaryTransportsNone instead. + + This will only affect apps that have high-bandwidth requirements; currently that is only video streaming navigation apps. + */ +@property (assign, nonatomic) SDLSecondaryTransports allowedSecondaryTransports; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.m index 6c5b560..0984712 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.m @@ -9,6 +9,7 @@ #import "SDLLifecycleConfiguration.h" #import "SDLFile.h" +#import "SDLVersion.h" static NSString *const DefaultTCPIPAddress = @"192.168.0.1"; static UInt16 const DefaultTCPIPPort = 12345; @@ -66,6 +67,9 @@ - (instancetype)initDefaultConfigurationWithAppName:(NSString *)appName fullAppI _shortAppName = nil; _ttsName = nil; _voiceRecognitionCommandNames = nil; + _minimumProtocolVersion = [SDLVersion versionWithString:@"1.0.0"]; + _minimumRPCVersion = [SDLVersion versionWithString:@"1.0.0"]; + _allowedSecondaryTransports = SDLSecondaryTransportsTCP; _fullAppId = fullAppId; _appId = fullAppId != nil ? [self.class sdlex_shortAppIdFromFullAppId:fullAppId] : appId; @@ -153,6 +157,7 @@ - (id)copyWithZone:(nullable NSZone *)zone { newConfig->_voiceRecognitionCommandNames = _voiceRecognitionCommandNames; newConfig->_dayColorScheme = _dayColorScheme; newConfig->_nightColorScheme = _nightColorScheme; + newConfig->_allowedSecondaryTransports = _allowedSecondaryTransports; return newConfig; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfigurationUpdate.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfigurationUpdate.m index b81b14d..b866884 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfigurationUpdate.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfigurationUpdate.m @@ -25,4 +25,8 @@ - (instancetype)initWithAppName:(NSString *)appName shortAppName:(NSString *)sho return self; } +- (NSString *)description { + return [NSString stringWithFormat:@"Lifecycle Configuration Update: new app name: %@, new short app name: %@, new tts name: %@, new voice commands: %@", self.appName, self.shortAppName, self.ttsName, self.voiceRecognitionCommandNames]; +} + @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.h index 594dccb..1911c48 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.h @@ -13,6 +13,7 @@ #import "SDLHMILevel.h" #import "SDLLanguage.h" #import "SDLSystemContext.h" +#import "SDLVideoStreamingState.h" @class SDLConfiguration; @class SDLFileManager; @@ -26,6 +27,7 @@ @class SDLPutFile; @class SDLRegisterAppInterfaceResponse; @class SDLResponseDispatcher; +@class SDLRPCMessage; @class SDLRPCNotification; @class SDLRPCRequest; @class SDLRPCResponse; @@ -62,6 +64,7 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); @property (copy, nonatomic, readonly) SDLConfiguration *configuration; @property (weak, nonatomic, nullable) id delegate; +@property (strong, nonatomic, readonly, nullable) NSString *authToken; @property (strong, nonatomic) SDLFileManager *fileManager; @property (strong, nonatomic) SDLPermissionManager *permissionManager; @@ -74,16 +77,10 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); @property (strong, nonatomic, readonly) SDLResponseDispatcher *responseDispatcher; @property (strong, nonatomic, readonly) SDLStateMachine *lifecycleStateMachine; -// Deprecated internal proxy object -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -@property (strong, nonatomic, nullable) SDLProxy *proxy; -#pragma clang diagnostic pop - -@property (assign, nonatomic) UInt16 lastCorrelationId; @property (copy, nonatomic, readonly) SDLLifecycleState *lifecycleState; @property (copy, nonatomic, nullable) SDLHMILevel hmiLevel; @property (copy, nonatomic, nullable) SDLAudioStreamingState audioStreamingState; +@property (copy, nonatomic, nullable) SDLVideoStreamingState videoStreamingState; @property (copy, nonatomic, nullable) SDLSystemContext systemContext; @property (strong, nonatomic, nullable) SDLRegisterAppInterfaceResponse *registerResponse; @@ -104,24 +101,33 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); /** * Start the manager, which will tell it to start looking for a connection. Once one does, it will automatically run the setup process and call the readyBlock when done. * + * @warning If you call this method from SDLManager's `startWithReadyHandler` be sure to wrap the `stop` call inside a dispatch_async and send it to the main queue or a global queue, otherwise calling `stop` may cause a deadlock. + * * @param readyHandler The block called when the manager is ready to be used or an error occurs while attempting to become ready. */ - (void)startWithReadyHandler:(SDLManagerReadyBlock)readyHandler; /** * Stop the manager, it will disconnect if needed and no longer look for a connection. You probably don't need to call this method ever. + * + * @warning If you call this method from SDLManager's `startWithReadyHandler` be sure to wrap the `stop` call inside a dispatch_async and send it to the main queue or a global queue, otherwise calling `stop` may cause a deadlock. */ - (void)stop; +/** + * Start the encryption lifecycle manager, which will attempt to open a secure service. + * + */ +- (void)startRPCEncryption; #pragma mark Send RPC Requests /** - * Send an RPC request and don't bother with the response or error. If you need the response or error, call sendRequest:withCompletionHandler: instead. + * Send an RPC of type `Response`, `Notification` or `Request`. Responses and notifications sent to Core do not a response back from Core. Each request sent to Core does get a response, so if you need the response and/or error, call sendRequest:withCompletionHandler: instead. * - * @param request The RPC request to send + * @param rpc An RPC of type `SDLRPCRequest`, `SDLRPCResponse`, or `SDLRPCNotification` to send */ -- (void)sendRequest:(SDLRPCRequest *)request; +- (void)sendRPC:(__kindof SDLRPCMessage *)rpc; /** * Send an RPC request and set a completion handler that will be called with the response when the response returns. @@ -129,7 +135,7 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); * @param request The RPC request to send * @param handler The handler that will be called when the response returns */ -- (void)sendRequest:(SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler; +- (void)sendRequest:(__kindof SDLRPCMessage *)request withResponseHandler:(nullable SDLResponseHandler)handler; /** Send all of the requests given as quickly as possible, but in order. Call the completionHandler after all requests have either failed or given a response. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.m index c05ac98..f689613 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.m @@ -11,20 +11,27 @@ #import "SDLLifecycleManager.h" #import "NSMapTable+Subscripting.h" +#import "SDLLifecycleRPCAdapter.h" +#import "SDLAsynchronousRPCOperation.h" #import "SDLAsynchronousRPCRequestOperation.h" +#import "SDLBackgroundTaskManager.h" #import "SDLChangeRegistration.h" -#import "SDLChoiceSetManager.h" #import "SDLConfiguration.h" #import "SDLConnectionManagerType.h" +#import "SDLEncryptionConfiguration.h" #import "SDLLogMacros.h" -#import "SDLDisplayCapabilities.h" #import "SDLError.h" +#import "SDLEncryptionLifecycleManager.h" #import "SDLFile.h" #import "SDLFileManager.h" #import "SDLFileManagerConfiguration.h" #import "SDLGlobals.h" +#import "SDLIAPTransport.h" #import "SDLLifecycleConfiguration.h" #import "SDLLifecycleConfigurationUpdate.h" +#import "SDLLifecycleMobileHMIStateHandler.h" +#import "SDLLifecycleSyncPDataHandler.h" +#import "SDLLifecycleSystemRequestHandler.h" #import "SDLLockScreenConfiguration.h" #import "SDLLockScreenManager.h" #import "SDLLockScreenPresenter.h" @@ -37,8 +44,9 @@ #import "SDLOnHMIStatus.h" #import "SDLOnHashChange.h" #import "SDLPermissionManager.h" +#import "SDLPredefinedWindows.h" #import "SDLProtocol.h" -#import "SDLProxy.h" +#import "SDLLifecycleProtocolHandler.h" #import "SDLRPCNotificationNotification.h" #import "SDLRegisterAppInterface.h" #import "SDLRegisterAppInterfaceResponse.h" @@ -51,10 +59,11 @@ #import "SDLStateMachine.h" #import "SDLStreamingMediaConfiguration.h" #import "SDLStreamingMediaManager.h" -#import "SDLStreamingProtocolDelegate.h" #import "SDLSystemCapabilityManager.h" +#import "SDLTCPTransport.h" #import "SDLUnregisterAppInterface.h" - +#import "SDLVersion.h" +#import "SDLWindowCapability.h" NS_ASSUME_NONNULL_BEGIN @@ -70,20 +79,44 @@ SDLLifecycleState *const SDLLifecycleStateUnregistering = @"Unregistering"; SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; -#pragma mark - SDLManager Private Interface +NSString *const BackgroundTaskTransportName = @"com.sdl.transport.backgroundTask"; + +#pragma mark - Protected Class Interfaces +@interface SDLStreamingMediaManager () + +@property (strong, nonatomic, nullable) SDLSecondaryTransportManager *secondaryTransportManager; + +@end + +#pragma mark - SDLLifecycleManager Private Interface -@interface SDLLifecycleManager () +@interface SDLLifecycleManager () // Readonly public properties @property (copy, nonatomic, readwrite) SDLConfiguration *configuration; +@property (strong, nonatomic, readwrite, nullable) NSString *authToken; @property (strong, nonatomic, readwrite) SDLNotificationDispatcher *notificationDispatcher; @property (strong, nonatomic, readwrite) SDLResponseDispatcher *responseDispatcher; @property (strong, nonatomic, readwrite) SDLStateMachine *lifecycleStateMachine; -// Private properties +// Private Managers @property (strong, nonatomic, nullable) SDLSecondaryTransportManager *secondaryTransportManager; +@property (strong, nonatomic) SDLEncryptionLifecycleManager *encryptionLifecycleManager; + +// Private properties @property (copy, nonatomic) SDLManagerReadyBlock readyHandler; @property (copy, nonatomic) dispatch_queue_t lifecycleQueue; +@property (assign, nonatomic) int32_t lastCorrelationId; +@property (copy, nonatomic) SDLBackgroundTaskManager *backgroundTaskManager; +@property (strong, nonatomic) SDLLanguage currentVRLanguage; + +// RPC Handlers +@property (strong, nonatomic) SDLLifecycleSyncPDataHandler *syncPDataHandler; +@property (strong, nonatomic) SDLLifecycleSystemRequestHandler *systemRequestHandler; +@property (strong, nonatomic) SDLLifecycleMobileHMIStateHandler *mobileHMIStateHandler; + +// Protocol and Transport +@property (strong, nonatomic, nullable) SDLLifecycleProtocolHandler *protocolHandler; @end @@ -93,7 +126,7 @@ @implementation SDLLifecycleManager #pragma mark Lifecycle - (instancetype)init { - return [self initWithConfiguration:[SDLConfiguration configurationWithLifecycle:[SDLLifecycleConfiguration defaultConfigurationWithAppName:@"SDL APP" fullAppId:@"001"] lockScreen:[SDLLockScreenConfiguration disabledConfiguration] logging:[SDLLogConfiguration defaultConfiguration] fileManager:[SDLFileManagerConfiguration defaultConfiguration]] delegate:nil]; + return [self initWithConfiguration:[[SDLConfiguration alloc] initWithLifecycle:[SDLLifecycleConfiguration defaultConfigurationWithAppName:@"SDL APP" fullAppId:@"001"] lockScreen:[SDLLockScreenConfiguration enabledConfiguration] logging:[SDLLogConfiguration defaultConfiguration] fileManager:[SDLFileManagerConfiguration defaultConfiguration] encryption:nil] delegate:nil]; } - (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate:(nullable id)delegate { @@ -102,8 +135,6 @@ - (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate return nil; } - SDLLogV(@"Initializing Lifecycle Manager"); - // Dependencies _configuration = [configuration copy]; _delegate = delegate; @@ -111,6 +142,12 @@ - (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate // Logging [SDLLogManager setConfiguration:_configuration.loggingConfig]; + SDLLogD(@"Initializing Lifecycle Manager"); + SDLLogD(@"SDL iOS Library Version: %@", [NSBundle bundleForClass:self.class].infoDictionary[@"CFBundleShortVersionString"]); + SDLLogD(@"iOS Version: %@", [NSBundle bundleForClass:self.class].infoDictionary[@"DTPlatformVersion"]); + SDLLogD(@"SDK Version: %@", [NSBundle bundleForClass:self.class].infoDictionary[@"DTSDKName"]); + SDLLogD(@"Minimum OS Version: %@", [NSBundle bundleForClass:self.class].infoDictionary[@"MinimumOSVersion"]); + // Private properties _lifecycleStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLLifecycleStateStopped states:[self.class sdl_stateTransitionDictionary]]; _lastCorrelationId = 0; @@ -120,38 +157,53 @@ - (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate _rpcOperationQueue = [[NSOperationQueue alloc] init]; _rpcOperationQueue.name = @"com.sdl.lifecycle.rpcOperation.concurrent"; - _rpcOperationQueue.maxConcurrentOperationCount = 3; - _lifecycleQueue = dispatch_queue_create("com.sdl.lifecycle", DISPATCH_QUEUE_SERIAL); + _rpcOperationQueue.underlyingQueue = [SDLGlobals sharedGlobals].sdlConcurrentQueue; + + if (@available(iOS 10.0, *)) { + _lifecycleQueue = dispatch_queue_create_with_target("com.sdl.lifecycle", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); + } else { + _lifecycleQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; + } + _currentVRLanguage = _configuration.lifecycleConfig.language; + // Managers _fileManager = [[SDLFileManager alloc] initWithConnectionManager:self configuration:_configuration.fileManagerConfig]; _permissionManager = [[SDLPermissionManager alloc] init]; _lockScreenManager = [[SDLLockScreenManager alloc] initWithConfiguration:_configuration.lockScreenConfig notificationDispatcher:_notificationDispatcher presenter:[[SDLLockScreenPresenter alloc] init]]; - _screenManager = [[SDLScreenManager alloc] initWithConnectionManager:self fileManager:_fileManager]; _systemCapabilityManager = [[SDLSystemCapabilityManager alloc] initWithConnectionManager:self]; - - if ([configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeNavigation] || - [configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeProjection] || - [configuration.lifecycleConfig.additionalAppTypes containsObject:SDLAppHMITypeNavigation] || - [configuration.lifecycleConfig.additionalAppTypes containsObject:SDLAppHMITypeProjection]) { - _streamManager = [[SDLStreamingMediaManager alloc] initWithConnectionManager:self configuration:configuration.streamingMediaConfig]; + _screenManager = [[SDLScreenManager alloc] initWithConnectionManager:self fileManager:_fileManager systemCapabilityManager:_systemCapabilityManager]; + + if ([self.class sdl_isStreamingConfiguration:self.configuration]) { + _streamManager = [[SDLStreamingMediaManager alloc] initWithConnectionManager:self configuration:configuration systemCapabilityManager:self.systemCapabilityManager]; } else { SDLLogV(@"Skipping StreamingMediaManager setup due to app type"); } + + if (configuration.encryptionConfig.securityManagers != nil) { + _encryptionLifecycleManager = [[SDLEncryptionLifecycleManager alloc] initWithConnectionManager:self configuration:_configuration]; + } + + // RPC Handlers + _syncPDataHandler = [[SDLLifecycleSyncPDataHandler alloc] initWithConnectionManager:self]; + _systemRequestHandler = [[SDLLifecycleSystemRequestHandler alloc] initWithConnectionManager:self]; + _mobileHMIStateHandler = [[SDLLifecycleMobileHMIStateHandler alloc] initWithConnectionManager:self]; // Notifications - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(transportDidConnect) name:SDLTransportDidConnect object:_notificationDispatcher]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(transportDidDisconnect) name:SDLTransportDidDisconnect object:_notificationDispatcher]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_rpcServiceDidConnect) name:SDLRPCServiceDidConnect object:_notificationDispatcher]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_transportDidDisconnect) name:SDLTransportDidDisconnect object:_notificationDispatcher]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hmiStatusDidChange:) name:SDLDidChangeHMIStatusNotification object:_notificationDispatcher]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(remoteHardwareDidUnregister:) name:SDLDidReceiveAppUnregisteredNotification object:_notificationDispatcher]; + _backgroundTaskManager = [[SDLBackgroundTaskManager alloc] initWithBackgroundTaskName:BackgroundTaskTransportName]; + return self; } - (void)startWithReadyHandler:(SDLManagerReadyBlock)readyHandler { - dispatch_sync(_lifecycleQueue, ^{ + [self sdl_runOnProcessingQueue:^{ [self sdl_startWithReadyHandler:readyHandler]; - }); + }]; } - (void)sdl_startWithReadyHandler:(SDLManagerReadyBlock)readyHandler { @@ -167,16 +219,19 @@ - (void)sdl_startWithReadyHandler:(SDLManagerReadyBlock)readyHandler { } - (void)stop { - dispatch_sync(_lifecycleQueue, ^{ + [self sdl_runOnProcessingQueue:^{ SDLLogD(@"Lifecycle manager stopped"); if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady]) { [self sdl_transitionToState:SDLLifecycleStateUnregistering]; } else { [self sdl_transitionToState:SDLLifecycleStateStopped]; } - }); + }]; } +- (void)startRPCEncryption { + [self.encryptionLifecycleManager startEncryptionService]; +} #pragma mark Getters @@ -193,7 +248,7 @@ - (SDLState *)lifecycleState { SDLLifecycleStateStarted: @[SDLLifecycleStateConnected, SDLLifecycleStateStopped, SDLLifecycleStateReconnecting], SDLLifecycleStateReconnecting: @[SDLLifecycleStateStarted, SDLLifecycleStateStopped], SDLLifecycleStateConnected: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateRegistered], - SDLLifecycleStateRegistered: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateSettingUpManagers, SDLLifecycleStateUpdatingConfiguration], + SDLLifecycleStateRegistered: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateUnregistering, SDLLifecycleStateSettingUpManagers, SDLLifecycleStateUpdatingConfiguration], SDLLifecycleStateUpdatingConfiguration: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateSettingUpManagers], SDLLifecycleStateSettingUpManagers: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateSettingUpAppIcon], SDLLifecycleStateSettingUpAppIcon: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateSettingUpHMI], @@ -204,24 +259,32 @@ - (SDLState *)lifecycleState { } - (void)didEnterStateStarted { -// Start up the internal proxy object -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if (self.configuration.lifecycleConfig.tcpDebugMode) { - // secondary transport manager is not used - self.secondaryTransportManager = nil; - self.proxy = [SDLProxy tcpProxyWithListener:self.notificationDispatcher - tcpIPAddress:self.configuration.lifecycleConfig.tcpDebugIPAddress - tcpPort:@(self.configuration.lifecycleConfig.tcpDebugPort).stringValue - secondaryTransportManager:self.secondaryTransportManager]; + // Start a background task so a session can be established even when the app is backgrounded. + [self.backgroundTaskManager startBackgroundTask]; + + // Start up the internal protocol, transport, and other internal managers + self.secondaryTransportManager = nil; + SDLLifecycleConfiguration *lifecycleConfig = self.configuration.lifecycleConfig; + id newTransport = nil; + + if (lifecycleConfig.tcpDebugMode) { + newTransport = [[SDLTCPTransport alloc] initWithHostName:lifecycleConfig.tcpDebugIPAddress portNumber:@(lifecycleConfig.tcpDebugPort).stringValue]; } else { - // we reuse our queue to run secondary transport manager's state machine - self.secondaryTransportManager = [[SDLSecondaryTransportManager alloc] initWithStreamingProtocolDelegate:self - serialQueue:self.lifecycleQueue]; - self.proxy = [SDLProxy iapProxyWithListener:self.notificationDispatcher - secondaryTransportManager:self.secondaryTransportManager]; + newTransport = [[SDLIAPTransport alloc] init]; + + if (self.configuration.lifecycleConfig.allowedSecondaryTransports != SDLSecondaryTransportsNone + && [self.class sdl_isStreamingConfiguration:self.configuration]) { + // Reuse the queue to run the secondary transport manager's state machine + self.secondaryTransportManager = [[SDLSecondaryTransportManager alloc] initWithStreamingProtocolDelegate:(id)self.streamManager serialQueue:self.lifecycleQueue]; + self.streamManager.secondaryTransportManager = self.secondaryTransportManager; + } } -#pragma clang diagnostic pop + + SDLProtocol *newProtocol = [[SDLProtocol alloc] initWithTransport:newTransport encryptionManager:self.encryptionLifecycleManager]; + self.protocolHandler = [[SDLLifecycleProtocolHandler alloc] initWithProtocol:newProtocol notificationDispatcher:self.notificationDispatcher configuration:self.configuration]; + [self.protocolHandler start]; + + [self.secondaryTransportManager startWithPrimaryProtocol:self.protocolHandler.protocol]; // Will not run if secondaryTransportManager is nil } - (void)didEnterStateStopped { @@ -232,35 +295,66 @@ - (void)didEnterStateReconnecting { [self sdl_stopManager:YES]; } +/// Shuts down the all the managers used to manage the lifecycle of the SDL app after the connection between the phone and SDL enabled accessory has closed. If a restart is desired, attempt to start looking for another SDL enabled accessory. If no restart is desired, another connection will not be made with a SDL enabled accessory during the current app session +/// @param shouldRestart Whether or not to start looking for another SDL enabled accessory. - (void)sdl_stopManager:(BOOL)shouldRestart { SDLLogV(@"Stopping manager, %@", (shouldRestart ? @"will restart" : @"will not restart")); + dispatch_group_t stopManagersTask = dispatch_group_create(); + dispatch_group_enter(stopManagersTask); + + if (self.protocolHandler != nil) { + dispatch_group_enter(stopManagersTask); + [self.protocolHandler stopWithCompletionHandler:^{ + dispatch_group_leave(stopManagersTask); + }]; + } + if (self.secondaryTransportManager != nil) { + dispatch_group_enter(stopManagersTask); + [self.secondaryTransportManager stopWithCompletionHandler:^{ + dispatch_group_leave(stopManagersTask); + }]; + } + + dispatch_group_leave(stopManagersTask); + + // This will always run after all `leave`s + __weak typeof(self) weakSelf = self; + dispatch_group_notify(stopManagersTask, [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + [strongSelf sdl_stopManagersAndRestart:shouldRestart]; + }); +} + +/// Helper method for shutting down the remaining managers that do not need extra time to shutdown. Once all the managers have been shutdown, attempt to start looking for another SDL enabled accessory. +/// @param shouldRestart Whether or not to start looking for another SDL enabled accessory. +- (void)sdl_stopManagersAndRestart:(BOOL)shouldRestart { [self.fileManager stop]; [self.permissionManager stop]; [self.lockScreenManager stop]; [self.screenManager stop]; - if (self.secondaryTransportManager != nil) { - [self.secondaryTransportManager stop]; - } else { - [self audioServiceProtocolDidUpdateFromOldProtocol:self.proxy.protocol toNewProtocol:nil]; - [self videoServiceProtocolDidUpdateFromOldProtocol:self.proxy.protocol toNewProtocol:nil]; - } + [self.encryptionLifecycleManager stop]; + [self.streamManager stop]; [self.systemCapabilityManager stop]; [self.responseDispatcher clear]; [self.rpcOperationQueue cancelAllOperations]; + [self.syncPDataHandler stop]; + [self.systemRequestHandler stop]; + [self.mobileHMIStateHandler stop]; + self.registerResponse = nil; self.lastCorrelationId = 0; self.hmiLevel = nil; self.audioStreamingState = nil; + self.videoStreamingState = nil; self.systemContext = nil; - self.proxy = nil; // Due to a race condition internally with EAStream, we cannot immediately attempt to restart the proxy, as we will randomly crash. // Apple Bug ID #30059457 __weak typeof(self) weakSelf = self; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), self.lifecycleQueue, ^{ __strong typeof(weakSelf) strongSelf = weakSelf; if (!strongSelf) { return; } @@ -268,15 +362,20 @@ - (void)sdl_stopManager:(BOOL)shouldRestart { if (shouldRestart) { [strongSelf sdl_transitionToState:SDLLifecycleStateStarted]; + } else { + // End the background task because a session will not be established + [strongSelf.backgroundTaskManager endBackgroundTask]; } }); } - (void)didEnterStateConnected { - // If we have security managers, add them to the proxy - if (self.configuration.streamingMediaConfig.securityManagers != nil) { - SDLLogD(@"Adding security managers"); - [self.proxy addSecurityManagers:self.configuration.streamingMediaConfig.securityManagers forAppId:self.configuration.lifecycleConfig.appId]; + // If the negotiated protocol version is greater than the minimum allowable version, we need to end service and disconnect + if ([self.configuration.lifecycleConfig.minimumProtocolVersion isGreaterThanVersion:[SDLGlobals sharedGlobals].protocolVersion]) { + SDLLogW(@"Disconnecting from head unit, protocol version %@ is less than configured minimum version %@", [SDLGlobals sharedGlobals].protocolVersion.stringVersion, self.configuration.lifecycleConfig.minimumProtocolVersion.stringVersion); + [self.protocolHandler.protocol endServiceWithType:SDLServiceTypeRPC]; + [self sdl_transitionToState:SDLLifecycleStateStopped]; + return; } // Build a register app interface request with the configuration data @@ -284,36 +383,50 @@ - (void)didEnterStateConnected { // Send the request and depending on the response, post the notification __weak typeof(self) weakSelf = self; - [self sdl_sendRequest:regRequest - withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { - dispatch_async(weakSelf.lifecycleQueue, ^{ - // If the success BOOL is NO or we received an error at this point, we failed. Call the ready handler and transition to the DISCONNECTED state. - if (error != nil || ![response.success boolValue]) { - SDLLogE(@"Failed to register the app. Error: %@, Response: %@", error, response); - weakSelf.readyHandler(NO, error); - - if (weakSelf.lifecycleState != SDLLifecycleStateReconnecting) { - [weakSelf sdl_transitionToState:SDLLifecycleStateStopped]; - } - - return; - } - - weakSelf.registerResponse = (SDLRegisterAppInterfaceResponse *)response; - [SDLGlobals sharedGlobals].rpcVersion = weakSelf.registerResponse.syncMsgVersion; - [weakSelf sdl_transitionToState:SDLLifecycleStateRegistered]; - }); - }]; + [self sendConnectionManagerRequest:regRequest withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { + // If the success BOOL is NO or we received an error at this point, we failed. Call the ready handler and transition to the DISCONNECTED state. + if (error != nil || ![response.success boolValue]) { + SDLLogE(@"Failed to register the app. Error: %@, Response: %@", error, response); + if (weakSelf.readyHandler) { + weakSelf.readyHandler(NO, error); + } + + if (weakSelf.lifecycleState != SDLLifecycleStateReconnecting) { + [weakSelf sdl_transitionToState:SDLLifecycleStateStopped]; + } + + return; + } + + weakSelf.registerResponse = (SDLRegisterAppInterfaceResponse *)response; + [SDLGlobals sharedGlobals].rpcVersion = [SDLVersion versionWithSDLMsgVersion:weakSelf.registerResponse.sdlMsgVersion]; + [weakSelf sdl_transitionToState:SDLLifecycleStateRegistered]; + }]; } - (void)didEnterStateRegistered { + // If the negotiated RPC version is greater than the minimum allowable version, we need to unregister and disconnect + if ([self.configuration.lifecycleConfig.minimumRPCVersion isGreaterThanVersion:[SDLGlobals sharedGlobals].rpcVersion]) { + SDLLogW(@"Disconnecting from head unit, RPC version %@ is less than configured minimum version %@", [SDLGlobals sharedGlobals].rpcVersion.stringVersion, self.configuration.lifecycleConfig.minimumRPCVersion.stringVersion); + [self sdl_transitionToState:SDLLifecycleStateUnregistering]; + return; + } + NSArray *supportedLanguages = self.configuration.lifecycleConfig.languagesSupported; - SDLLanguage desiredLanguage = self.configuration.lifecycleConfig.language; - SDLLanguage actualLanguage = self.registerResponse.language; - BOOL delegateCanUpdateLifecycle = [self.delegate respondsToSelector:@selector(managerShouldUpdateLifecycleToLanguage:)]; - + SDLLanguage desiredHMILanguage = self.configuration.lifecycleConfig.language; + SDLLanguage desiredVRLanguage = self.currentVRLanguage; + + SDLLanguage actualHMILanguage = self.registerResponse.hmiDisplayLanguage; + SDLLanguage actualVRLanguage = self.registerResponse.language; + + BOOL oldDelegateCanUpdateLifecycle = [self.delegate respondsToSelector:@selector(managerShouldUpdateLifecycleToLanguage:)]; + BOOL delegateCanUpdateLifecycle = [self.delegate respondsToSelector:@selector(managerShouldUpdateLifecycleToLanguage:hmiLanguage:)]; + // language mismatch? but actual language is a supported language? and delegate has implemented method? - if (![actualLanguage isEqualToEnum:desiredLanguage] && [supportedLanguages containsObject:actualLanguage] && delegateCanUpdateLifecycle) { + if ((delegateCanUpdateLifecycle || oldDelegateCanUpdateLifecycle) + && ([supportedLanguages containsObject:actualHMILanguage] || [supportedLanguages containsObject:actualVRLanguage]) + && (![actualHMILanguage isEqualToEnum:desiredHMILanguage] || ![actualVRLanguage isEqualToEnum:desiredVRLanguage])) { + // If the delegate is implemented, AND the new HMI / VR language is a supported language, AND the new HMI / VR language is not the current language, THEN go to the updating configuration state and see if the dev wants to change the registration. [self sdl_transitionToState:SDLLifecycleStateUpdatingConfiguration]; } else { [self sdl_transitionToState:SDLLifecycleStateSettingUpManagers]; @@ -321,13 +434,26 @@ - (void)didEnterStateRegistered { } - (void)didEnterStateUpdatingConfiguration { - // we can expect that the delegate has implemented the update method and the actual language is a supported language + // We can expect that the delegate has implemented the update method and the actual language is a supported language + SDLLanguage actualHMILanguage = self.registerResponse.hmiDisplayLanguage; SDLLanguage actualLanguage = self.registerResponse.language; + SDLLogD(@"Updating configuration due to language mismatch. New language: %@, new hmiLanguage: %@", actualLanguage, actualHMILanguage); + + SDLLifecycleConfigurationUpdate *configUpdate = nil; + BOOL supportsNewDelegate = [self.delegate respondsToSelector:@selector(managerShouldUpdateLifecycleToLanguage:hmiLanguage:)]; + BOOL supportsOldDelegate = [self.delegate respondsToSelector:@selector(managerShouldUpdateLifecycleToLanguage:)]; + if (supportsNewDelegate) { + configUpdate = [self.delegate managerShouldUpdateLifecycleToLanguage:actualLanguage hmiLanguage:actualHMILanguage]; + } else if (supportsOldDelegate) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + configUpdate = [self.delegate managerShouldUpdateLifecycleToLanguage:actualLanguage]; +#pragma clang diagnostic pop + } - SDLLifecycleConfigurationUpdate *configUpdate = [self.delegate managerShouldUpdateLifecycleToLanguage:actualLanguage]; - if (configUpdate) { - self.configuration.lifecycleConfig.language = actualLanguage; + self.configuration.lifecycleConfig.language = actualHMILanguage; + self.currentVRLanguage = actualLanguage; if (configUpdate.appName) { self.configuration.lifecycleConfig.appName = configUpdate.appName; } @@ -340,14 +466,21 @@ - (void)didEnterStateUpdatingConfiguration { if (configUpdate.voiceRecognitionCommandNames) { self.configuration.lifecycleConfig.voiceRecognitionCommandNames = configUpdate.voiceRecognitionCommandNames; } - - SDLChangeRegistration *changeRegistration = [[SDLChangeRegistration alloc] initWithLanguage:actualLanguage hmiDisplayLanguage:actualLanguage]; + + SDLChangeRegistration *changeRegistration = [[SDLChangeRegistration alloc] initWithLanguage:actualLanguage hmiDisplayLanguage:actualHMILanguage]; changeRegistration.appName = configUpdate.appName; changeRegistration.ngnMediaScreenAppName = configUpdate.shortAppName; changeRegistration.ttsName = configUpdate.ttsName; changeRegistration.vrSynonyms = configUpdate.voiceRecognitionCommandNames; - [self sendConnectionManagerRequest:changeRegistration withResponseHandler:nil]; + [self sendConnectionManagerRequest:changeRegistration withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + if (error != nil) { + SDLLogW(@"Failed to update language with change registration. Request: %@, Response: %@, error: %@", request, response, error); + return; + } + + SDLLogD(@"Successfully updated language with change registration. Request sent: %@", request); + }]; } [self sdl_transitionToState:SDLLifecycleStateSettingUpManagers]; @@ -360,6 +493,7 @@ - (void)didEnterStateSettingUpManagers { dispatch_group_enter(managerGroup); SDLLogD(@"Setting up assistant managers"); [self.lockScreenManager start]; + [self.systemCapabilityManager start]; dispatch_group_enter(managerGroup); [self.fileManager startWithCompletionHandler:^(BOOL success, NSError *_Nullable error) { @@ -378,14 +512,17 @@ - (void)didEnterStateSettingUpManagers { dispatch_group_leave(managerGroup); }]; - - // if secondary transport manager is used, streaming media manager will be started through onAudioServiceProtocolUpdated and onVideoServiceProtocolUpdated + + if (self.encryptionLifecycleManager != nil) { + [self.encryptionLifecycleManager startWithProtocol:self.protocolHandler.protocol]; + } + + // Starts the streaming media manager if only using the primary transport (i.e. secondary transports has been disabled in the lifecyle configuration). If using a secondary transport, setup is handled by the stream manager. if (self.secondaryTransportManager == nil && self.streamManager != nil) { - [self audioServiceProtocolDidUpdateFromOldProtocol:nil toNewProtocol:self.proxy.protocol]; - [self videoServiceProtocolDidUpdateFromOldProtocol:nil toNewProtocol:self.proxy.protocol]; + [self.streamManager startWithProtocol:self.protocolHandler.protocol]; } - dispatch_group_enter(managerGroup); + dispatch_group_enter(managerGroup); [self.screenManager startWithCompletionHandler:^(NSError * _Nullable error) { if (error != nil) { SDLLogW(@"Screen Manager was unable to start; error: %@", error); @@ -421,7 +558,7 @@ - (void)didEnterStateSettingUpAppIcon { [weakself sdl_transitionToState:SDLLifecycleStateSettingUpHMI]; } }); - }]; + }]; } - (void)didEnterStateSettingUpHMI { @@ -446,35 +583,38 @@ - (void)didEnterStateReady { } // If we got to this point, we succeeded, send the error if there was a warning. - dispatch_async(dispatch_get_main_queue(), ^{ - self.readyHandler(YES, startError); - }); + self.readyHandler(YES, startError); [self.notificationDispatcher postNotificationName:SDLDidBecomeReady infoObject:nil]; // Send the hmi level going from NONE to whatever we're at now (could still be NONE) - dispatch_async(dispatch_get_main_queue(), ^{ - [self.delegate hmiLevel:SDLHMILevelNone didChangeToLevel:self.hmiLevel]; + [self.delegate hmiLevel:SDLHMILevelNone didChangeToLevel:self.hmiLevel]; - // Send the audio streaming state going from NOT_AUDIBLE to whatever we're at now (could still be NOT_AUDIBLE) - if ([self.delegate respondsToSelector:@selector(audioStreamingState:didChangeToState:)]) { - [self.delegate audioStreamingState:SDLAudioStreamingStateNotAudible didChangeToState:self.audioStreamingState]; - } - }); + // Send the audio streaming state going from NOT_AUDIBLE to whatever we're at now (could still be NOT_AUDIBLE) + if ([self.delegate respondsToSelector:@selector(audioStreamingState:didChangeToState:)]) { + [self.delegate audioStreamingState:SDLAudioStreamingStateNotAudible didChangeToState:self.audioStreamingState]; + } + + if ([self.delegate respondsToSelector:@selector(videoStreamingState:didChangetoState:)]) { + [self.delegate videoStreamingState:SDLVideoStreamingStateNotStreamable didChangetoState:self.videoStreamingState]; + } + + // Stop the background task now that setup has completed + [self.backgroundTaskManager endBackgroundTask]; } - (void)didEnterStateUnregistering { SDLUnregisterAppInterface *unregisterRequest = [[SDLUnregisterAppInterface alloc] init]; __weak typeof(self) weakSelf = self; - [self sdl_sendRequest:unregisterRequest - withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { - if (error != nil || ![response.success boolValue]) { - SDLLogE(@"SDL Error unregistering, we are going to hard disconnect: %@, response: %@", error, response); - } + [self sdl_sendConnectionRequest:unregisterRequest + withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { + if (error != nil || ![response.success boolValue]) { + SDLLogE(@"SDL Error unregistering, we are going to hard disconnect: %@, response: %@", error, response); + } - [weakSelf sdl_transitionToState:SDLLifecycleStateStopped]; - }]; + [weakSelf sdl_transitionToState:SDLLifecycleStateStopped]; + }]; } @@ -482,10 +622,13 @@ - (void)didEnterStateUnregistering { - (void)sdl_sendAppIcon:(nullable SDLFile *)appIcon withCompletion:(void (^)(void))completion { // If no app icon was set, just move on to ready - if (appIcon == nil || !self.registerResponse.displayCapabilities.graphicSupported.boolValue) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated" + if (appIcon == nil || ![self.systemCapabilityManager.defaultMainWindowCapability.imageTypeSupported containsObject:SDLImageTypeDynamic]) { completion(); return; } +#pragma clang diagnostic pop [self.fileManager uploadFile:appIcon completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError *_Nullable error) { // These errors could be recoverable (particularly "cannot overwrite"), so we'll still attempt to set the app icon @@ -503,26 +646,38 @@ - (void)sdl_sendAppIcon:(nullable SDLFile *)appIcon withCompletion:(void (^)(voi SDLSetAppIcon *setAppIcon = [[SDLSetAppIcon alloc] init]; setAppIcon.syncFileName = appIcon.name; - [self sdl_sendRequest:setAppIcon + [self sendConnectionManagerRequest:setAppIcon withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { - if (error != nil) { - SDLLogW(@"Error setting up app icon: %@", error); - } + if (error != nil) { + SDLLogW(@"Error setting up app icon: %@", error); + } - // We've succeeded or failed - completion(); - }]; + // We've succeeded or failed + completion(); + }]; }]; } #pragma mark Sending Requests -- (void)sendRequest:(SDLRPCRequest *)request { - [self sendRequest:request withResponseHandler:nil]; +- (void)sendRPC:(__kindof SDLRPCMessage *)rpc { + if ([rpc isKindOfClass:SDLRPCRequest.class]) { + SDLRPCRequest *requestRPC = (SDLRPCRequest *)rpc; + [self sendRequest:requestRPC withResponseHandler:nil]; + } else if ([rpc isKindOfClass:SDLRPCResponse.class] || [rpc isKindOfClass:SDLRPCNotification.class]) { + [self sdl_sendRPC:rpc]; + } else { + NSAssert(false, @"The request should be of type `Request`, `Response` or `Notification"); + } } -- (void)sendRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { +- (void)sdl_sendRPC:(__kindof SDLRPCMessage *)rpc { + SDLAsynchronousRPCOperation *op = [[SDLAsynchronousRPCOperation alloc] initWithConnectionManager:self rpc:rpc]; + [self.rpcOperationQueue addOperation:op]; +} + +- (void)sendRequest:(SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { SDLAsynchronousRPCRequestOperation *op = [[SDLAsynchronousRPCRequestOperation alloc] initWithConnectionManager:self request:request responseHandler:handler]; [self.rpcOperationQueue addOperation:op]; } @@ -547,58 +702,123 @@ - (void)sendSequentialRequests:(NSArray *)requests progressHand [self.rpcOperationQueue addOperation:op]; } +/// Send a request immediately without going through the RPC operation queue +/// @param rpc The RPC to send +- (void)sendConnectionRPC:(__kindof SDLRPCMessage *)rpc { + NSAssert(([rpc isKindOfClass:SDLRPCResponse.class] || [rpc isKindOfClass:SDLRPCNotification.class]), @"Only RPCs of type `Response` or `Notfication` can be sent using this method. To send RPCs of type `Request` use sendConnectionRequest:withResponseHandler:."); + + if (![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady]) { + SDLLogW(@"Manager not ready, message not sent (%@)", rpc); + return; + } + + [self sdl_runOnProcessingQueue:^{ + [self sdl_sendConnectionRequest:rpc withResponseHandler:nil]; + }]; +} + +/// Send a non-request RPC immediately without going through the RPC operation queue, and allow requests to be sent before the managers have completed setup. +/// @param rpc The RPC to send +- (void)sendConnectionManagerRPC:(__kindof SDLRPCMessage *)rpc { + NSAssert(([rpc isKindOfClass:SDLRPCResponse.class] || [rpc isKindOfClass:SDLRPCNotification.class]), @"Only RPCs of type `Response` or `Notfication` can be sent using this method. To send RPCs of type `Request` use sendConnectionRequest:withResponseHandler:."); + + [self sdl_runOnProcessingQueue:^{ + [self sdl_sendConnectionRequest:rpc withResponseHandler:nil]; + }]; +} + +/// Send a request immediately without going through the RPC operation queue +/// @param request The request to send +/// @param handler A callback handler for responses to the request - (void)sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { if (![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady]) { - SDLLogW(@"Manager not ready, message not sent (%@)", request); + SDLLogW(@"Manager not ready, request not sent (%@)", request); if (handler) { - dispatch_async(dispatch_get_main_queue(), ^{ - handler(request, nil, [NSError sdl_lifecycle_notReadyError]); - }); + handler(request, nil, [NSError sdl_lifecycle_notReadyError]); } - + + return; + } + + if (!request.isPayloadProtected && [self.encryptionLifecycleManager rpcRequiresEncryption:request]) { + request.payloadProtected = YES; + } + + if (request.isPayloadProtected && !self.encryptionLifecycleManager.isEncryptionReady) { + SDLLogW(@"Encryption Manager not ready, request not sent (%@)", request); + if (handler) { + handler(request, nil, [NSError sdl_encryption_lifecycle_notReadyError]); + } + return; } - dispatch_async(_lifecycleQueue, ^{ - [self sdl_sendRequest:request withResponseHandler:handler]; - }); + [self sdl_runOnProcessingQueue:^{ + [self sdl_sendConnectionRequest:request withResponseHandler:handler]; + }]; } -// Managers need to avoid state checking. Part of . -- (void)sendConnectionManagerRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { - dispatch_async(_lifecycleQueue, ^{ - [self sdl_sendRequest:request withResponseHandler:handler]; - }); +/// Send a request immediately without going through the RPC operation queue, and allow requests to be sent before the managers have completed setup. +/// @param request The request to send +/// @param handler A callback handler for responses to the request +- (void)sendConnectionManagerRequest:(__kindof SDLRPCMessage *)request withResponseHandler:(nullable SDLResponseHandler)handler { + [self sdl_runOnProcessingQueue:^{ + [self sdl_sendConnectionRequest:request withResponseHandler:handler]; + }]; } -- (void)sdl_sendRequest:(SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { +/// Send a request by sending it directly through the protocol, without going through the RPC operation queue +/// @param request The request to send +/// @param handler A callback handler for responses to the request +- (void)sdl_sendConnectionRequest:(__kindof SDLRPCMessage *)request withResponseHandler:(nullable SDLResponseHandler)handler { // We will allow things to be sent in a "SDLLifecycleStateConnected" state in the private method, but block it in the public method sendRequest:withCompletionHandler: so that the lifecycle manager can complete its setup without being bothered by developer error NSParameterAssert(request != nil); // If, for some reason, the request is nil we should error out. - if (!request) { + if (request == nil) { NSError *error = [NSError sdl_lifecycle_rpcErrorWithDescription:@"Nil Request Sent" andReason:@"A nil RPC request was passed and cannot be sent."]; SDLLogW(@"%@", error); if (handler) { - dispatch_async(dispatch_get_main_queue(), ^{ - handler(nil, nil, error); - }); + handler(nil, nil, error); } return; } - // Add a correlation ID to the request - NSNumber *corrID = [self sdl_getNextCorrelationId]; - request.correlationID = corrID; - - [self.responseDispatcher storeRequest:request handler:handler]; - [self.proxy sendRPC:request]; + // Before we send a message, we have to check if we need to adapt the RPC. When adapting the RPC, there could be multiple RPCs that need to be sent. + NSArray *messages = [SDLLifecycleRPCAdapter adaptRPC:request direction:SDLRPCDirectionOutgoing]; + for (SDLRPCMessage *message in messages) { + if ([request isKindOfClass:SDLRPCRequest.class]) { + // Generate and add a correlation ID to the request. When a response for the request is returned from Core, it will have the same correlation ID + SDLRPCRequest *requestRPC = (SDLRPCRequest *)message; + NSNumber *corrID = [self sdl_getNextCorrelationId]; + requestRPC.correlationID = corrID; + [self.responseDispatcher storeRequest:requestRPC handler:handler]; + [self.protocolHandler.protocol sendRPC:requestRPC]; + } else if ([request isKindOfClass:SDLRPCResponse.class] || [request isKindOfClass:SDLRPCNotification.class]) { + [self.protocolHandler.protocol sendRPC:message]; + } else { + SDLLogE(@"Will not send an RPC with unknown type, %@. The request should be of type SDLRPCRequest, SDLRPCResponse, or SDLRPCNotification.", request.class); + } + } } - #pragma mark Helper Methods + +/// Returns true if the app type set in the configuration is `NAVIGATION` or `PROJECTION`; false for any other app type. +/// @param configuration This session's configuration ++ (BOOL)sdl_isStreamingConfiguration:(SDLConfiguration *)configuration { + if ([configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeNavigation] || + [configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeProjection] || + [configuration.lifecycleConfig.additionalAppTypes containsObject:SDLAppHMITypeNavigation] || + [configuration.lifecycleConfig.additionalAppTypes containsObject:SDLAppHMITypeProjection]) { + return YES; + } + + return NO; +} + - (NSNumber *)sdl_getNextCorrelationId { - if (self.lastCorrelationId == UINT16_MAX) { + if (self.lastCorrelationId == INT32_MAX) { self.lastCorrelationId = 0; } @@ -615,44 +835,59 @@ + (BOOL)sdl_checkNotification:(NSNotification *)notification containsKindOfClass } // this is to make sure that the transition happens on the dedicated queue -- (void)sdl_transitionToState:(SDLState *)state { - if (strcmp(dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL), dispatch_queue_get_label(self.lifecycleQueue)) == 0) { - [self.lifecycleStateMachine transitionToState:state]; +- (void)sdl_runOnProcessingQueue:(void (^)(void))block { + if (dispatch_get_specific(SDLProcessingQueueName) != nil) { + block(); } else { - // once this method returns, the transition is completed - dispatch_sync(self.lifecycleQueue, ^{ - [self.lifecycleStateMachine transitionToState:state]; - }); + dispatch_sync(self.lifecycleQueue, block); } } +- (void)sdl_transitionToState:(SDLState *)state { + [self sdl_runOnProcessingQueue:^{ + [self.lifecycleStateMachine transitionToState:state]; + }]; +} + +/** + * Gets the authentication token returned by the `StartServiceACK` header + * + * @return An authentication token + */ +- (nullable NSString *)authToken { + return self.protocolHandler.protocol.authToken; +} #pragma mark SDL notification observers -- (void)transportDidConnect { - SDLLogD(@"Transport connected"); +- (void)sdl_rpcServiceDidConnect { + // Ignore the connection while we are reconnecting. The proxy needs to be disposed and restarted in order to ensure correct state. https://github.com/smartdevicelink/sdl_ios/issues/1172 + if (![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady] + && ![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReconnecting]) { + SDLLogD(@"Transport connected"); - dispatch_async(self.lifecycleQueue, ^{ - [self sdl_transitionToState:SDLLifecycleStateConnected]; - }); + dispatch_async(self.lifecycleQueue, ^{ + [self sdl_transitionToState:SDLLifecycleStateConnected]; + }); + } } -- (void)transportDidDisconnect { +- (void)sdl_transportDidDisconnect { SDLLogD(@"Transport Disconnected"); - dispatch_async(self.lifecycleQueue, ^{ + [self sdl_runOnProcessingQueue:^{ if (self.lifecycleState == SDLLifecycleStateUnregistering || self.lifecycleState == SDLLifecycleStateStopped) { [self sdl_transitionToState:SDLLifecycleStateStopped]; } else { [self sdl_transitionToState:SDLLifecycleStateReconnecting]; } - }); + }]; } - (void)hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { - dispatch_async(self.lifecycleQueue, ^{ + [self sdl_runOnProcessingQueue:^{ [self sdl_hmiStatusDidChange:notification]; - }); + }]; } - (void)sdl_hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { @@ -661,17 +896,38 @@ - (void)sdl_hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { } SDLOnHMIStatus *hmiStatusNotification = notification.notification; + + if (hmiStatusNotification.windowID != nil && hmiStatusNotification.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { + return; + } + SDLHMILevel oldHMILevel = self.hmiLevel; self.hmiLevel = hmiStatusNotification.hmiLevel; - SDLAudioStreamingState oldStreamingState = self.audioStreamingState; + SDLAudioStreamingState oldAudioStreamingState = self.audioStreamingState; self.audioStreamingState = hmiStatusNotification.audioStreamingState; + SDLVideoStreamingState oldVideoStreamingState = self.videoStreamingState; + self.videoStreamingState = hmiStatusNotification.videoStreamingState; + SDLSystemContext oldSystemContext = self.systemContext; self.systemContext = hmiStatusNotification.systemContext; - SDLLogD(@"HMI level changed from %@ to %@", oldHMILevel, self.hmiLevel); - SDLLogD(@"Audio streaming state changed from %@ to %@", oldStreamingState, self.audioStreamingState); + if (![oldHMILevel isEqualToEnum:self.hmiLevel]) { + SDLLogD(@"HMI level changed from %@ to %@", oldHMILevel, self.hmiLevel); + } + + if (![oldAudioStreamingState isEqualToEnum:self.audioStreamingState]) { + SDLLogD(@"Audio streaming state changed from %@ to %@", oldAudioStreamingState, self.audioStreamingState); + } + + if (![oldVideoStreamingState isEqualToEnum:self.videoStreamingState]) { + SDLLogD(@"Video streaming state changed from %@ to %@", oldVideoStreamingState, self.videoStreamingState); + } + + if (![oldSystemContext isEqualToEnum:self.systemContext]) { + SDLLogD(@"System context changed from %@ to %@", oldSystemContext, self.systemContext); + } if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateSettingUpHMI]) { [self sdl_transitionToState:SDLLifecycleStateReady]; @@ -681,30 +937,34 @@ - (void)sdl_hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { return; } - dispatch_async(dispatch_get_main_queue(), ^{ - if (![oldHMILevel isEqualToEnum:self.hmiLevel] - && !(oldHMILevel == nil && self.hmiLevel == nil)) { - [self.delegate hmiLevel:oldHMILevel didChangeToLevel:self.hmiLevel]; - } + if (![oldHMILevel isEqualToEnum:self.hmiLevel] + && !(oldHMILevel == nil && self.hmiLevel == nil)) { + [self.delegate hmiLevel:oldHMILevel didChangeToLevel:self.hmiLevel]; + } - if (![oldStreamingState isEqualToEnum:self.audioStreamingState] - && !(oldStreamingState == nil && self.audioStreamingState == nil) - && [self.delegate respondsToSelector:@selector(audioStreamingState:didChangeToState:)]) { - [self.delegate audioStreamingState:oldStreamingState didChangeToState:self.audioStreamingState]; - } + if (![oldAudioStreamingState isEqualToEnum:self.audioStreamingState] + && !(oldAudioStreamingState == nil && self.audioStreamingState == nil) + && [self.delegate respondsToSelector:@selector(audioStreamingState:didChangeToState:)]) { + [self.delegate audioStreamingState:oldAudioStreamingState didChangeToState:self.audioStreamingState]; + } - if (![oldSystemContext isEqualToEnum:self.systemContext] - && !(oldSystemContext == nil && self.systemContext == nil) - && [self.delegate respondsToSelector:@selector(systemContext:didChangeToContext:)]) { - [self.delegate systemContext:oldSystemContext didChangeToContext:self.systemContext]; - } - }); + if (![oldVideoStreamingState isEqualToEnum:self.videoStreamingState] + && !(oldVideoStreamingState == nil && self.videoStreamingState == nil) + && [self.delegate respondsToSelector:@selector(videoStreamingState:didChangetoState:)]) { + [self.delegate videoStreamingState:oldVideoStreamingState didChangetoState:self.videoStreamingState]; + } + + if (![oldSystemContext isEqualToEnum:self.systemContext] + && !(oldSystemContext == nil && self.systemContext == nil) + && [self.delegate respondsToSelector:@selector(systemContext:didChangeToContext:)]) { + [self.delegate systemContext:oldSystemContext didChangeToContext:self.systemContext]; + } } - (void)remoteHardwareDidUnregister:(SDLRPCNotificationNotification *)notification { - dispatch_async(self.lifecycleQueue, ^{ + [self sdl_runOnProcessingQueue:^{ [self sdl_remoteHardwareDidUnregister:notification]; - }); + }]; } - (void)sdl_remoteHardwareDidUnregister:(SDLRPCNotificationNotification *)notification { @@ -719,42 +979,15 @@ - (void)sdl_remoteHardwareDidUnregister:(SDLRPCNotificationNotification *)notifi [self sdl_transitionToState:SDLLifecycleStateStopped]; } else if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateStopped]) { return; - } else if ([appUnregisteredNotification.reason isKindOfClass:[NSString class]] && [appUnregisteredNotification.reason isEqualToEnum:SDLAppInterfaceUnregisteredReasonAppUnauthorized]) { - // HAX: The string check is due to a core "feature" that could cause -1 to be sent as the enum value, which will crash here. + } else if (appUnregisteredNotification.reason != nil + && ([appUnregisteredNotification.reason isEqualToEnum:SDLAppInterfaceUnregisteredReasonAppUnauthorized] + || [appUnregisteredNotification.reason isEqualToEnum:SDLAppInterfaceUnregisteredReasonProtocolViolation])) { [self sdl_transitionToState:SDLLifecycleStateStopped]; } else { [self sdl_transitionToState:SDLLifecycleStateReconnecting]; } } -#pragma mark Streaming protocol listener - -- (void)audioServiceProtocolDidUpdateFromOldProtocol:(nullable SDLProtocol *)oldProtocol toNewProtocol:(nullable SDLProtocol *)newProtocol { - if ((oldProtocol == nil && newProtocol == nil) || (oldProtocol == newProtocol)) { - return; - } - - if (oldProtocol != nil) { - [self.streamManager stopAudio]; - } - if (newProtocol != nil) { - [self.streamManager startAudioWithProtocol:newProtocol]; - } -} - -- (void)videoServiceProtocolDidUpdateFromOldProtocol:(nullable SDLProtocol *)oldProtocol toNewProtocol:(nullable SDLProtocol *)newProtocol { - if ((oldProtocol == nil && newProtocol == nil) || (oldProtocol == newProtocol)) { - return; - } - - if (oldProtocol != nil) { - [self.streamManager stopVideo]; - } - if (newProtocol != nil) { - [self.streamManager startVideoWithProtocol:newProtocol]; - } -} - @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.h new file mode 100644 index 0000000..0463995 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.h @@ -0,0 +1,28 @@ +// +// SDLLifecycleMobileHMIStateHandler.h +// SmartDeviceLink +// +// Created by Joel Fischer on 6/9/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +@protocol SDLConnectionManagerType; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLifecycleMobileHMIStateHandler : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/// Initialize the object +/// @param connectionManager The connection manager to send RPCs +- (instancetype)initWithConnectionManager:(id)connectionManager; + +/// Stops the manager from checking for app background / foreground notifications. +- (void)stop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.m new file mode 100644 index 0000000..5a9be25 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.m @@ -0,0 +1,94 @@ +// +// SDLLifecycleMobileHMIStateHandler.m +// SmartDeviceLink +// +// Created by Joel Fischer on 6/9/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLifecycleMobileHMIStateHandler.h" + +#import "SDLConnectionManagerType.h" +#import "SDLLogMacros.h" +#import "SDLNotificationConstants.h" +#import "SDLOnHMIStatus.h" +#import "SDLRegisterAppInterfaceResponse.h" +#import "SDLRPCResponseNotification.h" +#import "SDLMsgVersion.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLifecycleMobileHMIStateHandler () + +@property (weak, nonatomic) id connectionManager; + +@end + +@implementation SDLLifecycleMobileHMIStateHandler + +- (instancetype)initWithConnectionManager:(id)connectionManager { + self = [super init]; + if (!self) { return nil; } + + _connectionManager = connectionManager; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(registerResponseReceived:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; + + return self; +} + +- (void)stop { + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil]; +} + +/// This method sends an OnHMIStatus with the Mobile's HMI level to the head unit. +/// This was originally designed to make sure that the head unit properly knew about the mobile app's ability to run timers in the background, which affected heartbeat. +/// It may still affect some features on the head unit and the ability for the head unit to know which app is in the foreground is useful. It should not be removed due to unknown backward compatibility issues. +- (void)sdl_sendMobileHMIState { + __block UIApplicationState appState = UIApplicationStateInactive; + if ([NSThread isMainThread]) { + appState = [UIApplication sharedApplication].applicationState; + } else { + dispatch_sync(dispatch_get_main_queue(), ^{ + appState = [UIApplication sharedApplication].applicationState; + }); + } + + SDLOnHMIStatus *hmiStatus = [[SDLOnHMIStatus alloc] init]; + hmiStatus.audioStreamingState = SDLAudioStreamingStateNotAudible; + hmiStatus.systemContext = SDLSystemContextMain; + + switch (appState) { + case UIApplicationStateActive: { + hmiStatus.hmiLevel = SDLHMILevelFull; + } break; + case UIApplicationStateBackground: // Fallthrough + case UIApplicationStateInactive: { + hmiStatus.hmiLevel = SDLHMILevelBackground; + } break; + default: break; + } + + SDLLogD(@"Mobile UIApplication state changed, sending to remote system: %@", hmiStatus.hmiLevel); + [self.connectionManager sendConnectionManagerRPC:hmiStatus]; +} + +#pragma mark - Actions + +- (void)registerResponseReceived:(SDLRPCResponseNotification *)notification { + SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response; + + if (response.sdlMsgVersion.majorVersion.unsignedIntegerValue >= 4) { + [self sdl_sendMobileHMIState]; + // Send SDL updates to application state + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_sendMobileHMIState) name:UIApplicationDidBecomeActiveNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_sendMobileHMIState) name:UIApplicationDidEnterBackgroundNotification object:nil]; + } +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.h new file mode 100644 index 0000000..f39964e --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.h @@ -0,0 +1,38 @@ +// +// SDLProtocolDelegateHandler.h +// SmartDeviceLink +// +// Created by Joel Fischer on 6/10/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLProtocolDelegate.h" + +@class SDLConfiguration; +@class SDLNotificationDispatcher; +@class SDLProtocol; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLifecycleProtocolHandler : NSObject + +@property (strong, nonatomic) SDLProtocol *protocol; + +/// Initialize the object +/// @param protocol A protocol to receive protocol messages from and to send RPC data to +/// @param notificationDispatcher A notification dispatcher to send notifications through +/// @param configuration The configuration to use pass the app id to the protocol +- (instancetype)initWithProtocol:(SDLProtocol *)protocol notificationDispatcher:(SDLNotificationDispatcher *)notificationDispatcher configuration:(SDLConfiguration *)configuration; + +/// Starts the manager and the underlying protocol. +- (void)start; + +/// Stops the manager and the underlying protocol, which disconnects the underlying transport +/// @param disconnectCompletionHandler A handler called when the transport finishes its disconnection +- (void)stopWithCompletionHandler:(void (^)(void))disconnectCompletionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.m new file mode 100644 index 0000000..d517e89 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.m @@ -0,0 +1,200 @@ +// +// SDLProtocolDelegateHandler.m +// SmartDeviceLink +// +// Created by Joel Fischer on 6/10/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLLifecycleProtocolHandler.h" + +#import "SDLConfiguration.h" +#import "SDLControlFramePayloadRPCStartService.h" +#import "SDLError.h" +#import "SDLGlobals.h" +#import "SDLLifecycleConfiguration.h" +#import "SDLLifecycleRPCAdapter.h" +#import "SDLLogMacros.h" +#import "SDLNotificationConstants.h" +#import "SDLNotificationDispatcher.h" +#import "SDLProtocol.h" +#import "SDLProtocolHeader.h" +#import "SDLProtocolMessage.h" +#import "SDLRPCFunctionNames.h" +#import "SDLRPCMessage.h" +#import "SDLRPCMessageType.h" +#import "SDLTimer.h" + +static const float StartSessionTime = 10.0; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLifecycleProtocolHandler () + +@property (weak, nonatomic) SDLNotificationDispatcher *notificationDispatcher; + +@property (strong, nonatomic) SDLTimer *rpcStartServiceTimeoutTimer; +@property (copy, nonatomic) NSString *appId; + +@end + +@implementation SDLLifecycleProtocolHandler + +- (instancetype)initWithProtocol:(SDLProtocol *)protocol notificationDispatcher:(SDLNotificationDispatcher *)notificationDispatcher configuration:(SDLConfiguration *)configuration { + self = [super init]; + if (!self) { return nil; } + + _protocol = protocol; + _notificationDispatcher = notificationDispatcher; + + _appId = configuration.lifecycleConfig.fullAppId ? configuration.lifecycleConfig.fullAppId : configuration.lifecycleConfig.appId; + _protocol.appId = _appId; + + [_protocol.protocolDelegateTable addObject:self]; + + return self; +} + +- (void)start { + [self.protocol start]; +} + +- (void)stopWithCompletionHandler:(void (^)(void))disconnectCompletionHandler { + [self.protocol stopWithCompletionHandler:^{ + disconnectCompletionHandler(); + }]; +} + + +#pragma mark - SDLProtocolDelegate + +/// Called when the transport is opened. We will send the RPC Start Service and wait for the RPC Start Service ACK +- (void)onProtocolOpened { + SDLLogD(@"Transport opened, sending an RPC Start Service, and starting timer for RPC Start Service ACK to be received."); + [self.notificationDispatcher postNotificationName:SDLTransportDidConnect infoObject:nil]; + + SDLControlFramePayloadRPCStartService *startServicePayload = [[SDLControlFramePayloadRPCStartService alloc] initWithVersion:SDLMaxProxyProtocolVersion]; + [self.protocol startServiceWithType:SDLServiceTypeRPC payload:startServicePayload.data]; + + if (self.rpcStartServiceTimeoutTimer == nil) { + self.rpcStartServiceTimeoutTimer = [[SDLTimer alloc] initWithDuration:StartSessionTime repeat:NO]; + __weak typeof(self) weakSelf = self; + self.rpcStartServiceTimeoutTimer.elapsedBlock = ^{ + SDLLogE(@"Start session timed out after %f seconds, closing the connection.", StartSessionTime); + [weakSelf performSelector:@selector(onProtocolClosed) withObject:nil afterDelay:0.1]; + }; + } + [self.rpcStartServiceTimeoutTimer start]; +} + +/// Called when the transport is closed. +- (void)onProtocolClosed { + SDLLogW(@"Transport disconnected"); + [self.notificationDispatcher postNotificationName:SDLTransportDidDisconnect infoObject:nil]; +} + +- (void)onTransportError:(NSError *)error { + SDLLogW(@"Transport error: %@", error); + + [self.notificationDispatcher postNotificationName:SDLTransportConnectError infoObject:error]; +} + +- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { + SDLLogD(@"Start Service (ACK) SessionId: %d for serviceType %d", startServiceACK.header.sessionID, startServiceACK.header.serviceType); + + if (startServiceACK.header.serviceType == SDLServiceTypeRPC) { + [self.rpcStartServiceTimeoutTimer cancel]; + [self.notificationDispatcher postNotificationName:SDLRPCServiceDidConnect infoObject:nil]; + } +} + +- (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceNAK { + SDLLogD(@"Start Service (NAK): SessionId: %d for serviceType %d", startServiceNAK.header.sessionID, startServiceNAK.header.serviceType); + + if (startServiceNAK.header.serviceType == SDLServiceTypeRPC) { + [self.rpcStartServiceTimeoutTimer cancel]; + [self.notificationDispatcher postNotificationName:SDLRPCServiceConnectionDidError infoObject:nil]; + } +} + +- (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { + SDLLogD(@"End Service (ACK): SessionId: %d for serviceType %d", endServiceACK.header.sessionID, endServiceACK.header.serviceType); + + if (endServiceACK.header.serviceType == SDLServiceTypeRPC) { + [self.rpcStartServiceTimeoutTimer cancel]; + [self.notificationDispatcher postNotificationName:SDLRPCServiceDidDisconnect infoObject:nil]; + } +} + +- (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { + if (endServiceNAK.header.serviceType == SDLServiceTypeRPC) { + NSError *error = [NSError sdl_lifecycle_unknownRemoteErrorWithDescription:@"RPC Service failed to stop" andReason:nil]; + [self.notificationDispatcher postNotificationName:SDLRPCServiceConnectionDidError infoObject:error]; + } +} + +- (void)onProtocolMessageReceived:(SDLProtocolMessage *)msg { + NSDictionary *rpcMessageAsDictionary = [msg rpcDictionary]; + SDLRPCMessage *receivedMessage = [[SDLRPCMessage alloc] initWithDictionary:rpcMessageAsDictionary]; + NSString *fullName = [self sdl_fullNameForMessage:receivedMessage]; + + // From the function name, create the corresponding RPCObject and initialize it + NSString *functionClassName = [NSString stringWithFormat:@"SDL%@", fullName]; + SDLRPCMessage *newMessage = [[NSClassFromString(functionClassName) alloc] initWithDictionary:rpcMessageAsDictionary]; + + // If we were unable to create the message, it's an unknown type; discard it + if (newMessage == nil) { return; } + + // Adapt the incoming message then call the callback + NSArray *adaptedMessages = [SDLLifecycleRPCAdapter adaptRPC:newMessage direction:SDLRPCDirectionIncoming]; + for (SDLRPCMessage *message in adaptedMessages) { + [self sdl_sendCallbackForMessage:message]; + } +} + +#pragma mark - Utilities + +- (void)sdl_sendCallbackForMessage:(SDLRPCMessage *)message { + // Log the RPC message + SDLLogV(@"Sending callback for RPC message: %@", message); + + SDLNotificationName notificationName = [self sdl_notificationNameForMessage:message]; + if ([message.messageType isEqualToEnum:SDLRPCMessageTypeNameResponse]) { + [self.notificationDispatcher postRPCResponseNotification:notificationName response:(SDLRPCResponse *)message]; + } else if ([message.messageType isEqualToEnum:SDLRPCMessageTypeNameRequest]) { + [self.notificationDispatcher postRPCRequestNotification:notificationName request:(SDLRPCRequest *)message]; + } else if ([message.messageType isEqualToEnum:SDLRPCMessageTypeNameNotification]) { + [self.notificationDispatcher postRPCNotificationNotification:notificationName notification:(SDLRPCNotification *)message]; + } +} + +- (SDLNotificationName)sdl_notificationNameForMessage:(SDLRPCMessage *)message { + NSString *messageName = message.name; + if ([message.messageType isEqualToEnum:SDLRPCMessageTypeNameResponse]) { + return [NSString stringWithFormat:@"com.sdl.response.%@", messageName]; + } else if ([message.messageType isEqualToEnum:SDLRPCMessageTypeNameRequest]) { + return [NSString stringWithFormat:@"com.sdl.request.%@", messageName]; + } else if ([message.messageType isEqualToEnum:SDLRPCMessageTypeNameNotification]) { + return [NSString stringWithFormat:@"com.sdl.notification.%@", messageName]; + } + + return messageName; +} + +- (NSString *)sdl_fullNameForMessage:(SDLRPCMessage *)message { + NSString *functionName = message.name; + NSString *messageType = message.messageType; + + // If it's a response, append "response" + if ([messageType isEqualToEnum:SDLRPCMessageTypeNameResponse]) { + if (![functionName isEqualToEnum:SDLRPCFunctionNameGenericResponse]) { + functionName = [NSString stringWithFormat:@"%@Response", functionName]; + } + } + + return functionName; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.h new file mode 100644 index 0000000..1eea483 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.h @@ -0,0 +1,29 @@ +// +// SDLLifecycleRPCAdapter.h +// SmartDeviceLink +// +// Created by Joel Fischer on 6/15/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +@class SDLRPCMessage; + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, SDLRPCDirection) { + SDLRPCDirectionIncoming, + SDLRPCDirectionOutgoing +}; + +@interface SDLLifecycleRPCAdapter : NSObject + +/// Takes an RPC message (request, response, or notification) and adapts for the negotiated RPC spec version. This may need to happen before being sent or received. +/// @param message The message to be adapted +/// @return The message or messages to be sent or recieved ++ (NSArray *)adaptRPC:(SDLRPCMessage *)message direction:(SDLRPCDirection)direction; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.m new file mode 100644 index 0000000..3b96517 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.m @@ -0,0 +1,164 @@ +// +// SDLLifecycleRPCAdapter.m +// SmartDeviceLink +// +// Created by Joel Fischer on 6/15/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLLifecycleRPCAdapter.h" + +#import "SDLGlobals.h" +#import "SDLLogMacros.h" +#import "SDLOnButtonEvent.h" +#import "SDLOnButtonPress.h" +#import "SDLRPCFunctionNames.h" +#import "SDLRPCMessage.h" +#import "SDLSubscribeButton.h" +#import "SDLUnsubscribeButton.h" +#import "SDLVersion.h" + +@implementation SDLLifecycleRPCAdapter + ++ (NSArray *)adaptRPC:(SDLRPCMessage *)message direction:(SDLRPCDirection)direction { + switch (direction) { + case SDLRPCDirectionIncoming: + if ([message.name isEqualToEnum:SDLRPCFunctionNameOnButtonPress]) { + return [self adaptOnButtonPress:(SDLOnButtonPress *)message]; + } else if ([message.name isEqualToEnum:SDLRPCFunctionNameOnButtonEvent]) { + return [self adaptOnButtonEvent:(SDLOnButtonEvent *)message]; + } + break; + case SDLRPCDirectionOutgoing: + if ([message.name isEqualToEnum:SDLRPCFunctionNameSubscribeButton]) { + return [self adaptSubscribeButton:(SDLSubscribeButton *)message]; + } else if ([message.name isEqualToEnum:SDLRPCFunctionNameUnsubscribeButton]) { + return [self adaptUnsubscribeButton:(SDLUnsubscribeButton *)message]; + } + break; + } + + return @[message]; +} + +#pragma mark - Individual RPC Adaptations + +#pragma mark Incoming + +#pragma mark Notifications + +// https://github.com/smartdevicelink/sdl_java_suite/pull/864 ++ (NSArray *)adaptOnButtonPress:(SDLOnButtonPress *)message { + SDLLogD(@"Adapting onButtonPress message: %@", message); + if ([SDLGlobals sharedGlobals].rpcVersion.major >= 5) { + if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { + // Force receive PlayPause & OK notifications + SDLOnButtonPress *okPress = [message copy]; + okPress.buttonName = SDLButtonNameOk; + + return @[message, okPress]; + } else if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { + // Force receive PlayPause and OK notifications + SDLOnButtonPress *playPausePress = [message copy]; + playPausePress.buttonName = SDLButtonNamePlayPause; + + return @[message, playPausePress]; + } + } else { // Major version < 5 + if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { + // Force receive Ok and Play/Pause notifications + SDLOnButtonPress *playPausePress = [message copy]; + playPausePress.buttonName = SDLButtonNamePlayPause; + + return @[message, playPausePress]; + } else if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { + // Drop + return @[]; + } + } + + return @[message]; +} + +// https://github.com/smartdevicelink/sdl_java_suite/pull/864 ++ (NSArray *)adaptOnButtonEvent:(SDLOnButtonEvent *)message { + SDLLogD(@"Adapting onButtonEvent message: %@", message); + if ([SDLGlobals sharedGlobals].rpcVersion.major >= 5) { + if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { + // Force receive PlayPause & OK notifications + SDLOnButtonEvent *okEvent = [message copy]; + okEvent.buttonName = SDLButtonNameOk; + + return @[message, okEvent]; + } else if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { + // Force receive PlayPause and OK notifications + SDLOnButtonEvent *playPauseEvent = [message copy]; + playPauseEvent.buttonName = SDLButtonNamePlayPause; + + return @[message, playPauseEvent]; + } + } else { // Major version < 5 + if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { + // Force receive Ok and Play/Pause notifications + SDLOnButtonEvent *playPauseEvent = [message copy]; + playPauseEvent.buttonName = SDLButtonNamePlayPause; + + return @[message, playPauseEvent]; + } else if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { + // Drop + return @[]; + } + } + + return @[message]; +} + +#pragma mark Outgoing + +#pragma mark Requests + +// See table here https://github.com/smartdevicelink/sdl_java_suite/pull/864 ++ (NSArray *)adaptSubscribeButton:(SDLSubscribeButton *)message { + SDLLogD(@"Adapting SubscribeButton message: %@", message); + if ([SDLGlobals sharedGlobals].rpcVersion.major >= 5) { + if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { + SDLSubscribeButton *playPauseMessage = [message copy]; + playPauseMessage.buttonName = SDLButtonNamePlayPause; + + return @[message, playPauseMessage]; + } + } else { // Major version < 5 + if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { + SDLSubscribeButton *okMessage = [message copy]; + okMessage.buttonName = SDLButtonNameOk; + + return @[okMessage]; + } + } + + return @[message]; +} + +// https://github.com/smartdevicelink/sdl_java_suite/pull/864 ++ (NSArray *)adaptUnsubscribeButton:(SDLUnsubscribeButton *)message { + SDLLogD(@"Adapting UnsubscribeButton message: %@", message); + if ([SDLGlobals sharedGlobals].rpcVersion.major >= 5) { + if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { + SDLUnsubscribeButton *playPauseMessage = [message copy]; + playPauseMessage.buttonName = SDLButtonNamePlayPause; + + return @[message, playPauseMessage]; + } + } else { // Major version < 5 + if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { + SDLUnsubscribeButton *okMessage = [message copy]; + okMessage.buttonName = SDLButtonNameOk; + + return @[okMessage]; + } + } + + return @[message]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.h new file mode 100644 index 0000000..f80ca38 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.h @@ -0,0 +1,29 @@ +// +// SDLLifecycleSyncPDataHandler.h +// SmartDeviceLink +// +// Created by Joel Fischer on 6/8/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol SDLConnectionManagerType; + +/// Handles decoding OnSyncPData RPCs, then performing network requests and creating a SyncPData RPC request for legacy head units. +@interface SDLLifecycleSyncPDataHandler : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/// Initialize the object +/// @param manager The connection manager to send RPCs through +- (instancetype)initWithConnectionManager:(id)manager; + +/// Stops the manager cancels all URL session tasks +- (void)stop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.m new file mode 100644 index 0000000..58ef276 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.m @@ -0,0 +1,153 @@ +// +// SDLLifecycleSyncPDataHandler.m +// SmartDeviceLink +// +// Created by Joel Fischer on 6/8/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLifecycleSyncPDataHandler.h" + +#import "SDLConnectionManagerType.h" +#import "SDLEncodedSyncPData.h" +#import "SDLLogMacros.h" +#import "SDLOnEncodedSyncPData.h" +#import "SDLRPCNotificationNotification.h" +#import "SDLRPCParameterNames.h" + +static const float DefaultConnectionTimeout = 45.0; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLifecycleSyncPDataHandler () + +@property (weak, nonatomic) id manager; +@property (strong, nonatomic) NSURLSession *urlSession; + +@end + +@implementation SDLLifecycleSyncPDataHandler + +- (instancetype)initWithConnectionManager:(id)manager { + self = [super init]; + if (!self) { return nil; } + + SDLLogV(@"Initializing SyncPData handler"); + _manager = manager; + + NSURLSessionConfiguration* configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; + configuration.timeoutIntervalForRequest = DefaultConnectionTimeout; + configuration.requestCachePolicy = NSURLRequestUseProtocolCachePolicy; + _urlSession = [NSURLSession sessionWithConfiguration:configuration]; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_encodedSyncPDataReceived:) name:SDLDidReceiveEncodedDataNotification object:nil]; +#pragma clang diagnostic pop + + return self; +} + +- (void)stop { + SDLLogV(@"Stopping SyncPData handler and stopping all URL session tasks"); + [self.urlSession getTasksWithCompletionHandler:^(NSArray * _Nonnull dataTasks, NSArray * _Nonnull uploadTasks, NSArray * _Nonnull downloadTasks) { + for (NSURLSessionTask *task in dataTasks) { + [task cancel]; + } + + for (NSURLSessionTask *task in uploadTasks) { + [task cancel]; + } + + for (NSURLSessionTask *task in downloadTasks) { + [task cancel]; + } + }]; +} + +#pragma mark - Utilities + +- (void)sdl_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"; + [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; + request.timeoutInterval = 60; + + // 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) { + SDLLogW(@"Error attempting to create SyncPData for HTTP request: %@", JSONSerializationError); + return; + } + + // Send the HTTP Request + __weak typeof(self) weakSelf = self; + [[self.urlSession uploadTaskWithRequest:request + fromData:data + completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { + [weakSelf sdl_syncPDataNetworkRequestCompleteWithData:data response:response error:error]; + }] resume]; + + SDLLogV(@"OnEncodedSyncPData (HTTP Request)"); +} + +// Handle the OnEncodedSyncPData HTTP Response +- (void)sdl_syncPDataNetworkRequestCompleteWithData:(NSData *)data response:(NSURLResponse *)response error:(NSError *)error { + // Sample of response: {"data":["SDLKGLSDKFJLKSjdslkfjslkJLKDSGLKSDJFLKSDJF"]} + SDLLogV(@"OnEncodedSyncPData (HTTP Response): %@", response); + + // Validate response data. + if (data == nil || data.length == 0) { + SDLLogW(@"OnEncodedSyncPData (HTTP Response): no data returned"); + return; + } + + // Convert data to RPCRequest + NSError *JSONConversionError = nil; + NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&JSONConversionError]; + if (JSONConversionError) { + SDLLogE(@"Error converting EncodedSyncPData response dictionary: %@", JSONConversionError); + return; + } + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + SDLEncodedSyncPData *request = [[SDLEncodedSyncPData alloc] init]; +#pragma clang diagnostic pop + request.data = responseDictionary[@"data"]; + + [self.manager sendConnectionManagerRequest:request withResponseHandler:nil]; +} + + +#pragma mark - Notifications + +- (void)sdl_encodedSyncPDataReceived:(SDLRPCNotificationNotification *)notification { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + SDLOnEncodedSyncPData *message = notification.notification; +#pragma clang diagnostic pop + + // If URL != nil, perform HTTP Post and don't pass the notification to proxy listeners + SDLLogV(@"OnEncodedSyncPData: %@", message); + + NSString *urlString = (NSString *)message.parameters[SDLRPCParameterNameURLUppercase]; + NSDictionary *encodedSyncPData = (NSDictionary *)message.parameters[SDLRPCParameterNameData]; + NSNumber *encodedSyncPTimeout = (NSNumber *)message.parameters[SDLRPCParameterNameTimeoutCapitalized]; + + if (urlString && encodedSyncPData && encodedSyncPTimeout) { + [self sdl_sendEncodedSyncPData:encodedSyncPData toURL:urlString withTimeout:encodedSyncPTimeout]; + } +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.h new file mode 100644 index 0000000..4086536 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.h @@ -0,0 +1,29 @@ +// +// SDLLifecycleSystemRequestHandler.h +// SmartDeviceLink +// +// Created by Joel Fischer on 6/8/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol SDLConnectionManagerType; + +/// Handles decoding OnSystemRequest RPCs, then performing network requests and creating a SystemRequest RPC request for head units. +@interface SDLLifecycleSystemRequestHandler : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/// Initialize the object +/// @param manager A connection manager to send RPCs +- (instancetype)initWithConnectionManager:(id)manager; + +/// Stops the manager and clears all URL Session tasks +- (void)stop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.m new file mode 100644 index 0000000..354dca8 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.m @@ -0,0 +1,336 @@ +// +// SDLLifecycleSystemRequestHandler.m +// SmartDeviceLink +// +// Created by Joel Fischer on 6/8/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLifecycleSystemRequestHandler.h" + +#import "SDLCacheFileManager.h" +#import "SDLConnectionManagerType.h" +#import "SDLGlobals.h" +#import "SDLLogMacros.h" +#import "SDLNotificationConstants.h" +#import "SDLOnSystemRequest.h" +#import "SDLPutFile.h" +#import "SDLRPCNotificationNotification.h" +#import "SDLSystemRequest.h" + +static const float DefaultConnectionTimeout = 45.0; + +NS_ASSUME_NONNULL_BEGIN + +typedef void (^URLSessionTaskCompletionHandler)(NSData *data, NSURLResponse *response, NSError *error); +typedef void (^URLSessionDownloadTaskCompletionHandler)(NSURL *location, NSURLResponse *response, NSError *error); + +@interface SDLLifecycleSystemRequestHandler () + +@property (weak, nonatomic) id manager; +@property (strong, nonatomic) SDLCacheFileManager *cacheFileManager; +@property (strong, nonatomic) NSURLSession *urlSession; + +@end + +@implementation SDLLifecycleSystemRequestHandler + +- (instancetype)initWithConnectionManager:(id)manager { + self = [super init]; + if (!self) { return nil; } + + SDLLogV(@"Initializing SystemRequest handler"); + _manager = manager; + + _cacheFileManager = [[SDLCacheFileManager alloc] init]; + + NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; + configuration.timeoutIntervalForRequest = DefaultConnectionTimeout; + configuration.timeoutIntervalForResource = DefaultConnectionTimeout; + configuration.requestCachePolicy = NSURLRequestUseProtocolCachePolicy; + _urlSession = [NSURLSession sessionWithConfiguration:configuration]; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(systemRequestReceived:) name:SDLDidReceiveSystemRequestNotification object:nil]; + + return self; +} + +- (void)stop { + SDLLogV(@"Stopping SystemRequest handler and stopping all URL session tasks"); + [self.urlSession getTasksWithCompletionHandler:^(NSArray * _Nonnull dataTasks, NSArray * _Nonnull uploadTasks, NSArray * _Nonnull downloadTasks) { + for (NSURLSessionTask *task in dataTasks) { + [task cancel]; + } + + for (NSURLSessionTask *task in uploadTasks) { + [task cancel]; + } + + for (NSURLSessionTask *task in downloadTasks) { + [task cancel]; + } + }]; +} + +#pragma mark - Handle OnSystemRequest +- (void)sdl_handleSystemRequestLaunchApp:(SDLOnSystemRequest *)request { + NSURL *urlScheme = [NSURL URLWithString:request.url]; + if (urlScheme == nil) { + SDLLogW(@"System request LaunchApp failed: invalid URL sent from module: %@", request.url); + return; + } + + // If system version is less than 9.0 http://stackoverflow.com/a/5337804/1370927 + if (SDL_SYSTEM_VERSION_LESS_THAN(@"9.0")) { + // Return early if we can't openURL because openURL will crash instead of fail silently in < 9.0 + if (![[UIApplication sharedApplication] canOpenURL:urlScheme]) { + return; + } + } + + [[UIApplication sharedApplication] openURL:urlScheme]; +} + +- (void)sdl_handleSystemRequestProprietary:(SDLOnSystemRequest *)request { + NSDictionary *jsonDict = [self sdl_validateAndParseProprietarySystemRequest:request]; + if (jsonDict == nil || request.url == nil) { + return; + } + + // Send the HTTP Request + __weak typeof(self) weakSelf = self; + [self sdl_uploadForBodyDataDictionary:jsonDict + urlString:request.url + completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + + if (error) { + SDLLogW(@"OnSystemRequest HTTP response error: %@", error); + return; + } + if (data == nil || data.length == 0) { + SDLLogW(@"OnSystemRequest HTTP response error: no data received"); + return; + } + + // Create the SystemRequest RPC to send to module. + SDLLogV(@"OnSystemRequest HTTP response"); + SDLSystemRequest *request = [[SDLSystemRequest alloc] init]; + request.requestType = SDLRequestTypeProprietary; + request.bulkData = data; + + // Send the RPC Request + [strongSelf.manager sendConnectionManagerRequest:request withResponseHandler:nil]; + }]; +} + +// TODO: Move to lock screen manager +- (void)sdl_handleSystemRequestLockScreenIconURL:(SDLOnSystemRequest *)request { + [self.cacheFileManager retrieveImageForRequest:request withCompletionHandler:^(UIImage * _Nullable image, NSError * _Nullable error) { + if (error != nil) { + SDLLogW(@"Failed to retrieve lock screen icon: %@", error.localizedDescription); + return; + } + + NSDictionary *userInfo = nil; + if (image != nil) { + userInfo = @{SDLNotificationUserInfoObject: image}; + } + [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveLockScreenIcon object:nil userInfo:userInfo]; + }]; +} + +- (void)sdl_handleSystemRequestIconURL:(SDLOnSystemRequest *)request { + __weak typeof(self) weakSelf = self; + [self sdl_sendDataTaskWithURL:[NSURL URLWithString:request.url] + completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + if (error != nil) { + SDLLogW(@"OnSystemRequest (icon url) HTTP download task failed: %@", error.localizedDescription); + return; + } else if (data.length == 0) { + SDLLogW(@"OnSystemRequest (icon url) HTTP download task failed to get the cloud app icon image data"); + return; + } + + SDLSystemRequest *iconURLSystemRequest = [[SDLSystemRequest alloc] initWithType:SDLRequestTypeIconURL fileName:request.url]; + iconURLSystemRequest.bulkData = data; + + [strongSelf.manager sendConnectionManagerRequest:iconURLSystemRequest withResponseHandler:nil]; + }]; +} + +- (void)sdl_handleSystemRequestHTTP:(SDLOnSystemRequest *)request { + if (request.bulkData.length == 0) { + // TODO: not sure how we want to handle http requests that don't have bulk data (maybe as GET?) + return; + } + + __weak typeof(self) weakSelf = self; + [self sdl_uploadData:request.bulkData + toURLString:request.url + completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + if (error != nil) { + SDLLogW(@"OnSystemRequest (HTTP) error: %@", error.localizedDescription); + return; + } + + if (data.length == 0) { + SDLLogW(@"OnSystemRequest (HTTP) error: no data returned"); + return; + } + + // Show the HTTP response + SDLLogV(@"OnSystemRequest (HTTP) response: %@", response); + + // Create the PutFile RPC to send to module. + SDLPutFile *putFile = [[SDLPutFile alloc] init]; + putFile.fileType = SDLFileTypeJSON; + putFile.sdlFileName = @"response_data"; + putFile.bulkData = data; + + // Send RPC Request + [strongSelf.manager sendConnectionManagerRequest:putFile withResponseHandler:nil]; + }]; +} + +#pragma mark - HTTP + +/** + * Start an upload for some data to a web address specified + * + * @param data The data to be passed to the server + * @param urlString The URL the data should be POSTed to + * @param completionHandler A completion handler of what to do when the server responds + */ +- (void)sdl_uploadData:(NSData *_Nonnull)data toURLString:(NSString *_Nonnull)urlString completionHandler:(URLSessionTaskCompletionHandler _Nullable)completionHandler { + // NSURLRequest configuration + NSURL *url = [NSURL URLWithString:urlString]; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; + [request setValue:@"application/json" forHTTPHeaderField:@"content-type"]; + request.HTTPMethod = @"POST"; + + SDLLogV(@"OnSystemRequest (HTTP) upload task created for URL: %@", urlString); + + // Create the upload task + [self sdl_sendUploadRequest:request withData:data completionHandler:completionHandler]; +} + +/** + * Start an upload for a body data dictionary, this is used by the "proprietary" system request needed for backward compatibility + * + * @param dictionary The system request dictionary that contains the HTTP data to be sent + * @param urlString A string containing the URL to send the upload to + * @param completionHandler A completion handler returning the response from the server to the upload task + */ +- (void)sdl_uploadForBodyDataDictionary:(NSDictionary *)dictionary urlString:(NSString *)urlString completionHandler:(URLSessionTaskCompletionHandler)completionHandler { + NSParameterAssert(dictionary != nil); + NSParameterAssert(urlString != nil); + NSParameterAssert(completionHandler != NULL); + + // Extract data from the dictionary + NSDictionary *requestData = dictionary[@"HTTPRequest"]; + NSDictionary *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]; + + // NSURLRequest configuration + NSURL *url = [NSURL URLWithString:urlString]; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; + [request setValue:contentType forHTTPHeaderField:@"content-type"]; + request.timeoutInterval = timeout; + request.HTTPMethod = method; + + SDLLogV(@"OnSystemRequest (Proprietary) upload task created for URL: %@", urlString); + + // Create the upload task + [self sdl_sendUploadRequest:request withData:bodyData completionHandler:completionHandler]; +} + +- (void)sdl_sendUploadRequest:(NSURLRequest*)request withData:(NSData*)data completionHandler:(URLSessionTaskCompletionHandler)completionHandler { + NSMutableURLRequest* mutableRequest = [request mutableCopy]; + + if ([mutableRequest.URL.scheme isEqualToString:@"http"]) { + mutableRequest.URL = [NSURL URLWithString:[mutableRequest.URL.absoluteString stringByReplacingCharactersInRange:NSMakeRange(0, 4) withString:@"https"]]; + } + + [[self.urlSession uploadTaskWithRequest:request fromData:data completionHandler:completionHandler] resume]; +} + +- (void)sdl_sendDataTaskWithURL:(NSURL*)url completionHandler:(URLSessionTaskCompletionHandler)completionHandler { + if ([url.scheme isEqualToString:@"http"]) { + url = [NSURL URLWithString:[url.absoluteString stringByReplacingCharactersInRange:NSMakeRange(0, 4) withString:@"https"]]; + } + + [[self.urlSession dataTaskWithURL:url completionHandler:completionHandler] resume]; +} + +#pragma mark - Validation + +/** + * Determine if the System Request is valid and return it's JSON dictionary, if available. + * + * @param request The system request to parse + * + * @return A parsed JSON dictionary, or nil if it couldn't be parsed + */ +- (nullable NSDictionary *)sdl_validateAndParseProprietarySystemRequest:(SDLOnSystemRequest *)request { + NSString *urlString = request.url; + SDLFileType fileType = request.fileType; + + // Validate input + if (urlString == nil || [NSURL URLWithString:urlString] == nil) { + SDLLogW(@"OnSystemRequest validation failure: URL is nil"); + return nil; + } + if (![fileType isEqualToEnum:SDLFileTypeJSON]) { + SDLLogW(@"OnSystemRequest validation failure: file type is not JSON"); + return nil; + } + + // Get data dictionary from the bulkData + NSError *error = nil; + NSDictionary *JSONDictionary = [NSJSONSerialization JSONObjectWithData:request.bulkData options:kNilOptions error:&error]; + if (error != nil) { + SDLLogW(@"OnSystemRequest validation failure: data is not valid JSON"); + return nil; + } + + return JSONDictionary; +} + +#pragma mark - Notifications + +- (void)systemRequestReceived:(SDLRPCNotificationNotification *)notification { + SDLOnSystemRequest *onSystemRequest = notification.notification; + SDLRequestType requestType = onSystemRequest.requestType; + + // Handle the various OnSystemRequest types + if ([requestType isEqualToEnum:SDLRequestTypeProprietary]) { + [self sdl_handleSystemRequestProprietary:onSystemRequest]; + } else if ([requestType isEqualToEnum:SDLRequestTypeLockScreenIconURL]) { + [self sdl_handleSystemRequestLockScreenIconURL:onSystemRequest]; + } else if ([requestType isEqualToEnum:SDLRequestTypeIconURL]) { + [self sdl_handleSystemRequestIconURL:onSystemRequest]; + } else if ([requestType isEqualToEnum:SDLRequestTypeHTTP]) { + [self sdl_handleSystemRequestHTTP:onSystemRequest]; + } else if ([requestType isEqualToEnum:SDLRequestTypeLaunchApp]) { + if ([NSThread isMainThread]) { + [self sdl_handleSystemRequestLaunchApp:onSystemRequest]; + } else { + dispatch_sync(dispatch_get_main_queue(), ^{ + [self sdl_handleSystemRequestLaunchApp:onSystemRequest]; + }); + } + } +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.h index 0bdac1a..19f3024 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.h @@ -7,6 +7,9 @@ NS_ASSUME_NONNULL_BEGIN +/// Current Light capabilities. +/// +/// @since RPC 5.0 @interface SDLLightCapabilities : SDLRPCStruct /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.m index 3db0454..e2ea777 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.m @@ -2,7 +2,7 @@ // #import "SDLLightCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -33,35 +33,36 @@ - (instancetype)initWithName:(SDLLightName)name densityAvailable:(BOOL)densityAv } - (void)setName:(SDLLightName)name { - [store sdl_setObject:name forName:SDLNameName]; + [self.store sdl_setObject:name forName:SDLRPCParameterNameName]; } - (SDLLightName)name { - return [store sdl_objectForName:SDLNameName]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameName error:&error]; } - (void)setDensityAvailable:(nullable NSNumber *)densityAvailable { - [store sdl_setObject:densityAvailable forName:SDLNameDensityAvailable]; + [self.store sdl_setObject:densityAvailable forName:SDLRPCParameterNameDensityAvailable]; } - (nullable NSNumber *)densityAvailable { - return [store sdl_objectForName:SDLNameDensityAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameDensityAvailable ofClass:NSNumber.class error:nil]; } - (void)setColorAvailable:(nullable NSNumber *)colorAvailable { - [store sdl_setObject:colorAvailable forName:SDLNameRGBColorSpaceAvailable]; + [self.store sdl_setObject:colorAvailable forName:SDLRPCParameterNameRGBColorSpaceAvailable]; } - (nullable NSNumber *)colorAvailable { - return [store sdl_objectForName:SDLNameRGBColorSpaceAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameRGBColorSpaceAvailable ofClass:NSNumber.class error:nil]; } - (void)setStatusAvailable:(nullable NSNumber *)statusAvailable { - [store sdl_setObject:statusAvailable forName:SDLNameStatusAvailable]; + [self.store sdl_setObject:statusAvailable forName:SDLRPCParameterNameStatusAvailable]; } - (nullable NSNumber *)statusAvailable { - return [store sdl_objectForName:SDLNameStatusAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameStatusAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.h index 26e675c..13f7099 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.h @@ -2,11 +2,15 @@ // #import "SDLRPCMessage.h" +#import "SDLModuleInfo.h" @class SDLLightCapabilities; NS_ASSUME_NONNULL_BEGIN +/// Current light control capabilities. +/// +/// @since RPC 5.0 @interface SDLLightControlCapabilities : SDLRPCStruct /** @@ -17,7 +21,18 @@ NS_ASSUME_NONNULL_BEGIN @param supportedLights array of available LightCapabilities @return An instance of the SDLLightControlCapabilities class */ -- (instancetype)initWithModuleName:(NSString *)moduleName supportedLights:(NSArray *)supportedLights; +- (instancetype)initWithModuleName:(NSString *)moduleName supportedLights:(NSArray *)supportedLights __deprecated_msg("Use initWithModuleName:moduleInfo:supportedLights:"); + +/** + Constructs a newly allocated SDLLightControlCapabilities object with given parameters + + + @param moduleName friendly name of the light control module + @param moduleInfo information about a RC module, including its id + @param supportedLights array of available LightCapabilities + @return An instance of the SDLLightControlCapabilities class + */ +- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo supportedLights:(NSArray *)supportedLights; /** * @abstract The short friendly name of the light control module. @@ -34,6 +49,12 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic) NSArray *supportedLights; +/** + * Information about a RC module, including its id. + * + * Optional + */ +@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.m index 90494d2..4a899c2 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.m @@ -2,7 +2,7 @@ // #import "SDLLightControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" #import "SDLLightCapabilities.h" @@ -22,23 +22,44 @@ - (instancetype)initWithModuleName:(NSString *)moduleName supportedLights:(NSArr return self; } +- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo supportedLights:(NSArray *)supportedLights { + self = [self init]; + if(!self) { + return nil; + } + self.moduleName = moduleName; + self.moduleInfo = moduleInfo; + self.supportedLights = supportedLights; + + return self; +} + - (void)setModuleName:(NSString *)moduleName { - [store sdl_setObject:moduleName forName:SDLNameModuleName]; + [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } - (NSString *)moduleName { - return [store sdl_objectForName:SDLNameModuleName]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; } - (void)setSupportedLights:(NSArray *)supportedLights { - [store sdl_setObject:supportedLights forName:SDLNameSupportedLights]; + [self.store sdl_setObject:supportedLights forName:SDLRPCParameterNameSupportedLights]; } - (NSArray *)supportedLights { - return [store sdl_objectsForName:SDLNameSupportedLights ofClass:SDLLightCapabilities.class]; + NSError *error = nil; + return [self.store sdl_objectsForName:SDLRPCParameterNameSupportedLights ofClass:SDLLightCapabilities.class error:&error]; } +- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { + [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; +} + +- (nullable SDLModuleInfo *)moduleInfo { + return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; +} @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.h index 49d2fe6..a76d4c7 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.h @@ -7,6 +7,9 @@ NS_ASSUME_NONNULL_BEGIN +/// Data about the current light controls +/// +/// @since SDL 5.0 @interface SDLLightControlData : SDLRPCStruct /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.m index ca8bdba..f9699d8 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.m @@ -2,7 +2,7 @@ // #import "SDLLightControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" #import "SDLLightState.h" @@ -21,11 +21,12 @@ -(instancetype)initWithLightStates:(NSArray *)lightState { } - (void)setLightState:(NSArray *)lightState { - [store sdl_setObject:lightState forName:SDLNameLightState]; + [self.store sdl_setObject:lightState forName:SDLRPCParameterNameLightState]; } - (NSArray *)lightState { - return [store sdl_objectsForName:SDLNameLightState ofClass:SDLLightState.class]; + NSError *error = nil; + return [self.store sdl_objectsForName:SDLRPCParameterNameLightState ofClass:SDLLightState.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.h index c44ebf4..296fbce 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.h @@ -10,6 +10,9 @@ NS_ASSUME_NONNULL_BEGIN +/// Current light control state +/// +/// @since RPC 5.0 @interface SDLLightState : SDLRPCStruct /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.m index 24e1909..cfd13c2 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.m @@ -2,7 +2,7 @@ // #import "SDLLightState.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" #import "SDLRGBColor.h" @@ -48,35 +48,37 @@ - (instancetype)initWithId:(SDLLightName)id lightStatus:(SDLLightStatus)lightSta } - (void)setId:(SDLLightName)id { - [store sdl_setObject:id forName:SDLNameId]; + [self.store sdl_setObject:id forName:SDLRPCParameterNameId]; } - (SDLLightName)id { - return [store sdl_objectForName:SDLNameId]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameId error:&error]; } - (void)setStatus:(SDLLightStatus)status { - [store sdl_setObject:status forName:SDLNameStatus]; + [self.store sdl_setObject:status forName:SDLRPCParameterNameStatus]; } - (SDLLightStatus)status { - return [store sdl_objectForName:SDLNameStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameStatus error:&error]; } - (void)setDensity:(nullable NSNumber *)density { - [store sdl_setObject:density forName:SDLNameDensity]; + [self.store sdl_setObject:density forName:SDLRPCParameterNameDensity]; } - (nullable NSNumber *)density { - return [store sdl_objectForName:SDLNameDensity]; + return [self.store sdl_objectForName:SDLRPCParameterNameDensity ofClass:NSNumber.class error:nil]; } - (void)setColor:(nullable SDLRGBColor *)color { - [store sdl_setObject:color forName:SDLNameColor]; + [self.store sdl_setObject:color forName:SDLRPCParameterNameColor]; } - (nullable SDLRGBColor *)color { - return [store sdl_objectForName:SDLNameColor ofClass:[SDLRGBColor class]]; + return [self.store sdl_objectForName:SDLRPCParameterNameColor ofClass:SDLRGBColor.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFiles.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFiles.m index 9efc8f6..2dd5363 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFiles.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFiles.m @@ -5,17 +5,21 @@ #import "SDLListFiles.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLListFiles +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameListFiles]) { + if (self = [super initWithName:SDLRPCFunctionNameListFiles]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.h index 9107ef7..fc84538 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.h @@ -28,6 +28,16 @@ NS_ASSUME_NONNULL_BEGIN */ - (instancetype)initWithConnectionManager:(id)connectionManager completionHandler:(nullable SDLFileManagerListFilesCompletionHandler)completionHandler; +/** + The connection manager which will handle transporting the request to the remote system. + */ +@property (weak, nonatomic, readonly) id connectionManager; + +/** + A completion handler for when the response returns. + */ +@property (copy, nonatomic, nullable, readonly) SDLFileManagerListFilesCompletionHandler completionHandler; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.m index ca45ac9..693d52e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.m @@ -17,6 +17,7 @@ @interface SDLListFilesOperation () +@property (strong, nonatomic) NSUUID *operationId; @property (weak, nonatomic) id connectionManager; @property (copy, nonatomic, nullable) SDLFileManagerListFilesCompletionHandler completionHandler; @@ -31,6 +32,7 @@ - (instancetype)initWithConnectionManager:(id)connecti return nil; } + _operationId = [NSUUID UUID]; _connectionManager = connectionManager; _completionHandler = completionHandler; @@ -39,6 +41,7 @@ - (instancetype)initWithConnectionManager:(id)connecti - (void)start { [super start]; + if (self.isCancelled) { return; } [self sdl_listFiles]; } @@ -56,7 +59,14 @@ - (void)sdl_listFiles { NSUInteger bytesAvailable = listFilesResponse.spaceAvailable != nil ? listFilesResponse.spaceAvailable.unsignedIntegerValue : 2000000000; if (weakSelf.completionHandler != nil) { - weakSelf.completionHandler(success, bytesAvailable, fileNames, error); + if(error != nil) { + NSMutableDictionary *results = [error.userInfo mutableCopy]; + results[@"resultCode"] = response.resultCode; + NSError *resultError = [NSError errorWithDomain:error.domain code:error.code userInfo:results]; + weakSelf.completionHandler(success, bytesAvailable, fileNames, resultError); + } else { + weakSelf.completionHandler(success, bytesAvailable, fileNames, error); + } } [weakSelf finishOperation]; @@ -67,7 +77,7 @@ - (void)sdl_listFiles { #pragma mark Property Overrides - (nullable NSString *)name { - return @"List Files"; + return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; } - (NSOperationQueuePriority)queuePriority { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesResponse.m index 376e817..a70c842 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesResponse.m @@ -5,32 +5,36 @@ #import "SDLListFilesResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLListFilesResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameListFiles]) { + if (self = [super initWithName:SDLRPCFunctionNameListFiles]) { } return self; } +#pragma clang diagnostic pop - (void)setFilenames:(nullable NSArray *)filenames { - [parameters sdl_setObject:filenames forName:SDLNameFilenames]; + [self.parameters sdl_setObject:filenames forName:SDLRPCParameterNameFilenames]; } - (nullable NSArray *)filenames { - return [parameters sdl_objectForName:SDLNameFilenames]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameFilenames ofClass:NSString.class error:nil]; } - (void)setSpaceAvailable:(nullable NSNumber *)spaceAvailable { - [parameters sdl_setObject:spaceAvailable forName:SDLNameSpaceAvailable]; + [self.parameters sdl_setObject:spaceAvailable forName:SDLRPCParameterNameSpaceAvailable]; } - (nullable NSNumber *)spaceAvailable { - return [parameters sdl_objectForName:SDLNameSpaceAvailable]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSpaceAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.h index 1bdf906..abc0bee 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.h @@ -6,21 +6,30 @@ NS_ASSUME_NONNULL_BEGIN /** - Describes a coordinate on earth + * Describes a coordinate on earth */ @interface SDLLocationCoordinate : SDLRPCStruct /** - * Latitude of the location + * Convenience init for location coordinates * - * Required, Double -90 - 90 + * @param latitudeDegrees Latitude of the location + * @param longitudeDegrees Latitude of the location + * @return A SDLLocationCoordinate object + */ +- (instancetype)initWithLatitudeDegrees:(float)latitudeDegrees longitudeDegrees:(float)longitudeDegrees; + +/** + * Latitude of the location + * + * Required, Double -90 - 90 */ @property (copy, nonatomic) NSNumber *latitudeDegrees; /** - * Longitude of the location + * Latitude of the location * - * Required, Double -180 - 180 + * Required, Double -180 - 180 */ @property (copy, nonatomic) NSNumber *longitudeDegrees; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.m index 79b3d4d..5130f75 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.m @@ -4,26 +4,40 @@ #import "SDLLocationCoordinate.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLLocationCoordinate +- (instancetype)initWithLatitudeDegrees:(float)latitudeDegrees longitudeDegrees:(float)longitudeDegrees { + self = [self init]; + if (!self) { + return nil; + } + + self.latitudeDegrees = @(latitudeDegrees); + self.longitudeDegrees = @(longitudeDegrees); + + return self; +} + - (void)setLongitudeDegrees:(NSNumber *)longitudeDegrees { - [store sdl_setObject:longitudeDegrees forName:SDLNameLongitudeDegrees]; + [self.store sdl_setObject:longitudeDegrees forName:SDLRPCParameterNameLongitudeDegrees]; } - (NSNumber *)longitudeDegrees { - return [store sdl_objectForName:SDLNameLongitudeDegrees]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLongitudeDegrees ofClass:NSNumber.class error:&error]; } - (void)setLatitudeDegrees:(NSNumber *)latitudeDegrees { - [store sdl_setObject:latitudeDegrees forName:SDLNameLatitudeDegrees]; + [self.store sdl_setObject:latitudeDegrees forName:SDLRPCParameterNameLatitudeDegrees]; } - (NSNumber *)latitudeDegrees { - return [store sdl_objectForName:SDLNameLatitudeDegrees]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLatitudeDegrees ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.h index f60e8db..4b41d3f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.h @@ -10,10 +10,32 @@ NS_ASSUME_NONNULL_BEGIN /** - Describes a location, including its coordinate, name, etc. Used in WayPoints. + * Describes a location, including its coordinate, name, etc. Used in WayPoints. */ @interface SDLLocationDetails : SDLRPCStruct +/** + * Convenience init for location coordinate. + * + * @param coordinate Latitude/Longitude of the location + * @return A SDLLocationDetails object + */ +- (instancetype)initWithCoordinate:(SDLLocationCoordinate *)coordinate NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for all parameters. + * + * @param coordinate Latitude/Longitude of the location + * @param locationName Name of location + * @param addressLines Location address for display purposes only + * @param locationDescription Description intended location / establishment + * @param phoneNumber Phone number of location / establishment + * @param locationImage Image / icon of intended location + * @param searchAddress Address to be used by navigation engines for search + * @return A SDLLocationDetails object + */ +- (instancetype)initWithCoordinate:(SDLLocationCoordinate *)coordinate locationName:(nullable NSString *)locationName addressLines:(nullable NSArray *)addressLines locationDescription:(nullable NSString *)locationDescription phoneNumber:(nullable NSString*)phoneNumber locationImage:(nullable SDLImage *)locationImage searchAddress:(nullable SDLOasisAddress *)searchAddress; + /** * Latitude/Longitude of the location * diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.m index ccf73cd..6d34852 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.m @@ -6,67 +6,94 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLLocationCoordinate.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLOasisAddress.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLLocationDetails +- (instancetype)initWithCoordinate:(SDLLocationCoordinate *)coordinate { + self = [super init]; + if (!self) { + return nil; + } + + self.coordinate = coordinate; + + return self; +} + +- (instancetype)initWithCoordinate:(SDLLocationCoordinate *)coordinate locationName:(nullable NSString *)locationName addressLines:(nullable NSArray *)addressLines locationDescription:(nullable NSString *)locationDescription phoneNumber:(nullable NSString*)phoneNumber locationImage:(nullable SDLImage *)locationImage searchAddress:(nullable SDLOasisAddress *)searchAddress { + self = [self initWithCoordinate:coordinate]; + if (!self) { + return nil; + } + + self.locationName = locationName; + self.addressLines = addressLines; + self.locationDescription = locationDescription; + self.phoneNumber = phoneNumber; + self.locationImage = locationImage; + self.searchAddress = searchAddress; + + return self; +} + - (void)setCoordinate:(nullable SDLLocationCoordinate *)coordinate { - [store sdl_setObject:coordinate forName:SDLNameLocationCoordinate]; + [self.store sdl_setObject:coordinate forName:SDLRPCParameterNameLocationCoordinate]; } - (nullable SDLLocationCoordinate *)coordinate { - return [store sdl_objectForName:SDLNameLocationCoordinate ofClass:SDLLocationCoordinate.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameLocationCoordinate ofClass:SDLLocationCoordinate.class error:nil]; } - (void)setLocationName:(nullable NSString *)locationName { - [store sdl_setObject:locationName forName:SDLNameLocationName]; + [self.store sdl_setObject:locationName forName:SDLRPCParameterNameLocationName]; } - (nullable NSString *)locationName { - return [store sdl_objectForName:SDLNameLocationName]; + return [self.store sdl_objectForName:SDLRPCParameterNameLocationName ofClass:NSString.class error:nil]; } - (void)setAddressLines:(nullable NSArray *)addressLines { - [store sdl_setObject:addressLines forName:SDLNameAddressLines]; + [self.store sdl_setObject:addressLines forName:SDLRPCParameterNameAddressLines]; } - (nullable NSArray *)addressLines { - return [store sdl_objectForName:SDLNameAddressLines]; + return [self.store sdl_objectsForName:SDLRPCParameterNameAddressLines ofClass:NSString.class error:nil]; } - (void)setLocationDescription:(nullable NSString *)locationDescription { - [store sdl_setObject:locationDescription forName:SDLNameLocationDescription]; + [self.store sdl_setObject:locationDescription forName:SDLRPCParameterNameLocationDescription]; } - (nullable NSString *)locationDescription { - return [store sdl_objectForName:SDLNameLocationDescription]; + return [self.store sdl_objectForName:SDLRPCParameterNameLocationDescription ofClass:NSString.class error:nil]; } - (void)setPhoneNumber:(nullable NSString *)phoneNumber { - [store sdl_setObject:phoneNumber forName:SDLNamePhoneNumber]; + [self.store sdl_setObject:phoneNumber forName:SDLRPCParameterNamePhoneNumber]; } - (nullable NSString *)phoneNumber { - return [store sdl_objectForName:SDLNamePhoneNumber]; + return [self.store sdl_objectForName:SDLRPCParameterNamePhoneNumber ofClass:NSString.class error:nil]; } - (void)setLocationImage:(nullable SDLImage *)locationImage { - [store sdl_setObject:locationImage forName:SDLNameLocationImage]; + [self.store sdl_setObject:locationImage forName:SDLRPCParameterNameLocationImage]; } - (nullable SDLImage *)locationImage { - return [store sdl_objectForName:SDLNameLocationImage ofClass:SDLImage.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameLocationImage ofClass:SDLImage.class error:nil]; } - (void)setSearchAddress:(nullable SDLOasisAddress *)searchAddress { - [store sdl_setObject:searchAddress forName:SDLNameSearchAddress]; + [self.store sdl_setObject:searchAddress forName:SDLRPCParameterNameSearchAddress]; } - (nullable SDLOasisAddress *)searchAddress { - return [store sdl_objectForName:SDLNameSearchAddress ofClass:SDLOasisAddress.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameSearchAddress ofClass:SDLOasisAddress.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.h index 8057556..e3e9669 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.h @@ -11,23 +11,62 @@ NS_ASSUME_NONNULL_BEGIN +/** + Describes when the lock screen should be shown. + */ +typedef NS_ENUM(NSUInteger, SDLLockScreenConfigurationDisplayMode) { + /// The lock screen should never be shown. This should almost always mean that you will build your own lock screen. + SDLLockScreenConfigurationDisplayModeNever, + + /// The lock screen should only be shown when it is required by the head unit. + SDLLockScreenConfigurationDisplayModeRequiredOnly, + + /// The lock screen should be shown when required by the head unit or when the head unit says that its optional, but *not* in other cases, such as before the user has interacted with your app on the head unit. + SDLLockScreenConfigurationDisplayModeOptionalOrRequired, + + /// The lock screen should always be shown after connection. + SDLLockScreenConfigurationDisplayModeAlways +}; + +/** + A configuration describing how the lock screen should be used by the internal SDL system for your application. This configuration is provided before SDL starts and will govern the entire SDL lifecycle of your application. + */ @interface SDLLockScreenConfiguration : NSObject /** - * Whether or not the lock screen should be shown in the "lock screen optional" state. Defaults to false. + Describes when the lock screen will be displayed. Defaults to `SDLLockScreenConfigurationDisplayModeRequiredOnly`. + */ +@property (assign, nonatomic) SDLLockScreenConfigurationDisplayMode displayMode; + +/** + * Whether or not the lock screen should be shown in the "lock screen optional" state. Defaults to NO. * - * @discussion In order for the "lock screen optional" state to occur, the following must be true: + * In order for the "lock screen optional" state to occur, the following must be true: * 1. The app should have received at least 1 driver distraction notification (i.e. a `OnDriverDistraction` notification) from SDL Core. Older versions of Core did not send a notification immediately on connection. * 2. The driver is not distracted (i.e. the last `OnDriverDistraction` notification received was for a driver distraction state off). * 3. The `hmiLevel` can not be `NONE`. * 4. If the `hmiLevel` is currently `BACKGROUND` then the previous `hmiLevel` should have been `FULL` or `LIMITED` (i.e. the user should have interacted with app before it was backgrounded). + + * Since this has been deprecated, setting this to true will set `displayMode` to `OptionalOrRequired` if `enableAutomaticLockScreen` is true, or will have no effect if it is false. */ -@property (assign, nonatomic) BOOL showInOptionalState; +@property (assign, nonatomic) BOOL showInOptionalState __deprecated_msg("Use displayMode SDLLockScreenConfigurationDisplayModeOptionalOrRequired to replicate this being YES"); /** - * If YES, the lock screen should be managed by SDL and automatically engage when necessary. If NO, then the lock screen will never be engaged. + If YES, then the lock screen can be dismissed with a downward swipe on compatible head units. Requires a connection of SDL 6.0+ and the head unit to enable the feature. Defaults to YES. + */ +@property (assign, nonatomic) BOOL enableDismissGesture; + +/** + If YES, then the lockscreen will show the vehicle's logo if the vehicle has made it available. If NO, then the lockscreen will not show the vehicle logo. Defaults to YES. +*/ +@property (assign, nonatomic) BOOL showDeviceLogo; + +/** + If YES, the lock screen should be managed by SDL and automatically engage when necessary. If NO, then the lock screen will never be engaged. Defaults to YES. + + Since this has been deprecated, setting this to false will set `displayMode` to `Never`. Setting it back to true will set it to `RequiredOnly` if `showInOptionalState` is false, or `OptionalOrRequired` if it is true. */ -@property (assign, nonatomic, readonly) BOOL enableAutomaticLockScreen; +@property (assign, nonatomic, readonly) BOOL enableAutomaticLockScreen __deprecated_msg("Use displayMode SDLLockScreenConfigurationDisplayModeNever to replicate this being NO"); /** * The background color of the lock screen. This could be a branding color, or leave at the default for a dark blue-gray. @@ -44,6 +83,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, readonly, nullable) UIViewController *customViewController; +/// Initializer unavailable - (instancetype)init NS_UNAVAILABLE; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.m index 4f82c28..c5cdfa8 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.m @@ -11,36 +11,35 @@ NS_ASSUME_NONNULL_BEGIN -@interface SDLLockScreenConfiguration () - -@end - - @implementation SDLLockScreenConfiguration #pragma mark - Lifecycle -- (instancetype)initWithAutoLockScreen:(BOOL)enableAutomatic enableInOptional:(BOOL)enableOptional backgroundColor:(UIColor *)backgroundColor appIcon:(nullable UIImage *)appIcon viewController:(nullable UIViewController *)customViewController { +- (instancetype)initWithDisplayMode:(SDLLockScreenConfigurationDisplayMode)mode enableDismissGesture:(BOOL)enableDismissGesture showDeviceLogo:(BOOL)showDeviceLogo backgroundColor:(UIColor *)backgroundColor appIcon:(nullable UIImage *)appIcon viewController:(nullable UIViewController *)customViewController { self = [super init]; if (!self) { return nil; } - _enableAutomaticLockScreen = enableAutomatic; - _showInOptionalState = enableOptional; + _displayMode = mode; + _enableAutomaticLockScreen = (mode == SDLLockScreenConfigurationDisplayModeNever) ? NO : YES; + _showInOptionalState = (mode == SDLLockScreenConfigurationDisplayModeOptionalOrRequired) ? YES : NO; + + _enableDismissGesture = enableDismissGesture; _backgroundColor = backgroundColor; _appIcon = appIcon; _customViewController = customViewController; + _showDeviceLogo = showDeviceLogo; return self; } + (instancetype)disabledConfiguration { - return [[self alloc] initWithAutoLockScreen:NO enableInOptional:NO backgroundColor:[self sdl_defaultBackgroundColor] appIcon:nil viewController:nil]; + return [[self alloc] initWithDisplayMode:SDLLockScreenConfigurationDisplayModeNever enableDismissGesture:NO showDeviceLogo:NO backgroundColor:[self sdl_defaultBackgroundColor] appIcon:nil viewController:nil]; } + (instancetype)enabledConfiguration { - return [[self alloc] initWithAutoLockScreen:YES enableInOptional:NO backgroundColor:[self sdl_defaultBackgroundColor] appIcon:nil viewController:nil]; + return [[self alloc] initWithDisplayMode:SDLLockScreenConfigurationDisplayModeRequiredOnly enableDismissGesture:YES showDeviceLogo:YES backgroundColor:[self sdl_defaultBackgroundColor] appIcon:nil viewController:nil]; } + (instancetype)enabledConfigurationWithAppIcon:(UIImage *)lockScreenAppIcon backgroundColor:(nullable UIColor *)lockScreenBackgroundColor { @@ -48,11 +47,11 @@ + (instancetype)enabledConfigurationWithAppIcon:(UIImage *)lockScreenAppIcon bac lockScreenBackgroundColor = [self.class sdl_defaultBackgroundColor]; } - return [[self alloc] initWithAutoLockScreen:YES enableInOptional:NO backgroundColor:lockScreenBackgroundColor appIcon:lockScreenAppIcon viewController:nil]; + return [[self alloc] initWithDisplayMode:SDLLockScreenConfigurationDisplayModeRequiredOnly enableDismissGesture:YES showDeviceLogo:YES backgroundColor:lockScreenBackgroundColor appIcon:lockScreenAppIcon viewController:nil]; } + (instancetype)enabledConfigurationWithViewController:(UIViewController *)viewController { - return [[self alloc] initWithAutoLockScreen:YES enableInOptional:NO backgroundColor:[self.class sdl_defaultBackgroundColor] appIcon:nil viewController:viewController]; + return [[self alloc] initWithDisplayMode:SDLLockScreenConfigurationDisplayModeRequiredOnly enableDismissGesture:YES showDeviceLogo:YES backgroundColor:[self.class sdl_defaultBackgroundColor] appIcon:nil viewController:viewController]; } @@ -63,14 +62,36 @@ + (UIColor *)sdl_defaultBackgroundColor { } +#pragma mark - Setters / Getters + +- (void)setEnableAutomaticLockScreen:(BOOL)enableAutomaticLockScreen { + _enableAutomaticLockScreen = enableAutomaticLockScreen; + + if (!_enableAutomaticLockScreen) { + _displayMode = SDLLockScreenConfigurationDisplayModeNever; + } else if (_showInOptionalState) { + _displayMode = SDLLockScreenConfigurationDisplayModeOptionalOrRequired; + } else { + _displayMode = SDLLockScreenConfigurationDisplayModeRequiredOnly; + } +} + +- (void)setShowInOptionalState:(BOOL)showInOptionalState { + _showInOptionalState = showInOptionalState; + + if (!_enableAutomaticLockScreen) { + _displayMode = SDLLockScreenConfigurationDisplayModeNever; + } else if (_showInOptionalState) { + _displayMode = SDLLockScreenConfigurationDisplayModeOptionalOrRequired; + } else { + _displayMode = SDLLockScreenConfigurationDisplayModeRequiredOnly; + } +} + #pragma mark - NSCopying - (id)copyWithZone:(nullable NSZone *)zone { - SDLLockScreenConfiguration *new = [[SDLLockScreenConfiguration allocWithZone:zone] initWithAutoLockScreen : _enableAutomaticLockScreen - enableInOptional : _showInOptionalState - backgroundColor : _backgroundColor - appIcon : _appIcon - viewController : _customViewController]; + SDLLockScreenConfiguration *new = [[SDLLockScreenConfiguration allocWithZone:zone] initWithDisplayMode:_displayMode enableDismissGesture:_enableDismissGesture showDeviceLogo:_showDeviceLogo backgroundColor:_backgroundColor appIcon:_appIcon viewController:_customViewController]; return new; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.h index f709c53..e4ef486 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.h @@ -10,11 +10,26 @@ @class SDLLockScreenConfiguration; @class SDLLockScreenViewController; +@class SDLNotificationDispatcher; + @protocol SDLViewControllerPresentable; NS_ASSUME_NONNULL_BEGIN +/// Manages presenting and dismissing the lock screen based on several settings: +/// 1. The lock screen configuration set by the developer. If the set to the default configuration, the lock screen manager will show or hide the lockscreen based on the the current HMILevel of the SDL app and the current driver distraction (DD) status. However, the developer can also set the lockscreen to always show or not show at all. +/// 2. Whether the passenger has dismissed the lockscreen (RPC v.6.0+). Once the passenger has dismissed the lockscreen, it will not be shown again during the same session. +/// +/// | HMI Level | DD | Lock Screen Status | +/// |----------------|-----|--------------------| +/// | HMI_NONE | - | OFF | +/// | HMI_BACKGROUND | OFF | OFF | +/// | HMI_BACKGROUND | ON | REQUIRED | +/// | HMI_FULL | OFF | OPTIONAL | +/// | HMI_FULL | ON | REQUIRED | +/// | HMI_LIMITED | OFF | OPTIONAL | +/// | HMI_LIMITED | ON | REQUIRED | @interface SDLLockScreenManager : NSObject /** @@ -22,6 +37,11 @@ NS_ASSUME_NONNULL_BEGIN */ @property (assign, nonatomic, readonly) BOOL lockScreenPresented; +/** + * Whether or not the lock screen is currently dismissable + */ +@property (assign, nonatomic, readonly, getter=isLockScreenDismissable) BOOL lockScreenDismissable; + /** * The lock screen configuration used to set up the manager */ @@ -43,7 +63,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return An instance of `SDLLockScreenManager`. */ -- (instancetype)initWithConfiguration:(SDLLockScreenConfiguration *)config notificationDispatcher:(nullable id)dispatcher presenter:(id)presenter; +- (instancetype)initWithConfiguration:(SDLLockScreenConfiguration *)config notificationDispatcher:(SDLNotificationDispatcher *)dispatcher presenter:(id)presenter; /** * Start the manager. This is used internally. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.m index a8c8c37..34ceee0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.m @@ -11,12 +11,14 @@ #import "NSBundle+SDLBundle.h" #import "SDLLogMacros.h" #import "SDLLockScreenConfiguration.h" +#import "SDLLockScreenStatusManager.h" #import "SDLLockScreenStatus.h" #import "SDLLockScreenViewController.h" #import "SDLNotificationConstants.h" +#import "SDLNotificationDispatcher.h" #import "SDLOnLockScreenStatus.h" +#import "SDLOnDriverDistraction.h" #import "SDLRPCNotificationNotification.h" -#import "SDLScreenshotViewController.h" #import "SDLViewControllerPresentable.h" @@ -27,26 +29,42 @@ @interface SDLLockScreenManager () @property (assign, nonatomic) BOOL canPresent; @property (strong, nonatomic, readwrite) SDLLockScreenConfiguration *config; @property (strong, nonatomic) id presenter; +@property (strong, nonatomic) SDLLockScreenStatusManager *statusManager; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" @property (strong, nonatomic, nullable) SDLOnLockScreenStatus *lastLockNotification; +#pragma clang diagnostic pop + +@property (strong, nonatomic, nullable) SDLOnDriverDistraction *lastDriverDistractionNotification; +@property (assign, nonatomic, readwrite, getter=isLockScreenDismissable) BOOL lockScreenDismissable; +@property (assign, nonatomic) BOOL lockScreenDismissedByUser; @end @implementation SDLLockScreenManager -- (instancetype)initWithConfiguration:(SDLLockScreenConfiguration *)config notificationDispatcher:(nullable id)dispatcher presenter:(id)presenter { +- (instancetype)initWithConfiguration:(SDLLockScreenConfiguration *)config notificationDispatcher:(SDLNotificationDispatcher *)dispatcher presenter:(id)presenter { self = [super init]; if (!self) { return nil; } _canPresent = NO; + _lockScreenDismissable = NO; _config = config; _presenter = presenter; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_lockScreenStatusDidChange:) name:SDLDidChangeLockScreenStatusNotification object:dispatcher]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_lockScreenIconReceived:) name:SDLDidReceiveLockScreenIcon object:dispatcher]; + _lockScreenDismissedByUser = NO; + _statusManager = [[SDLLockScreenStatusManager alloc] initWithNotificationDispatcher:dispatcher]; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_lockScreenStatusDidChange:) name:SDLDidChangeLockScreenStatusNotification object:_statusManager]; +#pragma clang diagnostic pop + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_lockScreenIconReceived:) name:SDLDidReceiveLockScreenIcon object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appDidBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_driverDistractionStateDidChange:) name:SDLDidChangeDriverDistractionStateNotification object:dispatcher]; return self; } @@ -54,8 +72,30 @@ - (instancetype)initWithConfiguration:(SDLLockScreenConfiguration *)config notif - (void)start { self.canPresent = NO; + __weak typeof(self) weakSelf = self; + dispatch_async(dispatch_get_main_queue(), ^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + + if (UIApplication.sharedApplication.applicationState != UIApplicationStateActive) { + SDLLogW(@"Attempted to start lock screen manager, but we are in the background. We will attempt to start again when we are in the foreground."); + return; + } + + // This usually means that we disconnected and connected with the device in the background. We will need to check and dismiss the view controller if it's presented before setting up a new one. + if (strongSelf.presenter.lockViewController != nil) { + [strongSelf.presenter stopWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf2 = weakSelf; + [strongSelf2 sdl_start]; + }]; + } else { + [strongSelf sdl_start]; + } + }); +} + +- (void)sdl_start { // Create and initialize the lock screen controller depending on the configuration - if (!self.config.enableAutomaticLockScreen) { + if (self.config.displayMode == SDLLockScreenConfigurationDisplayModeNever) { self.presenter.lockViewController = nil; return; } else if (self.config.customViewController != nil) { @@ -76,35 +116,38 @@ - (void)start { } self.canPresent = YES; + + [self sdl_checkLockScreen]; } - (void)stop { + // Don't allow the lockscreen to present again until we start self.canPresent = NO; - - // Remove the lock screen if presented, don't allow it to present again until we start - if (self.presenter.lockViewController != nil) { - [self.presenter dismiss]; - } + self.lastLockNotification = nil; + self.lastDriverDistractionNotification = nil; + [self.presenter stopWithCompletionHandler:nil]; } - (nullable UIViewController *)lockScreenViewController { return self.presenter.lockViewController; } - #pragma mark - Notification Selectors - (void)sdl_lockScreenStatusDidChange:(SDLRPCNotificationNotification *)notification { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" if (![notification isNotificationMemberOfClass:[SDLOnLockScreenStatus class]]) { +#pragma clang diagnostic pop return; } self.lastLockNotification = notification.notification; + [self sdl_checkLockScreen]; } - (void)sdl_lockScreenIconReceived:(NSNotification *)notification { - NSAssert([notification.userInfo[SDLNotificationUserInfoObject] isKindOfClass:[UIImage class]], @"A notification was sent with an unanticipated object"); if (![notification.userInfo[SDLNotificationUserInfoObject] isKindOfClass:[UIImage class]]) { return; } @@ -112,15 +155,32 @@ - (void)sdl_lockScreenIconReceived:(NSNotification *)notification { UIImage *icon = notification.userInfo[SDLNotificationUserInfoObject]; // If the VC is our special type, then add the vehicle icon. If they passed in a custom VC, there's no current way to show the vehicle icon. If they're managing it themselves, they can grab the notification themselves. - if ([self.lockScreenViewController isKindOfClass:[SDLLockScreenViewController class]]) { + if ([self.lockScreenViewController isKindOfClass:[SDLLockScreenViewController class]] && self.config.showDeviceLogo) { ((SDLLockScreenViewController *)self.lockScreenViewController).vehicleIcon = icon; } } - (void)sdl_appDidBecomeActive:(NSNotification *)notification { - [self sdl_checkLockScreen]; + __weak typeof(self) weakSelf = self; + dispatch_async(dispatch_get_main_queue(), ^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + // Restart, and potentially dismiss the lock screen if the app was disconnected in the background + if (!strongSelf.canPresent) { + [strongSelf start]; + } + + [strongSelf sdl_checkLockScreen]; + }); } +- (void)sdl_driverDistractionStateDidChange:(SDLRPCNotificationNotification *)notification { + if (![notification isNotificationMemberOfClass:[SDLOnDriverDistraction class]]) { + return; + } + + self.lastDriverDistractionNotification = notification.notification; + [self sdl_updateLockScreenDismissable]; +} #pragma mark - Private Helpers @@ -129,24 +189,84 @@ - (void)sdl_checkLockScreen { return; } - // Present the VC depending on the lock screen status - if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusRequired]) { - if (!self.presenter.presented && self.canPresent) { - [self.presenter present]; + __weak typeof(self) weakSelf = self; + dispatch_async(dispatch_get_main_queue(), ^{ + [weakSelf sdl_updatePresentation]; + }); +} + +- (void)sdl_updatePresentation { + if (self.config.displayMode == SDLLockScreenConfigurationDisplayModeAlways) { + if (self.canPresent) { + [self.presenter updateLockScreenToShow:YES withCompletionHandler:nil]; } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + } else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusRequired]) { +#pragma clang diagnostic pop + if (self.canPresent && !self.lockScreenDismissedByUser) { + [self.presenter updateLockScreenToShow:YES withCompletionHandler:nil]; + } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" } else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusOptional]) { - if (self.config.showInOptionalState && !self.presenter.presented && self.canPresent) { - [self.presenter present]; - } else if (!self.config.showInOptionalState && self.presenter.presented) { - [self.presenter dismiss]; +#pragma clang diagnostic pop + if (self.config.displayMode == SDLLockScreenConfigurationDisplayModeOptionalOrRequired && self.canPresent && !self.lockScreenDismissedByUser) { + [self.presenter updateLockScreenToShow:YES withCompletionHandler:nil]; + } else if (self.config.displayMode != SDLLockScreenConfigurationDisplayModeOptionalOrRequired) { + [self.presenter updateLockScreenToShow:NO withCompletionHandler:nil]; } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" } else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusOff]) { - if (self.presenter.presented) { - [self.presenter dismiss]; - } +#pragma clang diagnostic pop + [self.presenter updateLockScreenToShow:NO withCompletionHandler:nil]; } } +- (void)sdl_updateLockScreenDismissable { + if (self.lastDriverDistractionNotification == nil || + self.lastDriverDistractionNotification.lockScreenDismissalEnabled == nil || + !self.lastDriverDistractionNotification.lockScreenDismissalEnabled.boolValue || + !self.config.enableDismissGesture) { + self.lockScreenDismissable = NO; + } else { + self.lockScreenDismissable = YES; + } + + if (self.lockScreenDismissedByUser && + [self.lastDriverDistractionNotification.state isEqualToEnum:SDLDriverDistractionStateOn] && + !self.lockScreenDismissable) { + self.lockScreenDismissedByUser = NO; + } + + if (!self.lockScreenDismissedByUser) { + [self sdl_updateLockscreenViewControllerWithDismissableState:self.lockScreenDismissable]; + } +} + +- (void)sdl_updateLockscreenViewControllerWithDismissableState:(BOOL)enabled { + if (![self.lockScreenViewController isKindOfClass:[SDLLockScreenViewController class]]) { + return; + } + + __weak typeof(self) weakSelf = self; + dispatch_async(dispatch_get_main_queue(), ^{ + __strong typeof(self) strongSelf = weakSelf; + SDLLockScreenViewController *lockscreenViewController = (SDLLockScreenViewController *)strongSelf.lockScreenViewController; + if (enabled) { + [lockscreenViewController addDismissGestureWithCallback:^{ + [strongSelf.presenter updateLockScreenToShow:NO withCompletionHandler:nil]; + strongSelf.lockScreenDismissedByUser = YES; + }]; + lockscreenViewController.lockedLabelText = strongSelf.lastDriverDistractionNotification.lockScreenDismissalWarning; + } else { + [lockscreenViewController removeDismissGesture]; + lockscreenViewController.lockedLabelText = nil; + } + }); +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.h index 5e56f24..11b2ca9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.h @@ -13,19 +13,12 @@ NS_ASSUME_NONNULL_BEGIN /** - * An instance of `SDLViewControllerPresentable` used in production (not testing) for presenting the SDL lock screen. + * An instance of `SDLViewControllerPresentable` used in production (not testing) for presenting the SDL lockscreen. */ @interface SDLLockScreenPresenter : NSObject -/** - * The view controller to be presented. - */ -@property (strong, nonatomic) UIViewController *lockViewController; - -/** - * Whether or not `viewController` is currently presented. - */ -@property (assign, nonatomic, readonly) BOOL presented; +/// The view controller to be presented as a lockscreen +@property (strong, nonatomic, nullable) UIViewController *lockViewController; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.m index 3162f8c..03bca9e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.m @@ -8,8 +8,8 @@ #import "SDLLockScreenPresenter.h" +#import "SDLLockScreenRootViewController.h" #import "SDLLogMacros.h" -#import "SDLScreenshotViewController.h" #import "SDLStreamingMediaManagerConstants.h" @@ -17,128 +17,229 @@ @interface SDLLockScreenPresenter () -@property (strong, nonatomic) SDLScreenshotViewController *screenshotViewController; -@property (strong, nonatomic) UIWindow *lockWindow; +@property (strong, nonatomic, nullable) UIWindow *lockWindow; +@property (assign, nonatomic) BOOL shouldShowLockScreen; +@property (assign, nonatomic) BOOL isDismissing; @end - @implementation SDLLockScreenPresenter +#pragma mark - Lifecycle + - (instancetype)init { self = [super init]; if (!self) { return nil; } - CGRect screenFrame = [[UIScreen mainScreen] bounds]; - _lockWindow = [[UIWindow alloc] initWithFrame:screenFrame]; - _screenshotViewController = [[SDLScreenshotViewController alloc] init]; - _lockWindow.rootViewController = _screenshotViewController; + _shouldShowLockScreen = NO; return self; } -- (void)present { - dispatch_async(dispatch_get_main_queue(), ^{ - if (self.lockWindow.isKeyWindow) { - SDLLogW(@"Attempted to present lock window when it is already presented"); - return; - } +/// Resets the manager by dismissing and destroying the lockscreen. +- (void)stopWithCompletionHandler:(nullable SDLLockScreenDidFinishHandler)completionHandler { + self.shouldShowLockScreen = NO; - NSArray* windows = [[UIApplication sharedApplication] windows]; - UIWindow *appWindow = nil; - for (UIWindow *window in windows) { - if (window != self.lockWindow) { - appWindow = window; - break; - } + if (self.lockWindow == nil) { + if (completionHandler != nil) { + completionHandler(); } + return; + } + + // Dismiss and destroy the lockscreen window + __weak typeof(self) weakSelf = self; + [self sdl_dismissWithCompletionHandler:^(BOOL success) { + __strong typeof(weakSelf) strongSelf = weakSelf; - if (appWindow == nil) { - SDLLogE(@"Unable to find the app's window"); - return; + if (success) { + strongSelf.lockWindow = nil; + strongSelf.lockViewController = nil; } - // We let ourselves know that the lockscreen will present, because we have to pause streaming video for that 0.3 seconds or else it will be very janky. - [[NSNotificationCenter defaultCenter] postNotificationName:SDLLockScreenManagerWillPresentLockScreenViewController object:nil]; + if (completionHandler != nil) { + completionHandler(); + } + }]; +} - CGRect firstFrame = appWindow.frame; - firstFrame.origin.x = CGRectGetWidth(firstFrame); - appWindow.frame = firstFrame; +/// Shows or hides the lockscreen with an animation. If the lockscreen is shown/dismissed in rapid succession the final state of the lockscreen may not match the expected state as the order in which the animations finish can be random. To guard against this scenario, store the expected state of the lockscreen. When the animation finishes, check the expected state to make sure that the final state of the lockscreen matches the expected state. If not, perform a final animation to the expected state. +/// @param show True if the lockscreen should be shown; false if it should be dismissed +- (void)updateLockScreenToShow:(BOOL)show withCompletionHandler:(nullable SDLLockScreenDidFinishHandler)completionHandler { + // Store the expected state of the lockscreen + self.shouldShowLockScreen = show; + + __weak typeof(self) weakSelf = self; + if (show) { + [self sdl_presentWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + if (strongSelf.shouldShowLockScreen) { + if (completionHandler != nil) { completionHandler(); } + return; + } - // We then move the lockWindow to the original appWindow location. - self.lockWindow.frame = appWindow.bounds; - [self.screenshotViewController loadScreenshotOfWindow:appWindow]; - [self.lockWindow makeKeyAndVisible]; + SDLLogV(@"The lockscreen has been presented but needs to be dismissed"); + [strongSelf sdl_dismissWithCompletionHandler:^(BOOL success) { + if (completionHandler != nil) { completionHandler(); } + }]; + }]; + } else { + [self sdl_dismissWithCompletionHandler:^(BOOL success) { + __strong typeof(weakSelf) strongSelf = weakSelf; + if (!strongSelf.shouldShowLockScreen) { + if (completionHandler != nil) { completionHandler(); } + return; + } - // And present the lock screen. - SDLLogD(@"Present lock screen window"); - [self.lockWindow.rootViewController presentViewController:self.lockViewController animated:YES completion:^{ - // Tell ourselves we are done. - [[NSNotificationCenter defaultCenter] postNotificationName:SDLLockScreenManagerDidPresentLockScreenViewController object:nil]; + SDLLogV(@"The lockscreen has been dismissed but needs to be presented"); + [strongSelf sdl_presentWithCompletionHandler:completionHandler]; }]; - }); + } } -- (void)dismiss { + +#pragma mark - Present Lock Window + +/// Checks if the lockscreen can be presented and if so presents the lockscreen on the main thread +/// @param completionHandler Called when the lockscreen has finished its animation or if the lockscreen can not be presented +- (void)sdl_presentWithCompletionHandler:(nullable SDLLockScreenDidFinishHandler)completionHandler { + if (self.lockViewController == nil) { + SDLLogW(@"Attempted to present a lockscreen, but lockViewController is not set"); + if (completionHandler == nil) { return; } + return completionHandler(); + } + + __weak typeof(self) weakself = self; dispatch_async(dispatch_get_main_queue(), ^{ - NSArray* windows = [[UIApplication sharedApplication] windows]; - UIWindow *appWindow = nil; - for (UIWindow *window in windows) { - if (window != self.lockWindow) { - appWindow = window; - break; - } + __typeof(weakself) strongself = weakself; + if (UIApplication.sharedApplication.applicationState != UIApplicationStateActive) { + // If the the `UIWindow` is created while the app is backgrounded and the app is using `SceneDelegate` class (iOS 13+), then the window will not be created correctly. Wait until the app is foregrounded before creating the window. + SDLLogV(@"Application is backgrounded. The lockscreen will not be shown until the application is brought to the foreground."); + if (completionHandler == nil) { return; } + return completionHandler(); } - if (appWindow == nil) { - SDLLogE(@"Unable to find the app's window"); - return; - } else if (appWindow.isKeyWindow) { - SDLLogW(@"Attempted to dismiss lock screen, but it is already dismissed"); - return; - } else if (self.lockViewController == nil) { - SDLLogW(@"Attempted to dismiss lock screen, but lockViewController is not set"); - return; + if (strongself.lockWindow == nil) { + strongself.lockWindow = [self.class sdl_createUIWindow]; + strongself.lockWindow.backgroundColor = [UIColor clearColor]; + strongself.lockWindow.windowLevel = UIWindowLevelAlert + 1; + strongself.lockWindow.rootViewController = [[SDLLockScreenRootViewController alloc] init]; } - // Let us know we are about to dismiss. - [[NSNotificationCenter defaultCenter] postNotificationName:SDLLockScreenManagerWillDismissLockScreenViewController object:nil]; + SDLLogD(@"Presenting the lockscreen window"); + [strongself.lockWindow makeKeyAndVisible]; + + if (strongself.isPresentedOrPresenting) { + // Call this right before attempting to present the view controller to make sure we are not already animating, otherwise the app may crash. + SDLLogV(@"The lockscreen is already being presented"); + if (completionHandler == nil) { return; } + return completionHandler(); + } - // Dismiss the lockscreen - SDLLogD(@"Dismiss lock screen window"); - [self.lockViewController dismissViewControllerAnimated:YES completion:^{ - CGRect lockFrame = self.lockWindow.frame; - lockFrame.origin.x = CGRectGetWidth(lockFrame); - self.lockWindow.frame = lockFrame; + // Let ourselves know that the lockscreen will present so we can pause video streaming for a few milliseconds - otherwise the animation to show the lockscreen will be very janky. + [[NSNotificationCenter defaultCenter] postNotificationName:SDLLockScreenManagerWillPresentLockScreenViewController object:nil]; - // Quickly move the map back, and make it the key window. - appWindow.frame = self.lockWindow.bounds; - [appWindow makeKeyAndVisible]; + [strongself.lockWindow.rootViewController presentViewController:strongself.lockViewController animated:YES completion:^{ + // Tell everyone we are done so video streaming can resume + [[NSNotificationCenter defaultCenter] postNotificationName:SDLLockScreenManagerDidPresentLockScreenViewController object:nil]; - // Tell ourselves we are done. - [[NSNotificationCenter defaultCenter] postNotificationName:SDLLockScreenManagerDidDismissLockScreenViewController object:nil]; + if (completionHandler == nil) { return; } + return completionHandler(); }]; }); } -- (BOOL)presented { - __block BOOL isPresented = NO; - if ([NSThread isMainThread]) { - isPresented = [self sdl_presented]; - } else { - dispatch_sync(dispatch_get_main_queue(), ^{ - isPresented = [self sdl_presented]; - }); + +#pragma mark - Dismiss Lock Window + +/// Checks if the lockscreen can be dismissed and if so dismisses the lockscreen on the main thread. +/// @param completionHandler Called when the lockscreen has finished its animation or if the lockscreen can not be dismissed +- (void)sdl_dismissWithCompletionHandler:(void (^ _Nullable)(BOOL success))completionHandler { + if (self.lockViewController == nil) { + SDLLogW(@"Attempted to dismiss lockscreen, but lockViewController is not set"); + if (completionHandler == nil) { return; } + return completionHandler(NO); } - return isPresented; + __weak typeof(self) weakSelf = self; + dispatch_async(dispatch_get_main_queue(), ^{ + if (UIApplication.sharedApplication.applicationState != UIApplicationStateActive) { + SDLLogV(@"Application is backgrounded. The lockscreen will not be dismissed until the app is brought to the foreground."); + if (completionHandler == nil) { return; } + return completionHandler(NO); + } + [weakSelf sdl_dismissLockscreenWithCompletionHandler:completionHandler]; + }); } -- (BOOL)sdl_presented { +/// Handles the dismissal of the lockscreen with animation. +/// @param completionHandler Called when the lockscreen is dismissed successfully or if it is already in the process of being dismissed +- (void)sdl_dismissLockscreenWithCompletionHandler:(void (^ _Nullable)(BOOL success))completionHandler { + if (self.isDismissing || !self.isPresentedOrPresenting) { + // Make sure we are not already animating, otherwise the app may crash + SDLLogV(@"The lockscreen is already being dismissed"); + if (completionHandler == nil) { return; } + return completionHandler(NO); + } + + if (self.lockViewController.presentingViewController == nil) { + SDLLogW(@"Attempted to dismiss lockscreen, but lockViewController is not presented"); + if (completionHandler == nil) { return; } + return completionHandler(NO); + } + + // Let ourselves know that the lockscreen will dismiss so we can pause video streaming for a few milliseconds - otherwise the animation to dismiss the lockscreen will be very janky. + [[NSNotificationCenter defaultCenter] postNotificationName:SDLLockScreenManagerWillDismissLockScreenViewController object:nil]; + + SDLLogD(@"Dismissing the lockscreen window"); + _isDismissing = YES; + __weak typeof(self) weakSelf = self; + [self.lockViewController dismissViewControllerAnimated:YES completion:^{ + SDLLogD(@"Lockscreen window dismissed"); + __strong typeof(self) strongSelf = weakSelf; + strongSelf->_isDismissing = NO; + [strongSelf.lockWindow setHidden:YES]; + + // Tell everyone we are done so video streaming can resume + [[NSNotificationCenter defaultCenter] postNotificationName:SDLLockScreenManagerDidDismissLockScreenViewController object:nil]; + + if (completionHandler == nil) { return; } + return completionHandler(YES); + }]; +} + +#pragma mark - Custom Presented / Dismissed Getters + +/// Returns whether or not the lockViewController is currently presented or currently animating the presentation of the lockscreen +- (BOOL)isPresentedOrPresenting { return (self.lockViewController.isViewLoaded && (self.lockViewController.view.window || self.lockViewController.isBeingPresented) && self.lockWindow.isKeyWindow); } +/// Returns whether or not the lockViewController is currently animating the dismissal of the lockscreen +- (BOOL)isDismissing { + return (_isDismissing || self.lockViewController.isBeingDismissed || self.lockViewController.isMovingFromParentViewController); +} + +#pragma mark - Window Helpers + +/// If the app is using `SceneDelegate` class (iOS 13+), then the `UIWindow` must be initalized using the active `UIWindowScene`. Otherwise, the newly created window will not appear on the screen even though it is added to the `UIApplication`'s `windows` stack (This seems to be a bug as no official documentation says that a `UIWindow` must be created this way if using the `SceneDelegate` class) ++ (UIWindow *)sdl_createUIWindow { + if (@available(iOS 13.0, *)) { + for (UIScene *scene in UIApplication.sharedApplication.connectedScenes) { + // The scene is either foreground active / inactive, background, or unattached. If the latter three, we don't want to do anything with them. Also check that the scene is for the application and not an external display or CarPlay. + if (scene.activationState != UISceneActivationStateForegroundActive || + ![scene.session.role isEqualToString:UIWindowSceneSessionRoleApplication] || + ![scene isKindOfClass:[UIWindowScene class]]) { + continue; + } + + return [[UIWindow alloc] initWithWindowScene:(UIWindowScene *)scene]; + } + } + + return [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; +} + @end NS_ASSUME_NONNULL_END - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.h new file mode 100644 index 0000000..1f28c13 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.h @@ -0,0 +1,18 @@ +// +// SDLLockScreenRootViewController.h +// SmartDeviceLink +// +// Created by Nicole on 12/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// This is the first `viewController` set in the lock screen's `UIWindow`. It's purpose is to fix an Apple bug where having a `UIWindow` (it does not even need to be active, simply created) can break the app's view controller based rotation. This bug lets the status/home bars rotate even if the view controller only supports one orientation. +@interface SDLLockScreenRootViewController : UIViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.m new file mode 100644 index 0000000..4c706f8 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.m @@ -0,0 +1,59 @@ +// +// SDLLockScreenRootViewController.m +// SmartDeviceLink +// +// Created by Nicole on 12/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLLockScreenRootViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLockScreenRootViewController () + +@end + +@implementation SDLLockScreenRootViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor clearColor]; +} + +#pragma mark - Orientation + +/// The view controller should inherit the orientation of the view controller over which the lock screen is being presented. +/// HAX: https://github.com/smartdevicelink/sdl_ios/issues/1250 +- (UIInterfaceOrientationMask)supportedInterfaceOrientations { + UIViewController *viewController = [self sdl_topMostControllerForWindow:UIApplication.sharedApplication.windows.firstObject]; + + return (viewController != nil) ? viewController.supportedInterfaceOrientations : super.supportedInterfaceOrientations; +} + +/// The view controller should inherit the auto rotate settings of the view controller over which the lock screen is being presented. +/// HAX: https://github.com/smartdevicelink/sdl_ios/issues/1250 +- (BOOL)shouldAutorotate { + UIViewController *viewController = [self sdl_topMostControllerForWindow:UIApplication.sharedApplication.windows.firstObject]; + + return (viewController != nil) ? viewController.shouldAutorotate : super.shouldAutorotate; +} + +/// Gets the view controller on top of the stack in a window +/// @param window The window +- (nullable UIViewController *)sdl_topMostControllerForWindow:(nullable UIWindow *)window { + if (!window || !window.rootViewController) { + return nil; + } + + UIViewController *topController = window.rootViewController; + while (topController.presentedViewController != nil) { + topController = topController.presentedViewController; + } + + return topController; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatus.h index 9926852..d5d4846 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatus.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatus.h @@ -11,19 +11,19 @@ Used in OnLockScreenStatus */ -typedef SDLEnum SDLLockScreenStatus SDL_SWIFT_ENUM; +typedef SDLEnum SDLLockScreenStatus SDL_SWIFT_ENUM __deprecated; /** * LockScreen is Not Required */ -extern SDLLockScreenStatus const SDLLockScreenStatusOff; +extern SDLLockScreenStatus const SDLLockScreenStatusOff __deprecated; /** * LockScreen is Optional */ -extern SDLLockScreenStatus const SDLLockScreenStatusOptional; +extern SDLLockScreenStatus const SDLLockScreenStatusOptional __deprecated; /** - * LockScreen is Not Required + * LockScreen is Required */ -extern SDLLockScreenStatus const SDLLockScreenStatusRequired; +extern SDLLockScreenStatus const SDLLockScreenStatusRequired __deprecated; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.h index 2a37b9d..4230f6d 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.h @@ -8,6 +8,7 @@ #import "SDLHMILevel.h" #import "SDLLockScreenStatus.h" +@class SDLNotificationDispatcher; @class SDLOnLockScreenStatus; NS_ASSUME_NONNULL_BEGIN @@ -17,8 +18,14 @@ NS_ASSUME_NONNULL_BEGIN @property (assign, nonatomic) BOOL userSelected; @property (assign, nonatomic) BOOL driverDistracted; @property (nullable, strong, nonatomic) SDLHMILevel hmiLevel; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" @property (strong, nonatomic, readonly) SDLLockScreenStatus lockScreenStatus; @property (strong, nonatomic, readonly) SDLOnLockScreenStatus *lockScreenStatusNotification; +#pragma clang diagnostic pop + +- (instancetype)init NS_UNAVAILABLE; +- (instancetype)initWithNotificationDispatcher:(SDLNotificationDispatcher *)dispatcher; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.m index 82724eb..e661abd 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.m @@ -6,7 +6,13 @@ #import "SDLLockScreenStatusManager.h" #import "SDLLockScreenStatus.h" +#import "SDLLogMacros.h" +#import "SDLNotificationConstants.h" +#import "SDLNotificationDispatcher.h" +#import "SDLOnDriverDistraction.h" +#import "SDLOnHMIStatus.h" #import "SDLOnLockScreenStatus.h" +#import "SDLRPCNotificationNotification.h" NS_ASSUME_NONNULL_BEGIN @@ -21,13 +27,17 @@ @implementation SDLLockScreenStatusManager #pragma mark - Lifecycle -- (instancetype)init { +- (instancetype)initWithNotificationDispatcher:(SDLNotificationDispatcher *)dispatcher { self = [super init]; - if (self) { - _userSelected = NO; - _driverDistracted = NO; - _haveDriverDistractionStatus = NO; - } + if (!self) { return nil; } + + _userSelected = NO; + _driverDistracted = NO; + _haveDriverDistractionStatus = NO; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusDidUpdate:) name:SDLDidChangeHMIStatusNotification object:dispatcher]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_driverDistractionDidUpdate:) name:SDLDidChangeDriverDistractionStateNotification object:dispatcher]; + return self; } @@ -55,8 +65,11 @@ - (void)setHmiLevel:(nullable SDLHMILevel)hmiLevel { #pragma mark Custom Getters +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (SDLOnLockScreenStatus *)lockScreenStatusNotification { SDLOnLockScreenStatus *notification = [[SDLOnLockScreenStatus alloc] init]; +#pragma clang diagnostic pop notification.driverDistractionStatus = @(self.driverDistracted); notification.hmiLevel = self.hmiLevel; notification.userSelected = @(self.userSelected); @@ -65,39 +78,92 @@ - (SDLOnLockScreenStatus *)lockScreenStatusNotification { return notification; } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (SDLLockScreenStatus)lockScreenStatus { +#pragma clang diagnostic pop if (self.hmiLevel == nil || [self.hmiLevel isEqualToEnum:SDLHMILevelNone]) { // App is not active on the car +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" return SDLLockScreenStatusOff; +#pragma clang diagnostic pop } else if ([self.hmiLevel isEqualToEnum:SDLHMILevelBackground]) { // App is in the background on the car if (self.userSelected) { // It was user selected if (self.haveDriverDistractionStatus && !self.driverDistracted) { // We have the distraction status, and the driver is not distracted +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" return SDLLockScreenStatusOptional; +#pragma clang diagnostic pop } else { // We don't have the distraction status, and/or the driver is distracted +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" return SDLLockScreenStatusRequired; +#pragma clang diagnostic pop } } else { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" return SDLLockScreenStatusOff; +#pragma clang diagnostic pop } } else if ([self.hmiLevel isEqualToEnum:SDLHMILevelFull] || [self.hmiLevel isEqualToEnum:SDLHMILevelLimited]) { // App is in the foreground on the car in some manner if (self.haveDriverDistractionStatus && !self.driverDistracted) { // We have the distraction status, and the driver is not distracted +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" return SDLLockScreenStatusOptional; +#pragma clang diagnostic pop } else { // We don't have the distraction status, and/or the driver is distracted +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" return SDLLockScreenStatusRequired; +#pragma clang diagnostic pop } } else { // This shouldn't be possible. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" return SDLLockScreenStatusOff; +#pragma clang diagnostic pop } } +#pragma mark - Utilities + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (void)sdl_postLockScreenStatus:(SDLOnLockScreenStatus *)statusNotification { + SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangeLockScreenStatusNotification object:self rpcNotification:statusNotification]; +#pragma clang diagnostic pop + + SDLLogD(@"Lock screen status changed. Sending new notification: %@", notification); + [[NSNotificationCenter defaultCenter] postNotification:notification]; +} + + +#pragma mark - Observers + +- (void)sdl_hmiStatusDidUpdate:(SDLRPCNotificationNotification *)notification { + SDLOnHMIStatus *hmiStatus = notification.notification; + + self.hmiLevel = hmiStatus.hmiLevel; + [self sdl_postLockScreenStatus:self.lockScreenStatusNotification]; +} + +- (void)sdl_driverDistractionDidUpdate:(SDLRPCNotificationNotification *)notification { + SDLOnDriverDistraction *driverDistraction = notification.notification; + + self.driverDistracted = [driverDistraction.state isEqualToEnum:SDLDriverDistractionStateOn]; + [self sdl_postLockScreenStatus:self.lockScreenStatusNotification]; +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.h index d340db6..acce47b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.h @@ -10,8 +10,12 @@ NS_ASSUME_NONNULL_BEGIN +/// The view controller for the lockscreen. @interface SDLLockScreenViewController : UIViewController +/// A block that can be used to close the lockscreen when the user swipes on the lockscreen. Override this in your own custom view controllers if you build a custom lock screen. +typedef void (^SwipeGestureCallbackBlock)(void); + /** * The app's icon. This will be set by the lock screen configuration. */ @@ -27,6 +31,21 @@ NS_ASSUME_NONNULL_BEGIN */ @property (copy, nonatomic, nullable) UIColor *backgroundColor; +/** + * The locked label string. This will be set by the lock screen manager to inform the user about the dismissable state. + */ +@property (copy, nonatomic, nullable) NSString *lockedLabelText; + +/** + * Adds a swipe gesture to the lock screen view controller. + */ +- (void)addDismissGestureWithCallback:(SwipeGestureCallbackBlock)swipeGestureCallback; + +/** + * Remove swipe gesture to the lock screen view controller. + */ +- (void)removeDismissGesture; + @end -NS_ASSUME_NONNULL_END \ No newline at end of file +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.m index 291913a..6fc91e9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.m @@ -23,6 +23,10 @@ @interface SDLLockScreenViewController () @property (weak, nonatomic) IBOutlet UILabel *lockedLabel; @property (weak, nonatomic) IBOutlet UIImageView *arrowUpImageView; @property (weak, nonatomic) IBOutlet UIImageView *arrowDownImageView; +@property (weak, nonatomic) IBOutlet UIImageView *arrowLeftImageView; +@property (weak, nonatomic) IBOutlet UIImageView *arrowRightImageView; +@property (strong, nonatomic) SwipeGestureCallbackBlock dismissGestureCallback; +@property (strong, nonatomic, nullable) UISwipeGestureRecognizer *swipeGesture; @end @@ -36,11 +40,19 @@ - (void)viewWillAppear:(BOOL)animated { } - (BOOL)shouldAutorotate { - return NO; + if (self.presentingViewController != nil) { + return self.presentingViewController.shouldAutorotate; + } else { + return YES; + } } - (UIInterfaceOrientationMask)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskPortrait; + if (self.presentingViewController != nil) { + return self.presentingViewController.supportedInterfaceOrientations; + } else { + return UIInterfaceOrientationMaskAll; + } } - (UIStatusBarStyle)preferredStatusBarStyle { @@ -49,7 +61,6 @@ - (UIStatusBarStyle)preferredStatusBarStyle { return useWhiteIcon ? UIStatusBarStyleLightContent : UIStatusBarStyleDefault; } - #pragma mark - Setters - (void)setAppIcon:(UIImage *_Nullable)appIcon { @@ -70,6 +81,31 @@ - (void)setBackgroundColor:(UIColor *_Nullable)backgroundColor { [self sdl_layoutViews]; } +- (void)setLockedLabelText:(NSString *_Nullable)lockedLabelText { + _lockedLabelText = lockedLabelText; + + [self sdl_layoutViews]; +} + +#pragma mark - Swipe Gesture + +- (void)addDismissGestureWithCallback:(SwipeGestureCallbackBlock)swipeGestureCallback { + if (!self.swipeGesture) { + self.dismissGestureCallback = swipeGestureCallback; + self.swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(sdl_didSwipeToDismiss:)]; + [self.swipeGesture setDirection: UISwipeGestureRecognizerDirectionDown]; + [self.view addGestureRecognizer:self.swipeGesture]; + } +} + +- (void)removeDismissGesture { + [self.view removeGestureRecognizer:self.swipeGesture]; + self.swipeGesture = nil; +} + +- (void)sdl_didSwipeToDismiss:(UISwipeGestureRecognizer *)gesture { + self.dismissGestureCallback(); +} #pragma mark - Layout @@ -82,11 +118,21 @@ - (void)sdl_layoutViews { self.arrowUpImageView.image = [self.class sdl_imageWithName:@"lock_arrow_up_black"]; self.arrowUpImageView.tintColor = iconColor; - self.arrowDownImageView.image = [self.class sdl_imageWithName:@"lock_arrow_down_black"]; self.arrowDownImageView.tintColor = iconColor; + self.arrowLeftImageView.image = [self.class sdl_imageWithName:@"lock_arrow_left_black"]; + self.arrowLeftImageView.tintColor = iconColor; + self.arrowRightImageView.image = [self.class sdl_imageWithName:@"lock_arrow_right_black"]; + self.arrowRightImageView.tintColor = iconColor; self.lockedLabel.textColor = iconColor; + self.lockedLabel.numberOfLines = 0; + + if (self.lockedLabelText != nil) { + self.lockedLabel.text = self.lockedLabelText; + } else { + self.lockedLabel.text = NSLocalizedString(@"Locked for your safety", nil); + } self.view.backgroundColor = self.backgroundColor; @@ -117,9 +163,11 @@ - (void)sdl_setVehicleAndAppIconsLayout { self.backupImageView.image = nil; self.backupImageView.tintColor = nil; - + self.arrowUpImageView.alpha = 1.0; self.arrowDownImageView.alpha = 1.0; + self.arrowLeftImageView.alpha = 1.0; + self.arrowRightImageView.alpha = 1.0; self.sdlIconImageView.alpha = 1.0; } @@ -130,9 +178,11 @@ - (void)sdl_setAppIconOnlyLayout { self.backupImageView.image = self.appIcon; self.backupImageView.tintColor = nil; - + self.arrowUpImageView.alpha = 0.0; self.arrowDownImageView.alpha = 0.0; + self.arrowLeftImageView.alpha = 0.0; + self.arrowRightImageView.alpha = 0.0; self.sdlIconImageView.alpha = 1.0; } @@ -143,9 +193,11 @@ - (void)sdl_setVehicleIconOnlyLayout { self.backupImageView.image = self.vehicleIcon; self.backupImageView.tintColor = nil; - + self.arrowUpImageView.alpha = 0.0; self.arrowDownImageView.alpha = 0.0; + self.arrowLeftImageView.alpha = 0.0; + self.arrowRightImageView.alpha = 0.0; self.sdlIconImageView.alpha = 1.0; } @@ -159,6 +211,8 @@ - (void)sdl_setNoIconsLayout { self.arrowUpImageView.alpha = 0.0; self.arrowDownImageView.alpha = 0.0; + self.arrowLeftImageView.alpha = 0.0; + self.arrowRightImageView.alpha = 0.0; self.sdlIconImageView.alpha = 0.0; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.h index c7f49ad..4b6b030 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.h @@ -17,6 +17,7 @@ NS_ASSUME_NONNULL_BEGIN +/// Information about the current logging configuration @interface SDLLogConfiguration : NSObject /** @@ -49,6 +50,11 @@ NS_ASSUME_NONNULL_BEGIN */ @property (assign, nonatomic, getter=areErrorsAsynchronous) BOOL errorsAsynchronous; +/** + Whether or not assert logs will fire assertions in DEBUG mode. Assertions are always disabled in RELEASE builds. If assertions are disabled, only an error log will fire instead. Defaults to NO. + */ +@property (assign, nonatomic, getter=areAssertionsDisabled) BOOL disableAssertions; + /** Any modules that do not have an explicitly specified level will by default use the global log level. Defaults to Error. Do not specify Default for this parameter. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.m index 3ef5526..36141ce 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.m @@ -28,6 +28,7 @@ - (instancetype)init { _formatType = SDLLogFormatTypeDefault; _asynchronous = YES; _errorsAsynchronous = NO; + _disableAssertions = NO; _globalLogLevel = SDLLogLevelError; return self; @@ -80,6 +81,7 @@ - (id)copyWithZone:(nullable NSZone *)zone { newConfig.formatType = self.formatType; newConfig.asynchronous = self.asynchronous; newConfig.errorsAsynchronous = self.errorsAsynchronous; + newConfig.disableAssertions = self.areAssertionsDisabled; newConfig.globalLogLevel = self.globalLogLevel; return newConfig; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConstants.h index f0d9751..e514edf 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConstants.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConstants.h @@ -20,55 +20,66 @@ NS_ASSUME_NONNULL_BEGIN */ typedef BOOL (^SDLLogFilterBlock)(SDLLogModel *log); +/// An enum describing log bytes direction typedef NS_ENUM(NSUInteger, SDLLogBytesDirection) { + /// Transmit from the app SDLLogBytesDirectionTransmit, + + /// Receive from the module SDLLogBytesDirectionReceive }; /** Flags used for SDLLogLevel to provide correct enum values. This is purely for internal use. - - - SDLLogFlagVerbose: Verbose level logging - - SDLLogFlagDebug: Debug level logging - - SDLLogFlagWarning: Warning level logging - - SDLLogFlagError: Error level logging. */ typedef NS_OPTIONS(NSUInteger, SDLLogFlag) { + /// Error level logging SDLLogFlagError = 1 << 0, + + /// Warning level logging SDLLogFlagWarning = 1 << 1, + + /// Debug level logging SDLLogFlagDebug = 1 << 2, + + /// Verbose level logging SDLLogFlagVerbose = 1 << 3, }; /** An enum describing a level of logging. - - - SDLLogLevelDefault: This is used to describe that a "specific" logging will instead use the global log level, for example, a module may use the global log level instead of its own by specifying this level. - - SDLLogLevelOff: This is used to describe a level that involves absolutely no logs being output. - - SDLLogLevelError: Only error level logs will be output. - - SDLLogLevelWarning: Both error and warning level logs will be output. - - SDLLogLevelDebug: Error, warning, and debug level logs will be output. This level will never be output in RELEASE environments. - - SDLLogLevelVerbose: All level logs will be output. This level will never be output in RELEASE environments. */ typedef NS_ENUM(NSInteger, SDLLogLevel) { + /// This is used to describe that a "specific" logging will instead use the global log level, for example, a module may use the global log level instead of its own by specifying this level. SDLLogLevelDefault = -1, + + /// This is used to describe a level that involves absolutely no logs being output. SDLLogLevelOff = 0, + + /// Only error level logs will be output SDLLogLevelError = SDLLogFlagError, + + /// Both error and warning level logs will be output SDLLogLevelWarning = (SDLLogFlagError | SDLLogFlagWarning), + + /// Error, warning, and debug level logs will be output. This level will never be output in RELEASE environments SDLLogLevelDebug = (SDLLogFlagWarning | SDLLogFlagDebug), + + /// All level logs will be output. This level will never be output in RELEASE environments SDLLogLevelVerbose = (SDLLogFlagDebug | SDLLogFlagVerbose) }; /** The output format of logs; how they will appear when printed out into a string. - - - SDLLogFormatTypeSimple: A bare-bones log format: `09:52:07:324 🔹 (SDL)Protocol – a random test i guess` - - SDLLogFormatTypeDefault: A middle detail default log format: `09:52:07:324 🔹 (SDL)Protocol:SDLV2ProtocolHeader:25 – Some log message` - - SDLLogFormatTypeDetailed: A very detailed log format: `09:52:07:324 🔹 DEBUG com.apple.main-thread:(SDL)Protocol:[SDLV2ProtocolHeader parse:]:74 – Some log message` */ typedef NS_ENUM(NSUInteger, SDLLogFormatType) { + /// A bare-bones log format: `09:52:07:324 🔹 (SDL)Protocol – a random test i guess` SDLLogFormatTypeSimple, + + /// A middle detail default log format: `09:52:07:324 🔹 (SDL)Protocol:SDLV2ProtocolHeader:25 – Some log message` SDLLogFormatTypeDefault, + + /// A very detailed log format: `09:52:07:324 🔹 DEBUG com.apple.main-thread:(SDL)Protocol:[SDLV2ProtocolHeader parse:]:74 – Some log message` SDLLogFormatTypeDetailed, }; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModule.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModule.h index aaad784..16fb3b5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModule.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModule.h @@ -13,6 +13,7 @@ NS_ASSUME_NONNULL_BEGIN +/// A log file module is a collection of source code files that form a cohesive unit and that logs can all use to describe themselves. E.g. a "transport" module, or a "Screen Manager" module. @interface SDLLogFileModule : NSObject /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModuleMap.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModuleMap.m index 1ac7615..3d25be5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModuleMap.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModuleMap.m @@ -14,63 +14,103 @@ @implementation SDLLogFileModuleMap + (NSSet *)sdlModuleMap { return [NSSet setWithArray:@[[self sdl_transportModule], - [self sdl_proxyModule], + [self sdl_tcpTransportModule], + [self sdl_iapTransportModule], + [self sdl_secondaryTransportModule], [self sdl_protocolModule], [self sdl_rpcModule], [self sdl_dispatcherModule], [self sdl_fileManagerModule], + [self sdl_encryptionLifecycleManagerModule], [self sdl_lifecycleManagerModule], + [self sdl_systemCapabilityModule], [self sdl_lockscreenManagerModule], [self sdl_streamingMediaManagerModule], - [self sdl_streamingMediaAudioTranscoderModule], + [self sdl_videoStreamingMediaManagerModule], + [self sdl_videoStreamingMediaTranscoderModule], + [self sdl_audioStreamingMediaManagerModule], + [self sdl_audioStreamingMediaTranscoderModule], [self sdl_screenManagerModule], [self sdl_screenManagerTextAndGraphicModule], [self sdl_screenManagerSoftButtonModule], + [self sdl_screenManagerSubscribeButtonModule], [self sdl_screenManagerMenuModule], - [self sdl_screenManagerChoiceSetModule]]]; + [self sdl_screenManagerChoiceSetModule], + [self sdl_utilitiesModule]]]; } +#pragma mark Transport + + (SDLLogFileModule *)sdl_transportModule { - return [SDLLogFileModule moduleWithName:@"Transport" files:[NSSet setWithArray:@[@"SDLIAPSession", @"SDLIAPTransport", @"SDLSecondaryTransportManager", @"SDLSecondaryTransportPrimaryProtocolHandler", @"SDLStreamDelegate", @"SDLTCPTransport"]]]; + return [SDLLogFileModule moduleWithName:@"Transport" files:[NSSet setWithArray:@[@"SDLStreamDelegate"]]]; +} + ++ (SDLLogFileModule *)sdl_tcpTransportModule { + return [SDLLogFileModule moduleWithName:@"Transport/TCP" files:[NSSet setWithArray:@[@"SDLTCPTransport"]]]; } -+ (SDLLogFileModule *)sdl_proxyModule { - return [SDLLogFileModule moduleWithName:@"Proxy" files:[NSSet setWithArray:@[@"SDLProxy", @"SDLPolicyDataParser"]]]; ++ (SDLLogFileModule *)sdl_iapTransportModule { + return [SDLLogFileModule moduleWithName:@"Transport/IAP" files:[NSSet setWithArray:@[@"SDLIAPSession", @"SDLIAPTransport", @"SDLIAPDataSession", @"SDLIAPControlSession"]]]; } ++ (SDLLogFileModule *)sdl_secondaryTransportModule { + return [SDLLogFileModule moduleWithName:@"Transport/Secondary" files:[NSSet setWithArray:@[@"SDLSecondaryTransportManager"]]]; +} + +#pragma mark Low-Level + + (SDLLogFileModule *)sdl_protocolModule { - return [SDLLogFileModule moduleWithName:@"Protocol" files:[NSSet setWithArray:@[@"SDLProtocol", @"SDLProtocolMessageAssembler", @"SDLProtocolMessageDisassembler", @"SDLProtocolReceivedMessageRouter", @"SDLV1ProtocolMessage", @"SDLV2ProtocolMessage", @"SDLV1ProtocolHeader", @"SDLV2ProtocolHeader"]]]; + return [SDLLogFileModule moduleWithName:@"Protocol" files:[NSSet setWithArray:@[@"SDLProtocol", @"SDLProtocolMessageAssembler", @"SDLProtocolMessageDisassembler", @"SDLProtocolReceivedMessageRouter", @"SDLV1ProtocolMessage", @"SDLV2ProtocolMessage", @"SDLV1ProtocolHeader", @"SDLV2ProtocolHeader", @"SDLGlobals"]]]; } + (SDLLogFileModule *)sdl_rpcModule { - return [SDLLogFileModule moduleWithName:@"RPC" files:[NSSet setWithArray:@[@"SDLRPCPayload"]]]; + return [SDLLogFileModule moduleWithName:@"RPC" files:[NSSet setWithArray:@[@"SDLRPCPayload", @"NSMutableDictionary+Store"]]]; } +#pragma mark Managers + + (SDLLogFileModule *)sdl_dispatcherModule { return [SDLLogFileModule moduleWithName:@"Dispatcher" files:[NSSet setWithArray:@[@"SDLNotificationDispatcher", @"SDLResponseDispatcher"]]]; } - -#pragma mark Managers - + (SDLLogFileModule *)sdl_fileManagerModule { return [SDLLogFileModule moduleWithName:@"File" files:[NSSet setWithArray:@[@"SDLFileManager", @"SDLFile", @"SDLArtwork", @"SDLListFilesOperation", @"SDLUploadFileOperation", @"SDLDeleteFileOperation"]]]; } ++ (SDLLogFileModule *)sdl_encryptionLifecycleManagerModule { + return [SDLLogFileModule moduleWithName:@"Encryption" files:[NSSet setWithArray:@[@"SDLEncryptionLifecycleManager", @"SDLEncryptionConfiguration", @"SDLEncryptionManagerConstants"]]]; +} + + (SDLLogFileModule *)sdl_lifecycleManagerModule { - return [SDLLogFileModule moduleWithName:@"Lifecycle" files:[NSSet setWithArray:@[@"SDLLifecycleManager", @"SDLManager"]]]; + return [SDLLogFileModule moduleWithName:@"Lifecycle" files:[NSSet setWithArray:@[@"SDLLifecycleManager", @"SDLManager", @"SDLAsynchronousOperation", @"SDLBackgroundTaskManager", @"SDLPolicyDataParser", @"SDLLifecycleProtocolHandler", @"SDLLifecycleRPCAdapter", @"SDLLifecycleSyncPDataHandler", @"SDLLifecycleSystemRequestHandler", @"SDLLifecycleMobileHMIStateHandler"]]]; +} + ++ (SDLLogFileModule *)sdl_systemCapabilityModule { + return [SDLLogFileModule moduleWithName:@"System Capability" files:[NSSet setWithArray:@[@"SDLSystemCapabilityManager"]]]; } + (SDLLogFileModule *)sdl_lockscreenManagerModule { - return [SDLLogFileModule moduleWithName:@"Lockscreen" files:[NSSet setWithArray:@[@"SDLLockScreenManager", @"SDLLockScreenViewController", @"SDLLockScreenPresenter"]]]; + return [SDLLogFileModule moduleWithName:@"Lockscreen" files:[NSSet setWithArray:@[@"SDLLockScreenManager", @"SDLLockScreenViewController", @"SDLLockScreenPresenter", @"SDLCacheFileManager", @"SDLLockScreenStatusManager"]]]; } + (SDLLogFileModule *)sdl_streamingMediaManagerModule { - return [SDLLogFileModule moduleWithName:@"Streaming" files:[NSSet setWithArray:@[@"SDLH264VideoEncoder", @"SDLRAWH264Packetizer", @"SDLRTPH264Packetizer", @"SDLStreamingMediaManager", @"SDLStreamingAudioLifecycleManager", @"SDLStreamingVideoLifecycleManager", @"SDLTouchManager", @"SDLCarWindow"]]]; + return [SDLLogFileModule moduleWithName:@"Audio and Video Streaming" files:[NSSet setWithArray:@[@"SDLStreamingMediaManager"]]]; } -+ (SDLLogFileModule *)sdl_streamingMediaAudioTranscoderModule { - return [SDLLogFileModule moduleWithName:@"Streaming/Audio Transcode" files:[NSSet setWithArray:@[@"SDLAudioStreamManager", @"SDLPCMAudioConverter"]]]; ++ (SDLLogFileModule *)sdl_videoStreamingMediaManagerModule { + return [SDLLogFileModule moduleWithName:@"Video Streaming" files:[NSSet setWithArray:@[@"SDLStreamingVideoLifecycleManager", @"SDLTouchManager", @"SDLCarWindow", @"SDLFocusableItemLocator"]]]; +} + ++ (SDLLogFileModule *)sdl_videoStreamingMediaTranscoderModule { + return [SDLLogFileModule moduleWithName:@"Video Streaming/Transcoding" files:[NSSet setWithArray:@[@"SDLH264VideoEncoder", @"SDLRAWH264Packetizer", @"SDLRTPH264Packetizer"]]]; +} + ++ (SDLLogFileModule *)sdl_audioStreamingMediaManagerModule { + return [SDLLogFileModule moduleWithName:@"Audio Streaming" files:[NSSet setWithArray:@[@"SDLStreamingAudioLifecycleManager"]]]; +} + ++ (SDLLogFileModule *)sdl_audioStreamingMediaTranscoderModule { + return [SDLLogFileModule moduleWithName:@"Audio Streaming/Transcoding" files:[NSSet setWithArray:@[@"SDLAudioStreamManager", @"SDLPCMAudioConverter"]]]; } + (SDLLogFileModule *)sdl_screenManagerModule { @@ -82,7 +122,11 @@ + (SDLLogFileModule *)sdl_screenManagerTextAndGraphicModule { } + (SDLLogFileModule *)sdl_screenManagerSoftButtonModule { - return [SDLLogFileModule moduleWithName:@"Screen/SoftButton" files:[NSSet setWithArray:@[@"SDLSoftButtonManager", @"SDLSoftButtonObject", @"SDLSoftButtonState"]]]; + return [SDLLogFileModule moduleWithName:@"Screen/SoftButton" files:[NSSet setWithArray:@[@"SDLSoftButtonManager", @"SDLSoftButtonObject", @"SDLSoftButtonState", @"SDLSoftButtonTransitionOperation", @"SDLSoftButtonReplaceOperation"]]]; +} + ++ (SDLLogFileModule *)sdl_screenManagerSubscribeButtonModule { + return [SDLLogFileModule moduleWithName:@"Screen/SubscribeButton" files:[NSSet setWithArray:@[@"SDLSubscribeButtonManager", @"SDLSubscribeButtonObserver"]]]; } + (SDLLogFileModule *)sdl_screenManagerMenuModule { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFilter.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFilter.h index da067f1..9a65147 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFilter.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFilter.h @@ -16,10 +16,13 @@ NS_ASSUME_NONNULL_BEGIN +/// Represents a filter over which SDL logs should be logged @interface SDLLogFilter : NSObject +/// A block that takes in a log model and returns whether or not the log passes the filter and should therefore be logged. @property (strong, nonatomic, readonly) SDLLogFilterBlock filter; +/// Initializer unavailable - (instancetype)init NS_UNAVAILABLE; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogMacros.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogMacros.h index 662382f..da75a07 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogMacros.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogMacros.h @@ -99,3 +99,11 @@ @param ... The format arguments to log */ #define SDLLogE(msg, ...) [SDLLogManager logWithLevel:SDLLogLevelError timestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE formatMessage:msg, ##__VA_ARGS__] + +/** + Log an assertion log. This will log an error, and assert by default in DEBUG (but this can be disabled in the SDLLogConfiguration). + + @param msg The format string to log + @param ... The format arguments to log + */ +#define SDLLogAssert(msg, ...) [SDLLogManager logAssertWithTimestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE formatMessage:msg, ##__VA_ARGS__] diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.h index c341fab..f09faec 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.h @@ -62,6 +62,11 @@ NS_ASSUME_NONNULL_BEGIN */ @property (assign, nonatomic, readonly, getter=areErrorsAsynchronous) BOOL errorsAsynchronous; +/** + Whether or not assert logs will fire assertions in DEBUG mode. Assertions are always disabled in RELEASE builds. If assertions are disabled, only an error log will fire instead. Defaults to NO. + */ +@property (assign, nonatomic, readonly, getter=areAssertionsDisabled) BOOL disableAssertions; + /** Active date formatter */ @@ -210,6 +215,40 @@ NS_ASSUME_NONNULL_BEGIN line:(NSInteger)line queue:(NSString *)queueLabel; +/** + Log an error to the sharedManager's active log targets and assert. This is used internally to log. + + @param timestamp The time the log was sent + @param file The file the log originated from + @param functionName The function the log originated from + @param line The line the log originated from + @param queueLabel The queue the log was sent from + @param message The message of the log + */ ++ (void)logAssertWithTimestamp:(NSDate *)timestamp + file:(NSString *)file + functionName:(NSString *)functionName + line:(NSInteger)line + queue:(NSString *)queueLabel + formatMessage:(NSString *)message, ... NS_FORMAT_FUNCTION(6, 7); + +/** + Log an error to this manager's active log targets and assert. This is used internally to log. + + @param timestamp The time the log was sent + @param file The file the log originated from + @param functionName The function the log originated from + @param line The line the log originated from + @param queueLabel The queue the log was sent from + @param message The message of the log + */ +- (void)logAssertWithTimestamp:(NSDate *)timestamp + file:(NSString *)file + functionName:(NSString *)functionName + line:(NSInteger)line + queue:(NSString *)queueLabel + formatMessage:(NSString *)message, ... NS_FORMAT_FUNCTION(6, 7); + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.m index ab781dc..ae0fa31 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.m @@ -8,6 +8,7 @@ #import "SDLLogManager.h" +#import "SDLGlobals.h" #import "SDLHexUtility.h" #import "SDLLogConfiguration.h" #import "SDLLogFileModule.h" @@ -27,6 +28,7 @@ @interface SDLLogManager () @property (assign, nonatomic, readwrite, getter=isAsynchronous) BOOL asynchronous; @property (assign, nonatomic, readwrite, getter=areErrorsAsynchronous) BOOL errorsAsynchronous; +@property (assign, nonatomic, readwrite, getter=areAssertionsDisabled) BOOL disableAssertions; @end @@ -57,6 +59,7 @@ - (instancetype)init { _asynchronous = YES; _errorsAsynchronous = NO; + _disableAssertions = NO; _globalLogLevel = SDLLogLevelError; _formatType = SDLLogFormatTypeDefault; @@ -76,6 +79,7 @@ - (void)setConfiguration:(SDLLogConfiguration *)configuration { self.formatType = configuration.formatType; self.asynchronous = configuration.isAsynchronous; self.errorsAsynchronous = configuration.areErrorsAsynchronous; + self.disableAssertions = configuration.areAssertionsDisabled; self.globalLogLevel = configuration.globalLogLevel; // Start the loggers @@ -99,6 +103,15 @@ + (void)logBytes:(NSData *)data direction:(SDLLogBytesDirection)direction timest [[self sharedManager] logBytes:data direction:direction timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel]; } ++ (void)logAssertWithTimestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel formatMessage:(NSString *)message, ... { + va_list args; + va_start(args, message); + NSString *format = [[NSString alloc] initWithFormat:message arguments:args]; + va_end(args); + + [[self sharedManager] logAssertWithTimestamp:timestamp file:file functionName:functionName line:line queue:queueLabel formatMessage:@"%@", format]; +} + + (void)logWithLevel:(SDLLogLevel)level timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel message:(NSString *)message { [[self sharedManager] logWithLevel:level timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:message]; } @@ -120,6 +133,17 @@ - (void)logBytes:(NSData *)data direction:(SDLLogBytesDirection)direction timest [self logWithLevel:SDLLogLevelVerbose timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:message]; } +- (void)logAssertWithTimestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel formatMessage:(NSString *)message, ... { + va_list args; + va_start(args, message); + NSString *format = [[NSString alloc] initWithFormat:message arguments:args]; + va_end(args); + + [self logWithLevel:SDLLogLevelError timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:format]; + + NSAssert(self.areAssertionsDisabled, @"SDL ASSERTION: %@. To disable these assertions, alter your `SDLLogConfiguration` and set `disableAssertions` to `YES`", format); +} + - (void)logWithLevel:(SDLLogLevel)level timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel formatMessage:(NSString *)message, ... { va_list args; va_start(args, message); @@ -166,9 +190,7 @@ - (void)sdl_asyncLog:(SDLLogModel *)log { } - (void)sdl_syncLog:(SDLLogModel *)log { - dispatch_sync(self.class.logQueue, ^{ - [self sdl_log:log]; - }); + [self sdl_log:log]; } - (void)sdl_log:(SDLLogModel *)log { @@ -318,7 +340,11 @@ + (NSDateFormatter *)dateFormatter { + (dispatch_queue_t)logQueue { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ - _logQueue = dispatch_queue_create("com.sdl.log", DISPATCH_QUEUE_SERIAL); + if (@available(iOS 10.0, *)) { + _logQueue = dispatch_queue_create_with_target("com.sdl.log", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); + } else { + _logQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; + } }); return _logQueue; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.h index b984a58..ec0a458 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.h @@ -15,6 +15,7 @@ @class SDLProxy; @class SDLPutFile; @class SDLRegisterAppInterfaceResponse; +@class SDLRPCMessage; @class SDLRPCNotification; @class SDLRPCRequest; @class SDLRPCResponse; @@ -27,10 +28,13 @@ NS_ASSUME_NONNULL_BEGIN - +/// The block called when the manager is ready to be used or an error occurs while attempting to become ready. +/// +/// @param success a bool value if the set up succeeded +/// @param error the error is any exists typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); - +/// The top level manager object for all of SDL's interactions with the app and the head unit @interface SDLManager : NSObject /** @@ -83,6 +87,11 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); */ @property (strong, nonatomic, readonly, nullable) SDLRegisterAppInterfaceResponse *registerResponse; +/** + * The auth token, if received. This should be used to log into a user account. Primarily used for cloud apps with companion app stores. + */ +@property (strong, nonatomic, readonly, nullable) NSString *authToken; + /** * The manager's delegate. */ @@ -93,15 +102,6 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); */ @property (copy, nonatomic, readonly) NSArray<__kindof NSOperation *> *pendingRPCTransactions; -/** - * Deprecated internal proxy object. This should only be accessed when the Manager is READY. This property may go to nil at any time. - * The only reason to use this is to access the `putFileStream:withRequest:` method. All other functionality exists on managers in 4.3. This will be removed in 5.0 and the functionality replicated on `SDLFileManager`. - */ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -@property (strong, nonatomic, readonly, nullable) SDLProxy *proxy; -#pragma clang diagnostic pop - #pragma mark Lifecycle @@ -129,9 +129,22 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); */ - (void)stop; +/** + * Start the encryption lifecycle manager, which will attempt to open a secure service. + * + * Please call this method in the successful callback of startWithReadyHandler. If you do call this method, you must wait for SDLServiceEncryptionDelegate's serviceEncryptionUpdatedOnService delegate method before you send any encrypted RPCs. + */ +- (void)startRPCEncryption; #pragma mark Manually Send RPC Requests +/** + * Send an RPC of type `Response`, `Notification` or `Request`. Responses and notifications sent to Core do not a response back from Core. Each request sent to Core does get a response, so if you need the response and/or error, call `sendRequest:withResponseHandler:` instead. + * + * @param rpc An RPC of type `SDLRPCResponse`, `SDLRPCNotification` or `SDLRPCRequest` + */ +- (void)sendRPC:(__kindof SDLRPCMessage *)rpc; + /** * Send an RPC request and don't bother with the response or error. If you need the response or error, call sendRequest:withCompletionHandler: instead. * @@ -165,6 +178,47 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); */ - (void)sendSequentialRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler NS_SWIFT_NAME(sendSequential(requests:progressHandler:completionHandler:)); + +#pragma mark - RPC Subscriptions + +/// The block that will be called every time an RPC is received when subscribed to an RPC. +/// +/// @param message The RPC message +typedef void (^SDLRPCUpdatedBlock) (__kindof SDLRPCMessage *message); + +/** + * Subscribe to callbacks about a particular RPC request, notification, or response with a block callback. + * + * @param rpcName The name of the RPC request, response, or notification to subscribe to. + * @param block The block that will be called every time an RPC of the name and type specified is received. + * @return An object that can be passed to `unsubscribeFromRPC:ofType:withObserver:` to unsubscribe the block. + */ +- (id)subscribeToRPC:(SDLNotificationName)rpcName withBlock:(SDLRPCUpdatedBlock)block NS_SWIFT_NAME(subscribe(to:block:)); + +/** + * Subscribe to callbacks about a particular RPC request, notification, or response with a selector callback. + * + * The selector supports the following parameters: + * + * 1. Zero parameters e.g. `- (void)registerAppInterfaceResponse` + * 2. One parameter e.g. `- (void)registerAppInterfaceResponse:(NSNotification *)notification;` + * + * Note that using this method to get a response instead of the `sendRequest:withResponseHandler:` method of getting a response, you will not be notifed of any `SDLGenericResponse` errors where the head unit doesn't understand the request. + * + * @param rpcName The name of the RPC request, response, or notification to subscribe to. + * @param observer The object that will have its selector called every time an RPC of the name and type specified is received. + * @param selector The selector on `observer` that will be called every time an RPC of the name and type specified is received. + */ +- (void)subscribeToRPC:(SDLNotificationName)rpcName withObserver:(id)observer selector:(SEL)selector NS_SWIFT_NAME(subscribe(to:observer:selector:)); + +/** + * Unsubscribe to callbacks about a particular RPC request, notification, or response. + * + * @param rpcName The name of the RPC request, response, or notification to unsubscribe from. + * @param observer The object representing a block callback or selector callback to be unsubscribed + */ +- (void)unsubscribeFromRPC:(SDLNotificationName)rpcName withObserver:(id)observer NS_SWIFT_NAME(unsubscribe(from:observer:)); + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.m index fa7c9e8..41fc1c9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.m @@ -12,11 +12,13 @@ #import "SDLLifecycleManager.h" #import "SDLLockScreenConfiguration.h" #import "SDLLockScreenManager.h" -#import "SDLLockScreenPresenter.h" #import "SDLLogConfiguration.h" #import "SDLManagerDelegate.h" #import "SDLNotificationDispatcher.h" #import "SDLResponseDispatcher.h" +#import "SDLRPCRequestNotification.h" +#import "SDLRPCResponseNotification.h" +#import "SDLRPCNotificationNotification.h" #import "SDLSoftButtonManager.h" #import "SDLStateMachine.h" #import "SDLTextAndGraphicManager.h" @@ -40,7 +42,7 @@ @implementation SDLManager #pragma mark Lifecycle - (instancetype)init { - return [self initWithConfiguration:[SDLConfiguration configurationWithLifecycle:[SDLLifecycleConfiguration defaultConfigurationWithAppName:@"SDL APP" fullAppId:@"001"] lockScreen:[SDLLockScreenConfiguration enabledConfiguration] logging:[SDLLogConfiguration defaultConfiguration] fileManager:[SDLFileManagerConfiguration defaultConfiguration]] delegate:nil]; + return [self initWithConfiguration:[[SDLConfiguration alloc] initWithLifecycle:[SDLLifecycleConfiguration defaultConfigurationWithAppName:@"SDL APP" fullAppId:@"001"] lockScreen:[SDLLockScreenConfiguration enabledConfiguration] logging:[SDLLogConfiguration defaultConfiguration] fileManager:[SDLFileManagerConfiguration defaultConfiguration] encryption:nil] delegate:nil]; } - (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate:(nullable id)delegate { @@ -62,6 +64,9 @@ - (void)stop { [self.lifecycleManager stop]; } +- (void)startRPCEncryption { + [self.lifecycleManager startRPCEncryption]; +} #pragma mark - Passthrough getters / setters @@ -97,6 +102,10 @@ - (nullable SDLRegisterAppInterfaceResponse *)registerResponse { return self.lifecycleManager.registerResponse; } +- (nullable NSString *)authToken { + return self.lifecycleManager.authToken; +} + - (nullable id)delegate { return self.lifecycleManager.delegate; } @@ -109,22 +118,19 @@ - (void)setDelegate:(nullable id)delegate { return self.lifecycleManager.rpcOperationQueue.operations; } -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (nullable SDLProxy *)proxy { - return self.lifecycleManager.proxy; -} -#pragma clang diagnostic pop - #pragma mark SDLConnectionManager Protocol +- (void)sendRPC:(__kindof SDLRPCMessage *)rpc { + [self.lifecycleManager sendRPC:rpc]; +} + - (void)sendRequest:(SDLRPCRequest *)request { [self sendRequest:request withResponseHandler:nil]; } - (void)sendRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { - [self.lifecycleManager sendRequest:request withResponseHandler:handler]; + [self.lifecycleManager sendRequest:(__kindof SDLRPCMessage *)request withResponseHandler:handler]; } - (void)sendRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler { @@ -135,6 +141,24 @@ - (void)sendSequentialRequests:(NSArray *)requests progressHand [self.lifecycleManager sendSequentialRequests:requests progressHandler:progressHandler completionHandler:completionHandler]; } + +#pragma mark - RPC Subscriptions + +- (id)subscribeToRPC:(SDLNotificationName)rpcName withBlock:(SDLRPCUpdatedBlock)block { + return [[NSNotificationCenter defaultCenter] addObserverForName:rpcName object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) { + SDLRPCMessage *message = note.userInfo[SDLNotificationUserInfoObject]; + block(message); + }]; +} + +- (void)subscribeToRPC:(SDLNotificationName)rpcName withObserver:(id)observer selector:(SEL)selector { + [[NSNotificationCenter defaultCenter] addObserver:observer selector:selector name:rpcName object:nil]; +} + +- (void)unsubscribeFromRPC:(SDLNotificationName)rpcName withObserver:(id)observer { + [[NSNotificationCenter defaultCenter] removeObserver:observer name:rpcName object:nil]; +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLManagerDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLManagerDelegate.h index 66d38dc..f91a5ec 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLManagerDelegate.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLManagerDelegate.h @@ -13,9 +13,11 @@ #import "SDLSystemContext.h" #import "SDLLifecycleConfigurationUpdate.h" #import "SDLLanguage.h" +#import "SDLVideoStreamingState.h" NS_ASSUME_NONNULL_BEGIN +/// The manager's delegate @protocol SDLManagerDelegate /** @@ -40,6 +42,14 @@ NS_ASSUME_NONNULL_BEGIN */ - (void)audioStreamingState:(nullable SDLAudioStreamingState)oldState didChangeToState:(SDLAudioStreamingState)newState; +/// Called when the video streaming state of this application changes. This refers to streaming video for navigation purposes. If you are "autostreaming" via CarWindow, you should not do anything with this method. Everything should be handled for you automatically. +/// +/// Only supported on RPC v5.0+ connections. +/// +/// @param oldState The previous state +/// @param newState The current state +- (void)videoStreamingState:(nullable SDLVideoStreamingState)oldState didChangetoState:(SDLVideoStreamingState)newState; + /** * Called when the system context of this application changes on the remote system. This refers to whether or not a user-initiated interaction is in progress, and if so, what it is. * @@ -54,8 +64,16 @@ NS_ASSUME_NONNULL_BEGIN * @param language The language of the connected head unit the manager is trying to update the configuration. * @return An object of SDLLifecycleConfigurationUpdate if the head unit language is supported, otherwise nil to indicate that the language is not supported. */ -- (nullable SDLLifecycleConfigurationUpdate *)managerShouldUpdateLifecycleToLanguage:(SDLLanguage)language; +- (nullable SDLLifecycleConfigurationUpdate *)managerShouldUpdateLifecycleToLanguage:(SDLLanguage)language __deprecated_msg("Use managerShouldUpdateLifecycleToLanguage:hmiLanguage"); +/** + * Called when the lifecycle manager detected a language mismatch. In case of a language mismatch the manager should change the apps registration by updating the lifecycle configuration to the specified language. If the app can support the specified language it should return an Object of SDLLifecycleConfigurationUpdate, otherwise it should return nil to indicate that the language is not supported. + * + * @param language The VR+TTS language of the connected head unit the manager is trying to update the configuration. + * @param hmiLanguage The HMI display language of the connected head unit the manager is trying to update the configuration. + * @return An object of SDLLifecycleConfigurationUpdate if the head unit language is supported, otherwise nil to indicate that the language is not supported. + */ +- (nullable SDLLifecycleConfigurationUpdate *)managerShouldUpdateLifecycleToLanguage:(SDLLanguage)language hmiLanguage:(SDLLanguage)hmiLanguage; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushionFirmness.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushionFirmness.m index 480f131..96dacd0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushionFirmness.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushionFirmness.m @@ -1,7 +1,7 @@ // SDLMassageCushionFirmness.m // -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLMassageCushionFirmness.h" #import "NSMutableDictionary+Store.h" @@ -22,19 +22,21 @@ - (instancetype)initWithMassageCushion:(SDLMassageCushion)cushion firmness:(UInt } - (void)setCushion:(SDLMassageCushion)cushion { - [store sdl_setObject:cushion forName:SDLNameCushion]; + [self.store sdl_setObject:cushion forName:SDLRPCParameterNameCushion]; } - (SDLMassageCushion)cushion { - return [store sdl_objectForName:SDLNameCushion]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameCushion error:&error]; } - (void)setFirmness:(NSNumber *)firmness { - [store sdl_setObject:firmness forName:SDLNameFirmness]; + [self.store sdl_setObject:firmness forName:SDLRPCParameterNameFirmness]; } - (NSNumber *)firmness { - return [store sdl_objectForName:SDLNameFirmness]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameFirmness ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageModeData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageModeData.m index 83046f3..fbcd4dd 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageModeData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageModeData.m @@ -1,7 +1,7 @@ // SDLMassageModeData.m // -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLMassageModeData.h" #import "NSMutableDictionary+Store.h" @@ -22,19 +22,21 @@ - (instancetype)initWithMassageMode:(SDLMassageMode)massageMode massageZone:(SDL } - (void)setMassageMode:(SDLMassageMode)massageMode { - [store sdl_setObject:massageMode forName:SDLNameMassageMode]; + [self.store sdl_setObject:massageMode forName:SDLRPCParameterNameMassageMode]; } - (SDLMassageMode)massageMode { - return [store sdl_objectForName:SDLNameMassageMode]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameMassageMode error:&error]; } - (void)setMassageZone:(SDLMassageZone)massageZone { - [store sdl_setObject:massageZone forName:SDLNameMassageZone]; + [self.store sdl_setObject:massageZone forName:SDLRPCParameterNameMassageZone]; } - (SDLMassageZone)massageZone { - return [store sdl_objectForName:SDLNameMassageZone]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameMassageZone error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.h new file mode 100644 index 0000000..7d4d618 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.h @@ -0,0 +1,177 @@ +// +// SDLMediaServiceData.h +// SmartDeviceLink +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" +#import "SDLMediaType.h" + +@class SDLImage; + +NS_ASSUME_NONNULL_BEGIN + + +/** + * This data is related to what a media service should provide. + */ +@interface SDLMediaServiceData : SDLRPCStruct + +/** + * Convenience init + * + * @param mediaType The type of the currently playing or paused track + * @param mediaTitle The name of the current playing media + * @param mediaArtist The name of the current media artist + * @param mediaAlbum The name of the current media album + * @param playlistName The name of the playlist + * @param isExplicit Whether or not the content currently playing contains explicit content + * @param trackPlaybackProgress The current progress of the track + * @param trackPlaybackDuration The total duration of the track + * @param queuePlaybackProgress The current progress of the playback queue in seconds + * @param queuePlaybackDuration The total duration of the playback queue in seconds + * @param queueCurrentTrackNumber The current number (1 based) of the track in the playback queue + * @param queueTotalTrackCount The total number of tracks in the playback queue + * @return A SDLMediaServiceData object + */ +- (instancetype)initWithMediaType:(nullable SDLMediaType)mediaType mediaTitle:(nullable NSString *)mediaTitle mediaArtist:(nullable NSString *)mediaArtist mediaAlbum:(nullable NSString *)mediaAlbum playlistName:(nullable NSString *)playlistName isExplicit:(BOOL)isExplicit trackPlaybackProgress:(UInt32)trackPlaybackProgress trackPlaybackDuration:(UInt32)trackPlaybackDuration queuePlaybackProgress:(UInt32)queuePlaybackProgress queuePlaybackDuration:(UInt32)queuePlaybackDuration queueCurrentTrackNumber:(UInt32)queueCurrentTrackNumber queueTotalTrackCount:(UInt32)queueTotalTrackCount __deprecated_msg("Use initWithMediaType:mediaImage:mediaTitle:mediaArtist:mediaAlbum:playlistName:isExplicit:trackPlaybackProgress:trackPlaybackDuration:queuePlaybackProgress:queuePlaybackDuration:queueCurrentTrackNumber:queueTotalTrackCount: instead"); + +/** + * Convenience init + * + * @param mediaType The type of the currently playing or paused track + * @param mediaImage The current artwork for the playing media. + * @param mediaTitle The name of the current playing media + * @param mediaArtist The name of the current media artist + * @param mediaAlbum The name of the current media album + * @param playlistName The name of the playlist + * @param isExplicit Whether or not the content currently playing contains explicit content + * @param trackPlaybackProgress The current progress of the track + * @param trackPlaybackDuration The total duration of the track + * @param queuePlaybackProgress The current progress of the playback queue in seconds + * @param queuePlaybackDuration The total duration of the playback queue in seconds + * @param queueCurrentTrackNumber The current number (1 based) of the track in the playback queue + * @param queueTotalTrackCount The total number of tracks in the playback queue + * @return A SDLMediaServiceData object + */ +- (instancetype)initWithMediaType:(nullable SDLMediaType)mediaType mediaImage:(nullable SDLImage *)mediaImage mediaTitle:(nullable NSString *)mediaTitle mediaArtist:(nullable NSString *)mediaArtist mediaAlbum:(nullable NSString *)mediaAlbum playlistName:(nullable NSString *)playlistName isExplicit:(BOOL)isExplicit trackPlaybackProgress:(UInt32)trackPlaybackProgress trackPlaybackDuration:(UInt32)trackPlaybackDuration queuePlaybackProgress:(UInt32)queuePlaybackProgress queuePlaybackDuration:(UInt32)queuePlaybackDuration queueCurrentTrackNumber:(UInt32)queueCurrentTrackNumber queueTotalTrackCount:(UInt32)queueTotalTrackCount; + +/** + * Sets the media image associated with the currently playing media + * Music: The album art of the current track + * Podcast: The podcast or chapter artwork of the current podcast episode + * Audiobook: The book or chapter artwork of the current audiobook + * + * SDLImage, Optional + */ +@property (nullable, strong, nonatomic) SDLImage *mediaImage; + +/** + * The type of the currently playing or paused track. + * + * SDLMediaType, Optional + */ +@property (nullable, strong, nonatomic) SDLMediaType mediaType; + +/** + * Music: The name of the current track + * Podcast: The name of the current episode + * Audiobook: The name of the current chapter + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *mediaTitle; + +/** + * Music: The name of the current album artist + * Podcast: The provider of the podcast (hosts, network, company) + * Audiobook: The book author's name + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *mediaArtist; + +/** + * Music: The name of the current album + * Podcast: The name of the current podcast show + * Audiobook: The name of the current book + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *mediaAlbum; + +/** + * Music: The name of the playlist or radio station, if the user is playing from a playlist, otherwise, Null + * Podcast: The name of the playlist, if the user is playing from a playlist, otherwise, Null + * Audiobook: Likely not applicable, possibly a collection or "playlist" of books + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *playlistName; + +/** + * Whether or not the content currently playing (e.g. the track, episode, or book) contains explicit content. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *isExplicit; + +/** + * Music: The current progress of the track in seconds + * Podcast: The current progress of the episode in seconds + * Audiobook: The current progress of the current segment (e.g. the chapter) in seconds + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *trackPlaybackProgress; + +/** + * Music: The total duration of the track in seconds + * Podcast: The total duration of the episode in seconds + * Audiobook: The total duration of the current segment (e.g. the chapter) in seconds + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *trackPlaybackDuration; + +/** + * Music: The current progress of the playback queue in seconds + * Podcast: The current progress of the playback queue in seconds + * Audiobook: The current progress of the playback queue (e.g. the book) in seconds + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *queuePlaybackProgress; + +/** + * Music: The total duration of the playback queue in seconds + * Podcast: The total duration of the playback queue in seconds + * Audiobook: The total duration of the playback queue (e.g. the book) in seconds + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *queuePlaybackDuration; + +/** + * Music: The current number (1 based) of the track in the playback queue + * Podcast: The current number (1 based) of the episode in the playback queue + * Audiobook: The current number (1 based) of the episode in the playback queue (e.g. the chapter number in the book) + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *queueCurrentTrackNumber; + +/** + * Music: The total number of tracks in the playback queue + * Podcast: The total number of episodes in the playback queue + * Audiobook: The total number of sections in the playback queue (e.g. the number of chapters in the book) + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *queueTotalTrackCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.m new file mode 100644 index 0000000..911ec75 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.m @@ -0,0 +1,153 @@ +// +// SDLMediaServiceData.m +// SmartDeviceLink +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLMediaServiceData.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLImage.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLMediaServiceData + +- (instancetype)initWithMediaType:(nullable SDLMediaType)mediaType mediaTitle:(nullable NSString *)mediaTitle mediaArtist:(nullable NSString *)mediaArtist mediaAlbum:(nullable NSString *)mediaAlbum playlistName:(nullable NSString *)playlistName isExplicit:(BOOL)isExplicit trackPlaybackProgress:(UInt32)trackPlaybackProgress trackPlaybackDuration:(UInt32)trackPlaybackDuration queuePlaybackProgress:(UInt32)queuePlaybackProgress queuePlaybackDuration:(UInt32)queuePlaybackDuration queueCurrentTrackNumber:(UInt32)queueCurrentTrackNumber queueTotalTrackCount:(UInt32)queueTotalTrackCount { + + return [self initWithMediaType:mediaType mediaImage:nil mediaTitle:mediaTitle mediaArtist:mediaArtist mediaAlbum:mediaAlbum playlistName:playlistName isExplicit:isExplicit trackPlaybackProgress:trackPlaybackProgress trackPlaybackDuration:trackPlaybackDuration queuePlaybackProgress:queuePlaybackProgress queuePlaybackDuration:queuePlaybackDuration queueCurrentTrackNumber:queueCurrentTrackNumber queueTotalTrackCount:queueTotalTrackCount]; +} + +- (instancetype)initWithMediaType:(nullable SDLMediaType)mediaType mediaImage:(nullable SDLImage *)mediaImage mediaTitle:(nullable NSString *)mediaTitle mediaArtist:(nullable NSString *)mediaArtist mediaAlbum:(nullable NSString *)mediaAlbum playlistName:(nullable NSString *)playlistName isExplicit:(BOOL)isExplicit trackPlaybackProgress:(UInt32)trackPlaybackProgress trackPlaybackDuration:(UInt32)trackPlaybackDuration queuePlaybackProgress:(UInt32)queuePlaybackProgress queuePlaybackDuration:(UInt32)queuePlaybackDuration queueCurrentTrackNumber:(UInt32)queueCurrentTrackNumber queueTotalTrackCount:(UInt32)queueTotalTrackCount { + self = [self init]; + if (!self) { + return nil; + } + + self.mediaType = mediaType; + self.mediaImage = mediaImage; + self.mediaTitle = mediaTitle; + self.mediaArtist = mediaArtist; + self.mediaAlbum = mediaAlbum; + self.playlistName = playlistName; + self.isExplicit = @(isExplicit); + self.trackPlaybackProgress = @(trackPlaybackProgress); + self.trackPlaybackDuration = @(trackPlaybackDuration); + self.queuePlaybackProgress = @(queuePlaybackProgress); + self.queuePlaybackDuration = @(queuePlaybackDuration); + self.queueCurrentTrackNumber = @(queueCurrentTrackNumber); + self.queueTotalTrackCount = @(queueTotalTrackCount); + + return self; +} + +- (void)setMediaImage:(nullable SDLImage *)mediaImage { + [self.store sdl_setObject:mediaImage forName:SDLRPCParameterNameMediaImage]; +} + +- (nullable SDLImage *)mediaImage { + return [self.store sdl_objectForName:SDLRPCParameterNameMediaImage ofClass:SDLImage.class error:nil]; +} + +- (void)setMediaType:(nullable SDLMediaType)mediaType { + [self.store sdl_setObject:mediaType forName:SDLRPCParameterNameMediaType]; +} + +- (nullable SDLMediaType)mediaType { + return [self.store sdl_enumForName:SDLRPCParameterNameMediaType error:nil]; +} + +- (void)setMediaTitle:(nullable NSString *)mediaTitle { + [self.store sdl_setObject:mediaTitle forName:SDLRPCParameterNameMediaTitle]; +} + +- (nullable NSString *)mediaTitle { + return [self.store sdl_objectForName:SDLRPCParameterNameMediaTitle ofClass:NSString.class error:nil]; +} + +- (void)setMediaArtist:(nullable NSString *)mediaArtist { + [self.store sdl_setObject:mediaArtist forName:SDLRPCParameterNameMediaArtist]; +} + +- (nullable NSString *)mediaArtist { + return [self.store sdl_objectForName:SDLRPCParameterNameMediaArtist ofClass:NSString.class error:nil]; +} + +- (void)setMediaAlbum:(nullable NSString *)mediaAlbum { + [self.store sdl_setObject:mediaAlbum forName:SDLRPCParameterNameMediaAlbum]; +} + +- (nullable NSString *)mediaAlbum { + return [self.store sdl_objectForName:SDLRPCParameterNameMediaAlbum ofClass:NSString.class error:nil]; +} + +- (void)setPlaylistName:(nullable NSString *)playlistName { + [self.store sdl_setObject:playlistName forName:SDLRPCParameterNamePlaylistName]; +} + +- (nullable NSString *)playlistName { + return [self.store sdl_objectForName:SDLRPCParameterNamePlaylistName ofClass:NSString.class error:nil]; +} + +- (void)setIsExplicit:(nullable NSNumber *)isExplicit { + [self.store sdl_setObject:isExplicit forName:SDLRPCParameterNameIsExplicit]; +} + +- (nullable NSNumber *)isExplicit { + return [self.store sdl_objectForName:SDLRPCParameterNameIsExplicit ofClass:NSNumber.class error:nil]; +} + +- (void)setTrackPlaybackProgress:(nullable NSNumber *)trackPlaybackProgress { + [self.store sdl_setObject:trackPlaybackProgress forName:SDLRPCParameterNameTrackPlaybackProgress]; +} + +- (nullable NSNumber *)trackPlaybackProgress { + return [self.store sdl_objectForName:SDLRPCParameterNameTrackPlaybackProgress ofClass:NSNumber.class error:nil]; +} + +- (void)setTrackPlaybackDuration:(nullable NSNumber *)trackPlaybackDuration { + [self.store sdl_setObject:trackPlaybackDuration forName:SDLRPCParameterNameTrackPlaybackDuration]; +} + +- (nullable NSNumber *)trackPlaybackDuration { + return [self.store sdl_objectForName:SDLRPCParameterNameTrackPlaybackDuration ofClass:NSNumber.class error:nil]; +} + +- (void)setQueuePlaybackProgress:(nullable NSNumber *)queuePlaybackProgress { + [self.store sdl_setObject:queuePlaybackProgress forName:SDLRPCParameterNameQueuePlaybackProgress]; +} + +- (nullable NSNumber *)queuePlaybackProgress { + return [self.store sdl_objectForName:SDLRPCParameterNameQueuePlaybackProgress ofClass:NSNumber.class error:nil]; +} + +- (void)setQueuePlaybackDuration:(nullable NSNumber *)queuePlaybackDuration { + [self.store sdl_setObject:queuePlaybackDuration forName:SDLRPCParameterNameQueuePlaybackDuration]; +} + +- (nullable NSNumber *)queuePlaybackDuration { + return [self.store sdl_objectForName:SDLRPCParameterNameQueuePlaybackDuration ofClass:NSNumber.class error:nil]; +} + +- (void)setQueueCurrentTrackNumber:(nullable NSNumber *)queueCurrentTrackNumber { + [self.store sdl_setObject:queueCurrentTrackNumber forName:SDLRPCParameterNameQueueCurrentTrackNumber]; +} + +- (nullable NSNumber *)queueCurrentTrackNumber { + return [self.store sdl_objectForName:SDLRPCParameterNameQueueCurrentTrackNumber ofClass:NSNumber.class error:nil]; +} + +- (void)setQueueTotalTrackCount:(nullable NSNumber *)queueTotalTrackCount { + [self.store sdl_setObject:queueTotalTrackCount forName:SDLRPCParameterNameQueueTotalTrackCount]; +} + +- (nullable NSNumber *)queueTotalTrackCount { + return [self.store sdl_objectForName:SDLRPCParameterNameQueueTotalTrackCount ofClass:NSNumber.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.h new file mode 100644 index 0000000..a3b931c --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.h @@ -0,0 +1,20 @@ +// +// SDLMediaServiceManifest.h +// SmartDeviceLink +// +// Created by Nicole on 2/11/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * A media service manifest. + */ +@interface SDLMediaServiceManifest : SDLRPCStruct + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.m new file mode 100644 index 0000000..7342563 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.m @@ -0,0 +1,17 @@ +// +// SDLMediaServiceManifest.m +// SmartDeviceLink +// +// Created by Nicole on 2/11/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLMediaServiceManifest.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLMediaServiceManifest + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.h new file mode 100644 index 0000000..f7d1943 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.h @@ -0,0 +1,35 @@ +// +// SDLMediaType.h +// SmartDeviceLink +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * Enumeration listing possible media types. + */ +typedef SDLEnum SDLMediaType SDL_SWIFT_ENUM; + +/** + * The app will have a media type of music. + */ +extern SDLMediaType const SDLMediaTypeMusic; + +/** + * The app will have a media type of podcast. + */ +extern SDLMediaType const SDLMediaTypePodcast; + +/** + * The app will have a media type of audiobook. + */ +extern SDLMediaType const SDLMediaTypeAudiobook; + +/** + * The app will have a media type of other. + */ +extern SDLMediaType const SDLMediaTypeOther; + diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.m new file mode 100644 index 0000000..3a18a3d --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.m @@ -0,0 +1,14 @@ +// +// SDLMediaType.m +// SmartDeviceLink +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLMediaType.h" + +SDLMediaType const SDLMediaTypeMusic = @"MUSIC"; +SDLMediaType const SDLMediaTypePodcast = @"PODCAST"; +SDLMediaType const SDLMediaTypeAudiobook = @"AUDIOBOOK"; +SDLMediaType const SDLMediaTypeOther = @"OTHER"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.h index 1c9c8dc..d55360a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.h @@ -8,14 +8,21 @@ #import +#import "SDLMenuLayout.h" #import "SDLTriggerSource.h" @class SDLArtwork; NS_ASSUME_NONNULL_BEGIN +/** +The handler to run when a menu item is selected. + +@param triggerSource The trigger source of the selection +*/ typedef void(^SDLMenuCellSelectionHandler)(SDLTriggerSource triggerSource); +/// A menu cell item for the main menu or sub-menu. @interface SDLMenuCell : NSObject /** @@ -43,6 +50,11 @@ typedef void(^SDLMenuCellSelectionHandler)(SDLTriggerSource triggerSource); */ @property (copy, nonatomic, readonly, nullable) NSArray *subCells; +/** + The layout in which the `subCells` will be displayed. + */ +@property (strong, nonatomic, readonly, nullable) SDLMenuLayout submenuLayout; + /** Create a menu cell that has no subcells. @@ -71,7 +83,19 @@ typedef void(^SDLMenuCellSelectionHandler)(SDLTriggerSource triggerSource); @param subCells The subcells that will appear when the cell is selected @return The menu cell */ -- (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon subCells:(NSArray *)subCells; +- (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon subCells:(NSArray *)subCells __deprecated_msg("Use initWithTitle:icon:layout:subcells: instead"); + +/** + Create a menu cell that has subcells and when selected will go into a deeper part of the menu + + @param title The cell's primary text + @param icon The cell's image + @param layout The layout that the subCells will be layed out in if that submenu is entered + @param subCells The subcells that will appear when the cell is selected + @return The menu cell + */ +- (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon submenuLayout:(nullable SDLMenuLayout)layout subCells:(NSArray *)subCells; + @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.m index cc7bfd5..67281cb 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.m @@ -37,14 +37,19 @@ - (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon } - (instancetype)initWithTitle:(NSString *)title subCells:(NSArray *)subCells { - return [self initWithTitle:title icon:nil subCells:subCells]; + return [self initWithTitle:title icon:nil submenuLayout:nil subCells:subCells]; } - (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon subCells:(NSArray *)subCells { + return [self initWithTitle:title icon:icon submenuLayout:nil subCells:subCells]; +} + +- (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon submenuLayout:(nullable SDLMenuLayout)layout subCells:(NSArray *)subCells { self = [super init]; if (!self) { return nil; } _title = title; + _submenuLayout = layout; _icon = icon; _subCells = subCells; @@ -55,7 +60,35 @@ - (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon } - (NSString *)description { - return [NSString stringWithFormat:@"SDLMenuCell: %u-\"%@\", artworkName: %@, voice commands: %lu, isSubcell: %@, hasSubcells: %@", (unsigned int)_cellId, _title, _icon.name, (unsigned long)_voiceCommands.count, (_parentCellId != UINT32_MAX ? @"YES" : @"NO"), (_subCells.count > 0 ? @"YES" : @"NO")]; + return [NSString stringWithFormat:@"SDLMenuCell: %u-\"%@\", artworkName: %@, voice commands: %lu, isSubcell: %@, hasSubcells: %@, submenuLayout: %@", (unsigned int)_cellId, _title, _icon.name, (unsigned long)_voiceCommands.count, (_parentCellId != UINT32_MAX ? @"YES" : @"NO"), (_subCells.count > 0 ? @"YES" : @"NO"), _submenuLayout]; +} + +#pragma mark - Object Equality + +NSUInteger const NSUIntBitCell = (CHAR_BIT * sizeof(NSUInteger)); +NSUInteger NSUIntRotateCell(NSUInteger val, NSUInteger howMuch) { + return ((((NSUInteger)val) << howMuch) | (((NSUInteger)val) >> (NSUIntBitCell - howMuch))); +} + +- (NSUInteger)hash { + return NSUIntRotateCell(self.title.hash, NSUIntBitCell / 2) + ^ NSUIntRotateCell(self.icon.name.hash, NSUIntBitCell / 3) + ^ NSUIntRotateCell(self.voiceCommands.hash, NSUIntBitCell / 4) + ^ NSUIntRotateCell(self.subCells.count !=0, NSUIntBitCell / 5) + ^ NSUIntRotateCell(self.submenuLayout.hash, NSUIntBitCell / 6); +} + +- (BOOL)isEqual:(id)object { + if (self == object) { return YES; } + if (![object isMemberOfClass:[self class]]) { return NO; } + + return [self isEqualToChoice:(SDLMenuCell *)object]; +} + +- (BOOL)isEqualToChoice:(SDLMenuCell *)choice { + if (choice == nil) { return NO; } + + return (self.hash == choice.hash); } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.h new file mode 100644 index 0000000..d361400 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.h @@ -0,0 +1,37 @@ +// +// SDLMenuConfiguration.h +// SmartDeviceLink +// +// Created by Joel Fischer on 7/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLMenuLayout.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Defines how the menu is configured +@interface SDLMenuConfiguration : NSObject + +/** + * Changes the default main menu layout. Defaults to `SDLMenuLayoutList`. + */ +@property (strong, nonatomic, readonly) SDLMenuLayout mainMenuLayout; + +/** + * Changes the default submenu layout. To change this for an individual submenu, set the `menuLayout` property on the `SDLMenuCell` initializer for creating a cell with sub-cells. Defaults to `SDLMenuLayoutList`. + */ +@property (strong, nonatomic, readonly) SDLMenuLayout defaultSubmenuLayout; + +/** + Initialize a new menu configuration with a main menu layout and a default submenu layout which can be overriden per-submenu if desired. + + @param mainMenuLayout The new main menu layout + @param defaultSubmenuLayout The new default submenu layout + @return The menu configuration + */ +- (instancetype)initWithMainMenuLayout:(SDLMenuLayout)mainMenuLayout defaultSubmenuLayout:(SDLMenuLayout)defaultSubmenuLayout; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.m new file mode 100644 index 0000000..2049c83 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.m @@ -0,0 +1,31 @@ +// +// SDLMenuConfiguration.m +// SmartDeviceLink +// +// Created by Joel Fischer on 7/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLMenuConfiguration.h" + +@implementation SDLMenuConfiguration + +- (instancetype)init { + return [self initWithMainMenuLayout:SDLMenuLayoutList defaultSubmenuLayout:SDLMenuLayoutList]; +} + +- (instancetype)initWithMainMenuLayout:(SDLMenuLayout)mainMenuLayout defaultSubmenuLayout:(SDLMenuLayout)defaultSubmenuLayout { + self = [super init]; + if (!self) { return nil; } + + _mainMenuLayout = mainMenuLayout; + _defaultSubmenuLayout = defaultSubmenuLayout; + + return self; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"Menu configuration, main menu layout: %@, submenu default layout: %@", _mainMenuLayout, _defaultSubmenuLayout]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.h new file mode 100644 index 0000000..e2fe8e4 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.h @@ -0,0 +1,25 @@ +// +// SDLMenuLayout.h +// SmartDeviceLink +// +// Created by Joel Fischer on 7/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * Enum for each type of video streaming protocol, used in VideoStreamingFormat + */ +typedef SDLEnum SDLMenuLayout SDL_SWIFT_ENUM; + +/** + * The menu should be laid out in a scrollable list format with one menu cell below the previous, each is stretched across the view + */ +extern SDLMenuLayout const SDLMenuLayoutList; + +/** + * The menu should be laid out in a scrollable tiles format with each menu cell laid out in a square-ish format next to each other horizontally + */ +extern SDLMenuLayout const SDLMenuLayoutTiles; + diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.m new file mode 100644 index 0000000..8b1b95b --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.m @@ -0,0 +1,12 @@ +// +// SDLMenuLayout.m +// SmartDeviceLink +// +// Created by Joel Fischer on 7/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLMenuLayout.h" + +SDLMenuLayout const SDLMenuLayoutList = @"LIST"; +SDLMenuLayout const SDLMenuLayoutTiles = @"TILES"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.h index cd3ead6..a177751 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.h @@ -7,9 +7,12 @@ // #import +#import "SDLMenuManagerConstants.h" @class SDLFileManager; @class SDLMenuCell; +@class SDLMenuConfiguration; +@class SDLSystemCapabilityManager; @class SDLVoiceCommand; @protocol SDLConnectionManagerType; @@ -25,15 +28,24 @@ typedef void(^SDLMenuUpdateCompletionHandler)(NSError *__nullable error); @interface SDLMenuManager : NSObject -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager; +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager; -/** - * Stops the manager. This method is used internally. - */ +/// Starts the manager. This method is used internally. +- (void)start; + +/// Stops the manager. This method is used internally. - (void)stop; +@property (strong, nonatomic) SDLMenuConfiguration *menuConfiguration; + @property (copy, nonatomic) NSArray *menuCells; +@property (assign, nonatomic) SDLDynamicMenuUpdatesMode dynamicMenuUpdatesMode; + +- (BOOL)openMenu; + +- (BOOL)openSubmenu:(SDLMenuCell *)cell; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.m index aa8528a..4d2d073 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.m @@ -14,23 +14,34 @@ #import "SDLConnectionManagerType.h" #import "SDLDeleteCommand.h" #import "SDLDeleteSubMenu.h" -#import "SDLDisplayCapabilities.h" -#import "SDLDisplayCapabilities+ShowManagerExtensions.h" +#import "SDLDisplayCapability.h" +#import "SDLDisplayType.h" #import "SDLError.h" #import "SDLFileManager.h" +#import "SDLGlobals.h" #import "SDLImage.h" #import "SDLLogMacros.h" #import "SDLMenuCell.h" +#import "SDLMenuConfiguration.h" #import "SDLMenuParams.h" +#import "SDLDynamicMenuUpdateRunScore.h" +#import "SDLDynamicMenuUpdateAlgorithm.h" #import "SDLOnCommand.h" #import "SDLOnHMIStatus.h" +#import "SDLPredefinedWindows.h" #import "SDLRegisterAppInterfaceResponse.h" #import "SDLRPCNotificationNotification.h" #import "SDLRPCResponseNotification.h" #import "SDLSetDisplayLayoutResponse.h" +#import "SDLSetGlobalProperties.h" +#import "SDLScreenManager.h" +#import "SDLShowAppMenu.h" +#import "SDLSystemCapabilityManager.h" +#import "SDLWindowCapability.h" +#import "SDLWindowCapability+ScreenManagerExtensions.h" +#import "SDLVersion.h" #import "SDLVoiceCommand.h" - NS_ASSUME_NONNULL_BEGIN @interface SDLMenuCell() @@ -42,17 +53,19 @@ @interface SDLMenuCell() @interface SDLMenuManager() +// Dependencies @property (weak, nonatomic) id connectionManager; @property (weak, nonatomic) SDLFileManager *fileManager; +@property (weak, nonatomic) SDLSystemCapabilityManager *systemCapabilityManager; @property (copy, nonatomic, nullable) SDLHMILevel currentHMILevel; @property (copy, nonatomic, nullable) SDLSystemContext currentSystemContext; -@property (strong, nonatomic, nullable) SDLDisplayCapabilities *displayCapabilities; @property (strong, nonatomic, nullable) NSArray *inProgressUpdate; @property (assign, nonatomic) BOOL hasQueuedUpdate; @property (assign, nonatomic) BOOL waitingOnHMIUpdate; @property (copy, nonatomic) NSArray *waitingUpdateMenuCells; +@property (strong, nonatomic, nullable) SDLWindowCapability *windowCapability; @property (assign, nonatomic) UInt32 lastMenuId; @property (copy, nonatomic) NSArray *oldMenuCells; @@ -69,27 +82,32 @@ - (instancetype)init { if (!self) { return nil; } _lastMenuId = MenuCellIdMin; + _menuConfiguration = [[SDLMenuConfiguration alloc] init]; _menuCells = @[]; _oldMenuCells = @[]; + _dynamicMenuUpdatesMode = SDLDynamicMenuUpdatesModeOnWithCompatibility; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_registerResponse:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_displayLayoutResponse:) name:SDLDidReceiveSetDisplayLayoutResponse object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusNotification:) name:SDLDidChangeHMIStatusNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_commandNotification:) name:SDLDidReceiveCommandNotification object:nil]; return self; } -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager { +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(nonnull SDLSystemCapabilityManager *)systemCapabilityManager { self = [self init]; if (!self) { return nil; } _connectionManager = connectionManager; _fileManager = fileManager; + _systemCapabilityManager = systemCapabilityManager; return self; } +- (void)start { + [self.systemCapabilityManager subscribeToCapabilityType:SDLSystemCapabilityTypeDisplays withObserver:self selector:@selector(sdl_displayCapabilityDidUpdate:)]; +} + - (void)stop { _lastMenuId = MenuCellIdMin; _menuCells = @[]; @@ -97,7 +115,6 @@ - (void)stop { _currentHMILevel = nil; _currentSystemContext = SDLSystemContextMain; - _displayCapabilities = nil; _inProgressUpdate = nil; _hasQueuedUpdate = NO; _waitingOnHMIUpdate = NO; @@ -106,10 +123,47 @@ - (void)stop { #pragma mark - Setters +- (void)setMenuConfiguration:(SDLMenuConfiguration *)menuConfiguration { + NSArray *layoutsAvailable = self.windowCapability.menuLayoutsAvailable; + + if ([[SDLGlobals sharedGlobals].rpcVersion isLessThanVersion:[SDLVersion versionWithMajor:6 minor:0 patch:0]]) { + SDLLogW(@"Menu configurations is only supported on head units with RPC spec version 6.0.0 or later. Currently connected head unit RPC spec version is %@", [SDLGlobals sharedGlobals].rpcVersion); + return; + } else if (layoutsAvailable == nil) { + SDLLogW(@"Could not set the main menu configuration. Which menu layouts can be used is not available"); + return; + } else if (![layoutsAvailable containsObject:menuConfiguration.mainMenuLayout] + || ![layoutsAvailable containsObject:menuConfiguration.defaultSubmenuLayout]) { + SDLLogE(@"One or more of the set menu layouts are not available on this system. The menu configuration will not be set. Available menu layouts: %@, set menu layouts: %@", layoutsAvailable, menuConfiguration); + return; + } else if (self.currentHMILevel == nil + || [self.currentHMILevel isEqualToEnum:SDLHMILevelNone]) { + SDLLogE(@"Could not set main menu configuration, HMI level: %@, required: 'Not-NONE', system context: %@, required: 'Not MENU'", self.currentHMILevel, self.currentSystemContext); + return; + } + + SDLMenuConfiguration *oldConfig = _menuConfiguration; + _menuConfiguration = menuConfiguration; + + SDLSetGlobalProperties *setGlobalsRPC = [[SDLSetGlobalProperties alloc] init]; + setGlobalsRPC.menuLayout = menuConfiguration.mainMenuLayout; + + __weak typeof(self) weakself = self; + [self.connectionManager sendConnectionRequest:setGlobalsRPC withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + __strong typeof(weakself) strongself = weakself; + if (error != nil) { + SDLLogE(@"Could not set main menu configuration: %@", error); + strongself.menuConfiguration = oldConfig; + return; + } + }]; +} + - (void)setMenuCells:(NSArray *)menuCells { if (self.currentHMILevel == nil || [self.currentHMILevel isEqualToEnum:SDLHMILevelNone] || [self.currentSystemContext isEqualToEnum:SDLSystemContextMenu]) { + SDLLogD(@"Waiting for HMI update to send menu cells"); self.waitingOnHMIUpdate = YES; self.waitingUpdateMenuCells = menuCells; return; @@ -139,14 +193,199 @@ - (void)setMenuCells:(NSArray *)menuCells { return; } - // Set the ids - self.lastMenuId = MenuCellIdMin; - [self sdl_updateIdsOnMenuCells:menuCells parentId:ParentIdNotFound]; - _oldMenuCells = _menuCells; _menuCells = menuCells; + if ([self sdl_isDynamicMenuUpdateActive:self.dynamicMenuUpdatesMode]) { + [self sdl_startDynamicMenuUpdate]; + } else { + [self sdl_startNonDynamicMenuUpdate]; + } +} + +#pragma mark - Open Menu + +- (BOOL)openMenu { + if ([SDLGlobals.sharedGlobals.rpcVersion isLessThanVersion:[[SDLVersion alloc] initWithMajor:6 minor:0 patch:0]]) { + SDLLogE(@"The openMenu method is not supported on this head unit."); + return NO; + } + + SDLShowAppMenu *openMenu = [[SDLShowAppMenu alloc] init]; + + [self.connectionManager sendConnectionRequest:openMenu withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + if ([response.resultCode isEqualToEnum:SDLResultWarnings]) { + SDLLogW(@"Warning opening application menu: %@", error); + } else if (![response.resultCode isEqualToEnum:SDLResultSuccess]) { + SDLLogE(@"Error opening application menu: %@", error); + } else { + SDLLogD(@"Successfully opened application main menu"); + } + }]; + + return YES; +} + +- (BOOL)openSubmenu:(SDLMenuCell *)cell { + if (cell.subCells.count == 0) { + SDLLogE(@"The cell %@ does not contain any sub cells, so no submenu can be opened", cell); + return NO; + } else if ([SDLGlobals.sharedGlobals.rpcVersion isLessThanVersion:[[SDLVersion alloc] initWithMajor:6 minor:0 patch:0]]) { + SDLLogE(@"The openSubmenu method is not supported on this head unit."); + return NO; + } else if (![self.menuCells containsObject:cell]) { + SDLLogE(@"This cell has not been sent to the head unit, so no submenu can be opened. Make sure that the cell exists in the SDLManager.menu array"); + return NO; + } + + SDLShowAppMenu *subMenu = [[SDLShowAppMenu alloc] initWithMenuID:cell.cellId]; + + [self.connectionManager sendConnectionRequest:subMenu withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + if ([response.resultCode isEqualToEnum:SDLResultWarnings]) { + SDLLogW(@"Warning opening application menu to submenu cell %@, with error: %@", cell, error); + } else if (![response.resultCode isEqualToEnum:SDLResultSuccess]) { + SDLLogE(@"Error opening application menu to submenu cell %@, with error: %@", cell, error); + } else { + SDLLogD(@"Successfully opened application menu to submenu cell: %@", cell); + } + }]; + + return YES; +} + +#pragma mark - Build Deletes, Keeps, Adds + +- (void)sdl_startSubMenuUpdatesWithOldKeptCells:(NSArray *)oldKeptCells newKeptCells:(NSArray *)newKeptCells atIndex:(NSUInteger)startIndex { + if (oldKeptCells.count == 0 || startIndex >= oldKeptCells.count) { + self.inProgressUpdate = nil; + return; + } + + if (oldKeptCells[startIndex].subCells.count > 0) { + SDLDynamicMenuUpdateRunScore *tempScore = [SDLDynamicMenuUpdateAlgorithm compareOldMenuCells:oldKeptCells[startIndex].subCells updatedMenuCells:newKeptCells[startIndex].subCells]; + NSArray *deleteMenuStatus = tempScore.oldStatus; + NSArray *addMenuStatus = tempScore.updatedStatus; + + NSArray *cellsToDelete = [self sdl_filterDeleteMenuItemsWithOldMenuItems:oldKeptCells[startIndex].subCells basedOnStatusList:deleteMenuStatus]; + NSArray *cellsToAdd = [self sdl_filterAddMenuItemsWithNewMenuItems:newKeptCells[startIndex].subCells basedOnStatusList:addMenuStatus]; + + NSArray *oldKeeps = [self sdl_filterKeepMenuItemsWithOldMenuItems:oldKeptCells[startIndex].subCells basedOnStatusList:deleteMenuStatus]; + NSArray *newKeeps = [self sdl_filterKeepMenuItemsWithNewMenuItems:newKeptCells[startIndex].subCells basedOnStatusList:addMenuStatus]; + + [self sdl_updateIdsOnMenuCells:cellsToAdd parentId:newKeptCells[startIndex].cellId]; + [self transferCellIDFromOldCells:oldKeeps toKeptCells:newKeeps]; + + __weak typeof(self) weakself = self; + [self sdl_sendDeleteCurrentMenu:cellsToDelete withCompletionHandler:^(NSError * _Nullable error) { + [weakself sdl_sendUpdatedMenu:cellsToAdd usingMenu:weakself.menuCells[startIndex].subCells withCompletionHandler:^(NSError * _Nullable error) { + // After the first set of submenu cells were added and deleted we must find the next set of subcells untll we loop through all the elemetns + [weakself sdl_startSubMenuUpdatesWithOldKeptCells:oldKeptCells newKeptCells:newKeptCells atIndex:(startIndex + 1)]; + }]; + }]; + } else { + // After the first set of submenu cells were added and deleted we must find the next set of subcells untll we loop through all the elemetns + [self sdl_startSubMenuUpdatesWithOldKeptCells:oldKeptCells newKeptCells:newKeptCells atIndex:(startIndex + 1)]; + } +} + +- (NSArray *)sdl_filterDeleteMenuItemsWithOldMenuItems:(NSArray *)oldMenuCells basedOnStatusList:(NSArray *)oldStatusList { + NSMutableArray *deleteCells = [[NSMutableArray alloc] init]; + // The index of the status should corrleate 1-1 with the number of items in the menu + // [2,0,2,0] => [A,B,C,D] = [B,D] + for (NSUInteger index = 0; index < oldStatusList.count; index++) { + if (oldStatusList[index].integerValue == MenuCellStateDelete) { + [deleteCells addObject:oldMenuCells[index]]; + } + } + return [deleteCells copy]; +} + +- (NSArray *)sdl_filterAddMenuItemsWithNewMenuItems:(NSArray *)newMenuCells basedOnStatusList:(NSArray *)newStatusList { + NSMutableArray *addCells = [[NSMutableArray alloc] init]; + // The index of the status should corrleate 1-1 with the number of items in the menu + // [2,1,2,1] => [A,B,C,D] = [B,D] + for (NSUInteger index = 0; index < newStatusList.count; index++) { + if (newStatusList[index].integerValue == MenuCellStateAdd) { + [addCells addObject:newMenuCells[index]]; + } + } + return [addCells copy]; +} + +- (NSArray *)sdl_filterKeepMenuItemsWithOldMenuItems:(NSArray *)oldMenuCells basedOnStatusList:(NSArray *)keepStatusList { + NSMutableArray *keepMenuCells = [[NSMutableArray alloc] init]; + + for (NSUInteger index = 0; index < keepStatusList.count; index++) { + if (keepStatusList[index].integerValue == MenuCellStateKeep) { + [keepMenuCells addObject:oldMenuCells[index]]; + } + } + return [keepMenuCells copy]; +} + +- (NSArray *)sdl_filterKeepMenuItemsWithNewMenuItems:(NSArray *)newMenuCells basedOnStatusList:(NSArray *)keepStatusList { + NSMutableArray *keepMenuCells = [[NSMutableArray alloc] init]; + for (NSUInteger index = 0; index < keepStatusList.count; index++) { + if (keepStatusList[index].integerValue == MenuCellStateKeep) { + [keepMenuCells addObject:newMenuCells[index]]; + } + } + return [keepMenuCells copy]; +} + +- (void)transferCellIDFromOldCells:(NSArray *)oldCells toKeptCells:(NSArray *)newCells { + if (oldCells.count == 0) { return; } + for (NSUInteger i = 0; i < newCells.count; i++) { + newCells[i].cellId = oldCells[i].cellId; + } +} + +#pragma mark - Updating System + +- (void)sdl_startDynamicMenuUpdate { + SDLDynamicMenuUpdateRunScore *runScore = [SDLDynamicMenuUpdateAlgorithm compareOldMenuCells:self.oldMenuCells updatedMenuCells:self.menuCells]; + + NSArray *deleteMenuStatus = runScore.oldStatus; + NSArray *addMenuStatus = runScore.updatedStatus; + + NSArray *cellsToDelete = [self sdl_filterDeleteMenuItemsWithOldMenuItems:self.oldMenuCells basedOnStatusList:deleteMenuStatus]; + NSArray *cellsToAdd = [self sdl_filterAddMenuItemsWithNewMenuItems:self.menuCells basedOnStatusList:addMenuStatus]; + // These arrays should ONLY contain KEEPS. These will be used for SubMenu compares + NSArray *oldKeeps = [self sdl_filterKeepMenuItemsWithOldMenuItems:self.oldMenuCells basedOnStatusList:deleteMenuStatus]; + NSArray *newKeeps = [self sdl_filterKeepMenuItemsWithNewMenuItems:self.menuCells basedOnStatusList:addMenuStatus]; + + // Cells that will be added need new ids + [self sdl_updateIdsOnMenuCells:cellsToAdd parentId:ParentIdNotFound]; + + // Since we are creating a new Menu but keeping old cells we must firt transfer the old cellIDs to the new menus kept cells. + [self transferCellIDFromOldCells:oldKeeps toKeptCells:newKeeps]; + // Upload the artworks + NSArray *artworksToBeUploaded = [self sdl_findAllArtworksToBeUploadedFromCells:cellsToAdd]; + if (artworksToBeUploaded.count > 0) { + [self.fileManager uploadArtworks:artworksToBeUploaded completionHandler:^(NSArray * _Nonnull artworkNames, NSError * _Nullable error) { + if (error != nil) { + SDLLogE(@"Error uploading menu artworks: %@", error); + } + SDLLogD(@"Menu artworks uploaded"); + // Update cells with artworks once they're uploaded + __weak typeof(self) weakself = self; + [self sdl_updateMenuWithCellsToDelete:cellsToDelete cellsToAdd:cellsToAdd completionHandler:^(NSError * _Nullable error) { + [weakself sdl_startSubMenuUpdatesWithOldKeptCells:oldKeeps newKeptCells:newKeeps atIndex:0]; + }]; + }]; + } else { + // Cells have no artwork to load + __weak typeof(self) weakself = self; + [self sdl_updateMenuWithCellsToDelete:cellsToDelete cellsToAdd:cellsToAdd completionHandler:^(NSError * _Nullable error) { + [weakself sdl_startSubMenuUpdatesWithOldKeptCells:oldKeeps newKeptCells:newKeeps atIndex:0]; + }]; + } +} + +- (void)sdl_startNonDynamicMenuUpdate { + [self sdl_updateIdsOnMenuCells:self.menuCells parentId:ParentIdNotFound]; + NSArray *artworksToBeUploaded = [self sdl_findAllArtworksToBeUploadedFromCells:self.menuCells]; if (artworksToBeUploaded.count > 0) { [self.fileManager uploadArtworks:artworksToBeUploaded completionHandler:^(NSArray * _Nonnull artworkNames, NSError * _Nullable error) { @@ -155,16 +394,15 @@ - (void)setMenuCells:(NSArray *)menuCells { } SDLLogD(@"Menu artworks uploaded"); - [self sdl_updateWithCompletionHandler:nil]; + [self sdl_updateMenuWithCellsToDelete:self.oldMenuCells cellsToAdd:self.menuCells completionHandler:nil]; }]; + } else { + // Cells have no artwork to load + [self sdl_updateMenuWithCellsToDelete:self.oldMenuCells cellsToAdd:self.menuCells completionHandler:nil]; } - - [self sdl_updateWithCompletionHandler:nil]; } -#pragma mark - Updating System - -- (void)sdl_updateWithCompletionHandler:(nullable SDLMenuUpdateCompletionHandler)completionHandler { +- (void)sdl_updateMenuWithCellsToDelete:(NSArray *)deleteCells cellsToAdd:(NSArray *)addCells completionHandler:(nullable SDLMenuUpdateCompletionHandler)completionHandler { if (self.currentHMILevel == nil || [self.currentHMILevel isEqualToEnum:SDLHMILevelNone] || [self.currentSystemContext isEqualToEnum:SDLSystemContextMenu]) { @@ -178,10 +416,9 @@ - (void)sdl_updateWithCompletionHandler:(nullable SDLMenuUpdateCompletionHandler self.hasQueuedUpdate = YES; return; } - __weak typeof(self) weakself = self; - [self sdl_sendDeleteCurrentMenu:^(NSError * _Nullable error) { - [weakself sdl_sendCurrentMenu:^(NSError * _Nullable error) { + [self sdl_sendDeleteCurrentMenu:deleteCells withCompletionHandler:^(NSError * _Nullable error) { + [weakself sdl_sendUpdatedMenu:addCells usingMenu:weakself.menuCells withCompletionHandler:^(NSError * _Nullable error) { weakself.inProgressUpdate = nil; if (completionHandler != nil) { @@ -189,7 +426,7 @@ - (void)sdl_updateWithCompletionHandler:(nullable SDLMenuUpdateCompletionHandler } if (weakself.hasQueuedUpdate) { - [weakself sdl_updateWithCompletionHandler:nil]; + [weakself sdl_updateMenuWithCellsToDelete:deleteCells cellsToAdd:addCells completionHandler:nil]; weakself.hasQueuedUpdate = NO; } }]; @@ -198,14 +435,13 @@ - (void)sdl_updateWithCompletionHandler:(nullable SDLMenuUpdateCompletionHandler #pragma mark Delete Old Menu Items -- (void)sdl_sendDeleteCurrentMenu:(SDLMenuUpdateCompletionHandler)completionHandler { - if (self.oldMenuCells.count == 0) { +- (void)sdl_sendDeleteCurrentMenu:(nullable NSArray *)deleteMenuCells withCompletionHandler:(SDLMenuUpdateCompletionHandler)completionHandler { + if (deleteMenuCells.count == 0) { completionHandler(nil); return; } - NSArray *deleteMenuCommands = [self sdl_deleteCommandsForCells:self.oldMenuCells]; - self.oldMenuCells = @[]; + NSArray *deleteMenuCommands = [self sdl_deleteCommandsForCells:deleteMenuCells]; [self.connectionManager sendRequests:deleteMenuCommands progressHandler:nil completionHandler:^(BOOL success) { if (!success) { SDLLogW(@"Unable to delete all old menu commands"); @@ -219,31 +455,38 @@ - (void)sdl_sendDeleteCurrentMenu:(SDLMenuUpdateCompletionHandler)completionHand #pragma mark Send New Menu Items -- (void)sdl_sendCurrentMenu:(SDLMenuUpdateCompletionHandler)completionHandler { - if (self.menuCells.count == 0) { - SDLLogD(@"No main menu to send"); - completionHandler(nil); +/** + Creates add commands + @param updatedMenu The cells you will be adding + @param menu The list of all cells. This may be different then self.menuCells since this function is called on subcell cells as well. When comparing 2 sub menu cells this function will be passed the list of all subcells on that cell. + @param completionHandler handler + */ +- (void)sdl_sendUpdatedMenu:(NSArray *)updatedMenu usingMenu:(NSArray *)menu withCompletionHandler:(SDLMenuUpdateCompletionHandler)completionHandler { + if (self.menuCells.count == 0 || updatedMenu.count == 0) { + SDLLogD(@"There are no cells to update."); + completionHandler(nil); return; } NSArray *mainMenuCommands = nil; NSArray *subMenuCommands = nil; - if ([self sdl_findAllArtworksToBeUploadedFromCells:self.menuCells].count > 0 || ![self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameCommandIcon]) { + + if ([self sdl_findAllArtworksToBeUploadedFromCells:self.menuCells].count > 0 || ![self.windowCapability hasImageFieldOfName:SDLImageFieldNameCommandIcon]) { // Send artwork-less menu - mainMenuCommands = [self sdl_mainMenuCommandsForCells:self.menuCells withArtwork:NO]; - subMenuCommands = [self sdl_subMenuCommandsForCells:self.menuCells withArtwork:NO]; + mainMenuCommands = [self sdl_mainMenuCommandsForCells:updatedMenu withArtwork:NO usingIndexesFrom:menu]; + subMenuCommands = [self sdl_subMenuCommandsForCells:updatedMenu withArtwork:NO]; } else { // Send full artwork menu - mainMenuCommands = [self sdl_mainMenuCommandsForCells:self.menuCells withArtwork:YES]; - subMenuCommands = [self sdl_subMenuCommandsForCells:self.menuCells withArtwork:YES]; + mainMenuCommands = [self sdl_mainMenuCommandsForCells:updatedMenu withArtwork:YES usingIndexesFrom:menu]; + subMenuCommands = [self sdl_subMenuCommandsForCells:updatedMenu withArtwork:YES]; } self.inProgressUpdate = [mainMenuCommands arrayByAddingObjectsFromArray:subMenuCommands]; - + __block NSMutableDictionary *errors = [NSMutableDictionary dictionary]; __weak typeof(self) weakSelf = self; - [self.connectionManager sendRequests:mainMenuCommands progressHandler:^(__kindof SDLRPCRequest * _Nonnull request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error, float percentComplete) { + [self.connectionManager sendRequests:mainMenuCommands progressHandler:^void(__kindof SDLRPCRequest * _Nonnull request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error, float percentComplete) { if (error != nil) { errors[request] = error; } @@ -253,8 +496,7 @@ - (void)sdl_sendCurrentMenu:(SDLMenuUpdateCompletionHandler)completionHandler { completionHandler([NSError sdl_menuManager_failedToUpdateWithDictionary:errors]); return; } - - weakSelf.oldMenuCells = weakSelf.menuCells; + [weakSelf.connectionManager sendRequests:subMenuCommands progressHandler:^(__kindof SDLRPCRequest * _Nonnull request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error, float percentComplete) { if (error != nil) { errors[request] = error; @@ -274,16 +516,31 @@ - (void)sdl_sendCurrentMenu:(SDLMenuUpdateCompletionHandler)completionHandler { #pragma mark - Helpers +- (BOOL)sdl_isDynamicMenuUpdateActive:(SDLDynamicMenuUpdatesMode)dynamicMenuUpdatesMode { + switch (dynamicMenuUpdatesMode) { + case SDLDynamicMenuUpdatesModeForceOn: + return YES; + case SDLDynamicMenuUpdatesModeForceOff: + return NO; + case SDLDynamicMenuUpdatesModeOnWithCompatibility: +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + return ![self.systemCapabilityManager.displays.firstObject.displayName isEqualToString:SDLDisplayTypeGen38Inch]; +#pragma clang diagnostic pop + + } +} + #pragma mark Artworks - (NSArray *)sdl_findAllArtworksToBeUploadedFromCells:(NSArray *)cells { - if (![self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameCommandIcon]) { + if (![self.windowCapability hasImageFieldOfName:SDLImageFieldNameCommandIcon]) { return @[]; } NSMutableSet *mutableArtworks = [NSMutableSet set]; for (SDLMenuCell *cell in cells) { - if (cell.icon != nil && ![self.fileManager hasUploadedFile:cell.icon]) { + if ([self sdl_artworkNeedsUpload:cell.icon]) { [mutableArtworks addObject:cell.icon]; } @@ -295,6 +552,10 @@ - (void)sdl_sendCurrentMenu:(SDLMenuUpdateCompletionHandler)completionHandler { return [mutableArtworks allObjects]; } +- (BOOL)sdl_artworkNeedsUpload:(SDLArtwork *)artwork { + return (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && !artwork.isStaticIcon); +} + #pragma mark IDs - (void)sdl_updateIdsOnMenuCells:(NSArray *)menuCells parentId:(UInt32)parentId { @@ -325,16 +586,29 @@ - (void)sdl_updateIdsOnMenuCells:(NSArray *)menuCells parentId:(U } #pragma mark Commands / SubMenu RPCs - -- (NSArray *)sdl_mainMenuCommandsForCells:(NSArray *)cells withArtwork:(BOOL)shouldHaveArtwork { +/** + This method will receive the cells to be added and the updated menu array. It will then build an array of add commands using the correct index to position the new items in the correct location. + + @param cells that will be added to the menu, this array must contain only cells that are not already in the menu. + @param shouldHaveArtwork artwork bool + @param menu the new menu array, this array should contain all the values the develeoper has set to be included in the new menu. This is used for placing the newly added cells in the correct locaiton. + e.g. If the new menu array is [A, B, C, D] but only [C, D] are new we need to pass [A, B , C , D] so C and D can be added to index 2 and 3 respectively. + @return list of SDLRPCRequest addCommands + */ +- (NSArray *)sdl_mainMenuCommandsForCells:(NSArray *)cells withArtwork:(BOOL)shouldHaveArtwork usingIndexesFrom:(NSArray *)menu { NSMutableArray *mutableCommands = [NSMutableArray array]; - [cells enumerateObjectsUsingBlock:^(SDLMenuCell * _Nonnull cell, NSUInteger index, BOOL * _Nonnull stop) { - if (cell.subCells.count > 0) { - [mutableCommands addObject:[self sdl_subMenuCommandForMenuCell:cell withArtwork:shouldHaveArtwork position:(UInt16)index]]; - } else { - [mutableCommands addObject:[self sdl_commandForMenuCell:cell withArtwork:shouldHaveArtwork position:(UInt16)index]]; + + for (NSUInteger menuInteger = 0; menuInteger < menu.count; menuInteger++) { + for (NSUInteger updateCellsIndex = 0; updateCellsIndex < cells.count; updateCellsIndex++) { + if ([menu[menuInteger] isEqual:cells[updateCellsIndex]]) { + if (cells[updateCellsIndex].subCells.count > 0) { + [mutableCommands addObject:[self sdl_subMenuCommandForMenuCell:cells[updateCellsIndex] withArtwork:shouldHaveArtwork position:(UInt16)menuInteger]]; + } else { + [mutableCommands addObject:[self sdl_commandForMenuCell:cells[updateCellsIndex] withArtwork:shouldHaveArtwork position:(UInt16)menuInteger]]; + } + } } - }]; + } return [mutableCommands copy]; } @@ -352,14 +626,15 @@ - (void)sdl_updateIdsOnMenuCells:(NSArray *)menuCells parentId:(U - (NSArray *)sdl_allCommandsForCells:(NSArray *)cells withArtwork:(BOOL)shouldHaveArtwork { NSMutableArray *mutableCommands = [NSMutableArray array]; - [cells enumerateObjectsUsingBlock:^(SDLMenuCell * _Nonnull cell, NSUInteger index, BOOL * _Nonnull stop) { - if (cell.subCells.count > 0) { - [mutableCommands addObject:[self sdl_subMenuCommandForMenuCell:cell withArtwork:shouldHaveArtwork position:(UInt16)index]]; - [mutableCommands addObjectsFromArray:[self sdl_allCommandsForCells:cell.subCells withArtwork:shouldHaveArtwork]]; + + for (NSUInteger cellIndex = 0; cellIndex < cells.count; cellIndex++) { + if (cells[cellIndex].subCells.count > 0) { + [mutableCommands addObject:[self sdl_subMenuCommandForMenuCell:cells[cellIndex] withArtwork:shouldHaveArtwork position:(UInt16)cellIndex]]; + [mutableCommands addObjectsFromArray:[self sdl_allCommandsForCells:cells[cellIndex].subCells withArtwork:shouldHaveArtwork]]; } else { - [mutableCommands addObject:[self sdl_commandForMenuCell:cell withArtwork:shouldHaveArtwork position:(UInt16)index]]; + [mutableCommands addObject:[self sdl_commandForMenuCell:cells[cellIndex] withArtwork:shouldHaveArtwork position:(UInt16)cellIndex]]; } - }]; + } return [mutableCommands copy]; } @@ -373,16 +648,24 @@ - (SDLAddCommand *)sdl_commandForMenuCell:(SDLMenuCell *)cell withArtwork:(BOOL) params.position = @(position); command.menuParams = params; - command.vrCommands = cell.voiceCommands; - command.cmdIcon = (cell.icon && shouldHaveArtwork) ? [[SDLImage alloc] initWithName:cell.icon.name isTemplate:cell.icon.isTemplate] : nil; + command.vrCommands = (cell.voiceCommands.count == 0) ? nil : cell.voiceCommands; + command.cmdIcon = (cell.icon && shouldHaveArtwork) ? cell.icon.imageRPC : nil; command.cmdID = @(cell.cellId); return command; } - (SDLAddSubMenu *)sdl_subMenuCommandForMenuCell:(SDLMenuCell *)cell withArtwork:(BOOL)shouldHaveArtwork position:(UInt16)position { - SDLImage *icon = (shouldHaveArtwork && (cell.icon.name != nil)) ? [[SDLImage alloc] initWithName:cell.icon.name isTemplate:cell.icon.isTemplate] : nil; - return [[SDLAddSubMenu alloc] initWithId:cell.cellId menuName:cell.title menuIcon:icon position:(UInt8)position]; + SDLImage *icon = (shouldHaveArtwork && (cell.icon.name != nil)) ? cell.icon.imageRPC : nil; + + SDLMenuLayout submenuLayout = nil; + if (cell.submenuLayout && [self.systemCapabilityManager.defaultMainWindowCapability.menuLayoutsAvailable containsObject:cell.submenuLayout]) { + submenuLayout = cell.submenuLayout; + } else { + submenuLayout = self.menuConfiguration.defaultSubmenuLayout; + } + + return [[SDLAddSubMenu alloc] initWithId:cell.cellId menuName:cell.title menuLayout:submenuLayout menuIcon:icon position:(UInt8)position]; } #pragma mark - Calling handlers @@ -411,32 +694,18 @@ - (void)sdl_commandNotification:(SDLRPCNotificationNotification *)notification { [self sdl_callHandlerForCells:self.menuCells command:onCommand]; } -- (void)sdl_registerResponse:(SDLRPCResponseNotification *)notification { - SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response; - - if (!response.success.boolValue) { return; } - if (response.displayCapabilities == nil) { - SDLLogE(@"RegisterAppInterface succeeded but didn't send a display capabilities. A lot of things will probably break."); - return; - } - - self.displayCapabilities = response.displayCapabilities; +- (void)sdl_displayCapabilityDidUpdate:(SDLSystemCapability *)systemCapability { + // We won't use the object in the parameter but the convenience method of the system capability manager + self.windowCapability = self.systemCapabilityManager.defaultMainWindowCapability; } -- (void)sdl_displayLayoutResponse:(SDLRPCResponseNotification *)notification { - SDLSetDisplayLayoutResponse *response = (SDLSetDisplayLayoutResponse *)notification.response; +- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { + SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; - if (!response.success.boolValue) { return; } - if (response.displayCapabilities == nil) { - SDLLogE(@"SetDisplayLayout succeeded but didn't send a display capabilities. A lot of things will probably break."); + if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { return; } - - self.displayCapabilities = response.displayCapabilities; -} - -- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { - SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; + SDLHMILevel oldHMILevel = self.currentHMILevel; self.currentHMILevel = hmiStatus.hmiLevel; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManagerConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManagerConstants.h new file mode 100644 index 0000000..5e23971 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManagerConstants.h @@ -0,0 +1,39 @@ +// +// SDLMenuManagerConstants.h +// SmartDeviceLink +// +// Created by Justin Gluck on 5/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + + +/// Dynamic Menu Manager Mode +/// +/// When on this feature will smart arrange a new menu comparing it to the old menu if one exists. +typedef NS_ENUM(NSUInteger, SDLDynamicMenuUpdatesMode) { + /// Forces on compatibility mode. This will force the menu manager to delete and re-add each menu item for every menu update. This mode is generally not advised due to performance issues. + SDLDynamicMenuUpdatesModeForceOn = 0, + + /// This mode forces the menu manager to always dynamically update menu items for each menu update. This will provide the best performance but may cause ordering issues on some SYNC Gen 3 head units. + SDLDynamicMenuUpdatesModeForceOff, + + /// This mode checks whether the phone is connected to a SYNC Gen 3 head unit, which has known menu ordering issues. If it is, it will always delete and re-add every menu item, if not, it will dynamically update the menus. + SDLDynamicMenuUpdatesModeOnWithCompatibility +}; + + +/// Menu cell state +/// +/// Cell state that tells the menu manager what it should do with a given SDLMenuCell +typedef NS_ENUM(NSUInteger, MenuCellState) { + /// Marks the cell to be deleted + MenuCellStateDelete = 0, + + /// Marks the cell to be added + MenuCellStateAdd, + + /// Marks the cell to be kept + MenuCellStateKeep +}; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.h index 60f05d4..89d807f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.h @@ -14,8 +14,18 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLMenuParams : SDLRPCStruct +/// Convenience init with required parameters. +/// +/// @param menuName The menu name +/// @return An instance of the add submenu class - (instancetype)initWithMenuName:(NSString *)menuName; +/// Convenience init with all parameters. +/// +/// @param menuName The menu name +/// @param parentId The unique ID of an existing submenu to which a command will be added +/// @param position The position within the items of the parent Command Menu +/// @return An instance of the add submenu class - (instancetype)initWithMenuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.m index f921ef3..0fcfbd6 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.m @@ -5,7 +5,7 @@ #import "SDLMenuParams.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -35,27 +35,27 @@ - (instancetype)initWithMenuName:(NSString *)menuName { } - (void)setParentID:(nullable NSNumber *)parentID { - [store sdl_setObject:parentID forName:SDLNameParentId]; + [self.store sdl_setObject:parentID forName:SDLRPCParameterNameParentId]; } - (nullable NSNumber *)parentID { - return [store sdl_objectForName:SDLNameParentId]; + return [self.store sdl_objectForName:SDLRPCParameterNameParentId ofClass:NSNumber.class error:nil]; } - (void)setPosition:(nullable NSNumber *)position { - [store sdl_setObject:position forName:SDLNamePosition]; + [self.store sdl_setObject:position forName:SDLRPCParameterNamePosition]; } - (nullable NSNumber *)position { - return [store sdl_objectForName:SDLNamePosition]; + return [self.store sdl_objectForName:SDLRPCParameterNamePosition ofClass:NSNumber.class error:nil]; } - (void)setMenuName:(NSString *)menuName { - [store sdl_setObject:menuName forName:SDLNameMenuName]; + [self.store sdl_setObject:menuName forName:SDLRPCParameterNameMenuName]; } - (NSString *)menuName { - return [store sdl_objectForName:SDLNameMenuName]; + return [self.store sdl_objectForName:SDLRPCParameterNameMenuName ofClass:NSString.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.h index 50f5830..4b875b8 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.h @@ -11,6 +11,7 @@ NS_ASSUME_NONNULL_BEGIN +/// Metadata for Show fields @interface SDLMetadataTags : SDLRPCStruct /** @@ -18,6 +19,7 @@ NS_ASSUME_NONNULL_BEGIN */ - (instancetype)initWithTextFieldTypes:(nullable NSArray *)mainField1 mainField2:(nullable NSArray *)mainField2; +/// Constructs a newly allocated SDLMetadataType with all parameters - (instancetype)initWithTextFieldTypes:(nullable NSArray *)mainField1 mainField2:(nullable NSArray *)mainField2 mainField3:(nullable NSArray *)mainField3 mainField4:(nullable NSArray *)mainField4; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.m index 656f887..d61d723 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.m @@ -9,7 +9,7 @@ #import "SDLMetadataTags.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -42,35 +42,35 @@ - (instancetype)initWithTextFieldTypes:(nullable NSArray *)main } - (void)setMainField1:(nullable NSArray *)mainField1 { - [store sdl_setObject:mainField1 forName:SDLNameMainField1]; + [self.store sdl_setObject:mainField1 forName:SDLRPCParameterNameMainField1]; } - (nullable NSArray *)mainField1 { - return [store sdl_objectForName:SDLNameMainField1]; + return [self.store sdl_enumsForName:SDLRPCParameterNameMainField1 error:nil]; } - (void)setMainField2:(nullable NSArray *)mainField2 { - [store sdl_setObject:mainField2 forName:SDLNameMainField2]; + [self.store sdl_setObject:mainField2 forName:SDLRPCParameterNameMainField2]; } - (nullable NSArray *)mainField2 { - return [store sdl_objectForName:SDLNameMainField2]; + return [self.store sdl_enumsForName:SDLRPCParameterNameMainField2 error:nil]; } - (void)setMainField3:(nullable NSArray *)mainField3 { - [store sdl_setObject:mainField3 forName:SDLNameMainField3]; + [self.store sdl_setObject:mainField3 forName:SDLRPCParameterNameMainField3]; } - (nullable NSArray *)mainField3 { - return [store sdl_objectForName:SDLNameMainField3]; + return [self.store sdl_enumsForName:SDLRPCParameterNameMainField3 error:nil]; } - (void)setMainField4:(nullable NSArray *)mainField4 { - [store sdl_setObject:mainField4 forName:SDLNameMainField4]; + [self.store sdl_setObject:mainField4 forName:SDLRPCParameterNameMainField4]; } - (nullable NSArray *)mainField4 { - return [store sdl_objectForName:SDLNameMainField4]; + return [self.store sdl_enumsForName:SDLRPCParameterNameMainField4 error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.h index cd65280..3ed7bfd 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.h @@ -77,6 +77,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic) SDLModuleType moduleType; +/** + Id of a module, published by System Capability. + + Optional + */ +@property (nullable, strong, nonatomic) NSString *moduleId; + /** The radio control data diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.m index 947f8b5..9595deb 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.m @@ -3,7 +3,7 @@ // #import "SDLModuleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLClimateControlData.h" #import "SDLRadioControlData.h" #import "SDLSeatControlData.h" @@ -89,59 +89,69 @@ - (instancetype)initWithSeatControlData:(SDLSeatControlData *)seatControlData { } - (void)setModuleType:(SDLModuleType)moduleType { - [store sdl_setObject:moduleType forName:SDLNameModuleType]; + [self.store sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; } - (SDLModuleType)moduleType { - return [store sdl_objectForName:SDLNameModuleType]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; +} + +- (void)setModuleId:(nullable NSString *)moduleId { + [self.store sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId]; +} + +- (nullable NSString *)moduleId { + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameModuleId error:&error]; } - (void)setRadioControlData:(nullable SDLRadioControlData *)radioControlData { - [store sdl_setObject:radioControlData forName:SDLNameRadioControlData]; + [self.store sdl_setObject:radioControlData forName:SDLRPCParameterNameRadioControlData]; } - (nullable SDLRadioControlData *)radioControlData { - return [store sdl_objectForName:SDLNameRadioControlData ofClass:SDLRadioControlData.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameRadioControlData ofClass:SDLRadioControlData.class error:nil]; } - (void)setClimateControlData:(nullable SDLClimateControlData *)climateControlData { - [store sdl_setObject:climateControlData forName:SDLNameClimateControlData]; + [self.store sdl_setObject:climateControlData forName:SDLRPCParameterNameClimateControlData]; } - (nullable SDLClimateControlData *)climateControlData { - return [store sdl_objectForName:SDLNameClimateControlData ofClass:SDLClimateControlData.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameClimateControlData ofClass:SDLClimateControlData.class error:nil]; } - (void)setSeatControlData:(nullable SDLSeatControlData *)seatControlData { - [store sdl_setObject:seatControlData forName:SDLNameSeatControlData]; + [self.store sdl_setObject:seatControlData forName:SDLRPCParameterNameSeatControlData]; } - (nullable SDLSeatControlData *)seatControlData { - return [store sdl_objectForName:SDLNameSeatControlData ofClass:SDLSeatControlData.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameSeatControlData ofClass:SDLSeatControlData.class error:nil]; } - (void)setAudioControlData:(nullable SDLAudioControlData *)audioControlData { - [store sdl_setObject:audioControlData forName:SDLNameAudioControlData]; + [self.store sdl_setObject:audioControlData forName:SDLRPCParameterNameAudioControlData]; } - (nullable SDLAudioControlData *)audioControlData { - return [store sdl_objectForName:SDLNameAudioControlData ofClass:SDLAudioControlData.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameAudioControlData ofClass:SDLAudioControlData.class error:nil]; } - (void)setLightControlData:(nullable SDLLightControlData *)lightControlData { - [store sdl_setObject:lightControlData forName:SDLNameLightControlData]; + [self.store sdl_setObject:lightControlData forName:SDLRPCParameterNameLightControlData]; } - (nullable SDLLightControlData *)lightControlData { - return [store sdl_objectForName:SDLNameLightControlData ofClass:SDLLightControlData.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameLightControlData ofClass:SDLLightControlData.class error:nil]; } - (void)setHmiSettingsControlData:(nullable SDLHMISettingsControlData *)hmiSettingsControlData { - [store sdl_setObject:hmiSettingsControlData forName:SDLNameHmiSettingsControlData]; + [self.store sdl_setObject:hmiSettingsControlData forName:SDLRPCParameterNameHmiSettingsControlData]; } - (nullable SDLHMISettingsControlData *)hmiSettingsControlData { - return [store sdl_objectForName:SDLNameHmiSettingsControlData ofClass:SDLHMISettingsControlData.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameHmiSettingsControlData ofClass:SDLHMISettingsControlData.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.h new file mode 100644 index 0000000..f8dabce --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.h @@ -0,0 +1,50 @@ +// +// SDLModuleInfo.h +// SmartDeviceLink +// +// Created by standa1 on 7/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessage.h" +#import "SDLGrid.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Contains information about a RC module. + */ +@interface SDLModuleInfo : SDLRPCStruct + +/** + * UUID of a module. "moduleId + moduleType" uniquely identify a module. + * + * Max string length 100 chars + + Required + */ +@property (nullable, strong, nonatomic) NSString *moduleId; + +/** + * Location of a module. + * Optional + */ +@property (nullable, strong, nonatomic) SDLGrid *location; + +/** + * Service area of a module. + * Optional + */ +@property (nullable, strong, nonatomic) SDLGrid *serviceArea; + +/** + * Allow multiple users/apps to access the module or not + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *allowMultipleAccess; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.m new file mode 100644 index 0000000..46a95e6 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.m @@ -0,0 +1,52 @@ +// +// SDLModuleInfo.m +// SmartDeviceLink +// +// Created by standa1 on 7/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLModuleInfo.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +@implementation SDLModuleInfo + +- (void)setModuleId:(NSString *)moduleId { + [self.store sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId]; +} + +- (NSString *)moduleId { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error]; +} + +- (void)setLocation:(nullable SDLGrid *)location { + [self.store sdl_setObject:location forName:SDLRPCParameterNameLocation]; +} + +- (nullable SDLGrid *)location { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLocation ofClass:SDLGrid.class error:&error]; +} + +- (void)setServiceArea:(nullable SDLGrid *)serviceArea { + [self.store sdl_setObject:serviceArea forName:SDLRPCParameterNameServiceArea]; +} + +- (nullable SDLGrid *)serviceArea { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameServiceArea ofClass:SDLGrid.class error:&error]; +} + +- (void)setAllowMultipleAccess:(nullable NSNumber *)allowMultipleAccess { + [self.store sdl_setObject:allowMultipleAccess forName:SDLRPCParameterNameAllowMultipleAccess]; +} + +- (nullable NSNumber *)allowMultipleAccess { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameAllowMultipleAccess ofClass:NSNumber.class error:&error]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.h new file mode 100644 index 0000000..03b033a --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.h @@ -0,0 +1,52 @@ +// +// SDLMsgVersion.h +// SmartDeviceLink +// +// Created by Justin Gluck on 7/18/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCStruct.h" + +NS_ASSUME_NONNULL_BEGIN +/** + * Specifies the version number of the SDL V4 interface. This is used by both the application and SDL to declare what interface version each is using. + * + * @since SDL 1.0 + */ +@interface SDLMsgVersion : SDLRPCStruct + +/** + * Convenience init for all parameters. + * + * @param majorVersion Major version + * @param minorVersion Minor version + * @param patchVersion Patch version + * @return A SDLMsgVersion object + */ +- (instancetype)initWithMajorVersion:(UInt8)majorVersion minorVersion:(UInt8)minorVersion patchVersion:(UInt8)patchVersion; + +/** + * The major version indicates versions that is not-compatible to previous versions + * + * Required, Integer, 1 - 10 + */ +@property (strong, nonatomic) NSNumber *majorVersion; + +/** + * The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality) + * + * Required, Integer, 0 - 1000 + */ +@property (strong, nonatomic) NSNumber *minorVersion; + +/** + * Allows backward-compatible fixes to the API without increasing the minor version of the interface + * + * Optional, Integer, 0 - 1000 + */ +@property (strong, nonatomic, nullable) NSNumber *patchVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.m new file mode 100644 index 0000000..dce291b --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.m @@ -0,0 +1,58 @@ +// +// SDLMsgVersion.m +// SmartDeviceLink +// +// Created by Justin Gluck on 7/18/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLMsgVersion.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +@implementation SDLMsgVersion + +- (instancetype)initWithMajorVersion:(UInt8)majorVersion minorVersion:(UInt8)minorVersion patchVersion:(UInt8)patchVersion { + self = [self init]; + if (!self) { + return nil; + } + + self.majorVersion = @(majorVersion); + self.minorVersion = @(minorVersion); + self.patchVersion = @(patchVersion); + + return self; +} + +- (void)setMajorVersion:(NSNumber *)majorVersion { + [self.store sdl_setObject:majorVersion forName:SDLRPCParameterNameMajorVersion]; +} + +- (NSNumber *)majorVersion { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMajorVersion ofClass:NSNumber.class error:&error]; +} + +- (void)setMinorVersion:(NSNumber *)minorVersion { + [self.store sdl_setObject:minorVersion forName:SDLRPCParameterNameMinorVersion]; +} + +- (NSNumber *)minorVersion { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMinorVersion ofClass:NSNumber.class error:&error]; +} + +- (void)setPatchVersion:(nullable NSNumber *)patchVersion { + [self.store sdl_setObject:patchVersion forName:SDLRPCParameterNamePatchVersion]; +} + +- (nullable NSNumber *)patchVersion { + return [self.store sdl_objectForName:SDLRPCParameterNamePatchVersion ofClass:NSNumber.class error:nil]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"%@.%@.%@", self.majorVersion, self.minorVersion, self.patchVersion]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMutableDataQueue.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMutableDataQueue.m index a2a98f4..0640749 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMutableDataQueue.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMutableDataQueue.m @@ -42,9 +42,9 @@ - (NSMutableData *_Nullable)frontBuffer { NSMutableData *dataAtFront = nil; @synchronized(self) { - if (self.elements.count) { + if (self.elements.count > 0) { // The front of the queue is always at index 0 - dataAtFront = self.elements[0]; + dataAtFront = self.elements.firstObject; self.frontDequeued = YES; } } @@ -54,6 +54,7 @@ - (NSMutableData *_Nullable)frontBuffer { - (void)popBuffer { @synchronized(self) { + if (self.elements.count <= 0) { return; } [self.elements removeObjectAtIndex:0]; } } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMyKey.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMyKey.m index fc7f730..6ed3840 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMyKey.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMyKey.m @@ -4,7 +4,7 @@ #import "SDLMyKey.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLVehicleDataStatus.h" NS_ASSUME_NONNULL_BEGIN @@ -12,11 +12,12 @@ @implementation SDLMyKey - (void)setE911Override:(SDLVehicleDataStatus)e911Override { - [store sdl_setObject:e911Override forName:SDLNameE911Override]; + [self.store sdl_setObject:e911Override forName:SDLRPCParameterNameE911Override]; } - (SDLVehicleDataStatus)e911Override { - return [store sdl_objectForName:SDLNameE911Override]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameE911Override error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNames.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNames.h deleted file mode 100644 index 514899a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNames.h +++ /dev/null @@ -1,650 +0,0 @@ -// SDLNames.h -// - -#import -#import "SDLMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef NSString* SDLName SDL_SWIFT_ENUM; - -extern SDLName const SDLNameACEnable; -extern SDLName const SDLNameACEnableAvailable; -extern SDLName const SDLNameACMaxEnable; -extern SDLName const SDLNameACMaxEnableAvailable; -extern SDLName const SDLNameAccelerationPedalPosition; -extern SDLName const SDLNameAction; -extern SDLName const SDLNameActual; -extern SDLName const SDLNameAddCommand; -extern SDLName const SDLNameAddress; -extern SDLName const SDLNameAddressLines; -extern SDLName const SDLNameAddSubMenu; -extern SDLName const SDLNameAdministrativeArea; -extern SDLName const SDLNameAirbagStatus; -extern SDLName const SDLNameAlert; -extern SDLName const SDLNameAlertManeuver; -extern SDLName const SDLNameAlertText1; -extern SDLName const SDLNameAlertText2; -extern SDLName const SDLNameAlertText3; -extern SDLName const SDLNameAlignment; -extern SDLName const SDLNameAllocatedModules; -extern SDLName const SDLNameAllowed; -extern SDLName const SDLNameAltitude; -extern SDLName const SDLNameAltitudeMeters; -extern SDLName const SDLNameAmbientLightSensorStatus; -extern SDLName const SDLNameAmbientLightStatus; -extern SDLName const SDLNameAppBundleId; -extern SDLName const SDLNameAppHMIType; -extern SDLName const SDLNameAppId; -extern SDLName const SDLNameAppInfo; -extern SDLName const SDLNameAppName; -extern SDLName const SDLNameAppDisplayName; -extern SDLName const SDLNameAppVersion; -extern SDLName const SDLNameAudioControlCapabilities; -extern SDLName const SDLNameAudioControlData; -extern SDLName const SDLNameAudioPassThruCapabilities; -extern SDLName const SDLNameAudioPassThruDisplayText1; -extern SDLName const SDLNameAudioPassThruDisplayText2; -extern SDLName const SDLNameAudioStreamingIndicator; -extern SDLName const SDLNameAudioStreamingState; -extern SDLName const SDLNameAudioType; -extern SDLName const SDLNameAutoCompleteText; -extern SDLName const SDLNameAutoModeEnable; -extern SDLName const SDLNameAutoModeEnableAvailable; -extern SDLName const SDLNameAuxECallNotificationStatus; -extern SDLName const SDLNameAvailableHDs; -extern SDLName const SDLNameAvailableHDsAvailable; -extern SDLName const SDLNameBackgroundColor; -extern SDLName const SDLNameBackTiltAngle; -extern SDLName const SDLNameBackTiltAngleAvailable; -extern SDLName const SDLNameBackVerticalPosition; -extern SDLName const SDLNameBackVerticalPositionAvailable; -extern SDLName const SDLNameBand; -extern SDLName const SDLNameBatteryLevelStatus; -extern SDLName const SDLNameBeltStatus; -extern SDLName const SDLNameBitsPerSample; -extern SDLName const SDLNameBodyInformation; -extern SDLName const SDLNameBlue; -extern SDLName const SDLNameBluetoothIconOn; -extern SDLName const SDLNameBulkData; -extern SDLName const SDLNameButtonCapabilities; -extern SDLName const SDLNameButtonEventMode; -extern SDLName const SDLNameButtonName; -extern SDLName const SDLNameButtonPress; -extern SDLName const SDLNameButtonPressMode; -extern SDLName const SDLNameColor; -extern SDLName const SDLNameCoolingEnabled; -extern SDLName const SDLNameCoolingEnabledAvailable; -extern SDLName const SDLNameCoolingLevel; -extern SDLName const SDLNameCoolingLevelAvailable; -extern SDLName const SDLNameCoordinate; -extern SDLName const SDLNameCallActive; -extern SDLName const SDLNameCarModeStatus; -extern SDLName const SDLNameCarrier; -extern SDLName const SDLNameChangeRegistration; -extern SDLName const SDLNameChannelId; -extern SDLName const SDLNameChannelName; -extern SDLName const SDLNameChannelSetting; -extern SDLName const SDLNameCharacterSet; -extern SDLName const SDLNameChoiceId; -extern SDLName const SDLNameChoiceSet; -extern SDLName const SDLNameCirculateAirEnable; -extern SDLName const SDLNameCirculateAirEnableAvailable; -extern SDLName const SDLNameClimateControlData; -extern SDLName const SDLNameClimateControlCapabilities; -extern SDLName const SDLNameClusterModes; -extern SDLName const SDLNameClusterModeStatus; -extern SDLName const SDLNameCommandIcon; -extern SDLName const SDLNameCommandId; -extern SDLName const SDLNameCompassDirection; -extern SDLName const SDLNameCorrelationId; -extern SDLName const SDLNameCountryCode; -extern SDLName const SDLNameCountryName; -extern SDLName const SDLNameCRC; -extern SDLName const SDLNameCreateInteractionChoiceSet; -extern SDLName const SDLNameClockText; -extern SDLName const SDLNameCurrentTemperature; -extern SDLName const SDLNameCushion; -extern SDLName const SDLNameCustomButtonId; -extern SDLName const SDLNameCustomPresets; -extern SDLName const SDLNameData; -extern SDLName const SDLNameDataResult; -extern SDLName const SDLNameDataType; -extern SDLName const SDLNameDay; -extern SDLName const SDLNameDayColorScheme; -extern SDLName const SDLNameDefrostZone; -extern SDLName const SDLNameDefrostZoneAvailable; -extern SDLName const SDLNameDeleteCommand; -extern SDLName const SDLNameDeleteFile; -extern SDLName const SDLNameDeleteInteractionChoiceSet; -extern SDLName const SDLNameDeleteSubMenu; -extern SDLName const SDLNameDeliveryMode; -extern SDLName const SDLNameDensity; -extern SDLName const SDLNameDensityAvailable; -extern SDLName const SDLNameDesiredTemperature; -extern SDLName const SDLNameDesiredTemperatureAvailable; -extern SDLName const SDLNameDeviceInfo; -extern SDLName const SDLNameDeviceStatus; -extern SDLName const SDLNameDiagnosticMessage; -extern SDLName const SDLNameDialNumber; -extern SDLName const SDLNameDialNumberEnabled; -extern SDLName const SDLNameDIDLocation; -extern SDLName const SDLNameDIDResult; -extern SDLName const SDLNameDimension; -extern SDLName const SDLNameDisplayCapabilities; -extern SDLName const SDLNameDisplayMode; -extern SDLName const SDLNameDisplayModeUnitAvailable; -extern SDLName const SDLNameDisplayLayout; -extern SDLName const SDLNameDisplayName; -extern SDLName const SDLNameDisplayType; -extern SDLName const SDLNameDistanceUnit; -extern SDLName const SDLNameDistanceToEmpty; -extern SDLName const SDLNameDistanceToManeuver; -extern SDLName const SDLNameDistanceToManeuverScale; -extern SDLName const SDLNameDistanceUnitAvailable; -extern SDLName const SDLNameDoublePressAvailable; -extern SDLName const SDLNameDriverAirbagDeployed; -extern SDLName const SDLNameDriverBeltDeployed; -extern SDLName const SDLNameDriverBraking; -extern SDLName const SDLNameDriverBuckleBelted; -extern SDLName const SDLNameDriverCurtainAirbagDeployed; -extern SDLName const SDLNameDriverDistractionStatus; -extern SDLName const SDLNameDriverDoorAjar; -extern SDLName const SDLNameDriverKneeAirbagDeployed; -extern SDLName const SDLNameDriverSideAirbagDeployed; -extern SDLName const SDLNameDTC; -extern SDLName const SDLNameDTCMask; -extern SDLName const SDLNameDualModeEnable; -extern SDLName const SDLNameDualModeEnableAvailable; -extern SDLName const SDLNameDuration; -extern SDLName const SDLNameE911Override; -extern SDLName const SDLNameECallConfirmationStatus; -extern SDLName const SDLNameECallEventActive; -extern SDLName const SDLNameECallInfo; -extern SDLName const SDLNameECallNotificationStatus; -extern SDLName const SDLNameECUHeader; -extern SDLName const SDLNameECUName; -extern SDLName const SDLNameElectronicParkBrakeStatus; -extern SDLName const SDLNameEmergencyEvent; -extern SDLName const SDLNameEmergencyEventType; -extern SDLName const SDLNameEncodedSyncPData; -extern SDLName const SDLNameEndAudioPassThru; -extern SDLName const SDLNameEndTime; -extern SDLName const SDLNameEngineOilLife; -extern SDLName const SDLNameEngineTorque; -extern SDLName const SDLNameEqualizerAvailable; -extern SDLName const SDLNameEqualizerMaxChannelId; -extern SDLName const SDLNameEqualizerSettings; -extern SDLName const SDLNameETA; -extern SDLName const SDLNameEvent; -extern SDLName const SDLNameExternalTemperature; -extern SDLName const SDLNameFanSpeed; -extern SDLName const SDLNameFanSpeedAvailable; -extern SDLName const SDLNameFCCFacilityId; -extern SDLName const SDLNameFilename; -extern SDLName const SDLNameFilenames; -extern SDLName const SDLNameFileType; -extern SDLName const SDLNameFirmness; -extern SDLName const SDLNameFirmwareRevision; -extern SDLName const SDLNameFreeModules; -extern SDLName const SDLNameFrequencyInteger; -extern SDLName const SDLNameFrequencyFraction; -extern SDLName const SDLNameFrontVerticalPosition; -extern SDLName const SDLNameFrontVerticalPositionAvailable; -extern SDLName const SDLNameFuelCutoffStatus; -extern SDLName const SDLNameFuelLevel; -extern SDLName const SDLNameFuelLevelState; -extern SDLName const SDLNameFuelMaintenanceMode; -extern SDLName const SDLNameFuelRange; -extern SDLName const SDLNameFullAppID; -extern SDLName const SDLNameGenericResponse; -extern SDLName const SDLNameGetDTCs; -extern SDLName const SDLNameGetInteriorVehicleData; -extern SDLName const SDLNameGetSystemCapability; -extern SDLName const SDLNameGetVehicleData; -extern SDLName const SDLNameGetWayPoints; -extern SDLName const SDLNameGetWayPointsEnabled; -extern SDLName const SDLNameGPS; -extern SDLName const SDLNameGraphic; -extern SDLName const SDLNameGraphicSupported; -extern SDLName const SDLNameGreen; -extern SDLName const SDLNameHapticRectData; -extern SDLName const SDLNameHapticSpatialDataSupported; -extern SDLName const SDLNameHardware; -extern SDLName const SDLNameHashId; -extern SDLName const SDLNameHDOP; -extern SDLName const SDLNameHDChannel; -extern SDLName const SDLNameHDChannelAvailable; -extern SDLName const SDLNameHDRadioEnable; -extern SDLName const SDLNameHDRadioEnableAvailable; -extern SDLName const SDLNameHeading; -extern SDLName const SDLNameHeadLampStatus; -extern SDLName const SDLNameHeadSupportHorizontalPosition; -extern SDLName const SDLNameHeadSupportHorizontalPositionAvailable; -extern SDLName const SDLNameHeadSupportVerticalPosition; -extern SDLName const SDLNameHeadSupportVerticalPositionAvailable; -extern SDLName const SDLNameHeatingLevel; -extern SDLName const SDLNameHeatingLevelAvailable; -extern SDLName const SDLNameHeatingEnabled; -extern SDLName const SDLNameHeatingEnabledAvailable; -extern SDLName const SDLNameHeatedSteeringWheelAvailable; -extern SDLName const SDLNameHeatedWindshieldAvailable; -extern SDLName const SDLNameHeatedRearWindowAvailable; -extern SDLName const SDLNameHeatedMirrorsAvailable; -extern SDLName const SDLNameHeatedSteeringWheelEnable; -extern SDLName const SDLNameHeatedWindshieldEnable; -extern SDLName const SDLNameHeatedRearWindowEnable; -extern SDLName const SDLNameHeatedMirrorsEnable; -extern SDLName const SDLNameHeight; -extern SDLName const SDLNameHelpPrompt; -extern SDLName const SDLNameHighBeamsOn; -extern SDLName const SDLNameHMICapabilities; -extern SDLName const SDLNameHMIDisplayLanguage; -extern SDLName const SDLNameHMIDisplayLanguageDesired; -extern SDLName const SDLNameHMILevel; -extern SDLName const SDLNameHMIPermissions; -extern SDLName const SDLNameHmiSettingsControlCapabilities; -extern SDLName const SDLNameHmiSettingsControlData; -extern SDLName const SDLNameHMIZoneCapabilities; -extern SDLName const SDLNameHorizontalPosition; -extern SDLName const SDLNameHorizontalPositionAvailable; -extern SDLName const SDLNameHour; -extern SDLName const SDLNameHours; -extern SDLName const SDLNameIconResumed; -extern SDLName const SDLNameId; -extern SDLName const SDLNameIgnitionStableStatus; -extern SDLName const SDLNameIgnitionStatus; -extern SDLName const SDLNameImage; -extern SDLName const SDLNameImageFields; -extern SDLName const SDLNameImageResolution; -extern SDLName const SDLNameImageSupported; -extern SDLName const SDLNameImageTemplate; -extern SDLName const SDLNameImageType; -extern SDLName const SDLNameImageTypeSupported; -extern SDLName const SDLNameInfo; -extern SDLName const SDLNameInitialPrompt; -extern SDLName const SDLNameInitialText; -extern SDLName const SDLNameInnerLeftRear; -extern SDLName const SDLNameInnerRightRear; -extern SDLName const SDLNameInstantFuelConsumption; -extern SDLName const SDLNameInteractionChoiceSetId; -extern SDLName const SDLNameInteractionChoiceSetIdList; -extern SDLName const SDLNameInteractionLayout; -extern SDLName const SDLNameInteractionMode; -extern SDLName const SDLNameIsHighlighted; -extern SDLName const SDLNameIsMediaApplication; -extern SDLName const SDLNameIsSubscribed; -extern SDLName const SDLNameKeepContext; -extern SDLName const SDLNameKeepContextAvailable; -extern SDLName const SDLNameKeyboardLayout; -extern SDLName const SDLNameKeyboardProperties; -extern SDLName const SDLNameKeypressMode; -extern SDLName const SDLNameLabel; -extern SDLName const SDLNameLanguage; -extern SDLName const SDLNameLanguageDesired; -extern SDLName const SDLNameLatitudeDegrees; -extern SDLName const SDLNameLeftFront; -extern SDLName const SDLNameLeftRear; -extern SDLName const SDLNameLeftRearInflatableBelted; -extern SDLName const SDLNameLeftRow2BuckleBelted; -extern SDLName const SDLNameLeftRow3BuckleBelted; -extern SDLName const SDLNameLength; -extern SDLName const SDLNameLightControlCapabilities; -extern SDLName const SDLNameLightControlData; -extern SDLName const SDLNameLightState; -extern SDLName const SDLNameLimitedCharacterList; -extern SDLName const SDLNameListFiles; -extern SDLName const SDLNameLocality; -extern SDLName const SDLNameLocationCoordinate; -extern SDLName const SDLNameLocationDescription; -extern SDLName const SDLNameLocationImage; -extern SDLName const SDLNameLocationName; -extern SDLName const SDLNameLocationTimeStamp; -extern SDLName const SDLNameLongitudeDegrees; -extern SDLName const SDLNameLongPress; -extern SDLName const SDLNameLongPressAvailable; -extern SDLName const SDLNameLowBeamsOn; -extern SDLName const SDLNameMainField1; -extern SDLName const SDLNameMainField2; -extern SDLName const SDLNameMainField3; -extern SDLName const SDLNameMainField4; -extern SDLName const SDLNameMainField1Type; -extern SDLName const SDLNameMainField2Type; -extern SDLName const SDLNameMainField3Type; -extern SDLName const SDLNameMainField4Type; -extern SDLName const SDLNameMajorVersion; -extern SDLName const SDLNameMake; -extern SDLName const SDLNameManeuverComplete; -extern SDLName const SDLNameManualTextEntry; -extern SDLName const SDLNameMassageCushionFirmness; -extern SDLName const SDLNameMassageCushionFirmnessAvailable; -extern SDLName const SDLNameMassageEnabled; -extern SDLName const SDLNameMassageEnabledAvailable; -extern SDLName const SDLNameMassageMode; -extern SDLName const SDLNameMassageModeAvailable; -extern SDLName const SDLNameMemoryAvailable; -extern SDLName const SDLNameMassageZone; -extern SDLName const SDLNameMaxBitrate; -extern SDLName const SDLNameMaxDuration; -extern SDLName const SDLNameMaximumChangeVelocity; -extern SDLName const SDLNameMaxNumberRFCOMMPorts; -extern SDLName const SDLNameMediaClock; -extern SDLName const SDLNameMediaClockFormats; -extern SDLName const SDLNameMediaTrack; -extern SDLName const SDLNameMemory; -extern SDLName const SDLNameMenuIcon; -extern SDLName const SDLNameMenuId; -extern SDLName const SDLNameMenuName; -extern SDLName const SDLNameMenuParams; -extern SDLName const SDLNameMenuTitle; -extern SDLName const SDLNameMessageData; -extern SDLName const SDLNameMessageDataResult; -extern SDLName const SDLNameMessageLength; -extern SDLName const SDLNameMetadataTags; -extern SDLName const SDLNameMiddleRow1BeltDeployed; -extern SDLName const SDLNameMiddleRow1BuckleBelted; -extern SDLName const SDLNameMiddleRow2BuckleBelted; -extern SDLName const SDLNameMiddleRow3BuckleBelted; -extern SDLName const SDLNameMillisecond; -extern SDLName const SDLNameMinorVersion; -extern SDLName const SDLNameMinute; -extern SDLName const SDLNameMinutes; -extern SDLName const SDLNameModel; -extern SDLName const SDLNameModuleData; -extern SDLName const SDLNameModuleName; -extern SDLName const SDLNameModuleType; -extern SDLName const SDLNameModelYear; -extern SDLName const SDLNameMonoAudioOutputMuted; -extern SDLName const SDLNameMonth; -extern SDLName const SDLNameMultipleEvents; -extern SDLName const SDLNameMultiTouchAvailable; -extern SDLName const SDLNameMuteAudio; -extern SDLName const SDLNameMyKey; -extern SDLName const SDLNameName; -extern SDLName const SDLNameNavigation; -extern SDLName const SDLNameNavigationCapability; -extern SDLName const SDLNameNavigationText; -extern SDLName const SDLNameNavigationText1; -extern SDLName const SDLNameNavigationText2; -extern SDLName const SDLNameNextTurnIcon; -extern SDLName const SDLNameNGNMediaScreenAppName; -extern SDLName const SDLNameNightColorScheme; -extern SDLName const SDLNameNotification; -extern SDLName const SDLNameNumber; -extern SDLName const SDLNameNumberCustomPresetsAvailable; -extern SDLName const SDLNameNumberTicks; -extern SDLName const SDLNameOdometer; -extern SDLName const SDLNameOffset; -extern SDLName const SDLNameOnAppInterfaceUnregistered; -extern SDLName const SDLNameOnAudioPassThru; -extern SDLName const SDLNameOnButtonEvent; -extern SDLName const SDLNameOnButtonPress; -extern SDLName const SDLNameOnCommand; -extern SDLName const SDLNameOnDriverDistraction; -extern SDLName const SDLNameOnEncodedSyncPData; -extern SDLName const SDLNameOnHashChange; -extern SDLName const SDLNameOnHMIStatus; -extern SDLName const SDLNameOnInteriorVehicleData; -extern SDLName const SDLNameOnKeyboardInput; -extern SDLName const SDLNameOnLanguageChange; -extern SDLName const SDLNameOnLockScreenStatus; -extern SDLName const SDLNameOnPermissionsChange; -extern SDLName const SDLNameOnRCStatus; -extern SDLName const SDLNameOnScreenPresetsAvailable; -extern SDLName const SDLNameOnSyncPData; -extern SDLName const SDLNameOnSystemRequest; -extern SDLName const SDLNameOnTBTClientState; -extern SDLName const SDLNameOnTouchEvent; -extern SDLName const SDLNameOnVehicleData; -extern SDLName const SDLNameOnWayPointChange; -extern SDLName const SDLNameOperationName; -extern SDLName const SDLNameOS; -extern SDLName const SDLNameOSVersion; -extern SDLName const SDLNameParameterPermissions; -extern SDLName const SDLNameParameters; -extern SDLName const SDLNameParentId; -extern SDLName const SDLNameParkBrakeActive; -extern SDLName const SDLNamePassengerAirbagDeployed; -extern SDLName const SDLNamePassengerBeltDeployed; -extern SDLName const SDLNamePassengerBuckleBelted; -extern SDLName const SDLNamePassengerChildDetected; -extern SDLName const SDLNamePassengerCurtainAirbagDeployed; -extern SDLName const SDLNamePassengerDoorAjar; -extern SDLName const SDLNamePassengerKneeAirbagDeployed; -extern SDLName const SDLNamePassengerSideAirbagDeployed; -extern SDLName const SDLNamePatchVersion; -extern SDLName const SDLNamePCMStreamCapabilities; -extern SDLName const SDLNamePDOP; -extern SDLName const SDLNamePerformAudioPassThru; -extern SDLName const SDLNamePerformInteraction; -extern SDLName const SDLNamePermissionItem; -extern SDLName const SDLNamePersistentFile; -extern SDLName const SDLNamePhoneCall; -extern SDLName const SDLNamePhoneCapability; -extern SDLName const SDLNamePhoneNumber; -extern SDLName const SDLNamePhoneRoaming; -extern SDLName const SDLNameProgramIdentification; -extern SDLName const SDLNamePlayTone; -extern SDLName const SDLNamePosition; -extern SDLName const SDLNamePostalCode; -extern SDLName const SDLNamePowerModeActive; -extern SDLName const SDLNamePowerModeQualificationStatus; -extern SDLName const SDLNamePowerModeStatus; -extern SDLName const SDLNamePreferredResolution; -extern SDLName const SDLNamePrerecordedSpeech; -extern SDLName const SDLNamePresetBankCapabilities; -extern SDLName const SDLNamePressAvailable; -extern SDLName const SDLNamePressure; -extern SDLName const SDLNamePressureTelltale; -extern SDLName const SDLNamePrimaryAudioSource; -extern SDLName const SDLNamePrimaryColor; -extern SDLName const SDLNamePRNDL; -extern SDLName const SDLNameProgressIndicator; -extern SDLName const SDLNameProperties; -extern SDLName const SDLNameProgramService; -extern SDLName const SDLNameProgramType; -extern SDLName const SDLNamePutFile; -extern SDLName const SDLNameRadioBandAvailable; -extern SDLName const SDLNameRadioControlCapabilities; -extern SDLName const SDLNameRadioControlData; -extern SDLName const SDLNameRadioEnable; -extern SDLName const SDLNameRadioEnableAvailable; -extern SDLName const SDLNameRadioFrequencyAvailable; -extern SDLName const SDLNameRange; -extern SDLName const SDLNameRDSData; -extern SDLName const SDLNameRDSDataAvailable; -extern SDLName const SDLNameReadDID; -extern SDLName const SDLNameRearLeftDoorAjar; -extern SDLName const SDLNameRearRightDoorAjar; -extern SDLName const SDLNameReason; -extern SDLName const SDLNameRect; -extern SDLName const SDLNameRed; -extern SDLName const SDLNameRegion; -extern SDLName const SDLNameRegisterAppInterface; -extern SDLName const SDLNameRemoteControlCapability; -extern SDLName const SDLNameRequest; -extern SDLName const SDLNameRequestSubType; -extern SDLName const SDLNameRequestType; -extern SDLName const SDLNameReserved; -extern SDLName const SDLNameResetGlobalProperties; -extern SDLName const SDLNameResolution; -extern SDLName const SDLNameResolutionHeight; -extern SDLName const SDLNameResolutionWidth; -extern SDLName const SDLNameResponse; -extern SDLName const SDLNameResult; -extern SDLName const SDLNameResultCode; -extern SDLName const SDLNameRightFront; -extern SDLName const SDLNameRightRear; -extern SDLName const SDLNameRightRearInflatableBelted; -extern SDLName const SDLNameRightRow2BuckleBelted; -extern SDLName const SDLNameRightRow3BuckleBelted; -extern SDLName const SDLNameRolloverEvent; -extern SDLName const SDLNameRows; -extern SDLName const SDLNameRPCName; -extern SDLName const SDLNameRPM; -extern SDLName const SDLNameRadioText; -extern SDLName const SDLNameSamplingRate; -extern SDLName const SDLNameSatellites; -extern SDLName const SDLNameScreenParams; -extern SDLName const SDLNameScrollableMessage; -extern SDLName const SDLNameScrollableMessageBody; -extern SDLName const SDLNameSDLVersion; -extern SDLName const SDLNameSearchAddress; -extern SDLName const SDLNameSeatControlData; -extern SDLName const SDLNameSeatControlCapabilities; -extern SDLName const SDLNameSecondaryColor; -extern SDLName const SDLNameSecondaryGraphic; -extern SDLName const SDLNameSecondaryImage; -extern SDLName const SDLNameSecondaryText; -extern SDLName const SDLNameSecond; -extern SDLName const SDLNameSeconds; -extern SDLName const SDLNameSendHapticData; -extern SDLName const SDLNameSendHapticDataResponse; -extern SDLName const SDLNameSendLocation; -extern SDLName const SDLNameSendLocationEnabled; -extern SDLName const SDLNameSetAppIcon; -extern SDLName const SDLNameSetDisplayLayout; -extern SDLName const SDLNameSetGlobalProperties; -extern SDLName const SDLNameSetInteriorVehicleData; -extern SDLName const SDLNameSetMediaClockTimer; -extern SDLName const SDLNameShortPress; -extern SDLName const SDLNameShortPressAvailable; -extern SDLName const SDLNameShow; -extern SDLName const SDLNameShowConstantTBT; -extern SDLName const SDLNameSignalLevelStatus; -extern SDLName const SDLNameSignalChangeThreshold; -extern SDLName const SDLNameSignalChangeThresholdAvailable; -extern SDLName const SDLNameSignalStrength; -extern SDLName const SDLNameSignalStrengthAvailable; -extern SDLName const SDLNameSiriusXMRadioAvailable; -extern SDLName const SDLNameSISData; -extern SDLName const SDLNameSISDataAvailable; -extern SDLName const SDLNameSlider; -extern SDLName const SDLNameSliderFooter; -extern SDLName const SDLNameSliderHeader; -extern SDLName const SDLNameSliderPosition; -extern SDLName const SDLNameSoftButtonCapabilities; -extern SDLName const SDLNameSoftButtonId; -extern SDLName const SDLNameSoftButtons; -extern SDLName const SDLNameSource; -extern SDLName const SDLNameSourceAvailable; -extern SDLName const SDLNameSpaceAvailable; -extern SDLName const SDLNameSpeak; -extern SDLName const SDLNameSpeechCapabilities; -extern SDLName const SDLNameSpeed; -extern SDLName const SDLNameRGBColorSpaceAvailable; -extern SDLName const SDLNameStartTime; -extern SDLName const SDLNameState; -extern SDLName const SDLNameStateAvailable; -extern SDLName const SDLNameStateOfCharge; -extern SDLName const SDLNameStationIDNumber; -extern SDLName const SDLNameStationLongName; -extern SDLName const SDLNameStationLocation; -extern SDLName const SDLNameStationMessage; -extern SDLName const SDLNameStationShortName; -extern SDLName const SDLNameStatus; -extern SDLName const SDLNameStatusAvailable; -extern SDLName const SDLNameStatusBar; -extern SDLName const SDLNameSteeringWheelAngle; -extern SDLName const SDLNameStereoAudioOutputMuted; -extern SDLName const SDLNameSubAdministrativeArea; -extern SDLName const SDLNameSubLocality; -extern SDLName const SDLNameSubscribe; -extern SDLName const SDLNameSubscribeButton; -extern SDLName const SDLNameSubscribeVehicleData; -extern SDLName const SDLNameSubscribeWayPoints; -extern SDLName const SDLNameSubThoroughfare; -extern SDLName const SDLNameSuccess; -extern SDLName const SDLNameSupportedDiagnosticModes; -extern SDLName const SDLNameSupportedFormats; -extern SDLName const SDLNameSupportedLights; -extern SDLName const SDLNameSyncFileName; -extern SDLName const SDLNameSyncMessageVersion; -extern SDLName const SDLNameSyncPData; -extern SDLName const SDLNameSystemAction; -extern SDLName const SDLNameSystemCapability; -extern SDLName const SDLNameSystemCapabilityType; -extern SDLName const SDLNameSystemContext; -extern SDLName const SDLNameSystemFile; -extern SDLName const SDLNameSystemRequest; -extern SDLName const SDLNameSystemSoftwareVersion; -extern SDLName const SDLNameTrafficAnnouncementIdentification; -extern SDLName const SDLNameTargetId; -extern SDLName const SDLNameTemperatureUnit; -extern SDLName const SDLNameTemperatureUnitAvailable; -extern SDLName const SDLNameTemplatesAvailable; -extern SDLName const SDLNameTertiaryText; -extern SDLName const SDLNameText; -extern SDLName const SDLNameTextFields; -extern SDLName const SDLNameTextMessageAvailable; -extern SDLName const SDLNameThoroughfare; -extern SDLName const SDLNameTimeout; -extern SDLName const SDLNameTimeoutCapitalized; -extern SDLName const SDLNameTimeoutPrompt; -extern SDLName const SDLNameTimeToDestination; -extern SDLName const SDLNameTimezoneHourOffset; -extern SDLName const SDLNameTimezoneMinuteOffset; -extern SDLName const SDLNameTirePressure; -extern SDLName const SDLNameTotalDistance; -extern SDLName const SDLNameTouchEventAvailable; -extern SDLName const SDLNameTPMS; -extern SDLName const SDLNameTrafficProgramIdentification; -extern SDLName const SDLNameTriggerSource; -extern SDLName const SDLNameTrim; -extern SDLName const SDLNameTryAgainTime; -extern SDLName const SDLNameTimestamp; -extern SDLName const SDLNameTTSChunks; -extern SDLName const SDLNameTTSName; -extern SDLName const SDLNameTurnIcon; -extern SDLName const SDLNameTurnList; -extern SDLName const SDLNameTurnSignal; -extern SDLName const SDLNameType; -extern SDLName const SDLNameUnit; -extern SDLName const SDLNameUnregisterAppInterface; -extern SDLName const SDLNameUnsubscribe; -extern SDLName const SDLNameUnsubscribeButton; -extern SDLName const SDLNameUnsubscribeVehicleData; -extern SDLName const SDLNameUnsubscribeWayPoints; -extern SDLName const SDLNameUpdateMode; -extern SDLName const SDLNameUpdateTurnList; -extern SDLName const SDLNameUpDownAvailable; -extern SDLName const SDLNameURL; -extern SDLName const SDLNameURLUppercase; -extern SDLName const SDLNameUserDisallowed; -extern SDLName const SDLNameUserSelected; -extern SDLName const SDLNameUTCDay; -extern SDLName const SDLNameUTCHours; -extern SDLName const SDLNameUTCMinutes; -extern SDLName const SDLNameUTCMonth; -extern SDLName const SDLNameUTCSeconds; -extern SDLName const SDLNameUTCYear; -extern SDLName const SDLNameValue; -extern SDLName const SDLNameVDOP; -extern SDLName const SDLNameVehicleType; -extern SDLName const SDLNameVerticalPosition; -extern SDLName const SDLNameVerticalPositionAvailable; -extern SDLName const SDLNameVideoCodec; -extern SDLName const SDLNameVideoProtocol; -extern SDLName const SDLNameVideoStreaming; -extern SDLName const SDLNameVideoStreamingCapability; -extern SDLName const SDLNameVideoStreamingState; -extern SDLName const SDLNameVentilationMode; -extern SDLName const SDLNameVentilationModeAvailable; -extern SDLName const SDLNameVIN; -extern SDLName const SDLNameVoiceRecognitionOn; -extern SDLName const SDLNameVolume; -extern SDLName const SDLNameVolumeAvailable; -extern SDLName const SDLNameVRCapabilities; -extern SDLName const SDLNameVRCommands; -extern SDLName const SDLNameVRHelp; -extern SDLName const SDLNameVRHelpTitle; -extern SDLName const SDLNameVRSynonyms; -extern SDLName const SDLNameWayPoints; -extern SDLName const SDLNameWayPointType; -extern SDLName const SDLNameWidth; -extern SDLName const SDLNameWiperStatus; -extern SDLName const SDLNameX; -extern SDLName const SDLNameY; -extern SDLName const SDLNameYear; - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNames.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNames.m deleted file mode 100644 index 62ad20e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNames.m +++ /dev/null @@ -1,645 +0,0 @@ -// SDLNames.h -// - -#import "NSMutableDictionary+Store.h" -#import "SDLNames.h" - -NS_ASSUME_NONNULL_BEGIN - -SDLName const SDLNameACEnable = @"acEnable"; -SDLName const SDLNameACEnableAvailable = @"acEnableAvailable"; -SDLName const SDLNameACMaxEnable = @"acMaxEnable"; -SDLName const SDLNameACMaxEnableAvailable = @"acMaxEnableAvailable"; -SDLName const SDLNameAccelerationPedalPosition = @"accPedalPosition"; -SDLName const SDLNameAction = @"action"; -SDLName const SDLNameActual = @"actual"; -SDLName const SDLNameAddCommand = @"AddCommand"; -SDLName const SDLNameAddress = @"address"; -SDLName const SDLNameAddressLines = @"addressLines"; -SDLName const SDLNameAdministrativeArea = @"administrativeArea"; -SDLName const SDLNameAddSubMenu = @"AddSubMenu"; -SDLName const SDLNameAirbagStatus = @"airbagStatus"; -SDLName const SDLNameAlert = @"Alert"; -SDLName const SDLNameAlertManeuver = @"AlertManeuver"; -SDLName const SDLNameAlertText1 = @"alertText1"; -SDLName const SDLNameAlertText2 = @"alertText2"; -SDLName const SDLNameAlertText3 = @"alertText3"; -SDLName const SDLNameAlignment = @"alignment"; -SDLName const SDLNameAllowed = @"allowed"; -SDLName const SDLNameAllocatedModules = @"allocatedModules"; -SDLName const SDLNameAltitude = @"altitude"; -SDLName const SDLNameAltitudeMeters = @"altitudeMeters"; -SDLName const SDLNameAmbientLightSensorStatus = @"ambientLightSensorStatus"; -SDLName const SDLNameAmbientLightStatus = @"ambientLightStatus"; -SDLName const SDLNameAppBundleId = @"appBundleID"; -SDLName const SDLNameAppHMIType = @"appHMIType"; -SDLName const SDLNameAppId = @"appID"; -SDLName const SDLNameAppInfo = @"appInfo"; -SDLName const SDLNameAppName = @"appName"; -SDLName const SDLNameAppDisplayName = @"appDisplayName"; -SDLName const SDLNameAppVersion = @"appVersion"; -SDLName const SDLNameAudioControlCapabilities = @"audioControlCapabilities"; -SDLName const SDLNameAudioControlData = @"audioControlData"; -SDLName const SDLNameAudioPassThruCapabilities = @"audioPassThruCapabilities"; -SDLName const SDLNameAudioPassThruDisplayText1 = @"audioPassThruDisplayText1"; -SDLName const SDLNameAudioPassThruDisplayText2 = @"audioPassThruDisplayText2"; -SDLName const SDLNameAudioStreamingIndicator = @"audioStreamingIndicator"; -SDLName const SDLNameAudioStreamingState = @"audioStreamingState"; -SDLName const SDLNameAudioType = @"audioType"; -SDLName const SDLNameAutoCompleteText = @"autoCompleteText"; -SDLName const SDLNameAutoModeEnable = @"autoModeEnable"; -SDLName const SDLNameAutoModeEnableAvailable = @"autoModeEnableAvailable"; -SDLName const SDLNameAuxECallNotificationStatus = @"auxECallNotificationStatus"; -SDLName const SDLNameAvailableHDs = @"availableHDs"; -SDLName const SDLNameAvailableHDsAvailable = @"availableHDsAvailable"; -SDLName const SDLNameBackgroundColor = @"backgroundColor"; -SDLName const SDLNameBackTiltAngle = @"backTiltAngle"; -SDLName const SDLNameBackTiltAngleAvailable = @"backTiltAngleAvailable"; -SDLName const SDLNameBackVerticalPosition = @"backVerticalPosition"; -SDLName const SDLNameBackVerticalPositionAvailable = @"backVerticalPositionAvailable"; -SDLName const SDLNameBand = @"band"; -SDLName const SDLNameBatteryLevelStatus = @"battLevelStatus"; -SDLName const SDLNameBeltStatus = @"beltStatus"; -SDLName const SDLNameBitsPerSample = @"bitsPerSample"; -SDLName const SDLNameBodyInformation = @"bodyInformation"; -SDLName const SDLNameBlue = @"blue"; -SDLName const SDLNameBluetoothIconOn = @"btIconOn"; -SDLName const SDLNameBulkData = @"bulkData"; -SDLName const SDLNameButtonCapabilities = @"buttonCapabilities"; -SDLName const SDLNameButtonEventMode = @"buttonEventMode"; -SDLName const SDLNameButtonName = @"buttonName"; -SDLName const SDLNameButtonPress = @"ButtonPress"; -SDLName const SDLNameButtonPressMode = @"buttonPressMode"; -SDLName const SDLNameCoolingEnabled = @"coolingEnabled"; -SDLName const SDLNameCoolingEnabledAvailable = @"coolingEnabledAvailable"; -SDLName const SDLNameCoolingLevel = @"coolingLevel"; -SDLName const SDLNameCoolingLevelAvailable = @"coolingLevelAvailable"; -SDLName const SDLNameCoordinate = @"c"; -SDLName const SDLNameCallActive = @"callActive"; -SDLName const SDLNameCarModeStatus = @"carModeStatus"; -SDLName const SDLNameCarrier = @"carrier"; -SDLName const SDLNameChangeRegistration = @"ChangeRegistration"; -SDLName const SDLNameChannelId = @"channelId"; -SDLName const SDLNameChannelName = @"channelName"; -SDLName const SDLNameChannelSetting = @"channelSetting"; -SDLName const SDLNameCharacterSet = @"characterSet"; -SDLName const SDLNameChoiceId = @"choiceID"; -SDLName const SDLNameChoiceSet = @"choiceSet"; -SDLName const SDLNameCirculateAirEnable = @"circulateAirEnable"; -SDLName const SDLNameCirculateAirEnableAvailable = @"circulateAirEnableAvailable"; -SDLName const SDLNameClimateControlData = @"climateControlData"; -SDLName const SDLNameClimateControlCapabilities = @"climateControlCapabilities"; -SDLName const SDLNameClusterModes = @"clusterModes"; -SDLName const SDLNameClusterModeStatus = @"clusterModeStatus"; -SDLName const SDLNameColor = @"color"; -SDLName const SDLNameCommandIcon = @"cmdIcon"; -SDLName const SDLNameCommandId = @"cmdID"; -SDLName const SDLNameCompassDirection = @"compassDirection"; -SDLName const SDLNameCorrelationId = @"correlationID"; -SDLName const SDLNameCountryCode = @"countryCode"; -SDLName const SDLNameCountryName = @"countryName"; -SDLName const SDLNameCRC = @"crc"; -SDLName const SDLNameCreateInteractionChoiceSet = @"CreateInteractionChoiceSet"; -SDLName const SDLNameClockText = @"CT"; -SDLName const SDLNameCurrentTemperature = @"currentTemperature"; -SDLName const SDLNameCushion = @"cushion"; -SDLName const SDLNameCustomButtonId = @"customButtonID"; -SDLName const SDLNameCustomPresets = @"customPresets"; -SDLName const SDLNameData = @"data"; -SDLName const SDLNameDataResult = @"dataResult"; -SDLName const SDLNameDataType = @"dataType"; -SDLName const SDLNameDay = @"day"; -SDLName const SDLNameDayColorScheme = @"dayColorScheme"; -SDLName const SDLNameDefrostZone = @"defrostZone"; -SDLName const SDLNameDefrostZoneAvailable = @"defrostZoneAvailable"; -SDLName const SDLNameDeleteCommand = @"DeleteCommand"; -SDLName const SDLNameDeleteFile = @"DeleteFile"; -SDLName const SDLNameDeleteInteractionChoiceSet = @"DeleteInteractionChoiceSet"; -SDLName const SDLNameDeleteSubMenu = @"DeleteSubMenu"; -SDLName const SDLNameDeliveryMode = @"deliveryMode"; -SDLName const SDLNameDensity = @"density"; -SDLName const SDLNameDensityAvailable = @"densityAvailable"; -SDLName const SDLNameDesiredTemperature = @"desiredTemperature"; -SDLName const SDLNameDesiredTemperatureAvailable = @"desiredTemperatureAvailable"; -SDLName const SDLNameDeviceInfo = @"deviceInfo"; -SDLName const SDLNameDeviceStatus = @"deviceStatus"; -SDLName const SDLNameDiagnosticMessage = @"DiagnosticMessage"; -SDLName const SDLNameDialNumberEnabled = @"dialNumberEnabled"; -SDLName const SDLNameDIDLocation = @"didLocation"; -SDLName const SDLNameDIDResult = @"didResult"; -SDLName const SDLNameDimension = @"dimension"; -SDLName const SDLNameDisplayCapabilities = @"displayCapabilities"; -SDLName const SDLNameDisplayLayout = @"displayLayout"; -SDLName const SDLNameDisplayMode = @"displayMode"; -SDLName const SDLNameDisplayModeUnitAvailable = @"displayModeUnitAvailable"; -SDLName const SDLNameDisplayType = @"displayType"; -SDLName const SDLNameDistanceToEmpty = @"distanceToEmpty"; -SDLName const SDLNameDistanceToManeuver = @"distanceToManeuver"; -SDLName const SDLNameDistanceToManeuverScale = @"distanceToManeuverScale"; -SDLName const SDLNameDistanceUnitAvailable = @"distanceUnitAvailable"; -SDLName const SDLNameDistanceUnit = @"distanceUnit"; -SDLName const SDLNameDoublePressAvailable = @"doublePressAvailable"; -SDLName const SDLNameDriverAirbagDeployed = @"driverAirbagDeployed"; -SDLName const SDLNameDriverBeltDeployed = @"driverBeltDeployed"; -SDLName const SDLNameDriverBraking = @"driverBraking"; -SDLName const SDLNameDriverBuckleBelted = @"driverBuckleBelted"; -SDLName const SDLNameDriverCurtainAirbagDeployed = @"driverCurtainAirbagDeployed"; -SDLName const SDLNameDriverDistractionStatus = @"driverDistractionStatus"; -SDLName const SDLNameDriverDoorAjar = @"driverDoorAjar"; -SDLName const SDLNameDriverKneeAirbagDeployed = @"driverKneeAirbagDeployed"; -SDLName const SDLNameDriverSideAirbagDeployed = @"driverSideAirbagDeployed"; -SDLName const SDLNameDTC = @"dtc"; -SDLName const SDLNameDTCMask = @"dtcMask"; -SDLName const SDLNameDualModeEnable = @"dualModeEnable"; -SDLName const SDLNameDualModeEnableAvailable = @"dualModeEnableAvailable"; -SDLName const SDLNameDuration = @"duration"; -SDLName const SDLNameE911Override = @"e911Override"; -SDLName const SDLNameECallConfirmationStatus = @"eCallConfirmationStatus"; -SDLName const SDLNameECallEventActive = @"eCallEventActive"; -SDLName const SDLNameECallInfo = @"eCallInfo"; -SDLName const SDLNameECallNotificationStatus = @"eCallNotificationStatus"; -SDLName const SDLNameECUHeader = @"ecuHeader"; -SDLName const SDLNameECUName = @"ecuName"; -SDLName const SDLNameElectronicParkBrakeStatus = @"electronicParkBrakeStatus"; -SDLName const SDLNameEmergencyEvent = @"emergencyEvent"; -SDLName const SDLNameEmergencyEventType = @"emergencyEventType"; -SDLName const SDLNameEncodedSyncPData = @"EncodedSyncPData"; -SDLName const SDLNameEndAudioPassThru = @"EndAudioPassThru"; -SDLName const SDLNameEndTime = @"endTime"; -SDLName const SDLNameEngineOilLife = @"engineOilLife"; -SDLName const SDLNameEngineTorque = @"engineTorque"; -SDLName const SDLNameEqualizerAvailable = @"equalizerAvailable"; -SDLName const SDLNameEqualizerMaxChannelId = @"equalizerMaxChannelId"; -SDLName const SDLNameEqualizerSettings = @"equalizerSettings";; -SDLName const SDLNameETA = @"eta"; -SDLName const SDLNameEvent = @"event"; -SDLName const SDLNameExternalTemperature = @"externalTemperature"; -SDLName const SDLNameFanSpeed = @"fanSpeed"; -SDLName const SDLNameFanSpeedAvailable = @"fanSpeedAvailable"; -SDLName const SDLNameFCCFacilityId = @"fccFacilityId"; -SDLName const SDLNameFilename = @"fileName"; -SDLName const SDLNameFilenames = @"filenames"; -SDLName const SDLNameFileType = @"fileType"; -SDLName const SDLNameFirmness = @"firmness"; -SDLName const SDLNameFirmwareRevision = @"firmwareRev"; -SDLName const SDLNameFreeModules = @"freeModules"; -SDLName const SDLNameFrequencyInteger = @"frequencyInteger"; -SDLName const SDLNameFrequencyFraction = @"frequencyFraction"; -SDLName const SDLNameFrontVerticalPosition = @"frontVerticalPosition"; -SDLName const SDLNameFrontVerticalPositionAvailable = @"frontVerticalPositionAvailable"; -SDLName const SDLNameFuelCutoffStatus = @"fuelCutoffStatus"; -SDLName const SDLNameFuelLevel = @"fuelLevel"; -SDLName const SDLNameFuelLevelState = @"fuelLevel_State"; -SDLName const SDLNameFuelMaintenanceMode = @"fuelMaintenanceMode"; -SDLName const SDLNameFuelRange = @"fuelRange"; -SDLName const SDLNameFullAppID = @"fullAppID"; -SDLName const SDLNameGenericResponse = @"GenericResponse"; -SDLName const SDLNameGetDTCs = @"GetDTCs"; -SDLName const SDLNameGetInteriorVehicleData = @"GetInteriorVehicleData"; -SDLName const SDLNameGetSystemCapability = @"GetSystemCapability"; -SDLName const SDLNameGetVehicleData = @"GetVehicleData"; -SDLName const SDLNameGetWayPoints = @"GetWayPoints"; -SDLName const SDLNameGetWayPointsEnabled = @"getWayPointsEnabled"; -SDLName const SDLNameGPS = @"gps"; -SDLName const SDLNameGraphic = @"graphic"; -SDLName const SDLNameGraphicSupported = @"graphicSupported"; -SDLName const SDLNameGreen = @"green"; -SDLName const SDLNameHapticRectData = @"hapticRectData"; -SDLName const SDLNameHapticSpatialDataSupported = @"hapticSpatialDataSupported"; -SDLName const SDLNameHardware = @"hardware"; -SDLName const SDLNameHashId = @"hashID"; -SDLName const SDLNameHDChannel = @"hdChannel"; -SDLName const SDLNameHDChannelAvailable = @"hdChannelAvailable"; -SDLName const SDLNameHDOP = @"hdop"; -SDLName const SDLNameHDRadioEnable = @"hdRadioEnable"; -SDLName const SDLNameHDRadioEnableAvailable = @"hdRadioEnableAvailable"; -SDLName const SDLNameHeading = @"heading"; -SDLName const SDLNameHeadLampStatus = @"headLampStatus"; -SDLName const SDLNameHeadSupportHorizontalPosition = @"headSupportHorizontalPosition"; -SDLName const SDLNameHeadSupportHorizontalPositionAvailable = @"headSupportHorizontalPositionAvailable"; -SDLName const SDLNameHeadSupportVerticalPosition = @"headSupportVerticalPosition"; -SDLName const SDLNameHeadSupportVerticalPositionAvailable = @"headSupportVerticalPositionAvailable"; -SDLName const SDLNameHeatingLevel = @"heatingLevel"; -SDLName const SDLNameHeatingLevelAvailable = @"heatingLevelAvailable"; -SDLName const SDLNameHeatingEnabled = @"heatingEnabled"; -SDLName const SDLNameHeatingEnabledAvailable = @"heatingEnabledAvailable"; -SDLName const SDLNameHeatedSteeringWheelAvailable = @"heatedSteeringWheelAvailable"; -SDLName const SDLNameHeatedWindshieldAvailable = @"heatedWindshieldAvailable"; -SDLName const SDLNameHeatedRearWindowAvailable = @"heatedRearWindowAvailable"; -SDLName const SDLNameHeatedMirrorsAvailable = @"heatedMirrorsAvailable"; -SDLName const SDLNameHeatedSteeringWheelEnable = @"heatedSteeringWheelEnable"; -SDLName const SDLNameHeatedWindshieldEnable = @"heatedWindshieldEnable"; -SDLName const SDLNameHeatedRearWindowEnable = @"heatedRearWindowEnable"; -SDLName const SDLNameHeatedMirrorsEnable = @"heatedMirrorsEnable"; -SDLName const SDLNameHeight = @"height"; -SDLName const SDLNameHelpPrompt = @"helpPrompt"; -SDLName const SDLNameHighBeamsOn = @"highBeamsOn"; -SDLName const SDLNameHMICapabilities = @"hmiCapabilities"; -SDLName const SDLNameHmiSettingsControlData = @"hmiSettingsControlData"; -SDLName const SDLNameHMIDisplayLanguage = @"hmiDisplayLanguage"; -SDLName const SDLNameHMIDisplayLanguageDesired = @"hmiDisplayLanguageDesired"; -SDLName const SDLNameHMILevel = @"hmiLevel"; -SDLName const SDLNameHMILevelLowercase = @"hmilevel"; -SDLName const SDLNameHMIPermissions = @"hmiPermissions"; -SDLName const SDLNameHmiSettingsControlCapabilities = @"hmiSettingsControlCapabilities"; -SDLName const SDLNameHMIZoneCapabilities = @"hmiZoneCapabilities"; -SDLName const SDLNameHorizontalPosition = @"horizontalPosition"; -SDLName const SDLNameHorizontalPositionAvailable = @"horizontalPositionAvailable"; -SDLName const SDLNameHour = @"hour"; -SDLName const SDLNameHours = @"hours"; -SDLName const SDLNameIconResumed = @"iconResumed"; -SDLName const SDLNameId = @"id"; -SDLName const SDLNameIgnitionStableStatus = @"ignitionStableStatus"; -SDLName const SDLNameIgnitionStatus = @"ignitionStatus"; -SDLName const SDLNameImage = @"image"; -SDLName const SDLNameImageFields = @"imageFields"; -SDLName const SDLNameImageResolution = @"imageResolution"; -SDLName const SDLNameImageSupported = @"imageSupported"; -SDLName const SDLNameImageTemplate = @"isTemplate"; -SDLName const SDLNameImageType = @"imageType"; -SDLName const SDLNameImageTypeSupported = @"imageTypeSupported"; -SDLName const SDLNameInfo = @"info"; -SDLName const SDLNameInitialPrompt = @"initialPrompt"; -SDLName const SDLNameInitialText = @"initialText"; -SDLName const SDLNameInnerLeftRear = @"innerLeftRear"; -SDLName const SDLNameInnerRightRear = @"innerRightRear"; -SDLName const SDLNameInstantFuelConsumption = @"instantFuelConsumption"; -SDLName const SDLNameInteractionChoiceSetId = @"interactionChoiceSetID"; -SDLName const SDLNameInteractionChoiceSetIdList = @"interactionChoiceSetIDList"; -SDLName const SDLNameInteractionLayout = @"interactionLayout"; -SDLName const SDLNameInteractionMode = @"interactionMode"; -SDLName const SDLNameIsHighlighted = @"isHighlighted"; -SDLName const SDLNameIsMediaApplication = @"isMediaApplication"; -SDLName const SDLNameIsSubscribed = @"isSubscribed"; -SDLName const SDLNameKeepContext = @"keepContext"; -SDLName const SDLNameKeepContextAvailable = @"keepContextAvailable"; -SDLName const SDLNameKeyboardLayout = @"keyboardLayout"; -SDLName const SDLNameKeyboardProperties = @"keyboardProperties"; -SDLName const SDLNameKeypressMode = @"keypressMode"; -SDLName const SDLNameLabel = @"label"; -SDLName const SDLNameLanguage = @"language"; -SDLName const SDLNameLanguageDesired = @"languageDesired"; -SDLName const SDLNameLatitudeDegrees = @"latitudeDegrees"; -SDLName const SDLNameLeftFront = @"leftFront"; -SDLName const SDLNameLeftRear = @"leftRear"; -SDLName const SDLNameLeftRearInflatableBelted = @"leftRearInflatableBelted"; -SDLName const SDLNameLeftRow2BuckleBelted = @"leftRow2BuckleBelted"; -SDLName const SDLNameLeftRow3BuckleBelted = @"leftRow3BuckleBelted"; -SDLName const SDLNameLength = @"length"; -SDLName const SDLNameLightControlCapabilities = @"lightControlCapabilities"; -SDLName const SDLNameLightControlData = @"lightControlData"; -SDLName const SDLNameLightState = @"lightState"; -SDLName const SDLNameLimitedCharacterList = @"limitedCharacterList"; -SDLName const SDLNameListFiles = @"ListFiles"; -SDLName const SDLNameLocality = @"locality"; -SDLName const SDLNameLocationCoordinate = @"coordinate"; -SDLName const SDLNameLocationDescription = @"locationDescription"; -SDLName const SDLNameLocationImage = @"locationImage"; -SDLName const SDLNameLocationName = @"locationName"; -SDLName const SDLNameLocationTimeStamp = @"timeStamp"; -SDLName const SDLNameLongitudeDegrees = @"longitudeDegrees"; -SDLName const SDLNameLongPress = @"longPress"; -SDLName const SDLNameLongPressAvailable = @"longPressAvailable"; -SDLName const SDLNameLowBeamsOn = @"lowBeamsOn"; -SDLName const SDLNameMainField1 = @"mainField1"; -SDLName const SDLNameMainField2 = @"mainField2"; -SDLName const SDLNameMainField3 = @"mainField3"; -SDLName const SDLNameMainField4 = @"mainField4"; -SDLName const SDLNameMajorVersion = @"majorVersion"; -SDLName const SDLNameMake = @"make"; -SDLName const SDLNameManeuverComplete = @"maneuverComplete"; -SDLName const SDLNameManualTextEntry = @"manualTextEntry"; -SDLName const SDLNameMassageCushionFirmness = @"massageCushionFirmness"; -SDLName const SDLNameMassageCushionFirmnessAvailable = @"massageCushionFirmnessAvailable"; -SDLName const SDLNameMassageEnabled = @"massageEnabled"; -SDLName const SDLNameMassageEnabledAvailable = @"massageEnabledAvailable"; -SDLName const SDLNameMassageMode = @"massageMode"; -SDLName const SDLNameMassageModeAvailable = @"massageModeAvailable"; -SDLName const SDLNameMassageZone = @"massageZone"; -SDLName const SDLNameMaxBitrate = @"maxBitrate"; -SDLName const SDLNameMaxDuration = @"maxDuration"; -SDLName const SDLNameMaximumChangeVelocity = @"maximumChangeVelocity"; -SDLName const SDLNameMaxNumberRFCOMMPorts = @"maxNumberRFCOMMPorts"; -SDLName const SDLNameMediaClock = @"mediaClock"; -SDLName const SDLNameMediaClockFormats = @"mediaClockFormats"; -SDLName const SDLNameMediaTrack = @"mediaTrack"; -SDLName const SDLNameMemory = @"memory"; -SDLName const SDLNameMemoryAvailable = @"memoryAvailable"; -SDLName const SDLNameMenuIcon = @"menuIcon"; -SDLName const SDLNameMenuId = @"menuID"; -SDLName const SDLNameMenuName = @"menuName"; -SDLName const SDLNameMenuParams = @"menuParams"; -SDLName const SDLNameMenuTitle = @"menuTitle"; -SDLName const SDLNameMessageData = @"messageData"; -SDLName const SDLNameMessageDataResult = @"messageDataResult"; -SDLName const SDLNameMessageLength = @"messageLength"; -SDLName const SDLNameMetadataTags = @"metadataTags"; -SDLName const SDLNameMiddleRow1BeltDeployed = @"middleRow1BeltDeployed"; -SDLName const SDLNameMiddleRow1BuckleBelted = @"middleRow1BuckleBelted"; -SDLName const SDLNameMiddleRow2BuckleBelted = @"middleRow2BuckleBelted"; -SDLName const SDLNameMiddleRow3BuckleBelted = @"middleRow3BuckleBelted"; -SDLName const SDLNameMillisecond = @"millisecond"; -SDLName const SDLNameMinorVersion = @"minorVersion"; -SDLName const SDLNameMinute = @"minute"; -SDLName const SDLNameMinutes = @"minutes"; -SDLName const SDLNameModel = @"model"; -SDLName const SDLNameModelYear = @"modelYear"; -SDLName const SDLNameMonoAudioOutputMuted = @"monoAudioOutputMuted"; -SDLName const SDLNameMonth = @"month"; -SDLName const SDLNameModuleData = @"moduleData"; -SDLName const SDLNameModuleName = @"moduleName"; -SDLName const SDLNameModuleType = @"moduleType"; -SDLName const SDLNameMultipleEvents = @"multipleEvents"; -SDLName const SDLNameMultiTouchAvailable = @"multiTouchAvailable"; -SDLName const SDLNameMuteAudio = @"muteAudio"; -SDLName const SDLNameMyKey = @"myKey"; -SDLName const SDLNameName = @"name"; -SDLName const SDLNameNavigation = @"navigation"; -SDLName const SDLNameNavigationCapability = @"navigationCapability"; -SDLName const SDLNameNavigationText = @"navigationText"; -SDLName const SDLNameNavigationText1 = @"navigationText1"; -SDLName const SDLNameNavigationText2 = @"navigationText2"; -SDLName const SDLNameNextTurnIcon = @"nextTurnIcon"; -SDLName const SDLNameNGNMediaScreenAppName = @"ngnMediaScreenAppName"; -SDLName const SDLNameNightColorScheme = @"nightColorScheme"; -SDLName const SDLNameNotification = @"notification"; -SDLName const SDLNameNumber = @"number"; -SDLName const SDLNameNumberCustomPresetsAvailable = @"numCustomPresetsAvailable"; -SDLName const SDLNameNumberTicks = @"numTicks"; -SDLName const SDLNameOdometer = @"odometer"; -SDLName const SDLNameOffset = @"offset"; -SDLName const SDLNameOnAppInterfaceUnregistered = @"OnAppInterfaceUnregistered"; -SDLName const SDLNameOnAudioPassThru = @"OnAudioPassThru"; -SDLName const SDLNameOnButtonEvent = @"OnButtonEvent"; -SDLName const SDLNameOnButtonPress = @"OnButtonPress"; -SDLName const SDLNameOnCommand = @"OnCommand"; -SDLName const SDLNameOnDriverDistraction = @"OnDriverDistraction"; -SDLName const SDLNameOnEncodedSyncPData = @"OnEncodedSyncPData"; -SDLName const SDLNameOnHashChange = @"OnHashChange"; -SDLName const SDLNameOnHMIStatus = @"OnHMIStatus"; -SDLName const SDLNameOnInteriorVehicleData = @"OnInteriorVehicleData"; -SDLName const SDLNameOnKeyboardInput = @"OnKeyboardInput"; -SDLName const SDLNameOnLanguageChange = @"OnLanguageChange"; -SDLName const SDLNameOnLockScreenStatus = @"OnLockScreenStatus"; -SDLName const SDLNameOnPermissionsChange = @"OnPermissionsChange"; -SDLName const SDLNameOnRCStatus = @"OnRCStatus"; -SDLName const SDLNameOnScreenPresetsAvailable = @"onScreenPresetsAvailable"; -SDLName const SDLNameOnSyncPData = @"OnSyncPData"; -SDLName const SDLNameOnSystemRequest = @"OnSystemRequest"; -SDLName const SDLNameOnTBTClientState = @"OnTBTClientState"; -SDLName const SDLNameOnTouchEvent = @"OnTouchEvent"; -SDLName const SDLNameOnVehicleData = @"OnVehicleData"; -SDLName const SDLNameOnWayPointChange = @"OnWayPointChange"; -SDLName const SDLNameOperationName = @"name"; -SDLName const SDLNameOS = @"os"; -SDLName const SDLNameOSVersion = @"osVersion"; -SDLName const SDLNameParameterPermissions = @"parameterPermissions"; -SDLName const SDLNameParameters = @"parameters"; -SDLName const SDLNameParentId = @"parentID"; -SDLName const SDLNameParkBrakeActive = @"parkBrakeActive"; -SDLName const SDLNamePassengerAirbagDeployed = @"passengerAirbagDeployed"; -SDLName const SDLNamePassengerBeltDeployed = @"passengerBeltDeployed"; -SDLName const SDLNamePassengerBuckleBelted = @"passengerBuckleBelted"; -SDLName const SDLNamePassengerChildDetected = @"passengerChildDetected"; -SDLName const SDLNamePassengerCurtainAirbagDeployed = @"passengerCurtainAirbagDeployed"; -SDLName const SDLNamePassengerDoorAjar = @"passengerDoorAjar"; -SDLName const SDLNamePassengerKneeAirbagDeployed = @"passengerKneeAirbagDeployed"; -SDLName const SDLNamePassengerSideAirbagDeployed = @"passengerSideAirbagDeployed"; -SDLName const SDLNamePatchVersion = @"patchVersion"; -SDLName const SDLNamePCMStreamCapabilities = @"pcmStreamCapabilities"; -SDLName const SDLNamePDOP = @"pdop"; -SDLName const SDLNamePerformAudioPassThru = @"PerformAudioPassThru"; -SDLName const SDLNamePerformInteraction = @"PerformInteraction"; -SDLName const SDLNamePermissionItem = @"permissionItem"; -SDLName const SDLNamePersistentFile = @"persistentFile"; -SDLName const SDLNamePhoneCall = @"phoneCall"; -SDLName const SDLNamePhoneCapability = @"phoneCapability"; -SDLName const SDLNamePhoneNumber = @"phoneNumber"; -SDLName const SDLNamePhoneRoaming = @"phoneRoaming"; -SDLName const SDLNamePrimaryColor = @"primaryColor"; -SDLName const SDLNameProgramIdentification = @"PI"; -SDLName const SDLNamePlayTone = @"playTone"; -SDLName const SDLNamePosition = @"position"; -SDLName const SDLNamePostalCode = @"postalCode"; -SDLName const SDLNamePowerModeActive = @"powerModeActive"; -SDLName const SDLNamePowerModeQualificationStatus = @"powerModeQualificationStatus"; -SDLName const SDLNamePowerModeStatus = @"powerModeStatus"; -SDLName const SDLNamePreferredResolution = @"preferredResolution"; -SDLName const SDLNamePrerecordedSpeech = @"prerecordedSpeech"; -SDLName const SDLNamePresetBankCapabilities = @"presetBankCapabilities"; -SDLName const SDLNamePressAvailable = @"pressAvailable"; -SDLName const SDLNamePressure = @"pressure"; -SDLName const SDLNamePressureTelltale = @"pressureTelltale"; -SDLName const SDLNamePrimaryAudioSource = @"primaryAudioSource"; -SDLName const SDLNamePRNDL = @"prndl"; -SDLName const SDLNameProgressIndicator = @"progressIndicator"; -SDLName const SDLNameProperties = @"properties"; -SDLName const SDLNameProgramService = @"PS"; -SDLName const SDLNameProgramType = @"PTY"; -SDLName const SDLNamePutFile = @"PutFile"; -SDLName const SDLNameRadioBandAvailable = @"radioBandAvailable"; -SDLName const SDLNameRadioControlCapabilities = @"radioControlCapabilities"; -SDLName const SDLNameRadioFrequencyAvailable = @"radioFrequencyAvailable"; -SDLName const SDLNameRadioControlData = @"radioControlData"; -SDLName const SDLNameRadioEnable = @"radioEnable"; -SDLName const SDLNameRadioEnableAvailable = @"radioEnableAvailable"; -SDLName const SDLNameRange = @"range"; -SDLName const SDLNameRDSData = @"rdsData"; -SDLName const SDLNameRDSDataAvailable = @"rdsDataAvailable"; -SDLName const SDLNameReadDID = @"ReadDID"; -SDLName const SDLNameRearLeftDoorAjar = @"rearLeftDoorAjar"; -SDLName const SDLNameRearRightDoorAjar = @"rearRightDoorAjar"; -SDLName const SDLNameReason = @"reason"; -SDLName const SDLNameRed = @"red"; -SDLName const SDLNameRect = @"rect"; -SDLName const SDLNameRegion = @"REG"; -SDLName const SDLNameRegisterAppInterface = @"RegisterAppInterface"; -SDLName const SDLNameRemoteControlCapability = @"remoteControlCapability"; -SDLName const SDLNameRequest = @"request"; -SDLName const SDLNameRequestSubType = @"requestSubType"; -SDLName const SDLNameRequestType = @"requestType"; -SDLName const SDLNameReserved = @"reserved"; -SDLName const SDLNameResetGlobalProperties = @"ResetGlobalProperties"; -SDLName const SDLNameSecondaryColor = @"secondaryColor"; -SDLName const SDLNameSetInteriorVehicleData = @"SetInteriorVehicleData"; -SDLName const SDLNameResolution = @"resolution"; -SDLName const SDLNameResolutionHeight = @"resolutionHeight"; -SDLName const SDLNameResolutionWidth = @"resolutionWidth"; -SDLName const SDLNameResponse = @"response"; -SDLName const SDLNameResult = @"result"; -SDLName const SDLNameResultCode = @"resultCode"; -SDLName const SDLNameRightFront = @"rightFront"; -SDLName const SDLNameRightRear = @"rightRear"; -SDLName const SDLNameRightRearInflatableBelted = @"rightRearInflatableBelted"; -SDLName const SDLNameRightRow2BuckleBelted = @"rightRow2BuckleBelted"; -SDLName const SDLNameRightRow3BuckleBelted = @"rightRow3BuckleBelted"; -SDLName const SDLNameRolloverEvent = @"rolloverEvent"; -SDLName const SDLNameRows = @"rows"; -SDLName const SDLNameRPCName = @"rpcName"; -SDLName const SDLNameRPM = @"rpm"; -SDLName const SDLNameRadioText = @"RT"; -SDLName const SDLNameSamplingRate = @"samplingRate"; -SDLName const SDLNameSatellites = @"satellites"; -SDLName const SDLNameScreenParams = @"screenParams"; -SDLName const SDLNameScrollableMessage = @"ScrollableMessage"; -SDLName const SDLNameScrollableMessageBody = @"scrollableMessageBody"; -SDLName const SDLNameSDLVersion = @"sdlVersion"; -SDLName const SDLNameSearchAddress = @"searchAddress"; -SDLName const SDLNameSeatControlData = @"seatControlData"; -SDLName const SDLNameSeatControlCapabilities = @"seatControlCapabilities"; -SDLName const SDLNameSecondaryGraphic = @"secondaryGraphic"; -SDLName const SDLNameSecondaryImage = @"secondaryImage"; -SDLName const SDLNameSecondaryText = @"secondaryText"; -SDLName const SDLNameSecond = @"second"; -SDLName const SDLNameSeconds = @"seconds"; -SDLName const SDLNameSendHapticData = @"SendHapticData"; -SDLName const SDLNameSendHapticDataResponse = @"SendHapticDataResponse"; -SDLName const SDLNameSendLocation = @"SendLocation"; -SDLName const SDLNameSendLocationEnabled = @"sendLocationEnabled"; -SDLName const SDLNameSetAppIcon = @"SetAppIcon"; -SDLName const SDLNameSetDisplayLayout = @"SetDisplayLayout"; -SDLName const SDLNameDisplayName = @"displayName"; -SDLName const SDLNameSetGlobalProperties = @"SetGlobalProperties"; -SDLName const SDLNameSetMediaClockTimer = @"SetMediaClockTimer"; -SDLName const SDLNameShortPress = @"shortPress"; -SDLName const SDLNameShortPressAvailable = @"shortPressAvailable"; -SDLName const SDLNameShow = @"Show"; -SDLName const SDLNameShowConstantTBT = @"ShowConstantTBT"; -SDLName const SDLNameSignalLevelStatus = @"signalLevelStatus"; -SDLName const SDLNameSignalChangeThreshold = @"signalChangeThreshold"; -SDLName const SDLNameSignalChangeThresholdAvailable = @"signalChangeThresholdAvailable"; -SDLName const SDLNameSignalStrength = @"signalStrength"; -SDLName const SDLNameSignalStrengthAvailable = @"signalStrengthAvailable"; -SDLName const SDLNameSiriusXMRadioAvailable = @"siriusxmRadioAvailable"; -SDLName const SDLNameSISData = @"sisData"; -SDLName const SDLNameSISDataAvailable = @"sisDataAvailable"; -SDLName const SDLNameSlider = @"Slider"; -SDLName const SDLNameSliderFooter = @"sliderFooter"; -SDLName const SDLNameSliderHeader = @"sliderHeader"; -SDLName const SDLNameSliderPosition = @"sliderPosition"; -SDLName const SDLNameSoftButtonCapabilities = @"softButtonCapabilities"; -SDLName const SDLNameSoftButtonId = @"softButtonID"; -SDLName const SDLNameSoftButtons = @"softButtons"; -SDLName const SDLNameSource = @"source"; -SDLName const SDLNameSourceAvailable = @"sourceAvailable"; -SDLName const SDLNameSpaceAvailable = @"spaceAvailable"; -SDLName const SDLNameSpeak = @"Speak"; -SDLName const SDLNameSpeechCapabilities = @"speechCapabilities"; -SDLName const SDLNameSpeed = @"speed"; -SDLName const SDLNameRGBColorSpaceAvailable = @"rgbColorSpaceAvailable"; -SDLName const SDLNameStartTime = @"startTime"; -SDLName const SDLNameState = @"state"; -SDLName const SDLNameStateAvailable = @"stateAvailable"; -SDLName const SDLNameStateOfCharge = @"stateOfCharge"; -SDLName const SDLNameStationIDNumber = @"stationIDNumber"; -SDLName const SDLNameStationLongName = @"stationLongName"; -SDLName const SDLNameStationLocation = @"stationLocation"; -SDLName const SDLNameStationMessage = @"stationMessage"; -SDLName const SDLNameStationShortName = @"stationShortName"; -SDLName const SDLNameStatus = @"status"; -SDLName const SDLNameStatusAvailable = @"statusAvailable"; -SDLName const SDLNameStatusBar = @"statusBar"; -SDLName const SDLNameSteeringWheelAngle = @"steeringWheelAngle"; -SDLName const SDLNameStereoAudioOutputMuted = @"stereoAudioOutputMuted"; -SDLName const SDLNameSubAdministrativeArea = @"subAdministrativeArea"; -SDLName const SDLNameSubLocality = @"subLocality"; -SDLName const SDLNameSubscribe = @"subscribe"; -SDLName const SDLNameSubscribeButton = @"SubscribeButton"; -SDLName const SDLNameSubscribeVehicleData = @"SubscribeVehicleData"; -SDLName const SDLNameSubscribeWayPoints = @"SubscribeWayPoints"; -SDLName const SDLNameSubThoroughfare = @"subThoroughfare"; -SDLName const SDLNameSuccess = @"success"; -SDLName const SDLNameSupportedDiagnosticModes = @"supportedDiagModes"; -SDLName const SDLNameSupportedFormats = @"supportedFormats"; -SDLName const SDLNameSupportedLights = @"supportedLights"; -SDLName const SDLNameSyncFileName = @"syncFileName"; -SDLName const SDLNameSyncMessageVersion = @"syncMsgVersion"; -SDLName const SDLNameSyncPData = @"SyncPData"; -SDLName const SDLNameSystemAction = @"systemAction"; -SDLName const SDLNameSystemCapability = @"systemCapability"; -SDLName const SDLNameSystemCapabilityType = @"systemCapabilityType"; -SDLName const SDLNameSystemContext = @"systemContext"; -SDLName const SDLNameSystemFile = @"systemFile"; -SDLName const SDLNameSystemRequest = @"SystemRequest"; -SDLName const SDLNameSystemSoftwareVersion = @"systemSoftwareVersion"; -SDLName const SDLNameDialNumber = @"DialNumber"; -SDLName const SDLNameTrafficAnnouncementIdentification = @"TA"; -SDLName const SDLNameTargetId = @"targetID"; -SDLName const SDLNameTemperatureUnit = @"temperatureUnit"; -SDLName const SDLNameTemperatureUnitAvailable = @"temperatureUnitAvailable"; -SDLName const SDLNameTemplatesAvailable = @"templatesAvailable"; -SDLName const SDLNameTertiaryText = @"tertiaryText"; -SDLName const SDLNameText = @"text"; -SDLName const SDLNameTextFields = @"textFields"; -SDLName const SDLNameTextMessageAvailable = @"textMsgAvailable"; -SDLName const SDLNameThoroughfare = @"thoroughfare"; -SDLName const SDLNameTimeout = @"timeout"; -SDLName const SDLNameTimeoutCapitalized = @"Timeout"; -SDLName const SDLNameTimeoutPrompt = @"timeoutPrompt"; -SDLName const SDLNameTimeToDestination = @"timeToDestination"; -SDLName const SDLNameTimezoneHourOffset = @"tz_hour"; -SDLName const SDLNameTimezoneMinuteOffset = @"tz_minute"; -SDLName const SDLNameTirePressure = @"tirePressure"; -SDLName const SDLNameTotalDistance = @"totalDistance"; -SDLName const SDLNameTouchEventAvailable = @"touchEventAvailable"; -SDLName const SDLNameTPMS = @"tpms"; -SDLName const SDLNameTrafficProgramIdentification = @"TP"; -SDLName const SDLNameTriggerSource = @"triggerSource"; -SDLName const SDLNameTrim = @"trim"; -SDLName const SDLNameTryAgainTime = @"tryAgainTime"; -SDLName const SDLNameTimestamp = @"ts"; -SDLName const SDLNameTTSChunks = @"ttsChunks"; -SDLName const SDLNameTTSName = @"ttsName"; -SDLName const SDLNameTurnIcon = @"turnIcon"; -SDLName const SDLNameTurnList = @"turnList"; -SDLName const SDLNameTurnSignal = @"turnSignal"; -SDLName const SDLNameType = @"type"; -SDLName const SDLNameUnit = @"unit"; -SDLName const SDLNameUnregisterAppInterface = @"UnregisterAppInterface"; -SDLName const SDLNameUnsubscribe = @"Unsubscribe"; -SDLName const SDLNameUnsubscribeButton = @"UnsubscribeButton"; -SDLName const SDLNameUnsubscribeVehicleData = @"UnsubscribeVehicleData"; -SDLName const SDLNameUnsubscribeWayPoints = @"UnsubscribeWayPoints"; -SDLName const SDLNameUpdateMode = @"updateMode"; -SDLName const SDLNameUpdateTurnList = @"UpdateTurnList"; -SDLName const SDLNameUpDownAvailable = @"upDownAvailable"; -SDLName const SDLNameURL = @"url"; -SDLName const SDLNameURLUppercase = @"URL"; -SDLName const SDLNameUserDisallowed = @"userDisallowed"; -SDLName const SDLNameUserSelected = @"userSelected"; -SDLName const SDLNameUTCDay = @"utcDay"; -SDLName const SDLNameUTCHours = @"utcHours"; -SDLName const SDLNameUTCMinutes = @"utcMinutes"; -SDLName const SDLNameUTCMonth = @"utcMonth"; -SDLName const SDLNameUTCSeconds = @"utcSeconds"; -SDLName const SDLNameUTCYear = @"utcYear"; -SDLName const SDLNameValue = @"value"; -SDLName const SDLNameVDOP = @"vdop"; -SDLName const SDLNameVehicleType = @"vehicleType"; -SDLName const SDLNameVerticalPosition = @"verticalPosition"; -SDLName const SDLNameVerticalPositionAvailable = @"verticalPositionAvailable"; -SDLName const SDLNameVideoCodec = @"codec"; -SDLName const SDLNameVideoProtocol = @"protocol"; -SDLName const SDLNameVideoStreaming = @"videoStreaming"; -SDLName const SDLNameVideoStreamingCapability = @"videoStreamingCapability"; -SDLName const SDLNameVideoStreamingState = @"videoStreamingState"; -SDLName const SDLNameVentilationMode = @"ventilationMode"; -SDLName const SDLNameVentilationModeAvailable = @"ventilationModeAvailable"; -SDLName const SDLNameVIN = @"vin"; -SDLName const SDLNameVoiceRecognitionOn = @"voiceRecOn"; -SDLName const SDLNameVolume = @"volume"; -SDLName const SDLNameVolumeAvailable = @"volumeAvailable"; -SDLName const SDLNameVRCapabilities = @"vrCapabilities"; -SDLName const SDLNameVRCommands = @"vrCommands"; -SDLName const SDLNameVRHelp = @"vrHelp"; -SDLName const SDLNameVRHelpTitle = @"vrHelpTitle"; -SDLName const SDLNameVRSynonyms = @"vrSynonyms"; -SDLName const SDLNameWayPoints = @"wayPoints"; -SDLName const SDLNameWayPointType = @"wayPointType"; -SDLName const SDLNameWidth = @"width"; -SDLName const SDLNameWiperStatus = @"wiperStatus"; -SDLName const SDLNameX = @"x"; -SDLName const SDLNameY = @"y"; -SDLName const SDLNameYear = @"year"; - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.h new file mode 100644 index 0000000..6cc0edd --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.h @@ -0,0 +1,49 @@ +// +// SDLNavigationAction.h +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * A navigation action. + */ +typedef SDLEnum SDLNavigationAction SDL_SWIFT_ENUM; + +/** + * Using this action plus a supplied direction can give the type of turn. + */ +extern SDLNavigationAction const SDLNavigationActionTurn; + +/** + * A navigation action of exit. + */ +extern SDLNavigationAction const SDLNavigationActionExit; + +/** + * A navigation action of stay. + */ +extern SDLNavigationAction const SDLNavigationActionStay; + +/** + * A navigation action of merge. + */ +extern SDLNavigationAction const SDLNavigationActionMerge; + +/** + * A navigation action of ferry. + */ +extern SDLNavigationAction const SDLNavigationActionFerry; + +/** + * A navigation action of car shuttle train. + */ +extern SDLNavigationAction const SDLNavigationActionCarShuttleTrain; + +/** + * A navigation action of waypoint. + */ +extern SDLNavigationAction const SDLNavigationActionWaypoint; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.m new file mode 100644 index 0000000..938acea --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.m @@ -0,0 +1,17 @@ +// +// SDLNavigationAction.m +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLNavigationAction.h" + +SDLNavigationAction const SDLNavigationActionTurn = @"TURN"; +SDLNavigationAction const SDLNavigationActionExit = @"EXIT"; +SDLNavigationAction const SDLNavigationActionStay = @"STAY"; +SDLNavigationAction const SDLNavigationActionMerge = @"MERGE"; +SDLNavigationAction const SDLNavigationActionFerry = @"FERRY"; +SDLNavigationAction const SDLNavigationActionCarShuttleTrain = @"CAR_SHUTTLE_TRAIN"; +SDLNavigationAction const SDLNavigationActionWaypoint = @"WAYPOINT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.h index 25785aa..91fad71 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.h @@ -15,6 +15,11 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLNavigationCapability : SDLRPCStruct +/// Convenience init with all parameters +/// +/// @param sendLocationEnabled Whether or not the SendLocation RPC is enabled +/// @param waypointsEnabled Whether SDLNavigationInstruction.hor not Waypoint related RPCs are enabled +/// @return An SDLNavigationCapability object - (instancetype)initWithSendLocation:(BOOL)sendLocationEnabled waypoints:(BOOL)waypointsEnabled; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.m index ffacc2d..7f536bc 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.m @@ -9,7 +9,7 @@ #import "SDLNavigationCapability.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -28,19 +28,19 @@ - (instancetype)initWithSendLocation:(BOOL)sendLocationEnabled waypoints:(BOOL)w } - (void)setSendLocationEnabled:(nullable NSNumber *)sendLocationEnabled { - [store sdl_setObject:sendLocationEnabled forName:SDLNameSendLocationEnabled]; + [self.store sdl_setObject:sendLocationEnabled forName:SDLRPCParameterNameSendLocationEnabled]; } - (nullable NSNumber *)sendLocationEnabled { - return [store sdl_objectForName:SDLNameSendLocationEnabled]; + return [self.store sdl_objectForName:SDLRPCParameterNameSendLocationEnabled ofClass:NSNumber.class error:nil]; } - (void)setGetWayPointsEnabled:(nullable NSNumber *)getWayPointsEnabled { - [store sdl_setObject:getWayPointsEnabled forName:SDLNameGetWayPointsEnabled]; + [self.store sdl_setObject:getWayPointsEnabled forName:SDLRPCParameterNameGetWayPointsEnabled]; } - (nullable NSNumber *)getWayPointsEnabled { - return [store sdl_objectForName:SDLNameGetWayPointsEnabled]; + return [self.store sdl_objectForName:SDLRPCParameterNameGetWayPointsEnabled ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.h new file mode 100644 index 0000000..a04cf6e --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.h @@ -0,0 +1,109 @@ +// +// SDLNavigationInstruction.h +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessage.h" + +#import "SDLDirection.h" +#import "SDLNavigationAction.h" +#import "SDLNavigationJunction.h" + +@class SDLDateTime; +@class SDLImage; +@class SDLLocationDetails; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * A navigation instruction. + */ +@interface SDLNavigationInstruction : SDLRPCStruct + +/** + * Convenience init for required parameters + * + * @param locationDetails The location details + * @param action The navigation action + * @return A SDLNavigationInstruction object + */ +- (instancetype)initWithLocationDetails:(SDLLocationDetails *)locationDetails action:(SDLNavigationAction)action NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for all parameters. + * + * @param locationDetails The location details + * @param action The navigation action + * @param eta The estimated time of arrival + * @param bearing The angle at which this instruction takes place + * @param junctionType The navigation junction type + * @param drivingSide Used to infer which side of the road this instruction takes place + * @param details This is a string representation of this instruction, used to display instructions to the users + * @param image An image representation of this instruction + * @return A SDLNavigationInstruction object + */ +- (instancetype)initWithLocationDetails:(SDLLocationDetails *)locationDetails action:(SDLNavigationAction)action eta:(nullable SDLDateTime *)eta bearing:(UInt16)bearing junctionType:(nullable SDLNavigationJunction)junctionType drivingSide:(nullable SDLDirection)drivingSide details:(nullable NSString *)details image:(nullable SDLImage *)image; + +/** + * The location details. + * + * SDLLocationDetails, Required + */ +@property (strong, nonatomic) SDLLocationDetails *locationDetails; + +/** + * The navigation action. + * + * SDLNavigationAction, Required + */ +@property (strong, nonatomic) SDLNavigationAction action; + +/** + * The estimated time of arrival. + * + * SDLDateTime, Optional + */ +@property (nullable, strong, nonatomic) SDLDateTime *eta; + +/** + * The angle at which this instruction takes place. For example, 0 would mean straight, <=45 is bearing right, >= 135 is sharp right, between 45 and 135 is a regular right, and 180 is a U-Turn, etc. + * + * Integer, Optional, minValue="0" maxValue="359" + */ +@property (nullable, strong, nonatomic) NSNumber *bearing; + +/** + * The navigation junction type. + * + * SDLNavigationJunction, Optional + */ +@property (nullable, strong, nonatomic) SDLNavigationJunction junctionType; + +/** + * Used to infer which side of the road this instruction takes place. For a U-Turn (action=TURN, bearing=180) this will determine which direction the turn should take place. + * + * SDLDirection, Optional + */ +@property (nullable, strong, nonatomic) SDLDirection drivingSide; + +/** + * This is a string representation of this instruction, used to display instructions to the users. This is not intended to be read aloud to the users, see the param prompt in `NavigationServiceData` for that. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *details; + +/** + * An image representation of this instruction. + * + * SDLImage, Optional + */ +@property (nullable, strong, nonatomic) SDLImage *image; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.m new file mode 100644 index 0000000..d6e8e66 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.m @@ -0,0 +1,116 @@ +// +// SDLNavigationInstruction.m +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLNavigationInstruction.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLDateTime.h" +#import "SDLImage.h" +#import "SDLLocationDetails.h" +#import "SDLRPCParameterNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLNavigationInstruction + +- (instancetype)initWithLocationDetails:(SDLLocationDetails *)locationDetails action:(SDLNavigationAction)action { + self = [super init]; + if (!self) { + return nil; + } + + self.locationDetails = locationDetails; + self.action = action; + + return self; +} + +- (instancetype)initWithLocationDetails:(SDLLocationDetails *)locationDetails action:(SDLNavigationAction)action eta:(nullable SDLDateTime *)eta bearing:(UInt16)bearing junctionType:(nullable SDLNavigationJunction)junctionType drivingSide:(nullable SDLDirection)drivingSide details:(nullable NSString *)details image:(nullable SDLImage *)image { + self = [self initWithLocationDetails:locationDetails action:action]; + if (!self) { + return nil; + } + + self.eta = eta; + self.bearing = @(bearing); + self.junctionType = junctionType; + self.drivingSide = drivingSide; + self.details = details; + self.image = image; + + return self; +} + +- (void)setLocationDetails:(SDLLocationDetails *)locationDetails { + [self.store sdl_setObject:locationDetails forName:SDLRPCParameterNameLocationDetails]; +} + +- (SDLLocationDetails *)locationDetails { + return [self.store sdl_objectForName:SDLRPCParameterNameLocationDetails ofClass:SDLLocationDetails.class error:nil]; +} + +- (void)setAction:(SDLNavigationAction)action { + [self.store sdl_setObject:action forName:SDLRPCParameterNameAction]; +} + +- (SDLNavigationAction)action { + return [self.store sdl_enumForName:SDLRPCParameterNameAction error:nil]; +} + +- (void)setEta:(nullable SDLDateTime *)eta { + [self.store sdl_setObject:eta forName:SDLRPCParameterNameETA]; +} + +- (nullable SDLDateTime *)eta { + return [self.store sdl_objectForName:SDLRPCParameterNameETA ofClass:SDLDateTime.class error:nil]; +} + +- (void)setBearing:(nullable NSNumber *)bearing { + [self.store sdl_setObject:bearing forName:SDLRPCParameterNameBearing]; +} + +- (nullable NSNumber *)bearing { + return [self.store sdl_objectForName:SDLRPCParameterNameBearing ofClass:NSNumber.class error:nil]; +} + +- (void)setJunctionType:(nullable SDLNavigationJunction)junctionType { + [self.store sdl_setObject:junctionType forName:SDLRPCParameterNameJunctionType]; +} + +- (nullable SDLNavigationJunction)junctionType { + return [self.store sdl_enumForName:SDLRPCParameterNameJunctionType error:nil]; +} + +- (void)setDrivingSide:(nullable SDLDirection)drivingSide { + [self.store sdl_setObject:drivingSide forName:SDLRPCParameterNameDrivingSide]; +} + +- (nullable SDLDirection)drivingSide { + return [self.store sdl_enumForName:SDLRPCParameterNameDrivingSide error:nil]; +} + +- (void)setDetails:(nullable NSString *)details { + [self.store sdl_setObject:details forName:SDLRPCParameterNameDetails]; +} + +- (nullable NSString *)details { + return [self.store sdl_objectForName:SDLRPCParameterNameDetails ofClass:NSString.class error:nil]; +} + +- (void)setImage:(nullable SDLImage *)image { + [self.store sdl_setObject:image forName:SDLRPCParameterNameImage]; +} + +- (nullable SDLImage *)image { + return [self.store sdl_objectForName:SDLRPCParameterNameImage ofClass:SDLImage.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.h new file mode 100644 index 0000000..36be6f0 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.h @@ -0,0 +1,54 @@ +// +// SDLNavigationJunction.h +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * A navigation junction type. + */ +typedef SDLEnum SDLNavigationJunction SDL_SWIFT_ENUM; + +/** + * A junction that represents a standard intersection with a single road crossing another. + */ +extern SDLNavigationJunction const SDLNavigationJunctionRegular; + +/** + * A junction where the road splits off into two paths; a fork in the road. + */ +extern SDLNavigationJunction const SDLNavigationJunctionBifurcation; + +/** + * A junction that has multiple intersections and paths. + */ +extern SDLNavigationJunction const SDLNavigationJunctionMultiCarriageway; + +/** + * A junction where traffic moves in a single direction around a central, non-traversable point to reach one of the connecting roads. + */ +extern SDLNavigationJunction const SDLNavigationJunctionRoundabout; + +/** + * Similar to a roundabout, however the center of the roundabout is fully traversable. Also known as a mini-roundabout. + */ +extern SDLNavigationJunction const SDLNavigationJunctionTraversableRoundabout; + +/** + * A junction where lefts diverge to the right, then curve to the left, converting a left turn to a crossing maneuver. + */ +extern SDLNavigationJunction const SDLNavigationJunctionJughandle; + +/** + * Multiple way intersection that allows traffic to flow based on priority; most commonly right of way and first in, first out. + */ +extern SDLNavigationJunction const SDLNavigationJunctionAllWayYield; + +/** + * A junction designated for traffic turn arounds. + */ +extern SDLNavigationJunction const SDLNavigationJunctionTurnAround; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.m new file mode 100644 index 0000000..3c5b81c --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.m @@ -0,0 +1,19 @@ +// +// SDLNavigationJunction.m +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLNavigationJunction.h" + +SDLNavigationJunction const SDLNavigationJunctionRegular = @"REGULAR"; +SDLNavigationJunction const SDLNavigationJunctionBifurcation = @"BIFURCATION"; +SDLNavigationJunction const SDLNavigationJunctionMultiCarriageway = @"MULTI_CARRIAGEWAY"; +SDLNavigationJunction const SDLNavigationJunctionRoundabout = @"ROUNDABOUT"; +SDLNavigationJunction const SDLNavigationJunctionTraversableRoundabout = @"TRAVERSABLE_ROUNDABOUT"; +SDLNavigationJunction const SDLNavigationJunctionJughandle = @"JUGHANDLE"; +SDLNavigationJunction const SDLNavigationJunctionAllWayYield = @"ALL_WAY_YIELD"; +SDLNavigationJunction const SDLNavigationJunctionTurnAround = @"TURN_AROUND"; + diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.h new file mode 100644 index 0000000..0f090fc --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.h @@ -0,0 +1,111 @@ +// +// SDLNavigationServiceData.h +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessage.h" + +@class SDLDateTime; +@class SDLLocationDetails; +@class SDLNavigationInstruction; + +NS_ASSUME_NONNULL_BEGIN + +/** + * This data is related to what a navigation service would provide. + */ +@interface SDLNavigationServiceData : SDLRPCStruct + +/** + * Convenience init for required parameters. + * + * @param timestamp Timestamp of when the data was generated + * @return A SDLNavigationServiceData object + */ +- (instancetype)initWithTimestamp:(SDLDateTime *)timestamp NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for all parameters. + * + * @param timestamp Timestamp of when the data was generated + * @param origin The start location + * @param destination The final destination location + * @param destinationETA The estimated time of arrival at the final destination location + * @param instructions Array ordered with all remaining instructions + * @param nextInstructionETA The estimated time of arrival at the next destination + * @param nextInstructionDistance The distance to this instruction from current location + * @param nextInstructionDistanceScale Distance till next maneuver (starting from) from previous maneuver + * @param prompt This is a prompt message that should be conveyed to the user through either display or voice (TTS) + * @return A SDLNavigationServiceData object + */ +- (instancetype)initWithTimestamp:(SDLDateTime *)timestamp origin:(nullable SDLLocationDetails *)origin destination:(nullable SDLLocationDetails *)destination destinationETA:(nullable SDLDateTime *)destinationETA instructions:(nullable NSArray *)instructions nextInstructionETA:(nullable SDLDateTime *)nextInstructionETA nextInstructionDistance:(float)nextInstructionDistance nextInstructionDistanceScale:(float)nextInstructionDistanceScale prompt:(nullable NSString *)prompt; + +/** + * This is the timestamp of when the data was generated. This is to ensure any time or distance given in the data can accurately be adjusted if necessary. + * + * SDLDateTime, Required + */ +@property (strong, nonatomic) SDLDateTime *timestamp; + +/** + * The start location. + * + * SDLLocationDetails, Optional + */ +@property (nullable, strong, nonatomic) SDLLocationDetails *origin; + +/** + * The final destination location. + * + * SDLLocationDetails, Optional + */ +@property (nullable, strong, nonatomic) SDLLocationDetails *destination; + +/** + * The estimated time of arrival at the final destination location. + * + * SDLDateTime, Optional + */ +@property (nullable, strong, nonatomic) SDLDateTime *destinationETA; + +/** + * This array should be ordered with all remaining instructions. The start of this array should always contain the next instruction. + * + * Array of SDLNavigationInstruction, Optional + */ +@property (nullable, strong, nonatomic) NSArray *instructions; + +/** + * The estimated time of arrival at the next destination. + * + * SDLDateTime, Optional + */ +@property (nullable, strong, nonatomic) SDLDateTime *nextInstructionETA; + +/** + * The distance to this instruction from current location. This should only be updated ever .1 unit of distance. For more accuracy the consumer can use the GPS location of itself and the next instruction. + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *nextInstructionDistance; + +/** + * Distance till next maneuver (starting from) from previous maneuver. + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *nextInstructionDistanceScale; + +/** + * This is a prompt message that should be conveyed to the user through either display or voice (TTS). This param will change often as it should represent the following: approaching instruction, post instruction, alerts that affect the current navigation session, etc. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *prompt; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.m new file mode 100644 index 0000000..6143c47 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.m @@ -0,0 +1,124 @@ +// +// SDLNavigationServiceData.m +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLNavigationServiceData.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLDateTime.h" +#import "SDLLocationDetails.h" +#import "SDLRPCParameterNames.h" +#import "SDLNavigationInstruction.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLNavigationServiceData + +- (instancetype)initWithTimestamp:(SDLDateTime *)timestamp { + self = [super init]; + if (!self) { + return nil; + } + + self.timestamp = timestamp; + + return self; +} + +- (instancetype)initWithTimestamp:(SDLDateTime *)timestamp origin:(nullable SDLLocationDetails *)origin destination:(nullable SDLLocationDetails *)destination destinationETA:(nullable SDLDateTime *)destinationETA instructions:(nullable NSArray *)instructions nextInstructionETA:(nullable SDLDateTime *)nextInstructionETA nextInstructionDistance:(float)nextInstructionDistance nextInstructionDistanceScale:(float)nextInstructionDistanceScale prompt:(nullable NSString *)prompt { + self = [self initWithTimestamp:timestamp]; + if (!self) { + return nil; + } + + self.origin = origin; + self.destination = destination; + self.destinationETA = destinationETA; + self.instructions = instructions; + self.nextInstructionETA = nextInstructionETA; + self.nextInstructionDistance = @(nextInstructionDistance); + self.nextInstructionDistanceScale = @(nextInstructionDistanceScale); + self.prompt = prompt; + + return self; +} + +- (void)setTimestamp:(SDLDateTime *)timestamp { + [self.store sdl_setObject:timestamp forName:SDLRPCParameterNameTimeStamp]; +} + +- (SDLDateTime *)timestamp { + return [self.store sdl_objectForName:SDLRPCParameterNameTimeStamp ofClass:SDLDateTime.class error:nil]; +} + +- (void)setOrigin:(nullable SDLLocationDetails *)origin { + [self.store sdl_setObject:origin forName:SDLRPCParameterNameOrigin]; +} + +- (nullable SDLLocationDetails *)origin { + return [self.store sdl_objectForName:SDLRPCParameterNameOrigin ofClass:SDLLocationDetails.class error:nil]; +} + +- (void)setDestination:(nullable SDLLocationDetails *)destination { + [self.store sdl_setObject:destination forName:SDLRPCParameterNameDestination]; +} + +- (nullable SDLLocationDetails *)destination { + return [self.store sdl_objectForName:SDLRPCParameterNameDestination ofClass:SDLLocationDetails.class error:nil]; +} + +- (void)setDestinationETA:(nullable SDLDateTime *)destinationETA { + [self.store sdl_setObject:destinationETA forName:SDLRPCParameterNameDestinationETA]; +} + +- (nullable SDLDateTime *)destinationETA { + return [self.store sdl_objectForName:SDLRPCParameterNameDestinationETA ofClass:SDLDateTime.class error:nil]; +} + +- (void)setInstructions:(nullable NSArray *)instructions { + [self.store sdl_setObject:instructions forName:SDLRPCParameterNameInstructions]; +} + +- (nullable NSArray *)instructions { + return [self.store sdl_objectsForName:SDLRPCParameterNameInstructions ofClass:SDLNavigationInstruction.class error:nil]; +} + +- (void)setNextInstructionETA:(nullable SDLDateTime *)nextInstructionETA { + [self.store sdl_setObject:nextInstructionETA forName:SDLRPCParameterNameNextInstructionETA]; +} + +- (nullable SDLDateTime *)nextInstructionETA { + return [self.store sdl_objectForName:SDLRPCParameterNameNextInstructionETA ofClass:SDLDateTime.class error:nil]; +} + +- (void)setNextInstructionDistance:(nullable NSNumber *)nextInstructionDistance { + [self.store sdl_setObject:nextInstructionDistance forName:SDLRPCParameterNameNextInstructionDistance]; +} + +- (nullable NSNumber *)nextInstructionDistance { + return [self.store sdl_objectForName:SDLRPCParameterNameNextInstructionDistance ofClass:NSNumber.class error:nil]; +} + +- (void)setNextInstructionDistanceScale:(nullable NSNumber *)nextInstructionDistanceScale { + [self.store sdl_setObject:nextInstructionDistanceScale forName:SDLRPCParameterNameNextInstructionDistanceScale]; +} + +- (nullable NSNumber *)nextInstructionDistanceScale { + return [self.store sdl_objectForName:SDLRPCParameterNameNextInstructionDistanceScale ofClass:NSNumber.class error:nil]; +} + +- (void)setPrompt:(nullable NSString *)prompt { + [self.store sdl_setObject:prompt forName:SDLRPCParameterNamePrompt]; +} + +- (nullable NSString *)prompt { + return [self.store sdl_objectForName:SDLRPCParameterNamePrompt ofClass:NSString.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.h new file mode 100644 index 0000000..1c8f354 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.h @@ -0,0 +1,35 @@ +// +// SDLNavigationServiceManifest.h +// SmartDeviceLink +// +// Created by Nicole on 2/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessage.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * A navigation service manifest. + */ +@interface SDLNavigationServiceManifest : SDLRPCStruct + +/** + * Convenience init. + * + * @param acceptsWayPoints Informs the subscriber if this service can actually accept way points + * @return A SDLNavigationServiceManifest object + */ +- (instancetype)initWithAcceptsWayPoints:(BOOL)acceptsWayPoints; + +/** + * Informs the subscriber if this service can actually accept way points. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *acceptsWayPoints; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.m new file mode 100644 index 0000000..5769467 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.m @@ -0,0 +1,39 @@ +// +// SDLNavigationServiceManifest.m +// SmartDeviceLink +// +// Created by Nicole on 2/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLNavigationServiceManifest.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLNavigationServiceManifest + +- (instancetype)initWithAcceptsWayPoints:(BOOL)acceptsWayPoints { + self = [self init]; + if (!self) { + return nil; + } + + self.acceptsWayPoints = @(acceptsWayPoints); + + return self; +} + +- (void)setAcceptsWayPoints:(nullable NSNumber *)acceptsWayPoints { + [self.store sdl_setObject:acceptsWayPoints forName:SDLRPCParameterNameAcceptsWayPoints]; +} + +- (nullable NSNumber *)acceptsWayPoints { + return [self.store sdl_objectForName:SDLRPCParameterNameAcceptsWayPoints ofClass:NSNumber.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.h index a2a371d..d99e072 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.h @@ -25,8 +25,10 @@ NS_ASSUME_NONNULL_BEGIN #define NOTIFICATION_TYPEDEF NSNotificationName #endif +/// NSNotification names specific to incoming SDL RPC typedef NOTIFICATION_TYPEDEF SDLNotificationName; +/// The key used in all SDL NSNotifications to extract the response or notification from the userInfo dictionary. typedef NSString *SDLNotificationUserInfoKey; #pragma mark - Blocks @@ -94,110 +96,524 @@ typedef void (^SDLRPCButtonNotificationHandler)(SDLOnButtonPress *_Nullable butt */ typedef void (^SDLRPCCommandNotificationHandler)(SDLOnCommand *command); -/** - * The key used in all SDL NSNotifications to extract the response or notification from the userinfo dictionary. - */ + #pragma mark - Notification info dictionary keys + +/** +* The key used in all SDL NSNotifications to extract the response or notification from the userinfo dictionary. +*/ extern SDLNotificationUserInfoKey const SDLNotificationUserInfoObject; /** * Some general NSNotification names not associated with any specific RPC response or request. */ #pragma mark - General notifications + +/// Name for a disconnection notification extern SDLNotificationName const SDLTransportDidDisconnect; + +/// Name for a connection notification extern SDLNotificationName const SDLTransportDidConnect; + +/// Name for a error during connection notification extern SDLNotificationName const SDLTransportConnectError; + +/// Name for a disconnection notification +extern SDLNotificationName const SDLRPCServiceDidDisconnect; + +/// Name for a connection notification +extern SDLNotificationName const SDLRPCServiceDidConnect; + +/// Name for a error during connection notification +extern SDLNotificationName const SDLRPCServiceConnectionDidError; + +/// Name for a general error notification extern SDLNotificationName const SDLDidReceiveError; + +/// Name for an incoming lock screen icon notification extern SDLNotificationName const SDLDidReceiveLockScreenIcon; + +/// Name for an SDL became ready notification extern SDLNotificationName const SDLDidBecomeReady; + +/// Name for a notification sent by the user when their CarWindow view has been updated extern SDLNotificationName const SDLDidUpdateProjectionView; +/// Name for a LockScreenStatus notification RPC +extern SDLNotificationName const SDLDidChangeLockScreenStatusNotification __deprecated_msg("This will be replaced in a future version where a fake RPC is not sent"); + /** * NSNotification names associated with specific RPC responses. */ #pragma mark - RPC responses + +/// Name for an AddCommand response RPC extern SDLNotificationName const SDLDidReceiveAddCommandResponse; + +/// Name for an AddSubMenu response RPC extern SDLNotificationName const SDLDidReceiveAddSubMenuResponse; + +/// Name for an Alert response RPC extern SDLNotificationName const SDLDidReceiveAlertResponse; + +/// Name for an AlertManeuver response RPC extern SDLNotificationName const SDLDidReceiveAlertManeuverResponse; + +/// Name for an ButtonPress response RPC extern SDLNotificationName const SDLDidReceiveButtonPressResponse; + +/// Name for aa CancelInteraction response RPC +extern SDLNotificationName const SDLDidReceiveCancelInteractionResponse; + +/// Name for a ChangeRegistration response RPC extern SDLNotificationName const SDLDidReceiveChangeRegistrationResponse; + +/// Name for a CloseApplication response RPC +extern SDLNotificationName const SDLDidReceiveCloseApplicationResponse; + +/// Name for a CreateInteractionChoiceSet response RPC extern SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetResponse; + +/// Name for a CreateWindow response RPC +extern SDLNotificationName const SDLDidReceiveCreateWindowResponse; + +/// Name for a DeleteCommand response RPC extern SDLNotificationName const SDLDidReceiveDeleteCommandResponse; + +/// Name for a DeleteFile response RPC extern SDLNotificationName const SDLDidReceiveDeleteFileResponse; + +/// Name for a DeleteInteractionChoiceSet response RPC extern SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetResponse; + +/// Name for a DeleteSubmenu response RPC extern SDLNotificationName const SDLDidReceiveDeleteSubmenuResponse; + +/// Name for a DeleteWindow response RPC +extern SDLNotificationName const SDLDidReceiveDeleteWindowResponse; + +/// Name for a DiagnosticMessage response RPC extern SDLNotificationName const SDLDidReceiveDiagnosticMessageResponse; + +/// Name for a DialNumber response RPC extern SDLNotificationName const SDLDidReceiveDialNumberResponse; -extern SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse; + +/// Name for an EncodedSyncPData response RPC +extern SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse __deprecated; + +/// Name for an EndAudioPassThru response RPC extern SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse; + +/// Name for a Generic response RPC extern SDLNotificationName const SDLDidReceiveGenericResponse; + +/// Name for a GetCloudAppProperties response RPC +extern SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesResponse; + +/// Name for a GetAppServiceData response RPC +extern SDLNotificationName const SDLDidReceiveGetAppServiceDataResponse; + +/// Name for a GetDTCs response RPC extern SDLNotificationName const SDLDidReceiveGetDTCsResponse; + +/// Name for a GetFile response RPC +extern SDLNotificationName const SDLDidReceiveGetFileResponse; + +/// Name for a GetInteriorVehicleData response RPC extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataResponse; + +/// Name for a GetInteriorVehicleDataConsent response RPC +extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataConsentResponse; + +/// Name for a GetSystemCapabilities response RPC extern SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse; + +/// Name for a GetVehicleData response RPC extern SDLNotificationName const SDLDidReceiveGetVehicleDataResponse; + +/// Name for a GetWaypoints response RPC extern SDLNotificationName const SDLDidReceiveGetWaypointsResponse; + +/// Name for a ListFiles response RPC extern SDLNotificationName const SDLDidReceiveListFilesResponse; + +/// Name for a PerformAppServiceInteraction response RPC +extern SDLNotificationName const SDLDidReceivePerformAppServiceInteractionResponse; + +/// Name for a PerformAudioPassThru response RPC extern SDLNotificationName const SDLDidReceivePerformAudioPassThruResponse; + +/// Name for a PerformInteraction response RPC extern SDLNotificationName const SDLDidReceivePerformInteractionResponse; + +/// Name for a PublishAppService response RPC +extern SDLNotificationName const SDLDidReceivePublishAppServiceResponse; + +/// Name for a ReceivePutFile response RPC extern SDLNotificationName const SDLDidReceivePutFileResponse; + +/// Name for a ReceiveReadDID response RPC extern SDLNotificationName const SDLDidReceiveReadDIDResponse; + +/// Name for a RegisterAppInterface response RPC extern SDLNotificationName const SDLDidReceiveRegisterAppInterfaceResponse; + +/// Name for a ReleaseInteriorVehicleDataModule response RPC +extern SDLNotificationName const SDLDidReceiveReleaseInteriorVehicleDataModuleResponse; + +/// Name for a ResetGlobalProperties response RPC extern SDLNotificationName const SDLDidReceiveResetGlobalPropertiesResponse; + +/// Name for a ScrollableMessage response RPC extern SDLNotificationName const SDLDidReceiveScrollableMessageResponse; + +/// Name for a SendHapticData response RPC extern SDLNotificationName const SDLDidReceiveSendHapticDataResponse; + +/// Name for a SendLocation response RPC extern SDLNotificationName const SDLDidReceiveSendLocationResponse; + +/// Name for a SetAppIcon response RPC extern SDLNotificationName const SDLDidReceiveSetAppIconResponse; + +/// Name for a SetCloudAppProperties response RPC +extern SDLNotificationName const SDLDidReceiveSetCloudAppPropertiesResponse; + +/// Name for a SetDisplayLayout response RPC extern SDLNotificationName const SDLDidReceiveSetDisplayLayoutResponse; + +/// Name for a SetGlobalProperties response RPC extern SDLNotificationName const SDLDidReceiveSetGlobalPropertiesResponse; + +/// Name for a SetInteriorVehicleData response RPC extern SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataResponse; + +/// Name for a SetMediaClockTimer response RPC extern SDLNotificationName const SDLDidReceiveSetMediaClockTimerResponse; + +/// Name for a ShowConstantTBT response RPC extern SDLNotificationName const SDLDidReceiveShowConstantTBTResponse; + +/// Name for a Show response RPC extern SDLNotificationName const SDLDidReceiveShowResponse; + +/// Name for a ShowAppMenu response RPC +extern SDLNotificationName const SDLDidReceiveShowAppMenuResponse; + +/// Name for a Slider response RPC extern SDLNotificationName const SDLDidReceiveSliderResponse; + +/// Name for a Speak response RPC extern SDLNotificationName const SDLDidReceiveSpeakResponse; + +/// Name for a SubscribeButton response RPC extern SDLNotificationName const SDLDidReceiveSubscribeButtonResponse; + +/// Name for a SubscribeVehicleData response RPC extern SDLNotificationName const SDLDidReceiveSubscribeVehicleDataResponse; + +/// Name for a SubscribeWaypoints response RPC extern SDLNotificationName const SDLDidReceiveSubscribeWaypointsResponse; -extern SDLNotificationName const SDLDidReceiveSyncPDataResponse; + +/// Name for a SyncPData response RPC +extern SDLNotificationName const SDLDidReceiveSyncPDataResponse __deprecated; + +/// Name for a SystemRequest response RPC +extern SDLNotificationName const SDLDidReceiveSystemRequestResponse; + +/// Name for an UpdateTurnList response RPC extern SDLNotificationName const SDLDidReceiveUpdateTurnListResponse; + +/// Name for an UnpublishAppService response RPC +extern SDLNotificationName const SDLDidReceiveUnpublishAppServiceResponse; + +/// Name for an UnregisterAppInterface response RPC extern SDLNotificationName const SDLDidReceiveUnregisterAppInterfaceResponse; + +/// Name for an UnsubscribeButton response RPC extern SDLNotificationName const SDLDidReceiveUnsubscribeButtonResponse; + +/// Name for an UnsubscribeVehicleData response RPC extern SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataResponse; + +/// Name for an UnsubscribeWaypoints response RPC extern SDLNotificationName const SDLDidReceiveUnsubscribeWaypointsResponse; +/** + * NSNotification names associated with specific RPC requests. + */ +#pragma mark - RPC requests + +/// Name for an AddCommand request RPC +extern SDLNotificationName const SDLDidReceiveAddCommandRequest; + +/// Name for an AddSubMenu request RPC +extern SDLNotificationName const SDLDidReceiveAddSubMenuRequest; + +/// Name for an Alert request RPC +extern SDLNotificationName const SDLDidReceiveAlertRequest; + +/// Name for an AlertManeuver request RPC +extern SDLNotificationName const SDLDidReceiveAlertManeuverRequest; + +/// Name for a ButtonPress request RPC +extern SDLNotificationName const SDLDidReceiveButtonPressRequest; + +/// Name for a CancelInteraction request RPC +extern SDLNotificationName const SDLDidReceiveCancelInteractionRequest; + +/// Name for a ChangeRegistration request RPC +extern SDLNotificationName const SDLDidReceiveChangeRegistrationRequest; + +/// Name for a CloseApplication request RPC +extern SDLNotificationName const SDLDidReceiveCloseApplicationRequest; + +/// Name for a CreateInteractionChoiceSet request RPC +extern SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetRequest; + +/// Name for a CreateWindow request RPC +extern SDLNotificationName const SDLDidReceiveCreateWindowRequest; + +/// Name for a DeleteCommand request RPC +extern SDLNotificationName const SDLDidReceiveDeleteCommandRequest; + +/// Name for a DeleteFile request RPC +extern SDLNotificationName const SDLDidReceiveDeleteFileRequest; + +/// Name for a DeleteInteractionChoiceSet request RPC +extern SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetRequest; + +/// Name for a DeleteSubMenu request RPC +extern SDLNotificationName const SDLDidReceiveDeleteSubMenuRequest; + +/// Name for a DeleteSubMenu request RPC +extern SDLNotificationName const SDLDidReceiveDeleteWindowRequest; + +/// Name for a DiagnosticMessage request RPC +extern SDLNotificationName const SDLDidReceiveDiagnosticMessageRequest; + +/// Name for a DialNumberR request RPC +extern SDLNotificationName const SDLDidReceiveDialNumberRequest; + +/// Name for an EncodedSyncPData request RPC +extern SDLNotificationName const SDLDidReceiveEncodedSyncPDataRequest __deprecated; + +/// Name for a EndAudioPass request RPC +extern SDLNotificationName const SDLDidReceiveEndAudioPassThruRequest; + +/// Name for a GetAppServiceData request RPC +extern SDLNotificationName const SDLDidReceiveGetAppServiceDataRequest; + +/// Name for a GetCloudAppProperties request RPC +extern SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesRequest; + +/// Name for a ReceiveGetDTCs request RPC +extern SDLNotificationName const SDLDidReceiveGetDTCsRequest; + +/// Name for a GetFile request RPC +extern SDLNotificationName const SDLDidReceiveGetFileRequest; + +/// Name for a GetInteriorVehicleData request RPC +extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataRequest; + +/// Name for a GetInteriorVehicleDataConsent request RPC +extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataConsentRequest; + +/// Name for a GetSystemCapability request RPC +extern SDLNotificationName const SDLDidReceiveGetSystemCapabilityRequest; + +/// Name for a GetVehicleData request RPC +extern SDLNotificationName const SDLDidReceiveGetVehicleDataRequest; + +/// Name for a GetWayPoints request RPC +extern SDLNotificationName const SDLDidReceiveGetWayPointsRequest; + +/// Name for a ListFiles request RPC +extern SDLNotificationName const SDLDidReceiveListFilesRequest; + +/// Name for a PerformAppServiceInteraction request RPC +extern SDLNotificationName const SDLDidReceivePerformAppServiceInteractionRequest; + +/// Name for a PerformAudioPassThru request RPC +extern SDLNotificationName const SDLDidReceivePerformAudioPassThruRequest; + +/// Name for a PerformInteraction request RPC +extern SDLNotificationName const SDLDidReceivePerformInteractionRequest; + +/// Name for a PublishAppService request RPC +extern SDLNotificationName const SDLDidReceivePublishAppServiceRequest; + +/// Name for a PutFile request RPC +extern SDLNotificationName const SDLDidReceivePutFileRequest; + +/// Name for a ReadDID request RPC +extern SDLNotificationName const SDLDidReceiveReadDIDRequest; + +/// Name for a RegisterAppInterfacr request RPC +extern SDLNotificationName const SDLDidReceiveRegisterAppInterfaceRequest; + +/// Name for a ReleaseInteriorVehicleData request RPC +extern SDLNotificationName const SDLDidReceiveReleaseInteriorVehicleDataModuleRequest; + +/// Name for a ResetGlobalProperties request RPC +extern SDLNotificationName const SDLDidReceiveResetGlobalPropertiesRequest; + +/// Name for a ScrollableMessage request RPC +extern SDLNotificationName const SDLDidReceiveScrollableMessageRequest; + +/// Name for a SendHapticData request RPC +extern SDLNotificationName const SDLDidReceiveSendHapticDataRequest; + +/// Name for a SendLocation request RPC +extern SDLNotificationName const SDLDidReceiveSendLocationRequest; + +/// Name for a SetAppIcon request RPC +extern SDLNotificationName const SDLDidReceiveSetAppIconRequest; + +/// Name for a SetCloudProperties request RPC +extern SDLNotificationName const SDLDidReceiveSetCloudAppPropertiesRequest; + +/// Name for a SetDisplayLayout request RPC +extern SDLNotificationName const SDLDidReceiveSetDisplayLayoutRequest; + +/// Name for a SetGlobalProperties request RPC +extern SDLNotificationName const SDLDidReceiveSetGlobalPropertiesRequest; + +/// Name for a SetInteriorVehicleData request RPC +extern SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataRequest; + +/// Name for a SetMediaClockTimer request RPC +extern SDLNotificationName const SDLDidReceiveSetMediaClockTimerRequest; + +/// Name for a Show request RPC +extern SDLNotificationName const SDLDidReceiveShowRequest; + +/// Name for a ShowAppMenu request RPC +extern SDLNotificationName const SDLDidReceiveShowAppMenuRequest; + +/// Name for a ShowConstantTBT request RPC +extern SDLNotificationName const SDLDidReceiveShowConstantTBTRequest; + +/// Name for a Slider request RPC +extern SDLNotificationName const SDLDidReceiveSliderRequest; + +/// Name for a Speak request RPC +extern SDLNotificationName const SDLDidReceiveSpeakRequest; + +/// Name for a SubscribeButton request RPC +extern SDLNotificationName const SDLDidReceiveSubscribeButtonRequest; + +/// Name for a SubscribeVehicleData request RPC +extern SDLNotificationName const SDLDidReceiveSubscribeVehicleDataRequest; + +/// Name for a ubscribeWayPoints request RPC +extern SDLNotificationName const SDLDidReceiveSubscribeWayPointsRequest; + +/// Name for a SyncPData request RPC +extern SDLNotificationName const SDLDidReceiveSyncPDataRequest __deprecated; + +/// Name for a SystemRequest request RPC +extern SDLNotificationName const SDLDidReceiveSystemRequestRequest; + +/// Name for an UnpublishAppService request RPC +extern SDLNotificationName const SDLDidReceiveUnpublishAppServiceRequest; + +/// Name for an UnregisterAppInterface request RPC +extern SDLNotificationName const SDLDidReceiveUnregisterAppInterfaceRequest; + +/// Name for an UnsubscribeButton request RPC +extern SDLNotificationName const SDLDidReceiveUnsubscribeButtonRequest; + +/// Name for an UnsubscribeVehicleData request RPC +extern SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataRequest; + +/// Name for an UnsubscribeWayPoints request RPC +extern SDLNotificationName const SDLDidReceiveUnsubscribeWayPointsRequest; + +/// Name for an UpdateTurnList request RPC +extern SDLNotificationName const SDLDidReceiveUpdateTurnListRequest; + /** * NSNotification names associated with specific RPC notifications. */ #pragma mark - RPC Notifications + +/// Name for a DriverDistractionState notification RPC extern SDLNotificationName const SDLDidChangeDriverDistractionStateNotification; + +/// Name for a HMIStatus notification RPC extern SDLNotificationName const SDLDidChangeHMIStatusNotification; -extern SDLNotificationName const SDLDidReceiveAudioPassThruNotification; + +/// Name for an AppServiceData notification RPC +extern SDLNotificationName const SDLDidReceiveAppServiceDataNotification; + +/// Name for an AppUnregistered notification RPC extern SDLNotificationName const SDLDidReceiveAppUnregisteredNotification; + +/// Name for an AudioPassThru notification RPC +extern SDLNotificationName const SDLDidReceiveAudioPassThruNotification; + +/// Name for a ButtonEvent notification RPC extern SDLNotificationName const SDLDidReceiveButtonEventNotification; + +/// Name for a ButtonPress notification RPC extern SDLNotificationName const SDLDidReceiveButtonPressNotification; + +/// Name for a Command notification RPC extern SDLNotificationName const SDLDidReceiveCommandNotification; -extern SDLNotificationName const SDLDidReceiveEncodedDataNotification; + +/// Name for a EncodedSyncPData notification RPC +extern SDLNotificationName const SDLDidReceiveEncodedDataNotification __deprecated; + +/// Name for a InteriorVehicleData notification RPC extern SDLNotificationName const SDLDidReceiveInteriorVehicleDataNotification; + +/// Name for a KeyboardInput notification RPC extern SDLNotificationName const SDLDidReceiveKeyboardInputNotification; + +/// Name for a Language notification RPC extern SDLNotificationName const SDLDidChangeLanguageNotification; -extern SDLNotificationName const SDLDidChangeLockScreenStatusNotification; + +/// Name for a NewHash notification RPC extern SDLNotificationName const SDLDidReceiveNewHashNotification; + +/// Name for a VehicleIcon notification RPC extern SDLNotificationName const SDLDidReceiveVehicleIconNotification; + +/// Name for a ChangePermissions notification RPC extern SDLNotificationName const SDLDidChangePermissionsNotification; + +/// Name for a RemoteControlStatus notification RPC extern SDLNotificationName const SDLDidReceiveRemoteControlStatusNotification; + +/// Name for an OnSyncPData notification RPC +extern SDLNotificationName const SDLDidReceiveSyncPDataNotification __deprecated; + +/// Name for a SystemCapability notification RPC +extern SDLNotificationName const SDLDidReceiveSystemCapabilityUpdatedNotification; + +/// Name for a SystemRequest notification RPC extern SDLNotificationName const SDLDidReceiveSystemRequestNotification; + +/// Name for a TurnByTurnStat notification RPC extern SDLNotificationName const SDLDidChangeTurnByTurnStateNotification; + +/// Name for a TouchEvent notification RPC extern SDLNotificationName const SDLDidReceiveTouchEventNotification; + +/// Name for a VehicleData notification RPC extern SDLNotificationName const SDLDidReceiveVehicleDataNotification; + +/// Name for a Waypoint notification RPC extern SDLNotificationName const SDLDidReceiveWaypointNotification; +/// This class defines methods for getting groups of notifications @interface SDLNotificationConstants : NSObject /** All of the possible SDL RPC Response notification names - @return The names + @return All response notification names */ + (NSArray *)allResponseNames; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.m index 35f12b4..d4cb7c9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.m @@ -17,84 +17,170 @@ SDLNotificationName const SDLTransportDidDisconnect = @"com.sdl.transport.disconnect"; SDLNotificationName const SDLTransportDidConnect = @"com.sdl.transport.connect"; SDLNotificationName const SDLTransportConnectError = @"com.sdl.transport.connectError"; +SDLNotificationName const SDLRPCServiceDidDisconnect = @"com.sdl.rpcService.disconnect"; +SDLNotificationName const SDLRPCServiceDidConnect = @"com.sdl.rpcService.connect"; +SDLNotificationName const SDLRPCServiceConnectionDidError = @"com.sdl.rpcService.connectError"; SDLNotificationName const SDLDidReceiveError = @"com.sdl.general.error"; SDLNotificationName const SDLDidReceiveLockScreenIcon = @"com.sdl.general.lockscreenIconReceived"; SDLNotificationName const SDLDidBecomeReady = @"com.sdl.notification.managerReady"; SDLNotificationName const SDLDidReceiveVehicleIconNotification = @"com.sdl.notification.vehicleIcon"; SDLNotificationName const SDLDidUpdateProjectionView = @"com.sdl.notification.projectionViewUpdate"; +SDLNotificationName const SDLDidChangeLockScreenStatusNotification = @"com.sdl.notification.lockScreenStatus"; #pragma mark - RPC Responses -SDLNotificationName const SDLDidReceiveAddCommandResponse = @"com.sdl.response.addCommand"; -SDLNotificationName const SDLDidReceiveAddSubMenuResponse = @"com.sdl.response.addSubMenu"; -SDLNotificationName const SDLDidReceiveAlertResponse = @"com.sdl.response.alert"; -SDLNotificationName const SDLDidReceiveAlertManeuverResponse = @"com.sdl.response.alertManeuver"; -SDLNotificationName const SDLDidReceiveButtonPressResponse = @"com.sdl.response.buttonPress"; -SDLNotificationName const SDLDidReceiveChangeRegistrationResponse = @"com.sdl.response.changeRegistration"; -SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetResponse = @"com.sdl.response.createInteractionChoiceSet"; -SDLNotificationName const SDLDidReceiveDeleteCommandResponse = @"com.sdl.response.deleteCommand"; -SDLNotificationName const SDLDidReceiveDeleteFileResponse = @"com.sdl.response.deleteFile"; -SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetResponse = @"com.sdl.response.deleteInteractionChoiceSet"; -SDLNotificationName const SDLDidReceiveDeleteSubmenuResponse = @"com.sdl.response.deleteSubmenu"; -SDLNotificationName const SDLDidReceiveDiagnosticMessageResponse = @"com.sdl.response.diagnosticMessage"; -SDLNotificationName const SDLDidReceiveDialNumberResponse = @"com.sdl.response.dialNumber"; -SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse = @"com.sdl.response.encodedSyncPData"; -SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse = @"com.sdl.response.endAudioPassThru"; -SDLNotificationName const SDLDidReceiveGenericResponse = @"com.sdl.response.generic"; -SDLNotificationName const SDLDidReceiveGetDTCsResponse = @"com.sdl.response.getDTCs"; -SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataResponse = @"com.sdl.response.getInteriorVehicleData"; -SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse = @"com.sdl.response.getSystemCapabilities"; -SDLNotificationName const SDLDidReceiveGetVehicleDataResponse = @"com.sdl.response.getVehicleData"; -SDLNotificationName const SDLDidReceiveGetWaypointsResponse = @"com.sdl.response.getWaypoints"; -SDLNotificationName const SDLDidReceiveListFilesResponse = @"com.sdl.response.listFiles"; -SDLNotificationName const SDLDidReceivePerformAudioPassThruResponse = @"com.sdl.response.performAudioPassThru"; -SDLNotificationName const SDLDidReceivePerformInteractionResponse = @"com.sdl.response.performInteraction"; -SDLNotificationName const SDLDidReceivePutFileResponse = @"com.sdl.response.putFile"; -SDLNotificationName const SDLDidReceiveReadDIDResponse = @"com.sdl.response.readDID"; -SDLNotificationName const SDLDidReceiveRegisterAppInterfaceResponse = @"com.sdl.response.registerAppInterface"; -SDLNotificationName const SDLDidReceiveResetGlobalPropertiesResponse = @"com.sdl.response.resetGlobalProperties"; -SDLNotificationName const SDLDidReceiveScrollableMessageResponse = @"com.sdl.response.scrollableMessage"; -SDLNotificationName const SDLDidReceiveSendHapticDataResponse = @"com.sdl.response.sendHapticData"; -SDLNotificationName const SDLDidReceiveSendLocationResponse = @"com.sdl.response.sendLocation"; -SDLNotificationName const SDLDidReceiveSetAppIconResponse = @"com.sdl.response.setAppIcon"; -SDLNotificationName const SDLDidReceiveSetDisplayLayoutResponse = @"com.sdl.response.setDisplayLayout"; -SDLNotificationName const SDLDidReceiveSetGlobalPropertiesResponse = @"com.sdl.response.setGlobalProperties"; -SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataResponse = @"com.sdl.response.setInteriorVehicleData"; -SDLNotificationName const SDLDidReceiveSetMediaClockTimerResponse = @"com.sdl.response.setMediaClockTimer"; -SDLNotificationName const SDLDidReceiveShowConstantTBTResponse = @"com.sdl.response.showConstantTBT"; -SDLNotificationName const SDLDidReceiveShowResponse = @"com.sdl.response.show"; -SDLNotificationName const SDLDidReceiveSliderResponse = @"com.sdl.response.slider"; -SDLNotificationName const SDLDidReceiveSpeakResponse = @"com.sdl.response.speak"; -SDLNotificationName const SDLDidReceiveSubscribeButtonResponse = @"com.sdl.response.subscribeButton"; -SDLNotificationName const SDLDidReceiveSubscribeVehicleDataResponse = @"com.sdl.response.subscribeVehicleData"; -SDLNotificationName const SDLDidReceiveSubscribeWaypointsResponse = @"com.sdl.response.subscribeWaypoints"; -SDLNotificationName const SDLDidReceiveSyncPDataResponse = @"com.sdl.response.syncPData"; -SDLNotificationName const SDLDidReceiveUpdateTurnListResponse = @"com.sdl.response.updateTurnList"; -SDLNotificationName const SDLDidReceiveUnregisterAppInterfaceResponse = @"com.sdl.response.unregisterAppInterface"; -SDLNotificationName const SDLDidReceiveUnsubscribeButtonResponse = @"com.sdl.response.unsubscribeButton"; -SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataResponse = @"com.sdl.response.unsubscribeVehicleData"; -SDLNotificationName const SDLDidReceiveUnsubscribeWaypointsResponse = @"com.sdl.response.unsubscribeWaypoints"; +SDLNotificationName const SDLDidReceiveAddCommandResponse = @"com.sdl.response.AddCommand"; +SDLNotificationName const SDLDidReceiveAddSubMenuResponse = @"com.sdl.response.AddSubMenu"; +SDLNotificationName const SDLDidReceiveAlertResponse = @"com.sdl.response.Alert"; +SDLNotificationName const SDLDidReceiveAlertManeuverResponse = @"com.sdl.response.AlertManeuver"; +SDLNotificationName const SDLDidReceiveButtonPressResponse = @"com.sdl.response.ButtonPress"; +SDLNotificationName const SDLDidReceiveCancelInteractionResponse = @"com.sdl.response.CancelInteraction"; +SDLNotificationName const SDLDidReceiveChangeRegistrationResponse = @"com.sdl.response.ChangeRegistration"; +SDLNotificationName const SDLDidReceiveCloseApplicationResponse = @"com.sdl.response.CloseApplication"; +SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetResponse = @"com.sdl.response.CreateInteractionChoiceSet"; +SDLNotificationName const SDLDidReceiveCreateWindowResponse = @"com.sdl.response.CreateWindow"; +SDLNotificationName const SDLDidReceiveDeleteCommandResponse = @"com.sdl.response.DeleteCommand"; +SDLNotificationName const SDLDidReceiveDeleteFileResponse = @"com.sdl.response.DeleteFile"; +SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetResponse = @"com.sdl.response.DeleteInteractionChoiceSet"; +SDLNotificationName const SDLDidReceiveDeleteSubmenuResponse = @"com.sdl.response.DeleteSubMenu"; +SDLNotificationName const SDLDidReceiveDeleteWindowResponse = @"com.sdl.response.DeleteWindow"; +SDLNotificationName const SDLDidReceiveDiagnosticMessageResponse = @"com.sdl.response.DiagnosticMessage"; +SDLNotificationName const SDLDidReceiveDialNumberResponse = @"com.sdl.response.DialNumber"; +SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse = @"com.sdl.response.EncodedSyncPData"; +SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse = @"com.sdl.response.EndAudioPassThru"; +SDLNotificationName const SDLDidReceiveGenericResponse = @"com.sdl.response.GenericResponse"; +SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesResponse = @"com.sdl.response.GetCloudAppProperties"; +SDLNotificationName const SDLDidReceiveGetAppServiceDataResponse = @"com.sdl.response.GetAppServiceData"; +SDLNotificationName const SDLDidReceiveGetDTCsResponse = @"com.sdl.response.GetDTCs"; +SDLNotificationName const SDLDidReceiveGetFileResponse = @"com.sdl.response.GetFile"; +SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataResponse = @"com.sdl.response.GetInteriorVehicleData"; +SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataConsentResponse = @"com.sdl.response.GetInteriorVehicleDataConsent"; +SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse = @"com.sdl.response.GetSystemCapability"; +SDLNotificationName const SDLDidReceiveGetVehicleDataResponse = @"com.sdl.response.GetVehicleData"; +SDLNotificationName const SDLDidReceiveGetWaypointsResponse = @"com.sdl.response.GetWayPoints"; +SDLNotificationName const SDLDidReceiveListFilesResponse = @"com.sdl.response.ListFiles"; +SDLNotificationName const SDLDidReceivePerformAppServiceInteractionResponse = @"com.sdl.response.PerformAppServiceInteraction"; +SDLNotificationName const SDLDidReceivePerformAudioPassThruResponse = @"com.sdl.response.PerformAudioPassThru"; +SDLNotificationName const SDLDidReceivePerformInteractionResponse = @"com.sdl.response.PerformInteraction"; +SDLNotificationName const SDLDidReceivePublishAppServiceResponse = @"com.sdl.response.PublishAppService"; +SDLNotificationName const SDLDidReceivePutFileResponse = @"com.sdl.response.PutFile"; +SDLNotificationName const SDLDidReceiveReadDIDResponse = @"com.sdl.response.ReadDID"; +SDLNotificationName const SDLDidReceiveRegisterAppInterfaceResponse = @"com.sdl.response.RegisterAppInterface"; +SDLNotificationName const SDLDidReceiveReleaseInteriorVehicleDataModuleResponse = @"com.sdl.response.ReleaseInteriorVehicleDataModule"; +SDLNotificationName const SDLDidReceiveResetGlobalPropertiesResponse = @"com.sdl.response.ResetGlobalProperties"; +SDLNotificationName const SDLDidReceiveScrollableMessageResponse = @"com.sdl.response.ScrollableMessage"; +SDLNotificationName const SDLDidReceiveSendHapticDataResponse = @"com.sdl.response.SendHapticData"; +SDLNotificationName const SDLDidReceiveSendLocationResponse = @"com.sdl.response.SendLocation"; +SDLNotificationName const SDLDidReceiveSetAppIconResponse = @"com.sdl.response.SetAppIcon"; +SDLNotificationName const SDLDidReceiveSetCloudAppPropertiesResponse = @"com.sdl.response.SetCloudAppProperties"; +SDLNotificationName const SDLDidReceiveSetDisplayLayoutResponse = @"com.sdl.response.SetDisplayLayout"; +SDLNotificationName const SDLDidReceiveSetGlobalPropertiesResponse = @"com.sdl.response.SetGlobalProperties"; +SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataResponse = @"com.sdl.response.SetInteriorVehicleData"; +SDLNotificationName const SDLDidReceiveSetMediaClockTimerResponse = @"com.sdl.response.SetMediaClockTimer"; +SDLNotificationName const SDLDidReceiveShowConstantTBTResponse = @"com.sdl.response.ShowConstantTBT"; +SDLNotificationName const SDLDidReceiveShowResponse = @"com.sdl.response.Show"; +SDLNotificationName const SDLDidReceiveShowAppMenuResponse = @"com.sdl.response.ShowAppMenu"; +SDLNotificationName const SDLDidReceiveSliderResponse = @"com.sdl.response.Slider"; +SDLNotificationName const SDLDidReceiveSpeakResponse = @"com.sdl.response.Speak"; +SDLNotificationName const SDLDidReceiveSubscribeButtonResponse = @"com.sdl.response.SubscribeButton"; +SDLNotificationName const SDLDidReceiveSubscribeVehicleDataResponse = @"com.sdl.response.SubscribeVehicleData"; +SDLNotificationName const SDLDidReceiveSubscribeWaypointsResponse = @"com.sdl.response.SubscribeWayPoints"; +SDLNotificationName const SDLDidReceiveSyncPDataResponse = @"com.sdl.response.SyncPData"; +SDLNotificationName const SDLDidReceiveSystemRequestResponse = @"com.sdl.response.SystemRequest"; +SDLNotificationName const SDLDidReceiveUpdateTurnListResponse = @"com.sdl.response.UpdateTurnList"; +SDLNotificationName const SDLDidReceiveUnpublishAppServiceResponse = @"com.sdl.response.UnpublishAppService"; +SDLNotificationName const SDLDidReceiveUnregisterAppInterfaceResponse = @"com.sdl.response.UnregisterAppInterface"; +SDLNotificationName const SDLDidReceiveUnsubscribeButtonResponse = @"com.sdl.response.UnsubscribeButton"; +SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataResponse = @"com.sdl.response.UnsubscribeVehicleData"; +SDLNotificationName const SDLDidReceiveUnsubscribeWaypointsResponse = @"com.sdl.response.UnsubscribeWayPoints"; + +#pragma mark - RPC Requests +SDLNotificationName const SDLDidReceiveAddCommandRequest = @"com.sdl.request.AddCommand"; +SDLNotificationName const SDLDidReceiveAddSubMenuRequest = @"com.sdl.request.AddSubMenu"; +SDLNotificationName const SDLDidReceiveAlertRequest = @"com.sdl.request.Alert"; +SDLNotificationName const SDLDidReceiveAlertManeuverRequest = @"com.sdl.request.AlertManeuver"; +SDLNotificationName const SDLDidReceiveButtonPressRequest = @"com.sdl.request.ButtonPress"; +SDLNotificationName const SDLDidReceiveCancelInteractionRequest = @"com.sdl.request.CancelInteraction"; +SDLNotificationName const SDLDidReceiveChangeRegistrationRequest = @"com.sdl.request.ChangeRegistration"; +SDLNotificationName const SDLDidReceiveCloseApplicationRequest = @"com.sdl.request.CloseApplication"; +SDLNotificationName const SDLDidReceiveCreateWindowRequest = @"com.sdl.request.CreateWindow"; +SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetRequest = @"com.sdl.request.CreateInteractionChoiceSet"; +SDLNotificationName const SDLDidReceiveDeleteCommandRequest = @"com.sdl.request.DeleteCommand"; +SDLNotificationName const SDLDidReceiveDeleteFileRequest = @"com.sdl.request.DeleteFile"; +SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetRequest = @"com.sdl.request.DeleteInteractionChoiceSet"; +SDLNotificationName const SDLDidReceiveDeleteSubMenuRequest = @"com.sdl.request.DeleteSubMenu"; +SDLNotificationName const SDLDidReceiveDeleteWindowRequest = @"com.sdl.request.DeleteWindow"; +SDLNotificationName const SDLDidReceiveDiagnosticMessageRequest = @"com.sdl.request.DiagnosticMessage"; +SDLNotificationName const SDLDidReceiveDialNumberRequest = @"com.sdl.request.DialNumber"; +SDLNotificationName const SDLDidReceiveEncodedSyncPDataRequest = @"com.sdl.request.EncodedSyncPData"; +SDLNotificationName const SDLDidReceiveEndAudioPassThruRequest = @"com.sdl.request.EndAudioPassThru"; +SDLNotificationName const SDLDidReceiveGetAppServiceDataRequest = @"com.sdl.request.GetAppServiceData"; +SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesRequest = @"com.sdl.request.GetCloudAppProperties"; +SDLNotificationName const SDLDidReceiveGetDTCsRequest = @"com.sdl.request.GetDTCs"; +SDLNotificationName const SDLDidReceiveGetFileRequest = @"com.sdl.request.GetFile"; +SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataRequest = @"com.sdl.request.GetInteriorVehicleData"; +SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataConsentRequest = @"com.sdl.request.GetInteriorVehicleDataConsent"; +SDLNotificationName const SDLDidReceiveGetSystemCapabilityRequest = @"com.sdl.request.GetSystemCapability"; +SDLNotificationName const SDLDidReceiveGetVehicleDataRequest = @"com.sdl.request.GetVehicleData"; +SDLNotificationName const SDLDidReceiveGetWayPointsRequest = @"com.sdl.request.GetWayPoints"; +SDLNotificationName const SDLDidReceiveListFilesRequest = @"com.sdl.request.ListFiles"; +SDLNotificationName const SDLDidReceivePerformAppServiceInteractionRequest = @"com.sdl.request.PerformAppServiceInteraction"; +SDLNotificationName const SDLDidReceivePerformAudioPassThruRequest = @"com.sdl.request.PerformAudioPassThru"; +SDLNotificationName const SDLDidReceivePerformInteractionRequest = @"com.sdl.request.PerformInteraction"; +SDLNotificationName const SDLDidReceivePublishAppServiceRequest = @"com.sdl.request.PublishAppService"; +SDLNotificationName const SDLDidReceivePutFileRequest = @"com.sdl.request.PutFile"; +SDLNotificationName const SDLDidReceiveReadDIDRequest = @"com.sdl.request.ReadDID"; +SDLNotificationName const SDLDidReceiveRegisterAppInterfaceRequest = @"com.sdl.request.RegisterAppInterface"; +SDLNotificationName const SDLDidReceiveReleaseInteriorVehicleDataModuleRequest = @"com.sdl.request.ReleaseInteriorVehicleDataModule"; +SDLNotificationName const SDLDidReceiveResetGlobalPropertiesRequest = @"com.sdl.request.ResetGlobalProperties"; +SDLNotificationName const SDLDidReceiveScrollableMessageRequest = @"com.sdl.request.ScrollableMessage"; +SDLNotificationName const SDLDidReceiveSendHapticDataRequest = @"com.sdl.request.SendHapticData"; +SDLNotificationName const SDLDidReceiveSendLocationRequest = @"com.sdl.request.SendLocation"; +SDLNotificationName const SDLDidReceiveSetAppIconRequest = @"com.sdl.request.SetAppIcon"; +SDLNotificationName const SDLDidReceiveSetCloudAppPropertiesRequest = @"com.sdl.request.SetCloudAppProperties"; +SDLNotificationName const SDLDidReceiveSetDisplayLayoutRequest = @"com.sdl.request.SetDisplayLayout"; +SDLNotificationName const SDLDidReceiveSetGlobalPropertiesRequest = @"com.sdl.request.SetGlobalProperties"; +SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataRequest = @"com.sdl.request.SetInteriorVehicleData"; +SDLNotificationName const SDLDidReceiveSetMediaClockTimerRequest = @"com.sdl.request.SetMediaClockTimer"; +SDLNotificationName const SDLDidReceiveShowRequest = @"com.sdl.request.Show"; +SDLNotificationName const SDLDidReceiveShowAppMenuRequest = @"com.sdl.request.ShowAppMenu"; +SDLNotificationName const SDLDidReceiveShowConstantTBTRequest = @"com.sdl.request.ShowConstantTBT"; +SDLNotificationName const SDLDidReceiveSliderRequest = @"com.sdl.request.Slider"; +SDLNotificationName const SDLDidReceiveSpeakRequest = @"com.sdl.request.Speak"; +SDLNotificationName const SDLDidReceiveSubscribeButtonRequest = @"com.sdl.request.SubscribeButton"; +SDLNotificationName const SDLDidReceiveSubscribeVehicleDataRequest = @"com.sdl.request.SubscribeVehicleData"; +SDLNotificationName const SDLDidReceiveSubscribeWayPointsRequest = @"com.sdl.request.SubscribeWayPoints"; +SDLNotificationName const SDLDidReceiveSyncPDataRequest = @"com.sdl.request.SyncPData"; +SDLNotificationName const SDLDidReceiveSystemRequestRequest = @"com.sdl.request.SystemRequest"; +SDLNotificationName const SDLDidReceiveUnpublishAppServiceRequest = @"com.sdl.request.UnpublishAppService"; +SDLNotificationName const SDLDidReceiveUnregisterAppInterfaceRequest = @"com.sdl.request.UnregisterAppInterface"; +SDLNotificationName const SDLDidReceiveUnsubscribeButtonRequest = @"com.sdl.request.UnsubscribeButton"; +SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataRequest = @"com.sdl.request.UnsubscribeVehicleData"; +SDLNotificationName const SDLDidReceiveUnsubscribeWayPointsRequest = @"com.sdl.request.UnsubscribeWayPoints"; +SDLNotificationName const SDLDidReceiveUpdateTurnListRequest = @"com.sdl.request.UpdateTurnList"; #pragma mark - RPC Notifications -SDLNotificationName const SDLDidChangeDriverDistractionStateNotification = @"com.sdl.notification.changeDriverDistractionStateNotification"; -SDLNotificationName const SDLDidChangeHMIStatusNotification = @"com.sdl.notification.changeHMIStatus"; -SDLNotificationName const SDLDidReceiveAudioPassThruNotification = @"com.sdl.notification.audioPassThru"; -SDLNotificationName const SDLDidReceiveAppUnregisteredNotification = @"com.sdl.notification.appUnregistered"; -SDLNotificationName const SDLDidReceiveButtonEventNotification = @"com.sdl.notification.buttonEvent"; -SDLNotificationName const SDLDidReceiveButtonPressNotification = @"com.sdl.notification.buttonPress"; -SDLNotificationName const SDLDidReceiveCommandNotification = @"com.sdl.notification.command"; -SDLNotificationName const SDLDidReceiveEncodedDataNotification = @"com.sdl.notification.encodedData"; -SDLNotificationName const SDLDidReceiveInteriorVehicleDataNotification = @"com.sdl.notification.interiorVehicleData"; -SDLNotificationName const SDLDidReceiveKeyboardInputNotification = @"com.sdl.notification.keyboardInput"; -SDLNotificationName const SDLDidChangeLanguageNotification = @"com.sdl.notification.changeLanguage"; -SDLNotificationName const SDLDidChangeLockScreenStatusNotification = @"com.sdl.notification.lockScreenStatus"; -SDLNotificationName const SDLDidReceiveNewHashNotification = @"com.sdl.notification.newHash"; -SDLNotificationName const SDLDidChangePermissionsNotification = @"com.sdl.notification.changePermission"; -SDLNotificationName const SDLDidReceiveSystemRequestNotification = @"com.sdl.notification.receiveSystemRequest"; -SDLNotificationName const SDLDidReceiveRemoteControlStatusNotification = @"com.sdl.notification.rcStatus"; -SDLNotificationName const SDLDidChangeTurnByTurnStateNotification = @"com.sdl.notification.changeTurnByTurnState"; -SDLNotificationName const SDLDidReceiveTouchEventNotification = @"com.sdl.notification.touchEvent"; -SDLNotificationName const SDLDidReceiveVehicleDataNotification = @"com.sdl.notification.vehicleData"; -SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notification.waypoint"; +SDLNotificationName const SDLDidChangeDriverDistractionStateNotification = @"com.sdl.notification.OnDriverDistraction"; +SDLNotificationName const SDLDidChangeHMIStatusNotification = @"com.sdl.notification.OnHMIStatus"; +SDLNotificationName const SDLDidReceiveAppServiceDataNotification = @"com.sdl.notification.OnAppServiceData"; +SDLNotificationName const SDLDidReceiveAppUnregisteredNotification = @"com.sdl.notification.OnAppInterfaceUnregistered"; +SDLNotificationName const SDLDidReceiveAudioPassThruNotification = @"com.sdl.notification.OnAudioPassThru"; +SDLNotificationName const SDLDidReceiveButtonEventNotification = @"com.sdl.notification.OnButtonEvent"; +SDLNotificationName const SDLDidReceiveButtonPressNotification = @"com.sdl.notification.OnButtonPress"; +SDLNotificationName const SDLDidReceiveCommandNotification = @"com.sdl.notification.OnCommand"; +SDLNotificationName const SDLDidReceiveEncodedDataNotification = @"com.sdl.notification.OnEncodedSyncPData"; +SDLNotificationName const SDLDidReceiveInteriorVehicleDataNotification = @"com.sdl.notification.OnInteriorVehicleData"; +SDLNotificationName const SDLDidReceiveKeyboardInputNotification = @"com.sdl.notification.OnKeyboardInput"; +SDLNotificationName const SDLDidChangeLanguageNotification = @"com.sdl.notification.OnLanguageChange"; +SDLNotificationName const SDLDidReceiveNewHashNotification = @"com.sdl.notification.OnHashChange"; +SDLNotificationName const SDLDidChangePermissionsNotification = @"com.sdl.notification.OnPermissionsChange"; +SDLNotificationName const SDLDidReceiveRemoteControlStatusNotification = @"com.sdl.notification.OnRCStatus"; +SDLNotificationName const SDLDidReceiveSyncPDataNotification = @"com.sdl.notification.OnSyncPData"; +SDLNotificationName const SDLDidReceiveSystemCapabilityUpdatedNotification = @"com.sdl.notification.OnSystemCapabilityUpdated"; +SDLNotificationName const SDLDidReceiveSystemRequestNotification = @"com.sdl.notification.OnSystemRequest"; +SDLNotificationName const SDLDidChangeTurnByTurnStateNotification = @"com.sdl.notification.OnTBTClientState"; +SDLNotificationName const SDLDidReceiveTouchEventNotification = @"com.sdl.notification.OnTouchEvent"; +SDLNotificationName const SDLDidReceiveVehicleDataNotification = @"com.sdl.notification.OnVehicleData"; +SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notification.OnWayPointChange"; @implementation SDLNotificationConstants @@ -105,46 +191,67 @@ @implementation SDLNotificationConstants SDLDidReceiveAlertResponse, SDLDidReceiveAlertManeuverResponse, SDLDidReceiveButtonPressResponse, + SDLDidReceiveCancelInteractionResponse, SDLDidReceiveChangeRegistrationResponse, + SDLDidReceiveCloseApplicationResponse, SDLDidReceiveCreateInteractionChoiceSetResponse, + SDLDidReceiveCreateWindowResponse, SDLDidReceiveDeleteCommandResponse, SDLDidReceiveDeleteFileResponse, SDLDidReceiveDeleteInteractionChoiceSetResponse, SDLDidReceiveDeleteSubmenuResponse, + SDLDidReceiveDeleteWindowResponse, SDLDidReceiveDiagnosticMessageResponse, SDLDidReceiveDialNumberResponse, +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" SDLDidReceiveEncodedSyncPDataResponse, +#pragma clang diagnostic pop SDLDidReceiveEndAudioPassThruResponse, SDLDidReceiveGenericResponse, + SDLDidReceiveGetCloudAppPropertiesResponse, + SDLDidReceiveGetAppServiceDataResponse, SDLDidReceiveGetDTCsResponse, + SDLDidReceiveGetFileResponse, SDLDidReceiveGetInteriorVehicleDataResponse, + SDLDidReceiveGetInteriorVehicleDataConsentResponse, SDLDidReceiveGetSystemCapabilitiesResponse, SDLDidReceiveGetVehicleDataResponse, SDLDidReceiveGetWaypointsResponse, SDLDidReceiveListFilesResponse, + SDLDidReceivePerformAppServiceInteractionResponse, SDLDidReceivePerformAudioPassThruResponse, SDLDidReceivePerformInteractionResponse, + SDLDidReceivePublishAppServiceResponse, SDLDidReceivePutFileResponse, SDLDidReceiveReadDIDResponse, SDLDidReceiveRegisterAppInterfaceResponse, + SDLDidReceiveReleaseInteriorVehicleDataModuleResponse, SDLDidReceiveResetGlobalPropertiesResponse, SDLDidReceiveScrollableMessageResponse, SDLDidReceiveSendHapticDataResponse, SDLDidReceiveSendLocationResponse, SDLDidReceiveSetAppIconResponse, + SDLDidReceiveSetCloudAppPropertiesResponse, SDLDidReceiveSetDisplayLayoutResponse, SDLDidReceiveSetGlobalPropertiesResponse, SDLDidReceiveSetInteriorVehicleDataResponse, SDLDidReceiveSetMediaClockTimerResponse, SDLDidReceiveShowConstantTBTResponse, SDLDidReceiveShowResponse, + SDLDidReceiveShowAppMenuResponse, SDLDidReceiveSliderResponse, SDLDidReceiveSpeakResponse, SDLDidReceiveSubscribeButtonResponse, SDLDidReceiveSubscribeVehicleDataResponse, SDLDidReceiveSubscribeWaypointsResponse, +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" SDLDidReceiveSyncPDataResponse, +#pragma clang diagnostic pop + SDLDidReceiveSystemRequestResponse, SDLDidReceiveUpdateTurnListResponse, + SDLDidReceiveUnpublishAppServiceResponse, SDLDidReceiveUnregisterAppInterfaceResponse, SDLDidReceiveUnsubscribeButtonResponse, SDLDidReceiveUnsubscribeVehicleDataResponse, diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.h index ba5089a..a923879 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.h @@ -8,8 +8,7 @@ #import -#import "SDLProxyListener.h" - +@class SDLRPCRequest; @class SDLRPCResponse; @class SDLRPCNotification; @@ -19,16 +18,38 @@ NS_ASSUME_NONNULL_BEGIN /** * The SDLNotificationDispatcher subscribes to SDLProxy notifications through SDLProxyListener and sends out actual NSNotifications with those contents. It can also be told to send out other types of notifications. */ -@interface SDLNotificationDispatcher : NSObject +@interface SDLNotificationDispatcher : NSObject /** - * Post a notification with a specified name and object. + * Posts a notification with a specified name and object. * - * @param name The name of the notification to be dispatched. - * @param info The object to be send along in the `userInfo` dictionary. + * @param name The name of the notification to be dispatched. + * @param info The notification object to be sent in the `userInfo` dictionary. */ - (void)postNotificationName:(NSString *)name infoObject:(nullable id)info; + +/** + * Posts a request from Core with a specified name and request object + * + * @param name The name of the request to be dispatched + * @param request The request object to be sent in the `userInfo` dictionary + */ +- (void)postRPCRequestNotification:(NSString *)name request:(__kindof SDLRPCRequest *)request; + +/** + * Posts a response from Core with a specified name and response object + * + * @param name The name of the response to be dispatched + * @param response The response object to be sent in the `userInfo` dictionary + */ - (void)postRPCResponseNotification:(NSString *)name response:(__kindof SDLRPCResponse *)response; + +/** + * Posts a notification from Core with a specified name and notification object + * + * @param name The name of the notification to be dispatched + * @param rpcNotification The notification object to be sent in the `userInfo` dictionary + */ - (void)postRPCNotificationNotification:(NSString *)name notification:(__kindof SDLRPCNotification *)rpcNotification; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.m index f2a4b69..bd8ab7e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.m @@ -8,10 +8,12 @@ #import "SDLNotificationDispatcher.h" -#import "SDLError.h" #import "SDLNotificationConstants.h" #import "SDLRPCNotification.h" #import "SDLRPCNotificationNotification.h" +#import "SDLRPCRequest.h" +#import "SDLRPCRequestNotification.h" +#import "SDLRPCResponse.h" #import "SDLRPCResponseNotification.h" NS_ASSUME_NONNULL_BEGIN @@ -31,334 +33,27 @@ - (void)postNotificationName:(NSString *)name infoObject:(nullable id)infoObject userInfo = @{SDLNotificationUserInfoObject: infoObject}; } - // Runs on `com.sdl.rpcProcessingQueue` [[NSNotificationCenter defaultCenter] postNotificationName:name object:self userInfo:userInfo]; } +- (void)postRPCRequestNotification:(NSString *)name request:(__kindof SDLRPCRequest *)request { + SDLRPCRequestNotification *notification = [[SDLRPCRequestNotification alloc] initWithName:name object:self rpcRequest:request]; + + [[NSNotificationCenter defaultCenter] postNotification:notification]; +} + - (void)postRPCResponseNotification:(NSString *)name response:(__kindof SDLRPCResponse *)response { SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:name object:self rpcResponse:response]; - // Runs on `com.sdl.rpcProcessingQueue` [[NSNotificationCenter defaultCenter] postNotification:notification]; } - (void)postRPCNotificationNotification:(NSString *)name notification:(__kindof SDLRPCNotification *)rpcNotification { SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:name object:self rpcNotification:rpcNotification]; - // Runs on `com.sdl.rpcProcessingQueue` [[NSNotificationCenter defaultCenter] postNotification:notification]; } -#pragma mark - SDLProxyListener Delegate Methods - -- (void)onProxyOpened { - [self postNotificationName:SDLTransportDidConnect infoObject:nil]; -} - -- (void)onProxyClosed { - [self postNotificationName:SDLTransportDidDisconnect infoObject:nil]; -} - -- (void)onTransportError:(NSError *)error { - [self postNotificationName:SDLTransportConnectError infoObject:error]; -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wincompatible-pointer-types" - -- (void)onOnHMIStatus:(SDLOnHMIStatus *)notification { - [self postRPCNotificationNotification:SDLDidChangeHMIStatusNotification notification:notification]; -} - -- (void)onOnDriverDistraction:(SDLOnDriverDistraction *)notification { - [self postRPCNotificationNotification:SDLDidChangeDriverDistractionStateNotification notification:notification]; -} - -#pragma mark Optional Methods - -- (void)onError:(NSException *)e { - NSError *error = [NSError sdl_lifecycle_unknownRemoteErrorWithDescription:e.name andReason:e.reason]; - [self postNotificationName:SDLDidReceiveError infoObject:error]; -} - -- (void)onReceivedLockScreenIcon:(UIImage *)icon { - [self postNotificationName:SDLDidReceiveLockScreenIcon infoObject:icon]; -} - -- (void)onAddCommandResponse:(SDLAddCommandResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveAddCommandResponse response:response]; -} - -- (void)onAddSubMenuResponse:(SDLAddSubMenuResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveAddSubMenuResponse response:response]; -} - -- (void)onAlertManeuverResponse:(SDLAlertManeuverResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveAlertManeuverResponse response:response]; -} - -- (void)onAlertResponse:(SDLAlertResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveAlertResponse response:response]; -} - -- (void)onButtonPressResponse:(SDLButtonPressResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveButtonPressResponse response:response]; -} - -- (void)onChangeRegistrationResponse:(SDLChangeRegistrationResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveChangeRegistrationResponse response:response]; -} - -- (void)onCreateInteractionChoiceSetResponse:(SDLCreateInteractionChoiceSetResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveCreateInteractionChoiceSetResponse response:response]; -} - -- (void)onDeleteCommandResponse:(SDLDeleteCommandResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveDeleteCommandResponse response:response]; -} - -- (void)onDeleteFileResponse:(SDLDeleteFileResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveDeleteFileResponse response:response]; -} - -- (void)onDeleteInteractionChoiceSetResponse:(SDLDeleteInteractionChoiceSetResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveDeleteInteractionChoiceSetResponse response:response]; -} - -- (void)onDeleteSubMenuResponse:(SDLDeleteSubMenuResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveDeleteSubmenuResponse response:response]; -} - -- (void)onDiagnosticMessageResponse:(SDLDiagnosticMessageResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveDiagnosticMessageResponse response:response]; -} - -- (void)onDialNumberResponse:(SDLDialNumberResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveDialNumberResponse response:response]; -} - -- (void)onEncodedSyncPDataResponse:(SDLEncodedSyncPDataResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveEncodedSyncPDataResponse response:response]; -} - -- (void)onEndAudioPassThruResponse:(SDLEndAudioPassThruResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveEndAudioPassThruResponse response:response]; -} - -- (void)onGenericResponse:(SDLGenericResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveGenericResponse response:response]; -} - -- (void)onGetDTCsResponse:(SDLGetDTCsResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveGetDTCsResponse response:response]; -} - -- (void)onGetInteriorVehicleDataResponse:(SDLGetInteriorVehicleDataResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveGetInteriorVehicleDataResponse response:response]; -} - -- (void)onGetSystemCapabilityResponse:(SDLGetSystemCapabilityResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveGetSystemCapabilitiesResponse response:response]; -} - -- (void)onGetVehicleDataResponse:(SDLGetVehicleDataResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveGetVehicleDataResponse response:response]; -} - -- (void)onGetWayPointsResponse:(SDLGetWaypointsResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveGetWaypointsResponse response:response]; -} - -- (void)onListFilesResponse:(SDLListFilesResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveListFilesResponse response:response]; -} - -- (void)onPerformAudioPassThruResponse:(SDLPerformAudioPassThruResponse *)response { - [self postRPCResponseNotification:SDLDidReceivePerformAudioPassThruResponse response:response]; -} - -- (void)onPerformInteractionResponse:(SDLPerformInteractionResponse *)response { - [self postRPCResponseNotification:SDLDidReceivePerformInteractionResponse response:response]; -} - -- (void)onPutFileResponse:(SDLPutFileResponse *)response { - [self postRPCResponseNotification:SDLDidReceivePutFileResponse response:response]; -} - -- (void)onReadDIDResponse:(SDLReadDIDResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveReadDIDResponse response:response]; -} - -- (void)onRegisterAppInterfaceResponse:(SDLRegisterAppInterfaceResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveRegisterAppInterfaceResponse response:response]; -} - -- (void)onResetGlobalPropertiesResponse:(SDLResetGlobalPropertiesResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveResetGlobalPropertiesResponse response:response]; -} - -- (void)onScrollableMessageResponse:(SDLScrollableMessageResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveScrollableMessageResponse response:response]; -} - -- (void)onSendHapticDataResponse:(SDLSendHapticDataResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveSendHapticDataResponse response:response]; -} - -- (void)onSendLocationResponse:(SDLSendLocationResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveSendLocationResponse response:response]; -} - -- (void)onSetAppIconResponse:(SDLSetAppIconResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveSetAppIconResponse response:response]; -} - -- (void)onSetDisplayLayoutResponse:(SDLSetDisplayLayoutResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveSetDisplayLayoutResponse response:response]; -} - -- (void)onSetGlobalPropertiesResponse:(SDLSetGlobalPropertiesResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveSetGlobalPropertiesResponse response:response]; -} - -- (void)onSetInteriorVehicleDataResponse:(SDLSetInteriorVehicleDataResponse *)response{ - [self postRPCResponseNotification:SDLDidReceiveSetInteriorVehicleDataResponse response:response]; -} - -- (void)onSetMediaClockTimerResponse:(SDLSetMediaClockTimerResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveSetMediaClockTimerResponse response:response]; -} - -- (void)onShowConstantTBTResponse:(SDLShowConstantTBTResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveShowConstantTBTResponse response:response]; -} - -- (void)onShowResponse:(SDLShowResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveShowResponse response:response]; -} - -- (void)onSliderResponse:(SDLSliderResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveSliderResponse response:response]; -} - -- (void)onSpeakResponse:(SDLSpeakResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveSpeakResponse response:response]; -} - -- (void)onSubscribeButtonResponse:(SDLSubscribeButtonResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveSubscribeButtonResponse response:response]; -} - -- (void)onSubscribeVehicleDataResponse:(SDLSubscribeVehicleDataResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveSubscribeVehicleDataResponse response:response]; -} - -- (void)onSubscribeWayPointsResponse:(SDLSubscribeWayPointsResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveSubscribeWaypointsResponse response:response]; -} - -- (void)onSyncPDataResponse:(SDLSyncPDataResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveSyncPDataResponse response:response]; -} - -- (void)onUpdateTurnListResponse:(SDLUpdateTurnListResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveUpdateTurnListResponse response:response]; -} - -- (void)onUnregisterAppInterfaceResponse:(SDLUnregisterAppInterfaceResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveUnregisterAppInterfaceResponse response:response]; -} - -- (void)onUnsubscribeButtonResponse:(SDLUnsubscribeButtonResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveUnsubscribeButtonResponse response:response]; -} - -- (void)onUnsubscribeVehicleDataResponse:(SDLUnsubscribeVehicleDataResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveUnsubscribeVehicleDataResponse response:response]; -} - -- (void)onUnsubscribeWayPointsResponse:(SDLUnsubscribeWayPointsResponse *)response { - [self postRPCResponseNotification:SDLDidReceiveUnsubscribeWaypointsResponse response:response]; -} - -- (void)onOnAppInterfaceUnregistered:(SDLOnAppInterfaceUnregistered *)notification { - [self postRPCNotificationNotification:SDLDidReceiveAppUnregisteredNotification notification:notification]; -} - -- (void)onOnAudioPassThru:(SDLOnAudioPassThru *)notification { - [self postRPCNotificationNotification:SDLDidReceiveAudioPassThruNotification notification:notification]; -} - -- (void)onOnButtonEvent:(SDLOnButtonEvent *)notification { - [self postRPCNotificationNotification:SDLDidReceiveButtonEventNotification notification:notification]; -} - -- (void)onOnButtonPress:(SDLOnButtonPress *)notification { - [self postRPCNotificationNotification:SDLDidReceiveButtonPressNotification notification:notification]; -} - -- (void)onOnCommand:(SDLOnCommand *)notification { - [self postRPCNotificationNotification:SDLDidReceiveCommandNotification notification:notification]; -} - -- (void)onOnEncodedSyncPData:(SDLOnEncodedSyncPData *)notification { - [self postRPCNotificationNotification:SDLDidReceiveEncodedDataNotification notification:notification]; -} - -- (void)onOnHashChange:(SDLOnHashChange *)notification { - [self postRPCNotificationNotification:SDLDidReceiveNewHashNotification notification:notification]; -} - -- (void)onOnInteriorVehicleData:(SDLOnInteriorVehicleData *)notification { - [self postRPCNotificationNotification:SDLDidReceiveInteriorVehicleDataNotification notification:notification]; -} - -- (void)onOnKeyboardInput:(SDLOnKeyboardInput *)notification { - [self postRPCNotificationNotification:SDLDidReceiveKeyboardInputNotification notification:notification]; -} - -- (void)onOnLanguageChange:(SDLOnLanguageChange *)notification { - [self postRPCNotificationNotification:SDLDidChangeLanguageNotification notification:notification]; -} - -- (void)onOnLockScreenNotification:(SDLOnLockScreenStatus *)notification { - [self postRPCNotificationNotification:SDLDidChangeLockScreenStatusNotification notification:notification]; -} - -- (void)onOnPermissionsChange:(SDLOnPermissionsChange *)notification { - [self postRPCNotificationNotification:SDLDidChangePermissionsNotification notification:notification]; -} - -- (void)onOnRCStatus:(SDLOnRCStatus *)notification { - [self postRPCNotificationNotification:SDLDidReceiveRemoteControlStatusNotification notification:notification]; -} - -- (void)onOnSyncPData:(SDLOnSyncPData *)notification { - [self postRPCNotificationNotification:SDLDidReceiveSystemRequestNotification notification:notification]; -} - -- (void)onOnSystemRequest:(SDLOnSystemRequest *)notification { - [self postRPCNotificationNotification:SDLDidReceiveSystemRequestNotification notification:notification]; -} - -- (void)onOnTBTClientState:(SDLOnTBTClientState *)notification { - [self postRPCNotificationNotification:SDLDidChangeTurnByTurnStateNotification notification:notification]; -} - -- (void)onOnTouchEvent:(SDLOnTouchEvent *)notification { - [self postRPCNotificationNotification:SDLDidReceiveTouchEventNotification notification:notification]; -} - -- (void)onOnVehicleData:(SDLOnVehicleData *)notification { - [self postRPCNotificationNotification:SDLDidReceiveVehicleDataNotification notification:notification]; -} - -- (void)onOnWayPointChange:(SDLOnWayPointChange *)notification { - [self postRPCNotificationNotification:SDLDidReceiveWaypointNotification notification:notification]; -} - -#pragma clang diagnostic pop - @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.h index 60edbb3..ab65d1f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.h @@ -10,8 +10,26 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLOasisAddress : SDLRPCStruct +/// Convenience init to describe an oasis address +/// +/// @param subThoroughfare Portion of thoroughfare (e.g. house number) +/// @param thoroughfare Hypernym for street, road etc +/// @param locality Hypernym for city/village +/// @param administrativeArea Portion of country (e.g. state) +/// @param postalCode PostalCode of location (PLZ, ZIP, PIN, CAP etc.) +/// @param countryCode CountryCode of the country(ISO 3166-2) - (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare thoroughfare:(nullable NSString *)thoroughfare locality:(nullable NSString *)locality administrativeArea:(nullable NSString *)administrativeArea postalCode:(nullable NSString *)postalCode countryCode:(nullable NSString *)countryCode; +/// Convenience init to describe an oasis address with all parameters +/// +/// @param subThoroughfare Portion of thoroughfare (e.g. house number) +/// @param thoroughfare Hypernym for street, road etc +/// @param locality Hypernym for city/village +/// @param administrativeArea Portion of country (e.g. state) +/// @param postalCode PostalCode of location (PLZ, ZIP, PIN, CAP etc.) +/// @param countryCode CountryCode of the country(ISO 3166-2) +/// @param subAdministrativeArea Portion of administrativeArea (e.g. county) +/// @param subLocality Hypernym for district - (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare thoroughfare:(nullable NSString *)thoroughfare locality:(nullable NSString *)locality administrativeArea:(nullable NSString *)administrativeArea postalCode:(nullable NSString *)postalCode countryCode:(nullable NSString *)countryCode countryName:(nullable NSString *)countryName subAdministrativeArea:(nullable NSString *)subAdministrativeArea subLocality:(nullable NSString *)subLocality; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.m index 97bfbe8..798804b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.m @@ -4,7 +4,7 @@ #import "SDLOasisAddress.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -34,75 +34,75 @@ - (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare tho } - (void)setCountryName:(nullable NSString *)countryName { - [store sdl_setObject:countryName forName:SDLNameCountryName]; + [self.store sdl_setObject:countryName forName:SDLRPCParameterNameCountryName]; } - (nullable NSString *)countryName { - return [store sdl_objectForName:SDLNameCountryName]; + return [self.store sdl_objectForName:SDLRPCParameterNameCountryName ofClass:NSString.class error:nil]; } - (void)setCountryCode:(nullable NSString *)countryCode { - [store sdl_setObject:countryCode forName:SDLNameCountryCode]; + [self.store sdl_setObject:countryCode forName:SDLRPCParameterNameCountryCode]; } - (nullable NSString *)countryCode { - return [store sdl_objectForName:SDLNameCountryCode]; + return [self.store sdl_objectForName:SDLRPCParameterNameCountryCode ofClass:NSString.class error:nil]; } - (void)setPostalCode:(nullable NSString *)postalCode { - [store sdl_setObject:postalCode forName:SDLNamePostalCode]; + [self.store sdl_setObject:postalCode forName:SDLRPCParameterNamePostalCode]; } - (nullable NSString *)postalCode { - return [store sdl_objectForName:SDLNamePostalCode]; + return [self.store sdl_objectForName:SDLRPCParameterNamePostalCode ofClass:NSString.class error:nil]; } - (void)setAdministrativeArea:(nullable NSString *)administrativeArea { - [store sdl_setObject:administrativeArea forName:SDLNameAdministrativeArea]; + [self.store sdl_setObject:administrativeArea forName:SDLRPCParameterNameAdministrativeArea]; } - (nullable NSString *)administrativeArea { - return [store sdl_objectForName:SDLNameAdministrativeArea]; + return [self.store sdl_objectForName:SDLRPCParameterNameAdministrativeArea ofClass:NSString.class error:nil]; } - (void)setSubAdministrativeArea:(nullable NSString *)subAdministrativeArea { - [store sdl_setObject:subAdministrativeArea forName:SDLNameSubAdministrativeArea]; + [self.store sdl_setObject:subAdministrativeArea forName:SDLRPCParameterNameSubAdministrativeArea]; } - (nullable NSString *)subAdministrativeArea { - return [store sdl_objectForName:SDLNameSubAdministrativeArea]; + return [self.store sdl_objectForName:SDLRPCParameterNameSubAdministrativeArea ofClass:NSString.class error:nil]; } - (void)setLocality:(nullable NSString *)locality { - [store sdl_setObject:locality forName:SDLNameLocality]; + [self.store sdl_setObject:locality forName:SDLRPCParameterNameLocality]; } - (nullable NSString *)locality { - return [store sdl_objectForName:SDLNameLocality]; + return [self.store sdl_objectForName:SDLRPCParameterNameLocality ofClass:NSString.class error:nil]; } - (void)setSubLocality:(nullable NSString *)subLocality { - [store sdl_setObject:subLocality forName:SDLNameSubLocality]; + [self.store sdl_setObject:subLocality forName:SDLRPCParameterNameSubLocality]; } - (nullable NSString *)subLocality { - return [store sdl_objectForName:SDLNameSubLocality]; + return [self.store sdl_objectForName:SDLRPCParameterNameSubLocality ofClass:NSString.class error:nil]; } - (void)setThoroughfare:(nullable NSString *)thoroughfare { - [store sdl_setObject:thoroughfare forName:SDLNameThoroughfare]; + [self.store sdl_setObject:thoroughfare forName:SDLRPCParameterNameThoroughfare]; } - (nullable NSString *)thoroughfare { - return [store sdl_objectForName:SDLNameThoroughfare]; + return [self.store sdl_objectForName:SDLRPCParameterNameThoroughfare ofClass:NSString.class error:nil]; } - (void)setSubThoroughfare:(nullable NSString *)subThoroughfare { - [store sdl_setObject:subThoroughfare forName:SDLNameSubThoroughfare]; + [self.store sdl_setObject:subThoroughfare forName:SDLRPCParameterNameSubThoroughfare]; } - (nullable NSString *)subThoroughfare { - return [store sdl_objectForName:SDLNameSubThoroughfare]; + return [self.store sdl_objectForName:SDLRPCParameterNameSubThoroughfare ofClass:NSString.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m index a38ac07..c99ab75 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m @@ -4,24 +4,29 @@ #import "SDLOnAppInterfaceUnregistered.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnAppInterfaceUnregistered +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnAppInterfaceUnregistered]) { + if (self = [super initWithName:SDLRPCFunctionNameOnAppInterfaceUnregistered]) { } return self; } +#pragma clang diagnostic pop - (void)setReason:(SDLAppInterfaceUnregisteredReason)reason { - [parameters sdl_setObject:reason forName:SDLNameReason]; + [self.parameters sdl_setObject:reason forName:SDLRPCParameterNameReason]; } - (SDLAppInterfaceUnregisteredReason)reason { - return [parameters sdl_objectForName:SDLNameReason]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameReason error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.h new file mode 100644 index 0000000..f3a4ff1 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.h @@ -0,0 +1,38 @@ +// +// SDLOnAppServiceData.h +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCNotification.h" + +@class SDLAppServiceData; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * This notification includes the data that is updated from the specific service. + */ +@interface SDLOnAppServiceData : SDLRPCNotification + +/** + * Convenience init for all parameters. + * + * @param serviceData The updated app service data + * @return A SDLOnAppServiceData object + */ +- (instancetype)initWithServiceData:(SDLAppServiceData *)serviceData; + +/** + * The updated app service data. + * + * SDLAppServiceData, Required + */ +@property (strong, nonatomic) SDLAppServiceData *serviceData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.m new file mode 100644 index 0000000..792721b --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.m @@ -0,0 +1,51 @@ +// +// SDLOnAppServiceData.m +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLOnAppServiceData.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +#import "SDLAppServiceData.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLOnAppServiceData + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameOnAppServiceData]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithServiceData:(SDLAppServiceData *)serviceData { + self = [self init]; + if (!self) { + return nil; + } + + self.serviceData = serviceData; + + return self; +} + +- (void)setServiceData:(SDLAppServiceData *)serviceData { + [self.parameters sdl_setObject:serviceData forName:SDLRPCParameterNameServiceData]; +} + +- (SDLAppServiceData *)serviceData { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceData ofClass:SDLAppServiceData.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAudioPassThru.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAudioPassThru.m index 2ab8fef..c404fba 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAudioPassThru.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAudioPassThru.m @@ -5,17 +5,21 @@ #import "SDLOnAudioPassThru.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnAudioPassThru +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnAudioPassThru]) { + if (self = [super initWithName:SDLRPCFunctionNameOnAudioPassThru]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonEvent.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonEvent.m index 4d65422..3e9c57c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonEvent.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonEvent.m @@ -4,42 +4,46 @@ #import "SDLOnButtonEvent.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnButtonEvent +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnButtonEvent]) { + if (self = [super initWithName:SDLRPCFunctionNameOnButtonEvent]) { } return self; } +#pragma clang diagnostic pop - (void)setButtonName:(SDLButtonName)buttonName { - [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; + [self.parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; } - (SDLButtonName)buttonName { - NSObject *obj = [parameters sdl_objectForName:SDLNameButtonName]; - return (SDLButtonName)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; } - (void)setButtonEventMode:(SDLButtonEventMode)buttonEventMode { - [parameters sdl_setObject:buttonEventMode forName:SDLNameButtonEventMode]; + [self.parameters sdl_setObject:buttonEventMode forName:SDLRPCParameterNameButtonEventMode]; } - (SDLButtonEventMode)buttonEventMode { - NSObject *obj = [parameters sdl_objectForName:SDLNameButtonEventMode]; - return (SDLButtonEventMode)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonEventMode error:&error]; } - (void)setCustomButtonID:(nullable NSNumber *)customButtonID { - [parameters sdl_setObject:customButtonID forName:SDLNameCustomButtonId]; + [self.parameters sdl_setObject:customButtonID forName:SDLRPCParameterNameCustomButtonId]; } - (nullable NSNumber *)customButtonID { - return [parameters sdl_objectForName:SDLNameCustomButtonId]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameCustomButtonId ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonPress.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonPress.m index addeccf..2acced3 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonPress.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonPress.m @@ -4,42 +4,46 @@ #import "SDLOnButtonPress.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnButtonPress +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnButtonPress]) { + if (self = [super initWithName:SDLRPCFunctionNameOnButtonPress]) { } return self; } +#pragma clang diagnostic pop - (void)setButtonName:(SDLButtonName)buttonName { - [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; + [self.parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; } - (SDLButtonName)buttonName { - NSObject *obj = [parameters sdl_objectForName:SDLNameButtonName]; - return (SDLButtonName)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; } - (void)setButtonPressMode:(SDLButtonPressMode)buttonPressMode { - [parameters sdl_setObject:buttonPressMode forName:SDLNameButtonPressMode]; + [self.parameters sdl_setObject:buttonPressMode forName:SDLRPCParameterNameButtonPressMode]; } - (SDLButtonPressMode)buttonPressMode { - NSObject *obj = [parameters sdl_objectForName:SDLNameButtonPressMode]; - return (SDLButtonPressMode)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonPressMode error:&error]; } - (void)setCustomButtonID:(nullable NSNumber *)customButtonID { - [parameters sdl_setObject:customButtonID forName:SDLNameCustomButtonId]; + [self.parameters sdl_setObject:customButtonID forName:SDLRPCParameterNameCustomButtonId]; } - (nullable NSNumber *)customButtonID { - return [parameters sdl_objectForName:SDLNameCustomButtonId]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameCustomButtonId ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnCommand.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnCommand.m index f1d5478..40a9750 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnCommand.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnCommand.m @@ -4,33 +4,38 @@ #import "SDLOnCommand.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnCommand +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnCommand]) { + if (self = [super initWithName:SDLRPCFunctionNameOnCommand]) { } return self; } +#pragma clang diagnostic pop - (void)setCmdID:(NSNumber *)cmdID { - [parameters sdl_setObject:cmdID forName:SDLNameCommandId]; + [self.parameters sdl_setObject:cmdID forName:SDLRPCParameterNameCommandId]; } - (NSNumber *)cmdID { - return [parameters sdl_objectForName:SDLNameCommandId]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameCommandId ofClass:NSNumber.class error:&error]; } - (void)setTriggerSource:(SDLTriggerSource)triggerSource { - [parameters sdl_setObject:triggerSource forName:SDLNameTriggerSource]; + [self.parameters sdl_setObject:triggerSource forName:SDLRPCParameterNameTriggerSource]; } - (SDLTriggerSource)triggerSource { - NSObject *obj = [parameters sdl_objectForName:SDLNameTriggerSource]; - return (SDLTriggerSource)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameTriggerSource error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.h index d7f3693..f7df06b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.h @@ -28,6 +28,20 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic) SDLDriverDistractionState state; +/** + If enabled, the lock screen will be able to be dismissed while connected to SDL, allowing users the ability to interact with the app. + + Optional, Boolean + */ +@property (strong, nonatomic) NSNumber *lockScreenDismissalEnabled; + +/** + Warning message to be displayed on the lock screen when dismissal is enabled. This warning should be used to ensure that the user is not the driver of the vehicle, ex. `Swipe up to dismiss, acknowledging that you are not the driver.`. This parameter must be present if "lockScreenDismissalEnabled" is set to true. + + Optional, String + */ +@property (strong, nonatomic) NSString *lockScreenDismissalWarning; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.m index cba06de..40fb3af 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.m @@ -4,26 +4,48 @@ #import "SDLOnDriverDistraction.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLDriverDistractionState.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnDriverDistraction +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnDriverDistraction]) { + if (self = [super initWithName:SDLRPCFunctionNameOnDriverDistraction]) { } return self; } +#pragma clang diagnostic pop - (void)setState:(SDLDriverDistractionState)state { - [parameters sdl_setObject:state forName:SDLNameState]; + [self.parameters sdl_setObject:state forName:SDLRPCParameterNameState]; } - (SDLDriverDistractionState)state { - NSObject *obj = [parameters sdl_objectForName:SDLNameState]; - return (SDLDriverDistractionState)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameState error:&error]; +} + +- (void)setLockScreenDismissalEnabled:(NSNumber *)lockScreenDismissalEnabled { + [self.parameters sdl_setObject:lockScreenDismissalEnabled forName:SDLRPCParameterNameLockScreenDismissalEnabled]; +} + +- (NSNumber *)lockScreenDismissalEnabled { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameLockScreenDismissalEnabled ofClass:NSNumber.class error:&error]; +} + +- (void)setLockScreenDismissalWarning:(NSString *)lockScreenDismissalWarning { + [self.parameters sdl_setObject:lockScreenDismissalWarning forName:SDLRPCParameterNameLockScreenDismissalWarning]; +} + +- (NSString *)lockScreenDismissalWarning { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameLockScreenDismissalWarning ofClass:NSString.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.h index 01aa48b..b42880e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.h @@ -8,6 +8,7 @@ NS_ASSUME_NONNULL_BEGIN /** Callback including encoded data of any SyncP packets that SYNC needs to send back to the mobile device. Legacy / v1 Protocol implementation; responds to EncodedSyncPData. *** DEPRECATED *** */ +__deprecated @interface SDLOnEncodedSyncPData : SDLRPCNotification /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.m index d9796b4..830bb5d 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.m @@ -4,40 +4,48 @@ #import "SDLOnEncodedSyncPData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" @implementation SDLOnEncodedSyncPData +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnEncodedSyncPData]) { + if (self = [super initWithName:SDLRPCFunctionNameOnEncodedSyncPData]) { } return self; } +#pragma clang diagnostic pop - (void)setData:(NSArray *)data { - [parameters sdl_setObject:data forName:SDLNameData]; + [self.parameters sdl_setObject:data forName:SDLRPCParameterNameData]; } - (NSArray *)data { - return [parameters sdl_objectForName:SDLNameData]; + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameData ofClass:NSString.class error:&error]; } - (void)setURL:(nullable NSString *)URL { - [parameters sdl_setObject:URL forName:SDLNameURLUppercase]; + [self.parameters sdl_setObject:URL forName:SDLRPCParameterNameURLUppercase]; } - (nullable NSString *)URL { - return [parameters sdl_objectForName:SDLNameURLUppercase]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameURLUppercase ofClass:NSString.class error:nil]; } - (void)setTimeout:(nullable NSNumber *)Timeout { - [parameters sdl_setObject:Timeout forName:SDLNameTimeoutCapitalized]; + [self.parameters sdl_setObject:Timeout forName:SDLRPCParameterNameTimeoutCapitalized]; } - (nullable NSNumber *)Timeout { - return [parameters sdl_objectForName:SDLNameTimeoutCapitalized]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeoutCapitalized ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.h index 069f778..22a4350 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.h @@ -44,6 +44,21 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic) SDLSystemContext systemContext; +/** + This is the unique ID assigned to the window that this RPC is intended for. If this param is not included, it will be assumed that this request is specifically for the main window on the main display. @see PredefinedWindows enum. + + @since SDL 6.0 + */ +@property (strong, nonatomic, nullable) NSNumber *windowID; + +/// Initialize an SDLOnHMIStatus RPC with initial parameters +/// @param hmiLevel The HMI level +/// @param systemContext The system context +/// @param audioStreamingState The ability for an audio app to be heard +/// @param videoStreamingState The ability for a video straming app to stream +/// @param windowID Which window this status relates to +- (instancetype)initWithHMILevel:(SDLHMILevel)hmiLevel systemContext:(SDLSystemContext)systemContext audioStreamingState:(SDLAudioStreamingState)audioStreamingState videoStreamingState:(nullable SDLVideoStreamingState)videoStreamingState windowID:(nullable NSNumber *)windowID; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.m index b345856..09534e9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.m @@ -6,52 +6,78 @@ #import "NSMutableDictionary+Store.h" #import "SDLAudioStreamingState.h" #import "SDLHMILevel.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSystemContext.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnHMIStatus +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnHMIStatus]) { + if (self = [super initWithName:SDLRPCFunctionNameOnHMIStatus]) { } return self; } +#pragma clang diagnostic pop + +- (instancetype)initWithHMILevel:(SDLHMILevel)hmiLevel systemContext:(SDLSystemContext)systemContext audioStreamingState:(SDLAudioStreamingState)audioStreamingState videoStreamingState:(nullable SDLVideoStreamingState)videoStreamingState windowID:(nullable NSNumber *)windowID { + self = [self init]; + if (!self) { return nil; } + + self.hmiLevel = hmiLevel; + self.systemContext = systemContext; + self.audioStreamingState = audioStreamingState; + self.videoStreamingState = videoStreamingState; + self.windowID = windowID; + + return self; +} - (void)setHmiLevel:(SDLHMILevel)hmiLevel { - [parameters sdl_setObject:hmiLevel forName:SDLNameHMILevel]; + [self.parameters sdl_setObject:hmiLevel forName:SDLRPCParameterNameHMILevel]; } - (SDLHMILevel)hmiLevel { - NSObject *obj = [parameters sdl_objectForName:SDLNameHMILevel]; - return (SDLHMILevel)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameHMILevel error:&error]; } - (void)setAudioStreamingState:(SDLAudioStreamingState)audioStreamingState { - [parameters sdl_setObject:audioStreamingState forName:SDLNameAudioStreamingState]; + [self.parameters sdl_setObject:audioStreamingState forName:SDLRPCParameterNameAudioStreamingState]; } - (SDLAudioStreamingState)audioStreamingState { - NSObject *obj = [parameters sdl_objectForName:SDLNameAudioStreamingState]; - return (SDLAudioStreamingState)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameAudioStreamingState error:&error]; } - (void)setVideoStreamingState:(nullable SDLVideoStreamingState)videoStreamingState { - [parameters sdl_setObject:videoStreamingState forName:SDLNameVideoStreamingState]; + [self.parameters sdl_setObject:videoStreamingState forName:SDLRPCParameterNameVideoStreamingState]; } - (nullable SDLVideoStreamingState)videoStreamingState { - return [parameters sdl_objectForName:SDLNameVideoStreamingState]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameVideoStreamingState error:nil]; } - (void)setSystemContext:(SDLSystemContext)systemContext { - [parameters sdl_setObject:systemContext forName:SDLNameSystemContext]; + [self.parameters sdl_setObject:systemContext forName:SDLRPCParameterNameSystemContext]; } - (SDLSystemContext)systemContext { - NSObject *obj = [parameters sdl_objectForName:SDLNameSystemContext]; - return (SDLSystemContext)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameSystemContext error:&error]; +} + +- (void)setWindowID:(nullable NSNumber *)windowID { + [self.parameters sdl_setObject:windowID forName:SDLRPCParameterNameWindowId]; +} + +- (nullable NSNumber *)windowID { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHashChange.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHashChange.m index f3fb707..f7114a4 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHashChange.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHashChange.m @@ -5,24 +5,29 @@ #import "SDLOnHashChange.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnHashChange +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnHashChange]) { + if (self = [super initWithName:SDLRPCFunctionNameOnHashChange]) { } return self; } +#pragma clang diagnostic pop - (void)setHashID:(NSString *)hashID { - [parameters sdl_setObject:hashID forName:SDLNameHashId]; + [self.parameters sdl_setObject:hashID forName:SDLRPCParameterNameHashId]; } - (NSString *)hashID { - return [parameters sdl_objectForName:SDLNameHashId]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameHashId ofClass:NSString.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnInteriorVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnInteriorVehicleData.m index bb06560..58eff55 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnInteriorVehicleData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnInteriorVehicleData.m @@ -3,7 +3,8 @@ // #import "SDLOnInteriorVehicleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLModuleData.h" #import "NSMutableDictionary+Store.h" @@ -11,18 +12,22 @@ @implementation SDLOnInteriorVehicleData +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnInteriorVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameOnInteriorVehicleData]) { } return self; } +#pragma clang diagnostic pop - (void)setModuleData:(SDLModuleData *)moduleData { - [parameters sdl_setObject:moduleData forName:SDLNameModuleData]; + [self.parameters sdl_setObject:moduleData forName:SDLRPCParameterNameModuleData]; } - (SDLModuleData *)moduleData { - return [parameters sdl_objectForName:SDLNameModuleData ofClass:SDLModuleData.class]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleData ofClass:SDLModuleData.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnKeyboardInput.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnKeyboardInput.m index a6bd022..5785032 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnKeyboardInput.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnKeyboardInput.m @@ -4,33 +4,37 @@ #import "SDLOnKeyboardInput.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnKeyboardInput +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnKeyboardInput]) { + if (self = [super initWithName:SDLRPCFunctionNameOnKeyboardInput]) { } return self; } +#pragma clang diagnostic pop - (void)setEvent:(SDLKeyboardEvent)event { - [parameters sdl_setObject:event forName:SDLNameEvent]; + [self.parameters sdl_setObject:event forName:SDLRPCParameterNameEvent]; } - (SDLKeyboardEvent)event { - NSObject *obj = [parameters sdl_objectForName:SDLNameEvent]; - return (SDLKeyboardEvent)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameEvent error:&error]; } - (void)setData:(nullable NSString *)data { - [parameters sdl_setObject:data forName:SDLNameData]; + [self.parameters sdl_setObject:data forName:SDLRPCParameterNameData]; } - (nullable NSString *)data { - return [parameters sdl_objectForName:SDLNameData]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameData ofClass:NSString.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLanguageChange.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLanguageChange.m index 419875f..cee3f79 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLanguageChange.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLanguageChange.m @@ -5,34 +5,38 @@ #import "NSMutableDictionary+Store.h" #import "SDLLanguage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnLanguageChange +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnLanguageChange]) { + if (self = [super initWithName:SDLRPCFunctionNameOnLanguageChange]) { } return self; } +#pragma clang diagnostic pop - (void)setLanguage:(SDLLanguage)language { - [parameters sdl_setObject:language forName:SDLNameLanguage]; + [self.parameters sdl_setObject:language forName:SDLRPCParameterNameLanguage]; } - (SDLLanguage)language { - NSObject *obj = [parameters sdl_objectForName:SDLNameLanguage]; - return (SDLLanguage)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameLanguage error:&error]; } - (void)setHmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage { - [parameters sdl_setObject:hmiDisplayLanguage forName:SDLNameHMIDisplayLanguage]; + [self.parameters sdl_setObject:hmiDisplayLanguage forName:SDLRPCParameterNameHMIDisplayLanguage]; } - (SDLLanguage)hmiDisplayLanguage { - NSObject *obj = [parameters sdl_objectForName:SDLNameHMIDisplayLanguage]; - return (SDLLanguage)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameHMIDisplayLanguage error:&error]; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.h index 255c0d7..ce1b2cd 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.h @@ -23,6 +23,7 @@ NS_ASSUME_NONNULL_BEGIN +__deprecated @interface SDLOnLockScreenStatus : SDLRPCNotification /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.m index d200795..6264ea5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.m @@ -8,48 +8,59 @@ #import "NSMutableDictionary+Store.h" #import "SDLHMILevel.h" #import "SDLLockScreenStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" @implementation SDLOnLockScreenStatus +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnLockScreenStatus]) { + if (self = [super initWithName:SDLRPCFunctionNameOnLockScreenStatus]) { } return self; } +#pragma clang diagnostic pop - (void)setLockScreenStatus:(SDLLockScreenStatus)lockScreenStatus { - [parameters sdl_setObject:lockScreenStatus forName:SDLNameOnLockScreenStatus]; + [self.parameters sdl_setObject:lockScreenStatus forName:SDLRPCParameterNameOnLockScreenStatus]; } - (SDLLockScreenStatus)lockScreenStatus { - return [parameters sdl_objectForName:SDLNameOnLockScreenStatus]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameOnLockScreenStatus error:&error]; } - (void)setHmiLevel:(SDLHMILevel)hmiLevel { - [parameters sdl_setObject:hmiLevel forName:SDLNameHMILevel]; + [self.parameters sdl_setObject:hmiLevel forName:SDLRPCParameterNameHMILevel]; } - (SDLHMILevel)hmiLevel { - return [parameters sdl_objectForName:SDLNameHMILevel]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameHMILevel error:&error]; } - (void)setUserSelected:(NSNumber *)userSelected { - [parameters sdl_setObject:userSelected forName:SDLNameUserSelected]; + [self.parameters sdl_setObject:userSelected forName:SDLRPCParameterNameUserSelected]; } - (NSNumber *)userSelected { - return [parameters sdl_objectForName:SDLNameUserSelected]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameUserSelected ofClass:NSNumber.class error:&error]; } - (void)setDriverDistractionStatus:(NSNumber *)driverDistractionStatus { - [parameters sdl_setObject:driverDistractionStatus forName:SDLNameDriverDistractionStatus]; + [self.parameters sdl_setObject:driverDistractionStatus forName:SDLRPCParameterNameDriverDistractionStatus]; } - (NSNumber *)driverDistractionStatus { - return [parameters sdl_objectForName:SDLNameDriverDistractionStatus]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDriverDistractionStatus ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.h index 60fb932..244bbc0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.h @@ -22,6 +22,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic) NSArray *permissionItem; +/** + Describes whether or not the app needs the encryption permission + + Optional, Boolean, since SDL 6.0 + */ +@property (strong, nonatomic, nullable) NSNumber *requireEncryption; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.m index da90869..a067e08 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.m @@ -4,25 +4,38 @@ #import "SDLOnPermissionsChange.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLPermissionItem.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnPermissionsChange +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnPermissionsChange]) { + if (self = [super initWithName:SDLRPCFunctionNameOnPermissionsChange]) { } return self; } +#pragma clang diagnostic pop - (void)setPermissionItem:(NSArray *)permissionItem { - [parameters sdl_setObject:permissionItem forName:SDLNamePermissionItem]; + [self.parameters sdl_setObject:permissionItem forName:SDLRPCParameterNamePermissionItem]; } - (NSArray *)permissionItem { - return [parameters sdl_objectsForName:SDLNamePermissionItem ofClass:SDLPermissionItem.class]; + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNamePermissionItem ofClass:SDLPermissionItem.class error:&error]; +} + +- (void)setRequireEncryption:(nullable NSNumber *)requireEncryption { + [self.parameters sdl_setObject:requireEncryption forName:SDLRPCParameterNameRequireEncryption]; +} + +- (nullable NSNumber *)requireEncryption { + return [self.parameters sdl_objectForName:SDLRPCParameterNameRequireEncryption ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnRCStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnRCStatus.m index eeae250..aa1295f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnRCStatus.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnRCStatus.m @@ -5,41 +5,47 @@ #import "NSMutableDictionary+Store.h" #import "SDLModuleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnRCStatus +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnRCStatus]) { + if (self = [super initWithName:SDLRPCFunctionNameOnRCStatus]) { } return self; } +#pragma clang diagnostic pop - (nullable NSNumber *)allowed { - return [parameters sdl_objectForName:SDLNameAllowed]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAllowed ofClass:NSNumber.class error:nil]; } - (void)setAllowed:(nullable NSNumber *)allowed { - [parameters sdl_setObject:allowed forName:SDLNameAllowed]; + [self.parameters sdl_setObject:allowed forName:SDLRPCParameterNameAllowed]; } - (void)setAllocatedModules:(NSArray *)allocatedModules { - [parameters sdl_setObject:allocatedModules forName:SDLNameAllocatedModules]; + [self.parameters sdl_setObject:allocatedModules forName:SDLRPCParameterNameAllocatedModules]; } - (NSArray *)allocatedModules { - return [parameters sdl_objectsForName:SDLNameAllocatedModules ofClass:SDLModuleData.class]; + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameAllocatedModules ofClass:SDLModuleData.class error:&error]; } - (void)setFreeModules:(NSArray *)freeModules { - [parameters sdl_setObject:freeModules forName:SDLNameFreeModules]; + [self.parameters sdl_setObject:freeModules forName:SDLRPCParameterNameFreeModules]; } - (NSArray *)freeModules { - return [parameters sdl_objectsForName:SDLNameFreeModules ofClass:SDLModuleData.class]; + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameFreeModules ofClass:SDLModuleData.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.h index 247e27f..4352228 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.h @@ -9,9 +9,17 @@ NS_ASSUME_NONNULL_BEGIN /** DEPRECATED */ +__deprecated @interface SDLOnSyncPData : SDLRPCNotification +/// The url +/// +/// Optional @property (nullable, strong, nonatomic) NSString *URL; + +/// How long until a timeout +/// +/// Optional @property (nullable, strong, nonatomic) NSNumber *Timeout; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.m index 13446ab..af4f39b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.m @@ -5,32 +5,40 @@ #import "SDLOnSyncPData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + NS_ASSUME_NONNULL_BEGIN +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" @implementation SDLOnSyncPData +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnSyncPData]) { + if (self = [super initWithName:SDLRPCFunctionNameOnSyncPData]) { } return self; } +#pragma clang diagnostic pop - (void)setURL:(nullable NSString *)URL { - [parameters sdl_setObject:URL forName:SDLNameURLUppercase]; + [self.parameters sdl_setObject:URL forName:SDLRPCParameterNameURLUppercase]; } - (nullable NSString *)URL { - return [parameters sdl_objectForName:SDLNameURLUppercase]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameURLUppercase ofClass:NSString.class error:nil]; } - (void)setTimeout:(nullable NSNumber *)Timeout { - [parameters sdl_setObject:Timeout forName:SDLNameTimeoutCapitalized]; + [self.parameters sdl_setObject:Timeout forName:SDLRPCParameterNameTimeoutCapitalized]; } - (nullable NSNumber *)Timeout { - return [parameters sdl_objectForName:SDLNameTimeoutCapitalized]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeoutCapitalized ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.h new file mode 100644 index 0000000..35a7209 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.h @@ -0,0 +1,37 @@ +// +// SDLOnSystemCapabilityUpdated.h +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCNotification.h" + +@class SDLSystemCapability; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A notification to inform the connected device that a specific system capability has changed. + */ +@interface SDLOnSystemCapabilityUpdated : SDLRPCNotification + +/** + * Convenience init for required parameters + * + * @param systemCapability The system capability that has been updated + * @return A SDLOnSystemCapabilityUpdated object + */ +- (instancetype)initWithSystemCapability:(SDLSystemCapability *)systemCapability; + +/** + * The system capability that has been updated. + * + * SDLSystemCapability, Required + */ +@property (strong, nonatomic) SDLSystemCapability *systemCapability; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.m new file mode 100644 index 0000000..4c3de1e --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.m @@ -0,0 +1,51 @@ +// +// SDLOnSystemCapabilityUpdated.m +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLOnSystemCapabilityUpdated.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" +#import "SDLSystemCapability.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLOnSystemCapabilityUpdated + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameOnSystemCapabilityUpdated]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithSystemCapability:(SDLSystemCapability *)systemCapability { + self = [self init]; + if (!self) { + return nil; + } + + self.systemCapability = systemCapability; + + return self; +} + +- (void)setSystemCapability:(SDLSystemCapability *)systemCapability { + [self.parameters sdl_setObject:systemCapability forName:SDLRPCParameterNameSystemCapability]; +} + +- (SDLSystemCapability *)systemCapability { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSystemCapability ofClass:SDLSystemCapability.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemRequest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemRequest.m index aecd16a..174726c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemRequest.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemRequest.m @@ -4,72 +4,77 @@ #import "SDLOnSystemRequest.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnSystemRequest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnSystemRequest]) { + if (self = [super initWithName:SDLRPCFunctionNameOnSystemRequest]) { } return self; } +#pragma clang diagnostic pop - (void)setRequestType:(SDLRequestType)requestType { - [parameters sdl_setObject:requestType forName:SDLNameRequestType]; + [self.parameters sdl_setObject:requestType forName:SDLRPCParameterNameRequestType]; } - (SDLRequestType)requestType { - return [parameters sdl_objectForName:SDLNameRequestType]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameRequestType error:&error]; } - (void)setRequestSubType:(nullable NSString *)requestSubType { - [parameters sdl_setObject:requestSubType forName:SDLNameRequestSubType]; + [self.parameters sdl_setObject:requestSubType forName:SDLRPCParameterNameRequestSubType]; } - (nullable NSString *)requestSubType { - return [parameters sdl_objectForName:SDLNameRequestSubType]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameRequestSubType ofClass:NSString.class error:nil]; } - (void)setUrl:(nullable NSString *)url { - [parameters sdl_setObject:url forName:SDLNameURL]; + [self.parameters sdl_setObject:url forName:SDLRPCParameterNameURL]; } - (nullable NSString *)url { - return [parameters sdl_objectForName:SDLNameURL]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameURL ofClass:NSString.class error:nil]; } - (void)setTimeout:(nullable NSNumber *)timeout { - [parameters sdl_setObject:timeout forName:SDLNameTimeout]; + [self.parameters sdl_setObject:timeout forName:SDLRPCParameterNameTimeout]; } - (nullable NSNumber *)timeout { - return [parameters sdl_objectForName:SDLNameTimeout]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeout ofClass:NSNumber.class error:nil]; } - (void)setFileType:(nullable SDLFileType)fileType { - [parameters sdl_setObject:fileType forName:SDLNameFileType]; + [self.parameters sdl_setObject:fileType forName:SDLRPCParameterNameFileType]; } - (nullable SDLFileType)fileType { - return [parameters sdl_objectForName:SDLNameFileType]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameFileType error:nil]; } - (void)setOffset:(nullable NSNumber *)offset { - [parameters sdl_setObject:offset forName:SDLNameOffset]; + [self.parameters sdl_setObject:offset forName:SDLRPCParameterNameOffset]; } - (nullable NSNumber *)offset { - return [parameters sdl_objectForName:SDLNameOffset]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameOffset ofClass:NSNumber.class error:nil]; } - (void)setLength:(nullable NSNumber *)length { - [parameters sdl_setObject:length forName:SDLNameLength]; + [self.parameters sdl_setObject:length forName:SDLRPCParameterNameLength]; } - (nullable NSNumber *)length { - return [parameters sdl_objectForName:SDLNameLength]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameLength ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTBTClientState.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTBTClientState.m index 41bc28f..4a6695e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTBTClientState.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTBTClientState.m @@ -4,25 +4,29 @@ #import "SDLOnTBTClientState.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnTBTClientState +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnTBTClientState]) { + if (self = [super initWithName:SDLRPCFunctionNameOnTBTClientState]) { } return self; } +#pragma clang diagnostic pop - (void)setState:(SDLTBTState)state { - [parameters sdl_setObject:state forName:SDLNameState]; + [self.parameters sdl_setObject:state forName:SDLRPCParameterNameState]; } - (SDLTBTState)state { - NSObject *obj = [parameters sdl_objectForName:SDLNameState]; - return (SDLTBTState)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameState error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTouchEvent.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTouchEvent.m index 08cb844..1995f7d 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTouchEvent.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTouchEvent.m @@ -4,34 +4,39 @@ #import "SDLOnTouchEvent.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTouchEvent.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnTouchEvent +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnTouchEvent]) { + if (self = [super initWithName:SDLRPCFunctionNameOnTouchEvent]) { } return self; } +#pragma clang diagnostic pop - (void)setType:(SDLTouchType)type { - [parameters sdl_setObject:type forName:SDLNameType]; + [self.parameters sdl_setObject:type forName:SDLRPCParameterNameType]; } - (SDLTouchType)type { - NSObject *obj = [parameters sdl_objectForName:SDLNameType]; - return (SDLTouchType)obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameType error:&error]; } - (void)setEvent:(NSArray *)event { - [parameters sdl_setObject:event forName:SDLNameEvent]; + [self.parameters sdl_setObject:event forName:SDLRPCParameterNameEvent]; } - (NSArray *)event { - return [parameters sdl_objectsForName:SDLNameEvent ofClass:SDLTouchEvent.class]; + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameEvent ofClass:SDLTouchEvent.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.h index f4449c0..815827c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.h @@ -181,6 +181,31 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) SDLTurnSignal turnSignal; +/** + The cloud app vehicle ID + */ +@property (nullable, strong, nonatomic) NSString *cloudAppVehicleID; + +/** + Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @param vehicleDataState An object containing the OEM custom vehicle data item. + + Added in SmartDeviceLink 6.0 + */ +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); + +/** + Gets the OEM custom vehicle data item for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @return An OEM custom vehicle data object for the given vehicle data name. + + Added in SmartDeviceLink 6.0 + */ +- (nullable NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.m index 8c77db3..7c59dee 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.m @@ -15,250 +15,269 @@ #import "SDLGPSData.h" #import "SDLHeadLampStatus.h" #import "SDLMyKey.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTireStatus.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnVehicleData +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameOnVehicleData]) { } return self; } +#pragma clang diagnostic pop - (void)setGps:(nullable SDLGPSData *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable SDLGPSData *)gps { - return [parameters sdl_objectForName:SDLNameGPS ofClass:SDLGPSData.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLGPSData.class error:nil]; } - (void)setSpeed:(nullable NSNumber *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber *)speed { - return [parameters sdl_objectForName:SDLNameSpeed]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; } - (void)setRpm:(nullable NSNumber *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable NSNumber *)rpm { - return [parameters sdl_objectForName:SDLNameRPM]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel:(nullable NSNumber *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable NSNumber *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel_State:(nullable SDLComponentVolumeStatus)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable SDLComponentVolumeStatus)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameFuelLevelState error:nil]; } - (void)setFuelRange:(nullable NSArray *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable NSArray *)fuelRange { - return [parameters sdl_objectsForName:SDLNameFuelRange ofClass:SDLFuelRange.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameFuelRange ofClass:SDLFuelRange.class error:nil]; } - (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable NSNumber *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; } - (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable NSNumber *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; } - (void)setVin:(nullable NSString *)vin { - [parameters sdl_setObject:vin forName:SDLNameVIN]; + [self.parameters sdl_setObject:vin forName:SDLRPCParameterNameVIN]; } - (nullable NSString *)vin { - return [parameters sdl_objectForName:SDLNameVIN]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameVIN ofClass:NSString.class error:nil]; } - (void)setPrndl:(nullable SDLPRNDL)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable SDLPRNDL)prndl { - NSObject *obj = [parameters sdl_objectForName:SDLNamePRNDL]; - return (SDLPRNDL)obj; + return [self.parameters sdl_enumForName:SDLRPCParameterNamePRNDL error:nil]; } - (void)setTirePressure:(nullable SDLTireStatus *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable SDLTireStatus *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure ofClass:SDLTireStatus.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLTireStatus.class error:nil]; } - (void)setOdometer:(nullable NSNumber *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable NSNumber *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; } - (void)setBeltStatus:(nullable SDLBeltStatus *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable SDLBeltStatus *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus ofClass:SDLBeltStatus.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLBeltStatus.class error:nil]; } - (void)setBodyInformation:(nullable SDLBodyInformation *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable SDLBodyInformation *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation ofClass:SDLBodyInformation.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLBodyInformation.class error:nil]; } - (void)setDeviceStatus:(nullable SDLDeviceStatus *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable SDLDeviceStatus *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus ofClass:SDLDeviceStatus.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLDeviceStatus.class error:nil]; } - (void)setDriverBraking:(nullable SDLVehicleDataEventStatus)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable SDLVehicleDataEventStatus)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameDriverBraking error:nil]; } - (void)setWiperStatus:(nullable SDLWiperStatus)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable SDLWiperStatus)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameWiperStatus error:nil]; } - (void)setHeadLampStatus:(nullable SDLHeadLampStatus *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable SDLHeadLampStatus *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus ofClass:SDLHeadLampStatus.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLHeadLampStatus.class error:nil]; } - (void)setEngineOilLife:(nullable NSNumber *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; + [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable NSNumber *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; } - (void)setEngineTorque:(nullable NSNumber *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable NSNumber *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; } - (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable NSNumber *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; } - (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable NSNumber *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; } - (void)setECallInfo:(nullable SDLECallInfo *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable SDLECallInfo *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo ofClass:SDLECallInfo.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLECallInfo.class error:nil]; } - (void)setAirbagStatus:(nullable SDLAirbagStatus *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable SDLAirbagStatus *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus ofClass:SDLAirbagStatus.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLAirbagStatus.class error:nil]; } - (void)setEmergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable SDLEmergencyEvent *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent ofClass:SDLEmergencyEvent.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLEmergencyEvent.class error:nil]; } - (void)setClusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus { - [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; + [self.parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; } - (nullable SDLClusterModeStatus *)clusterModeStatus { - return [parameters sdl_objectForName:SDLNameClusterModeStatus ofClass:SDLClusterModeStatus.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:SDLClusterModeStatus.class error:nil]; } - (void)setMyKey:(nullable SDLMyKey *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable SDLMyKey *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey ofClass:SDLMyKey.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLMyKey.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameElectronicParkBrakeStatus error:nil]; } - (void)setTurnSignal:(nullable SDLTurnSignal)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable SDLTurnSignal)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameTurnSignal error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable NSString *)cloudAppVehicleID { + [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable NSString *)cloudAppVehicleID { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSString.class error:nil]; +} + +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState { + [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName]; +} + +- (nullable NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName { + return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSObject.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnWayPointChange.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnWayPointChange.m index 70c7c42..b90033d 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnWayPointChange.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnWayPointChange.m @@ -5,24 +5,29 @@ #import "NSMutableDictionary+Store.h" #import "SDLLocationDetails.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnWayPointChange +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameOnWayPointChange]) { + if (self = [super initWithName:SDLRPCFunctionNameOnWayPointChange]) { } return self; } +#pragma clang diagnostic pop - (void)setWaypoints:(NSArray *)waypoints { - [parameters sdl_setObject:waypoints forName:SDLNameWayPoints]; + [self.parameters sdl_setObject:waypoints forName:SDLRPCParameterNameWayPoints]; } - (NSArray *)waypoints { - return [parameters sdl_objectsForName:SDLNameWayPoints ofClass:SDLLocationDetails.class]; + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameWayPoints ofClass:SDLLocationDetails.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPCMAudioConverter.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPCMAudioConverter.m index 454ecde..853f5a6 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPCMAudioConverter.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPCMAudioConverter.m @@ -132,7 +132,7 @@ - (nullable NSURL *)convertFileWithError:(NSError *__autoreleasing *)error { err = ExtAudioFileRead(infile, &numFrames, &fillBufList); if (err != noErr) { if (*error != nil) { - *error = [NSError errorWithDomain:SDLErrorDomainPCMAudioStreamConverter code:err userInfo:nil]; + *error = [NSError errorWithDomain:SDLErrorDomainPCMAudioStreamConverter code:err userInfo:@{@"type": @"ExtAudioFileRead"}]; } return nil; } @@ -143,7 +143,7 @@ - (nullable NSURL *)convertFileWithError:(NSError *__autoreleasing *)error { err = ExtAudioFileWrite(outfile, numFrames, &fillBufList); if (err != noErr) { if (*error != nil) { - *error = [NSError errorWithDomain:SDLErrorDomainPCMAudioStreamConverter code:err userInfo:nil]; + *error = [NSError errorWithDomain:SDLErrorDomainPCMAudioStreamConverter code:err userInfo:@{@"type": @"ExtAudioFileWrite"}]; } return nil; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLParameterPermissions.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLParameterPermissions.m index bcc2f70..5b83f66 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLParameterPermissions.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLParameterPermissions.m @@ -5,26 +5,28 @@ #import "SDLParameterPermissions.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLParameterPermissions - (void)setAllowed:(NSArray *)allowed { - [store sdl_setObject:allowed forName:SDLNameAllowed]; + [self.store sdl_setObject:allowed forName:SDLRPCParameterNameAllowed]; } - (NSArray *)allowed { - return [store sdl_objectForName:SDLNameAllowed]; + NSError *error = nil; + return [self.store sdl_objectsForName:SDLRPCParameterNameAllowed ofClass:NSString.class error:&error]; } - (void)setUserDisallowed:(NSArray *)userDisallowed { - [store sdl_setObject:userDisallowed forName:SDLNameUserDisallowed]; + [self.store sdl_setObject:userDisallowed forName:SDLRPCParameterNameUserDisallowed]; } - (NSArray *)userDisallowed { - return [store sdl_objectForName:SDLNameUserDisallowed]; + NSError *error = nil; + return [self.store sdl_objectsForName:SDLRPCParameterNameUserDisallowed ofClass:NSString.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.h new file mode 100644 index 0000000..f85c663 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.h @@ -0,0 +1,79 @@ +// +// SDLPerformAppServiceInteraction.h +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * App service providers will likely have different actions exposed to the module and app service consumers. It will be difficult to standardize these actions by RPC versions and can easily become stale. Therefore, we introduce a best-effort attempt to take actions on a service. + * + * The `PerformAppServiceInteraction` request will be sent to the service that has the matching `appServiceId`. The `serviceUri` should be the fully qualified URI with all parameters that are necessary for the given action. The URI prefix and actions list will be contained in the app service provider's manifest. SDL takes no steps to validate an app service provider's action sheet JSON object. In the future, plug in libraries could be added to handle these sheets on a provider by provider basis. + * + * An app service consumer can also request for this service to become the active service of its respective type. If the app service consumer currently has an HMI state of HMI_FULL this request can be performed without user interaction. If the app is currently not in that state, the HMI should present the user with a choice to allow this app service provider to become the active service of its specified type. If the app service provider is not allowed to become active, the request will not be sent to it and an unsuccessful response will be sent to the requester. + * + * SDL should make no guarantees that: + * 1. App service providers offer URI prefix and URI Schema + * 2. App service providers will correctly respond to the requests + * 3. The requested app service provider will become the active service of that type + * 4. The `serviceUri` will be a correctly formatted URI from the app service consumer + */ +@interface SDLPerformAppServiceInteraction : SDLRPCRequest + +/** + * Convenience init for required parameters. + * + * @param serviceUri The service URI + * @param serviceID The app service ID + * @param originApp The origin app + * @return A SDLPerformAppServiceInteraction object + */ +- (instancetype)initWithServiceUri:(NSString *)serviceUri serviceID:(NSString *)serviceID originApp:(NSString *)originApp; + +/** + * Convenience init for all parameters. + * + * @param serviceUri The service URI + * @param serviceID The app service ID + * @param originApp The origin app + * @param requestServiceActive Whether or not the service is active + * @return A SDLPerformAppServiceInteraction object + */ +- (instancetype)initWithServiceUri:(NSString *)serviceUri serviceID:(NSString *)serviceID originApp:(NSString *)originApp requestServiceActive:(BOOL)requestServiceActive; + +/** + * Fully qualified URI based on a predetermined scheme provided by the app service. SDL makes no guarantee that this URI is correct. + * + * String, Required + */ +@property (strong, nonatomic) NSString *serviceUri; + +/** + * The service ID that the app consumer wishes to send this URI. + * + * String, Required + */ +@property (strong, nonatomic) NSString *serviceID; + +/** + * This string is the appID of the app requesting the app service provider take the specific action. + * + * String, Required + */ +@property (strong, nonatomic) NSString *originApp; + +/** + * This flag signals the requesting consumer would like this service to become the active primary service of the destination's type. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *requestServiceActive; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.m new file mode 100644 index 0000000..f401f7f --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.m @@ -0,0 +1,89 @@ +// +// SDLPerformAppServiceInteraction.m +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLPerformAppServiceInteraction.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLPerformAppServiceInteraction + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNamePerformAppServiceInteraction]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithServiceUri:(NSString *)serviceUri serviceID:(NSString *)serviceID originApp:(NSString *)originApp { + self = [self init]; + if (!self) { + return nil; + } + + self.serviceUri = serviceUri; + self.serviceID = serviceID; + self.originApp = originApp; + + return self; +} + +- (instancetype)initWithServiceUri:(NSString *)serviceUri serviceID:(NSString *)serviceID originApp:(NSString *)originApp requestServiceActive:(BOOL)requestServiceActive { + self = [self initWithServiceUri:serviceUri serviceID:serviceID originApp:originApp]; + if (!self) { + return nil; + } + + self.requestServiceActive = @(requestServiceActive); + + return self; +} + +- (void)setServiceUri:(NSString *)serviceUri { + [self.parameters sdl_setObject:serviceUri forName:SDLRPCParameterNameServiceUri]; +} + +- (NSString *)serviceUri { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceUri ofClass:NSString.class error:&error]; +} + +- (void)setServiceID:(NSString *)serviceID { + [self.parameters sdl_setObject:serviceID forName:SDLRPCParameterNameServiceID]; +} + +- (NSString *)serviceID { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceID ofClass:NSString.class error:&error]; +} + +- (void)setOriginApp:(NSString *)originApp { + [self.parameters sdl_setObject:originApp forName:SDLRPCParameterNameOriginApp]; +} + +- (NSString *)originApp { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameOriginApp ofClass:NSString.class error:&error]; +} + +- (void)setRequestServiceActive:(nullable NSNumber *)requestServiceActive { + [self.parameters sdl_setObject:requestServiceActive forName:SDLRPCParameterNameRequestServiceActive]; +} + +- (nullable NSNumber *)requestServiceActive { + return [self.parameters sdl_objectForName:SDLRPCParameterNameRequestServiceActive ofClass:NSNumber.class error:nil]; +} +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h new file mode 100644 index 0000000..3b9c6ef --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h @@ -0,0 +1,36 @@ +// +// SDLPerformAppServiceInteractionResponse.h +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + + +NS_ASSUME_NONNULL_BEGIN + +/** + * Response to the request to request an app service. + */ +@interface SDLPerformAppServiceInteractionResponse : SDLRPCResponse + +/** + * Convenience init for all parameters. + * + * @param serviceSpecificResult The service can provide specific result strings to the consumer through this param. + * @return A SDLPerformAppServiceInteractionResponse object + */ +- (instancetype)initWithServiceSpecificResult:(NSString *)serviceSpecificResult; + +/** + * The service can provide specific result strings to the consumer through this param. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *serviceSpecificResult; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m new file mode 100644 index 0000000..35bd58b --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m @@ -0,0 +1,49 @@ +// +// SDLPerformAppServiceInteractionResponse.m +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLPerformAppServiceInteractionResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLPerformAppServiceInteractionResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNamePerformAppServiceInteraction]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithServiceSpecificResult:(NSString *)serviceSpecificResult { + self = [self init]; + if (!self) { + return nil; + } + + self.serviceSpecificResult = serviceSpecificResult; + + return self; +} + +- (void)setServiceSpecificResult:(nullable NSString *)serviceSpecificResult { + [self.parameters sdl_setObject:serviceSpecificResult forName:SDLRPCParameterNameServiceSpecificResult]; +} + +- (nullable NSString *)serviceSpecificResult { + return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceSpecificResult ofClass:NSString.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.h index 7d21159..26ca9a2 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.h @@ -27,12 +27,46 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLPerformAudioPassThru : SDLRPCRequest +/// Convenience init to perform an audio pass thru +/// +/// @param samplingRate A samplingRate +/// @param bitsPerSample The quality the audio is recorded - 8 bit or 16 bit +/// @param audioType An audioType +/// @param maxDuration The maximum duration of audio recording in milliseconds - (instancetype)initWithSamplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration; +/// Convenience init to perform an audio pass thru +/// +/// @param initialPrompt Initial prompt which will be spoken before opening the audio pass thru session by SDL +/// @param audioPassThruDisplayText1 A line of text displayed during audio capture +/// @param audioPassThruDisplayText2 A line of text displayed during audio capture +/// @param samplingRate A samplingRate +/// @param bitsPerSample The quality the audio is recorded - 8 bit or 16 bit +/// @param audioType An audioType +/// @param maxDuration The maximum duration of audio recording in milliseconds +/// @param muteAudio A Boolean value representing if the current audio source should be muted during the APT session - (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio; +/// Convenience init to perform an audio pass thru +/// +/// @param samplingRate A samplingRate +/// @param bitsPerSample The quality the audio is recorded - 8 bit or 16 bit +/// @param audioType An audioType +/// @param maxDuration The maximum duration of audio recording in milliseconds +/// @param audioDataHandler A handler that will be called whenever an onAudioPassThru notification is received. - (instancetype)initWithSamplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration audioDataHandler:(nullable SDLAudioPassThruHandler)audioDataHandler; +/// Convenience init for a perform audio pass thru +/// +// @param initialPrompt Initial prompt which will be spoken before opening the audio pass thru session by SDL +/// @param audioPassThruDisplayText1 A line of text displayed during audio capture +/// @param audioPassThruDisplayText2 A line of text displayed during audio capture +/// @param samplingRate A samplingRate +/// @param bitsPerSample The quality the audio is recorded - 8 bit or 16 bit +/// @param audioType An audioType +/// @param maxDuration The maximum duration of audio recording in milliseconds +/// @param muteAudio A Boolean value representing if the current audio source should be muted during the APT session +/// @param audioDataHandler A handler that will be called whenever an onAudioPassThru notification is received. - (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio audioDataHandler:(nullable SDLAudioPassThruHandler)audioDataHandler; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.m index f2bbbdf..6bcea8f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.m @@ -5,18 +5,22 @@ #import "SDLPerformAudioPassThru.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTTSChunk.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLPerformAudioPassThru +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNamePerformAudioPassThru]) { + if (self = [super initWithName:SDLRPCFunctionNamePerformAudioPassThru]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio { return [self initWithInitialPrompt:initialPrompt audioPassThruDisplayText1:audioPassThruDisplayText1 audioPassThruDisplayText2:audioPassThruDisplayText2 samplingRate:samplingRate bitsPerSample:bitsPerSample audioType:audioType maxDuration:maxDuration muteAudio:muteAudio audioDataHandler:nil]; @@ -57,68 +61,71 @@ - (instancetype)initWithSamplingRate:(SDLSamplingRate)samplingRate bitsPerSample - (void)setInitialPrompt:(nullable NSArray *)initialPrompt { - [parameters sdl_setObject:initialPrompt forName:SDLNameInitialPrompt]; + [self.parameters sdl_setObject:initialPrompt forName:SDLRPCParameterNameInitialPrompt]; } - (nullable NSArray *)initialPrompt { - return [parameters sdl_objectsForName:SDLNameInitialPrompt ofClass:SDLTTSChunk.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameInitialPrompt ofClass:SDLTTSChunk.class error:nil]; } - (void)setAudioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 { - [parameters sdl_setObject:audioPassThruDisplayText1 forName:SDLNameAudioPassThruDisplayText1]; + [self.parameters sdl_setObject:audioPassThruDisplayText1 forName:SDLRPCParameterNameAudioPassThruDisplayText1]; } - (nullable NSString *)audioPassThruDisplayText1 { - return [parameters sdl_objectForName:SDLNameAudioPassThruDisplayText1]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAudioPassThruDisplayText1 ofClass:NSString.class error:nil]; } - (void)setAudioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 { - [parameters sdl_setObject:audioPassThruDisplayText2 forName:SDLNameAudioPassThruDisplayText2]; + [self.parameters sdl_setObject:audioPassThruDisplayText2 forName:SDLRPCParameterNameAudioPassThruDisplayText2]; } - (nullable NSString *)audioPassThruDisplayText2 { - return [parameters sdl_objectForName:SDLNameAudioPassThruDisplayText2]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAudioPassThruDisplayText2 ofClass:NSString.class error:nil]; } - (void)setSamplingRate:(SDLSamplingRate)samplingRate { - [parameters sdl_setObject:samplingRate forName:SDLNameSamplingRate]; + [self.parameters sdl_setObject:samplingRate forName:SDLRPCParameterNameSamplingRate]; } - (SDLSamplingRate)samplingRate { - NSObject *obj = [parameters sdl_objectForName:SDLNameSamplingRate]; - return (SDLSamplingRate )obj; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameSamplingRate error:&error]; } - (void)setMaxDuration:(NSNumber *)maxDuration { - [parameters sdl_setObject:maxDuration forName:SDLNameMaxDuration]; + [self.parameters sdl_setObject:maxDuration forName:SDLRPCParameterNameMaxDuration]; } - (NSNumber *)maxDuration { - return [parameters sdl_objectForName:SDLNameMaxDuration]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMaxDuration ofClass:NSNumber.class error:&error]; } - (void)setBitsPerSample:(SDLBitsPerSample)bitsPerSample { - [parameters sdl_setObject:bitsPerSample forName:SDLNameBitsPerSample]; + [self.parameters sdl_setObject:bitsPerSample forName:SDLRPCParameterNameBitsPerSample]; } - (SDLBitsPerSample)bitsPerSample { - return [parameters sdl_objectForName:SDLNameBitsPerSample]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameBitsPerSample error:&error]; } - (void)setAudioType:(SDLAudioType)audioType { - [parameters sdl_setObject:audioType forName:SDLNameAudioType]; + [self.parameters sdl_setObject:audioType forName:SDLRPCParameterNameAudioType]; } - (SDLAudioType)audioType { - return [parameters sdl_objectForName:SDLNameAudioType]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameAudioType error:&error]; } - (void)setMuteAudio:(nullable NSNumber *)muteAudio { - [parameters sdl_setObject:muteAudio forName:SDLNameMuteAudio]; + [self.parameters sdl_setObject:muteAudio forName:SDLRPCParameterNameMuteAudio]; } - (nullable NSNumber *)muteAudio { - return [parameters sdl_objectForName:SDLNameMuteAudio]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMuteAudio ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThruResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThruResponse.m index 31a5c5a..a33310b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThruResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThruResponse.m @@ -5,17 +5,21 @@ #import "SDLPerformAudioPassThruResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLPerformAudioPassThruResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNamePerformAudioPassThru]) { + if (self = [super initWithName:SDLRPCFunctionNamePerformAudioPassThru]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.h index c8929af..bc035ce 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.h @@ -1,7 +1,6 @@ // SDLPerformInteraction.h // - #import "SDLRPCRequest.h" #import "SDLInteractionMode.h" @@ -10,88 +9,243 @@ @class SDLTTSChunk; @class SDLVRHelpItem; +NS_ASSUME_NONNULL_BEGIN + /** - * Performs an application-initiated interaction in which the user can select a - * {@linkplain Choice} from among the specified Choice Sets. For instance, an - * application may use a PerformInteraction to ask a user to say the name of a - * song to play. The user's response is only valid if it appears in the - * specified Choice Sets and is recognized by SDL - *

- * Function Group: Base - *

- * HMILevel needs to be FULL - *

- * - * Since SmartDeviceLink 1.0
- * See SDLCreateInteractionChoiceSet SDLDeleteInteractionChoiceSet - */ + Performs an application-initiated interaction in which the user can select a choice from the passed choice set. -NS_ASSUME_NONNULL_BEGIN + There are several ways to present a choice set: as visual pop-up menu (with an optional keyboard that allows for searches), as voice-recognition (VR) only menu, or as both a VR and visual menu. It is also possible to present only the keyboard for doing searches. + + A choice set can have up to 100 items, however if you are presenting a visual only menu please be aware that the OEM may choose to limit the number of presented choices when the driver is distracted (i.e. the car is moving). + + A VR-only menu could be used to ask a user to say the name of a song to play. The user's response would only be valid if it appears in the specified choice set. + A visual popup-menu could be used to present a list of albums to the user. The user would select the album they want to play from the list of presented choices. + A keyboard can be used for searches. For example, the user could be asked to enter the name of a restaurant. The name can be used to search for local restaurants with the same name. When the search is completed another menu can be presented with a list of potential addresses for the destination. + + If connecting to SDL Core v.6.0+, the perform interaction can be canceled programmatically using the `cancelID`. On older versions of SDL Core, the perform interaction will persist until the user has interacted with the perform interaction or the specified timeout has elapsed. + + @see SDLCreateInteractionChoiceSet, SDLDeleteInteractionChoiceSet + @since SDL 1.0 + */ @interface SDLPerformInteraction : SDLRPCRequest -- (instancetype)initWithInteractionChoiceSetId:(UInt16)interactionChoiceSetId; +/** + Convenience init for creating a basic display or voice-recognition menu. -- (instancetype)initWithInteractionChoiceSetIdList:(NSArray *> *)interactionChoiceSetIdList; + @param initialText Text to be displayed first + @param interactionMode Indicates the method in which the user is notified and uses the interaction + @param interactionChoiceSetIDList List of interaction choice set IDs to use with an interaction + @param cancelID An ID for this specific perform interaction to allow cancellation through the `CancelInteraction` RPC + @return An SDLPerformInteraction object + */ +- (instancetype)initWithInitialText:(NSString *)initialText interactionMode:(SDLInteractionMode)interactionMode interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList cancelID:(UInt32)cancelID; -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID; +/** + Convenience init for setting all parameters of a display or voice-recognition menu. + + @param initialText Text to be displayed first + @param initialPrompt The initial prompt spoken to the user at the start of an interaction + @param interactionMode The method in which the user is notified and uses the interaction (voice, visual or both) + @param interactionChoiceSetIDList List of interaction choice set IDs to use with an interaction + @param helpPrompt The spoken text when a user speaks "help" when the interaction is occurring + @param timeoutPrompt The text spoken when a VR interaction times out + @param timeout Timeout in milliseconds + @param vrHelp Suggested voice recognition help items to display on-screen during a perform interaction + @param interactionLayout For touchscreen interactions, the mode of how the choices are presented + @param cancelID An ID for this specific perform interaction to allow cancellation through the `CancelInteraction` RPC. + @return An SDLPerformInteraction object + */ +- (instancetype)initWithInitialText:(NSString *)initialText initialPrompt:(nullable NSArray *)initialPrompt interactionMode:(SDLInteractionMode)interactionMode interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSArray *)helpPrompt timeoutPrompt:(nullable NSArray *)timeoutPrompt timeout:(UInt16)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)interactionLayout cancelID:(UInt32)cancelID; -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID vrHelp:(nullable NSArray *)vrHelp; +/** + Convenience init for setting the a single visual or voice-recognition menu choice. -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout; + @param interactionChoiceSetId Single interaction choice set ID to use with an interaction + @return An SDLPerformInteraction object + */ +- (instancetype)initWithInteractionChoiceSetId:(UInt16)interactionChoiceSetId __deprecated_msg("Use initWithInitialText:interactionMode:interactionChoiceSetIDList:cancelID: instead"); -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp; +/** + Convenience init for setting the a visual or voice-recognition menu choices. -- (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp; + @param interactionChoiceSetIdList List of interaction choice set IDs to use with an interaction + @return An SDLPerformInteraction object + */ +- (instancetype)initWithInteractionChoiceSetIdList:(NSArray *> *)interactionChoiceSetIdList __deprecated_msg("Use initWithInitialText:interactionMode:interactionChoiceSetIDList:cancelID: instead"); + +/** + Convenience init for creating a visual or voice-recognition menu with one choice. + + @param initialPrompt The initial prompt spoken to the user at the start of an interaction + @param initialText Text to be displayed first + @param interactionChoiceSetID Single interaction choice set ID to use with an interaction + @return An SDLPerformInteraction object + */ +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID __deprecated_msg("Use initWithInitialText:interactionMode:interactionChoiceSetIDList:cancelID: instead"); + +/** + Convenience init for creating a visual or voice-recognition menu with one choice and VR help items. + + @param initialPrompt The initial prompt spoken to the user at the start of an interaction + @param initialText Text to be displayed first + @param interactionChoiceSetID Single interaction choice set ID to use with an interaction + @param vrHelp Suggested voice recognition help items to display on-screen during a perform interaction + @return An SDLPerformInteraction object + */ +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID vrHelp:(nullable NSArray *)vrHelp __deprecated_msg("Use initWithInitialText:initialPrompt:interactionMode:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:timeout:vrHelp:interactionLayout:cancelID: instead"); + +/** + Convenience init for creating a visual or voice-recognition menu using the default display layout and VR help items. Prompts are created from the passed strings. + + @param initialText Text to be displayed first + @param initialPrompt The initial prompt spoken to the user at the start of an interaction + @param interactionMode The method in which the user is notified and uses the interaction (voice, visual or both) + @param interactionChoiceSetIDList List of interaction choice set IDs to use with an interaction + @param helpPrompt The spoken text when a user speaks "help" when the interaction is occurring + @param timeoutPrompt The text spoken when a VR interaction times out + @param timeout Timeout in milliseconds + @return An SDLPerformInteraction object + */ +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout __deprecated_msg("Use initWithInitialText:initialPrompt:interactionMode:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:timeout:vrHelp:interactionLayout:cancelID: instead"); + +/** + Convenience init for creating a visual or voice-recognition menu using the default display layout. Prompts are created from the passed strings. + + @param initialText Text to be displayed first + @param initialPrompt The initial prompt spoken to the user at the start of an interaction + @param interactionMode The method in which the user is notified and uses the interaction (voice, visual or both) + @param interactionChoiceSetIDList List of interaction choice set IDs to use with an interaction + @param helpPrompt The spoken text when a user speaks "help" when the interaction is occurring + @param timeoutPrompt The text spoken when a VR interaction times out + @param timeout Timeout in milliseconds + @param vrHelp Suggested voice recognition help items to display on-screen during a perform interaction + @return An SDLPerformInteraction object + */ +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp __deprecated_msg("Use initWithInitialText:initialPrompt:interactionMode:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:timeout:vrHelp:interactionLayout:cancelID: instead"); + +/** + Convenience init for creating a visual or voice-recognition menu using the default display layout. + + @param initialText Text to be displayed first + @param initialChunks The initial prompt spoken to the user at the start of an interaction + @param interactionMode The method in which the user is notified and uses the interaction (voice, visual or both) + @param interactionChoiceSetIDList List of interaction choice set IDs to use with an interaction + @param helpChunks The spoken text when a user speaks "help" when the interaction is occurring + @param timeoutChunks The text spoken when a VR interaction times out + @param timeout Timeout in milliseconds + @param vrHelp Suggested voice recognition help items to display on-screen during a perform interaction + @return An SDLPerformInteraction object + */ +- (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp __deprecated_msg("Use initWithInitialText:initialPrompt:interactionMode:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:timeout:vrHelp:interactionLayout:cancelID: instead"); -- (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)layout; +/** + Convenience init for setting all parameters of a visual or voice-recognition menu. + + @param initialText Text to be displayed first + @param initialChunks The initial prompt spoken to the user at the start of an interaction + @param interactionMode The method in which the user is notified and uses the interaction (voice, visual or both) + @param interactionChoiceSetIDList List of interaction choice set IDs to use with an interaction + @param helpChunks The spoken text when a user speaks "help" when the interaction is occurring + @param timeoutChunks The text spoken when a VR interaction times out + @param timeout Timeout in milliseconds + @param vrHelp Suggested voice recognition help items to display on-screen during a perform interaction + @param layout For touchscreen interactions, the mode of how the choices are presented + @return An SDLPerformInteraction object + */ +- (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)layout __deprecated_msg("Use initWithInitialText:initialPrompt:interactionMode:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:timeout:vrHelp:interactionLayout:cancelID: instead"); /** - * The Text that Displayed when the interaction begins. This text may - * be overlaid by the "Listening" prompt during the interaction. Text is - * displayed on first line of multiline display, and is centered. If text - * does not fit on line, it will be truncated + Text to be displayed first. + + String, Required + + @since SDL 1.0 */ @property (strong, nonatomic) NSString *initialText; + /** - * An array of one or more TTSChunks that, taken together, specify - * what is to be spoken to the user at the start of an interaction + This is the TTS prompt spoken to the user at the start of an interaction. + + Array of SDLTTSChunk, Optional, Array size: 1-100 + + @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSArray *initialPrompt; + /** - * The Indicates mode that indicate how user selects interaction - * choice. User can choose either by voice (VR_ONLY), by visual selection - * from the menu (MANUAL_ONLY), or by either mode (BOTH) + For application-requested interactions, this mode indicates the method in which the user is notified and uses the interaction. Users can choose either only by voice (VR_ONLY), by tactile selection from the menu (MANUAL_ONLY), or by either mode (BOTH). + + SDLInteractionMode, Required + + @since SDL 1.0 */ @property (strong, nonatomic) SDLInteractionMode interactionMode; + /** - * A Vector value representing an Array of one or more Choice - * Set IDs + List of interaction choice set IDs to use with an interaction. + + Array of Integers, Required, Array size: 0-100, Min value: 0, Max value: 2000000000 + + @since SDL 1.0 */ -@property (strong, nonatomic) NSArray *> *interactionChoiceSetIDList; +@property (strong, nonatomic) NSArray *interactionChoiceSetIDList; + /** - * A Vector which taken together, specify the help phrase to - * be spoken when the user says "help" during the VR session + Help text. This is the spoken text when a user speaks "help" while the interaction is occurring. + + SDLTTSChunk, Optional + + @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSArray *helpPrompt; + /** - * An array of TTSChunks which, taken together, specify the phrase to - * be spoken when the listen times out during the VR session + Timeout text. This text is spoken when a VR interaction times out. + + Array of SDLTTSChunk, Optional, Array size: 1-100 + + @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSArray *timeoutPrompt; + /** - * An Integer value representing the amount of time, in milliseconds, - * SDL will wait for the user to make a choice (VR or Menu) + Timeout in milliseconds. Applies only to the menu portion of the interaction. The VR timeout will be handled by the platform. If omitted a standard value of 10 seconds is used. + + Integer, Optional, Min value: 5000, Max value: 100,000 + + @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSNumber *timeout; + /** - * A Voice recognition Help, which is a suggested VR Help Items to - * display on-screen during Perform Interaction - * @since SmartDeviceLink 2.0 + Suggested voice recognition help items to display on-screen during a perform interaction. If omitted on supported displays, the default generated list of suggested choices shall be displayed. + + SDLVRHelpItem, Optional + + @since SDL 2.0 */ @property (nullable, strong, nonatomic) NSArray *vrHelp; + +/** + For tactile interaction modes (MANUAL_ONLY, or BOTH), the layout mode of how the choices are presented. + + SDLLayoutMode, Optional + + @since SDL 3.0 + */ @property (nullable, strong, nonatomic) SDLLayoutMode interactionLayout; +/** + An ID for this specific perform interaction to allow cancellation through the `CancelInteraction` RPC. + + Integer, Optional + + @see SDLCancelInteraction + @since SDL 6.0 + */ +@property (nullable, strong, nonatomic) NSNumber *cancelID; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.m index c4faeda..5407885 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.m @@ -5,7 +5,8 @@ #import "SDLPerformInteraction.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTTSChunk.h" #import "SDLVrHelpItem.h" @@ -13,11 +14,43 @@ @implementation SDLPerformInteraction +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNamePerformInteraction]) { + if (self = [super initWithName:SDLRPCFunctionNamePerformInteraction]) { } return self; } +#pragma clang diagnostic pop + +- (instancetype)initWithInitialDisplayText:(NSString *)initialText initialPrompt:(nullable NSArray *)initialPrompt interactionMode:(SDLInteractionMode)interactionMode interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSArray *)helpPrompt timeoutPrompt:(nullable NSArray *)timeoutPrompt timeout:(nullable NSNumber *)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)interactionLayout cancelID:(nullable NSNumber *)cancelID { + self = [self init]; + if (!self) { + return nil; + } + + self.initialText = initialText; + self.initialPrompt = initialPrompt; + self.interactionMode = interactionMode; + self.interactionChoiceSetIDList = interactionChoiceSetIDList; + self.helpPrompt = helpPrompt; + self.timeoutPrompt = timeoutPrompt; + self.timeout = timeout; + self.vrHelp = vrHelp; + self.interactionLayout = interactionLayout; + self.cancelID = cancelID; + + return self; +} + +- (instancetype)initWithInitialText:(NSString *)initialText interactionMode:(SDLInteractionMode)interactionMode interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList cancelID:(UInt32)cancelID { + return [self initWithInitialDisplayText:initialText initialPrompt:nil interactionMode:interactionMode interactionChoiceSetIDList:interactionChoiceSetIDList helpPrompt:nil timeoutPrompt:nil timeout:nil vrHelp:nil interactionLayout:nil cancelID:@(cancelID)]; +} + +- (instancetype)initWithInitialText:(NSString *)initialText initialPrompt:(nullable NSArray *)initialPrompt interactionMode:(SDLInteractionMode)interactionMode interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSArray *)helpPrompt timeoutPrompt:(nullable NSArray *)timeoutPrompt timeout:(UInt16)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)interactionLayout cancelID:(UInt32)cancelID { + return [self initWithInitialDisplayText:initialText initialPrompt:initialPrompt interactionMode:interactionMode interactionChoiceSetIDList:interactionChoiceSetIDList helpPrompt:helpPrompt timeoutPrompt:timeoutPrompt timeout:@(timeout) vrHelp:vrHelp interactionLayout:interactionLayout cancelID:@(cancelID)]; +} + - (instancetype)initWithInteractionChoiceSetId:(UInt16)interactionChoiceSetId { return [self initWithInteractionChoiceSetIdList:@[@(interactionChoiceSetId)]]; @@ -41,7 +74,7 @@ - (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initial return nil; } - self.vrHelp = [vrHelp mutableCopy]; + self.vrHelp = vrHelp; return self; } @@ -62,21 +95,7 @@ - (instancetype)initWithInitialChunks:(nullable NSArray *)initial } - (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)layout { - self = [self initWithInteractionChoiceSetIdList:interactionChoiceSetIDList]; - if (!self) { - return nil; - } - - self.initialPrompt = [initialChunks mutableCopy]; - self.initialText = initialText; - self.helpPrompt = [helpChunks mutableCopy]; - self.timeoutPrompt = [timeoutChunks mutableCopy]; - self.interactionMode = interactionMode; - self.timeout = @(timeout); - self.vrHelp = [vrHelp mutableCopy]; - self.interactionLayout = layout; - - return self; + return [self initWithInitialDisplayText:initialText initialPrompt:initialChunks interactionMode:interactionMode interactionChoiceSetIDList:interactionChoiceSetIDList helpPrompt:helpChunks timeoutPrompt:timeoutChunks timeout:@(timeout) vrHelp:vrHelp interactionLayout:layout cancelID:nil]; } - (instancetype)initWithInteractionChoiceSetIdList:(NSArray *> *)interactionChoiceSetIdList { @@ -85,81 +104,92 @@ - (instancetype)initWithInteractionChoiceSetIdList:(NSArray *> return nil; } - self.interactionChoiceSetIDList = [interactionChoiceSetIdList mutableCopy]; + self.interactionChoiceSetIDList = interactionChoiceSetIdList; return self; } - (void)setInitialText:(NSString *)initialText { - [parameters sdl_setObject:initialText forName:SDLNameInitialText]; + [self.parameters sdl_setObject:initialText forName:SDLRPCParameterNameInitialText]; } - (NSString *)initialText { - return [parameters sdl_objectForName:SDLNameInitialText]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameInitialText ofClass:NSString.class error:&error]; } - (void)setInitialPrompt:(nullable NSArray *)initialPrompt { - [parameters sdl_setObject:initialPrompt forName:SDLNameInitialPrompt]; + [self.parameters sdl_setObject:initialPrompt forName:SDLRPCParameterNameInitialPrompt]; } - (nullable NSArray *)initialPrompt { - return [parameters sdl_objectsForName:SDLNameInitialPrompt ofClass:SDLTTSChunk.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameInitialPrompt ofClass:SDLTTSChunk.class error:nil]; } - (void)setInteractionMode:(SDLInteractionMode)interactionMode { - [parameters sdl_setObject:interactionMode forName:SDLNameInteractionMode]; + [self.parameters sdl_setObject:interactionMode forName:SDLRPCParameterNameInteractionMode]; } - (SDLInteractionMode)interactionMode { - return [parameters sdl_objectForName:SDLNameInteractionMode]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameInteractionMode error:&error]; } -- (void)setInteractionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList { - [parameters sdl_setObject:interactionChoiceSetIDList forName:SDLNameInteractionChoiceSetIdList]; +- (void)setInteractionChoiceSetIDList:(NSArray *)interactionChoiceSetIDList { + [self.parameters sdl_setObject:interactionChoiceSetIDList forName:SDLRPCParameterNameInteractionChoiceSetIdList]; } -- (NSArray *> *)interactionChoiceSetIDList { - return [parameters sdl_objectForName:SDLNameInteractionChoiceSetIdList]; +- (NSArray *)interactionChoiceSetIDList { + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameInteractionChoiceSetIdList ofClass:NSNumber.class error:&error]; } - (void)setHelpPrompt:(nullable NSArray *)helpPrompt { - [parameters sdl_setObject:helpPrompt forName:SDLNameHelpPrompt]; + [self.parameters sdl_setObject:helpPrompt forName:SDLRPCParameterNameHelpPrompt]; } - (nullable NSArray *)helpPrompt { - return [parameters sdl_objectsForName:SDLNameHelpPrompt ofClass:SDLTTSChunk.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameHelpPrompt ofClass:SDLTTSChunk.class error:nil]; } - (void)setTimeoutPrompt:(nullable NSArray *)timeoutPrompt { - [parameters sdl_setObject:timeoutPrompt forName:SDLNameTimeoutPrompt]; + [self.parameters sdl_setObject:timeoutPrompt forName:SDLRPCParameterNameTimeoutPrompt]; } - (nullable NSArray *)timeoutPrompt { - return [parameters sdl_objectsForName:SDLNameTimeoutPrompt ofClass:SDLTTSChunk.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameTimeoutPrompt ofClass:SDLTTSChunk.class error:nil]; } - (void)setTimeout:(nullable NSNumber *)timeout { - [parameters sdl_setObject:timeout forName:SDLNameTimeout]; + [self.parameters sdl_setObject:timeout forName:SDLRPCParameterNameTimeout]; } - (nullable NSNumber *)timeout { - return [parameters sdl_objectForName:SDLNameTimeout]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeout ofClass:NSNumber.class error:nil]; } - (void)setVrHelp:(nullable NSArray *)vrHelp { - [parameters sdl_setObject:vrHelp forName:SDLNameVRHelp]; + [self.parameters sdl_setObject:vrHelp forName:SDLRPCParameterNameVRHelp]; } - (nullable NSArray *)vrHelp { - return [parameters sdl_objectsForName:SDLNameVRHelp ofClass:SDLVRHelpItem.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameVRHelp ofClass:SDLVRHelpItem.class error:nil]; } - (void)setInteractionLayout:(nullable SDLLayoutMode)interactionLayout { - [parameters sdl_setObject:interactionLayout forName:SDLNameInteractionLayout]; + [self.parameters sdl_setObject:interactionLayout forName:SDLRPCParameterNameInteractionLayout]; } - (nullable SDLLayoutMode)interactionLayout { - return [parameters sdl_objectForName:SDLNameInteractionLayout]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameInteractionLayout error:nil]; +} + +- (void)setCancelID:(nullable NSNumber *)cancelID { + [self.parameters sdl_setObject:cancelID forName:SDLRPCParameterNameCancelID]; +} + +- (nullable NSNumber *)cancelID { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCancelID ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteractionResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteractionResponse.m index 085c844..fc97230 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteractionResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteractionResponse.m @@ -5,40 +5,44 @@ #import "SDLPerformInteractionResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLPerformInteractionResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNamePerformInteraction]) { + if (self = [super initWithName:SDLRPCFunctionNamePerformInteraction]) { } return self; } +#pragma clang diagnostic pop - (void)setChoiceID:(nullable NSNumber *)choiceID { - [parameters sdl_setObject:choiceID forName:SDLNameChoiceId]; + [self.parameters sdl_setObject:choiceID forName:SDLRPCParameterNameChoiceId]; } - (nullable NSNumber *)choiceID { - return [parameters sdl_objectForName:SDLNameChoiceId]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameChoiceId ofClass:NSNumber.class error:nil]; } - (void)setManualTextEntry:(nullable NSString *)manualTextEntry { - [parameters sdl_setObject:manualTextEntry forName:SDLNameManualTextEntry]; + [self.parameters sdl_setObject:manualTextEntry forName:SDLRPCParameterNameManualTextEntry]; } - (nullable NSString *)manualTextEntry { - return [parameters sdl_objectForName:SDLNameManualTextEntry]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameManualTextEntry ofClass:NSString.class error:nil]; } - (void)setTriggerSource:(nullable SDLTriggerSource)triggerSource { - [parameters sdl_setObject:triggerSource forName:SDLNameTriggerSource]; + [self.parameters sdl_setObject:triggerSource forName:SDLRPCParameterNameTriggerSource]; } - (nullable SDLTriggerSource)triggerSource { - return [parameters sdl_objectForName:SDLNameTriggerSource]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameTriggerSource error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionConstants.h index 03b8986..2cd9bbc 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionConstants.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionConstants.h @@ -9,10 +9,20 @@ #import #import "NSNumber+NumberType.h" +#import "SDLRPCFunctionNames.h" +#import "SDLPermissionElement.h" +#import "SDLRPCPermissionStatus.h" NS_ASSUME_NONNULL_BEGIN +/// NSString typedef +/// +/// SDLPermissionRPCName: The name of the permission typedef NSString *SDLPermissionRPCName; + +/// NSUUID typedef +/// +/// SDLPermissionObserverIdentifier: A unique identifier typedef NSUUID *SDLPermissionObserverIdentifier; /** @@ -52,11 +62,19 @@ typedef NS_ENUM(NSUInteger, SDLPermissionGroupStatus) { }; /** - * The PermissionObserver is a block that is passed in to some methods that will be stored and called when specified permissions change. + * This is a block that is passed in to some methods that will be stored and called when specified permissions change. + * + * @param change A dictionary of permission changes containing + * @param status The unified group status of the RPCs in the change dictionary. Allowed, if all RPCs are now allowed, Disallowed if all RPCs are now disallowed, or Mixed if some are allowed, and some are disallowed + */ +typedef void (^SDLPermissionsChangedHandler)(NSDictionary *_Nonnull change, SDLPermissionGroupStatus status); + +/** + * A block that will be called when specified permissions change. It will return whether each RPC and its parameters are allowed as well as the permission group status of all the RPCs. * - * @param change A dictionary of permission changes containing - * @param status The change made to all of the RPCs in the changedDict. Allowed, if all RPCs are now allowed, Disallowed if all RPCs are now disallowed, or Mixed if some are allowed, and some are disallowed + * @param change A dictionary of permission changes containing + * @param status The change made to all of the RPCs in the change dictionary. Allowed, if all RPCs are now allowed, Disallowed if all RPCs are now disallowed, or Mixed if some are allowed, and some are disallowed */ -typedef void (^SDLPermissionsChangedHandler)(NSDictionary *> *_Nonnull change, SDLPermissionGroupStatus status); +typedef void (^SDLRPCPermissionStatusChangedHandler)(NSDictionary *_Nonnull change, SDLPermissionGroupStatus status); NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.h new file mode 100644 index 0000000..9400623 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.h @@ -0,0 +1,41 @@ +// +// SDLPermissionElement.h +// SmartDeviceLink +// +// Created by James Lapinski on 6/21/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLParameterPermissions.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLPermissionElement : NSObject + +/** + * Name of the individual RPC. + * Required + */ +@property (strong, nonatomic) SDLRPCFunctionName rpcName; + +/** + * RPC parameters for the individual RPC + */ +@property (strong, nonatomic, nullable) NSArray *parameterPermissions; + +/** + * Creates a new permission element. + * + * @param rpcName The name of the RPC. + * @param parameterPermissions An array parameters for the RPC that should be checked if they are allowed. Note that not all head units may provide this data. If no parameter data is received, we assume that the parameter is not allowed. + * + * @return An instance of `SDLPermissionElement`. + */ +- (instancetype)initWithRPCName:(SDLRPCFunctionName)rpcName parameterPermissions:(nullable NSArray *)parameterPermissions; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.m new file mode 100644 index 0000000..ea2aa6e --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.m @@ -0,0 +1,41 @@ +// +// SDLPermissionElement.m +// SmartDeviceLink +// +// Created by James Lapinski on 6/21/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLPermissionElement.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLPermissionElement + +- (instancetype)initWithRPCName:(SDLRPCFunctionName)rpcName parameterPermissions:(nullable NSArray *)parameterPermissions { + self = [super init]; + if (!self) { return nil; } + + self.rpcName = rpcName; + self.parameterPermissions = parameterPermissions; + + return self; +} + +#pragma mark - NSCopying + +- (id)copyWithZone:(nullable NSZone *)zone { + SDLPermissionElement *newElement = [[self.class allocWithZone:zone] initWithRPCName:[_rpcName copyWithZone:zone] parameterPermissions:[_parameterPermissions copyWithZone:zone]]; + + return newElement; +} + +#pragma mark - Description + +- (NSString *)description { + return [NSString stringWithFormat:@"RPC name: %@, parameter permissions: %@", self.rpcName, self.parameterPermissions]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.h index f31666b..e733d23 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.h @@ -9,6 +9,7 @@ #import #import "SDLPermissionConstants.h" +#import "SDLPermissionElement.h" NS_ASSUME_NONNULL_BEGIN @@ -20,11 +21,6 @@ NS_ASSUME_NONNULL_BEGIN */ @property (copy, nonatomic, readonly) SDLPermissionObserverIdentifier identifier; -/** - * All of the RPC names in this filter group. - */ -@property (copy, nonatomic, readonly) NSArray *rpcNames; - /** * The type of this filter group. */ @@ -36,7 +32,20 @@ NS_ASSUME_NONNULL_BEGIN @property (copy, nonatomic, readonly) SDLPermissionsChangedHandler handler; /** - * Create a new permission filter group. + * The block that will be called on status changes to RPC permission status objects + */ +@property (copy, nonatomic, readonly) SDLRPCPermissionStatusChangedHandler rpcPermissionStatusHandler; + +/** + * All of the permission elements in this filter group. + */ +@property (copy, nonatomic, readonly) NSArray *permissionElements; + +/// Initializer unavailable +- (instancetype)init NS_UNAVAILABLE; + +/** + * Create a new permission filter group with a SDLPermissionsChangedHandler. * * @param rpcNames The names of the RPCs to watch permissions of. * @param groupType The type of notifications to be sent for this filter group. @@ -44,18 +53,18 @@ NS_ASSUME_NONNULL_BEGIN * * @return An instance of `SDLPermissionFilter`. */ -- (instancetype)initWithRPCNames:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType observer:(SDLPermissionsChangedHandler)handler NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithPermissions:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType permissionsHandler:(SDLPermissionsChangedHandler)handler; /** - * Create a new permission filter group. + * Create a new permission filter group with a SDLRPCPermissionStatusChangedHandler. * - * @param rpcNames The names of the RPCs to watch permissions of. + * @param rpcNames The names of the RPCs to watch permissions of. * @param groupType The type of notifications to be sent for this filter group. - * @param handler The block observer to be called when changes occur. + * @param permissionStatusHandler The block observer to be called when changes occur. * * @return An instance of `SDLPermissionFilter`. */ -+ (instancetype)filterWithRPCNames:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType observer:(SDLPermissionsChangedHandler)handler NS_SWIFT_UNAVAILABLE("Use the initializer"); +- (instancetype)initWithPermissions:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType permissionStatusHandler:(SDLRPCPermissionStatusChangedHandler)permissionStatusHandler; /** * Whether the current filter is equivalent with another filter or not. @@ -66,6 +75,15 @@ NS_ASSUME_NONNULL_BEGIN */ - (BOOL)isEqualToFilter:(SDLPermissionFilter *)otherFilter; +/** + * Converts an array of SDLPermissionElement objects to an array of SDLPermissionRPCName objects + * + * @param permissionElements The permission elements to convert. + * + * @return An array of SDLPermissionRPCName objects + */ +- (NSArray *)rpcNamesFromPermissionElements:(NSArray *)permissionElements; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.m index 0d142b3..c2ed47a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.m @@ -11,46 +11,59 @@ NS_ASSUME_NONNULL_BEGIN - @implementation SDLPermissionFilter #pragma mark - Lifecycle -- (instancetype)init { - return [self initWithRPCNames:@[] - groupType:SDLPermissionGroupTypeAny - observer:^(NSDictionary *> *_Nonnull change, SDLPermissionGroupStatus status){ - }]; -} - -- (instancetype)initWithRPCNames:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType observer:(SDLPermissionsChangedHandler)observer { +- (instancetype)initWithPermissions:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType permissionsHandler:(SDLPermissionsChangedHandler)observer { self = [super init]; if (!self) { return nil; } _identifier = [NSUUID UUID]; - _rpcNames = rpcNames; + _permissionElements = rpcNames; _groupType = groupType; _handler = observer; return self; } -+ (instancetype)filterWithRPCNames:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType observer:(SDLPermissionsChangedHandler)observer { - return [[self alloc] initWithRPCNames:rpcNames groupType:groupType observer:observer]; +- (instancetype)initWithPermissions:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType permissionStatusHandler:(SDLRPCPermissionStatusChangedHandler)permissionStatusHandler { + self = [super init]; + if (!self) { return nil; } + + _identifier = [NSUUID UUID]; + _permissionElements = rpcNames; + _groupType = groupType; + _rpcPermissionStatusHandler = permissionStatusHandler; + + return self; +} + +#pragma mark - Helpers + +- (NSArray *)rpcNamesFromPermissionElements:(NSArray *)permissionElements { + NSMutableArray *rpcNames = [[NSMutableArray alloc] init]; + for (SDLPermissionElement *element in permissionElements) { + [rpcNames addObject:element.rpcName]; + } + + return [rpcNames copy]; } #pragma mark - NSCopying - (id)copyWithZone:(nullable NSZone *)zone { - SDLPermissionFilter *newFilter = [[self.class allocWithZone:zone] initWithRPCNames:[_rpcNames copyWithZone:zone] groupType:_groupType observer:[_handler copyWithZone:zone]]; + SDLPermissionFilter *newFilter = [[self.class allocWithZone:zone] initWithPermissions:[_permissionElements copyWithZone:zone] groupType:_groupType permissionsHandler:[_handler copyWithZone:zone]]; newFilter->_identifier = _identifier; + newFilter->_rpcPermissionStatusHandler = _rpcPermissionStatusHandler; return newFilter; } + #pragma mark - Equality - (BOOL)isEqual:(id)object { @@ -73,7 +86,7 @@ - (BOOL)isEqualToFilter:(SDLPermissionFilter *)otherFilter { #pragma mark - Description - (NSString *)description { - return [NSString stringWithFormat:@"identifier: %@, group type: %@, rpcs: %@", self.identifier, @(self.groupType), self.rpcNames]; + return [NSString stringWithFormat:@"Permission Filter Identifier: %@, group type: %@, RPCs: %@", self.identifier, @(self.groupType), self.permissionElements]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.h index 990e845..208ba60 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.h @@ -8,6 +8,9 @@ NS_ASSUME_NONNULL_BEGIN +/// Permissions for a given set of RPCs +/// +/// @since RPC 2.0 @interface SDLPermissionItem : SDLRPCStruct /** @@ -31,6 +34,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic) SDLParameterPermissions *parameterPermissions; +/** + Describes whether or not the RPC needs encryption + + Optional, Boolean, since SDL 6.0 + */ +@property (strong, nonatomic, nullable) NSNumber *requireEncryption; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.m index 01cdf12..b4c749b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLHMIPermissions.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLParameterPermissions.h" NS_ASSUME_NONNULL_BEGIN @@ -13,27 +13,39 @@ @implementation SDLPermissionItem - (void)setRpcName:(NSString *)rpcName { - [store sdl_setObject:rpcName forName:SDLNameRPCName]; + [self.store sdl_setObject:rpcName forName:SDLRPCParameterNameRPCName]; } - (NSString *)rpcName { - return [store sdl_objectForName:SDLNameRPCName]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameRPCName ofClass:NSString.class error:&error]; } - (void)setHmiPermissions:(SDLHMIPermissions *)hmiPermissions { - [store sdl_setObject:hmiPermissions forName:SDLNameHMIPermissions]; + [self.store sdl_setObject:hmiPermissions forName:SDLRPCParameterNameHMIPermissions]; } - (SDLHMIPermissions *)hmiPermissions { - return [store sdl_objectForName:SDLNameHMIPermissions ofClass:SDLHMIPermissions.class]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameHMIPermissions ofClass:SDLHMIPermissions.class error:&error]; } - (void)setParameterPermissions:(SDLParameterPermissions *)parameterPermissions { - [store sdl_setObject:parameterPermissions forName:SDLNameParameterPermissions]; + [self.store sdl_setObject:parameterPermissions forName:SDLRPCParameterNameParameterPermissions]; } - (SDLParameterPermissions *)parameterPermissions { - return [store sdl_objectForName:SDLNameParameterPermissions ofClass:SDLParameterPermissions.class]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameParameterPermissions ofClass:SDLParameterPermissions.class error:&error]; +} + +- (void)setRequireEncryption:(nullable NSNumber *)requireEncryption { + [self.store sdl_setObject:requireEncryption forName:SDLRPCParameterNameRequireEncryption]; +} + +- (nullable NSNumber *)requireEncryption { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameRequireEncryption ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.h index 1fcd232..1d5442c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.h @@ -10,14 +10,22 @@ #import "SDLHMILevel.h" #import "SDLPermissionConstants.h" +#import "SDLRPCFunctionNames.h" +#import "SDLRPCPermissionStatus.h" @class SDLPermissionItem; - +@class SDLRPCMessage; NS_ASSUME_NONNULL_BEGIN +/// The permission manager monitoring RPC permissions. @interface SDLPermissionManager : NSObject +/** + * Flag indicating if the app requires an encryption service to be active. + */ +@property (assign, nonatomic, readonly) BOOL requiresEncryption; + /** * Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLPermissionManager, you should use the manager found on `SDLManager`. * @@ -37,7 +45,16 @@ NS_ASSUME_NONNULL_BEGIN * * @return YES if the RPC is allowed at the current HMI level, NO if not */ -- (BOOL)isRPCAllowed:(SDLPermissionRPCName)rpcName; +- (BOOL)isRPCAllowed:(SDLPermissionRPCName)rpcName __deprecated_msg(("Use isRPCNameAllowed: instead")); + +/** + * Determine if an individual RPC is allowed for the current HMI level + * + * @param rpcName The name of the RPC to be tested, for example, SDLRPCFunctionNameShow + * + * @return YES if the RPC is allowed at the current HMI level, NO if not + */ +- (BOOL)isRPCNameAllowed:(SDLRPCFunctionName)rpcName; /** * Determine if all RPCs are allowed for the current HMI level @@ -46,7 +63,16 @@ NS_ASSUME_NONNULL_BEGIN * * @return AllAllowed if all of the permissions are allowed, AllDisallowed if all the permissions are disallowed, Any if some are allowed, and some are disallowed */ -- (SDLPermissionGroupStatus)groupStatusOfRPCs:(NSArray *)rpcNames; +- (SDLPermissionGroupStatus)groupStatusOfRPCs:(NSArray *)rpcNames __deprecated_msg(("Use groupStatusOfRPCNames: instead")); + +/** + * Determine if all RPCs are allowed for the current HMI level + * + * @param rpcNames The RPCs to check + * + * @return AllAllowed if all of the permissions are allowed, AllDisallowed if all the permissions are disallowed, Any if some are allowed, and some are disallowed +*/ +- (SDLPermissionGroupStatus)groupStatusOfRPCPermissions:(NSArray *)rpcNames; /** * Retrieve a dictionary with keys that are the passed in RPC names, and objects of an NSNumber specifying if that RPC is currently allowed @@ -55,7 +81,16 @@ NS_ASSUME_NONNULL_BEGIN * * @return A dictionary specifying if the passed in RPC names are currently allowed or not */ -- (NSDictionary *> *)statusOfRPCs:(NSArray *)rpcNames; +- (NSDictionary *)statusOfRPCs:(NSArray *)rpcNames __deprecated_msg(("Use statusesOfRPCNames: instead")); + +/** + * Retrieve a dictionary with keys that are the passed in RPC names, and objects of an NSNumber specifying if that RPC is currently allowed + * + * @param rpcNames An array of permission elements to check + * + * @return A dictionary with specific RPC info contained in a SDLRPCPermissionStatus +*/ +- (NSDictionary *)statusesOfRPCPermissions:(NSArray *)rpcNames; /** * Add an observer for specified RPC names, with a callback that will be called whenever the value changes, as well as immediately with the current status. @@ -65,12 +100,25 @@ NS_ASSUME_NONNULL_BEGIN * @warning The observer may be called before this method returns, do not attempt to remove the observer from within the observer. That could send `nil` to removeObserverForIdentifier:. If you want functionality like that, call groupStatusOfRPCs: instead. * * @param rpcNames The RPCs to be observed + * @param groupType Affects the times that the observer block will be called. If Any, any change to any RPC in rpcNames will cause the observer block to be called. If AllAllowed, the block will be called when: 1. The observer is first set regardless of RPC status 2. Every RPC in rpcNames becomes allowed 3. The group of rpcNames goes from all being allowed to some or all being disallowed. + * @param handler The block that will be called whenever permissions change. + * + * @return An identifier that can be passed to removeObserverForIdentifer: to remove the observer + */ +- (SDLPermissionObserverIdentifier)addObserverForRPCs:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType withHandler:(SDLPermissionsChangedHandler)handler __deprecated_msg(("Use subscribeToRPCNames:groupType:withHandler: instead")); + +/** + * Subscribe to specified RPC names, with a callback that will be called whenever the value changes. Unlike addObserverForRPCs:groupType:withHandler:, the callback will only return immediately if the groupType is set to SDLPermissionGroupTypeAny or if the groupType is set to SDLPermissionGroupTypeAllAllowed and all RPCs in the rpcNames parameter are allowed. + * + * @warning The observer may be called before this method returns, do not attempt to remove the observer from within the observer. That could send `nil` to removeObserverForIdentifier:. If you want functionality like that, call groupStatusOfRPCs: instead. + * + * @param permissionElements The permission elements to be observed * @param groupType Affects the times that the observer block will be called. If Any, any change to any RPC in rpcNames will cause the observer block to be called. If AllAllowed, the block will be called when: 1. Every RPC in rpcNames becomes allowed 2. The group of rpcNames goes from all being allowed to some or all being disallowed. * @param handler The block that will be called whenever permissions change. * * @return An identifier that can be passed to removeObserverForIdentifer: to remove the observer */ -- (SDLPermissionObserverIdentifier)addObserverForRPCs:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType withHandler:(SDLPermissionsChangedHandler)handler; +- (SDLPermissionObserverIdentifier)subscribeToRPCPermissions:(NSArray *)permissionElements groupType:(SDLPermissionGroupType)groupType withHandler:(SDLRPCPermissionStatusChangedHandler)handler; /** * Remove every current observer @@ -84,6 +132,27 @@ NS_ASSUME_NONNULL_BEGIN */ - (void)removeObserverForIdentifier:(SDLPermissionObserverIdentifier)identifier; + +/** + * Check whether or not an RPC needs encryption. + */ +- (BOOL)rpcRequiresEncryption:(SDLPermissionRPCName)rpcName __deprecated_msg(("Use rpcNameRequiresEncryption: instead")); + +/** + * Check whether or not an RPC needs encryption. + */ +- (BOOL)rpcNameRequiresEncryption:(SDLRPCFunctionName)rpcName; + +/** + * Check whether a parameter of an RPC is allowed + * + * @param rpcName The name of the RPC to be tested, for example, SDLRPCFunctionNameGetVehicleData + * @param parameter The name of the parameter to be tested, for example, rpm + * + * @return True if the parameter is allowed, false if it is not + */ +- (BOOL)isPermissionParameterAllowed:(SDLRPCFunctionName)rpcName parameter:(NSString *)parameter; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.m index 08c37ee..aa9f14b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.m @@ -12,8 +12,10 @@ #import "SDLNotificationConstants.h" #import "SDLOnHMIStatus.h" #import "SDLOnPermissionsChange.h" +#import "SDLParameterPermissions.h" #import "SDLPermissionFilter.h" #import "SDLPermissionItem.h" +#import "SDLPredefinedWindows.h" #import "SDLRPCNotificationNotification.h" #import "SDLStateMachine.h" @@ -25,6 +27,7 @@ @interface SDLPermissionManager () @property (strong, nonatomic) NSMutableDictionary *permissions; @property (strong, nonatomic) NSMutableArray *filters; @property (copy, nonatomic, nullable) SDLHMILevel currentHMILevel; +@property (assign, nonatomic) BOOL requiresEncryption; @end @@ -64,23 +67,35 @@ - (void)stop { #pragma mark - Permissions available - (BOOL)isRPCAllowed:(NSString *)rpcName { - if (self.permissions[rpcName] == nil || self.currentHMILevel == nil) { + return [self isRPCNameAllowed:rpcName]; +} + +- (BOOL)isRPCNameAllowed:(SDLRPCFunctionName)rpcName { + return [self.class isRPCNameAllowed:rpcName permissions:self.permissions hmiLevel:self.currentHMILevel]; +} + ++ (BOOL)isRPCNameAllowed:(SDLRPCFunctionName)rpcName permissions:(NSDictionary *)permissions hmiLevel:(SDLHMILevel)hmiLevel { + if (permissions[rpcName] == nil || hmiLevel == nil) { return NO; } - SDLPermissionItem *item = self.permissions[rpcName]; - return [item.hmiPermissions.allowed containsObject:self.currentHMILevel]; + SDLPermissionItem *item = permissions[rpcName]; + return [item.hmiPermissions.allowed containsObject:hmiLevel]; } - (SDLPermissionGroupStatus)groupStatusOfRPCs:(NSArray *)rpcNames { + return [self groupStatusOfRPCPermissions:[self sdl_createPermissionElementsFromRPCNames:rpcNames]]; +} + +- (SDLPermissionGroupStatus)groupStatusOfRPCPermissions:(NSArray *)rpcNames { if (self.currentHMILevel == nil) { return SDLPermissionGroupStatusUnknown; } - return [self.class sdl_groupStatusOfRPCs:rpcNames withPermissions:[self.permissions copy] hmiLevel:self.currentHMILevel]; + return [self.class sdl_groupStatusOfRPCPermissions:rpcNames withPermissions:[self.permissions copy] hmiLevel:self.currentHMILevel]; } -+ (SDLPermissionGroupStatus)sdl_groupStatusOfRPCs:(NSArray *)rpcNames withPermissions:(NSDictionary *)permissions hmiLevel:(SDLHMILevel)hmiLevel { ++ (SDLPermissionGroupStatus)sdl_groupStatusOfRPCPermissions:(NSArray *)rpcNames withPermissions:(NSDictionary *)permissions hmiLevel:(SDLHMILevel)hmiLevel { // If we don't have an HMI level, then just say everything is disallowed if (hmiLevel == nil) { return SDLPermissionGroupStatusUnknown; @@ -90,7 +105,9 @@ + (SDLPermissionGroupStatus)sdl_groupStatusOfRPCs:(NSArray BOOL hasDisallowed = NO; // Loop through all the RPCs we need to check - for (NSString *rpcName in rpcNames) { + for (SDLPermissionElement *permissionElement in rpcNames) { + NSString *rpcName = permissionElement.rpcName; + // If at this point in the loop, we have both allowed and disallowed RPCs, return the mixed result if (hasAllowed && hasDisallowed) { return SDLPermissionGroupStatusMixed; @@ -108,6 +125,16 @@ + (SDLPermissionGroupStatus)sdl_groupStatusOfRPCs:(NSArray } else { hasDisallowed = YES; } + + if (permissionElement.parameterPermissions != nil) { + for (NSString *parameter in permissionElement.parameterPermissions) { + if ([self.class sdl_isPermissionParameterAllowed:permissionElement.rpcName parameter:parameter permissionItems:permissions hmiLevel:hmiLevel]) { + hasAllowed = YES; + } else { + hasDisallowed = YES; + } + } + } } if (hasAllowed && hasDisallowed) { @@ -119,12 +146,29 @@ + (SDLPermissionGroupStatus)sdl_groupStatusOfRPCs:(NSArray } } -- (NSDictionary *> *)statusOfRPCs:(NSArray *)rpcNames { - NSMutableDictionary *> *permissionAllowedDict = [NSMutableDictionary dictionary]; +- (NSDictionary *)statusOfRPCs:(NSArray *)rpcNames { + NSArray *permissionElementsArray = [self sdl_createPermissionElementsFromRPCNames:rpcNames]; - for (NSString *rpcName in rpcNames) { - BOOL allowed = [self isRPCAllowed:rpcName]; - permissionAllowedDict[rpcName] = @(allowed); + // Convert the dictionary returned from statusesOfRPCNames: to the correct return type + return [self sdl_convertPermissionsStatusDictionaryToPermissionsBoolDictionary:[self statusesOfRPCPermissions:permissionElementsArray]]; +} + +- (NSDictionary *)statusesOfRPCPermissions:(NSArray *)rpcNames { + NSMutableDictionary *permissionAllowedDict = [NSMutableDictionary dictionary]; + + for (SDLPermissionElement *permissionElement in rpcNames) { + if (permissionElement == nil) { continue; } + + NSMutableDictionary *rpcParameters = [NSMutableDictionary dictionary]; + if (permissionElement.parameterPermissions != nil) { + for (NSString *permissionParameter in permissionElement.parameterPermissions) { + BOOL isParameterAllowed = [self.class sdl_isPermissionParameterAllowed:permissionElement.rpcName parameter:permissionParameter permissionItems:self.permissions hmiLevel:self.currentHMILevel]; + rpcParameters[permissionParameter] = @(isParameterAllowed); + } + } + + SDLRPCPermissionStatus *permissionStatus = [[SDLRPCPermissionStatus alloc] initWithRPCName:permissionElement.rpcName isRPCAllowed:[self isRPCNameAllowed:permissionElement.rpcName] rpcParameters:rpcParameters]; + permissionAllowedDict[permissionElement.rpcName] = permissionStatus; } return [permissionAllowedDict copy]; @@ -136,7 +180,7 @@ + (SDLPermissionGroupStatus)sdl_groupStatusOfRPCs:(NSArray #pragma mark Add Observers - (SDLPermissionObserverIdentifier)addObserverForRPCs:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType withHandler:(nonnull SDLPermissionsChangedHandler)handler { - SDLPermissionFilter *filter = [SDLPermissionFilter filterWithRPCNames:rpcNames groupType:groupType observer:handler]; + SDLPermissionFilter *filter = [[SDLPermissionFilter alloc] initWithPermissions:[self sdl_createPermissionElementsFromRPCNames:rpcNames] groupType:groupType permissionsHandler:handler]; // Store the filter for later use [self.filters addObject:filter]; @@ -147,11 +191,31 @@ - (SDLPermissionObserverIdentifier)addObserverForRPCs:(NSArray *> *allowedDict = [self statusOfRPCs:filter.rpcNames]; +- (SDLPermissionObserverIdentifier)subscribeToRPCPermissions:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType withHandler:(SDLRPCPermissionStatusChangedHandler)handler { + SDLPermissionFilter *filter = [[SDLPermissionFilter alloc] initWithPermissions:rpcNames groupType:groupType permissionStatusHandler:handler]; - filter.handler(allowedDict, permissionStatus); + // Store the filter for later use + [self.filters addObject:filter]; + + // Check permission status and group type to see if we need to call handler immediately after setting the observer + SDLPermissionGroupStatus permissionStatus = [self groupStatusOfRPCPermissions:filter.permissionElements]; + if ((groupType == SDLPermissionGroupTypeAny) || (groupType == SDLPermissionGroupTypeAllAllowed && permissionStatus == SDLPermissionGroupStatusAllowed)) { + [self sdl_callFilterObserver:filter]; + } + + return filter.identifier; +} + +- (void)sdl_callFilterObserver:(SDLPermissionFilter *)filter { + SDLPermissionGroupStatus permissionStatus = [self groupStatusOfRPCPermissions:filter.permissionElements]; + + if (filter.rpcPermissionStatusHandler != nil) { + NSDictionary *allowedDict = [self statusesOfRPCPermissions:filter.permissionElements]; + filter.rpcPermissionStatusHandler(allowedDict, permissionStatus); + } else if (filter.handler != nil) { + NSDictionary *allowedDict = [self sdl_convertPermissionsStatusDictionaryToPermissionsBoolDictionary:[self statusesOfRPCPermissions:filter.permissionElements]]; + filter.handler(allowedDict, permissionStatus); + } } #pragma mark Remove Observers @@ -181,11 +245,12 @@ - (void)sdl_permissionsDidChange:(SDLRPCNotificationNotification *)notification } SDLOnPermissionsChange *onPermissionChange = notification.notification; + NSArray *newPermissionItems = [onPermissionChange.permissionItem copy]; NSArray *currentFilters = [self.filters copy]; // We can eliminate calling those filters who had no permission changes, so we'll filter down and see which had permissions that changed - NSArray *modifiedFilters = [self.class sdl_filterPermissionChangesForFilters:currentFilters updatedPermissions:newPermissionItems]; + NSArray *modifiedFilters = [self.class sdl_filterPermissionChangesForFilters:currentFilters currentPermissions:self.permissions updatedPermissions:newPermissionItems]; // We need the old group status and new group status for all allowed filters so we know if they should be called NSDictionary *> *allAllowedFiltersWithOldStatus = [self sdl_currentStatusForFilters:modifiedFilters]; @@ -200,7 +265,7 @@ - (void)sdl_permissionsDidChange:(SDLRPCNotificationNotification *)notification for (SDLPermissionFilter *filter in modifiedFilters) { if (filter.groupType == SDLPermissionGroupTypeAllAllowed) { SDLPermissionGroupStatus oldStatus = [allAllowedFiltersWithOldStatus[filter.identifier] unsignedIntegerValue]; - SDLPermissionGroupStatus newStatus = [self groupStatusOfRPCs:filter.rpcNames]; + SDLPermissionGroupStatus newStatus = [self groupStatusOfRPCPermissions:filter.permissionElements]; // We've already eliminated the case where the permissions could stay the same, so if the permissions changed *to* allowed or *away* from allowed, we need to call the observer. if (newStatus == SDLPermissionGroupStatusAllowed || oldStatus == SDLPermissionGroupStatusAllowed) { @@ -216,6 +281,8 @@ - (void)sdl_permissionsDidChange:(SDLRPCNotificationNotification *)notification for (SDLPermissionFilter *filter in filtersToCall) { [self sdl_callFilterObserver:filter]; } + + self.requiresEncryption = (onPermissionChange.requireEncryption != nil) ? onPermissionChange.requireEncryption.boolValue : [self sdl_containsAtLeastOneRPCThatRequiresEncryption]; } - (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { @@ -225,6 +292,10 @@ - (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { SDLOnHMIStatus *hmiStatus = notification.notification; + if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { + return; + } + SDLHMILevel oldHMILevel = [self.currentHMILevel copy]; self.currentHMILevel = hmiStatus.hmiLevel; NSArray *filters = [self.filters copy]; @@ -251,6 +322,39 @@ - (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { #pragma mark Helper Methods +/** + * HAX: Remove this when statusOfRPCs: is no longer supported. Converts a dictionary from to . + * + * @param permissionStatusDictionary The dictionary containing to convert. + * + * @return A dictionary. + */ +- (NSDictionary *)sdl_convertPermissionsStatusDictionaryToPermissionsBoolDictionary:(NSDictionary *)permissionStatusDictionary { + NSMutableDictionary *rpcNameDictionary = [[NSMutableDictionary alloc] init]; + [permissionStatusDictionary enumerateKeysAndObjectsUsingBlock:^(SDLRPCFunctionName _Nonnull key, SDLRPCPermissionStatus * _Nonnull obj, BOOL * _Nonnull stop) { + [rpcNameDictionary setObject:@(obj.rpcAllowed) forKey:key]; + }]; + + return rpcNameDictionary; +} + +/** + * Converts an array of RPC name strings to permission elements. + * + * @param rpcNames The RPC names to convert. + * + * @return An array of permission elements. + */ +- (NSArray *)sdl_createPermissionElementsFromRPCNames:(NSArray *)rpcNames { + NSMutableArray *permissionElements = [[NSMutableArray alloc] init]; + for (NSString *rpcName in rpcNames) { + SDLPermissionElement *permissionElement = [[SDLPermissionElement alloc] initWithRPCName:rpcName parameterPermissions:nil]; + [permissionElements addObject:permissionElement]; + } + + return [permissionElements copy]; +} + /** * Determine if a filter changes based on an HMI level change and the filter's group type settings. This will run through the filter's RPCs, check the permission for each and see if any permission within the filter changes based on some permission now being allowed when it wasn't, or not allowed when it was. This also takes into account the group type setting, so an All Allowed filter will return YES if and only if some permission changed *and* that causes a status change *to* or *from* Allowed. * @@ -262,7 +366,7 @@ - (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { */ - (BOOL)sdl_didFilterChange:(SDLPermissionFilter *)filter fromHMILevel:(SDLHMILevel)oldHMILevel toHMILevel:(SDLHMILevel)newHMILevel { BOOL changed = NO; - for (NSString *rpcName in filter.rpcNames) { + for (NSString *rpcName in [filter rpcNamesFromPermissionElements:filter.permissionElements]) { SDLPermissionItem *item = self.permissions[rpcName]; BOOL newAllowed = [item.hmiPermissions.allowed containsObject:self.currentHMILevel]; BOOL oldAllowed = [item.hmiPermissions.allowed containsObject:oldHMILevel]; @@ -280,8 +384,8 @@ - (BOOL)sdl_didFilterChange:(SDLPermissionFilter *)filter fromHMILevel:(SDLHMILe // This is only for the All Allowed group type. Unlike with the Any group type, we need to know if the group status has changed if (changed) { - SDLPermissionGroupStatus oldStatus = [self.class sdl_groupStatusOfRPCs:filter.rpcNames withPermissions:self.permissions hmiLevel:oldHMILevel]; - SDLPermissionGroupStatus newStatus = [self.class sdl_groupStatusOfRPCs:filter.rpcNames withPermissions:self.permissions hmiLevel:newHMILevel]; + SDLPermissionGroupStatus oldStatus = [self.class sdl_groupStatusOfRPCPermissions:filter.permissionElements withPermissions:self.permissions hmiLevel:oldHMILevel]; + SDLPermissionGroupStatus newStatus = [self.class sdl_groupStatusOfRPCPermissions:filter.permissionElements withPermissions:self.permissions hmiLevel:newHMILevel]; // We've already eliminated the case where the permissions could stay the same, so if the permissions changed *to* allowed or *away* from allowed, we need to call the observer. if (newStatus == SDLPermissionGroupStatusAllowed || oldStatus == SDLPermissionGroupStatusAllowed) { @@ -304,7 +408,7 @@ - (BOOL)sdl_didFilterChange:(SDLPermissionFilter *)filter fromHMILevel:(SDLHMILe NSMutableDictionary *> *filtersWithStatus = [NSMutableDictionary dictionary]; for (SDLPermissionFilter *filter in filters) { if (filter.groupType == SDLPermissionGroupTypeAllAllowed) { - filtersWithStatus[filter.identifier] = @([self groupStatusOfRPCs:filter.rpcNames]); + filtersWithStatus[filter.identifier] = @([self groupStatusOfRPCPermissions:filter.permissionElements]); } } @@ -312,20 +416,21 @@ - (BOOL)sdl_didFilterChange:(SDLPermissionFilter *)filter fromHMILevel:(SDLHMILe } /** - * Takes a set of filters and a set of updated permission items. Loops through each permission for each filter and determines if the filter contains a permission that was updated. Returns the set of filters that contain an updated permission. - * - * @param filters The set of filters to check - * @param permissionItems The set of updated permissions to test each filter against - * - * @return An array of filters that contained one of the passed permissions + Takes a set of filters and a set of updated permission items. Loops through each permission for each filter and determines if the filter contains a permission that was updated. Returns the set of filters that contain an updated permission. + + @param filters The set of filters to check + @param currentPermissions The current set of permissions to check the updated permissions and make sure they were modified + @param updatedPermissions The set of updated permissions to test each filter against + @return An array of filters that contained one of the passed permissions */ -+ (NSArray *)sdl_filterPermissionChangesForFilters:(NSArray *)filters updatedPermissions:(NSArray *)permissionItems { ++ (NSArray *)sdl_filterPermissionChangesForFilters:(NSArray *)filters currentPermissions:(NSMutableDictionary *)currentPermissions updatedPermissions:(NSArray *)updatedPermissions { NSMutableArray *modifiedFilters = [NSMutableArray arrayWithCapacity:filters.count]; // Loop through each updated permission item for each filter, if the filter had something modified, store it and go to the next filter for (SDLPermissionFilter *filter in filters) { - for (SDLPermissionItem *item in permissionItems) { - if ([filter.rpcNames containsObject:item.rpcName]) { + NSArray *modifiedPermissionItems = [self sdl_modifiedUpdatedPermissions:updatedPermissions comparedToCurrentPermissions:currentPermissions]; + for (SDLPermissionItem *item in modifiedPermissionItems) { + if ([[filter rpcNamesFromPermissionElements:filter.permissionElements] containsObject:item.rpcName]) { [modifiedFilters addObject:filter]; break; } @@ -335,6 +440,54 @@ - (BOOL)sdl_didFilterChange:(SDLPermissionFilter *)filter fromHMILevel:(SDLHMILe return [modifiedFilters copy]; } ++ (NSArray *)sdl_modifiedUpdatedPermissions:(NSArray *)permissionItems comparedToCurrentPermissions:(NSMutableDictionary *)currentPermissions { + NSMutableArray *modifiedPermissions = [NSMutableArray arrayWithCapacity:permissionItems.count]; + + for (SDLPermissionItem *item in permissionItems) { + SDLPermissionItem *currentItem = currentPermissions[item.rpcName]; + if (![item isEqual:currentItem]) { + [modifiedPermissions addObject:item]; + } + } + + return [modifiedPermissions copy]; +} + +- (BOOL)sdl_containsAtLeastOneRPCThatRequiresEncryption { + for (SDLPermissionItem *item in self.permissions.allValues) { + if (item.requireEncryption) { + return YES; + } + } + return NO; +} + +- (BOOL)rpcRequiresEncryption:(SDLPermissionRPCName)rpcName { + return [self rpcNameRequiresEncryption:rpcName]; +} + +- (BOOL)rpcNameRequiresEncryption:(SDLRPCFunctionName)rpcName { + if (self.permissions[rpcName].requireEncryption != nil) { + return self.permissions[rpcName].requireEncryption.boolValue; + } + return NO; +} + +- (BOOL)isPermissionParameterAllowed:(SDLRPCFunctionName)rpcName parameter:(NSString *)parameter { + return [self.class sdl_isPermissionParameterAllowed:rpcName parameter:parameter permissionItems:self.permissions hmiLevel:self.currentHMILevel]; +} + ++ (BOOL)sdl_isPermissionParameterAllowed:(SDLRPCFunctionName)rpcName parameter:(NSString *)parameter permissionItems:(NSDictionary *)permissionItems hmiLevel:(SDLHMILevel)hmiLevel { + SDLPermissionItem *permissionItem = permissionItems[rpcName]; + if (permissionItem == nil || ![self isRPCNameAllowed:rpcName permissions:permissionItems hmiLevel:hmiLevel] || permissionItem.parameterPermissions == nil || permissionItem.parameterPermissions.allowed == nil) { + return NO; + } else if (permissionItem.parameterPermissions.userDisallowed != nil) { + return [permissionItem.parameterPermissions.allowed containsObject:parameter] && ![permissionItem.parameterPermissions.userDisallowed containsObject:parameter]; + } else { + return [permissionItem.parameterPermissions.allowed containsObject:parameter]; + } +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.h index 6dcbcfc..5b9707e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.h @@ -15,6 +15,10 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLPhoneCapability : SDLRPCStruct +/// Convenience init for defining the phone capability +/// +/// @param dialNumberEnabled Whether or not the DialNumber RPC is enabled. +/// @return An SDLPhoneCapability object - (instancetype)initWithDialNumber:(BOOL)dialNumberEnabled; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.m index 5089f8a..514b8e2 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.m @@ -9,7 +9,7 @@ #import "SDLPhoneCapability.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -27,11 +27,11 @@ - (instancetype)initWithDialNumber:(BOOL)dialNumberEnabled { } - (void)setDialNumberEnabled:(nullable NSNumber *)dialNumberEnabled { - [store sdl_setObject:dialNumberEnabled forName:SDLNameDialNumberEnabled]; + [self.store sdl_setObject:dialNumberEnabled forName:SDLRPCParameterNameDialNumberEnabled]; } - (nullable NSNumber *)dialNumberEnabled { - return [store sdl_objectForName:SDLNameDialNumberEnabled]; + return [self.store sdl_objectForName:SDLRPCParameterNameDialNumberEnabled ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPinchGesture.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPinchGesture.h index 024ea8f..81ca837 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPinchGesture.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPinchGesture.h @@ -12,6 +12,7 @@ NS_ASSUME_NONNULL_BEGIN +/// Pinch Gesture information @interface SDLPinchGesture : NSObject /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPolicyDataParser.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPolicyDataParser.h deleted file mode 100644 index cdc763b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPolicyDataParser.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// PolicyDataParser.h -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPolicyDataParser : NSObject - -@property (assign, nonatomic) Byte protocolVersion; -@property (assign, nonatomic) BOOL isResponseRequired; -@property (assign, nonatomic) BOOL isHighBandwidth; -@property (assign, nonatomic) BOOL isSigned; -@property (assign, nonatomic) BOOL isEncrypted; -@property (assign, nonatomic) BOOL hasESN; -@property (assign, nonatomic) Byte serviceType; -@property (assign, nonatomic) Byte commandType; -@property (assign, nonatomic) BOOL CPUDestination; -@property (assign, nonatomic) Byte encryptionKeyIndex; -@property (assign, nonatomic) UInt32 payloadSize; -@property (strong, nonatomic) NSData *ESN; -@property (assign, nonatomic) UInt32 moduleMessageId; -@property (assign, nonatomic) UInt32 serverMessageId; -@property (assign, nonatomic) Byte messageStatus; -@property (strong, nonatomic) NSData *initializationVector; -@property (strong, nonatomic) NSData *payload; -@property (strong, nonatomic) NSData *signatureTag; - -- (nullable NSData *)unwrap:(NSData *)wrappedData; -- (void)parsePolicyData:(NSData *)data; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPolicyDataParser.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPolicyDataParser.m deleted file mode 100644 index 9e23aee..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPolicyDataParser.m +++ /dev/null @@ -1,143 +0,0 @@ -// -// PolicyDataParser.m -// - -#import "SDLPolicyDataParser.h" -#import "SDLLogMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPolicyDataParser - -- (nullable NSData *)unwrap:(NSData *)wrappedData { - NSData *decodedData = nil; - - @try { - NSError *errorJSONSerialization = nil; - NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:wrappedData options:kNilOptions error:&errorJSONSerialization]; - NSArray *array = dictionary[@"data"]; - NSString *base64EncodedString = array[0]; - - if ([NSData instancesRespondToSelector:@selector(initWithBase64EncodedString:options:)]) { - decodedData = [[NSData alloc] initWithBase64EncodedString:base64EncodedString options:0]; - } else { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - decodedData = [[NSData alloc] initWithBase64Encoding:base64EncodedString]; -#pragma clang diagnostic pop - } - } - @catch (NSException *exception) { - decodedData = nil; - SDLLogW(@"%@", exception); - } - - 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) { - SDLLogW(@"%@", exception); - } -} - -- (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 - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedWindows.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedWindows.h new file mode 100644 index 0000000..d488673 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedWindows.h @@ -0,0 +1,18 @@ +// +// SDLPredefinedWindows.h +// SmartDeviceLink + +#import "SDLEnum.h" + +/** + Specifies which windows and IDs are predefined and pre-created on behalf of the app. The default window is always available and represents the app window on the main display. It's an equivalent to today's app window. For backward compatibility, this will ensure the app always has at least the default window on the main display. The app can choose to use this predefined enum element to specifically address app's main window or to duplicate window content. It is not possible to duplicate another window to the default window. The primary widget is a special widget, that can be associated with a service type, which is used by the HMI whenever a single widget needs to represent the whole app. The primary widget should be named as the app and can be pre-created by the HMI. + + @since SDL 6.0 + */ +typedef NS_ENUM(NSUInteger, SDLPredefinedWindows){ + /// The default window is a main window pre-created on behalf of the app. + SDLPredefinedWindowsDefaultWindow = 0, + + /// The primary widget of the app. + SDLPredefinedWindowsPrimaryWidget = 1 +}; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.h index cc6c7ae..965a0c1 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.h @@ -11,8 +11,8 @@ #import "SDLAsynchronousOperation.h" @class SDLChoiceCell; -@class SDLDisplayCapabilities; @class SDLFileManager; +@class SDLWindowCapability; @protocol SDLConnectionManagerType; @@ -29,7 +29,7 @@ typedef NS_ENUM(NSUInteger, SDLPreloadChoicesOperationState) { @property (assign, nonatomic) SDLPreloadChoicesOperationState currentState; -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager displayCapabilities:(SDLDisplayCapabilities *)displayCapabilities isVROptional:(BOOL)isVROptional cellsToPreload:(NSSet *)cells; +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager displayName:(NSString *)displayName windowCapability:(SDLWindowCapability *)defaultMainWindowCapability isVROptional:(BOOL)isVROptional cellsToPreload:(NSSet *)cells; - (BOOL)removeChoicesFromUpload:(NSSet *)choices; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.m index 725c6ba..82f7435 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.m @@ -13,12 +13,13 @@ #import "SDLConnectionManagerType.h" #import "SDLCreateInteractionChoiceSet.h" #import "SDLCreateInteractionChoiceSetResponse.h" -#import "SDLDisplayCapabilities.h" -#import "SDLDisplayCapabilities+ShowManagerExtensions.h" +#import "SDLDisplayType.h" #import "SDLError.h" #import "SDLFileManager.h" #import "SDLImage.h" #import "SDLLogMacros.h" +#import "SDLWindowCapability.h" +#import "SDLWindowCapability+ScreenManagerExtensions.h" NS_ASSUME_NONNULL_BEGIN @@ -30,8 +31,10 @@ @interface SDLChoiceCell() @interface SDLPreloadChoicesOperation() +@property (strong, nonatomic) NSUUID *operationId; @property (strong, nonatomic) NSMutableSet *cellsToUpload; -@property (strong, nonatomic) SDLDisplayCapabilities *displayCapabilities; +@property (strong, nonatomic) SDLWindowCapability *windowCapability; +@property (strong, nonatomic) NSString *displayName; @property (assign, nonatomic, getter=isVROptional) BOOL vrOptional; @property (weak, nonatomic) id connectionManager; @@ -42,15 +45,17 @@ @interface SDLPreloadChoicesOperation() @implementation SDLPreloadChoicesOperation -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager displayCapabilities:(SDLDisplayCapabilities *)displayCapabilities isVROptional:(BOOL)isVROptional cellsToPreload:(NSSet *)cells { +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager displayName:(NSString *)displayName windowCapability:(SDLWindowCapability *)defaultMainWindowCapability isVROptional:(BOOL)isVROptional cellsToPreload:(NSSet *)cells { self = [super init]; if (!self) { return nil; } _connectionManager = connectionManager; _fileManager = fileManager; - _displayCapabilities = displayCapabilities; + _displayName = displayName; + _windowCapability = defaultMainWindowCapability; _vrOptional = isVROptional; _cellsToUpload = [cells mutableCopy]; + _operationId = [NSUUID UUID]; _currentState = SDLPreloadChoicesOperationStateWaitingToStart; @@ -59,6 +64,7 @@ - (instancetype)initWithConnectionManager:(id)connecti - (void)start { [super start]; + if (self.isCancelled) { return; } [self sdl_preloadCellArtworksWithCompletionHandler:^(NSError * _Nullable error) { self.internalError = error; @@ -81,11 +87,11 @@ - (void)sdl_preloadCellArtworksWithCompletionHandler:(void(^)(NSError *_Nullable NSMutableArray *artworksToUpload = [NSMutableArray arrayWithCapacity:self.cellsToUpload.count]; for (SDLChoiceCell *cell in self.cellsToUpload) { - if ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameChoiceImage]) { - cell.artwork != nil ? [artworksToUpload addObject:cell.artwork] : nil; + if ([self sdl_shouldSendChoicePrimaryImage] && [self sdl_artworkNeedsUpload:cell.artwork]) { + [artworksToUpload addObject:cell.artwork]; } - if ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameChoiceSecondaryImage]) { - cell.secondaryArtwork != nil ? [artworksToUpload addObject:cell.secondaryArtwork] : nil; + if ([self sdl_shouldSendChoiceSecondaryImage] && [self sdl_artworkNeedsUpload:cell.secondaryArtwork]) { + [artworksToUpload addObject:cell.secondaryArtwork]; } } @@ -107,14 +113,27 @@ - (void)sdl_preloadCellArtworksWithCompletionHandler:(void(^)(NSError *_Nullable }]; } +- (BOOL)sdl_artworkNeedsUpload:(SDLArtwork *)artwork { + return (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && !artwork.isStaticIcon); +} + - (void)sdl_preloadCells { _currentState = SDLPreloadChoicesOperationStatePreloadingChoices; NSMutableArray *choiceRPCs = [NSMutableArray arrayWithCapacity:self.cellsToUpload.count]; for (SDLChoiceCell *cell in self.cellsToUpload) { - [choiceRPCs addObject:[self sdl_choiceFromCell:cell]]; + SDLCreateInteractionChoiceSet *csCell = [self sdl_choiceFromCell:cell]; + if(csCell != nil) { + [choiceRPCs addObject:csCell]; + } } - + if (choiceRPCs.count == 0) { + SDLLogE(@"All choice cells to send are nil, so the choice set will not be shown"); + self.internalError = [NSError sdl_choiceSetManager_failedToCreateMenuItems]; + [self finishOperation]; + return; + } + __weak typeof(self) weakSelf = self; __block NSMutableDictionary *errors = [NSMutableDictionary dictionary]; [self.connectionManager sendRequests:[choiceRPCs copy] progressHandler:^(__kindof SDLRPCRequest * _Nonnull request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error, float percentComplete) { @@ -123,7 +142,7 @@ - (void)sdl_preloadCells { } } completionHandler:^(BOOL success) { if (!success) { - SDLLogW(@"Error preloading choice cells: %@", errors); + SDLLogE(@"Error preloading choice cells: %@", errors); weakSelf.internalError = [NSError sdl_choiceSetManager_choiceUploadFailed:errors]; } @@ -135,7 +154,7 @@ - (void)sdl_preloadCells { #pragma mark - Assembling Choice Data -- (SDLCreateInteractionChoiceSet *)sdl_choiceFromCell:(SDLChoiceCell *)cell { +- (nullable SDLCreateInteractionChoiceSet *)sdl_choiceFromCell:(SDLChoiceCell *)cell { NSArray *vrCommands = nil; if (cell.voiceCommands == nil) { vrCommands = self.isVROptional ? nil : @[[NSString stringWithFormat:@"%hu", cell.choiceId]]; @@ -143,18 +162,59 @@ - (SDLCreateInteractionChoiceSet *)sdl_choiceFromCell:(SDLChoiceCell *)cell { vrCommands = cell.voiceCommands; } - NSString *menuName = [self.displayCapabilities hasTextFieldOfName:SDLTextFieldNameMenuName] ? cell.text : nil; - NSString *secondaryText = [self.displayCapabilities hasTextFieldOfName:SDLTextFieldNameSecondaryText] ? cell.secondaryText : nil; - NSString *tertiaryText = [self.displayCapabilities hasTextFieldOfName:SDLTextFieldNameTertiaryText] ? cell.tertiaryText : nil; + NSString *menuName = nil; + if ([self sdl_shouldSendChoiceText]) { + menuName = cell.text; + } + + if(!menuName) { + SDLLogE(@"Could not convert SDLChoiceCell to SDLCreateInteractionChoiceSet. It will not be shown. Cell: %@", cell); + return nil; + } + + NSString *secondaryText = [self sdl_shouldSendChoiceSecondaryText] ? cell.secondaryText : nil; + NSString *tertiaryText = [self sdl_shouldSendChoiceTertiaryText] ? cell.tertiaryText : nil; - SDLImage *image = ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameChoiceImage] && cell.artwork != nil) ? [[SDLImage alloc] initWithName:cell.artwork.name isTemplate:cell.artwork.isTemplate] : nil; - SDLImage *secondaryImage = ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameChoiceSecondaryImage] && cell.secondaryArtwork != nil) ? [[SDLImage alloc] initWithName:cell.secondaryArtwork.name isTemplate:cell.secondaryArtwork.isTemplate] : nil; + SDLImage *image = [self sdl_shouldSendChoicePrimaryImage] ? cell.artwork.imageRPC : nil; + SDLImage *secondaryImage = [self sdl_shouldSendChoiceSecondaryImage] ? cell.secondaryArtwork.imageRPC : nil; SDLChoice *choice = [[SDLChoice alloc] initWithId:cell.choiceId menuName:(NSString *_Nonnull)menuName vrCommands:(NSArray * _Nonnull)vrCommands image:image secondaryText:secondaryText secondaryImage:secondaryImage tertiaryText:tertiaryText]; return [[SDLCreateInteractionChoiceSet alloc] initWithId:(UInt32)choice.choiceID.unsignedIntValue choiceSet:@[choice]]; } +/// Determine if we should send primary text. If textFields is nil, we don't know the capabilities and we will send everything. +- (BOOL)sdl_shouldSendChoiceText { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + if ([self.displayName isEqualToString:SDLDisplayTypeGen38Inch]) { + return YES; + } +#pragma clang diagnostic pop + + return [self.windowCapability hasTextFieldOfName:SDLTextFieldNameMenuName]; +} + +/// Determine if we should send secondary text. If textFields is nil, we don't know the capabilities and we will send everything. +- (BOOL)sdl_shouldSendChoiceSecondaryText { + return [self.windowCapability hasTextFieldOfName:SDLTextFieldNameSecondaryText]; +} + +/// Determine if we should send teriary text. If textFields is nil, we don't know the capabilities and we will send everything. +- (BOOL)sdl_shouldSendChoiceTertiaryText { + return [self.windowCapability hasTextFieldOfName:SDLTextFieldNameTertiaryText]; +} + +/// Determine if we should send the primary image. If imageFields is nil, we don't know the capabilities and we will send everything. +- (BOOL)sdl_shouldSendChoicePrimaryImage { + return [self.windowCapability hasImageFieldOfName:SDLImageFieldNameChoiceImage]; +} + +/// Determine if we should send the secondary image. If imageFields is nil, we don't know the capabilities and we will send everything. +- (BOOL)sdl_shouldSendChoiceSecondaryImage { + return [self.windowCapability hasImageFieldOfName:SDLImageFieldNameChoiceSecondaryImage]; +} + #pragma mark - Property Overrides - (void)finishOperation { @@ -164,7 +224,7 @@ - (void)finishOperation { } - (nullable NSString *)name { - return @"com.sdl.choicesetmanager.preloadChoices"; + return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; } - (NSOperationQueuePriority)queuePriority { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.h index cf92f51..df82bfa 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.h @@ -23,12 +23,38 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLPresentChoiceSetOperation : SDLAsynchronousOperation +/** + The choice set to be displayed. + */ @property (strong, nonatomic, readonly) SDLChoiceSet *choiceSet; + +/** + The choice set item the user selected. + */ @property (strong, nonatomic, readonly, nullable) SDLChoiceCell *selectedCell; + +/** + How the user selected the choice set item: either from the menu or through voice-recognition. + */ @property (strong, nonatomic, readonly, nullable) SDLTriggerSource selectedTriggerSource; + +/** + The row number of the choice set item the user selected. + */ @property (assign, nonatomic, readonly) NSUInteger selectedCellRow; -- (instancetype)initWithConnectionManager:(id)connectionManager choiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode keyboardProperties:(nullable SDLKeyboardProperties *)originalKeyboardProperties keyboardDelegate:(nullable id)keyboardDelegate; +/** + An operation to present a choice set. + + @param connectionManager The connection manager + @param choiceSet The choice set to be displayed + @param mode If the set should be presented for the user to interact via voice, touch, or both + @param originalKeyboardProperties The keyboard configuration + @param keyboardDelegate The keyboard delegate called when the user interacts with the keyboard + @param cancelID A unique ID for this specific choice set that allows cancellation through the `CancelInteraction` RPC. + @return A SDLPresentChoiceSetOperation object + */ +- (instancetype)initWithConnectionManager:(id)connectionManager choiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode keyboardProperties:(nullable SDLKeyboardProperties *)originalKeyboardProperties keyboardDelegate:(nullable id)keyboardDelegate cancelID:(UInt16)cancelID; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.m index 4e923b8..3787fb9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.m @@ -8,10 +8,12 @@ #import "SDLPresentChoiceSetOperation.h" +#import "SDLCancelInteraction.h" #import "SDLChoiceCell.h" #import "SDLChoiceSet.h" #import "SDLChoiceSetDelegate.h" #import "SDLConnectionManagerType.h" +#import "SDLGlobals.h" #import "SDLKeyboardDelegate.h" #import "SDLKeyboardProperties.h" #import "SDLLogMacros.h" @@ -21,6 +23,7 @@ #import "SDLPerformInteractionResponse.h" #import "SDLRPCNotificationNotification.h" #import "SDLSetGlobalProperties.h" +#import "SDLVersion.h" NS_ASSUME_NONNULL_BEGIN @@ -28,10 +31,18 @@ @interface SDLChoiceCell() @property (assign, nonatomic) UInt16 choiceId; +@end + +@interface SDLChoiceSet() + +@property (copy, nonatomic) SDLChoiceSetCanceledHandler canceledHandler; + + @end @interface SDLPresentChoiceSetOperation() +@property (strong, nonatomic) NSUUID *operationId; @property (weak, nonatomic) id connectionManager; @property (strong, nonatomic, readwrite) SDLChoiceSet *choiceSet; @property (strong, nonatomic) SDLInteractionMode presentationMode; @@ -42,6 +53,7 @@ @interface SDLPresentChoiceSetOperation() @property (strong, nonatomic, readonly) SDLPerformInteraction *performInteraction; @property (strong, nonatomic, readonly) SDLLayoutMode layoutMode; @property (strong, nonatomic, readonly) NSArray *> *choiceIds; +@property (assign, nonatomic) UInt16 cancelId; @property (assign, nonatomic) BOOL updatedKeyboardProperties; @property (copy, nonatomic, nullable) NSError *internalError; @@ -53,17 +65,25 @@ @interface SDLPresentChoiceSetOperation() @implementation SDLPresentChoiceSetOperation -- (instancetype)initWithConnectionManager:(id)connectionManager choiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode keyboardProperties:(nullable SDLKeyboardProperties *)originalKeyboardProperties keyboardDelegate:(nullable id)keyboardDelegate { +- (instancetype)initWithConnectionManager:(id)connectionManager choiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode keyboardProperties:(nullable SDLKeyboardProperties *)originalKeyboardProperties keyboardDelegate:(nullable id)keyboardDelegate cancelID:(UInt16)cancelID { self = [super init]; if (!self) { return self; } _connectionManager = connectionManager; _choiceSet = choiceSet; + + __weak typeof(self) weakSelf = self; + self.choiceSet.canceledHandler = ^{ + [weakSelf sdl_cancelInteraction]; + }; + _presentationMode = mode; + _operationId = [NSUUID UUID]; _originalKeyboardProperties = originalKeyboardProperties; _keyboardProperties = originalKeyboardProperties; _keyboardDelegate = keyboardDelegate; + _cancelId = cancelID; _selectedCellRow = NSNotFound; @@ -72,6 +92,7 @@ - (instancetype)initWithConnectionManager:(id)connecti - (void)start { [super start]; + if (self.isCancelled) { return; } [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_keyboardInputNotification:) name:SDLDidReceiveKeyboardInputNotification object:nil]; @@ -155,6 +176,41 @@ - (void)sdl_setSelectedCellWithId:(NSNumber *)cellId { }]; } +/** + * Cancels the choice set. If the choice set has not yet been sent to Core, it will not be sent. If the choice set is already presented on Core, the choice set will be immediately dismissed. Canceling an already presented choice set will only work if connected to Core versions 6.0+. On older versions of Core, the choice set will not be dismissed. + */ +- (void)sdl_cancelInteraction { + if (self.isFinished) { + SDLLogW(@"This operation has already finished so it can not be canceled."); + return; + } else if (self.isCancelled) { + SDLLogW(@"This operation has already been canceled. It will be finished at some point during the operation."); + return; + } else if (self.isExecuting) { + if ([SDLGlobals.sharedGlobals.rpcVersion isLessThanVersion:[[SDLVersion alloc] initWithMajor:6 minor:0 patch:0]]) { + SDLLogE(@"Canceling a choice set is not supported on this head unit"); + return; + } + + SDLLogD(@"Canceling the presented choice set interaction"); + + SDLCancelInteraction *cancelInteraction = [[SDLCancelInteraction alloc] initWithPerformInteractionCancelID:self.cancelId]; + + __weak typeof(self) weakSelf = self; + [self.connectionManager sendConnectionRequest:cancelInteraction withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + if (error != nil) { + weakSelf.internalError = error; + SDLLogE(@"Error canceling the presented choice set: %@, with error: %@", request, error); + return; + } + SDLLogD(@"The presented choice set was canceled successfully"); + }]; + } else { + SDLLogD(@"Canceling a choice set that has not yet been sent to Core"); + [self cancel]; + } +} + #pragma mark - Getters - (SDLPerformInteraction *)performInteraction { @@ -168,6 +224,7 @@ - (SDLPerformInteraction *)performInteraction { performInteraction.timeout = @((NSUInteger)(self.choiceSet.timeout * 1000)); performInteraction.interactionLayout = self.layoutMode; performInteraction.interactionChoiceSetIDList = self.choiceIds; + performInteraction.cancelID = @(self.cancelId); return performInteraction; } @@ -211,11 +268,27 @@ - (void)sdl_keyboardInputNotification:(SDLRPCNotificationNotification *)notifica [self.keyboardDelegate userDidSubmitInput:onKeyboard.data withEvent:onKeyboard.event]; } else if ([onKeyboard.event isEqualToEnum:SDLKeyboardEventKeypress]) { // Notify of keypress - if ([self.keyboardDelegate respondsToSelector:@selector(updateAutocompleteWithInput:completionHandler:)]) { - [self.keyboardDelegate updateAutocompleteWithInput:onKeyboard.data completionHandler:^(NSString *updatedAutocompleteText) { + if ([self.keyboardDelegate respondsToSelector:@selector(updateAutocompleteWithInput:autoCompleteResultsHandler:)]) { + [self.keyboardDelegate updateAutocompleteWithInput:onKeyboard.data autoCompleteResultsHandler:^(NSArray * _Nullable updatedAutoCompleteList) { + NSArray *newList = nil; + if (updatedAutoCompleteList.count > 100) { + newList = [updatedAutoCompleteList subarrayWithRange:NSMakeRange(0, 100)]; + } else { + newList = updatedAutoCompleteList; + } + + weakself.keyboardProperties.autoCompleteList = (newList.count > 0) ? newList : @[]; + weakself.keyboardProperties.autoCompleteText = (newList.count > 0) ? newList.firstObject : nil; + [weakself sdl_updateKeyboardPropertiesWithCompletionHandler:nil]; + }]; + } else if ([self.keyboardDelegate respondsToSelector:@selector(updateAutocompleteWithInput:completionHandler:)]) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + [self.keyboardDelegate updateAutocompleteWithInput:onKeyboard.data completionHandler:^(NSString * _Nullable updatedAutocompleteText) { weakself.keyboardProperties.autoCompleteText = updatedAutocompleteText; [weakself sdl_updateKeyboardPropertiesWithCompletionHandler:nil]; }]; +#pragma clang diagnostic pop } if ([self.keyboardDelegate respondsToSelector:@selector(updateCharacterSetWithInput:completionHandler:)]) { @@ -254,7 +327,7 @@ - (void)finishOperation { } - (nullable NSString *)name { - return @"com.sdl.choicesetmanager.presentChoiceSet"; + return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; } - (NSOperationQueuePriority)queuePriority { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.h index 754260a..9a5a6cf 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.h @@ -7,6 +7,7 @@ // #import "SDLAsynchronousOperation.h" +#import "NSNumber+NumberType.h" @class SDLKeyboardProperties; @@ -17,7 +18,29 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLPresentKeyboardOperation : SDLAsynchronousOperation -- (instancetype)initWithConnectionManager:(id)connectionManager keyboardProperties:(SDLKeyboardProperties *)originalKeyboardProperties initialText:(NSString *)initialText keyboardDelegate:(id)keyboardDelegate; +/** + A unique ID that can be used to cancel this keyboard. + */ +@property (assign, nonatomic, readonly) UInt16 cancelId; + +/** + An operation to present a keyboard. + + @param connectionManager The connection manager + @param originalKeyboardProperties The keyboard configuration + @param initialText The initial text within the keyboard input field. It will disappear once the user selects the field in order to enter text + @param keyboardDelegate The keyboard delegate called when the user interacts with the keyboard + @param cancelID An ID for this specific keyboard to allow cancellation through the `CancelInteraction` RPC. + @return A SDLPresentKeyboardOperation object + */ +- (instancetype)initWithConnectionManager:(id)connectionManager keyboardProperties:(SDLKeyboardProperties *)originalKeyboardProperties initialText:(NSString *)initialText keyboardDelegate:(id)keyboardDelegate cancelID:(UInt16)cancelID; + +/** + Cancels the keyboard-only interface if it is currently showing. If the keyboard has not yet been sent to Core, it will not be sent. + + This will only dismiss an already presented keyboard if connected to head units running SDL 6.0+. + */ +- (void)dismissKeyboard; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.m index b81284e..27d865e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.m @@ -8,7 +8,9 @@ #import "SDLPresentKeyboardOperation.h" +#import "SDLCancelInteraction.h" #import "SDLConnectionManagerType.h" +#import "SDLGlobals.h" #import "SDLKeyboardDelegate.h" #import "SDLKeyboardProperties.h" #import "SDLLogMacros.h" @@ -18,16 +20,19 @@ #import "SDLPerformInteractionResponse.h" #import "SDLRPCNotificationNotification.h" #import "SDLSetGlobalProperties.h" +#import "SDLVersion.h" NS_ASSUME_NONNULL_BEGIN @interface SDLPresentKeyboardOperation() +@property (strong, nonatomic) NSUUID *operationId; @property (weak, nonatomic) id connectionManager; @property (weak, nonatomic) id keyboardDelegate; @property (copy, nonatomic) NSString *initialText; @property (strong, nonatomic) SDLKeyboardProperties *originalKeyboardProperties; @property (strong, nonatomic) SDLKeyboardProperties *keyboardProperties; +@property (assign, nonatomic, readwrite) UInt16 cancelId; @property (strong, nonatomic, readonly) SDLPerformInteraction *performInteraction; @@ -37,7 +42,7 @@ @interface SDLPresentKeyboardOperation() @implementation SDLPresentKeyboardOperation -- (instancetype)initWithConnectionManager:(id)connectionManager keyboardProperties:(SDLKeyboardProperties *)originalKeyboardProperties initialText:(NSString *)initialText keyboardDelegate:(id)keyboardDelegate { +- (instancetype)initWithConnectionManager:(id)connectionManager keyboardProperties:(SDLKeyboardProperties *)originalKeyboardProperties initialText:(NSString *)initialText keyboardDelegate:(id)keyboardDelegate cancelID:(UInt16)cancelID { self = [super init]; if (!self) { return self; } @@ -46,12 +51,15 @@ - (instancetype)initWithConnectionManager:(id)connecti _keyboardDelegate = keyboardDelegate; _originalKeyboardProperties = originalKeyboardProperties; _keyboardProperties = originalKeyboardProperties; + _cancelId = cancelID; + _operationId = [NSUUID UUID]; return self; } - (void)start { [super start]; + if (self.isCancelled) { return; } [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_keyboardInputNotification:) name:SDLDidReceiveKeyboardInputNotification object:nil]; @@ -108,6 +116,38 @@ - (void)sdl_presentKeyboard { }]; } +- (void)dismissKeyboard { + if (self.isFinished) { + SDLLogW(@"This operation has already finished so it can not be canceled."); + return; + } else if (self.isCancelled) { + SDLLogW(@"This operation has already been canceled. It will be finished at some point during the operation."); + return; + } else if (self.isExecuting) { + if ([SDLGlobals.sharedGlobals.rpcVersion isLessThanVersion:[[SDLVersion alloc] initWithMajor:6 minor:0 patch:0]]) { + SDLLogE(@"Canceling a keyboard is not supported on this head unit"); + return; + } + + SDLLogD(@"Canceling the presented keyboard"); + + SDLCancelInteraction *cancelInteraction = [[SDLCancelInteraction alloc] initWithPerformInteractionCancelID:self.cancelId]; + + __weak typeof(self) weakSelf = self; + [self.connectionManager sendConnectionRequest:cancelInteraction withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + if (error != nil) { + weakSelf.internalError = error; + SDLLogE(@"Error canceling the keyboard: %@, with error: %@", request, error); + return; + } + SDLLogD(@"The presented keyboard was canceled successfully"); + }]; + } else { + SDLLogD(@"Canceling a keyboard that has not yet been sent to Core"); + [self cancel]; + } +} + #pragma mark - Private Getters / Setters - (SDLPerformInteraction *)performInteraction { @@ -116,6 +156,7 @@ - (SDLPerformInteraction *)performInteraction { performInteraction.interactionMode = SDLInteractionModeManualOnly; performInteraction.interactionChoiceSetIDList = @[]; performInteraction.interactionLayout = SDLLayoutModeKeyboard; + performInteraction.cancelID = @(self.cancelId); return performInteraction; } @@ -141,11 +182,27 @@ - (void)sdl_keyboardInputNotification:(SDLRPCNotificationNotification *)notifica [self.keyboardDelegate userDidSubmitInput:onKeyboard.data withEvent:onKeyboard.event]; } else if ([onKeyboard.event isEqualToEnum:SDLKeyboardEventKeypress]) { // Notify of keypress - if ([self.keyboardDelegate respondsToSelector:@selector(updateAutocompleteWithInput:completionHandler:)]) { - [self.keyboardDelegate updateAutocompleteWithInput:onKeyboard.data completionHandler:^(NSString *updatedAutocompleteText) { + if ([self.keyboardDelegate respondsToSelector:@selector(updateAutocompleteWithInput:autoCompleteResultsHandler:)]) { + [self.keyboardDelegate updateAutocompleteWithInput:onKeyboard.data autoCompleteResultsHandler:^(NSArray * _Nullable updatedAutoCompleteList) { + NSArray *newList = nil; + if (updatedAutoCompleteList.count > 100) { + newList = [updatedAutoCompleteList subarrayWithRange:NSMakeRange(0, 100)]; + } else { + newList = updatedAutoCompleteList; + } + + weakself.keyboardProperties.autoCompleteList = (newList.count > 0) ? newList : @[]; + weakself.keyboardProperties.autoCompleteText = (newList.count > 0) ? newList.firstObject : nil; + [weakself sdl_updateKeyboardPropertiesWithCompletionHandler:nil]; + }]; + } else if ([self.keyboardDelegate respondsToSelector:@selector(updateAutocompleteWithInput:completionHandler:)]) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + [self.keyboardDelegate updateAutocompleteWithInput:onKeyboard.data completionHandler:^(NSString * _Nullable updatedAutocompleteText) { weakself.keyboardProperties.autoCompleteText = updatedAutocompleteText; [weakself sdl_updateKeyboardPropertiesWithCompletionHandler:nil]; }]; +#pragma clang diagnostic pop } if ([self.keyboardDelegate respondsToSelector:@selector(updateCharacterSetWithInput:completionHandler:)]) { @@ -163,7 +220,7 @@ - (void)sdl_keyboardInputNotification:(SDLRPCNotificationNotification *)notifica #pragma mark - Property Overrides - (nullable NSString *)name { - return @"com.sdl.choicesetmanager.presentKeyboard"; + return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; } - (NSOperationQueuePriority)queuePriority { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresetBankCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresetBankCapabilities.m index 2fe43d7..218a462 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresetBankCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresetBankCapabilities.m @@ -5,18 +5,19 @@ #import "SDLPresetBankCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLPresetBankCapabilities - (void)setOnScreenPresetsAvailable:(NSNumber *)onScreenPresetsAvailable { - [store sdl_setObject:onScreenPresetsAvailable forName:SDLNameOnScreenPresetsAvailable]; + [self.store sdl_setObject:onScreenPresetsAvailable forName:SDLRPCParameterNameOnScreenPresetsAvailable]; } - (NSNumber *)onScreenPresetsAvailable { - return [store sdl_objectForName:SDLNameOnScreenPresetsAvailable]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameOnScreenPresetsAvailable ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.h index e4d0e44..a9a21f6 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.h @@ -5,10 +5,11 @@ #import "SDLTransportType.h" #import "SDLProtocolConstants.h" -#import "SDLProtocolListener.h" +#import "SDLProtocolDelegate.h" #import "SDLSecurityType.h" #import "SDLTransportDelegate.h" +@class SDLEncryptionLifecycleManager; @class SDLProtocolHeader; @class SDLProtocolRecievedMessageRouter; @class SDLRPCMessage; @@ -27,7 +28,7 @@ typedef NS_ENUM(NSUInteger, SDLProtocolError) { extern NSString *const SDLProtocolSecurityErrorDomain; -@interface SDLProtocol : NSObject +@interface SDLProtocol : NSObject /** * Deprecated debug logging tool. @@ -37,25 +38,54 @@ extern NSString *const SDLProtocolSecurityErrorDomain; /** * The transport layer for sending data between the app and Core */ -@property (nullable, weak, nonatomic) id transport; +@property (nullable, strong, nonatomic) id transport; /** * A table for tracking all subscribers * * If you update protocolDelegateTable while the protocol is running, please make sure to guard with @synchronized. */ -@property (nullable, strong, nonatomic) NSHashTable> *protocolDelegateTable; +@property (nullable, strong, nonatomic) NSHashTable> *protocolDelegateTable; /** * A security manager for sending encrypted data. */ @property (nullable, nonatomic, strong) id securityManager; +/// The encryption manager for sending encrypted data +@property (nullable, nonatomic, weak) SDLEncryptionLifecycleManager *encryptionLifecycleManager; + /** * The app's id */ @property (nonatomic, copy) NSString *appId; +/** + * The auth token, if any, returned with the `StartServiceACK` for the RPC service from the module. + */ +@property (strong, nonatomic, readonly, nullable) NSString *authToken; + +#pragma mark - Init +- (instancetype)init NS_UNAVAILABLE; + +/** + * Initialize the protocol with an encryption lifecycle manager + * + * @param transport The transport to send and receive data from + * @param encryptionManager An encryption lifecycle manager + * + * @return An instance of SDLProtocol + */ +- (instancetype)initWithTransport:(id)transport encryptionManager:(nullable SDLEncryptionLifecycleManager *)encryptionManager; + +#pragma mark - Lifecycle + +/// Starts the connected transport +- (void)start; + +/// Stops the connected transport +- (void)stopWithCompletionHandler:(void (^)(void))disconnectCompletionHandler; + #pragma mark - Sending /** @@ -82,9 +112,9 @@ extern NSString *const SDLProtocolSecurityErrorDomain; * * @param serviceType A SDLServiceType object * @param payload The data to send in the message - * @param completionHandler The handler is called when the secure service is started. If a secure service can not be started, an error message is also returned + * @param tlsInitializationHandler Handler called when the app is authenticated via TLS handshake and a secure service has started. If a secure service can not be started an error message is returned. */ -- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload completionHandler:(void (^)(BOOL success, NSError *error))completionHandler; +- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload tlsInitializationHandler:(void (^)(BOOL success, NSError *error))tlsInitializationHandler; /** * Sends an end service message to Core @@ -105,16 +135,6 @@ extern NSString *const SDLProtocolSecurityErrorDomain; */ - (void)sendRPC:(SDLRPCMessage *)message; -/** - * Sends an RPC to Core - * - * @param message A SDLRPCMessage message - * @param encryption Whether or not the message should be encrypted - * @param error A pointer to a NSError object - * @return YES if the message was created successfully, NO if not - */ -- (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSError **)error; - /** * Sends an unencrypted message to Core * @@ -131,15 +151,6 @@ extern NSString *const SDLProtocolSecurityErrorDomain; */ - (void)sendEncryptedRawData:(NSData *)data onService:(SDLServiceType)serviceType; -#pragma mark - Recieving - -/** - * Turns received bytes into message objects. - * - * @param receivedData The data received from Core - */ -- (void)handleBytesFromTransport:(NSData *)receivedData; - @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.m index ab6eb64..31b5e4c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.m @@ -11,6 +11,7 @@ #import "SDLControlFramePayloadRegisterSecondaryTransportNak.h" #import "SDLControlFramePayloadRPCStartService.h" #import "SDLControlFramePayloadRPCStartServiceAck.h" +#import "SDLEncryptionLifecycleManager.h" #import "SDLLogMacros.h" #import "SDLGlobals.h" #import "SDLPrioritizedObjectCollection.h" @@ -25,6 +26,7 @@ #import "SDLRPCResponse.h" #import "SDLSecurityType.h" #import "SDLTimer.h" +#import "SDLVersion.h" #import "SDLV2ProtocolHeader.h" NSString *const SDLProtocolSecurityErrorDomain = @"com.sdl.protocol.security"; @@ -38,8 +40,6 @@ @interface SDLProtocol () { UInt32 _messageID; - dispatch_queue_t _receiveQueue; - dispatch_queue_t _sendQueue; SDLPrioritizedObjectCollection *_prioritizedCollection; } @@ -48,6 +48,9 @@ @interface SDLProtocol () { @property (strong, nonatomic) NSMutableDictionary *serviceHeaders; @property (assign, nonatomic) int32_t hashId; +// Readonly public properties +@property (strong, nonatomic, readwrite, nullable) NSString *authToken; + @end @@ -57,22 +60,39 @@ @implementation SDLProtocol #pragma mark - Lifecycle -- (instancetype)init { - if (self = [super init]) { - _messageID = 0; - _hashId = SDLControlFrameInt32NotFound; - _receiveQueue = dispatch_queue_create("com.sdl.protocol.receive", DISPATCH_QUEUE_SERIAL); - _sendQueue = dispatch_queue_create("com.sdl.protocol.transmit", DISPATCH_QUEUE_SERIAL); - _prioritizedCollection = [[SDLPrioritizedObjectCollection alloc] init]; - _protocolDelegateTable = [NSHashTable weakObjectsHashTable]; - _serviceHeaders = [[NSMutableDictionary alloc] init]; - _messageRouter = [[SDLProtocolReceivedMessageRouter alloc] init]; - _messageRouter.delegate = self; - } +- (instancetype)initWithTransport:(id)transport encryptionManager:(nullable SDLEncryptionLifecycleManager *)encryptionManager { + self = [super init]; + if (!self) { return nil; } + + SDLLogV(@"Initializing protocol with transport: %@, encryption manager: %@", transport, encryptionManager); + _messageID = 0; + _hashId = SDLControlFrameInt32NotFound; + _prioritizedCollection = [[SDLPrioritizedObjectCollection alloc] init]; + _protocolDelegateTable = [NSHashTable weakObjectsHashTable]; + _serviceHeaders = [[NSMutableDictionary alloc] init]; + _messageRouter = [[SDLProtocolReceivedMessageRouter alloc] init]; + _messageRouter.delegate = self; + + _transport = transport; + _transport.delegate = self; + _encryptionLifecycleManager = encryptionManager; + return self; } +- (void)start { + SDLLogD(@"Starting protocol: %@", self); + [self.transport connect]; +} + +- (void)stopWithCompletionHandler:(void (^)(void))disconnectCompletionHandler { + SDLLogD(@"Stopping protocol: %@, disconnecting transport and stopping security manager", self); + [self.securityManager stop]; + [self.transport disconnectWithCompletionHandler:^{ + disconnectCompletionHandler(); + }]; +} #pragma mark - Service metadata - (BOOL)storeHeader:(SDLProtocolHeader *)header forServiceType:(SDLServiceType)serviceType { @@ -88,7 +108,12 @@ - (BOOL)storeHeader:(SDLProtocolHeader *)header forServiceType:(SDLServiceType)s - (UInt8)sdl_retrieveSessionIDforServiceType:(SDLServiceType)serviceType { SDLProtocolHeader *header = self.serviceHeaders[@(serviceType)]; if (header == nil) { - SDLLogW(@"Warning: Tried to retrieve sessionID for serviceType %i, but no header is saved for that service type", serviceType); + // The first time the RPC service type is created, there's no header, so we don't need to warn. + if (serviceType != SDLServiceTypeRPC) { + SDLLogW(@"Warning: Tried to retrieve sessionID for serviceType %i, but no header is saved for that service type.", serviceType); + } + + return 0; } return header.sessionID; @@ -97,11 +122,12 @@ - (UInt8)sdl_retrieveSessionIDforServiceType:(SDLServiceType)serviceType { #pragma mark - SDLTransportDelegate - (void)onTransportConnected { - NSArray> *listeners; + SDLLogV(@"Transport connected, opening protocol"); + NSArray> *listeners; @synchronized(self.protocolDelegateTable) { listeners = self.protocolDelegateTable.allObjects; } - for (id listener in listeners) { + for (id listener in listeners) { if ([listener respondsToSelector:@selector(onProtocolOpened)]) { [listener onProtocolOpened]; } @@ -109,11 +135,12 @@ - (void)onTransportConnected { } - (void)onTransportDisconnected { - NSArray> *listeners; + SDLLogV(@"Transport disconnected, closing protocol"); + NSArray> *listeners; @synchronized(self.protocolDelegateTable) { listeners = self.protocolDelegateTable.allObjects; } - for (id listener in listeners) { + for (id listener in listeners) { if ([listener respondsToSelector:@selector(onProtocolClosed)]) { [listener onProtocolClosed]; } @@ -121,11 +148,12 @@ - (void)onTransportDisconnected { } - (void)onDataReceived:(NSData *)receivedData { - [self handleBytesFromTransport:receivedData]; + [self sdl_handleBytesFromTransport:receivedData]; } - (void)onError:(NSError *)error { - for (id listener in self.protocolDelegateTable.allObjects) { + SDLLogV(@"Transport received an error: %@", error); + for (id listener in self.protocolDelegateTable.allObjects) { if ([listener respondsToSelector:@selector(onTransportError:)]) { [listener onTransportError:error]; } @@ -137,44 +165,31 @@ - (void)onError:(NSError *)error { - (void)startServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload { // No encryption, just build and send the message synchronously SDLProtocolMessage *message = [self sdl_createStartServiceMessageWithType:serviceType encrypted:NO payload:payload]; + SDLLogD(@"Sending start service: %@", message); [self sdl_sendDataToTransport:message.data onService:serviceType]; } -- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload completionHandler:(void (^)(BOOL success, NSError *error))completionHandler { +- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload tlsInitializationHandler:(void (^)(BOOL success, NSError *error))tlsInitializationHandler { + SDLLogD(@"Attempting to start TLS for service type: %hhu", serviceType); [self sdl_initializeTLSEncryptionWithCompletionHandler:^(BOOL success, NSError *error) { if (!success) { // We can't start the service because we don't have encryption, return the error - completionHandler(success, error); + tlsInitializationHandler(success, error); BLOCK_RETURN; } // TLS initialization succeeded. Build and send the message. SDLProtocolMessage *message = [self sdl_createStartServiceMessageWithType:serviceType encrypted:YES payload:nil]; + SDLLogD(@"TLS initialized, sending start service for message: %@", message); [self sdl_sendDataToTransport:message.data onService:serviceType]; }]; } - (SDLProtocolMessage *)sdl_createStartServiceMessageWithType:(SDLServiceType)serviceType encrypted:(BOOL)encryption payload:(nullable NSData *)payload { - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].majorProtocolVersion]; + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; NSData *servicePayload = payload; - switch (serviceType) { - case SDLServiceTypeRPC: { - // Need a different header for starting the RPC service, we get the session Id from the HU, or its the same as the RPC service's - header = [SDLProtocolHeader headerForVersion:1]; - if ([self sdl_retrieveSessionIDforServiceType:SDLServiceTypeRPC]) { - header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeRPC]; - } else { - header.sessionID = 0; - } - - SDLControlFramePayloadRPCStartService *startServicePayload = [[SDLControlFramePayloadRPCStartService alloc] initWithVersion:SDLMaxProxyProtocolVersion]; - servicePayload = startServicePayload.data; - } break; - default: { - header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeRPC]; - } break; - } + header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeRPC]; header.frameType = SDLFrameTypeControl; header.serviceType = serviceType; header.frameData = SDLFrameInfoStartService; @@ -196,6 +211,7 @@ - (void)sdl_initializeTLSEncryptionWithCompletionHandler:(void (^)(BOOL success, return; } + SDLLogD(@"Telling security manager to initialize"); [self.securityManager initializeWithAppId:self.appId completionHandler:^(NSError *_Nullable error) { if (error) { SDLLogE(@"Security Manager failed to initialize with error: %@", error); @@ -215,7 +231,7 @@ - (void)sdl_initializeTLSEncryptionWithCompletionHandler:(void (^)(BOOL success, #pragma mark - End Service - (void)endServiceWithType:(SDLServiceType)serviceType { - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].majorProtocolVersion]; + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; header.frameType = SDLFrameTypeControl; header.serviceType = serviceType; header.frameData = SDLFrameInfoEndService; @@ -224,7 +240,7 @@ - (void)endServiceWithType:(SDLServiceType)serviceType { // Assemble the payload, it's a full control frame if we're on 5.0+, it's just the hash id if we are not NSData *payload = nil; if (self.hashId != SDLControlFrameInt32NotFound) { - if([SDLGlobals sharedGlobals].majorProtocolVersion > 4) { + if([SDLGlobals sharedGlobals].protocolVersion.major > 4) { SDLControlFramePayloadEndService *endServicePayload = [[SDLControlFramePayloadEndService alloc] initWithHashId:self.hashId]; payload = endServicePayload.data; } else { @@ -233,6 +249,7 @@ - (void)endServiceWithType:(SDLServiceType)serviceType { } SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:payload]; + SDLLogD(@"Sending end service: %@", message); [self sdl_sendDataToTransport:message.data onService:serviceType]; } @@ -240,16 +257,19 @@ - (void)endServiceWithType:(SDLServiceType)serviceType { #pragma mark - Register Secondary Transport - (void)registerSecondaryTransport { - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].majorProtocolVersion]; + SDLLogV(@"Attempting to register the secondary transport"); + + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; header.frameType = SDLFrameTypeControl; header.serviceType = SDLServiceTypeControl; header.frameData = SDLFrameInfoRegisterSecondaryTransport; header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeControl]; - if ([SDLGlobals sharedGlobals].majorProtocolVersion >= 2) { + if ([SDLGlobals sharedGlobals].protocolVersion.major >= 2) { [((SDLV2ProtocolHeader *)header) setMessageID:++_messageID]; } SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:nil]; + SDLLogD(@"Sending register secondary transport: %@", message); [self sdl_sendDataToTransport:message.data onService:SDLServiceTypeControl]; } @@ -257,23 +277,32 @@ - (void)registerSecondaryTransport { #pragma mark - Send Data - (void)sendRPC:(SDLRPCMessage *)message { - [self sendRPC:message encrypted:NO error:nil]; + if (!message.isPayloadProtected && [self.encryptionLifecycleManager rpcRequiresEncryption:message]) { + message.payloadProtected = YES; + } + + if (message.isPayloadProtected && !self.encryptionLifecycleManager.isEncryptionReady) { + SDLLogW(@"Encryption Manager not ready, request not sent (%@)", message); + return; + } + + [self sendRPC:message encrypted:message.isPayloadProtected error:nil]; } - (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSError *__autoreleasing *)error { NSParameterAssert(message != nil); - NSData *jsonData = [NSJSONSerialization dataWithJSONObject:[message serializeAsDictionary:(Byte)[SDLGlobals sharedGlobals].majorProtocolVersion] options:kNilOptions error:error]; - + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:[message serializeAsDictionary:(Byte)[SDLGlobals sharedGlobals].protocolVersion.major] options:kNilOptions error:error]; + if (error != nil) { SDLLogW(@"Error encoding JSON data: %@", *error); } NSData *messagePayload = nil; - SDLLogV(@"Send RPC %@", message); + SDLLogV(@"Sending RPC: %@", message); // Build the message payload. Include the binary header if necessary // VERSION DEPENDENT CODE - switch ([SDLGlobals sharedGlobals].majorProtocolVersion) { + switch ([SDLGlobals sharedGlobals].protocolVersion.major) { case 1: { // No binary header in version 1 messagePayload = jsonData; @@ -285,7 +314,7 @@ - (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSErr // Build a binary header // Serialize the RPC data into an NSData SDLRPCPayload *rpcPayload = [[SDLRPCPayload alloc] init]; - rpcPayload.functionID = [[[SDLFunctionID sharedInstance] functionIdForName:[message getFunctionName]] unsignedIntValue]; + rpcPayload.functionID = [[[SDLFunctionID sharedInstance] functionIdForName:message.name] unsignedIntValue]; rpcPayload.jsonData = jsonData; rpcPayload.binaryData = message.bulkData; @@ -305,18 +334,30 @@ - (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSErr // If we're trying to encrypt, try to have the security manager encrypt it. Return if it fails. // TODO: (Joel F.)[2016-02-09] We should assert if the service isn't setup for encryption. See [#350](https://github.com/smartdevicelink/sdl_ios/issues/350) - messagePayload = encryption ? [self.securityManager encryptData:rpcPayload.data withError:error] : rpcPayload.data; + if (encryption) { + NSError *encryptError = nil; + + messagePayload = [self.securityManager encryptData:rpcPayload.data withError:&encryptError]; + + if (encryptError) { + SDLLogE(@"Error encrypting request! %@", encryptError); + } + } else { + messagePayload = rpcPayload.data; + } + if (!messagePayload) { return NO; } + } break; default: { - NSAssert(NO, @"Attempting to send an RPC based on an unknown version number: %@, message: %@", @([SDLGlobals sharedGlobals].majorProtocolVersion), message); + NSAssert(NO, @"Attempting to send an RPC based on an unknown version number: %@, message: %@", @([SDLGlobals sharedGlobals].protocolVersion.major), message); } break; } // Build the protocol level header & message - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].majorProtocolVersion]; + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; header.encrypted = encryption; header.frameType = SDLFrameTypeSingle; header.serviceType = (message.bulkData.length <= 0) ? SDLServiceTypeRPC : SDLServiceTypeBulkData; @@ -324,7 +365,7 @@ - (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSErr header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeRPC]; // V2+ messages need to have message ID property set. - if ([SDLGlobals sharedGlobals].majorProtocolVersion >= 2) { + if ([SDLGlobals sharedGlobals].protocolVersion.major >= 2) { [((SDLV2ProtocolHeader *)header) setMessageID:++_messageID]; } @@ -349,13 +390,10 @@ - (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSErr - (void)sdl_sendDataToTransport:(NSData *)data onService:(NSInteger)priority { [_prioritizedCollection addObject:data withPriority:priority]; - // TODO: (Joel F.)[2016-02-11] Autoreleasepool? - dispatch_async(_sendQueue, ^{ - NSData *dataToTransmit = nil; - while (dataToTransmit = (NSData *)[self->_prioritizedCollection nextObject]) { - [self.transport sendData:dataToTransmit]; - }; - }); + NSData *dataToTransmit = nil; + while (dataToTransmit = (NSData *)[self->_prioritizedCollection nextObject]) { + [self.transport sendData:dataToTransmit]; + } } - (void)sendRawData:(NSData *)data withServiceType:(SDLServiceType)serviceType { @@ -367,7 +405,7 @@ - (void)sendEncryptedRawData:(NSData *)data onService:(SDLServiceType)serviceTyp } - (void)sdl_sendRawData:(NSData *)data onService:(SDLServiceType)service encryption:(BOOL)encryption { - SDLV2ProtocolHeader *header = [[SDLV2ProtocolHeader alloc] initWithVersion:(UInt8)[SDLGlobals sharedGlobals].majorProtocolVersion]; + SDLV2ProtocolHeader *header = [[SDLV2ProtocolHeader alloc] initWithVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; header.encrypted = encryption; header.frameType = SDLFrameTypeSingle; header.serviceType = service; @@ -385,7 +423,7 @@ - (void)sdl_sendRawData:(NSData *)data onService:(SDLServiceType)service encrypt SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:data]; - if (message.size < [[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]) { + if (message.size < [[SDLGlobals sharedGlobals] mtuSizeForServiceType:service]) { SDLLogV(@"Sending protocol message: %@", message); [self sdl_sendDataToTransport:message.data onService:header.serviceType]; } else { @@ -401,7 +439,7 @@ - (void)sdl_sendRawData:(NSData *)data onService:(SDLServiceType)service encrypt #pragma mark - Receive and Process Data // Turn received bytes into message objects. -- (void)handleBytesFromTransport:(NSData *)receivedData { +- (void)sdl_handleBytesFromTransport:(NSData *)receivedData { // Initialize the receive buffer which will contain bytes while messages are constructed. if (self.receiveBuffer == nil) { self.receiveBuffer = [NSMutableData dataWithCapacity:(4 * [[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC])]; @@ -410,10 +448,10 @@ - (void)handleBytesFromTransport:(NSData *)receivedData { // Save the data [self.receiveBuffer appendData:receivedData]; - [self processMessages]; + [self sdl_processMessages]; } -- (void)processMessages { +- (void)sdl_processMessages { UInt8 incomingVersion = [SDLProtocolHeader determineVersion:self.receiveBuffer]; // If we have enough bytes, create the header. @@ -446,10 +484,9 @@ - (void)processMessages { } message = [SDLProtocolMessage messageWithHeader:header andPayload:payload]; - SDLLogV(@"Protocol message received: %@", message); } else { // Need to wait for more bytes. - SDLLogV(@" protocol header complete, message incomplete, waiting for %ld more bytes. Header: %@", (long)(messageSize - self.receiveBuffer.length), header); + SDLLogV(@"Protocol header complete, message incomplete, waiting for %ld more bytes. Header: %@", (long)(messageSize - self.receiveBuffer.length), header); return; } @@ -457,19 +494,21 @@ - (void)processMessages { self.receiveBuffer = [[self.receiveBuffer subdataWithRange:NSMakeRange(messageSize, self.receiveBuffer.length - messageSize)] mutableCopy]; // Pass on the message to the message router. - dispatch_async(_receiveQueue, ^{ - [self.messageRouter handleReceivedMessage:message]; - }); + [self.messageRouter handleReceivedMessage:message]; // Call recursively until the buffer is empty or incomplete message is encountered if (self.receiveBuffer.length > 0) { - [self processMessages]; + [self sdl_processMessages]; } } -// TODO: This is a v4 packet (create new delegate methods) + +#pragma mark - SDLProtocolDelegate from SDLReceivedProtocolMessageRouter + - (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { - // V5 Packet + SDLLogD(@"Received start service ACK: %@", startServiceACK); + + // V5+ Packet if (startServiceACK.header.version >= 5) { switch (startServiceACK.header.serviceType) { case SDLServiceTypeRPC: { @@ -481,17 +520,20 @@ - (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceA if (startServiceACKPayload.hashId != SDLControlFrameInt32NotFound) { self.hashId = startServiceACKPayload.hashId; } - [SDLGlobals sharedGlobals].maxHeadUnitVersion = (startServiceACKPayload.protocolVersion != nil) ? startServiceACKPayload.protocolVersion : [NSString stringWithFormat:@"%u.0.0", startServiceACK.header.version]; + + [SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion = (startServiceACKPayload.protocolVersion != nil) ? [SDLVersion versionWithString:startServiceACKPayload.protocolVersion] : [SDLVersion versionWithMajor:startServiceACK.header.version minor:0 patch:0]; + + self.authToken = [SDLGlobals.sharedGlobals.maxHeadUnitProtocolVersion isGreaterThanOrEqualToVersion:[[SDLVersion alloc] initWithMajor:5 minor:2 patch:0]] ? startServiceACKPayload.authToken : nil; + // TODO: Hash id? } break; default: break; } - } else { - // V4 and below packet + } else { // V4 and below packet switch (startServiceACK.header.serviceType) { case SDLServiceTypeRPC: { - [SDLGlobals sharedGlobals].maxHeadUnitVersion = [NSString stringWithFormat:@"%u.0.0", startServiceACK.header.version]; + [SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion = [SDLVersion versionWithMajor:startServiceACK.header.version minor:0 patch:0]; } break; default: break; @@ -502,8 +544,8 @@ - (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceA self.serviceHeaders[@(startServiceACK.header.serviceType)] = [startServiceACK.header copy]; // Pass along to all the listeners - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { + NSArray> *listeners = [self sdl_getProtocolListeners]; + for (id listener in listeners) { if ([listener respondsToSelector:@selector(handleProtocolStartServiceACKMessage:)]) { [listener handleProtocolStartServiceACKMessage:startServiceACK]; } @@ -513,8 +555,8 @@ - (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceA - (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceNAK { [self sdl_logControlNAKPayload:startServiceNAK]; - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { + NSArray> *listeners = [self sdl_getProtocolListeners]; + for (id listener in listeners) { if ([listener respondsToSelector:@selector(handleProtocolStartServiceNAKMessage:)]) { [listener handleProtocolStartServiceNAKMessage:startServiceNAK]; } @@ -522,11 +564,12 @@ - (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceN } - (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { + SDLLogD(@"End service ACK: %@", endServiceACK); // Remove the session id [self.serviceHeaders removeObjectForKey:@(endServiceACK.header.serviceType)]; - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { + NSArray> *listeners = [self sdl_getProtocolListeners]; + for (id listener in listeners) { if ([listener respondsToSelector:@selector(handleProtocolEndServiceACKMessage:)]) { [listener handleProtocolEndServiceACKMessage:endServiceACK]; } @@ -536,8 +579,8 @@ - (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { - (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { [self sdl_logControlNAKPayload:endServiceNAK]; - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { + NSArray> *listeners = [self sdl_getProtocolListeners]; + for (id listener in listeners) { if ([listener respondsToSelector:@selector(handleProtocolEndServiceNAKMessage:)]) { [listener handleProtocolEndServiceNAKMessage:endServiceNAK]; } @@ -545,8 +588,10 @@ - (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { } - (void)handleProtocolRegisterSecondaryTransportACKMessage:(SDLProtocolMessage *)registerSecondaryTransportACK { - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { + SDLLogD(@"Register Secondary Transport ACK: %@", registerSecondaryTransportACK); + + NSArray> *listeners = [self sdl_getProtocolListeners]; + for (id listener in listeners) { if ([listener respondsToSelector:@selector(handleProtocolRegisterSecondaryTransportACKMessage:)]) { [listener handleProtocolRegisterSecondaryTransportACKMessage:registerSecondaryTransportACK]; } @@ -556,8 +601,8 @@ - (void)handleProtocolRegisterSecondaryTransportACKMessage:(SDLProtocolMessage * - (void)handleProtocolRegisterSecondaryTransportNAKMessage:(SDLProtocolMessage *)registerSecondaryTransportNAK { [self sdl_logControlNAKPayload:registerSecondaryTransportNAK]; - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { + NSArray> *listeners = [self sdl_getProtocolListeners]; + for (id listener in listeners) { if ([listener respondsToSelector:@selector(handleProtocolRegisterSecondaryTransportNAKMessage:)]) { [listener handleProtocolRegisterSecondaryTransportNAKMessage:registerSecondaryTransportNAK]; } @@ -565,8 +610,10 @@ - (void)handleProtocolRegisterSecondaryTransportNAKMessage:(SDLProtocolMessage * } - (void)handleHeartbeatForSession:(Byte)session { + SDLLogV(@"Received a heartbeat"); + // Respond with a heartbeat ACK - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].majorProtocolVersion]; + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; header.frameType = SDLFrameTypeControl; header.serviceType = SDLServiceTypeControl; header.frameData = SDLFrameInfoHeartbeatACK; @@ -574,8 +621,8 @@ - (void)handleHeartbeatForSession:(Byte)session { SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:nil]; [self sdl_sendDataToTransport:message.data onService:header.serviceType]; - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { + NSArray> *listeners = [self sdl_getProtocolListeners]; + for (id listener in listeners) { if ([listener respondsToSelector:@selector(handleHeartbeatForSession:)]) { [listener handleHeartbeatForSession:session]; } @@ -583,8 +630,10 @@ - (void)handleHeartbeatForSession:(Byte)session { } - (void)handleHeartbeatACK { - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { + SDLLogV(@"Received a heartbeat ACK"); + + NSArray> *listeners = [self sdl_getProtocolListeners]; + for (id listener in listeners) { if ([listener respondsToSelector:@selector(handleHeartbeatACK)]) { [listener handleHeartbeatACK]; } @@ -592,8 +641,10 @@ - (void)handleHeartbeatACK { } - (void)handleTransportEventUpdateMessage:(SDLProtocolMessage *)transportEventUpdate { - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { + SDLLogD(@"Received a transport event update: %@", transportEventUpdate); + + NSArray> *listeners = [self sdl_getProtocolListeners]; + for (id listener in listeners) { if ([listener respondsToSelector:@selector(handleTransportEventUpdateMessage:)]) { [listener handleTransportEventUpdateMessage:transportEventUpdate]; } @@ -607,41 +658,16 @@ - (void)onProtocolMessageReceived:(SDLProtocolMessage *)msg { return; } - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { + SDLLogV(@"Other protocol message received: %@", msg); + + NSArray> *listeners = [self sdl_getProtocolListeners]; + for (id listener in listeners) { if ([listener respondsToSelector:@selector(onProtocolMessageReceived:)]) { [listener onProtocolMessageReceived:msg]; } } } -- (void)onProtocolOpened { - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(onProtocolOpened)]) { - [listener onProtocolOpened]; - } - } -} - -- (void)onProtocolClosed { - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(onProtocolClosed)]) { - [listener onProtocolClosed]; - } - } -} - -- (void)onError:(NSString *)info exception:(NSException *)e { - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(onError:exception:)]) { - [listener onError:info exception:e]; - } - } -} - - (void)sdl_logControlNAKPayload:(SDLProtocolMessage *)nakMessage { switch (nakMessage.header.frameData) { case SDLFrameInfoStartServiceNACK: // fallthrough @@ -649,21 +675,20 @@ - (void)sdl_logControlNAKPayload:(SDLProtocolMessage *)nakMessage { if (nakMessage.header.version >= 5) { SDLControlFramePayloadNak *endServiceNakPayload = [[SDLControlFramePayloadNak alloc] initWithData:nakMessage.payload]; NSArray *rejectedParams = endServiceNakPayload.rejectedParams; - if (rejectedParams.count > 0) { - SDLLogE(@"Start Service NAK'd, service type: %@, rejectedParams: %@", @(nakMessage.header.serviceType), rejectedParams); - } + SDLLogE(@"%@ service NAK'd, service type: %@, rejectedParams: %@", (nakMessage.header.frameData == SDLFrameInfoStartServiceNACK) ? @"Start" : @"End", @(nakMessage.header.serviceType), rejectedParams); + } else { + SDLLogE(@"NAK received message: %@", nakMessage); } } break; case SDLFrameInfoRegisterSecondaryTransportNACK: { SDLControlFramePayloadRegisterSecondaryTransportNak *payload = [[SDLControlFramePayloadRegisterSecondaryTransportNak alloc] initWithData:nakMessage.payload]; SDLLogE(@"Register Secondary Transport NAK'd, reason: %@", payload.reason); } break; - default: - break; + default: break; } } -- (NSArray> *)sdl_getProtocolListeners { +- (NSArray> *)sdl_getProtocolListeners { @synchronized(self.protocolDelegateTable) { return self.protocolDelegateTable.allObjects; } @@ -671,16 +696,19 @@ - (void)sdl_logControlNAKPayload:(SDLProtocolMessage *)nakMessage { #pragma mark - TLS Handshake + // TODO: These should be split out to a separate class to be tested properly - (void)sdl_processSecurityMessage:(SDLProtocolMessage *)clientHandshakeMessage { + SDLLogD(@"Received a security message: %@", clientHandshakeMessage); + if (self.securityManager == nil) { - SDLLogE(@"Failed to process security message because no security manager is set. Message: %@", clientHandshakeMessage); + SDLLogE(@"Failed to process security message because no security manager is set."); return; } // Misformatted handshake message, something went wrong if (clientHandshakeMessage.payload.length <= 12) { - SDLLogE(@"Security message is malformed, less than 12 bytes. It does not have a protocol header. Message: %@", clientHandshakeMessage); + SDLLogE(@"Security message is malformed, less than 12 bytes. It does not have a protocol header."); } // Tear off the binary header of the client protocol message to get at the actual TLS handshake @@ -703,6 +731,7 @@ - (void)sdl_processSecurityMessage:(SDLProtocolMessage *)clientHandshakeMessage } // Send the response or error message. If it's an error message, the module will ACK the Start Service without encryption. If it's a TLS handshake message, the module will ACK with encryption + SDLLogD(@"Sending security message: %@", serverSecurityMessage); [self sdl_sendDataToTransport:serverSecurityMessage.data onService:SDLServiceTypeControl]; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolConstants.h index 592605b..6da05c0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolConstants.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolConstants.h @@ -9,74 +9,90 @@ #import /** * The data packet's header and payload combination. - - - SDLFrameTypeControl: Lowest-level type of packets. They can be sent over any of the defined services. They are used for the control of the services in which they are sent. - - SDLFrameTypeSingle: Contains all the data for a particular packet in the payload. The majority of frames sent over the protocol utilize this frame type. - - SDLFrameTypeFirst: The First Frame in a multiple frame payload contains information about the entire sequence of frames so that the receiving end can correctly parse all the frames and reassemble the entire payload. The payload of this frame is only eight bytes and contains information regarding the rest of the sequence. - - SDLFrameTypeConsecutive: The Consecutive Frames in a multiple frame payload contain the actual raw data of the original payload. The parsed payload contained in each of the Consecutive Frames' payloads should be buffered until the entire sequence is complete. */ typedef NS_ENUM(UInt8, SDLFrameType) { + /// Lowest-level type of packets. They can be sent over any of the defined services. They are used for the control of the services in which they are sent. SDLFrameTypeControl = 0x00, + + /// Contains all the data for a particular packet in the payload. The majority of frames sent over the protocol utilize this frame type. SDLFrameTypeSingle = 0x01, + + /// The First Frame in a multiple frame payload contains information about the entire sequence of frames so that the receiving end can correctly parse all the frames and reassemble the entire payload. The payload of this frame is only eight bytes and contains information regarding the rest of the sequence. SDLFrameTypeFirst = 0x02, + + /// The Consecutive Frames in a multiple frame payload contain the actual raw data of the original payload. The parsed payload contained in each of the Consecutive Frames' payloads should be buffered until the entire sequence is complete. SDLFrameTypeConsecutive = 0x03 }; /** * The data packet's format and priority. - - - SDLServiceTypeControl: The lowest level service available. - - SDLServiceTypeRPC: Used to send requests, responses, and notifications between an application and a head unit. - - SDLServiceTypeAudio: The application can start the audio service to send PCM audio data to the head unit. After the StartService packet is sent and the ACK received, the payload for the Audio Service is only PCM audio data. - - SDLServiceTypeVideo: The application can start the video service to send H.264 video data to the head unit. After the StartService packet is sent and the ACK received, the payload for the Video Service is only H.264 video data. - - SDLServiceTypeBulkData: Similar to the RPC Service but adds a bulk data field. The payload of a message sent via the Hybrid service consists of a Binary Header, JSON Data, and Bulk Data. */ typedef NS_ENUM(UInt8, SDLServiceType) { + /// The lowest level service available. SDLServiceTypeControl = 0x00, + + /// Used to send requests, responses, and notifications between an application and a head unit. SDLServiceTypeRPC NS_SWIFT_NAME(rpc) = 0x07, + + /// The application can start the audio service to send PCM audio data to the head unit. After the StartService packet is sent and the ACK received, the payload for the Audio Service is only PCM audio data. SDLServiceTypeAudio = 0x0A, + + /// The application can start the video service to send H.264 video data to the head unit. After the StartService packet is sent and the ACK received, the payload for the Video Service is only H.264 video data. SDLServiceTypeVideo = 0x0B, + + /// Similar to the RPC Service but adds a bulk data field. The payload of a message sent via the Hybrid service consists of a Binary Header, JSON Data, and Bulk Data. SDLServiceTypeBulkData = 0x0F }; /** * The data packet's available data. - - - SDLFrameInfoHeartbeat: A ping packet that is sent to ensure the connection is still active and the service is still valid. - - SDLFrameInfoStartService: Requests that a specific type of service is started. - - SDLFrameInfoStartServiceACK: Acknowledges that the specific service has been started successfully. - - SDLFrameInfoStartServiceNACK: Negatively acknowledges that the specific service was not started. - - SDLFrameInfoEndService: Requests that a specific type of service is ended. - - SDLFrameInfoEndServiceACK: Acknowledges that the specific service has been ended successfully. - - SDLFrameInfoEndServiceNACK: Negatively acknowledges that the specific service was not ended or has not yet been started. - - SDLFrameInfoRegisterSecondaryTransport: Notifies that a Secondary Transport has been established. - - SDLFrameInfoRegisterSecondaryTransportACK: Acknowledges that the Secondary Transport has been recognized. - - SDLFrameInfoRegisterSecondaryTransportNACK: Negatively acknowledges that the Secondary Transport has not been recognized. - - SDLFrameInfoTransportEventUpdate: Indicates the status or configuration of transport(s) is/are updated. - - SDLFrameInfoServiceDataAck: Deprecated. - - SDLFrameInfoHeartbeatACK: Acknowledges that a Heartbeat control packet has been received. - - SDLFrameInfoSingleFrame: Payload contains a single packet. - - SDLFrameInfoFirstFrame: First frame in a multiple frame payload. - - SDLFrameInfoConsecutiveLastFrame: Frame in a multiple frame payload. */ typedef NS_ENUM(UInt8, SDLFrameInfo) { + /// A ping packet that is sent to ensure the connection is still active and the service is still valid. SDLFrameInfoHeartbeat = 0x00, + + /// Requests that a specific type of service is started. SDLFrameInfoStartService = 0x01, + + /// Acknowledges that the specific service has been started successfully. SDLFrameInfoStartServiceACK = 0x02, + + /// Negatively acknowledges that the specific service was not started. SDLFrameInfoStartServiceNACK = 0x03, + + /// Requests that a specific type of service is ended. SDLFrameInfoEndService = 0x04, + + /// Acknowledges that the specific service has been ended successfully. SDLFrameInfoEndServiceACK = 0x05, + + /// Negatively acknowledges that the specific service was not ended or has not yet been started. SDLFrameInfoEndServiceNACK = 0x06, + + /// Notifies that a Secondary Transport has been established. SDLFrameInfoRegisterSecondaryTransport = 0x07, + + /// Acknowledges that the Secondary Transport has been recognized. SDLFrameInfoRegisterSecondaryTransportACK = 0x08, + + /// Negatively acknowledges that the Secondary Transport has not been recognized. SDLFrameInfoRegisterSecondaryTransportNACK = 0x09, + + /// Indicates the status or configuration of transport(s) is/are updated. SDLFrameInfoTransportEventUpdate = 0xFD, + + /// Deprecated. SDLFrameInfoServiceDataAck = 0xFE, + + /// Acknowledges that a Heartbeat control packet has been received. SDLFrameInfoHeartbeatACK = 0xFF, - // If frameType == Single (0x01) - SDLFrameInfoSingleFrame = 0x00, - // If frameType == First (0x02) - SDLFrameInfoFirstFrame = 0x00, - // If frametype == Consecutive (0x03) - SDLFrameInfoConsecutiveLastFrame = 0x00 + + /// Payload contains a single packet. + SDLFrameInfoSingleFrame = 0x00, // If frameType == Single (0x01) + + /// First frame in a multiple frame payload. + SDLFrameInfoFirstFrame = 0x00, // If frameType == First (0x02) + + /// Frame in a multiple frame payload. + SDLFrameInfoConsecutiveLastFrame = 0x00 // If frametype == Consecutive (0x03) }; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolListener.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolDelegate.h similarity index 90% rename from Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolListener.h rename to Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolDelegate.h index e944f25..7b03033 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolListener.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolDelegate.h @@ -7,7 +7,7 @@ NS_ASSUME_NONNULL_BEGIN -@protocol SDLProtocolListener +@protocol SDLProtocolDelegate @optional @@ -75,14 +75,6 @@ NS_ASSUME_NONNULL_BEGIN */ - (void)onProtocolClosed; -/** - * Called when the message is an error message. - * - * @param info The error info message - * @param e The exception - */ -- (void)onError:(NSString *)info exception:(NSException *)e; - /** * Called when an error is notified from transport. * diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessage.m index 66680e4..6ed86e0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessage.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessage.m @@ -6,7 +6,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLFunctionID.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLProtocolHeader.h" #import "SDLRPCPayload.h" #import "SDLV1ProtocolMessage.h" @@ -54,13 +54,18 @@ - (NSString *)description { NSMutableString *description = [[NSMutableString alloc] init]; [description appendString:self.header.description]; + if (self.header.encrypted) { + [description appendString:@", Payload is encrypted - no description can be provided"]; + return description; + } + // If it's an RPC, provide greater detail if (((self.header.serviceType == SDLServiceTypeRPC) || (self.header.serviceType == SDLServiceTypeBulkData)) && (self.header.frameType == SDLFrameTypeSingle)) { // version of RPC Message determines how we access the info. if (self.header.version >= 2) { SDLRPCPayload *rpcPayload = [SDLRPCPayload rpcPayloadWithData:self.payload]; if (rpcPayload) { - SDLName functionName = [[SDLFunctionID sharedInstance] functionNameForId:rpcPayload.functionID]; + SDLRPCParameterName functionName = [[SDLFunctionID sharedInstance] functionNameForId:rpcPayload.functionID]; UInt8 rpcType = rpcPayload.rpcType; NSArray *rpcTypeNames = @[@"Request", @"Response", @"Notification"]; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolReceivedMessageRouter.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolReceivedMessageRouter.h index 30cafa5..40f0b71 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolReceivedMessageRouter.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolReceivedMessageRouter.h @@ -2,7 +2,7 @@ // -#import "SDLProtocolListener.h" +#import "SDLProtocolDelegate.h" @class SDLProtocolMessage; NS_ASSUME_NONNULL_BEGIN @@ -12,7 +12,7 @@ NS_ASSUME_NONNULL_BEGIN /** * A listener. */ -@property (weak, nonatomic, nullable) id delegate; +@property (weak, nonatomic, nullable) id delegate; /** * Called when a message is received from Core. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProxy.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProxy.h deleted file mode 100644 index 9049cf9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProxy.h +++ /dev/null @@ -1,135 +0,0 @@ -// SDLProxy.h -// - -@class SDLProtocol; -@class SDLPutFile; -@class SDLRPCMessage; -@class SDLSecondaryTransportManager; -@class SDLStreamingMediaManager; -@class SDLTimer; - -#import "SDLProtocolListener.h" -#import "SDLProxyListener.h" -#import "SDLSecurityType.h" -#import "SDLTransportType.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLProxy : NSObject { - Byte _version; - Byte _bulkSessionID; - BOOL _isConnected; -} - -/** - * The protocol that handles sending and receiving messages from Core. - */ -@property (nullable, strong, nonatomic) SDLProtocol *protocol; - -/** - * The transport type used to connect the app to Core. - */ -@property (nullable, strong, nonatomic) id transport; - -/** - * A set of all subscribers. - */ -@property (readonly, copy, nonatomic) NSSet *> *proxyListeners; - -/** - * Closes an open session if no start service ACK message received from Core within a given amount of time. - */ -@property (strong, nonatomic) SDLTimer *startSessionTimer; - -/** - * The proxy version number. - */ -@property (readonly, copy, nonatomic) NSString *proxyVersion; - -/** - * Convenience init. - * - * @param transport The type of network connection - * @param delegate The subscriber - * @param secondaryTransportManager The secondary transport manager - * @return A SDLProxy object - */ -- (id)initWithTransport:(id)transport delegate:(id)delegate secondaryTransportManager:(nullable SDLSecondaryTransportManager *)secondaryTransportManager; - -/** - * Creates a SDLProxy object with an iap (USB / Bluetooth) transport network connection. - * - * @param delegate The subscriber - * @param secondaryTransportManager The secondary transport manager - * @return A SDLProxy object - */ -+ (SDLProxy *)iapProxyWithListener:(id)delegate secondaryTransportManager:(nullable SDLSecondaryTransportManager *)secondaryTransportManager; - -/** - * Creates a SDLProxy object with a TCP (WiFi) transport network connection. - * - * @param delegate The subscriber - * @param ipaddress The IP address of Core - * @param port The port address of Core - * @param secondaryTransportManager The secondary transport manager - * @return A SDLProxy object - */ -+ (SDLProxy *)tcpProxyWithListener:(id)delegate tcpIPAddress:(NSString *)ipaddress tcpPort:(NSString *)port secondaryTransportManager:(nullable SDLSecondaryTransportManager *)secondaryTransportManager; - -/** - * Adds a delegate. - * - * @param delegate The delegate to add - */ -- (void)addDelegate:(NSObject *)delegate; - -/** - * Removes a delegate. - * - * @param delegate The delegate to remove - */ -- (void)removeDelegate:(NSObject *)delegate; - -/** - * Sends a RPC to Core. - * - * @param message A SDLRPCMessage object - */ -- (void)sendRPC:(SDLRPCMessage *)message; - -/** - * Parses a dictionary object and notifies the subscribed delegates of the messages sent by Core. Some messages are also intercepted and handled by the library. - * - * @param dictionary The message data - */ -- (void)handleRPCDictionary:(NSDictionary *)dictionary; - -/** - * Parses a SDLProtocolMessage object and notifies the subscribed delegates of the messages sent by Core. Some messages are also intercepted and handled by the library. - * - * @param msgData The message data - */ -- (void)handleProtocolMessage:(SDLProtocolMessage *)msgData; - -/** - * Adds the security manangers needed to send encrypted data. - * - * @param securityManagerClasses The security manager classes - * @param appId The app's id - */ -- (void)addSecurityManagers:(NSArray *)securityManagerClasses forAppId:(NSString *)appId; - -/** - * Puts data into a file on the module. Performs a putFile for a given input stream, performed in chunks, for handling very large files. - * - * @param inputStream A stream containing the data to put to the module. - * @param putFileRPCRequest A SDLPutFile object containing the parameters for the put(s) - * - * @discussion: The proxy will read from the stream based on the max MTU size and send them in individual putFile requests. This may result in multiple responses being received, one for each request. - * @note: The length parameter of the putFileRPCRequest will be ignored. The proxy will substitute the number of bytes read from the stream. - */ -- (void)putFileStream:(NSInputStream *)inputStream withRequest:(SDLPutFile *)putFileRPCRequest; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProxy.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProxy.m deleted file mode 100644 index 4d78fcf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProxy.m +++ /dev/null @@ -1,987 +0,0 @@ -// SDLProxy.m - -#import "SDLProxy.h" - -#import -#import -#import - -#import "SDLAudioStreamingState.h" -#import "SDLLogMacros.h" -#import "SDLEncodedSyncPData.h" -#import "SDLFileType.h" -#import "SDLFunctionID.h" -#import "SDLGlobals.h" -#import "SDLHMILevel.h" -#import "SDLIAPTransport.h" -#import "SDLLanguage.h" -#import "SDLLayoutMode.h" -#import "SDLLockScreenStatusManager.h" -#import "SDLOnButtonEvent.h" -#import "SDLOnButtonPress.h" -#import "SDLOnHMIStatus.h" -#import "SDLOnSystemRequest.h" -#import "SDLPolicyDataParser.h" -#import "SDLProtocol.h" -#import "SDLProtocolMessage.h" -#import "SDLPutFile.h" -#import "SDLRPCPayload.h" -#import "SDLRPCResponse.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLRequestType.h" -#import "SDLSecondaryTransportManager.h" -#import "SDLStreamingMediaManager.h" -#import "SDLSubscribeButton.h" -#import "SDLSystemContext.h" -#import "SDLSystemRequest.h" -#import "SDLTCPTransport.h" -#import "SDLTimer.h" -#import "SDLTransportType.h" -#import "SDLUnsubscribeButton.h" -#import "SDLVehicleType.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef NSString SDLVehicleMake; - -typedef void (^URLSessionTaskCompletionHandler)(NSData *data, NSURLResponse *response, NSError *error); -typedef void (^URLSessionDownloadTaskCompletionHandler)(NSURL *location, NSURLResponse *response, NSError *error); - -NSString *const SDLProxyVersion = @"6.1.0"; -const float StartSessionTime = 10.0; -const float NotifyProxyClosedDelay = (float)0.1; -const int PoliciesCorrelationId = 65535; -static float DefaultConnectionTimeout = 45.0; - -@interface SDLProxy () { - SDLLockScreenStatusManager *_lsm; -} - -@property (copy, nonatomic) NSString *appId; -@property (strong, nonatomic) NSMutableSet *> *mutableProxyListeners; -@property (nullable, nonatomic, strong) SDLDisplayCapabilities *displayCapabilities; -@property (nonatomic, strong) NSMutableDictionary *securityManagers; -@property (nonatomic, strong) NSURLSession* urlSession; -@property (strong, nonatomic) dispatch_queue_t rpcProcessingQueue; - -@end - - -@implementation SDLProxy - -#pragma mark - Object lifecycle -- (instancetype)initWithTransport:(id)transport delegate:(id)delegate secondaryTransportManager:(nullable SDLSecondaryTransportManager *)secondaryTransportManager { - if (self = [super init]) { - SDLLogD(@"Framework Version: %@", self.proxyVersion); - _lsm = [[SDLLockScreenStatusManager alloc] init]; - _rpcProcessingQueue = dispatch_queue_create("com.sdl.rpcProcessingQueue", DISPATCH_QUEUE_SERIAL); - _mutableProxyListeners = [NSMutableSet setWithObject:delegate]; - _securityManagers = [NSMutableDictionary dictionary]; - - _protocol = [[SDLProtocol alloc] init]; - _transport = transport; - _transport.delegate = _protocol; - - [_protocol.protocolDelegateTable addObject:self]; - _protocol.transport = transport; - - // make sure that secondary transport manager is started prior to starting protocol - if (secondaryTransportManager != nil) { - [secondaryTransportManager startWithPrimaryProtocol:_protocol]; - } - - [self.transport connect]; - - SDLLogV(@"Proxy transport initialization"); - [[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications]; - - NSURLSessionConfiguration* configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; - configuration.timeoutIntervalForRequest = DefaultConnectionTimeout; - configuration.timeoutIntervalForResource = DefaultConnectionTimeout; - configuration.requestCachePolicy = NSURLRequestUseProtocolCachePolicy; - - _urlSession = [NSURLSession sessionWithConfiguration:configuration]; - - } - - return self; -} - -+ (SDLProxy *)iapProxyWithListener:(id)delegate secondaryTransportManager:(nullable SDLSecondaryTransportManager *)secondaryTransportManager { - SDLIAPTransport *transport = [[SDLIAPTransport alloc] init]; - SDLProxy *ret = [[SDLProxy alloc] initWithTransport:transport delegate:delegate secondaryTransportManager:secondaryTransportManager]; - - return ret; -} - -+ (SDLProxy *)tcpProxyWithListener:(id)delegate tcpIPAddress:(NSString *)ipaddress tcpPort:(NSString *)port secondaryTransportManager:(nullable SDLSecondaryTransportManager *)secondaryTransportManager { - SDLTCPTransport *transport = [[SDLTCPTransport alloc] initWithHostName:ipaddress portNumber:port]; - - SDLProxy *ret = [[SDLProxy alloc] initWithTransport:transport delegate:delegate secondaryTransportManager:secondaryTransportManager]; - - return ret; -} - -- (void)dealloc { - if (self.protocol.securityManager != nil) { - [self.protocol.securityManager stop]; - } - - if (self.transport != nil) { - [self.transport disconnect]; - } - - [[NSNotificationCenter defaultCenter] removeObserver:self]; - [[EAAccessoryManager sharedAccessoryManager] unregisterForLocalNotifications]; - - [_urlSession invalidateAndCancel]; - SDLLogV(@"Proxy dealloc"); -} - -- (void)notifyProxyClosed { - if (_isConnected) { - _isConnected = NO; - [self invokeMethodOnDelegates:@selector(onProxyClosed) withObject:nil]; - } -} - - -#pragma mark - Application Lifecycle - -- (void)sendMobileHMIState { - dispatch_async(dispatch_get_main_queue(), ^{ - [self sdl_sendMobileHMIState]; - }); -} - -- (void)sdl_sendMobileHMIState { - UIApplicationState appState = [UIApplication sharedApplication].applicationState; - SDLOnHMIStatus *HMIStatusRPC = [[SDLOnHMIStatus alloc] init]; - - HMIStatusRPC.audioStreamingState = SDLAudioStreamingStateNotAudible; - HMIStatusRPC.systemContext = SDLSystemContextMain; - - switch (appState) { - case UIApplicationStateActive: { - HMIStatusRPC.hmiLevel = SDLHMILevelFull; - } break; - case UIApplicationStateBackground: // Fallthrough - case UIApplicationStateInactive: { - HMIStatusRPC.hmiLevel = SDLHMILevelBackground; - } break; - default: break; - } - - SDLLogD(@"Mobile UIApplication state changed, sending to remote system: %@", HMIStatusRPC.hmiLevel); - [self sendRPC:HMIStatusRPC]; -} - -#pragma mark - Accessors - -- (NSSet *> *)proxyListeners { - return [self.mutableProxyListeners copy]; -} - - -#pragma mark - Setters / Getters - -- (NSString *)proxyVersion { - return SDLProxyVersion; -} - -#pragma mark - SecurityManager - -- (void)addSecurityManagers:(NSArray *)securityManagerClasses forAppId:(NSString *)appId { - NSParameterAssert(securityManagerClasses != nil); - NSParameterAssert(appId != nil); - self.appId = appId; - - for (Class securityManagerClass in securityManagerClasses) { - if (![securityManagerClass conformsToProtocol:@protocol(SDLSecurityType)]) { - NSString *reason = [NSString stringWithFormat:@"Invalid security manager: Class %@ does not conform to SDLSecurityType protocol", NSStringFromClass(securityManagerClass)]; - @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:reason userInfo:nil]; - } - - NSSet *vehicleMakes = [securityManagerClass availableMakes]; - - if (vehicleMakes == nil || vehicleMakes.count == 0) { - NSString *reason = [NSString stringWithFormat:@"Invalid security manager: Failed to retrieve makes for class %@", NSStringFromClass(securityManagerClass)]; - @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:reason userInfo:nil]; - } - - for (NSString *vehicleMake in vehicleMakes) { - self.securityManagers[vehicleMake] = securityManagerClass; - } - } -} - -- (nullable id)securityManagerForMake:(NSString *)make { - if ((make != nil) && (self.securityManagers[make] != nil)) { - Class securityManagerClass = self.securityManagers[make]; - self.protocol.appId = self.appId; - return [[securityManagerClass alloc] init]; - } - - return nil; -} - - -#pragma mark - SDLProtocolListener Implementation - -- (void)onProtocolOpened { - _isConnected = YES; - SDLLogV(@"Proxy RPC protocol opened"); - // The RPC payload will be created by the protocol object...it's weird and confusing, I know. - [self.protocol startServiceWithType:SDLServiceTypeRPC payload:nil]; - - if (self.startSessionTimer == nil) { - self.startSessionTimer = [[SDLTimer alloc] initWithDuration:StartSessionTime repeat:NO]; - __weak typeof(self) weakSelf = self; - self.startSessionTimer.elapsedBlock = ^{ - SDLLogW(@"Start session timed out"); - [weakSelf performSelector:@selector(notifyProxyClosed) withObject:nil afterDelay:NotifyProxyClosedDelay]; - }; - } - [self.startSessionTimer start]; -} - -- (void)onProtocolClosed { - [self notifyProxyClosed]; -} - -- (void)onError:(NSString *)info exception:(NSException *)e { - [self invokeMethodOnDelegates:@selector(onError:) withObject:e]; -} - -- (void)onTransportError:(NSError *)error { - [self invokeMethodOnDelegates:@selector(onTransportError:) withObject:error]; -} - -- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { - // Turn off the timer, the start session response came back - [self.startSessionTimer cancel]; - SDLLogV(@"StartSession (response)\nSessionId: %d for serviceType %d", startServiceACK.header.sessionID, startServiceACK.header.serviceType); - - if (startServiceACK.header.serviceType == SDLServiceTypeRPC) { - [self invokeMethodOnDelegates:@selector(onProxyOpened) withObject:nil]; - } -} - -- (void)onProtocolMessageReceived:(SDLProtocolMessage *)msgData { - @try { - [self handleProtocolMessage:msgData]; - } @catch (NSException *e) { - SDLLogW(@"Proxy: Failed to handle protocol message %@", e); - } -} - - -#pragma mark - Message sending -- (void)sendRPC:(SDLRPCMessage *)message { - if ([message.getFunctionName isEqualToString:@"SubscribeButton"]) { - BOOL handledRPC = [self sdl_adaptButtonSubscribeMessage:(SDLSubscribeButton *)message]; - if (handledRPC) { return; } - } else if ([message.getFunctionName isEqualToString:@"UnsubscribeButton"]) { - BOOL handledRPC = [self sdl_adaptButtonUnsubscribeMessage:(SDLUnsubscribeButton *)message]; - if (handledRPC) { return; } - } - - @try { - [self.protocol sendRPC:message]; - } @catch (NSException *exception) { - SDLLogE(@"Proxy: Failed to send RPC message: %@", message.name); - } -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (BOOL)sdl_adaptButtonSubscribeMessage:(SDLSubscribeButton *)message { - if ([SDLGlobals sharedGlobals].rpcVersion.majorVersion.intValue >= 5) { - if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - SDLSubscribeButton *playPauseMessage = [message copy]; - playPauseMessage.buttonName = SDLButtonNamePlayPause; - - @try { - [self.protocol sendRPC:message]; - [self.protocol sendRPC:playPauseMessage]; - } @catch (NSException *exception) { - SDLLogE(@"Proxy: Failed to send RPC message: %@", message.name); - } - - return YES; - } else if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - return NO; - } - } else { // Major version < 5 - if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - return NO; - } else if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - SDLSubscribeButton *okMessage = [message copy]; - okMessage.buttonName = SDLButtonNameOk; - - @try { - [self.protocol sendRPC:okMessage]; - } @catch (NSException *exception) { - SDLLogE(@"Proxy: Failed to send RPC message: %@", message.name); - } - - return YES; - } - } - - return NO; -} - -- (BOOL)sdl_adaptButtonUnsubscribeMessage:(SDLUnsubscribeButton *)message { - if ([SDLGlobals sharedGlobals].rpcVersion.majorVersion.intValue >= 5) { - if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - SDLUnsubscribeButton *playPauseMessage = [message copy]; - playPauseMessage.buttonName = SDLButtonNamePlayPause; - - @try { - [self.protocol sendRPC:message]; - [self.protocol sendRPC:playPauseMessage]; - } @catch (NSException *exception) { - SDLLogE(@"Proxy: Failed to send RPC message: %@", message.name); - } - - return YES; - } else if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - return NO; - } - } else { // Major version < 5 - if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - return NO; - } else if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - SDLUnsubscribeButton *okMessage = [message copy]; - okMessage.buttonName = SDLButtonNameOk; - - @try { - [self.protocol sendRPC:okMessage]; - } @catch (NSException *exception) { - SDLLogE(@"Proxy: Failed to send RPC message: %@", message.name); - } - - return YES; - } - } - - return NO; -} -#pragma clang diagnostic pop - -#pragma mark - Message Receiving - -- (void)handleProtocolMessage:(SDLProtocolMessage *)incomingMessage { - // Convert protocol message to dictionary - NSDictionary *rpcMessageAsDictionary = [incomingMessage rpcDictionary]; - [self handleRPCDictionary:rpcMessageAsDictionary]; -} - -- (void)handleRPCDictionary:(NSDictionary *)dict { - SDLRPCMessage *message = [[SDLRPCMessage alloc] initWithDictionary:[dict mutableCopy]]; - NSString *functionName = [message getFunctionName]; - NSString *messageType = [message messageType]; - - // If it's a response, append response - if ([messageType isEqualToString:SDLNameResponse]) { - BOOL notGenericResponseMessage = ![functionName isEqualToString:@"GenericResponse"]; - if (notGenericResponseMessage) { - functionName = [NSString stringWithFormat:@"%@Response", functionName]; - } - } - - // From the function name, create the corresponding RPCObject and initialize it - NSString *functionClassName = [NSString stringWithFormat:@"SDL%@", functionName]; - SDLRPCMessage *newMessage = [[NSClassFromString(functionClassName) alloc] initWithDictionary:[dict mutableCopy]]; - - // Intercept and handle several messages ourselves - if ([functionName isEqualToString:SDLNameOnAppInterfaceUnregistered] || [functionName isEqualToString:SDLNameUnregisterAppInterface]) { - [self handleRPCUnregistered:dict]; - } - - if ([functionName isEqualToString:@"RegisterAppInterfaceResponse"]) { - [self handleRegisterAppInterfaceResponse:(SDLRPCResponse *)newMessage]; - } - - if ([functionName isEqualToString:@"OnEncodedSyncPData"]) { - [self handleSyncPData:newMessage]; - } - - if ([functionName isEqualToString:@"OnSystemRequest"]) { - [self handleSystemRequest:dict]; - } - - if ([functionName isEqualToString:@"SystemRequestResponse"]) { - [self handleSystemRequestResponse:newMessage]; - } - - - if ([functionName isEqualToString:@"OnButtonPress"]) { - SDLOnButtonPress *message = (SDLOnButtonPress *)newMessage; - if ([SDLGlobals sharedGlobals].rpcVersion.majorVersion.intValue >= 5) { - BOOL handledRPC = [self sdl_handleOnButtonPressPostV5:message]; - if (handledRPC) { return; } - } else { // RPC version of 4 or less (connected to an old head unit) - BOOL handledRPC = [self sdl_handleOnButtonPressPreV5:message]; - if (handledRPC) { return; } - } - } - - if ([functionName isEqualToString:@"OnButtonEvent"]) { - SDLOnButtonEvent *message = (SDLOnButtonEvent *)newMessage; - if ([SDLGlobals sharedGlobals].rpcVersion.majorVersion.intValue >= 5) { - BOOL handledRPC = [self sdl_handleOnButtonEventPostV5:message]; - if (handledRPC) { return; } - } else { - BOOL handledRPC = [self sdl_handleOnButtonEventPreV5:message]; - if (handledRPC) { return; } - } - } - - [self sdl_invokeDelegateMethodsWithFunction:functionName message:newMessage]; - - // When an OnHMIStatus notification comes in, after passing it on (above), generate an "OnLockScreenNotification" - if ([functionName isEqualToString:@"OnHMIStatus"]) { - [self handleAfterHMIStatus:newMessage]; - } - - // When an OnDriverDistraction notification comes in, after passing it on (above), generate an "OnLockScreenNotification" - if ([functionName isEqualToString:@"OnDriverDistraction"]) { - [self handleAfterDriverDistraction:newMessage]; - } -} - -- (void)sdl_invokeDelegateMethodsWithFunction:(NSString *)functionName message:(SDLRPCMessage *)message { - // Formulate the name of the method to call and invoke the method on the delegate(s) - NSString *handlerName = [NSString stringWithFormat:@"on%@:", functionName]; - SEL handlerSelector = NSSelectorFromString(handlerName); - [self invokeMethodOnDelegates:handlerSelector withObject:message]; -} - - -#pragma mark - RPC Handlers - -- (void)handleRPCUnregistered:(NSDictionary *)messageDictionary { - SDLLogW(@"Unregistration forced by module. %@", messageDictionary); - [self notifyProxyClosed]; -} - -- (void)handleRegisterAppInterfaceResponse:(SDLRPCResponse *)response { - SDLRegisterAppInterfaceResponse *registerResponse = (SDLRegisterAppInterfaceResponse *)response; - - self.protocol.securityManager = [self securityManagerForMake:registerResponse.vehicleType.make]; - if (self.protocol.securityManager && [self.protocol.securityManager respondsToSelector:@selector(setAppId:)]) { - self.protocol.securityManager.appId = self.appId; - } - - if ([SDLGlobals sharedGlobals].majorProtocolVersion >= 4) { - [self sendMobileHMIState]; - // Send SDL updates to application state - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sendMobileHMIState) name:UIApplicationDidBecomeActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sendMobileHMIState) name:UIApplicationDidEnterBackgroundNotification object:nil]; - } -} - -- (void)handleSyncPData:(SDLRPCMessage *)message { - // If URL != nil, perform HTTP Post and don't pass the notification to proxy listeners - SDLLogV(@"OnEncodedSyncPData: %@", message); - - NSString *urlString = (NSString *)[message getParameters:@"URL"]; - NSDictionary *encodedSyncPData = (NSDictionary *)[message getParameters:@"data"]; - NSNumber *encodedSyncPTimeout = (NSNumber *)[message getParameters:@"Timeout"]; - - if (urlString && encodedSyncPData && encodedSyncPTimeout) { - [self sendEncodedSyncPData:encodedSyncPData toURL:urlString withTimeout:encodedSyncPTimeout]; - } -} - -- (void)handleSystemRequest:(NSDictionary *)dict { - SDLLogV(@"OnSystemRequest"); - - SDLOnSystemRequest *systemRequest = [[SDLOnSystemRequest alloc] initWithDictionary:[dict mutableCopy]]; - SDLRequestType requestType = systemRequest.requestType; - - // Handle the various OnSystemRequest types - if ([requestType isEqualToEnum:SDLRequestTypeProprietary]) { - [self handleSystemRequestProprietary:systemRequest]; - } else if ([requestType isEqualToEnum:SDLRequestTypeLockScreenIconURL]) { - [self handleSystemRequestLockScreenIconURL:systemRequest]; - } else if ([requestType isEqualToEnum:SDLRequestTypeHTTP]) { - [self sdl_handleSystemRequestHTTP:systemRequest]; - } else if ([requestType isEqualToEnum:SDLRequestTypeLaunchApp]) { - [self sdl_handleSystemRequestLaunchApp:systemRequest]; - } -} - -- (void)handleSystemRequestResponse:(SDLRPCMessage *)message { - SDLLogV(@"SystemRequestResponse to be discarded"); -} - -#pragma mark BackCompatability ButtonName Helpers - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (BOOL)sdl_handleOnButtonPressPreV5:(SDLOnButtonPress *)message { - // Drop PlayPause, this shouldn't come in - if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - return YES; - } else if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - // Send Ok and Play/Pause notifications - SDLOnButtonPress *playPausePress = [message copy]; - playPausePress.buttonName = SDLButtonNamePlayPause; - - [self sdl_invokeDelegateMethodsWithFunction:message.getFunctionName message:playPausePress]; - [self sdl_invokeDelegateMethodsWithFunction:message.getFunctionName message:message]; - return YES; - } - - return NO; -} - -- (BOOL)sdl_handleOnButtonPressPostV5:(SDLOnButtonPress *)message { - if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - // Send PlayPause & OK notifications - SDLOnButtonPress *okPress = [message copy]; - okPress.buttonName = SDLButtonNameOk; - - [self sdl_invokeDelegateMethodsWithFunction:message.getFunctionName message:okPress]; - [self sdl_invokeDelegateMethodsWithFunction:message.getFunctionName message:message]; - return YES; - } else if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - // Send PlayPause and OK notifications - SDLOnButtonPress *playPausePress = [message copy]; - playPausePress.buttonName = SDLButtonNamePlayPause; - - [self sdl_invokeDelegateMethodsWithFunction:message.getFunctionName message:playPausePress]; - [self sdl_invokeDelegateMethodsWithFunction:message.getFunctionName message:message]; - return YES; - } - - return NO; -} - -- (BOOL)sdl_handleOnButtonEventPreV5:(SDLOnButtonEvent *)message { - // Drop PlayPause, this shouldn't come in - if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - return YES; - } else if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - // Send Ok and Play/Pause notifications - SDLOnButtonEvent *playPauseEvent = [message copy]; - playPauseEvent.buttonName = SDLButtonNamePlayPause; - - [self sdl_invokeDelegateMethodsWithFunction:message.getFunctionName message:playPauseEvent]; - [self sdl_invokeDelegateMethodsWithFunction:message.getFunctionName message:message]; - return YES; - } - - return NO; -} - -- (BOOL)sdl_handleOnButtonEventPostV5:(SDLOnButtonEvent *)message { - if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - // Send PlayPause & OK notifications - SDLOnButtonEvent *okEvent = [message copy]; - okEvent.buttonName = SDLButtonNameOk; - - [self sdl_invokeDelegateMethodsWithFunction:message.getFunctionName message:okEvent]; - [self sdl_invokeDelegateMethodsWithFunction:message.getFunctionName message:message]; - return YES; - } else if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - // Send PlayPause and OK notifications - SDLOnButtonEvent *playPauseEvent = [message copy]; - playPauseEvent.buttonName = SDLButtonNamePlayPause; - - [self sdl_invokeDelegateMethodsWithFunction:message.getFunctionName message:playPauseEvent]; - [self sdl_invokeDelegateMethodsWithFunction:message.getFunctionName message:message]; - return YES; - } - - return NO; -} -#pragma clang diagnostic pop - - -#pragma mark Handle Post-Invoke of Delegate Methods -- (void)handleAfterHMIStatus:(SDLRPCMessage *)message { - SDLHMILevel hmiLevel = (SDLHMILevel)[message getParameters:SDLNameHMILevel]; - _lsm.hmiLevel = hmiLevel; - - SEL callbackSelector = NSSelectorFromString(@"onOnLockScreenNotification:"); - [self invokeMethodOnDelegates:callbackSelector withObject:_lsm.lockScreenStatusNotification]; -} - -- (void)handleAfterDriverDistraction:(SDLRPCMessage *)message { - NSString *stateString = (NSString *)[message getParameters:SDLNameState]; - BOOL state = [stateString isEqualToString:@"DD_ON"] ? YES : NO; - _lsm.driverDistracted = state; - - SEL callbackSelector = NSSelectorFromString(@"onOnLockScreenNotification:"); - [self invokeMethodOnDelegates:callbackSelector withObject:_lsm.lockScreenStatusNotification]; -} - - -#pragma mark OnSystemRequest Handlers -- (void)sdl_handleSystemRequestLaunchApp:(SDLOnSystemRequest *)request { - NSURL *URLScheme = [NSURL URLWithString:request.url]; - if (URLScheme == nil) { - SDLLogW(@"System request LaunchApp failed: invalid URL sent from module: %@", request.url); - return; - } - // If system version is less than 9.0 http://stackoverflow.com/a/5337804/1370927 - if (SDL_SYSTEM_VERSION_LESS_THAN(@"9.0")) { - // Return early if we can't openURL because openURL will crash instead of fail silently in < 9.0 - if (![[UIApplication sharedApplication] canOpenURL:URLScheme]) { - return; - } - } - [[UIApplication sharedApplication] openURL:URLScheme]; -} - -- (void)handleSystemRequestProprietary:(SDLOnSystemRequest *)request { - NSDictionary *JSONDictionary = [self validateAndParseSystemRequest:request]; - if (JSONDictionary == nil || request.url == nil) { - return; - } - - NSDictionary *requestData = JSONDictionary[@"HTTPRequest"]; - 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 != nil) { - [pdp parsePolicyData:policyData]; - SDLLogV(@"Policy data received"); - } - - // Send the HTTP Request - __weak typeof(self) weakSelf = self; - [self uploadForBodyDataDictionary:JSONDictionary - URLString:request.url - completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - - if (error) { - SDLLogW(@"OnSystemRequest HTTP response error: %@", error); - return; - } - - if (data == nil || data.length == 0) { - SDLLogW(@"OnSystemRequest HTTP response error: no data received"); - return; - } - - // Create the SystemRequest RPC to send to module. - SDLLogV(@"OnSystemRequest HTTP response"); - SDLSystemRequest *request = [[SDLSystemRequest alloc] init]; - request.correlationID = [NSNumber numberWithInt:PoliciesCorrelationId]; - request.requestType = SDLRequestTypeProprietary; - request.bulkData = data; - - // Parse and display the policy data. - SDLPolicyDataParser *pdp = [[SDLPolicyDataParser alloc] init]; - NSData *policyData = [pdp unwrap:data]; - if (policyData) { - [pdp parsePolicyData:policyData]; - SDLLogV(@"Cloud policy data: %@", pdp); - } - - // Send the RPC Request - [strongSelf sendRPC:request]; - }]; -} - -- (void)handleSystemRequestLockScreenIconURL:(SDLOnSystemRequest *)request { - __weak typeof(self) weakSelf = self; - [self sdl_sendDataTaskWithURL:[NSURL URLWithString:request.url] - completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - if (error != nil) { - SDLLogW(@"OnSystemRequest (lock screen icon) HTTP download task failed: %@", error.localizedDescription); - return; - } - - UIImage *icon = [UIImage imageWithData:data]; - [strongSelf invokeMethodOnDelegates:@selector(onReceivedLockScreenIcon:) withObject:icon]; - }]; -} - -- (void)sdl_handleSystemRequestHTTP:(SDLOnSystemRequest *)request { - if (request.bulkData.length == 0) { - // TODO: not sure how we want to handle http requests that don't have bulk data (maybe as GET?) - return; - } - - __weak typeof(self) weakSelf = self; - [self sdl_uploadData:request.bulkData - toURLString:request.url - completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - if (error != nil) { - SDLLogW(@"OnSystemRequest (HTTP) error: %@", error.localizedDescription); - return; - } - - if (data.length == 0) { - SDLLogW(@"OnSystemRequest (HTTP) error: no data returned"); - return; - } - - // Show the HTTP response - SDLLogV(@"OnSystemRequest (HTTP) response: %@", response); - - // Create the SystemRequest RPC to send to module. - SDLPutFile *putFile = [[SDLPutFile alloc] init]; - putFile.fileType = SDLFileTypeJSON; - putFile.correlationID = @(PoliciesCorrelationId); - putFile.syncFileName = @"response_data"; - putFile.bulkData = data; - - // Send RPC Request - [strongSelf sendRPC:putFile]; - }]; -} - -/** - * Determine if the System Request is valid and return it's JSON dictionary, if available. - * - * @param request The system request to parse - * - * @return A parsed JSON dictionary, or nil if it couldn't be parsed - */ -- (nullable NSDictionary *)validateAndParseSystemRequest:(SDLOnSystemRequest *)request { - NSString *urlString = request.url; - SDLFileType fileType = request.fileType; - - // Validate input - if (urlString == nil || [NSURL URLWithString:urlString] == nil) { - SDLLogW(@"OnSystemRequest validation failure: URL is nil"); - return nil; - } - - if (![fileType isEqualToEnum:SDLFileTypeJSON]) { - SDLLogW(@"OnSystemRequest validation failure: file type is not JSON"); - return nil; - } - - // Get data dictionary from the bulkData - NSError *error = nil; - NSDictionary *JSONDictionary = [NSJSONSerialization JSONObjectWithData:request.bulkData options:kNilOptions error:&error]; - if (error != nil) { - SDLLogW(@"OnSystemRequest validation failure: data is not valid JSON"); - return nil; - } - - return JSONDictionary; -} - -/** - * Start an upload for some data to a web address specified - * - * @param data The data to be passed to the server - * @param urlString The URL the data should be POSTed to - * @param completionHandler A completion handler of what to do when the server responds - */ -- (void)sdl_uploadData:(NSData *_Nonnull)data toURLString:(NSString *_Nonnull)urlString completionHandler:(URLSessionTaskCompletionHandler _Nullable)completionHandler { - // NSURLRequest configuration - NSURL *url = [NSURL URLWithString:urlString]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; - [request setValue:@"application/json" forHTTPHeaderField:@"content-type"]; - request.HTTPMethod = @"POST"; - - SDLLogV(@"OnSystemRequest (HTTP) upload task created for URL: %@", urlString); - - // Create the upload task - [self sdl_sendUploadRequest:request withData:data completionHandler:completionHandler]; -} - -/** - * Start an upload for a body data dictionary, this is used by the "proprietary" system request needed for backward compatibility - * - * @param dictionary The system request dictionary that contains the HTTP data to be sent - * @param urlString A string containing the URL to send the upload to - * @param completionHandler A completion handler returning the response from the server to the upload task - */ -- (void)uploadForBodyDataDictionary:(NSDictionary *)dictionary URLString:(NSString *)urlString completionHandler:(URLSessionTaskCompletionHandler)completionHandler { - NSParameterAssert(dictionary != nil); - NSParameterAssert(urlString != nil); - NSParameterAssert(completionHandler != NULL); - - // Extract data from the dictionary - NSDictionary *requestData = dictionary[@"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]; - - // NSURLRequest configuration - NSURL *url = [NSURL URLWithString:urlString]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; - [request setValue:contentType forHTTPHeaderField:@"content-type"]; - request.timeoutInterval = timeout; - request.HTTPMethod = method; - - SDLLogV(@"OnSystemRequest (Proprietary) upload task created for URL: %@", urlString); - - // Create the upload task - [self sdl_sendUploadRequest:request withData:bodyData completionHandler:completionHandler]; -} - -- (void)sdl_sendUploadRequest:(NSURLRequest*)request withData:(NSData*)data completionHandler:(URLSessionTaskCompletionHandler)completionHandler { - NSMutableURLRequest* mutableRequest = [request mutableCopy]; - - if ([mutableRequest.URL.scheme isEqualToString:@"http"]) { - mutableRequest.URL = [NSURL URLWithString:[mutableRequest.URL.absoluteString stringByReplacingCharactersInRange:NSMakeRange(0, 4) withString:@"https"]]; - } - - [[self.urlSession uploadTaskWithRequest:request fromData:data completionHandler:completionHandler] resume]; -} - -- (void)sdl_sendDataTaskWithURL:(NSURL*)url completionHandler:(URLSessionTaskCompletionHandler)completionHandler { - if ([url.scheme isEqualToString:@"http"]) { - url = [NSURL URLWithString:[url.absoluteString stringByReplacingCharactersInRange:NSMakeRange(0, 4) withString:@"https"]]; - } - - [[self.urlSession dataTaskWithURL:url completionHandler:completionHandler] resume]; -} - -#pragma mark - Delegate management - -- (void)addDelegate:(NSObject *)delegate { - @synchronized(self.mutableProxyListeners) { - [self.mutableProxyListeners addObject:delegate]; - } -} - -- (void)removeDelegate:(NSObject *)delegate { - @synchronized(self.mutableProxyListeners) { - [self.mutableProxyListeners removeObject:delegate]; - } -} - -- (void)invokeMethodOnDelegates:(SEL)aSelector withObject:(nullable id)object { - // Occurs on the protocol receive serial queue - dispatch_async(_rpcProcessingQueue, ^{ - for (id listener in self.proxyListeners) { - if ([listener respondsToSelector:aSelector]) { - // HAX: http://stackoverflow.com/questions/7017281/performselector-may-cause-a-leak-because-its-selector-is-unknown - ((void (*)(id, SEL, id))[(NSObject *)listener methodForSelector:aSelector])(listener, aSelector, object); - } - } - }); -} - - -#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"; - [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; - request.timeoutInterval = 60; - - // 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) { - SDLLogW(@"Error attempting to create SyncPData for HTTP request: %@", JSONSerializationError); - return; - } - - // Send the HTTP Request - __weak typeof(self) weakSelf = self; - [[self.urlSession uploadTaskWithRequest:request - fromData:data - completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { - [weakSelf syncPDataNetworkRequestCompleteWithData:data response:response error:error]; - }] resume]; - - SDLLogV(@"OnEncodedSyncPData (HTTP Request)"); -} - -// Handle the OnEncodedSyncPData HTTP Response -- (void)syncPDataNetworkRequestCompleteWithData:(NSData *)data response:(NSURLResponse *)response error:(NSError *)error { - // Sample of response: {"data":["SDLKGLSDKFJLKSjdslkfjslkJLKDSGLKSDJFLKSDJF"]} - SDLLogV(@"OnEncodedSyncPData (HTTP Response): %@", response); - - // Validate response data. - if (data == nil || data.length == 0) { - SDLLogW(@"OnEncodedSyncPData (HTTP Response): no data returned"); - 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:PoliciesCorrelationId]; - request.data = [responseDictionary objectForKey:@"data"]; - - [self sendRPC:request]; - } -} - - -#pragma mark - PutFile Streaming -- (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]; - - NSMutableData *buffer = [NSMutableData dataWithLength:[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]]; - NSInteger nBytesRead = [(NSInputStream *)stream read:(uint8_t *)buffer.mutableBytes maxLength:buffer.length]; - if (nBytesRead > 0) { - NSData *data = [buffer subdataWithRange:NSMakeRange(0, (NSUInteger)nBytesRead)]; - 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:(NSUInteger)nBytesRead]]; - [putFileRPCRequest setBulkData:data]; - - [self sendRPC:putFileRPCRequest]; - } - - break; - } - case NSStreamEventEndEncountered: { - // Cleanup the stream - [stream close]; - [stream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; - - break; - } - case NSStreamEventErrorOccurred: { - SDLLogE(@"NSStream error attempting to upload putfile stream: %lu", (unsigned long)eventCode); - break; - } - default: { - break; - } - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProxyListener.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProxyListener.h deleted file mode 100644 index d9f0c25..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProxyListener.h +++ /dev/null @@ -1,600 +0,0 @@ -// SDLProxyListener.h -// - -#import - -@class SDLAddCommandResponse; -@class SDLAddSubMenuResponse; -@class SDLAlertManeuverResponse; -@class SDLAlertResponse; -@class SDLButtonPressResponse; -@class SDLChangeRegistrationResponse; -@class SDLCreateInteractionChoiceSetResponse; -@class SDLDeleteCommandResponse; -@class SDLDeleteFileResponse; -@class SDLDeleteInteractionChoiceSetResponse; -@class SDLDeleteSubMenuResponse; -@class SDLDiagnosticMessageResponse; -@class SDLDialNumberResponse; -@class SDLEncodedSyncPDataResponse; -@class SDLEndAudioPassThruResponse; -@class SDLGenericResponse; -@class SDLGetDTCsResponse; -@class SDLGetInteriorVehicleDataResponse; -@class SDLGetSystemCapabilityResponse; -@class SDLGetVehicleDataResponse; -@class SDLGetWaypointsResponse; -@class SDLListFilesResponse; -@class SDLOnAppInterfaceUnregistered; -@class SDLOnAudioPassThru; -@class SDLOnButtonEvent; -@class SDLOnButtonPress; -@class SDLOnCommand; -@class SDLOnDriverDistraction; -@class SDLOnEncodedSyncPData; -@class SDLOnHashChange; -@class SDLOnHMIStatus; -@class SDLOnInteriorVehicleData; -@class SDLOnKeyboardInput; -@class SDLOnLanguageChange; -@class SDLOnLockScreenStatus; -@class SDLOnPermissionsChange; -@class SDLOnRCStatus; -@class SDLOnSyncPData; -@class SDLOnSystemRequest; -@class SDLOnVehicleData; -@class SDLOnTBTClientState; -@class SDLOnTouchEvent; -@class SDLOnVehicleData; -@class SDLOnWayPointChange; -@class SDLPerformAudioPassThruResponse; -@class SDLPerformInteractionResponse; -@class SDLPutFileResponse; -@class SDLReadDIDResponse; -@class SDLRegisterAppInterfaceResponse; -@class SDLResetGlobalPropertiesResponse; -@class SDLScrollableMessageResponse; -@class SDLSendHapticDataResponse; -@class SDLSendLocationResponse; -@class SDLSetAppIconResponse; -@class SDLSetDisplayLayoutResponse; -@class SDLSetGlobalPropertiesResponse; -@class SDLSetInteriorVehicleDataResponse; -@class SDLSetMediaClockTimerResponse; -@class SDLShowConstantTBTResponse; -@class SDLShowResponse; -@class SDLSliderResponse; -@class SDLSpeakResponse; -@class SDLSubscribeButtonResponse; -@class SDLSubscribeVehicleDataResponse; -@class SDLSubscribeWayPointsResponse; -@class SDLSyncPDataResponse; -@class SDLUpdateTurnListResponse; -@class SDLUnregisterAppInterfaceResponse; -@class SDLUnsubscribeButtonResponse; -@class SDLUnsubscribeVehicleDataResponse; -@class SDLUnsubscribeWayPointsResponse; - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLProxyListener - -/** - * Called when a Driver Distraction notification is received from Core - * - * @param notification A SDLOnDriverDistraction object - */ -- (void)onOnDriverDistraction:(SDLOnDriverDistraction *)notification; - -/** - * Called when the HMI Status of the SDL app has changed - * - * @param notification A SDLOnHMIStatus object - */ -- (void)onOnHMIStatus:(SDLOnHMIStatus *)notification; - -/** - * Called when a connection with Core has closed - */ -- (void)onProxyClosed; - -/** - * Called when a connection with Core has been established - */ -- (void)onProxyOpened; - -@optional - -/** - * Called when an Add Command Response is received from Core - * - * @param response A SDLAddCommandResponse object - */ -- (void)onAddCommandResponse:(SDLAddCommandResponse *)response; - -/** - * Called when an Add SubMenu Response is received from Core - * - * @param response A SDLAddSubMenuResponse object - */ -- (void)onAddSubMenuResponse:(SDLAddSubMenuResponse *)response; - -/** - * Called when a Alert Maneuver Response is received from Core - * - * @param response A SDLAlertManeuverResponse object - */ -- (void)onAlertManeuverResponse:(SDLAlertManeuverResponse *)response; - -/** - * Called when a Alert Response is received from Core - * - * @param response A SDLAlertResponse object - */ -- (void)onAlertResponse:(SDLAlertResponse *)response; - -/** - * Called when a Button Press Response is received from Core - * - * @param response A SDLButtonPressResponse object - */ -- (void)onButtonPressResponse:(SDLButtonPressResponse *)response; - -/** - * Called when a Change Registration Response is received from Core - * - * @param response A SDLChangeRegistrationResponse object - */ -- (void)onChangeRegistrationResponse:(SDLChangeRegistrationResponse *)response; - -/** - * Called when a Create Interaction Choice Set Response is received from Core - * - * @param response A SDLCreateInteractionChoiceSetResponse object - */ -- (void)onCreateInteractionChoiceSetResponse:(SDLCreateInteractionChoiceSetResponse *)response; - -/** - * Called when a Delete Command Response is received from Core - * - * @param response A SDLDeleteCommandResponse object - */ -- (void)onDeleteCommandResponse:(SDLDeleteCommandResponse *)response; - -/** - * Called when a Delete File Response is received from Core - * - * @param response A SDLDeleteFileResponse object - */ -- (void)onDeleteFileResponse:(SDLDeleteFileResponse *)response; - -/** - * Called when a Delete Interaction Choice Set Response is received from Core - * - * @param response A SDLDeleteInteractionChoiceSetResponse object - */ -- (void)onDeleteInteractionChoiceSetResponse:(SDLDeleteInteractionChoiceSetResponse *)response; - -/** - * Called when a Delete SubMenu Response is received from Core - * - * @param response A SDLDeleteSubMenuResponse object - */ -- (void)onDeleteSubMenuResponse:(SDLDeleteSubMenuResponse *)response; - -/** - * Called when a Diagnostic Message Response is received from Core - * - * @param response A SDLDiagnosticMessageResponse object - */ -- (void)onDiagnosticMessageResponse:(SDLDiagnosticMessageResponse *)response; - -/** - * Called when a Dial Number Response is received from Core - * - * @param response A SDLDialNumberResponse object - */ -- (void)onDialNumberResponse:(SDLDialNumberResponse *)response; - -/** - * Called when an Encoded Sync P Data Response is received from Core - * - * @param response A SDLEncodedSyncPDataResponse object - */ -- (void)onEncodedSyncPDataResponse:(SDLEncodedSyncPDataResponse *)response; - -/** - * Called when an End Audio Pass Thru Response is received from Core - * - * @param response A SDLEndAudioPassThruResponse object - */ -- (void)onEndAudioPassThruResponse:(SDLEndAudioPassThruResponse *)response; - -/** - * Called when an Error message is received from Core - * - * @param e An exception message - */ -- (void)onError:(NSException *)e; - -/** - * Called when a Generic Response is received from Core - * - * @param response A SDLGenericResponse object - */ -- (void)onGenericResponse:(SDLGenericResponse *)response; - -/** - * Called when a Get DTCs Response is received from Core - * - * @param response A SDLGetDTCsResponse object - */ -- (void)onGetDTCsResponse:(SDLGetDTCsResponse *)response; - -/** - * Called when a Get Interior Vehicle Data Response is received from Core - * - * @param response A SDLGetInteriorVehicleDataResponse object - */ -- (void)onGetInteriorVehicleDataResponse:(SDLGetInteriorVehicleDataResponse *)response; - -/** - * Called when a Get System Capability Response is received from Core - * - * @param response A SDLGetSystemCapabilityResponse object - */ -- (void)onGetSystemCapabilityResponse:(SDLGetSystemCapabilityResponse *)response; - -/** - * Called when a Get Vehicle Data Response is received from Core - * - * @param response A SDLGetVehicleDataResponse object - */ -- (void)onGetVehicleDataResponse:(SDLGetVehicleDataResponse *)response; - -/** - * Called when a Get Way Points Response is received from Core - * - * @param response A SDLGetWaypointsResponse object - */ -- (void)onGetWayPointsResponse:(SDLGetWaypointsResponse *)response; - -/** - * Called when a List Files Response is received from Core - * - * @param response A SDLListFilesResponse object - */ -- (void)onListFilesResponse:(SDLListFilesResponse *)response; - -/** - * Called when a Received Lock Screen Icon notification is received from Core - * - * @param icon An image - */ -- (void)onReceivedLockScreenIcon:(UIImage *)icon; - -/** - * Called when an On App Interface Unregistered notification is received from Core - * - * @param notification A SDLOnAppInterfaceUnregistered object - */ -- (void)onOnAppInterfaceUnregistered:(SDLOnAppInterfaceUnregistered *)notification; - -/** - * Called when an On Audio Pass Thru notification is received from Core - * - * @param notification A SDLOnAudioPassThru object - */ -- (void)onOnAudioPassThru:(SDLOnAudioPassThru *)notification; - -/** - * Called when an On Button Event notification is received from Core - * - * @param notification A SDLOnButtonEvent object - */ -- (void)onOnButtonEvent:(SDLOnButtonEvent *)notification; - -/** - * Called when an On Button Press notification is received from Core - * - * @param notification A SDLOnButtonPress object - */ -- (void)onOnButtonPress:(SDLOnButtonPress *)notification; - -/** - * Called when an On Command notification is received from Core - * - * @param notification A SDLOnCommand object - */ -- (void)onOnCommand:(SDLOnCommand *)notification; - -/** - * Called when an On Encoded Sync P Data notification is received from Core - * - * @param notification A SDLOnEncodedSyncPData object - */ -- (void)onOnEncodedSyncPData:(SDLOnEncodedSyncPData *)notification; - -/** - * Called when an On Hash Change notification is received from Core - * - * @param notification A SDLOnHashChange object - */ -- (void)onOnHashChange:(SDLOnHashChange *)notification; - -/** - * Called when an On Interior Vehicle Data notification is received from Core - * - * @param notification A SDLOnInteriorVehicleData object - */ -- (void)onOnInteriorVehicleData:(SDLOnInteriorVehicleData *)notification; - -/** - * Called when an On Keyboard Input notification is received from Core - * - * @param notification A SDLOnKeyboardInput object - */ -- (void)onOnKeyboardInput:(SDLOnKeyboardInput *)notification; - -/** - * Called when an On Language Change notification is received from Core - * - * @param notification A SDLOnLanguageChange object - */ -- (void)onOnLanguageChange:(SDLOnLanguageChange *)notification; - -/** - * Called when an On Lock Screen notification is received from Core - * - * @param notification A SDLOnLockScreenStatus object - */ -- (void)onOnLockScreenNotification:(SDLOnLockScreenStatus *)notification; - -/** - * Called when an On Permissions Change notification is received from Core - * - * @param notification A SDLOnPermissionsChange object - */ -- (void)onOnPermissionsChange:(SDLOnPermissionsChange *)notification; - -/** - * Called when an On RC Change notification is received from Core - * - * @param notification A SDLOnRCStatus object - */ -- (void)onOnRCStatus:(SDLOnRCStatus *)notification; - -/** - * Called when an On Sync P notification is received from Core - * - * @param notification A SDLOnSyncPData object - */ -- (void)onOnSyncPData:(SDLOnSyncPData *)notification; - -/** - * Called when an On System Request notification is received from Core - * - * @param notification A SDLOnSystemRequest object - */ -- (void)onOnSystemRequest:(SDLOnSystemRequest *)notification; - -/** - * Called when an On TBT Client State notification is received from Core - * - * @param notification A SDLOnTBTClientState object - */ -- (void)onOnTBTClientState:(SDLOnTBTClientState *)notification; - -/** - * Called when an On Touch Event notification is received from Core - * - * @param notification A SDLOnTouchEvent object - */ -- (void)onOnTouchEvent:(SDLOnTouchEvent *)notification; - -/** - * Called when an On Vehicle Data notification is received from Core - * - * @param notification A SDLOnVehicleData object - */ -- (void)onOnVehicleData:(SDLOnVehicleData *)notification; - -/** - * Called when an On Way Point Change notification is received from Core - * - * @param notification A SDLOnWayPointChange object - */ -- (void)onOnWayPointChange:(SDLOnWayPointChange *)notification; - -/** - * Called when a Perform Audio Pass Thru Response is received from Core - * - * @param response A SDLPerformAudioPassThruResponse object - */ -- (void)onPerformAudioPassThruResponse:(SDLPerformAudioPassThruResponse *)response; - -/** - * Called when a Perform Interaction Response is received from Core - * - * @param response A SDLPerformInteractionResponse object - */ -- (void)onPerformInteractionResponse:(SDLPerformInteractionResponse *)response; - -/** - * Called when a Put File Response is received from Core - * - * @param response A SDLPutFileResponse object - */ -- (void)onPutFileResponse:(SDLPutFileResponse *)response; - -/** - * Called when a Read DID Response is received from Core - * - * @param response A SDLReadDIDResponse object - */ -- (void)onReadDIDResponse:(SDLReadDIDResponse *)response; - -/** - * Called when a Register App Interface Response is received from Core - * - * @param response A SDLRegisterAppInterfaceResponse object - */ -- (void)onRegisterAppInterfaceResponse:(SDLRegisterAppInterfaceResponse *)response; - -/** - * Called when a Reset Global Properties Response is received from Core - * - * @param response A SDLResetGlobalPropertiesResponse object - */ -- (void)onResetGlobalPropertiesResponse:(SDLResetGlobalPropertiesResponse *)response; - -/** - * Called when a Scrollable Message Response is received from Core - * - * @param response A SDLScrollableMessageResponse object - */ -- (void)onScrollableMessageResponse:(SDLScrollableMessageResponse *)response; - -/** - * Called when a Send Haptic Data Response is received from Core - * - * @param response A SDLSendHapticDataResponse object - */ -- (void)onSendHapticDataResponse:(SDLSendHapticDataResponse *)response; - -/** - * Called when a Send Location Response is received from Core - * - * @param response A SDLSendLocationResponse object - */ -- (void)onSendLocationResponse:(SDLSendLocationResponse *)response; - -/** - * Called when a Set App Icon Response is received from Core - * - * @param response A SDLSetAppIconResponse object - */ -- (void)onSetAppIconResponse:(SDLSetAppIconResponse *)response; - -/** - * Called when a Set Display Layout Response is received from Core - * - * @param response A SDLSetDisplayLayoutResponse object - */ -- (void)onSetDisplayLayoutResponse:(SDLSetDisplayLayoutResponse *)response; - -/** - * Called when a Set Global Properties Response is received from Core - * - * @param response A SDLSetGlobalPropertiesResponse object - */ -- (void)onSetGlobalPropertiesResponse:(SDLSetGlobalPropertiesResponse *)response; - -/** - * Called when a Set Interior Vehicle Data Response is received from Core - * - * @param response A SDLSetInteriorVehicleDataResponse object - */ -- (void)onSetInteriorVehicleDataResponse:(SDLSetInteriorVehicleDataResponse *)response; - -/** - * Called when a Set Media Clock Timer Response is received from Core - * - * @param response A SDLSetMediaClockTimerResponse object - */ -- (void)onSetMediaClockTimerResponse:(SDLSetMediaClockTimerResponse *)response; - -/** - * Called when a Show Constant TBT Response is received from Core - * - * @param response A SDLShowConstantTBTResponse object - */ -- (void)onShowConstantTBTResponse:(SDLShowConstantTBTResponse *)response; - -/** - * Called when a Show Response is received from Core - * - * @param response A SDLShowResponse object - */ -- (void)onShowResponse:(SDLShowResponse *)response; - -/** - * Called when a Slider Response is received from Core - * - * @param response A SDLSliderResponse object - */ -- (void)onSliderResponse:(SDLSliderResponse *)response; - -/** - * Called when a Speak Response is received from Core - * - * @param response A SDLSpeakResponse object - */ -- (void)onSpeakResponse:(SDLSpeakResponse *)response; - -/** - * Called when a Subscribe Button Response is received from Core - * - * @param response A SDLSubscribeButtonResponse object - */ -- (void)onSubscribeButtonResponse:(SDLSubscribeButtonResponse *)response; - -/** - * Called when a Subscribe Vehicle Data Response is received from Core - * - * @param response A SDLSubscribeVehicleDataResponse object - */ -- (void)onSubscribeVehicleDataResponse:(SDLSubscribeVehicleDataResponse *)response; - -/** - * Called when a Subscribe Way Points Response is received from Core - * - * @param response A SDLSubscribeWayPointsResponse object - */ -- (void)onSubscribeWayPointsResponse:(SDLSubscribeWayPointsResponse *)response; - -/** - * Called when a Sync P Data Response is received from Core - * - * @param response A SDLSyncPDataResponse object - */ -- (void)onSyncPDataResponse:(SDLSyncPDataResponse *)response; - -/** - * Called when an Update Turn List Response is received from Core - * - * @param response A SDLUpdateTurnListResponse object - */ -- (void)onUpdateTurnListResponse:(SDLUpdateTurnListResponse *)response; - -/** - * Called when an Unregister App Interface Response is received from Core - * - * @param response A SDLUnregisterAppInterfaceResponse object - */ -- (void)onUnregisterAppInterfaceResponse:(SDLUnregisterAppInterfaceResponse *)response; - -/** - * Called when an Unsubscribe Button Response is received from Core - * - * @param response A SDLUnsubscribeButtonResponse object - */ -- (void)onUnsubscribeButtonResponse:(SDLUnsubscribeButtonResponse *)response; - -/** - * Called when an Unsubscribe Vehicle Data Response is received from Core - * - * @param response A SDLUnsubscribeVehicleDataResponse object - */ -- (void)onUnsubscribeVehicleDataResponse:(SDLUnsubscribeVehicleDataResponse *)response; - -/** - * Called when an Unsubscribe Way Points Response is received from Core - * - * @param response A SDLUnsubscribeWayPointsResponse object - */ -- (void)onUnsubscribeWayPointsResponse:(SDLUnsubscribeWayPointsResponse *)response; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.h new file mode 100644 index 0000000..d8a07c7 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.h @@ -0,0 +1,40 @@ +// +// SDLPublishAppService.h +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +@class SDLAppServiceManifest; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * Registers a service offered by this app on the module. + * Subsequent calls with the same service type will update the manifest for that service. + */ +@interface SDLPublishAppService : SDLRPCRequest + +/** + * Convenience init. + * + * @param appServiceManifest The app service manifest + * @return A SDLPublishAppService object + */ +- (instancetype)initWithAppServiceManifest:(SDLAppServiceManifest *)appServiceManifest; + +/** + * The manifest of the service that wishes to be published. + * If already published, the updated manifest for this service. + * + * SDLAppServiceManifest, Required + */ +@property (strong, nonatomic) SDLAppServiceManifest *appServiceManifest; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.m new file mode 100644 index 0000000..dad78f1 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.m @@ -0,0 +1,52 @@ +// +// SDLPublishAppService.m +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLPublishAppService.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLAppServiceManifest.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLPublishAppService + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNamePublishAppService]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithAppServiceManifest:(SDLAppServiceManifest *)appServiceManifest { + self = [self init]; + if (!self) { + return nil; + } + + self.appServiceManifest = appServiceManifest; + + return self; +} + +- (void)setAppServiceManifest:(SDLAppServiceManifest *)appServiceManifest { + [self.parameters sdl_setObject:appServiceManifest forName:SDLRPCParameterNameAppServiceManifest]; +} + +- (SDLAppServiceManifest *)appServiceManifest { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAppServiceManifest ofClass:SDLAppServiceManifest.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.h new file mode 100644 index 0000000..70f398e --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.h @@ -0,0 +1,38 @@ +// +// SDLPublishAppServiceResponse.h +// SmartDeviceLink +// +// Created by Nicole on 2/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +@class SDLAppServiceRecord; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Response to the request to register a service offered by this app on the module. + */ +@interface SDLPublishAppServiceResponse : SDLRPCResponse + +/** + * Convenience init. + * + * @param appServiceRecord If the request was successful, this object will be the current status of the service record for the published service. This will include the Core supplied service ID. + * @return A SDLPublishAppServiceResponse object + */ +- (instancetype)initWithAppServiceRecord:(SDLAppServiceRecord *)appServiceRecord; + +/** + * If the request was successful, this object will be the current status of the service record for the published service. This will include the Core supplied service ID. + * + * SDLAppServiceRecord, Optional + */ +@property (nullable, strong, nonatomic) SDLAppServiceRecord *appServiceRecord; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.m new file mode 100644 index 0000000..fb74499 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.m @@ -0,0 +1,50 @@ +// +// SDLPublishAppServiceResponse.m +// SmartDeviceLink +// +// Created by Nicole on 2/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLPublishAppServiceResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLAppServiceRecord.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLPublishAppServiceResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNamePublishAppService]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithAppServiceRecord:(SDLAppServiceRecord *)appServiceRecord { + self = [self init]; + if (!self) { + return nil; + } + + self.appServiceRecord = appServiceRecord; + + return self; +} + +- (void)setAppServiceRecord:(nullable SDLAppServiceRecord *)appServiceRecord { + [self.parameters sdl_setObject:appServiceRecord forName:SDLRPCParameterNameAppServiceRecord]; +} + +- (nullable SDLAppServiceRecord *)appServiceRecord { + return [self.parameters sdl_objectForName:SDLRPCParameterNameAppServiceRecord ofClass:SDLAppServiceRecord.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.h index ac621a0..98a05fe 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.h @@ -88,7 +88,14 @@ NS_ASSUME_NONNULL_BEGIN * * Required, max length 255 characters */ -@property (strong, nonatomic) NSString *syncFileName; +@property (strong, nonatomic) NSString *syncFileName __deprecated_msg("use sdlFileName instead"); + +/** +* File reference name +* +* Required, max length 255 characters +*/ +@property (strong, nonatomic) NSString *sdlFileName; /** * A FileType value representing a selected file type diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.m index f058b5e..2470be1 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.m @@ -4,7 +4,8 @@ #import "SDLPutFile.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import @@ -12,11 +13,14 @@ @implementation SDLPutFile +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNamePutFile]) { + if (self = [super initWithName:SDLRPCFunctionNamePutFile]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType { self = [self init]; @@ -24,7 +28,7 @@ - (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)file return nil; } - self.syncFileName = fileName; + self.sdlFileName = fileName; self.fileType = fileType; return self; @@ -83,59 +87,70 @@ - (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)file #pragma mark - Getters and Setters - (void)setSyncFileName:(NSString *)syncFileName { - [parameters sdl_setObject:syncFileName forName:SDLNameSyncFileName]; + [self.parameters sdl_setObject:syncFileName forName:SDLRPCParameterNameSyncFileName]; } - (NSString *)syncFileName { - return [parameters sdl_objectForName:SDLNameSyncFileName]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncFileName ofClass:NSString.class error:&error]; +} + +- (void)setSdlFileName:(NSString *)syncFileName { + [self.parameters sdl_setObject:syncFileName forName:SDLRPCParameterNameSyncFileName]; +} + +- (NSString *)sdlFileName { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncFileName ofClass:NSString.class error:&error]; } - (void)setFileType:(SDLFileType)fileType { - [parameters sdl_setObject:fileType forName:SDLNameFileType]; + [self.parameters sdl_setObject:fileType forName:SDLRPCParameterNameFileType]; } - (SDLFileType)fileType { - return [parameters sdl_objectForName:SDLNameFileType]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameFileType error:&error]; } - (void)setPersistentFile:(nullable NSNumber *)persistentFile { - [parameters sdl_setObject:persistentFile forName:SDLNamePersistentFile]; + [self.parameters sdl_setObject:persistentFile forName:SDLRPCParameterNamePersistentFile]; } - (nullable NSNumber *)persistentFile { - return [parameters sdl_objectForName:SDLNamePersistentFile]; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePersistentFile ofClass:NSNumber.class error:nil]; } - (void)setSystemFile:(nullable NSNumber *)systemFile { - [parameters sdl_setObject:systemFile forName:SDLNameSystemFile]; + [self.parameters sdl_setObject:systemFile forName:SDLRPCParameterNameSystemFile]; } - (nullable NSNumber *)systemFile { - return [parameters sdl_objectForName:SDLNameSystemFile]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSystemFile ofClass:NSNumber.class error:nil]; } - (void)setOffset:(nullable NSNumber *)offset { - [parameters sdl_setObject:offset forName:SDLNameOffset]; + [self.parameters sdl_setObject:offset forName:SDLRPCParameterNameOffset]; } - (nullable NSNumber *)offset { - return [parameters sdl_objectForName:SDLNameOffset]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameOffset ofClass:NSNumber.class error:nil]; } - (void)setLength:(nullable NSNumber *)length { - [parameters sdl_setObject:length forName:SDLNameLength]; + [self.parameters sdl_setObject:length forName:SDLRPCParameterNameLength]; } - (nullable NSNumber *)length { - return [parameters sdl_objectForName:SDLNameLength]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameLength ofClass:NSNumber.class error:nil]; } - (void)setCrc:(nullable NSNumber *)crc { - [parameters sdl_setObject:crc forName:SDLNameCRC]; + [self.parameters sdl_setObject:crc forName:SDLRPCParameterNameCRC]; } - (nullable NSNumber *)crc { - return [parameters sdl_objectForName:SDLNameCRC]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameCRC ofClass:NSNumber.class error:nil]; } #pragma mark - Helpers diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFileResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFileResponse.m index 93d0caa..aecbf9b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFileResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFileResponse.m @@ -5,24 +5,28 @@ #import "SDLPutFileResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLPutFileResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNamePutFile]) { + if (self = [super initWithName:SDLRPCFunctionNamePutFile]) { } return self; } +#pragma clang diagnostic pop - (void)setSpaceAvailable:(nullable NSNumber *)spaceAvailable { - [parameters sdl_setObject:spaceAvailable forName:SDLNameSpaceAvailable]; + [self.parameters sdl_setObject:spaceAvailable forName:SDLRPCParameterNameSpaceAvailable]; } - (nullable NSNumber *)spaceAvailable { - return [parameters sdl_objectForName:SDLNameSpaceAvailable]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSpaceAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.h index 80d269a..fc5b92b 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.h @@ -11,6 +11,16 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLRDSData : SDLRPCStruct +/// Convenience init +/// +/// @param programService Program Service Name +/// @param radioText Radio Text +/// @param clockText The clock text in UTC format as YYYY-MM-DDThh:mm:ss.sTZD +/// @param programIdentification Program Identification - the call sign for the radio station +/// @param programType The program type - The region should be used to differentiate between EU and North America program types +/// @param trafficProgramIdentification Traffic Program Identification - Identifies a station that offers traffic +/// @param trafficAnnouncementIdentification Traffic Announcement Identification - Indicates an ongoing traffic announcement +/// @param region Region - (instancetype)initWithProgramService:(nullable NSString *)programService radioText:(nullable NSString *)radioText clockText:(nullable NSString *)clockText programIdentification:(nullable NSString *)programIdentification programType:(nullable NSNumber *)programType trafficProgramIdentification:(nullable NSNumber *)trafficProgramIdentification trafficAnnouncementIdentification:(nullable NSNumber *)trafficAnnouncementIdentification region:(nullable NSString *)region; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.m index 9a8f558..2d177e6 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.m @@ -3,7 +3,7 @@ // #import "SDLRDSData.h" -#include "SDLNames.h" +#include "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -27,67 +27,67 @@ - (instancetype)initWithProgramService:(nullable NSString *)programService radio } - (void)setProgramService:(nullable NSString *)programService { - [store sdl_setObject:programService forName:SDLNameProgramService]; + [self.store sdl_setObject:programService forName:SDLRPCParameterNameProgramService]; } - (nullable NSString *)programService { - return [store sdl_objectForName:SDLNameProgramService]; + return [self.store sdl_objectForName:SDLRPCParameterNameProgramService ofClass:NSString.class error:nil]; } - (void)setRadioText:(nullable NSString *)radioText { - [store sdl_setObject:radioText forName:SDLNameRadioText]; + [self.store sdl_setObject:radioText forName:SDLRPCParameterNameRadioText]; } - (nullable NSString *)radioText { - return [store sdl_objectForName:SDLNameRadioText]; + return [self.store sdl_objectForName:SDLRPCParameterNameRadioText ofClass:NSString.class error:nil]; } - (void)setClockText:(nullable NSString *)clockText { - [store sdl_setObject:clockText forName:SDLNameClockText]; + [self.store sdl_setObject:clockText forName:SDLRPCParameterNameClockText]; } - (nullable NSString *)clockText { - return [store sdl_objectForName:SDLNameClockText]; + return [self.store sdl_objectForName:SDLRPCParameterNameClockText ofClass:NSString.class error:nil]; } - (void)setProgramIdentification:(nullable NSString *)programIdentification { - [store sdl_setObject:programIdentification forName:SDLNameProgramIdentification]; + [self.store sdl_setObject:programIdentification forName:SDLRPCParameterNameProgramIdentification]; } - (nullable NSString *)programIdentification { - return [store sdl_objectForName:SDLNameProgramIdentification]; + return [self.store sdl_objectForName:SDLRPCParameterNameProgramIdentification ofClass:NSString.class error:nil]; } - (void)setProgramType:(nullable NSNumber *)programType { - [store sdl_setObject:programType forName:SDLNameProgramType]; + [self.store sdl_setObject:programType forName:SDLRPCParameterNameProgramType]; } - (nullable NSNumber *)programType { - return [store sdl_objectForName:SDLNameProgramType]; + return [self.store sdl_objectForName:SDLRPCParameterNameProgramType ofClass:NSNumber.class error:nil]; } - (void)setTrafficProgramIdentification:(nullable NSNumber *)trafficProgramIdentification { - [store sdl_setObject:trafficProgramIdentification forName:SDLNameTrafficProgramIdentification]; + [self.store sdl_setObject:trafficProgramIdentification forName:SDLRPCParameterNameTrafficProgramIdentification]; } - (nullable NSNumber *)trafficProgramIdentification { - return [store sdl_objectForName:SDLNameTrafficProgramIdentification]; + return [self.store sdl_objectForName:SDLRPCParameterNameTrafficProgramIdentification ofClass:NSNumber.class error:nil]; } - (void)setTrafficAnnouncementIdentification:(nullable NSNumber *)trafficAnnouncementIdentification { - [store sdl_setObject:trafficAnnouncementIdentification forName:SDLNameTrafficAnnouncementIdentification]; + [self.store sdl_setObject:trafficAnnouncementIdentification forName:SDLRPCParameterNameTrafficAnnouncementIdentification]; } - (nullable NSNumber *)trafficAnnouncementIdentification { - return [store sdl_objectForName:SDLNameTrafficAnnouncementIdentification]; + return [self.store sdl_objectForName:SDLRPCParameterNameTrafficAnnouncementIdentification ofClass:NSNumber.class error:nil]; } - (void)setRegion:(nullable NSString *)region { - [store sdl_setObject:region forName:SDLNameRegion]; + [self.store sdl_setObject:region forName:SDLRPCParameterNameRegion]; } - (nullable NSString *)region { - return [store sdl_objectForName:SDLNameRegion]; + return [self.store sdl_objectForName:SDLRPCParameterNameRegion ofClass:NSString.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.h index 4de64a6..3702b1b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.h @@ -13,6 +13,9 @@ NS_ASSUME_NONNULL_BEGIN +/// Represents an RGB color +/// +/// @since 5.0 @interface SDLRGBColor : SDLRPCStruct /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.m index 9ed7b30..1c611e0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.m @@ -9,7 +9,7 @@ #import "SDLRGBColor.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -41,27 +41,30 @@ - (instancetype)initWithColor:(UIColor *)color { #pragma mark - Setters - (void)setRed:(NSNumber *)red { - [store sdl_setObject:red forName:SDLNameRed]; + [self.store sdl_setObject:red forName:SDLRPCParameterNameRed]; } - (NSNumber *)red { - return [store sdl_objectForName:SDLNameRed]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameRed ofClass:NSNumber.class error:&error]; } - (void)setGreen:(NSNumber *)green { - [store sdl_setObject:green forName:SDLNameGreen]; + [self.store sdl_setObject:green forName:SDLRPCParameterNameGreen]; } - (NSNumber *)green { - return [store sdl_objectForName:SDLNameGreen]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameGreen ofClass:NSNumber.class error:&error]; } - (void)setBlue:(NSNumber *)blue { - [store sdl_setObject:blue forName:SDLNameBlue]; + [self.store sdl_setObject:blue forName:SDLRPCParameterNameBlue]; } - (NSNumber *)blue { - return [store sdl_objectForName:SDLNameBlue]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameBlue ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.h new file mode 100644 index 0000000..fce4b61 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.h @@ -0,0 +1,280 @@ +// +// SDLRPCFunctionNames.h +// SmartDeviceLink +// +// Created by Nicole on 3/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * All RPC request / response / notification names + */ +typedef SDLEnum SDLRPCFunctionName SDL_SWIFT_ENUM; + +/// Function name for an AddCommand RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameAddCommand; + +/// Function name for an AddSubMenu RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameAddSubMenu; + +/// Function name for an Alert RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameAlert; + +/// Function name for an AlertManeuver RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameAlertManeuver; + +/// Function name for a ButtonPress RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameButtonPress; + +/// Function name for a CancelInteraction RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameCancelInteraction; + +/// Function name for a ChangeRegistration RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameChangeRegistration; + +/// Function name for a CloseApplication RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameCloseApplication; + +/// Function name for a CreateInteractionChoiceSet RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameCreateInteractionChoiceSet; + +/// Function name for a DeleteCommand RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteCommand; + +/// Function name for a DeleteFile RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteFile; + +/// Function name for a DeleteInteractionChoiceSet RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteInteractionChoiceSet; + +/// Function name for a DeleteSubMenu RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteSubMenu; + +/// Function name for a DiagnosticMessage RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameDiagnosticMessage; + +/// Function name for a DialNumber RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameDialNumber; + +/// Function name for an CreateInteractionChoiceSet RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameEncodedSyncPData __deprecated; + +/// Function name for an EndAudioPassThru RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameEndAudioPassThru; + +/// Function name for an GenricResponse Response RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameGenericResponse; + +/// Function name for an CreateInteractionChoiceSet RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameGetAppServiceData; + +/// Function name for a GetDTCs RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameGetDTCs; + +/// Function name for a GetFile RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameGetFile; + +/// Function name for a GetCloudAppProperties RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameGetCloudAppProperties; + +/// Function name for a GetInteriorVehicleData RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleData; + +/// Function name for a GetInteriorVehicleDataConsent RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleDataConsent; + +/// Function name for a GetSystemCapability RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameGetSystemCapability; + +/// Function name for a GetVehicleData RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameGetVehicleData; + +/// Function name for a GetWayPoints RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameGetWayPoints; + +/// Function name for a ListFiles RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameListFiles; + +/// Function name for an OnAppInterfaceUnregistered notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnAppInterfaceUnregistered; + +/// Function name for an OnAppServiceData notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnAppServiceData; + +/// Function name for an OnAudioPassThru notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnAudioPassThru; + +/// Function name for an OnButtonEvent notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnButtonEvent; + +/// Function name for an OnButtonPress notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnButtonPress; + +/// Function name for an OnCommand notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnCommand; + +/// Function name for an OnDriverDistraction notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnDriverDistraction; + +/// Function name for an OnEncodedSyncPData notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnEncodedSyncPData __deprecated; + +/// Function name for an OnHashChange notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnHashChange; + +/// Function name for an OnHMIStatus notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnHMIStatus; + +/// Function name for an OnInteriorVehicleData notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnInteriorVehicleData; + +/// Function name for an OnKeyboardInput notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnKeyboardInput; + +/// Function name for an OnLanguageChange notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnLanguageChange; + +/// Function name for an OnLockScreenStatus notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnLockScreenStatus; + +/// Function name for an OnPermissionsChange notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnPermissionsChange; + +/// Function name for an OnRCStatus notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnRCStatus; + +/// Function name for an OnSyncPData notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnSyncPData __deprecated; + +/// Function name for an OnSystemCapabilityUpdated notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnSystemCapabilityUpdated; + +/// Function name for an OnSystemRequest notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnSystemRequest; + +/// Function name for an OnTBTClientState notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnTBTClientState; + +/// Function name for an OnTouchEvent notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnTouchEvent; + +/// Function name for an OnVehicleData notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnVehicleData; + +/// Function name for an OnWayPointChange notification RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameOnWayPointChange; + +/// Function name for a PerformAppServiceInteraction RPC +extern SDLRPCFunctionName const SDLRPCFunctionNamePerformAppServiceInteraction; + +/// Function name for a PerformAppServiceInteraction RPC +extern SDLRPCFunctionName const SDLRPCFunctionNamePerformAudioPassThru; + +/// Function name for a PerformInteraction RPC +extern SDLRPCFunctionName const SDLRPCFunctionNamePerformInteraction; + +/// Function name for a PublishAppService RPC +extern SDLRPCFunctionName const SDLRPCFunctionNamePublishAppService; + +/// Function name for a PutFile RPC +extern SDLRPCFunctionName const SDLRPCFunctionNamePutFile; + +/// Function name for a ReadDID RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameReadDID; + +/// Function name for a ReleaseInteriorVehicleDataModule RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameReleaseInteriorVehicleDataModule; + +/// Function name for a RegisterAppInterface RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameRegisterAppInterface; + +/// Function name for a Reserved RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameReserved; + +/// Function name for a ResetGlobalProperties RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameResetGlobalProperties; + +/// Function name for a ScrollableMessage RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameScrollableMessage; + +/// Function name for a SendHapticData RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSendHapticData; + +/// Function name for a SendLocation RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSendLocation; + +/// Function name for a SetAppIcon RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSetAppIcon; + +/// Function name for a SetCloudProperties RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSetCloudAppProperties; + +/// Function name for a SetDisplayLayout RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSetDisplayLayout; + +/// Function name for a SetGlobalProperties RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSetGlobalProperties; + +/// Function name for a SetInteriorVehicleData RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSetInteriorVehicleData; + +/// Function name for a SetMediaClockTimer RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSetMediaClockTimer; + +/// Function name for a Show RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameShow; + +/// Function name for a ShowAppMenu RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameShowAppMenu; + +/// Function name for a ShowConstantTBT RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameShowConstantTBT; + +/// Function name for a Slider RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSlider; + +/// Function name for a Speak RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSpeak; + +/// Function name for a SubscribeButton RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSubscribeButton; + +/// Function name for a SubscribeVehicleData RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSubscribeVehicleData; + +/// Function name for a SubscribeWayPoints RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSubscribeWayPoints; + +/// Function name for a SyncPData RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSyncPData __deprecated; + +/// Function name for a SystemRequest RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameSystemRequest; + +/// Function name for an UnpublishAppService RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameUnpublishAppService; + +/// Function name for an UnregisterAppInterface RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameUnregisterAppInterface; + +/// Function name for an UnsubscribeButton RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeButton; + +/// Function name for an UnsubscribeVehicleData RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeVehicleData; + +/// Function name for an UnsubscribeWayPoints RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeWayPoints; + +/// Function name for an UpdateTurnList RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameUpdateTurnList; + +/// Function name for a CreateWindow RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameCreateWindow; + +/// Function name for a DeleteWindow RPC +extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteWindow; + + diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.m new file mode 100644 index 0000000..7449224 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.m @@ -0,0 +1,98 @@ +// +// SDLRPCFunctionNames.m +// SmartDeviceLink +// +// Created by Nicole on 3/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCFunctionNames.h" + +SDLRPCFunctionName const SDLRPCFunctionNameAddCommand = @"AddCommand"; +SDLRPCFunctionName const SDLRPCFunctionNameAddSubMenu = @"AddSubMenu"; +SDLRPCFunctionName const SDLRPCFunctionNameAlert = @"Alert"; +SDLRPCFunctionName const SDLRPCFunctionNameAlertManeuver = @"AlertManeuver"; +SDLRPCFunctionName const SDLRPCFunctionNameButtonPress = @"ButtonPress"; +SDLRPCFunctionName const SDLRPCFunctionNameCancelInteraction = @"CancelInteraction"; +SDLRPCFunctionName const SDLRPCFunctionNameChangeRegistration = @"ChangeRegistration"; +SDLRPCFunctionName const SDLRPCFunctionNameCloseApplication = @"CloseApplication"; +SDLRPCFunctionName const SDLRPCFunctionNameCreateInteractionChoiceSet = @"CreateInteractionChoiceSet"; +SDLRPCFunctionName const SDLRPCFunctionNameDeleteCommand = @"DeleteCommand"; +SDLRPCFunctionName const SDLRPCFunctionNameDeleteFile = @"DeleteFile"; +SDLRPCFunctionName const SDLRPCFunctionNameDeleteInteractionChoiceSet = @"DeleteInteractionChoiceSet"; +SDLRPCFunctionName const SDLRPCFunctionNameDeleteSubMenu = @"DeleteSubMenu"; +SDLRPCFunctionName const SDLRPCFunctionNameDiagnosticMessage = @"DiagnosticMessage"; +SDLRPCFunctionName const SDLRPCFunctionNameDialNumber = @"DialNumber"; +SDLRPCFunctionName const SDLRPCFunctionNameEncodedSyncPData = @"EncodedSyncPData"; +SDLRPCFunctionName const SDLRPCFunctionNameEndAudioPassThru = @"EndAudioPassThru"; +SDLRPCFunctionName const SDLRPCFunctionNameGenericResponse = @"GenericResponse"; +SDLRPCFunctionName const SDLRPCFunctionNameGetAppServiceData = @"GetAppServiceData"; +SDLRPCFunctionName const SDLRPCFunctionNameGetDTCs = @"GetDTCs"; +SDLRPCFunctionName const SDLRPCFunctionNameGetFile = @"GetFile"; +SDLRPCFunctionName const SDLRPCFunctionNameGetCloudAppProperties = @"GetCloudAppProperties"; +SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleData = @"GetInteriorVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleDataConsent = @"GetInteriorVehicleDataConsent"; +SDLRPCFunctionName const SDLRPCFunctionNameGetSystemCapability = @"GetSystemCapability"; +SDLRPCFunctionName const SDLRPCFunctionNameGetVehicleData = @"GetVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameGetWayPoints = @"GetWayPoints"; +SDLRPCFunctionName const SDLRPCFunctionNameListFiles = @"ListFiles"; +SDLRPCFunctionName const SDLRPCFunctionNameOnAppInterfaceUnregistered = @"OnAppInterfaceUnregistered"; +SDLRPCFunctionName const SDLRPCFunctionNameOnAppServiceData = @"OnAppServiceData"; +SDLRPCFunctionName const SDLRPCFunctionNameOnAudioPassThru = @"OnAudioPassThru"; +SDLRPCFunctionName const SDLRPCFunctionNameOnButtonEvent = @"OnButtonEvent"; +SDLRPCFunctionName const SDLRPCFunctionNameOnButtonPress = @"OnButtonPress"; +SDLRPCFunctionName const SDLRPCFunctionNameOnCommand = @"OnCommand"; +SDLRPCFunctionName const SDLRPCFunctionNameOnDriverDistraction = @"OnDriverDistraction"; +SDLRPCFunctionName const SDLRPCFunctionNameOnEncodedSyncPData = @"OnEncodedSyncPData"; +SDLRPCFunctionName const SDLRPCFunctionNameOnHashChange = @"OnHashChange"; +SDLRPCFunctionName const SDLRPCFunctionNameOnHMIStatus = @"OnHMIStatus"; +SDLRPCFunctionName const SDLRPCFunctionNameOnInteriorVehicleData = @"OnInteriorVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameOnKeyboardInput = @"OnKeyboardInput"; +SDLRPCFunctionName const SDLRPCFunctionNameOnLanguageChange = @"OnLanguageChange"; +SDLRPCFunctionName const SDLRPCFunctionNameOnLockScreenStatus = @"OnLockScreenStatus"; +SDLRPCFunctionName const SDLRPCFunctionNameOnPermissionsChange = @"OnPermissionsChange"; +SDLRPCFunctionName const SDLRPCFunctionNameOnRCStatus = @"OnRCStatus"; +SDLRPCFunctionName const SDLRPCFunctionNameOnSyncPData = @"OnSyncPData"; +SDLRPCFunctionName const SDLRPCFunctionNameOnSystemCapabilityUpdated = @"OnSystemCapabilityUpdated"; +SDLRPCFunctionName const SDLRPCFunctionNameOnSystemRequest = @"OnSystemRequest"; +SDLRPCFunctionName const SDLRPCFunctionNameOnTBTClientState = @"OnTBTClientState"; +SDLRPCFunctionName const SDLRPCFunctionNameOnTouchEvent = @"OnTouchEvent"; +SDLRPCFunctionName const SDLRPCFunctionNameOnVehicleData = @"OnVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameOnWayPointChange = @"OnWayPointChange"; +SDLRPCFunctionName const SDLRPCFunctionNamePerformAppServiceInteraction = @"PerformAppServiceInteraction"; +SDLRPCFunctionName const SDLRPCFunctionNamePerformAudioPassThru = @"PerformAudioPassThru"; +SDLRPCFunctionName const SDLRPCFunctionNamePerformInteraction = @"PerformInteraction"; +SDLRPCFunctionName const SDLRPCFunctionNamePublishAppService = @"PublishAppService"; +SDLRPCFunctionName const SDLRPCFunctionNamePutFile = @"PutFile"; +SDLRPCFunctionName const SDLRPCFunctionNameReadDID = @"ReadDID"; +SDLRPCFunctionName const SDLRPCFunctionNameReleaseInteriorVehicleDataModule = @"ReleaseInteriorVehicleDataModule"; +SDLRPCFunctionName const SDLRPCFunctionNameRegisterAppInterface = @"RegisterAppInterface"; +SDLRPCFunctionName const SDLRPCFunctionNameReserved = @"reserved"; +SDLRPCFunctionName const SDLRPCFunctionNameResetGlobalProperties = @"ResetGlobalProperties"; +SDLRPCFunctionName const SDLRPCFunctionNameScrollableMessage = @"ScrollableMessage"; +SDLRPCFunctionName const SDLRPCFunctionNameSendHapticData = @"SendHapticData"; +SDLRPCFunctionName const SDLRPCFunctionNameSendLocation = @"SendLocation"; +SDLRPCFunctionName const SDLRPCFunctionNameSetAppIcon = @"SetAppIcon"; +SDLRPCFunctionName const SDLRPCFunctionNameSetCloudAppProperties = @"SetCloudAppProperties"; +SDLRPCFunctionName const SDLRPCFunctionNameSetDisplayLayout = @"SetDisplayLayout"; +SDLRPCFunctionName const SDLRPCFunctionNameSetGlobalProperties = @"SetGlobalProperties"; +SDLRPCFunctionName const SDLRPCFunctionNameSetInteriorVehicleData = @"SetInteriorVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameSetMediaClockTimer = @"SetMediaClockTimer"; +SDLRPCFunctionName const SDLRPCFunctionNameShow = @"Show"; +SDLRPCFunctionName const SDLRPCFunctionNameShowAppMenu = @"ShowAppMenu"; +SDLRPCFunctionName const SDLRPCFunctionNameShowConstantTBT = @"ShowConstantTBT"; +SDLRPCFunctionName const SDLRPCFunctionNameSlider = @"Slider"; +SDLRPCFunctionName const SDLRPCFunctionNameSpeak = @"Speak"; +SDLRPCFunctionName const SDLRPCFunctionNameSubscribeButton = @"SubscribeButton"; +SDLRPCFunctionName const SDLRPCFunctionNameSubscribeVehicleData = @"SubscribeVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameSubscribeWayPoints = @"SubscribeWayPoints"; +SDLRPCFunctionName const SDLRPCFunctionNameSyncPData = @"SyncPData"; +SDLRPCFunctionName const SDLRPCFunctionNameSystemRequest = @"SystemRequest"; +SDLRPCFunctionName const SDLRPCFunctionNameUnpublishAppService = @"UnpublishAppService"; +SDLRPCFunctionName const SDLRPCFunctionNameUnregisterAppInterface = @"UnregisterAppInterface"; +SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeButton = @"UnsubscribeButton"; +SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeVehicleData = @"UnsubscribeVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeWayPoints = @"UnsubscribeWayPoints"; +SDLRPCFunctionName const SDLRPCFunctionNameUpdateTurnList = @"UpdateTurnList"; +SDLRPCFunctionName const SDLRPCFunctionNameCreateWindow = @"CreateWindow"; +SDLRPCFunctionName const SDLRPCFunctionNameDeleteWindow = @"DeleteWindow"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.h index dcc5457..c6b0407 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.h @@ -7,11 +7,10 @@ NS_ASSUME_NONNULL_BEGIN -@interface SDLRPCMessage : SDLRPCStruct { - NSMutableDictionary *function; - NSMutableDictionary *parameters; - NSString *messageType; -} +/// Parent class of all RPC messages. +/// +/// Contains basic information about an RPC message. +@interface SDLRPCMessage : SDLRPCStruct /** * Convenience init @@ -19,29 +18,21 @@ NS_ASSUME_NONNULL_BEGIN * @param name The name of the message * @return A SDLRPCMessage object */ -- (instancetype)initWithName:(NSString *)name; - -/** - * Convenience init - * - * @param dict A dictionary with the format @{messageType: @{parameters}} - * @return A SDLRPCMessage object - */ -- (instancetype)initWithDictionary:(NSDictionary *)dict; +- (instancetype)initWithName:(NSString *)name __deprecated_msg("This is not intended to be a public facing API"); /** * Returns the function name. * * @return The function name */ -- (nullable NSString *)getFunctionName; +- (nullable NSString *)getFunctionName __deprecated_msg("Call the .name property instead"); /** * Sets the function name. * * @param functionName The function name */ -- (void)setFunctionName:(nullable NSString *)functionName; +- (void)setFunctionName:(nullable NSString *)functionName __deprecated_msg("This is not intended to be a public facing API"); /** * Returns the value associated with the provided key. If the key does not exist, null is returned. @@ -49,7 +40,7 @@ NS_ASSUME_NONNULL_BEGIN * @param functionName The key name * @return The value associated with the function name */ -- (nullable NSObject *)getParameters:(NSString *)functionName; +- (nullable NSObject *)getParameters:(NSString *)functionName __deprecated_msg("Call the .parameters property instead"); /** * Sets a key-value pair using the function name as the key. @@ -57,7 +48,7 @@ NS_ASSUME_NONNULL_BEGIN * @param functionName The name for the key * @param value The value associated with the function name */ -- (void)setParameters:(NSString *)functionName value:(nullable NSObject *)value; +- (void)setParameters:(NSString *)functionName value:(nullable NSObject *)value __deprecated_msg("This is not intended to be a public facing API"); /** * The data in the message @@ -69,6 +60,11 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, readonly) NSString *name; +/** + The JSON-RPC parameters + */ +@property (strong, nonatomic, readonly) NSMutableDictionary *parameters; + /** * The type of data in the message */ diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.m index 7ca6b4b..15a6dd4 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.m @@ -5,75 +5,94 @@ #import "SDLRPCMessage.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN -@implementation SDLRPCMessage +@interface SDLRPCMessage () + +@property (strong, nonatomic, readwrite) NSString *messageType; +@property (strong, nonatomic) NSMutableDictionary *function; + +@end -@synthesize messageType; + +@implementation SDLRPCMessage - (instancetype)initWithName:(NSString *)name { - if (self = [super init]) { - function = [[NSMutableDictionary alloc] initWithCapacity:3]; - parameters = [[NSMutableDictionary alloc] init]; - messageType = SDLNameRequest; - [store setObject:function forKey:messageType]; - [function setObject:parameters forKey:SDLNameParameters]; - [function setObject:name forKey:SDLNameOperationName]; + self = [super init]; + if (!self) { + return nil; } + + _function = [NSMutableDictionary dictionaryWithCapacity:3]; + _parameters = [NSMutableDictionary dictionary]; + _messageType = SDLRPCParameterNameRequest; + self.store[_messageType] = _function; + + _function[SDLRPCParameterNameParameters] = _parameters; + _function[SDLRPCParameterNameOperationName] = name; + return self; } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" - (instancetype)initWithDictionary:(NSDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - NSEnumerator *enumerator = [store keyEnumerator]; - while (messageType = [enumerator nextObject]) { - if (![messageType isEqualToString:SDLNameBulkData]) { - break; - } - } - if (messageType != nil) { - store[messageType] = [store[messageType] mutableCopy]; - function = store[messageType]; + self = [super initWithDictionary:dict]; + if (!self) { + return nil; + } - function[SDLNameParameters] = [function[SDLNameParameters] mutableCopy]; - parameters = function[SDLNameParameters]; + NSEnumerator *enumerator = [self.store keyEnumerator]; + while (_messageType = [enumerator nextObject]) { + if (![_messageType isEqualToString:SDLRPCParameterNameBulkData]) { + break; } - self.bulkData = dict[SDLNameBulkData]; } + + if (_messageType != nil) { + self.store[_messageType] = [self.store[_messageType] mutableCopy]; + _function = self.store[_messageType]; + + _function[SDLRPCParameterNameParameters] = [_function[SDLRPCParameterNameParameters] mutableCopy]; + _parameters = _function[SDLRPCParameterNameParameters]; + } + + _bulkData = dict[SDLRPCParameterNameBulkData]; return self; } +#pragma clang diagnostic pop - (nullable NSString *)getFunctionName { - return [function sdl_objectForName:SDLNameOperationName]; + return self.name; } - (void)setFunctionName:(nullable NSString *)functionName { - [function sdl_setObject:functionName forName:SDLNameOperationName]; + [_function sdl_setObject:functionName forName:SDLRPCParameterNameOperationName]; } - (nullable NSObject *)getParameters:(NSString *)functionName { - return [parameters sdl_objectForName:functionName]; + return [_parameters sdl_objectForName:functionName ofClass:NSObject.class error:nil]; } - (void)setParameters:(NSString *)functionName value:(nullable NSObject *)value { - [parameters sdl_setObject:value forName:functionName]; + [_parameters sdl_setObject:value forName:functionName]; } - (NSString *)name { - return [self getFunctionName]; + return [_function sdl_objectForName:SDLRPCParameterNameOperationName ofClass:NSString.class error:nil]; } - (NSString *)description { - NSMutableString *description = [NSMutableString stringWithFormat:@"%@ (%@)\n%@", self.name, self.messageType, self->parameters]; + NSMutableString *description = [NSMutableString stringWithFormat:@"%@ (%@)\n%@", self.name, self.messageType, self.parameters]; return description; } - (id)copyWithZone:(nullable NSZone *)zone { - SDLRPCMessage *newMessage = [[self.class allocWithZone:zone] initWithDictionary:self->store]; + SDLRPCMessage *newMessage = [[self.class allocWithZone:zone] initWithDictionary:self.store]; return newMessage; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.h index 383da11..8919c55 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.h @@ -3,15 +3,24 @@ #import +#import "SDLEnum.h" + /** The type of RPC message - - - SDLRPCMessageTypeRequest: A request from the app to the IVI system - - SDLRPCMessageTypeResponse: A response from the IVI system to the app - - SDLRPCMessageTypeNotification: A notification from the IVI system to the app */ typedef NS_ENUM(Byte, SDLRPCMessageType) { + /// A request that will require a response SDLRPCMessageTypeRequest = 0, + + /// A response to a request SDLRPCMessageTypeResponse, + + /// A message that does not have a response SDLRPCMessageTypeNotification }; + +typedef SDLEnum SDLRPCMessageTypeName SDL_SWIFT_ENUM; + +extern SDLRPCMessageTypeName const SDLRPCMessageTypeNameRequest; +extern SDLRPCMessageTypeName const SDLRPCMessageTypeNameResponse; +extern SDLRPCMessageTypeName const SDLRPCMessageTypeNameNotification; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.m new file mode 100644 index 0000000..365cd26 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.m @@ -0,0 +1,13 @@ +// +// SDLRPCMessageType.m +// SmartDeviceLink +// +// Created by Joel Fischer on 6/12/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessageType.h" + +SDLRPCMessageTypeName const SDLRPCMessageTypeNameRequest = @"request"; +SDLRPCMessageTypeName const SDLRPCMessageTypeNameResponse = @"response"; +SDLRPCMessageTypeName const SDLRPCMessageTypeNameNotification = @"notification"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotification.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotification.m index f300a21..fa6ca7e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotification.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotification.m @@ -5,20 +5,29 @@ #import "SDLRPCNotification.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN +@interface SDLRPCMessage () + +@property (strong, nonatomic, readwrite) NSString *messageType; +@property (strong, nonatomic) NSMutableDictionary *function; + +@end + @implementation SDLRPCNotification +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" - (instancetype)initWithName:(NSString *)name { self = [super initWithName:name]; if (!self) { return nil; } - messageType = SDLNameNotification; - [store setObject:function forKey:messageType]; + self.messageType = SDLRPCParameterNameNotification; + [self.store setObject:self.function forKey:self.messageType]; return self; } @@ -29,11 +38,12 @@ - (instancetype)initWithDictionary:(NSDictionary *)dict { return nil; } - messageType = SDLNameNotification; - [store setObject:function forKey:messageType]; + self.messageType = SDLRPCParameterNameNotification; + [self.store setObject:self.function forKey:self.messageType]; return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.h new file mode 100644 index 0000000..e654196 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.h @@ -0,0 +1,728 @@ +// SDLRPCParameterNames.h +// + +#import +#import "SDLMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NSString* SDLRPCParameterName SDL_SWIFT_ENUM; + +extern SDLRPCParameterName const SDLRPCParameterNameACEnable; +extern SDLRPCParameterName const SDLRPCParameterNameACEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameACMaxEnable; +extern SDLRPCParameterName const SDLRPCParameterNameACMaxEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameAccelerationPedalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameAcceptsWayPoints; +extern SDLRPCParameterName const SDLRPCParameterNameAction; +extern SDLRPCParameterName const SDLRPCParameterNameActual; +extern SDLRPCParameterName const SDLRPCParameterNameAddress; +extern SDLRPCParameterName const SDLRPCParameterNameAddressLines; +extern SDLRPCParameterName const SDLRPCParameterNameAdministrativeArea; +extern SDLRPCParameterName const SDLRPCParameterNameAirbagStatus; +extern SDLRPCParameterName const SDLRPCParameterNameAlertIcon; +extern SDLRPCParameterName const SDLRPCParameterNameAlerts; +extern SDLRPCParameterName const SDLRPCParameterNameAlertText1; +extern SDLRPCParameterName const SDLRPCParameterNameAlertText2; +extern SDLRPCParameterName const SDLRPCParameterNameAlertText3; +extern SDLRPCParameterName const SDLRPCParameterNameAlignment; +extern SDLRPCParameterName const SDLRPCParameterNameAllocatedModules; +extern SDLRPCParameterName const SDLRPCParameterNameAllowAppConsumers; +extern SDLRPCParameterName const SDLRPCParameterNameAllowed; +extern SDLRPCParameterName const SDLRPCParameterNameAllowMultipleAccess; +extern SDLRPCParameterName const SDLRPCParameterNameAltitude; +extern SDLRPCParameterName const SDLRPCParameterNameAltitudeMeters; +extern SDLRPCParameterName const SDLRPCParameterNameAmbientLightSensorStatus; +extern SDLRPCParameterName const SDLRPCParameterNameAmbientLightStatus; +extern SDLRPCParameterName const SDLRPCParameterNameApparentTemperature; +extern SDLRPCParameterName const SDLRPCParameterNameApparentTemperatureHigh; +extern SDLRPCParameterName const SDLRPCParameterNameApparentTemperatureLow; +extern SDLRPCParameterName const SDLRPCParameterNameAppBundleId; +extern SDLRPCParameterName const SDLRPCParameterNameAppDisplayName; +extern SDLRPCParameterName const SDLRPCParameterNameAppHMIType; +extern SDLRPCParameterName const SDLRPCParameterNameAppId; +extern SDLRPCParameterName const SDLRPCParameterNameAppInfo; +extern SDLRPCParameterName const SDLRPCParameterNameAppName; +extern SDLRPCParameterName const SDLRPCParameterNameAppServiceId; +extern SDLRPCParameterName const SDLRPCParameterNameAppServiceManifest; +extern SDLRPCParameterName const SDLRPCParameterNameAppServiceRecord; +extern SDLRPCParameterName const SDLRPCParameterNameAppServices; +extern SDLRPCParameterName const SDLRPCParameterNameAppServicesCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameAppVersion; +extern SDLRPCParameterName const SDLRPCParameterNameAssociatedServiceType; +extern SDLRPCParameterName const SDLRPCParameterNameAutoCompleteList; +extern SDLRPCParameterName const SDLRPCParameterNameAudioControlCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameAudioControlData; +extern SDLRPCParameterName const SDLRPCParameterNameAudioPassThruCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText1; +extern SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText2; +extern SDLRPCParameterName const SDLRPCParameterNameAudioStreamingIndicator; +extern SDLRPCParameterName const SDLRPCParameterNameAudioStreamingState; +extern SDLRPCParameterName const SDLRPCParameterNameAudioType; +extern SDLRPCParameterName const SDLRPCParameterNameAuthToken; +extern SDLRPCParameterName const SDLRPCParameterNameAutoCompleteText; +extern SDLRPCParameterName const SDLRPCParameterNameAutoModeEnable; +extern SDLRPCParameterName const SDLRPCParameterNameAutoModeEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameAuxECallNotificationStatus; +extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDs; +extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDChannels; +extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDsAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDChannelsAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameBackgroundColor; +extern SDLRPCParameterName const SDLRPCParameterNameBackTiltAngle; +extern SDLRPCParameterName const SDLRPCParameterNameBackTiltAngleAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameBackVerticalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameBackVerticalPositionAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameBand; +extern SDLRPCParameterName const SDLRPCParameterNameBatteryLevelStatus; +extern SDLRPCParameterName const SDLRPCParameterNameBearing; +extern SDLRPCParameterName const SDLRPCParameterNameBeltStatus; +extern SDLRPCParameterName const SDLRPCParameterNameBitsPerSample; +extern SDLRPCParameterName const SDLRPCParameterNameBodyInformation; +extern SDLRPCParameterName const SDLRPCParameterNameBlue; +extern SDLRPCParameterName const SDLRPCParameterNameBluetoothIconOn; +extern SDLRPCParameterName const SDLRPCParameterNameBulkData; +extern SDLRPCParameterName const SDLRPCParameterNameButtonCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameButtonEventMode; +extern SDLRPCParameterName const SDLRPCParameterNameButtonName; +extern SDLRPCParameterName const SDLRPCParameterNameButtonPressMode; +extern SDLRPCParameterName const SDLRPCParameterNameCancelID; +extern SDLRPCParameterName const SDLRPCParameterNameColor; +extern SDLRPCParameterName const SDLRPCParameterNameCol; +extern SDLRPCParameterName const SDLRPCParameterNameColSpan; +extern SDLRPCParameterName const SDLRPCParameterNameColumns; +extern SDLRPCParameterName const SDLRPCParameterNameCoolingEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameCoolingEnabledAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameCoolingLevel; +extern SDLRPCParameterName const SDLRPCParameterNameCoolingLevelAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameCoordinate; +extern SDLRPCParameterName const SDLRPCParameterNameCallActive; +extern SDLRPCParameterName const SDLRPCParameterNameCarModeStatus; +extern SDLRPCParameterName const SDLRPCParameterNameCarrier; +extern SDLRPCParameterName const SDLRPCParameterNameChannelId; +extern SDLRPCParameterName const SDLRPCParameterNameChannelName; +extern SDLRPCParameterName const SDLRPCParameterNameChannelSetting; +extern SDLRPCParameterName const SDLRPCParameterNameCharacterSet; +extern SDLRPCParameterName const SDLRPCParameterNameChoiceId; +extern SDLRPCParameterName const SDLRPCParameterNameChoiceSet; +extern SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnable; +extern SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameClimateControlData; +extern SDLRPCParameterName const SDLRPCParameterNameClimateControlCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameCloudCover; +extern SDLRPCParameterName const SDLRPCParameterNameClusterModes; +extern SDLRPCParameterName const SDLRPCParameterNameClusterModeStatus; +extern SDLRPCParameterName const SDLRPCParameterNameCommandIcon; +extern SDLRPCParameterName const SDLRPCParameterNameCommandId; +extern SDLRPCParameterName const SDLRPCParameterNameCompassDirection; +extern SDLRPCParameterName const SDLRPCParameterNameCorrelationId; +extern SDLRPCParameterName const SDLRPCParameterNameCountryCode; +extern SDLRPCParameterName const SDLRPCParameterNameCountryName; +extern SDLRPCParameterName const SDLRPCParameterNameCRC; +extern SDLRPCParameterName const SDLRPCParameterNameClockText; +extern SDLRPCParameterName const SDLRPCParameterNameCloudAppVehicleID; +extern SDLRPCParameterName const SDLRPCParameterNameCloudTransportType; +extern SDLRPCParameterName const SDLRPCParameterNameCurrentForecast; +extern SDLRPCParameterName const SDLRPCParameterNameCurrentForecastSupported; +extern SDLRPCParameterName const SDLRPCParameterNameCurrentTemperature; +extern SDLRPCParameterName const SDLRPCParameterNameCushion; +extern SDLRPCParameterName const SDLRPCParameterNameCustomButtonId; +extern SDLRPCParameterName const SDLRPCParameterNameCustomPresets; +extern SDLRPCParameterName const SDLRPCParameterNameOEMCustomDataType; +extern SDLRPCParameterName const SDLRPCParameterNameData; +extern SDLRPCParameterName const SDLRPCParameterNameDataResult; +extern SDLRPCParameterName const SDLRPCParameterNameDataType; +extern SDLRPCParameterName const SDLRPCParameterNameDay; +extern SDLRPCParameterName const SDLRPCParameterNameDayColorScheme; +extern SDLRPCParameterName const SDLRPCParameterNameDefrostZone; +extern SDLRPCParameterName const SDLRPCParameterNameDefrostZoneAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDeliveryMode; +extern SDLRPCParameterName const SDLRPCParameterNameDensity; +extern SDLRPCParameterName const SDLRPCParameterNameDensityAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDesiredTemperature; +extern SDLRPCParameterName const SDLRPCParameterNameDesiredTemperatureAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDestination; +extern SDLRPCParameterName const SDLRPCParameterNameDestinationETA; +extern SDLRPCParameterName const SDLRPCParameterNameDetails; +extern SDLRPCParameterName const SDLRPCParameterNameDeviceInfo; +extern SDLRPCParameterName const SDLRPCParameterNameDeviceStatus; +extern SDLRPCParameterName const SDLRPCParameterNameDiagonalScreenSize; +extern SDLRPCParameterName const SDLRPCParameterNameDialNumberEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameDIDLocation; +extern SDLRPCParameterName const SDLRPCParameterNameDIDResult; +extern SDLRPCParameterName const SDLRPCParameterNameDimension; +extern SDLRPCParameterName const SDLRPCParameterNameDisplays; +extern SDLRPCParameterName const SDLRPCParameterNameDisplayCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameDisplayMode; +extern SDLRPCParameterName const SDLRPCParameterNameDisplayModeUnitAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDisplayLayout; +extern SDLRPCParameterName const SDLRPCParameterNameDisplayName; +extern SDLRPCParameterName const SDLRPCParameterNameDisplayType; +extern SDLRPCParameterName const SDLRPCParameterNameDistanceUnit; +extern SDLRPCParameterName const SDLRPCParameterNameDistanceToEmpty; +extern SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuver; +extern SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuverScale; +extern SDLRPCParameterName const SDLRPCParameterNameDistanceUnitAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDoublePressAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDriverAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNameDriverBeltDeployed; +extern SDLRPCParameterName const SDLRPCParameterNameDriverBraking; +extern SDLRPCParameterName const SDLRPCParameterNameDriverBuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameDriverCurtainAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNameDriverDistractionStatus; +extern SDLRPCParameterName const SDLRPCParameterNameDriverDoorAjar; +extern SDLRPCParameterName const SDLRPCParameterNameDriverKneeAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNameDriverSideAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNameDrivingSide; +extern SDLRPCParameterName const SDLRPCParameterNameDTC; +extern SDLRPCParameterName const SDLRPCParameterNameDTCMask; +extern SDLRPCParameterName const SDLRPCParameterNameDualModeEnable; +extern SDLRPCParameterName const SDLRPCParameterNameDualModeEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDuration; +extern SDLRPCParameterName const SDLRPCParameterNameDuplicateUpdatesFromWindowID; +extern SDLRPCParameterName const SDLRPCParameterNameE911Override; +extern SDLRPCParameterName const SDLRPCParameterNameECallConfirmationStatus; +extern SDLRPCParameterName const SDLRPCParameterNameECallEventActive; +extern SDLRPCParameterName const SDLRPCParameterNameECallInfo; +extern SDLRPCParameterName const SDLRPCParameterNameECallNotificationStatus; +extern SDLRPCParameterName const SDLRPCParameterNameECUHeader; +extern SDLRPCParameterName const SDLRPCParameterNameECUName; +extern SDLRPCParameterName const SDLRPCParameterNameElectronicParkBrakeStatus; +extern SDLRPCParameterName const SDLRPCParameterNameEmergencyEvent; +extern SDLRPCParameterName const SDLRPCParameterNameEmergencyEventType; +extern SDLRPCParameterName const SDLRPCParameterNameEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameEndpoint; +extern SDLRPCParameterName const SDLRPCParameterNameEndTime; +extern SDLRPCParameterName const SDLRPCParameterNameEngineOilLife; +extern SDLRPCParameterName const SDLRPCParameterNameEngineTorque; +extern SDLRPCParameterName const SDLRPCParameterNameEqualizerAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameEqualizerMaxChannelId; +extern SDLRPCParameterName const SDLRPCParameterNameEqualizerSettings; +extern SDLRPCParameterName const SDLRPCParameterNameETA; +extern SDLRPCParameterName const SDLRPCParameterNameEvent; +extern SDLRPCParameterName const SDLRPCParameterNameExpires; +extern SDLRPCParameterName const SDLRPCParameterNameExternalTemperature; +extern SDLRPCParameterName const SDLRPCParameterNameFanSpeed; +extern SDLRPCParameterName const SDLRPCParameterNameFanSpeedAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameFCCFacilityId; +extern SDLRPCParameterName const SDLRPCParameterNameFilename; +extern SDLRPCParameterName const SDLRPCParameterNameFilenames; +extern SDLRPCParameterName const SDLRPCParameterNameFileType; +extern SDLRPCParameterName const SDLRPCParameterNameFirmness; +extern SDLRPCParameterName const SDLRPCParameterNameFirmwareRevision; +extern SDLRPCParameterName const SDLRPCParameterNameFreeModules; +extern SDLRPCParameterName const SDLRPCParameterNameFrequencyInteger; +extern SDLRPCParameterName const SDLRPCParameterNameFrequencyFraction; +extern SDLRPCParameterName const SDLRPCParameterNameFrontVerticalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameFrontVerticalPositionAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameFuelCutoffStatus; +extern SDLRPCParameterName const SDLRPCParameterNameFuelLevel; +extern SDLRPCParameterName const SDLRPCParameterNameFuelLevelState; +extern SDLRPCParameterName const SDLRPCParameterNameFuelMaintenanceMode; +extern SDLRPCParameterName const SDLRPCParameterNameFuelRange; +extern SDLRPCParameterName const SDLRPCParameterNameFullAppID; +extern SDLRPCParameterName const SDLRPCParameterNameFunctionID; +extern SDLRPCParameterName const SDLRPCParameterNameGetWayPointsEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameGPS; +extern SDLRPCParameterName const SDLRPCParameterNameGraphic; +extern SDLRPCParameterName const SDLRPCParameterNameGraphicSupported; +extern SDLRPCParameterName const SDLRPCParameterNameGreen; +extern SDLRPCParameterName const SDLRPCParameterNameGrid; +extern SDLRPCParameterName const SDLRPCParameterNameHandledRPCs; +extern SDLRPCParameterName const SDLRPCParameterNameHapticRectData; +extern SDLRPCParameterName const SDLRPCParameterNameHapticSpatialDataSupported; +extern SDLRPCParameterName const SDLRPCParameterNameHardware; +extern SDLRPCParameterName const SDLRPCParameterNameHashId; +extern SDLRPCParameterName const SDLRPCParameterNameHDOP; +extern SDLRPCParameterName const SDLRPCParameterNameHDChannel; +extern SDLRPCParameterName const SDLRPCParameterNameHDChannelAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHDRadioEnable; +extern SDLRPCParameterName const SDLRPCParameterNameHDRadioEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeading; +extern SDLRPCParameterName const SDLRPCParameterNameHeadLampStatus; +extern SDLRPCParameterName const SDLRPCParameterNameHeadSupportHorizontalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameHeadSupportHorizontalPositionAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeadSupportVerticalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameHeadSupportVerticalPositionAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatingLevel; +extern SDLRPCParameterName const SDLRPCParameterNameHeatingLevelAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatingEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameHeatingEnabledAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameClimateEnable; +extern SDLRPCParameterName const SDLRPCParameterNameClimateEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelEnable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldEnable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowEnable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsEnable; +extern SDLRPCParameterName const SDLRPCParameterNameHeight; +extern SDLRPCParameterName const SDLRPCParameterNameHelpPrompt; +extern SDLRPCParameterName const SDLRPCParameterNameHighBeamsOn; +extern SDLRPCParameterName const SDLRPCParameterNameHMICapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameHMIDisplayLanguage; +extern SDLRPCParameterName const SDLRPCParameterNameHMIDisplayLanguageDesired; +extern SDLRPCParameterName const SDLRPCParameterNameHMILevel; +extern SDLRPCParameterName const SDLRPCParameterNameHMIPermissions; +extern SDLRPCParameterName const SDLRPCParameterNameHmiSettingsControlCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameHmiSettingsControlData; +extern SDLRPCParameterName const SDLRPCParameterNameHMIZoneCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameHorizontalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameHorizontalPositionAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHour; +extern SDLRPCParameterName const SDLRPCParameterNameHourlyForecast; +extern SDLRPCParameterName const SDLRPCParameterNameHours; +extern SDLRPCParameterName const SDLRPCParameterNameHumidity; +extern SDLRPCParameterName const SDLRPCParameterNameHybridAppPreference; +extern SDLRPCParameterName const SDLRPCParameterNameIconResumed; +extern SDLRPCParameterName const SDLRPCParameterNameId; +extern SDLRPCParameterName const SDLRPCParameterNameIgnitionStableStatus; +extern SDLRPCParameterName const SDLRPCParameterNameIgnitionStatus; +extern SDLRPCParameterName const SDLRPCParameterNameImage; +extern SDLRPCParameterName const SDLRPCParameterNameImageFields; +extern SDLRPCParameterName const SDLRPCParameterNameImageResolution; +extern SDLRPCParameterName const SDLRPCParameterNameImageSupported; +extern SDLRPCParameterName const SDLRPCParameterNameImageTemplate; +extern SDLRPCParameterName const SDLRPCParameterNameImageType; +extern SDLRPCParameterName const SDLRPCParameterNameImageTypeSupported; +extern SDLRPCParameterName const SDLRPCParameterNameInfo; +extern SDLRPCParameterName const SDLRPCParameterNameInitialPrompt; +extern SDLRPCParameterName const SDLRPCParameterNameInitialText; +extern SDLRPCParameterName const SDLRPCParameterNameInnerLeftRear; +extern SDLRPCParameterName const SDLRPCParameterNameInnerRightRear; +extern SDLRPCParameterName const SDLRPCParameterNameInstantFuelConsumption; +extern SDLRPCParameterName const SDLRPCParameterNameInstructions; +extern SDLRPCParameterName const SDLRPCParameterNameInteractionChoiceSetId; +extern SDLRPCParameterName const SDLRPCParameterNameInteractionChoiceSetIdList; +extern SDLRPCParameterName const SDLRPCParameterNameInteractionLayout; +extern SDLRPCParameterName const SDLRPCParameterNameInteractionMode; +extern SDLRPCParameterName const SDLRPCParameterNameIsExplicit; +extern SDLRPCParameterName const SDLRPCParameterNameIsHighlighted; +extern SDLRPCParameterName const SDLRPCParameterNameIsMediaApplication; +extern SDLRPCParameterName const SDLRPCParameterNameIsSubscribed; +extern SDLRPCParameterName const SDLRPCParameterNameJunctionType; +extern SDLRPCParameterName const SDLRPCParameterNameKeepContext; +extern SDLRPCParameterName const SDLRPCParameterNameKeepContextAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameKeyboardLayout; +extern SDLRPCParameterName const SDLRPCParameterNameKeyboardProperties; +extern SDLRPCParameterName const SDLRPCParameterNameKeypressMode; +extern SDLRPCParameterName const SDLRPCParameterNameLabel; +extern SDLRPCParameterName const SDLRPCParameterNameLanguage; +extern SDLRPCParameterName const SDLRPCParameterNameLanguageDesired; +extern SDLRPCParameterName const SDLRPCParameterNameLatitudeDegrees; +extern SDLRPCParameterName const SDLRPCParameterNameLeftFront; +extern SDLRPCParameterName const SDLRPCParameterNameLeftRear; +extern SDLRPCParameterName const SDLRPCParameterNameLeftRearInflatableBelted; +extern SDLRPCParameterName const SDLRPCParameterNameLeftRow2BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameLeftRow3BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameLength; +extern SDLRPCParameterName const SDLRPCParameterNameLevel; +extern SDLRPCParameterName const SDLRPCParameterNameLevels; +extern SDLRPCParameterName const SDLRPCParameterNameLevelSpan; +extern SDLRPCParameterName const SDLRPCParameterNameLightControlCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameLightControlData; +extern SDLRPCParameterName const SDLRPCParameterNameLightState; +extern SDLRPCParameterName const SDLRPCParameterNameLimitedCharacterList; +extern SDLRPCParameterName const SDLRPCParameterNameLocality; +extern SDLRPCParameterName const SDLRPCParameterNameLocation; +extern SDLRPCParameterName const SDLRPCParameterNameLocationCoordinate; +extern SDLRPCParameterName const SDLRPCParameterNameLocationDescription; +extern SDLRPCParameterName const SDLRPCParameterNameLocationDetails; +extern SDLRPCParameterName const SDLRPCParameterNameLocationImage; +extern SDLRPCParameterName const SDLRPCParameterNameLocationName; +extern SDLRPCParameterName const SDLRPCParameterNameLockScreenDismissalEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameLockScreenDismissalWarning; +extern SDLRPCParameterName const SDLRPCParameterNameLongitudeDegrees; +extern SDLRPCParameterName const SDLRPCParameterNameLongPress; +extern SDLRPCParameterName const SDLRPCParameterNameLongPressAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameLowBeamsOn; +extern SDLRPCParameterName const SDLRPCParameterNameMainField1; +extern SDLRPCParameterName const SDLRPCParameterNameMainField2; +extern SDLRPCParameterName const SDLRPCParameterNameMainField3; +extern SDLRPCParameterName const SDLRPCParameterNameMainField4; +extern SDLRPCParameterName const SDLRPCParameterNameMainField1Type; +extern SDLRPCParameterName const SDLRPCParameterNameMainField2Type; +extern SDLRPCParameterName const SDLRPCParameterNameMainField3Type; +extern SDLRPCParameterName const SDLRPCParameterNameMainField4Type; +extern SDLRPCParameterName const SDLRPCParameterNameMajorVersion; +extern SDLRPCParameterName const SDLRPCParameterNameMake; +extern SDLRPCParameterName const SDLRPCParameterNameManeuverComplete; +extern SDLRPCParameterName const SDLRPCParameterNameManualTextEntry; +extern SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmness; +extern SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmnessAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameMassageEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameMassageEnabledAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameMassageMode; +extern SDLRPCParameterName const SDLRPCParameterNameMassageModeAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameMemoryAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameMassageZone; +extern SDLRPCParameterName const SDLRPCParameterNameMaxBitrate; +extern SDLRPCParameterName const SDLRPCParameterNameMaxDuration; +extern SDLRPCParameterName const SDLRPCParameterNameMaxHourlyForecastAmount; +extern SDLRPCParameterName const SDLRPCParameterNameMaximumChangeVelocity; +extern SDLRPCParameterName const SDLRPCParameterNameMaximumNumberOfWindows; +extern SDLRPCParameterName const SDLRPCParameterNameMaxMinutelyForecastAmount; +extern SDLRPCParameterName const SDLRPCParameterNameMaxMultidayForecastAmount; +extern SDLRPCParameterName const SDLRPCParameterNameMaxNumberRFCOMMPorts; +extern SDLRPCParameterName const SDLRPCParameterNameMediaAlbum; +extern SDLRPCParameterName const SDLRPCParameterNameMediaArtist; +extern SDLRPCParameterName const SDLRPCParameterNameMediaClock; +extern SDLRPCParameterName const SDLRPCParameterNameMediaClockFormats; +extern SDLRPCParameterName const SDLRPCParameterNameMediaServiceData; +extern SDLRPCParameterName const SDLRPCParameterNameMediaServiceManifest; +extern SDLRPCParameterName const SDLRPCParameterNameMediaTitle; +extern SDLRPCParameterName const SDLRPCParameterNameMediaTrack; +extern SDLRPCParameterName const SDLRPCParameterNameMediaImage; +extern SDLRPCParameterName const SDLRPCParameterNameMediaType; +extern SDLRPCParameterName const SDLRPCParameterNameMemory; +extern SDLRPCParameterName const SDLRPCParameterNameMenuIcon; +extern SDLRPCParameterName const SDLRPCParameterNameMenuId; +extern SDLRPCParameterName const SDLRPCParameterNameMenuLayout; +extern SDLRPCParameterName const SDLRPCParameterNameMenuLayoutsAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameMenuName; +extern SDLRPCParameterName const SDLRPCParameterNameMenuParams; +extern SDLRPCParameterName const SDLRPCParameterNameMenuTitle; +extern SDLRPCParameterName const SDLRPCParameterNameMessageData; +extern SDLRPCParameterName const SDLRPCParameterNameMessageDataResult; +extern SDLRPCParameterName const SDLRPCParameterNameMessageLength; +extern SDLRPCParameterName const SDLRPCParameterNameMetadataTags; +extern SDLRPCParameterName const SDLRPCParameterNameMiddleRow1BeltDeployed; +extern SDLRPCParameterName const SDLRPCParameterNameMiddleRow1BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameMiddleRow2BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameMiddleRow3BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameMillisecond; +extern SDLRPCParameterName const SDLRPCParameterNameMinorVersion; +extern SDLRPCParameterName const SDLRPCParameterNameMinute; +extern SDLRPCParameterName const SDLRPCParameterNameMinuteForecast; +extern SDLRPCParameterName const SDLRPCParameterNameMinutes; +extern SDLRPCParameterName const SDLRPCParameterNameModel; +extern SDLRPCParameterName const SDLRPCParameterNameModuleData; +extern SDLRPCParameterName const SDLRPCParameterNameModuleId; +extern SDLRPCParameterName const SDLRPCParameterNameModuleIds; +extern SDLRPCParameterName const SDLRPCParameterNameModuleInfo; +extern SDLRPCParameterName const SDLRPCParameterNameModuleName; +extern SDLRPCParameterName const SDLRPCParameterNameModuleType; +extern SDLRPCParameterName const SDLRPCParameterNameModelYear; +extern SDLRPCParameterName const SDLRPCParameterNameMonoAudioOutputMuted; +extern SDLRPCParameterName const SDLRPCParameterNameMonth; +extern SDLRPCParameterName const SDLRPCParameterNameMoonPhase; +extern SDLRPCParameterName const SDLRPCParameterNameMultidayForecast; +extern SDLRPCParameterName const SDLRPCParameterNameMultipleEvents; +extern SDLRPCParameterName const SDLRPCParameterNameMultiTouchAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameMuteAudio; +extern SDLRPCParameterName const SDLRPCParameterNameMyKey; +extern SDLRPCParameterName const SDLRPCParameterNameName; +extern SDLRPCParameterName const SDLRPCParameterNameNavigation; +extern SDLRPCParameterName const SDLRPCParameterNameNavigationCapability; +extern SDLRPCParameterName const SDLRPCParameterNameNavigationServiceData; +extern SDLRPCParameterName const SDLRPCParameterNameNavigationServiceManifest; +extern SDLRPCParameterName const SDLRPCParameterNameNavigationText; +extern SDLRPCParameterName const SDLRPCParameterNameNavigationText1; +extern SDLRPCParameterName const SDLRPCParameterNameNavigationText2; +extern SDLRPCParameterName const SDLRPCParameterNameNearestStormBearing; +extern SDLRPCParameterName const SDLRPCParameterNameNearestStormDistance; +extern SDLRPCParameterName const SDLRPCParameterNameNextInstructionDistance; +extern SDLRPCParameterName const SDLRPCParameterNameNextInstructionDistanceScale; +extern SDLRPCParameterName const SDLRPCParameterNameNextInstructionETA; +extern SDLRPCParameterName const SDLRPCParameterNameNextTurnIcon; +extern SDLRPCParameterName const SDLRPCParameterNameNGNMediaScreenAppName; +extern SDLRPCParameterName const SDLRPCParameterNameNicknames; +extern SDLRPCParameterName const SDLRPCParameterNameNightColorScheme; +extern SDLRPCParameterName const SDLRPCParameterNameNotification; +extern SDLRPCParameterName const SDLRPCParameterNameNumber; +extern SDLRPCParameterName const SDLRPCParameterNameNumberCustomPresetsAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameNumberTicks; +extern SDLRPCParameterName const SDLRPCParameterNameOdometer; +extern SDLRPCParameterName const SDLRPCParameterNameOffset; +extern SDLRPCParameterName const SDLRPCParameterNameOnLockScreenStatus; +extern SDLRPCParameterName const SDLRPCParameterNameOnScreenPresetsAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameOperationName; +extern SDLRPCParameterName const SDLRPCParameterNameOrigin; +extern SDLRPCParameterName const SDLRPCParameterNameOriginApp; +extern SDLRPCParameterName const SDLRPCParameterNameOS; +extern SDLRPCParameterName const SDLRPCParameterNameOSVersion; +extern SDLRPCParameterName const SDLRPCParameterNameParameterPermissions; +extern SDLRPCParameterName const SDLRPCParameterNameParameters; +extern SDLRPCParameterName const SDLRPCParameterNameParentId; +extern SDLRPCParameterName const SDLRPCParameterNameParkBrakeActive; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerBeltDeployed; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerBuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerChildDetected; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerCurtainAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerDoorAjar; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerKneeAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerSideAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNamePatchVersion; +extern SDLRPCParameterName const SDLRPCParameterNamePCMStreamCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNamePDOP; +extern SDLRPCParameterName const SDLRPCParameterNamePermissionItem; +extern SDLRPCParameterName const SDLRPCParameterNamePersistentFile; +extern SDLRPCParameterName const SDLRPCParameterNamePhoneCall; +extern SDLRPCParameterName const SDLRPCParameterNamePhoneCapability; +extern SDLRPCParameterName const SDLRPCParameterNamePhoneNumber; +extern SDLRPCParameterName const SDLRPCParameterNamePhoneRoaming; +extern SDLRPCParameterName const SDLRPCParameterNamePixelPerInch; +extern SDLRPCParameterName const SDLRPCParameterNamePlaylistName; +extern SDLRPCParameterName const SDLRPCParameterNamePlayTone; +extern SDLRPCParameterName const SDLRPCParameterNamePosition; +extern SDLRPCParameterName const SDLRPCParameterNamePostalCode; +extern SDLRPCParameterName const SDLRPCParameterNamePowerModeActive; +extern SDLRPCParameterName const SDLRPCParameterNamePowerModeQualificationStatus; +extern SDLRPCParameterName const SDLRPCParameterNamePowerModeStatus; +extern SDLRPCParameterName const SDLRPCParameterNamePrecipAccumulation; +extern SDLRPCParameterName const SDLRPCParameterNamePrecipIntensity; +extern SDLRPCParameterName const SDLRPCParameterNamePrecipProbability; +extern SDLRPCParameterName const SDLRPCParameterNamePrecipType; +extern SDLRPCParameterName const SDLRPCParameterNamePreferredResolution; +extern SDLRPCParameterName const SDLRPCParameterNamePrerecordedSpeech; +extern SDLRPCParameterName const SDLRPCParameterNamePresetBankCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNamePressAvailable; +extern SDLRPCParameterName const SDLRPCParameterNamePressure; +extern SDLRPCParameterName const SDLRPCParameterNamePressureTelltale; +extern SDLRPCParameterName const SDLRPCParameterNamePrimaryAudioSource; +extern SDLRPCParameterName const SDLRPCParameterNamePrimaryColor; +extern SDLRPCParameterName const SDLRPCParameterNamePRNDL; +extern SDLRPCParameterName const SDLRPCParameterNameProgramIdentification; +extern SDLRPCParameterName const SDLRPCParameterNameProgressIndicator; +extern SDLRPCParameterName const SDLRPCParameterNameProperties; +extern SDLRPCParameterName const SDLRPCParameterNameProgramService; +extern SDLRPCParameterName const SDLRPCParameterNameProgramType; +extern SDLRPCParameterName const SDLRPCParameterNamePrompt; +extern SDLRPCParameterName const SDLRPCParameterNameQueueCurrentTrackNumber; +extern SDLRPCParameterName const SDLRPCParameterNameQueuePlaybackDuration; +extern SDLRPCParameterName const SDLRPCParameterNameQueuePlaybackProgress; +extern SDLRPCParameterName const SDLRPCParameterNameQueueTotalTrackCount; +extern SDLRPCParameterName const SDLRPCParameterNameRadioBandAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameRadioControlCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameRadioControlData; +extern SDLRPCParameterName const SDLRPCParameterNameRadioEnable; +extern SDLRPCParameterName const SDLRPCParameterNameRadioEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameRadioFrequencyAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameRange; +extern SDLRPCParameterName const SDLRPCParameterNameRDSData; +extern SDLRPCParameterName const SDLRPCParameterNameRDSDataAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameRearLeftDoorAjar; +extern SDLRPCParameterName const SDLRPCParameterNameRearRightDoorAjar; +extern SDLRPCParameterName const SDLRPCParameterNameReason; +extern SDLRPCParameterName const SDLRPCParameterNameRect; +extern SDLRPCParameterName const SDLRPCParameterNameRed; +extern SDLRPCParameterName const SDLRPCParameterNameRegion; +extern SDLRPCParameterName const SDLRPCParameterNameRegions; +extern SDLRPCParameterName const SDLRPCParameterNameRemoteControl; +extern SDLRPCParameterName const SDLRPCParameterNameRemoteControlCapability; +extern SDLRPCParameterName const SDLRPCParameterNameRequest; +extern SDLRPCParameterName const SDLRPCParameterNameRequestServiceActive; +extern SDLRPCParameterName const SDLRPCParameterNameRequestSubType; +extern SDLRPCParameterName const SDLRPCParameterNameRequestType; +extern SDLRPCParameterName const SDLRPCParameterNameRequireEncryption; +extern SDLRPCParameterName const SDLRPCParameterNameReserved; +extern SDLRPCParameterName const SDLRPCParameterNameResolution; +extern SDLRPCParameterName const SDLRPCParameterNameResolutionHeight; +extern SDLRPCParameterName const SDLRPCParameterNameResolutionWidth; +extern SDLRPCParameterName const SDLRPCParameterNameResponse; +extern SDLRPCParameterName const SDLRPCParameterNameResult; +extern SDLRPCParameterName const SDLRPCParameterNameResultCode; +extern SDLRPCParameterName const SDLRPCParameterNameRightFront; +extern SDLRPCParameterName const SDLRPCParameterNameRightRear; +extern SDLRPCParameterName const SDLRPCParameterNameRightRearInflatableBelted; +extern SDLRPCParameterName const SDLRPCParameterNameRightRow2BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameRightRow3BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameRolloverEvent; +extern SDLRPCParameterName const SDLRPCParameterNameRow; +extern SDLRPCParameterName const SDLRPCParameterNameRows; +extern SDLRPCParameterName const SDLRPCParameterNameRowSpan; +extern SDLRPCParameterName const SDLRPCParameterNameRPCName; +extern SDLRPCParameterName const SDLRPCParameterNameRPCSpecVersion; +extern SDLRPCParameterName const SDLRPCParameterNameRPM; +extern SDLRPCParameterName const SDLRPCParameterNameRadioText; +extern SDLRPCParameterName const SDLRPCParameterNameSamplingRate; +extern SDLRPCParameterName const SDLRPCParameterNameSatellites; +extern SDLRPCParameterName const SDLRPCParameterNameScale; +extern SDLRPCParameterName const SDLRPCParameterNameScreenParams; +extern SDLRPCParameterName const SDLRPCParameterNameScrollableMessageBody; +extern SDLRPCParameterName const SDLRPCParameterNameSDLVersion; +extern SDLRPCParameterName const SDLRPCParameterNameSearchAddress; +extern SDLRPCParameterName const SDLRPCParameterNameSeatControlData; +extern SDLRPCParameterName const SDLRPCParameterNameSeatControlCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameSeatLocation; +extern SDLRPCParameterName const SDLRPCParameterNameSeatLocationCapability; +extern SDLRPCParameterName const SDLRPCParameterNameSeats; +extern SDLRPCParameterName const SDLRPCParameterNameSecondaryColor; +extern SDLRPCParameterName const SDLRPCParameterNameSecondaryGraphic; +extern SDLRPCParameterName const SDLRPCParameterNameSecondaryImage; +extern SDLRPCParameterName const SDLRPCParameterNameSecondaryText; +extern SDLRPCParameterName const SDLRPCParameterNameSecond; +extern SDLRPCParameterName const SDLRPCParameterNameSeconds; +extern SDLRPCParameterName const SDLRPCParameterNameSendLocationEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameServiceActive; +extern SDLRPCParameterName const SDLRPCParameterNameServiceArea; +extern SDLRPCParameterName const SDLRPCParameterNameServiceData; +extern SDLRPCParameterName const SDLRPCParameterNameServiceIcon; +extern SDLRPCParameterName const SDLRPCParameterNameServiceID; +extern SDLRPCParameterName const SDLRPCParameterNameServiceManifest; +extern SDLRPCParameterName const SDLRPCParameterNameServiceName; +extern SDLRPCParameterName const SDLRPCParameterNameServicePublished; +extern SDLRPCParameterName const SDLRPCParameterNameServiceSpecificResult; +extern SDLRPCParameterName const SDLRPCParameterNameServiceType; +extern SDLRPCParameterName const SDLRPCParameterNameServiceUri; +extern SDLRPCParameterName const SDLRPCParameterNameSeverity; +extern SDLRPCParameterName const SDLRPCParameterNameShifted; +extern SDLRPCParameterName const SDLRPCParameterNameShortPress; +extern SDLRPCParameterName const SDLRPCParameterNameShortPressAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSignalLevelStatus; +extern SDLRPCParameterName const SDLRPCParameterNameSignalChangeThreshold; +extern SDLRPCParameterName const SDLRPCParameterNameSignalChangeThresholdAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSignalStrength; +extern SDLRPCParameterName const SDLRPCParameterNameSignalStrengthAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSiriusXMRadioAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSISData; +extern SDLRPCParameterName const SDLRPCParameterNameSISDataAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSliderFooter; +extern SDLRPCParameterName const SDLRPCParameterNameSliderHeader; +extern SDLRPCParameterName const SDLRPCParameterNameSliderPosition; +extern SDLRPCParameterName const SDLRPCParameterNameSoftButtonCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameSoftButtonId; +extern SDLRPCParameterName const SDLRPCParameterNameSoftButtons; +extern SDLRPCParameterName const SDLRPCParameterNameSource; +extern SDLRPCParameterName const SDLRPCParameterNameSourceAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSpaceAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSpeechCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameSpeed; +extern SDLRPCParameterName const SDLRPCParameterNameRGBColorSpaceAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameStartTime; +extern SDLRPCParameterName const SDLRPCParameterNameState; +extern SDLRPCParameterName const SDLRPCParameterNameStateAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameStateOfCharge; +extern SDLRPCParameterName const SDLRPCParameterNameStationIDNumber; +extern SDLRPCParameterName const SDLRPCParameterNameStationLongName; +extern SDLRPCParameterName const SDLRPCParameterNameStationLocation; +extern SDLRPCParameterName const SDLRPCParameterNameStationMessage; +extern SDLRPCParameterName const SDLRPCParameterNameStationShortName; +extern SDLRPCParameterName const SDLRPCParameterNameStatus; +extern SDLRPCParameterName const SDLRPCParameterNameStatusAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameStatusBar; +extern SDLRPCParameterName const SDLRPCParameterNameSteeringWheelAngle; +extern SDLRPCParameterName const SDLRPCParameterNameStereoAudioOutputMuted; +extern SDLRPCParameterName const SDLRPCParameterNameSubAdministrativeArea; +extern SDLRPCParameterName const SDLRPCParameterNameSubLocality; +extern SDLRPCParameterName const SDLRPCParameterNameSubscribe; +extern SDLRPCParameterName const SDLRPCParameterNameSubThoroughfare; +extern SDLRPCParameterName const SDLRPCParameterNameSuccess; +extern SDLRPCParameterName const SDLRPCParameterNameSummary; +extern SDLRPCParameterName const SDLRPCParameterNameSupportedDiagnosticModes; +extern SDLRPCParameterName const SDLRPCParameterNameSupportedFormats; +extern SDLRPCParameterName const SDLRPCParameterNameSupportedLights; +extern SDLRPCParameterName const SDLRPCParameterNameSyncFileName; +extern SDLRPCParameterName const SDLRPCParameterNameSyncMessageVersion; +extern SDLRPCParameterName const SDLRPCParameterNameSystemAction; +extern SDLRPCParameterName const SDLRPCParameterNameSystemCapability; +extern SDLRPCParameterName const SDLRPCParameterNameSystemCapabilityType; +extern SDLRPCParameterName const SDLRPCParameterNameSystemContext; +extern SDLRPCParameterName const SDLRPCParameterNameSystemFile; +extern SDLRPCParameterName const SDLRPCParameterNameSystemSoftwareVersion; +extern SDLRPCParameterName const SDLRPCParameterNameTrackPlaybackDuration; +extern SDLRPCParameterName const SDLRPCParameterNameTrackPlaybackProgress; +extern SDLRPCParameterName const SDLRPCParameterNameTrafficAnnouncementIdentification; +extern SDLRPCParameterName const SDLRPCParameterNameTargetId; +extern SDLRPCParameterName const SDLRPCParameterNameTemperatureHigh; +extern SDLRPCParameterName const SDLRPCParameterNameTemperatureLow; +extern SDLRPCParameterName const SDLRPCParameterNameTemperatureUnit; +extern SDLRPCParameterName const SDLRPCParameterNameTemperatureUnitAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameTemplate; +extern SDLRPCParameterName const SDLRPCParameterNameTemplateConfiguration; +extern SDLRPCParameterName const SDLRPCParameterNameTemplatesAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameTemplateTitle; +extern SDLRPCParameterName const SDLRPCParameterNameTertiaryText; +extern SDLRPCParameterName const SDLRPCParameterNameText; +extern SDLRPCParameterName const SDLRPCParameterNameTextFields; +extern SDLRPCParameterName const SDLRPCParameterNameTextMessageAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameTextSupported; +extern SDLRPCParameterName const SDLRPCParameterNameThoroughfare; +extern SDLRPCParameterName const SDLRPCParameterNameTime; +extern SDLRPCParameterName const SDLRPCParameterNameTimeIssued; +extern SDLRPCParameterName const SDLRPCParameterNameTimeout; +extern SDLRPCParameterName const SDLRPCParameterNameTimeoutCapitalized; +extern SDLRPCParameterName const SDLRPCParameterNameTimeoutPrompt; +extern SDLRPCParameterName const SDLRPCParameterNameTS; +extern SDLRPCParameterName const SDLRPCParameterNameTimeStamp; +extern SDLRPCParameterName const SDLRPCParameterNameTimeToDestination; +extern SDLRPCParameterName const SDLRPCParameterNameTimezoneHourOffset; +extern SDLRPCParameterName const SDLRPCParameterNameTimezoneMinuteOffset; +extern SDLRPCParameterName const SDLRPCParameterNameTirePressure; +extern SDLRPCParameterName const SDLRPCParameterNameTitle; +extern SDLRPCParameterName const SDLRPCParameterNameTotalDistance; +extern SDLRPCParameterName const SDLRPCParameterNameTouchEventAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameTPMS; +extern SDLRPCParameterName const SDLRPCParameterNameTrafficProgramIdentification; +extern SDLRPCParameterName const SDLRPCParameterNameTriggerSource; +extern SDLRPCParameterName const SDLRPCParameterNameTrim; +extern SDLRPCParameterName const SDLRPCParameterNameTryAgainTime; +extern SDLRPCParameterName const SDLRPCParameterNameTTSChunks; +extern SDLRPCParameterName const SDLRPCParameterNameTTSName; +extern SDLRPCParameterName const SDLRPCParameterNameTurnIcon; +extern SDLRPCParameterName const SDLRPCParameterNameTurnList; +extern SDLRPCParameterName const SDLRPCParameterNameTurnSignal; +extern SDLRPCParameterName const SDLRPCParameterNameType; +extern SDLRPCParameterName const SDLRPCParameterNameUnit; +extern SDLRPCParameterName const SDLRPCParameterNameUnsubscribe; +extern SDLRPCParameterName const SDLRPCParameterNameUpdatedAppServiceRecord; +extern SDLRPCParameterName const SDLRPCParameterNameUpdateMode; +extern SDLRPCParameterName const SDLRPCParameterNameUpdateReason; +extern SDLRPCParameterName const SDLRPCParameterNameUpDownAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameURL; +extern SDLRPCParameterName const SDLRPCParameterNameURLUppercase; +extern SDLRPCParameterName const SDLRPCParameterNameUserDisallowed; +extern SDLRPCParameterName const SDLRPCParameterNameUserLocation; +extern SDLRPCParameterName const SDLRPCParameterNameUserSelected; +extern SDLRPCParameterName const SDLRPCParameterNameUTCDay; +extern SDLRPCParameterName const SDLRPCParameterNameUTCHours; +extern SDLRPCParameterName const SDLRPCParameterNameUTCMinutes; +extern SDLRPCParameterName const SDLRPCParameterNameUTCMonth; +extern SDLRPCParameterName const SDLRPCParameterNameUTCSeconds; +extern SDLRPCParameterName const SDLRPCParameterNameUTCYear; +extern SDLRPCParameterName const SDLRPCParameterNameValue; +extern SDLRPCParameterName const SDLRPCParameterNameVDOP; +extern SDLRPCParameterName const SDLRPCParameterNameVehicleType; +extern SDLRPCParameterName const SDLRPCParameterNameVerticalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameVerticalPositionAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameVideoCodec; +extern SDLRPCParameterName const SDLRPCParameterNameVideoProtocol; +extern SDLRPCParameterName const SDLRPCParameterNameVideoStreaming; +extern SDLRPCParameterName const SDLRPCParameterNameVideoStreamingCapability; +extern SDLRPCParameterName const SDLRPCParameterNameVideoStreamingState; +extern SDLRPCParameterName const SDLRPCParameterNameVisibility; +extern SDLRPCParameterName const SDLRPCParameterNameVentilationMode; +extern SDLRPCParameterName const SDLRPCParameterNameVentilationModeAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameVIN; +extern SDLRPCParameterName const SDLRPCParameterNameVoiceRecognitionOn; +extern SDLRPCParameterName const SDLRPCParameterNameVolume; +extern SDLRPCParameterName const SDLRPCParameterNameVolumeAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameVRCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameVRCommands; +extern SDLRPCParameterName const SDLRPCParameterNameVRHelp; +extern SDLRPCParameterName const SDLRPCParameterNameVRHelpTitle; +extern SDLRPCParameterName const SDLRPCParameterNameVRSynonyms; +extern SDLRPCParameterName const SDLRPCParameterNameWayPoints; +extern SDLRPCParameterName const SDLRPCParameterNameWayPointType; +extern SDLRPCParameterName const SDLRPCParameterNameWeatherForLocationSupported; +extern SDLRPCParameterName const SDLRPCParameterNameWeatherIcon; +extern SDLRPCParameterName const SDLRPCParameterNameWeatherServiceData; +extern SDLRPCParameterName const SDLRPCParameterNameWeatherServiceManifest; +extern SDLRPCParameterName const SDLRPCParameterNameWeatherSummary; +extern SDLRPCParameterName const SDLRPCParameterNameWidth; +extern SDLRPCParameterName const SDLRPCParameterNameWindBearing; +extern SDLRPCParameterName const SDLRPCParameterNameWindGust; +extern SDLRPCParameterName const SDLRPCParameterNameWindSpeed; +extern SDLRPCParameterName const SDLRPCParameterNameWiperStatus; +extern SDLRPCParameterName const SDLRPCParameterNameWindowCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameWindowId; +extern SDLRPCParameterName const SDLRPCParameterNameWindowName; +extern SDLRPCParameterName const SDLRPCParameterNameWindowTypeSupported; +extern SDLRPCParameterName const SDLRPCParameterNameX; +extern SDLRPCParameterName const SDLRPCParameterNameY; +extern SDLRPCParameterName const SDLRPCParameterNameYear; + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.m new file mode 100644 index 0000000..85a88b1 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.m @@ -0,0 +1,723 @@ +// SDLRPCParameterNames.h +// + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +SDLRPCParameterName const SDLRPCParameterNameACEnable = @"acEnable"; +SDLRPCParameterName const SDLRPCParameterNameACEnableAvailable = @"acEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameACMaxEnable = @"acMaxEnable"; +SDLRPCParameterName const SDLRPCParameterNameACMaxEnableAvailable = @"acMaxEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameAccelerationPedalPosition = @"accPedalPosition"; +SDLRPCParameterName const SDLRPCParameterNameAcceptsWayPoints = @"acceptsWayPoints"; +SDLRPCParameterName const SDLRPCParameterNameAction = @"action"; +SDLRPCParameterName const SDLRPCParameterNameActual = @"actual"; +SDLRPCParameterName const SDLRPCParameterNameAddress = @"address"; +SDLRPCParameterName const SDLRPCParameterNameAddressLines = @"addressLines"; +SDLRPCParameterName const SDLRPCParameterNameAdministrativeArea = @"administrativeArea"; +SDLRPCParameterName const SDLRPCParameterNameAirbagStatus = @"airbagStatus"; +SDLRPCParameterName const SDLRPCParameterNameAlertIcon = @"alertIcon"; +SDLRPCParameterName const SDLRPCParameterNameAlerts = @"alerts"; +SDLRPCParameterName const SDLRPCParameterNameAlertText1 = @"alertText1"; +SDLRPCParameterName const SDLRPCParameterNameAlertText2 = @"alertText2"; +SDLRPCParameterName const SDLRPCParameterNameAlertText3 = @"alertText3"; +SDLRPCParameterName const SDLRPCParameterNameAlignment = @"alignment"; +SDLRPCParameterName const SDLRPCParameterNameAllowAppConsumers = @"allowAppConsumers"; +SDLRPCParameterName const SDLRPCParameterNameAllowed = @"allowed"; +SDLRPCParameterName const SDLRPCParameterNameAllowMultipleAccess = @"allowMultipleAccess"; +SDLRPCParameterName const SDLRPCParameterNameAllocatedModules = @"allocatedModules"; +SDLRPCParameterName const SDLRPCParameterNameAltitude = @"altitude"; +SDLRPCParameterName const SDLRPCParameterNameAltitudeMeters = @"altitudeMeters"; +SDLRPCParameterName const SDLRPCParameterNameAmbientLightSensorStatus = @"ambientLightSensorStatus"; +SDLRPCParameterName const SDLRPCParameterNameAmbientLightStatus = @"ambientLightStatus"; +SDLRPCParameterName const SDLRPCParameterNameApparentTemperature = @"apparentTemperature"; +SDLRPCParameterName const SDLRPCParameterNameApparentTemperatureHigh = @"apparentTemperatureHigh"; +SDLRPCParameterName const SDLRPCParameterNameApparentTemperatureLow = @"apparentTemperatureLow"; +SDLRPCParameterName const SDLRPCParameterNameAppBundleId = @"appBundleID"; +SDLRPCParameterName const SDLRPCParameterNameAppHMIType = @"appHMIType"; +SDLRPCParameterName const SDLRPCParameterNameAppId = @"appID"; +SDLRPCParameterName const SDLRPCParameterNameAppInfo = @"appInfo"; +SDLRPCParameterName const SDLRPCParameterNameAppName = @"appName"; +SDLRPCParameterName const SDLRPCParameterNameAppServiceId = @"appServiceId"; +SDLRPCParameterName const SDLRPCParameterNameAppServiceManifest = @"appServiceManifest"; +SDLRPCParameterName const SDLRPCParameterNameAppServiceRecord = @"appServiceRecord"; +SDLRPCParameterName const SDLRPCParameterNameAppServices = @"appServices"; +SDLRPCParameterName const SDLRPCParameterNameAppServicesCapabilities = @"appServicesCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameAppDisplayName = @"appDisplayName"; +SDLRPCParameterName const SDLRPCParameterNameAppVersion = @"appVersion"; +SDLRPCParameterName const SDLRPCParameterNameAudioControlCapabilities = @"audioControlCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameAudioControlData = @"audioControlData"; +SDLRPCParameterName const SDLRPCParameterNameAssociatedServiceType = @"associatedServiceType"; +SDLRPCParameterName const SDLRPCParameterNameAudioPassThruCapabilities = @"audioPassThruCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText1 = @"audioPassThruDisplayText1"; +SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText2 = @"audioPassThruDisplayText2"; +SDLRPCParameterName const SDLRPCParameterNameAudioStreamingIndicator = @"audioStreamingIndicator"; +SDLRPCParameterName const SDLRPCParameterNameAudioStreamingState = @"audioStreamingState"; +SDLRPCParameterName const SDLRPCParameterNameAudioType = @"audioType"; +SDLRPCParameterName const SDLRPCParameterNameAuthToken = @"authToken"; +SDLRPCParameterName const SDLRPCParameterNameAutoCompleteList = @"autoCompleteList"; +SDLRPCParameterName const SDLRPCParameterNameAutoCompleteText = @"autoCompleteText"; +SDLRPCParameterName const SDLRPCParameterNameAutoModeEnable = @"autoModeEnable"; +SDLRPCParameterName const SDLRPCParameterNameAutoModeEnableAvailable = @"autoModeEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameAuxECallNotificationStatus = @"auxECallNotificationStatus"; +SDLRPCParameterName const SDLRPCParameterNameAvailableHDs = @"availableHDs"; +SDLRPCParameterName const SDLRPCParameterNameAvailableHDChannels = @"availableHDChannels"; +SDLRPCParameterName const SDLRPCParameterNameAvailableHDsAvailable = @"availableHDsAvailable"; +SDLRPCParameterName const SDLRPCParameterNameAvailableHDChannelsAvailable = @"availableHDChannelsAvailable"; +SDLRPCParameterName const SDLRPCParameterNameBackgroundColor = @"backgroundColor"; +SDLRPCParameterName const SDLRPCParameterNameBackTiltAngle = @"backTiltAngle"; +SDLRPCParameterName const SDLRPCParameterNameBackTiltAngleAvailable = @"backTiltAngleAvailable"; +SDLRPCParameterName const SDLRPCParameterNameBackVerticalPosition = @"backVerticalPosition"; +SDLRPCParameterName const SDLRPCParameterNameBackVerticalPositionAvailable = @"backVerticalPositionAvailable"; +SDLRPCParameterName const SDLRPCParameterNameBand = @"band"; +SDLRPCParameterName const SDLRPCParameterNameBatteryLevelStatus = @"battLevelStatus"; +SDLRPCParameterName const SDLRPCParameterNameBearing = @"bearing"; +SDLRPCParameterName const SDLRPCParameterNameBeltStatus = @"beltStatus"; +SDLRPCParameterName const SDLRPCParameterNameBitsPerSample = @"bitsPerSample"; +SDLRPCParameterName const SDLRPCParameterNameBodyInformation = @"bodyInformation"; +SDLRPCParameterName const SDLRPCParameterNameBlue = @"blue"; +SDLRPCParameterName const SDLRPCParameterNameBluetoothIconOn = @"btIconOn"; +SDLRPCParameterName const SDLRPCParameterNameBulkData = @"bulkData"; +SDLRPCParameterName const SDLRPCParameterNameButtonCapabilities = @"buttonCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameButtonEventMode = @"buttonEventMode"; +SDLRPCParameterName const SDLRPCParameterNameButtonName = @"buttonName"; +SDLRPCParameterName const SDLRPCParameterNameButtonPressMode = @"buttonPressMode"; +SDLRPCParameterName const SDLRPCParameterNameCancelID = @"cancelID"; +SDLRPCParameterName const SDLRPCParameterNameCoolingEnabled = @"coolingEnabled"; +SDLRPCParameterName const SDLRPCParameterNameCoolingEnabledAvailable = @"coolingEnabledAvailable"; +SDLRPCParameterName const SDLRPCParameterNameCoolingLevel = @"coolingLevel"; +SDLRPCParameterName const SDLRPCParameterNameCoolingLevelAvailable = @"coolingLevelAvailable"; +SDLRPCParameterName const SDLRPCParameterNameCoordinate = @"c"; +SDLRPCParameterName const SDLRPCParameterNameCallActive = @"callActive"; +SDLRPCParameterName const SDLRPCParameterNameCarModeStatus = @"carModeStatus"; +SDLRPCParameterName const SDLRPCParameterNameCarrier = @"carrier"; +SDLRPCParameterName const SDLRPCParameterNameChannelId = @"channelId"; +SDLRPCParameterName const SDLRPCParameterNameChannelName = @"channelName"; +SDLRPCParameterName const SDLRPCParameterNameChannelSetting = @"channelSetting"; +SDLRPCParameterName const SDLRPCParameterNameCharacterSet = @"characterSet"; +SDLRPCParameterName const SDLRPCParameterNameChoiceId = @"choiceID"; +SDLRPCParameterName const SDLRPCParameterNameChoiceSet = @"choiceSet"; +SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnable = @"circulateAirEnable"; +SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnableAvailable = @"circulateAirEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameClimateControlData = @"climateControlData"; +SDLRPCParameterName const SDLRPCParameterNameClimateControlCapabilities = @"climateControlCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameCloudCover = @"cloudCover"; +SDLRPCParameterName const SDLRPCParameterNameClusterModes = @"clusterModes"; +SDLRPCParameterName const SDLRPCParameterNameClusterModeStatus = @"clusterModeStatus"; +SDLRPCParameterName const SDLRPCParameterNameColor = @"color"; +SDLRPCParameterName const SDLRPCParameterNameCol = @"col"; +SDLRPCParameterName const SDLRPCParameterNameColSpan = @"colspan"; +SDLRPCParameterName const SDLRPCParameterNameColumns = @"columns"; +SDLRPCParameterName const SDLRPCParameterNameCommandIcon = @"cmdIcon"; +SDLRPCParameterName const SDLRPCParameterNameCommandId = @"cmdID"; +SDLRPCParameterName const SDLRPCParameterNameCompassDirection = @"compassDirection"; +SDLRPCParameterName const SDLRPCParameterNameCorrelationId = @"correlationID"; +SDLRPCParameterName const SDLRPCParameterNameCountryCode = @"countryCode"; +SDLRPCParameterName const SDLRPCParameterNameCountryName = @"countryName"; +SDLRPCParameterName const SDLRPCParameterNameCRC = @"crc"; +SDLRPCParameterName const SDLRPCParameterNameClockText = @"CT"; +SDLRPCParameterName const SDLRPCParameterNameCloudAppVehicleID = @"cloudAppVehicleID"; +SDLRPCParameterName const SDLRPCParameterNameCloudTransportType = @"cloudTransportType"; +SDLRPCParameterName const SDLRPCParameterNameCurrentForecast = @"currentForecast"; +SDLRPCParameterName const SDLRPCParameterNameCurrentForecastSupported = @"currentForecastSupported"; +SDLRPCParameterName const SDLRPCParameterNameCurrentTemperature = @"currentTemperature"; +SDLRPCParameterName const SDLRPCParameterNameCushion = @"cushion"; +SDLRPCParameterName const SDLRPCParameterNameCustomButtonId = @"customButtonID"; +SDLRPCParameterName const SDLRPCParameterNameCustomPresets = @"customPresets"; +SDLRPCParameterName const SDLRPCParameterNameData = @"data"; +SDLRPCParameterName const SDLRPCParameterNameDataResult = @"dataResult"; +SDLRPCParameterName const SDLRPCParameterNameDataType = @"dataType"; +SDLRPCParameterName const SDLRPCParameterNameDay = @"day"; +SDLRPCParameterName const SDLRPCParameterNameDayColorScheme = @"dayColorScheme"; +SDLRPCParameterName const SDLRPCParameterNameDefrostZone = @"defrostZone"; +SDLRPCParameterName const SDLRPCParameterNameDefrostZoneAvailable = @"defrostZoneAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDeliveryMode = @"deliveryMode"; +SDLRPCParameterName const SDLRPCParameterNameDensity = @"density"; +SDLRPCParameterName const SDLRPCParameterNameDensityAvailable = @"densityAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDesiredTemperature = @"desiredTemperature"; +SDLRPCParameterName const SDLRPCParameterNameDesiredTemperatureAvailable = @"desiredTemperatureAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDestination = @"destination"; +SDLRPCParameterName const SDLRPCParameterNameDestinationETA = @"destinationETA"; +SDLRPCParameterName const SDLRPCParameterNameDeviceInfo = @"deviceInfo"; +SDLRPCParameterName const SDLRPCParameterNameDeviceStatus = @"deviceStatus"; +SDLRPCParameterName const SDLRPCParameterNameDetails = @"details"; +SDLRPCParameterName const SDLRPCParameterNameDiagonalScreenSize = @"diagonalScreenSize"; +SDLRPCParameterName const SDLRPCParameterNameDialNumberEnabled = @"dialNumberEnabled"; +SDLRPCParameterName const SDLRPCParameterNameDIDLocation = @"didLocation"; +SDLRPCParameterName const SDLRPCParameterNameDIDResult = @"didResult"; +SDLRPCParameterName const SDLRPCParameterNameDimension = @"dimension"; +SDLRPCParameterName const SDLRPCParameterNameDisplays = @"displays"; +SDLRPCParameterName const SDLRPCParameterNameDisplayCapabilities = @"displayCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameDisplayLayout = @"displayLayout"; +SDLRPCParameterName const SDLRPCParameterNameDisplayMode = @"displayMode"; +SDLRPCParameterName const SDLRPCParameterNameDisplayModeUnitAvailable = @"displayModeUnitAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDisplayType = @"displayType"; +SDLRPCParameterName const SDLRPCParameterNameDistanceToEmpty = @"distanceToEmpty"; +SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuver = @"distanceToManeuver"; +SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuverScale = @"distanceToManeuverScale"; +SDLRPCParameterName const SDLRPCParameterNameDistanceUnitAvailable = @"distanceUnitAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDistanceUnit = @"distanceUnit"; +SDLRPCParameterName const SDLRPCParameterNameDoublePressAvailable = @"doublePressAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDriverAirbagDeployed = @"driverAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNameDriverBeltDeployed = @"driverBeltDeployed"; +SDLRPCParameterName const SDLRPCParameterNameDriverBraking = @"driverBraking"; +SDLRPCParameterName const SDLRPCParameterNameDriverBuckleBelted = @"driverBuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameDriverCurtainAirbagDeployed = @"driverCurtainAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNameDriverDistractionStatus = @"driverDistractionStatus"; +SDLRPCParameterName const SDLRPCParameterNameDriverDoorAjar = @"driverDoorAjar"; +SDLRPCParameterName const SDLRPCParameterNameDriverKneeAirbagDeployed = @"driverKneeAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNameDriverSideAirbagDeployed = @"driverSideAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNameDrivingSide = @"drivingSide"; +SDLRPCParameterName const SDLRPCParameterNameDTC = @"dtc"; +SDLRPCParameterName const SDLRPCParameterNameDTCMask = @"dtcMask"; +SDLRPCParameterName const SDLRPCParameterNameDualModeEnable = @"dualModeEnable"; +SDLRPCParameterName const SDLRPCParameterNameDualModeEnableAvailable = @"dualModeEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDuration = @"duration"; +SDLRPCParameterName const SDLRPCParameterNameDuplicateUpdatesFromWindowID = @"duplicateUpdatesFromWindowID"; +SDLRPCParameterName const SDLRPCParameterNameE911Override = @"e911Override"; +SDLRPCParameterName const SDLRPCParameterNameECallConfirmationStatus = @"eCallConfirmationStatus"; +SDLRPCParameterName const SDLRPCParameterNameECallEventActive = @"eCallEventActive"; +SDLRPCParameterName const SDLRPCParameterNameECallInfo = @"eCallInfo"; +SDLRPCParameterName const SDLRPCParameterNameECallNotificationStatus = @"eCallNotificationStatus"; +SDLRPCParameterName const SDLRPCParameterNameECUHeader = @"ecuHeader"; +SDLRPCParameterName const SDLRPCParameterNameECUName = @"ecuName"; +SDLRPCParameterName const SDLRPCParameterNameElectronicParkBrakeStatus = @"electronicParkBrakeStatus"; +SDLRPCParameterName const SDLRPCParameterNameEmergencyEvent = @"emergencyEvent"; +SDLRPCParameterName const SDLRPCParameterNameEmergencyEventType = @"emergencyEventType"; +SDLRPCParameterName const SDLRPCParameterNameEnabled = @"enabled"; +SDLRPCParameterName const SDLRPCParameterNameEndpoint = @"endpoint"; +SDLRPCParameterName const SDLRPCParameterNameEndTime = @"endTime"; +SDLRPCParameterName const SDLRPCParameterNameEngineOilLife = @"engineOilLife"; +SDLRPCParameterName const SDLRPCParameterNameEngineTorque = @"engineTorque"; +SDLRPCParameterName const SDLRPCParameterNameEqualizerAvailable = @"equalizerAvailable"; +SDLRPCParameterName const SDLRPCParameterNameEqualizerMaxChannelId = @"equalizerMaxChannelId"; +SDLRPCParameterName const SDLRPCParameterNameEqualizerSettings = @"equalizerSettings";; +SDLRPCParameterName const SDLRPCParameterNameETA = @"eta"; +SDLRPCParameterName const SDLRPCParameterNameEvent = @"event"; +SDLRPCParameterName const SDLRPCParameterNameExpires = @"expires"; +SDLRPCParameterName const SDLRPCParameterNameExternalTemperature = @"externalTemperature"; +SDLRPCParameterName const SDLRPCParameterNameFanSpeed = @"fanSpeed"; +SDLRPCParameterName const SDLRPCParameterNameFanSpeedAvailable = @"fanSpeedAvailable"; +SDLRPCParameterName const SDLRPCParameterNameFCCFacilityId = @"fccFacilityId"; +SDLRPCParameterName const SDLRPCParameterNameFilename = @"fileName"; +SDLRPCParameterName const SDLRPCParameterNameFilenames = @"filenames"; +SDLRPCParameterName const SDLRPCParameterNameFileType = @"fileType"; +SDLRPCParameterName const SDLRPCParameterNameFirmness = @"firmness"; +SDLRPCParameterName const SDLRPCParameterNameFirmwareRevision = @"firmwareRev"; +SDLRPCParameterName const SDLRPCParameterNameFreeModules = @"freeModules"; +SDLRPCParameterName const SDLRPCParameterNameFrequencyInteger = @"frequencyInteger"; +SDLRPCParameterName const SDLRPCParameterNameFrequencyFraction = @"frequencyFraction"; +SDLRPCParameterName const SDLRPCParameterNameFrontVerticalPosition = @"frontVerticalPosition"; +SDLRPCParameterName const SDLRPCParameterNameFrontVerticalPositionAvailable = @"frontVerticalPositionAvailable"; +SDLRPCParameterName const SDLRPCParameterNameFuelCutoffStatus = @"fuelCutoffStatus"; +SDLRPCParameterName const SDLRPCParameterNameFuelLevel = @"fuelLevel"; +SDLRPCParameterName const SDLRPCParameterNameFuelLevelState = @"fuelLevel_State"; +SDLRPCParameterName const SDLRPCParameterNameFuelMaintenanceMode = @"fuelMaintenanceMode"; +SDLRPCParameterName const SDLRPCParameterNameFuelRange = @"fuelRange"; +SDLRPCParameterName const SDLRPCParameterNameFunctionID = @"functionID"; +SDLRPCParameterName const SDLRPCParameterNameFullAppID = @"fullAppID"; +SDLRPCParameterName const SDLRPCParameterNameGetWayPointsEnabled = @"getWayPointsEnabled"; +SDLRPCParameterName const SDLRPCParameterNameGPS = @"gps"; +SDLRPCParameterName const SDLRPCParameterNameGraphic = @"graphic"; +SDLRPCParameterName const SDLRPCParameterNameGraphicSupported = @"graphicSupported"; +SDLRPCParameterName const SDLRPCParameterNameGreen = @"green"; +SDLRPCParameterName const SDLRPCParameterNameGrid = @"grid"; +SDLRPCParameterName const SDLRPCParameterNameHandledRPCs = @"handledRPCs"; +SDLRPCParameterName const SDLRPCParameterNameHapticRectData = @"hapticRectData"; +SDLRPCParameterName const SDLRPCParameterNameHapticSpatialDataSupported = @"hapticSpatialDataSupported"; +SDLRPCParameterName const SDLRPCParameterNameHardware = @"hardware"; +SDLRPCParameterName const SDLRPCParameterNameHashId = @"hashID"; +SDLRPCParameterName const SDLRPCParameterNameHDChannel = @"hdChannel"; +SDLRPCParameterName const SDLRPCParameterNameHDChannelAvailable = @"hdChannelAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHDOP = @"hdop"; +SDLRPCParameterName const SDLRPCParameterNameHDRadioEnable = @"hdRadioEnable"; +SDLRPCParameterName const SDLRPCParameterNameHDRadioEnableAvailable = @"hdRadioEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeading = @"heading"; +SDLRPCParameterName const SDLRPCParameterNameHeadLampStatus = @"headLampStatus"; +SDLRPCParameterName const SDLRPCParameterNameHeadSupportHorizontalPosition = @"headSupportHorizontalPosition"; +SDLRPCParameterName const SDLRPCParameterNameHeadSupportHorizontalPositionAvailable = @"headSupportHorizontalPositionAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeadSupportVerticalPosition = @"headSupportVerticalPosition"; +SDLRPCParameterName const SDLRPCParameterNameHeadSupportVerticalPositionAvailable = @"headSupportVerticalPositionAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatingLevel = @"heatingLevel"; +SDLRPCParameterName const SDLRPCParameterNameHeatingLevelAvailable = @"heatingLevelAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatingEnabled = @"heatingEnabled"; +SDLRPCParameterName const SDLRPCParameterNameHeatingEnabledAvailable = @"heatingEnabledAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelAvailable = @"heatedSteeringWheelAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldAvailable = @"heatedWindshieldAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowAvailable = @"heatedRearWindowAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsAvailable = @"heatedMirrorsAvailable"; +SDLRPCParameterName const SDLRPCParameterNameClimateEnable = @"climateEnable"; +SDLRPCParameterName const SDLRPCParameterNameClimateEnableAvailable = @"climateEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelEnable = @"heatedSteeringWheelEnable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldEnable = @"heatedWindshieldEnable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowEnable = @"heatedRearWindowEnable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsEnable = @"heatedMirrorsEnable"; +SDLRPCParameterName const SDLRPCParameterNameHeight = @"height"; +SDLRPCParameterName const SDLRPCParameterNameHelpPrompt = @"helpPrompt"; +SDLRPCParameterName const SDLRPCParameterNameHighBeamsOn = @"highBeamsOn"; +SDLRPCParameterName const SDLRPCParameterNameHMICapabilities = @"hmiCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameHmiSettingsControlData = @"hmiSettingsControlData"; +SDLRPCParameterName const SDLRPCParameterNameHMIDisplayLanguage = @"hmiDisplayLanguage"; +SDLRPCParameterName const SDLRPCParameterNameHMIDisplayLanguageDesired = @"hmiDisplayLanguageDesired"; +SDLRPCParameterName const SDLRPCParameterNameHMILevel = @"hmiLevel"; +SDLRPCParameterName const SDLRPCParameterNameHMILevelLowercase = @"hmilevel"; +SDLRPCParameterName const SDLRPCParameterNameHMIPermissions = @"hmiPermissions"; +SDLRPCParameterName const SDLRPCParameterNameHmiSettingsControlCapabilities = @"hmiSettingsControlCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameHMIZoneCapabilities = @"hmiZoneCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameHorizontalPosition = @"horizontalPosition"; +SDLRPCParameterName const SDLRPCParameterNameHorizontalPositionAvailable = @"horizontalPositionAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHour = @"hour"; +SDLRPCParameterName const SDLRPCParameterNameHourlyForecast = @"hourlyForecast"; +SDLRPCParameterName const SDLRPCParameterNameHours = @"hours"; +SDLRPCParameterName const SDLRPCParameterNameHumidity = @"humidity"; +SDLRPCParameterName const SDLRPCParameterNameHybridAppPreference = @"hybridAppPreference"; +SDLRPCParameterName const SDLRPCParameterNameIconResumed = @"iconResumed"; +SDLRPCParameterName const SDLRPCParameterNameId = @"id"; +SDLRPCParameterName const SDLRPCParameterNameIgnitionStableStatus = @"ignitionStableStatus"; +SDLRPCParameterName const SDLRPCParameterNameIgnitionStatus = @"ignitionStatus"; +SDLRPCParameterName const SDLRPCParameterNameImage = @"image"; +SDLRPCParameterName const SDLRPCParameterNameImageFields = @"imageFields"; +SDLRPCParameterName const SDLRPCParameterNameImageResolution = @"imageResolution"; +SDLRPCParameterName const SDLRPCParameterNameImageSupported = @"imageSupported"; +SDLRPCParameterName const SDLRPCParameterNameImageTemplate = @"isTemplate"; +SDLRPCParameterName const SDLRPCParameterNameImageType = @"imageType"; +SDLRPCParameterName const SDLRPCParameterNameImageTypeSupported = @"imageTypeSupported"; +SDLRPCParameterName const SDLRPCParameterNameInfo = @"info"; +SDLRPCParameterName const SDLRPCParameterNameInitialPrompt = @"initialPrompt"; +SDLRPCParameterName const SDLRPCParameterNameInitialText = @"initialText"; +SDLRPCParameterName const SDLRPCParameterNameInnerLeftRear = @"innerLeftRear"; +SDLRPCParameterName const SDLRPCParameterNameInnerRightRear = @"innerRightRear"; +SDLRPCParameterName const SDLRPCParameterNameInstantFuelConsumption = @"instantFuelConsumption"; +SDLRPCParameterName const SDLRPCParameterNameInstructions = @"instructions"; +SDLRPCParameterName const SDLRPCParameterNameInteractionChoiceSetId = @"interactionChoiceSetID"; +SDLRPCParameterName const SDLRPCParameterNameInteractionChoiceSetIdList = @"interactionChoiceSetIDList"; +SDLRPCParameterName const SDLRPCParameterNameInteractionLayout = @"interactionLayout"; +SDLRPCParameterName const SDLRPCParameterNameInteractionMode = @"interactionMode"; +SDLRPCParameterName const SDLRPCParameterNameIsExplicit = @"isExplicit"; +SDLRPCParameterName const SDLRPCParameterNameIsHighlighted = @"isHighlighted"; +SDLRPCParameterName const SDLRPCParameterNameIsMediaApplication = @"isMediaApplication"; +SDLRPCParameterName const SDLRPCParameterNameIsSubscribed = @"isSubscribed"; +SDLRPCParameterName const SDLRPCParameterNameJunctionType = @"junctionType"; +SDLRPCParameterName const SDLRPCParameterNameKeepContext = @"keepContext"; +SDLRPCParameterName const SDLRPCParameterNameKeepContextAvailable = @"keepContextAvailable"; +SDLRPCParameterName const SDLRPCParameterNameKeyboardLayout = @"keyboardLayout"; +SDLRPCParameterName const SDLRPCParameterNameKeyboardProperties = @"keyboardProperties"; +SDLRPCParameterName const SDLRPCParameterNameKeypressMode = @"keypressMode"; +SDLRPCParameterName const SDLRPCParameterNameLabel = @"label"; +SDLRPCParameterName const SDLRPCParameterNameLanguage = @"language"; +SDLRPCParameterName const SDLRPCParameterNameLanguageDesired = @"languageDesired"; +SDLRPCParameterName const SDLRPCParameterNameLatitudeDegrees = @"latitudeDegrees"; +SDLRPCParameterName const SDLRPCParameterNameLeftFront = @"leftFront"; +SDLRPCParameterName const SDLRPCParameterNameLeftRear = @"leftRear"; +SDLRPCParameterName const SDLRPCParameterNameLeftRearInflatableBelted = @"leftRearInflatableBelted"; +SDLRPCParameterName const SDLRPCParameterNameLeftRow2BuckleBelted = @"leftRow2BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameLeftRow3BuckleBelted = @"leftRow3BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameLength = @"length"; +SDLRPCParameterName const SDLRPCParameterNameLevel = @"level"; +SDLRPCParameterName const SDLRPCParameterNameLevels = @"levels"; +SDLRPCParameterName const SDLRPCParameterNameLevelSpan = @"levelspan"; +SDLRPCParameterName const SDLRPCParameterNameLightControlCapabilities = @"lightControlCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameLightControlData = @"lightControlData"; +SDLRPCParameterName const SDLRPCParameterNameLightState = @"lightState"; +SDLRPCParameterName const SDLRPCParameterNameLimitedCharacterList = @"limitedCharacterList"; +SDLRPCParameterName const SDLRPCParameterNameLocality = @"locality"; +SDLRPCParameterName const SDLRPCParameterNameLocation = @"location"; +SDLRPCParameterName const SDLRPCParameterNameLocationCoordinate = @"coordinate"; +SDLRPCParameterName const SDLRPCParameterNameLocationDescription = @"locationDescription"; +SDLRPCParameterName const SDLRPCParameterNameLocationDetails = @"locationDetails"; +SDLRPCParameterName const SDLRPCParameterNameLocationImage = @"locationImage"; +SDLRPCParameterName const SDLRPCParameterNameLocationName = @"locationName"; +SDLRPCParameterName const SDLRPCParameterNameLockScreenDismissalEnabled = @"lockScreenDismissalEnabled"; +SDLRPCParameterName const SDLRPCParameterNameLockScreenDismissalWarning = @"lockScreenDismissalWarning"; +SDLRPCParameterName const SDLRPCParameterNameLongitudeDegrees = @"longitudeDegrees"; +SDLRPCParameterName const SDLRPCParameterNameLongPress = @"longPress"; +SDLRPCParameterName const SDLRPCParameterNameLongPressAvailable = @"longPressAvailable"; +SDLRPCParameterName const SDLRPCParameterNameLowBeamsOn = @"lowBeamsOn"; +SDLRPCParameterName const SDLRPCParameterNameMainField1 = @"mainField1"; +SDLRPCParameterName const SDLRPCParameterNameMainField2 = @"mainField2"; +SDLRPCParameterName const SDLRPCParameterNameMainField3 = @"mainField3"; +SDLRPCParameterName const SDLRPCParameterNameMainField4 = @"mainField4"; +SDLRPCParameterName const SDLRPCParameterNameMajorVersion = @"majorVersion"; +SDLRPCParameterName const SDLRPCParameterNameMake = @"make"; +SDLRPCParameterName const SDLRPCParameterNameManeuverComplete = @"maneuverComplete"; +SDLRPCParameterName const SDLRPCParameterNameManualTextEntry = @"manualTextEntry"; +SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmness = @"massageCushionFirmness"; +SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmnessAvailable = @"massageCushionFirmnessAvailable"; +SDLRPCParameterName const SDLRPCParameterNameMassageEnabled = @"massageEnabled"; +SDLRPCParameterName const SDLRPCParameterNameMassageEnabledAvailable = @"massageEnabledAvailable"; +SDLRPCParameterName const SDLRPCParameterNameMassageMode = @"massageMode"; +SDLRPCParameterName const SDLRPCParameterNameMassageModeAvailable = @"massageModeAvailable"; +SDLRPCParameterName const SDLRPCParameterNameMassageZone = @"massageZone"; +SDLRPCParameterName const SDLRPCParameterNameMaxBitrate = @"maxBitrate"; +SDLRPCParameterName const SDLRPCParameterNameMaxDuration = @"maxDuration"; +SDLRPCParameterName const SDLRPCParameterNameMaxHourlyForecastAmount = @"maxHourlyForecastAmount"; +SDLRPCParameterName const SDLRPCParameterNameMaximumChangeVelocity = @"maximumChangeVelocity"; +SDLRPCParameterName const SDLRPCParameterNameMaximumNumberOfWindows = @"maximumNumberOfWindows"; +SDLRPCParameterName const SDLRPCParameterNameMaxMinutelyForecastAmount = @"maxMinutelyForecastAmount"; +SDLRPCParameterName const SDLRPCParameterNameMaxMultidayForecastAmount = @"maxMultidayForecastAmount"; +SDLRPCParameterName const SDLRPCParameterNameMaxNumberRFCOMMPorts = @"maxNumberRFCOMMPorts"; +SDLRPCParameterName const SDLRPCParameterNameMediaAlbum = @"mediaAlbum"; +SDLRPCParameterName const SDLRPCParameterNameMediaArtist = @"mediaArtist"; +SDLRPCParameterName const SDLRPCParameterNameMediaClock = @"mediaClock"; +SDLRPCParameterName const SDLRPCParameterNameMediaClockFormats = @"mediaClockFormats"; +SDLRPCParameterName const SDLRPCParameterNameMediaServiceData = @"mediaServiceData"; +SDLRPCParameterName const SDLRPCParameterNameMediaServiceManifest = @"mediaServiceManifest"; +SDLRPCParameterName const SDLRPCParameterNameMediaImage = @"mediaImage"; +SDLRPCParameterName const SDLRPCParameterNameMediaTitle = @"mediaTitle"; +SDLRPCParameterName const SDLRPCParameterNameMediaTrack = @"mediaTrack"; +SDLRPCParameterName const SDLRPCParameterNameMediaType = @"mediaType"; +SDLRPCParameterName const SDLRPCParameterNameMemory = @"memory"; +SDLRPCParameterName const SDLRPCParameterNameMemoryAvailable = @"memoryAvailable"; +SDLRPCParameterName const SDLRPCParameterNameMenuIcon = @"menuIcon"; +SDLRPCParameterName const SDLRPCParameterNameMenuId = @"menuID"; +SDLRPCParameterName const SDLRPCParameterNameMenuLayout = @"menuLayout"; +SDLRPCParameterName const SDLRPCParameterNameMenuLayoutsAvailable = @"menuLayoutsAvailable"; +SDLRPCParameterName const SDLRPCParameterNameMenuName = @"menuName"; +SDLRPCParameterName const SDLRPCParameterNameMenuParams = @"menuParams"; +SDLRPCParameterName const SDLRPCParameterNameMenuTitle = @"menuTitle"; +SDLRPCParameterName const SDLRPCParameterNameMessageData = @"messageData"; +SDLRPCParameterName const SDLRPCParameterNameMessageDataResult = @"messageDataResult"; +SDLRPCParameterName const SDLRPCParameterNameMessageLength = @"messageLength"; +SDLRPCParameterName const SDLRPCParameterNameMetadataTags = @"metadataTags"; +SDLRPCParameterName const SDLRPCParameterNameMiddleRow1BeltDeployed = @"middleRow1BeltDeployed"; +SDLRPCParameterName const SDLRPCParameterNameMiddleRow1BuckleBelted = @"middleRow1BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameMiddleRow2BuckleBelted = @"middleRow2BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameMiddleRow3BuckleBelted = @"middleRow3BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameMillisecond = @"millisecond"; +SDLRPCParameterName const SDLRPCParameterNameMinorVersion = @"minorVersion"; +SDLRPCParameterName const SDLRPCParameterNameMinute = @"minute"; +SDLRPCParameterName const SDLRPCParameterNameMinuteForecast = @"minuteForecast"; +SDLRPCParameterName const SDLRPCParameterNameMinutes = @"minutes"; +SDLRPCParameterName const SDLRPCParameterNameModel = @"model"; +SDLRPCParameterName const SDLRPCParameterNameModuleData = @"moduleData"; +SDLRPCParameterName const SDLRPCParameterNameModuleId = @"moduleId"; +SDLRPCParameterName const SDLRPCParameterNameModuleIds = @"moduleIds"; +SDLRPCParameterName const SDLRPCParameterNameModuleInfo = @"moduleInfo"; +SDLRPCParameterName const SDLRPCParameterNameModuleName = @"moduleName"; +SDLRPCParameterName const SDLRPCParameterNameModuleType = @"moduleType"; +SDLRPCParameterName const SDLRPCParameterNameModelYear = @"modelYear"; +SDLRPCParameterName const SDLRPCParameterNameMonoAudioOutputMuted = @"monoAudioOutputMuted"; +SDLRPCParameterName const SDLRPCParameterNameMonth = @"month"; +SDLRPCParameterName const SDLRPCParameterNameMoonPhase = @"moonPhase"; +SDLRPCParameterName const SDLRPCParameterNameMultidayForecast = @"multidayForecast"; +SDLRPCParameterName const SDLRPCParameterNameMultipleEvents = @"multipleEvents"; +SDLRPCParameterName const SDLRPCParameterNameMultiTouchAvailable = @"multiTouchAvailable"; +SDLRPCParameterName const SDLRPCParameterNameMuteAudio = @"muteAudio"; +SDLRPCParameterName const SDLRPCParameterNameMyKey = @"myKey"; +SDLRPCParameterName const SDLRPCParameterNameName = @"name"; +SDLRPCParameterName const SDLRPCParameterNameNavigation = @"navigation"; +SDLRPCParameterName const SDLRPCParameterNameNavigationCapability = @"navigationCapability"; +SDLRPCParameterName const SDLRPCParameterNameNavigationServiceData = @"navigationServiceData"; +SDLRPCParameterName const SDLRPCParameterNameNavigationServiceManifest = @"navigationServiceManifest"; +SDLRPCParameterName const SDLRPCParameterNameNavigationText = @"navigationText"; +SDLRPCParameterName const SDLRPCParameterNameNavigationText1 = @"navigationText1"; +SDLRPCParameterName const SDLRPCParameterNameNavigationText2 = @"navigationText2"; +SDLRPCParameterName const SDLRPCParameterNameNearestStormBearing = @"nearestStormBearing"; +SDLRPCParameterName const SDLRPCParameterNameNearestStormDistance = @"nearestStormDistance"; +SDLRPCParameterName const SDLRPCParameterNameNextInstructionDistance = @"nextInstructionDistance"; +SDLRPCParameterName const SDLRPCParameterNameNextInstructionDistanceScale = @"nextInstructionDistanceScale"; +SDLRPCParameterName const SDLRPCParameterNameNextInstructionETA = @"nextInstructionETA"; +SDLRPCParameterName const SDLRPCParameterNameNextTurnIcon = @"nextTurnIcon"; +SDLRPCParameterName const SDLRPCParameterNameNGNMediaScreenAppName = @"ngnMediaScreenAppName"; +SDLRPCParameterName const SDLRPCParameterNameNicknames = @"nicknames"; +SDLRPCParameterName const SDLRPCParameterNameNightColorScheme = @"nightColorScheme"; +SDLRPCParameterName const SDLRPCParameterNameNotification = @"notification"; +SDLRPCParameterName const SDLRPCParameterNameNumber = @"number"; +SDLRPCParameterName const SDLRPCParameterNameNumberCustomPresetsAvailable = @"numCustomPresetsAvailable"; +SDLRPCParameterName const SDLRPCParameterNameNumberTicks = @"numTicks"; +SDLRPCParameterName const SDLRPCParameterNameOdometer = @"odometer"; +SDLRPCParameterName const SDLRPCParameterNameOEMCustomDataType = @"oemCustomDataType"; +SDLRPCParameterName const SDLRPCParameterNameOffset = @"offset"; +SDLRPCParameterName const SDLRPCParameterNameOnLockScreenStatus = @"OnLockScreenStatus"; +SDLRPCParameterName const SDLRPCParameterNameOnScreenPresetsAvailable = @"onScreenPresetsAvailable"; +SDLRPCParameterName const SDLRPCParameterNameOperationName = @"name"; +SDLRPCParameterName const SDLRPCParameterNameOrigin = @"origin"; +SDLRPCParameterName const SDLRPCParameterNameOriginApp = @"originApp"; +SDLRPCParameterName const SDLRPCParameterNameOS = @"os"; +SDLRPCParameterName const SDLRPCParameterNameOSVersion = @"osVersion"; +SDLRPCParameterName const SDLRPCParameterNameParameterPermissions = @"parameterPermissions"; +SDLRPCParameterName const SDLRPCParameterNameParameters = @"parameters"; +SDLRPCParameterName const SDLRPCParameterNameParentId = @"parentID"; +SDLRPCParameterName const SDLRPCParameterNameParkBrakeActive = @"parkBrakeActive"; +SDLRPCParameterName const SDLRPCParameterNamePassengerAirbagDeployed = @"passengerAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNamePassengerBeltDeployed = @"passengerBeltDeployed"; +SDLRPCParameterName const SDLRPCParameterNamePassengerBuckleBelted = @"passengerBuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNamePassengerChildDetected = @"passengerChildDetected"; +SDLRPCParameterName const SDLRPCParameterNamePassengerCurtainAirbagDeployed = @"passengerCurtainAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNamePassengerDoorAjar = @"passengerDoorAjar"; +SDLRPCParameterName const SDLRPCParameterNamePassengerKneeAirbagDeployed = @"passengerKneeAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNamePassengerSideAirbagDeployed = @"passengerSideAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNamePatchVersion = @"patchVersion"; +SDLRPCParameterName const SDLRPCParameterNamePCMStreamCapabilities = @"pcmStreamCapabilities"; +SDLRPCParameterName const SDLRPCParameterNamePDOP = @"pdop"; +SDLRPCParameterName const SDLRPCParameterNamePermissionItem = @"permissionItem"; +SDLRPCParameterName const SDLRPCParameterNamePersistentFile = @"persistentFile"; +SDLRPCParameterName const SDLRPCParameterNamePhoneCall = @"phoneCall"; +SDLRPCParameterName const SDLRPCParameterNamePhoneCapability = @"phoneCapability"; +SDLRPCParameterName const SDLRPCParameterNamePhoneNumber = @"phoneNumber"; +SDLRPCParameterName const SDLRPCParameterNamePhoneRoaming = @"phoneRoaming"; +SDLRPCParameterName const SDLRPCParameterNamePixelPerInch = @"pixelPerInch"; +SDLRPCParameterName const SDLRPCParameterNamePrimaryColor = @"primaryColor"; +SDLRPCParameterName const SDLRPCParameterNamePlaylistName = @"playlistName"; +SDLRPCParameterName const SDLRPCParameterNamePlayTone = @"playTone"; +SDLRPCParameterName const SDLRPCParameterNamePosition = @"position"; +SDLRPCParameterName const SDLRPCParameterNamePostalCode = @"postalCode"; +SDLRPCParameterName const SDLRPCParameterNamePrecipAccumulation = @"precipAccumulation"; +SDLRPCParameterName const SDLRPCParameterNamePrecipIntensity = @"precipIntensity"; +SDLRPCParameterName const SDLRPCParameterNamePrecipProbability = @"precipProbability"; +SDLRPCParameterName const SDLRPCParameterNamePrecipType = @"precipType"; +SDLRPCParameterName const SDLRPCParameterNamePowerModeActive = @"powerModeActive"; +SDLRPCParameterName const SDLRPCParameterNamePowerModeQualificationStatus = @"powerModeQualificationStatus"; +SDLRPCParameterName const SDLRPCParameterNamePowerModeStatus = @"powerModeStatus"; +SDLRPCParameterName const SDLRPCParameterNamePreferredResolution = @"preferredResolution"; +SDLRPCParameterName const SDLRPCParameterNamePrerecordedSpeech = @"prerecordedSpeech"; +SDLRPCParameterName const SDLRPCParameterNamePresetBankCapabilities = @"presetBankCapabilities"; +SDLRPCParameterName const SDLRPCParameterNamePressAvailable = @"pressAvailable"; +SDLRPCParameterName const SDLRPCParameterNamePressure = @"pressure"; +SDLRPCParameterName const SDLRPCParameterNamePressureTelltale = @"pressureTelltale"; +SDLRPCParameterName const SDLRPCParameterNamePrimaryAudioSource = @"primaryAudioSource"; +SDLRPCParameterName const SDLRPCParameterNamePRNDL = @"prndl"; +SDLRPCParameterName const SDLRPCParameterNameProgramIdentification = @"PI"; +SDLRPCParameterName const SDLRPCParameterNameProgressIndicator = @"progressIndicator"; +SDLRPCParameterName const SDLRPCParameterNameProperties = @"properties"; +SDLRPCParameterName const SDLRPCParameterNameProgramService = @"PS"; +SDLRPCParameterName const SDLRPCParameterNameProgramType = @"PTY"; +SDLRPCParameterName const SDLRPCParameterNamePrompt = @"prompt"; +SDLRPCParameterName const SDLRPCParameterNameQueueCurrentTrackNumber = @"queueCurrentTrackNumber"; +SDLRPCParameterName const SDLRPCParameterNameQueuePlaybackDuration = @"queuePlaybackDuration"; +SDLRPCParameterName const SDLRPCParameterNameQueuePlaybackProgress = @"queuePlaybackProgress"; +SDLRPCParameterName const SDLRPCParameterNameQueueTotalTrackCount = @"queueTotalTrackCount"; +SDLRPCParameterName const SDLRPCParameterNameRadioBandAvailable = @"radioBandAvailable"; +SDLRPCParameterName const SDLRPCParameterNameRadioControlCapabilities = @"radioControlCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameRadioFrequencyAvailable = @"radioFrequencyAvailable"; +SDLRPCParameterName const SDLRPCParameterNameRadioControlData = @"radioControlData"; +SDLRPCParameterName const SDLRPCParameterNameRadioEnable = @"radioEnable"; +SDLRPCParameterName const SDLRPCParameterNameRadioEnableAvailable = @"radioEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameRange = @"range"; +SDLRPCParameterName const SDLRPCParameterNameRDSData = @"rdsData"; +SDLRPCParameterName const SDLRPCParameterNameRDSDataAvailable = @"rdsDataAvailable"; +SDLRPCParameterName const SDLRPCParameterNameRearLeftDoorAjar = @"rearLeftDoorAjar"; +SDLRPCParameterName const SDLRPCParameterNameRearRightDoorAjar = @"rearRightDoorAjar"; +SDLRPCParameterName const SDLRPCParameterNameReason = @"reason"; +SDLRPCParameterName const SDLRPCParameterNameRed = @"red"; +SDLRPCParameterName const SDLRPCParameterNameRect = @"rect"; +SDLRPCParameterName const SDLRPCParameterNameRegion = @"REG"; +SDLRPCParameterName const SDLRPCParameterNameRegions = @"regions"; +SDLRPCParameterName const SDLRPCParameterNameRemoteControl = @"remoteControl"; +SDLRPCParameterName const SDLRPCParameterNameRemoteControlCapability = @"remoteControlCapability"; +SDLRPCParameterName const SDLRPCParameterNameRequest = @"request"; +SDLRPCParameterName const SDLRPCParameterNameRequestServiceActive = @"requestServiceActive"; +SDLRPCParameterName const SDLRPCParameterNameRequestSubType = @"requestSubType"; +SDLRPCParameterName const SDLRPCParameterNameRequestType = @"requestType"; +SDLRPCParameterName const SDLRPCParameterNameRequireEncryption = @"requireEncryption"; +SDLRPCParameterName const SDLRPCParameterNameReserved = @"reserved"; +SDLRPCParameterName const SDLRPCParameterNameSecondaryColor = @"secondaryColor"; +SDLRPCParameterName const SDLRPCParameterNameResolution = @"resolution"; +SDLRPCParameterName const SDLRPCParameterNameResolutionHeight = @"resolutionHeight"; +SDLRPCParameterName const SDLRPCParameterNameResolutionWidth = @"resolutionWidth"; +SDLRPCParameterName const SDLRPCParameterNameResponse = @"response"; +SDLRPCParameterName const SDLRPCParameterNameResult = @"result"; +SDLRPCParameterName const SDLRPCParameterNameResultCode = @"resultCode"; +SDLRPCParameterName const SDLRPCParameterNameRightFront = @"rightFront"; +SDLRPCParameterName const SDLRPCParameterNameRightRear = @"rightRear"; +SDLRPCParameterName const SDLRPCParameterNameRightRearInflatableBelted = @"rightRearInflatableBelted"; +SDLRPCParameterName const SDLRPCParameterNameRightRow2BuckleBelted = @"rightRow2BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameRightRow3BuckleBelted = @"rightRow3BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameRolloverEvent = @"rolloverEvent"; +SDLRPCParameterName const SDLRPCParameterNameRow = @"row"; +SDLRPCParameterName const SDLRPCParameterNameRows = @"rows"; +SDLRPCParameterName const SDLRPCParameterNameRowSpan = @"rowspan"; +SDLRPCParameterName const SDLRPCParameterNameRPCName = @"rpcName"; +SDLRPCParameterName const SDLRPCParameterNameRPCSpecVersion = @"rpcSpecVersion"; +SDLRPCParameterName const SDLRPCParameterNameRPM = @"rpm"; +SDLRPCParameterName const SDLRPCParameterNameRadioText = @"RT"; +SDLRPCParameterName const SDLRPCParameterNameSamplingRate = @"samplingRate"; +SDLRPCParameterName const SDLRPCParameterNameSatellites = @"satellites"; +SDLRPCParameterName const SDLRPCParameterNameScale = @"scale"; +SDLRPCParameterName const SDLRPCParameterNameScreenParams = @"screenParams"; +SDLRPCParameterName const SDLRPCParameterNameScrollableMessageBody = @"scrollableMessageBody"; +SDLRPCParameterName const SDLRPCParameterNameSDLVersion = @"sdlVersion"; +SDLRPCParameterName const SDLRPCParameterNameSearchAddress = @"searchAddress"; +SDLRPCParameterName const SDLRPCParameterNameSeatControlData = @"seatControlData"; +SDLRPCParameterName const SDLRPCParameterNameSeatControlCapabilities = @"seatControlCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameSeatLocation = @"seatLocation"; +SDLRPCParameterName const SDLRPCParameterNameSeatLocationCapability = @"seatLocationCapability"; +SDLRPCParameterName const SDLRPCParameterNameSeats = @"seats"; +SDLRPCParameterName const SDLRPCParameterNameSecondaryGraphic = @"secondaryGraphic"; +SDLRPCParameterName const SDLRPCParameterNameSecondaryImage = @"secondaryImage"; +SDLRPCParameterName const SDLRPCParameterNameSecondaryText = @"secondaryText"; +SDLRPCParameterName const SDLRPCParameterNameSecond = @"second"; +SDLRPCParameterName const SDLRPCParameterNameSeconds = @"seconds"; +SDLRPCParameterName const SDLRPCParameterNameSendLocationEnabled = @"sendLocationEnabled"; +SDLRPCParameterName const SDLRPCParameterNameServiceActive = @"serviceActive"; +SDLRPCParameterName const SDLRPCParameterNameServiceArea = @"serviceArea"; +SDLRPCParameterName const SDLRPCParameterNameServiceData = @"serviceData"; +SDLRPCParameterName const SDLRPCParameterNameServiceIcon = @"serviceIcon"; +SDLRPCParameterName const SDLRPCParameterNameServiceID = @"serviceID"; +SDLRPCParameterName const SDLRPCParameterNameServiceManifest = @"serviceManifest"; +SDLRPCParameterName const SDLRPCParameterNameServiceName = @"serviceName"; +SDLRPCParameterName const SDLRPCParameterNameServicePublished = @"servicePublished"; +SDLRPCParameterName const SDLRPCParameterNameServiceSpecificResult = @"serviceSpecificResult"; +SDLRPCParameterName const SDLRPCParameterNameServiceType = @"serviceType"; +SDLRPCParameterName const SDLRPCParameterNameServiceUri = @"serviceUri"; +SDLRPCParameterName const SDLRPCParameterNameDisplayName = @"displayName"; +SDLRPCParameterName const SDLRPCParameterNameSeverity = @"severity"; +SDLRPCParameterName const SDLRPCParameterNameShifted = @"shifted"; +SDLRPCParameterName const SDLRPCParameterNameShortPress = @"shortPress"; +SDLRPCParameterName const SDLRPCParameterNameShortPressAvailable = @"shortPressAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSignalLevelStatus = @"signalLevelStatus"; +SDLRPCParameterName const SDLRPCParameterNameSignalChangeThreshold = @"signalChangeThreshold"; +SDLRPCParameterName const SDLRPCParameterNameSignalChangeThresholdAvailable = @"signalChangeThresholdAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSignalStrength = @"signalStrength"; +SDLRPCParameterName const SDLRPCParameterNameSignalStrengthAvailable = @"signalStrengthAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSiriusXMRadioAvailable = @"siriusxmRadioAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSISData = @"sisData"; +SDLRPCParameterName const SDLRPCParameterNameSISDataAvailable = @"sisDataAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSliderFooter = @"sliderFooter"; +SDLRPCParameterName const SDLRPCParameterNameSliderHeader = @"sliderHeader"; +SDLRPCParameterName const SDLRPCParameterNameSliderPosition = @"sliderPosition"; +SDLRPCParameterName const SDLRPCParameterNameSoftButtonCapabilities = @"softButtonCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameSoftButtonId = @"softButtonID"; +SDLRPCParameterName const SDLRPCParameterNameSoftButtons = @"softButtons"; +SDLRPCParameterName const SDLRPCParameterNameSource = @"source"; +SDLRPCParameterName const SDLRPCParameterNameSourceAvailable = @"sourceAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSpaceAvailable = @"spaceAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSpeechCapabilities = @"speechCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameSpeed = @"speed"; +SDLRPCParameterName const SDLRPCParameterNameRGBColorSpaceAvailable = @"rgbColorSpaceAvailable"; +SDLRPCParameterName const SDLRPCParameterNameStartTime = @"startTime"; +SDLRPCParameterName const SDLRPCParameterNameState = @"state"; +SDLRPCParameterName const SDLRPCParameterNameStateAvailable = @"stateAvailable"; +SDLRPCParameterName const SDLRPCParameterNameStateOfCharge = @"stateOfCharge"; +SDLRPCParameterName const SDLRPCParameterNameStationIDNumber = @"stationIDNumber"; +SDLRPCParameterName const SDLRPCParameterNameStationLongName = @"stationLongName"; +SDLRPCParameterName const SDLRPCParameterNameStationLocation = @"stationLocation"; +SDLRPCParameterName const SDLRPCParameterNameStationMessage = @"stationMessage"; +SDLRPCParameterName const SDLRPCParameterNameStationShortName = @"stationShortName"; +SDLRPCParameterName const SDLRPCParameterNameStatus = @"status"; +SDLRPCParameterName const SDLRPCParameterNameStatusAvailable = @"statusAvailable"; +SDLRPCParameterName const SDLRPCParameterNameStatusBar = @"statusBar"; +SDLRPCParameterName const SDLRPCParameterNameSteeringWheelAngle = @"steeringWheelAngle"; +SDLRPCParameterName const SDLRPCParameterNameStereoAudioOutputMuted = @"stereoAudioOutputMuted"; +SDLRPCParameterName const SDLRPCParameterNameSubAdministrativeArea = @"subAdministrativeArea"; +SDLRPCParameterName const SDLRPCParameterNameSubLocality = @"subLocality"; +SDLRPCParameterName const SDLRPCParameterNameSubscribe = @"subscribe"; +SDLRPCParameterName const SDLRPCParameterNameSubThoroughfare = @"subThoroughfare"; +SDLRPCParameterName const SDLRPCParameterNameSuccess = @"success"; +SDLRPCParameterName const SDLRPCParameterNameSummary = @"summary"; +SDLRPCParameterName const SDLRPCParameterNameSupportedDiagnosticModes = @"supportedDiagModes"; +SDLRPCParameterName const SDLRPCParameterNameSupportedFormats = @"supportedFormats"; +SDLRPCParameterName const SDLRPCParameterNameSupportedLights = @"supportedLights"; +SDLRPCParameterName const SDLRPCParameterNameSyncFileName = @"syncFileName"; +SDLRPCParameterName const SDLRPCParameterNameSyncMessageVersion = @"syncMsgVersion"; +SDLRPCParameterName const SDLRPCParameterNameSystemAction = @"systemAction"; +SDLRPCParameterName const SDLRPCParameterNameSystemCapability = @"systemCapability"; +SDLRPCParameterName const SDLRPCParameterNameSystemCapabilityType = @"systemCapabilityType"; +SDLRPCParameterName const SDLRPCParameterNameSystemContext = @"systemContext"; +SDLRPCParameterName const SDLRPCParameterNameSystemFile = @"systemFile"; +SDLRPCParameterName const SDLRPCParameterNameSystemSoftwareVersion = @"systemSoftwareVersion"; +SDLRPCParameterName const SDLRPCParameterNameTrackPlaybackDuration = @"trackPlaybackDuration"; +SDLRPCParameterName const SDLRPCParameterNameTrackPlaybackProgress = @"trackPlaybackProgress"; +SDLRPCParameterName const SDLRPCParameterNameTrafficAnnouncementIdentification = @"TA"; +SDLRPCParameterName const SDLRPCParameterNameTargetId = @"targetID"; +SDLRPCParameterName const SDLRPCParameterNameTemperatureHigh = @"temperatureHigh"; +SDLRPCParameterName const SDLRPCParameterNameTemperatureLow = @"temperatureLow"; +SDLRPCParameterName const SDLRPCParameterNameTemperatureUnit = @"temperatureUnit"; +SDLRPCParameterName const SDLRPCParameterNameTemplate = @"template"; +SDLRPCParameterName const SDLRPCParameterNameTemplateConfiguration = @"templateConfiguration"; +SDLRPCParameterName const SDLRPCParameterNameTemperatureUnitAvailable = @"temperatureUnitAvailable"; +SDLRPCParameterName const SDLRPCParameterNameTemplatesAvailable = @"templatesAvailable"; +SDLRPCParameterName const SDLRPCParameterNameTemplateTitle = @"templateTitle"; +SDLRPCParameterName const SDLRPCParameterNameTertiaryText = @"tertiaryText"; +SDLRPCParameterName const SDLRPCParameterNameText = @"text"; +SDLRPCParameterName const SDLRPCParameterNameTextFields = @"textFields"; +SDLRPCParameterName const SDLRPCParameterNameTextMessageAvailable = @"textMsgAvailable"; +SDLRPCParameterName const SDLRPCParameterNameTextSupported = @"textSupported"; +SDLRPCParameterName const SDLRPCParameterNameThoroughfare = @"thoroughfare"; +SDLRPCParameterName const SDLRPCParameterNameTimeIssued = @"timeIssued"; +SDLRPCParameterName const SDLRPCParameterNameTime = @"time"; +SDLRPCParameterName const SDLRPCParameterNameTimeout = @"timeout"; +SDLRPCParameterName const SDLRPCParameterNameTimeoutCapitalized = @"Timeout"; +SDLRPCParameterName const SDLRPCParameterNameTimeoutPrompt = @"timeoutPrompt"; +SDLRPCParameterName const SDLRPCParameterNameTS = @"ts"; +SDLRPCParameterName const SDLRPCParameterNameTimeStamp = @"timeStamp"; +SDLRPCParameterName const SDLRPCParameterNameTimeToDestination = @"timeToDestination"; +SDLRPCParameterName const SDLRPCParameterNameTimezoneHourOffset = @"tz_hour"; +SDLRPCParameterName const SDLRPCParameterNameTimezoneMinuteOffset = @"tz_minute"; +SDLRPCParameterName const SDLRPCParameterNameTirePressure = @"tirePressure"; +SDLRPCParameterName const SDLRPCParameterNameTitle = @"title"; +SDLRPCParameterName const SDLRPCParameterNameTotalDistance = @"totalDistance"; +SDLRPCParameterName const SDLRPCParameterNameTouchEventAvailable = @"touchEventAvailable"; +SDLRPCParameterName const SDLRPCParameterNameTPMS = @"tpms"; +SDLRPCParameterName const SDLRPCParameterNameTrafficProgramIdentification = @"TP"; +SDLRPCParameterName const SDLRPCParameterNameTriggerSource = @"triggerSource"; +SDLRPCParameterName const SDLRPCParameterNameTrim = @"trim"; +SDLRPCParameterName const SDLRPCParameterNameTryAgainTime = @"tryAgainTime"; +SDLRPCParameterName const SDLRPCParameterNameTTSChunks = @"ttsChunks"; +SDLRPCParameterName const SDLRPCParameterNameTTSName = @"ttsName"; +SDLRPCParameterName const SDLRPCParameterNameTurnIcon = @"turnIcon"; +SDLRPCParameterName const SDLRPCParameterNameTurnList = @"turnList"; +SDLRPCParameterName const SDLRPCParameterNameTurnSignal = @"turnSignal"; +SDLRPCParameterName const SDLRPCParameterNameType = @"type"; +SDLRPCParameterName const SDLRPCParameterNameUnit = @"unit"; +SDLRPCParameterName const SDLRPCParameterNameUnsubscribe = @"Unsubscribe"; +SDLRPCParameterName const SDLRPCParameterNameUpdatedAppServiceRecord = @"updatedAppServiceRecord"; +SDLRPCParameterName const SDLRPCParameterNameUpdateMode = @"updateMode"; +SDLRPCParameterName const SDLRPCParameterNameUpdateReason= @"updateReason"; +SDLRPCParameterName const SDLRPCParameterNameUpDownAvailable = @"upDownAvailable"; +SDLRPCParameterName const SDLRPCParameterNameURL = @"url"; +SDLRPCParameterName const SDLRPCParameterNameURLUppercase = @"URL"; +SDLRPCParameterName const SDLRPCParameterNameUserDisallowed = @"userDisallowed"; +SDLRPCParameterName const SDLRPCParameterNameUserLocation = @"userLocation"; +SDLRPCParameterName const SDLRPCParameterNameUserSelected = @"userSelected"; +SDLRPCParameterName const SDLRPCParameterNameUTCDay = @"utcDay"; +SDLRPCParameterName const SDLRPCParameterNameUTCHours = @"utcHours"; +SDLRPCParameterName const SDLRPCParameterNameUTCMinutes = @"utcMinutes"; +SDLRPCParameterName const SDLRPCParameterNameUTCMonth = @"utcMonth"; +SDLRPCParameterName const SDLRPCParameterNameUTCSeconds = @"utcSeconds"; +SDLRPCParameterName const SDLRPCParameterNameUTCYear = @"utcYear"; +SDLRPCParameterName const SDLRPCParameterNameValue = @"value"; +SDLRPCParameterName const SDLRPCParameterNameVDOP = @"vdop"; +SDLRPCParameterName const SDLRPCParameterNameVehicleType = @"vehicleType"; +SDLRPCParameterName const SDLRPCParameterNameVerticalPosition = @"verticalPosition"; +SDLRPCParameterName const SDLRPCParameterNameVerticalPositionAvailable = @"verticalPositionAvailable"; +SDLRPCParameterName const SDLRPCParameterNameVideoCodec = @"codec"; +SDLRPCParameterName const SDLRPCParameterNameVideoProtocol = @"protocol"; +SDLRPCParameterName const SDLRPCParameterNameVideoStreaming = @"videoStreaming"; +SDLRPCParameterName const SDLRPCParameterNameVideoStreamingCapability = @"videoStreamingCapability"; +SDLRPCParameterName const SDLRPCParameterNameVideoStreamingState = @"videoStreamingState"; +SDLRPCParameterName const SDLRPCParameterNameVisibility = @"visibility"; +SDLRPCParameterName const SDLRPCParameterNameVentilationMode = @"ventilationMode"; +SDLRPCParameterName const SDLRPCParameterNameVentilationModeAvailable = @"ventilationModeAvailable"; +SDLRPCParameterName const SDLRPCParameterNameVIN = @"vin"; +SDLRPCParameterName const SDLRPCParameterNameVoiceRecognitionOn = @"voiceRecOn"; +SDLRPCParameterName const SDLRPCParameterNameVolume = @"volume"; +SDLRPCParameterName const SDLRPCParameterNameVolumeAvailable = @"volumeAvailable"; +SDLRPCParameterName const SDLRPCParameterNameVRCapabilities = @"vrCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameVRCommands = @"vrCommands"; +SDLRPCParameterName const SDLRPCParameterNameVRHelp = @"vrHelp"; +SDLRPCParameterName const SDLRPCParameterNameVRHelpTitle = @"vrHelpTitle"; +SDLRPCParameterName const SDLRPCParameterNameVRSynonyms = @"vrSynonyms"; +SDLRPCParameterName const SDLRPCParameterNameWayPoints = @"wayPoints"; +SDLRPCParameterName const SDLRPCParameterNameWayPointType = @"wayPointType"; +SDLRPCParameterName const SDLRPCParameterNameWeatherForLocationSupported = @"weatherForLocationSupported"; +SDLRPCParameterName const SDLRPCParameterNameWeatherIcon = @"weatherIcon"; +SDLRPCParameterName const SDLRPCParameterNameWeatherServiceData = @"weatherServiceData"; +SDLRPCParameterName const SDLRPCParameterNameWeatherServiceManifest = @"weatherServiceManifest"; +SDLRPCParameterName const SDLRPCParameterNameWeatherSummary = @"weatherSummary"; +SDLRPCParameterName const SDLRPCParameterNameWidth = @"width"; +SDLRPCParameterName const SDLRPCParameterNameWindBearing = @"windBearing"; +SDLRPCParameterName const SDLRPCParameterNameWindGust = @"windGust"; +SDLRPCParameterName const SDLRPCParameterNameWindSpeed = @"windSpeed"; +SDLRPCParameterName const SDLRPCParameterNameWiperStatus = @"wiperStatus"; +SDLRPCParameterName const SDLRPCParameterNameWindowCapabilities = @"windowCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameWindowId = @"windowID"; +SDLRPCParameterName const SDLRPCParameterNameWindowName = @"windowName"; +SDLRPCParameterName const SDLRPCParameterNameWindowTypeSupported = @"windowTypeSupported"; +SDLRPCParameterName const SDLRPCParameterNameX = @"x"; +SDLRPCParameterName const SDLRPCParameterNameY = @"y"; +SDLRPCParameterName const SDLRPCParameterNameYear = @"year"; + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.h new file mode 100644 index 0000000..a431250 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.h @@ -0,0 +1,47 @@ +// +// SDLRPCPermissionStatus.h +// SmartDeviceLink +// +// Created by James Lapinski on 6/29/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLRPCPermissionStatus : NSObject + +/** + Name of the individual RPC. + + Required + */ +@property (strong, nonatomic, readonly) SDLRPCFunctionName rpcName; + +/** + * Whether or not the RPC is allowed. + */ +@property (assign, nonatomic, readonly, getter=isRPCAllowed) BOOL rpcAllowed; + +/** + * Holds a dictionary of RPC parameters and objects of an NSNumber specifying if that RPC parameter is currently allowed + */ +@property (strong, nonatomic, nullable, readonly) NSDictionary *rpcParameters; + +/** + * Initializes a SDLRPCPermissionStatus object. + * + * @param rpcName The name of the RPC. + * @param isRPCAllowed The permission status for the RPC. + * @param rpcParameters A dictionary of RPC parameters and objects of an NSNumber specifying if that RPC parameter is currently allowed + * + * @return An instance of the SDLRPCPermissionStatus class. + */ +- (instancetype)initWithRPCName:(SDLRPCFunctionName)rpcName isRPCAllowed:(BOOL)isRPCAllowed rpcParameters:(nullable NSDictionary *)rpcParameters; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.m new file mode 100644 index 0000000..7c6a8d0 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.m @@ -0,0 +1,34 @@ +// +// SDLRPCPermissionStatus.m +// SmartDeviceLink +// +// Created by James Lapinski on 6/29/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLRPCPermissionStatus.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLRPCPermissionStatus + +- (instancetype)initWithRPCName:(SDLRPCFunctionName)rpcName isRPCAllowed:(BOOL)isRPCAllowed rpcParameters:(nullable NSDictionary *)rpcParameters { + self = [super init]; + if (!self) { return nil; } + + _rpcName = rpcName; + _rpcAllowed = isRPCAllowed; + _rpcParameters = rpcParameters; + + return self; +} + +#pragma mark - Description + +- (NSString *)description { + return [NSString stringWithFormat:@"RPC Permission status, RPC name: %@, allowed: %@, RPC parameters %@", self.rpcName, (self.isRPCAllowed ? @"YES" : @"NO"), self.rpcParameters]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.h index a25016a..e171c09 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.h @@ -6,6 +6,7 @@ NS_ASSUME_NONNULL_BEGIN +/// Superclass of RPC requests @interface SDLRPCRequest : SDLRPCMessage /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.m index 434c3e7..445bace 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.m @@ -5,18 +5,29 @@ #import "SDLRPCRequest.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN +@interface SDLRPCMessage () + +@property (strong, nonatomic) NSMutableDictionary *function; + +@end + @implementation SDLRPCRequest - (NSNumber *)correlationID { - return [function sdl_objectForName:SDLNameCorrelationId]; + NSError *error = nil; + return [self.function sdl_objectForName:SDLRPCParameterNameCorrelationId ofClass:NSNumber.class error:&error]; } - (void)setCorrelationID:(NSNumber *)corrID { - [function sdl_setObject:corrID forName:SDLNameCorrelationId]; + [self.function sdl_setObject:corrID forName:SDLRPCParameterNameCorrelationId]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"%@ (%@), id: %@\n%@", self.name, self.messageType, self.correlationID, self.parameters]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.h new file mode 100644 index 0000000..248358e --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.h @@ -0,0 +1,51 @@ +// +// SDLRPCRequestNotification.h +// SmartDeviceLink +// +// Created by Nicole on 2/14/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +@class SDLRPCRequest; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A NSNotification object that makes retrieving internal SDLRPCRequest data easier + */ +@interface SDLRPCRequestNotification : NSNotification + +/** + * The request to be included in the userinfo dictionary + */ +@property (copy, nonatomic, readonly) __kindof SDLRPCRequest *request; + +/** + * Create an NSNotification object containing an SDLRPCRequest + * + * @param name The NSNotification name + * @param object The NSNotification object + * @param request The SDLRPCRequest payload + * @return The NSNotification + */ +- (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcRequest:(__kindof SDLRPCRequest *)request; + +/** + * Returns whether or not the containing request is equal to a class, not including subclasses. + * + * @param aClass the class you are questioning + */ +- (BOOL)isRequestMemberOfClass:(Class)aClass; + +/** + * Returns whether or not the containing request is a kind of class, including subclasses. + * + * @param aClass the class you are questioning + */ +- (BOOL)isRequestKindOfClass:(Class)aClass; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.m new file mode 100644 index 0000000..4ac6250 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.m @@ -0,0 +1,49 @@ +// +// SDLRPCRequestNotification.m +// SmartDeviceLink +// +// Created by Nicole on 2/14/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequestNotification.h" + +#import "SDLNotificationConstants.h" +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLRPCRequestNotification + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wimplicit-atomic-properties" +@synthesize name = _name; +@synthesize object = _object; +@synthesize userInfo = _userInfo; +#pragma clang diagnostic pop + +- (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcRequest:(__kindof SDLRPCRequest *)request { + _name = name; + _object = object; + _userInfo = @{SDLNotificationUserInfoObject: request}; + + return self; +} + +- (__kindof SDLRPCRequest *)request { + return _userInfo[SDLNotificationUserInfoObject]; +} + +- (BOOL)isRequestMemberOfClass:(Class)aClass { + NSAssert([self.request isMemberOfClass:aClass], @"A notification was sent with an unanticipated object"); + return [self.request isMemberOfClass:aClass]; +} + +- (BOOL)isRequestKindOfClass:(Class)aClass { + NSAssert([self.request isKindOfClass:aClass], @"A notification was sent with an unanticipated object"); + return [self.request isKindOfClass:aClass]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.h index bdb6989..4e944a0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.h @@ -8,6 +8,7 @@ NS_ASSUME_NONNULL_BEGIN +/// Superclass of RPC responses @interface SDLRPCResponse : SDLRPCMessage /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.m index a7a839f..c0ad88b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.m @@ -5,21 +5,30 @@ #import "SDLRPCResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLResult.h" NS_ASSUME_NONNULL_BEGIN +@interface SDLRPCMessage () + +@property (strong, nonatomic, readwrite) NSString *messageType; +@property (strong, nonatomic) NSMutableDictionary *function; + +@end + @implementation SDLRPCResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" - (instancetype)initWithName:(NSString *)name { self = [super initWithName:name]; if (!self) { return nil; } - messageType = SDLNameResponse; - [store sdl_setObject:function forName:messageType]; + self.messageType = SDLRPCParameterNameResponse; + [self.store sdl_setObject:self.function forName:self.messageType]; return self; } @@ -30,42 +39,51 @@ - (instancetype)initWithDictionary:(NSMutableDictionary *)dict { return nil; } - messageType = SDLNameResponse; - [store sdl_setObject:function forName:messageType]; + self.messageType = SDLRPCParameterNameResponse; + [self.store sdl_setObject:self.function forName:self.messageType]; return self; } +#pragma clang diagnostic pop + +- (NSString *)description { + return [NSString stringWithFormat:@"%@ (%@), id: %@\n%@", self.name, self.messageType, self.correlationID, self.parameters]; +} + - (NSNumber *)correlationID { - return [function sdl_objectForName:SDLNameCorrelationId]; + NSError *error = nil; + return [self.function sdl_objectForName:SDLRPCParameterNameCorrelationId ofClass:NSNumber.class error:&error]; } - (void)setCorrelationID:(NSNumber *)corrID { - [function sdl_setObject:corrID forName:SDLNameCorrelationId]; + [self.function sdl_setObject:corrID forName:SDLRPCParameterNameCorrelationId]; } - (void)setSuccess:(NSNumber *)success { - [parameters sdl_setObject:success forName:SDLNameSuccess]; + [self.parameters sdl_setObject:success forName:SDLRPCParameterNameSuccess]; } - (NSNumber *)success { - return [parameters sdl_objectForName:SDLNameSuccess]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSuccess ofClass:NSNumber.class error:&error]; } - (void)setResultCode:(SDLResult)resultCode { - [parameters sdl_setObject:resultCode forName:SDLNameResultCode]; + [self.parameters sdl_setObject:resultCode forName:SDLRPCParameterNameResultCode]; } - (SDLResult)resultCode { - return [parameters sdl_objectForName:SDLNameResultCode]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameResultCode error:&error]; } - (void)setInfo:(nullable NSString *)info { - [parameters sdl_setObject:info forName:SDLNameInfo]; + [self.parameters sdl_setObject:info forName:SDLRPCParameterNameInfo]; } - (nullable NSString *)info { - return [parameters sdl_objectForName:SDLNameInfo]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameInfo ofClass:NSString.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponseNotification.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponseNotification.h index c6c7cdf..4434f2a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponseNotification.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponseNotification.h @@ -14,22 +14,22 @@ NS_ASSUME_NONNULL_BEGIN /** - An NSNotification object that makes retrieving internal SDLRPCResponse data easier + * A NSNotification object that makes retrieving internal SDLRPCResponse data easier */ @interface SDLRPCResponseNotification : NSNotification /** - The response within the userinfo dictionary + * The response to be included within the userinfo dictionary */ @property (copy, nonatomic, readonly) __kindof SDLRPCResponse *response; /** - Create an NSNotification object caontaining an SDLRPCResponse - - @param name The NSNotification name - @param object The NSNotification object - @param response The SDLRPCResponse payload - @return The NSNotification + * Create an NSNotification object containing an SDLRPCResponse + * + * @param name The NSNotification name + * @param object The NSNotification object + * @param response The SDLRPCResponse payload + * @return The NSNotification */ - (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcResponse:(__kindof SDLRPCResponse *)response; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.h index 2b05e74..e8a36d9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.h @@ -8,9 +8,14 @@ NS_ASSUME_NONNULL_BEGIN -@interface SDLRPCStruct : NSObject { - NSMutableDictionary *store; -} +/// Superclass of all RPC-related structs and messages +@interface SDLRPCStruct : NSObject + +/// The store that contains RPC data +@property (strong, nonatomic, readonly) NSMutableDictionary *store; + +/// Declares if the RPC payload ought to be protected +@property (assign, nonatomic, getter=isPayloadProtected) BOOL payloadProtected; /** * Convenience init @@ -20,13 +25,6 @@ NS_ASSUME_NONNULL_BEGIN */ - (instancetype)initWithDictionary:(NSDictionary *)dict; -/** - * Init - * - * @return A SDLRPCStruct object - */ -- (instancetype)init; - /** * Converts struct to JSON formatted data * diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.m index b0bccaa..9956df0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.m @@ -5,47 +5,53 @@ #import "SDLRPCStruct.h" #import "SDLEnum.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLRPCStruct -- (id)initWithDictionary:(NSDictionary *)dict { - if (self = [super init]) { - if (dict != nil) { - store = [dict mutableCopy]; - } else { - store = [NSMutableDictionary dictionary]; - } +- (instancetype)initWithDictionary:(NSDictionary *)dict { + self = [super init]; + if (!self) { + return nil; } + + _store = [dict mutableCopy]; + _payloadProtected = NO; + return self; } -- (id)init { - if (self = [super init]) { - store = [NSMutableDictionary dictionary]; +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; } + + _store = [NSMutableDictionary dictionary]; + _payloadProtected = NO; + return self; } - (NSDictionary *)serializeAsDictionary:(Byte)version { if (version >= 2) { - NSString *messageType = store.keyEnumerator.nextObject; - NSMutableDictionary *function = store[messageType]; + NSString *messageType = self.store.keyEnumerator.nextObject; + NSMutableDictionary *function = _store[messageType]; if ([function isKindOfClass:NSMutableDictionary.class]) { - NSMutableDictionary *parameters = function[SDLNameParameters]; + NSMutableDictionary *parameters = function[SDLRPCParameterNameParameters]; return [self.class sdl_serializeDictionary:parameters version:version]; } else { - return [self.class sdl_serializeDictionary:store version:version]; + return [self.class sdl_serializeDictionary:self.store version:version]; } } else { - return [self.class sdl_serializeDictionary:store version:version]; + return [self.class sdl_serializeDictionary:self.store version:version]; } } - (NSString *)description { - return [store description]; + return [self.store description]; } + (NSDictionary *)sdl_serializeDictionary:(NSDictionary *)dict version:(Byte)version { @@ -76,14 +82,14 @@ - (NSString *)description { } - (id)copyWithZone:(nullable NSZone *)zone { - SDLRPCStruct *newStruct = [[[self class] allocWithZone:zone] init]; - newStruct->store = [self->store mutableCopy]; + SDLRPCStruct *newStruct = [[[self class] allocWithZone:zone] initWithDictionary:_store]; + newStruct.payloadProtected = self.payloadProtected; return newStruct; } - (BOOL)isEqualToRPC:(SDLRPCStruct *)rpc { - return [rpc->store isEqualToDictionary:self->store]; + return [rpc.store isEqualToDictionary:_store]; } - (BOOL)isEqual:(id)object { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.h index b909fa1..043a8ab 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.h @@ -28,15 +28,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property (assign, nonatomic) UInt8 payloadType; -/** - * SSRC of RTP header field. - * - * SSRC field identifies the source of a stream and it should be - * chosen randomly (see section 3 and 5.1 in RFC 3550). - * - * @note A random value is generated and used as default. - */ -@property (assign, nonatomic) UInt32 ssrc; +- (instancetype)initWithSSRC:(UInt32)ssrc; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.m index e0f994e..ddb5f80 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.m @@ -55,12 +55,22 @@ static inline void sdl_writeLongInNetworkByteOrder(UInt8 *buffer, UInt32 value) NS_ASSUME_NONNULL_BEGIN @interface SDLRTPH264Packetizer () + @property (assign, nonatomic) UInt32 initialTimestamp; @property (assign, nonatomic) UInt16 sequenceNum; +@property (assign, nonatomic) UInt32 ssrc; + @end @implementation SDLRTPH264Packetizer +- (instancetype)initWithSSRC:(UInt32)ssrc { + self = [self init]; + _ssrc = ssrc; + + return self; +} + - (instancetype)init { self = [super init]; if (!self) { @@ -71,7 +81,6 @@ - (instancetype)init { // initial value of the sequence number and timestamp should be random ([5.1] in RFC3550) _initialTimestamp = arc4random_uniform(UINT32_MAX); _sequenceNum = (UInt16)arc4random_uniform(UINT16_MAX); - _ssrc = arc4random_uniform(UINT32_MAX); return self; } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.h index 5bdcbeb..0c35df1 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.h @@ -3,6 +3,7 @@ // #import "SDLRPCMessage.h" +#import "SDLModuleInfo.h" NS_ASSUME_NONNULL_BEGIN @@ -26,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN @param signalChangeThresholdAvailable Availability of the getting the signal Change Threshold. @return An instance of the SDLRadioControlCapabilities class. */ -- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable __deprecated_msg(("Use initWithModuleName:moduleName:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead")); +- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable __deprecated_msg(("Use initWithModuleName:moduleName:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDChannelsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead")); /** Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. @@ -46,7 +47,48 @@ NS_ASSUME_NONNULL_BEGIN @param sisDataAvailable Availability of sis data. @return An instance of the SDLRadioControlCapabilities class */ -- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable; +- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable __deprecated_msg(("Use initWithModuleName:moduleName:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDChannelsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead")); + +/** + Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. + + @param moduleName The short friendly name of the radio control module. + @param radioEnableAvailable Availability of the control of enable/disable radio. + @param radioBandAvailable Availability of the control of radio band. + @param radioFrequencyAvailable Availability of the control of radio frequency. + @param hdChannelAvailable Availability of the control of HD radio channel. + @param rdsDataAvailable Availability of the getting Radio Data System (RDS) data. + @param availableHDChannelsAvailable Availability of the list of available HD sub-channel indexes. + @param stateAvailable Availability of the getting the Radio state. + @param signalStrengthAvailable Availability of the getting the signal strength. + @param signalChangeThresholdAvailable Availability of the getting the signal Change Threshold. + @param hdRadioEnableAvailable Availability of the control of enable/disable HD radio. + @param siriusXMRadioAvailable Availability of sirius XM radio. + @param sisDataAvailable Availability of sis data. + @return An instance of the SDLRadioControlCapabilities class + */ +- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable __deprecated_msg(("Use initWithModuleName:moduleName:moduleInfo:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDChannelsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead")); + +/** + Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. + + @param moduleName The short friendly name of the radio control module. + @param moduleInfo Information about a RC module, including its id. + @param radioEnableAvailable Availability of the control of enable/disable radio. + @param radioBandAvailable Availability of the control of radio band. + @param radioFrequencyAvailable Availability of the control of radio frequency. + @param hdChannelAvailable Availability of the control of HD radio channel. + @param rdsDataAvailable Availability of the getting Radio Data System (RDS) data. + @param availableHDChannelsAvailable Availability of the list of available HD sub-channel indexes. + @param stateAvailable Availability of the getting the Radio state. + @param signalStrengthAvailable Availability of the getting the signal strength. + @param signalChangeThresholdAvailable Availability of the getting the signal Change Threshold. + @param hdRadioEnableAvailable Availability of the control of enable/disable HD radio. + @param siriusXMRadioAvailable Availability of sirius XM radio. + @param sisDataAvailable Availability of sis data. + @return An instance of the SDLRadioControlCapabilities class + */ +- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable; /** * The short friendly name of the radio control module. @@ -109,7 +151,16 @@ NS_ASSUME_NONNULL_BEGIN * * Optional, Boolean */ -@property (nullable, strong, nonatomic) NSNumber *availableHDsAvailable; +@property (nullable, strong, nonatomic) NSNumber *availableHDsAvailable __deprecated_msg("Use availableHDChannelsAvailable instead."); + +/** + * Availability of the list of available HD sub-channel indexes. + + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *availableHDChannelsAvailable; /** * Availability of the getting the Radio state. @@ -162,6 +213,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSNumber *sisDataAvailable; +/** + * Information about a RC module, including its id. + * + * SDLModuleInfo + */ +@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.m index db45eb8..921e2e6 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.m @@ -3,7 +3,7 @@ // #import "SDLRadioControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -19,14 +19,61 @@ - (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:( if(!self){ return nil; } + + self.moduleName = moduleName; + self.radioEnableAvailable = @(radioEnableAvailable); + self.radioBandAvailable = @(radioBandAvailable); + self.radioFrequencyAvailable = @(radioFrequencyAvailable); + self.hdChannelAvailable = @(hdChannelAvailable); + self.rdsDataAvailable = @(rdsDataAvailable); + self.availableHDsAvailable = @(availableHDsAvailable); + self.stateAvailable = @(stateAvailable); + self.signalStrengthAvailable = @(signalStrengthAvailable); + self.signalChangeThresholdAvailable = @(signalChangeThresholdAvailable); + self.hdRadioEnableAvailable = @(hdRadioEnableAvailable); + self.siriusXMRadioAvailable = @(siriusXMRadioAvailable); + self.sisDataAvailable = @(sisDataAvailable); + + return self; +} + +- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable { + self = [self init]; + if(!self){ + return nil; + } + + self.moduleName = moduleName; + self.radioEnableAvailable = @(radioEnableAvailable); + self.radioBandAvailable = @(radioBandAvailable); + self.radioFrequencyAvailable = @(radioFrequencyAvailable); + self.hdChannelAvailable = @(hdChannelAvailable); + self.rdsDataAvailable = @(rdsDataAvailable); + self.availableHDChannelsAvailable = @(availableHDChannelsAvailable); + self.stateAvailable = @(stateAvailable); + self.signalStrengthAvailable = @(signalStrengthAvailable); + self.signalChangeThresholdAvailable = @(signalChangeThresholdAvailable); + self.hdRadioEnableAvailable = @(hdRadioEnableAvailable); + self.siriusXMRadioAvailable = @(siriusXMRadioAvailable); + self.sisDataAvailable = @(sisDataAvailable); + + return self; +} + +- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable { + self = [self init]; + if(!self){ + return nil; + } self.moduleName = moduleName; + self.moduleInfo = moduleInfo; self.radioEnableAvailable = @(radioEnableAvailable); self.radioBandAvailable = @(radioBandAvailable); self.radioFrequencyAvailable = @(radioFrequencyAvailable); self.hdChannelAvailable = @(hdChannelAvailable); self.rdsDataAvailable = @(rdsDataAvailable); - self.availableHDsAvailable = @(availableHDsAvailable); + self.availableHDChannelsAvailable = @(availableHDChannelsAvailable); self.stateAvailable = @(stateAvailable); self.signalStrengthAvailable = @(signalStrengthAvailable); self.signalChangeThresholdAvailable = @(signalChangeThresholdAvailable); @@ -38,107 +85,124 @@ - (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:( } - (void)setModuleName:(NSString *)moduleName { - [store sdl_setObject:moduleName forName:SDLNameModuleName]; + [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } - (NSString *)moduleName { - return [store sdl_objectForName:SDLNameModuleName]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; } - (void)setRadioEnableAvailable:(nullable NSNumber *)radioEnableAvailable { - [store sdl_setObject:radioEnableAvailable forName:SDLNameRadioEnableAvailable]; + [self.store sdl_setObject:radioEnableAvailable forName:SDLRPCParameterNameRadioEnableAvailable]; } - (nullable NSNumber *)radioEnableAvailable { - return [store sdl_objectForName:SDLNameRadioEnableAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameRadioEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setRadioBandAvailable:(nullable NSNumber *)radioBandAvailable { - [store sdl_setObject:radioBandAvailable forName:SDLNameRadioBandAvailable]; + [self.store sdl_setObject:radioBandAvailable forName:SDLRPCParameterNameRadioBandAvailable]; } - (nullable NSNumber *)radioBandAvailable { - return [store sdl_objectForName:SDLNameRadioBandAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameRadioBandAvailable ofClass:NSNumber.class error:nil]; } - (void)setRadioFrequencyAvailable:(nullable NSNumber *)radioFrequencyAvailable { - [store sdl_setObject:radioFrequencyAvailable forName:SDLNameRadioFrequencyAvailable]; + [self.store sdl_setObject:radioFrequencyAvailable forName:SDLRPCParameterNameRadioFrequencyAvailable]; } - (nullable NSNumber *)radioFrequencyAvailable { - return [store sdl_objectForName:SDLNameRadioFrequencyAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameRadioFrequencyAvailable ofClass:NSNumber.class error:nil]; } - (void)setHdChannelAvailable:(nullable NSNumber *)hdChannelAvailable { - [store sdl_setObject:hdChannelAvailable forName:SDLNameHDChannelAvailable]; + [self.store sdl_setObject:hdChannelAvailable forName:SDLRPCParameterNameHDChannelAvailable]; } - (nullable NSNumber *)hdChannelAvailable { - return [store sdl_objectForName:SDLNameHDChannelAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHDChannelAvailable ofClass:NSNumber.class error:nil]; } - (void)setRdsDataAvailable:(nullable NSNumber *)rdsDataAvailable { - [store sdl_setObject:rdsDataAvailable forName:SDLNameRDSDataAvailable]; + [self.store sdl_setObject:rdsDataAvailable forName:SDLRPCParameterNameRDSDataAvailable]; } - (nullable NSNumber *)rdsDataAvailable { - return [store sdl_objectForName:SDLNameRDSDataAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameRDSDataAvailable ofClass:NSNumber.class error:nil]; } - (void)setAvailableHDsAvailable:(nullable NSNumber *)availableHDsAvailable { - [store sdl_setObject:availableHDsAvailable forName:SDLNameAvailableHDsAvailable]; + [self.store sdl_setObject:availableHDsAvailable forName:SDLRPCParameterNameAvailableHDsAvailable]; } - (nullable NSNumber *)availableHDsAvailable { - return [store sdl_objectForName:SDLNameAvailableHDsAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameAvailableHDsAvailable ofClass:NSNumber.class error:nil]; +} + +- (void)setAvailableHDChannelsAvailable:(nullable NSNumber *)availableHDChannelsAvailable { + [self.store sdl_setObject:availableHDChannelsAvailable forName:SDLRPCParameterNameAvailableHDsAvailable]; +} + +- (nullable NSNumber *)availableHDChannelsAvailable { + return [self.store sdl_objectForName:SDLRPCParameterNameAvailableHDsAvailable ofClass:NSNumber.class error:nil]; } - (void)setStateAvailable:(nullable NSNumber *)stateAvailable { - [store sdl_setObject:stateAvailable forName:SDLNameStateAvailable]; + [self.store sdl_setObject:stateAvailable forName:SDLRPCParameterNameStateAvailable]; } - (nullable NSNumber *)stateAvailable { - return [store sdl_objectForName:SDLNameStateAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameStateAvailable ofClass:NSNumber.class error:nil]; } - (void)setSignalStrengthAvailable:(nullable NSNumber *)signalStrengthAvailable { - [store sdl_setObject:signalStrengthAvailable forName:SDLNameSignalStrengthAvailable]; + [self.store sdl_setObject:signalStrengthAvailable forName:SDLRPCParameterNameSignalStrengthAvailable]; } - (nullable NSNumber *)signalStrengthAvailable { - return [store sdl_objectForName:SDLNameSignalStrengthAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameSignalStrengthAvailable ofClass:NSNumber.class error:nil]; } - (void)setSignalChangeThresholdAvailable:(nullable NSNumber *)signalChangeThresholdAvailable { - [store sdl_setObject:signalChangeThresholdAvailable forName:SDLNameSignalChangeThresholdAvailable]; + [self.store sdl_setObject:signalChangeThresholdAvailable forName:SDLRPCParameterNameSignalChangeThresholdAvailable]; } - (nullable NSNumber *)signalChangeThresholdAvailable { - return [store sdl_objectForName:SDLNameSignalChangeThresholdAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameSignalChangeThresholdAvailable ofClass:NSNumber.class error:nil]; } - (void)setHdRadioEnableAvailable:(nullable NSNumber *)hdRadioEnableAvailable { - [store sdl_setObject:hdRadioEnableAvailable forName:SDLNameHDRadioEnableAvailable]; + [self.store sdl_setObject:hdRadioEnableAvailable forName:SDLRPCParameterNameHDRadioEnableAvailable]; } - (nullable NSNumber *)hdRadioEnableAvailable { - return [store sdl_objectForName:SDLNameHDRadioEnableAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHDRadioEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setSiriusXMRadioAvailable:(nullable NSNumber *)siriusXMRadioAvailable { - [store sdl_setObject:siriusXMRadioAvailable forName:SDLNameSiriusXMRadioAvailable]; + [self.store sdl_setObject:siriusXMRadioAvailable forName:SDLRPCParameterNameSiriusXMRadioAvailable]; } - (nullable NSNumber *)siriusXMRadioAvailable { - return [store sdl_objectForName:SDLNameSiriusXMRadioAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameSiriusXMRadioAvailable ofClass:NSNumber.class error:nil]; } - (void)setSisDataAvailable:(nullable NSNumber *)sisDataAvailable { - [store sdl_setObject:sisDataAvailable forName:SDLNameSISDataAvailable]; + [self.store sdl_setObject:sisDataAvailable forName:SDLRPCParameterNameSISDataAvailable]; } - (nullable NSNumber *)sisDataAvailable { - return [store sdl_objectForName:SDLNameSISDataAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameSISDataAvailable ofClass:NSNumber.class error:nil]; +} + +- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { + [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; +} + +- (nullable SDLModuleInfo *)moduleInfo { + return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.h index 0fe489e..182e610 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.h @@ -41,6 +41,27 @@ NS_ASSUME_NONNULL_BEGIN */ - (instancetype)initWithFrequencyInteger:(nullable NSNumber *)frequencyInteger frequencyFraction:(nullable NSNumber *)frequencyFraction band:(nullable SDLRadioBand)band hdChannel:(nullable NSNumber *)hdChannel radioEnable:(nullable NSNumber *)radioEnable hdRadioEnable:(nullable NSNumber *)hdRadioEnable; +/// Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. +/// +/// @param frequencyInteger Must be between 0 and 1710 +/// @param frequencyFraction Must be between 0 and 9 +/// @param hdChannel Must be between 0 and 7 +/// @return An instance of the SDLRadioControlData class +- (instancetype)initFMWithFrequencyInteger:(nullable NSNumber *)frequencyInteger frequencyFraction:(nullable NSNumber *)frequencyFraction hdChannel:(nullable NSNumber *)hdChannel; + +/// Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. +/// +/// @param frequencyInteger Must be between 0 and 1710 +/// @param hdChannel Must be between 0 and 7 +/// @return An instance of the SDLRadioControlData class +- (instancetype)initAMWithFrequencyInteger:(nullable NSNumber *)frequencyInteger hdChannel:(nullable NSNumber *)hdChannel; + +/// Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. +/// +/// @param frequencyInteger Must be between 1 and 1710 +/// @return An instance of the SDLRadioControlData class +- (instancetype)initXMWithFrequencyInteger:(nullable NSNumber *)frequencyInteger; + /** * The integer part of the frequency ie for 101.7 this value should be 101 * @@ -78,12 +99,21 @@ NS_ASSUME_NONNULL_BEGIN * * Integer value Min Value - 1 Max Value -7 */ -@property (nullable, strong, nonatomic) NSNumber *availableHDs; +@property (nullable, strong, nonatomic) NSNumber *availableHDs __deprecated_msg("Use availableHDChannels instead"); + +/** + * the list of available hd sub-channel indexes, empty list means no Hd channel is available, read-only + * + * @warning This property is readonly and cannot be set on the module. + * + * Integer value Min Value - 0 Max Value -7 + */ +@property (nullable, strong, nonatomic) NSNumber *availableHDChannels; /** * Current HD sub-channel if available * - * Integer value Min Value - 1 Max Value -7 + * Integer value Min Value - 0 Max Value -7 */ @property (nullable, strong, nonatomic) NSNumber *hdChannel; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.m index f1af682..9fb82f0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.m @@ -3,7 +3,7 @@ // #import "SDLRadioControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLRDSData.h" #import "SDLSISData.h" #import "NSMutableDictionary+Store.h" @@ -43,100 +43,147 @@ - (instancetype)initWithFrequencyInteger:(nullable NSNumber *)frequencyI return self; } +- (instancetype)initFMWithFrequencyInteger:(nullable NSNumber *)frequencyInteger frequencyFraction:(nullable NSNumber *)frequencyFraction hdChannel:(nullable NSNumber *)hdChannel { + self = [self init]; + if(!self) { + return nil; + } + + self.band = SDLRadioBandFM; + self.frequencyInteger = frequencyInteger; + self.frequencyFraction = frequencyFraction; + self.hdChannel = hdChannel; + + return self; +} + +- (instancetype)initAMWithFrequencyInteger:(nullable NSNumber *)frequencyInteger hdChannel:(nullable NSNumber *)hdChannel { + self = [self init]; + if(!self) { + return nil; + } + + self.band = SDLRadioBandAM; + self.frequencyInteger = frequencyInteger; + self.hdChannel = hdChannel; + + return self; +} + +- (instancetype)initXMWithFrequencyInteger:(nullable NSNumber *)frequencyInteger { + self = [self init]; + if(!self) { + return nil; + } + + self.frequencyInteger = frequencyInteger; + self.band = SDLRadioBandXM; + + return self; +} + - (void)setFrequencyInteger:(nullable NSNumber *)frequencyInteger { - [store sdl_setObject:frequencyInteger forName:SDLNameFrequencyInteger]; + [self.store sdl_setObject:frequencyInteger forName:SDLRPCParameterNameFrequencyInteger]; } - (nullable NSNumber *)frequencyInteger { - return [store sdl_objectForName:SDLNameFrequencyInteger]; + return [self.store sdl_objectForName:SDLRPCParameterNameFrequencyInteger ofClass:NSNumber.class error:nil]; } - (void)setFrequencyFraction:(nullable NSNumber *)frequencyFraction { - [store sdl_setObject:frequencyFraction forName:SDLNameFrequencyFraction]; + [self.store sdl_setObject:frequencyFraction forName:SDLRPCParameterNameFrequencyFraction]; } - (nullable NSNumber *)frequencyFraction { - return [store sdl_objectForName:SDLNameFrequencyFraction]; + return [self.store sdl_objectForName:SDLRPCParameterNameFrequencyFraction ofClass:NSNumber.class error:nil]; } - (void)setBand:(nullable SDLRadioBand)band { - [store sdl_setObject:band forName:SDLNameBand]; + [self.store sdl_setObject:band forName:SDLRPCParameterNameBand]; } - (nullable SDLRadioBand)band{ - return [store sdl_objectForName:SDLNameBand]; + return [self.store sdl_enumForName:SDLRPCParameterNameBand error:nil]; } - (void)setRdsData:(nullable SDLRDSData *)rdsData { - [store sdl_setObject:rdsData forName:SDLNameRDSData]; + [self.store sdl_setObject:rdsData forName:SDLRPCParameterNameRDSData]; } - (nullable SDLRDSData *)rdsData { - return [store sdl_objectForName:SDLNameRDSData ofClass:SDLRDSData.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameRDSData ofClass:SDLRDSData.class error:nil]; +} + +- (void)setAvailableHDChannels:(nullable NSNumber *)availableHDChannels { + [self.store sdl_setObject:availableHDChannels forName:SDLRPCParameterNameAvailableHDChannels]; +} + +- (nullable NSNumber *)availableHDChannels { + return [self.store sdl_objectForName:SDLRPCParameterNameAvailableHDChannels ofClass:NSNumber.class error:nil]; } - (void)setAvailableHDs:(nullable NSNumber *)availableHDs { - [store sdl_setObject:availableHDs forName:SDLNameAvailableHDs]; + [self.store sdl_setObject:availableHDs forName:SDLRPCParameterNameAvailableHDs]; } - (nullable NSNumber *)availableHDs { - return [store sdl_objectForName:SDLNameAvailableHDs]; + return [self.store sdl_objectForName:SDLRPCParameterNameAvailableHDs ofClass:NSNumber.class error:nil]; } - (void)setHdChannel:(nullable NSNumber *)hdChannel { - [store sdl_setObject:hdChannel forName:SDLNameHDChannel]; + [self.store sdl_setObject:hdChannel forName:SDLRPCParameterNameHDChannel]; } - (nullable NSNumber *)hdChannel { - return [store sdl_objectForName:SDLNameHDChannel]; + return [self.store sdl_objectForName:SDLRPCParameterNameHDChannel ofClass:NSNumber.class error:nil]; } - (void)setSignalStrength:(nullable NSNumber *)signalStrength { - [store sdl_setObject:signalStrength forName:SDLNameSignalStrength]; + [self.store sdl_setObject:signalStrength forName:SDLRPCParameterNameSignalStrength]; } - (nullable NSNumber *)signalStrength { - return [store sdl_objectForName:SDLNameSignalStrength]; + return [self.store sdl_objectForName:SDLRPCParameterNameSignalStrength ofClass:NSNumber.class error:nil]; } - (void)setSignalChangeThreshold:(nullable NSNumber *)signalChangeThreshold { - [store sdl_setObject:signalChangeThreshold forName:SDLNameSignalChangeThreshold]; + [self.store sdl_setObject:signalChangeThreshold forName:SDLRPCParameterNameSignalChangeThreshold]; } - (nullable NSNumber *)signalChangeThreshold { - return [store sdl_objectForName:SDLNameSignalChangeThreshold]; + return [self.store sdl_objectForName:SDLRPCParameterNameSignalChangeThreshold ofClass:NSNumber.class error:nil]; } - (void)setRadioEnable:(nullable NSNumber *)radioEnable { - [store sdl_setObject:radioEnable forName:SDLNameRadioEnable]; + [self.store sdl_setObject:radioEnable forName:SDLRPCParameterNameRadioEnable]; } - (nullable NSNumber *)radioEnable { - return [store sdl_objectForName:SDLNameRadioEnable]; + return [self.store sdl_objectForName:SDLRPCParameterNameRadioEnable ofClass:NSNumber.class error:nil]; } - (void)setState:(nullable SDLRadioState)state { - [store sdl_setObject:state forName:SDLNameState]; + [self.store sdl_setObject:state forName:SDLRPCParameterNameState]; } - (nullable SDLRadioState)state { - return [store sdl_objectForName:SDLNameState]; + return [self.store sdl_enumForName:SDLRPCParameterNameState error:nil]; } - (void)setHdRadioEnable:(nullable NSNumber *)hdRadioEnable { - [store sdl_setObject:hdRadioEnable forName:SDLNameHDRadioEnable]; + [self.store sdl_setObject:hdRadioEnable forName:SDLRPCParameterNameHDRadioEnable]; } - (nullable NSNumber *)hdRadioEnable { - return [store sdl_objectForName:SDLNameHDRadioEnable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHDRadioEnable ofClass:NSNumber.class error:nil]; } - (void)setSisData:(nullable SDLSISData *)sisData { - [store sdl_setObject:sisData forName:SDLNameSISData]; + [self.store sdl_setObject:sisData forName:SDLRPCParameterNameSISData]; } - (nullable SDLSISData *)sisData { - return [store sdl_objectForName:SDLNameSISData ofClass:SDLSISData.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameSISData ofClass:SDLSISData.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.h index 04a3982..299e785 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.h @@ -21,6 +21,11 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLReadDID : SDLRPCRequest +/// Convenience init +/// +/// @param ecuNumber An ID of the vehicle module +/// @param didLocation Raw data from vehicle data DID location(s) +/// @return An SDLReadDID object - (instancetype)initWithECUName:(UInt16)ecuNumber didLocation:(NSArray *> *)didLocation; /** @@ -39,8 +44,10 @@ NS_ASSUME_NONNULL_BEGIN *
  • Minvalue:0; Maxvalue:65535
  • *
  • ArrayMin:0; ArrayMax:1000
  • * + * + * Mandatory, contains an integer */ -@property (strong, nonatomic) NSArray *> *didLocation; +@property (strong, nonatomic) NSArray *didLocation; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.m index 9e2a906..dd33770 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.m @@ -5,17 +5,21 @@ #import "SDLReadDID.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLReadDID +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameReadDID]) { + if (self = [super initWithName:SDLRPCFunctionNameReadDID]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithECUName:(UInt16)ecuName didLocation:(NSArray *> *)didLocation { self = [self init]; @@ -30,19 +34,21 @@ - (instancetype)initWithECUName:(UInt16)ecuName didLocation:(NSArray *)ecuName { - [parameters sdl_setObject:ecuName forName:SDLNameECUName]; + [self.parameters sdl_setObject:ecuName forName:SDLRPCParameterNameECUName]; } - (NSNumber *)ecuName { - return [parameters sdl_objectForName:SDLNameECUName]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameECUName ofClass:NSNumber.class error:&error]; } -- (void)setDidLocation:(NSArray *> *)didLocation { - [parameters sdl_setObject:didLocation forName:SDLNameDIDLocation]; +- (void)setDidLocation:(NSArray *)didLocation { + [self.parameters sdl_setObject:didLocation forName:SDLRPCParameterNameDIDLocation]; } -- (NSArray *> *)didLocation { - return [parameters sdl_objectForName:SDLNameDIDLocation]; +- (NSArray *)didLocation { + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameDIDLocation ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDIDResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDIDResponse.m index 5b39019..7bad1e4 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDIDResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDIDResponse.m @@ -6,24 +6,28 @@ #import "NSMutableDictionary+Store.h" #import "SDLDIDResult.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLReadDIDResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameReadDID]) { + if (self = [super initWithName:SDLRPCFunctionNameReadDID]) { } return self; } +#pragma clang diagnostic pop - (void)setDidResult:(nullable NSArray *)didResult { - [parameters sdl_setObject:didResult forName:SDLNameDIDResult]; + [self.parameters sdl_setObject:didResult forName:SDLRPCParameterNameDIDResult]; } - (nullable NSArray *)didResult { - return [parameters sdl_objectsForName:SDLNameDIDResult ofClass:SDLDIDResult.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameDIDResult ofClass:SDLDIDResult.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRectangle.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRectangle.m index d9e6e41..7e6a8a3 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRectangle.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRectangle.m @@ -8,7 +8,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLRectangle.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" @implementation SDLRectangle @@ -29,35 +29,39 @@ - (instancetype)initWithCGRect:(CGRect)rect { } - (void)setX:(NSNumber *)x { - [store sdl_setObject:x forName:SDLNameX]; + [self.store sdl_setObject:x forName:SDLRPCParameterNameX]; } - (NSNumber *)x { - return [store sdl_objectForName:SDLNameX]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameX ofClass:NSNumber.class error:&error]; } - (void)setY:(NSNumber *)y { - [store sdl_setObject:y forName:SDLNameY]; + [self.store sdl_setObject:y forName:SDLRPCParameterNameY]; } - (NSNumber *)y { - return [store sdl_objectForName:SDLNameY]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameY ofClass:NSNumber.class error:&error]; } - (void)setWidth:(NSNumber *)width { - [store sdl_setObject:width forName:SDLNameWidth]; + [self.store sdl_setObject:width forName:SDLRPCParameterNameWidth]; } - (NSNumber *)width { - return [store sdl_objectForName:SDLNameWidth]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameWidth ofClass:NSNumber.class error:&error]; } - (void)setHeight:(NSNumber *)height { - [store sdl_setObject:height forName:SDLNameHeight]; + [self.store sdl_setObject:height forName:SDLRPCParameterNameHeight]; } - (NSNumber *)height { - return [store sdl_objectForName:SDLNameHeight]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameHeight ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.h index a03c438..d1b8298 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.h @@ -10,9 +10,13 @@ @class SDLDeviceInfo; @class SDLLifecycleConfiguration; @class SDLSyncMsgVersion; +@class SDLMsgVersion; @class SDLTemplateColorScheme; @class SDLTTSChunk; + +NS_ASSUME_NONNULL_BEGIN + /** * Registers the application's interface with SDL. The `RegisterAppInterface` RPC declares the properties of the app, including the messaging interface version, the app name, etc. The mobile application must establish its interface registration with SDL before any other interaction with SDL can take place. The registration lasts until it is terminated either by the application calling the `SDLUnregisterAppInterface` method, or by SDL sending an `SDLOnAppInterfaceUnregistered` notification, or by loss of the underlying transport connection, or closing of the underlying message transmission protocol RPC session. * @@ -26,9 +30,6 @@ * * @see SDLUnregisterAppInterface, SDLOnAppInterfaceUnregistered */ - -NS_ASSUME_NONNULL_BEGIN - @interface SDLRegisterAppInterface : SDLRPCRequest /** @@ -39,7 +40,7 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithLifecycleConfiguration:(SDLLifecycleConfiguration *)lifecycleConfiguration; /** - * Convenience init for registering the application. + * Convenience init for registering the application with an app name, app id, and desired language. * * @param appName The mobile application's name * @param appId An appId used to validate app with policy table entries @@ -49,7 +50,7 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired; /** - * Convenience init for registering the application. + * Convenience init for registering the application with an app name, app id, desired language, whether or not the app is a media app, app types, and the short app name. * * @param appName The mobile application's name * @param appId An appId used to validate app with policy table entries @@ -62,7 +63,7 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray *)appTypes shortAppName:(nullable NSString *)shortAppName __deprecated_msg(("Use initWithAppName:appId:fullAppId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:dayColorScheme:nightColorScheme: instead")); /** - * Convenience init for registering the application. + * Convenience init for registering the application with an app name, app id, desired language, whether or not the app is a media app, app types, the short app name, tts name, voice recognition synonyms, the hmi display language desired, and the resume hash. * * @param appName The mobile application's name * @param appId An appId used to validate app with policy table entries @@ -99,45 +100,58 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId fullAppId:(nullable NSString *)fullAppId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray *)appTypes shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray *)ttsName vrSynonyms:(nullable NSArray *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme; /** - * The version of the SDL interface + * Specifies the version number of the SmartDeviceLink protocol that is supported by the mobile application. + * + * SDLSyncMsgVersion, Required + * + * @since SDL 1.0 + */ +@property (strong, nonatomic) SDLSyncMsgVersion *syncMsgVersion __deprecated_msg(("Use sdlMsgVersion instead")); + +/** + * Specifies the version number of the SmartDeviceLink protocol that is supported by the mobile application. * - * Required + * SDLMsgVersion, Required + * + * @since SDL 1.0 */ -@property (strong, nonatomic) SDLSyncMsgVersion *syncMsgVersion; +@property (strong, nonatomic) SDLMsgVersion *sdlMsgVersion; /** - * The mobile application's name. This name is displayed in the SDL Mobile Applications menu. It also serves as the unique identifier of the application for SmartDeviceLink. + * The mobile application's name. This name is displayed in the SDL Mobile Applications menu. It also serves as the unique identifier of the application for SmartDeviceLink. Applications with the same name will be rejected. * * 1. Needs to be unique over all applications. Applications with the same name will be rejected. * 2. May not be empty. * 3. May not start with a new line character. * 4. May not interfere with any name or synonym of previously registered applications and any predefined blacklist of words (global commands). * - * Required, Max length 100 chars + * String, Required, Max length 100 chars + * + * @since SDL 1.0 */ @property (strong, nonatomic) NSString *appName; /** - * TTS string for VR recognition of the mobile application name. + * Text-to-speech string for voice recognition of the mobile application name. Meant to overcome any failing on speech engine in properly pronouncing / understanding app name. * - * @discussion Meant to overcome any failing on speech engine in properly pronouncing / understanding app name. * 1. Needs to be unique over all applications. * 2. May not be empty. * 3. May not start with a new line character. * - * Optional, Array of SDLTTSChunk, Array size 1 - 100 + * Array of SDLTTSChunk, Optional, Array size 1 - 100 * * @since SDL 2.0 - * @see SDLTTSChunk */ @property (nullable, strong, nonatomic) NSArray *ttsName; /** - * A String representing an abbreviated version of the mobile application's name (if necessary) that will be displayed on the media screen. + * Provides an abbreviated version of the app name (if needed), that will be displayed on head units that support very few characters. If not provided, the appName is used instead (and will be truncated if too long). It's recommended that this string be no longer than 5 characters. * - * @discussion If not provided, the appName is used instead (and will be truncated if too long) + * Legacy head units may limit the number of characters in an app name. * - * Optional, Max length 100 chars + * String, Optional, Max length 100 chars + * + * @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSString *ngnMediaScreenAppName; @@ -146,71 +160,72 @@ NS_ASSUME_NONNULL_BEGIN * * @discussion May not interfere with any app name of previously registered applications and any predefined blacklist of words (global commands). * - * Optional, Array of Strings, Array length 1 - 100, Max String length 40 + * Array of Strings, Optional, Array length 1 - 100, Max String length 40 + * + * @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSArray *vrSynonyms; /** - * Indicates if the application is a media or a non-media application. + * Indicates if the application is a media or a non-media application. Media applications will appear in the head unit's media source list and can use the `MEDIA` template. * - * @discussion Only media applications will be able to stream audio to head units that is audible outside of the BT media source. + * Boolean, Required * - * Required, Boolean + * @since SDL 1.0 */ @property (strong, nonatomic) NSNumber *isMediaApplication; /** - * A Language enumeration indicating what language the application intends to use for user interaction (TTS and VR). + * App's starting VR+TTS language. If there is a mismatch with the head unit, the app will be able to change its language with ChangeRegistration prior to app being brought into focus. * - * @discussion If there is a mismatch with the head unit, the app will be able to change this registration with changeRegistration prior to app being brought into focus. + * SDLLanguage, Required * - * Required + * @since SDL 1.0 */ @property (strong, nonatomic) SDLLanguage languageDesired; /** - * An enumeration indicating what language the application intends to use for user interaction (Display). + * Current app's expected display language. If there is a mismatch with the head unit, the app will be able to change its language with ChangeRegistration prior to app being brought into focus. * - * @discussion If there is a mismatch with the head unit, the app will be able to change this registration with changeRegistration prior to app being brought into focus. - * - * Required + * SDLLanguage, Required * * @since SDL 2.0 */ @property (strong, nonatomic) SDLLanguage hmiDisplayLanguageDesired; /** - * A list of all applicable app types stating which classifications to be given to the app. + * List of all applicable app HMI types stating which HMI classifications to be given to the app. * - * Optional, Array of SDLAppHMIType, Array size 1 - 100 + * Array of SDLAppHMIType, Optional, Array size 1 - 100 * * @since SDL 2.0 - * @see SDLAppHMIType */ @property (nullable, strong, nonatomic) NSArray *appHMIType; /** - * ID used to uniquely identify current state of all app data that can persist through connection cycles (e.g. ignition cycles). - * - * @discussion This registered data (commands, submenus, choice sets, etc.) can be reestablished without needing to explicitly reregister each piece. If omitted, then the previous state of an app's commands, etc. will not be restored. + * ID used to uniquely identify a previous state of all app data that can persist through connection cycles (e.g. ignition cycles). This registered data (commands, submenus, choice sets, etc.) can be reestablished without needing to explicitly re-send each piece. If omitted, then the previous state of an app's commands, etc. will not be restored. * * When sending hashID, all RegisterAppInterface parameters should still be provided (e.g. ttsName, etc.). * - * Optional, max length 100 chars + * String, Optional, max length 100 chars + * + * @since SDL 3.0 */ @property (nullable, strong, nonatomic) NSString *hashID; /** - * Information about the connecting device + * Information about the connecting device. + * + * SDLDeviceInfo, Optional * - * Optional + * @since SDL 3.0 */ @property (nullable, strong, nonatomic) SDLDeviceInfo *deviceInfo; /** - * ID used to validate app with policy table entries + * ID used to validate app with policy table entries. * - * Required, max length 100 + * String, Required, max length 100 * * @see `fullAppID` * @@ -221,30 +236,38 @@ NS_ASSUME_NONNULL_BEGIN /** * A full UUID appID used to validate app with policy table entries. * - * Optional + * @discussion The `fullAppId` is used to authenticate apps that connect with head units that implement SDL Core v.5.0 and newer. If connecting with older head units, the `fullAppId` can be truncated to create the required `appId` needed to register the app. The `appId` is the first 10 non-dash ("-") characters of the `fullAppID` (e.g. if you have a `fullAppId` of 123e4567-e89b-12d3-a456-426655440000, the `appId` will be 123e4567e8). * - * @discussion The `fullAppId` is used to authenticate apps that connect with head units that implement SDL Core v.5.0 and newer. If connecting with older head units, the `fullAppId` can be truncated to create the required `appId` needed to register the app. The `appId` is the first 10 non-dash ("-") characters of the `fullAppID` (e.g. if you have a `fullAppId` of 123e4567-e89b-12d3-a456-426655440000, the `appId` will be 123e4567e8). + * String, Optional + * + * @since SDL 5.0 */ @property (nullable, strong, nonatomic) NSString *fullAppID; /** - * Information about the application running + * Contains detailed information about the registered application. + * + * SDLAppInfo, Optional * - * Optional + * @since SDL 2.0 */ @property (nullable, strong, nonatomic) SDLAppInfo *appInfo; /** * The color scheme to be used on a head unit using a "light" or "day" color scheme. The OEM may only support this theme if their head unit only has a light color scheme. * - * Optional + * SDLTemplateColorScheme, Optional + * + * @since SDL 5.0 */ @property (strong, nonatomic, nullable) SDLTemplateColorScheme *dayColorScheme; /** * The color scheme to be used on a head unit using a "dark" or "night" color scheme. The OEM may only support this theme if their head unit only has a dark color scheme. * - * Optional + * SDLTemplateColorScheme, Optional + * + * @since SDL 5.0 */ @property (strong, nonatomic, nullable) SDLTemplateColorScheme *nightColorScheme; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.m index cf23d1b..6fa2ed6 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.m @@ -11,8 +11,10 @@ #import "SDLGlobals.h" #import "SDLLanguage.h" #import "SDLLifecycleConfiguration.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSyncMsgVersion.h" +#import "SDLMsgVersion.h" #import "SDLTemplateColorScheme.h" #import "SDLTTSChunk.h" @@ -22,11 +24,14 @@ @implementation SDLRegisterAppInterface #pragma mark - Lifecycle +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameRegisterAppInterface]) { + if (self = [super initWithName:SDLRPCFunctionNameRegisterAppInterface]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithLifecycleConfiguration:(SDLLifecycleConfiguration *)lifecycleConfiguration { NSArray *allHMITypes = lifecycleConfiguration.additionalAppTypes ? [lifecycleConfiguration.additionalAppTypes arrayByAddingObject:lifecycleConfiguration.appType] : @[lifecycleConfiguration.appType]; @@ -62,7 +67,7 @@ - (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId lang UInt8 majorVersion = (UInt8)[SDLMaxProxyRPCVersion substringWithRange:NSMakeRange(0, 1)].intValue; UInt8 minorVersion = (UInt8)[SDLMaxProxyRPCVersion substringWithRange:NSMakeRange(2, 1)].intValue; UInt8 patchVersion = (UInt8)[SDLMaxProxyRPCVersion substringWithRange:NSMakeRange(4, 1)].intValue; - self.syncMsgVersion = [[SDLSyncMsgVersion alloc] initWithMajorVersion:majorVersion minorVersion:minorVersion patchVersion:patchVersion]; + self.sdlMsgVersion = [[SDLMsgVersion alloc] initWithMajorVersion:majorVersion minorVersion:minorVersion patchVersion:patchVersion]; self.appInfo = [SDLAppInfo currentAppInfo]; self.deviceInfo = [SDLDeviceInfo currentDevice]; self.correlationID = @1; @@ -115,132 +120,150 @@ - (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId full #pragma mark - Getters and Setters +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (void)setSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion { - [parameters sdl_setObject:syncMsgVersion forName:SDLNameSyncMessageVersion]; + SDLMsgVersion * sdlMsgVersion = [[SDLMsgVersion alloc] initWithMajorVersion:(uint8_t)syncMsgVersion.majorVersion.unsignedIntValue minorVersion:(uint8_t)syncMsgVersion.minorVersion.unsignedIntValue patchVersion:(uint8_t)syncMsgVersion.patchVersion.unsignedIntValue]; + [self.parameters sdl_setObject:sdlMsgVersion forName:SDLRPCParameterNameSyncMessageVersion]; } - (SDLSyncMsgVersion *)syncMsgVersion { - return [parameters sdl_objectForName:SDLNameSyncMessageVersion ofClass:SDLSyncMsgVersion.class]; + SDLMsgVersion * sdlMsgVersion = [self.parameters sdl_objectForName:SDLRPCParameterNameSyncMessageVersion ofClass:SDLMsgVersion.class error:nil]; + return [[SDLSyncMsgVersion alloc] initWithMajorVersion:(uint8_t)sdlMsgVersion.majorVersion.unsignedIntValue minorVersion:(uint8_t)sdlMsgVersion.minorVersion.unsignedIntValue patchVersion:(uint8_t)sdlMsgVersion.patchVersion.unsignedIntValue]; +} +#pragma clang diagnostic pop + +- (void)setSdlMsgVersion:(SDLMsgVersion *)sdlMsgVersion { + [self.parameters sdl_setObject:sdlMsgVersion forName:SDLRPCParameterNameSyncMessageVersion]; +} + +- (SDLMsgVersion *)sdlMsgVersion { + return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncMessageVersion ofClass:SDLMsgVersion.class error:nil]; } - (void)setAppName:(NSString *)appName { - [parameters sdl_setObject:appName forName:SDLNameAppName]; + [self.parameters sdl_setObject:appName forName:SDLRPCParameterNameAppName]; } - (NSString *)appName { - return [parameters sdl_objectForName:SDLNameAppName]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAppName ofClass:NSString.class error:&error]; } - (void)setTtsName:(nullable NSArray *)ttsName { - [parameters sdl_setObject:ttsName forName:SDLNameTTSName]; + [self.parameters sdl_setObject:ttsName forName:SDLRPCParameterNameTTSName]; } - (nullable NSArray *)ttsName { - return [parameters sdl_objectsForName:SDLNameTTSName ofClass:SDLTTSChunk.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameTTSName ofClass:SDLTTSChunk.class error:nil]; } - (void)setNgnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName { - [parameters sdl_setObject:ngnMediaScreenAppName forName:SDLNameNGNMediaScreenAppName]; + [self.parameters sdl_setObject:ngnMediaScreenAppName forName:SDLRPCParameterNameNGNMediaScreenAppName]; } - (nullable NSString *)ngnMediaScreenAppName { - return [parameters sdl_objectForName:SDLNameNGNMediaScreenAppName]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameNGNMediaScreenAppName ofClass:NSString.class error:nil]; } - (void)setVrSynonyms:(nullable NSArray *)vrSynonyms { - [parameters sdl_setObject:vrSynonyms forName:SDLNameVRSynonyms]; + [self.parameters sdl_setObject:vrSynonyms forName:SDLRPCParameterNameVRSynonyms]; } - (nullable NSArray *)vrSynonyms { - return [parameters sdl_objectForName:SDLNameVRSynonyms]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameVRSynonyms ofClass:NSString.class error:nil]; } - (void)setIsMediaApplication:(NSNumber *)isMediaApplication { - [parameters sdl_setObject:isMediaApplication forName:SDLNameIsMediaApplication]; + [self.parameters sdl_setObject:isMediaApplication forName:SDLRPCParameterNameIsMediaApplication]; } - (NSNumber *)isMediaApplication { - return [parameters sdl_objectForName:SDLNameIsMediaApplication]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameIsMediaApplication ofClass:NSNumber.class error:&error]; } - (void)setLanguageDesired:(SDLLanguage)languageDesired { - [parameters sdl_setObject:languageDesired forName:SDLNameLanguageDesired]; + [self.parameters sdl_setObject:languageDesired forName:SDLRPCParameterNameLanguageDesired]; } - (SDLLanguage)languageDesired { - return [parameters sdl_objectForName:SDLNameLanguageDesired]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameLanguageDesired error:&error]; } - (void)setHmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired { - [parameters sdl_setObject:hmiDisplayLanguageDesired forName:SDLNameHMIDisplayLanguageDesired]; + [self.parameters sdl_setObject:hmiDisplayLanguageDesired forName:SDLRPCParameterNameHMIDisplayLanguageDesired]; } - (SDLLanguage)hmiDisplayLanguageDesired { - return [parameters sdl_objectForName:SDLNameHMIDisplayLanguageDesired]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameHMIDisplayLanguageDesired error:&error]; } - (void)setAppHMIType:(nullable NSArray *)appHMIType { - [parameters sdl_setObject:appHMIType forName:SDLNameAppHMIType]; + [self.parameters sdl_setObject:appHMIType forName:SDLRPCParameterNameAppHMIType]; } - (nullable NSArray *)appHMIType { - return [parameters sdl_objectForName:SDLNameAppHMIType]; + return [self.parameters sdl_enumsForName:SDLRPCParameterNameAppHMIType error:nil]; } - (void)setHashID:(nullable NSString *)hashID { - [parameters sdl_setObject:hashID forName:SDLNameHashId]; + [self.parameters sdl_setObject:hashID forName:SDLRPCParameterNameHashId]; } - (nullable NSString *)hashID { - return [parameters sdl_objectForName:SDLNameHashId]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameHashId ofClass:NSString.class error:nil]; } - (void)setDeviceInfo:(nullable SDLDeviceInfo *)deviceInfo { - [parameters sdl_setObject:deviceInfo forName:SDLNameDeviceInfo]; + [self.parameters sdl_setObject:deviceInfo forName:SDLRPCParameterNameDeviceInfo]; } - (nullable SDLDeviceInfo *)deviceInfo { - return [parameters sdl_objectForName:SDLNameDeviceInfo ofClass:SDLDeviceInfo.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceInfo ofClass:SDLDeviceInfo.class error:nil]; } - (void)setAppID:(NSString *)appID { - [parameters sdl_setObject:appID forName:SDLNameAppId]; + [self.parameters sdl_setObject:appID forName:SDLRPCParameterNameAppId]; } - (NSString *)appID { - return [parameters sdl_objectForName:SDLNameAppId]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAppId ofClass:NSString.class error:&error]; } - (void)setFullAppID:(nullable NSString *)fullAppID { - [parameters sdl_setObject:fullAppID forName:SDLNameFullAppID]; + [self.parameters sdl_setObject:fullAppID forName:SDLRPCParameterNameFullAppID]; } - (nullable NSString *)fullAppID { - return [parameters sdl_objectForName:SDLNameFullAppID]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFullAppID ofClass:NSString.class error:nil]; } - (void)setAppInfo:(nullable SDLAppInfo *)appInfo { - [parameters sdl_setObject:appInfo forName:SDLNameAppInfo]; + [self.parameters sdl_setObject:appInfo forName:SDLRPCParameterNameAppInfo]; } - (nullable SDLAppInfo *)appInfo { - return [parameters sdl_objectForName:SDLNameAppInfo ofClass:SDLAppInfo.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAppInfo ofClass:SDLAppInfo.class error:nil]; } - (void)setDayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme { - [parameters sdl_setObject:dayColorScheme forName:SDLNameDayColorScheme]; + [self.parameters sdl_setObject:dayColorScheme forName:SDLRPCParameterNameDayColorScheme]; } - (nullable SDLTemplateColorScheme *)dayColorScheme { - return [parameters sdl_objectForName:SDLNameDayColorScheme ofClass:[SDLTemplateColorScheme class]]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDayColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; } - (void)setNightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme { - [parameters sdl_setObject:nightColorScheme forName:SDLNameNightColorScheme]; + [self.parameters sdl_setObject:nightColorScheme forName:SDLRPCParameterNameNightColorScheme]; } - (nullable SDLTemplateColorScheme *)nightColorScheme { - return [parameters sdl_objectForName:SDLNameNightColorScheme ofClass:[SDLTemplateColorScheme class]]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameNightColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h index 90a1600..20c9cf4 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h @@ -17,145 +17,196 @@ @class SDLPresetBankCapabilities; @class SDLSoftButtonCapabilities; @class SDLSyncMsgVersion; +@class SDLMsgVersion; @class SDLVehicleType; -/** - Response to SDLRegisterAppInterface - - Since SmartDeviceLink 1.0 - */ - NS_ASSUME_NONNULL_BEGIN +/** + * Response to SDLRegisterAppInterface + * + * @since SDL 1.0 + */ @interface SDLRegisterAppInterfaceResponse : SDLRPCResponse /** - The RPC spec version supported by the connected IVI system. - - Optional + * Specifies the negotiated version number of the SmartDeviceLink protocol that is to be supported by the mobile application. + * + * SDLSyncMsgVersion, Optional + * + * @since SDL 1.0 */ -@property (nullable, strong, nonatomic) SDLSyncMsgVersion *syncMsgVersion; +@property (nullable, strong, nonatomic) SDLSyncMsgVersion *syncMsgVersion __deprecated_msg(("Use sdlMsgVersion Instead")); /** - The currently active VR+TTS language on the module. See "Language" for options. + * Specifies the negotiated version number of the SmartDeviceLink protocol that is to be supported by the mobile application. + * + * SDLMsgVersion, Optional + * + * @since SDL 1.0 + */ +@property(nullable, strong, nonatomic) SDLMsgVersion *sdlMsgVersion; - Optional +/** + * The currently active VR+TTS language on the module. See "Language" for options. + * + * SDLLanguage, Optional + * + * @since SDL 1.0 */ @property (nullable, strong, nonatomic) SDLLanguage language; /** - The currently active display language on the module. See "Language" for options. - - Since SmartDeviceLink 2.0 - - Optional + * The currently active display language on the module. See "Language" for options. + * + * SDLLanguage, Optional + * + * @since SDL 2.0 */ @property (nullable, strong, nonatomic) SDLLanguage hmiDisplayLanguage; /** - Contains information about the display for the SDL system to which the application is currently connected. - - Optional + * Contains information about the display's capabilities. + * + * SDLDisplayCapabilities, Optional + * + * @since SDL 1.0 */ -@property (nullable, strong, nonatomic) SDLDisplayCapabilities *displayCapabilities; +@property (nullable, strong, nonatomic) SDLDisplayCapabilities *displayCapabilities __deprecated_msg("This parameter is deprecated and replaced by GetSystemCapability using DISPLAY. Deprecated in sdl_ios v6.4 / RPC spec 6.0. You can use the SystemCapabilityManager to have automatic full compatibility support."); /** - Provides information about the capabilities of a SDL HMI button. - - Optional, Array of length 1 - 100, of SDLButtonCapabilities + * Contains information about the head unit button capabilities. + * + * Array of SDLButtonCapabilities, Optional, Array of length 1 - 100 + * + * @since SDL 1.0 */ -@property (nullable, strong, nonatomic) NSArray *buttonCapabilities; +@property (nullable, strong, nonatomic) NSArray *buttonCapabilities __deprecated_msg("This parameter is deprecated and replaced by GetSystemCapability using DISPLAY. Deprecated in sdl_ios v6.4 / RPC spec 6.0. You can use the SystemCapabilityManager to have automatic full compatibility support."); /** - Contains information about a SoftButton's capabilities. - - Optional, Array of length 1 - 100, of SDLSoftButtonCapabilities + * Contains information about the head unit soft button capabilities. + * + * Array of SDLSoftButtonCapabilities, Optional, Array of length 1 - 100 + * + * @since SDL 2.0 */ -@property (nullable, strong, nonatomic) NSArray *softButtonCapabilities; +@property (nullable, strong, nonatomic) NSArray *softButtonCapabilities __deprecated_msg("This parameter is deprecated and replaced by GetSystemCapability using DISPLAY. Deprecated in sdl_ios v6.4 / RPC spec 6.0. You can use the SystemCapabilityManager to have automatic full compatibility support."); /** - If returned, the platform supports custom on-screen Presets - - Optional + * If returned, the platform supports custom on-screen Presets + * + * SDLPresetBankCapabilities, Optional + * + * @since SDL 2.0 */ -@property (nullable, strong, nonatomic) SDLPresetBankCapabilities *presetBankCapabilities; +@property (nullable, strong, nonatomic) SDLPresetBankCapabilities *presetBankCapabilities __deprecated_msg("This parameter is deprecated and replaced by GetSystemCapability using DISPLAY. Deprecated in sdl_ios v6.4 / RPC spec 6.0. You can use the SystemCapabilityManager to have automatic full compatibility support."); /** - Specifies HMI Zones in the vehicle. - - Optional, Array of length 1 - 100, of SDLHMIZoneCapabilities + * Contains information about the HMI zone capabilities. + * + * Array of SDLHMIZoneCapabilities, Optional, Array of length 1 - 100 + * + * @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSArray *hmiZoneCapabilities; /** - Contains information about TTS capabilities on the SDL platform. - - Optional, Array of length 1 - 100, of SDLSpeechCapabilities + * Contains information about the text-to-speech capabilities. + * + * Array of SDLSpeechCapabilities, Optional, Array of length 1 - 100 + * + * @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSArray *speechCapabilities; /** - Contains information about the speech capabilities on the SDL platform + * Contains a list of prerecorded speech items present on the platform. * - * Optional, Array of length 1 - 100, of SDLPrerecordedSpeech + * Array of SDLPrerecordedSpeech, Optional, Array of length 1 - 100 + * + * @since SDL 3.0 */ @property (nullable, strong, nonatomic) NSArray *prerecordedSpeech; /** - The VR capabilities of the connected SDL platform. - - Optional, Array of length 1 - 100, of SDLVRCapabilities + * Contains information about the VR capabilities. + * + * Array of SDLVRCapabilities, Optional, Array of length 1 - 100 + * + * @since SDL 1.0 */ @property (nullable, strong, nonatomic) NSArray *vrCapabilities; /** - Describes different audio type configurations for SDLPerformAudioPassThru, e.g. {8kHz,8-bit,PCM} - - Optional, Array of length 1 - 100, of SDLAudioPassThruCapabilities + * Describes different audio type configurations for PerformAudioPassThru, e.g. {8kHz,8-bit,PCM}. The audio is recorded in monaural. + * + * Array of SDLAudioPassThruCapabilities, Optional, Array of length 1 - 100 + * + * @since SDL 2.0 */ @property (nullable, strong, nonatomic) NSArray *audioPassThruCapabilities; /** - Describes different audio type configurations for the audio PCM stream service, e.g. {8kHz,8-bit,PCM} + * Describes different audio type configurations for the audio PCM stream service, e.g. {8kHz,8-bit,PCM} + * + * SDLAudioPassThruCapabilities, Optional + * + * @since SDL 4.1 */ @property (nullable, strong, nonatomic) SDLAudioPassThruCapabilities *pcmStreamCapabilities; /** - Specifies the connected vehicle's type + * Specifies the connected vehicle's type. + * + * SDLVehicleType, Optional + * + * @since SDL 2.0 */ @property (nullable, strong, nonatomic) SDLVehicleType *vehicleType; /** - Specifies the white-list of supported diagnostic modes (0x00-0xFF) capable for DiagnosticMessage requests. If a mode outside this list is requested, it will be rejected. - - Optional, Array of length 1 - 100, Integer 0 - 255 + * Specifies the white-list of supported diagnostic modes (0x00-0xFF) capable for DiagnosticMessage requests. If a mode outside this list is requested, it will be rejected. + * + * Array of Integers, Optional, Array of length 1 - 100, Value range: 0 - 255 + * + * @since SDL 3.0 */ -@property (nullable, strong, nonatomic) NSArray *> *supportedDiagModes; +@property (nullable, strong, nonatomic) NSArray *supportedDiagModes; /** - Specifies the availability of various SDL features. - - Optional + * Specifies the HMI capabilities. + * + * SDLHMICapabilities, Optional + * + * @since SDL 3.0 */ @property (nullable, strong, nonatomic) SDLHMICapabilities *hmiCapabilities; /** - The SmartDeviceLink Core version - - Optional, String max length 100 + * The version of SDL Core running on the connected head unit + * + * String, Optional, Max length: 100 + * + * @since SDL 3.0 */ @property (nullable, strong, nonatomic) NSString *sdlVersion; /** - The software version of the system that implements SmartDeviceLink Core - - Optional, String max length 100 + * The software version of the system that implements the SmartDeviceLink core. + * + * String, Optional, Max length: 100 + * + * @since SDL 3.0 */ @property (nullable, strong, nonatomic) NSString *systemSoftwareVersion; /** - Whether or not the app's icon already existed on the system and was resumed. That means that the icon does not need to be sent by the app. + * Existence of apps icon at system. If true, apps icon was resumed at system. If false, apps icon is not resumed at system. + * + * Bool, Optional + * + * @since SDL 5.0 */ @property (nullable, strong, nonatomic) NSNumber *iconResumed; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m index f8b3b62..5c081e9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m @@ -9,10 +9,12 @@ #import "SDLButtonCapabilities.h" #import "SDLDisplayCapabilities.h" #import "SDLHMICapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLPresetBankCapabilities.h" #import "SDLSoftButtonCapabilities.h" #import "SDLSyncMsgVersion.h" +#import "SDLMsgVersion.h" #import "SDLVehicleType.h" #import "SDLVrCapabilities.h" @@ -20,162 +22,185 @@ @implementation SDLRegisterAppInterfaceResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameRegisterAppInterface]) { + if (self = [super initWithName:SDLRPCFunctionNameRegisterAppInterface]) { } return self; } +#pragma clang diagnostic pop - (void)setSyncMsgVersion:(nullable SDLSyncMsgVersion *)syncMsgVersion { - [parameters sdl_setObject:syncMsgVersion forName:SDLNameSyncMessageVersion]; + if (syncMsgVersion == nil) { + [self.parameters sdl_setObject:nil forName:SDLRPCParameterNameSyncMessageVersion]; + return; + } + + SDLMsgVersion *sdlMsgVersion = [[SDLMsgVersion alloc] initWithMajorVersion:(uint8_t)syncMsgVersion.majorVersion.unsignedIntValue minorVersion:(uint8_t)syncMsgVersion.minorVersion.unsignedIntValue patchVersion:(uint8_t)syncMsgVersion.patchVersion.unsignedIntValue]; + [self.parameters sdl_setObject:sdlMsgVersion forName:SDLRPCParameterNameSyncMessageVersion]; } - (nullable SDLSyncMsgVersion *)syncMsgVersion { - return [parameters sdl_objectForName:SDLNameSyncMessageVersion ofClass:SDLSyncMsgVersion.class]; + SDLMsgVersion *sdlMsgVersion = [self.parameters sdl_objectForName:SDLRPCParameterNameSyncMessageVersion ofClass:SDLMsgVersion.class error:nil]; + + if(sdlMsgVersion == nil) { + return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncMessageVersion ofClass:SDLSyncMsgVersion.class error:nil]; + } + + return [[SDLSyncMsgVersion alloc] initWithMajorVersion:(uint8_t)sdlMsgVersion.majorVersion.unsignedIntValue minorVersion:(uint8_t)sdlMsgVersion.minorVersion.unsignedIntValue patchVersion:(uint8_t)sdlMsgVersion.patchVersion.unsignedIntValue]; +} + +- (void)setSdlMsgVersion:(nullable SDLMsgVersion *)sdlMsgVersion { + [self.parameters sdl_setObject:sdlMsgVersion forName:SDLRPCParameterNameSyncMessageVersion]; +} + +- (nullable SDLMsgVersion *)sdlMsgVersion { + return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncMessageVersion ofClass:SDLMsgVersion.class error:nil]; } - (void)setLanguage:(nullable SDLLanguage)language { - [parameters sdl_setObject:language forName:SDLNameLanguage]; + [self.parameters sdl_setObject:language forName:SDLRPCParameterNameLanguage]; } - (nullable SDLLanguage)language { - return [parameters sdl_objectForName:SDLNameLanguage]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameLanguage error:nil]; } - (void)setHmiDisplayLanguage:(nullable SDLLanguage)hmiDisplayLanguage { - [parameters sdl_setObject:hmiDisplayLanguage forName:SDLNameHMIDisplayLanguage]; + [self.parameters sdl_setObject:hmiDisplayLanguage forName:SDLRPCParameterNameHMIDisplayLanguage]; } - (nullable SDLLanguage)hmiDisplayLanguage { - return [parameters sdl_objectForName:SDLNameHMIDisplayLanguage]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameHMIDisplayLanguage error:nil]; } - (void)setDisplayCapabilities:(nullable SDLDisplayCapabilities *)displayCapabilities { - [parameters sdl_setObject:displayCapabilities forName:SDLNameDisplayCapabilities]; + [self.parameters sdl_setObject:displayCapabilities forName:SDLRPCParameterNameDisplayCapabilities]; } - (nullable SDLDisplayCapabilities *)displayCapabilities { - return [parameters sdl_objectForName:SDLNameDisplayCapabilities ofClass:SDLDisplayCapabilities.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDisplayCapabilities ofClass:SDLDisplayCapabilities.class error:nil]; } - (void)setButtonCapabilities:(nullable NSArray *)buttonCapabilities { - [parameters sdl_setObject:buttonCapabilities forName:SDLNameButtonCapabilities]; + [self.parameters sdl_setObject:buttonCapabilities forName:SDLRPCParameterNameButtonCapabilities]; } - (nullable NSArray *)buttonCapabilities { - return [parameters sdl_objectsForName:SDLNameButtonCapabilities ofClass:SDLButtonCapabilities.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameButtonCapabilities ofClass:SDLButtonCapabilities.class error:nil]; } - (void)setSoftButtonCapabilities:(nullable NSArray *)softButtonCapabilities { - [parameters sdl_setObject:softButtonCapabilities forName:SDLNameSoftButtonCapabilities]; + [self.parameters sdl_setObject:softButtonCapabilities forName:SDLRPCParameterNameSoftButtonCapabilities]; } - (nullable NSArray *)softButtonCapabilities { - return [parameters sdl_objectsForName:SDLNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class error:nil]; } - (void)setPresetBankCapabilities:(nullable SDLPresetBankCapabilities *)presetBankCapabilities { - [parameters sdl_setObject:presetBankCapabilities forName:SDLNamePresetBankCapabilities]; + [self.parameters sdl_setObject:presetBankCapabilities forName:SDLRPCParameterNamePresetBankCapabilities]; } - (nullable SDLPresetBankCapabilities *)presetBankCapabilities { - return [parameters sdl_objectForName:SDLNamePresetBankCapabilities ofClass:SDLPresetBankCapabilities.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePresetBankCapabilities ofClass:SDLPresetBankCapabilities.class error:nil]; } - (void)setHmiZoneCapabilities:(nullable NSArray *)hmiZoneCapabilities { - [parameters sdl_setObject:hmiZoneCapabilities forName:SDLNameHMIZoneCapabilities]; + [self.parameters sdl_setObject:hmiZoneCapabilities forName:SDLRPCParameterNameHMIZoneCapabilities]; } - (nullable NSArray *)hmiZoneCapabilities { - return [parameters sdl_objectForName:SDLNameHMIZoneCapabilities]; + return [self.parameters sdl_enumsForName:SDLRPCParameterNameHMIZoneCapabilities error:nil]; } - (void)setSpeechCapabilities:(nullable NSArray *)speechCapabilities { - [parameters sdl_setObject:speechCapabilities forName:SDLNameSpeechCapabilities]; + [self.parameters sdl_setObject:speechCapabilities forName:SDLRPCParameterNameSpeechCapabilities]; } - (nullable NSArray *)speechCapabilities { - return [parameters sdl_objectForName:SDLNameSpeechCapabilities]; + return [self.parameters sdl_enumsForName:SDLRPCParameterNameSpeechCapabilities error:nil]; } - (void)setPrerecordedSpeech:(nullable NSArray *)prerecordedSpeech { - [parameters sdl_setObject:prerecordedSpeech forName:SDLNamePrerecordedSpeech]; + [self.parameters sdl_setObject:prerecordedSpeech forName:SDLRPCParameterNamePrerecordedSpeech]; } - (nullable NSArray *)prerecordedSpeech { - return [parameters sdl_objectForName:SDLNamePrerecordedSpeech]; + return [self.parameters sdl_enumsForName:SDLRPCParameterNamePrerecordedSpeech error:nil]; } - (void)setVrCapabilities:(nullable NSArray *)vrCapabilities { - [parameters sdl_setObject:vrCapabilities forName:SDLNameVRCapabilities]; + [self.parameters sdl_setObject:vrCapabilities forName:SDLRPCParameterNameVRCapabilities]; } - (nullable NSArray *)vrCapabilities { - return [parameters sdl_objectForName:SDLNameVRCapabilities]; + return [self.parameters sdl_enumsForName:SDLRPCParameterNameVRCapabilities error:nil]; } - (void)setAudioPassThruCapabilities:(nullable NSArray *)audioPassThruCapabilities { - [parameters sdl_setObject:audioPassThruCapabilities forName:SDLNameAudioPassThruCapabilities]; + [self.parameters sdl_setObject:audioPassThruCapabilities forName:SDLRPCParameterNameAudioPassThruCapabilities]; } - (nullable NSArray *)audioPassThruCapabilities { - return [parameters sdl_objectsForName:SDLNameAudioPassThruCapabilities ofClass:SDLAudioPassThruCapabilities.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameAudioPassThruCapabilities ofClass:SDLAudioPassThruCapabilities.class error:nil]; } - (void)setPcmStreamCapabilities:(nullable SDLAudioPassThruCapabilities *)pcmStreamCapabilities { - [parameters sdl_setObject:pcmStreamCapabilities forName:SDLNamePCMStreamCapabilities]; + [self.parameters sdl_setObject:pcmStreamCapabilities forName:SDLRPCParameterNamePCMStreamCapabilities]; } - (nullable SDLAudioPassThruCapabilities *)pcmStreamCapabilities { - return [parameters sdl_objectForName:SDLNamePCMStreamCapabilities ofClass:SDLAudioPassThruCapabilities.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePCMStreamCapabilities ofClass:SDLAudioPassThruCapabilities.class error:nil]; } - (void)setVehicleType:(nullable SDLVehicleType *)vehicleType { - [parameters sdl_setObject:vehicleType forName:SDLNameVehicleType]; + [self.parameters sdl_setObject:vehicleType forName:SDLRPCParameterNameVehicleType]; } - (nullable SDLVehicleType *)vehicleType { - return [parameters sdl_objectForName:SDLNameVehicleType ofClass:[SDLVehicleType class]]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameVehicleType ofClass:SDLVehicleType.class error:nil]; } -- (void)setSupportedDiagModes:(nullable NSArray *> *)supportedDiagModes { - [parameters sdl_setObject:supportedDiagModes forName:SDLNameSupportedDiagnosticModes]; +- (void)setSupportedDiagModes:(nullable NSArray *)supportedDiagModes { + [self.parameters sdl_setObject:supportedDiagModes forName:SDLRPCParameterNameSupportedDiagnosticModes]; } -- (nullable NSArray *> *)supportedDiagModes { - return [parameters sdl_objectForName:SDLNameSupportedDiagnosticModes]; +- (nullable NSArray *)supportedDiagModes { + return [self.parameters sdl_objectsForName:SDLRPCParameterNameSupportedDiagnosticModes ofClass:NSNumber.class error:nil]; } - (void)setHmiCapabilities:(nullable SDLHMICapabilities *)hmiCapabilities { - [parameters sdl_setObject:hmiCapabilities forName:SDLNameHMICapabilities]; + [self.parameters sdl_setObject:hmiCapabilities forName:SDLRPCParameterNameHMICapabilities]; } - (nullable SDLHMICapabilities *)hmiCapabilities { - return [parameters sdl_objectForName:SDLNameHMICapabilities ofClass:SDLHMICapabilities.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameHMICapabilities ofClass:SDLHMICapabilities.class error:nil]; } - (void)setSdlVersion:(nullable NSString *)sdlVersion { - [parameters sdl_setObject:sdlVersion forName:SDLNameSDLVersion]; + [self.parameters sdl_setObject:sdlVersion forName:SDLRPCParameterNameSDLVersion]; } - (nullable NSString *)sdlVersion { - return [parameters sdl_objectForName:SDLNameSDLVersion]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSDLVersion ofClass:NSString.class error:nil]; } - (void)setSystemSoftwareVersion:(nullable NSString *)systemSoftwareVersion { - [parameters sdl_setObject:systemSoftwareVersion forName:SDLNameSystemSoftwareVersion]; + [self.parameters sdl_setObject:systemSoftwareVersion forName:SDLRPCParameterNameSystemSoftwareVersion]; } - (nullable NSString *)systemSoftwareVersion { - return [parameters sdl_objectForName:SDLNameSystemSoftwareVersion]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSystemSoftwareVersion ofClass:NSString.class error:nil]; } - (void)setIconResumed:(nullable NSNumber *)iconResumed { - [parameters sdl_setObject:iconResumed forName:SDLNameIconResumed]; + [self.parameters sdl_setObject:iconResumed forName:SDLRPCParameterNameIconResumed]; } - (nullable NSNumber *)iconResumed { - return [parameters sdl_objectForName:SDLNameIconResumed]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameIconResumed ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h new file mode 100644 index 0000000..10db403 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h @@ -0,0 +1,41 @@ +// +// SDLReleaseInteriorVehicleDataModule.h +// SmartDeviceLink +// +// Created by standa1 on 7/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" +#import "SDLModuleType.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Releases a controlled remote control module so others can take control +/// +/// @since 6.0 +@interface SDLReleaseInteriorVehicleDataModule : SDLRPCRequest + +/// Convenience init to release a controlled module +/// @param moduleType The module type that the app requests to control. +/// @param moduleId Id of a module, published by System Capability. +/// @return An SDLReleaseInteriorVehicleDataModule object +- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId; + +/** + * The module type that the app requests to control. + * + * Required + */ +@property (strong, nonatomic) SDLModuleType moduleType; + +/** + * Id of a module, published by System Capability. + * + * Optional + */ +@property (strong, nonatomic, nullable) NSString *moduleId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m new file mode 100644 index 0000000..b282479 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m @@ -0,0 +1,56 @@ +// +// SDLReleaseInteriorVehicleDataModule.m +// SmartDeviceLink +// +// Created by standa1 on 7/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLReleaseInteriorVehicleDataModule.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +@implementation SDLReleaseInteriorVehicleDataModule + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameReleaseInteriorVehicleDataModule]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId { + self = [self init]; + if (!self) { + return nil; + } + + self.moduleType = moduleType; + self.moduleId = moduleId; + + return self; +} + +- (void)setModuleType:(SDLModuleType)moduleType { + [self.parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; +} + +- (SDLModuleType)moduleType { + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; +} + +- (void)setModuleId:(nullable NSString *)moduleId { + [self.parameters sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId]; +} + +- (nullable NSString *)moduleId { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h new file mode 100644 index 0000000..63e880c --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h @@ -0,0 +1,20 @@ +// +// SDLReleaseInteriorVehicleDataModuleResponse.h +// SmartDeviceLink +// +// Created by standa1 on 7/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Response to ReleaseInteriorVehicleDataModule +/// +/// @since RPC 6.0 +@interface SDLReleaseInteriorVehicleDataModuleResponse : SDLRPCResponse + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m new file mode 100644 index 0000000..9013d23 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m @@ -0,0 +1,23 @@ +// +// SDLReleaseInteriorVehicleDataModuleResponse.m +// SmartDeviceLink +// +// Created by standa1 on 7/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLReleaseInteriorVehicleDataModuleResponse.h" +#import "SDLRPCFunctionNames.h" + +@implementation SDLReleaseInteriorVehicleDataModuleResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameReleaseInteriorVehicleDataModule]) { + } + return self; +} +#pragma clang diagnostic pop + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.h index 15eedff..2cdbf4f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.h @@ -19,6 +19,12 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLRemoteControlCapabilities : SDLRPCStruct +/// Constructs a newly allocated SDLRemoteControlCapabilities object +/// +/// @param climateControlCapabilities Array of SDLClimateControlCapabilities +/// @param radioControlCapabilities Array of SDLRadioControlCapabilities +/// @param buttonCapabilities Array of SDLButtonCapabilities +/// @return An instance of the SDLRemoteControlCapabilities class - (instancetype)initWithClimateControlCapabilities:(nullable NSArray *)climateControlCapabilities radioControlCapabilities:(nullable NSArray *)radioControlCapabilities buttonCapabilities:(nullable NSArray *)buttonCapabilities __deprecated_msg("Use initWithClimateControlCapabilities:climateControlCapabilities:radioControlCapabilities:buttonCapabilities:seatControlCapabilities:audioControlCapabilities:hmiSettingsControlCapabilities:lightControlCapabilities: instead"); /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.m index 2e4ab74..47b747a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.m @@ -11,7 +11,7 @@ #import "SDLRadioControlCapabilities.h" #import "SDLSeatControlCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -40,59 +40,81 @@ - (instancetype)initWithClimateControlCapabilities:(nullable NSArray *)climateControlCapabilities { - [store sdl_setObject:climateControlCapabilities forName:SDLNameClimateControlCapabilities]; + [self.store sdl_setObject:climateControlCapabilities forName:SDLRPCParameterNameClimateControlCapabilities]; } - (nullable NSArray *)climateControlCapabilities { - return [store sdl_objectsForName:SDLNameClimateControlCapabilities ofClass:SDLClimateControlCapabilities.class]; + return [self.store sdl_objectsForName:SDLRPCParameterNameClimateControlCapabilities ofClass:SDLClimateControlCapabilities.class error:nil]; } -(void)setRadioControlCapabilities:(nullable NSArray *)radioControlCapabilities { - [store sdl_setObject:radioControlCapabilities forName:SDLNameRadioControlCapabilities ]; + [self.store sdl_setObject:radioControlCapabilities forName:SDLRPCParameterNameRadioControlCapabilities ]; } - (nullable NSArray *)radioControlCapabilities { - return [store sdl_objectsForName:SDLNameRadioControlCapabilities ofClass:SDLRadioControlCapabilities.class]; + return [self.store sdl_objectsForName:SDLRPCParameterNameRadioControlCapabilities ofClass:SDLRadioControlCapabilities.class error:nil]; } - (void)setButtonCapabilities:(nullable NSArray *)buttonCapabilities { - [store sdl_setObject:buttonCapabilities forName:SDLNameButtonCapabilities];} + [self.store sdl_setObject:buttonCapabilities forName:SDLRPCParameterNameButtonCapabilities];} - (nullable NSArray *)buttonCapabilities { - return [store sdl_objectsForName:SDLNameButtonCapabilities ofClass:SDLButtonCapabilities.class]; + return [self.store sdl_objectsForName:SDLRPCParameterNameButtonCapabilities ofClass:SDLButtonCapabilities.class error:nil]; } - (void)setSeatControlCapabilities:(nullable NSArray *)seatControlCapabilities { - [store sdl_setObject:seatControlCapabilities forName:SDLNameSeatControlCapabilities]; + [self.store sdl_setObject:seatControlCapabilities forName:SDLRPCParameterNameSeatControlCapabilities]; } - (nullable NSArray *)seatControlCapabilities { - return [store sdl_objectsForName:SDLNameSeatControlCapabilities ofClass:SDLSeatControlCapabilities.class]; + return [self.store sdl_objectsForName:SDLRPCParameterNameSeatControlCapabilities ofClass:SDLSeatControlCapabilities.class error:nil]; } - (void)setAudioControlCapabilities:(nullable NSArray *)audioControlCapabilities { - [store sdl_setObject:audioControlCapabilities forName:SDLNameAudioControlCapabilities]; + [self.store sdl_setObject:audioControlCapabilities forName:SDLRPCParameterNameAudioControlCapabilities]; } - (nullable NSArray *)audioControlCapabilities { - return [store sdl_objectsForName:SDLNameAudioControlCapabilities ofClass:SDLAudioControlCapabilities.class]; + return [self.store sdl_objectsForName:SDLRPCParameterNameAudioControlCapabilities ofClass:SDLAudioControlCapabilities.class error:nil]; } - (void)setHmiSettingsControlCapabilities:(nullable NSArray *)hmiSettingsControlCapabilities { - [store sdl_setObject:hmiSettingsControlCapabilities forName:SDLNameHmiSettingsControlCapabilities]; + // TODO: This parameter should not be an array according to the spec, in a future major version change, this parameter's type should be altered + if (hmiSettingsControlCapabilities.count == 0) { + [self.store sdl_setObject:nil forName:SDLRPCParameterNameHmiSettingsControlCapabilities]; + return; + } + + SDLHMISettingsControlCapabilities *capability = hmiSettingsControlCapabilities.firstObject; + + [self.store sdl_setObject:capability forName:SDLRPCParameterNameHmiSettingsControlCapabilities]; } - (nullable NSArray *)hmiSettingsControlCapabilities { - return [store sdl_objectsForName:SDLNameHmiSettingsControlCapabilities ofClass:SDLHMISettingsControlCapabilities.class]; + SDLHMISettingsControlCapabilities *capability = [self.store sdl_objectForName:SDLRPCParameterNameHmiSettingsControlCapabilities ofClass:SDLHMISettingsControlCapabilities.class error:nil]; + if (capability == nil) { return nil; } + + return @[capability]; } - (void)setLightControlCapabilities:(nullable NSArray *)lightControlCapabilities { - [store sdl_setObject:lightControlCapabilities forName:SDLNameLightControlCapabilities]; + // TODO: This parameter should not be an array according to the spec, in a future major version change, this parameter's type should be altered + if (lightControlCapabilities.count == 0) { + [self.store sdl_setObject:nil forName:SDLRPCParameterNameLightControlCapabilities]; + return; + } + + SDLLightControlCapabilities *capability = lightControlCapabilities.firstObject; + + [self.store sdl_setObject:capability forName:SDLRPCParameterNameLightControlCapabilities]; } - (nullable NSArray *)lightControlCapabilities { - return [store sdl_objectsForName:SDLNameLightControlCapabilities ofClass:SDLLightControlCapabilities.class]; + SDLLightControlCapabilities *capability = [self.store sdl_objectForName:SDLRPCParameterNameLightControlCapabilities ofClass:SDLLightControlCapabilities.class error:nil]; + if (capability == nil) { return nil; } + + return @[capability]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.h index 918ce02..9f56d7b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.h @@ -113,3 +113,9 @@ extern SDLRequestType const SDLRequestTypeFOTA; A request that is OEM specific using the `RequestSubType` in SystemRequest */ extern SDLRequestType const SDLRequestTypeOEMSpecific; + +/** + A request for an icon url + */ +extern SDLRequestType const SDLRequestTypeIconURL; + diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.m index d766e04..cbc6c7f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.m @@ -25,3 +25,4 @@ SDLRequestType const SDLRequestTypeMedia = @"MEDIA"; SDLRequestType const SDLRequestTypeFOTA = @"FOTA"; SDLRequestType const SDLRequestTypeOEMSpecific = @"OEM_SPECIFIC"; +SDLRequestType const SDLRequestTypeIconURL = @"ICON_URL"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.h index f581969..ddbadb9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.h @@ -27,6 +27,10 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLResetGlobalProperties : SDLRPCRequest +/// Convenience init to reset global properties. +/// +/// @param properties An array of one or more GlobalProperty enumeration elements +/// @return An SDLResetGlobalProperties object - (instancetype)initWithProperties:(NSArray *)properties; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.m index 21242cb..8b60852 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.m @@ -6,17 +6,21 @@ #import "NSMutableDictionary+Store.h" #import "SDLGlobalProperty.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLResetGlobalProperties +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameResetGlobalProperties]) { + if (self = [super initWithName:SDLRPCFunctionNameResetGlobalProperties]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithProperties:(NSArray *)properties { self = [self init]; @@ -30,11 +34,12 @@ - (instancetype)initWithProperties:(NSArray *)properties { } - (void)setProperties:(NSArray *)properties { - [parameters sdl_setObject:properties forName:SDLNameProperties]; + [self.parameters sdl_setObject:properties forName:SDLRPCParameterNameProperties]; } - (NSArray *)properties { - return [parameters sdl_objectForName:SDLNameProperties]; + NSError *error = nil; + return [self.parameters sdl_enumsForName:SDLRPCParameterNameProperties error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m index 4db428b..974b5ef 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m @@ -5,17 +5,21 @@ #import "SDLResetGlobalPropertiesResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLResetGlobalPropertiesResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameResetGlobalProperties]) { + if (self = [super initWithName:SDLRPCFunctionNameResetGlobalProperties]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResponseDispatcher.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResponseDispatcher.m index 6851a15..7c59566 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResponseDispatcher.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResponseDispatcher.m @@ -40,11 +40,19 @@ @interface SDLResponseDispatcher () +@property (copy, nonatomic) dispatch_queue_t readWriteQueue; + +@property (strong, nonatomic, readwrite) NSMapTable *rpcResponseHandlerMap; +@property (strong, nonatomic, readwrite) NSMutableDictionary *rpcRequestDictionary; +@property (strong, nonatomic, readwrite) NSMapTable *commandHandlerMap; +@property (strong, nonatomic, readwrite) NSMapTable *buttonHandlerMap; +@property (strong, nonatomic, readwrite) NSMapTable *customButtonHandlerMap; @property (strong, nonatomic, readwrite, nullable) SDLAudioPassThruHandler audioPassThruHandler; @end +// https://www.objc.io/issues/2-concurrency/low-level-concurrency-apis/#multiple-readers-single-writer @implementation SDLResponseDispatcher - (instancetype)init { @@ -57,6 +65,12 @@ - (instancetype)initWithNotificationDispatcher:(nullable id)dispatcher { return nil; } + if (@available(iOS 10.0, *)) { + _readWriteQueue = dispatch_queue_create_with_target("com.sdl.lifecycle.responseDispatcher", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); + } else { + _readWriteQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; + } + _rpcResponseHandlerMap = [NSMapTable mapTableWithKeyOptions:NSMapTableCopyIn valueOptions:NSMapTableCopyIn]; _rpcRequestDictionary = [NSMutableDictionary dictionary]; _commandHandlerMap = [NSMapTable mapTableWithKeyOptions:NSMapTableCopyIn valueOptions:NSMapTableCopyIn]; @@ -86,26 +100,33 @@ - (instancetype)initWithNotificationDispatcher:(nullable id)dispatcher { #pragma mark - Storage - (void)storeRequest:(SDLRPCRequest *)request handler:(nullable SDLResponseHandler)handler { + __weak typeof(self) weakself = self; NSNumber *correlationId = request.correlationID; // Check for RPCs that require an extra handler if ([request isKindOfClass:[SDLAddCommand class]]) { SDLAddCommand *addCommand = (SDLAddCommand *)request; - if (!addCommand.cmdID) { + if (addCommand.cmdID == nil) { @throw [NSException sdl_missingIdException]; } - if (addCommand.handler) { - self.commandHandlerMap[addCommand.cmdID] = addCommand.handler; + if (addCommand.handler != nil) { + [self sdl_runAsyncOnQueue:^{ + __strong typeof(weakself) strongself = weakself; + strongself->_commandHandlerMap[addCommand.cmdID] = addCommand.handler; + }]; } } else if ([request isKindOfClass:[SDLSubscribeButton class]]) { // Convert SDLButtonName to NSString, since it doesn't conform to SDLSubscribeButton *subscribeButton = (SDLSubscribeButton *)request; SDLButtonName buttonName = subscribeButton.buttonName; - if (!buttonName) { + if (buttonName == nil) { @throw [NSException sdl_missingIdException]; } - if (subscribeButton.handler) { - self.buttonHandlerMap[buttonName] = subscribeButton.handler; + if (subscribeButton.handler != nil) { + [self sdl_runAsyncOnQueue:^{ + __strong typeof(weakself) strongself = weakself; + strongself->_buttonHandlerMap[buttonName] = subscribeButton.handler; + }]; } } else if ([request isKindOfClass:[SDLAlert class]]) { SDLAlert *alert = (SDLAlert *)request; @@ -118,37 +139,80 @@ - (void)storeRequest:(SDLRPCRequest *)request handler:(nullable SDLResponseHandl [self sdl_addToCustomButtonHandlerMap:show.softButtons]; } else if ([request isKindOfClass:[SDLPerformAudioPassThru class]]) { SDLPerformAudioPassThru *performAudioPassThru = (SDLPerformAudioPassThru *)request; - self.audioPassThruHandler = performAudioPassThru.audioDataHandler; + + [self sdl_runAsyncOnQueue:^{ + __strong typeof(weakself) strongself = weakself; + strongself->_audioPassThruHandler = performAudioPassThru.audioDataHandler; + }]; } // Always store the request, it's needed in some cases whether or not there was a handler (e.g. DeleteCommand). - self.rpcRequestDictionary[correlationId] = request; - if (handler) { - self.rpcResponseHandlerMap[correlationId] = handler; - } + [self sdl_runAsyncOnQueue:^{ + __strong typeof(weakself) strongself = weakself; + + strongself->_rpcRequestDictionary[correlationId] = request; + if (handler != nil) { + strongself->_rpcResponseHandlerMap[correlationId] = handler; + } + }]; } - (void)clear { - // When we get disconnected we have to delete all existing responseHandlers as they are not valid anymore - for (SDLRPCCorrelationId *correlationID in self.rpcResponseHandlerMap.dictionaryRepresentation) { - SDLResponseHandler responseHandler = self.rpcResponseHandlerMap[correlationID]; - responseHandler(self.rpcRequestDictionary[correlationID], nil, [NSError sdl_lifecycle_notConnectedError]); + __weak typeof(self) weakself = self; + + __block NSArray *handlers = nil; + __block NSArray *requests = nil; + [self sdl_runSyncOnQueue:^{ + __strong typeof(weakself) strongself = weakself; + NSMutableArray *handlerArray = [NSMutableArray array]; + NSMutableArray *requestArray = [NSMutableArray array]; + + // When we get disconnected we have to delete all existing responseHandlers as they are not valid anymore + for (SDLRPCCorrelationId *correlationID in strongself->_rpcResponseHandlerMap.dictionaryRepresentation) { + SDLResponseHandler responseHandler = strongself->_rpcResponseHandlerMap[correlationID]; + SDLRPCRequest *request = strongself->_rpcRequestDictionary[correlationID]; + + if (responseHandler != NULL) { + [handlerArray addObject:responseHandler]; + [requestArray addObject:request]; + } + } + + handlers = [handlerArray copy]; + requests = [requestArray copy]; + }]; + + for (NSUInteger i = 0; i < handlers.count; i++) { + SDLResponseHandler responseHandler = handlers[i]; + SDLRPCRequest *request = requests[i]; + + responseHandler(request, nil, [NSError sdl_lifecycle_notConnectedError]); } - [self.rpcRequestDictionary removeAllObjects]; - [self.rpcResponseHandlerMap removeAllObjects]; - [self.commandHandlerMap removeAllObjects]; - [self.buttonHandlerMap removeAllObjects]; - [self.customButtonHandlerMap removeAllObjects]; - _audioPassThruHandler = nil; + + [self sdl_runAsyncOnQueue:^{ + __strong typeof(weakself) strongself = weakself; + + [strongself->_rpcRequestDictionary removeAllObjects]; + [strongself->_rpcResponseHandlerMap removeAllObjects]; + [strongself->_commandHandlerMap removeAllObjects]; + [strongself->_buttonHandlerMap removeAllObjects]; + [strongself->_customButtonHandlerMap removeAllObjects]; + strongself->_audioPassThruHandler = nil; + }]; } - (void)sdl_addToCustomButtonHandlerMap:(NSArray *)softButtons { + __weak typeof(self) weakself = self; for (SDLSoftButton *sb in softButtons) { - if (!sb.softButtonID) { + if (sb.softButtonID == nil) { @throw [NSException sdl_missingIdException]; } - if (sb.handler) { - self.customButtonHandlerMap[sb.softButtonID] = sb.handler; + + if (sb.handler != nil) { + [self sdl_runAsyncOnQueue:^{ + __strong typeof(weakself) strongself = weakself; + strongself->_customButtonHandlerMap[sb.softButtonID] = sb.handler; + }]; } } } @@ -158,6 +222,7 @@ - (void)sdl_addToCustomButtonHandlerMap:(NSArray *)softButtons // Called by notifications - (void)sdl_runHandlersForResponse:(SDLRPCResponseNotification *)notification { + __weak typeof(self) weakself = self; if (![notification isResponseKindOfClass:[SDLRPCResponse class]]) { return; } @@ -165,50 +230,58 @@ - (void)sdl_runHandlersForResponse:(SDLRPCResponseNotification *)notification { __kindof SDLRPCResponse *response = notification.response; NSError *error = nil; - if (![response.success boolValue]) { + if (!response.success.boolValue) { error = [NSError sdl_lifecycle_rpcErrorWithDescription:response.resultCode andReason:response.info]; } + __block SDLResponseHandler handler = nil; + __block SDLRPCRequest *request = nil; + [self sdl_runSyncOnQueue:^{ + handler = self->_rpcResponseHandlerMap[response.correlationID]; + request = self->_rpcRequestDictionary[response.correlationID]; + }]; + // Find the appropriate request completion handler, remove the request and response handler - SDLResponseHandler handler = self.rpcResponseHandlerMap[response.correlationID]; - SDLRPCRequest *request = self.rpcRequestDictionary[response.correlationID]; - [self.rpcRequestDictionary safeRemoveObjectForKey:response.correlationID]; - [self.rpcResponseHandlerMap safeRemoveObjectForKey:response.correlationID]; - - // Run the response handler - if (handler) { - if (!response.success.boolValue) { - SDLLogW(@"Request failed: %@, response: %@, error: %@", request, response, error); + [self sdl_runAsyncOnQueue:^{ + __strong typeof(weakself) strongself = weakself; + [strongself->_rpcRequestDictionary safeRemoveObjectForKey:response.correlationID]; + [strongself->_rpcResponseHandlerMap safeRemoveObjectForKey:response.correlationID]; + + // If we errored on the response, the delete / unsubscribe was unsuccessful + if (error == nil) { + // If it's a DeleteCommand, UnsubscribeButton, or PerformAudioPassThru we need to remove handlers for the corresponding RPCs + if ([response isKindOfClass:[SDLDeleteCommandResponse class]]) { + SDLDeleteCommand *deleteCommandRequest = (SDLDeleteCommand *)request; + NSNumber *deleteCommandId = deleteCommandRequest.cmdID; + [strongself->_commandHandlerMap safeRemoveObjectForKey:deleteCommandId]; + } else if ([response isKindOfClass:[SDLUnsubscribeButtonResponse class]]) { + SDLUnsubscribeButton *unsubscribeButtonRequest = (SDLUnsubscribeButton *)request; + SDLButtonName unsubscribeButtonName = unsubscribeButtonRequest.buttonName; + [strongself->_buttonHandlerMap safeRemoveObjectForKey:unsubscribeButtonName]; + } else if ([response isKindOfClass:[SDLPerformAudioPassThruResponse class]]) { + strongself->_audioPassThruHandler = nil; + } } - handler(request, response, error); - } - // If we errored on the response, the delete / unsubscribe was unsuccessful - if (error) { - return; - } - - // If it's a DeleteCommand, UnsubscribeButton, or PerformAudioPassThru we need to remove handlers for the corresponding RPCs - if ([response isKindOfClass:[SDLDeleteCommandResponse class]]) { - SDLDeleteCommand *deleteCommandRequest = (SDLDeleteCommand *)request; - NSNumber *deleteCommandId = deleteCommandRequest.cmdID; - [self.commandHandlerMap safeRemoveObjectForKey:deleteCommandId]; - } else if ([response isKindOfClass:[SDLUnsubscribeButtonResponse class]]) { - SDLUnsubscribeButton *unsubscribeButtonRequest = (SDLUnsubscribeButton *)request; - SDLButtonName unsubscribeButtonName = unsubscribeButtonRequest.buttonName; - [self.buttonHandlerMap safeRemoveObjectForKey:unsubscribeButtonName]; - } else if ([response isKindOfClass:[SDLPerformAudioPassThruResponse class]]) { - _audioPassThruHandler = nil; - } + dispatch_async([SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ + // Run the response handler + if (handler) { + if (!response.success.boolValue) { + SDLLogW(@"Request failed: %@, response: %@, error: %@", request, response, error); + } + handler(request, response, error); + } + }); + }]; } #pragma mark Command - (void)sdl_runHandlerForCommand:(SDLRPCNotificationNotification *)notification { SDLOnCommand *onCommandNotification = notification.notification; - SDLRPCCommandNotificationHandler handler = self.commandHandlerMap[onCommandNotification.cmdID]; - if (handler) { + SDLRPCCommandNotificationHandler handler = self.commandHandlerMap[onCommandNotification.cmdID]; + if (handler != nil) { handler(onCommandNotification); } } @@ -219,7 +292,6 @@ - (void)sdl_runHandlerForButton:(SDLRPCNotificationNotification *)notification { __kindof SDLRPCNotification *rpcNotification = notification.notification; SDLButtonName name = nil; NSNumber *customID = nil; - SDLRPCButtonNotificationHandler handler = nil; if ([rpcNotification isMemberOfClass:[SDLOnButtonEvent class]]) { name = ((SDLOnButtonEvent *)rpcNotification).buttonName; @@ -231,6 +303,7 @@ - (void)sdl_runHandlerForButton:(SDLRPCNotificationNotification *)notification { return; } + SDLRPCButtonNotificationHandler handler = nil; if ([name isEqualToEnum:SDLButtonNameCustomButton]) { // Custom buttons handler = self.customButtonHandlerMap[customID]; @@ -254,12 +327,87 @@ - (void)sdl_runHandlerForButton:(SDLRPCNotificationNotification *)notification { - (void)sdl_runHandlerForAudioPassThru:(SDLRPCNotificationNotification *)notification { SDLOnAudioPassThru *onAudioPassThruNotification = notification.notification; - - if (self.audioPassThruHandler) { - self.audioPassThruHandler(onAudioPassThruNotification.bulkData); + + SDLAudioPassThruHandler handler = self.audioPassThruHandler; + if (handler != nil) { + handler(onAudioPassThruNotification.bulkData); } } +#pragma mark Utilities + +- (void)sdl_runSyncOnQueue:(void (^)(void))block { + if (dispatch_get_specific(SDLProcessingQueueName) != nil) { + block(); + } else { + dispatch_sync(self.readWriteQueue, block); + } +} + +- (void)sdl_runAsyncOnQueue:(void (^)(void))block { + if (dispatch_get_specific(SDLProcessingQueueName) != nil) { + block(); + } else { + dispatch_async(self.readWriteQueue, block); + } +} + +#pragma mark Getters + +- (NSMapTable *)rpcResponseHandlerMap { + __block NSMapTable *map = nil; + [self sdl_runSyncOnQueue:^{ + map = self->_rpcResponseHandlerMap; + }]; + + return map; +} + +- (NSMutableDictionary *)rpcRequestDictionary { + __block NSMutableDictionary *dict = nil; + [self sdl_runSyncOnQueue:^{ + dict = self->_rpcRequestDictionary; + }]; + + return dict; +} + +- (NSMapTable *)commandHandlerMap { + __block NSMapTable *map = nil; + [self sdl_runSyncOnQueue:^{ + map = self->_commandHandlerMap; + }]; + + return map; +} + +- (NSMapTable *)buttonHandlerMap { + __block NSMapTable *map = nil; + [self sdl_runSyncOnQueue:^{ + map = self->_buttonHandlerMap; + }]; + + return map; +} + +- (NSMapTable *)customButtonHandlerMap { + __block NSMapTable *map = nil; + [self sdl_runSyncOnQueue:^{ + map = self->_customButtonHandlerMap; + }]; + + return map; +} + +- (nullable SDLAudioPassThruHandler)audioPassThruHandler { + __block SDLAudioPassThruHandler audioPassThruHandler = nil; + [self sdl_runSyncOnQueue:^{ + audioPassThruHandler = self->_audioPassThruHandler; + }]; + + return audioPassThruHandler; +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.h index fe98204..dd96610 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.h @@ -208,3 +208,8 @@ extern SDLResult const SDLResultDataNotAvailable; The requested data is read only thus cannot be change via remote control . */ extern SDLResult const SDLResultReadOnly; + +/** + The RPC request needs to be encrypted. + */ +extern SDLResult const SDLResultEncryptionNeeded; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.m index 5e169c3..234fb4e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.m @@ -40,4 +40,4 @@ SDLResult const SDLResultResumeFailed = @"RESUME_FAILED"; SDLResult const SDLResultDataNotAvailable = @"DATA_NOT_AVAILABLE"; SDLResult const SDLResultReadOnly = @"READ_ONLY"; - +SDLResult const SDLResultEncryptionNeeded = @"ENCRYPTION_NEEDED"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.h index b7d9396..1d645eb 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.h @@ -15,6 +15,14 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLSISData : SDLRPCStruct +/// Convenience init to SISData +/// +/// @param stationShortName Identifies the 4-alpha-character station call sign +/// @param id A SDLStationIDNumber +/// @param stationLongName Identifies the station call sign or other identifying +/// @param stationLocation Provides the 3-dimensional geographic station location +/// @param stationMessage May be used to convey textual information of general interest +/// @return An SDLSISData object - (instancetype)initWithStationShortName:(nullable NSString *)stationShortName stationIDNumber:(nullable SDLStationIDNumber *)id stationLongName:(nullable NSString *)stationLongName stationLocation:(nullable SDLGPSData *)stationLocation stationMessage:(nullable NSString *)stationMessage; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.m index 27681aa..c0ff47c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.m @@ -5,7 +5,7 @@ #import "SDLStationIDNumber.h" #import "SDLGPSData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" @@ -28,43 +28,43 @@ - (instancetype)initWithStationShortName:(nullable NSString *)stationShortName s } - (void)setStationShortName:(nullable NSString *)stationShortName { - [store sdl_setObject:stationShortName forName:SDLNameStationShortName]; + [self.store sdl_setObject:stationShortName forName:SDLRPCParameterNameStationShortName]; } - (nullable NSString *)stationShortName { - return [store sdl_objectForName:SDLNameStationShortName]; + return [self.store sdl_objectForName:SDLRPCParameterNameStationShortName ofClass:NSString.class error:nil]; } - (void)setStationIDNumber:(nullable SDLStationIDNumber *)stationIDNumber { - [store sdl_setObject:stationIDNumber forName:SDLNameStationIDNumber]; + [self.store sdl_setObject:stationIDNumber forName:SDLRPCParameterNameStationIDNumber]; } - (nullable SDLStationIDNumber *)stationIDNumber { - return [store sdl_objectForName:SDLNameStationIDNumber ofClass:SDLStationIDNumber.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameStationIDNumber ofClass:SDLStationIDNumber.class error:nil]; } - (void)setStationLongName:(nullable NSString *)stationLongName { - [store sdl_setObject:stationLongName forName:SDLNameStationLongName]; + [self.store sdl_setObject:stationLongName forName:SDLRPCParameterNameStationLongName]; } - (nullable NSString *)stationLongName { - return [store sdl_objectForName:SDLNameStationLongName]; + return [self.store sdl_objectForName:SDLRPCParameterNameStationLongName ofClass:NSString.class error:nil];; } - (void)setStationLocation:(nullable SDLGPSData *)stationLocation { - [store sdl_setObject:stationLocation forName:SDLNameStationLocation]; + [self.store sdl_setObject:stationLocation forName:SDLRPCParameterNameStationLocation]; } - (nullable SDLGPSData *)stationLocation { - return [store sdl_objectForName:SDLNameStationLocation ofClass:SDLGPSData.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameStationLocation ofClass:SDLGPSData.class error:nil]; } - (void)setStationMessage:(nullable NSString *)stationMessage { - [store sdl_setObject:stationMessage forName:SDLNameStationMessage]; + [self.store sdl_setObject:stationMessage forName:SDLRPCParameterNameStationMessage]; } - (nullable NSString *)stationMessage { - return [store sdl_objectForName:SDLNameStationMessage]; + return [self.store sdl_objectForName:SDLRPCParameterNameStationMessage ofClass:NSString.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.h index 34764b0..a08d3b4 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.h @@ -8,8 +8,12 @@ #import +#import "NSNumber+NumberType.h" +#import "SDLButtonName.h" #import "SDLInteractionMode.h" +#import "SDLMenuManagerConstants.h" #import "SDLMetadataType.h" +#import "SDLNotificationConstants.h" #import "SDLTextAlignment.h" @class SDLArtwork; @@ -18,7 +22,11 @@ @class SDLFileManager; @class SDLKeyboardProperties; @class SDLMenuCell; +@class SDLMenuConfiguration; +@class SDLOnButtonEvent; +@class SDLOnButtonPress; @class SDLSoftButtonObject; +@class SDLSystemCapabilityManager; @class SDLVoiceCommand; @protocol SDLConnectionManagerType; @@ -41,6 +49,14 @@ typedef void(^SDLScreenManagerUpdateCompletionHandler)(NSError *__nullable error */ typedef void(^SDLPreloadChoiceCompletionHandler)(NSError *__nullable error); +/// A handler run when the subscribe button has been selected +/// +/// @param buttonPress Indicates whether this is a long or short button press event +/// @param buttonEvent Indicates that the button has been depressed or released +/// @param error The error if one occurred +typedef void (^SDLSubscribeButtonHandler)(SDLOnButtonPress *_Nullable buttonPress, SDLOnButtonEvent *_Nullable buttonEvent, NSError *_Nullable error); + +/// The SDLScreenManager is a manager to control SDL UI features. Use the screen manager for setting up the UI of the template, creating a menu for your users, creating softbuttons, setting textfields, etc.. @interface SDLScreenManager : NSObject #pragma mark Text and Graphics @@ -105,6 +121,11 @@ typedef void(^SDLPreloadChoiceCompletionHandler)(NSError *__nullable error); */ @property (copy, nonatomic, nullable) SDLMetadataType textField4Type; +/** + The title of the current template layout. + */ +@property (copy, nonatomic, nullable) NSString *title; + #pragma mark Soft Buttons /** @@ -114,11 +135,33 @@ typedef void(^SDLPreloadChoiceCompletionHandler)(NSError *__nullable error); #pragma mark Menu +/** + Configures the layout of the menu and sub-menus. If set after a menu already exists, the existing main menu layout will be updated. + + If set menu layouts don't match available menu layouts in WindowCapability, an error log will be emitted and the layout will not be set. + + Setting this parameter will send a message to the remote system. This value will be set immediately, but if that message is rejected, the original value will be re-set and an error log will be emitted. + + This only works on head units supporting RPC spec version 6.0 and newer. If the connected head unit does not support this feature, a warning log will be emitted and nothing will be set. + */ +@property (strong, nonatomic) SDLMenuConfiguration *menuConfiguration; + /** The current list of menu cells displayed in the app's menu. */ @property (copy, nonatomic) NSArray *menu; +/** +Change the mode of the dynamic menu updater to be enabled, disabled, or enabled on known compatible head units. + +The current status for dynamic menu updates. A dynamic menu update allows for smarter building of menu changes. If this status is set to `SDLDynamicMenuUpdatesModeForceOn`, menu updates will only create add commands for new items and delete commands for items no longer appearing in the menu. This helps reduce possible RPCs failures as there will be significantly less commands sent to the HMI. + +If set to `SDLDynamicMenuUpdatesModeForceOff`, menu updates will work the legacy way. This means when a new menu is set the entire old menu is deleted and add commands are created for every item regarldess if the item appears in both the old and new menu. This method is RPCs heavy and may cause some failures when creating and updating large menus. + + We recommend using either `SDLDynamicMenuUpdatesModeOnWithCompatibility` or `SDLDynamicMenuUpdatesModeForceOn`. `SDLDynamicMenuUpdatesModeOnWithCompatibility` turns dynamic updates off for head units that we know have poor compatibility with dynamic updates (e.g. they have bugs that cause menu items to not be placed correctly). + */ +@property (assign, nonatomic) SDLDynamicMenuUpdatesMode dynamicMenuUpdatesMode; + /** The current list of voice commands available for the user to speak and be recognized by the IVI's voice recognition engine. */ @@ -148,10 +191,10 @@ typedef void(^SDLPreloadChoiceCompletionHandler)(NSError *__nullable error); @param connectionManager The connection manager used to send RPCs @param fileManager The file manager used to upload files + @param systemCapabilityManager The system capability manager object for reading window capabilities @return The screen manager */ - -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager; +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager; /** Starts the manager and all sub-managers @@ -167,7 +210,7 @@ typedef void(^SDLPreloadChoiceCompletionHandler)(NSError *__nullable error); */ - (void)stop; -#pragma mark Text and Graphic +#pragma mark - Text and Graphic /** Delays all screen updates until endUpdatesWithCompletionHandler: is called. */ @@ -209,11 +252,48 @@ typedef void(^SDLPreloadChoiceCompletionHandler)(NSError *__nullable error); */ - (void)endUpdatesWithCompletionHandler:(nullable SDLScreenManagerUpdateCompletionHandler)handler; -#pragma mark Soft Button +#pragma mark - Soft Buttons +/// Retrieve a SoftButtonObject based on its name. +/// @param name The name of the button - (nullable SDLSoftButtonObject *)softButtonObjectNamed:(NSString *)name; -#pragma mark Choice Sets +#pragma mark - Subscribe Buttons + +/// Subscribes to a subscribe button. The update handler will be called when the button has been selected. If there is an error subscribing to the subscribe button it will be returned in the `error` parameter of the updateHandler. +/// @param buttonName The name of the hard button to subscribe to +/// @param updateHandler The block run when the subscribe button is selected +/// @return An object that can be used to unsubscribe the block using `unsubscribeButtonWithObserver:withCompletionHandler:`. +- (id)subscribeButton:(SDLButtonName)buttonName withUpdateHandler:(SDLSubscribeButtonHandler)updateHandler; + +/// Subscribes to a subscribe button. The selector will be called when the button has been selected. If there is an error subscribing to the subscribe button it will be returned in the `error` parameter of the selector. +/// +/// The selector supports the following parameters: +/// +/// 1. A selector with no parameters. The observer will be notified when a button press occurs (it will not know if a short or long press has occurred). +/// +/// 2. A selector with one parameter: (SDLButtonName). The observer will be notified when a button press occurs (both a short and long press will trigger the selector, but it will not be able to distinguish between them). It will not be notified of button events. +/// +/// 3. A selector with two parameters: (SDLButtonName, NSError). The observer will be notified when a button press occurs (both a short and long press will trigger the selector, but it will not be able to distinguish between them). It will not be notified of button events. +/// +/// 4. A selector with three parameters: (SDLButtonName, NSError, SDLOnButtonPress). The observer will be notified when a long or short button press occurs (and can distinguish between a short or long press), but will not be notified of individual button events. +/// +/// 5. A selector with four parameters: (SDLButtonName, NSError, SDLOnButtonPress, SDLOnButtonEvent). The observer will be notified when any button press or any button event occurs (and can distinguish between them). +/// +/// To unsubscribe from the hard button, call `unsubscribeButton:withObserver:withCompletionHandler:`. +/// +/// @param buttonName The name of the hard button to subscribe to +/// @param observer The object that will have `selector` called whenever the button has been selected +/// @param selector The selector on `observer` that will be called whenever the button has been selected +- (void)subscribeButton:(SDLButtonName)buttonName withObserver:(id)observer selector:(SEL)selector; + +/// Unsubscribes to a subscribe button. Please note that if a subscribe button has multiple subscribers the observer will no longer get notifications, however, the app will still be subscribed to the hard button until the last subscriber is removed. +/// @param buttonName The name of the hard button to subscribe to +/// @param observer The object that will be unsubscribed. If a block was subscribed, the return value should be passed. If a selector was subscribed, the observer object should be passed +/// @param completionHandler A handler called when the observer has been unsubscribed to the hard button +- (void)unsubscribeButton:(SDLButtonName)buttonName withObserver:(id)observer withCompletionHandler:(SDLScreenManagerUpdateCompletionHandler)completionHandler; + +#pragma mark - Choice Sets /** Preload cells to the head unit. This will *greatly* reduce the time taken to present a choice set. Any already matching a choice already on the head unit will be ignored. You *do not* need to wait until the completion handler is called to present a choice set containing choices being loaded. The choice set will wait until the preload completes and then immediately present. @@ -262,8 +342,32 @@ typedef void(^SDLPreloadChoiceCompletionHandler)(NSError *__nullable error); @param initialText The initial text within the keyboard input field. It will disappear once the user selects the field in order to enter text @param delegate The keyboard delegate called when the user interacts with the keyboard + @return A unique cancelID that can be used to cancel this keyboard + */ +- (nullable NSNumber *)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id)delegate; + +/** + Cancels the keyboard-only interface if it is currently showing. If the keyboard has not yet been sent to Core, it will not be sent. + + This will only dismiss an already presented keyboard if connected to head units running SDL 6.0+. + + @param cancelID The unique ID assigned to the keyboard, passed as the return value from `presentKeyboardWithInitialText:keyboardDelegate:` + */ +- (void)dismissKeyboardWithCancelID:(NSNumber *)cancelID; + +#pragma mark - Menu + +/** + Present the top-level of your application menu. This method should be called if the menu needs to be opened programmatically because the built in menu button is hidden. + */ +- (BOOL)openMenu; + +/** + Present the application menu. This method should be called if the menu needs to be opened programmatically because the built in menu button is hidden. You must update the menu with the proper cells before calling this method. This RPC will fail if the cell does not contain a sub menu, or is not in the menu array. + +@param cell The submenu cell that should be opened as a sub menu, with its sub cells as the options. */ -- (void)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id)delegate; +- (BOOL)openSubmenu:(SDLMenuCell *)cell; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.m index bfd8c9b..9950521 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.m @@ -7,11 +7,11 @@ // #import "SDLScreenManager.h" - #import "SDLArtwork.h" #import "SDLChoiceSetManager.h" #import "SDLMenuManager.h" #import "SDLSoftButtonManager.h" +#import "SDLSubscribeButtonManager.h" #import "SDLTextAndGraphicManager.h" #import "SDLVoiceCommandManager.h" @@ -24,32 +24,40 @@ @interface SDLScreenManager() @property (strong, nonatomic) SDLMenuManager *menuManager; @property (strong, nonatomic) SDLVoiceCommandManager *voiceCommandMenuManager; @property (strong, nonatomic) SDLChoiceSetManager *choiceSetManager; +@property (strong, nonatomic) SDLSubscribeButtonManager *subscribeButtonManager; @property (weak, nonatomic) id connectionManager; @property (weak, nonatomic) SDLFileManager *fileManager; +@property (weak, nonatomic) SDLSystemCapabilityManager *systemCapabilityManager; @end @implementation SDLScreenManager -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager { +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager { self = [super init]; if (!self) { return nil; } _connectionManager = connectionManager; _fileManager = fileManager; + _systemCapabilityManager = systemCapabilityManager; - _textAndGraphicManager = [[SDLTextAndGraphicManager alloc] initWithConnectionManager:connectionManager fileManager:fileManager]; - _softButtonManager = [[SDLSoftButtonManager alloc] initWithConnectionManager:connectionManager fileManager:fileManager]; - _menuManager = [[SDLMenuManager alloc] initWithConnectionManager:connectionManager fileManager:fileManager]; + _textAndGraphicManager = [[SDLTextAndGraphicManager alloc] initWithConnectionManager:connectionManager fileManager:fileManager systemCapabilityManager:systemCapabilityManager]; + _softButtonManager = [[SDLSoftButtonManager alloc] initWithConnectionManager:connectionManager fileManager:fileManager systemCapabilityManager:systemCapabilityManager]; + _subscribeButtonManager = [[SDLSubscribeButtonManager alloc] initWithConnectionManager:connectionManager]; + _menuManager = [[SDLMenuManager alloc] initWithConnectionManager:connectionManager fileManager:fileManager systemCapabilityManager:systemCapabilityManager]; _voiceCommandMenuManager = [[SDLVoiceCommandManager alloc] initWithConnectionManager:connectionManager]; - _choiceSetManager = [[SDLChoiceSetManager alloc] initWithConnectionManager:connectionManager fileManager:fileManager]; + _choiceSetManager = [[SDLChoiceSetManager alloc] initWithConnectionManager:connectionManager fileManager:fileManager systemCapabilityManager:systemCapabilityManager]; return self; } - (void)startWithCompletionHandler:(void (^)(NSError * _Nullable))handler { + [self.textAndGraphicManager start]; + [self.softButtonManager start]; + [self.menuManager start]; [self.choiceSetManager start]; + [self.subscribeButtonManager start]; handler(nil); } @@ -60,10 +68,7 @@ - (void)stop { [self.menuManager stop]; [self.voiceCommandMenuManager stop]; [self.choiceSetManager stop]; -} - -- (nullable SDLSoftButtonObject *)softButtonObjectNamed:(NSString *)name { - return [self.softButtonManager softButtonObjectNamed:name]; + [self.subscribeButtonManager stop]; } #pragma mark - Setters @@ -127,10 +132,18 @@ - (void)setTextField4Type:(nullable SDLMetadataType)textField4Type { self.textAndGraphicManager.textField4Type = textField4Type; } +- (void)setTitle:(nullable NSString *)title { + self.textAndGraphicManager.title = title; +} + - (void)setSoftButtonObjects:(NSArray *)softButtonObjects { self.softButtonManager.softButtonObjects = softButtonObjects; } +- (void)setMenuConfiguration:(SDLMenuConfiguration *)menuConfiguration { + self.menuManager.menuConfiguration = menuConfiguration; +} + - (void)setMenu:(NSArray *)menu { self.menuManager.menuCells = menu; } @@ -143,6 +156,10 @@ - (void)setKeyboardConfiguration:(nullable SDLKeyboardProperties *)keyboardConfi self.choiceSetManager.keyboardConfiguration = keyboardConfiguration; } +- (void)setDynamicMenuUpdatesMode:(SDLDynamicMenuUpdatesMode)dynamicMenuUpdatesMode { + self.menuManager.dynamicMenuUpdatesMode = dynamicMenuUpdatesMode; +} + #pragma mark - Getters - (nullable NSString *)textField1 { @@ -205,6 +222,10 @@ - (nullable SDLMetadataType)textField4Type { return _softButtonManager.softButtonObjects; } +- (SDLMenuConfiguration *)menuConfiguration { + return _menuManager.menuConfiguration; +} + - (NSArray *)menu { return _menuManager.menuCells; } @@ -237,7 +258,26 @@ - (void)endUpdatesWithCompletionHandler:(nullable SDLScreenManagerUpdateCompleti self.textAndGraphicManager.batchUpdates = NO; [self.textAndGraphicManager updateWithCompletionHandler:handler]; - [self.softButtonManager updateWithCompletionHandler:handler]; +} + +#pragma mark - Subscribe Buttons + +- (id)subscribeButton:(SDLButtonName)buttonName withUpdateHandler:(SDLSubscribeButtonHandler)updateHandler { + return [self.subscribeButtonManager subscribeButton:buttonName withUpdateHandler:updateHandler]; +} + +- (void)subscribeButton:(SDLButtonName)buttonName withObserver:(id)observer selector:(SEL)selector { + [self.subscribeButtonManager subscribeButton:buttonName withObserver:observer selector:selector]; +} + +- (void)unsubscribeButton:(SDLButtonName)buttonName withObserver:(id)observer withCompletionHandler:(SDLScreenManagerUpdateCompletionHandler)completionHandler { + [self.subscribeButtonManager unsubscribeButton:buttonName withObserver:observer withCompletionHandler:completionHandler]; +} + +#pragma mark - Soft Buttons + +- (nullable SDLSoftButtonObject *)softButtonObjectNamed:(NSString *)name { + return [self.softButtonManager softButtonObjectNamed:name]; } #pragma mark - Choice Sets @@ -258,8 +298,22 @@ - (void)presentSearchableChoiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractio [self.choiceSetManager presentChoiceSet:choiceSet mode:mode withKeyboardDelegate:delegate]; } -- (void)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id)delegate { - [self.choiceSetManager presentKeyboardWithInitialText:initialText delegate:delegate]; +- (nullable NSNumber *)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id)delegate { + return [self.choiceSetManager presentKeyboardWithInitialText:initialText delegate:delegate]; +} + +- (void)dismissKeyboardWithCancelID:(NSNumber *)cancelID{ + [self.choiceSetManager dismissKeyboardWithCancelID:cancelID]; +} + +#pragma mark - Menu + +- (BOOL)openMenu { + return [self.menuManager openMenu]; +} + +- (BOOL)openSubmenu:(SDLMenuCell *)cell { + return [self.menuManager openSubmenu:cell]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenParams.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenParams.m index d531dfa..5a99d0a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenParams.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenParams.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLImageResolution.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLTouchEventCapabilities.h" NS_ASSUME_NONNULL_BEGIN @@ -13,19 +13,20 @@ @implementation SDLScreenParams - (void)setResolution:(SDLImageResolution *)resolution { - [store sdl_setObject:resolution forName:SDLNameResolution]; + [self.store sdl_setObject:resolution forName:SDLRPCParameterNameResolution]; } - (SDLImageResolution *)resolution { - return [store sdl_objectForName:SDLNameResolution ofClass:SDLImageResolution.class]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameResolution ofClass:SDLImageResolution.class error:&error]; } - (void)setTouchEventAvailable:(nullable SDLTouchEventCapabilities *)touchEventAvailable { - [store sdl_setObject:touchEventAvailable forName:SDLNameTouchEventAvailable]; + [self.store sdl_setObject:touchEventAvailable forName:SDLRPCParameterNameTouchEventAvailable]; } - (nullable SDLTouchEventCapabilities *)touchEventAvailable { - return [store sdl_objectForName:SDLNameTouchEventAvailable ofClass:SDLTouchEventCapabilities.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameTouchEventAvailable ofClass:SDLTouchEventCapabilities.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenshotViewController.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenshotViewController.h deleted file mode 100755 index 4bb5436..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenshotViewController.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// SDLScreenShotViewController.h -// -// Created by Muller, Alexander (A.) on 2/6/17. -// Copyright © 2017 Ford Motor Company. All rights reserved. -// - -#import - -/** - This class interacts with `SDLLockScreenPresenter`. It loads a screenshot of the app window and presents it on itself in an image view. This view controller is then presented on the lock window, which then presents the lock view controller over it. - */ -@interface SDLScreenshotViewController : UIViewController - -/** - Load a screenshot of the specified window into the image view on this class - - @param window The window to take a screenshot of - */ -- (void)loadScreenshotOfWindow:(UIWindow *)window; - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenshotViewController.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenshotViewController.m deleted file mode 100755 index 2d9e736..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenshotViewController.m +++ /dev/null @@ -1,48 +0,0 @@ -// -// SDLScreenShotViewController.m -// ios -// -// Created by Muller, Alexander (A.) on 2/6/17. -// Copyright © 2017 Ford Motor Company. All rights reserved. -// - -#import "SDLScreenshotViewController.h" - -@interface SDLScreenshotViewController () - -@property (nonatomic, strong) UIImageView *imageView; - -@end - -@implementation SDLScreenshotViewController - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - self.view.backgroundColor = [UIColor clearColor]; - - self.imageView = [[UIImageView alloc] initWithFrame:self.view.frame]; - self.imageView.backgroundColor = [UIColor clearColor]; - self.imageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - [self.view addSubview:self.imageView]; - - return self; -} - -- (void)layoutSubviews { - self.imageView.frame = self.view.bounds; -} - -- (void)loadScreenshotOfWindow:(UIWindow *)window { - UIGraphicsBeginImageContextWithOptions(window.bounds.size, YES, 0.0f); - [window drawViewHierarchyInRect:window.bounds afterScreenUpdates:NO]; - - UIImage* image = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - - self.imageView.image = image; -} - - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.h index 67fab47..f2abda1 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.h @@ -6,50 +6,83 @@ @class SDLSoftButton; +NS_ASSUME_NONNULL_BEGIN + /** - * Creates a full screen overlay containing a large block of formatted text that - * can be scrolled with up to 8 SoftButtons defined - *

    - * Function Group: ScrollableMessage - *

    - * HMILevel needs to be FULL - *

    - */ + Creates a full screen overlay containing a large block of formatted text that can be scrolled with buttons available. -NS_ASSUME_NONNULL_BEGIN + If connecting to SDL Core v.6.0+, the scrollable message can be canceled programmatically using the `cancelID`. On older versions of SDL Core, the scrollable message will persist until the user has interacted with the scrollable message or the specified timeout has elapsed. + @since SDL 2.0 + */ @interface SDLScrollableMessage : SDLRPCRequest +/** + Convenience init for creating a scrolling message with text. + + @param message Body of text that can include newlines and tabs + @return A SDLScrollableMessage object + */ - (instancetype)initWithMessage:(NSString *)message; -- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray *)softButtons; +/** + Convenience init for creating a scrolling message with text and buttons. + + @param message Body of text that can include newlines and tabs + @param timeout Indicates how long of a timeout from the last action (i.e. scrolling message resets timeout) + @param softButtons Buttons for the displayed scrollable message + @param cancelID An ID for this specific scrollable message to allow cancellation through the `CancelInteraction` RPC + @return A SDLScrollableMessage object + */ +- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray *)softButtons cancelID:(UInt32)cancelID; + +/** + Convenience init for creating a scrolling message with text and buttons. + + @param message Body of text that can include newlines and tabs + @param timeout Indicates how long of a timeout from the last action (i.e. scrolling message resets timeout) + @param softButtons Buttons for the displayed scrollable message + @return A SDLScrollableMessage object + */ +- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray *)softButtons __deprecated_msg("Use initWithMessage:timeout:softButtons:cancelID: instead"); /** - * A Body of text that can include newlines and tabs - * @discussion A String value representing the Body of text that can include - * newlines and tabs - *

    - * Notes: Maxlength=500 + Body of text that can include newlines and tabs. + + String, Required, Max length 500 chars + + @since SDL 2.0 */ @property (strong, nonatomic) NSString *scrollableMessageBody; + /** - * Gets/Sets an App defined timeout. Indicates how long of a timeout in milliseconds from the - * last action - * @discussion An Integer value representing an App defined timeout in milliseconds - *

    - * Notes:Minval=0; Maxval=65535;Default=30000 + App defined timeout. Indicates how long of a timeout from the last action (i.e. scrolling message resets timeout). If not set, a default value of 30 seconds is used by Core. + + Integer, Optional, Min value: 1000, Max value: 65535, Default value: 30000 + + @since SDL 2.0 */ @property (nullable, strong, nonatomic) NSNumber *timeout; + /** - * Gets/Sets App defined SoftButtons.If omitted on supported displays, only the - * system defined "Close" SoftButton will be displayed - * @discussion A Vector value representing App defined - * SoftButtons - *

    - * Notes: Minsize=0, Maxsize=8 + Buttons for the displayed scrollable message. If omitted on supported displays, only the system defined "Close" SoftButton will be displayed. + + Array of SDLSoftButton, Optional, Array size: 0-8 + + Since SDL 2.0 */ @property (nullable, strong, nonatomic) NSArray *softButtons; +/** + An ID for this specific scrollable message to allow cancellation through the `CancelInteraction` RPC. + + Integer, Optional + + @see SDLCancelInteraction + @since SDL 6.0 + */ +@property (nullable, strong, nonatomic) NSNumber *cancelID; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.m index f9c92c7..994beca 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.m @@ -5,64 +5,80 @@ #import "SDLScrollableMessage.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSoftButton.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLScrollableMessage +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameScrollableMessage]) { + if (self = [super initWithName:SDLRPCFunctionNameScrollableMessage]) { } return self; } +#pragma clang diagnostic pop -- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray *)softButtons { - self = [self initWithMessage:message]; +- (instancetype)initWithScrollableMessageBody:(NSString *)message timeout:(nullable NSNumber *)timeout softButtons:(nullable NSArray *)softButtons cancelID:(nullable NSNumber *)cancelID { + self = [self init]; if (!self) { return nil; } - self.timeout = @(timeout); - self.softButtons = [softButtons mutableCopy]; + self.scrollableMessageBody = message; + self.timeout = timeout; + self.softButtons = softButtons; + self.cancelID = cancelID; return self; } -- (instancetype)initWithMessage:(NSString *)message { - self = [self init]; - if (!self) { - return nil; - } +- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray *)softButtons cancelID:(UInt32)cancelID { + return [self initWithScrollableMessageBody:message timeout:@(timeout) softButtons:softButtons cancelID:@(cancelID)]; +} - self.scrollableMessageBody = message; +- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray *)softButtons { + return [self initWithScrollableMessageBody:message timeout:@(timeout) softButtons:softButtons cancelID:nil]; +} - return self; +- (instancetype)initWithMessage:(NSString *)message { + return [self initWithScrollableMessageBody:message timeout:nil softButtons:nil cancelID:nil]; } - (void)setScrollableMessageBody:(NSString *)scrollableMessageBody { - [parameters sdl_setObject:scrollableMessageBody forName:SDLNameScrollableMessageBody]; + [self.parameters sdl_setObject:scrollableMessageBody forName:SDLRPCParameterNameScrollableMessageBody]; } - (NSString *)scrollableMessageBody { - return [parameters sdl_objectForName:SDLNameScrollableMessageBody]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameScrollableMessageBody ofClass:NSString.class error:&error]; } - (void)setTimeout:(nullable NSNumber *)timeout { - [parameters sdl_setObject:timeout forName:SDLNameTimeout]; + [self.parameters sdl_setObject:timeout forName:SDLRPCParameterNameTimeout]; } - (nullable NSNumber *)timeout { - return [parameters sdl_objectForName:SDLNameTimeout]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeout ofClass:NSNumber.class error:nil]; } - (void)setSoftButtons:(nullable NSArray *)softButtons { - [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; + [self.parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; } - (nullable NSArray *)softButtons { - return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; +} + +- (void)setCancelID:(nullable NSNumber *)cancelID { + [self.parameters sdl_setObject:cancelID forName:SDLRPCParameterNameCancelID]; +} + +- (nullable NSNumber *)cancelID { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCancelID ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessageResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessageResponse.m index 0777c3d..df91127 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessageResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessageResponse.m @@ -5,14 +5,18 @@ #import "SDLScrollableMessageResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" @implementation SDLScrollableMessageResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameScrollableMessage]) { + if (self = [super initWithName:SDLRPCFunctionNameScrollableMessage]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.h index de166d3..c55de48 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.h @@ -3,6 +3,7 @@ #import "SDLRPCStruct.h" +#import "SDLModuleInfo.h" NS_ASSUME_NONNULL_BEGIN @@ -11,10 +12,64 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLSeatControlCapabilities : SDLRPCStruct -- (instancetype)initWithName:(NSString *)moduleName; - +/// Constructs a newly allocated SDLSeatControlCapabilities object with moduleName +/// +/// @param moduleName The short friendly name of the module. +/// @return An SDLSeatControlCapabilities object +- (instancetype)initWithName:(NSString *)moduleName __deprecated_msg("Use initWithName:moduleInfo:"); + +/// Constructs a newly allocated SDLSeatControlCapabilities object with moduleName and moduleInfo +/// +/// @param moduleName The short friendly name of the module. +/// @param moduleInfo Information about a RC module, including its id +/// @return An SDLSeatControlCapabilities object +- (instancetype)initWithName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo; + +/// Constructs a newly allocated SDLSeatControlCapabilities object with given parameters +/// +/// @param moduleName The short friendly name of the module. +/// @param heatingEnabledAvail Whether or not heating is available +/// @param coolingEnabledAvail Whether or not heating is available +/// @param heatingLevelAvail Whether or not heating level is available +/// @param coolingLevelAvail Whether or not cooling level is available +/// @param horizontalPositionAvail Whether or not horizontal Position is aavailable +/// @param verticalPositionAvail Whether or not vertical position is available +/// @param frontVerticalPositionAvail Whether or not front vertical position is available +/// @param backVerticalPositionAvail Whether or not back vertical position is available +/// @param backTitlAngleAvail Whether or not backTilt angle is available +/// @param headSupportHorizontalPositionAvail Whether or not head supports for horizontal position is available +/// @param headSupportVerticalPositionAvail Whether or not head supports for vertical position is available +/// @param massageEnabledAvail Whether or not massage enabled is available +/// @param massageModeAvail Whether or not massage mode is available +/// @param massageCushionFirmnessAvail Whether or not massage cushion firmness is available +/// @param memoryAvail Whether or not massage cushion firmness is available +/// @return An SDLSeatControlCapabilities object - (instancetype)initWithName:(NSString *)moduleName heatingEnabledAvailable:(BOOL)heatingEnabledAvail - coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail; + coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail __deprecated_msg("Use initWithName:moduleInfo:heatingEnabledAvailable:coolingEnabledAvailable:heatingLevelAvailable:coolingLevelAvailable:horizontalPositionAvailable:verticalPositionAvailable:frontVerticalPositionAvailable:backVerticalPositionAvailable:backTiltAngleAvailable:headSupportHorizontalPositionAvailable:headSupportVerticalPositionAvailable:massageEnabledAvailable:massageModeAvailable:massageCushionFirmnessAvailable:memoryAvailable:"); + +/// Constructs a newly allocated SDLSeatControlCapabilities object with all parameters +/// +/// @param moduleName The short friendly name of the module. +/// @param moduleInfo Information about a RC module, including its id +/// @param heatingEnabledAvail Whether or not heating is available +/// @param coolingEnabledAvail Whether or not heating is available +/// @param heatingLevelAvail Whether or not heating level is available +/// @param coolingLevelAvail Whether or not cooling level is available +/// @param horizontalPositionAvail Whether or not horizontal Position is aavailable +/// @param verticalPositionAvail Whether or not vertical position is available +/// @param frontVerticalPositionAvail Whether or not front vertical position is available +/// @param backVerticalPositionAvail Whether or not back vertical position is available +/// @param backTitlAngleAvail Whether or not backTilt angle is available +/// @param headSupportHorizontalPositionAvail Whether or not head supports for horizontal position is available +/// @param headSupportVerticalPositionAvail Whether or not head supports for vertical position is available +/// @param massageEnabledAvail Whether or not massage enabled is available +/// @param massageModeAvail Whether or not massage mode is available +/// @param massageCushionFirmnessAvail Whether or not massage cushion firmness is available +/// @param memoryAvail Whether or not massage cushion firmness is available +/// @return An SDLSeatControlCapabilities object +- (instancetype)initWithName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo heatingEnabledAvailable:(BOOL)heatingEnabledAvail + coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail; + /** * @abstract The short friendly name of the light control module. * It should not be used to identify a module by mobile application. @@ -128,6 +183,12 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSNumber *memoryAvailable; +/** + * @abstract Information about a RC module, including its id. + * + * Optional + */ +@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.m index 5f7fd93..248c87d 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.m @@ -2,7 +2,7 @@ // #import "SDLSeatControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -16,6 +16,14 @@ - (instancetype)initWithName:(NSString *)moduleName { return self; } +- (instancetype)initWithName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo { + if (self = [super init]) { + self.moduleName = moduleName; + self.moduleInfo = moduleInfo; + } + return self; +} + - (instancetype)initWithName:(NSString *)moduleName heatingEnabledAvailable:(BOOL)heatingEnabledAvail coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail { self = [super init]; @@ -43,159 +51,197 @@ - (instancetype)initWithName:(NSString *)moduleName heatingEnabledAvailable:(BOO return self; } +- (instancetype)initWithName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo heatingEnabledAvailable:(BOOL)heatingEnabledAvail + coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail { + + self = [super init]; + if (!self) { + return nil; + } + + self.moduleName = moduleName; + self.moduleInfo = moduleInfo; + self.heatingEnabledAvailable = @(heatingEnabledAvail); + self.coolingEnabledAvailable = @(coolingEnabledAvail); + self.heatingLevelAvailable = @(heatingLevelAvail); + self.coolingLevelAvailable = @(coolingLevelAvail); + self.horizontalPositionAvailable = @(horizontalPositionAvail); + self.verticalPositionAvailable = @(verticalPositionAvail); + self.frontVerticalPositionAvailable = @(frontVerticalPositionAvail); + self.backVerticalPositionAvailable = @(backVerticalPositionAvail); + self.backTiltAngleAvailable = @(backTitlAngleAvail); + self.headSupportVerticalPositionAvailable = @(headSupportVerticalPositionAvail); + self.headSupportHorizontalPositionAvailable = @(headSupportHorizontalPositionAvail); + self.massageEnabledAvailable = @(massageEnabledAvail); + self.massageModeAvailable = @(massageModeAvail); + self.massageCushionFirmnessAvailable = @(massageCushionFirmnessAvail); + self.memoryAvailable = @(memoryAvail); + + return self; +} + - (void)setModuleName:(NSString *)moduleName { - [store sdl_setObject:moduleName forName:SDLNameModuleName]; + [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } - (NSString *)moduleName { - return [store sdl_objectForName:SDLNameModuleName]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; } - (void)setHeatingEnabledAvailable:(nullable NSNumber *)heatingEnabledAvailable { - [store sdl_setObject:heatingEnabledAvailable forName:SDLNameHeatingEnabledAvailable]; + [self.store sdl_setObject:heatingEnabledAvailable forName:SDLRPCParameterNameHeatingEnabledAvailable]; } - (nullable NSNumber *)heatingEnabledAvailable { - return [store sdl_objectForName:SDLNameHeatingEnabledAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeatingEnabledAvailable ofClass:NSNumber.class error:nil]; } - (void)setCoolingEnabledAvailable:(nullable NSNumber *)coolingEnabledAvailable { - [store sdl_setObject:coolingEnabledAvailable forName:SDLNameCoolingEnabledAvailable]; + [self.store sdl_setObject:coolingEnabledAvailable forName:SDLRPCParameterNameCoolingEnabledAvailable]; } - (nullable NSNumber *)coolingEnabledAvailable { - return [store sdl_objectForName:SDLNameCoolingEnabledAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameCoolingEnabledAvailable ofClass:NSNumber.class error:nil]; } - (void)setHeatingLevelAvailable:(nullable NSNumber *)heatingLevelAvailable { - [store sdl_setObject:heatingLevelAvailable forName:SDLNameHeatingLevelAvailable]; + [self.store sdl_setObject:heatingLevelAvailable forName:SDLRPCParameterNameHeatingLevelAvailable]; } - (nullable NSNumber *)heatingLevelAvailable { - return [store sdl_objectForName:SDLNameHeatingLevelAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeatingLevelAvailable ofClass:NSNumber.class error:nil]; } - (void)setCoolingLevelAvailable:(nullable NSNumber *)coolingLevelAvailable { - [store sdl_setObject:coolingLevelAvailable forName:SDLNameCoolingLevelAvailable]; + [self.store sdl_setObject:coolingLevelAvailable forName:SDLRPCParameterNameCoolingLevelAvailable]; } - (nullable NSNumber *)coolingLevelAvailable { - return [store sdl_objectForName:SDLNameCoolingLevelAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameCoolingLevelAvailable ofClass:NSNumber.class error:nil]; } - (void)setHorizontalPositionAvailable:(nullable NSNumber *)horizontalPositionAvailable { - [store sdl_setObject:horizontalPositionAvailable forName:SDLNameHorizontalPositionAvailable]; + [self.store sdl_setObject:horizontalPositionAvailable forName:SDLRPCParameterNameHorizontalPositionAvailable]; } - (nullable NSNumber *)horizontalPositionAvailable { - return [store sdl_objectForName:SDLNameHorizontalPositionAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHorizontalPositionAvailable ofClass:NSNumber.class error:nil]; } - (void)setVerticalPositionAvailable:(nullable NSNumber *)verticalPositionAvailable { - [store sdl_setObject:verticalPositionAvailable forName:SDLNameVerticalPositionAvailable]; + [self.store sdl_setObject:verticalPositionAvailable forName:SDLRPCParameterNameVerticalPositionAvailable]; } - (nullable NSNumber *)verticalPositionAvailable { - return [store sdl_objectForName:SDLNameVerticalPositionAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameVerticalPositionAvailable ofClass:NSNumber.class error:nil]; } - (void)setFrontVerticalPositionAvailable:(nullable NSNumber *)frontVerticalPositionAvailable { - [store sdl_setObject:frontVerticalPositionAvailable forName:SDLNameFrontVerticalPositionAvailable]; + [self.store sdl_setObject:frontVerticalPositionAvailable forName:SDLRPCParameterNameFrontVerticalPositionAvailable]; } - (nullable NSNumber *)frontVerticalPositionAvailable { - return [store sdl_objectForName:SDLNameFrontVerticalPositionAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameFrontVerticalPositionAvailable ofClass:NSNumber.class error:nil]; } - (void)setBackVerticalPositionAvailable:(nullable NSNumber *)backVerticalPositionAvailable { - [store sdl_setObject:backVerticalPositionAvailable forName:SDLNameBackVerticalPositionAvailable]; + [self.store sdl_setObject:backVerticalPositionAvailable forName:SDLRPCParameterNameBackVerticalPositionAvailable]; } - (nullable NSNumber *)backVerticalPositionAvailable { - return [store sdl_objectForName:SDLNameBackVerticalPositionAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameBackVerticalPositionAvailable ofClass:NSNumber.class error:nil]; } - (void)setBackTiltAngleAvailable:(nullable NSNumber *)backTiltAngleAvailable { - [store sdl_setObject:backTiltAngleAvailable forName:SDLNameBackTiltAngleAvailable]; + [self.store sdl_setObject:backTiltAngleAvailable forName:SDLRPCParameterNameBackTiltAngleAvailable]; } - (nullable NSNumber *)backTiltAngleAvailable { - return [store sdl_objectForName:SDLNameBackTiltAngleAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameBackTiltAngleAvailable ofClass:NSNumber.class error:nil]; } - (void)setHeadSupportHorizontalPositionAvailable:(nullable NSNumber *)headSupportHorizontalPositionAvailable { - [store sdl_setObject:headSupportHorizontalPositionAvailable forName:SDLNameHeadSupportHorizontalPositionAvailable]; + [self.store sdl_setObject:headSupportHorizontalPositionAvailable forName:SDLRPCParameterNameHeadSupportHorizontalPositionAvailable]; } - (nullable NSNumber *)headSupportHorizontalPositionAvailable { - return [store sdl_objectForName:SDLNameHeadSupportHorizontalPositionAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeadSupportHorizontalPositionAvailable ofClass:NSNumber.class error:nil]; } - (void)setHeadSupportVerticalPositionAvailable:(nullable NSNumber *)headSupportVerticalPositionAvailable { - [store sdl_setObject:headSupportVerticalPositionAvailable forName:SDLNameHeadSupportVerticalPositionAvailable]; + [self.store sdl_setObject:headSupportVerticalPositionAvailable forName:SDLRPCParameterNameHeadSupportVerticalPositionAvailable]; } - (nullable NSNumber *)headSupportVerticalPositionAvailable { - return [store sdl_objectForName:SDLNameHeadSupportVerticalPositionAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeadSupportVerticalPositionAvailable ofClass:NSNumber.class error:nil]; } - (void)setMassageEnabledAvailable:(nullable NSNumber *)massageEnabledAvailable { - [store sdl_setObject:massageEnabledAvailable forName:SDLNameMassageEnabledAvailable]; + [self.store sdl_setObject:massageEnabledAvailable forName:SDLRPCParameterNameMassageEnabledAvailable]; } - (nullable NSNumber *)massageEnabledAvailable { - return [store sdl_objectForName:SDLNameMassageEnabledAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameMassageEnabledAvailable ofClass:NSNumber.class error:nil]; } - (void)setMassageModeAvailable:(nullable NSNumber *)massageModeAvailable { - [store sdl_setObject:massageModeAvailable forName:SDLNameMassageModeAvailable]; + [self.store sdl_setObject:massageModeAvailable forName:SDLRPCParameterNameMassageModeAvailable]; } - (nullable NSNumber *)massageModeAvailable { - return [store sdl_objectForName:SDLNameMassageModeAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameMassageModeAvailable ofClass:NSNumber.class error:nil]; } - (void)setMassageCushionFirmnessAvailable:(nullable NSNumber *)massageCushionFirmnessAvailable { - [store sdl_setObject:massageCushionFirmnessAvailable forName:SDLNameMassageCushionFirmnessAvailable]; + [self.store sdl_setObject:massageCushionFirmnessAvailable forName:SDLRPCParameterNameMassageCushionFirmnessAvailable]; } - (nullable NSNumber *)massageCushionFirmnessAvailable { - return [store sdl_objectForName:SDLNameMassageCushionFirmnessAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameMassageCushionFirmnessAvailable ofClass:NSNumber.class error:nil]; } - (void)setMemoryAvailable:(nullable NSNumber *)memoryAvailable { - [store sdl_setObject:memoryAvailable forName:SDLNameMemoryAvailable]; + [self.store sdl_setObject:memoryAvailable forName:SDLRPCParameterNameMemoryAvailable]; } - (nullable NSNumber *)memoryAvailable { - return [store sdl_objectForName:SDLNameMemoryAvailable]; + return [self.store sdl_objectForName:SDLRPCParameterNameMemoryAvailable ofClass:NSNumber.class error:nil]; +} + +- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { + [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; +} + +- (nullable SDLModuleInfo *)moduleInfo { + return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.h index e08492d..9bc7163 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.h @@ -17,43 +17,54 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLSeatControlData : SDLRPCStruct +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" /** - Constructs a newly allocated SDLSeatControlData object with cushion and firmness +Constructs a newly allocated SDLSeatControlData object with cushion and firmness - @param supportedSeat id of remote controllable seat. - @return An instance of the SDLSeatControlData class - */ +@param supportedSeat id of remote controllable seat. +@return An instance of the SDLSeatControlData class +*/ - (instancetype)initWithId:(SDLSupportedSeat)supportedSeat; +#pragma clang diagnostic pop + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" /** - Constructs a newly allocated SDLSeatControlData object with cushion and firmness - - @param supportedSeat id of remote controllable seat. - @param heatingEnable Whether or not heating is enabled. - @param coolingEnable Whether or not cooling is enabled. - @param heatingLevel heating level - @param coolingLevel cooling Level - @param horizontal horizontal Position - @param vertical vertical Position - @param frontVertical frontVertical Position - @param backVertical backVertical Position - @param backAngle backAngle Position - @param headSupportedHorizontal headSupportedHorizontal Position - @param headSupportedVertical headSupportedVertical Position - @param massageEnable Whether or not massage is enabled. - @param massageMode Array of massage mode data. - @param firmness Array of firmness data. - @param memoryAction type of action to be performed. - @return An instance of the SDLSeatControlData class - */ + Constructs a newly allocated SDLSeatControlData object with cushion and firmness + +@param supportedSeat id of remote controllable seat. +@param heatingEnable Whether or not heating is enabled. +@param coolingEnable Whether or not cooling is enabled. +@param heatingLevel heating level +@param coolingLevel cooling Level +@param horizontal horizontal Position +@param vertical vertical Position +@param frontVertical frontVertical Position +@param backVertical backVertical Position +@param backAngle backAngle Position +@param headSupportedHorizontal headSupportedHorizontal Position +@param headSupportedVertical headSupportedVertical Position +@param massageEnable Whether or not massage is enabled. +@param massageMode Array of massage mode data. +@param firmness Array of firmness data. +@param memoryAction type of action to be performed. +@return An instance of the SDLSeatControlData class +*/ - (instancetype)initWithId:(SDLSupportedSeat)supportedSeat heatingEnabled:(BOOL)heatingEnable coolingEnable:(BOOL)coolingEnable heatingLevel:(UInt8)heatingLevel coolingLevel:(UInt8)coolingLevel horizontalPostion:(UInt8)horizontal verticalPostion:(UInt8)vertical frontVerticalPostion:(UInt8)frontVertical backVerticalPostion:(UInt8)backVertical backTiltAngle:(UInt8)backAngle headSupportedHorizontalPostion:(UInt8)headSupportedHorizontal headSupportedVerticalPostion:(UInt8)headSupportedVertical massageEnabled:(BOOL)massageEnable massageMode:(NSArray *)massageMode massageCussionFirmness:(NSArray *)firmness memory:(SDLSeatMemoryAction *)memoryAction; +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" /** - * @abstract id of seat that is a remote controllable seat. - * - * Required - */ +* @abstract id of seat that is a remote controllable seat. +* @warning This should not be used to identify a seat, this is a deprecated parameter. +* +* Required +*/ @property (strong, nonatomic) SDLSupportedSeat id; +#pragma clang diagnostic pop /** * @abstract Whether or not heating is enabled. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.m index df2b435..6054cb9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.m @@ -2,7 +2,7 @@ // #import "SDLSeatControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" #import "SDLMassageModeData.h" @@ -13,7 +13,10 @@ @implementation SDLSeatControlData +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)initWithId:(SDLSupportedSeat)supportedSeat { +#pragma clang diagnostic pop self = [self init]; if (!self) { return nil; @@ -23,7 +26,10 @@ - (instancetype)initWithId:(SDLSupportedSeat)supportedSeat { return self; } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)initWithId:(SDLSupportedSeat)supportedSeat heatingEnabled:(BOOL)heatingEnable coolingEnable:(BOOL)coolingEnabled heatingLevel:(UInt8)heatingLevel coolingLevel:(UInt8)coolingLevel horizontalPostion:(UInt8)horizontal verticalPostion:(UInt8)vertical frontVerticalPostion:(UInt8)frontVertical backVerticalPostion:(UInt8)backVertical backTiltAngle:(UInt8)backAngle headSupportedHorizontalPostion:(UInt8)headSupportedHorizontal headSupportedVerticalPostion:(UInt8)headSupportedVertical massageEnabled:(BOOL)massageEnable massageMode:(NSArray *)massageMode massageCussionFirmness:(NSArray *)firmness memory:(SDLSeatMemoryAction *)memoryAction { +#pragma clang diagnostic pop self = [super init]; if (!self) { @@ -53,133 +59,140 @@ - (instancetype)initWithId:(SDLSupportedSeat)supportedSeat heatingEnabled:(BOOL) return self; } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (void)setId:(SDLSupportedSeat)id { - [store sdl_setObject:id forName:SDLNameId]; +#pragma clang diagnostic pop + [self.store sdl_setObject:id forName:SDLRPCParameterNameId]; } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (SDLSupportedSeat)id { - return [store sdl_objectForName:SDLNameId]; +#pragma clang diagnostic pop + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameId error:&error]; } - (void)setHeatingEnabled:(nullable NSNumber *)heatingEnabled { - [store sdl_setObject:heatingEnabled forName:SDLNameHeatingEnabled]; + [self.store sdl_setObject:heatingEnabled forName:SDLRPCParameterNameHeatingEnabled]; } - (nullable NSNumber *)heatingEnabled { - return [store sdl_objectForName:SDLNameHeatingEnabled]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeatingEnabled ofClass:NSNumber.class error:nil]; } - (void)setCoolingEnabled:(nullable NSNumber *)coolingEnabled { - [store sdl_setObject:coolingEnabled forName:SDLNameCoolingEnabled]; + [self.store sdl_setObject:coolingEnabled forName:SDLRPCParameterNameCoolingEnabled]; } - (nullable NSNumber *)coolingEnabled { - return [store sdl_objectForName:SDLNameCoolingEnabled]; + return [self.store sdl_objectForName:SDLRPCParameterNameCoolingEnabled ofClass:NSNumber.class error:nil]; } - (void)setHeatingLevel:(nullable NSNumber *)heatingLevel { - [store sdl_setObject:heatingLevel forName:SDLNameHeatingLevel]; + [self.store sdl_setObject:heatingLevel forName:SDLRPCParameterNameHeatingLevel]; } - (nullable NSNumber *)heatingLevel { - return [store sdl_objectForName:SDLNameHeatingLevel]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeatingLevel ofClass:NSNumber.class error:nil]; } - (void)setCoolingLevel:(nullable NSNumber *)coolingLevel { - [store sdl_setObject:coolingLevel forName:SDLNameCoolingLevel]; + [self.store sdl_setObject:coolingLevel forName:SDLRPCParameterNameCoolingLevel]; } - (nullable NSNumber *)coolingLevel { - return [store sdl_objectForName:SDLNameCoolingLevel]; + return [self.store sdl_objectForName:SDLRPCParameterNameCoolingLevel ofClass:NSNumber.class error:nil]; } - (void)setHorizontalPosition:(nullable NSNumber *)horizontalPosition { - [store sdl_setObject:horizontalPosition forName:SDLNameHorizontalPosition]; + [self.store sdl_setObject:horizontalPosition forName:SDLRPCParameterNameHorizontalPosition]; } - (nullable NSNumber *)horizontalPosition { - return [store sdl_objectForName:SDLNameHorizontalPosition]; + return [self.store sdl_objectForName:SDLRPCParameterNameHorizontalPosition ofClass:NSNumber.class error:nil]; } - (void)setVerticalPosition:(nullable NSNumber *)verticalPosition { - [store sdl_setObject:verticalPosition forName:SDLNameVerticalPosition]; + [self.store sdl_setObject:verticalPosition forName:SDLRPCParameterNameVerticalPosition]; } - (nullable NSNumber *)verticalPosition { - return [store sdl_objectForName:SDLNameVerticalPosition]; + return [self.store sdl_objectForName:SDLRPCParameterNameVerticalPosition ofClass:NSNumber.class error:nil]; } - (void)setFrontVerticalPosition:(nullable NSNumber *)frontVerticalPosition { - [store sdl_setObject:frontVerticalPosition forName:SDLNameFrontVerticalPosition]; + [self.store sdl_setObject:frontVerticalPosition forName:SDLRPCParameterNameFrontVerticalPosition]; } - (nullable NSNumber *)frontVerticalPosition { - return [store sdl_objectForName:SDLNameFrontVerticalPosition]; + return [self.store sdl_objectForName:SDLRPCParameterNameFrontVerticalPosition ofClass:NSNumber.class error:nil]; } - (void)setBackVerticalPosition:(nullable NSNumber *)backVerticalPosition { - [store sdl_setObject:backVerticalPosition forName:SDLNameBackVerticalPosition]; + [self.store sdl_setObject:backVerticalPosition forName:SDLRPCParameterNameBackVerticalPosition]; } - (nullable NSNumber *)backVerticalPosition { - return [store sdl_objectForName:SDLNameBackVerticalPosition]; + return [self.store sdl_objectForName:SDLRPCParameterNameBackVerticalPosition ofClass:NSNumber.class error:nil]; } - (void)setBackTiltAngle:(nullable NSNumber *)backTiltAngle { - [store sdl_setObject:backTiltAngle forName:SDLNameBackTiltAngle]; + [self.store sdl_setObject:backTiltAngle forName:SDLRPCParameterNameBackTiltAngle]; } - (nullable NSNumber *)backTiltAngle { - return [store sdl_objectForName:SDLNameBackTiltAngle]; + return [self.store sdl_objectForName:SDLRPCParameterNameBackTiltAngle ofClass:NSNumber.class error:nil]; } - (void)setHeadSupportHorizontalPosition:(nullable NSNumber *)headSupportHorizontalPosition { - [store sdl_setObject:headSupportHorizontalPosition forName:SDLNameHeadSupportHorizontalPosition]; + [self.store sdl_setObject:headSupportHorizontalPosition forName:SDLRPCParameterNameHeadSupportHorizontalPosition]; } - (nullable NSNumber *)headSupportHorizontalPosition { - return [store sdl_objectForName:SDLNameHeadSupportHorizontalPosition]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeadSupportHorizontalPosition ofClass:NSNumber.class error:nil]; } -(void)setHeadSupportVerticalPosition:(nullable NSNumber *)headSupportVerticalPosition { - [store sdl_setObject:headSupportVerticalPosition forName:SDLNameHeadSupportVerticalPosition]; + [self.store sdl_setObject:headSupportVerticalPosition forName:SDLRPCParameterNameHeadSupportVerticalPosition]; } - (nullable NSNumber *)headSupportVerticalPosition { - return [store sdl_objectForName:SDLNameHeadSupportVerticalPosition]; + return [self.store sdl_objectForName:SDLRPCParameterNameHeadSupportVerticalPosition ofClass:NSNumber.class error:nil]; } - (void)setMassageEnabled:(nullable NSNumber *)massageEnabled { - [store sdl_setObject:massageEnabled forName:SDLNameMassageEnabled]; + [self.store sdl_setObject:massageEnabled forName:SDLRPCParameterNameMassageEnabled]; } - (nullable NSNumber *)massageEnabled { - return [store sdl_objectForName:SDLNameMassageEnabled]; + return [self.store sdl_objectForName:SDLRPCParameterNameMassageEnabled ofClass:NSNumber.class error:nil]; } - (void)setMassageMode:(nullable NSArray *)massageMode { - [store sdl_setObject:massageMode forName:SDLNameMassageMode]; + [self.store sdl_setObject:massageMode forName:SDLRPCParameterNameMassageMode]; } - (nullable NSArray *)massageMode { - return [store sdl_objectForName:SDLNameMassageMode ]; + return [self.store sdl_objectsForName:SDLRPCParameterNameMassageMode ofClass:SDLMassageModeData.class error:nil]; } - (void)setMassageCushionFirmness:(nullable NSArray *)massageCushionFirmness { - [store sdl_setObject:massageCushionFirmness forName:SDLNameMassageCushionFirmness]; + [self.store sdl_setObject:massageCushionFirmness forName:SDLRPCParameterNameMassageCushionFirmness]; } - (nullable NSArray *)massageCushionFirmness { - return [store sdl_objectForName:SDLNameMassageCushionFirmness]; + return [self.store sdl_objectsForName:SDLRPCParameterNameMassageCushionFirmness ofClass:SDLMassageCushionFirmness.class error:nil]; } - (void)setMemory:(nullable SDLSeatMemoryAction *)memory { - [store sdl_setObject:memory forName:SDLNameMemory]; + [self.store sdl_setObject:memory forName:SDLRPCParameterNameMemory]; } - (nullable SDLSeatMemoryAction *)memory { - return [store sdl_objectForName:SDLNameMemory ofClass:SDLSeatMemoryAction.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameMemory ofClass:SDLSeatMemoryAction.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.h new file mode 100644 index 0000000..0c4d705 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.h @@ -0,0 +1,26 @@ +// +// SDLSeatLocation.h +// SmartDeviceLink +// +// Created by standa1 on 7/11/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessage.h" +#import "SDLGrid.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Describes the location of a seat + */ +@interface SDLSeatLocation : SDLRPCStruct + +/** + * Optional + */ +@property (strong, nonatomic, nullable) SDLGrid *grid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.m new file mode 100644 index 0000000..82fc289 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.m @@ -0,0 +1,25 @@ +// +// SDLSeatLocation.m +// SmartDeviceLink +// +// Created by standa1 on 7/11/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLSeatLocation.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +@implementation SDLSeatLocation + +- (void)setGrid:(nullable SDLGrid *)grid { + [self.store sdl_setObject:grid forName:SDLRPCParameterNameGrid]; +} + +- (nullable SDLGrid *)grid { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameGrid ofClass:SDLGrid.class error:&error]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.h new file mode 100644 index 0000000..1bd5f56 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.h @@ -0,0 +1,55 @@ +// +// SDLSeatLocationCapability.h +// SmartDeviceLink +// +// Created by standa1 on 7/11/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessage.h" + +#import "SDLSeatLocation.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Contains information about the locations of each seat. + */ +@interface SDLSeatLocationCapability : SDLRPCStruct + +/// Constructs a newly allocated SDLSeatLocationCapability object with all parameters +/// +/// @param seats Describes the location of a seat +/// @param cols Number of columns +/// @param rows Number of rows +/// @param levels Number of levels +/// @return An SDLSeatLocationCapability object +- (instancetype)initWithSeats:(NSArray *)seats cols:(NSNumber *)cols rows:(NSNumber *)rows levels:(NSNumber *)levels; + +/** + * + * Optional, Integer, 1 - 100 + */ +@property (strong, nonatomic, nullable) NSNumber *cols; + +/** + * + * Optional, Integer, 1 - 100 + */ +@property (strong, nonatomic, nullable) NSNumber *rows; + +/** + * + * Optional, Integer, 1 - 100 + */ +@property (strong, nonatomic, nullable) NSNumber *levels; + +/** + * Contains a list of SeatLocation in the vehicle, the first element is the driver's seat + * Optional + */ +@property (strong, nonatomic, nullable) NSArray *seats; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.m new file mode 100644 index 0000000..f6c59e5 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.m @@ -0,0 +1,70 @@ +// +// SDLSeatLocationCapability.m +// SmartDeviceLink +// +// Created by standa1 on 7/11/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLSeatLocationCapability.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLSeatLocationCapability + +- (instancetype)initWithSeats:(NSArray *)seats cols:(NSNumber *)cols rows:(NSNumber *)rows levels:(NSNumber *)levels { + self = [self init]; + if (!self) { + return self; + } + + self.seats = seats; + self.cols = cols; + self.rows = rows; + self.levels = levels; + + return self; +} + +- (void)setCols:(nullable NSNumber *)cols { + [self.store sdl_setObject:cols forName:SDLRPCParameterNameColumns]; +} + +- (nullable NSNumber *)cols { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameColumns ofClass:NSNumber.class error:&error]; +} + +- (void)setRows:(nullable NSNumber *)rows { + [self.store sdl_setObject:rows forName:SDLRPCParameterNameRows]; +} + +- (nullable NSNumber *)rows { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameRows ofClass:NSNumber.class error:&error]; +} + +- (void)setLevels:(nullable NSNumber *)levels { + [self.store sdl_setObject:levels forName:SDLRPCParameterNameLevels]; +} + +- (nullable NSNumber *)levels { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLevels ofClass:NSNumber.class error:&error]; +} + +- (void)setSeats:(nullable NSArray *)seats { + [self.store sdl_setObject:seats forName:SDLRPCParameterNameSeats]; +} + +- (nullable NSArray *)seats { + NSError *error = nil; + return [self.store sdl_objectsForName:SDLRPCParameterNameSeats ofClass:SDLSeatLocation.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryAction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryAction.m index 76f5192..3c2bde0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryAction.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryAction.m @@ -2,7 +2,7 @@ // #import "SDLSeatMemoryAction.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -32,27 +32,29 @@ - (instancetype)initWithId:(UInt8)id label:(nullable NSString*)label action:(SDL } - (void)setId:(NSNumber *)id { - [store sdl_setObject:id forName:SDLNameId]; + [self.store sdl_setObject:id forName:SDLRPCParameterNameId]; } - (NSNumber *)id { - return [store sdl_objectForName:SDLNameId]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameId ofClass:NSNumber.class error:&error]; } - (void)setLabel:(nullable NSString *)label { - [store sdl_setObject:label forName:SDLNameLabel]; + [self.store sdl_setObject:label forName:SDLRPCParameterNameLabel]; } - (nullable NSString *)label { - return [store sdl_objectForName:SDLNameLabel]; + return [self.store sdl_objectForName:SDLRPCParameterNameLabel ofClass:NSString.class error:nil]; } - (void)setAction:(SDLSeatMemoryActionType)action { - [store sdl_setObject:action forName:SDLNameAction]; + [self.store sdl_setObject:action forName:SDLRPCParameterNameAction]; } - (SDLSeatMemoryActionType)action { - return [store sdl_objectForName:SDLNameAction]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameAction error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.h index 0af612d..3552588 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.h @@ -6,7 +6,7 @@ // Copyright © 2018 Xevo Inc. All rights reserved. // -#import "SDLProtocolListener.h" +#import "SDLProtocolDelegate.h" #import "SDLStreamingProtocolDelegate.h" @class SDLControlFramePayloadRPCStartServiceAck; @@ -34,46 +34,25 @@ extern SDLSecondaryTransportState *const SDLSecondaryTransportStateReconnecting; manager with appropriate SDLProtocol instance. When the secondary transport is disconnected, this manager retries connection with a regular interval. */ -@interface SDLSecondaryTransportManager : NSObject +@interface SDLSecondaryTransportManager : NSObject -/** state of this manager */ -@property (strong, nonatomic, readonly) SDLStateMachine *stateMachine; - -/** - Create a new secondary transport manager. - - @param streamingProtocolDelegate a delegate to handle updates on protocol instances - @param queue a serial dispatch queue that the internal state machine runs on - @return A new secondary transport manager - */ +/// Create a new secondary transport manager. +/// @param streamingProtocolDelegate a delegate to handle updates on protocol instances +/// @param queue a serial dispatch queue that the internal state machine runs on - (instancetype)initWithStreamingProtocolDelegate:(id)streamingProtocolDelegate serialQueue:(dispatch_queue_t)queue; -/** - * Start the manager. - - @param primaryProtocol protocol that runs on the main (primary) transport - */ +/// Start the manager. +/// @param primaryProtocol The protocol that runs on the main (primary) transport - (void)startWithPrimaryProtocol:(SDLProtocol *)primaryProtocol; -/** - * Stop the manager. - */ -- (void)stop; - -/** - * Call this method when Start Service ACK control frame is received on primary transport. - - @param payload payload of Start Service ACK frame received on the primary transport - */ -- (void)onStartServiceAckReceived:(SDLControlFramePayloadRPCStartServiceAck *)payload; - -/** - * Call this method when Transport Event Update control frame is received on primary transport. +/// Stop the manager +/// @param completionHandler Handler called when the manager has shutdown +- (void)stopWithCompletionHandler:(void (^)(void))completionHandler; - @param payload payload of Transport Event Update frame received on the primary transport - */ -- (void)onTransportEventUpdateReceived:(SDLControlFramePayloadTransportEventUpdate *)payload; +/// Destroys the secondary transport. +/// @param completionHandler Handler called when the session has been destroyed +- (void)disconnectSecondaryTransportWithCompletionHandler:(void (^)(void))completionHandler; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.m index 6f3b952..2db93c7 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.m @@ -11,14 +11,18 @@ #import "SDLSecondaryTransportManager.h" +#import "SDLBackgroundTaskManager.h" #import "SDLControlFramePayloadConstants.h" #import "SDLControlFramePayloadRPCStartServiceAck.h" #import "SDLControlFramePayloadTransportEventUpdate.h" #import "SDLIAPTransport.h" #import "SDLLogMacros.h" +#import "SDLOnHMIStatus.h" #import "SDLProtocol.h" #import "SDLProtocolHeader.h" -#import "SDLSecondaryTransportPrimaryProtocolHandler.h" +#import "SDLProtocolMessage.h" +#import "SDLNotificationConstants.h" +#import "SDLRPCNotificationNotification.h" #import "SDLStateMachine.h" #import "SDLTCPTransport.h" #import "SDLTimer.h" @@ -49,6 +53,9 @@ typedef NS_ENUM(NSInteger, SDLSecondaryTransportType) { SDLSecondaryTransportState *const SDLSecondaryTransportStateRegistered = @"Registered"; SDLSecondaryTransportState *const SDLSecondaryTransportStateReconnecting = @"Reconnecting"; +/// Name for the background task started when the device app is backgrounded. +NSString *const BackgroundTaskSecondaryTransportName = @"com.sdl.transport.secondaryTransportBackgroundTask"; + // Timeout for receiving Register Secondary Transport ACK frame static const float RegisterTransportTime = 10.0; @@ -58,25 +65,30 @@ typedef NS_ENUM(NSInteger, SDLSecondaryTransportType) { // Indicates that a TCP port is not specified (unconfigured). static const int TCPPortUnspecified = -1; +/// The old and new protocols being used when the transport switches. If the old protocol is `nil`, the transport is not yet started; newProtocol is `nil` the transport will be stopped. +struct TransportProtocolUpdated { + SDLProtocol * _Nullable oldProtocol; + SDLProtocol * _Nullable newProtocol; +} transportUpdated; @interface SDLSecondaryTransportManager () -// State of this manager. -@property (strong, nonatomic, readwrite) SDLStateMachine *stateMachine; +/// State of this manager. +@property (strong, nonatomic) SDLStateMachine *stateMachine; // Dedicated queue that the state machine will run on. @property (copy, nonatomic) dispatch_queue_t stateMachineQueue; // Instance of the protocol that runs on primary transport. -@property (weak, nonatomic) SDLProtocol *primaryProtocol; -// A class to catch Start Service ACK and Transport Config Update frames. -@property (strong, nonatomic) SDLSecondaryTransportPrimaryProtocolHandler *primaryProtocolHandler; +@property (strong, nonatomic) SDLProtocol *primaryProtocol; +/// The header of the Start Service ACK frame received on primary transport +@property (copy, nonatomic) SDLProtocolHeader *primaryRPCHeader; // Selected type of secondary transport. If 'SDLSecondaryTransportTypeDisabled' then secondary transport is disabled. @property (assign, nonatomic) SDLSecondaryTransportType secondaryTransportType; // Instance of the transport for secondary transport. -@property (nullable, strong, nonatomic) id secondaryTransport; +@property (strong, nonatomic, nullable) id secondaryTransport; // Instance of the protocol that runs on secondary transport. -@property (nullable, strong, nonatomic) SDLProtocol *secondaryProtocol; +@property (strong, nonatomic, nullable) SDLProtocol *secondaryProtocol; // Timer to check Register Secondary Transport ACK response on secondary transport. @property (strong, nonatomic, nullable) SDLTimer *registerTransportTimer; @@ -84,9 +96,9 @@ @interface SDLSecondaryTransportManager () @property (weak, nonatomic) id streamingProtocolDelegate; // Configuration sent by system; list of transports that are allowed to carry audio service -@property (strong, nonatomic, nonnull) NSArray *transportsForAudioService; +@property (strong, nonatomic) NSArray *transportsForAudioService; // Configuration sent by system; list of transports that are allowed to carry video service -@property (strong, nonatomic, nonnull) NSArray *transportsForVideoService; +@property (strong, nonatomic) NSArray *transportsForVideoService; // A map to remember which service is currently running on which transport @property (strong, nonatomic) NSMutableDictionary *streamingServiceTransportMap; @@ -95,6 +107,18 @@ @interface SDLSecondaryTransportManager () // TCP port number of SDL Core. If the information isn't available then TCPPortUnspecified is stored. @property (assign, nonatomic) int tcpPort; +/// The current hmi level of the SDL app. +@property (strong, nonatomic, nullable) SDLHMILevel currentHMILevel; + +/// The current application state of the app on the phone. This information is tracked because TCP transport can only reliably work when the app on the phone is in the foreground. If the phone is locked or the app is put in the background for a long time, the OS can reclaim the socket. +@property (assign, nonatomic) UIApplicationState currentApplicationState; + +/// A background task used to close the secondary transport before the app is suspended. +@property (strong, nonatomic) SDLBackgroundTaskManager *backgroundTaskManager; + +/// A handler called when the secondary transport has been shutdown +@property (nonatomic, copy, nullable) void (^disconnectCompletionHandler)(void); + @end @implementation SDLSecondaryTransportManager @@ -119,6 +143,19 @@ - (instancetype)initWithStreamingProtocolDelegate:(id *secondaryTransports = nil; - if (payload.secondaryTransports != nil) { - secondaryTransports = [NSMutableArray array]; - for (NSString *transportString in payload.secondaryTransports) { - SDLSecondaryTransportType transport = [self sdl_convertTransportType:transportString]; - [secondaryTransports addObject:@(transport)]; - } +#pragma mark - Manager Lifecycle + +- (void)sdl_configureManager:(nullable NSArray *)availableSecondaryTransports + availableTransportsForAudio:(nullable NSArray *)availableTransportsForAudio + availableTransportsForVideo:(nullable NSArray *)availableTransportsForVideo { + if (![self.stateMachine isCurrentState:SDLSecondaryTransportStateStarted]) { + SDLLogW(@"SecondaryTransportManager ignores duplicate Start Service ACK frame"); + return; } - NSArray *transportsForAudio = [self sdl_convertServiceTransports:payload.audioServiceTransports]; - NSArray *transportsForVideo = [self sdl_convertServiceTransports:payload.videoServiceTransports]; - SDLLogV(@"Secondary transports: %@, transports for audio: %@, transports for video: %@", secondaryTransports, transportsForAudio, transportsForVideo); + // default values + self.secondaryTransportType = SDLSecondaryTransportTypeDisabled; + self.transportsForAudioService = @[@(SDLTransportClassPrimary)]; // If SDL Core did not send a transport list for the service, start it on Primary Transport. + self.transportsForVideoService = @[@(SDLTransportClassPrimary)]; + BOOL validConfig = YES; - dispatch_async(_stateMachineQueue, ^{ - [self sdl_configureManager:secondaryTransports availableTransportsForAudio:transportsForAudio availableTransportsForVideo:transportsForVideo]; - }); -} + if (availableSecondaryTransports.count > 0) { + // current proposal says the list should contain only one element + SDLSecondaryTransportTypeBox *transportType = availableSecondaryTransports[0]; + self.secondaryTransportType = [transportType integerValue]; + } else { + SDLLogW(@"Did not receive secondary transport type from system. Secondary transport is disabled."); + } -// called from SDLProtocol's _receiveQueue of "primary" transport -- (void)onTransportEventUpdateReceived:(SDLControlFramePayloadTransportEventUpdate *)payload { - dispatch_async(_stateMachineQueue, ^{ - BOOL updated = NO; + SDLSecondaryTransportType primaryTransportType = [self sdl_getTransportTypeFromProtocol:self.primaryProtocol]; + if (self.secondaryTransportType == primaryTransportType) { + SDLLogW(@"Same transport is specified for both primary and secondary transport. Secondary transport is disabled."); + self.secondaryTransportType = SDLSecondaryTransportTypeDisabled; + validConfig = NO; // let audio and video services start on primary transport + } else if (self.secondaryTransportType == SDLSecondaryTransportTypeIAP) { + SDLLogW(@"Starting IAP as secondary transport, which does not usually happen"); + } - if (payload.tcpIpAddress != nil) { - if (![self.ipAddress isEqualToString:payload.tcpIpAddress]) { - self.ipAddress = payload.tcpIpAddress; - updated = YES; - SDLLogD(@"TCP transport IP address updated: %@", self.ipAddress); - } - } - if (payload.tcpPort != SDLControlFrameInt32NotFound) { - if (self.tcpPort != payload.tcpPort) { - self.tcpPort = payload.tcpPort; - updated = YES; - SDLLogD(@"TCP transport port number updated: %d", self.tcpPort); - } - } + if (availableTransportsForAudio != nil && validConfig) { + self.transportsForAudioService = availableTransportsForAudio; + } + if (availableTransportsForVideo != nil && validConfig) { + self.transportsForVideoService = availableTransportsForVideo; + } - if (updated) { - [self sdl_handleTransportEventUpdate]; - } - }); + // this will trigger audio / video streaming if they are allowed on primary transport + [self sdl_handleTransportUpdateWithPrimaryAvailable:YES secondaryAvailable:NO]; + + [self.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; } #pragma mark - State machine @@ -216,21 +266,43 @@ - (void)onTransportEventUpdateReceived:(SDLControlFramePayloadTransportEventUpda } - (void)didEnterStateStopped { - [self sdl_stopManager]; + SDLLogD(@"Secondary transport manager stopped"); + + self.streamingServiceTransportMap = [@{@(SDLServiceTypeAudio):@(SDLTransportClassInvalid), + @(SDLServiceTypeVideo):@(SDLTransportClassInvalid)} mutableCopy]; + self.secondaryTransportType = SDLSecondaryTransportTypeDisabled; + self.transportsForAudioService = @[]; + self.transportsForVideoService = @[]; + + self.ipAddress = nil; + self.tcpPort = TCPPortUnspecified; + self.currentHMILevel = nil; + + if (self.disconnectCompletionHandler != nil) { + self.disconnectCompletionHandler(); + self.disconnectCompletionHandler = nil; + } } - (void)didEnterStateStarted { - [self sdl_startManager]; + SDLLogD(@"Secondary transport manager started"); } - (void)didEnterStateConfigured { - if ((self.secondaryTransportType == SDLSecondaryTransportTypeTCP && [self sdl_isTCPReady]) - || self.secondaryTransportType == SDLSecondaryTransportTypeIAP) { + SDLLogD(@"Secondary transport manager is configured"); + // If this is a TCP transport, check if it's ready. If it's IAP, we can just continue. In both cases, check if HMI level is Non-NONE + // https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0214-secondary-transport-optimization.md + if (((self.secondaryTransportType == SDLSecondaryTransportTypeTCP && self.sdl_isTCPReady) + || self.secondaryTransportType == SDLSecondaryTransportTypeIAP) + && self.sdl_isHMILevelNonNone) { [self.stateMachine transitionToState:SDLSecondaryTransportStateConnecting]; + } else { + SDLLogD(@"The secondary transport manager is not ready to transition to connecting state. The app's application state needs to be Active in order to create a socket (current app state is %ld) and we need the socket address (current IP address: %@ and port: %d)", (long)self.currentApplicationState, self.ipAddress, self.tcpPort); } } - (void)didEnterStateConnecting { + SDLLogD(@"Secondary transport is connecting"); [self sdl_connectSecondaryTransport]; } @@ -240,177 +312,40 @@ - (void)willLeaveStateConnecting { self.registerTransportTimer = nil; } -- (void)willTransitionFromStateConnectingToStateConfigured { - [self sdl_disconnectSecondaryTransport]; -} - -- (void)willTransitionFromStateConnectingToStateReconnecting { - [self sdl_disconnectSecondaryTransport]; -} - -- (void)willTransitionFromStateConnectingToStateStopped { - [self sdl_disconnectSecondaryTransport]; -} - - (void)didEnterStateRegistered { + SDLLogD(@"Secondary transport is registered"); [self sdl_handleTransportUpdateWithPrimaryAvailable:YES secondaryAvailable:YES]; } - (void)willTransitionFromStateRegisteredToStateConfigured { - // before disconnecting Secondary Transport, stop running services - SDLLogD(@"Stopping services on secondary transport"); - [self sdl_handleTransportUpdateWithPrimaryAvailable:YES secondaryAvailable:NO]; - - [self sdl_disconnectSecondaryTransport]; -} - -- (void)willTransitionFromStateRegisteredToStateReconnecting { - SDLLogD(@"Stopping services on secondary transport"); + SDLLogD(@"Manger is closing transport but is configured to resume the secondary transport. Stopping services on secondary transport"); [self sdl_handleTransportUpdateWithPrimaryAvailable:YES secondaryAvailable:NO]; - - [self sdl_disconnectSecondaryTransport]; -} - -- (void)willTransitionFromStateRegisteredToStateStopped { - // sdl_handleTransportUpdateWithPrimaryAvailable is called in stop method - [self sdl_disconnectSecondaryTransport]; } - (void)didEnterStateReconnecting { + SDLLogD(@"The secondary transport manager will try to reconnect in %.01f seconds", RetryConnectionDelay); __weak typeof(self) weakSelf = self; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(RetryConnectionDelay * NSEC_PER_SEC)), _stateMachineQueue, ^{ if ([weakSelf.stateMachine isCurrentState:SDLSecondaryTransportStateReconnecting]) { - SDLLogD(@"Retry secondary transport after disconnection or registration failure"); + SDLLogD(@"Attempting to reconnect"); [weakSelf.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; } }); } -- (void)sdl_startManager { - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_onAppStateUpdated:) name:UIApplicationDidBecomeActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_onAppStateUpdated:) name:UIApplicationWillResignActiveNotification object:nil]; - - [self.primaryProtocolHandler start]; -} - -- (void)sdl_stopManager { - SDLLogD(@"SDLSecondaryTransportManager stop"); - - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillResignActiveNotification object:nil]; - - [self.primaryProtocolHandler stop]; - - self.streamingServiceTransportMap = [@{@(SDLServiceTypeAudio):@(SDLTransportClassInvalid), - @(SDLServiceTypeVideo):@(SDLTransportClassInvalid)} mutableCopy]; - self.secondaryTransportType = SDLSecondaryTransportTypeDisabled; - self.transportsForAudioService = @[]; - self.transportsForVideoService = @[]; - - self.ipAddress = nil; - self.tcpPort = TCPPortUnspecified; -} - -- (void)sdl_configureManager:(nullable NSArray *)availableSecondaryTransports - availableTransportsForAudio:(nullable NSArray *)availableTransportsForAudio - availableTransportsForVideo:(nullable NSArray *)availableTransportsForVideo { - if (![self.stateMachine isCurrentState:SDLSecondaryTransportStateStarted]) { - SDLLogW(@"SecondaryTransportManager ignores duplicate Start Service ACK frame"); - return; - } - - // default values - self.secondaryTransportType = SDLSecondaryTransportTypeDisabled; - self.transportsForAudioService = @[@(SDLTransportClassPrimary)]; // If SDL Core did not send a transport list for the service, start it on Primary Transport. - self.transportsForVideoService = @[@(SDLTransportClassPrimary)]; - BOOL validConfig = YES; - - if (availableSecondaryTransports.count > 0) { - // current proposal says the list should contain only one element - SDLSecondaryTransportTypeBox *transportType = availableSecondaryTransports[0]; - self.secondaryTransportType = [transportType integerValue]; - } else { - SDLLogW(@"Did not receive secondary transport type from system. Secondary transport is disabled."); - } - - SDLSecondaryTransportType primaryTransportType = [self sdl_getTransportTypeFromProtocol:self.primaryProtocol]; - if (self.secondaryTransportType == primaryTransportType) { - SDLLogW(@"Same transport is specified for both primary and secondary transport. Secondary transport is disabled."); - self.secondaryTransportType = SDLSecondaryTransportTypeDisabled; - validConfig = NO; // let audio and video services start on primary transport - } else if (self.secondaryTransportType == SDLSecondaryTransportTypeIAP) { - SDLLogW(@"Starting IAP as secondary transport, which does not usually happen"); - } - - if (availableTransportsForAudio != nil && validConfig) { - self.transportsForAudioService = availableTransportsForAudio; - } - if (availableTransportsForVideo != nil && validConfig) { - self.transportsForVideoService = availableTransportsForVideo; - } - - // this will trigger audio / video streaming if they are allowed on primary transport - [self sdl_handleTransportUpdateWithPrimaryAvailable:YES secondaryAvailable:NO]; - [self.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; -} +#pragma mark - Starting / Stopping / Restarting services -- (void)sdl_handleTransportEventUpdate { - if ([self.stateMachine isCurrentState:SDLSecondaryTransportStateStarted]) { - // The system sent Transport Event Update frame prior to Start Service ACK. Just keep the information and do nothing here. - SDLLogV(@"Received TCP transport information prior to Start Service ACK"); - return; - } - if (self.secondaryTransportType != SDLSecondaryTransportTypeTCP) { - SDLLogV(@"Received TCP transport information while the transport is not TCP"); - return; - } +- (void)sdl_handleTransportUpdateWithPrimaryAvailable:(BOOL)primaryAvailable secondaryAvailable:(BOOL)secondaryAvailable { + struct TransportProtocolUpdated audioTransportUpdated = [self sdl_updateService:SDLServiceTypeAudio allowedTransports:self.transportsForAudioService primaryAvailable:primaryAvailable secondaryAvailable:secondaryAvailable]; + struct TransportProtocolUpdated videoTransportUpdated = [self sdl_updateService:SDLServiceTypeVideo allowedTransports:self.transportsForVideoService primaryAvailable:primaryAvailable secondaryAvailable:secondaryAvailable]; - if ([self.stateMachine isCurrentState:SDLSecondaryTransportStateConfigured] && [self sdl_isTCPReady]) { - [self.stateMachine transitionToState:SDLSecondaryTransportStateConnecting]; - } else if ([self sdl_isTransportOpened]) { - // Disconnect current transport. If the IP address is available then we will reconnect immediately. - SDLLogD(@"TCP transport information updated, disconnecting current transport"); - [self.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; - } else if ([self.stateMachine isCurrentState:SDLSecondaryTransportStateReconnecting]) { - SDLLogD(@"TCP transport information updated, aborting reconnection timer"); - [self.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; - } -} + if (audioTransportUpdated.newProtocol == audioTransportUpdated.oldProtocol && videoTransportUpdated.newProtocol == videoTransportUpdated.oldProtocol) { return; } -- (BOOL)sdl_isTransportOpened { - return [self.stateMachine isCurrentState:SDLSecondaryTransportStateConnecting] - || [self.stateMachine isCurrentState:SDLSecondaryTransportStateRegistered]; + [self.streamingProtocolDelegate didUpdateFromOldVideoProtocol:videoTransportUpdated.oldProtocol toNewVideoProtocol:videoTransportUpdated.newProtocol fromOldAudioProtocol:audioTransportUpdated.oldProtocol toNewAudioProtocol:audioTransportUpdated.newProtocol]; } - -#pragma mark - Starting / Stopping / Restarting services - -- (void)sdl_handleTransportUpdateWithPrimaryAvailable:(BOOL)primaryAvailable secondaryAvailable:(BOOL)secondaryAvailable { - // update audio service - [self sdl_updateService:SDLServiceTypeAudio - allowedTransports:self.transportsForAudioService - primaryAvailable:primaryAvailable - secondaryAvailable:secondaryAvailable - transportUpdatedBlock:^(SDLProtocol * _Nullable oldProtocol, SDLProtocol * _Nullable newProtocol) { - [self.streamingProtocolDelegate audioServiceProtocolDidUpdateFromOldProtocol:oldProtocol toNewProtocol:newProtocol]; - }]; - - // update video service - [self sdl_updateService:SDLServiceTypeVideo - allowedTransports:self.transportsForVideoService - primaryAvailable:primaryAvailable - secondaryAvailable:secondaryAvailable - transportUpdatedBlock:^(SDLProtocol * _Nullable oldProtocol, SDLProtocol * _Nullable newProtocol) { - [self.streamingProtocolDelegate videoServiceProtocolDidUpdateFromOldProtocol:oldProtocol toNewProtocol:newProtocol]; - }]; -} - -- (void)sdl_updateService:(UInt8)service - allowedTransports:(nonnull NSArray *)transportList - primaryAvailable:(BOOL)primaryTransportAvailable - secondaryAvailable:(BOOL)secondaryTransportAvailable - transportUpdatedBlock:(void (^)(SDLProtocol * _Nullable oldProtocol, SDLProtocol * _Nullable newProtocol))transportUpdatedBlock { +- (struct TransportProtocolUpdated)sdl_updateService:(SDLServiceType)service allowedTransports:(nonnull NSArray *)transportList primaryAvailable:(BOOL)primaryTransportAvailable secondaryAvailable:(BOOL)secondaryTransportAvailable { SDLTransportClass newTransport = SDLTransportClassInvalid; // the list is in preferred order, so take a look from the beginning for (SDLTransportClassBox *transport in transportList) { @@ -436,10 +371,14 @@ - (void)sdl_updateService:(UInt8)service } else if (newTransport != SDLTransportClassInvalid) { SDLLogD(@"Starting service 0x%X on %@ transport", service, [self sdl_getTransportClassName:newTransport]); } - - transportUpdatedBlock([self sdl_getProtocolFromTransportClass:oldTransport], - [self sdl_getProtocolFromTransportClass:newTransport]); + } else { + SDLLogV(@"Transport was not updated"); } + + struct TransportProtocolUpdated transportUpdated; + transportUpdated.oldProtocol = [self sdl_getProtocolFromTransportClass:oldTransport]; + transportUpdated.newProtocol = [self sdl_getProtocolFromTransportClass:newTransport]; + return transportUpdated; } - (nullable SDLProtocol *)sdl_getProtocolFromTransportClass:(SDLTransportClass)transportClass { @@ -461,6 +400,28 @@ - (nullable NSString *)sdl_getTransportClassName:(SDLTransportClass)transportCla #pragma mark - Transport management +#pragma mark Primary transport +- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { + if (startServiceACK.header.serviceType != SDLServiceTypeRPC) { return; } + SDLLogV(@"Received Start Service ACK header of RPC service on primary transport"); + + // Keep header to acquire Session ID + self.primaryRPCHeader = startServiceACK.header; + + SDLControlFramePayloadRPCStartServiceAck *payload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithData:startServiceACK.payload]; + + [self sdl_onStartServiceAckReceived:payload]; +} + +- (void)handleTransportEventUpdateMessage:(SDLProtocolMessage *)transportEventUpdate { + SDLControlFramePayloadTransportEventUpdate *payload = [[SDLControlFramePayloadTransportEventUpdate alloc] initWithData:transportEventUpdate.payload]; + SDLLogV(@"Recieved transport event update on primary transport: %@", payload); + + [self sdl_onTransportEventUpdateReceived:payload]; +} + +#pragma mark Secondary transport + // try establishing secondary transport. Returns NO if failed - (BOOL)sdl_connectSecondaryTransport { if (self.secondaryTransport != nil) { @@ -479,17 +440,24 @@ - (BOOL)sdl_connectSecondaryTransport { } } -- (BOOL)sdl_disconnectSecondaryTransport { +- (void)disconnectSecondaryTransportWithCompletionHandler:(void (^)(void))completionHandler { if (self.secondaryTransport == nil) { - SDLLogW(@"Attempted to disconnect secondary transport, but it's already stopped."); - return NO; + SDLLogW(@"Attempted to disconnect secondary transport but it's already stopped."); + return completionHandler(); } - SDLLogD(@"Disconnect secondary transport"); - [self.secondaryTransport disconnect]; - self.secondaryTransport = nil; + __weak typeof(self) weakSelf = self; + [self.secondaryTransport disconnectWithCompletionHandler:^{ + SDLLogD(@"Disconnecting secondary transport manager"); + + __strong typeof(weakSelf) strongSelf = weakSelf; + strongSelf.secondaryTransport = nil; + strongSelf.secondaryProtocol = nil; + [strongSelf.streamingServiceTransportMap removeAllObjects]; - return YES; + [strongSelf.backgroundTaskManager endBackgroundTask]; + return completionHandler(); + }]; } - (BOOL)sdl_startTCPSecondaryTransport { @@ -503,19 +471,21 @@ - (BOOL)sdl_startTCPSecondaryTransport { SDLTCPTransport *transport = [[SDLTCPTransport alloc] init]; transport.hostName = self.ipAddress; transport.portNumber = [NSString stringWithFormat:@"%d", self.tcpPort]; - SDLProtocol *protocol = [[SDLProtocol alloc] init]; - transport.delegate = protocol; - protocol.transport = transport; - [protocol.protocolDelegateTable addObject:self]; + SDLProtocol *protocol = [[SDLProtocol alloc] initWithTransport:transport encryptionManager:self.primaryProtocol.encryptionLifecycleManager]; + protocol.securityManager = self.primaryProtocol.securityManager; self.secondaryProtocol = protocol; self.secondaryTransport = transport; + @synchronized(self.secondaryProtocol.protocolDelegateTable) { + [self.secondaryProtocol.protocolDelegateTable addObject:self]; + } + // we reuse Session ID acquired from primary transport's protocol // this is for Register Secondary Transport frame - [self.secondaryProtocol storeHeader:self.primaryProtocolHandler.primaryRPCHeader forServiceType:SDLServiceTypeControl]; + [self.secondaryProtocol storeHeader:self.primaryRPCHeader forServiceType:SDLServiceTypeControl]; // this is for video and audio services - [self.secondaryProtocol storeHeader:self.primaryProtocolHandler.primaryRPCHeader forServiceType:SDLServiceTypeRPC]; + [self.secondaryProtocol storeHeader:self.primaryRPCHeader forServiceType:SDLServiceTypeRPC]; [self.secondaryTransport connect]; return YES; @@ -525,19 +495,20 @@ - (BOOL)sdl_startIAPSecondaryTransport { SDLLogD(@"Starting Secondary Transport: iAP"); SDLIAPTransport *transport = [[SDLIAPTransport alloc] init]; - SDLProtocol *protocol = [[SDLProtocol alloc] init]; - transport.delegate = protocol; - protocol.transport = transport; - [protocol.protocolDelegateTable addObject:self]; - + SDLProtocol *protocol = [[SDLProtocol alloc] initWithTransport:transport encryptionManager:self.primaryProtocol.encryptionLifecycleManager]; + protocol.securityManager = self.primaryProtocol.securityManager; self.secondaryProtocol = protocol; self.secondaryTransport = transport; + @synchronized(self.secondaryProtocol.protocolDelegateTable) { + [self.secondaryProtocol.protocolDelegateTable addObject:self]; + } + // we reuse Session ID acquired from primary transport's protocol // this is for Register Secondary Transport frame - [self.secondaryProtocol storeHeader:self.primaryProtocolHandler.primaryRPCHeader forServiceType:SDLServiceTypeControl]; + [self.secondaryProtocol storeHeader:self.primaryRPCHeader forServiceType:SDLServiceTypeControl]; // this is for video and audio services - [self.secondaryProtocol storeHeader:self.primaryProtocolHandler.primaryRPCHeader forServiceType:SDLServiceTypeRPC]; + [self.secondaryProtocol storeHeader:self.primaryRPCHeader forServiceType:SDLServiceTypeRPC]; [self.secondaryTransport connect]; return YES; @@ -557,27 +528,14 @@ - (BOOL)sdl_isTCPReady { return NO; } - if ([self sdl_getAppState] != UIApplicationStateActive) { - SDLLogD(@"App state is not Active, abort starting TCP transport"); + if (self.currentApplicationState != UIApplicationStateActive) { + SDLLogD(@"App state is not Active, TCP transport is not ready"); return NO; } return YES; } -- (UIApplicationState)sdl_getAppState { - if ([NSThread isMainThread]) { - return [UIApplication sharedApplication].applicationState; - } else { - __block UIApplicationState appState; - dispatch_sync(dispatch_get_main_queue(), ^{ - appState = [UIApplication sharedApplication].applicationState; - }); - return appState; - } -} - - #pragma mark - SDLProtocolListener Implementation // called on transport's thread, notifying that the transport is established @@ -594,10 +552,12 @@ - (void)onProtocolOpened { return; } - // if the state is still Connecting, go back to Configured state and retry immediately + // If still in Connecting state, shutdown the transport and try to reconnect if ([strongSelf.stateMachine isCurrentState:SDLSecondaryTransportStateConnecting]) { - SDLLogD(@"Retry secondary transport connection after registration timeout"); - [strongSelf.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; + SDLLogD(@"Shutting down and restarting the secondary transport connection after registration timeout"); + [strongSelf sdl_transportClosed]; + } else { + SDLLogD(@"Could not register the secondary transport with the module. The services will not be started on the secondary transport."); } }); }; @@ -606,14 +566,29 @@ - (void)onProtocolOpened { [self.secondaryProtocol registerSecondaryTransport]; } -// called on transport's thread, notifying that the transport is disconnected +/// Called on the transport's thread, notifying that the transport has errored before a connection was established +/// @param error The error +- (void)onTransportError:(NSError *)error { + SDLLogE(@"The secondary transport errored."); + [self sdl_transportClosed]; +} + +// Called on transport's thread, notifying that the transport is disconnected // (Note: when transport's disconnect method is called, this method will not be called) - (void)onProtocolClosed { - SDLLogD(@"secondary transport disconnected"); + SDLLogE(@"The secondary transport disconnected."); + [self sdl_transportClosed]; +} +/// Try to reconnect the secondary transport if the transport errored during the connection attempt or closed unexpectedly. +- (void)sdl_transportClosed { dispatch_async(self.stateMachineQueue, ^{ if ([self sdl_isTransportOpened]) { + SDLLogV(@"Secondary transport is ready to reconnect. Attempting to reconnect the secondary transport"); + [self.streamingProtocolDelegate transportClosed]; [self.stateMachine transitionToState:SDLSecondaryTransportStateReconnecting]; + } else { + SDLLogD(@"Secondary transport is not ready to reconnect. Will not attempt to reconnect the secondary transport"); } }); } @@ -633,29 +608,152 @@ - (void)handleProtocolRegisterSecondaryTransportNAKMessage:(SDLProtocolMessage * SDLLogW(@"Received Register Secondary Transport NAK frame"); dispatch_async(self.stateMachineQueue, ^{ + if ([self.stateMachine.currentState isEqualToEnum:SDLSecondaryTransportStateRegistered]) { + [self sdl_handleTransportUpdateWithPrimaryAvailable:YES secondaryAvailable:NO]; + } [self.stateMachine transitionToState:SDLSecondaryTransportStateReconnecting]; }); } -#pragma mark - App state handling +/// Called when a Start Service ACK control frame is received on the primary transport. +/// @param payload The payload of Start Service ACK frame received on the primary transport. +- (void)sdl_onStartServiceAckReceived:(SDLControlFramePayloadRPCStartServiceAck *)payload { + NSMutableArray *secondaryTransports = nil; + if (payload.secondaryTransports != nil) { + secondaryTransports = [NSMutableArray array]; + for (NSString *transportString in payload.secondaryTransports) { + SDLSecondaryTransportType transport = [self sdl_convertTransportType:transportString]; + [secondaryTransports addObject:@(transport)]; + } + } + + NSArray *transportsForAudio = [self sdl_convertServiceTransports:payload.audioServiceTransports]; + NSArray *transportsForVideo = [self sdl_convertServiceTransports:payload.videoServiceTransports]; + + SDLLogV(@"Secondary transports: %@, transports for audio: %@, transports for video: %@", secondaryTransports, transportsForAudio, transportsForVideo); + + dispatch_async(_stateMachineQueue, ^{ + [self sdl_configureManager:secondaryTransports availableTransportsForAudio:transportsForAudio availableTransportsForVideo:transportsForVideo]; + }); +} -- (void)sdl_onAppStateUpdated:(NSNotification *)notification { +/// Called when a Transport Event Update control frame is received on the primary transport. +/// @param payload the payload of Transport Event Update frame +- (void)sdl_onTransportEventUpdateReceived:(SDLControlFramePayloadTransportEventUpdate *)payload { dispatch_async(_stateMachineQueue, ^{ - if (notification.name == UIApplicationWillResignActiveNotification) { - if ([self sdl_isTransportOpened] && self.secondaryTransportType == SDLSecondaryTransportTypeTCP) { - SDLLogD(@"Disconnecting TCP transport since the app will go to background"); - [self.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; + BOOL updated = NO; + + if (payload.tcpIpAddress != nil) { + if (![self.ipAddress isEqualToString:payload.tcpIpAddress]) { + self.ipAddress = payload.tcpIpAddress; + updated = YES; + SDLLogD(@"TCP transport IP address updated: %@", self.ipAddress); } - } else if (notification.name == UIApplicationDidBecomeActiveNotification) { - if (([self.stateMachine isCurrentState:SDLSecondaryTransportStateConfigured]) - && self.secondaryTransportType == SDLSecondaryTransportTypeTCP && [self sdl_isTCPReady]) { - SDLLogD(@"Resuming TCP transport since the app becomes foreground"); - [self.stateMachine transitionToState:SDLSecondaryTransportStateConnecting]; + } + if (payload.tcpPort != SDLControlFrameInt32NotFound) { + if (self.tcpPort != payload.tcpPort) { + self.tcpPort = payload.tcpPort; + updated = YES; + SDLLogD(@"TCP transport port number updated: %d", self.tcpPort); } } + + if (updated) { + [self sdl_handleTransportEventUpdate]; + } }); } +- (void)sdl_handleTransportEventUpdate { + if ([self.stateMachine isCurrentState:SDLSecondaryTransportStateStarted]) { + // The system sent Transport Event Update frame prior to Start Service ACK. Just keep the information and do nothing here. + SDLLogV(@"Received TCP transport information prior to Start Service ACK"); + return; + } + if (self.secondaryTransportType != SDLSecondaryTransportTypeTCP) { + SDLLogV(@"Received TCP transport information while the transport is not TCP"); + return; + } + + if ([self.stateMachine isCurrentState:SDLSecondaryTransportStateConfigured] && self.sdl_isTCPReady && self.sdl_isHMILevelNonNone) { + [self.stateMachine transitionToState:SDLSecondaryTransportStateConnecting]; + } else if ([self sdl_isTransportOpened]) { + // Disconnect current transport. If the IP address is available then we will reconnect immediately. + SDLLogD(@"TCP transport information updated, disconnecting current transport"); + [self.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; + } else if ([self.stateMachine isCurrentState:SDLSecondaryTransportStateReconnecting]) { + SDLLogD(@"TCP transport information updated, aborting reconnection timer"); + [self.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; + } +} + +#pragma mark - App state handling + +/// Closes and re-opens the the secondary transport when the app is backgrounded and foregrounded on the device respectively. This is done because sockets can be reclaimed by the system at anytime when the app is not in the foreground. +/// @param notification Notification from the OS that the app's life-cycle state has changed +- (void)sdl_appStateDidBecomeActive:(NSNotification *)notification { + self.currentApplicationState = UIApplicationStateActive; + + __weak typeof(self) weakSelf = self; + dispatch_async(self.stateMachineQueue, ^{ + __strong typeof(self) strongSelf = weakSelf; + SDLLogD(@"App entered the foreground"); + if ([strongSelf.stateMachine isCurrentState:SDLSecondaryTransportStateRegistered]) { + SDLLogD(@"In the registered state; TCP transport has not yet been shutdown. Ending the background task."); + [strongSelf.backgroundTaskManager endBackgroundTask]; + } else if ([strongSelf.stateMachine isCurrentState:SDLSecondaryTransportStateConfigured] + && strongSelf.secondaryTransportType == SDLSecondaryTransportTypeTCP + && [strongSelf sdl_isTCPReady] + && [strongSelf sdl_isHMILevelNonNone]) { + SDLLogD(@"In the configured state; restarting the TCP transport. Ending the background task."); + [strongSelf.backgroundTaskManager endBackgroundTask]; + [strongSelf.stateMachine transitionToState:SDLSecondaryTransportStateConnecting]; + } else { + SDLLogD(@"TCP transport not ready to start, secondary transport state must be in state Configured (currently in state: %@), the SDL app hmi level must be non-NONE (currently in state: %@), and the app must be ready to start a TCP socket (current app state: %ld, current IP address: %@, current port: %d)", strongSelf.stateMachine.currentState, strongSelf.currentHMILevel, self.currentApplicationState, self.ipAddress, self.tcpPort); + } + }); +} + +- (void)sdl_appStateDidBecomeInactive:(NSNotification *)notification { + self.currentApplicationState = UIApplicationStateInactive; + + __weak typeof(self) weakSelf = self; + dispatch_async(self.stateMachineQueue, ^{ + __strong typeof(self) strongSelf = weakSelf; + SDLLogD(@"App will enter the background"); + if ([strongSelf sdl_isTransportOpened] && strongSelf.secondaryTransportType == SDLSecondaryTransportTypeTCP) { + SDLLogD(@"Starting background task to keep TCP transport alive"); + strongSelf.backgroundTaskManager.taskExpiringHandler = [strongSelf sdl_backgroundTaskEndedHandler]; + [strongSelf.backgroundTaskManager startBackgroundTask]; + } else { + SDLLogD(@"TCP transport already disconnected, will not start a background task."); + } + }); +} + +/// Handles a notification that the background task is about to expire. If the app is still backgrounded we must close the TCP socket, which can take a few moments to complete. When this manager transitons to the Configured state, the `SDLStreamingMediaManager` is notified that the secondary transport wants to shutdown via the `streamingProtocolDelegate`. The `SDLStreamingMediaManager` sends an end video service control frame and an end audio service control frame and waits for responses to both requests from the module. Once the module has responded to both end service requests, the `SDLStreamingMediaManager` notifies us that the TCP socket can be shutdown by calling the `disconnectSecondaryTransport` method. Finally, once we know the socket has shutdown, we can end the background task. To ensure that all the shutdown steps are performed, we must delay shutting down the background task, otherwise some of the steps might not complete due to the app being suspended. Improper shutdown can cause trouble when establishing a new streaming session as either the new TCP connection will fail (due to the TCP socket's I/O streams not shutting down) or restarting the video and audio streams can fail (due to Core not receiving the end service requests). On the other hand, we can end the background task immediately if the app has re-entered the foreground or the manager has shutdown as no cleanup needs to be performed. +/// @return A background task ended handler +- (nullable BOOL (^)(void))sdl_backgroundTaskEndedHandler { + __weak typeof(self) weakSelf = self; + return ^{ + __strong typeof(self) strongSelf = weakSelf; + if (strongSelf.currentApplicationState == UIApplicationStateActive || [strongSelf.stateMachine isCurrentState:SDLSecondaryTransportStateStopped]) { + // Return NO as we do not need to perform any cleanup and can end the background task immediately + SDLLogV(@"No cleanup needed since app has been foregrounded."); + return NO; + } else if ([strongSelf.stateMachine isCurrentState:SDLSecondaryTransportStateStopped]) { + // Return NO as we do not need to perform any cleanup and can end the background task immediately + SDLLogV(@"No cleanup needed since manager has been stopped."); + return NO; + } else { + // Return YES as we want to delay ending the background task until shutdown of the secondary transport has finished. Transitoning to the Configured state starts the process of shutting down the streaming services and the TCP socket which can take a few moments to complete. Once the streaming services have shutdown, the `SDLStreamingMediaManager` calls the `disconnectSecondaryTransport` method. The `disconnectSecondaryTransport` takes care of destroying the background task after disconnecting the TCP transport. + SDLLogD(@"Performing cleanup due to the background task expiring: disconnecting the TCP transport."); + [strongSelf.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; + return YES; + } + }; +} + #pragma mark - Utility methods - (SDLSecondaryTransportType)sdl_convertTransportType:(NSString *)transportString { @@ -705,6 +803,37 @@ - (SDLSecondaryTransportType)sdl_getTransportTypeFromProtocol:(SDLProtocol *)pro } } +- (BOOL)sdl_isTransportOpened { + return [self.stateMachine isCurrentState:SDLSecondaryTransportStateConnecting] || [self.stateMachine isCurrentState:SDLSecondaryTransportStateRegistered]; +} + +- (BOOL)sdl_isHMILevelNonNone { + return (self.currentHMILevel != nil && ![self.currentHMILevel isEqualToEnum:SDLHMILevelNone]); +} + +#pragma mark - RPC Notifications + +/// Check and track the HMI status to ensure that the secondary transport only attempts a connection in non-NONE HMI states +/// +/// See: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0214-secondary-transport-optimization.md +/// +/// @param notification The NSNotification containing the OnHMIStatus +- (void)sdl_hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { + if (![notification isNotificationMemberOfClass:[SDLOnHMIStatus class]]) { + return; + } + + SDLOnHMIStatus *hmiStatus = notification.notification; + self.currentHMILevel = hmiStatus.hmiLevel; + + // If the HMI level is non-NONE, and the state machine is currently waiting in the configured state, and _either_ we're using TCP and it's ready _or_ we're using IAP. + if (self.sdl_isHMILevelNonNone + && [self.stateMachine isCurrentState:SDLSecondaryTransportStateConfigured] + && ((self.secondaryTransportType == SDLSecondaryTransportTypeTCP && [self sdl_isTCPReady]) || (self.secondaryTransportType == SDLSecondaryTransportTypeIAP))) { + [self.stateMachine transitionToState:SDLSecondaryTransportStateConnecting]; + } +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportPrimaryProtocolHandler.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportPrimaryProtocolHandler.h deleted file mode 100644 index d3e8510..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportPrimaryProtocolHandler.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// SDLSecondaryTransportPrimaryProtocolHandler.h -// SmartDeviceLink-iOS -// -// Created by Sho Amano on 2018/08/09. -// Copyright © 2018 Xevo Inc. All rights reserved. -// - -#import "SDLProtocolListener.h" - -@class SDLProtocol; -@class SDLSecondaryTransportManager; - -NS_ASSUME_NONNULL_BEGIN - -/** - A class to receive event from primary transport. - */ -@interface SDLSecondaryTransportPrimaryProtocolHandler : NSObject - -/** The header of Start Service ACK frame received on primary transport. */ -@property (copy, nonatomic) SDLProtocolHeader *primaryRPCHeader; - -/** - Create a new primary protocol handler with given SDLSecondaryTransportManager and SDLProtocol instances. - - @param manager instance of SDLSecondaryTransportManager - @param primaryProtocol instance of SDLProtocol for the primary transport - @return A new primary protocol handler - */ -- (instancetype)initWithSecondaryTransportManager:(SDLSecondaryTransportManager *)manager - primaryProtocol:(SDLProtocol *)primaryProtocol; - -/** - * Start the handler. - */ -- (void)start; - -/** - * Stop the handler. - */ -- (void)stop; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportPrimaryProtocolHandler.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportPrimaryProtocolHandler.m deleted file mode 100644 index 066a689..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportPrimaryProtocolHandler.m +++ /dev/null @@ -1,76 +0,0 @@ -// -// SDLSecondaryTransportPrimaryProtocolHandler.m -// SmartDeviceLink -// -// Created by Sho Amano on 2018/08/09. -// Copyright © 2018 Xevo Inc. All rights reserved. -// - -#import - -#import "SDLSecondaryTransportPrimaryProtocolHandler.h" - -#import "SDLControlFramePayloadRPCStartServiceAck.h" -#import "SDLControlFramePayloadTransportEventUpdate.h" -#import "SDLLogMacros.h" -#import "SDLProtocol.h" -#import "SDLProtocolMessage.h" -#import "SDLSecondaryTransportManager.h" - -@interface SDLSecondaryTransportPrimaryProtocolHandler () -@property (weak, nonatomic) SDLSecondaryTransportManager *secondaryTransportManager; -@property (weak, nonatomic) SDLProtocol *primaryProtocol; -@end - -@implementation SDLSecondaryTransportPrimaryProtocolHandler - -- (instancetype)initWithSecondaryTransportManager:(SDLSecondaryTransportManager *)manager - primaryProtocol:(SDLProtocol *)primaryProtocol { - self = [super init]; - if (!self) { - return nil; - } - - _secondaryTransportManager = manager; - _primaryProtocol = primaryProtocol; - - return self; -} - -- (void)start { - @synchronized(self.primaryProtocol.protocolDelegateTable) { - [self.primaryProtocol.protocolDelegateTable addObject:self]; - } -} - -- (void)stop { - @synchronized(self.primaryProtocol.protocolDelegateTable) { - [self.primaryProtocol.protocolDelegateTable removeObject:self]; - } -} - -// called from protocol's _reeiveQueue of Primary Transport -- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { - if (startServiceACK.header.serviceType != SDLServiceTypeRPC) { - return; - } - - SDLLogV(@"Received Start Service ACK header of RPC service on primary transport"); - - // keep header to acquire Session ID - self.primaryRPCHeader = startServiceACK.header; - - SDLControlFramePayloadRPCStartServiceAck *payload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithData:startServiceACK.payload]; - - [self.secondaryTransportManager onStartServiceAckReceived:payload]; -} - -// called from protocol's _reeiveQueue of Primary Transport -- (void)handleTransportEventUpdateMessage:(SDLProtocolMessage *)transportEventUpdate { - SDLControlFramePayloadTransportEventUpdate *payload = [[SDLControlFramePayloadTransportEventUpdate alloc] initWithData:transportEventUpdate.payload]; - SDLLogV(@"Transport Config Update: %@", payload); - - [self.secondaryTransportManager onTransportEventUpdateReceived:payload]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticData.m index e428e6f..f684b41 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticData.m @@ -7,7 +7,8 @@ // #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSendHapticData.h" #import "SDLHapticRect.h" @@ -15,11 +16,14 @@ @implementation SDLSendHapticData +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSendHapticData]) { + if (self = [super initWithName:SDLRPCFunctionNameSendHapticData]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithHapticRectData:(NSArray *)hapticRectData { self = [self init]; @@ -33,11 +37,11 @@ - (instancetype)initWithHapticRectData:(NSArray *)hapticRectDat } - (void)setHapticRectData:(nullable NSArray *)hapticRectData { - [parameters sdl_setObject:hapticRectData forName:SDLNameHapticRectData]; + [self.parameters sdl_setObject:hapticRectData forName:SDLRPCParameterNameHapticRectData]; } - (nullable NSArray *)hapticRectData { - return [parameters sdl_objectsForName:SDLNameHapticRectData ofClass:SDLHapticRect.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameHapticRectData ofClass:SDLHapticRect.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticDataResponse.m index b1fa036..dd7231c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticDataResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticDataResponse.m @@ -7,18 +7,22 @@ // Copyright © 2017 smartdevicelink. All rights reserved. // -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSendHapticDataResponse.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSendHapticDataResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSendHapticDataResponse]) { + if (self = [super initWithName:SDLRPCFunctionNameSendHapticData]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.h index c2d0076..ab0d747 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.h @@ -13,23 +13,68 @@ NS_ASSUME_NONNULL_BEGIN +/// SendLocation is used to send a location to the navigation system for navigation +/// +/// @since RPC 3.0 @interface SDLSendLocation : SDLRPCRequest +/** + Create a `SendLocation` request with an address object, without Lat/Long coordinates. + + @param address The address information to be passed to the nav system for determining the route + @param addressLines The user-facing address + @param locationName The user-facing name of the location + @param locationDescription The user-facing description of the location + @param phoneNumber The phone number for the location; the user could use this to call the location + @param image A user-facing image for the location + @param deliveryMode How the location should be sent to the nav system + @param timeStamp The estimated arrival time for the location (this will also likely be calculated by the nav system later, and may be different than your estimate). This is used to show the user approximately how long it would take to navigate here + @return A `SendLocation` object + */ +- (instancetype)initWithAddress:(SDLOasisAddress *)address addressLines:(nullable NSArray *)addressLines locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp; + +/** + Create a `SendLocation` request with Lat/Long coordinate, not an address object + + @param longitude The longitudinal coordinate of the location + @param latitude The latitudinal coordinate of the location + @param locationName The user-facing name of the location + @param locationDescription The user-facing description of the location + @param address The user-facing address + @param phoneNumber The phone number for the location; the user could use this to call the location + @param image A user-facing image for the location + @return A `SendLocation` object + */ - (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription address:(nullable NSArray *)address phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image; +/** + Create a `SendLocation` request with Lat/Long coordinate and an address object and let the nav system decide how to parse it + + @param longitude The longitudinal coordinate of the location + @param latitude The latitudinal coordinate of the location + @param locationName The user-facing name of the location + @param locationDescription The user-facing description of the location + @param displayAddressLines The user-facing address + @param phoneNumber The phone number for the location; the user could use this to call the location + @param image A user-facing image for the location + @param deliveryMode How the location should be sent to the nav system + @param timeStamp The estimated arrival time for the location (this will also likely be calculated by the nav system later, and may be different than your estimate). This is used to show the user approximately how long it would take to navigate here + @param address The address information to be passed to the nav system for determining the route + @return A `SendLocation` object + */ - (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription displayAddressLines:(nullable NSArray *)displayAddressLines phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp address:(nullable SDLOasisAddress *)address; /** - * The longitudinal coordinate of the location. + * The longitudinal coordinate of the location. Either the latitude / longitude OR the `address` must be provided. * - * Float, Required, -180.0 - 180.0 + * Float, Optional, -180.0 - 180.0 */ @property (nullable, copy, nonatomic) NSNumber *longitudeDegrees; /** - * The latitudinal coordinate of the location. + * The latitudinal coordinate of the location. Either the latitude / longitude OR the `address` must be provided. * - * Float, Required, -90.0 - 90.0 + * Float, Optional, -90.0 - 90.0 */ @property (nullable, copy, nonatomic) NSNumber *latitudeDegrees; @@ -48,7 +93,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nullable, copy, nonatomic) NSString *locationDescription; /** - * Location address for display purposes only + * Location address for display purposes only. * * Contains String, Optional, Max Array Length = 4, Max String Length = 500 */ @@ -83,7 +128,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nullable, strong, nonatomic) SDLDateTime *timeStamp; /** - * Address to be used for setting destination + * Address to be used for setting destination. Either the latitude / longitude OR the `address` must be provided. * * Optional */ diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.m index 115c30a..a63db0c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.m @@ -5,20 +5,40 @@ #import "SDLSendLocation.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSendLocation +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - self = [super initWithName:SDLNameSendLocation]; + self = [super initWithName:SDLRPCFunctionNameSendLocation]; if (!self) { return nil; } return self; } +#pragma clang diagnostic pop + +- (instancetype)initWithAddress:(SDLOasisAddress *)address addressLines:(nullable NSArray *)addressLines locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp { + self = [self init]; + if (!self) { return nil; } + + self.address = address; + self.addressLines = addressLines; + self.locationName = locationName; + self.locationDescription = locationDescription; + self.phoneNumber = phoneNumber; + self.locationImage = image; + self.deliveryMode = deliveryMode; + self.timeStamp = timeStamp; + + return self; +} - (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription address:(nullable NSArray *)address phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image { return [self initWithLongitude:longitude latitude:latitude locationName:locationName locationDescription:locationDescription displayAddressLines:address phoneNumber:phoneNumber image:image deliveryMode:nil timeStamp:nil address:nil]; @@ -45,83 +65,83 @@ - (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude lo } - (void)setLongitudeDegrees:(nullable NSNumber *)longitudeDegrees { - [parameters sdl_setObject:longitudeDegrees forName:SDLNameLongitudeDegrees]; + [self.parameters sdl_setObject:longitudeDegrees forName:SDLRPCParameterNameLongitudeDegrees]; } - (nullable NSNumber *)longitudeDegrees { - return [parameters sdl_objectForName:SDLNameLongitudeDegrees]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameLongitudeDegrees ofClass:NSNumber.class error:nil]; } - (void)setLatitudeDegrees:(nullable NSNumber *)latitudeDegrees { - [parameters sdl_setObject:latitudeDegrees forName:SDLNameLatitudeDegrees]; + [self.parameters sdl_setObject:latitudeDegrees forName:SDLRPCParameterNameLatitudeDegrees]; } - (nullable NSNumber *)latitudeDegrees { - return [parameters sdl_objectForName:SDLNameLatitudeDegrees]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameLatitudeDegrees ofClass:NSNumber.class error:nil]; } - (void)setLocationName:(nullable NSString *)locationName { - [parameters sdl_setObject:locationName forName:SDLNameLocationName]; + [self.parameters sdl_setObject:locationName forName:SDLRPCParameterNameLocationName]; } - (nullable NSString *)locationName { - return [parameters sdl_objectForName:SDLNameLocationName]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameLocationName ofClass:NSString.class error:nil]; } - (void)setAddressLines:(nullable NSArray *)addressLines { - [parameters sdl_setObject:addressLines forName:SDLNameAddressLines]; + [self.parameters sdl_setObject:addressLines forName:SDLRPCParameterNameAddressLines]; } - (nullable NSString *)locationDescription { - return [parameters sdl_objectForName:SDLNameLocationDescription]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameLocationDescription ofClass:NSString.class error:nil]; } - (void)setLocationDescription:(nullable NSString *)locationDescription { - [parameters sdl_setObject:locationDescription forName:SDLNameLocationDescription]; + [self.parameters sdl_setObject:locationDescription forName:SDLRPCParameterNameLocationDescription]; } - (nullable NSArray *)addressLines { - return [parameters sdl_objectForName:SDLNameAddressLines]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameAddressLines ofClass:NSString.class error:nil]; } - (void)setPhoneNumber:(nullable NSString *)phoneNumber { - [parameters sdl_setObject:phoneNumber forName:SDLNamePhoneNumber]; + [self.parameters sdl_setObject:phoneNumber forName:SDLRPCParameterNamePhoneNumber]; } - (nullable NSString *)phoneNumber { - return [parameters sdl_objectForName:SDLNamePhoneNumber]; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePhoneNumber ofClass:NSString.class error:nil]; } - (void)setLocationImage:(nullable SDLImage *)locationImage { - [parameters sdl_setObject:locationImage forName:SDLNameLocationImage]; + [self.parameters sdl_setObject:locationImage forName:SDLRPCParameterNameLocationImage]; } - (nullable SDLImage *)locationImage { - return [parameters sdl_objectForName:SDLNameLocationImage ofClass:SDLImage.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameLocationImage ofClass:SDLImage.class error:nil]; } - (void)setDeliveryMode:(nullable SDLDeliveryMode)deliveryMode { - [parameters sdl_setObject:deliveryMode forName:SDLNameDeliveryMode]; + [self.parameters sdl_setObject:deliveryMode forName:SDLRPCParameterNameDeliveryMode]; } - (nullable SDLDeliveryMode)deliveryMode { - return [parameters sdl_objectForName:SDLNameDeliveryMode]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameDeliveryMode error:nil]; } - (void)setTimeStamp:(nullable SDLDateTime *)timeStamp { - [parameters sdl_setObject:timeStamp forName:SDLNameLocationTimeStamp]; + [self.parameters sdl_setObject:timeStamp forName:SDLRPCParameterNameTimeStamp]; } - (nullable SDLDateTime *)timeStamp { - return [parameters sdl_objectForName:SDLNameLocationTimeStamp ofClass:SDLDateTime.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeStamp ofClass:SDLDateTime.class error:nil]; } - (void)setAddress:(nullable SDLOasisAddress *)address { - [parameters sdl_setObject:address forName:SDLNameAddress]; + [self.parameters sdl_setObject:address forName:SDLRPCParameterNameAddress]; } - (nullable SDLOasisAddress *)address { - return [parameters sdl_objectForName:SDLNameAddress ofClass:SDLOasisAddress.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAddress ofClass:SDLOasisAddress.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocationResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocationResponse.m index 3b03a5a..a940489 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocationResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocationResponse.m @@ -5,20 +5,24 @@ #import "SDLSendLocationResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSendLocationResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - self = [super initWithName:SDLNameSendLocation]; + self = [super initWithName:SDLRPCFunctionNameSendLocation]; if (!self) { return nil; } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.h index ee2a499..1d13dfb 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.h @@ -15,8 +15,20 @@ NS_ASSUME_NONNULL_BEGIN +/** + * Sends an array RPCs of type `Request` with the first RPC to be sent at index 0. Sending is sequential, meaning that once an RPC is sent to Core, the operation waits until a response is received from Core before the next request is sent. Requests must get a response from Core before the operation is considered finished. + */ @interface SDLSequentialRPCRequestOperation : SDLAsynchronousOperation +/** + * Convenience init for sending an array of requests sequentially. + * + * @param connectionManager The connection manager used to send the RPCs + * @param requests The requests to be sent to Core + * @param progressHandler Called as each request gets a response from Core + * @param completionHandler Called when all requests have a response from Core + * @return A SDLSequentialRPCRequestOperation object + */ - (instancetype)initWithConnectionManager:(id)connectionManager requests:(NSArray *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.m index 142812d..96c44b8 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.m @@ -54,6 +54,7 @@ - (instancetype)initWithConnectionManager:(id)connecti - (void)start { [super start]; + if (self.isCancelled) { return; } [self sdl_sendNextRequest]; } @@ -81,7 +82,7 @@ - (void)sdl_sendNextRequest { // Send the next request SDLRPCRequest *request = self.requests[self.currentRequestIndex]; - [self.connectionManager sendConnectionRequest:request withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + [self.connectionManager sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { self.requestsComplete++; // If this request failed and no request has yet failed, set our internal request failed to YES diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceEncryptionDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceEncryptionDelegate.h new file mode 100644 index 0000000..dd45696 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceEncryptionDelegate.h @@ -0,0 +1,29 @@ +// +// SDLServiceEncryptionDelegate.h +// SmartDeviceLink +// +// Created by Tanda, Satbir (S.S.) on 9/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLProtocolConstants.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Delegate for the encryption service. +@protocol SDLServiceEncryptionDelegate + +/** + * Called when the encryption service has been. + * + * @param type will return whichever type had an encryption update (for now probably only SDLServiceTypeRPC), but it could also apply to video / audio in the future. + * @param encrypted return true if the the encryption service was setup successfully, will return false if the service is presently not encrypted. + * @param error will return any error that happens or nil if there is no error. + */ +- (void)serviceEncryptionUpdatedOnService:(SDLServiceType)type encrypted:(BOOL)encrypted error:(NSError *__nullable)error NS_SWIFT_NAME(serviceEncryptionUpdated(serviceType:isEncrypted:error:)); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.h new file mode 100644 index 0000000..09a4c98 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.h @@ -0,0 +1,39 @@ +// +// SDLServiceUpdateReason.h +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * Enumeration listing possible service update reasons. + */ +typedef SDLEnum SDLServiceUpdateReason SDL_SWIFT_ENUM; + +/** + * The service has just been published with the module and once activated to the primary service of its type, it will be ready for possible consumption. + */ +extern SDLServiceUpdateReason const SDLServiceUpdatePublished; + +/** + * The service has just been unpublished with the module and is no longer accessible. + */ +extern SDLServiceUpdateReason const SDLServiceUpdateRemoved; + +/** + * The service is activated as the primary service of this type. All requests dealing with this service type will be handled by this service. + */ +extern SDLServiceUpdateReason const SDLServiceUpdateActivated; + +/** + * The service has been deactivated as the primary service of its type. + */ +extern SDLServiceUpdateReason const SDLServiceUpdateDeactivated; + +/** + * The service has updated its manifest. This could imply updated capabilities. + */ +extern SDLServiceUpdateReason const SDLServiceUpdateManifestUpdate; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.m new file mode 100644 index 0000000..2a2fe9c --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.m @@ -0,0 +1,15 @@ +// +// SDLServiceUpdateReason.m +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLServiceUpdateReason.h" + +SDLServiceUpdateReason const SDLServiceUpdatePublished = @"PUBLISHED"; +SDLServiceUpdateReason const SDLServiceUpdateRemoved = @"REMOVED"; +SDLServiceUpdateReason const SDLServiceUpdateActivated = @"ACTIVATED"; +SDLServiceUpdateReason const SDLServiceUpdateDeactivated = @"DEACTIVATED"; +SDLServiceUpdateReason const SDLServiceUpdateManifestUpdate = @"MANIFEST_UPDATE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.h index 5a8c256..53f3531 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.h @@ -16,9 +16,12 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLSetAppIcon : SDLRPCRequest +/// Convenience init to set an image icon from a file name. The file must already be uploaded to the head unit. +/// +/// @param fileName A file reference name +/// @return An SDLSetAppIcon object - (instancetype)initWithFileName:(NSString *)fileName; - /** * A file reference name * @discussion A String value representing a file reference name diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.m index 8287d18..6d7de66 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.m @@ -5,15 +5,19 @@ #import "SDLSetAppIcon.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" @implementation SDLSetAppIcon +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSetAppIcon]) { + if (self = [super initWithName:SDLRPCFunctionNameSetAppIcon]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithFileName:(NSString *)fileName { self = [self init]; @@ -27,11 +31,12 @@ - (instancetype)initWithFileName:(NSString *)fileName { } - (void)setSyncFileName:(NSString *)syncFileName { - [parameters sdl_setObject:syncFileName forName:SDLNameSyncFileName]; + [self.parameters sdl_setObject:syncFileName forName:SDLRPCParameterNameSyncFileName]; } - (NSString *)syncFileName { - return [parameters sdl_objectForName:SDLNameSyncFileName]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncFileName ofClass:NSString.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIconResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIconResponse.m index 2a0b727..38151c6 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIconResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIconResponse.m @@ -5,17 +5,21 @@ #import "SDLSetAppIconResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSetAppIconResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSetAppIcon]) { + if (self = [super initWithName:SDLRPCFunctionNameSetAppIcon]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.h new file mode 100644 index 0000000..eadcded --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.h @@ -0,0 +1,38 @@ +// +// SDLSetCloudAppProperties.h +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +@class SDLCloudAppProperties; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * RPC used to enable/disable a cloud application and set authentication data + */ +@interface SDLSetCloudAppProperties : SDLRPCRequest + +/** + * Convenience init. + * + * @param properties The new cloud application properties + * @return A SDLSetCloudAppProperties object + */ +- (instancetype)initWithProperties:(SDLCloudAppProperties *)properties; + +/** + * The new cloud application properties. + * + * SDLCloudAppProperties, Required + */ +@property (strong, nonatomic) SDLCloudAppProperties *properties; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.m new file mode 100644 index 0000000..ca2f657 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.m @@ -0,0 +1,52 @@ +// +// SDLSetCloudAppProperties.m +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLSetCloudAppProperties.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLCloudAppProperties.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLSetCloudAppProperties + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameSetCloudAppProperties]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithProperties:(SDLCloudAppProperties *)properties { + self = [self init]; + if (!self) { + return nil; + } + + self.properties = properties; + + return self; +} + +- (void)setProperties:(SDLCloudAppProperties *)properties { + [self.parameters sdl_setObject:properties forName:SDLRPCParameterNameProperties]; +} + +- (SDLCloudAppProperties *)properties { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameProperties ofClass:SDLCloudAppProperties.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h new file mode 100644 index 0000000..8e4d397 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h @@ -0,0 +1,20 @@ +// +// SDLSetCloudAppPropertiesResponse.h +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * The response to SetCloudAppProperties + */ +@interface SDLSetCloudAppPropertiesResponse : SDLRPCResponse + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m new file mode 100644 index 0000000..4064b19 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m @@ -0,0 +1,28 @@ +// +// SDLSetCloudAppPropertiesResponse.m +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLSetCloudAppPropertiesResponse.h" + +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLSetCloudAppPropertiesResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameSetCloudAppProperties]) { + } + return self; +} +#pragma clang diagnostic pop + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.h index e19c259..e1c31d1 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.h @@ -19,13 +19,26 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLSetDisplayLayout : SDLRPCRequest +/// Convenience init to set a display layout +/// +/// @param predefinedLayout A template layout an app uses to display information +/// @return An SDLSetDisplayLayout object - (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout; +/// Convenience init to set a display layout +/// +/// @param displayLayout A display layout name +/// @return An SDLSetDisplayLayout object - (instancetype)initWithLayout:(NSString *)displayLayout; +/// Convenience init to set a display layout +/// +/// @param predefinedLayout A display layout. Predefined or dynamically created screen layout +/// @param dayColorScheme The color scheme to be used on a head unit using a "light" or "day" color scheme +/// @param nightColorScheme The color scheme to be used on a head unit using a "dark" or "night" color scheme +/// @return An SDLSetDisplayLayout object - (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout dayColorScheme:(SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(SDLTemplateColorScheme *)nightColorScheme; - /** * A display layout. Predefined or dynamically created screen layout. * Currently only predefined screen layouts are defined. Predefined layouts diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.m index ac3736b..b26c7a9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.m @@ -5,18 +5,22 @@ #import "SDLSetDisplayLayout.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTemplateColorScheme.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSetDisplayLayout +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSetDisplayLayout]) { + if (self = [super initWithName:SDLRPCFunctionNameSetDisplayLayout]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout { return [self initWithLayout:predefinedLayout]; @@ -44,27 +48,28 @@ - (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout d } - (void)setDisplayLayout:(NSString *)displayLayout { - [parameters sdl_setObject:displayLayout forName:SDLNameDisplayLayout]; + [self.parameters sdl_setObject:displayLayout forName:SDLRPCParameterNameDisplayLayout]; } - (NSString *)displayLayout { - return [parameters sdl_objectForName:SDLNameDisplayLayout]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDisplayLayout ofClass:NSString.class error:&error]; } - (void)setDayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme { - [parameters sdl_setObject:dayColorScheme forName:SDLNameDayColorScheme]; + [self.parameters sdl_setObject:dayColorScheme forName:SDLRPCParameterNameDayColorScheme]; } - (nullable SDLTemplateColorScheme *)dayColorScheme { - return [parameters sdl_objectForName:SDLNameDayColorScheme ofClass:[SDLTemplateColorScheme class]]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDayColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; } - (void)setNightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme { - [parameters sdl_setObject:nightColorScheme forName:SDLNameNightColorScheme]; + [self.parameters sdl_setObject:nightColorScheme forName:SDLRPCParameterNameNightColorScheme]; } - (nullable SDLTemplateColorScheme *)nightColorScheme { - return [parameters sdl_objectForName:SDLNameNightColorScheme ofClass:[SDLTemplateColorScheme class]]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameNightColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayoutResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayoutResponse.m index c370866..552a950 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayoutResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayoutResponse.m @@ -7,7 +7,8 @@ #import "NSMutableDictionary+Store.h" #import "SDLButtonCapabilities.h" #import "SDLDisplayCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLPresetBankCapabilities.h" #import "SDLSoftButtonCapabilities.h" @@ -15,42 +16,45 @@ @implementation SDLSetDisplayLayoutResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSetDisplayLayout]) { + if (self = [super initWithName:SDLRPCFunctionNameSetDisplayLayout]) { } return self; } +#pragma clang diagnostic pop - (void)setDisplayCapabilities:(nullable SDLDisplayCapabilities *)displayCapabilities { - [parameters sdl_setObject:displayCapabilities forName:SDLNameDisplayCapabilities]; + [self.parameters sdl_setObject:displayCapabilities forName:SDLRPCParameterNameDisplayCapabilities]; } - (nullable SDLDisplayCapabilities *)displayCapabilities { - return [parameters sdl_objectForName:SDLNameDisplayCapabilities ofClass:SDLDisplayCapabilities.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDisplayCapabilities ofClass:SDLDisplayCapabilities.class error:nil]; } - (void)setButtonCapabilities:(nullable NSArray *)buttonCapabilities { - [parameters sdl_setObject:buttonCapabilities forName:SDLNameButtonCapabilities]; + [self.parameters sdl_setObject:buttonCapabilities forName:SDLRPCParameterNameButtonCapabilities]; } - (nullable NSArray *)buttonCapabilities { - return [parameters sdl_objectsForName:SDLNameButtonCapabilities ofClass:SDLButtonCapabilities.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameButtonCapabilities ofClass:SDLButtonCapabilities.class error:nil]; } - (void)setSoftButtonCapabilities:(nullable NSArray *)softButtonCapabilities { - [parameters sdl_setObject:softButtonCapabilities forName:SDLNameSoftButtonCapabilities]; + [self.parameters sdl_setObject:softButtonCapabilities forName:SDLRPCParameterNameSoftButtonCapabilities]; } - (nullable NSArray *)softButtonCapabilities { - return [parameters sdl_objectsForName:SDLNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class error:nil]; } - (void)setPresetBankCapabilities:(nullable SDLPresetBankCapabilities *)presetBankCapabilities { - [parameters sdl_setObject:presetBankCapabilities forName:SDLNamePresetBankCapabilities]; + [self.parameters sdl_setObject:presetBankCapabilities forName:SDLRPCParameterNamePresetBankCapabilities]; } - (nullable SDLPresetBankCapabilities *)presetBankCapabilities { - return [parameters sdl_objectForName:SDLNamePresetBankCapabilities ofClass:SDLPresetBankCapabilities.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePresetBankCapabilities ofClass:SDLPresetBankCapabilities.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.h index 7b3370d..ef1746a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.h @@ -3,10 +3,13 @@ #import "SDLRPCRequest.h" +#import "SDLMenuLayout.h" + @class SDLImage; @class SDLKeyboardProperties; @class SDLTTSChunk; @class SDLVRHelpItem; +@class SDLSeatLocation; NS_ASSUME_NONNULL_BEGIN @@ -26,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN @param timeoutText A string that will be turned into TTS chunks for the timeout prompt @return The SetGlobalProperties RPC */ -- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText; +- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText __deprecated_msg("Use initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:menuLayout: instead"); /** Initialize SetGlobalProperties with help text, timeout text, help title, and help items @@ -37,7 +40,21 @@ NS_ASSUME_NONNULL_BEGIN @param vrHelp The items of the help interface prompt @return The SetGlobalProperties RPC */ -- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp; +- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp __deprecated_msg("Use initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:menuLayout: instead"); + +/** + Initialize SetGlobalProperties with all possible items + + @param helpText A string that will be turned into TTS chunks for the help prompt + @param timeoutText A string that will be turned into TTS chunks for the timeout prompt + @param vrHelpTitle The title of the help interface prompt + @param vrHelp The items of the help interface prompt + @param menuTitle The title of the menu button + @param menuIcon The icon on the menu button + @param keyboardProperties The properties of a keyboard prompt + @return The SetGlobalProperties RPC + */ +- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp menuTitle:(nullable NSString *)menuTitle menuIcon:(nullable SDLImage *)menuIcon keyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties __deprecated_msg("Use initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:menuLayout: instead"); /** Initialize SetGlobalProperties with all possible items @@ -49,9 +66,10 @@ NS_ASSUME_NONNULL_BEGIN @param menuTitle The title of the menu button @param menuIcon The icon on the menu button @param keyboardProperties The properties of a keyboard prompt + @param menuLayout The layout of the top-level main menu @return The SetGlobalProperties RPC */ -- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp menuTitle:(nullable NSString *)menuTitle menuIcon:(nullable SDLImage *)menuIcon keyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties; +- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp menuTitle:(nullable NSString *)menuTitle menuIcon:(nullable SDLImage *)menuIcon keyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties menuLayout:(nullable SDLMenuLayout)menuLayout; /** Help prompt for when the user asks for help with an interface prompt @@ -104,6 +122,18 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) SDLKeyboardProperties *keyboardProperties; +/** + Location of the user's seat. Default is driver's seat location if it is not set yet + + Optional + */ +@property (strong, nonatomic, nullable) SDLSeatLocation *userLocation; + +/** + The main menu layout. If this is sent while a menu is already on-screen, the head unit will change the display to the new layout type. See available menu layouts on DisplayCapabilities.menuLayoutsAvailable. Defaults to the head unit default. + */ +@property (strong, nonatomic, nullable) SDLMenuLayout menuLayout; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.m index d7ae65c..b502fcf 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.m @@ -7,29 +7,38 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLKeyboardProperties.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTTSChunk.h" #import "SDLVrHelpItem.h" +#import "SDLSeatLocation.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSetGlobalProperties +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSetGlobalProperties]) { + if (self = [super initWithName:SDLRPCFunctionNameSetGlobalProperties]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText { - return [self initWithHelpText:helpText timeoutText:timeoutText vrHelpTitle:nil vrHelp:nil]; + return [self initWithHelpText:helpText timeoutText:timeoutText vrHelpTitle:nil vrHelp:nil menuTitle:nil menuIcon:nil keyboardProperties:nil menuLayout:nil]; } - (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp { - return [self initWithHelpText:helpText timeoutText:timeoutText vrHelpTitle:vrHelpTitle vrHelp:vrHelp menuTitle:nil menuIcon:nil keyboardProperties:nil]; + return [self initWithHelpText:helpText timeoutText:timeoutText vrHelpTitle:vrHelpTitle vrHelp:vrHelp menuTitle:nil menuIcon:nil keyboardProperties:nil menuLayout:nil]; } - (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp menuTitle:(nullable NSString *)menuTitle menuIcon:(nullable SDLImage *)menuIcon keyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties { + return [self initWithHelpText:helpText timeoutText:timeoutText vrHelpTitle:vrHelpTitle vrHelp:vrHelp menuTitle:menuTitle menuIcon:menuIcon keyboardProperties:keyboardProperties menuLayout:nil]; +} + +- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp menuTitle:(nullable NSString *)menuTitle menuIcon:(nullable SDLImage *)menuIcon keyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties menuLayout:(nullable SDLMenuLayout)menuLayout { self = [self init]; if (!self) { return nil; @@ -42,64 +51,81 @@ - (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(null self.menuTitle = menuTitle; self.menuIcon = menuIcon; self.keyboardProperties = keyboardProperties; + self.menuLayout = menuLayout; return self; } - (void)setHelpPrompt:(nullable NSArray *)helpPrompt { - [parameters sdl_setObject:helpPrompt forName:SDLNameHelpPrompt]; + [self.parameters sdl_setObject:helpPrompt forName:SDLRPCParameterNameHelpPrompt]; } - (nullable NSArray *)helpPrompt { - return [parameters sdl_objectsForName:SDLNameHelpPrompt ofClass:SDLTTSChunk.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameHelpPrompt ofClass:SDLTTSChunk.class error:nil]; } - (void)setTimeoutPrompt:(nullable NSArray *)timeoutPrompt { - [parameters sdl_setObject:timeoutPrompt forName:SDLNameTimeoutPrompt]; + [self.parameters sdl_setObject:timeoutPrompt forName:SDLRPCParameterNameTimeoutPrompt]; } - (nullable NSArray *)timeoutPrompt { - return [parameters sdl_objectsForName:SDLNameTimeoutPrompt ofClass:SDLTTSChunk.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameTimeoutPrompt ofClass:SDLTTSChunk.class error:nil]; } - (void)setVrHelpTitle:(nullable NSString *)vrHelpTitle { - [parameters sdl_setObject:vrHelpTitle forName:SDLNameVRHelpTitle]; + [self.parameters sdl_setObject:vrHelpTitle forName:SDLRPCParameterNameVRHelpTitle]; } - (nullable NSString *)vrHelpTitle { - return [parameters sdl_objectForName:SDLNameVRHelpTitle]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameVRHelpTitle ofClass:NSString.class error:nil]; } - (void)setVrHelp:(nullable NSArray *)vrHelp { - [parameters sdl_setObject:vrHelp forName:SDLNameVRHelp]; + [self.parameters sdl_setObject:vrHelp forName:SDLRPCParameterNameVRHelp]; } - (nullable NSArray *)vrHelp { - return [parameters sdl_objectsForName:SDLNameVRHelp ofClass:SDLVRHelpItem.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameVRHelp ofClass:SDLVRHelpItem.class error:nil]; } - (void)setMenuTitle:(nullable NSString *)menuTitle { - [parameters sdl_setObject:menuTitle forName:SDLNameMenuTitle]; + [self.parameters sdl_setObject:menuTitle forName:SDLRPCParameterNameMenuTitle]; } - (nullable NSString *)menuTitle { - return [parameters sdl_objectForName:SDLNameMenuTitle]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuTitle ofClass:NSString.class error:nil]; } - (void)setMenuIcon:(nullable SDLImage *)menuIcon { - [parameters sdl_setObject:menuIcon forName:SDLNameMenuIcon]; + [self.parameters sdl_setObject:menuIcon forName:SDLRPCParameterNameMenuIcon]; } - (nullable SDLImage *)menuIcon { - return [parameters sdl_objectForName:SDLNameMenuIcon ofClass:SDLImage.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuIcon ofClass:SDLImage.class error:nil]; } - (void)setKeyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties { - [parameters sdl_setObject:keyboardProperties forName:SDLNameKeyboardProperties]; + [self.parameters sdl_setObject:keyboardProperties forName:SDLRPCParameterNameKeyboardProperties]; } - (nullable SDLKeyboardProperties *)keyboardProperties { - return [parameters sdl_objectForName:SDLNameKeyboardProperties ofClass:SDLKeyboardProperties.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameKeyboardProperties ofClass:SDLKeyboardProperties.class error:nil]; +} + +- (void)setUserLocation:(nullable SDLSeatLocation *)userLocation { + [self.parameters sdl_setObject:userLocation forName:SDLRPCParameterNameUserLocation]; +} + +- (nullable SDLSeatLocation *)userLocation { + return [self.parameters sdl_objectForName:SDLRPCParameterNameUserLocation ofClass:SDLSeatLocation.class error:nil]; +} + +- (void)setMenuLayout:(nullable SDLMenuLayout)menuLayout { + [self.parameters sdl_setObject:menuLayout forName:SDLRPCParameterNameMenuLayout]; +} + +- (nullable SDLMenuLayout)menuLayout { + return [self.parameters sdl_enumForName:SDLRPCParameterNameMenuLayout error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m index 9da9719..f093f43 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m @@ -5,17 +5,21 @@ #import "SDLSetGlobalPropertiesResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSetGlobalPropertiesResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSetGlobalProperties]) { + if (self = [super initWithName:SDLRPCFunctionNameSetGlobalProperties]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.h index cf7e876..fdc1d31 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.h @@ -15,6 +15,10 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLSetInteriorVehicleData : SDLRPCRequest +/// Convenience init to change settings of a module +/// +/// @param moduleData A remote control module data object +/// @return An SDLSetInteriorVehicleData object - (instancetype)initWithModuleData:(SDLModuleData *)moduleData; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.m index cb0836e..96d2ac7 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.m @@ -3,7 +3,8 @@ // #import "SDLSetInteriorVehicleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "NSMutableDictionary+Store.h" #import "SDLModuleData.h" @@ -11,11 +12,14 @@ @implementation SDLSetInteriorVehicleData +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSetInteriorVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameSetInteriorVehicleData]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithModuleData:(SDLModuleData *)moduleData { self = [self init]; @@ -29,11 +33,12 @@ - (instancetype)initWithModuleData:(SDLModuleData *)moduleData { } - (void)setModuleData:(SDLModuleData *)moduleData { - [parameters sdl_setObject:moduleData forName:SDLNameModuleData]; + [self.parameters sdl_setObject:moduleData forName:SDLRPCParameterNameModuleData]; } -- (SDLModuleData *)moduleData { - return [parameters sdl_objectForName:SDLNameModuleData ofClass:SDLModuleData.class]; +- (SDLModuleData *)moduleData { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleData ofClass:SDLModuleData.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h index 1005090..57690e0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h @@ -14,8 +14,10 @@ NS_ASSUME_NONNULL_BEGIN /** The new module data for the requested module + + Optional */ -@property (strong, nonatomic) SDLModuleData *moduleData; +@property (nullable, strong, nonatomic) SDLModuleData *moduleData; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m index ccb59ff..c995516 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m @@ -3,7 +3,8 @@ // #import "SDLSetInteriorVehicleDataResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLModuleData.h" #import "NSMutableDictionary+Store.h" @@ -11,18 +12,22 @@ @implementation SDLSetInteriorVehicleDataResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSetInteriorVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameSetInteriorVehicleData]) { } return self; } +#pragma clang diagnostic pop -- (void)setModuleData:(SDLModuleData *)moduleData { - [parameters sdl_setObject:moduleData forName:SDLNameModuleData]; +- (void)setModuleData:(nullable SDLModuleData *)moduleData { + [self.parameters sdl_setObject:moduleData forName:SDLRPCParameterNameModuleData]; } -- (SDLModuleData *)moduleData { - return [parameters sdl_objectForName:SDLNameModuleData ofClass:SDLModuleData.class]; +- (nullable SDLModuleData *)moduleData { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleData ofClass:SDLModuleData.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.h index db41591..6b40e5d 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.h @@ -23,11 +23,133 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLSetMediaClockTimer : SDLRPCRequest -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds audioStreamingIndicator:(SDLAudioStreamingIndicator)audioStreamingIndicator; +/** + Create a media clock timer that counts up, e.g from 0:00 to 4:18. + + This will fail if startTime is greater than endTime + + @param startTime The start time interval, e.g. (0) 0:00 + @param endTime The end time interval, e.g. (258) 4:18 + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:)); + +/** + Create a media clock timer that counts up, e.g from 0:00 to 4:18. -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds; + This will fail if startTime is greater than endTime -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode; + @param startTime The start time interval, e.g. 0:00 + @param endTime The end time interval, e.g. 4:18 + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:)); + +/** + Create a media clock timer that counts down, e.g. from 4:18 to 0:00 + + This will fail if endTime is greater than startTime + + @param startTime The start time interval, e.g. (258) 4:18 + @param endTime The end time interval, e.g. (0) 0:00 + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:)); + +/** + Create a media clock timer that counts down, e.g. from 4:18 to 0:00 + + This will fail if endTime is greater than startTime + + @param startTime The start time interval, e.g. 4:18 + @param endTime The end time interval, e.g. 0:00 + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:)); + +/** + Pause an existing (counting up / down) media clock timer + + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)pauseWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(pause(playPauseIndicator:)); + +/** + Update a pause time (or pause and update the time) on a media clock timer + + @param startTime The new start time interval + @param endTime The new end time interval + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)updatePauseWithNewStartTimeInterval:(NSTimeInterval)startTime endTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(pause(newStart:newEnd:playPauseIndicator:)); + +/** + Update a pause time (or pause and update the time) on a media clock timer + + @param startTime The new start time + @param endTime The new end time + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)updatePauseWithNewStartTime:(SDLStartTime *)startTime endTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(pause(newStart:newEnd:playPauseIndicator:)); + +/** + Resume a paused media clock timer. It resumes at the same time at which it was paused. + + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(resume(playPauseIndicator:)); + +/** + Remove a media clock timer from the screen + + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)clearWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(clear(playPauseIndicator:)); + +/// Convenience init to create a SDLSetMediaClockTimer object +/// +/// @param updateMode The type of SetMediaClockTimer RPC +/// @param hours Hour +/// @param minutes Minuute +/// @param seconds Seconds +/// @param audioStreamingIndicator The audio streaming indicator used for a play/pause button +/// @return An SDLSetMediaClockTimer object +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds audioStreamingIndicator:(SDLAudioStreamingIndicator)audioStreamingIndicator __deprecated_msg("Use a specific initializer"); + +/// Convenience init to create a SDLSetMediaClockTimer object +/// +/// @param updateMode The type of SetMediaClockTimer RPC +/// @param hours Hour +/// @param minutes Minuute +/// @param seconds Seconds +/// @return An SDLSetMediaClockTimer object +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds __deprecated_msg("Use a specific initializer"); + +/// Convenience init to create a SDLSetMediaClockTimer object +/// +/// @param updateMode he type of SetMediaClockTimer RPC +/// @return An SDLSetMediaClockTimer object +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode __deprecated_msg("Use a specific initializer"); + +/** + Create a SetMediaClockTimer RPC with all available parameters. It's recommended to use the specific initializers above. + + @param updateMode The type of SetMediaClockTimer RPC + @param startTime The start time. Only valid in some updateModes. + @param endTime The end time. Only valid in some updateModes. + @param playPauseIndicator The display of the play/pause button + @return An object of SetMediaClockTimer + */ +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(init(updateMode:startTime:endTime:playPauseIndicator:)); /** * A Start Time with specifying hour, minute, second values @@ -72,7 +194,6 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) SDLAudioStreamingIndicator audioStreamingIndicator; - @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.m index ac14c21..ce536ce 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.m @@ -5,18 +5,79 @@ #import "SDLSetMediaClockTimer.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLStartTime.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSetMediaClockTimer +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSetMediaClockTimer]) { + if (self = [super initWithName:SDLRPCFunctionNameSetMediaClockTimer]) { } return self; } +#pragma clang diagnostic pop + +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + self = [self init]; + if (!self) { return nil; } + + self.updateMode = updateMode; + self.startTime = startTime; + self.endTime = endTime; + self.audioStreamingIndicator = playPauseIndicator; + + return self; +} + ++ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime]; + SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime]; + + return [[self alloc] initWithUpdateMode:SDLUpdateModeCountUp startTime:startTimeRPC endTime:endTimeRPC playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + return [[self alloc] initWithUpdateMode:SDLUpdateModeCountUp startTime:startTime endTime:endTime playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime]; + SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime]; + + return [[self alloc] initWithUpdateMode:SDLUpdateModeCountDown startTime:startTimeRPC endTime:endTimeRPC playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + return [[self alloc] initWithUpdateMode:SDLUpdateModeCountDown startTime:startTime endTime:endTime playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)pauseWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:nil endTime:nil playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)updatePauseWithNewStartTimeInterval:(NSTimeInterval)startTime endTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime]; + SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime]; + + return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:startTimeRPC endTime:endTimeRPC playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)updatePauseWithNewStartTime:(SDLStartTime *)startTime endTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:startTime endTime:endTime playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + return [[self alloc] initWithUpdateMode:SDLUpdateModeResume startTime:nil endTime:nil playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)clearWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + return [[self alloc] initWithUpdateMode:SDLUpdateModeClear startTime:nil endTime:nil playPauseIndicator:playPauseIndicator]; +} - (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds audioStreamingIndicator:(SDLAudioStreamingIndicator)audioStreamingIndicator { self = [self initWithUpdateMode:updateMode hours:hours minutes:minutes seconds:seconds]; @@ -52,35 +113,36 @@ - (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode { } - (void)setStartTime:(nullable SDLStartTime *)startTime { - [parameters sdl_setObject:startTime forName:SDLNameStartTime]; + [self.parameters sdl_setObject:startTime forName:SDLRPCParameterNameStartTime]; } - (nullable SDLStartTime *)startTime { - return [parameters sdl_objectForName:SDLNameStartTime ofClass:SDLStartTime.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameStartTime ofClass:SDLStartTime.class error:nil]; } - (void)setEndTime:(nullable SDLStartTime *)endTime { - [parameters sdl_setObject:endTime forName:SDLNameEndTime]; + [self.parameters sdl_setObject:endTime forName:SDLRPCParameterNameEndTime]; } - (nullable SDLStartTime *)endTime { - return [parameters sdl_objectForName:SDLNameEndTime ofClass:SDLStartTime.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEndTime ofClass:SDLStartTime.class error:nil]; } - (void)setUpdateMode:(SDLUpdateMode)updateMode { - [parameters sdl_setObject:updateMode forName:SDLNameUpdateMode]; + [self.parameters sdl_setObject:updateMode forName:SDLRPCParameterNameUpdateMode]; } - (SDLUpdateMode)updateMode { - return [parameters sdl_objectForName:SDLNameUpdateMode]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameUpdateMode error:&error]; } - (void)setAudioStreamingIndicator:(nullable SDLAudioStreamingIndicator)audioStreamingIndicator { - [parameters sdl_setObject:audioStreamingIndicator forName:SDLNameAudioStreamingIndicator]; + [self.parameters sdl_setObject:audioStreamingIndicator forName:SDLRPCParameterNameAudioStreamingIndicator]; } - (nullable SDLAudioStreamingIndicator)audioStreamingIndicator { - return [parameters sdl_objectForName:SDLNameAudioStreamingIndicator]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameAudioStreamingIndicator error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimerResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimerResponse.m index f293e7d..bcb1d12 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimerResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimerResponse.m @@ -5,17 +5,21 @@ #import "SDLSetMediaClockTimerResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSetMediaClockTimerResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSetMediaClockTimer]) { + if (self = [super initWithName:SDLRPCFunctionNameSetMediaClockTimer]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.h index 833a3de..723e5fd 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.h @@ -9,6 +9,7 @@ @class SDLImage; @class SDLSoftButton; @class SDLMetadataTags; +@class SDLTemplateConfiguration; /** @@ -38,16 +39,74 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLShow : SDLRPCRequest +/// Convenience init to set template elements with the following parameters +/// +/// @param mainField1 The text displayed on the first display line +/// @param mainField2 The text displayed on the second display line +/// @param alignment The alignment that specifies how the text should be aligned on display +/// @return An SDLShow object - (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment; +/// Convenience init to set template elements with the following parameters +/// +/// @param mainField1 The text displayed on the first display line +/// @param mainField1Type Text field metadata types +/// @param mainField2 The text displayed on the second display line +/// @param mainField2Type Text field metadata types +/// @param alignment The alignment that specifies how the text should be aligned on display +/// @return An SDLShow object - (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField1Type:(nullable SDLMetadataType)mainField1Type mainField2:(nullable NSString *)mainField2 mainField2Type:(nullable SDLMetadataType)mainField2Type alignment:(nullable SDLTextAlignment)alignment; +/// Convenience init to set template elements with the following parameters +/// +/// @param mainField1 The text displayed on the first display line +/// @param mainField2 The text displayed on the second display line +/// @param mainField3 The text displayed on the third display line +/// @param mainField4 The text displayed on the fourth display line +/// @param alignment The alignment that specifies how the text should be aligned on display +/// @return An SDLShow object - (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 mainField3:(nullable NSString *)mainField3 mainField4:(nullable NSString *)mainField4 alignment:(nullable SDLTextAlignment)alignment; +/// Convenience init to set template elements with the following parameters +/// +/// @param mainField1 The text displayed on the first display line +/// @param mainField1Type Text field metadata types +/// @param mainField2 The text displayed on the second display line +/// @param mainField2Type Text field metadata types +/// @param mainField3 The text displayed on the third display line +/// @param mainField3Type Text field metadata types +/// @param mainField4 The text displayed on the fourth display line +/// @param mainField4Type Text field metadata types +/// @param alignment The alignment that specifies how the text should be aligned on display +/// @return An SDLShow object - (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField1Type:(nullable SDLMetadataType)mainField1Type mainField2:(nullable NSString *)mainField2 mainField2Type:(nullable SDLMetadataType)mainField2Type mainField3:(nullable NSString *)mainField3 mainField3Type:(nullable SDLMetadataType)mainField3Type mainField4:(nullable NSString *)mainField4 mainField4Type:(nullable SDLMetadataType)mainField4Type alignment:(nullable SDLTextAlignment)alignment; +/// Convenience init to set template elements with the following parameters +/// +/// @param mainField1 The text displayed on the first display line +/// @param mainField2 The text displayed on the second display line +/// @param alignment The alignment that specifies how the text should be aligned on display +/// @param statusBar Text in the status Bar +/// @param mediaClock The value for the mediaClock field +/// @param mediaTrack The text in the track field +/// @return An SDLShow object - (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment statusBar:(nullable NSString *)statusBar mediaClock:(nullable NSString *)mediaClock mediaTrack:(nullable NSString *)mediaTrack; +/// Convenience init to set template elements with the following parameters +/// +/// @param mainField1 The text displayed on the first display line +/// @param mainField2 The text displayed on the second display line +/// @param mainField3 The text displayed on the third display line +/// @param mainField4 The text displayed on the fourth display line +/// @param alignment The alignment that specifies how the text should be aligned on display +/// @param statusBar Text in the status bar +/// @param mediaClock The value for the mediaClock field +/// @param mediaTrack The text in the track field +/// @param graphic An image to be shown on supported displays +/// @param softButtons The the Soft buttons defined by the app +/// @param customPresets The custom presets defined by the App +/// @param metadata Text field metadata +/// @return An SDLShow object - (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 mainField3:(nullable NSString *)mainField3 mainField4:(nullable NSString *)mainField4 alignment:(nullable SDLTextAlignment)alignment statusBar:(nullable NSString *)statusBar mediaClock:(nullable NSString *)mediaClock mediaTrack:(nullable NSString *)mediaTrack graphic:(nullable SDLImage *)graphic softButtons:(nullable NSArray *)softButtons customPresets:(nullable NSArray *)customPresets textFieldMetadata:(nullable SDLMetadataTags *)metadata; /** @@ -246,6 +305,30 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) SDLMetadataTags *metadataTags; + +/** + This is the unique ID assigned to the window that this RPC is intended. If this param is not included, it will be assumed that this request is specifically for the main window on the main display. @see PredefinedWindows enum. + + @since SDL 6.0 + */ +@property (strong, nonatomic, nullable) NSNumber *windowID; + +/** + Used to set an alternate template layout to a window. + + @since SDL 6.0 + */ +@property (strong, nonatomic, nullable) SDLTemplateConfiguration *templateConfiguration; + +/** + The title of the current template. + + How this will be displayed is dependent on the OEM design and implementation of the template. + + Optional, since SmartDeviceLink 6.0 + */ +@property (strong, nonatomic, nullable) NSString *templateTitle; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.m index 743e494..c42295d 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.m @@ -8,18 +8,23 @@ #import "SDLImage.h" #import "SDLMetadataTags.h" #import "SDLMetadataType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSoftButton.h" +#import "SDLTemplateConfiguration.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLShow +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameShow]) { + if (self = [super initWithName:SDLRPCFunctionNameShow]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment { return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:nil mainField4:nil alignment:alignment]; @@ -97,107 +102,132 @@ - (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(n } - (void)setMainField1:(nullable NSString *)mainField1 { - [parameters sdl_setObject:mainField1 forName:SDLNameMainField1]; + [self.parameters sdl_setObject:mainField1 forName:SDLRPCParameterNameMainField1]; } - (nullable NSString *)mainField1 { - return [parameters sdl_objectForName:SDLNameMainField1]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMainField1 ofClass:NSString.class error:nil]; } - (void)setMainField2:(nullable NSString *)mainField2 { - [parameters sdl_setObject:mainField2 forName:SDLNameMainField2]; + [self.parameters sdl_setObject:mainField2 forName:SDLRPCParameterNameMainField2]; } - (nullable NSString *)mainField2 { - return [parameters sdl_objectForName:SDLNameMainField2]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMainField2 ofClass:NSString.class error:nil]; } - (void)setMainField3:(nullable NSString *)mainField3 { - [parameters sdl_setObject:mainField3 forName:SDLNameMainField3]; + [self.parameters sdl_setObject:mainField3 forName:SDLRPCParameterNameMainField3]; } - (nullable NSString *)mainField3 { - return [parameters sdl_objectForName:SDLNameMainField3]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMainField3 ofClass:NSString.class error:nil]; } - (void)setMainField4:(nullable NSString *)mainField4 { - [parameters sdl_setObject:mainField4 forName:SDLNameMainField4]; + [self.parameters sdl_setObject:mainField4 forName:SDLRPCParameterNameMainField4]; } - (nullable NSString *)mainField4 { - return [parameters sdl_objectForName:SDLNameMainField4]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMainField4 ofClass:NSString.class error:nil]; } - (void)setAlignment:(nullable SDLTextAlignment)alignment { - [parameters sdl_setObject:alignment forName:SDLNameAlignment]; + [self.parameters sdl_setObject:alignment forName:SDLRPCParameterNameAlignment]; } - (nullable SDLTextAlignment)alignment { - return [parameters sdl_objectForName:SDLNameAlignment]; + return [self.parameters sdl_enumForName:SDLRPCParameterNameAlignment error:nil]; } - (void)setStatusBar:(nullable NSString *)statusBar { - [parameters sdl_setObject:statusBar forName:SDLNameStatusBar]; + [self.parameters sdl_setObject:statusBar forName:SDLRPCParameterNameStatusBar]; } - (nullable NSString *)statusBar { - return [parameters sdl_objectForName:SDLNameStatusBar]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameStatusBar ofClass:NSString.class error:nil]; } - (void)setMediaClock:(nullable NSString *)mediaClock { - [parameters sdl_setObject:mediaClock forName:SDLNameMediaClock]; + [self.parameters sdl_setObject:mediaClock forName:SDLRPCParameterNameMediaClock]; } - (nullable NSString *)mediaClock { - return [parameters sdl_objectForName:SDLNameMediaClock]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMediaClock ofClass:NSString.class error:nil]; } - (void)setMediaTrack:(nullable NSString *)mediaTrack { - [parameters sdl_setObject:mediaTrack forName:SDLNameMediaTrack]; + [self.parameters sdl_setObject:mediaTrack forName:SDLRPCParameterNameMediaTrack]; } - (nullable NSString *)mediaTrack { - return [parameters sdl_objectForName:SDLNameMediaTrack]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMediaTrack ofClass:NSString.class error:nil]; } - (void)setGraphic:(nullable SDLImage *)graphic { - [parameters sdl_setObject:graphic forName:SDLNameGraphic]; + [self.parameters sdl_setObject:graphic forName:SDLRPCParameterNameGraphic]; } - (nullable SDLImage *)graphic { - return [parameters sdl_objectForName:SDLNameGraphic ofClass:SDLImage.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameGraphic ofClass:SDLImage.class error:nil]; } - (void)setSecondaryGraphic:(nullable SDLImage *)secondaryGraphic { - [parameters sdl_setObject:secondaryGraphic forName:SDLNameSecondaryGraphic]; + [self.parameters sdl_setObject:secondaryGraphic forName:SDLRPCParameterNameSecondaryGraphic]; } - (nullable SDLImage *)secondaryGraphic { - return [parameters sdl_objectForName:SDLNameSecondaryGraphic ofClass:SDLImage.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSecondaryGraphic ofClass:SDLImage.class error:nil]; } - (void)setSoftButtons:(nullable NSArray *)softButtons { - [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; + [self.parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; } - (nullable NSArray *)softButtons { - return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; } - (void)setCustomPresets:(nullable NSArray *)customPresets { - [parameters sdl_setObject:customPresets forName:SDLNameCustomPresets]; + [self.parameters sdl_setObject:customPresets forName:SDLRPCParameterNameCustomPresets]; } - (nullable NSArray *)customPresets { - return [parameters sdl_objectForName:SDLNameCustomPresets]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameCustomPresets ofClass:NSString.class error:nil]; } - (void)setMetadataTags:(nullable SDLMetadataTags *)metadataTags { - [parameters sdl_setObject:metadataTags forName:SDLNameMetadataTags]; + [self.parameters sdl_setObject:metadataTags forName:SDLRPCParameterNameMetadataTags]; } - (nullable SDLMetadataTags *)metadataTags { - return [parameters sdl_objectForName:SDLNameMetadataTags ofClass:SDLMetadataTags.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMetadataTags ofClass:SDLMetadataTags.class error:nil]; +} + +- (void)setWindowID:(nullable NSNumber *)windowID { + [self.parameters sdl_setObject:windowID forName:SDLRPCParameterNameWindowId]; +} + +- (nullable NSNumber *)windowID { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:&error]; +} + +- (void)setTemplateConfiguration:(nullable SDLTemplateConfiguration *)templateConfiguration { + [self.parameters sdl_setObject:templateConfiguration forName:SDLRPCParameterNameTemplateConfiguration]; +} + +- (nullable SDLTemplateConfiguration *)templateConfiguration { + return [self.parameters sdl_objectForName:SDLRPCParameterNameTemplateConfiguration ofClass:SDLTemplateConfiguration.class error:nil]; +} + +- (void)setTemplateTitle:(nullable NSString *)templateTitle { + [self.parameters sdl_setObject:templateTitle forName:SDLRPCParameterNameTemplateTitle]; +} + +- (nullable NSString *)templateTitle { + return [self.parameters sdl_objectForName:SDLRPCParameterNameTemplateTitle ofClass:NSString.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.h new file mode 100644 index 0000000..a7ca2cf --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.h @@ -0,0 +1,35 @@ +// +// SDLOpenMenu.h +// SmartDeviceLink +// +// Created by Justin Gluck on 7/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + Used by an app to show the app's menu, typically this is used by a navigation app if the menu button is hidden. + + Added in SmartDeviceLink 6.0 + */ +@interface SDLShowAppMenu : SDLRPCRequest + +/** + Creates a ShowAppMenu RPC to open the app menu directly to a AddSubMenu RPC's submenu. + + @param menuID The ID of the AddSubMenu to open + @return SDLShowAppMenu RPCRequest + */ +- (instancetype)initWithMenuID:(UInt32)menuID; + +/** + A Menu ID that identifies the AddSubMenu to open if it correlates with the AddSubMenu menuID parameter. If not set the top level menu will be opened. + */ +@property (nullable, strong, nonatomic) NSNumber *menuID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.m new file mode 100644 index 0000000..d93b848 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.m @@ -0,0 +1,48 @@ +// +// SDLOpenMenu.m +// SmartDeviceLink +// +// Created by Justin Gluck on 7/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLShowAppMenu.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLShowAppMenu + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameShowAppMenu]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithMenuID:(UInt32)menuID { + self = [self init]; + if (!self) { + return nil; + } + + self.menuID = @(menuID); + return self; +} + +- (void)setMenuID:(nullable NSNumber *)menuID { + [self.parameters sdl_setObject:menuID forName:SDLRPCParameterNameMenuId]; +} + +- (nullable NSNumber *)menuID { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuId ofClass:NSNumber.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.h new file mode 100644 index 0000000..d5acd4c --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.h @@ -0,0 +1,20 @@ +// +// SDLOpenMenuResponse.h +// SmartDeviceLink +// +// Created by Justin Gluck on 7/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Response to the request to show the app menu. + */ +@interface SDLShowAppMenuResponse : SDLRPCResponse + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.m new file mode 100644 index 0000000..281079e --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.m @@ -0,0 +1,23 @@ +// +// SDLOpenMenuResponse.m +// SmartDeviceLink +// +// Created by Justin Gluck on 7/12/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLShowAppMenuResponse.h" +#import "SDLRPCFunctionNames.h" + +@implementation SDLShowAppMenuResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameShowAppMenu]) { + } + return self; +} +#pragma clang diagnostic pop + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.h index e3a4845..3ac0178 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.h @@ -16,6 +16,20 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLShowConstantTBT : SDLRPCRequest +/// Convenience init to create navigation directions +/// +/// @param navigationText1 The first line of text in a multi-line overlay screen +/// @param navigationText2 The second line of text in a multi-line overlay screen +/// @param eta Estimated Time of Arrival time at final destination +/// @param timeToDestination The amount of time needed to reach the final destination +/// @param totalDistance The distance to the final destination +/// @param turnIcon An icon to show with the turn description +/// @param nextTurnIcon An icon to show with the next turn description +/// @param distanceToManeuver Fraction of distance till next maneuver +/// @param distanceToManeuverScale Distance till next maneuver +/// @param maneuverComplete If and when a maneuver has completed while an AlertManeuver is active, the app must send this value set to TRUE in order to clear the AlertManeuver overlay. If omitted the value will be assumed as FALSE +/// @param softButtons Three dynamic SoftButtons available (first SoftButton is fixed to "Turns") +/// @return An SDLShowConstantTBT object - (instancetype)initWithNavigationText1:(nullable NSString *)navigationText1 navigationText2:(nullable NSString *)navigationText2 eta:(nullable NSString *)eta timeToDestination:(nullable NSString *)timeToDestination totalDistance:(nullable NSString *)totalDistance turnIcon:(nullable SDLImage *)turnIcon nextTurnIcon:(nullable SDLImage *)nextTurnIcon distanceToManeuver:(double)distanceToManeuver distanceToManeuverScale:(double)distanceToManeuverScale maneuverComplete:(BOOL)maneuverComplete softButtons:(nullable NSArray *)softButtons; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.m index f4565d9..70c2c09 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.m @@ -6,18 +6,22 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSoftButton.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLShowConstantTBT +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameShowConstantTBT]) { + if (self = [super initWithName:SDLRPCFunctionNameShowConstantTBT]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithNavigationText1:(nullable NSString *)navigationText1 navigationText2:(nullable NSString *)navigationText2 eta:(nullable NSString *)eta timeToDestination:(nullable NSString *)timeToDestination totalDistance:(nullable NSString *)totalDistance turnIcon:(nullable SDLImage *)turnIcon nextTurnIcon:(nullable SDLImage *)nextTurnIcon distanceToManeuver:(double)distanceToManeuver distanceToManeuverScale:(double)distanceToManeuverScale maneuverComplete:(BOOL)maneuverComplete softButtons:(nullable NSArray *)softButtons { self = [self init]; @@ -41,91 +45,91 @@ - (instancetype)initWithNavigationText1:(nullable NSString *)navigationText1 nav } - (void)setNavigationText1:(nullable NSString *)navigationText1 { - [parameters sdl_setObject:navigationText1 forName:SDLNameNavigationText1]; + [self.parameters sdl_setObject:navigationText1 forName:SDLRPCParameterNameNavigationText1]; } - (nullable NSString *)navigationText1 { - return [parameters sdl_objectForName:SDLNameNavigationText1]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameNavigationText1 ofClass:NSString.class error:nil]; } - (void)setNavigationText2:(nullable NSString *)navigationText2 { - [parameters sdl_setObject:navigationText2 forName:SDLNameNavigationText2]; + [self.parameters sdl_setObject:navigationText2 forName:SDLRPCParameterNameNavigationText2]; } - (nullable NSString *)navigationText2 { - return [parameters sdl_objectForName:SDLNameNavigationText2]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameNavigationText2 ofClass:NSString.class error:nil]; } - (void)setEta:(nullable NSString *)eta { - [parameters sdl_setObject:eta forName:SDLNameETA]; + [self.parameters sdl_setObject:eta forName:SDLRPCParameterNameETA]; } - (nullable NSString *)eta { - return [parameters sdl_objectForName:SDLNameETA]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameETA ofClass:NSString.class error:nil]; } - (void)setTimeToDestination:(nullable NSString *)timeToDestination { - [parameters sdl_setObject:timeToDestination forName:SDLNameTimeToDestination]; + [self.parameters sdl_setObject:timeToDestination forName:SDLRPCParameterNameTimeToDestination]; } - (nullable NSString *)timeToDestination { - return [parameters sdl_objectForName:SDLNameTimeToDestination]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeToDestination ofClass:NSString.class error:nil]; } - (void)setTotalDistance:(nullable NSString *)totalDistance { - [parameters sdl_setObject:totalDistance forName:SDLNameTotalDistance]; + [self.parameters sdl_setObject:totalDistance forName:SDLRPCParameterNameTotalDistance]; } - (nullable NSString *)totalDistance { - return [parameters sdl_objectForName:SDLNameTotalDistance]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTotalDistance ofClass:NSString.class error:nil]; } - (void)setTurnIcon:(nullable SDLImage *)turnIcon { - [parameters sdl_setObject:turnIcon forName:SDLNameTurnIcon]; + [self.parameters sdl_setObject:turnIcon forName:SDLRPCParameterNameTurnIcon]; } - (nullable SDLImage *)turnIcon { - return [parameters sdl_objectForName:SDLNameTurnIcon ofClass:SDLImage.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTurnIcon ofClass:SDLImage.class error:nil]; } - (void)setNextTurnIcon:(nullable SDLImage *)nextTurnIcon { - [parameters sdl_setObject:nextTurnIcon forName:SDLNameNextTurnIcon]; + [self.parameters sdl_setObject:nextTurnIcon forName:SDLRPCParameterNameNextTurnIcon]; } - (nullable SDLImage *)nextTurnIcon { - return [parameters sdl_objectForName:SDLNameNextTurnIcon ofClass:SDLImage.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameNextTurnIcon ofClass:SDLImage.class error:nil]; } - (void)setDistanceToManeuver:(nullable NSNumber *)distanceToManeuver { - [parameters sdl_setObject:distanceToManeuver forName:SDLNameDistanceToManeuver]; + [self.parameters sdl_setObject:distanceToManeuver forName:SDLRPCParameterNameDistanceToManeuver]; } - (nullable NSNumber *)distanceToManeuver { - return [parameters sdl_objectForName:SDLNameDistanceToManeuver]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDistanceToManeuver ofClass:NSNumber.class error:nil]; } - (void)setDistanceToManeuverScale:(nullable NSNumber *)distanceToManeuverScale { - [parameters sdl_setObject:distanceToManeuverScale forName:SDLNameDistanceToManeuverScale]; + [self.parameters sdl_setObject:distanceToManeuverScale forName:SDLRPCParameterNameDistanceToManeuverScale]; } - (nullable NSNumber *)distanceToManeuverScale { - return [parameters sdl_objectForName:SDLNameDistanceToManeuverScale]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDistanceToManeuverScale ofClass:NSNumber.class error:nil]; } - (void)setManeuverComplete:(nullable NSNumber *)maneuverComplete { - [parameters sdl_setObject:maneuverComplete forName:SDLNameManeuverComplete]; + [self.parameters sdl_setObject:maneuverComplete forName:SDLRPCParameterNameManeuverComplete]; } - (nullable NSNumber *)maneuverComplete { - return [parameters sdl_objectForName:SDLNameManeuverComplete]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameManeuverComplete ofClass:NSNumber.class error:nil]; } - (void)setSoftButtons:(nullable NSArray *)softButtons { - [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; + [self.parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; } - (nullable NSArray *)softButtons { - return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBTResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBTResponse.m index 40a9c9b..911e508 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBTResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBTResponse.m @@ -5,17 +5,21 @@ #import "SDLShowConstantTBTResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLShowConstantTBTResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameShowConstantTBT]) { + if (self = [super initWithName:SDLRPCFunctionNameShowConstantTBT]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowResponse.m index cca46c4..c8b5011 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowResponse.m @@ -5,17 +5,21 @@ #import "SDLShowResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLShowResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameShow]) { + if (self = [super initWithName:SDLRPCFunctionNameShow]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSingleTireStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSingleTireStatus.m index 6f88953..e756e8f 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSingleTireStatus.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSingleTireStatus.m @@ -5,34 +5,35 @@ #import "NSMutableDictionary+Store.h" #import "NSNumber+NumberType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSingleTireStatus - (void)setStatus:(SDLComponentVolumeStatus)status { - [store sdl_setObject:status forName:SDLNameStatus]; + [self.store sdl_setObject:status forName:SDLRPCParameterNameStatus]; } - (SDLComponentVolumeStatus)status { - return [store sdl_objectForName:SDLNameStatus]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameStatus error:&error]; } - (void)setMonitoringSystemStatus:(nullable SDLTPMS)monitoringSystemStatus { - [store sdl_setObject:monitoringSystemStatus forName:SDLNameTPMS]; + [self.store sdl_setObject:monitoringSystemStatus forName:SDLRPCParameterNameTPMS]; } - (nullable SDLTPMS)monitoringSystemStatus { - return [store sdl_objectForName:SDLNameTPMS]; + return [self.store sdl_enumForName:SDLRPCParameterNameTPMS error:nil]; } - (void)setPressure:(nullable NSNumber *)pressure { - [store sdl_setObject:pressure forName:SDLNamePressure]; + [self.store sdl_setObject:pressure forName:SDLRPCParameterNamePressure]; } - (nullable NSNumber *)pressure { - return [store sdl_objectForName:SDLNamePressure]; + return [self.store sdl_objectForName:SDLRPCParameterNamePressure ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.h index 2b3b187..13cef4c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.h @@ -4,98 +4,123 @@ #import "SDLRPCRequest.h" +NS_ASSUME_NONNULL_BEGIN + /** - * Creates a full screen or pop-up overlay (depending on platform) with a single user controlled slider - * - * HMILevel needs to be FULL - * - * Since SmartDeviceLink 2.0 - */ + Creates a full screen or pop-up overlay (depending on platform) with a single user controlled slider. -NS_ASSUME_NONNULL_BEGIN + If connecting to SDL Core v.6.0+, the slider can be canceled programmatically using the `cancelID`. On older versions of SDL Core, the slider will persist until the user has interacted with the slider or the specified timeout has elapsed. + Since SDL 2.0 + */ @interface SDLSlider : SDLRPCRequest /** - Create an SDLSlider with only the number of ticks and position. Note that this is not enough to get a SUCCESS response. You must supply additional data. See below for required parameters. + Convenience init with all parameters. + + @param numTicks Number of selectable items on a horizontal axis + @param position Initial position of slider control + @param sliderHeader Text header to display + @param sliderFooters Text footers to display. See the `sliderFooter` documentation for how placing various numbers of footers will affect the display + @param timeout Indicates how long of a timeout from the last action (i.e. sliding control resets timeout) + @param cancelID An ID for this specific slider to allow cancellation through the `CancelInteraction` RPC. + @return An SDLSlider object + */ +- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooters:(nullable NSArray *)sliderFooters timeout:(UInt16)timeout cancelID:(UInt32)cancelID; + +/** + Creates a slider with only the number of ticks and position. Note that this is not enough to get a SUCCESS response. You must supply additional data. See below for required parameters. - @param numTicks The number of ticks present on the slider. - @param position The default starting position of the slider. - @return An SDLSlider RPC Request. + @param numTicks Number of selectable items on a horizontal axis + @param position Initial position of slider control + @return An SDLSlider object */ - (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position; /** - Create an SDLSlider with all required data and a static footer (or no footer). - - @param numTicks The number of ticks present on the slider. - @param position The default starting position of the slider. - @param sliderHeader The header describing the slider. - @param sliderFooter A static footer with text, or nil for no footer. - @param timeout The length of time in milliseconds the popup should be displayed before automatically disappearing. - @return An SDLSlider RPC Request. + Creates a slider with all required data and a static footer (or no footer). + + @param numTicks Number of selectable items on a horizontal axis + @param position Initial position of slider control + @param sliderHeader Text header to display + @param sliderFooter Text footer to display + @param timeout Indicates how long of a timeout from the last action (i.e. sliding control resets timeout) + @return An SDLSlider object */ - (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooter:(nullable NSString *)sliderFooter timeout:(UInt16)timeout; /** - Create an SDLSlider with all required data and a dynamic footer (or no footer). - - @param numTicks The number of ticks present on the slider. - @param position The default starting position of the slider. - @param sliderHeader The header describing the slider. - @param sliderFooters An array of footers. This should be the same length as `numTicks` as each footer should correspond to a tick, or no footer if nil. - @param timeout The length of time in milliseconds the popup should be displayed before automatically disappearing. - @return An SDLSlider RPC Request. + Creates an slider with all required data and a dynamic footer (or no footer). + + @param numTicks Number of selectable items on a horizontal axis + @param position Initial position of slider control + @param sliderHeader Text header to display + @param sliderFooters Text footers to display + @param timeout Indicates how long of a timeout from the last action (i.e. sliding control resets timeout) + @return An SDLSlider object */ - (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooters:(nullable NSArray *)sliderFooters timeout:(UInt16)timeout; /** - * Represents a number of selectable items on a horizontal axis - * - * Required, Integer, 2 - 26 + Represents a number of selectable items on a horizontal axis. + + Integer, Required, Min value: 2, Max Value: 26 + + Since SDL 2.0 */ @property (strong, nonatomic) NSNumber *numTicks; /** - * An Initial position of slider control - * - * Required, Integer, 1 - 26 + Initial position of slider control (cannot exceed numTicks). + + Integer, Required, Min Value: 1, Max Value: 26 + + @since SDL 2.0 */ @property (strong, nonatomic) NSNumber *position; /** - * A text header to display - * - * Required, Max length 500 chars + Text header to display. + + String, Required, Max length 500 chars + + Since SDL 2.0 */ @property (strong, nonatomic) NSString *sliderHeader; /** - * A text footer to display - * - * @discussion For a static text footer, only one footer string shall be provided in the array. - * - * For a dynamic text footer, the number of footer text string in the array must match the numTicks value. - * - * For a dynamic text footer, text array string should correlate with potential slider position index. - * - * If omitted on supported displays, no footer text shall be displayed. - * - * Optional, Array of Strings, Array length 1 - 26, Max string length 500 chars + Text footer to display. + + For a static text footer, only one footer string shall be provided in the array. + For a dynamic text footer, the number of footer text string in the array must match the numTicks value. + For a dynamic text footer, text array string should correlate with potential slider position index. + If omitted on supported displays, no footer text shall be displayed. + + Array of Strings, Optional, Array length 1 - 26, Max length 500 chars + + Since SDL 2.0 */ @property (strong, nonatomic, nullable) NSArray *sliderFooter; /** - * An App defined timeout in milliseconds - * - * @discussion Indicates how long of a timeout from the last action (i.e. sliding control resets timeout). - * - * If omitted, the value is set to 10000. - * - * Optional, Integer, 1000 - 65535 + App defined timeout. Indicates how long of a timeout from the last action (i.e. sliding control resets timeout). If omitted, the value is set to 10 seconds. + + Integer, Optional, Min value: 1000, Max value: 65535, Default value: 10000 + + Since SDL 2.0 */ @property (strong, nonatomic, nullable) NSNumber *timeout; +/** + An ID for this specific slider to allow cancellation through the `CancelInteraction` RPC. + + Integer, Optional + + @see SDLCancelInteraction + @since SDL 6.0 + */ +@property (nullable, strong, nonatomic) NSNumber *cancelID; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.m index 800d657..488b428 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.m @@ -5,17 +5,37 @@ #import "SDLSlider.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSlider +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSlider]) { + if (self = [super initWithName:SDLRPCFunctionNameSlider]) { } return self; } +#pragma clang diagnostic pop + +- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooters:(nullable NSArray *)sliderFooters timeout:(UInt16)timeout cancelID:(UInt32)cancelID { + self = [self init]; + if (!self) { + return nil; + } + + self.numTicks = @(numTicks); + self.position = @(position); + self.sliderHeader = sliderHeader; + self.sliderFooter = sliderFooters; + self.timeout = @(timeout); + self.cancelID = @(cancelID); + + return self; +} - (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooter:(nullable NSString *)sliderFooter timeout:(UInt16)timeout { NSArray *footer = nil; @@ -33,7 +53,7 @@ - (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position slider } self.sliderHeader = sliderHeader; - self.sliderFooter = [sliderFooters mutableCopy]; + self.sliderFooter = sliderFooters; self.timeout = @(timeout); return self; @@ -52,43 +72,54 @@ - (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position { } - (void)setNumTicks:(NSNumber *)numTicks { - [parameters sdl_setObject:numTicks forName:SDLNameNumberTicks]; + [self.parameters sdl_setObject:numTicks forName:SDLRPCParameterNameNumberTicks]; } - (NSNumber *)numTicks { - return [parameters sdl_objectForName:SDLNameNumberTicks]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameNumberTicks ofClass:NSNumber.class error:&error]; } - (void)setPosition:(NSNumber *)position { - [parameters sdl_setObject:position forName:SDLNamePosition]; + [self.parameters sdl_setObject:position forName:SDLRPCParameterNamePosition]; } - (NSNumber *)position { - return [parameters sdl_objectForName:SDLNamePosition]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePosition ofClass:NSNumber.class error:&error]; } - (void)setSliderHeader:(NSString *)sliderHeader { - [parameters sdl_setObject:sliderHeader forName:SDLNameSliderHeader]; + [self.parameters sdl_setObject:sliderHeader forName:SDLRPCParameterNameSliderHeader]; } - (NSString *)sliderHeader { - return [parameters sdl_objectForName:SDLNameSliderHeader]; + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSliderHeader ofClass:NSString.class error:&error]; } - (void)setSliderFooter:(nullable NSArray *)sliderFooter { - [parameters sdl_setObject:sliderFooter forName:SDLNameSliderFooter]; + [self.parameters sdl_setObject:sliderFooter forName:SDLRPCParameterNameSliderFooter]; } - (nullable NSArray *)sliderFooter { - return [parameters sdl_objectForName:SDLNameSliderFooter]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameSliderFooter ofClass:NSString.class error:nil]; } - (void)setTimeout:(nullable NSNumber *)timeout { - [parameters sdl_setObject:timeout forName:SDLNameTimeout]; + [self.parameters sdl_setObject:timeout forName:SDLRPCParameterNameTimeout]; } - (nullable NSNumber *)timeout { - return [parameters sdl_objectForName:SDLNameTimeout]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeout ofClass:NSNumber.class error:nil]; +} + +- (void)setCancelID:(nullable NSNumber *)cancelID { + [self.parameters sdl_setObject:cancelID forName:SDLRPCParameterNameCancelID]; +} + +- (nullable NSNumber *)cancelID { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCancelID ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSliderResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSliderResponse.m index a21661b..6d99851 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSliderResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSliderResponse.m @@ -5,24 +5,28 @@ #import "SDLSliderResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSliderResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSlider]) { + if (self = [super initWithName:SDLRPCFunctionNameSlider]) { } return self; } +#pragma clang diagnostic pop - (void)setSliderPosition:(nullable NSNumber *)sliderPosition { - [parameters sdl_setObject:sliderPosition forName:SDLNameSliderPosition]; + [self.parameters sdl_setObject:sliderPosition forName:SDLRPCParameterNameSliderPosition]; } - (nullable NSNumber *)sliderPosition { - return [parameters sdl_objectForName:SDLNameSliderPosition]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSliderPosition ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.h index 742b102..8fffc67 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.h @@ -16,10 +16,23 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLSoftButton : SDLRPCStruct +/// Convenience init +/// +/// @param handler A handler that may optionally be run when the SDLSoftButton has a corresponding notification occur - (instancetype)initWithHandler:(nullable SDLRPCButtonNotificationHandler)handler; +/// Convenience init +/// +/// @param type Describes whether this soft button displays only text, only an image, or both +/// @param text Optional text to display (if defined as TEXT or BOTH type) +/// @param image Optional image struct for SoftButton (if defined as IMAGE or BOTH type) +/// @param highlighted Displays in an alternate mode, e.g. with a colored background or foreground. Depends on the IVI system +/// @param buttonId Value which is returned via OnButtonPress / OnButtonEvent +/// @param systemAction Parameter indicating whether selecting a SoftButton shall call a specific system action +/// @param handler A handler that may optionally be run when the SDLSoftButton has a corresponding notification occur. - (instancetype)initWithType:(SDLSoftButtonType)type text:(nullable NSString *)text image:(nullable SDLImage *)image highlighted:(BOOL)highlighted buttonId:(UInt16)buttonId systemAction:(nullable SDLSystemAction)systemAction handler:(nullable SDLRPCButtonNotificationHandler)handler; +/// A handler that may optionally be run when the SDLSoftButton has a corresponding notification occur. @property (copy, nonatomic) SDLRPCButtonNotificationHandler handler; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.m index a50bb4b..6d1082c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -40,51 +40,53 @@ - (instancetype)initWithType:(SDLSoftButtonType)type text:(nullable NSString *)t } - (void)setType:(SDLSoftButtonType)type { - [store sdl_setObject:type forName:SDLNameType]; + [self.store sdl_setObject:type forName:SDLRPCParameterNameType]; } - (SDLSoftButtonType)type { - return [store sdl_objectForName:SDLNameType]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameType error:&error]; } - (void)setText:(nullable NSString *)text { - [store sdl_setObject:text forName:SDLNameText]; + [self.store sdl_setObject:text forName:SDLRPCParameterNameText]; } - (nullable NSString *)text { - return [store sdl_objectForName:SDLNameText]; + return [self.store sdl_objectForName:SDLRPCParameterNameText ofClass:NSString.class error:nil]; } - (void)setImage:(nullable SDLImage *)image { - [store sdl_setObject:image forName:SDLNameImage]; + [self.store sdl_setObject:image forName:SDLRPCParameterNameImage]; } - (nullable SDLImage *)image { - return [store sdl_objectForName:SDLNameImage ofClass:SDLImage.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameImage ofClass:SDLImage.class error:nil]; } - (void)setIsHighlighted:(nullable NSNumber *)isHighlighted { - [store sdl_setObject:isHighlighted forName:SDLNameIsHighlighted]; + [self.store sdl_setObject:isHighlighted forName:SDLRPCParameterNameIsHighlighted]; } - (nullable NSNumber *)isHighlighted { - return [store sdl_objectForName:SDLNameIsHighlighted]; + return [self.store sdl_objectForName:SDLRPCParameterNameIsHighlighted ofClass:NSNumber.class error:nil]; } - (void)setSoftButtonID:(NSNumber *)softButtonID { - [store sdl_setObject:softButtonID forName:SDLNameSoftButtonId]; + [self.store sdl_setObject:softButtonID forName:SDLRPCParameterNameSoftButtonId]; } - (NSNumber *)softButtonID { - return [store sdl_objectForName:SDLNameSoftButtonId]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameSoftButtonId ofClass:NSNumber.class error:&error]; } - (void)setSystemAction:(nullable SDLSystemAction)systemAction { - [store sdl_setObject:systemAction forName:SDLNameSystemAction]; + [self.store sdl_setObject:systemAction forName:SDLRPCParameterNameSystemAction]; } - (nullable SDLSystemAction)systemAction { - return [store sdl_objectForName:SDLNameSystemAction]; + return [self.store sdl_enumForName:SDLRPCParameterNameSystemAction error:nil]; } -(id)copyWithZone:(nullable NSZone *)zone { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.h index c49d78a..07d57e2 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.h @@ -47,6 +47,15 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic) NSNumber *imageSupported; +/** + The button supports the use of text. If not included, the default value should be considered true that the button will support text. + + Optional, Boolean + + @since SDL 6.0 + */ +@property (strong, nonatomic, nullable) NSNumber *textSupported; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.m index 6bf3914..6d5ea07 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.m @@ -5,42 +5,55 @@ #import "SDLSoftButtonCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSoftButtonCapabilities - (void)setShortPressAvailable:(NSNumber *)shortPressAvailable { - [store sdl_setObject:shortPressAvailable forName:SDLNameShortPressAvailable]; + [self.store sdl_setObject:shortPressAvailable forName:SDLRPCParameterNameShortPressAvailable]; } - (NSNumber *)shortPressAvailable { - return [store sdl_objectForName:SDLNameShortPressAvailable]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameShortPressAvailable ofClass:NSNumber.class error:&error]; } - (void)setLongPressAvailable:(NSNumber *)longPressAvailable { - [store sdl_setObject:longPressAvailable forName:SDLNameLongPressAvailable]; + [self.store sdl_setObject:longPressAvailable forName:SDLRPCParameterNameLongPressAvailable]; } - (NSNumber *)longPressAvailable { - return [store sdl_objectForName:SDLNameLongPressAvailable]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLongPressAvailable ofClass:NSNumber.class error:&error]; } - (void)setUpDownAvailable:(NSNumber *)upDownAvailable { - [store sdl_setObject:upDownAvailable forName:SDLNameUpDownAvailable]; + [self.store sdl_setObject:upDownAvailable forName:SDLRPCParameterNameUpDownAvailable]; } - (NSNumber *)upDownAvailable { - return [store sdl_objectForName:SDLNameUpDownAvailable]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameUpDownAvailable ofClass:NSNumber.class error:&error]; } - (void)setImageSupported:(NSNumber *)imageSupported { - [store sdl_setObject:imageSupported forName:SDLNameImageSupported]; + [self.store sdl_setObject:imageSupported forName:SDLRPCParameterNameImageSupported]; } - (NSNumber *)imageSupported { - return [store sdl_objectForName:SDLNameImageSupported]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameImageSupported ofClass:NSNumber.class error:&error]; +} + +- (void)setTextSupported:(nullable NSNumber *)textSupported { + [self.store sdl_setObject:textSupported forName:SDLRPCParameterNameTextSupported]; +} + +- (nullable NSNumber *)textSupported { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameTextSupported ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.h index b163fe5..d7a6b45 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.h @@ -13,6 +13,7 @@ @class SDLFileManager; @class SDLSoftButtonObject; @class SDLSoftButtonState; +@class SDLSystemCapabilityManager; NS_ASSUME_NONNULL_BEGIN @@ -35,6 +36,9 @@ typedef void(^SDLSoftButtonUpdateCompletionHandler)(NSError *__nullable error); */ @property (copy, nonatomic) NSArray *softButtonObjects; +/** + All transitions made in-between beginUpdates and this method will occur as one RPC update. + */ @property (assign, nonatomic, getter=isBatchingUpdates) BOOL batchUpdates; - (instancetype)init NS_UNAVAILABLE; @@ -44,22 +48,19 @@ typedef void(^SDLSoftButtonUpdateCompletionHandler)(NSError *__nullable error); @param connectionManager The manager that forwards RPCs @param fileManager The manager that updates images + @param systemCapabilityManager The system capability manager object for reading window capabilities @return A new instance of a soft button manager */ -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager; +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager; + +/// Starts the manager. This method is used internally. +- (void)start; /** * Stops the manager. This method is used internally. */ - (void)stop; -/** - Cause all transitions in between `beginUpdates` and this method call to occur in one RPC update. - - @param handler The handler called once the update is completed. - */ -- (void)updateWithCompletionHandler:(nullable SDLSoftButtonUpdateCompletionHandler)handler; - /** Returns a soft button object associated with the manager that is named the specified name or nil if nothing corresponds. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.m index 10e61fa..01a8d0c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.m @@ -9,11 +9,11 @@ #import "SDLSoftButtonManager.h" #import "SDLConnectionManagerType.h" -#import "SDLDisplayCapabilities.h" #import "SDLError.h" #import "SDLFileManager.h" #import "SDLLogMacros.h" #import "SDLOnHMIStatus.h" +#import "SDLPredefinedWindows.h" #import "SDLRegisterAppInterfaceResponse.h" #import "SDLRPCNotificationNotification.h" #import "SDLRPCResponseNotification.h" @@ -22,7 +22,13 @@ #import "SDLSoftButton.h" #import "SDLSoftButtonCapabilities.h" #import "SDLSoftButtonObject.h" +#import "SDLSoftButtonReplaceOperation.h" #import "SDLSoftButtonState.h" +#import "SDLSoftButtonTransitionOperation.h" +#import "SDLSystemCapabilityManager.h" +#import "SDLWindowCapability.h" +#import "SDLSystemCapability.h" +#import "SDLDisplayCapability.h" NS_ASSUME_NONNULL_BEGIN @@ -35,79 +41,85 @@ @interface SDLSoftButtonObject() @interface SDLSoftButtonManager() -@property (strong, nonatomic) NSArray *currentSoftButtons; - @property (weak, nonatomic) id connectionManager; @property (weak, nonatomic) SDLFileManager *fileManager; +@property (weak, nonatomic) SDLSystemCapabilityManager *systemCapabilityManager; -@property (strong, nonatomic, nullable) SDLShow *inProgressUpdate; -@property (copy, nonatomic, nullable) SDLSoftButtonUpdateCompletionHandler inProgressHandler; - -@property (assign, nonatomic) BOOL hasQueuedUpdate; -@property (copy, nonatomic, nullable) SDLSoftButtonUpdateCompletionHandler queuedUpdateHandler; +@property (strong, nonatomic) NSOperationQueue *transactionQueue; -@property (copy, nonatomic, nullable) SDLHMILevel currentLevel; -@property (strong, nonatomic, nullable) SDLDisplayCapabilities *displayCapabilities; @property (strong, nonatomic, nullable) SDLSoftButtonCapabilities *softButtonCapabilities; +@property (copy, nonatomic, nullable) SDLHMILevel currentLevel; -@property (assign, nonatomic) BOOL waitingOnHMILevelUpdateToUpdate; -@property (assign, nonatomic) BOOL isDirty; +@property (strong, nonatomic) NSMutableArray *batchQueue; @end @implementation SDLSoftButtonManager -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager { +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager{ self = [super init]; if (!self) { return nil; } _connectionManager = connectionManager; _fileManager = fileManager; + _systemCapabilityManager = systemCapabilityManager; _softButtonObjects = @[]; _currentLevel = nil; - _waitingOnHMILevelUpdateToUpdate = NO; - _isDirty = NO; + _transactionQueue = [self sdl_newTransactionQueue]; + _batchQueue = [NSMutableArray array]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_registerResponse:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_displayLayoutResponse:) name:SDLDidReceiveSetDisplayLayoutResponse object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusNotification:) name:SDLDidChangeHMIStatusNotification object:nil]; return self; } +- (void)start { + [self.systemCapabilityManager subscribeToCapabilityType:SDLSystemCapabilityTypeDisplays withObserver:self selector:@selector(sdl_displayCapabilityDidUpdate:)]; +} + - (void)stop { _softButtonObjects = @[]; _currentMainField1 = nil; - - _inProgressUpdate = nil; - _inProgressHandler = nil; - _hasQueuedUpdate = NO; - _queuedUpdateHandler = nil; _currentLevel = nil; - _displayCapabilities = nil; _softButtonCapabilities = nil; - _waitingOnHMILevelUpdateToUpdate = NO; - _isDirty = NO; + + [_transactionQueue cancelAllOperations]; + self.transactionQueue = [self sdl_newTransactionQueue]; + + [self.systemCapabilityManager unsubscribeFromCapabilityType:SDLSystemCapabilityTypeDisplays withObserver:self]; +} + +- (NSOperationQueue *)sdl_newTransactionQueue { + NSOperationQueue *queue = [[NSOperationQueue alloc] init]; + queue.name = @"SDLSoftButtonManager Transaction Queue"; + queue.maxConcurrentOperationCount = 1; + queue.qualityOfService = NSQualityOfServiceUserInitiated; + queue.suspended = YES; + + return queue; +} + +/// Suspend the queue if the soft button capabilities are nil (we assume that soft buttons are not supported) +/// OR if the HMI level is NONE since we want to delay sending RPCs until we're in non-NONE +- (void)sdl_updateTransactionQueueSuspended { + if (self.softButtonCapabilities == nil || [self.currentLevel isEqualToEnum:SDLHMILevelNone]) { + SDLLogD(@"Suspending the transaction queue. Current HMI level is NONE: %@, soft button capabilities are nil: %@", ([self.currentLevel isEqualToEnum:SDLHMILevelNone] ? @"YES" : @"NO"), (self.softButtonCapabilities == nil ? @"YES" : @"NO")); + self.transactionQueue.suspended = YES; + } else { + SDLLogD(@"Starting the transaction queue"); + self.transactionQueue.suspended = NO; + } } + +#pragma mark - Sending Soft Buttons + - (void)setSoftButtonObjects:(NSArray *)softButtonObjects { // Only update if something changed. This prevents, for example, an empty array being reset if (_softButtonObjects == softButtonObjects) { + SDLLogD(@"New soft button objects are equivalent to existing soft button objects, skipping..."); return; - } else { - self.isDirty = YES; - } - - self.inProgressUpdate = nil; - if (self.inProgressHandler != nil) { - self.inProgressHandler([NSError sdl_softButtonManager_pendingUpdateSuperseded]); - self.inProgressHandler = nil; - } - self.hasQueuedUpdate = NO; - if (self.queuedUpdateHandler != nil) { - self.queuedUpdateHandler([NSError sdl_softButtonManager_pendingUpdateSuperseded]); - self.queuedUpdateHandler = nil; } // Set the soft button ids. Check to make sure no two soft buttons have the same name, there aren't many soft buttons, so n^2 isn't going to be bad @@ -129,271 +141,115 @@ - (void)setSoftButtonObjects:(NSArray *)softButtonObjects _softButtonObjects = softButtonObjects; - [self updateWithCompletionHandler:nil]; -} + // We only need to pass the first `softButtonCapabilities` in the array due to the fact that all soft button capabilities are the same (i.e. there is no way to assign a `softButtonCapabilities` to a specific soft button). + SDLSoftButtonReplaceOperation *op = [[SDLSoftButtonReplaceOperation alloc] initWithConnectionManager:self.connectionManager fileManager:self.fileManager capabilities:self.softButtonCapabilities softButtonObjects:_softButtonObjects mainField1:self.currentMainField1]; -- (nullable SDLSoftButtonObject *)softButtonObjectNamed:(NSString *)name { - for (SDLSoftButtonObject *object in self.softButtonObjects) { - if ([object.name isEqualToString:name]) { - return object; - } - } - - return nil; -} - -- (void)sdl_transitionSoftButton:(SDLSoftButtonObject *)softButton { - self.isDirty = YES; - [self updateWithCompletionHandler:nil]; -} - -- (void)updateWithCompletionHandler:(nullable SDLSoftButtonUpdateCompletionHandler)handler { - // Don't send if we're batching - if (self.isBatchingUpdates || !self.isDirty) { return; } - - // Don't send if we're in HMI NONE - if (self.currentLevel == nil || [self.currentLevel isEqualToString:SDLHMILevelNone]) { - self.waitingOnHMILevelUpdateToUpdate = YES; - return; + if (self.isBatchingUpdates) { + [self.batchQueue removeAllObjects]; + [self.batchQueue addObject:op]; } else { - self.waitingOnHMILevelUpdateToUpdate = NO; + [self.transactionQueue cancelAllOperations]; + [self.transactionQueue addOperation:op]; } - - [self sdl_updateWithCompletionHandler:handler]; } -- (void)sdl_updateWithCompletionHandler:(nullable SDLSoftButtonUpdateCompletionHandler)handler { - SDLLogD(@"Updating soft buttons"); - self.isDirty = NO; - - if (self.inProgressUpdate != nil) { - SDLLogV(@"In progress update exists, queueing update"); - // If we already have a pending update, we're going to tell the old handler that it was superseded by a new update and then return - if (self.queuedUpdateHandler != nil) { - SDLLogV(@"Queued update already exists, superseding previous queued update"); - self.queuedUpdateHandler([NSError sdl_softButtonManager_pendingUpdateSuperseded]); - self.queuedUpdateHandler = nil; - } +- (void)sdl_transitionSoftButton:(SDLSoftButtonObject *)softButton { + SDLSoftButtonTransitionOperation *op = [[SDLSoftButtonTransitionOperation alloc] initWithConnectionManager:self.connectionManager capabilities:self.softButtonCapabilities softButtons:self.softButtonObjects mainField1:self.currentMainField1]; - if (handler != nil) { - self.queuedUpdateHandler = handler; - } else { - self.hasQueuedUpdate = YES; + if (self.isBatchingUpdates) { + for (SDLAsynchronousOperation *sbOperation in self.batchQueue) { + if ([sbOperation isMemberOfClass:[SDLSoftButtonTransitionOperation class]]) { + [self.batchQueue removeObject:sbOperation]; + } } - return; - } - - self.inProgressHandler = [handler copy]; - self.inProgressUpdate = [[SDLShow alloc] init]; - self.inProgressUpdate.mainField1 = self.currentMainField1 ?: @""; - - if ([self sdl_supportsSoftButtonImages]) { - [self sdl_uploadInitialStateImages]; - [self sdl_uploadOtherStateImages]; - } - - if (self.softButtonObjects == nil) { - SDLLogV(@"Soft button objects are nil, sending an empty array"); - self.inProgressUpdate.softButtons = @[]; - } else if (([self sdl_currentStateHasImages] && ![self sdl_allCurrentStateImagesAreUploaded]) - || ![self sdl_supportsSoftButtonImages]) { - // The images don't yet exist on the head unit, or we cannot use images, send a text update, if possible. Otherwise, don't send anything yet. - NSArray *textOnlyButtons = [self sdl_textButtonsForCurrentState]; - if (textOnlyButtons != nil) { - SDLLogV(@"Soft button images unavailable, sending text buttons"); - self.inProgressUpdate.softButtons = textOnlyButtons; - } else { - SDLLogV(@"Soft button images unavailable, text buttons unavailable"); - self.inProgressUpdate = nil; - return; - } + [self.batchQueue addObject:op]; } else { - SDLLogV(@"Sending soft buttons with images"); - self.inProgressUpdate.softButtons = [self sdl_softButtonsForCurrentState]; + [self.transactionQueue addOperation:op]; } - - __weak typeof(self) weakSelf = self; - [self.connectionManager sendConnectionRequest:self.inProgressUpdate withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - - SDLLogD(@"Soft button update completed"); - - strongSelf.inProgressUpdate = nil; - if (strongSelf.inProgressHandler != nil) { - strongSelf.inProgressHandler(error); - strongSelf.inProgressHandler = nil; - } - - if (strongSelf.hasQueuedUpdate) { - SDLLogV(@"Queued update exists, sending another update"); - [strongSelf updateWithCompletionHandler:[strongSelf.queuedUpdateHandler copy]]; - strongSelf.queuedUpdateHandler = nil; - strongSelf.hasQueuedUpdate = NO; - } - }]; } -#pragma mark - Images -- (BOOL)sdl_currentStateHasImages { - for (SDLSoftButtonObject *object in self.softButtonObjects) { - if (object.currentState.artwork != nil) { - return YES; - } - } +#pragma mark - Getting Soft Buttons - return NO; -} - -- (BOOL)sdl_allCurrentStateImagesAreUploaded { - for (SDLSoftButtonObject *button in self.softButtonObjects) { - SDLArtwork *artwork = button.currentState.artwork; - if (artwork != nil && ![self.fileManager hasUploadedFile:artwork]) { - return NO; +- (nullable SDLSoftButtonObject *)softButtonObjectNamed:(NSString *)name { + for (SDLSoftButtonObject *object in self.softButtonObjects) { + if ([object.name isEqualToString:name]) { + return object; } } - return YES; + return nil; } -- (BOOL)sdl_supportsSoftButtonImages { - BOOL supportsGraphics = self.displayCapabilities ? self.displayCapabilities.graphicSupported.boolValue : YES; - BOOL supportsSoftButtonImages = self.softButtonCapabilities ? self.softButtonCapabilities.imageSupported.boolValue : NO; - return (supportsGraphics && supportsSoftButtonImages); -} +#pragma mark - Getters / Setters -- (void)sdl_uploadInitialStateImages { - NSMutableArray *initialStatesToBeUploaded = [NSMutableArray array]; - // Upload all soft button images, the initial state images first, then the other states. We need to send updates when the initial state is ready. - for (SDLSoftButtonObject *object in self.softButtonObjects) { - if (object.currentState.artwork != nil && ![self.fileManager hasUploadedFile:object.currentState.artwork]) { - [initialStatesToBeUploaded addObject:object.currentState.artwork]; - } - } - - // Upload initial images, then other state images - if (initialStatesToBeUploaded.count > 0) { - SDLLogD(@"Uploading soft button initial artworks"); - [self.fileManager uploadArtworks:[initialStatesToBeUploaded copy] completionHandler:^(NSArray * _Nonnull artworkNames, NSError * _Nullable error) { - if (error != nil) { - SDLLogE(@"Error uploading soft button artworks: %@", error); - } +- (void)setBatchUpdates:(BOOL)batchUpdates { + _batchUpdates = batchUpdates; - SDLLogD(@"Soft button initial artworks uploaded"); - [self sdl_updateWithCompletionHandler:nil]; - }]; + if (!_batchUpdates) { + [self.transactionQueue addOperations:[self.batchQueue copy] waitUntilFinished:NO]; + [self.batchQueue removeAllObjects]; } } -- (void)sdl_uploadOtherStateImages { - NSMutableArray *otherStatesToBeUploaded = [NSMutableArray array]; - // Upload all soft button images, the initial state images first, then the other states. We need to send updates when the initial state is ready. - for (SDLSoftButtonObject *object in self.softButtonObjects) { - for (SDLSoftButtonState *state in object.states) { - if ([state.name isEqualToString:object.currentState.name]) { continue; } - if (state.artwork != nil && ![self.fileManager hasUploadedFile:state.artwork]) { - [otherStatesToBeUploaded addObject:state.artwork]; - } - } - } - - if (otherStatesToBeUploaded.count > 0) { - SDLLogD(@"Uploading soft button other state artworks"); - [self.fileManager uploadArtworks:[otherStatesToBeUploaded copy] completionHandler:^(NSArray * _Nonnull artworkNames, NSError * _Nullable error) { - if (error != nil) { - SDLLogE(@"Error uploading soft button artworks: %@", error); - } +- (void)setCurrentMainField1:(nullable NSString *)currentMainField1 { + _currentMainField1 = currentMainField1; - SDLLogD(@"Soft button other state artworks uploaded"); - // In case our soft button states have changed in the meantime - [self sdl_updateWithCompletionHandler:nil]; - }]; + for (NSUInteger i = 0; i < self.transactionQueue.operations.count; i++) { + if ([self.transactionQueue.operations[i] isMemberOfClass:[SDLSoftButtonReplaceOperation class]]) { + SDLSoftButtonReplaceOperation *op = self.transactionQueue.operations[i]; + op.mainField1 = currentMainField1; + } else if ([self.transactionQueue.operations[i] isMemberOfClass:[SDLSoftButtonTransitionOperation class]]) { + SDLSoftButtonTransitionOperation *op = self.transactionQueue.operations[i]; + op.mainField1 = currentMainField1; + } } } -#pragma mark - Creating Soft Buttons +#pragma mark - Observers -/** - Returns text soft buttons representing the initial states of the button objects, or nil if _any_ of the buttons' current states are image only buttons. +- (void)sdl_displayCapabilityDidUpdate:(SDLSystemCapability *)systemCapability { + SDLSoftButtonCapabilities *oldCapabilities = self.softButtonCapabilities; - @return The text soft buttons - */ -- (nullable NSArray *)sdl_textButtonsForCurrentState { - NSMutableArray *textButtons = [NSMutableArray arrayWithCapacity:self.softButtonObjects.count]; - for (SDLSoftButtonObject *buttonObject in self.softButtonObjects) { - SDLSoftButton *button = buttonObject.currentStateSoftButton; - if (button.text == nil) { - return nil; + // Extract and update the capabilities + NSArray *capabilities = systemCapability.displayCapabilities; + if (capabilities == nil || capabilities.count == 0) { + self.softButtonCapabilities = nil; + } else { + SDLDisplayCapability *mainDisplay = capabilities[0]; + for (SDLWindowCapability *windowCapability in mainDisplay.windowCapabilities) { + NSUInteger currentWindowID = windowCapability.windowID != nil ? windowCapability.windowID.unsignedIntegerValue : SDLPredefinedWindowsDefaultWindow; + if (currentWindowID != SDLPredefinedWindowsDefaultWindow) { continue; } + + self.softButtonCapabilities = windowCapability.softButtonCapabilities.firstObject; + break; } - - button.image = nil; - button.type = SDLSoftButtonTypeText; - [textButtons addObject:button]; } - return [textButtons copy]; -} + // Update the queue's suspend state + [self sdl_updateTransactionQueueSuspended]; -- (NSArray *)sdl_softButtonsForCurrentState { - NSMutableArray *softButtons = [NSMutableArray arrayWithCapacity:self.softButtonObjects.count]; - for (SDLSoftButtonObject *button in self.softButtonObjects) { - [softButtons addObject:button.currentStateSoftButton]; + // Auto-send an updated Show if we have new capabilities + if (self.softButtonObjects.count > 0 + && self.softButtonCapabilities != nil + && ![self.softButtonCapabilities isEqual:oldCapabilities]) { + SDLSoftButtonReplaceOperation *op = [[SDLSoftButtonReplaceOperation alloc] initWithConnectionManager:self.connectionManager fileManager:self.fileManager capabilities:self.softButtonCapabilities softButtonObjects:self.softButtonObjects mainField1:self.currentMainField1]; + [self.transactionQueue addOperation:op]; } - - return [softButtons copy]; } -#pragma mark - Getters - -- (BOOL)hasQueuedUpdate { - return (_queuedUpdateHandler != nil ?: _hasQueuedUpdate); -} - -#pragma mark - RPC Responses - -- (void)sdl_registerResponse:(SDLRPCResponseNotification *)notification { - SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response; - - if (!response.success.boolValue) { return; } - if (response.displayCapabilities == nil) { - SDLLogE(@"RegisterAppInterface succeeded but didn't send a display capabilities. A lot of things will probably break."); - return; - } - - self.softButtonCapabilities = response.softButtonCapabilities ? response.softButtonCapabilities.firstObject : nil; - self.displayCapabilities = response.displayCapabilities; -} - -- (void)sdl_displayLayoutResponse:(SDLRPCResponseNotification *)notification { - SDLSetDisplayLayoutResponse *response = (SDLSetDisplayLayoutResponse *)notification.response; +- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { + SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; - if (!response.success.boolValue) { return; } - if (response.displayCapabilities == nil) { - SDLLogE(@"SetDisplayLayout succeeded but didn't send a display capabilities. A lot of things will probably break."); + if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { return; } - self.softButtonCapabilities = response.softButtonCapabilities ? response.softButtonCapabilities.firstObject : nil; - self.displayCapabilities = response.displayCapabilities; - - // Auto-send an updated Show - if (self.softButtonObjects.count > 0) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { - SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; - - SDLHMILevel oldHMILevel = self.currentLevel; self.currentLevel = hmiStatus.hmiLevel; - // Auto-send an updated show if we were in NONE and now we are not - if ([oldHMILevel isEqualToString:SDLHMILevelNone] && ![self.currentLevel isEqualToString:SDLHMILevelNone] && self.waitingOnHMILevelUpdateToUpdate) { - [self updateWithCompletionHandler:nil]; - } + [self sdl_updateTransactionQueueSuspended]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.h index fe641a5..0de2f81 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.h @@ -10,6 +10,7 @@ #import "SDLNotificationConstants.h" +@class SDLArtwork; @class SDLSoftButton; @class SDLSoftButtonObject; @class SDLSoftButtonState; @@ -37,6 +38,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property (copy, nonatomic, readonly) SDLSoftButtonState *currentState; +/// Describes an on-screen button which may be presented in various contexts, e.g. templates or alerts @property (strong, nonatomic, readonly) SDLSoftButton *currentStateSoftButton; /** @@ -56,13 +58,24 @@ NS_ASSUME_NONNULL_BEGIN /** Create a single-state soft button. For example, a button that brings up a Perform Interaction menu. - @param name The name of the button - @param eventHandler The handler to be called when the button is in the current state and is pressed @param state The single state of the button + @param eventHandler The handler to be called when the button is pressed + @return The button object */ - (instancetype)initWithName:(NSString *)name state:(SDLSoftButtonState *)state handler:(nullable SDLRPCButtonNotificationHandler)eventHandler; +/** + Create a single-state soft button. For example, a button that brings up a Perform Interaction menu. + + @param name The name of the button + @param text The text to be displayed on the button + @param artwork The artwork to be displayed on the button + @param eventHandler The handler to be called when the button is pressed + @return The button object + */ +- (instancetype)initWithName:(NSString *)name text:(nullable NSString *)text artwork:(nullable SDLArtwork *)artwork handler:(nullable SDLRPCButtonNotificationHandler)eventHandler; + /** Transition the soft button to another state in the `states` property. The wrapper considers all transitions valid (assuming a state with that name exists). diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.m index 4274215..adb153e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.m @@ -53,12 +53,22 @@ - (instancetype)initWithName:(NSString *)name state:(SDLSoftButtonState *)state return [self initWithName:name states:@[state] initialStateName:state.name handler:eventHandler]; } +- (instancetype)initWithName:(NSString *)name text:(nullable NSString *)text artwork:(nullable SDLArtwork *)artwork handler:(nullable SDLRPCButtonNotificationHandler)eventHandler { + SDLSoftButtonState *implicitState = [[SDLSoftButtonState alloc] initWithStateName:name text:text artwork:artwork]; + return [self initWithName:name state:implicitState handler:eventHandler]; +} + - (BOOL)transitionToStateNamed:(NSString *)stateName { if ([self stateWithName:stateName] == nil) { SDLLogE(@"Attempted to transition to state: %@ on soft button: %@ but no state with that name was found", stateName, self.name); return NO; } + if (self.states.count == 1) { + SDLLogW(@"There's only one state, so no transitioning is possible!"); + return NO; + } + SDLLogD(@"Transitioning button %@ to state %@", self.name, stateName); self.currentStateName = stateName; [self.manager sdl_transitionSoftButton:self]; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.h new file mode 100644 index 0000000..f7a66b3 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.h @@ -0,0 +1,45 @@ +// +// SDLSoftButtonReplaceOperation.h +// SmartDeviceLink +// +// Created by Joel Fischer on 4/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLAsynchronousOperation.h" + +@class SDLSoftButtonCapabilities; +@class SDLFileManager; +@class SDLSoftButtonObject; + +@protocol SDLConnectionManagerType; + +NS_ASSUME_NONNULL_BEGIN + +/** + This class is an operation that takes a set of soft buttons and replaces the old set of soft buttons with the new set based on the capabilities available on the system. This operation will handle sending placeholder soft buttons with only text (if possible), uploading the initial state images, sending the initial state soft buttons with those images, and then uploading the other state images. + */ +@interface SDLSoftButtonReplaceOperation : SDLAsynchronousOperation + +/** + The primary text field on the system template. This is necessary to HAX a workaround for Sync 3. + */ +@property (strong, nonatomic) NSString *mainField1; + +/** + Initialize the replace operation + + @param connectionManager The manager that will send the resultant RPCs + @param fileManager The file manager that will handle uploading any images + @param capabilities The capabilites of the soft buttons on the current template + @param softButtonObjects The soft buttons that should be sent + @param mainField1 The primary text field of the system template + @return The operation + */ +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager capabilities:(nullable SDLSoftButtonCapabilities *)capabilities softButtonObjects:(NSArray *)softButtonObjects mainField1:(NSString *)mainField1; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.m new file mode 100644 index 0000000..d3a6873 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.m @@ -0,0 +1,273 @@ +// +// SDLSoftButtonReplaceOperation.m +// SmartDeviceLink +// +// Created by Joel Fischer on 4/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLSoftButtonReplaceOperation.h" + +#import "SDLArtwork.h" +#import "SDLConnectionManagerType.h" +#import "SDLFileManager.h" +#import "SDLLogMacros.h" +#import "SDLShow.h" +#import "SDLSoftButton.h" +#import "SDLSoftButtonCapabilities.h" +#import "SDLSoftButtonObject.h" +#import "SDLSoftButtonState.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSoftButtonReplaceOperation () + +@property (strong, nonatomic, nullable) SDLSoftButtonCapabilities *softButtonCapabilities; +@property (strong, nonatomic) NSArray *softButtonObjects; + +@property (weak, nonatomic) id connectionManager; +@property (weak, nonatomic) SDLFileManager *fileManager; +@property (copy, nonatomic, nullable) NSError *internalError; + +@end + +@implementation SDLSoftButtonReplaceOperation + +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager capabilities:(nullable SDLSoftButtonCapabilities *)capabilities softButtonObjects:(NSArray *)softButtonObjects mainField1:(NSString *)mainField1 { + self = [super init]; + if (!self) { return nil; } + + _connectionManager = connectionManager; + _fileManager = fileManager; + _softButtonCapabilities = capabilities; + _softButtonObjects = softButtonObjects; + _mainField1 = mainField1; + + return self; +} + +- (void)start { + [super start]; + if (self.isCancelled) { return; } + + // Check if soft buttons have images and, if so, if the images need to be uploaded + if (![self sdl_supportsSoftButtonImages]) { + // The module does not support images + SDLLogW(@"Soft button images are not supported. Attempting to send text-only soft buttons. If any button does not contain text, no buttons will be sent."); + + // Send text-only buttons if all current states for the soft buttons have text + __weak typeof(self) weakself = self; + [self sdl_sendCurrentStateTextOnlySoftButtonsWithCompletionHandler:^(BOOL success) { + __strong typeof(weakself) strongself = weakself; + if (!success) { + SDLLogE(@"Buttons will not be sent because the module does not support images and some of the buttons do not have text"); + } + [strongself finishOperation]; + }]; + } else if (![self sdl_allStateImagesAreUploaded]) { + // If there are images in the first soft button state that have not yet been uploaded, send a text-only version of the soft buttons (the text-only buttons will only be sent if all the first button states have text) + [self sdl_sendCurrentStateTextOnlySoftButtonsWithCompletionHandler:^(BOOL success) {}]; + + // Upload images used in the first soft button state + __weak typeof(self) weakself = self; + [self sdl_uploadInitialStateImagesWithCompletionHandler:^{ + SDLLogV(@"Finished sending images for the first soft button states"); + // Now that the images have been uploaded, send the soft buttons with images + __strong typeof(weakself) strongself = weakself; + [strongself sdl_sendCurrentStateSoftButtonsWithCompletionHandler:^{ + // Finally, upload the images used in the other button states + __strong typeof(weakself) strongself = weakself; + [strongself sdl_uploadOtherStateImagesWithCompletionHandler:^{ + __strong typeof(weakself) strongself = weakself; + SDLLogV(@"Finished sending images for the other soft button states"); + [strongself finishOperation]; + }]; + }]; + }]; + } else { + // All the images have been uploaded. Send initial soft buttons with images. + __weak typeof(self) weakself = self; + [self sdl_sendCurrentStateSoftButtonsWithCompletionHandler:^{ + __strong typeof(weakself) strongself = weakself; + SDLLogV(@"Finished sending soft buttons with images"); + [strongself finishOperation]; + }]; + } +} + + +#pragma mark - Uploading Images + +/// Upload the initial state images. +/// @param handler Called when all images have been uploaded +- (void)sdl_uploadInitialStateImagesWithCompletionHandler:(void (^)(void))handler { + NSMutableArray *initialStatesToBeUploaded = [NSMutableArray array]; + for (SDLSoftButtonObject *object in self.softButtonObjects) { + if ([self sdl_artworkNeedsUpload:object.currentState.artwork]) { + [initialStatesToBeUploaded addObject:object.currentState.artwork]; + } + } + + [self sdl_uploadImages:initialStatesToBeUploaded forStateName:@"Initial" completionHandler:handler]; +} + +/// Upload the other state images. +/// @param handler Called when all images have been uploaded +- (void)sdl_uploadOtherStateImagesWithCompletionHandler:(void (^)(void))handler { + NSMutableArray *otherStatesToBeUploaded = [NSMutableArray array]; + for (SDLSoftButtonObject *object in self.softButtonObjects) { + for (SDLSoftButtonState *state in object.states) { + if ([state.name isEqualToString:object.currentState.name]) { continue; } + if ([self sdl_artworkNeedsUpload:state.artwork]) { + [otherStatesToBeUploaded addObject:state.artwork]; + } + } + } + + [self sdl_uploadImages:otherStatesToBeUploaded forStateName:@"Other" completionHandler:handler]; +} + +/// Helper method for uploading images +/// @param images The images to upload +/// @param stateName The name of the button states for which the images are being uploaded. Used for logs. +/// @param completionHandler Called when all images have been uploaded +- (void)sdl_uploadImages:(NSArray *)images forStateName:(NSString *)stateName completionHandler:(void (^)(void))completionHandler { + if (images.count == 0) { + SDLLogV(@"No images to upload for %@ states", stateName); + completionHandler(); + return; + } + + SDLLogD(@"Uploading images for %@ states", stateName); + __weak typeof(self) weakself = self; + [self.fileManager uploadArtworks:[images copy] progressHandler:^BOOL(NSString * _Nonnull artworkName, float uploadPercentage, NSError * _Nullable error) { + __strong typeof(weakself) strongself = weakself; + SDLLogV(@"Uploaded %@ states images: %@, error: %@, percent complete: %f.2%%", stateName, artworkName, error, uploadPercentage * 100); + if (strongself.isCancelled) { + [strongself finishOperation]; + return NO; + } + + return YES; + } completionHandler:^(NSArray * _Nonnull artworkNames, NSError * _Nullable error) { + if (error != nil) { + SDLLogE(@"Error uploading %@ states images: %@", stateName, error); + } else { + SDLLogD(@"All %@ states images uploaded", stateName); + } + + completionHandler(); + }]; +} + + +#pragma mark - Sending the Soft Buttons + +- (void)sdl_sendCurrentStateSoftButtonsWithCompletionHandler:(void (^)(void))handler { + if (self.isCancelled) { + [self finishOperation]; + } + + SDLLogV(@"Preparing to send full soft buttons"); + NSMutableArray *softButtons = [NSMutableArray arrayWithCapacity:self.softButtonObjects.count]; + for (SDLSoftButtonObject *buttonObject in self.softButtonObjects) { + [softButtons addObject:buttonObject.currentStateSoftButton]; + } + + SDLShow *show = [[SDLShow alloc] init]; + show.mainField1 = self.mainField1; + show.softButtons = [softButtons copy]; + + [self.connectionManager sendConnectionRequest:show withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + if (error != nil) { + SDLLogW(@"Failed to update soft buttons with text buttons: %@", error); + } + + SDLLogD(@"Finished sending text only soft buttons"); + handler(); + }]; +} + +/** + Returns text soft buttons representing the current states of the button objects, or returns if _any_ of the buttons' current states are image only buttons. +*/ +- (void)sdl_sendCurrentStateTextOnlySoftButtonsWithCompletionHandler:(void (^)(BOOL success))handler { + if (self.isCancelled) { + [self finishOperation]; + } + + SDLLogV(@"Preparing to send text-only soft buttons"); + NSMutableArray *textButtons = [NSMutableArray arrayWithCapacity:self.softButtonObjects.count]; + for (SDLSoftButtonObject *buttonObject in self.softButtonObjects) { + SDLSoftButton *button = buttonObject.currentStateSoftButton; + if (button.text == nil) { + SDLLogW(@"Attempted to create text buttons, but some buttons don't support text, so no text-only soft buttons will be sent"); + handler(NO); + return; + } + + button.image = nil; + button.type = SDLSoftButtonTypeText; + [textButtons addObject:button]; + } + + SDLShow *show = [[SDLShow alloc] init]; + show.mainField1 = self.mainField1; + show.softButtons = [textButtons copy]; + + [self.connectionManager sendConnectionRequest:show withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + if (error != nil) { + SDLLogW(@"Failed to update soft buttons with text buttons: %@", error); + } + + SDLLogD(@"Finished sending text only soft buttons"); + handler(YES); + }]; +} + +#pragma mark - Images + +- (BOOL)sdl_artworkNeedsUpload:(SDLArtwork *)artwork { + return (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && self.softButtonCapabilities.imageSupported.boolValue && !artwork.isStaticIcon); +} + +/// Checks all the button states for images that need to be uploaded. +/// @return True if all images have been uploaded; false at least one image needs to be uploaded +- (BOOL)sdl_allStateImagesAreUploaded { + for (SDLSoftButtonObject *button in self.softButtonObjects) { + for (SDLSoftButtonState *state in button.states) { + SDLArtwork *artwork = state.artwork; + if (![self sdl_artworkNeedsUpload:artwork]) { continue; } + return NO; + } + } + + return YES; +} + +- (BOOL)sdl_supportsSoftButtonImages { + return self.softButtonCapabilities.imageSupported.boolValue; +} + +#pragma mark - Property Overrides + +- (void)finishOperation { + SDLLogV(@"Finishing soft button replace operation"); + [super finishOperation]; +} + +- (nullable NSString *)name { + return @"com.sdl.softbuttonmanager.replace"; +} + +- (NSOperationQueuePriority)queuePriority { + return NSOperationQueuePriorityNormal; +} + +- (nullable NSError *)error { + return self.internalError; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.h index 48b4d75..687192e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.h @@ -15,6 +15,7 @@ NS_ASSUME_NONNULL_BEGIN +/// A soft button state including data such as text, name and artwork @interface SDLSoftButtonState : NSObject /** @@ -47,6 +48,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, readonly) SDLSoftButton *softButton; +/// Initializer unavailable - (instancetype)init NS_UNAVAILABLE; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.m index a150a22..e3fb264 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.m @@ -32,6 +32,8 @@ @interface SDLSoftButtonState() @implementation SDLSoftButtonState - (instancetype)initWithStateName:(NSString *)stateName text:(nullable NSString *)text image:(nullable UIImage *)image { + NSParameterAssert((text != nil) || (image != nil)); + SDLArtwork *artwork = [[SDLArtwork alloc] initWithImage:image persistent:YES asImageFormat:SDLArtworkImageFormatPNG]; return [self initWithStateName:stateName text:text artwork:artwork]; } @@ -40,10 +42,7 @@ - (instancetype)initWithStateName:(NSString *)stateName text:(nullable NSString self = [super init]; if (!self) { return nil; } - if (artwork == nil && text == nil) { - SDLLogE(@"Attempted to create an invalid soft button state: text and artwork are both nil"); - return nil; - } + NSParameterAssert((text != nil) || (artwork != nil)); _name = stateName; _text = text; @@ -71,7 +70,7 @@ - (SDLSoftButtonType)type { - (nullable SDLImage *)image { if (self.artwork == nil) { return nil; } - return [[SDLImage alloc] initWithName:self.artwork.name ofType:SDLImageTypeDynamic isTemplate:self.artwork.isTemplate]; + return self.artwork.imageRPC; } - (NSString *)description { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.h new file mode 100644 index 0000000..2679c98 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.h @@ -0,0 +1,43 @@ +// +// SDLSoftButtonTransitionOperation.h +// SmartDeviceLink +// +// Created by Joel Fischer on 4/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLAsynchronousOperation.h" + +@class SDLSoftButtonCapabilities; +@class SDLSoftButtonObject; + +@protocol SDLConnectionManagerType; + +NS_ASSUME_NONNULL_BEGIN + +/** + This operation handles changing a set of soft button objects when some of those objects have changed state. + */ +@interface SDLSoftButtonTransitionOperation : SDLAsynchronousOperation + +/** + The primary text field on the system template. This is necessary to HAX a workaround for Sync 3. + */ +@property (strong, nonatomic) NSString *mainField1; + +/** + Initialize the transition operation + + @param connectionManager The manager that will send the resultant RPCs + @param capabilities The capabilites of the soft buttons on the current template + @param softButtons The soft buttons that should be sent + @param mainField1 The primary text field of the system template + @return The transition operation + */ +- (instancetype)initWithConnectionManager:(id)connectionManager capabilities:(SDLSoftButtonCapabilities *)capabilities softButtons:(NSArray *)softButtons mainField1:(NSString *)mainField1; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.m new file mode 100644 index 0000000..add0348 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.m @@ -0,0 +1,92 @@ +// +// SDLSoftButtonTransitionOperation.m +// SmartDeviceLink +// +// Created by Joel Fischer on 4/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLSoftButtonTransitionOperation.h" + +#import "SDLConnectionManagerType.h" +#import "SDLFileManager.h" +#import "SDLLogMacros.h" +#import "SDLSoftButtonCapabilities.h" +#import "SDLShow.h" +#import "SDLSoftButton.h" +#import "SDLSoftButtonObject.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSoftButtonTransitionOperation () + +@property (strong, nonatomic) SDLSoftButtonCapabilities *softButtonCapabilities; +@property (strong, nonatomic) NSArray *softButtons; + +@property (weak, nonatomic) id connectionManager; +@property (copy, nonatomic, nullable) NSError *internalError; + +@end + +@implementation SDLSoftButtonTransitionOperation + +- (instancetype)initWithConnectionManager:(id)connectionManager capabilities:(SDLSoftButtonCapabilities *)capabilities softButtons:(NSArray *)softButtons mainField1:(NSString *)mainField1 { + self = [super init]; + if (!self) { return nil; } + + _connectionManager = connectionManager; + _softButtonCapabilities = capabilities; + _softButtons = softButtons; + _mainField1 = mainField1; + + return self; +} + +- (void)start { + [super start]; + if (self.isCancelled) { return; } + + [self sdl_sendNewSoftButtons]; +} + +- (void)sdl_sendNewSoftButtons { + SDLShow *newShow = [[SDLShow alloc] init]; + newShow.mainField1 = self.mainField1; + newShow.softButtons = [self sdl_currentStateSoftButtonsForObjects:self.softButtons]; + + [self.connectionManager sendConnectionRequest:newShow withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + if (error != nil) { + SDLLogW(@"Failed to transition soft button to new state. Error: %@, Response: %@", error, response); + self.internalError = error; + } + + [self finishOperation]; + }]; +} + +- (NSArray *)sdl_currentStateSoftButtonsForObjects:(NSArray *)objects { + NSMutableArray *softButtons = [NSMutableArray arrayWithCapacity:objects.count]; + for (SDLSoftButtonObject *button in objects) { + [softButtons addObject:button.currentStateSoftButton]; + } + + return [softButtons copy]; +} + +#pragma mark - Property Overrides + +- (nullable NSString *)name { + return @"com.sdl.softbuttonmanager.transition"; +} + +- (NSOperationQueuePriority)queuePriority { + return NSOperationQueuePriorityNormal; +} + +- (nullable NSError *)error { + return self.internalError; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.h index ea8782d..31b69d8 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.h @@ -43,8 +43,16 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLSpeak : SDLRPCRequest +/// Convenience init to create a speak message +/// +/// @param ttsText The text to speak +/// @return An SDLSpeak object - (instancetype)initWithTTS:(NSString *)ttsText; +/// Convenience init to create a speak message +/// +/// @param ttsChunks An array of TTSChunk structs which, taken together, specify the phrase to be spoken +/// @return An SDLSpeak object - (instancetype)initWithTTSChunks:(NSArray *)ttsChunks; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.m index 35516ff..4a8b182 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.m @@ -5,18 +5,22 @@ #import "SDLSpeak.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTTSChunk.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSpeak +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSpeak]) { + if (self = [super initWithName:SDLRPCFunctionNameSpeak]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithTTS:(NSString *)ttsText { NSArray *ttsChunks = [SDLTTSChunk textChunksFromString:ttsText]; @@ -35,11 +39,12 @@ - (instancetype)initWithTTSChunks:(NSArray *)ttsChunks { } - (void)setTtsChunks:(NSArray *)ttsChunks { - [parameters sdl_setObject:ttsChunks forName:SDLNameTTSChunks]; + [self.parameters sdl_setObject:ttsChunks forName:SDLRPCParameterNameTTSChunks]; } - (NSArray *)ttsChunks { - return [parameters sdl_objectsForName:SDLNameTTSChunks ofClass:SDLTTSChunk.class]; + NSError *error = nil; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameTTSChunks ofClass:SDLTTSChunk.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeakResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeakResponse.m index f8e8a24..e3cd91a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeakResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeakResponse.m @@ -5,17 +5,21 @@ #import "SDLSpeakResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSpeakResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSpeak]) { + if (self = [super initWithName:SDLRPCFunctionNameSpeak]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeechCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeechCapabilities.h index 6f25dee..985de61 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeechCapabilities.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeechCapabilities.h @@ -4,7 +4,7 @@ #import "SDLEnum.h" -/* +/** * Contains information about TTS capabilities on the SDL platform. Used in RegisterAppInterfaceResponse, and TTSChunk. * * @since SDL 1.0 diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.h index 1c1ebde..0564583 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.h @@ -13,6 +13,22 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLStartTime : SDLRPCStruct +/** + Create a time struct with a time interval (time in seconds). Fractions of the second will be eliminated and rounded down. + + @param timeInterval The time interval to transform into hours, minutes, seconds + @return The object + */ +- (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval; + +/** + Create a time struct with hours, minutes, and seconds + + @param hours The number of hours + @param minutes The number of minutes + @param seconds The number of seconds + @return The object + */ - (instancetype)initWithHours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.m index df8490f..4fa55b9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.m @@ -5,12 +5,25 @@ #import "SDLStartTime.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLStartTime +- (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval { + self = [self init]; + if (!self) { return nil; } + + // https://stackoverflow.com/a/15304826/1221798 + long seconds = lround(timeInterval); + self.hours = @(seconds / 3600); + self.minutes = @((seconds % 3600) / 60); + self.seconds = @(seconds % 60); + + return self; +} + - (instancetype)initWithHours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds { self = [self init]; if (!self) { @@ -25,27 +38,30 @@ - (instancetype)initWithHours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8 } - (void)setHours:(NSNumber *)hours { - [store sdl_setObject:hours forName:SDLNameHours]; + [self.store sdl_setObject:hours forName:SDLRPCParameterNameHours]; } - (NSNumber *)hours { - return [store sdl_objectForName:SDLNameHours]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameHours ofClass:NSNumber.class error:&error]; } - (void)setMinutes:(NSNumber *)minutes { - [store sdl_setObject:minutes forName:SDLNameMinutes]; + [self.store sdl_setObject:minutes forName:SDLRPCParameterNameMinutes]; } - (NSNumber *)minutes { - return [store sdl_objectForName:SDLNameMinutes]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMinutes ofClass:NSNumber.class error:&error]; } - (void)setSeconds:(NSNumber *)seconds { - [store sdl_setObject:seconds forName:SDLNameSeconds]; + [self.store sdl_setObject:seconds forName:SDLRPCParameterNameSeconds]; } - (NSNumber *)seconds { - return [store sdl_objectForName:SDLNameSeconds]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameSeconds ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStateMachine.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStateMachine.m index ffc2695..1819584 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStateMachine.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStateMachine.m @@ -124,6 +124,8 @@ - (void)setToState:(SDLState *)state fromOldState:(nullable SDLState *)oldState self.currentState = oldState; } + self.currentState = state; + if (shouldCall) { SEL didEnter = NSSelectorFromString([NSString stringWithFormat:SDLStateMachineTransitionFormatDidEnter, state]); #pragma clang diagnostic push @@ -133,8 +135,6 @@ - (void)setToState:(SDLState *)state fromOldState:(nullable SDLState *)oldState #pragma clang diagnostic pop } } - - self.currentState = state; } /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStaticIconName.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStaticIconName.h index fcda703..db143a9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStaticIconName.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStaticIconName.h @@ -8,892 +8,892 @@ #import "SDLEnum.h" -/* +/** * Static icon names */ typedef SDLEnum SDLStaticIconName SDL_SWIFT_ENUM; -/* +/** * Static icon accept call / active phone call in progress / initiate a phone call */ extern SDLStaticIconName const SDLStaticIconNameAcceptCall; -/* +/** * Static icon add waypoint */ extern SDLStaticIconName const SDLStaticIconNameAddWaypoint; -/* +/** * Static icon album */ extern SDLStaticIconName const SDLStaticIconNameAlbum; -/* +/** * Static icon ambient lighting */ extern SDLStaticIconName const SDLStaticIconNameAmbientLighting; -/* +/** * Static icon arrow - north */ extern SDLStaticIconName const SDLStaticIconNameArrowNorth; -/* +/** * Static icon audio mute */ extern SDLStaticIconName const SDLStaticIconNameAudioMute; -/* +/** * Static icon audiobook episode */ extern SDLStaticIconName const SDLStaticIconNameAudiobookEpisode; -/* +/** * Static icon audiobook narrator */ extern SDLStaticIconName const SDLStaticIconNameAudiobookNarrator; -/* +/** * Static icon auxillary audio */ extern SDLStaticIconName const SDLStaticIconNameAuxillaryAudio; -/* +/** * Static icon back / return */ extern SDLStaticIconName const SDLStaticIconNameBack; -/* +/** * Static icon battery capacity 0 of 5 */ extern SDLStaticIconName const SDLStaticIconNameBatteryCapacity0Of5; -/* +/** * Static icon battery capacity 1 of 5 */ extern SDLStaticIconName const SDLStaticIconNameBatteryCapacity1Of5; -/* +/** * Static icon battery capacity 2 of 5 */ extern SDLStaticIconName const SDLStaticIconNameBatteryCapacity2Of5; -/* +/** * Static icon battery capacity 3 of 5 */ extern SDLStaticIconName const SDLStaticIconNameBatteryCapacity3Of5; -/* +/** * Static icon battery capacity 4 of 5 */ extern SDLStaticIconName const SDLStaticIconNameBatteryCapacity4Of5; -/* +/** * Static icon battery capacity 5 of 5 */ extern SDLStaticIconName const SDLStaticIconNameBatteryCapacity5Of5; -/* +/** * Static icon bluetooth audio source */ extern SDLStaticIconName const SDLStaticIconNameBluetoothAudioSource; -/* +/** * Static icon bluetooth1 */ extern SDLStaticIconName const SDLStaticIconNameBluetooth1; -/* +/** * Static icon bluetooth2 */ extern SDLStaticIconName const SDLStaticIconNameBluetooth2; -/* +/** * Static icon browse */ extern SDLStaticIconName const SDLStaticIconNameBrowse; -/* +/** * Static icon cell phone in roaming mode */ extern SDLStaticIconName const SDLStaticIconNameCellPhoneInRoamingMode; -/* +/** * Static icon cell service signal strength 0 of 5 bars */ extern SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength0Of5Bars; -/* +/** * Static icon cell service signal strength 1 of 5 bars */ extern SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength1Of5Bars; -/* +/** * Static icon cell service signal strength 2 of 5 bars */ extern SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength2Of5Bars; -/* +/** * Static icon cell service signal strength 3 of 5 bars */ extern SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength3Of5Bars; -/* +/** * Static icon cell service signal strength 4 of 5 bars */ extern SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength4Of5Bars; -/* +/** * Static icon cell service signal strength 5 of 5 bars */ extern SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength5Of5Bars; -/* +/** * Static icon change lane left */ extern SDLStaticIconName const SDLStaticIconNameChangeLaneLeft; -/* +/** * Static icon change lane right */ extern SDLStaticIconName const SDLStaticIconNameChangeLaneRight; -/* +/** * Static icon check box checked */ extern SDLStaticIconName const SDLStaticIconNameCheckBoxChecked; -/* +/** * Static icon check box unchecked */ extern SDLStaticIconName const SDLStaticIconNameCheckBoxUnchecked; -/* +/** * Static icon climate */ extern SDLStaticIconName const SDLStaticIconNameClimate; -/* +/** * Static icon clock */ extern SDLStaticIconName const SDLStaticIconNameClock; -/* +/** * Static icon compose (e.g. message) */ extern SDLStaticIconName const SDLStaticIconNameCompose; -/* +/** * Static icon contact / person */ extern SDLStaticIconName const SDLStaticIconNameContact; -/* +/** * Static icon continue */ extern SDLStaticIconName const SDLStaticIconNameContinue; -/* +/** * Static icon dash / bullet point */ extern SDLStaticIconName const SDLStaticIconNameDash; -/* +/** * Static icon date / calendar */ extern SDLStaticIconName const SDLStaticIconNameDate; -/* +/** * Static icon delete/remove - trash */ extern SDLStaticIconName const SDLStaticIconNameDelete; -/* +/** * Static icon destination */ extern SDLStaticIconName const SDLStaticIconNameDestination; -/* +/** * Static icon destination ferry ahead */ extern SDLStaticIconName const SDLStaticIconNameDestinationFerryAhead; -/* +/** * Static icon ebookmark (e.g. message, feed) */ extern SDLStaticIconName const SDLStaticIconNameEbookmark; -/* +/** * Static icon empty (i.e. no image) */ extern SDLStaticIconName const SDLStaticIconNameEmpty; -/* +/** * Static icon end call / reject call */ extern SDLStaticIconName const SDLStaticIconNameEndCall; -/* +/** * Static icon fail / X */ extern SDLStaticIconName const SDLStaticIconNameFail; -/* +/** * Static icon fast forward 30 secs */ extern SDLStaticIconName const SDLStaticIconNameFastForward30Secs; -/* +/** * Static icon favorite / heart */ extern SDLStaticIconName const SDLStaticIconNameFavoriteHeart; -/* +/** * Static icon favorite / star */ extern SDLStaticIconName const SDLStaticIconNameFavoriteStar; -/* +/** * Static icon fax number */ extern SDLStaticIconName const SDLStaticIconNameFaxNumber; -/* +/** * Static icon filename */ extern SDLStaticIconName const SDLStaticIconNameFilename; -/* +/** * Static icon filter / search */ extern SDLStaticIconName const SDLStaticIconNameFilter; -/* +/** * Static icon folder */ extern SDLStaticIconName const SDLStaticIconNameFolder; -/* +/** * Static icon fuel prices */ extern SDLStaticIconName const SDLStaticIconNameFuelPrices; -/* +/** * Static icon full map */ extern SDLStaticIconName const SDLStaticIconNameFullMap; -/* +/** * Static icon generic phone number */ extern SDLStaticIconName const SDLStaticIconNameGenericPhoneNumber; -/* +/** * Static icon genre */ extern SDLStaticIconName const SDLStaticIconNameGenre; -/* +/** * Static icon global keyboard */ extern SDLStaticIconName const SDLStaticIconNameGlobalKeyboard; -/* +/** * Static icon highway exit information */ extern SDLStaticIconName const SDLStaticIconNameHighwayExitInformation; -/* +/** * Static icon home phone number */ extern SDLStaticIconName const SDLStaticIconNameHomePhoneNumber; -/* +/** * Static icon hyperlink */ extern SDLStaticIconName const SDLStaticIconNameHyperlink; -/* +/** * Static icon ID3 tag unknown */ extern SDLStaticIconName const SDLStaticIconNameID3TagUnknown; -/* +/** * Static icon incoming calls (in list of phone calls) */ extern SDLStaticIconName const SDLStaticIconNameIncomingCalls; -/* +/** * Static icon information */ extern SDLStaticIconName const SDLStaticIconNameInformation; -/* +/** * Static icon IPOD media source */ extern SDLStaticIconName const SDLStaticIconNameIPodMediaSource; -/* +/** * Static icon join calls */ extern SDLStaticIconName const SDLStaticIconNameJoinCalls; -/* +/** * Static icon keep left */ extern SDLStaticIconName const SDLStaticIconNameKeepLeft; -/* +/** * Static icon keep right */ extern SDLStaticIconName const SDLStaticIconNameKeepRight; -/* +/** * Static icon key / keycode */ extern SDLStaticIconName const SDLStaticIconNameKey; -/* +/** * Static icon left */ extern SDLStaticIconName const SDLStaticIconNameLeft; -/* +/** * Static icon left arrow / back */ extern SDLStaticIconName const SDLStaticIconNameLeftArrow; -/* +/** * Static icon left exit */ extern SDLStaticIconName const SDLStaticIconNameLeftExit; -/* +/** * Static icon LINE IN audio source */ extern SDLStaticIconName const SDLStaticIconNameLineInAudioSource; -/* +/** * Static icon locked */ extern SDLStaticIconName const SDLStaticIconNameLocked; -/* +/** * Static icon media control - left arrow */ extern SDLStaticIconName const SDLStaticIconNameMediaControlLeftArrow; -/* +/** * Static icon media control - recording */ extern SDLStaticIconName const SDLStaticIconNameMediaControlRecording; -/* +/** * Static icon media control - right arrow */ extern SDLStaticIconName const SDLStaticIconNameMediaControlRightArrow; -/* +/** * Static icon media control - stop (e.g. streaming) */ extern SDLStaticIconName const SDLStaticIconNameMediaControlStop; -/* +/** * Static icon microphone */ extern SDLStaticIconName const SDLStaticIconNameMicrophone; -/* +/** * Static icon missed calls (in list of phone calls) */ extern SDLStaticIconName const SDLStaticIconNameMissedCalls; -/* +/** * Static icon mobile phone number */ extern SDLStaticIconName const SDLStaticIconNameMobilePhoneNumber; -/* +/** * Static icon move down / download */ extern SDLStaticIconName const SDLStaticIconNameMoveDown; -/* +/** * Static icon move up */ extern SDLStaticIconName const SDLStaticIconNameMoveUp; -/* +/** * Static icon MP3 tag artist */ extern SDLStaticIconName const SDLStaticIconNameMP3TagArtist; -/* +/** * Static icon navigation / navigation settings */ extern SDLStaticIconName const SDLStaticIconNameNavigation; -/* +/** * Static icon navigation current direction */ extern SDLStaticIconName const SDLStaticIconNameNavigationCurrentDirection; -/* +/** * Static icon negative rating - thumbs down */ extern SDLStaticIconName const SDLStaticIconNameNegativeRatingThumbsDown; -/* +/** * Static icon new/unread text message/email */ extern SDLStaticIconName const SDLStaticIconNameNew; -/* +/** * Static icon office phone number / work phone number */ extern SDLStaticIconName const SDLStaticIconNameOfficePhoneNumber; -/* +/** * Static icon opened/read text message/email */ extern SDLStaticIconName const SDLStaticIconNameOpened; -/* +/** * Static icon origin / nearby locale / current position */ extern SDLStaticIconName const SDLStaticIconNameOrigin; -/* +/** * Static icon outgoing calls (in list of phone calls) */ extern SDLStaticIconName const SDLStaticIconNameOutgoingCalls; -/* +/** * Static icon play / pause - pause active */ extern SDLStaticIconName const SDLStaticIconNamePause; -/* +/** * Static icon phone call 1 */ extern SDLStaticIconName const SDLStaticIconNamePhoneCall1; -/* +/** * Static icon phone call 2 */ extern SDLStaticIconName const SDLStaticIconNamePhoneCall2; -/* +/** * Static icon phone device */ extern SDLStaticIconName const SDLStaticIconNamePhoneDevice; -/* +/** * Static icon phonebook */ extern SDLStaticIconName const SDLStaticIconNamePhonebook; -/* +/** * Static icon photo / picture */ extern SDLStaticIconName const SDLStaticIconNamePhoto; -/* +/** * Static icon play / pause - play active */ extern SDLStaticIconName const SDLStaticIconNamePlay; -/* +/** * Static icon playlist */ extern SDLStaticIconName const SDLStaticIconNamePlaylist; -/* +/** * Static icon pop-up */ extern SDLStaticIconName const SDLStaticIconNamePopUp; -/* +/** * Static icon positive rating - thumbs up */ extern SDLStaticIconName const SDLStaticIconNamePositiveRatingThumbsUp; -/* +/** * Static icon power */ extern SDLStaticIconName const SDLStaticIconNamePower; -/* +/** * Static icon primary phone (favorite) */ extern SDLStaticIconName const SDLStaticIconNamePrimaryPhone; -/* +/** * Static icon radio button checked */ extern SDLStaticIconName const SDLStaticIconNameRadioButtonChecked; -/* +/** * Static icon radio button unchecked */ extern SDLStaticIconName const SDLStaticIconNameRadioButtonUnchecked; -/* +/** * Static icon recent calls / history */ extern SDLStaticIconName const SDLStaticIconNameRecentCalls; -/* +/** * Static icon recent destinations */ extern SDLStaticIconName const SDLStaticIconNameRecentDestinations; -/* +/** * Static icon redo */ extern SDLStaticIconName const SDLStaticIconNameRedo; -/* +/** * Static icon refresh */ extern SDLStaticIconName const SDLStaticIconNameRefresh; -/* +/** * Static icon remote diagnostics - check engine */ extern SDLStaticIconName const SDLStaticIconNameRemoteDiagnosticsCheckEngine; -/* +/** * Static icon rendered 911 assist / emergency assistance */ extern SDLStaticIconName const SDLStaticIconNameRendered911Assist; -/* +/** * Static icon repeat */ extern SDLStaticIconName const SDLStaticIconNameRepeat; -/* +/** * Static icon repeat play */ extern SDLStaticIconName const SDLStaticIconNameRepeatPlay; -/* +/** * Static icon reply */ extern SDLStaticIconName const SDLStaticIconNameReply; -/* +/** * Static icon rewind 30 secs */ extern SDLStaticIconName const SDLStaticIconNameRewind30Secs; -/* +/** * Static icon right */ extern SDLStaticIconName const SDLStaticIconNameRight; -/* +/** * Static icon right exit */ extern SDLStaticIconName const SDLStaticIconNameRightExit; -/* +/** * Static icon ringtones */ extern SDLStaticIconName const SDLStaticIconNameRingtones; -/* +/** * Static icon roundabout left hand 1 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand1; -/* +/** * Static icon roundabout left hand 2 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand2; -/* +/** * Static icon roundabout left hand 3 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand3; -/* +/** * Static icon roundabout left hand 4 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand4; -/* +/** * Static icon roundabout left hand 5 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand5; -/* +/** * Static icon roundabout left hand 6 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand6; -/* +/** * Static icon roundabout left hand 7 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand7; -/* +/** * Static icon roundabout right hand 1 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand1; -/* +/** * Static icon roundabout right hand 2 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand2; -/* +/** * Static icon roundabout right hand 3 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand3; -/* +/** * Static icon roundabout right hand 4 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand4; -/* +/** * Static icon roundabout right hand 5 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand5; -/* +/** * Static icon roundabout right hand 6 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand6; -/* +/** * Static icon roundabout right hand 7 */ extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand7; -/* +/** * Static icon RSS */ extern SDLStaticIconName const SDLStaticIconNameRSS; -/* +/** * Static icon settings / menu */ extern SDLStaticIconName const SDLStaticIconNameSettings; -/* +/** * Static icon sharp left */ extern SDLStaticIconName const SDLStaticIconNameSharpLeft; -/* +/** * Static icon sharp right */ extern SDLStaticIconName const SDLStaticIconNameSharpRight; -/* +/** * Static icon show */ extern SDLStaticIconName const SDLStaticIconNameShow; -/* +/** * Static icon shuffle play */ extern SDLStaticIconName const SDLStaticIconNameShufflePlay; -/* +/** * Static icon ski places / elevation / altitude */ extern SDLStaticIconName const SDLStaticIconNameSkiPlaces; -/* +/** * Static icon slight left */ extern SDLStaticIconName const SDLStaticIconNameSlightLeft; -/* +/** * Static icon slight right */ extern SDLStaticIconName const SDLStaticIconNameSlightRight; -/* +/** * Static icon smartphone */ extern SDLStaticIconName const SDLStaticIconNameSmartphone; -/* +/** * Static icon sort list */ extern SDLStaticIconName const SDLStaticIconNameSortList; -/* +/** * Static icon speed dial numbers - number 0 */ extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber0; -/* +/** * Static icon speed dial numbers - number 1 */ extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber1; -/* +/** * Static icon speed dial numbers - number 2 */ extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber2; -/* +/** * Static icon speed dial numbers - number 3 */ extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber3; -/* +/** * Static icon speed dial numbers - number 4 */ extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber4; -/* +/** * Static icon speed dial numbers - number 5 */ extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber5; -/* +/** * Static icon speed dial numbers - number 6 */ extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber6; -/* +/** * Static icon speed dial numbers - number 7 */ extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber7; -/* +/** * Static icon speed dial numbers - number 8 */ extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber8; -/* +/** * Static icon speed dial numbers - number 9 */ extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber9; -/* +/** * Static icon success / check */ extern SDLStaticIconName const SDLStaticIconNameSuccess; -/* +/** * Static icon track title / song title */ extern SDLStaticIconName const SDLStaticIconNameTrackTitle; -/* +/** * Static icon traffic report */ extern SDLStaticIconName const SDLStaticIconNameTrafficReport; -/* +/** * Static icon turn list */ extern SDLStaticIconName const SDLStaticIconNameTurnList; -/* +/** * Static icon u-turn left traffic */ extern SDLStaticIconName const SDLStaticIconNameUTurnLeftTraffic; -/* +/** * Static icon u-turn right traffic */ extern SDLStaticIconName const SDLStaticIconNameUTurnRightTraffic; -/* +/** * Static icon undo */ extern SDLStaticIconName const SDLStaticIconNameUndo; -/* +/** * Static icon unlocked */ extern SDLStaticIconName const SDLStaticIconNameUnlocked; -/* +/** * Static icon USB media audio source */ extern SDLStaticIconName const SDLStaticIconNameUSBMediaAudioSource; -/* +/** * Static icon voice control scrollbar - list item no. 1 */ extern SDLStaticIconName const SDLStaticIconNameVoiceControlScrollbarListItemNo1; -/* +/** * Static icon voice control scrollbar - list item no. 2 */ extern SDLStaticIconName const SDLStaticIconNameVoiceControlScrollbarListItemNo2; -/* +/** * Static icon voice control scrollbar - list item no. 3 */ extern SDLStaticIconName const SDLStaticIconNameVoiceControlScrollbarListItemNo3; -/* +/** * Static icon voice control scrollbar - list item no. 4 */ extern SDLStaticIconName const SDLStaticIconNameVoiceControlScrollbarListItemNo4; -/* +/** * Static icon voice recognition - failed */ extern SDLStaticIconName const SDLStaticIconNameVoiceRecognitionFailed; -/* +/** * Static icon voice recognition - pause */ extern SDLStaticIconName const SDLStaticIconNameVoiceRecognitionPause; -/* +/** * Static icon voice recognition - successful */ extern SDLStaticIconName const SDLStaticIconNameVoiceRecognitionSuccessful; -/* +/** * Static icon voice recognition - system active */ extern SDLStaticIconName const SDLStaticIconNameVoiceRecognitionSystemActive; -/* +/** * Static icon voice recognition - system listening */ extern SDLStaticIconName const SDLStaticIconNameVoiceRecognitionSystemListening; -/* +/** * Static icon voice recognition - try again */ extern SDLStaticIconName const SDLStaticIconNameVoiceRecognitionTryAgain; -/* +/** * Static icon warning / safety alert */ extern SDLStaticIconName const SDLStaticIconNameWarning; -/* +/** * Static icon weather */ extern SDLStaticIconName const SDLStaticIconNameWeather; -/* +/** * Static icon wifi full */ extern SDLStaticIconName const SDLStaticIconNameWifiFull; -/* +/** * Static icon zoom in */ extern SDLStaticIconName const SDLStaticIconNameZoomIn; -/* +/** * Static icon zoom out */ extern SDLStaticIconName const SDLStaticIconNameZoomOut; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.h index ffd2493..22288c1 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.h @@ -13,6 +13,11 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLStationIDNumber : SDLRPCStruct +/// Convenience init + +/// @param countryCode Binary Representation of ITU Country Code. USA Code is 001 +/// @param id Binary representation of unique facility ID assigned by the FCC +/// @return An SDLStationIDNumber object - (instancetype)initWithCountryCode:(nullable NSNumber *)countryCode fccFacilityId:(nullable NSNumber *)id; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.m index db1e6f0..a88afe7 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.m @@ -2,7 +2,7 @@ // #import "SDLStationIDNumber.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -22,20 +22,20 @@ - (instancetype)initWithCountryCode:(nullable NSNumber *)countryCode fcc } - (void)setCountryCode:(nullable NSNumber *)countryCode { - [store sdl_setObject:countryCode forName:SDLNameCountryCode]; + [self.store sdl_setObject:countryCode forName:SDLRPCParameterNameCountryCode]; } - (nullable NSNumber *)countryCode { - return [store sdl_objectForName:SDLNameCountryCode]; + return [self.store sdl_objectForName:SDLRPCParameterNameCountryCode ofClass:NSNumber.class error:nil]; } - (void)setFccFacilityId:(nullable NSNumber *)fccFacilityId { - [store sdl_setObject:fccFacilityId forName:SDLNameFCCFacilityId]; + [self.store sdl_setObject:fccFacilityId forName:SDLRPCParameterNameFCCFacilityId]; } - (nullable NSNumber *)fccFacilityId { - return [store sdl_objectForName:SDLNameFCCFacilityId]; + return [self.store sdl_objectForName:SDLRPCParameterNameFCCFacilityId ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamDelegate.h deleted file mode 100644 index f6b0115..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamDelegate.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// SDLStreamDelegate.h - -#import - -NS_ASSUME_NONNULL_BEGIN - -// Convenience typedefs -typedef void (^SDLStreamOpenHandler)(NSStream *stream); -typedef void (^SDLStreamHasBytesHandler)(NSInputStream *istream); -typedef void (^SDLStreamHasSpaceHandler)(NSOutputStream *ostream); -typedef void (^SDLStreamErrorHandler)(NSStream *stream); -typedef void (^SDLStreamEndHandler)(NSStream *stream); - - -@interface SDLStreamDelegate : NSObject - -@property (nullable, nonatomic, copy) SDLStreamOpenHandler streamOpenHandler; -@property (nullable, nonatomic, copy) SDLStreamHasBytesHandler streamHasBytesHandler; -@property (nullable, nonatomic, copy) SDLStreamHasSpaceHandler streamHasSpaceHandler; -@property (nullable, nonatomic, copy) SDLStreamErrorHandler streamErrorHandler; -@property (nullable, nonatomic, copy) SDLStreamEndHandler streamEndHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamDelegate.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamDelegate.m deleted file mode 100644 index 11bba6e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamDelegate.m +++ /dev/null @@ -1,96 +0,0 @@ -// -// SDLtreamDelegate.m -// - -#import "SDLStreamDelegate.h" -#import "SDLLogMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLStreamDelegate () { - dispatch_queue_t _input_stream_queue; -} - -@end - - -@implementation SDLStreamDelegate - -- (instancetype)init { - self = [super init]; - if (self) { - _streamOpenHandler = defaultStreamOpenHandler; - _streamHasBytesHandler = defaultStreamHasBytesHandler; - _streamHasSpaceHandler = defaultStreamHasSpaceHandler; - _streamErrorHandler = defaultStreamErrorHandler; - _streamEndHandler = defaultStreamErrorHandler; - - _input_stream_queue = dispatch_queue_create("com.sdl.streamdelegate.input", DISPATCH_QUEUE_SERIAL); - } - return self; -} - -- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { - switch (eventCode) { - case NSStreamEventOpenCompleted: { - if (_streamOpenHandler) { - self.streamOpenHandler(stream); - } - break; - } - case NSStreamEventHasBytesAvailable: { - if (_streamHasBytesHandler) { - dispatch_async(_input_stream_queue, ^{ - self.streamHasBytesHandler((NSInputStream *)stream); - }); - } - break; - } - case NSStreamEventHasSpaceAvailable: { - if (_streamHasSpaceHandler) { - self.streamHasSpaceHandler((NSOutputStream *)stream); - } - break; - } - case NSStreamEventErrorOccurred: { - if (_streamErrorHandler) { - self.streamErrorHandler(stream); - } - break; - } - case NSStreamEventEndEncountered: { - if (_streamEndHandler) { - self.streamEndHandler(stream); - } - break; - } - case NSStreamEventNone: - default: { - break; - } - } -} - -SDLStreamOpenHandler defaultStreamOpenHandler = ^(NSStream *stream) { - SDLLogV(@"Transport stream event open"); -}; - -SDLStreamHasBytesHandler defaultStreamHasBytesHandler = ^(NSInputStream *istream) { - SDLLogV(@"Transport stream event has bytes"); -}; - -SDLStreamHasSpaceHandler defaultStreamHasSpaceHandler = ^(NSOutputStream *ostream) { - SDLLogV(@"Transport stream event has space"); -}; - -SDLStreamErrorHandler defaultStreamErrorHandler = ^(NSStream *stream) { - SDLLogV(@"Transport stream event error"); -}; - -SDLStreamEndHandler defaultStreamEndHandler = ^(NSStream *stream) { - SDLLogV(@"Transport stream event end"); -}; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.h index 3b9fdfa..436bd5ca 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.h @@ -9,29 +9,30 @@ #import #import "SDLHMILevel.h" -#import "SDLProtocolListener.h" +#import "SDLProtocolDelegate.h" #import "SDLStreamingAudioManagerType.h" #import "SDLStreamingMediaManagerConstants.h" @class SDLAudioStreamManager; +@class SDLConfiguration; @class SDLProtocol; @class SDLStateMachine; -@class SDLStreamingMediaConfiguration; +@class SDLSystemCapabilityManager; +@class SDLEncryptionConfiguration; @protocol SDLConnectionManagerType; NS_ASSUME_NONNULL_BEGIN -@interface SDLStreamingAudioLifecycleManager : NSObject +@interface SDLStreamingAudioLifecycleManager : NSObject -@property (nonatomic, strong, readonly) SDLAudioStreamManager *audioManager; +@property (nonatomic, strong, readonly) SDLAudioStreamManager *audioTranscodingManager; @property (strong, nonatomic, readonly) SDLStateMachine *audioStreamStateMachine; @property (strong, nonatomic, readonly) SDLAudioStreamManagerState *currentAudioStreamState; @property (strong, nonatomic, readonly) SDLStateMachine *appStateMachine; -@property (strong, nonatomic, readonly) SDLAppState *currentAppState; @property (copy, nonatomic, nullable) SDLHMILevel hmiLevel; @@ -45,11 +46,8 @@ NS_ASSUME_NONNULL_BEGIN */ @property (assign, nonatomic, readonly, getter=isAudioEncrypted) BOOL audioEncrypted; -/** - * Whether or not video streaming is supported - * - * @see SDLRegisterAppInterface SDLDisplayCapabilities - */ +/// Whether or not video/audio streaming is supported +/// @discussion If connected to a module pre-SDL v4.5 there is no way to check if streaming is supported so `YES` is returned by default even though the module may NOT support video/audio streaming. @property (assign, nonatomic, readonly, getter=isStreamingSupported) BOOL streamingSupported; /** @@ -61,25 +59,31 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)init NS_UNAVAILABLE; -/** - Create a new streaming media manager for navigation and VPM apps with a specified configuration - - @param connectionManager The pass-through for RPCs - @param configuration The configuration of this streaming media session - @return A new streaming manager - */ -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration NS_DESIGNATED_INITIALIZER; +/// Create a new streaming audio manager for navigation and projection apps with a specified configuration. +/// @param connectionManager The pass-through for RPCs +/// @param configuration This session's configuration +/// @param systemCapabilityManager The system capability manager object for reading window capabilities +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration systemCapabilityManager:(nullable SDLSystemCapabilityManager *)systemCapabilityManager NS_DESIGNATED_INITIALIZER; /** * Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. */ - (void)startWithProtocol:(SDLProtocol *)protocol; -/** - * Stop the manager. This method is used internally. - */ +/// This method is used internally to stop the manager when the device disconnects from the module. Since there is no connection between the device and the module there is no point in sending an end audio service control frame as the module will never receive the request. - (void)stop; +/// This method is used internally to stop the manager when audio needs to be stopped on the secondary transport. The primary transport is still open. +/// 1. Since the primary transport is still open, we will not reset the `hmiLevel` since we can still get notifications from the module with the updated HMI status on the primary transport. +/// 2. We need to send an end audio service control frame to the module to ensure that the audio session is shut down correctly. In order to do this the protocol must be kept open and only destroyed after the module ACKs or NAKs our end audio service request. +/// @param audioEndedCompletionHandler Called when the module ACKs or NAKs to the request to end the audio service. +- (void)endAudioServiceWithCompletionHandler:(void (^)(void))audioEndedCompletionHandler; + +/// This method is used internally to stop audio streaming when the secondary transport has been closed due to an connection error. The primary transport is still open. +/// 1. Since the transport has been closed, we can not send an end audio service control frame to the module. +/// 2. Since the primary transport is still open, we will not reset the `hmiLevel`. This lets us resume audio streaming if the secondary transport can be reestablished during the same app session. +- (void)secondaryTransportDidDisconnect; + /** * This method receives PCM audio data and will attempt to send that data across to the head unit for immediate playback * diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m index 2159622..554eb89 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m @@ -9,6 +9,7 @@ #import "SDLStreamingAudioLifecycleManager.h" #import "SDLAudioStreamManager.h" +#import "SDLConfiguration.h" #import "SDLConnectionManagerType.h" #import "SDLControlFramePayloadAudioStartServiceAck.h" #import "SDLControlFramePayloadConstants.h" @@ -20,77 +21,71 @@ #import "SDLOnHMIStatus.h" #import "SDLProtocol.h" #import "SDLProtocolMessage.h" +#import "SDLPredefinedWindows.h" #import "SDLRegisterAppInterfaceResponse.h" #import "SDLRPCNotificationNotification.h" #import "SDLRPCResponseNotification.h" #import "SDLStateMachine.h" #import "SDLStreamingMediaConfiguration.h" +#import "SDLSystemCapabilityManager.h" +#import "SDLEncryptionConfiguration.h" #import "SDLVehicleType.h" - NS_ASSUME_NONNULL_BEGIN @interface SDLStreamingAudioLifecycleManager() -@property (strong, nonatomic, readwrite) SDLStateMachine *appStateMachine; +@property (nonatomic, strong, readwrite) SDLAudioStreamManager *audioTranscodingManager; @property (strong, nonatomic, readwrite) SDLStateMachine *audioStreamStateMachine; @property (assign, nonatomic, readonly, getter=isHmiStateAudioStreamCapable) BOOL hmiStateAudioStreamCapable; @property (weak, nonatomic) id connectionManager; +@property (weak, nonatomic, nullable) SDLSystemCapabilityManager *systemCapabilityManager; @property (weak, nonatomic) SDLProtocol *protocol; @property (copy, nonatomic) NSArray *secureMakes; -@property (copy, nonatomic) NSString *connectedVehicleMake; +@property (copy, nonatomic, nullable) NSString *connectedVehicleMake; +@property (assign, nonatomic, readwrite, getter=isAudioEncrypted) BOOL audioEncrypted; +@property (nonatomic, copy, nullable) void (^audioServiceEndedCompletionHandler)(void); @end @implementation SDLStreamingAudioLifecycleManager -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration { +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration systemCapabilityManager:(nullable SDLSystemCapabilityManager *)systemCapabilityManager { self = [super init]; if (!self) { return nil; } - SDLLogV(@"Creating AudioStreamingLifecycleManager"); - _connectionManager = connectionManager; - - _audioManager = [[SDLAudioStreamManager alloc] initWithManager:self]; - - _requestedEncryptionType = configuration.maximumDesiredEncryption; + _audioTranscodingManager = [[SDLAudioStreamManager alloc] initWithManager:self]; + _systemCapabilityManager = systemCapabilityManager; + _requestedEncryptionType = configuration.streamingMediaConfig.maximumDesiredEncryption; NSMutableArray *tempMakeArray = [NSMutableArray array]; - for (Class securityManagerClass in configuration.securityManagers) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + for (Class securityManagerClass in configuration.streamingMediaConfig.securityManagers) { [tempMakeArray addObjectsFromArray:[securityManagerClass availableMakes].allObjects]; } - _secureMakes = [tempMakeArray copy]; - - SDLAppState *initialState = SDLAppStateInactive; - switch ([[UIApplication sharedApplication] applicationState]) { - case UIApplicationStateActive: { - initialState = SDLAppStateActive; - } break; - case UIApplicationStateInactive: // fallthrough - case UIApplicationStateBackground: { - initialState = SDLAppStateInactive; - } break; - default: break; +#pragma clang diagnostic pop + for (Class securityManagerClass in configuration.encryptionConfig.securityManagers) { + [tempMakeArray addObjectsFromArray:[securityManagerClass availableMakes].allObjects]; } + NSOrderedSet *tempMakeSet = [NSOrderedSet orderedSetWithArray:tempMakeArray]; + _secureMakes = [tempMakeSet.array copy]; - _appStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:initialState states:[self.class sdl_appStateTransitionDictionary]]; _audioStreamStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLAudioStreamManagerStateStopped states:[self.class sdl_audioStreamingStateTransitionDictionary]]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_didReceiveRegisterAppInterfaceResponse:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiLevelDidChange:) name:SDLDidChangeHMIStatusNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appStateDidUpdate:) name:UIApplicationDidBecomeActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appStateDidUpdate:) name:UIApplicationWillResignActiveNotification object:nil]; - return self; } - (void)startWithProtocol:(SDLProtocol *)protocol { + SDLLogD(@"Starting with protocol: %@", protocol); _protocol = protocol; @synchronized(self.protocol.protocolDelegateTable) { @@ -105,13 +100,26 @@ - (void)startWithProtocol:(SDLProtocol *)protocol { - (void)stop { SDLLogD(@"Stopping manager"); - [self sdl_stopAudioSession]; + _protocol = nil; + _hmiLevel = SDLHMILevelNone; + _connectedVehicleMake = nil; + [self.audioTranscodingManager stop]; - self.hmiLevel = SDLHMILevelNone; + [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; +} +- (void)secondaryTransportDidDisconnect { [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; } +- (void)endAudioServiceWithCompletionHandler:(void (^)(void))audioEndedCompletionHandler { + SDLLogD(@"Ending audio service"); + self.audioServiceEndedCompletionHandler = audioEndedCompletionHandler; + + [self.audioTranscodingManager stop]; + [self.protocol endServiceWithType:SDLServiceTypeAudio]; +} + - (BOOL)sendAudioData:(NSData*)audioData { if (!self.isAudioConnected) { return NO; @@ -132,46 +140,11 @@ - (BOOL)isAudioConnected { return [self.audioStreamStateMachine isCurrentState:SDLAudioStreamManagerStateReady]; } -- (SDLAppState *)currentAppState { - return self.appStateMachine.currentState; -} - - (SDLAudioStreamManagerState *)currentAudioStreamState { return self.audioStreamStateMachine.currentState; } -#pragma mark - State Machines -#pragma mark App State -+ (NSDictionary *)sdl_appStateTransitionDictionary { - return @{ - // Will go from Inactive to Active if coming from a Phone Call. - // Will go from Inactive to IsRegainingActive if coming from Background. - SDLAppStateInactive : @[SDLAppStateActive], - SDLAppStateActive : @[SDLAppStateInactive] - }; -} - -- (void)sdl_appStateDidUpdate:(NSNotification*)notification { - if (notification.name == UIApplicationWillResignActiveNotification) { - [self.appStateMachine transitionToState:SDLAppStateInactive]; - } else if (notification.name == UIApplicationDidBecomeActiveNotification) { - [self.appStateMachine transitionToState:SDLAppStateActive]; - } -} - -- (void)didEnterStateAppInactive { - SDLLogD(@"App became inactive"); - [self sdl_stopAudioSession]; -} - -// Per Apple's guidelines: https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html -// We should be waiting to start any OpenGL drawing until UIApplicationDidBecomeActive is called. -- (void)didEnterStateAppActive { - SDLLogD(@"App became active"); - [self sdl_startAudioSession]; -} - -#pragma mark Audio +#pragma mark - State Machine + (NSDictionary *)sdl_audioStreamingStateTransitionDictionary { return @{ SDLAudioStreamManagerStateStopped : @[SDLAudioStreamManagerStateStarting], @@ -186,12 +159,17 @@ - (void)didEnterStateAudioStreamStopped { _audioEncrypted = NO; [[NSNotificationCenter defaultCenter] postNotificationName:SDLAudioStreamDidStopNotification object:nil]; + + if (self.audioServiceEndedCompletionHandler != nil) { + self.audioServiceEndedCompletionHandler(); + self.audioServiceEndedCompletionHandler = nil; + } } - (void)didEnterStateAudioStreamStarting { SDLLogD(@"Audio stream starting"); if ((self.requestedEncryptionType != SDLStreamingEncryptionFlagNone) && ([self.secureMakes containsObject:self.connectedVehicleMake])) { - [self.protocol startSecureServiceWithType:SDLServiceTypeAudio payload:nil completionHandler:^(BOOL success, NSError * _Nonnull error) { + [self.protocol startSecureServiceWithType:SDLServiceTypeAudio payload:nil tlsInitializationHandler:^(BOOL success, NSError * _Nonnull error) { if (error) { SDLLogE(@"TLS setup error: %@", error); [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; @@ -213,23 +191,15 @@ - (void)didEnterStateAudioStreamShuttingDown { } #pragma mark - SDLProtocolListener -#pragma mark Video / Audio Start Service ACK +#pragma mark Start Service ACK/NAK - (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { - switch (startServiceACK.header.serviceType) { - case SDLServiceTypeAudio: { - [self sdl_handleAudioStartServiceAck:startServiceACK]; - } break; - default: break; - } -} + if (startServiceACK.header.serviceType != SDLServiceTypeAudio) { return; } -- (void)sdl_handleAudioStartServiceAck:(SDLProtocolMessage *)audioStartServiceAck { - SDLLogD(@"Audio service started"); - _audioEncrypted = audioStartServiceAck.header.encrypted; + self.audioEncrypted = startServiceACK.header.encrypted; - SDLControlFramePayloadAudioStartServiceAck *audioAckPayload = [[SDLControlFramePayloadAudioStartServiceAck alloc] initWithData:audioStartServiceAck.payload]; - SDLLogV(@"ACK: %@", audioAckPayload); + SDLControlFramePayloadAudioStartServiceAck *audioAckPayload = [[SDLControlFramePayloadAudioStartServiceAck alloc] initWithData:startServiceACK.payload]; + SDLLogD(@"Request to start audio service ACKed with payload: %@", audioAckPayload); if (audioAckPayload.mtu != SDLControlFrameInt64NotFound) { [[SDLGlobals sharedGlobals] setDynamicMTUSize:(NSUInteger)audioAckPayload.mtu forServiceType:SDLServiceTypeAudio]; @@ -238,32 +208,30 @@ - (void)sdl_handleAudioStartServiceAck:(SDLProtocolMessage *)audioStartServiceAc [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateReady]; } -#pragma mark Video / Audio Start Service NAK - - (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceNAK { - switch (startServiceNAK.header.serviceType) { - case SDLServiceTypeAudio: { - [self sdl_handleAudioStartServiceNak:startServiceNAK]; - } break; - default: break; - } -} + if (startServiceNAK.header.serviceType != SDLServiceTypeAudio) { return; } + SDLLogE(@"Request to start audio service NAKed"); -- (void)sdl_handleAudioStartServiceNak:(SDLProtocolMessage *)audioStartServiceNak { - SDLLogW(@"Audio service failed to start due to NAK"); - [self sdl_transitionToStoppedState:SDLServiceTypeAudio]; + [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; } -#pragma mark Video / Audio End Service +#pragma mark End Service ACK/NAK - (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { - SDLLogD(@"%@ service ended", (endServiceACK.header.serviceType == SDLServiceTypeVideo ? @"Video" : @"Audio")); - [self sdl_transitionToStoppedState:endServiceACK.header.serviceType]; + if (endServiceACK.header.serviceType != SDLServiceTypeAudio) { return; } + SDLLogD(@"Request to end audio service ACKed"); + + [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; } - (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { - SDLLogW(@"%@ service ended with end service NAK", (endServiceNAK.header.serviceType == SDLServiceTypeVideo ? @"Video" : @"Audio")); - [self sdl_transitionToStoppedState:endServiceNAK.header.serviceType]; + if (endServiceNAK.header.serviceType != SDLServiceTypeAudio) { return; } + + SDLControlFramePayloadNak *nakPayload = [[SDLControlFramePayloadNak alloc] initWithData:endServiceNAK.payload]; + SDLLogE(@"Request to end audio service NAKed with playlod: %@", nakPayload); + + /// Core will NAK the audio end service control frame if audio is not streaming or if video is streaming but the HMI does not recognize that audio is streaming. + [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; } #pragma mark - SDL RPC Notification callbacks @@ -274,16 +242,8 @@ - (void)sdl_didReceiveRegisterAppInterfaceResponse:(SDLRPCResponseNotification * return; } - SDLLogD(@"Received Register App Interface"); - SDLRegisterAppInterfaceResponse* registerResponse = (SDLRegisterAppInterfaceResponse*)notification.response; - - SDLLogV(@"Determining whether streaming is supported"); - _streamingSupported = registerResponse.hmiCapabilities.videoStreaming ? registerResponse.hmiCapabilities.videoStreaming.boolValue : registerResponse.displayCapabilities.graphicSupported.boolValue; - - if (!self.isStreamingSupported) { - SDLLogE(@"Graphics are not supported on this head unit. We are are assuming screen size is also unavailable and exiting."); - return; - } + SDLLogV(@"Received Register App Interface response"); + SDLRegisterAppInterfaceResponse *registerResponse = (SDLRegisterAppInterfaceResponse*)notification.response; self.connectedVehicleMake = registerResponse.vehicleType.make; } @@ -295,7 +255,11 @@ - (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { } SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus*)notification.notification; - SDLLogD(@"HMI level changed from level %@ to level %@", self.hmiLevel, hmiStatus.hmiLevel); + + if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { + return; + } + self.hmiLevel = hmiStatus.hmiLevel; // if startWithProtocol has not been called yet, abort here @@ -336,21 +300,16 @@ - (void)sdl_stopAudioSession { } } -- (void)sdl_transitionToStoppedState:(SDLServiceType)serviceType { - switch (serviceType) { - case SDLServiceTypeAudio: - [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; - break; - default: break; - } -} - #pragma mark Setters / Getters - (BOOL)isHmiStateAudioStreamCapable { return [self.hmiLevel isEqualToEnum:SDLHMILevelLimited] || [self.hmiLevel isEqualToEnum:SDLHMILevelFull]; } +- (BOOL)isStreamingSupported { + return (self.systemCapabilityManager != nil) ? [self.systemCapabilityManager isCapabilitySupported:SDLSystemCapabilityTypeVideoStreaming] : YES; +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioManagerType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioManagerType.h index fb0436d..1ec391e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioManagerType.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioManagerType.h @@ -8,6 +8,7 @@ #import +/// Streaming audio manager @protocol SDLStreamingAudioManagerType /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.h index 3e4f918..9c73cda 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.h @@ -18,23 +18,25 @@ NS_ASSUME_NONNULL_BEGIN /** The type of rendering that CarWindow will perform. Depending on your app, you may need to try different ones for best performance - - - SDLCarWindowRenderingTypeLayer: Instead of rendering your UIViewController's view, this will render the layer using `renderInContext` - - SDLCarWindowRenderingTypeViewAfterScreenUpdates: Renders your UIViewController's view using `drawViewHierarchyInRect:bounds afterScreenUpdates:YES` - - SDLCarWindowRenderingTypeViewBeforeScreenUpdates: Renders your UIViewController's view using `drawViewHierarchyInRect:bounds afterScreenUpdates:NO` */ typedef NS_ENUM(NSUInteger, SDLCarWindowRenderingType) { + /// Instead of rendering your UIViewController's view, this will render the layer using renderInContext SDLCarWindowRenderingTypeLayer, + + /// Renders your UIViewController's view using drawViewHierarchyInRect:bounds afterScreenUpdates:YES SDLCarWindowRenderingTypeViewAfterScreenUpdates, + + /// Renders your UIViewController's view using drawViewHierarchyInRect:bounds afterScreenUpdates:NO SDLCarWindowRenderingTypeViewBeforeScreenUpdates }; +/// The streaming media configuration. Use this class to configure streaming media information. @interface SDLStreamingMediaConfiguration : NSObject /** * Set security managers which could be used. This is primarily used with video streaming applications to authenticate and perhaps encrypt traffic data. */ -@property (copy, nonatomic, nullable) NSArray> *securityManagers; +@property (copy, nonatomic, nullable) NSArray> *securityManagers __deprecated_msg("This is now unused, the security managers are taken in from SDLEncryptionConfiguration"); /** * What encryption level video/audio streaming should be. The default is SDLStreamingEncryptionFlagAuthenticateAndEncrypt. @@ -92,6 +94,13 @@ typedef NS_ENUM(NSUInteger, SDLCarWindowRenderingType) { */ - (instancetype)init; +/** + Create a secure video streaming configuration. Security managers will be provided from SDLEncryptionConfiguration and the encryption flag will be set to SDLStreamingEncryptionFlagAuthenticateAndEncrypt. If you'd like custom video encoder settings, you can set the property manually. + + @return The configuration + */ ++ (instancetype)secureConfiguration; + /** Manually set all the properties to the streaming media configuration @@ -101,7 +110,17 @@ typedef NS_ENUM(NSUInteger, SDLCarWindowRenderingType) { @param rootViewController The UIViewController wih the content that is being streamed on, to use for haptics if needed and possible (only works for UIViews) @return The configuration */ -- (instancetype)initWithSecurityManagers:(nullable NSArray> *)securityManagers encryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary *)videoSettings dataSource:(nullable id)dataSource rootViewController:(nullable UIViewController *)rootViewController; +- (instancetype)initWithSecurityManagers:(nullable NSArray> *)securityManagers encryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary *)videoSettings dataSource:(nullable id)dataSource rootViewController:(nullable UIViewController *)rootViewController __deprecated_msg("Use initWithEncryptionFlag:videoSettings:dataSource:rootViewController: instead"); + +/** + Manually set all the properties to the streaming media configuration + + @param encryptionFlag The maximum encrpytion supported. If the connected head unit supports less than set here, it will still connect, but if it supports more than set here, it will not connect. + @param videoSettings Custom video encoder settings to be used in video streaming. + @param rootViewController The UIViewController wih the content that is being streamed on, to use for haptics if needed and possible (only works for UIViews) + @return The configuration + */ +- (instancetype)initWithEncryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary *)videoSettings dataSource:(nullable id)dataSource rootViewController:(nullable UIViewController *)rootViewController; /** Create a secure configuration for each of the security managers provided. @@ -109,7 +128,7 @@ typedef NS_ENUM(NSUInteger, SDLCarWindowRenderingType) { @param securityManagers The security managers to be used. The encryption flag will be set to AuthenticateAndEncrypt if any security managers are set. @return The configuration */ -- (instancetype)initWithSecurityManagers:(NSArray> *)securityManagers; +- (instancetype)initWithSecurityManagers:(NSArray> *)securityManagers __deprecated_msg("Use secureConfiguration instead"); /** Create a secure configuration for each of the security managers provided. @@ -117,7 +136,7 @@ typedef NS_ENUM(NSUInteger, SDLCarWindowRenderingType) { @param securityManagers The security managers to be used. The encryption flag will be set to AuthenticateAndEncrypt if any security managers are set. @return The configuration */ -+ (instancetype)secureConfigurationWithSecurityManagers:(NSArray> *)securityManagers NS_SWIFT_UNAVAILABLE("Use an initializer instead"); ++ (instancetype)secureConfigurationWithSecurityManagers:(NSArray> *)securityManagers NS_SWIFT_UNAVAILABLE("Use an initializer instead") __deprecated_msg("Use secureConfiguration instead"); /** Create an insecure video streaming configuration. No security managers will be provided and the encryption flag will be set to None. If you'd like custom video encoder settings, you can set the property manually. This is equivalent to `init`. @@ -141,7 +160,15 @@ typedef NS_ENUM(NSUInteger, SDLCarWindowRenderingType) { @param initialViewController The initial view controller that will be streamed, this can be a basic `UIViewController` if you need to set your actual streaming view controller at a later time on `SDLManager.streamingManager.rootViewController`. @return The configuration */ -+ (instancetype)autostreamingSecureConfigurationWithSecurityManagers:(NSArray> *)securityManagers initialViewController:(UIViewController *)initialViewController; ++ (instancetype)autostreamingSecureConfigurationWithSecurityManagers:(NSArray> *)securityManagers initialViewController:(UIViewController *)initialViewController __deprecated_msg("Use autostreamingSecureConfigurationWithInitialViewController: instead"); + +/** + Create a CarWindow secure configuration with a view controller. + + @param initialViewController The initial view controller that will be streamed, this can be a basic `UIViewController` if you need to set your actual streaming view controller at a later time on `SDLManager.streamingManager.rootViewController`. + @return The configuration + */ ++ (instancetype)autostreamingSecureConfigurationWithInitialViewController:(UIViewController *)initialViewController; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.m index 41c7df8..4c82ddc 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.m @@ -16,7 +16,14 @@ @implementation SDLStreamingMediaConfiguration - (instancetype)init { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" return [self initWithSecurityManagers:nil encryptionFlag:SDLStreamingEncryptionFlagNone videoSettings:nil dataSource:nil rootViewController:nil]; +#pragma clang diagnostic pop +} + ++ (instancetype)secureConfiguration { + return [[self alloc] initWithEncryptionFlag:SDLStreamingEncryptionFlagAuthenticateAndEncrypt videoSettings:nil dataSource:nil rootViewController:nil]; } + (instancetype)insecureConfiguration { @@ -41,6 +48,23 @@ - (instancetype)initWithSecurityManagers:(nullable NSArray *)videoSettings dataSource:(nullable id)dataSource rootViewController:(nullable UIViewController *)rootViewController { + if (!self) { + return nil; + } + + _securityManagers = nil; + _maximumDesiredEncryption = encryptionFlag; + _customVideoEncoderSettings = videoSettings; + _dataSource = dataSource; + _rootViewController = rootViewController; + _carWindowRenderingType = SDLCarWindowRenderingTypeLayer; + _enableForcedFramerateSync = YES; + _allowMultipleViewControllerOrientations = NO; + + return self; +} + - (instancetype)initWithSecurityManagers:(NSArray> *)securityManagers { NSAssert(securityManagers.count > 0, @"A secure streaming media configuration requires security managers to be passed."); SDLStreamingEncryptionFlag encryptionFlag = SDLStreamingEncryptionFlagAuthenticateAndEncrypt; @@ -49,21 +73,34 @@ - (instancetype)initWithSecurityManagers:(NSArray> *)secu } + (instancetype)secureConfigurationWithSecurityManagers:(NSArray> *)securityManagers { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" return [[self alloc] initWithSecurityManagers:securityManagers]; +#pragma clang diagnostic pop } + (instancetype)autostreamingInsecureConfigurationWithInitialViewController:(UIViewController *)initialViewController { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" return [[self alloc] initWithSecurityManagers:nil encryptionFlag:SDLStreamingEncryptionFlagNone videoSettings:nil dataSource:nil rootViewController:initialViewController]; +#pragma clang diagnostic pop } + (instancetype)autostreamingSecureConfigurationWithSecurityManagers:(NSArray> *)securityManagers initialViewController:(UIViewController *)initialViewController { return [[self alloc] initWithSecurityManagers:securityManagers encryptionFlag:SDLStreamingEncryptionFlagAuthenticateAndEncrypt videoSettings:nil dataSource:nil rootViewController:initialViewController]; } ++ (instancetype)autostreamingSecureConfigurationWithInitialViewController:(UIViewController *)initialViewController { + return [[self alloc] initWithEncryptionFlag:SDLStreamingEncryptionFlagAuthenticateAndEncrypt videoSettings:nil dataSource:nil rootViewController:initialViewController]; +} + #pragma mark NSCopying - (id)copyWithZone:(nullable NSZone *)zone { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" SDLStreamingMediaConfiguration *newConfig = [[self.class allocWithZone:zone] initWithSecurityManagers:_securityManagers encryptionFlag:_maximumDesiredEncryption videoSettings:_customVideoEncoderSettings dataSource:_dataSource rootViewController:_rootViewController]; +#pragma clang diagnostic pop newConfig.carWindowRenderingType = self.carWindowRenderingType; newConfig.enableForcedFramerateSync = self.enableForcedFramerateSync; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.h index 6be499b..495f466 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.h @@ -13,18 +13,21 @@ #import "SDLStreamingMediaManagerConstants.h" @class SDLAudioStreamManager; +@class SDLConfiguration; @class SDLProtocol; -@class SDLStreamingMediaConfiguration; +@class SDLSecondaryTransportManager; +@class SDLSystemCapabilityManager; @class SDLTouchManager; @class SDLVideoStreamingFormat; @protocol SDLFocusableItemLocatorType; @protocol SDLConnectionManagerType; + NS_ASSUME_NONNULL_BEGIN -#pragma mark - Interface +/// Manager to help control streaming (video and audio) media services. @interface SDLStreamingMediaManager : NSObject /** @@ -80,7 +83,7 @@ NS_ASSUME_NONNULL_BEGIN @property (assign, nonatomic, readonly, getter=isVideoStreamingPaused) BOOL videoStreamingPaused; /** - * This is the current screen size of a connected display. This will be the size the video encoder uses to encode the raw image data. + * The current screen resolution of the connected display in pixels. */ @property (assign, nonatomic, readonly) CGSize screenSize; @@ -97,7 +100,7 @@ NS_ASSUME_NONNULL_BEGIN /** * The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder. * - * @warning This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). + * @warning This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). * @discussion Clients may call this once and retain the resulting pool, this call is cheap enough that it's OK to call it once per frame. */ @property (assign, nonatomic, readonly, nullable) CVPixelBufferPoolRef pixelBufferPool; @@ -109,31 +112,32 @@ NS_ASSUME_NONNULL_BEGIN */ @property (assign, nonatomic) SDLStreamingEncryptionFlag requestedEncryptionType; -- (instancetype)init NS_UNAVAILABLE; - /** - Create a new streaming media manager for navigation and VPM apps with a specified configuration - - @param connectionManager The pass-through for RPCs - @param configuration The configuration of this streaming media session - @return A new streaming manager + When YES, the StreamingMediaManager will send a black screen with "Video Backgrounded String". Defaults to YES. */ -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration NS_DESIGNATED_INITIALIZER; +@property (assign, nonatomic) BOOL showVideoBackgroundDisplay; -/** - * Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. - */ -- (void)startWithProtocol:(SDLProtocol *)protocol; -/** - * Start the audio feature of the manager. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. - */ -- (void)startAudioWithProtocol:(SDLProtocol *)protocol; +#pragma mark - Lifecycle + +/// Initializer unavailable +- (instancetype)init NS_UNAVAILABLE; + +/// Create a new streaming media manager for navigation and projection apps with a specified configuration. +/// @param connectionManager The pass-through for RPCs +/// @param configuration This session's configuration +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration __deprecated_msg("Use initWithConnectionManager:configuration:systemCapabilityManager: instead"); + +/// Create a new streaming media manager for navigation and projection apps with a specified configuration. +/// @param connectionManager The pass-through for RPCs +/// @param configuration This session's configuration +/// @param systemCapabilityManager The system capability manager object for reading window capabilities +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration systemCapabilityManager:(nullable SDLSystemCapabilityManager *)systemCapabilityManager NS_DESIGNATED_INITIALIZER; /** - * Start the video feature of the manager. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. + * Start the manager. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. */ -- (void)startVideoWithProtocol:(SDLProtocol *)protocol; +- (void)startWithProtocol:(SDLProtocol *)protocol; /** * Stop the manager. This method is used internally. @@ -150,6 +154,8 @@ NS_ASSUME_NONNULL_BEGIN */ - (void)stopVideo; +#pragma mark - Data Transfer + /** * This method receives raw image data and will run iOS8+'s hardware video encoder to turn the data into a video stream, which will then be passed to the connected head unit. * @@ -170,7 +176,9 @@ NS_ASSUME_NONNULL_BEGIN - (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp; /** - * This method receives PCM audio data and will attempt to send that data across to the head unit for immediate playback + * This method receives PCM audio data and will attempt to send that data across to the head unit for immediate playback. + * + * NOTE: See the `.audioManager` (SDLAudioStreamManager) `pushWithData:` method for a more modern API. * * @param audioData The data in PCM audio format, to be played * @@ -178,6 +186,18 @@ NS_ASSUME_NONNULL_BEGIN */ - (BOOL)sendAudioData:(NSData *)audioData; +#pragma mark - Deprecated Methods + + /** + * Start the audio feature of the manager. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. + */ +- (void)startAudioWithProtocol:(SDLProtocol *)protocol __deprecated_msg("Use startWithProtocol: instead"); + + /** + * Start the video feature of the manager. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. + */ +- (void)startVideoWithProtocol:(SDLProtocol *)protocol __deprecated_msg("Use startWithProtocol: instead"); + @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.m index 36a26c8..3b6a148 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.m @@ -9,68 +9,76 @@ #import "SDLStreamingMediaManager.h" #import "SDLAudioStreamManager.h" +#import "SDLConfiguration.h" #import "SDLConnectionManagerType.h" -#import "SDLStreamingMediaConfiguration.h" -#import "SDLStreamingMediaManagerDataSource.h" +#import "SDLGlobals.h" +#import "SDLLogMacros.h" +#import "SDLSecondaryTransportManager.h" #import "SDLStreamingAudioLifecycleManager.h" +#import "SDLStreamingProtocolDelegate.h" #import "SDLStreamingVideoLifecycleManager.h" +#import "SDLStreamingVideoScaleManager.h" +#import "SDLSystemCapabilityManager.h" #import "SDLTouchManager.h" NS_ASSUME_NONNULL_BEGIN -@interface SDLStreamingMediaManager () +@interface SDLStreamingMediaManager () @property (strong, nonatomic) SDLStreamingAudioLifecycleManager *audioLifecycleManager; @property (strong, nonatomic) SDLStreamingVideoLifecycleManager *videoLifecycleManager; @property (assign, nonatomic) BOOL audioStarted; @property (assign, nonatomic) BOOL videoStarted; +@property (strong, nonatomic, nullable) SDLProtocol *audioProtocol; +@property (strong, nonatomic, nullable) SDLProtocol *videoProtocol; + +@property (strong, nonatomic, nullable) SDLSecondaryTransportManager *secondaryTransportManager; @end @implementation SDLStreamingMediaManager -#pragma mark - Public -#pragma mark Lifecycle +#pragma mark - Lifecycle -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration { +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration systemCapabilityManager:(nullable SDLSystemCapabilityManager *)systemCapabilityManager { self = [super init]; if (!self) { return nil; } - - _audioLifecycleManager = [[SDLStreamingAudioLifecycleManager alloc] initWithConnectionManager:connectionManager configuration:configuration]; - _videoLifecycleManager = [[SDLStreamingVideoLifecycleManager alloc] initWithConnectionManager:connectionManager configuration:configuration]; - - return self; -} -- (void)startWithProtocol:(SDLProtocol *)protocol { - [self startAudioWithProtocol:protocol]; - [self startVideoWithProtocol:protocol]; -} + _audioLifecycleManager = [[SDLStreamingAudioLifecycleManager alloc] initWithConnectionManager:connectionManager configuration:configuration systemCapabilityManager:systemCapabilityManager]; + _videoLifecycleManager = [[SDLStreamingVideoLifecycleManager alloc] initWithConnectionManager:connectionManager configuration:configuration systemCapabilityManager:systemCapabilityManager]; -- (void)startAudioWithProtocol:(SDLProtocol *)protocol { - [self.audioLifecycleManager startWithProtocol:protocol]; - self.audioStarted = YES; + return self; } -- (void)startVideoWithProtocol:(SDLProtocol *)protocol { - [self.videoLifecycleManager startWithProtocol:protocol]; - self.videoStarted = YES; +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration { + return [self initWithConnectionManager:connectionManager configuration:configuration systemCapabilityManager:nil]; } - (void)stop { [self stopAudio]; [self stopVideo]; + self.audioProtocol = nil; + self.videoProtocol = nil; } + +#pragma mark Audio + - (void)stopAudio { [self.audioLifecycleManager stop]; self.audioStarted = NO; } +- (BOOL)sendAudioData:(NSData*)audioData { + return [self.audioLifecycleManager sendAudioData:audioData]; +} + +#pragma mark Video + - (void)stopVideo { [self.videoLifecycleManager stop]; self.videoStarted = NO; @@ -84,8 +92,132 @@ - (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTim return [self.videoLifecycleManager sendVideoData:imageBuffer presentationTimestamp:presentationTimestamp]; } -- (BOOL)sendAudioData:(NSData*)audioData { - return [self.audioLifecycleManager sendAudioData:audioData]; +#pragma mark - Secondary Transport + +- (void)startWithProtocol:(SDLProtocol *)protocol { + [self didUpdateFromOldVideoProtocol:nil toNewVideoProtocol:protocol fromOldAudioProtocol:nil toNewAudioProtocol:protocol]; +} + +- (void)sdl_disconnectSecondaryTransportWithCompletionHandler:(void (^)(void))completionHandler { + if (self.secondaryTransportManager == nil) { + SDLLogV(@"Attempting to disconnect a non-existent secondary transport. Returning."); + return completionHandler(); + } + + [self.secondaryTransportManager disconnectSecondaryTransportWithCompletionHandler:completionHandler]; +} + +# pragma mark SDLStreamingProtocolDelegate + +- (void)didUpdateFromOldVideoProtocol:(nullable SDLProtocol *)oldVideoProtocol + toNewVideoProtocol:(nullable SDLProtocol *)newVideoProtocol + fromOldAudioProtocol:(nullable SDLProtocol *)oldAudioProtocol + toNewAudioProtocol:(nullable SDLProtocol *)newAudioProtocol { + BOOL videoProtocolUpdated = (oldVideoProtocol != newVideoProtocol); + BOOL audioProtocolUpdated = (oldAudioProtocol != newAudioProtocol); + + if (!videoProtocolUpdated && !audioProtocolUpdated) { + SDLLogV(@"The video and audio transports did not update."); + return; + } + + dispatch_group_t endServiceTask = dispatch_group_create(); + dispatch_group_enter(endServiceTask); + + __weak typeof(self) weakSelf = self; + if (oldVideoProtocol != nil) { + dispatch_group_enter(endServiceTask); + [self.videoLifecycleManager endVideoServiceWithCompletionHandler:^ { + __strong typeof(weakSelf) strongSelf = weakSelf; + strongSelf.videoStarted = NO; + dispatch_group_leave(endServiceTask); + }]; + } + + if (oldAudioProtocol != nil) { + dispatch_group_enter(endServiceTask); + __weak typeof(self) weakSelf = self; + [self.audioLifecycleManager endAudioServiceWithCompletionHandler:^ { + __strong typeof(weakSelf) strongSelf = weakSelf; + strongSelf.audioStarted = NO; + dispatch_group_leave(endServiceTask); + }]; + } + + dispatch_group_leave(endServiceTask); + + // This will always run + dispatch_group_notify(endServiceTask, [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ + if (oldVideoProtocol != nil || oldAudioProtocol != nil) { + [self sdl_reconnectSecondaryTransportWithNewVideoProtocol:newVideoProtocol newAudioProtocol:newAudioProtocol transportDestroyed:false]; + } else { + SDLLogV(@"No need to disconnect the secondary transport. Starting new audio and video protocols"); + [self sdl_startNewProtocolForAudio:newAudioProtocol forVideo:newVideoProtocol]; + } + }); +} + +- (void)transportClosed { + [self sdl_reconnectSecondaryTransportWithNewVideoProtocol:nil newAudioProtocol:nil transportDestroyed:true]; +} + +/// Disconnects the secondary transport. If the transport is still open and a new video or audio protocol have been set, then a new video/audio sessions are attempted. If the transport has been closed, then the audio/video managers are stopped. +/// @param newVideoProtocol The new video protocol +/// @param newAudioProtocol The new audio protocol +/// @param transportDestroyed Whether or not the transport is still open +- (void)sdl_reconnectSecondaryTransportWithNewVideoProtocol:(nullable SDLProtocol *)newVideoProtocol newAudioProtocol:(nullable SDLProtocol *)newAudioProtocol transportDestroyed:(BOOL)transportDestroyed { + SDLLogV(@"Disconnecting the secondary transport"); + __weak typeof(self) weakSelf = self; + [self sdl_disconnectSecondaryTransportWithCompletionHandler:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + if (transportDestroyed) { + SDLLogD(@"Transport destroyed. Shutting down audio and video managers"); + [strongSelf.audioLifecycleManager secondaryTransportDidDisconnect]; + [strongSelf.videoLifecycleManager secondaryTransportDidDisconnect]; + strongSelf.audioProtocol = nil; + strongSelf.videoProtocol = nil; + } else { + SDLLogD(@"Checking if new audio and video sessions need to be started on the transport"); + strongSelf.audioProtocol = nil; + strongSelf.videoProtocol = nil; + [strongSelf sdl_startNewProtocolForAudio:newAudioProtocol forVideo:newVideoProtocol]; + } + }]; +} + +/// Starts the audio and/or video services using the new protocol. +/// @param newAudioProtocol The new audio protocol +/// @param newVideoProtocol The new video protocol +- (void)sdl_startNewProtocolForAudio:(nullable SDLProtocol *)newAudioProtocol forVideo:(nullable SDLProtocol *)newVideoProtocol { + if (newAudioProtocol == nil && newVideoProtocol == nil) { + SDLLogD(@"No new audio or video session will be started"); + return; + } + + if (newAudioProtocol != nil) { + self.audioProtocol = newAudioProtocol; + [self.audioLifecycleManager startWithProtocol:newAudioProtocol]; + self.audioStarted = YES; + } + if (newVideoProtocol != nil) { + self.videoProtocol = newVideoProtocol; + [self.videoLifecycleManager startWithProtocol:newVideoProtocol]; + self.videoStarted = YES; + } +} + +#pragma mark Deprecated + + - (void)startAudioWithProtocol:(SDLProtocol *)protocol { + self.audioProtocol = protocol; + [self.audioLifecycleManager startWithProtocol:protocol]; + self.audioStarted = YES; +} + + - (void)startVideoWithProtocol:(SDLProtocol *)protocol { + self.videoProtocol = protocol; + [self.videoLifecycleManager startWithProtocol:protocol]; + self.videoStarted = YES; } @@ -96,7 +228,7 @@ - (SDLTouchManager *)touchManager { } - (SDLAudioStreamManager *)audioManager { - return self.audioLifecycleManager.audioManager; + return self.audioLifecycleManager.audioTranscodingManager; } - (nullable UIViewController *)rootViewController { @@ -108,14 +240,8 @@ - (nullable UIViewController *)rootViewController { } - (BOOL)isStreamingSupported { - // both audio and video lifecycle managers checks the param in Register App Interface response, - // hence the flag should be same between two managers if they are started - if (self.videoStarted) { - return self.videoLifecycleManager.isStreamingSupported; - } else if (self.audioStarted) { - return self.audioLifecycleManager.isStreamingSupported; - } - return NO; + // The flag is the same between the video and audio managers so just one needs to be returned. + return self.videoLifecycleManager.isStreamingSupported; } - (BOOL)isAudioConnected { @@ -133,13 +259,13 @@ - (BOOL)isAudioEncrypted { - (BOOL)isVideoEncrypted { return self.videoLifecycleManager.isVideoEncrypted; } - + - (BOOL)isVideoStreamingPaused { return self.videoLifecycleManager.isVideoStreamingPaused; } - (CGSize)screenSize { - return self.videoLifecycleManager.screenSize; + return self.videoLifecycleManager.videoScaleManager.displayViewportResolution; } - (nullable SDLVideoStreamingFormat *)videoFormat { @@ -159,7 +285,13 @@ - (SDLStreamingEncryptionFlag)requestedEncryptionType { return self.videoLifecycleManager.requestedEncryptionType; } +- (BOOL)showVideoBackgroundDisplay { + return self.videoLifecycleManager.showVideoBackgroundDisplay; +} + + #pragma mark - Setters + - (void)setRootViewController:(nullable UIViewController *)rootViewController { self.videoLifecycleManager.rootViewController = rootViewController; } @@ -169,6 +301,10 @@ - (void)setRequestedEncryptionType:(SDLStreamingEncryptionFlag)requestedEncrypti self.audioLifecycleManager.requestedEncryptionType = requestedEncryptionType; } +- (void)setShowVideoBackgroundDisplay:(BOOL)showVideoBackgroundDisplay { + self.videoLifecycleManager.showVideoBackgroundDisplay = showVideoBackgroundDisplay; +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.h index 8e04758..291eb11 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.h @@ -12,46 +12,85 @@ NS_ASSUME_NONNULL_BEGIN /** A flag determining how video and audio streaming should be encrypted - - - SDLStreamingEncryptionFlagNone: It should not be encrypted at all - - SDLStreamingEncryptionFlagAuthenticateOnly: It should use SSL/TLS only to authenticate - - SDLStreamingEncryptionFlagAuthenticateAndEncrypt: All data on these services should be encrypted using SSL/TLS */ typedef NS_ENUM(NSInteger, SDLStreamingEncryptionFlag) { + /// It should not be encrypted at all SDLStreamingEncryptionFlagNone, + + /// It should use SSL/TLS only to authenticate SDLStreamingEncryptionFlagAuthenticateOnly, + + /// All data on these services should be encrypted using SSL/TLS SDLStreamingEncryptionFlagAuthenticateAndEncrypt }; -extern CGSize const SDLDefaultScreenSize; - +/// Name of video stream start notification extern NSString *const SDLVideoStreamDidStartNotification; + +/// Name of video stream stop notification extern NSString *const SDLVideoStreamDidStopNotification; + +/// Name of video stream suspended notification extern NSString *const SDLVideoStreamSuspendedNotification; +/// Name of audio stream start notification extern NSString *const SDLAudioStreamDidStartNotification; + +/// Name of audio stream stop notification extern NSString *const SDLAudioStreamDidStopNotification; +/// Lockscreen will present notification extern NSString *const SDLLockScreenManagerWillPresentLockScreenViewController; + +/// Lockscreen did present notification extern NSString *const SDLLockScreenManagerDidPresentLockScreenViewController; + +/// Lockscreen will dismiss notification extern NSString *const SDLLockScreenManagerWillDismissLockScreenViewController; + +/// Lockscreen did dismiss notification extern NSString *const SDLLockScreenManagerDidDismissLockScreenViewController; +/// The current state of the video stream manager typedef NSString SDLVideoStreamManagerState; + +/// Streaming state stopped extern SDLVideoStreamManagerState *const SDLVideoStreamManagerStateStopped; + +/// Streaming state starting extern SDLVideoStreamManagerState *const SDLVideoStreamManagerStateStarting; + +/// Streaming state ready extern SDLVideoStreamManagerState *const SDLVideoStreamManagerStateReady; + +/// Streaming state suspended extern SDLVideoStreamManagerState *const SDLVideoStreamManagerStateSuspended; + +/// Streaming state shutting down extern SDLVideoStreamManagerState *const SDLVideoStreamManagerStateShuttingDown; +/// The current state of the audio stream manager typedef NSString SDLAudioStreamManagerState; + +/// Audio state stopped extern SDLAudioStreamManagerState *const SDLAudioStreamManagerStateStopped; + +/// Audio state starting extern SDLAudioStreamManagerState *const SDLAudioStreamManagerStateStarting; + +/// Audio state ready extern SDLAudioStreamManagerState *const SDLAudioStreamManagerStateReady; + +/// Audio state shutting down extern SDLAudioStreamManagerState *const SDLAudioStreamManagerStateShuttingDown; +/// Typedef SDLAppState typedef NSString SDLAppState; + +/// App state inactive extern SDLAppState *const SDLAppStateInactive; + +/// App state active extern SDLAppState *const SDLAppStateActive; NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.m index 02dfa6b..65a9b29 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.m @@ -9,8 +9,6 @@ #import #import "SDLStreamingMediaManagerConstants.h" -CGSize const SDLDefaultScreenSize = {0, 0}; - NSString *const SDLVideoStreamDidStartNotification = @"com.sdl.videoStreamDidStart"; NSString *const SDLVideoStreamDidStopNotification = @"com.sdl.videoStreamDidStop"; NSString *const SDLVideoStreamSuspendedNotification = @"com.sdl.videoStreamSuspended"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerDataSource.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerDataSource.h index 7fdf13e..8d7b094 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerDataSource.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerDataSource.h @@ -13,6 +13,7 @@ NS_ASSUME_NONNULL_BEGIN +/// A data source for the streaming manager's preferred resolutions and preferred formats. @protocol SDLStreamingMediaManagerDataSource /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingProtocolDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingProtocolDelegate.h index b3ec8f7..1639c3b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingProtocolDelegate.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingProtocolDelegate.h @@ -14,27 +14,20 @@ NS_ASSUME_NONNULL_BEGIN @protocol SDLStreamingProtocolDelegate -/** - * Called when protocol instance for audio service has been updated. - * - * If `newProtocol` is nil, it indicates that underlying transport - * becomes unavailable. - * - * @param oldProtocol protocol instance that has been used for audio streaming. - * @param newProtocol protocol instance that will be used for audio streaming. - */ -- (void)audioServiceProtocolDidUpdateFromOldProtocol:(nullable SDLProtocol *)oldProtocol toNewProtocol:(nullable SDLProtocol *)newProtocol; - -/** - * Called when protocol instance for video service has been updated. - * - * If `newProtocol` is nil, it indicates that underlying transport - * becomes unavailable. - * - * @param oldProtocol protocol instance that has been used for video streaming. - * @param newProtocol protocol instance that will be used for video streaming. - */ -- (void)videoServiceProtocolDidUpdateFromOldProtocol:(nullable SDLProtocol *)oldProtocol toNewProtocol:(nullable SDLProtocol *)newProtocol; +/// Called when protocol instance for audio and/or video service has been updated and the transport is established. +/// +/// If `newVideoProtocol` or `newAudioProtocol` have been set then the transport is established and a current session can be started. If `newVideoProtocol` or `newAudioProtocol` is nil it indicates that underlying transport will become unavailable and any ongoing sessions on that transport should be stopped (i.e. send a request to the module to stop the session and wait for a response). +/// +/// @param oldVideoProtocol protocol instance that was being used for video streaming +/// @param newVideoProtocol protocol instance that will be used for video streaming +/// @param oldAudioProtocol protocol instance that was being used for audio streaming +/// @param newAudioProtocol protocol instance that will be used for audio streaming +- (void)didUpdateFromOldVideoProtocol:(nullable SDLProtocol *)oldVideoProtocol toNewVideoProtocol:(nullable SDLProtocol *)newVideoProtocol fromOldAudioProtocol:(nullable SDLProtocol *)oldAudioProtocol toNewAudioProtocol:(nullable SDLProtocol *)newAudioProtocol; + +/// Called when the audio and/or video must be stopped because the transport has been destroyed or errored out. +/// +/// Since the transport does not exist, current sessions can not be properly stopped (i.e. no request can be sent module to stop the session) but the observer still needs to stop creating and sending data. +- (void)transportClosed; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h index 808d86c..9fb1b39 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h @@ -10,16 +10,19 @@ #import #import "SDLHMILevel.h" -#import "SDLProtocolListener.h" +#import "SDLProtocolDelegate.h" #import "SDLStreamingMediaManagerConstants.h" #import "SDLVideoStreamingFormat.h" #import "SDLVideoStreamingState.h" @class SDLCarWindow; +@class SDLConfiguration; @class SDLImageResolution; @class SDLProtocol; @class SDLStateMachine; @class SDLStreamingMediaConfiguration; +@class SDLStreamingVideoScaleManager; +@class SDLSystemCapabilityManager; @class SDLTouchManager; @protocol SDLConnectionManagerType; @@ -27,10 +30,9 @@ @protocol SDLStreamingMediaManagerDataSource; - NS_ASSUME_NONNULL_BEGIN -@interface SDLStreamingVideoLifecycleManager : NSObject +@interface SDLStreamingVideoLifecycleManager : NSObject @property (strong, nonatomic, readonly) SDLStateMachine *videoStreamStateMachine; @property (strong, nonatomic, readonly) SDLVideoStreamManagerState *currentVideoStreamState; @@ -57,11 +59,8 @@ NS_ASSUME_NONNULL_BEGIN */ @property (weak, nonatomic, nullable) id dataSource; -/** - * Whether or not video streaming is supported - * - * @see SDLRegisterAppInterface SDLDisplayCapabilities - */ +/// Whether or not video/audio streaming is supported +/// @discussion If connected to a module pre-SDL v4.5 there is no way to check if streaming is supported so `YES` is returned by default even though the module may not support video/audio streaming. @property (assign, nonatomic, readonly, getter=isStreamingSupported) BOOL streamingSupported; /** @@ -80,9 +79,9 @@ NS_ASSUME_NONNULL_BEGIN @property (assign, nonatomic, readonly, getter=isVideoStreamingPaused) BOOL videoStreamingPaused; /** - * This is the current screen size of a connected display. This will be the size the video encoder uses to encode the raw image data. + Handles the logic of scaling between the view controller's coordinate system and the display's coordinate system */ -@property (assign, nonatomic, readonly) CGSize screenSize; +@property (strong, nonatomic, readonly) SDLStreamingVideoScaleManager *videoScaleManager; /** This is the agreed upon format of video encoder that is in use, or nil if not currently connected. @@ -129,27 +128,40 @@ NS_ASSUME_NONNULL_BEGIN */ @property (assign, nonatomic) SDLStreamingEncryptionFlag requestedEncryptionType; -- (instancetype)init NS_UNAVAILABLE; - /** - Create a new streaming media manager for navigation and VPM apps with a specified configuration - - @param connectionManager The pass-through for RPCs - @param configuration The configuration of this streaming media session - @return A new streaming manager + When YES, the StreamingMediaManager will send a black screen with "Video Backgrounded String". Defaults to YES. */ -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration NS_DESIGNATED_INITIALIZER; +@property (assign, nonatomic) BOOL showVideoBackgroundDisplay; + + +- (instancetype)init NS_UNAVAILABLE; + +/// Create a new streaming video manager for navigation and projection apps with a specified configuration. +/// @param connectionManager The pass-through for RPCs +/// @param configuration This session's configuration +/// @param systemCapabilityManager The system capability manager object for reading window capabilities +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration systemCapabilityManager:(nullable SDLSystemCapabilityManager *)systemCapabilityManager NS_DESIGNATED_INITIALIZER; /** * Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. */ - (void)startWithProtocol:(SDLProtocol *)protocol; -/** - * Stop the manager. This method is used internally. - */ +/// This method is used internally to stop the manager when the device disconnects from the module. - (void)stop; +/// This method is used internally to stop the manager when video needs to be stopped on the secondary transport. The primary transport is still open. +/// 1. Since the primary transport is still open, do will not reset the `hmiLevel` and `videoStreamingState` because we can still get notifications from the module with the updated hmi status on the primary transport. +/// 2. We need to send an end video service control frame to the module to ensure that the video session is shut down correctly. In order to do this the protocol must be kept open and only destroyed after the module ACKs or NAKs our end video service request. +/// 3. Since the primary transport is still open, the video scale manager should not be reset because the default video dimensions are retrieved from the `RegisterAppInterfaceResponse`. Due to a bug with the video start service ACK sometimes returning a screen resolution of {0, 0} on subsequent request to start a video service, we need to keep the screen resolution from the very first start video service ACK. (This is not an issue if the head unit supports the `VideoStreamingCapability`). +/// @param videoEndedCompletionHandler Called when the module ACKs or NAKs to the request to end the video service. +- (void)endVideoServiceWithCompletionHandler:(void (^)(void))videoEndedCompletionHandler; + +/// This method is used internally to stop video streaming when the secondary transport has been closed due to an connection error. The primary transport is still open. +/// 1. Since the transport has been closed, we can not send an end video service control frame to the module. +/// 2. Since the primary transport is still open, we will not reset the `hmiLevel`, `videoStreamingState` or the video scale manager. This lets us resume video streaming if the secondary transport can be reestablished during the same app session. +- (void)secondaryTransportDidDisconnect; + /** * This method receives raw image data and will run iOS8+'s hardware video encoder to turn the data into a video stream, which will then be passed to the connected head unit. * diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m index 5302e28..6e0b8a0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m @@ -10,6 +10,7 @@ #import "CVPixelBufferRef+SDLUtil.h" #import "SDLCarWindow.h" +#import "SDLConfiguration.h" #import "SDLConnectionManagerType.h" #import "SDLControlFramePayloadConstants.h" #import "SDLControlFramePayloadNak.h" @@ -22,21 +23,25 @@ #import "SDLGetSystemCapabilityResponse.h" #import "SDLGlobals.h" #import "SDLH264VideoEncoder.h" -#import "SDLHMICapabilities.h" #import "SDLHMILevel.h" #import "SDLImageResolution.h" +#import "SDLLifecycleConfiguration.h" #import "SDLLogMacros.h" #import "SDLOnHMIStatus.h" #import "SDLProtocol.h" #import "SDLProtocolMessage.h" +#import "SDLPredefinedWindows.h" #import "SDLRegisterAppInterfaceResponse.h" #import "SDLRPCNotificationNotification.h" #import "SDLRPCResponseNotification.h" #import "SDLScreenParams.h" #import "SDLStateMachine.h" #import "SDLStreamingMediaConfiguration.h" +#import "SDLEncryptionConfiguration.h" #import "SDLStreamingMediaManagerDataSource.h" +#import "SDLStreamingVideoScaleManager.h" #import "SDLSystemCapability.h" +#import "SDLSystemCapabilityManager.h" #import "SDLTouchManager.h" #import "SDLVehicleType.h" #import "SDLVideoEncoderDelegate.h" @@ -51,6 +56,7 @@ @interface SDLStreamingVideoLifecycleManager() @property (weak, nonatomic) id connectionManager; +@property (weak, nonatomic, nullable) SDLSystemCapabilityManager *systemCapabilityManager; @property (weak, nonatomic) SDLProtocol *protocol; @property (assign, nonatomic, readonly, getter=isAppStateVideoStreamCapable) BOOL appStateVideoStreamCapable; @@ -62,51 +68,71 @@ @interface SDLStreamingVideoLifecycleManager() @property (strong, nonatomic, readwrite, nullable) SDLVideoStreamingFormat *videoFormat; @property (strong, nonatomic, nullable) SDLH264VideoEncoder *videoEncoder; -@property (copy, nonatomic) NSDictionary *videoEncoderSettings; +@property (strong, nonatomic) NSMutableDictionary *videoEncoderSettings; +@property (copy, nonatomic) NSDictionary *customEncoderSettings; @property (copy, nonatomic) NSArray *secureMakes; -@property (copy, nonatomic) NSString *connectedVehicleMake; +@property (copy, nonatomic, nullable) NSString *connectedVehicleMake; +@property (copy, nonatomic, readonly) NSString *appName; @property (assign, nonatomic) CV_NULLABLE CVPixelBufferRef backgroundingPixelBuffer; @property (strong, nonatomic, nullable) CADisplayLink *displayLink; @property (assign, nonatomic) BOOL useDisplayLink; +@property (assign, nonatomic, readwrite, getter=isVideoEncrypted) BOOL videoEncrypted; + +/** + * SSRC of RTP header field. + * + * SSRC field identifies the source of a stream and it should be + * chosen randomly (see section 3 and 5.1 in RFC 3550). + * + * @note A random value is generated and used as default. + */ +@property (assign, nonatomic) UInt32 ssrc; @property (assign, nonatomic) CMTime lastPresentationTimestamp; +@property (copy, nonatomic, readonly) NSString *videoStreamBackgroundString; +@property (nonatomic, copy, nullable) void (^videoServiceEndedCompletionHandler)(void); + @end @implementation SDLStreamingVideoLifecycleManager -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration { +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration systemCapabilityManager:(nullable SDLSystemCapabilityManager *)systemCapabilityManager { self = [super init]; if (!self) { return nil; } - SDLLogV(@"Creating StreamingLifecycleManager"); - + _appName = configuration.lifecycleConfig.appName; _connectionManager = connectionManager; - _videoEncoderSettings = configuration.customVideoEncoderSettings ?: SDLH264VideoEncoder.defaultVideoEncoderSettings; + _systemCapabilityManager = systemCapabilityManager; + _videoEncoderSettings = [NSMutableDictionary dictionary]; + [_videoEncoderSettings addEntriesFromDictionary: SDLH264VideoEncoder.defaultVideoEncoderSettings]; + _customEncoderSettings = configuration.streamingMediaConfig.customVideoEncoderSettings; + _videoScaleManager = [[SDLStreamingVideoScaleManager alloc] init]; + + if (configuration.streamingMediaConfig.rootViewController != nil) { + NSAssert(configuration.streamingMediaConfig.enableForcedFramerateSync, @"When using CarWindow (rootViewController != nil), forceFrameRateSync must be YES"); - if (configuration.rootViewController != nil) { - NSAssert(configuration.enableForcedFramerateSync, @"When using CarWindow (rootViewController != nil), forceFrameRateSync must be YES"); if (@available(iOS 9.0, *)) { SDLLogD(@"Initializing focusable item locator"); - _focusableItemManager = [[SDLFocusableItemLocator alloc] initWithViewController:configuration.rootViewController connectionManager:_connectionManager]; + _focusableItemManager = [[SDLFocusableItemLocator alloc] initWithViewController:configuration.streamingMediaConfig.rootViewController connectionManager:_connectionManager videoScaleManager:_videoScaleManager]; } SDLLogD(@"Initializing CarWindow"); - _carWindow = [[SDLCarWindow alloc] initWithStreamManager:self configuration:configuration]; - _carWindow.rootViewController = configuration.rootViewController; + _carWindow = [[SDLCarWindow alloc] initWithStreamManager:self configuration:configuration.streamingMediaConfig]; + _carWindow.rootViewController = configuration.streamingMediaConfig.rootViewController; } - _touchManager = [[SDLTouchManager alloc] initWithHitTester:(id)_focusableItemManager]; + _touchManager = [[SDLTouchManager alloc] initWithHitTester:(id)_focusableItemManager videoScaleManager:_videoScaleManager]; - _requestedEncryptionType = configuration.maximumDesiredEncryption; - _dataSource = configuration.dataSource; - _useDisplayLink = configuration.enableForcedFramerateSync; - _screenSize = SDLDefaultScreenSize; + _requestedEncryptionType = configuration.streamingMediaConfig.maximumDesiredEncryption; + _dataSource = configuration.streamingMediaConfig.dataSource; + _useDisplayLink = configuration.streamingMediaConfig.enableForcedFramerateSync; _backgroundingPixelBuffer = NULL; + _showVideoBackgroundDisplay = YES; _preferredFormatIndex = 0; _preferredResolutionIndex = 0; @@ -114,10 +140,17 @@ - (instancetype)initWithConnectionManager:(id)connecti _videoStreamingState = SDLVideoStreamingStateNotStreamable; NSMutableArray *tempMakeArray = [NSMutableArray array]; - for (Class securityManagerClass in configuration.securityManagers) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + for (Class securityManagerClass in configuration.streamingMediaConfig.securityManagers) { [tempMakeArray addObjectsFromArray:[securityManagerClass availableMakes].allObjects]; } - _secureMakes = [tempMakeArray copy]; +#pragma clang diagnostic pop + for (Class securityManagerClass in configuration.encryptionConfig.securityManagers) { + [tempMakeArray addObjectsFromArray:[securityManagerClass availableMakes].allObjects]; + } + NSOrderedSet *tempMakeSet = [NSOrderedSet orderedSetWithArray:tempMakeArray]; + _secureMakes = [tempMakeSet.array copy]; SDLAppState *initialState = SDLAppStateInactive; switch ([[UIApplication sharedApplication] applicationState]) { @@ -140,12 +173,14 @@ - (instancetype)initWithConnectionManager:(id)connecti [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appStateDidUpdate:) name:UIApplicationDidBecomeActiveNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appStateDidUpdate:) name:UIApplicationWillResignActiveNotification object:nil]; + _ssrc = arc4random_uniform(UINT32_MAX); _lastPresentationTimestamp = kCMTimeInvalid; return self; } - (void)startWithProtocol:(SDLProtocol *)protocol { + SDLLogD(@"Starting with protocol: %@", protocol); _protocol = protocol; @synchronized(self.protocol.protocolDelegateTable) { @@ -154,27 +189,42 @@ - (void)startWithProtocol:(SDLProtocol *)protocol { } } + [self.focusableItemManager start]; + // attempt to start streaming since we may already have necessary conditions met [self sdl_startVideoSession]; } - (void)stop { SDLLogD(@"Stopping manager"); - [self sdl_stopVideoSession]; - _protocol = nil; - _screenSize = SDLDefaultScreenSize; _backgroundingPixelBuffer = NULL; _preferredFormatIndex = 0; _preferredResolutionIndex = 0; - + _lastPresentationTimestamp = kCMTimeInvalid; _hmiLevel = SDLHMILevelNone; _videoStreamingState = SDLVideoStreamingStateNotStreamable; - _lastPresentationTimestamp = kCMTimeInvalid; + _protocol = nil; + [self.videoScaleManager stop]; + [self.focusableItemManager stop]; + _connectedVehicleMake = nil; + + [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; +} +- (void)secondaryTransportDidDisconnect { + SDLLogD(@"Stopping video manager"); + [self.focusableItemManager stop]; [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; } +- (void)endVideoServiceWithCompletionHandler:(void (^)(void))videoEndedCompletionHandler { + SDLLogD(@"Ending video service"); + [self sdl_disposeDisplayLink]; + self.videoServiceEndedCompletionHandler = videoEndedCompletionHandler; + [self.protocol endServiceWithType:SDLServiceTypeVideo]; +} + - (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer { return [self sendVideoData:imageBuffer presentationTimestamp:kCMTimeInvalid]; } @@ -254,9 +304,14 @@ - (void)sdl_appStateDidUpdate:(NSNotification*)notification { - (void)didEnterStateAppInactive { SDLLogD(@"App became inactive"); - if (!self.protocol) { return; } + if (self.protocol == nil) { + SDLLogV(@"No session established with head unit. Ignoring app backgrounded notification"); + return; + } - [self sdl_sendBackgroundFrames]; + if (_showVideoBackgroundDisplay) { + [self sdl_sendBackgroundFrames]; + } [self.touchManager cancelPendingTouches]; if (self.isVideoConnected) { @@ -270,7 +325,10 @@ - (void)didEnterStateAppInactive { // We should be waiting to start any OpenGL drawing until UIApplicationDidBecomeActive is called. - (void)didEnterStateAppActive { SDLLogD(@"App became active"); - if (!self.protocol) { return; } + if (self.protocol == nil) { + SDLLogV(@"No session established with head unit. Ignoring app foregounded notification"); + return; + } if (self.isVideoSuspended) { [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateReady]; @@ -290,6 +348,13 @@ - (void)didEnterStateAppActive { }; } +- (void)sdl_disposeDisplayLink { + if (self.displayLink == nil) { return; } + SDLLogD(@"Destroying display link"); + [self.displayLink invalidate]; + self.displayLink = nil; +} + - (void)didEnterStateVideoStreamStopped { SDLLogD(@"Video stream stopped"); _videoEncrypted = NO; @@ -300,10 +365,19 @@ - (void)didEnterStateVideoStreamStopped { _videoEncoder = nil; } - self.displayLink.paused = YES; - [self.displayLink invalidate]; + _backgroundingPixelBuffer = NULL; + _preferredFormatIndex = 0; + _preferredResolutionIndex = 0; + _lastPresentationTimestamp = kCMTimeInvalid; + + [self sdl_disposeDisplayLink]; [[NSNotificationCenter defaultCenter] postNotificationName:SDLVideoStreamDidStopNotification object:nil]; + + if (self.videoServiceEndedCompletionHandler != nil) { + self.videoServiceEndedCompletionHandler(); + self.videoServiceEndedCompletionHandler = nil; + } } - (void)didEnterStateVideoStreamStarting { @@ -318,6 +392,9 @@ - (void)didEnterStateVideoStreamStarting { // If we got a response, get the head unit's preferred formats and resolutions weakSelf.preferredFormats = capability.supportedFormats; weakSelf.preferredResolutions = @[capability.preferredResolution]; + if (capability.maxBitrate != nil) { + weakSelf.videoEncoderSettings[(__bridge NSString *) kVTCompressionPropertyKey_AverageBitRate] = [[NSNumber alloc] initWithUnsignedLongLong:(capability.maxBitrate.unsignedLongLongValue * 1000)]; + } if (weakSelf.dataSource != nil) { SDLLogV(@"Calling data source for modified preferred formats"); @@ -332,7 +409,7 @@ - (void)didEnterStateVideoStreamStarting { } else { // If no response, assume that the format is H264 RAW and get the screen resolution from the RAI response's display capabilities. SDLVideoStreamingFormat *format = [[SDLVideoStreamingFormat alloc] initWithCodec:SDLVideoStreamingCodecH264 protocol:SDLVideoStreamingProtocolRAW]; - SDLImageResolution *resolution = [[SDLImageResolution alloc] initWithWidth:(uint16_t)weakSelf.screenSize.width height:(uint16_t)weakSelf.screenSize.height]; + SDLImageResolution *resolution = [[SDLImageResolution alloc] initWithWidth:(uint16_t)weakSelf.videoScaleManager.displayViewportResolution.width height:(uint16_t)weakSelf.videoScaleManager.displayViewportResolution.height]; weakSelf.preferredFormats = @[format]; weakSelf.preferredResolutions = @[resolution]; @@ -343,6 +420,11 @@ - (void)didEnterStateVideoStreamStarting { SDLLogD(@"Using generic video capabilites, preferred formats: %@, resolutions: %@, haptics disabled", weakSelf.preferredFormats, weakSelf.preferredResolutions); } + // Apply customEncoderSettings here. Note that value from HMI (such as maxBitrate) will be overwritten by custom settings. + for (id key in self.customEncoderSettings.keyEnumerator) { + self.videoEncoderSettings[key] = [self.customEncoderSettings valueForKey:key]; + } + if (weakSelf.dataSource != nil) { SDLLogV(@"Calling data source for modified preferred resolutions"); weakSelf.preferredResolutions = [weakSelf.dataSource resolutionFromHeadUnitPreferredResolution:weakSelf.preferredResolutions.firstObject]; @@ -361,12 +443,22 @@ - (void)didEnterStateVideoStreamReady { self.videoEncoder = nil; } + [self sdl_disposeDisplayLink]; + + [[NSNotificationCenter defaultCenter] postNotificationName:SDLVideoStreamDidStartNotification object:nil]; + + if (!self.isAppStateVideoStreamCapable) { + SDLLogD(@"App is in the background and can not stream video. Video will resume when app is foregrounded"); + [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateSuspended]; + return; + } + if (self.videoEncoder == nil) { NSError* error = nil; NSAssert(self.videoFormat != nil, @"No video format is known, but it must be if we got a protocol start service response"); SDLLogD(@"Attempting to create video encoder"); - self.videoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:self.videoFormat.protocol dimensions:self.screenSize properties:self.videoEncoderSettings delegate:self error:&error]; + self.videoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:self.videoFormat.protocol dimensions:self.videoScaleManager.appViewportFrame.size ssrc:self.ssrc properties:self.videoEncoderSettings delegate:self error:&error]; if (error || self.videoEncoder == nil) { SDLLogE(@"Could not create a video encoder: %@", error); @@ -376,7 +468,7 @@ - (void)didEnterStateVideoStreamReady { if (!self.backgroundingPixelBuffer) { CVPixelBufferRef backgroundingPixelBuffer = [self.videoEncoder newPixelBuffer]; - if (CVPixelBufferAddText(backgroundingPixelBuffer, @"") == NO) { + if (CVPixelBufferAddText(backgroundingPixelBuffer, self.videoStreamBackgroundString) == NO) { SDLLogE(@"Could not create a backgrounding frame"); [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; return; @@ -387,20 +479,19 @@ - (void)didEnterStateVideoStreamReady { self.lastPresentationTimestamp = kCMTimeInvalid; } - [[NSNotificationCenter defaultCenter] postNotificationName:SDLVideoStreamDidStartNotification object:nil]; - if (self.useDisplayLink) { + __weak typeof(self) weakSelf = self; dispatch_async(dispatch_get_main_queue(), ^{ - // And start up the displayLink - NSInteger targetFramerate = ((NSNumber *)self.videoEncoderSettings[(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate]).integerValue; + __strong typeof(weakSelf) strongSelf = weakSelf; + NSInteger targetFramerate = ((NSNumber *)strongSelf.videoEncoderSettings[(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate]).integerValue; SDLLogD(@"Initializing CADisplayLink with framerate: %ld", (long)targetFramerate); - self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(sdl_displayLinkFired:)]; + strongSelf.displayLink = [CADisplayLink displayLinkWithTarget:strongSelf selector:@selector(sdl_displayLinkFired:)]; if (@available(iOS 10, *)) { - self.displayLink.preferredFramesPerSecond = targetFramerate; + strongSelf.displayLink.preferredFramesPerSecond = targetFramerate; } else { - self.displayLink.frameInterval = (60 / targetFramerate); + strongSelf.displayLink.frameInterval = (60 / targetFramerate); } - [self.displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; + [strongSelf.displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; }); } else { self.touchManager.enableSyncedPanning = NO; @@ -409,7 +500,7 @@ - (void)didEnterStateVideoStreamReady { - (void)didEnterStateVideoStreamSuspended { SDLLogD(@"Video stream suspended"); - + [self sdl_disposeDisplayLink]; [[NSNotificationCenter defaultCenter] postNotificationName:SDLVideoStreamSuspendedNotification object:nil]; } @@ -419,38 +510,31 @@ - (void)didEnterStateVideoStreamShuttingDown { } #pragma mark - SDLProtocolListener -#pragma mark Video / Audio Start Service ACK +#pragma mark Start Service ACK/NAK - (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { - switch (startServiceACK.header.serviceType) { - case SDLServiceTypeVideo: { - [self sdl_handleVideoStartServiceAck:startServiceACK]; - } break; - default: break; - } -} + if (startServiceACK.header.serviceType != SDLServiceTypeVideo) { return; } + + self.videoEncrypted = startServiceACK.header.encrypted; -- (void)sdl_handleVideoStartServiceAck:(SDLProtocolMessage *)videoStartServiceAck { - SDLLogD(@"Video service started"); - _videoEncrypted = videoStartServiceAck.header.encrypted; + SDLControlFramePayloadVideoStartServiceAck *videoAckPayload = [[SDLControlFramePayloadVideoStartServiceAck alloc] initWithData:startServiceACK.payload]; + SDLLogD(@"Request to start video service ACKed with payload: %@", videoAckPayload); - SDLControlFramePayloadVideoStartServiceAck *videoAckPayload = [[SDLControlFramePayloadVideoStartServiceAck alloc] initWithData:videoStartServiceAck.payload]; - SDLLogV(@"ACK: %@", videoAckPayload); if (videoAckPayload.mtu != SDLControlFrameInt64NotFound) { [[SDLGlobals sharedGlobals] setDynamicMTUSize:(NSUInteger)videoAckPayload.mtu forServiceType:SDLServiceTypeVideo]; } // This is the definitive screen size that will be used - if (videoAckPayload.height != SDLControlFrameInt32NotFound && videoAckPayload.width != SDLControlFrameInt32NotFound) { - _screenSize = CGSizeMake(videoAckPayload.width, videoAckPayload.height); + if ((videoAckPayload.height != SDLControlFrameInt32NotFound || videoAckPayload.height != 0) && (videoAckPayload.width != SDLControlFrameInt32NotFound && videoAckPayload.width != 0)) { + self.videoScaleManager.displayViewportResolution = CGSizeMake(videoAckPayload.width, videoAckPayload.height); } else if (self.preferredResolutions.count > 0) { // If a preferred resolution was set, use the first option to set the screen size SDLImageResolution *preferredResolution = self.preferredResolutions.firstObject; CGSize newScreenSize = CGSizeMake(preferredResolution.resolutionWidth.floatValue, preferredResolution.resolutionHeight.floatValue); - if (!CGSizeEqualToSize(self.screenSize, newScreenSize)) { + if (!CGSizeEqualToSize(self.videoScaleManager.displayViewportResolution, newScreenSize)) { SDLLogW(@"The preferred resolution does not match the screen dimensions returned by the Register App Interface Response. Video may look distorted or video may not show up on the head unit"); - _screenSize = CGSizeMake(preferredResolution.resolutionWidth.floatValue, preferredResolution.resolutionHeight.floatValue); + self.videoScaleManager.displayViewportResolution = CGSizeMake(preferredResolution.resolutionWidth.floatValue, preferredResolution.resolutionHeight.floatValue); } } // else we are using the screen size we got from the RAIR earlier @@ -462,25 +546,15 @@ - (void)sdl_handleVideoStartServiceAck:(SDLProtocolMessage *)videoStartServiceAc [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateReady]; } -#pragma mark Video / Audio Start Service NAK - - (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceNAK { - switch (startServiceNAK.header.serviceType) { - case SDLServiceTypeVideo: { - [self sdl_handleVideoStartServiceNak:startServiceNAK]; - } - default: break; - } -} + if (startServiceNAK.header.serviceType != SDLServiceTypeVideo) { return; } -- (void)sdl_handleVideoStartServiceNak:(SDLProtocolMessage *)videoStartServiceNak { - SDLLogW(@"Video service failed to start due to NAK"); - SDLControlFramePayloadNak *nakPayload = [[SDLControlFramePayloadNak alloc] initWithData:videoStartServiceNak.payload]; - SDLLogD(@"NAK: %@", videoStartServiceNak); + SDLControlFramePayloadNak *nakPayload = [[SDLControlFramePayloadNak alloc] initWithData:startServiceNAK.payload]; + SDLLogE(@"Request to start video service NAKed with reason: %@", nakPayload.description); // If we have no payload rejected params, we don't know what to do to retry, so we'll just stop and maybe cry if (nakPayload.rejectedParams.count == 0) { - [self sdl_transitionToStoppedState:SDLServiceTypeVideo]; + [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; return; } @@ -498,16 +572,23 @@ - (void)sdl_handleVideoStartServiceNak:(SDLProtocolMessage *)videoStartServiceNa [self sdl_sendVideoStartService]; } -#pragma mark Video / Audio End Service +#pragma mark End Service ACK/NAK - (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { - SDLLogD(@"%@ service ended", (endServiceACK.header.serviceType == SDLServiceTypeVideo ? @"Video" : @"Audio")); - [self sdl_transitionToStoppedState:endServiceACK.header.serviceType]; + if (endServiceACK.header.serviceType != SDLServiceTypeVideo) { return; } + SDLLogD(@"Request to end video service ACKed"); + + [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; } - (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { - SDLLogW(@"%@ service ended with end service NAK", (endServiceNAK.header.serviceType == SDLServiceTypeVideo ? @"Video" : @"Audio")); - [self sdl_transitionToStoppedState:endServiceNAK.header.serviceType]; + if (endServiceNAK.header.serviceType != SDLServiceTypeVideo) { return; } + + SDLControlFramePayloadNak *nakPayload = [[SDLControlFramePayloadNak alloc] initWithData:endServiceNAK.payload]; + SDLLogE(@"Request to end video service NAKed with payload: %@", nakPayload); + + /// Core will NAK the video end service control frame if video is not streaming or if video is streaming but the HMI does not recognize that video is streaming. + [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; } #pragma mark - SDL RPC Notification callbacks @@ -519,29 +600,35 @@ - (void)sdl_didReceiveRegisterAppInterfaceResponse:(SDLRPCResponseNotification * } SDLLogD(@"Received Register App Interface"); - SDLRegisterAppInterfaceResponse* registerResponse = (SDLRegisterAppInterfaceResponse*)notification.response; - - SDLLogV(@"Determining whether streaming is supported"); - _streamingSupported = registerResponse.hmiCapabilities.videoStreaming ? registerResponse.hmiCapabilities.videoStreaming.boolValue : registerResponse.displayCapabilities.graphicSupported.boolValue; + SDLRegisterAppInterfaceResponse *registerResponse = (SDLRegisterAppInterfaceResponse *)notification.response; - if (!self.isStreamingSupported) { - SDLLogE(@"Graphics are not supported on this head unit. We are are assuming screen size is also unavailable and exiting."); - return; - } - - SDLImageResolution* resolution = registerResponse.displayCapabilities.screenParams.resolution; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated" + SDLImageResolution *resolution = registerResponse.displayCapabilities.screenParams.resolution; +#pragma clang diagnostic pop if (resolution != nil) { - _screenSize = CGSizeMake(resolution.resolutionWidth.floatValue, + self.videoScaleManager.displayViewportResolution = CGSizeMake(resolution.resolutionWidth.floatValue, resolution.resolutionHeight.floatValue); - } else { - _screenSize = SDLDefaultScreenSize; + // HAX: Workaround for Legacy Ford and Lincoln displays with > 800 resolution width or height. They don't support scaling and if we don't do this workaround, they will not correctly scale the view. + NSString *make = registerResponse.vehicleType.make; + CGSize resolution = self.videoScaleManager.displayViewportResolution; + if (([make containsString:@"Ford"] || [make containsString:@"Lincoln"]) && (resolution.width > 800 || resolution.height > 800)) { + self.videoScaleManager.scale = 1.0f / 0.75f; // Scale by 1.333333 + } } self.connectedVehicleMake = registerResponse.vehicleType.make; - SDLLogD(@"Determined base screen size on display capabilities: %@", NSStringFromCGSize(_screenSize)); + SDLLogD(@"Determined base screen size on display capabilities: %@", NSStringFromCGSize(self.videoScaleManager.displayViewportResolution)); } +/// Parses out the `hmiLevel` and `videoStreamingState` from an `OnHMIStatus` notification from Core. Since Core only allows video streaming when the `hmiLevel` is `FULL` or `LIMITED`, sending video data when the `hmiLevel` is not `FULL` or `LIMITED` will result in Core forcing an unregistration with a reason of `PROTOCOL_VIOLATION`. +/// 1. The `hmiLevel` will go to `FULL` when the user opens the SDL app by tapping on the SDL app icon on the HMI or uses a voice command to launch the SDL app. +/// 2. The `hmiLevel` will go to `LIMITED` when the user backgrounds the SDL app by opening another app or by going back to the home screen. +/// 3. The `hmiLevel` will go to `NONE` when the user "exits" the app (either through gesture or voice commands). It will also go to `NONE` if video fails to stream and the user presses "cancel" on the HMI popup. In these cases the transport between the phone and accessory will still be open. It will also go to `NONE` when the user disconnects the transport between the phone and accessory. In this case no notification will be recieved since the transport was disconnected. +/// 4. The `hmiLevel` will go to `BACKGROUND` if the app is in `LIMITED` and another app takes over video streaming capability (i.e. another navigation app's `hmiLevel` changes to `FULL`). +/// +/// @param notification The `OnHMIStatus` notification - (void)sdl_hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { NSAssert([notification.notification isKindOfClass:[SDLOnHMIStatus class]], @"A notification was sent with an unanticipated object"); if (![notification.notification isKindOfClass:[SDLOnHMIStatus class]]) { @@ -549,12 +636,12 @@ - (void)sdl_hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { } SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus*)notification.notification; - - if (![self.hmiLevel isEqualToEnum:hmiStatus.hmiLevel]) { - SDLLogD(@"HMI level changed from level %@ to level %@", self.hmiLevel, hmiStatus.hmiLevel); - self.hmiLevel = hmiStatus.hmiLevel; + if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { + return; } + self.hmiLevel = hmiStatus.hmiLevel; + SDLVideoStreamingState newState = hmiStatus.videoStreamingState ?: SDLVideoStreamingStateStreamable; if (![self.videoStreamingState isEqualToEnum:newState]) { SDLLogD(@"Video streaming state changed from %@ to %@", self.videoStreamingState, hmiStatus.videoStreamingState); @@ -562,7 +649,10 @@ - (void)sdl_hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { } // if startWithProtocol has not been called yet, abort here - if (!self.protocol) { return; } + if (self.protocol == nil) { + SDLLogW(@"No session established with head unit. HMI status is not relevant."); + return; + } if (self.isHmiStateVideoStreamCapable) { [self sdl_startVideoSession]; @@ -591,8 +681,8 @@ - (void)videoEncoder:(SDLH264VideoEncoder *)encoder hasEncodedFrame:(NSData *)en - (void)sdl_startVideoSession { SDLLogV(@"Attempting to start video session"); - if (!self.protocol) { - SDLLogV(@"Video manager is not yet started"); + if (self.protocol == nil) { + SDLLogW(@"No transport established with head unit. Video start service request will not be sent."); return; } @@ -619,22 +709,14 @@ - (void)sdl_startVideoSession { - (void)sdl_stopVideoSession { SDLLogV(@"Attempting to stop video session"); if (!self.isStreamingSupported) { + SDLLogW(@"Head unit does not support video streaming. Will not send an end video service request"); return; } - if (self.isVideoConnected || self.isVideoSuspended) { [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateShuttingDown]; - } -} - -- (void)sdl_transitionToStoppedState:(SDLServiceType)serviceType { - switch (serviceType) { - case SDLServiceTypeVideo: - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; - break; - default: - break; + } else { + SDLLogW(@"No video is currently streaming. Will not send an end video service request."); } } @@ -686,6 +768,9 @@ - (void)sdl_requestVideoCapabilities:(SDLVideoCapabilityResponseHandler)response SDLVideoStreamingCapability *videoCapability = ((SDLGetSystemCapabilityResponse *)response).systemCapability.videoStreamingCapability; SDLLogD(@"Video capabilities response received: %@", videoCapability); + + self.videoScaleManager.scale = (videoCapability != nil && videoCapability.scale != nil) ? videoCapability.scale.floatValue : (float)0.0; + responseHandler(videoCapability); }]; } @@ -708,7 +793,7 @@ - (void)sdl_sendVideoStartService { if (self.preferredFormatIndex >= self.preferredFormats.count || self.preferredResolutionIndex >= self.preferredResolutions.count) { SDLLogE(@"No preferred format or no preferred resolution found that works: format index %lu, resolution index %lu", (unsigned long)self.preferredFormatIndex, (unsigned long)self.preferredResolutionIndex); - [self sdl_transitionToStoppedState:SDLServiceTypeVideo]; + [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; return; } @@ -720,7 +805,7 @@ - (void)sdl_sendVideoStartService { // Decide if we need to start a secure service or not if ((self.requestedEncryptionType != SDLStreamingEncryptionFlagNone) && ([self.secureMakes containsObject:self.connectedVehicleMake])) { SDLLogD(@"Sending secure video start service with payload: %@", startVideoPayload); - [self.protocol startSecureServiceWithType:SDLServiceTypeVideo payload:startVideoPayload.data completionHandler:^(BOOL success, NSError *error) { + [self.protocol startSecureServiceWithType:SDLServiceTypeVideo payload:startVideoPayload.data tlsInitializationHandler:^(BOOL success, NSError *error) { if (error) { SDLLogE(@"TLS setup error: %@", error); [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; @@ -768,6 +853,14 @@ - (BOOL)isHmiStateVideoStreamCapable { return @[h264raw, h264rtp]; } +- (NSString *)videoStreamBackgroundString { + return [NSString stringWithFormat:@"When it is safe to do so, open %@ on your phone", self.appName]; +} + +- (BOOL)isStreamingSupported { + return (self.systemCapabilityManager != nil) ? [self.systemCapabilityManager isCapabilitySupported:SDLSystemCapabilityTypeVideoStreaming] : YES; +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.h new file mode 100644 index 0000000..77d4a97 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.h @@ -0,0 +1,78 @@ +// +// SDLStreamingVideoScaleManager.h +// SmartDeviceLink +// +// Created by Nicole on 10/1/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +@class SDLOnTouchEvent; +@class SDLHapticRect; + +NS_ASSUME_NONNULL_BEGIN + +/** + This class consolidates the logic of scaling between the view controller's coordinate system and the display's coordinate system. + + The main goal of using scaling is to align different screens and use a common range of "points per inch". This allows showing assets with a similar size on different screen resolutions. + */ +@interface SDLStreamingVideoScaleManager : NSObject + +/** + The scaling factor the app should use to change the size of the projecting view. + */ +@property (assign, nonatomic) float scale; + +/** + The screen resolution of the connected display. The units are pixels. + */ +@property (assign, nonatomic) CGSize displayViewportResolution; + +/** + The frame of the app's projecting view. This is calculated by dividing the display's viewport resolution by the scale. The units are points. + */ +@property (assign, nonatomic, readonly) CGRect appViewportFrame; + +/** + Creates a default streaming video scale manager. + The scale value will be set to 1.0 and the displayViewportResolution will be set to {0, 0}. + + @return A SDLStreamingVideoScaleManager object + */ +- (instancetype)init; + +/** + Convenience init for creating the manager with a scale and connected display viewport resolution. + + @param scale The scaling factor the app should use to change the size of the projecting view + @param displayViewportResolution The current screen resolution of the connected display + @return A SDLStreamingVideoScaleManager object + */ +- (instancetype)initWithScale:(float)scale displayViewportResolution:(CGSize)displayViewportResolution; + +/** + Scales the coordinates of an `OnTouchEvent` from the display's coordinate system to the app's viewport coordinate system. If the scale value is less than 1.0, the touch events will be returned without being scaled. + + @param onTouchEvent A touch event with coordinates + @return The touch event coordinates in the app's viewport coordinate system + */ +- (SDLOnTouchEvent *)scaleTouchEventCoordinates:(SDLOnTouchEvent *)onTouchEvent; + +/** + Scales a haptic rectangle from the app's viewport coordinate system to the display's coordinate system. If the scale value is less than 1.0, the haptic rectangle will be returned without being scaled. + + @param hapticRect A haptic rectangle + @return The position of the haptic rectangle in the display's coordinate system + */ +- (SDLHapticRect *)scaleHapticRect:(SDLHapticRect *)hapticRect; + +/** + Stops the manager. This method is used internally. + */ +- (void)stop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.m new file mode 100644 index 0000000..d9c2158 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.m @@ -0,0 +1,98 @@ +// +// SDLStreamingVideoScaleManager.m +// SmartDeviceLink +// +// Created by Nicole on 10/1/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLStreamingVideoScaleManager.h" + +#import "SDLOnTouchEvent.h" +#import "SDLRectangle.h" +#import "SDLTouchCoord.h" +#import "SDLTouchEvent.h" +#import "SDLHapticRect.h" +#import "SDLNotificationConstants.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLStreamingVideoScaleManager () + +@property (assign, nonatomic, readwrite) CGRect appViewportFrame; + +@end + +@implementation SDLStreamingVideoScaleManager + +const float SDLDefaultScaleValue = 1.0; +CGSize const SDLDefaultDisplayViewportResolution = {0, 0}; + +- (instancetype)init { + return [[self.class alloc] initWithScale:SDLDefaultScaleValue displayViewportResolution:SDLDefaultDisplayViewportResolution]; +} + +- (void)stop { + self.displayViewportResolution = SDLDefaultDisplayViewportResolution; + self.scale = SDLDefaultScaleValue; +} + +- (instancetype)initWithScale:(float)scale displayViewportResolution:(CGSize)displayViewportResolution { + self = [super init]; + if (!self) { + return nil; + } + + _scale = [self.class validateScale:scale]; + _displayViewportResolution = displayViewportResolution; + + return self; +} + +- (SDLOnTouchEvent *)scaleTouchEventCoordinates:(SDLOnTouchEvent *)onTouchEvent { + if (self.scale <= SDLDefaultScaleValue) { + return onTouchEvent; + } + for (SDLTouchEvent *touchEvent in onTouchEvent.event) { + for (SDLTouchCoord *coord in touchEvent.coord) { + coord.x = @(coord.x.floatValue / self.scale); + coord.y = @(coord.y.floatValue / self.scale); + } + } + return onTouchEvent; +} + +- (SDLHapticRect *)scaleHapticRect:(SDLHapticRect *)hapticRect { + hapticRect.rect.x = @(hapticRect.rect.x.floatValue * self.scale); + hapticRect.rect.y = @(hapticRect.rect.y.floatValue * self.scale); + hapticRect.rect.width = @(hapticRect.rect.width.floatValue * self.scale); + hapticRect.rect.height = @(hapticRect.rect.height.floatValue * self.scale); + return hapticRect; +} + +#pragma mark - Getters and Setters + +- (CGRect)appViewportFrame { + // Screen capture in the CarWindow API only works if the width and height are integer values + return CGRectMake(0, 0, roundf((float)self.displayViewportResolution.width / self.scale), roundf((float)self.displayViewportResolution.height / self.scale)); +} + +- (void)setScale:(float)scale { + _scale = [self.class validateScale:scale]; +} + +#pragma mark - Helpers + +/** + Validates the scale value. Returns the default scale value for 1.0 if the scale value is less than 1.0 + + @param scale The scale value to be validated. + @return The validated scale value + */ ++ (float)validateScale:(float)scale { + return (scale > SDLDefaultScaleValue) ? scale : SDLDefaultScaleValue; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.h index 4dc6280..75c058d 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.h @@ -69,6 +69,11 @@ NS_ASSUME_NONNULL_BEGIN */ - (instancetype)initWithHandler:(nullable SDLRPCButtonNotificationHandler)handler; +/// Construct a SDLSubscribeButton with a handler callback when an event occurs with a button name. +/// +/// @param buttonName The name of the button to subscribe to +/// @param handler A callback that will be called when a button event occurs for the subscribed button +/// @return An SDLSubscribeButton object - (instancetype)initWithButtonName:(SDLButtonName)buttonName handler:(nullable SDLRPCButtonNotificationHandler)handler; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.m index 1a94caa..b8f25b5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.m @@ -5,17 +5,21 @@ #import "SDLSubscribeButton.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeButton +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSubscribeButton]) { + if (self = [super initWithName:SDLRPCFunctionNameSubscribeButton]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithHandler:(nullable SDLRPCButtonNotificationHandler)handler { self = [self init]; @@ -41,11 +45,12 @@ - (instancetype)initWithButtonName:(SDLButtonName)buttonName handler:(nullable S } - (void)setButtonName:(SDLButtonName)buttonName { - [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; + [self.parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; } - (SDLButtonName)buttonName { - return [parameters sdl_objectForName:SDLNameButtonName]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; } -(id)copyWithZone:(nullable NSZone *)zone { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.h new file mode 100644 index 0000000..c73d3d8 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.h @@ -0,0 +1,75 @@ +// +// SDLSubscribeButtonManager.h +// SmartDeviceLink +// +// Created by Nicole on 5/21/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLButtonName.h" +#import "SDLConnectionManagerType.h" +#import "SDLNotificationConstants.h" + +@class SDLSystemCapabilityManager; + +NS_ASSUME_NONNULL_BEGIN + +/// A handler run when the subscribe button has been selected. +/// @param buttonPress Indicates whether this is a long or short button press event +/// @param buttonEvent Indicates whether the button has been depressed or released +/// @param error The error, if one occurred, during the subscription +typedef void (^SDLSubscribeButtonUpdateHandler)(SDLOnButtonPress *_Nullable buttonPress, SDLOnButtonEvent *_Nullable buttonEvent, NSError *_Nullable error); + +/// The handler run when the update has completed. +/// @param error An error if the update failed +typedef void(^SDLSubscribeButtonUpdateCompletionHandler)(NSError *__nullable error); + +/// Manager for handling subscriptions to hard buttons. +@interface SDLSubscribeButtonManager : NSObject + +/// Initialize the manager with required dependencies. +/// @param connectionManager The connection manager object for sending RPCs +- (instancetype)initWithConnectionManager:(id)connectionManager; + +/// Starts the manager. This method is used internally. +- (void)start; + +/// Stops the manager. This method is used internally. +- (void)stop; + +/// Subscribes to a subscribe button. The update handler will be called when the button has been selected. If there is an error subscribing to the subscribe button it will be returned in the `error` parameter of the updateHandler. +/// @param buttonName The name of the hard button to subscribe to +/// @param updateHandler The block run when the subscribe button is selected +/// @return An object that can be used to unsubscribe the block using `unsubscribeButtonWithObserver:withCompletionHandler:`. +- (id)subscribeButton:(SDLButtonName)buttonName withUpdateHandler:(nullable SDLSubscribeButtonUpdateHandler)updateHandler; + +/// Subscribes to a subscribe button. The selector will be called when the button has been selected. If there is an error subscribing to the subscribe button it will be returned in the `error` parameter of the selector. +/// +/// The selector supports the following parameters: +/// +/// 1. A selector with no parameters. The observer will be notified when a button press occurs (it will not know if a short or long press has occurred). +/// +/// 2. A selector with one parameter, (SDLButtonName). The observer will be notified when a button press occurs (it will not know if a short or long press has occurred). +/// +/// 3. A selector with two parameters, (SDLButtonName, NSError). The observer will be notified when a button press occurs (it will not know if a short or long press has occurred). +/// +/// 4. A selector with three parameters, (SDLButtonName, NSError, SDLOnButtonPress). The observer will be notified when a long or short button press occurs, but not a button event. +/// +/// 5. A selector with four parameters, (SDLButtonName, NSError, SDLOnButtonPress, SDLOnButtonEvent). The observer will be notified when any button press or any button event occurs. +/// +/// To unsubscribe to the hard button, please call `unsubscribeButton:withObserver:withCompletionHandler:`. +/// +/// @param buttonName The name of the hard button to subscribe to +/// @param observer The object that will have `selector` called whenever the button has been selected +/// @param selector The selector on `observer` that will be called whenever the button has been selected +- (void)subscribeButton:(SDLButtonName)buttonName withObserver:(id)observer selector:(SEL)selector; + +/// Unsubscribes to a subscribe button. Please note that if a subscribe button has multiple subscribers the observer will no longer get notifications, however, the app will still be subscribed to the hard button until the last subscriber is removed. +/// @param buttonName The name of the hard button to subscribe to +/// @param observer The object that will be unsubscribed. If a block was subscribed, the return value should be passed. If a selector was subscribed, the observer object should be passed +/// @param completionHandler A handler called when the observer has been unsubscribed to the hard button +- (void)unsubscribeButton:(SDLButtonName)buttonName withObserver:(id)observer withCompletionHandler:(nullable SDLSubscribeButtonUpdateCompletionHandler)completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.m new file mode 100644 index 0000000..5057402 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.m @@ -0,0 +1,311 @@ +// +// SDLSDLSubscribeButtonManager.m +// SmartDeviceLink +// +// Created by Nicole on 5/21/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLSubscribeButtonManager.h" + +#import "SDLError.h" +#import "SDLGlobals.h" +#import "SDLHMIPermissions.h" +#import "SDLLogMacros.h" +#import "SDLOnButtonPress.h" +#import "SDLOnHMIStatus.h" +#import "SDLOnPermissionsChange.h" +#import "SDLPermissionItem.h" +#import "SDLPredefinedWindows.h" +#import "SDLRPCFunctionNames.h" +#import "SDLRPCNotificationNotification.h" +#import "SDLSubscribeButton.h" +#import "SDLSubscribeButtonObserver.h" +#import "SDLUnsubscribeButton.h" +#import "SDLUnsubscribeButtonResponse.h" +#import "SDLOnButtonEvent.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSubscribeButtonManager() + +@property (weak, nonatomic) id connectionManager; +@property (strong, nonatomic) NSMutableDictionary *> *subscribeButtonObservers; +@property (copy, nonatomic) dispatch_queue_t readWriteQueue; + +@end + +@implementation SDLSubscribeButtonManager + +#pragma mark - Lifecycle + +- (instancetype)initWithConnectionManager:(id)connectionManager { + self = [super init]; + if (!self) { return nil; } + + if (@available(iOS 10.0, *)) { + _readWriteQueue = dispatch_queue_create_with_target("com.sdl.subscribeButtonManager.readWriteQueue", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); + } else { + _readWriteQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; + } + + _connectionManager = connectionManager; + _subscribeButtonObservers = [NSMutableDictionary dictionary]; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_handleButtonEvent:) name:SDLDidReceiveButtonEventNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_handleButtonPress:) name:SDLDidReceiveButtonPressNotification object:nil]; + + return self; +} + +- (void)start { } + +- (void)stop { + __weak typeof(self) weakSelf = self; + [self sdl_runSyncOnQueue:^{ + __strong typeof(weakSelf) strongself = weakSelf; + [strongself->_subscribeButtonObservers removeAllObjects]; + }]; +} + +#pragma mark - Subscribe + +- (id)subscribeButton:(SDLButtonName)buttonName withUpdateHandler:(nullable SDLSubscribeButtonUpdateHandler)updateHandler { + SDLLogD(@"Subscribing to subscribe button with name: %@, with block", buttonName); + + NSObject *observer = [[NSObject alloc] init]; + SDLSubscribeButtonObserver *observerObject = [[SDLSubscribeButtonObserver alloc] initWithObserver:observer updateHandler:updateHandler]; + + if (self.subscribeButtonObservers[buttonName].count > 0) { + // The app has already subscribed to the button, simply add the observer to the list of observers for the button name. + [self sdl_addSubscribedObserver:observerObject forButtonName:buttonName]; + } else { + // The app has not yet subscribed to the button, send the `SubscribeButton` request for the button name. + [self sdl_subscribeToButtonNamed:buttonName withObserverObject:observerObject]; + } + + return observer; +} + +- (void)subscribeButton:(SDLButtonName)buttonName withObserver:(id)observer selector:(SEL)selector; { + SDLLogD(@"Subscribing to subscribe button with name: %@, observer object: %@, selector: %@", buttonName, observer, NSStringFromSelector(selector)); + + NSUInteger numberOfParametersInSelector = [NSStringFromSelector(selector) componentsSeparatedByString:@":"].count - 1; + if (numberOfParametersInSelector > 4) { + SDLLogE(@"Attempted to subscribe to a subscribe button using a selector that contains more than 4 parameters"); + return; + } + + if (observer == nil) { + SDLLogE(@"Attempted to subscribe to subscribe button with name %@ with a selector on a *nil* observer, which will always fail", buttonName); + return; + } + + SDLSubscribeButtonObserver *observerObject = [[SDLSubscribeButtonObserver alloc] initWithObserver:observer selector:selector]; + if (self.subscribeButtonObservers[buttonName].count > 0) { + [self sdl_addSubscribedObserver:observerObject forButtonName:buttonName]; + return; + } + + [self sdl_subscribeToButtonNamed:buttonName withObserverObject:observerObject]; +} + +/// Helper method for checking if the observer is currently subscribed to the button +/// @param observer The observer +/// @param buttonName The name of the button +/// @return True if the observer is currently subscribed to the button; false if not +- (BOOL)sdl_isSubscribedObserver:(id)observer forButtonName:(SDLButtonName)buttonName { + BOOL isSubscribedObserver = NO; + for (SDLSubscribeButtonObserver *subscribedObserver in self.subscribeButtonObservers[buttonName]) { + if (subscribedObserver.observer != observer ) { continue; } + isSubscribedObserver = YES; + break; + } + + return isSubscribedObserver; +} + +/// Helper method for adding an observer for the button +/// @param subscribedObserver The observer +/// @param buttonName The name of the button +- (void)sdl_addSubscribedObserver:(SDLSubscribeButtonObserver *)subscribedObserver forButtonName:(SDLButtonName)buttonName { + __weak typeof(self) weakSelf = self; + [self sdl_runSyncOnQueue:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + if (strongSelf.subscribeButtonObservers[buttonName] == nil) { + SDLLogV(@"Adding first subscriber for button: %@", buttonName); + strongSelf.subscribeButtonObservers[buttonName] = [NSMutableArray arrayWithObject:subscribedObserver]; + } else { + SDLLogV(@"Adding another subscriber for button: %@", buttonName); + [strongSelf.subscribeButtonObservers[buttonName] addObject:subscribedObserver]; + } + }]; +} + +#pragma mark Send Subscribe Request + +/// Helper method for sending a `SubscribeButton` request and notifying subscribers of button events. +/// @param buttonName The name of the subscribe button +/// @param observerObject The observer object +- (void)sdl_subscribeToButtonNamed:(SDLButtonName)buttonName withObserverObject:(SDLSubscribeButtonObserver *)observerObject { + SDLSubscribeButton *subscribeButton = [[SDLSubscribeButton alloc] initWithButtonName:buttonName handler:nil]; + __weak typeof(self) weakSelf = self; + + [self.connectionManager sendConnectionRequest:subscribeButton withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + // Check if the request was successful. If a subscription request got sent for a button that is already subscribed then the module will respond with `IGNORED` so just act as if subscription succeeded. + if (!response.success.boolValue && ![response.resultCode isEqualToEnum:SDLResultIgnored]) { + [strongSelf sdl_invokeObserver:observerObject withButtonName:buttonName buttonPress:nil buttonEvent:nil error:error]; + return; + } + + [strongSelf sdl_addSubscribedObserver:observerObject forButtonName:buttonName]; + }]; +} + +#pragma mark - Unsubscribe +#pragma mark Send Unsubscribe Request + +- (void)unsubscribeButton:(SDLButtonName)buttonName withObserver:(id)observer withCompletionHandler:(nullable SDLSubscribeButtonUpdateCompletionHandler)completionHandler { + if (self.subscribeButtonObservers[buttonName] == nil || ![self sdl_isSubscribedObserver:observer forButtonName:buttonName]) { + SDLLogE(@"Attempting to unsubscribe to the %@ subscribe button which is not currently subscribed", buttonName); + return completionHandler([NSError sdl_subscribeButtonManager_notSubscribed]); + } + + // If we have more than one observer, just remove this observer + if (self.subscribeButtonObservers[buttonName].count > 1) { + [self sdl_removeSubscribedObserver:observer forButtonName:buttonName]; + return completionHandler(nil); + } + + // If there's only one observer, unsubscribe from the button + SDLUnsubscribeButton *unsubscribeButton = [[SDLUnsubscribeButton alloc] initWithButtonName:buttonName]; + __weak typeof(self) weakSelf = self; + [self.connectionManager sendConnectionRequest:unsubscribeButton withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + if (!response.success.boolValue) { + SDLLogE(@"Attempt to unsubscribe from subscribe button %@ failed", buttonName); + return completionHandler(error); + } + + SDLLogD(@"Successfully unsubscribed from subscribe button named %@", buttonName); + [strongSelf sdl_removeSubscribedObserver:observer forButtonName:buttonName]; + return completionHandler(error); + }]; +} + +/// Helper method for removing an observer for the button +/// @param observer The observer +/// @param buttonName The name of the button +- (void)sdl_removeSubscribedObserver:(id)observer forButtonName:(SDLButtonName)buttonName { + __weak typeof(self) weakSelf = self; + [self sdl_runSyncOnQueue:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + for (NSUInteger i = 0; i < strongSelf.subscribeButtonObservers[buttonName].count; i++) { + SDLSubscribeButtonObserver *subscribedObserver = (SDLSubscribeButtonObserver *)strongSelf.subscribeButtonObservers[buttonName][i]; + if (subscribedObserver.observer != observer) { continue; } + // Okay to mutate because we will break immediately afterward + [strongSelf.subscribeButtonObservers[buttonName] removeObjectAtIndex:i]; + break; + } + }]; +} + +#pragma mark - Notifications + +/// Button event notification from the module +/// @param notification Information about the button event +- (void)sdl_handleButtonEvent:(SDLRPCNotificationNotification *)notification { + SDLOnButtonEvent *buttonEvent = (SDLOnButtonEvent *)notification.notification; + if (buttonEvent == nil) { return; } + + SDLButtonName buttonName = buttonEvent.buttonName; + for (SDLSubscribeButtonObserver *subscribeButtonObserver in self.subscribeButtonObservers[buttonName]) { + [self sdl_invokeObserver:subscribeButtonObserver withButtonName:buttonName buttonPress:nil buttonEvent:buttonEvent error:nil]; + } +} + +/// Button press notification from the module +/// @param notification Information about the button press +- (void)sdl_handleButtonPress:(SDLRPCNotificationNotification *)notification { + SDLOnButtonPress *buttonPress = (SDLOnButtonPress *)notification.notification; + if (buttonPress == nil) { return; } + + SDLButtonName buttonName = buttonPress.buttonName; + for (SDLSubscribeButtonObserver *subscribeButtonObserver in self.subscribeButtonObservers[buttonName]) { + [self sdl_invokeObserver:subscribeButtonObserver withButtonName:buttonName buttonPress:buttonPress buttonEvent:nil error:nil]; + } +} + +/// Helper method for notifying subscribers of button events. +/// @param observer The object that will have `selector` called +/// @param buttonName The name of the subscribe button +/// @param buttonPress Indicates whether this is a long or short button press event +/// @param buttonEvent Indicates that the button has been depressed or released +/// @param error The error, if one occurred; nil if not +- (void)sdl_invokeObserver:(SDLSubscribeButtonObserver *)observer withButtonName:(SDLButtonName)buttonName buttonPress:(nullable SDLOnButtonPress *)buttonPress buttonEvent:(nullable SDLOnButtonEvent *)buttonEvent error:(nullable NSError *)error { + if (observer.updateBlock != nil) { + observer.updateBlock(buttonPress, buttonEvent, error); + } else { + if (![observer.observer respondsToSelector:observer.selector]) { + @throw [NSException sdl_invalidSubscribeButtonSelectorExceptionWithSelector:observer.selector]; + } + + NSUInteger numberOfParametersInSelector = [NSStringFromSelector(observer.selector) componentsSeparatedByString:@":"].count - 1; + + // If a selector has 0, 1, 2, or 3 parameters and only a button event has occured, do not notify the observer of the button event. + if (buttonEvent != nil && numberOfParametersInSelector <= 3) { + return; + } + + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[(NSObject *)observer.observer methodSignatureForSelector:observer.selector]]; + [invocation setSelector:observer.selector]; + [invocation setTarget:observer.observer]; + + if (numberOfParametersInSelector >= 1) { + [invocation setArgument:&buttonName atIndex:2]; + } + if (numberOfParametersInSelector >= 2) { + [invocation setArgument:&error atIndex:3]; + } + if (numberOfParametersInSelector >= 3) { + [invocation setArgument:&buttonPress atIndex:4]; + } + if (numberOfParametersInSelector >= 4) { + [invocation setArgument:&buttonEvent atIndex:5]; + } + if (numberOfParametersInSelector >= 5) { + @throw [NSException sdl_invalidSubscribeButtonSelectorExceptionWithSelector:observer.selector]; + } + + [invocation invoke]; + } +} + +#pragma mark - Utilities + +/// Checks if we are already on the serial readWrite queue. If so, the block is added to the queue; if not, the block is dispatched to the readWrite queue. +/// @discussion Used to ensure atomic access to global properties. +/// @param block The block to be executed. +- (void)sdl_runSyncOnQueue:(void (^)(void))block { + if (dispatch_get_specific(SDLProcessingQueueName) != nil) { + block(); + } else { + dispatch_sync(self.readWriteQueue, block); + } +} + +#pragma mark - Getters + +- (NSMutableDictionary *> *)subscribeButtonObservers { + __block NSMutableDictionary *> *dict = nil; + [self sdl_runSyncOnQueue:^{ + dict = self->_subscribeButtonObservers; + }]; + + return dict; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.h new file mode 100644 index 0000000..49e783f --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.h @@ -0,0 +1,42 @@ +// +// SDLSubscribeButtonObserver.h +// SmartDeviceLink +// +// Created by Nicole on 5/21/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLNotificationConstants.h" + +NS_ASSUME_NONNULL_BEGIN + +/// A handler mirroring the one in SDLSubscribeButtonManager.h for `subscribeButton:withBlock:` +typedef void (^SDLSubscribeButtonUpdateHandler)(SDLOnButtonPress *_Nullable buttonPress, SDLOnButtonEvent *_Nullable buttonEvent, NSError *_Nullable error); + +/// An observer object for SDLSubscribeButtonManager +@interface SDLSubscribeButtonObserver : NSObject + +/// The object that will be used to call the selector if available, and to unsubscribe this observer +@property (weak, nonatomic) id observer; + +/// A selector called when the observer is triggered +@property (assign, nonatomic) SEL selector; + +/// A block called when the observer is triggered +@property (copy, nonatomic) SDLSubscribeButtonUpdateHandler updateBlock; + +/// Create an observer using an object and a selector on that object +/// @param observer The object to be called when the subscription triggers +/// @param selector The selector to be called when the subscription triggers +/// @return The observer +- (instancetype)initWithObserver:(id)observer selector:(SEL)selector; + +/// Create an observer using an object and a callback block +/// @param observer The object that can be used to unsubscribe the block +/// @param block The block that will be called when the subscription triggers +/// @return The observer +- (instancetype)initWithObserver:(id)observer updateHandler:(SDLSubscribeButtonUpdateHandler)block; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.m new file mode 100644 index 0000000..9c9b72f --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.m @@ -0,0 +1,45 @@ +// +// SDLSubscribeButtonObserver.m +// SmartDeviceLink +// +// Created by Nicole on 5/21/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLSubscribeButtonObserver.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLSubscribeButtonObserver + +- (instancetype)initWithObserver:(id)observer selector:(SEL)selector { + self = [super init]; + if (!self) { return nil; } + + _observer = observer; + _selector = selector; + + return self; +} + +- (instancetype)initWithObserver:(id)observer updateHandler:(SDLSubscribeButtonUpdateHandler)block { + self = [super init]; + if (!self) { return nil; } + + _observer = observer; + _updateBlock = block; + + return self; +} + +- (NSString *)description { + if (self.selector) { + return [NSString stringWithFormat:@"Observer: %@[%@] - %@", [_observer class], _observer, NSStringFromSelector(_selector)]; + } else { + return [NSString stringWithFormat:@"Block Observer: %@", _observer]; + } +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonResponse.m index bf2b860..b9e8db4 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonResponse.m @@ -5,17 +5,21 @@ #import "SDLSubscribeButtonResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeButtonResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSubscribeButton]) { + if (self = [super initWithName:SDLRPCFunctionNameSubscribeButton]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.h index 8549e58..d0e6d46 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.h @@ -83,7 +83,43 @@ NS_ASSUME_NONNULL_BEGIN * @param wiperStatus Subscribe to wiperStatus * @return A SDLSubscribeVehicleData object */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus; +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); + +/** + * Convenience init for subscribing to all possible vehicle data items. + * + * @param accelerationPedalPosition Subscribe to accelerationPedalPosition + * @param airbagStatus Subscribe to airbagStatus + * @param beltStatus Subscribe to beltStatus + * @param bodyInformation Subscribe to bodyInformation + * @param cloudAppVehicleID Subscribe to cloudAppVehicleID + * @param clusterModeStatus Subscribe to clusterModeStatus + * @param deviceStatus Subscribe to deviceStatus + * @param driverBraking Subscribe to driverBraking + * @param eCallInfo Subscribe to eCallInfo + * @param electronicParkBrakeStatus Subscribe to electronicParkBrakeStatus + * @param emergencyEvent Subscribe to emergencyEvent + * @param engineOilLife Subscribe to engineOilLife + * @param engineTorque Subscribe to engineTorque + * @param externalTemperature Subscribe to externalTemperature + * @param fuelLevel Subscribe to fuelLevel + * @param fuelLevelState Subscribe to fuelLevelState + * @param fuelRange Subscribe to fuelRange + * @param gps Subscribe to gps + * @param headLampStatus Subscribe to headLampStatus + * @param instantFuelConsumption Subscribe to instantFuelConsumption + * @param myKey Subscribe to myKey + * @param odometer Subscribe to odometer + * @param prndl Subscribe to prndl + * @param rpm Subscribe to rpm + * @param speed Subscribe to speed + * @param steeringWheelAngle Subscribe to steeringWheelAngle + * @param tirePressure Subscribe to tirePressure + * @param turnSignal Subscribe to turnSignal + * @param wiperStatus Subscribe to wiperStatus + * @return A SDLSubscribeVehicleData object + */ +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus; /** * A boolean value. If true, subscribes GPS data. @@ -225,6 +261,32 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) NSNumber *turnSignal; +/** + * A boolean value. If true, subscribes to the cloud app vehicle ID. + */ +@property (strong, nonatomic, nullable) NSNumber *cloudAppVehicleID; + +/** + Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @param vehicleDataState A boolean value. If true, requests the OEM custom vehicle data item. + + Added in SmartDeviceLink 6.0 + */ +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); + +/** + Gets the OEM custom vehicle data value for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @return The state of an OEM custom vehicle data item for the given vehicle data name. + + Added in SmartDeviceLink 6.0 + */ +- (nullable NSNumber *)getOEMCustomVehicleData:(NSString *)vehicleDataName; + + @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.m index 0134965..a5bd220 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.m @@ -5,23 +5,31 @@ #import "SDLSubscribeVehicleData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeVehicleData +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSubscribeVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameSubscribeVehicleData]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure wiperStatus:(BOOL)wiperStatus { return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:NO emergencyEvent:emergencyEvent engineOilLife:NO engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:NO gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:NO wiperStatus:wiperStatus]; } - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus { + return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation cloudAppVehicleID:NO clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:electronicParkBrakeStatus emergencyEvent:emergencyEvent engineOilLife:engineOilLife engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:fuelRange gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:turnSignal wiperStatus:wiperStatus]; +} + +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus { self = [self init]; if (!self) { return nil; @@ -31,6 +39,7 @@ - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPositio self.airbagStatus = @(airbagStatus); self.beltStatus = @(beltStatus); self.bodyInformation = @(bodyInformation); + self.cloudAppVehicleID = @(cloudAppVehicleID); self.clusterModeStatus = @(clusterModeStatus); self.deviceStatus = @(deviceStatus); self.driverBraking = @(driverBraking); @@ -60,228 +69,245 @@ - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPositio } - (void)setGps:(nullable NSNumber *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable NSNumber *)gps { - return [parameters sdl_objectForName:SDLNameGPS]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:NSNumber.class error:nil]; } - (void)setSpeed:(nullable NSNumber *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber *)speed { - return [parameters sdl_objectForName:SDLNameSpeed]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; } - (void)setRpm:(nullable NSNumber *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable NSNumber *)rpm { - return [parameters sdl_objectForName:SDLNameRPM]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel:(nullable NSNumber *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable NSNumber *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel_State:(nullable NSNumber *)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable NSNumber *)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:NSNumber.class error:nil]; } - (void)setFuelRange:(nullable NSNumber *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable NSNumber *)fuelRange { - return [parameters sdl_objectForName:SDLNameFuelRange]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:NSNumber.class error:nil]; } - (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable NSNumber *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; } - (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable NSNumber *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; } - (void)setPrndl:(nullable NSNumber *)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable NSNumber *)prndl { - return [parameters sdl_objectForName:SDLNamePRNDL]; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:NSNumber.class error:nil]; } - (void)setTirePressure:(nullable NSNumber *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable NSNumber *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:NSNumber.class error:nil]; } - (void)setOdometer:(nullable NSNumber *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable NSNumber *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; } - (void)setBeltStatus:(nullable NSNumber *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable NSNumber *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:NSNumber.class error:nil]; } - (void)setBodyInformation:(nullable NSNumber *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable NSNumber *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:NSNumber.class error:nil]; } - (void)setDeviceStatus:(nullable NSNumber *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable NSNumber *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:NSNumber.class error:nil]; } - (void)setDriverBraking:(nullable NSNumber *)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable NSNumber *)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:NSNumber.class error:nil]; } - (void)setWiperStatus:(nullable NSNumber *)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable NSNumber *)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:NSNumber.class error:nil]; } - (void)setHeadLampStatus:(nullable NSNumber *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable NSNumber *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:NSNumber.class error:nil]; } - (void)setEngineOilLife:(nullable NSNumber *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; + [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable NSNumber *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; } - (void)setEngineTorque:(nullable NSNumber *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable NSNumber *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; } - (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable NSNumber *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; } - (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable NSNumber *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; } - (void)setECallInfo:(nullable NSNumber *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable NSNumber *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:NSNumber.class error:nil]; } - (void)setAirbagStatus:(nullable NSNumber *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable NSNumber *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:NSNumber.class error:nil]; } - (void)setEmergencyEvent:(nullable NSNumber *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable NSNumber *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:NSNumber.class error:nil]; } - (void)setClusterModeStatus:(nullable NSNumber *)clusterModeStatus { - [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; + [self.parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; } - (nullable NSNumber *)clusterModeStatus { - return [parameters sdl_objectForName:SDLNameClusterModeStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:NSNumber.class error:nil]; } - (void)setMyKey:(nullable NSNumber *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable NSNumber *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:NSNumber.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable NSNumber *)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable NSNumber *)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:NSNumber.class error:nil]; } - (void)setTurnSignal:(nullable NSNumber *)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable NSNumber *)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:NSNumber.class error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable NSNumber *)cloudAppVehicleID { + [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable NSNumber *)cloudAppVehicleID { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSNumber.class error:nil]; } + +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState { + [self.parameters sdl_setObject:@(vehicleDataState) forName:vehicleDataName]; +} + +- (nullable NSNumber *)getOEMCustomVehicleData:(NSString *)vehicleDataName { + return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSNumber.class error:nil]; +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h index 1cc10c6..3f43864 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h @@ -212,6 +212,33 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) SDLVehicleDataResult *turnSignal; +/** + The result of requesting to subscribe to the cloud app vehicle ID + + Optional + */ +@property (strong, nonatomic, nullable) SDLVehicleDataResult *cloudAppVehicleID; + +/** + Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @param vehicleDataState SDLVehicleDataResult object containing custom data type and result code information. + + Added SmartDeviceLink 6.0 + */ +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(SDLVehicleDataResult *)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); + +/** + Gets the OEM custom vehicle data state for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @return SDLVehicleDataResult An object containing custom data type and result code information. + + Added SmartDeviceLink 6.0 + */ +- (nullable SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m index b39328d..7ab6b4e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m @@ -5,241 +5,261 @@ #import "SDLSubscribeVehicleDataResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLVehicleDataResult.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeVehicleDataResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSubscribeVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameSubscribeVehicleData]) { } return self; } +#pragma clang diagnostic pop - (void)setGps:(nullable SDLVehicleDataResult *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable SDLVehicleDataResult *)gps { - return [parameters sdl_objectForName:SDLNameGPS ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setSpeed:(nullable SDLVehicleDataResult *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable SDLVehicleDataResult *)speed { - return [parameters sdl_objectForName:SDLNameSpeed ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setRpm:(nullable SDLVehicleDataResult *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable SDLVehicleDataResult *)rpm { - return [parameters sdl_objectForName:SDLNameRPM ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setFuelLevel:(nullable SDLVehicleDataResult *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable SDLVehicleDataResult *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setFuelLevel_State:(nullable SDLVehicleDataResult *)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable SDLVehicleDataResult *)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setFuelRange:(nullable SDLVehicleDataResult *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable SDLVehicleDataResult *)fuelRange { - return [parameters sdl_objectForName:SDLNameFuelRange ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setInstantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable SDLVehicleDataResult *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setExternalTemperature:(nullable SDLVehicleDataResult *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable SDLVehicleDataResult *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setPrndl:(nullable SDLVehicleDataResult *)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable SDLVehicleDataResult *)prndl { - return [parameters sdl_objectForName:SDLNamePRNDL ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setTirePressure:(nullable SDLVehicleDataResult *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable SDLVehicleDataResult *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setOdometer:(nullable SDLVehicleDataResult *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable SDLVehicleDataResult *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setBeltStatus:(nullable SDLVehicleDataResult *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable SDLVehicleDataResult *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setBodyInformation:(nullable SDLVehicleDataResult *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable SDLVehicleDataResult *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setDeviceStatus:(nullable SDLVehicleDataResult *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable SDLVehicleDataResult *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setDriverBraking:(nullable SDLVehicleDataResult *)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable SDLVehicleDataResult *)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setWiperStatus:(nullable SDLVehicleDataResult *)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable SDLVehicleDataResult *)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setHeadLampStatus:(nullable SDLVehicleDataResult *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable SDLVehicleDataResult *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLVehicleDataResult.class error:nil]; } -- (void)setEngineOilLife:(nullable NSNumber *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; +- (void)setEngineOilLife:(nullable SDLVehicleDataResult *)engineOilLife { + [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } -- (nullable NSNumber *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; +- (nullable SDLVehicleDataResult *)engineOilLife { + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setEngineTorque:(nullable SDLVehicleDataResult *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable SDLVehicleDataResult *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setAccPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable SDLVehicleDataResult *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setSteeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable SDLVehicleDataResult *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setECallInfo:(nullable SDLVehicleDataResult *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable SDLVehicleDataResult *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setAirbagStatus:(nullable SDLVehicleDataResult *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable SDLVehicleDataResult *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setEmergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable SDLVehicleDataResult *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setClusterModes:(nullable SDLVehicleDataResult *)clusterModes { - [parameters sdl_setObject:clusterModes forName:SDLNameClusterModes]; + [self.parameters sdl_setObject:clusterModes forName:SDLRPCParameterNameClusterModes]; } - (nullable SDLVehicleDataResult *)clusterModes { - return [parameters sdl_objectForName:SDLNameClusterModes ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModes ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setMyKey:(nullable SDLVehicleDataResult *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable SDLVehicleDataResult *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable SDLVehicleDataResult *)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus ofClass:[SDLVehicleDataResult class]]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setTurnSignal:(nullable SDLVehicleDataResult *)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable SDLVehicleDataResult *)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal ofClass:[SDLVehicleDataResult class]]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:SDLVehicleDataResult.class error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID { + [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable SDLVehicleDataResult *)cloudAppVehicleID { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:SDLVehicleDataResult.class error:nil]; +} + +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(SDLVehicleDataResult *)vehicleDataState { + [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName]; +} + +- (nullable SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName { + return [self.parameters sdl_objectForName:vehicleDataName ofClass:SDLVehicleDataResult.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPoints.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPoints.m index cec91c6..cd2e481 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPoints.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPoints.m @@ -4,17 +4,21 @@ #import "SDLSubscribeWayPoints.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeWayPoints +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSubscribeWayPoints]) { + if (self = [super initWithName:SDLRPCFunctionNameSubscribeWayPoints]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPointsResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPointsResponse.m index 11aa5a0..867fbc3 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPointsResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPointsResponse.m @@ -5,17 +5,21 @@ #import "SDLSubscribeWayPointsResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeWayPointsResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSubscribeWayPoints]) { + if (self = [super initWithName:SDLRPCFunctionNameSubscribeWayPoints]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.h index 7c7df2f..018e051 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.h @@ -5,16 +5,22 @@ /** * List possible seats that is a remote controllable seat. - * + * @warning This should not be used to supported seats, this is a deprecated parameter. */ -typedef SDLEnum SDLSupportedSeat SDL_SWIFT_ENUM; +typedef SDLEnum SDLSupportedSeat SDL_SWIFT_ENUM __deprecated; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" /** - * @abstract Save current seat postions and settings to seat memory. - */ +* Save current seat positions and settings to seat memory. +*/ extern SDLSupportedSeat const SDLSupportedSeatDriver; +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" /** - * @abstract Restore / apply the seat memory settings to the current seat. - */ +* Restore / apply the seat memory settings to the current seat. +*/ extern SDLSupportedSeat const SDLSupportedSeatFrontPassenger; +#pragma clang diagnostic pop diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.m index f97678b..1260ced 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.m @@ -3,5 +3,8 @@ #import "SDLSupportedSeat.h" +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" SDLSupportedSeat const SDLSupportedSeatDriver = @"DRIVER"; SDLSupportedSeat const SDLSupportedSeatFrontPassenger = @"FRONT_PASSENGER"; +#pragma clang diagnostic pop diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.h index 6a920e6..7ef41b2 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.h @@ -11,8 +11,15 @@ NS_ASSUME_NONNULL_BEGIN * * @since SDL 1.0 */ +__deprecated_msg("Use SDLMsgVersion instead") @interface SDLSyncMsgVersion : SDLRPCStruct +/// Convenience init to describe the SDL version +/// +/// @param majorVersion The major version indicates versions that is not-compatible to previous versions +/// @param minorVersion The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality) +/// @param patchVersion Allows backward-compatible fixes to the API without increasing the minor version of the interface +/// @return An SDLSyncMsgVersion object - (instancetype)initWithMajorVersion:(UInt8)majorVersion minorVersion:(UInt8)minorVersion patchVersion:(UInt8)patchVersion; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.m index 7d256ce..b922672 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.m @@ -5,11 +5,14 @@ #import "SDLSyncMsgVersion.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" @implementation SDLSyncMsgVersion +#pragma clang diagnostic pop - (instancetype)initWithMajorVersion:(UInt8)majorVersion minorVersion:(UInt8)minorVersion patchVersion:(UInt8)patchVersion { self = [self init]; @@ -25,27 +28,29 @@ - (instancetype)initWithMajorVersion:(UInt8)majorVersion minorVersion:(UInt8)min } - (void)setMajorVersion:(NSNumber *)majorVersion { - [store sdl_setObject:majorVersion forName:SDLNameMajorVersion]; + [self.store sdl_setObject:majorVersion forName:SDLRPCParameterNameMajorVersion]; } - (NSNumber *)majorVersion { - return [store sdl_objectForName:SDLNameMajorVersion]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMajorVersion ofClass:NSNumber.class error:&error]; } - (void)setMinorVersion:(NSNumber *)minorVersion { - [store sdl_setObject:minorVersion forName:SDLNameMinorVersion]; + [self.store sdl_setObject:minorVersion forName:SDLRPCParameterNameMinorVersion]; } - (NSNumber *)minorVersion { - return [store sdl_objectForName:SDLNameMinorVersion]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMinorVersion ofClass:NSNumber.class error:&error]; } - (void)setPatchVersion:(nullable NSNumber *)patchVersion { - [store sdl_setObject:patchVersion forName:SDLNamePatchVersion]; + [self.store sdl_setObject:patchVersion forName:SDLRPCParameterNamePatchVersion]; } - (nullable NSNumber *)patchVersion { - return [store sdl_objectForName:SDLNamePatchVersion]; + return [self.store sdl_objectForName:SDLRPCParameterNamePatchVersion ofClass:NSNumber.class error:nil]; } - (NSString *)description { diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.h index c19fae4..a72ad2c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.h @@ -6,11 +6,12 @@ NS_ASSUME_NONNULL_BEGIN -/* +/** * Allows binary data in the form of SyncP packets to be sent to the SYNC module. Binary data is in binary part of hybrid msg. * * *** DEPRECATED *** */ +__deprecated @interface SDLSyncPData : SDLRPCRequest @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.m index 0dceaf6..46bd044 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.m @@ -5,17 +5,24 @@ #import "SDLSyncPData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" @implementation SDLSyncPData +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSyncPData]) { + if (self = [super initWithName:SDLRPCFunctionNameSyncPData]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.h index 43b228a..e994529 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.h @@ -11,6 +11,7 @@ NS_ASSUME_NONNULL_BEGIN DEPRECATED */ +__deprecated @interface SDLSyncPDataResponse : SDLRPCResponse @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.m index 2cb1c11..315af6b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.m @@ -5,17 +5,24 @@ #import "SDLSyncPDataResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" @implementation SDLSyncPDataResponse +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSyncPData]) { + if (self = [super initWithName:SDLRPCFunctionNameSyncPData]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.h index 87ffe95..f0ac7b2 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.h @@ -6,58 +6,138 @@ // Copyright © 2017 smartdevicelink. All rights reserved. // -#import - #import "SDLRPCStruct.h" #import "SDLSystemCapabilityType.h" +@class SDLAppServicesCapabilities; @class SDLPhoneCapability; @class SDLNavigationCapability; @class SDLVideoStreamingCapability; @class SDLRemoteControlCapabilities; +@class SDLSeatLocationCapability; +@class SDLDisplayCapability; NS_ASSUME_NONNULL_BEGIN /** - The systemCapabilityType indicates which type of data should be changed and identifies which data object exists in this struct. For example, if the SystemCapability Type is NAVIGATION then a "navigationCapability" should exist. - - First implemented in SDL Core v4.4 + * The systemCapabilityType indicates which type of data should be changed and identifies which data object exists in this struct. For example, if the SystemCapability Type is NAVIGATION then a "navigationCapability" should exist. + * + * First implemented in SDL Core v4.4 */ @interface SDLSystemCapability : SDLRPCStruct +/** + * Convenience init for an App Service Capability + * + * @param capability Describes the capabilities of app services including what service types are supported and the current state of services + * @return A SDLSystemCapability object + */ +- (instancetype)initWithAppServicesCapabilities:(SDLAppServicesCapabilities *)capability; + +/** + * Convenience init for a Navigation Capability + * + * @param capability Describes the extended capabilities of the onboard navigation system + * @return A SDLSystemCapability object + */ - (instancetype)initWithNavigationCapability:(SDLNavigationCapability *)capability; +/** + * Convenience init for a Phone Capability + * + * @param capability Describes the extended capabilities of the module's phone feature + * @return A SDLSystemCapability object + */ - (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability; +/** + * Convenience init for a Video Streaming Capability + * + * @param capability Describes the capabilities of the module's video streaming feature + * @return A SDLSystemCapability object + */ - (instancetype)initWithVideoStreamingCapability:(SDLVideoStreamingCapability *)capability; +/** + * Convenience init for a Remote Control Capability + * + * @param capability Describes the extended capabilities of the module's remote control feature + * @return A SDLSystemCapability object + */ - (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *)capability; /** - Used as a descriptor of what data to expect in this struct. The corresponding param to this enum should be included and the only other parameter included. + Convenience init for DisplayCapability list + + @param capabilities Contains capabilities related to a physical screen and any associated windows + @return A SDLSystemCapability object + */ +- (instancetype)initWithDisplayCapabilities:(NSArray *)capabilities; + +/** + * Convenience init for a Remote Control Capability + * + * @param capability Describes information about the locations of each seat + * @return A SDLSystemCapability object + */ +- (instancetype)initWithSeatLocationCapability:(SDLSeatLocationCapability *)capability; + +/** + * Used as a descriptor of what data to expect in this struct. The corresponding param to this enum should be included and the only other parameter included. */ @property (strong, nonatomic) SDLSystemCapabilityType systemCapabilityType; /** - Describes extended capabilities for onboard navigation system + * Describes the capabilities of app services including what service types are supported and the current state of services. + * + * Optional + */ +@property (nullable, strong, nonatomic) SDLAppServicesCapabilities *appServicesCapabilities; + +/** + * Describes the extended capabilities of the onboard navigation system + * + * Optional */ @property (nullable, strong, nonatomic) SDLNavigationCapability *navigationCapability; /** - Describes extended capabilities of the module's phone feature + * Describes the extended capabilities of the module's phone feature + * + * Optional */ @property (nullable, strong, nonatomic) SDLPhoneCapability *phoneCapability; /** - Describes extended capabilities of the module's phone feature + * Describes the capabilities of the module's video streaming feature + * + * Optional */ @property (nullable, strong, nonatomic) SDLVideoStreamingCapability *videoStreamingCapability; /** - Describes extended capabilities of the module's phone feature + * Describes the extended capabilities of the module's remote control feature + * + * Optional */ @property (nullable, strong, nonatomic) SDLRemoteControlCapabilities *remoteControlCapability; +/** + * Describes information about the locations of each seat + * + * Optional + */ +@property (nullable, strong, nonatomic) SDLSeatLocationCapability *seatLocationCapability; + +/** + Contain the display related information and all windows related to that display + + Optional + + @since SDL 6.0 + */ +@property (nullable, strong, nonatomic) NSArray *displayCapabilities; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.m index 5a46968..3936e46 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.m @@ -9,17 +9,32 @@ #import "SDLSystemCapability.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLAppServicesCapabilities.h" +#import "SDLRPCParameterNames.h" #import "SDLNavigationCapability.h" #import "SDLPhoneCapability.h" #import "SDLSystemCapabilityType.h" #import "SDLVideoStreamingCapability.h" #import "SDLRemoteControlCapabilities.h" +#import "SDLSeatLocationCapability.h" +#import "SDLDisplayCapability.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSystemCapability +- (instancetype)initWithAppServicesCapabilities:(SDLAppServicesCapabilities *)capability { + self = [self init]; + if (!self) { + return nil; + } + + self.systemCapabilityType = SDLSystemCapabilityTypeAppServices; + self.appServicesCapabilities = capability; + + return self; +} + - (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability { self = [self init]; if (!self) { @@ -68,46 +83,93 @@ - (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *) return self; } +- (instancetype)initWithDisplayCapabilities:(NSArray *)capabilities { + self = [self init]; + if (!self) { + return nil; + } + + self.systemCapabilityType = SDLSystemCapabilityTypeDisplays; + self.displayCapabilities = [capabilities copy]; + + return self; +} + +- (instancetype)initWithSeatLocationCapability:(SDLSeatLocationCapability *)capability { + self = [self init]; + if (!self) { + return nil; + } + + self.systemCapabilityType = SDLSystemCapabilityTypeSeatLocation; + self.seatLocationCapability = capability; + + return self; +} + - (void)setSystemCapabilityType:(SDLSystemCapabilityType)type { - [store sdl_setObject:type forName:SDLNameSystemCapabilityType]; + [self.store sdl_setObject:type forName:SDLRPCParameterNameSystemCapabilityType]; } - (SDLSystemCapabilityType)systemCapabilityType { - return [store sdl_objectForName:SDLNameSystemCapabilityType]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameSystemCapabilityType error:&error]; +} + +- (void)setAppServicesCapabilities:(nullable SDLAppServicesCapabilities *)appServicesCapabilities { + [self.store sdl_setObject:appServicesCapabilities forName:SDLRPCParameterNameAppServicesCapabilities]; } -// TODO: Nav / Phone Capability +- (nullable SDLAppServicesCapabilities *)appServicesCapabilities { + return [self.store sdl_objectForName:SDLRPCParameterNameAppServicesCapabilities ofClass:SDLAppServicesCapabilities.class error:nil]; +} - (void)setNavigationCapability:(nullable SDLNavigationCapability *)navigationCapability { - [store sdl_setObject:navigationCapability forName:SDLNameNavigationCapability]; + [self.store sdl_setObject:navigationCapability forName:SDLRPCParameterNameNavigationCapability]; } - (nullable SDLNavigationCapability *)navigationCapability { - return [store sdl_objectForName:SDLNameNavigationCapability ofClass:SDLNavigationCapability.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameNavigationCapability ofClass:SDLNavigationCapability.class error:nil]; } - (void)setPhoneCapability:(nullable SDLPhoneCapability *)phoneCapability { - [store sdl_setObject:phoneCapability forName:SDLNamePhoneCapability]; + [self.store sdl_setObject:phoneCapability forName:SDLRPCParameterNamePhoneCapability]; } - (nullable SDLPhoneCapability *)phoneCapability { - return [store sdl_objectForName:SDLNamePhoneCapability ofClass:SDLPhoneCapability.class]; + return [self.store sdl_objectForName:SDLRPCParameterNamePhoneCapability ofClass:SDLPhoneCapability.class error:nil]; } - (void)setVideoStreamingCapability:(nullable SDLVideoStreamingCapability *)videoStreamingCapability { - [store sdl_setObject:videoStreamingCapability forName:SDLNameVideoStreamingCapability]; + [self.store sdl_setObject:videoStreamingCapability forName:SDLRPCParameterNameVideoStreamingCapability]; } - (nullable SDLVideoStreamingCapability *)videoStreamingCapability { - return [store sdl_objectForName:SDLNameVideoStreamingCapability ofClass:SDLVideoStreamingCapability.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameVideoStreamingCapability ofClass:SDLVideoStreamingCapability.class error:nil]; } - (void)setRemoteControlCapability:(nullable SDLRemoteControlCapabilities *)remoteControlCapability { - [store sdl_setObject:remoteControlCapability forName:SDLNameRemoteControlCapability]; + [self.store sdl_setObject:remoteControlCapability forName:SDLRPCParameterNameRemoteControlCapability]; } - (nullable SDLRemoteControlCapabilities *)remoteControlCapability { - return [store sdl_objectForName:SDLNameRemoteControlCapability ofClass:SDLRemoteControlCapabilities.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameRemoteControlCapability ofClass:SDLRemoteControlCapabilities.class error:nil]; +} + +- (void)setSeatLocationCapability:(nullable SDLSeatLocationCapability *)seatLocationCapability { + [self.store sdl_setObject:seatLocationCapability forName:SDLRPCParameterNameSeatLocationCapability]; +} + +- (nullable SDLSeatLocationCapability *)seatLocationCapability { + return [self.store sdl_objectForName:SDLRPCParameterNameSeatLocationCapability ofClass:SDLSeatLocationCapability.class error:nil]; +} + +- (void)setDisplayCapabilities:(nullable NSArray *)displayCapabilities { + [self.store sdl_setObject:displayCapabilities forName:SDLRPCParameterNameDisplayCapabilities]; +} + +- (nullable NSArray *)displayCapabilities { + return [self.store sdl_objectsForName:SDLRPCParameterNameDisplayCapabilities ofClass:SDLDisplayCapability.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.h index 36f58a7..ca1c357 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.h @@ -14,23 +14,27 @@ #import "SDLSystemCapabilityType.h" #import "SDLVrCapabilities.h" +@class SDLAppServicesCapabilities; @class SDLAudioPassThruCapabilities; @class SDLButtonCapabilities; +@class SDLDisplayCapability; @class SDLDisplayCapabilities; @class SDLHMICapabilities; @class SDLNavigationCapability; @class SDLPhoneCapability; @class SDLPresetBankCapabilities; @class SDLRemoteControlCapabilities; +@class SDLSeatLocationCapability; @class SDLSoftButtonCapabilities; +@class SDLSystemCapability; @class SDLSystemCapabilityManager; @class SDLVideoStreamingCapability; +@class SDLWindowCapability; @protocol SDLConnectionManagerType; NS_ASSUME_NONNULL_BEGIN - /** * A completion handler called after a request for the capability type is returned from the remote system. * @@ -39,15 +43,42 @@ NS_ASSUME_NONNULL_BEGIN */ typedef void (^SDLUpdateCapabilityHandler)(NSError * _Nullable error, SDLSystemCapabilityManager *systemCapabilityManager); +/** + An observer block for whenever a subscription is called. + + @param capability The capability that was updated. + */ +typedef void (^SDLCapabilityUpdateHandler)(SDLSystemCapability *capability); + +/** + An observer block for whenever a subscription or value is retrieved. + + @param capability The capability that was updated. + @param subscribed Whether or not the capability was subscribed or if the capability will only be pulled once. + @param error An error that occurred. + */ +typedef void (^SDLCapabilityUpdateWithErrorHandler)(SDLSystemCapability * _Nullable capability, BOOL subscribed, NSError * _Nullable error); +/** + A manager that handles updating and subscribing to SDL capabilities. + */ @interface SDLSystemCapabilityManager : NSObject +/** + * Provides window capabilities of all displays connected with SDL. By default, one display is connected and supported which includes window capability information of the default main window of the display. May be nil if the system has not provided display and window capability information yet. + * + * @see SDLDisplayCapability + * + * Optional, @since SDL 6.0 + */ +@property (nullable, strong, nonatomic, readonly) NSArray *displays; + /** * @see SDLDisplayCapabilities * * Optional */ -@property (nullable, strong, nonatomic, readonly) SDLDisplayCapabilities *displayCapabilities; +@property (nullable, strong, nonatomic, readonly) SDLDisplayCapabilities *displayCapabilities __deprecated_msg("Use displays, windowCapabilityWithID: or defaultMainWindowCapability instead to access capabilities of a display/window."); /** * @see SDLHMICapabilities @@ -63,14 +94,14 @@ typedef void (^SDLUpdateCapabilityHandler)(NSError * _Nullable error, SDLSystemC * * Optional, Array of length 1 - 100, of SDLSoftButtonCapabilities */ -@property (nullable, copy, nonatomic, readonly) NSArray *softButtonCapabilities; +@property (nullable, copy, nonatomic, readonly) NSArray *softButtonCapabilities __deprecated_msg("Use displays, windowCapabilityWithID: or defaultMainWindowCapability instead to access soft button capabilities of a window."); /** * @see SDLButtonCapabilities * * Optional, Array of length 1 - 100, of SDLButtonCapabilities */ -@property (nullable, copy, nonatomic, readonly) NSArray *buttonCapabilities; +@property (nullable, copy, nonatomic, readonly) NSArray *buttonCapabilities __deprecated_msg("Use displays, windowCapabilityWithID: or defaultMainWindowCapability instead to access button capabilities of a window."); /** * If returned, the platform supports custom on-screen Presets @@ -79,7 +110,7 @@ typedef void (^SDLUpdateCapabilityHandler)(NSError * _Nullable error, SDLSystemC * * Optional */ -@property (nullable, strong, nonatomic, readonly) SDLPresetBankCapabilities *presetBankCapabilities; +@property (nullable, strong, nonatomic, readonly) SDLPresetBankCapabilities *presetBankCapabilities __deprecated_msg("Use displays, windowCapabilityWithID: or defaultMainWindowCapability instead to access preset bank capabilities of a window."); /** * @see SDLHMIZoneCapabilities @@ -124,70 +155,179 @@ typedef void (^SDLUpdateCapabilityHandler)(NSError * _Nullable error, SDLSystemC @property (nullable, strong, nonatomic, readonly) SDLAudioPassThruCapabilities *pcmStreamCapability; /** - * If returned, the platform supports navigation + * If returned, the platform supports app services * - * @see SDLNavigationCapability + * @see SDLAppServicesCapabilities * * Optional */ +@property (nullable, strong, nonatomic, readonly) SDLAppServicesCapabilities *appServicesCapabilities; + +/** + If returned, the platform supports navigation + + @see SDLNavigationCapability + + Optional + */ @property (nullable, strong, nonatomic, readonly) SDLNavigationCapability *navigationCapability; /** - * If returned, the platform supports making phone calls - * - * @see SDLPhoneCapability - * - * Optional + If returned, the platform supports making phone calls + + @see SDLPhoneCapability + + Optional */ @property (nullable, strong, nonatomic, readonly) SDLPhoneCapability *phoneCapability; /** - * If returned, the platform supports video streaming - * - * @see SDLVideoStreamingCapability - * - * Optional + If returned, the platform supports video streaming + + @see SDLVideoStreamingCapability + + Optional */ @property (nullable, strong, nonatomic, readonly) SDLVideoStreamingCapability *videoStreamingCapability; /** - * If returned, the platform supports remote control capabilities - * - * @see SDLRemoteControlCapabilities - * - * Optional + If returned, the platform supports remote control capabilities + + @see SDLRemoteControlCapabilities + + Optional */ @property (nullable, strong, nonatomic, readonly) SDLRemoteControlCapabilities *remoteControlCapability; /** - * Init is unavailable. Dependencies must be injected using initWithConnectionManager: + If returned, the platform supports remote control capabilities for seats + + @see SDLSeatLocationCapability + + Optional + */ +@property (nullable, strong, nonatomic, readonly) SDLSeatLocationCapability *seatLocationCapability; + + +/** + * Returns the window capability object of the default main window which is always pre-created by the connected system. This is a convenience method for easily accessing the capabilities of the default main window. * - * @return nil + * @returns The window capability object representing the default main window capabilities or nil if no window capabilities exist. + */ +@property (nullable, strong, nonatomic, readonly) SDLWindowCapability *defaultMainWindowCapability; + +/** + YES if subscriptions are available on the connected module and you will automatically be notified if the value changes on the module. If NO, calls to `subscribe` methods will subscribe to updates, but the module will not automatically notify you. You will need to call `updateWithCapabilityType:completionHandler:` to force an update if you need one (though this should be rare). This does not apply to the `DISPLAYS` capability type which you can always subscribe to. + */ +@property (assign, nonatomic, readonly) BOOL supportsSubscriptions; + +/** + Init is unavailable. Dependencies must be injected using initWithConnectionManager: + + @return nil */ - (instancetype)init NS_UNAVAILABLE; /** - * Creates a new system capability manager with a specified connection manager - * - * @param manager A connection manager to use to forward on RPCs - * - * @return An instance of SDLSystemCapabilityManager + Creates a new system capability manager with a specified connection manager + + @param manager A connection manager to use to forward on RPCs + + @return An instance of SDLSystemCapabilityManager */ - (instancetype)initWithConnectionManager:(id)manager NS_DESIGNATED_INITIALIZER; /** - * Stops the manager. This method is used internally. + Starts the manager. This method is used internally. + */ +- (void)start; + +/** + Stops the manager. This method is used internally. */ - (void)stop; /** - * Retrieves a capability type from the remote system. This function must be called in order to retrieve the values of `navigationCapability`, `phoneCapability`, `videoStreamingCapability` and `remoteControlCapability`. If you do not call this method first, those values will be nil. After calling this method, assuming there is no error in the handler, you may retrieve the capability you requested from the manager within the handler. + * Returns the window capability of one of your app's windows with the specified window ID that is on the primary display (i.e. the head unit itself). This is a convenience method to easily access capabilities of windows such as your apps' widget windows. + * + * To get the capabilities of the main window on the main display (i.e. your app's primary app screen on the head unit itself). * - * @param type The type of capability to retrieve - * @param handler The handler to be called when the retrieval is complete + * @param windowID The ID of the window from which to get capabilities + * @returns The window window capabilities of the window with the specified windowID, or nil if the window is not known or no window capabilities exist. + */ +- (nullable SDLWindowCapability *)windowCapabilityWithWindowID:(NSUInteger)windowID; + +/// Returns whether or not the capability type is supported on the module. You can use this to check if subscribing to the capability will work. If this returns NO, then the feature is not supported by the head unit. If YES, the feature is supported by the head unit. You can subscribe to the capability type to get more information about the capability's support and features on the connected module. +/// @param type The SystemCapabilityType that will be checked. +/// @return Whether or not `type` is supported by the connected head unit. +- (BOOL)isCapabilitySupported:(SDLSystemCapabilityType)type NS_SWIFT_NAME(isCapabilitySupported(type:)); + +/** + * This method has been superseded by the `subscribeToCapabilityType:` methods. You should use one of those methods instead unless you only want a value once (you don't want to keep a long-lasting observer) and it must be current (most capabilities do not need to be updated). If you have a separate subscription observer and are connected to a head unit that does not support subscriptions, when this method returns, it will also call all subscription callbacks that you've set up with the new value if there is one. Therefore, you can use this method to force an update to all subscriptions of that particular type on head units that don't support subscriptions (`supportsSubscriptions == NO`). + * + * @param type The type of capability to retrieve + * @param handler The handler to be called when the retrieval is complete */ - (void)updateCapabilityType:(SDLSystemCapabilityType)type completionHandler:(SDLUpdateCapabilityHandler)handler; +/// Subscribe to a particular capability type using a block callback. +/// +/// On v5.1.0+ systems (where `supportsSubscriptions == YES`): +/// This method will be called immediately with the current value if a subscription already exists and will be called every time the value is updated. +/// +/// On sub-v5.1.0 systems (where `supportsSubscriptions == NO`): +/// The method will be called immediately with the current value and will _not_ be automatically called every time the value is updated, unless the `type` is `DISPLAYS` which is supported on every version. If `updateCapabilityType:completionHandler` is called and a new value is retrieved, this value will be updated then. If this is the first subscription of this `SDLSystemCapabilityType`, then the value will be retrieved and returned. +/// +/// @param type The type of capability to subscribe to +/// @param block The block to be called when the capability is updated +/// @return An object that can be used to unsubscribe the block using unsubscribeFromCapabilityType:withObserver: by passing it in the observer callback, or nil if the manager can't attempt the subscription for some reason (such as the app being in HMI_NONE and the type is not DISPLAYS). +- (nullable id)subscribeToCapabilityType:(SDLSystemCapabilityType)type withBlock:(SDLCapabilityUpdateHandler)block __deprecated_msg("use subscribeToCapabilityType:withUpdateHandler: instead"); + +/// Subscribe to a particular capability type using a handler callback. +/// +/// On v5.1.0+ systems (where `supportsSubscriptions == YES`): +/// This method will be called immediately with the current value if a subscription already exists and will be called every time the value is updated. +/// +/// Note that when the cached value is returned, the `subscribed` flag on the handler will be false until the subscription completes successfully and a new value is retrieved. +/// +/// On sub-v5.1.0 systems (where `supportsSubscriptions == NO`): +/// The method will be called immediately with the current value and will _not_ be automatically called every time the value is updated, unless the `type` is `DISPLAYS` which is supported on every version. If `updateCapabilityType:completionHandler` is called and a new value is retrieved, this value will be updated then. If this is the first subscription of this `SDLSystemCapabilityType`, then the value will be retrieved and returned. +/// +/// @param type The type of capability to subscribe to +/// @param handler The block to be called when the capability is updated with an error if one occurs +/// @return An object that can be used to unsubscribe the block using unsubscribeFromCapabilityType:withObserver: by passing it in the observer callback, or nil if the manager can't attempt the subscription for some reason (such as the app being in HMI_NONE and the type is not DISPLAYS). +- (nullable id)subscribeToCapabilityType:(SDLSystemCapabilityType)type withUpdateHandler:(SDLCapabilityUpdateWithErrorHandler)handler NS_SWIFT_NAME(subscribe(capabilityType:updateHandler:)); + + +/// Subscribe to a particular capability type with a selector callback. +/// +/// The selector supports the following parameters: +/// +/// 1. No parameters e.g. `- (void)phoneCapabilityUpdated;` +/// +/// 2. One `SDLSystemCapability *` parameter, e.g. `- (void)phoneCapabilityUpdated:(SDLSystemCapability *)capability` +/// +/// 3. Two parameters, one `SDLSystemCapability *` parameter, and one `NSError` parameter, e.g. `- (void)phoneCapabilityUpdated:(SDLSystemCapability *)capability error:(NSError *)error` +/// +/// 4. Three parameters, one `SDLSystemCapability *` parameter, one `NSError` parameter, and one `BOOL` parameter e.g. `- (void)phoneCapabilityUpdated:(SDLSystemCapability *)capability error:(NSError *)error subscribed:(BOOL)subscribed` +/// +/// On v5.1.0+ systems (where `supportsSubscriptions == YES`): +/// This method will be called immediately with the current value if a subscription already exists and will be called every time the value is updated. +/// +/// On sub-v5.1.0 systems (where `supportsSubscriptions == NO`): +/// The method will be called immediately with the current value and will _not_ be automatically called every time the value is updated, unless the `type` is `DISPLAYS` which is supported on every version. If `updateCapabilityType:completionHandler` is called and a new value is retrieved, this value will be updated then. If this is the first subscription of this `SDLSystemCapabilityType`, then the value will be retrieved and returned. +/// +/// @param type The type of the system capability to subscribe to +/// @param observer The object that will have `selector` called whenever the capability is updated +/// @param selector The selector on `observer` that will be called whenever the capability is updated +/// @return YES if the manager is attempting the subscription, or NO if the manager can't attempt the subscription for some reason (such as the app being in HMI_NONE and the type is not DISPLAYS), or the selector doesn't contain the correct number of parameters. +- (BOOL)subscribeToCapabilityType:(SDLSystemCapabilityType)type withObserver:(id)observer selector:(SEL)selector; + +/// Unsubscribe from a particular capability type. If it was subscribed with a block / handler, the return value should be passed to the `observer` to unsubscribe the block. If it was subscribed with a selector, the `observer` object (on which the selector exists and is called) should be passed to unsubscribe the object selector. +/// +/// @param type The type of the system capability to unsubscribe from +/// @param observer The object that will be unsubscribed. If a block was subscribed, the return value should be passed. If a selector was subscribed, the observer object should be passed. +- (void)unsubscribeFromCapabilityType:(SDLSystemCapabilityType)type withObserver:(id)observer; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.m index cd9db46..e5817b9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.m @@ -8,25 +8,50 @@ #import "SDLSystemCapabilityManager.h" +#import "SDLAppServiceCapability.h" +#import "SDLAppServiceRecord.h" +#import "SDLAppServicesCapabilities.h" #import "SDLConnectionManagerType.h" +#import "SDLDisplayCapabilities.h" +#import "SDLDisplayCapability.h" +#import "SDLError.h" #import "SDLGenericResponse.h" #import "SDLGetSystemCapability.h" #import "SDLGetSystemCapabilityResponse.h" +#import "SDLGlobals.h" +#import "SDLHMICapabilities.h" +#import "SDLImageField+ScreenManagerExtensions.h" #import "SDLLogMacros.h" +#import "SDLNavigationCapability.h" #import "SDLNotificationConstants.h" +#import "SDLOnHMIStatus.h" +#import "SDLOnSystemCapabilityUpdated.h" +#import "SDLPhoneCapability.h" #import "SDLRegisterAppInterfaceResponse.h" +#import "SDLPredefinedWindows.h" +#import "SDLRemoteControlCapabilities.h" +#import "SDLRPCNotificationNotification.h" #import "SDLRPCResponseNotification.h" +#import "SDLSeatLocationCapability.h" #import "SDLSetDisplayLayoutResponse.h" #import "SDLSystemCapability.h" +#import "SDLSystemCapabilityObserver.h" +#import "SDLTextField+ScreenManagerExtensions.h" +#import "SDLTextFieldName.h" +#import "SDLVersion.h" #import "SDLVideoStreamingCapability.h" +#import "SDLWindowCapability.h" +#import "SDLWindowTypeCapabilities.h" NS_ASSUME_NONNULL_BEGIN @interface SDLSystemCapabilityManager () +typedef NSString * SDLServiceID; + @property (weak, nonatomic) id connectionManager; -@property (copy, nonatomic, nullable) SDLUpdateCapabilityHandler systemCapabilityHandler; +@property (nullable, strong, nonatomic, readwrite) NSArray *displays; @property (nullable, strong, nonatomic, readwrite) SDLDisplayCapabilities *displayCapabilities; @property (nullable, strong, nonatomic, readwrite) SDLHMICapabilities *hmiCapabilities; @property (nullable, copy, nonatomic, readwrite) NSArray *softButtonCapabilities; @@ -42,6 +67,18 @@ @interface SDLSystemCapabilityManager () @property (nullable, strong, nonatomic, readwrite) SDLPhoneCapability *phoneCapability; @property (nullable, strong, nonatomic, readwrite) SDLVideoStreamingCapability *videoStreamingCapability; @property (nullable, strong, nonatomic, readwrite) SDLRemoteControlCapabilities *remoteControlCapability; +@property (nullable, strong, nonatomic, readwrite) SDLSeatLocationCapability *seatLocationCapability; + +@property (nullable, strong, nonatomic) NSMutableDictionary *appServicesCapabilitiesDictionary; + +@property (assign, nonatomic, readwrite) BOOL supportsSubscriptions; +@property (strong, nonatomic) NSMutableDictionary *> *capabilityObservers; +@property (strong, nonatomic) NSMutableDictionary *> *subscriptionStatus; + +@property (assign, nonatomic) BOOL shouldConvertDeprecatedDisplayCapabilities; +@property (strong, nonatomic) SDLHMILevel currentHMILevel; + +@property (copy, nonatomic) dispatch_queue_t readWriteQueue; @end @@ -55,100 +92,745 @@ - (instancetype)initWithConnectionManager:(id)manager return nil; } + if (@available(iOS 10.0, *)) { + _readWriteQueue = dispatch_queue_create_with_target("com.sdl.systemCapabilityManager.readWriteQueue", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); + } else { + _readWriteQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; + } + _connectionManager = manager; - [self sdl_registerForNotifications]; + _shouldConvertDeprecatedDisplayCapabilities = YES; + _appServicesCapabilitiesDictionary = [NSMutableDictionary dictionary]; + + _capabilityObservers = [NSMutableDictionary dictionary]; + _subscriptionStatus = [NSMutableDictionary dictionary]; + + _currentHMILevel = SDLHMILevelNone; + + [self sdl_registerForNotifications]; return self; } +- (void)start { } + +/** + * Resets the capabilities when a transport session is closed. + */ - (void)stop { SDLLogD(@"System Capability manager stopped"); - _displayCapabilities = nil; - _hmiCapabilities = nil; - _softButtonCapabilities = nil; - _buttonCapabilities = nil; - _presetBankCapabilities = nil; - _hmiZoneCapabilities = nil; - _speechCapabilities = nil; - _prerecordedSpeechCapabilities = nil; - _vrCapability = NO; - _audioPassThruCapabilities = nil; - _pcmStreamCapability = nil; - _navigationCapability = nil; - _phoneCapability = nil; - _videoStreamingCapability = nil; - _remoteControlCapability = nil; + [self sdl_runSyncOnQueue:^{ + self.displayCapabilities = nil; + self.displays = nil; + self.hmiCapabilities = nil; + self.softButtonCapabilities = nil; + self.buttonCapabilities = nil; + self.presetBankCapabilities = nil; + self.hmiZoneCapabilities = nil; + self.speechCapabilities = nil; + self.prerecordedSpeechCapabilities = nil; + self.vrCapability = NO; + self.audioPassThruCapabilities = nil; + self.pcmStreamCapability = nil; + self.navigationCapability = nil; + self.phoneCapability = nil; + self.videoStreamingCapability = nil; + self.remoteControlCapability = nil; + self.seatLocationCapability = nil; + + self.supportsSubscriptions = NO; + + self.appServicesCapabilitiesDictionary = [NSMutableDictionary dictionary]; + [self.capabilityObservers removeAllObjects]; + [self.subscriptionStatus removeAllObjects]; + + self.currentHMILevel = SDLHMILevelNone; + self.shouldConvertDeprecatedDisplayCapabilities = YES; + }]; +} + +#pragma mark - Getters + +- (BOOL)supportsSubscriptions { + return [[SDLGlobals sharedGlobals].rpcVersion isGreaterThanOrEqualToVersion:[SDLVersion versionWithString:@"5.1.0"]]; +} + +- (nullable SDLAppServicesCapabilities *)appServicesCapabilities { + if (self.appServicesCapabilitiesDictionary.count == 0) { return nil; } + + return [[SDLAppServicesCapabilities alloc] initWithAppServices:self.appServicesCapabilitiesDictionary.allValues]; +} + +#pragma mark - Window And Display Capabilities + +- (nullable SDLWindowCapability *)windowCapabilityWithWindowID:(NSUInteger)windowID { + NSArray *capabilities = self.displays; + if (capabilities == nil || capabilities.count == 0) { + return nil; + } + + SDLDisplayCapability *mainDisplay = capabilities.firstObject; + for (SDLWindowCapability *windowCapability in mainDisplay.windowCapabilities) { + NSUInteger currentWindowID = windowCapability.windowID != nil ? windowCapability.windowID.unsignedIntegerValue : SDLPredefinedWindowsDefaultWindow; + if (currentWindowID == windowID) { + return windowCapability; + } + } + return nil; } +- (nullable SDLWindowCapability *)defaultMainWindowCapability { + return [self windowCapabilityWithWindowID:SDLPredefinedWindowsDefaultWindow]; +} + +#pragma mark Convert Deprecated to New + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated" +/// Convert the capabilities from a `RegisterAppInterfaceResponse` into a new-style `DisplayCapability` for the main display. +/// @param rpc The `RegisterAppInterfaceResponse` RPC +- (NSArray *)sdl_createDisplayCapabilityListFromRegisterResponse:(SDLRegisterAppInterfaceResponse *)rpc { + return [self sdl_createDisplayCapabilityListFromDeprecatedDisplayCapabilities:rpc.displayCapabilities buttons:rpc.buttonCapabilities softButtons:rpc.softButtonCapabilities]; +} + +- (NSArray *)sdl_createDisplayCapabilityListFromSetDisplayLayoutResponse:(SDLSetDisplayLayoutResponse *)rpc { + return [self sdl_createDisplayCapabilityListFromDeprecatedDisplayCapabilities:rpc.displayCapabilities buttons:rpc.buttonCapabilities softButtons:rpc.softButtonCapabilities]; +} +#pragma clang diagnostic pop + +/// Creates a "new-style" display capability from the "old-style" `SDLDisplayCapabilities` object and other "old-style" objects that were returned in `RegisterAppInterfaceResponse` and `SetDisplayLayoutResponse` +/// @param display The old-style `SDLDisplayCapabilities` object to convert +/// @param buttons The old-style `SDLButtonCapabilities` object to convert +/// @param softButtons The old-style `SDLSoftButtonCapabilities` to convert +- (NSArray *)sdl_createDisplayCapabilityListFromDeprecatedDisplayCapabilities:(SDLDisplayCapabilities *)display buttons:(NSArray *)buttons softButtons:(NSArray *)softButtons { + SDLLogV(@"Creating display capability from deprecated display capabilities"); + // Based on deprecated Display capabilities we don't know if widgets are supported. The default MAIN window is the only window we know is supported, so it's the only one we will expose. + SDLWindowTypeCapabilities *windowTypeCapabilities = [[SDLWindowTypeCapabilities alloc] initWithType:SDLWindowTypeMain maximumNumberOfWindows:1]; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated" + NSString *displayName = display.displayName ?: display.displayType; +#pragma clang diagnostic pop + SDLDisplayCapability *displayCapability = [[SDLDisplayCapability alloc] initWithDisplayName:displayName]; + displayCapability.windowTypeSupported = @[windowTypeCapabilities]; + + // Create a window capability object for the default MAIN window + SDLWindowCapability *defaultWindowCapability = [[SDLWindowCapability alloc] init]; + defaultWindowCapability.windowID = @(SDLPredefinedWindowsDefaultWindow); + defaultWindowCapability.buttonCapabilities = [buttons copy]; + defaultWindowCapability.softButtonCapabilities = [softButtons copy]; + + // return if display capabilities don't exist. + if (display == nil) { + defaultWindowCapability.textFields = [SDLTextField allTextFields]; + defaultWindowCapability.imageFields = [SDLImageField allImageFields]; + displayCapability.windowCapabilities = @[defaultWindowCapability]; + return @[displayCapability]; + } + + // Copy all available display capability properties + defaultWindowCapability.templatesAvailable = [display.templatesAvailable copy]; + defaultWindowCapability.numCustomPresetsAvailable = [display.numCustomPresetsAvailable copy]; + defaultWindowCapability.textFields = [display.textFields copy]; + defaultWindowCapability.imageFields = [display.imageFields copy]; + + /* + The description from the mobile API to "graphicSupported: + > The display's persistent screen supports referencing a static or dynamic image. + For backward compatibility (AppLink 2.0) static image type is always presented + */ + if (display.graphicSupported.boolValue) { + defaultWindowCapability.imageTypeSupported = @[SDLImageTypeStatic, SDLImageTypeDynamic]; + } else { + defaultWindowCapability.imageTypeSupported = @[SDLImageTypeStatic]; + } + + displayCapability.windowCapabilities = @[defaultWindowCapability]; + return @[displayCapability]; +} + +#pragma mark Convert New to Deprecated + +/// Update the internal deprecated display capability methods with new values based on the current value of the default main window capability and the primary display +- (void)sdl_updateDeprecatedDisplayCapabilities { + SDLLogV(@"Updating deprecated capabilities from default main window capabilities"); + SDLWindowCapability *defaultMainWindowCapabilities = self.defaultMainWindowCapability; + if (self.displays.count == 0) { + return; + } + + // Create the deprecated capabilities for backward compatibility if developers try to access them + SDLDisplayCapabilities *convertedCapabilities = [[SDLDisplayCapabilities alloc] init]; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated" + convertedCapabilities.displayType = SDLDisplayTypeGeneric; // deprecated but it is mandatory +#pragma clang diagnostic pop + convertedCapabilities.displayName = self.displays.firstObject.displayName; + convertedCapabilities.textFields = [defaultMainWindowCapabilities.textFields copy]; + convertedCapabilities.imageFields = [defaultMainWindowCapabilities.imageFields copy]; + convertedCapabilities.templatesAvailable = [defaultMainWindowCapabilities.templatesAvailable copy]; + convertedCapabilities.numCustomPresetsAvailable = [defaultMainWindowCapabilities.numCustomPresetsAvailable copy]; + convertedCapabilities.mediaClockFormats = @[]; // mandatory field but allows empty array + convertedCapabilities.graphicSupported = @([defaultMainWindowCapabilities.imageTypeSupported containsObject:SDLImageTypeDynamic]); + + self.displayCapabilities = convertedCapabilities; + self.buttonCapabilities = defaultMainWindowCapabilities.buttonCapabilities; + self.softButtonCapabilities = defaultMainWindowCapabilities.softButtonCapabilities; +} + +#pragma mark - System Capability Updates + +- (BOOL)isCapabilitySupported:(SDLSystemCapabilityType)type { + if ([self sdl_cachedCapabilityForType:type] != nil) { + return YES; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypePhoneCall]) { + return self.hmiCapabilities.phoneCall.boolValue; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeNavigation]) { + return self.hmiCapabilities.navigation.boolValue; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { + return self.hmiCapabilities.displays.boolValue; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeRemoteControl]) { + return self.hmiCapabilities.remoteControl.boolValue; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeSeatLocation]) { + return self.hmiCapabilities.seatLocation.boolValue; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeAppServices]) { + //This is a corner case that the param was not available in 5.1.0, but the app services feature was available. We have to say it's available because we don't know. + if ([[SDLGlobals sharedGlobals].rpcVersion isEqualToVersion:[SDLVersion versionWithString:@"5.1.0"]]) { + return YES; + } + + return self.hmiCapabilities.appServices.boolValue; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeVideoStreaming]) { + if ([[SDLGlobals sharedGlobals].rpcVersion isGreaterThanOrEqualToVersion:[SDLVersion versionWithString:@"3.0.0"]] && [[SDLGlobals sharedGlobals].rpcVersion isLessThanOrEqualToVersion:[SDLVersion versionWithString:@"4.4.0"]]) { + // This was before the system capability feature was added so check if graphics are supported instead using the deprecated display capabilities + return self.displayCapabilities.graphicSupported.boolValue; + } + + return self.hmiCapabilities.videoStreaming.boolValue; + } else { + return NO; + } + + + return NO; +} + +- (nullable SDLSystemCapability *)sdl_cachedCapabilityForType:(SDLSystemCapabilityType)type { + if ([type isEqualToEnum:SDLSystemCapabilityTypePhoneCall] && self.phoneCapability != nil) { + return [[SDLSystemCapability alloc] initWithPhoneCapability:self.phoneCapability]; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeNavigation] && self.navigationCapability != nil) { + return [[SDLSystemCapability alloc] initWithNavigationCapability:self.navigationCapability]; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeAppServices] && self.appServicesCapabilities != nil) { + return [[SDLSystemCapability alloc] initWithAppServicesCapabilities:self.appServicesCapabilities]; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeDisplays] && self.displays != nil) { + return [[SDLSystemCapability alloc] initWithDisplayCapabilities:self.displays]; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeSeatLocation] && self.seatLocationCapability != nil) { + return [[SDLSystemCapability alloc] initWithSeatLocationCapability:self.seatLocationCapability]; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeRemoteControl] && self.remoteControlCapability != nil) { + return [[SDLSystemCapability alloc] initWithRemoteControlCapability:self.remoteControlCapability]; + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeVideoStreaming] && self.videoStreamingCapability != nil) { + return [[SDLSystemCapability alloc] initWithVideoStreamingCapability:self.videoStreamingCapability]; + } else { + return nil; + } +} + +- (void)updateCapabilityType:(SDLSystemCapabilityType)type completionHandler:(SDLUpdateCapabilityHandler)handler { + SDLLogV(@"Updating capability type: %@", type); + if ([self.currentHMILevel isEqualToEnum:SDLHMILevelNone] && ![type isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { + SDLLogE(@"Attempted to update type: %@ in HMI level NONE, which is not allowed. Please wait until you are in HMI BACKGROUND, LIMITED, or FULL before attempting to update any SystemCapabilityType DISPLAYS.", type); + return handler([NSError sdl_systemCapabilityManager_cannotUpdateInHMINONE], self); + } else if ([type isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { + SDLLogE(@"Attempted to update type DISPLAYS, which is not allowed. You are always subscribed to displays, please either pull the cached data directly or subscribe for updates to DISPLAYS."); + return handler([NSError sdl_systemCapabilityManager_cannotUpdateTypeDISPLAYS], self); + } + + // If we support subscriptions and we're already subscribed + if (self.supportsSubscriptions && [self.subscriptionStatus[type] isEqualToNumber:@YES]) { + // Just return the cached data because we get `onSystemCapability` callbacks + handler(nil, self); + } else { + // Go and get the actual data + __weak typeof(self) weakself = self; + [self sdl_sendGetSystemCapabilityWithType:type subscribe:nil completionHandler:^(SDLSystemCapability * _Nonnull capability, BOOL subscribed, NSError * _Nonnull error) { + handler(error, weakself); + }]; + } +} + +# pragma mark Subscribing + +/// Sends a GetSystemCapability and sends back the response +/// @param type The type to get +/// @param subscribe Whether to change the subscription status. YES to subscribe, NO to unsubscribe, nil to keep whatever the current state is +/// @param handler The handler to be returned +- (void)sdl_sendGetSystemCapabilityWithType:(SDLSystemCapabilityType)type subscribe:(nullable NSNumber *)subscribe completionHandler:(nullable SDLCapabilityUpdateWithErrorHandler)handler { + SDLLogV(@"Sending GetSystemCapability with type: %@, subscribe: %@", type, subscribe); + SDLGetSystemCapability *getSystemCapability = [[SDLGetSystemCapability alloc] initWithType:type]; + getSystemCapability.subscribe = subscribe; + + __weak typeof(self) weakself = self; + [self.connectionManager sendConnectionRequest:getSystemCapability withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + if (![response isKindOfClass:[SDLGetSystemCapabilityResponse class]]) { + SDLLogE(@"GetSystemCapability failed, type: %@, did not return a GetSystemCapability response", type); + if (handler == nil) { return; } + handler(nil, NO, [NSError sdl_systemCapabilityManager_moduleDoesNotSupportSystemCapabilities]); + return; + } + + if (response.success.boolValue == false) { + SDLLogE(@"GetSystemCapability failed, type: %@, error: %@", type, error); + if (handler == nil) { return; } + handler(nil, NO, error); + return; + } + + SDLGetSystemCapabilityResponse *getSystemCapabilityResponse = (SDLGetSystemCapabilityResponse *)response; + SDLLogD(@"GetSystemCapability response succeeded, type: %@, response: %@", type, getSystemCapabilityResponse); + + if (![weakself.subscriptionStatus[type] isEqualToNumber:subscribe] && weakself.supportsSubscriptions) { + [self sdl_runSyncOnQueue:^{ + weakself.subscriptionStatus[type] = subscribe; + }]; + } + + [weakself sdl_saveSystemCapability:getSystemCapabilityResponse.systemCapability error:error completionHandler:handler]; + }]; +} + +#pragma mark Saving Capability Responses + +/** + Saves a system capability. All system capabilities will update with the full object except for app services. For app services only the updated app service capabilities will be included in the `SystemCapability` sent from Core. The cached `appServicesCapabilities` will be updated with the new `appService` data. + + @param systemCapability The system capability to be saved + @param handler The handler to be called when the save completes + @return Whether or not the save occurred. This can be `NO` if the new system capability is equivalent to the old capability. + */ +- (BOOL)sdl_saveSystemCapability:(nullable SDLSystemCapability *)systemCapability error:(nullable NSError *)error completionHandler:(nullable SDLCapabilityUpdateWithErrorHandler)handler { + SDLLogV(@"Saving system capability type: %@", systemCapability); + + SDLSystemCapabilityType systemCapabilityType = systemCapability.systemCapabilityType; + + if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypePhoneCall]) { + if ([self.phoneCapability isEqual:systemCapability.phoneCapability]) { + [self sdl_callObserversForUpdate:systemCapability error:error handler:handler]; + return NO; + } + self.phoneCapability = systemCapability.phoneCapability; + } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeNavigation]) { + if ([self.navigationCapability isEqual:systemCapability.navigationCapability]) { + [self sdl_callObserversForUpdate:systemCapability error:error handler:handler]; + return NO; + } + self.navigationCapability = systemCapability.navigationCapability; + } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeRemoteControl]) { + if ([self.remoteControlCapability isEqual:systemCapability.remoteControlCapability]) { + [self sdl_callObserversForUpdate:systemCapability error:error handler:handler]; + return NO; + } + self.remoteControlCapability = systemCapability.remoteControlCapability; + } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeSeatLocation]) { + if ([self.seatLocationCapability isEqual:systemCapability.seatLocationCapability]) { + [self sdl_callObserversForUpdate:systemCapability error:error handler:handler]; + return NO; + } + self.seatLocationCapability = systemCapability.seatLocationCapability; + } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeVideoStreaming]) { + if ([self.videoStreamingCapability isEqual:systemCapability.videoStreamingCapability]) { + [self sdl_callObserversForUpdate:systemCapability error:error handler:handler]; + return NO; + } + self.videoStreamingCapability = systemCapability.videoStreamingCapability; + } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeAppServices]) { + [self sdl_saveAppServicesCapabilitiesUpdate:systemCapability.appServicesCapabilities]; + systemCapability = [[SDLSystemCapability alloc] initWithAppServicesCapabilities:self.appServicesCapabilities]; + } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { + self.shouldConvertDeprecatedDisplayCapabilities = NO; + [self sdl_saveDisplayCapabilityListUpdate:systemCapability.displayCapabilities]; + } else { + SDLLogW(@"Received response for unknown System Capability Type: %@", systemCapabilityType); + return NO; + } + + SDLLogD(@"Updated system capability manager with new data: %@", systemCapability); + + [self sdl_callObserversForUpdate:systemCapability error:error handler:handler]; + return YES; +} + +#pragma mark Merge Capability Deltas + +- (void)sdl_saveAppServicesCapabilitiesUpdate:(SDLAppServicesCapabilities *)newCapabilities { + SDLLogV(@"Saving app services capability update with new capabilities: %@", newCapabilities); + for (SDLAppServiceCapability *capability in newCapabilities.appServices) { + // If the capability has been removed, delete the saved capability; otherwise just update with the new capability + SDLAppServiceCapability *newCapability = [capability.updateReason isEqualToEnum:SDLServiceUpdateRemoved] ? nil : capability; + [self sdl_runSyncOnQueue:^{ + self.appServicesCapabilitiesDictionary[capability.updatedAppServiceRecord.serviceID] = newCapability; + }]; + } +} + +/// Save a new new-style `DisplayCapability` update (only contains the delta) that was received by merging it with the existing version. +/// @param newCapabilities The new `DisplayCapability` update delta. +- (void)sdl_saveDisplayCapabilityListUpdate:(NSArray *)newCapabilities { + NSArray *oldCapabilities = self.displays; + SDLLogV(@"Saving display capability update with new capabilities: %@", newCapabilities); + + if (oldCapabilities == nil) { + self.displays = newCapabilities; + [self sdl_updateDeprecatedDisplayCapabilities]; + return; + } + + SDLDisplayCapability *oldDefaultDisplayCapabilities = oldCapabilities.firstObject; + NSMutableArray *copyWindowCapabilities = [oldDefaultDisplayCapabilities.windowCapabilities mutableCopy]; + + SDLDisplayCapability *newDefaultDisplayCapabilities = newCapabilities.firstObject; + NSArray *newWindowCapabilities = newDefaultDisplayCapabilities.windowCapabilities; + + for (SDLWindowCapability *newWindow in newWindowCapabilities) { + BOOL oldFound = NO; + for (NSUInteger i = 0; i < copyWindowCapabilities.count; i++) { + SDLWindowCapability *oldWindow = copyWindowCapabilities[i]; + NSUInteger newWindowID = newWindow.windowID ? newWindow.windowID.unsignedIntegerValue : SDLPredefinedWindowsDefaultWindow; + NSUInteger oldWindowID = oldWindow.windowID ? oldWindow.windowID.unsignedIntegerValue : SDLPredefinedWindowsDefaultWindow; + + if (newWindowID == oldWindowID) { + // Replace the old window caps with new ones + copyWindowCapabilities[i] = newWindow; + oldFound = true; + break; + } + } + + if (!oldFound) { + // This is a new unknown window + [copyWindowCapabilities addObject:newWindow]; + } + } + + // replace the window capabilities array with the merged one. + newDefaultDisplayCapabilities.windowCapabilities = [copyWindowCapabilities copy]; + self.displays = @[newDefaultDisplayCapabilities]; + [self sdl_updateDeprecatedDisplayCapabilities]; +} + +#pragma mark - Manager Subscriptions + +#pragma mark Subscribing + +- (nullable id)subscribeToCapabilityType:(SDLSystemCapabilityType)type withBlock:(SDLCapabilityUpdateHandler)block { + SDLLogD(@"Subscribing to capability type: %@ with a handler (DEPRECATED)", type); + SDLSystemCapabilityObserver *observerObject = [[SDLSystemCapabilityObserver alloc] initWithObserver:[[NSObject alloc] init] block:block]; + + id subscribedObserver = [self sdl_subscribeToCapabilityType:type observerObject:observerObject]; + return subscribedObserver; +} + +- (nullable id)subscribeToCapabilityType:(SDLSystemCapabilityType)type withUpdateHandler:(SDLCapabilityUpdateWithErrorHandler)handler { + SDLLogD(@"Subscribing to capability type: %@ with a handler", type); + SDLSystemCapabilityObserver *observerObject = [[SDLSystemCapabilityObserver alloc] initWithObserver:[[NSObject alloc] init] updateHandler:handler]; + + id subscribedObserver = [self sdl_subscribeToCapabilityType:type observerObject:observerObject]; + return subscribedObserver; +} + +- (BOOL)subscribeToCapabilityType:(SDLSystemCapabilityType)type withObserver:(id)observer selector:(SEL)selector { + SDLLogD(@"Subscribing to capability type: %@, with observer: %@, selector: %@", type, observer, NSStringFromSelector(selector)); + NSUInteger numberOfParametersInSelector = [NSStringFromSelector(selector) componentsSeparatedByString:@":"].count - 1; + if (numberOfParametersInSelector > 3) { + SDLLogE(@"Attempted to subscribe to a capability using a selector that contains more than 3 parameters."); + return NO; + } + + if (observer == nil) { + SDLLogE(@"Attempted to subscribe to type: %@ with a selector on a *nil* observer, which will always fail.", type); + return NO; + } + + SDLSystemCapabilityObserver *observerObject = [[SDLSystemCapabilityObserver alloc] initWithObserver:observer selector:selector]; + + id subscribedObserver = [self sdl_subscribeToCapabilityType:type observerObject:observerObject]; + return subscribedObserver == nil ? NO : YES; +} + +/// Helper method for subscribing to a system capability type +/// @param type The SystemCapabilityType that will be subscribed +/// @param observerObject An object that can be used to unsubscribe the block. If nil, the subscription was not succesful. +/// @return The observer if the subscription was succesful; nil if not. +- (nullable id)sdl_subscribeToCapabilityType:(SDLSystemCapabilityType)type observerObject:(SDLSystemCapabilityObserver *)observerObject { + if ([self.currentHMILevel isEqualToEnum:SDLHMILevelNone] && ![type isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { + SDLLogE(@"Attempted to subscribe to type: %@ in HMI level NONE, which is not allowed. Please wait until you are in HMI BACKGROUND, LIMITED, or FULL before attempting to subscribe to any SystemCapabilityType other than DISPLAYS.", type); + [self sdl_invokeObserver:observerObject withCapabilityType:type capability:nil error:[NSError sdl_systemCapabilityManager_cannotUpdateInHMINONE]]; + return nil; + } + + if (self.capabilityObservers[type] == nil) { + SDLLogD(@"This is the first subscription to capability type: %@, sending a GetSystemCapability with subscribe true", type); + + [self sdl_runSyncOnQueue:^{ + self.capabilityObservers[type] = [NSMutableArray arrayWithObject:observerObject]; + }]; + + // We don't want to send this for the displays type because that's automatically subscribed + if (![type isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { + [self sdl_sendGetSystemCapabilityWithType:type subscribe:@YES completionHandler:nil]; + } else { + // If we're not calling the GSC RPC we should invoke the observer with the cached data + [self sdl_invokeObserver:observerObject withCapabilityType:type capability:[self sdl_cachedCapabilityForType:type] error:nil]; + } + } else { + // Store the observer and call it immediately with the cached value + [self sdl_runSyncOnQueue:^{ + [self.capabilityObservers[type] addObject:observerObject]; + }]; + + [self sdl_invokeObserver:observerObject withCapabilityType:type capability:[self sdl_cachedCapabilityForType:type] error:nil]; + } + + return observerObject.observer; +} + +#pragma mark Unubscribing + +- (void)unsubscribeFromCapabilityType:(SDLSystemCapabilityType)type withObserver:(id)observer { + SDLLogD(@"Unsubscribing from capability type: %@", type); + for (SDLSystemCapabilityObserver *capabilityObserver in self.capabilityObservers[type]) { + if ([observer isEqual:capabilityObserver.observer] && self.capabilityObservers[type] != nil) { + [self sdl_runSyncOnQueue:^{ + [self.capabilityObservers[type] removeObject:capabilityObserver]; + }]; + + [self sdl_removeNilObserversAndUnsubscribeIfNecessary]; + break; + } + } +} + +- (void)sdl_removeNilObserversAndUnsubscribeIfNecessary { + SDLLogV(@"Checking for nil observers and removing them, then checking for subscriptions we don't need and unsubscribing."); + // Loop through our observers + for (SDLSystemCapabilityType key in self.capabilityObservers.allKeys) { + for (SDLSystemCapabilityObserver *observer in self.capabilityObservers[key]) { + [self sdl_runSyncOnQueue:^{ + // If an observer object is nil, remove it + if (observer.observer == nil) { + [self.capabilityObservers[key] removeObject:observer]; + } + + // If we no longer have any observers for that type, remove the array + if (self.capabilityObservers[key].count == 0) { + [self.capabilityObservers removeObjectForKey:key]; + } + }]; + } + } + + // If we don't support subscriptions, we don't want to unsubscribe by sending an RPC below + if (!self.supportsSubscriptions) { + return; + } + + // Loop through our subscription statuses, check if we're subscribed. If we are, and we do not have observers for that type, and that type is not DISPLAYS, then unsubscribe. + for (SDLSystemCapabilityType type in self.subscriptionStatus.allKeys) { + if ([self.subscriptionStatus[type] isEqualToNumber:@YES] + && self.capabilityObservers[type] == nil + && ![type isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { + SDLLogD(@"Removing the last subscription to type %@, sending a GetSystemCapability with subscribe false (will unsubscribe)", type); + [self sdl_sendGetSystemCapabilityWithType:type subscribe:@NO completionHandler:nil]; + } + } +} + +#pragma mark Notifying Subscribers + +/// Calls all observers of a capability type with an updated capability +/// @param capability The new capability update +/// @param handler The update handler to call, if one exists after the observers are called +- (void)sdl_callObserversForUpdate:(nullable SDLSystemCapability *)capability error:(nullable NSError *)error handler:(nullable SDLCapabilityUpdateWithErrorHandler)handler { + SDLSystemCapabilityType type = capability.systemCapabilityType; + SDLLogV(@"Calling observers for type: %@ with update: %@", type, capability); + + [self sdl_removeNilObserversAndUnsubscribeIfNecessary]; + + for (SDLSystemCapabilityObserver *observer in self.capabilityObservers[type]) { + [self sdl_invokeObserver:observer withCapabilityType:type capability:capability error:error]; + } + + if (handler == nil) { return; } + handler(capability, self.subscriptionStatus[type].boolValue, error); +} + +- (void)sdl_invokeObserver:(SDLSystemCapabilityObserver *)observer withCapabilityType:(SDLSystemCapabilityType)type capability:(nullable SDLSystemCapability *)capability error:(nullable NSError *)error { + BOOL subscribed = self.subscriptionStatus[type].boolValue || [type isEqualToEnum:SDLSystemCapabilityTypeDisplays]; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + if (observer.block != nil) { + observer.block(capability); +#pragma clang diagnostic pop + } else if (observer.updateBlock != nil) { + observer.updateBlock(capability, subscribed, error); + } else { + if (![observer.observer respondsToSelector:observer.selector]) { + @throw [NSException sdl_invalidSystemCapabilitySelectorExceptionWithSelector:observer.selector]; + } + + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[(NSObject *)observer.observer methodSignatureForSelector:observer.selector]]; + [invocation setSelector:observer.selector]; + [invocation setTarget:observer.observer]; + + NSUInteger numberOfParametersInSelector = [NSStringFromSelector(observer.selector) componentsSeparatedByString:@":"].count - 1; + if (numberOfParametersInSelector >= 1) { + [invocation setArgument:&capability atIndex:2]; + } + if (numberOfParametersInSelector >= 2) { + [invocation setArgument:&error atIndex:3]; + } + if (numberOfParametersInSelector >= 3) { + [invocation setArgument:&subscribed atIndex:4]; + } + if (numberOfParametersInSelector >= 4) { + @throw [NSException sdl_invalidSystemCapabilitySelectorExceptionWithSelector:observer.selector]; + } + + [invocation invoke]; + } +} #pragma mark - Notifications --(void)sdl_registerForNotifications { +/// Registers for notifications and responses from Core +- (void)sdl_registerForNotifications { + SDLLogV(@"Registering for notifications"); [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_registerResponse:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_displayLayoutResponse:) name:SDLDidReceiveSetDisplayLayoutResponse object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_systemCapabilityResponse:) name:SDLDidReceiveGetSystemCapabilitiesResponse object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_systemCapabilityUpdatedNotification:) name:SDLDidReceiveSystemCapabilityUpdatedNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusNotification:) name:SDLDidChangeHMIStatusNotification object:nil]; } +/** + * Called when a `RegisterAppInterfaceResponse` response is received from Core. The head unit capabilities are saved. + * + * @param notification The `RegisterAppInterfaceResponse` response received from Core + */ - (void)sdl_registerResponse:(SDLRPCResponseNotification *)notification { SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response; if (!response.success.boolValue) { return; } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated" self.displayCapabilities = response.displayCapabilities; - self.hmiCapabilities = response.hmiCapabilities; self.softButtonCapabilities = response.softButtonCapabilities; self.buttonCapabilities = response.buttonCapabilities; self.presetBankCapabilities = response.presetBankCapabilities; +#pragma clang diagnostic pop + + self.hmiCapabilities = response.hmiCapabilities; self.hmiZoneCapabilities = response.hmiZoneCapabilities; self.speechCapabilities = response.speechCapabilities; self.prerecordedSpeechCapabilities = response.prerecordedSpeech; self.vrCapability = (response.vrCapabilities.count > 0 && [response.vrCapabilities.firstObject isEqualToEnum:SDLVRCapabilitiesText]) ? YES : NO; self.audioPassThruCapabilities = response.audioPassThruCapabilities; self.pcmStreamCapability = response.pcmStreamCapabilities; + + self.shouldConvertDeprecatedDisplayCapabilities = YES; + self.displays = [self sdl_createDisplayCapabilityListFromRegisterResponse:response]; + + SDLLogV(@"Received RegisterAppInterface response, filled out display and other capabilities"); + + // Call the observers in case the new display capability list is created from deprecated types + SDLSystemCapability *systemCapability = [[SDLSystemCapability alloc] initWithDisplayCapabilities:self.displays]; + [self sdl_callObserversForUpdate:systemCapability error:nil handler:nil]; } +/** + * Called when a `SetDisplayLayoutResponse` response is received from Core. If the template was set successfully, the the new capabilities for the template are saved. + * + * @param notification The `SetDisplayLayoutResponse` response received from Core + */ - (void)sdl_displayLayoutResponse:(SDLRPCResponseNotification *)notification { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated" SDLSetDisplayLayoutResponse *response = (SDLSetDisplayLayoutResponse *)notification.response; +#pragma clang diagnostic pop if (!response.success.boolValue) { return; } + // If we've received a display capability update then we should not convert our deprecated display capabilities and we should just return + if (!self.shouldConvertDeprecatedDisplayCapabilities) { return; } + self.displayCapabilities = response.displayCapabilities; self.buttonCapabilities = response.buttonCapabilities; self.softButtonCapabilities = response.softButtonCapabilities; self.presetBankCapabilities = response.presetBankCapabilities; + + self.displays = [self sdl_createDisplayCapabilityListFromSetDisplayLayoutResponse:response]; + + SDLLogV(@"Received SetDisplayLayout response, filled out display and other capabilities"); + + // Call the observers in case the new display capability list is created from deprecated types + SDLSystemCapability *systemCapability = [[SDLSystemCapability alloc] initWithDisplayCapabilities:self.displays]; + [self sdl_callObserversForUpdate:systemCapability error:nil handler:nil]; } -- (void)sdl_systemCapabilityResponse:(SDLRPCResponseNotification *)notification { - SDLGetSystemCapabilityResponse *response = (SDLGetSystemCapabilityResponse *)notification.response; - if (!response.success.boolValue) { return; } +/** + * Called when an `OnSystemCapabilityUpdated` notification is received from Core. The updated system capabilty is saved. + * + * @param notification The `OnSystemCapabilityUpdated` notification received from Core + */ +- (void)sdl_systemCapabilityUpdatedNotification:(SDLRPCNotificationNotification *)notification { + SDLOnSystemCapabilityUpdated *systemCapabilityUpdatedNotification = (SDLOnSystemCapabilityUpdated *)notification.notification; + SDLLogV(@"Received OnSystemCapability update for type %@", systemCapabilityUpdatedNotification.systemCapability.systemCapabilityType); - SDLSystemCapability *systemCapabilityResponse = ((SDLGetSystemCapabilityResponse *)response).systemCapability; - SDLSystemCapabilityType systemCapabilityType = systemCapabilityResponse.systemCapabilityType; + [self sdl_saveSystemCapability:systemCapabilityUpdatedNotification.systemCapability error:nil completionHandler:nil]; +} - if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypePhoneCall]) { - self.phoneCapability = systemCapabilityResponse.phoneCapability; - } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeNavigation]) { - self.navigationCapability = systemCapabilityResponse.navigationCapability; - } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeRemoteControl]) { - self.remoteControlCapability = systemCapabilityResponse.remoteControlCapability; - } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeVideoStreaming]) { - self.videoStreamingCapability = systemCapabilityResponse.videoStreamingCapability; +- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { + SDLOnHMIStatus *onHMIStatus = (SDLOnHMIStatus *)notification.notification; + self.currentHMILevel = onHMIStatus.hmiLevel; +} + +#pragma mark Utilities + +/// Checks if we are already on the serial readWrite queue. If so, the block is added to the queue; if not, the block is dispatched to the readWrite queue. +/// @discussion Used to ensure atomic access to global properties. +/// @param block The block to be executed. +- (void)sdl_runSyncOnQueue:(void (^)(void))block { + if (dispatch_get_specific(SDLProcessingQueueName) != nil) { + block(); } else { - SDLLogW(@"Received response for unknown System Capability Type: %@", systemCapabilityType); + dispatch_sync(self.readWriteQueue, block); } +} + +#pragma mark Getters - if (self.systemCapabilityHandler == nil) { return; } - self.systemCapabilityHandler(nil, self); +- (NSMutableDictionary *> *)capabilityObservers { + __block NSMutableDictionary *> *dict = nil; + [self sdl_runSyncOnQueue:^{ + dict = self->_capabilityObservers; + }]; + + return dict; } -#pragma mark - Capability Request +- (NSMutableDictionary *> *)subscriptionStatus { + __block NSMutableDictionary *> *dict = nil; + [self sdl_runSyncOnQueue:^{ + dict = self->_subscriptionStatus; + }]; + + return dict; +} -- (void)updateCapabilityType:(SDLSystemCapabilityType)type completionHandler:(SDLUpdateCapabilityHandler)handler { - self.systemCapabilityHandler = handler; - SDLGetSystemCapability *getSystemCapability = [[SDLGetSystemCapability alloc] initWithType:type]; - [self.connectionManager sendConnectionRequest:getSystemCapability withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error == nil) { return; } - // An error is returned if the request was unsuccessful or a Generic Response is returned - handler(error, self); +- (nullable NSMutableDictionary *)appServicesCapabilitiesDictionary { + __block NSMutableDictionary *dict = nil; + [self sdl_runSyncOnQueue:^{ + dict = self->_appServicesCapabilitiesDictionary; }]; + + return dict; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.h new file mode 100644 index 0000000..11a6acf --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.h @@ -0,0 +1,71 @@ +// +// SDLSystemCapabilityObserver.h +// SmartDeviceLink +// +// Created by Joel Fischer on 5/23/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +@class SDLSystemCapability; + +NS_ASSUME_NONNULL_BEGIN + +/// A handler mirroring the one in SDLSystemCapabilityManager.h for `initWithObserver:block:` +typedef void (^SDLCapabilityUpdateHandler)(SDLSystemCapability *capability); + +/// A handler mirroring the one in SDLSystemCapabilityManager.h for `initWithObserver:updateHandler:` +typedef void (^SDLCapabilityUpdateWithErrorHandler)(SDLSystemCapability *_Nullable capability, BOOL subscribed, NSError *_Nullable error); + +/** + An observer object for SDLSystemCapabilityManager + */ +@interface SDLSystemCapabilityObserver : NSObject + +/** + The object that will be used to call the selector if available, and to unsubscribe this observer + */ +@property (strong, nonatomic) id observer; + +/** + A selector called when the observer is triggered + */ +@property (assign, nonatomic) SEL selector; + +/** + A block called when the observer is triggered + */ +@property (copy, nonatomic) SDLCapabilityUpdateHandler block __deprecated_msg("use updateBlock instead"); + +/// A block called when the observer is triggered +@property (copy, nonatomic) SDLCapabilityUpdateWithErrorHandler updateBlock; + +/** + Create an observer using an object and a selector on that object + + @param observer The object to be called when the subscription triggers + @param selector The selector to be called when the subscription triggers + @return The observer + */ +- (instancetype)initWithObserver:(id)observer selector:(SEL)selector; + +/** + Create an observer using an object and a callback block + + @param observer The object that can be used to unsubscribe the block + @param block The block that will be called when the subscription triggers + @return The observer + */ +- (instancetype)initWithObserver:(id)observer block:(SDLCapabilityUpdateHandler)block __deprecated_msg("use initWithObserver:updateHandler: instead"); + +/// Create an observer using an object and a callback block + +/// @param observer The object that can be used to unsubscribe the block +/// @param block The block that will be called when the subscription triggers +/// @return The observer +- (instancetype)initWithObserver:(id)observer updateHandler:(SDLCapabilityUpdateWithErrorHandler)block; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.m new file mode 100644 index 0000000..7b6ef0b --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.m @@ -0,0 +1,55 @@ +// +// SDLSystemCapabilityObserver.m +// SmartDeviceLink +// +// Created by Joel Fischer on 5/23/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLSystemCapabilityObserver.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLSystemCapabilityObserver + +- (instancetype)initWithObserver:(id)observer selector:(SEL)selector { + self = [super init]; + if (!self) { return nil; } + + _observer = observer; + _selector = selector; + + return self; +} + +- (instancetype)initWithObserver:(id)observer block:(SDLCapabilityUpdateHandler)block { + self = [super init]; + if (!self) { return nil; } + + _observer = observer; + _block = block; + + return self; +} + +- (instancetype)initWithObserver:(id)observer updateHandler:(SDLCapabilityUpdateWithErrorHandler)block { + self = [super init]; + if (!self) { return nil; } + + _observer = observer; + _updateBlock = block; + + return self; +} + +- (NSString *)description { + if (self.selector) { + return [NSString stringWithFormat:@"Observer: %@[%@] - %@", [_observer class], _observer, NSStringFromSelector(_selector)]; + } else { + return [NSString stringWithFormat:@"Block Observer: %@", _observer]; + } +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.h index f42d1b2..60f11a7 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.h @@ -13,6 +13,11 @@ */ typedef SDLEnum SDLSystemCapabilityType SDL_SWIFT_ENUM; +/** + The app services capability + */ +extern SDLSystemCapabilityType const SDLSystemCapabilityTypeAppServices; + /** The navigation capability */ @@ -32,3 +37,15 @@ extern SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming; The remote control capability */ extern SDLSystemCapabilityType const SDLSystemCapabilityTypeRemoteControl; + +/** + Contains information about the locations of each seat + */ +extern SDLSystemCapabilityType const SDLSystemCapabilityTypeSeatLocation; + +/** + The Display type capability + + @since SDL 6.0 + */ +extern SDLSystemCapabilityType const SDLSystemCapabilityTypeDisplays; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.m index c8a25e7..4185345 100755 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.m @@ -8,8 +8,10 @@ #import "SDLSystemCapabilityType.h" - +SDLSystemCapabilityType const SDLSystemCapabilityTypeAppServices = @"APP_SERVICES"; SDLSystemCapabilityType const SDLSystemCapabilityTypeNavigation = @"NAVIGATION"; SDLSystemCapabilityType const SDLSystemCapabilityTypePhoneCall = @"PHONE_CALL"; SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming = @"VIDEO_STREAMING"; SDLSystemCapabilityType const SDLSystemCapabilityTypeRemoteControl = @"REMOTE_CONTROL"; +SDLSystemCapabilityType const SDLSystemCapabilityTypeSeatLocation = @"SEAT_LOCATION"; +SDLSystemCapabilityType const SDLSystemCapabilityTypeDisplays = @"DISPLAYS"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.h index b029d37..75cd10a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.h @@ -5,7 +5,7 @@ #import "SDLRequestType.h" -/* +/** * An asynchronous request from the device; binary data can be included in hybrid part of message for some requests (such as HTTP, Proprietary, or Authentication requests) * * @since SmartDeviceLink 3.0 diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.m index d481779..6999a5b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.m @@ -5,17 +5,21 @@ #import "SDLSystemRequest.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSystemRequest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSystemRequest]) { + if (self = [super initWithName:SDLRPCFunctionNameSystemRequest]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithType:(SDLRequestType)requestType fileName:(nullable NSString *)fileName { self = [self init]; @@ -41,27 +45,28 @@ - (instancetype)initWithProprietaryType:(NSString *)proprietaryType fileName:(nu } - (void)setRequestType:(SDLRequestType)requestType { - [parameters sdl_setObject:requestType forName:SDLNameRequestType]; + [self.parameters sdl_setObject:requestType forName:SDLRPCParameterNameRequestType]; } - (SDLRequestType)requestType { - return [parameters sdl_objectForName:SDLNameRequestType]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameRequestType error:&error]; } - (void)setRequestSubType:(nullable NSString *)requestSubType { - [parameters sdl_setObject:requestSubType forName:SDLNameRequestSubType]; + [self.parameters sdl_setObject:requestSubType forName:SDLRPCParameterNameRequestSubType]; } - (nullable NSString *)requestSubType { - return [parameters sdl_objectForName:SDLNameRequestSubType]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameRequestSubType ofClass:NSString.class error:nil]; } - (void)setFileName:(nullable NSString *)fileName { - [parameters sdl_setObject:fileName forName:SDLNameFilename]; + [self.parameters sdl_setObject:fileName forName:SDLRPCParameterNameFilename]; } - (nullable NSString *)fileName { - return [parameters sdl_objectForName:SDLNameFilename]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFilename ofClass:NSString.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequestResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequestResponse.m index f202c54..3275c22 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequestResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequestResponse.m @@ -5,17 +5,21 @@ #import "SDLSystemRequestResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSystemRequestResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameSystemRequest]) { + if (self = [super initWithName:SDLRPCFunctionNameSystemRequest]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTCPTransport.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTCPTransport.m index f56641f..962c1ff 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTCPTransport.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTCPTransport.m @@ -9,37 +9,44 @@ #import "SDLTCPTransport.h" #import "SDLMutableDataQueue.h" #import "SDLError.h" +#import "SDLGlobals.h" #import "SDLLogMacros.h" +#import "SDLTimer.h" #import NS_ASSUME_NONNULL_BEGIN NSString *const TCPIOThreadName = @"com.smartdevicelink.tcpiothread"; -NSTimeInterval const IOThreadWaitSecs = 1.0; +NSTimeInterval const IOThreadCanceledSemaphoreWaitSecs = 1.0; NSUInteger const DefaultReceiveBufferSize = 16 * 1024; NSTimeInterval ConnectionTimeoutSecs = 30.0; @interface SDLTCPTransport () @property (nullable, nonatomic, strong) NSThread *ioThread; -@property (nonatomic, strong) dispatch_semaphore_t ioThreadStoppedSemaphore; @property (nonatomic, assign) NSUInteger receiveBufferSize; @property (nonatomic, strong) SDLMutableDataQueue *sendDataQueue; @property (nullable, nonatomic, strong) NSInputStream *inputStream; @property (nullable, nonatomic, strong) NSOutputStream *outputStream; @property (nonatomic, assign) BOOL outputStreamHasSpace; -@property (nullable, nonatomic, strong) NSTimer *connectionTimer; +@property (nullable, nonatomic, strong) SDLTimer *connectionTimer; @property (nonatomic, assign) BOOL transportConnected; @property (nonatomic, assign) BOOL transportErrorNotified; +/// A semaphore used to block the current thread until we know that the I/O streams have been shutdown on the ioThread +@property (nonatomic, strong) dispatch_semaphore_t ioThreadCancelledSemaphore; + @end @implementation SDLTCPTransport - (instancetype)init { - if (self = [super init]) { - _receiveBufferSize = DefaultReceiveBufferSize; - _sendDataQueue = [[SDLMutableDataQueue alloc] init]; - } + self = [super init]; + if (!self) { return nil; } + + _receiveBufferSize = DefaultReceiveBufferSize; + _sendDataQueue = [[SDLMutableDataQueue alloc] init]; + _ioThreadCancelledSemaphore = dispatch_semaphore_create(0); + return self; } @@ -53,11 +60,6 @@ - (instancetype)initWithHostName:(NSString *)hostName portNumber:(NSString *)por return self; } -- (void)dealloc { - SDLLogD(@"SDLTCPTransport dealloc"); - [self disconnect]; -} - #pragma mark - Stream Lifecycle // Note: When a connection is refused (e.g. TCP port number is not correct) or timed out (e.g. invalid IP address), then onError will be notified. @@ -67,6 +69,8 @@ - (void)connect { return; } + SDLLogD(@"Attempting to connect"); + unsigned int port; int num = [self.portNumber intValue]; if (0 <= num && num <= 65535) { @@ -78,7 +82,6 @@ - (void)connect { self.ioThread = [[NSThread alloc] initWithTarget:self selector:@selector(sdl_tcpTransportEventLoop) object:nil]; self.ioThread.name = TCPIOThreadName; - self.ioThreadStoppedSemaphore = dispatch_semaphore_create(0); CFReadStreamRef readStream = NULL; CFWriteStreamRef writeStream = NULL; @@ -96,32 +99,55 @@ - (void)connect { [self.ioThread start]; } -- (void)disconnect { +- (void)disconnectWithCompletionHandler:(void (^)(void))disconnectCompletionHandler { + SDLLogD(@"Disconnecting"); + + [self.sendDataQueue removeAllObjects]; + self.transportErrorNotified = NO; + self.transportConnected = NO; + if (self.ioThread == nil) { - // already disconnected - return; + SDLLogV(@"TCP transport not yet started or has been shutdown"); + return disconnectCompletionHandler(); } - SDLLogD(@"Disconnecting TCP transport"); + // Tell the ioThread to shutdown the I/O streams. The I/O streams must be opened and closed on the same thread; if they are not, random crashes can occur. Dispatch this task to the main queue to ensure that this task is performed on the Main Thread. We are using the Main Thread for ease since we don't want to create a separate thread just to wait on closing the I/O streams. Using the Main Thread ensures that semaphore wait is not called from ioThread, which would block the ioThread and prevent shutdown. + __weak typeof(self) weakSelf = self; + dispatch_async(dispatch_get_main_queue(), ^{ + __strong typeof(weakSelf) strongSelf = weakSelf; - [self sdl_cancelIOThread]; + // Attempt to cancel the ioThread. Once the thread realizes it has been cancelled, it will cleanup the I/O streams. Make sure to wake up the run loop in case there is no current I/O event running on the ioThread. + [strongSelf.ioThread cancel]; + [strongSelf performSelector:@selector(sdl_doNothing) onThread:self.ioThread withObject:nil waitUntilDone:NO]; - long ret = dispatch_semaphore_wait(self.ioThreadStoppedSemaphore, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(IOThreadWaitSecs * NSEC_PER_SEC))); - if (ret == 0) { - SDLLogD(@"TCP transport thread stopped"); - } else { - SDLLogE(@"Failed to stop TCP transport thread"); - } - self.ioThread = nil; + // Block the thread until the semaphore has been released by the ioThread (or a timeout has occured). + BOOL cancelledSuccessfully = [strongSelf sdl_isIOThreadCancelled]; + if (!cancelledSuccessfully) { + SDLLogE(@"The I/O streams were not shut down successfully. We might not be able to create a new session with an accessory during the same app session. If this happens, only force quitting and restarting the app will allow new sessions."); + } + + disconnectCompletionHandler(); + }); +} - self.inputStream = nil; - self.outputStream = nil; +/// Wait for the ioThread to destroy the I/O streams. To ensure that we are not blocking the ioThread, this method should only be called from the main thread. +/// @return Whether or not the session's I/O streams were closed successfully. +- (BOOL)sdl_isIOThreadCancelled { + NSAssert(![NSThread.currentThread.name isEqualToString:TCPIOThreadName], @"%@ must not be called from the ioThread!", NSStringFromSelector(_cmd)); - [self.sendDataQueue removeAllObjects]; - self.transportErrorNotified = NO; - self.transportConnected = NO; + long lWait = dispatch_semaphore_wait(self.ioThreadCancelledSemaphore, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(IOThreadCanceledSemaphoreWaitSecs * NSEC_PER_SEC))); + if (lWait == 0) { + SDLLogD(@"ioThread cancelled successfully"); + return YES; + } + + SDLLogE(@"Failed to cancel ioThread within %f seconds", IOThreadCanceledSemaphoreWaitSecs); + return NO; } +/// Helper method for waking up the ioThread. +- (void)sdl_doNothing {} + #pragma mark - Data Transmission - (void)sendData:(NSData *)msgBytes { @@ -138,36 +164,48 @@ - (void)sdl_tcpTransportEventLoop { [self sdl_setupStream:self.outputStream]; // JFYI: NSStream itself has a connection timeout (about 1 minute). If you specify a large timeout value, you may get the NSStream's timeout event first. - self.connectionTimer = [NSTimer scheduledTimerWithTimeInterval:ConnectionTimeoutSecs target:self selector:@selector(sdl_onConnectionTimedOut:) userInfo:nil repeats:NO]; + __weak typeof(self) weakSelf = self; + self.connectionTimer = [[SDLTimer alloc] initWithDuration:ConnectionTimeoutSecs]; + self.connectionTimer.elapsedBlock = ^{ + [weakSelf sdl_onConnectionTimedOut]; + }; + [self.connectionTimer startOnRunLoop:[NSRunLoop currentRunLoop]]; // these will initiate a connection to remote server SDLLogD(@"Connecting to %@:%@ ...", self.hostName, self.portNumber); [self.inputStream open]; [self.outputStream open]; - while (![self.ioThread isCancelled]) { + while (self.ioThread != nil && !self.ioThread.cancelled) { BOOL ret = [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]; if (!ret) { SDLLogW(@"Failed to start TCP transport run loop"); break; } } - SDLLogD(@"TCP transport run loop terminated"); + // Close the I/O streams + SDLLogD(@"TCP transport run loop terminated"); [self sdl_teardownStream:self.inputStream]; [self sdl_teardownStream:self.outputStream]; + self.inputStream = nil; + self.outputStream = nil; + [self.connectionTimer cancel]; - [self.connectionTimer invalidate]; - - dispatch_semaphore_signal(self.ioThreadStoppedSemaphore); + // If a thread is blocked waiting on the I/O streams to shutdown, let the thread know that shutdown has completed. + dispatch_semaphore_signal(self.ioThreadCancelledSemaphore); } } +/// Configures a stream +/// @param stream An input or output stream - (void)sdl_setupStream:(NSStream *)stream { stream.delegate = self; [stream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; } +/// Tears down a stream +/// @param stream An input or output stream - (void)sdl_teardownStream:(NSStream *)stream { NSStreamStatus streamStatus = stream.streamStatus; if (streamStatus != NSStreamStatusNotOpen && streamStatus != NSStreamStatusClosed) { @@ -177,12 +215,6 @@ - (void)sdl_teardownStream:(NSStream *)stream { [stream setDelegate:nil]; } -- (void)sdl_cancelIOThread { - [self.ioThread cancel]; - // wake up the run loop in case we don't have any I/O event - [self performSelector:@selector(sdl_doNothing) onThread:self.ioThread withObject:nil waitUntilDone:NO]; -} - #pragma mark - NSStreamDelegate // this method runs only on the I/O thread (i.e. invoked from the run loop) @@ -195,7 +227,7 @@ - (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode { // We will get two NSStreamEventOpenCompleted events (for both input and output streams) and we don't need both. Let's use the one of output stream since we need to make sure that output stream is ready before Proxy sending Start Service frame. if (aStream == self.outputStream) { SDLLogD(@"TCP transport connected"); - [self.connectionTimer invalidate]; + [self.connectionTimer cancel]; self.transportConnected = YES; [self.delegate onTransportConnected]; } @@ -274,12 +306,10 @@ - (void)sdl_writeToStream { self.outputStreamHasSpace = NO; } -- (void)sdl_onConnectionTimedOut:(NSTimer *)timer { +- (void)sdl_onConnectionTimedOut { NSAssert([[NSThread currentThread] isEqual:self.ioThread], @"sdl_onConnectionTimedOut is called on a wrong thread!"); SDLLogW(@"TCP connection timed out"); - [self sdl_cancelIOThread]; - if (!self.transportErrorNotified) { NSAssert(!self.transportConnected, @"transport should not be connected in this case"); [self.delegate onError:[NSError sdl_transport_connectionTimedOutError]]; @@ -290,9 +320,6 @@ - (void)sdl_onConnectionTimedOut:(NSTimer *)timer { - (void)sdl_onStreamError:(NSStream *)stream { NSAssert([[NSThread currentThread] isEqual:self.ioThread], @"sdl_onStreamError is called on a wrong thread!"); - // stop I/O thread - [self sdl_cancelIOThread]; - // avoid notifying multiple error events if (self.transportErrorNotified) { return; @@ -309,24 +336,23 @@ - (void)sdl_onStreamError:(NSStream *)stream { NSError *error; switch (stream.streamError.code) { case ECONNREFUSED: { - SDLLogD(@"TCP connection error: ECONNREFUSED"); + SDLLogE(@"TCP connection error: ECONNREFUSED (connection refused)"); error = [NSError sdl_transport_connectionRefusedError]; } break; case ETIMEDOUT: { - SDLLogD(@"TCP connection error: ETIMEDOUT"); + SDLLogE(@"TCP connection error: ETIMEDOUT (connection timed out)"); error = [NSError sdl_transport_connectionTimedOutError]; } break; case ENETDOWN: { - SDLLogD(@"TCP connection error: ENETDOWN"); + SDLLogE(@"TCP connection error: ENETDOWN (network down)"); error = [NSError sdl_transport_networkDownError]; } break; case ENETUNREACH: { - // This is just for safe. I did not observe ENETUNREACH error on iPhone. - SDLLogD(@"TCP connection error: ENETUNREACH"); + SDLLogE(@"TCP connection error: ENETUNREACH (network unreachable)"); error = [NSError sdl_transport_networkDownError]; } break; default: { - SDLLogD(@"TCP connection error: unknown error %ld", (long)stream.streamError.code); + SDLLogE(@"TCP connection error: unknown error %ld", (long)stream.streamError.code); error = [NSError sdl_transport_unknownError]; } break; } @@ -338,18 +364,15 @@ - (void)sdl_onStreamError:(NSStream *)stream { } - (void)sdl_onStreamEnd:(NSStream *)stream { + SDLLogD(@"Stream ended"); NSAssert([[NSThread currentThread] isEqual:self.ioThread], @"sdl_onStreamEnd is called on a wrong thread!"); - [self sdl_cancelIOThread]; - if (!self.transportErrorNotified) { [self.delegate onTransportDisconnected]; self.transportErrorNotified = YES; } } -- (void)sdl_doNothing {} - @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTTSChunk.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTTSChunk.m index a887412..49f0368 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTTSChunk.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTTSChunk.m @@ -4,7 +4,7 @@ #import "SDLTTSChunk.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -55,19 +55,21 @@ - (instancetype)initWithText:(NSString *)text type:(SDLSpeechCapabilities)type { } - (void)setText:(NSString *)text { - [store sdl_setObject:text forName:SDLNameText]; + [self.store sdl_setObject:text forName:SDLRPCParameterNameText]; } - (NSString *)text { - return [store sdl_objectForName:SDLNameText]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameText ofClass:NSString.class error:&error]; } - (void)setType:(SDLSpeechCapabilities)type { - [store sdl_setObject:type forName:SDLNameType]; + [self.store sdl_setObject:type forName:SDLRPCParameterNameType]; } - (SDLSpeechCapabilities)type { - return [store sdl_objectForName:SDLNameType]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameType error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.h index 5a22ba9..e93fae6 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.h @@ -8,23 +8,46 @@ NS_ASSUME_NONNULL_BEGIN /** - Struct using in Remote Control representing a temperature. + * Struct representing a temperature. */ @interface SDLTemperature : SDLRPCStruct -- (instancetype)initWithUnit:(SDLTemperatureUnit)unit value:(float)value; +/** + * Convenience init for a fahrenheit temperature value. + * + * @param value Temperature value in fahrenheit + * @return A SDLTemperature object + */ +- (instancetype)initWithFahrenheitValue:(float)value; + +/** + * Convenience init for a celsius temperature value. + * + * @param value Temperature value in celsius + * @return A SDLTemperature object + */ +- (instancetype)initWithCelsiusValue:(float)value; /** - Temperature Unit + * Convenience init for all parameters. + * + * @param unit Temperature unit + * @param value Temperature value in specified unit + * @return A SDLTemperature object + */ +- (instancetype)initWithUnit:(SDLTemperatureUnit)unit value:(float)value NS_DESIGNATED_INITIALIZER; - Required, float +/** + * Temperature unit + * + * Required, float */ @property (strong, nonatomic) SDLTemperatureUnit unit; /** - Temperature Value in TemperatureUnit specified unit. Range depends on OEM and is not checked by SDL. - - Required, float + * Temperature value in specified unit. Range depends on OEM and is not checked by SDL. + * + * Required, float */ @property (strong, nonatomic) NSNumber *value; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.m index 8d5c5a7..45d1e22 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.m @@ -3,15 +3,23 @@ // #import "SDLTemperature.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLTemperature +- (instancetype)initWithFahrenheitValue:(float)value { + return [self initWithUnit:SDLTemperatureUnitFahrenheit value:value]; +} + +- (instancetype)initWithCelsiusValue:(float)value { + return [self initWithUnit:SDLTemperatureUnitCelsius value:value]; +} + - (instancetype)initWithUnit:(SDLTemperatureUnit)unit value:(float)value { - self = [self init]; + self = [super init]; if (!self) { return nil; } @@ -23,19 +31,21 @@ - (instancetype)initWithUnit:(SDLTemperatureUnit)unit value:(float)value { } - (void)setUnit:(SDLTemperatureUnit)unit { - [store sdl_setObject:unit forName:SDLNameUnit]; + [self.store sdl_setObject:unit forName:SDLRPCParameterNameUnit]; } - (SDLTemperatureUnit)unit { - return [store sdl_objectForName:SDLNameUnit]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameUnit error:&error]; } - (void)setValue:(NSNumber *)value { - [store sdl_setObject:value forName:SDLNameValue]; + [self.store sdl_setObject:value forName:SDLRPCParameterNameValue]; } - (NSNumber *)value { - return [store sdl_objectForName:SDLNameValue]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameValue ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.h index d624203..5f0c615 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.h @@ -15,9 +15,23 @@ NS_ASSUME_NONNULL_BEGIN +/// A color scheme for all display layout templates. @interface SDLTemplateColorScheme : SDLRPCStruct +/// Convenience init +/// +/// @param primaryColor This must always be your primary brand color +/// @param secondaryColor This may be an accent or complimentary color to your primary brand color +/// @param backgroundColor he background color to be used on the template +/// @return An SDLTemplateColorScheme - (instancetype)initWithPrimaryRGBColor:(SDLRGBColor *)primaryColor secondaryRGBColor:(SDLRGBColor *)secondaryColor backgroundRGBColor:(SDLRGBColor *)backgroundColor; + +/// Convenience init +/// +/// @param primaryColor This must always be your primary brand color +/// @param secondaryColor This may be an accent or complimentary color to your primary brand color +/// @param backgroundColor he background color to be used on the template +/// @return An SDLTemplateColorScheme - (instancetype)initWithPrimaryColor:(UIColor *)primaryColor secondaryColor:(UIColor *)secondaryColor backgroundColor:(UIColor *)backgroundColor; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.m index 42f18a7..0c758fb 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.m @@ -9,7 +9,7 @@ #import "SDLTemplateColorScheme.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLRGBColor.h" NS_ASSUME_NONNULL_BEGIN @@ -39,27 +39,27 @@ - (instancetype)initWithPrimaryColor:(UIColor *)primaryColor secondaryColor:(UIC } - (void)setPrimaryColor:(nullable SDLRGBColor *)primaryColor { - [store sdl_setObject:primaryColor forName:SDLNamePrimaryColor]; + [self.store sdl_setObject:primaryColor forName:SDLRPCParameterNamePrimaryColor]; } - (nullable SDLRGBColor *)primaryColor { - return [store sdl_objectForName:SDLNamePrimaryColor ofClass:[SDLRGBColor class]]; + return [self.store sdl_objectForName:SDLRPCParameterNamePrimaryColor ofClass:SDLRGBColor.class error:nil]; } - (void)setSecondaryColor:(nullable SDLRGBColor *)secondaryColor { - [store sdl_setObject:secondaryColor forName:SDLNameSecondaryColor]; + [self.store sdl_setObject:secondaryColor forName:SDLRPCParameterNameSecondaryColor]; } - (nullable SDLRGBColor *)secondaryColor { - return [store sdl_objectForName:SDLNameSecondaryColor ofClass:[SDLRGBColor class]]; + return [self.store sdl_objectForName:SDLRPCParameterNameSecondaryColor ofClass:SDLRGBColor.class error:nil]; } - (void)setBackgroundColor:(nullable SDLRGBColor *)backgroundColor { - [store sdl_setObject:backgroundColor forName:SDLNameBackgroundColor]; + [self.store sdl_setObject:backgroundColor forName:SDLRPCParameterNameBackgroundColor]; } - (nullable SDLRGBColor *)backgroundColor { - return [store sdl_objectForName:SDLNameBackgroundColor ofClass:[SDLRGBColor class]]; + return [self.store sdl_objectForName:SDLRPCParameterNameBackgroundColor ofClass:SDLRGBColor.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.h new file mode 100644 index 0000000..39d0b0d --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.h @@ -0,0 +1,86 @@ +// +// SDLTemplateConfiguration.h +// SmartDeviceLink + +#import "SDLTemplateColorScheme.h" +#import "SDLPredefinedLayout.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + Used to set an alternate template layout to a window. + + @since SDL 6.0 + */ +@interface SDLTemplateConfiguration : SDLRPCStruct + + +/** + Constructor with the required values. + + @param predefinedLayout A template layout an app uses to display information. The broad details of the layout are defined, but the details depend on the IVI system. Used in SetDisplayLayout. + */ +- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout; + +// HAX: We are doing this because `template` is a C++ keyword and won't compile. +#ifndef __cplusplus +/** + Init with the required values. + + @param template Predefined or dynamically created window template. Currently only predefined window template layouts are defined. + */ +- (instancetype)initWithTemplate:(NSString *)template; + + +/** + Convinience constructor with all the parameters. + + @param template Predefined or dynamically created window template. Currently only predefined window template layouts are defined. + @param dayColorScheme The color scheme to use when the head unit is in a light / day situation. If nil, the existing color scheme will be used. + @param nightColorScheme The color scheme to use when the head unit is in a dark / night situation. + */ +- (instancetype)initWithTemplate:(NSString *)template dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme; + +/** + Predefined or dynamically created window template. Currently only predefined window template layouts are defined. + */ +@property (strong, nonatomic) NSString *template; +#endif + +#ifdef __cplusplus +/** + Init with the required values. + + @param templateName Predefined or dynamically created window template. Currently only predefined window template layouts are defined. + */ +- (instancetype)initWithTemplate:(NSString *)templateName; + + +/** + Convinience constructor with all the parameters. + + @param templateName Predefined or dynamically created window template. Currently only predefined window template layouts are defined. + @param dayColorScheme The color scheme to use when the head unit is in a light / day situation. If nil, the existing color scheme will be used. + @param nightColorScheme The color scheme to use when the head unit is in a dark / night situation. + */ +- (instancetype)initWithTemplate:(NSString *)templateName dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme; + +/** + Predefined or dynamically created window template. Currently only predefined window template layouts are defined. + */ +@property (strong, nonatomic) NSString *templateName; +#endif + +/** + The color scheme to use when the head unit is in a light / day situation. + */ +@property (strong, nonatomic, nullable) SDLTemplateColorScheme *dayColorScheme; + +/** + The color scheme to use when the head unit is in a dark / night situation. + */ +@property (strong, nonatomic, nullable) SDLTemplateColorScheme *nightColorScheme; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.m new file mode 100644 index 0000000..9407a0d --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.m @@ -0,0 +1,91 @@ +// +// SDLTemplateConfiguration.m +// SmartDeviceLink + +#import "SDLTemplateConfiguration.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +@implementation SDLTemplateConfiguration + + +- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout { + return [self initWithTemplate:predefinedLayout]; +} + +#ifndef __cplusplus +- (instancetype)initWithTemplate:(NSString *)template { + self = [super init]; + if (!self) { + return nil; + } + self.template = template; + return self; +} + +- (instancetype)initWithTemplate:(NSString *)template dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme { + self = [self initWithTemplate:template]; + if (!self) { + return nil; + } + self.dayColorScheme = dayColorScheme; + self.nightColorScheme = nightColorScheme; + return self; +} + +- (void)setTemplate:(NSString *)template { + [self.store sdl_setObject:template forName:SDLRPCParameterNameTemplate]; +} + +- (NSString *)template { + return [self.store sdl_objectForName:SDLRPCParameterNameTemplate ofClass:NSString.class error:nil]; +} +#endif + +#ifdef _cplusplus +- (instancetype)initWithTemplate:(NSString *)templateName { + self = [super init]; + if (!self) { + return nil; + } + self.templateName = templateName; + return self; +} + +- (instancetype)initWithTemplate:(NSString *)templateName dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme; { + self = [self initWithTemplate:templateName]; + if (!self) { + return nil; + } + self.dayColorScheme = dayColorScheme; + self.nightColorScheme = nightColorScheme; + return self; +} + +- (void)setTemplateName:(NSString *)templateName { + [self.store sdl_setObject:template forName:SDLRPCParameterNameTemplate]; +} + +- (NSString *)templateName { + return [self.store sdl_objectForName:SDLRPCParameterNameTemplate ofClass:NSString.class error:nil]; +} +#endif + +- (void)setDayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme { + [self.store sdl_setObject:dayColorScheme forName:SDLRPCParameterNameDayColorScheme]; +} + +- (nullable SDLTemplateColorScheme *)dayColorScheme { + return [self.store sdl_objectForName:SDLRPCParameterNameDayColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; +} + +- (void)setNightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme { + [self.store sdl_setObject:nightColorScheme forName:SDLRPCParameterNameNightColorScheme]; +} + +- (nullable SDLTemplateColorScheme *)nightColorScheme { + return [self.store sdl_objectForName:SDLRPCParameterNameNightColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.h index a3a9c23..c916e04 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.h @@ -14,6 +14,7 @@ @class SDLArtwork; @class SDLFileManager; @class SDLTextAndGraphicConfiguration; +@class SDLSystemCapabilityManager; @protocol SDLConnectionManagerType; @@ -36,6 +37,7 @@ typedef void(^SDLTextAndGraphicUpdateCompletionHandler)(NSError *__nullable erro @property (copy, nonatomic, nullable) NSString *textField3; @property (copy, nonatomic, nullable) NSString *textField4; @property (copy, nonatomic, nullable) NSString *mediaTrackTextField; +@property (copy, nonatomic, nullable) NSString *title; @property (strong, nonatomic, nullable) SDLArtwork *primaryGraphic; @property (strong, nonatomic, nullable) SDLArtwork *secondaryGraphic; @@ -61,7 +63,10 @@ typedef void(^SDLTextAndGraphicUpdateCompletionHandler)(NSError *__nullable erro @return A new SDLTextAndImageManager */ -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager; +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager; + +/// Starts the manager. This method is used internally. +- (void)start; /** * Stops the manager. This method is used internally. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.m index aaeba71..6324e13 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.m @@ -10,8 +10,6 @@ #import "SDLArtwork.h" #import "SDLConnectionManagerType.h" -#import "SDLDisplayCapabilities.h" -#import "SDLDisplayCapabilities+ShowManagerExtensions.h" #import "SDLError.h" #import "SDLFileManager.h" #import "SDLImage.h" @@ -19,12 +17,17 @@ #import "SDLMetadataTags.h" #import "SDLNotificationConstants.h" #import "SDLOnHMIStatus.h" +#import "SDLPredefinedWindows.h" #import "SDLRegisterAppInterfaceResponse.h" #import "SDLRPCNotificationNotification.h" #import "SDLRPCResponseNotification.h" #import "SDLSetDisplayLayoutResponse.h" #import "SDLShow.h" +#import "SDLSystemCapability.h" +#import "SDLSystemCapabilityManager.h" #import "SDLTextField.h" +#import "SDLWindowCapability.h" +#import "SDLWindowCapability+ScreenManagerExtensions.h" NS_ASSUME_NONNULL_BEGIN @@ -33,6 +36,7 @@ @interface SDLTextAndGraphicManager() // Dependencies @property (weak, nonatomic) id connectionManager; @property (weak, nonatomic) SDLFileManager *fileManager; +@property (weak, nonatomic) SDLSystemCapabilityManager *systemCapabilityManager; /** A show describing the current text and images on the screen (not soft buttons, etc.) @@ -49,7 +53,7 @@ A show describing the current text and images on the screen (not soft buttons, e @property (assign, nonatomic) BOOL hasQueuedUpdate; @property (copy, nonatomic, nullable) SDLTextAndGraphicUpdateCompletionHandler queuedUpdateHandler; -@property (strong, nonatomic, nullable) SDLDisplayCapabilities *displayCapabilities; +@property (strong, nonatomic, nullable) SDLWindowCapability *windowCapability; @property (strong, nonatomic, nullable) SDLHMILevel currentLevel; @property (strong, nonatomic, nullable) SDLArtwork *blankArtwork; @@ -61,12 +65,13 @@ A show describing the current text and images on the screen (not soft buttons, e @implementation SDLTextAndGraphicManager -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(nonnull SDLFileManager *)fileManager { +- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager { self = [super init]; if (!self) { return nil; } _connectionManager = connectionManager; _fileManager = fileManager; + _systemCapabilityManager = systemCapabilityManager; _alignment = SDLTextAlignmentCenter; @@ -76,14 +81,29 @@ - (instancetype)initWithConnectionManager:(id)connecti _waitingOnHMILevelUpdateToUpdate = NO; _isDirty = NO; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_registerResponse:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_displayLayoutResponse:) name:SDLDidReceiveSetDisplayLayoutResponse object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusNotification:) name:SDLDidChangeHMIStatusNotification object:nil]; return self; } +- (void)start { + SDLLogD(@"Starting manager"); + + // Make sure none of the properties were set after the manager was shut down + [self sdl_reset]; + + [self.systemCapabilityManager subscribeToCapabilityType:SDLSystemCapabilityTypeDisplays withObserver:self selector:@selector(sdl_displayCapabilityDidUpdate:)]; +} + - (void)stop { + SDLLogD(@"Stopping manager"); + [self sdl_reset]; + + [self.systemCapabilityManager unsubscribeFromCapabilityType:SDLSystemCapabilityTypeDisplays withObserver:self]; +} + +- (void)sdl_reset { + SDLLogV(@"Resetting properties"); _textField1 = nil; _textField2 = nil; _textField3 = nil; @@ -103,7 +123,7 @@ - (void)stop { _queuedImageUpdate = nil; _hasQueuedUpdate = NO; _queuedUpdateHandler = nil; - _displayCapabilities = nil; + _windowCapability = nil; _currentLevel = SDLHMILevelNone; _blankArtwork = nil; _waitingOnHMILevelUpdateToUpdate = NO; @@ -162,7 +182,7 @@ - (void)sdl_updateWithCompletionHandler:(nullable SDLTextAndGraphicUpdateComplet SDLLogV(@"No images to send, sending text"); // If there are no images to update, just send the text self.inProgressUpdate = [self sdl_extractTextFromShow:fullShow]; - } else if ([self sdl_isArtworkUploadedOrNonExistent:self.primaryGraphic] && [self sdl_isArtworkUploadedOrNonExistent:self.secondaryGraphic]) { + } else if (![self sdl_artworkNeedsUpload:self.primaryGraphic] && ![self sdl_artworkNeedsUpload:self.secondaryGraphic]) { SDLLogV(@"Images already uploaded, sending full update"); // The files to be updated are already uploaded, send the full show immediately self.inProgressUpdate = fullShow; @@ -175,7 +195,7 @@ - (void)sdl_updateWithCompletionHandler:(nullable SDLTextAndGraphicUpdateComplet // Start uploading the images __block SDLShow *thisUpdate = fullShow; - [self sdl_uploadImagesWithCompletionHandler:^(NSError * _Nonnull error) { + [self sdl_uploadImagesWithCompletionHandler:^(NSError *_Nullable error) { __strong typeof(weakSelf) strongSelf = weakSelf; if (error != nil) { @@ -229,15 +249,21 @@ - (void)sdl_updateWithCompletionHandler:(nullable SDLTextAndGraphicUpdateComplet }]; } -- (void)sdl_uploadImagesWithCompletionHandler:(void (^)(NSError *error))handler { +- (void)sdl_uploadImagesWithCompletionHandler:(void (^)(NSError *_Nullable error))handler { NSMutableArray *artworksToUpload = [NSMutableArray array]; - if ([self sdl_shouldUpdatePrimaryImage]) { + if ([self sdl_shouldUpdatePrimaryImage] && !self.primaryGraphic.isStaticIcon) { [artworksToUpload addObject:self.primaryGraphic]; } - if ([self sdl_shouldUpdateSecondaryImage]) { + if ([self sdl_shouldUpdateSecondaryImage] && !self.secondaryGraphic.isStaticIcon) { [artworksToUpload addObject:self.secondaryGraphic]; } + if (artworksToUpload.count == 0 + && (self.primaryGraphic.isStaticIcon || self.secondaryGraphic.isStaticIcon)) { + SDLLogD(@"Upload attempted on static icons, sending them without upload instead"); + handler(nil); + } + [self.fileManager uploadArtworks:artworksToUpload completionHandler:^(NSArray * _Nonnull artworkNames, NSError * _Nullable error) { if (error != nil) { SDLLogW(@"Text and graphic manager artwork failed to upload with error: %@", error.localizedDescription); @@ -257,10 +283,10 @@ - (SDLShow *)sdl_assembleShowImages:(SDLShow *)show { } if ([self sdl_shouldUpdatePrimaryImage]) { - show.graphic = [[SDLImage alloc] initWithName:self.primaryGraphic.name ofType:SDLImageTypeDynamic isTemplate:self.primaryGraphic.isTemplate]; + show.graphic = self.primaryGraphic.imageRPC; } if ([self sdl_shouldUpdateSecondaryImage]) { - show.secondaryGraphic = [[SDLImage alloc] initWithName:self.secondaryGraphic.name ofType:SDLImageTypeDynamic isTemplate:self.secondaryGraphic.isTemplate]; + show.secondaryGraphic = self.secondaryGraphic.imageRPC; } return show; @@ -271,16 +297,22 @@ - (SDLShow *)sdl_assembleShowImages:(SDLShow *)show { - (SDLShow *)sdl_assembleShowText:(SDLShow *)show { [self sdl_setBlankTextFieldsWithShow:show]; - if (self.mediaTrackTextField != nil) { + if (self.mediaTrackTextField != nil && [self sdl_shouldUpdateMediaTextField]) { show.mediaTrack = self.mediaTrackTextField; } else { show.mediaTrack = @""; } + + if (self.title != nil && [self sdl_shouldUpdateTitleField]) { + show.templateTitle = self.title; + } else { + show.templateTitle = @""; + } NSArray *nonNilFields = [self sdl_findNonNilTextFields]; if (nonNilFields.count == 0) { return show; } - NSUInteger numberOfLines = self.displayCapabilities ? self.displayCapabilities.maxNumberOfMainFieldLines : 4; + NSUInteger numberOfLines = self.windowCapability.maxNumberOfMainFieldLines; if (numberOfLines == 1) { show = [self sdl_assembleOneLineShowText:show withShowFields:nonNilFields]; } else if (numberOfLines == 2) { @@ -429,6 +461,7 @@ - (SDLShow *)sdl_setBlankTextFieldsWithShow:(SDLShow *)show { show.mainField3 = @""; show.mainField4 = @""; show.mediaTrack = @""; + show.templateTitle = @""; return show; } @@ -442,6 +475,7 @@ - (SDLShow *)sdl_extractTextFromShow:(SDLShow *)show { newShow.mainField3 = show.mainField3; newShow.mainField4 = show.mainField4; newShow.mediaTrack = show.mediaTrack; + newShow.templateTitle = show.templateTitle; newShow.metadataTags = show.metadataTags; return newShow; @@ -457,8 +491,8 @@ - (SDLShow *)sdl_extractImageFromShow:(SDLShow *)show { - (nullable SDLShow *)sdl_createImageOnlyShowWithPrimaryArtwork:(nullable SDLArtwork *)primaryArtwork secondaryArtwork:(nullable SDLArtwork *)secondaryArtwork { SDLShow *newShow = [[SDLShow alloc] init]; - newShow.graphic = [self sdl_isArtworkUploadedOrNonExistent:primaryArtwork] ? [[SDLImage alloc] initWithName:primaryArtwork.name ofType:SDLImageTypeDynamic isTemplate:primaryArtwork.isTemplate] : nil; - newShow.secondaryGraphic = [self sdl_isArtworkUploadedOrNonExistent:secondaryArtwork] ? [[SDLImage alloc] initWithName:secondaryArtwork.name ofType:SDLImageTypeDynamic isTemplate:secondaryArtwork.isTemplate] : nil; + newShow.graphic = ![self sdl_artworkNeedsUpload:primaryArtwork] ? primaryArtwork.imageRPC : nil; + newShow.secondaryGraphic = ![self sdl_artworkNeedsUpload:secondaryArtwork] ? secondaryArtwork.imageRPC : nil; if (newShow.graphic == nil && newShow.secondaryGraphic == nil) { SDLLogV(@"No graphics to upload"); @@ -475,6 +509,7 @@ - (void)sdl_updateCurrentScreenDataFromShow:(SDLShow *)show { self.currentScreenData.mainField3 = show.mainField3 ?: self.currentScreenData.mainField3; self.currentScreenData.mainField4 = show.mainField4 ?: self.currentScreenData.mainField4; self.currentScreenData.mediaTrack = show.mediaTrack ?: self.currentScreenData.mediaTrack; + self.currentScreenData.templateTitle = show.templateTitle ?: self.currentScreenData.templateTitle; self.currentScreenData.metadataTags = show.metadataTags ?: self.currentScreenData.metadataTags; self.currentScreenData.alignment = show.alignment ?: self.currentScreenData.alignment; self.currentScreenData.graphic = show.graphic ?: self.currentScreenData.graphic; @@ -483,55 +518,57 @@ - (void)sdl_updateCurrentScreenDataFromShow:(SDLShow *)show { #pragma mark - Helpers -/** - * Checks if an artwork needs to be uploaded to Core. - * - * @param artwork The artwork to be uploaded to Core - * @return True if the artwork does not need to be uploaded to Core; false if artwork stills needs to be sent to Core. - */ -- (BOOL)sdl_isArtworkUploadedOrNonExistent:(SDLArtwork *)artwork { - return (!artwork || [self.fileManager hasUploadedFile:artwork]); +- (BOOL)sdl_artworkNeedsUpload:(SDLArtwork *)artwork { + return (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && !artwork.isStaticIcon); } - (BOOL)sdl_shouldUpdatePrimaryImage { - BOOL hasGraphic = self.displayCapabilities ? [self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameGraphic] : YES; + BOOL templateSupportsPrimaryArtwork = [self.windowCapability hasImageFieldOfName:SDLImageFieldNameGraphic]; + BOOL graphicMatchesExisting = [self.currentScreenData.graphic.value isEqualToString:self.primaryGraphic.name]; + BOOL graphicExists = (self.primaryGraphic != nil); - return (hasGraphic - && ![self.currentScreenData.graphic.value isEqualToString:self.primaryGraphic.name] - && self.primaryGraphic != nil); + return (templateSupportsPrimaryArtwork && !graphicMatchesExisting && graphicExists); } - (BOOL)sdl_shouldUpdateSecondaryImage { - BOOL hasGraphic = self.displayCapabilities ? [self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameGraphic] : YES; + BOOL templateSupportsSecondaryArtwork = [self.windowCapability hasImageFieldOfName:SDLImageFieldNameSecondaryGraphic]; + BOOL graphicMatchesExisting = [self.currentScreenData.secondaryGraphic.value isEqualToString:self.secondaryGraphic.name]; + BOOL graphicExists = (self.secondaryGraphic != nil); // Cannot detect if there is a secondary image, so we'll just try to detect if there's a primary image and allow it if there is. - return (hasGraphic - && ![self.currentScreenData.secondaryGraphic.value isEqualToString:self.secondaryGraphic.name] - && self.secondaryGraphic != nil); + return (templateSupportsSecondaryArtwork && !graphicMatchesExisting && graphicExists); +} + +- (BOOL)sdl_shouldUpdateMediaTextField { + return [self.windowCapability hasTextFieldOfName:SDLTextFieldNameMediaTrack]; +} + +- (BOOL)sdl_shouldUpdateTitleField { + return [self.windowCapability hasTextFieldOfName:SDLTextFieldNameTemplateTitle]; } - (NSArray *)sdl_findNonNilTextFields { NSMutableArray *array = [NSMutableArray array]; - self.textField1.length > 0 ? [array addObject:self.textField1] : nil; - self.textField2.length > 0 ? [array addObject:self.textField2] : nil; - self.textField3.length > 0 ? [array addObject:self.textField3] : nil; - self.textField4.length > 0 ? [array addObject:self.textField4] : nil; + (self.textField1.length > 0) ? [array addObject:self.textField1] : nil; + (self.textField2.length > 0) ? [array addObject:self.textField2] : nil; + (self.textField3.length > 0) ? [array addObject:self.textField3] : nil; + (self.textField4.length > 0) ? [array addObject:self.textField4] : nil; return [array copy]; } - (NSArray *)sdl_findNonNilMetadataFields { NSMutableArray *array = [NSMutableArray array]; - self.textField1Type.length > 0 ? [array addObject:self.textField1Type] : nil; - self.textField2Type.length > 0 ? [array addObject:self.textField2Type] : nil; - self.textField3Type.length > 0 ? [array addObject:self.textField3Type] : nil; - self.textField4Type.length > 0 ? [array addObject:self.textField4Type] : nil; + (self.textField1Type.length) > 0 ? [array addObject:self.textField1Type] : nil; + (self.textField2Type.length) > 0 ? [array addObject:self.textField2Type] : nil; + (self.textField3Type.length) > 0 ? [array addObject:self.textField3Type] : nil; + (self.textField4Type.length) > 0 ? [array addObject:self.textField4Type] : nil; return [array copy]; } - (BOOL)sdl_hasData { - BOOL hasTextFields = ([self sdl_findNonNilTextFields].count > 0); + BOOL hasTextFields = ([self sdl_findNonNilTextFields].count > 0) || (self.title.length > 0) || (self.mediaTrackTextField.length > 0); BOOL hasImageFields = (self.primaryGraphic != nil) || (self.secondaryGraphic != nil); return hasTextFields || hasImageFields; @@ -596,6 +633,14 @@ - (void)setMediaTrackTextField:(nullable NSString *)mediaTrackTextField { } } +- (void)setTitle:(nullable NSString *)title { + _title = title; + _isDirty = YES; + if (!self.isBatchingUpdates) { + [self updateWithCompletionHandler:nil]; + } +} + - (void)setPrimaryGraphic:(nullable SDLArtwork *)primaryGraphic { _primaryGraphic = primaryGraphic; _isDirty = YES; @@ -670,40 +715,24 @@ - (nullable SDLArtwork *)blankArtwork { return _blankArtwork; } -#pragma mark - RPC Responses - -- (void)sdl_registerResponse:(SDLRPCResponseNotification *)notification { - SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response; - - if (!response.success.boolValue) { return; } - if (response.displayCapabilities == nil) { - SDLLogE(@"RegisterAppInterface succeeded but didn't send a display capabilities. A lot of things will probably break."); - return; - } - - self.displayCapabilities = response.displayCapabilities; -} - -- (void)sdl_displayLayoutResponse:(SDLRPCResponseNotification *)notification { - SDLSetDisplayLayoutResponse *response = (SDLSetDisplayLayoutResponse *)notification.response; - - if (!response.success.boolValue) { return; } - if (!response.success.boolValue) { return; } - if (response.displayCapabilities == nil) { - SDLLogE(@"SetDisplayLayout succeeded but didn't send a display capabilities. A lot of things will probably break."); - return; - } - - self.displayCapabilities = response.displayCapabilities; +#pragma mark - Subscribed notifications +- (void)sdl_displayCapabilityDidUpdate:(SDLSystemCapability *)systemCapability { + // we won't use the object in the parameter but the convenience method of the system capability manager + self.windowCapability = self.systemCapabilityManager.defaultMainWindowCapability; + // Auto-send an updated show if ([self sdl_hasData]) { - [self sdl_updateWithCompletionHandler:nil]; + [self updateWithCompletionHandler:nil]; } } - (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; + + if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { + return; + } SDLHMILevel oldLevel = self.currentLevel; self.currentLevel = hmiStatus.hmiLevel; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.h new file mode 100644 index 0000000..310b024 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.h @@ -0,0 +1,19 @@ +// +// SDLTextField+ScreenManagerExtensions.h +// SmartDeviceLink +// +// Created by Joel Fischer on 5/20/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLTextField.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLTextField (ScreenManagerExtensions) + ++ (NSArray *)allTextFields; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.m new file mode 100644 index 0000000..746c5ae --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.m @@ -0,0 +1,26 @@ +// +// SDLTextField+ScreenManagerExtensions.m +// SmartDeviceLink +// +// Created by Joel Fischer on 5/20/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "SDLTextField+ScreenManagerExtensions.h" + +@implementation SDLTextField (ScreenManagerExtensions) + ++ (NSArray *)sdl_allTextFieldNames { + return @[SDLTextFieldNameETA, SDLTextFieldNameMenuName, SDLTextFieldNameMenuTitle, SDLTextFieldNameStatusBar, SDLTextFieldNameAlertText1, SDLTextFieldNameAlertText2, SDLTextFieldNameAlertText3, SDLTextFieldNameMainField1, SDLTextFieldNameMainField2, SDLTextFieldNameMainField3, SDLTextFieldNameMainField4, SDLTextFieldNameMediaClock, SDLTextFieldNameMediaTrack, SDLTextFieldNamePhoneNumber, SDLTextFieldNameAddressLines, SDLTextFieldNameLocationName, SDLTextFieldNameSliderFooter, SDLTextFieldNameSliderHeader, SDLTextFieldNameTertiaryText, SDLTextFieldNameSecondaryText, SDLTextFieldNameTemplateTitle, SDLTextFieldNameTotalDistance, SDLTextFieldNameNavigationText1, SDLTextFieldNameNavigationText2, SDLTextFieldNameLocationDescription, SDLTextFieldNameScrollableMessageBody, SDLTextFieldNameInitialInteractionText, SDLTextFieldNameAudioPassThruDisplayText1, SDLTextFieldNameAudioPassThruDisplayText2]; +} + ++ (NSArray *)allTextFields { + NSMutableArray *tempTextFields = [NSMutableArray array]; + for (SDLTextFieldName fieldName in [self sdl_allTextFieldNames]) { + [tempTextFields addObject:[[SDLTextField alloc] initWithName:fieldName characterSet:SDLCharacterSetCID1 width:500 rows:8]]; + } + + return tempTextFields; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.h index aebfb61..d1dcedb 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.h @@ -48,6 +48,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic) NSNumber *rows; +/// Convenience initalizer for the TextField RPC struct +/// @param name The name identifying this text field +/// @param characterSet The character set of this text field +/// @param width The number of characters per row allowed in this text field +/// @param rows The number of rows allowed in this text field +- (instancetype)initWithName:(SDLTextFieldName)name characterSet:(SDLCharacterSet)characterSet width:(NSUInteger)width rows:(NSUInteger)rows; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.m index 7e6293f..80941cc 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLCharacterSet.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLTextFieldName.h" NS_ASSUME_NONNULL_BEGIN @@ -13,35 +13,51 @@ @implementation SDLTextField - (void)setName:(SDLTextFieldName)name { - [store sdl_setObject:name forName:SDLNameName]; + [self.store sdl_setObject:name forName:SDLRPCParameterNameName]; } - (SDLTextFieldName)name { - return [store sdl_objectForName:SDLNameName]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameName error:&error]; } - (void)setCharacterSet:(SDLCharacterSet)characterSet { - [store sdl_setObject:characterSet forName:SDLNameCharacterSet]; + [self.store sdl_setObject:characterSet forName:SDLRPCParameterNameCharacterSet]; } - (SDLCharacterSet)characterSet { - return [store sdl_objectForName:SDLNameCharacterSet]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameCharacterSet error:&error]; } - (void)setWidth:(NSNumber *)width { - [store sdl_setObject:width forName:SDLNameWidth]; + [self.store sdl_setObject:width forName:SDLRPCParameterNameWidth]; } - (NSNumber *)width { - return [store sdl_objectForName:SDLNameWidth]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameWidth ofClass:NSNumber.class error:&error]; } - (void)setRows:(NSNumber *)rows { - [store sdl_setObject:rows forName:SDLNameRows]; + [self.store sdl_setObject:rows forName:SDLRPCParameterNameRows]; } - (NSNumber *)rows { - return [store sdl_objectForName:SDLNameRows]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameRows ofClass:NSNumber.class error:&error]; +} + +- (instancetype)initWithName:(SDLTextFieldName)name characterSet:(SDLCharacterSet)characterSet width:(NSUInteger)width rows:(NSUInteger)rows { + self = [self init]; + if (!self) { return nil; } + + self.name = name; + self.characterSet = characterSet; + self.width = @(width); + self.rows = @(rows); + + return self; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.h index 74c4716..7827e4e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.h @@ -37,6 +37,13 @@ extern SDLTextFieldName const SDLTextFieldNameMainField3; */ extern SDLTextFieldName const SDLTextFieldNameMainField4; +/** + The title line of the persistent display. Applies to SDLShow. + + @since SDL 6.0 + */ +extern SDLTextFieldName const SDLTextFieldNameTemplateTitle; + /** * The status bar on the NGN display. Applies to SDLShow. */ diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.m index 8c597e5..3bb04fd 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.m @@ -8,6 +8,7 @@ SDLTextFieldName const SDLTextFieldNameMainField2 = @"mainField2"; SDLTextFieldName const SDLTextFieldNameMainField3 = @"mainField3"; SDLTextFieldName const SDLTextFieldNameMainField4 = @"mainField4"; +SDLTextFieldName const SDLTextFieldNameTemplateTitle = @"templateTitle"; SDLTextFieldName const SDLTextFieldNameStatusBar = @"statusBar"; SDLTextFieldName const SDLTextFieldNameMediaClock = @"mediaClock"; SDLTextFieldName const SDLTextFieldNameMediaTrack = @"mediaTrack"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.h index cba9efe..dcd75c7 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.h @@ -8,14 +8,40 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLTimer : NSObject +/// A block called when the timer elapses @property (copy, nonatomic, nullable) void (^elapsedBlock)(void); + +/// A block called when the timer is cancelled @property (copy, nonatomic, nullable) void (^canceledBlock)(void); -@property (assign, nonatomic) float duration; -- (instancetype)init; -- (instancetype)initWithDuration:(float)duration; -- (instancetype)initWithDuration:(float)duration repeat:(BOOL)repeat; +/// The time between calling `start` and when the elapsed block will be called +@property (assign, nonatomic) NSTimeInterval duration; + +/// Whether or not the timer is currently running +@property (assign, nonatomic) BOOL timerRunning; + +/// Whether or not the timer will repeat after it completes +@property (assign, nonatomic) BOOL repeat; + +- (instancetype)init NS_UNAVAILABLE; + +/// Initialize a timer with a specified duration on the main run loop without repeating +/// @param duration The duration of the timer. Must not be 0. +- (instancetype)initWithDuration:(NSTimeInterval)duration; + +/// Initialize a timer with a specified duration on the passed run loop and optionally repeating +/// @param duration The duration of the timer +/// @param repeat Whether or not the timer should autorepeat +- (instancetype)initWithDuration:(NSTimeInterval)duration repeat:(BOOL)repeat; + +/// Starts the timer on the main run loop. When the timer has elapsed, the elapsed block will be called. - (void)start; + +/// Starts the timer on the specified run loop. When the timer has elapsed, the elapsed block will be called. +/// @param runLoop The run loop to start the timer on +- (void)startOnRunLoop:(NSRunLoop *)runLoop; + +/// Cancels and invalidates the timer. The canceled block will be called. - (void)cancel; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.m index 2774c08..39479c9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.m @@ -2,6 +2,7 @@ // SDLTimer.m // +#import "SDLLogMacros.h" #import "SDLTimer.h" NS_ASSUME_NONNULL_BEGIN @@ -40,32 +41,26 @@ - (void)timerElapsed { @interface SDLTimer () @property (strong, nonatomic, nullable) NSTimer *timer; -@property (assign, nonatomic) BOOL timerRunning; -@property (assign, nonatomic) BOOL repeat; + @end @implementation SDLTimer -- (instancetype)init { - if (self = [super init]) { - _duration = 0; - _timerRunning = NO; - } - return self; -} - -- (instancetype)initWithDuration:(float)duration { +- (instancetype)initWithDuration:(NSTimeInterval)duration { return [self initWithDuration:duration repeat:NO]; } -- (instancetype)initWithDuration:(float)duration repeat:(BOOL)repeat { +- (instancetype)initWithDuration:(NSTimeInterval)duration repeat:(BOOL)repeat { self = [super init]; - if (self) { - _duration = duration; - _repeat = repeat; - _timerRunning = NO; - } + if (!self) { return nil; } + + NSAssert(duration > 0, @"Cannot create a timer with a 0 duration"); + + _duration = duration; + _repeat = repeat; + _timerRunning = NO; + return self; } @@ -74,12 +69,16 @@ - (void)dealloc { } - (void)start { + [self startOnRunLoop:[NSRunLoop mainRunLoop]]; +} + +- (void)startOnRunLoop:(NSRunLoop *)runLoop { if (self.duration > 0) { [self stopAndDestroyTimer]; - + SDLTimerTarget *timerTarget = [[SDLTimerTarget alloc] initWithDelegate:self]; - self.timer = [NSTimer timerWithTimeInterval:_duration target:timerTarget selector:@selector(timerElapsed) userInfo:nil repeats:_repeat]; - [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; + self.timer = [NSTimer timerWithTimeInterval:self.duration target:timerTarget selector:@selector(timerElapsed) userInfo:nil repeats:_repeat]; + [runLoop addTimer:self.timer forMode:NSRunLoopCommonModes]; self.timerRunning = YES; } } diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTireStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTireStatus.m index aad17cd..aa1bac5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTireStatus.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTireStatus.m @@ -4,7 +4,7 @@ #import "SDLTireStatus.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLSingleTireStatus.h" NS_ASSUME_NONNULL_BEGIN @@ -12,59 +12,66 @@ @implementation SDLTireStatus - (void)setPressureTelltale:(SDLWarningLightStatus)pressureTelltale { - [store sdl_setObject:pressureTelltale forName:SDLNamePressureTelltale]; + [self.store sdl_setObject:pressureTelltale forName:SDLRPCParameterNamePressureTelltale]; } - (SDLWarningLightStatus)pressureTelltale { - return [store sdl_objectForName:SDLNamePressureTelltale]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNamePressureTelltale error:&error]; } - (void)setLeftFront:(SDLSingleTireStatus *)leftFront { - [store sdl_setObject:leftFront forName:SDLNameLeftFront]; + [self.store sdl_setObject:leftFront forName:SDLRPCParameterNameLeftFront]; } - (SDLSingleTireStatus *)leftFront { - return [store sdl_objectForName:SDLNameLeftFront ofClass:SDLSingleTireStatus.class]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLeftFront ofClass:SDLSingleTireStatus.class error:&error]; } - (void)setRightFront:(SDLSingleTireStatus *)rightFront { - [store sdl_setObject:rightFront forName:SDLNameRightFront]; + [self.store sdl_setObject:rightFront forName:SDLRPCParameterNameRightFront]; } - (SDLSingleTireStatus *)rightFront { - return [store sdl_objectForName:SDLNameRightFront ofClass:SDLSingleTireStatus.class]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameRightFront ofClass:SDLSingleTireStatus.class error:&error]; } - (void)setLeftRear:(SDLSingleTireStatus *)leftRear { - [store sdl_setObject:leftRear forName:SDLNameLeftRear]; + [self.store sdl_setObject:leftRear forName:SDLRPCParameterNameLeftRear]; } - (SDLSingleTireStatus *)leftRear { - return [store sdl_objectForName:SDLNameLeftRear ofClass:SDLSingleTireStatus.class]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLeftRear ofClass:SDLSingleTireStatus.class error:&error]; } - (void)setRightRear:(SDLSingleTireStatus *)rightRear { - [store sdl_setObject:rightRear forName:SDLNameRightRear]; + [self.store sdl_setObject:rightRear forName:SDLRPCParameterNameRightRear]; } - (SDLSingleTireStatus *)rightRear { - return [store sdl_objectForName:SDLNameRightRear ofClass:SDLSingleTireStatus.class]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameRightRear ofClass:SDLSingleTireStatus.class error:&error]; } - (void)setInnerLeftRear:(SDLSingleTireStatus *)innerLeftRear { - [store sdl_setObject:innerLeftRear forName:SDLNameInnerLeftRear]; + [self.store sdl_setObject:innerLeftRear forName:SDLRPCParameterNameInnerLeftRear]; } - (SDLSingleTireStatus *)innerLeftRear { - return [store sdl_objectForName:SDLNameInnerLeftRear ofClass:SDLSingleTireStatus.class]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameInnerLeftRear ofClass:SDLSingleTireStatus.class error:&error]; } - (void)setInnerRightRear:(SDLSingleTireStatus *)innerRightRear { - [store sdl_setObject:innerRightRear forName:SDLNameInnerRightRear]; + [self.store sdl_setObject:innerRightRear forName:SDLRPCParameterNameInnerRightRear]; } - (SDLSingleTireStatus *)innerRightRear { - return [store sdl_objectForName:SDLNameInnerRightRear ofClass:SDLSingleTireStatus.class]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameInnerRightRear ofClass:SDLSingleTireStatus.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.h index cead4ad..e001257 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.h @@ -10,13 +10,18 @@ @class SDLTouchEvent; +/// Identifies finger touch typedef enum { + /// Touch was first finger SDLTouchIdentifierFirstFinger = 0, + + /// Touch was second finger SDLTouchIdentifierSecondFinger = 1 } SDLTouchIdentifier; NS_ASSUME_NONNULL_BEGIN +/// Describes a touch location @interface SDLTouch : NSObject /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.m index e400747..5837780 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.m @@ -32,13 +32,12 @@ - (instancetype)initWithTouchEvent:(SDLTouchEvent *)touchEvent { self = [self init]; if (self) { _identifier = touchEvent.touchEventId.integerValue; - - id firstTimeStamp = touchEvent.timeStamp.firstObject; + NSArray *> *timestamp = touchEvent.timeStamp; // In the event we receive a null timestamp, we will supply a device timestamp. - if ([firstTimeStamp isKindOfClass:[NSNull class]] && [firstTimeStamp isEqual:[NSNull null]]) { + if ((timestamp == nil) || (timestamp.count == 0)) { _timeStamp = (NSUInteger)([[NSDate date] timeIntervalSince1970] * 1000); } else { - NSNumber *timeStampNumber = (NSNumber *)firstTimeStamp; + NSNumber *timeStampNumber = (NSNumber *)timestamp[0]; _timeStamp = timeStampNumber.unsignedIntegerValue; } @@ -58,6 +57,10 @@ - (BOOL)isSecondFinger { return self.identifier == SDLTouchIdentifierSecondFinger; } +- (NSString *)description { + return [NSString stringWithFormat:@"SDLTouch: ID: %ld, Location: %@, Timestamp: %lu, firstFinger? %@, secondFinger? %@", (long)_identifier, NSStringFromCGPoint(_location), (unsigned long)_timeStamp, (self.isFirstFinger ? @"YES" : @"NO"), (self.isSecondFinger ? @"YES" : @"NO")]; +} + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchCoord.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchCoord.m index bba5b59..e41a643 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchCoord.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchCoord.m @@ -5,26 +5,28 @@ #import "SDLTouchCoord.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLTouchCoord - (void)setX:(NSNumber *)x { - [store sdl_setObject:x forName:SDLNameX]; + [self.store sdl_setObject:x forName:SDLRPCParameterNameX]; } - (NSNumber *)x { - return [store sdl_objectForName:SDLNameX]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameX ofClass:NSNumber.class error:&error]; } - (void)setY:(NSNumber *)y { - [store sdl_setObject:y forName:SDLNameY]; + [self.store sdl_setObject:y forName:SDLRPCParameterNameY]; } - (NSNumber *)y { - return [store sdl_objectForName:SDLNameY]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameY ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.h index 4d2671c..b11a9a2 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.h @@ -35,7 +35,7 @@ NS_ASSUME_NONNULL_BEGIN Required, array size 1-1000, contains integer value 0-2000000000 */ -@property (strong, nonatomic) NSArray *> *timeStamp; +@property (strong, nonatomic) NSArray *timeStamp; /** The touch's coordinate diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.m index 7ff82b3..2fbfa90 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.m @@ -5,7 +5,7 @@ #import "SDLTouchEvent.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLTouchCoord.h" NS_ASSUME_NONNULL_BEGIN @@ -13,27 +13,30 @@ @implementation SDLTouchEvent - (void)setTouchEventId:(NSNumber *)touchEventId { - [store sdl_setObject:touchEventId forName:SDLNameId]; + [self.store sdl_setObject:touchEventId forName:SDLRPCParameterNameId]; } - (NSNumber *)touchEventId { - return [store sdl_objectForName:SDLNameId]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameId ofClass:NSNumber.class error:&error]; } -- (void)setTimeStamp:(NSArray *> *)timeStamp { - [store sdl_setObject:timeStamp forName:SDLNameTimestamp]; +- (void)setTimeStamp:(NSArray *)timeStamp { + [self.store sdl_setObject:timeStamp forName:SDLRPCParameterNameTS]; } -- (NSArray *> *)timeStamp { - return [store sdl_objectForName:SDLNameTimestamp]; +- (NSArray *)timeStamp { + NSError *error = nil; + return [self.store sdl_objectsForName:SDLRPCParameterNameTS ofClass:NSNumber.class error:&error]; } - (void)setCoord:(NSArray *)coord { - [store sdl_setObject:coord forName:SDLNameCoordinate]; + [self.store sdl_setObject:coord forName:SDLRPCParameterNameCoordinate]; } - (NSArray *)coord { - return [store sdl_objectsForName:SDLNameCoordinate ofClass:SDLTouchCoord.class]; + NSError *error = nil; + return [self.store sdl_objectsForName:SDLRPCParameterNameCoordinate ofClass:SDLTouchCoord.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEventCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEventCapabilities.m index cf019dc..5a69566 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEventCapabilities.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEventCapabilities.m @@ -5,34 +5,37 @@ #import "SDLTouchEventCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLTouchEventCapabilities - (void)setPressAvailable:(NSNumber *)pressAvailable { - [store sdl_setObject:pressAvailable forName:SDLNamePressAvailable]; + [self.store sdl_setObject:pressAvailable forName:SDLRPCParameterNamePressAvailable]; } - (NSNumber *)pressAvailable { - return [store sdl_objectForName:SDLNamePressAvailable]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNamePressAvailable ofClass:NSNumber.class error:&error]; } - (void)setMultiTouchAvailable:(NSNumber *)multiTouchAvailable { - [store sdl_setObject:multiTouchAvailable forName:SDLNameMultiTouchAvailable]; + [self.store sdl_setObject:multiTouchAvailable forName:SDLRPCParameterNameMultiTouchAvailable]; } - (NSNumber *)multiTouchAvailable { - return [store sdl_objectForName:SDLNameMultiTouchAvailable]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMultiTouchAvailable ofClass:NSNumber.class error:&error]; } - (void)setDoublePressAvailable:(NSNumber *)doublePressAvailable { - [store sdl_setObject:doublePressAvailable forName:SDLNameDoublePressAvailable]; + [self.store sdl_setObject:doublePressAvailable forName:SDLRPCParameterNameDoublePressAvailable]; } - (NSNumber *)doublePressAvailable { - return [store sdl_objectForName:SDLNameDoublePressAvailable]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameDoublePressAvailable ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.h index 185aae1..c762d68 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.h @@ -14,12 +14,17 @@ @protocol SDLTouchManagerDelegate; @class SDLTouch; +@class SDLStreamingVideoScaleManager; NS_ASSUME_NONNULL_BEGIN +/// Handler for touch events +/// +/// @param touch Describes a touch location +/// @param type The type of touch typedef void(^SDLTouchEventHandler)(SDLTouch *touch, SDLTouchType type); - +/// Touch Manager responsible for processing touch event notifications. @interface SDLTouchManager : NSObject /** @@ -28,39 +33,35 @@ typedef void(^SDLTouchEventHandler)(SDLTouch *touch, SDLTouchType type); @property (nonatomic, weak, nullable) id touchEventDelegate; /** - * @abstract - * Returns all OnTouchEvent notifications as SDLTouch and SDLTouchType objects. + Returns all OnTouchEvent notifications as SDLTouch and SDLTouchType objects. */ @property (copy, nonatomic, nullable) SDLTouchEventHandler touchEventHandler; /** Distance between two taps on the screen, in the head unit's coordinate system, used for registering double-tap callbacks. - @note Defaults to 50 px. + Defaults to 50 px. */ @property (nonatomic, assign) CGFloat tapDistanceThreshold; /** Minimum distance for a pan gesture in the head unit's coordinate system, used for registering pan callbacks. - @note Defaults to 8 px. + Defaults to 8 px. */ @property (nonatomic, assign) CGFloat panDistanceThreshold; /** - * @abstract - * Time (in seconds) between tap events to register a double-tap callback. - * @remark - * Default is 0.4 seconds. + Time (in seconds) between tap events to register a double-tap callback. This must be greater than 0.0. + + Default is 0.4 seconds. */ @property (nonatomic, assign) CGFloat tapTimeThreshold; /** - * @abstract - * Time (in seconds) between movement events to register panning or pinching - * callbacks. - * @remark - * Default is 0.05 seconds. + Time (in seconds) between movement events to register panning or pinching callbacks. + + Default is 0.05 seconds. */ @property (nonatomic, assign) CGFloat movementTimeThreshold __deprecated_msg("This is now unused, the movement time threshold is now synced to the framerate automatically"); @@ -70,22 +71,20 @@ typedef void(^SDLTouchEventHandler)(SDLTouch *touch, SDLTouchType type); @property (assign, nonatomic) BOOL enableSyncedPanning; /** - * @abstract - * Boolean denoting whether or not the touch manager should deliver touch event - * callbacks. - * @remark - * Default is true. + Boolean denoting whether or not the touch manager should deliver touch event callbacks. + + Default is true. */ @property (nonatomic, assign, getter=isTouchEnabled) BOOL touchEnabled; /** - * @abstract - * Cancels pending touch event timers that may be in progress. - * @remark - * Currently only impacts the timer used to register single taps. + Cancels pending touch event timers that may be in progress. + + Currently only impacts the timer used to register single taps. */ - (void)cancelPendingTouches; +/// Initializer unavailable - (instancetype)init NS_UNAVAILABLE; /** @@ -94,7 +93,16 @@ typedef void(^SDLTouchEventHandler)(SDLTouch *touch, SDLTouchType type); @param hitTester The hit tester to be used to correlate a point with a view @return The initialized touch manager */ -- (instancetype)initWithHitTester:(nullable id)hitTester; +- (instancetype)initWithHitTester:(nullable id)hitTester __deprecated_msg("Use initWithHitTester:hitTester videoScaleManager: instead"); + +/** + Initialize a touch manager with a hit tester and a video scale manager. + + @param hitTester The hit tester to be used to correlate a point with a view + @param videoScaleManager The scale manager that scales from the display screen coordinate system to the app's viewport coordinate system + @return The initialized touch manager + */ +- (instancetype)initWithHitTester:(nullable id)hitTester videoScaleManager:(SDLStreamingVideoScaleManager *)videoScaleManager; /** Called by SDLStreamingMediaManager in sync with the streaming framerate. This helps to moderate panning gestures by allowing the UI to be modified in time with the framerate. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.m index 518877e..242f4e4 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.m @@ -9,21 +9,20 @@ #import "SDLTouchManager.h" #import "CGPoint_Util.h" -#import "dispatch_timer.h" - +#import "SDLGlobals.h" #import "SDLFocusableItemHitTester.h" #import "SDLLogMacros.h" #import "SDLNotificationConstants.h" #import "SDLOnTouchEvent.h" #import "SDLPinchGesture.h" -#import "SDLProxyListener.h" #import "SDLRPCNotificationNotification.h" +#import "SDLStreamingVideoScaleManager.h" +#import "SDLTimer.h" #import "SDLTouch.h" #import "SDLTouchCoord.h" #import "SDLTouchEvent.h" #import "SDLTouchManagerDelegate.h" - NS_ASSUME_NONNULL_BEGIN typedef NS_ENUM(NSUInteger, SDLPerformingTouchType) { @@ -75,7 +74,7 @@ @interface SDLTouchManager () * @abstract * Timer used for distinguishing between single & double taps. */ -@property (nonatomic, strong, nullable) dispatch_source_t singleTapTimer; +@property (nonatomic, strong, nullable) SDLTimer *singleTapTimer; /*! * @abstract @@ -98,17 +97,27 @@ @interface SDLTouchManager () */ @property (nonatomic) CGPoint lastNotifiedTouchLocation; +/** + The scale manager that scales from the display screen coordinate system to the app's viewport coordinate system +*/ +@property (strong, nonatomic) SDLStreamingVideoScaleManager *videoScaleManager; + @end @implementation SDLTouchManager - (instancetype)initWithHitTester:(nullable id)hitTester { + return [self initWithHitTester:hitTester videoScaleManager:[[SDLStreamingVideoScaleManager alloc] init]]; +} + +- (instancetype)initWithHitTester:(nullable id)hitTester videoScaleManager:(SDLStreamingVideoScaleManager *)videoScaleManager { self = [super init]; if (!self) { return nil; } _hitTester = hitTester; + _videoScaleManager = videoScaleManager; _movementTimeThreshold = 0.05f; _tapTimeThreshold = 0.4f; _tapDistanceThreshold = 50.0f; @@ -131,39 +140,43 @@ - (void)syncFrame { return; } - dispatch_async(dispatch_get_main_queue(), ^{ - if (self.performingTouchType == SDLPerformingTouchTypePanningTouch) { - CGPoint storedTouchLocation = self.lastStoredTouchLocation; - CGPoint notifiedTouchLocation = self.lastNotifiedTouchLocation; + if (self.performingTouchType == SDLPerformingTouchTypePanningTouch) { + CGPoint storedTouchLocation = self.lastStoredTouchLocation; + CGPoint notifiedTouchLocation = self.lastNotifiedTouchLocation; - if (CGPointEqualToPoint(storedTouchLocation, CGPointZero) || - CGPointEqualToPoint(notifiedTouchLocation, CGPointZero) || - CGPointEqualToPoint(storedTouchLocation, notifiedTouchLocation)) { - return; - } + if (CGPointEqualToPoint(storedTouchLocation, CGPointZero) || + CGPointEqualToPoint(notifiedTouchLocation, CGPointZero) || + CGPointEqualToPoint(storedTouchLocation, notifiedTouchLocation)) { + return; + } - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceivePanningFromPoint:toPoint:)]) { + if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceivePanningFromPoint:toPoint:)]) { + dispatch_async(dispatch_get_main_queue(), ^{ [self.touchEventDelegate touchManager:self didReceivePanningFromPoint:notifiedTouchLocation toPoint:storedTouchLocation]; self.lastNotifiedTouchLocation = storedTouchLocation; - } - } else if (self.performingTouchType == SDLPerformingTouchTypeMultiTouch) { - if (self.previousPinchDistance == self.currentPinchGesture.distance) { - return; - } + }); + } + } else if (self.performingTouchType == SDLPerformingTouchTypeMultiTouch) { + if (self.previousPinchDistance == self.currentPinchGesture.distance) { + return; + } - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceivePinchAtCenterPoint:withScale:)]) { - CGFloat scale = self.currentPinchGesture.distance / self.previousPinchDistance; + if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceivePinchAtCenterPoint:withScale:)]) { + + CGFloat scale = self.currentPinchGesture.distance / self.previousPinchDistance; + CGPoint center = self.currentPinchGesture.center; + dispatch_async(dispatch_get_main_queue(), ^{ [self.touchEventDelegate touchManager:self - didReceivePinchAtCenterPoint:self.currentPinchGesture.center + didReceivePinchAtCenterPoint:center withScale:scale]; - } - - self.previousPinchDistance = self.currentPinchGesture.distance; + }); } - }); + + self.previousPinchDistance = self.currentPinchGesture.distance; + } } #pragma mark - SDLDidReceiveTouchEventNotification @@ -180,31 +193,32 @@ - (void)sdl_onTouchEvent:(SDLRPCNotificationNotification *)notification { return; } - SDLOnTouchEvent* onTouchEvent = (SDLOnTouchEvent*)notification.notification; + SDLOnTouchEvent *onTouchEvent = (SDLOnTouchEvent *)notification.notification; + onTouchEvent = [self.videoScaleManager scaleTouchEventCoordinates:onTouchEvent]; SDLTouchType touchType = onTouchEvent.type; [onTouchEvent.event enumerateObjectsUsingBlock:^(SDLTouchEvent *touchEvent, NSUInteger idx, BOOL *stop) { SDLTouch *touch = [[SDLTouch alloc] initWithTouchEvent:touchEvent]; - if (self.touchEventHandler) { - self.touchEventHandler(touch, touchType); + if (self.touchEventHandler != NULL) { + dispatch_async(dispatch_get_main_queue(), ^{ + self.touchEventHandler(touch, touchType); + }); } if (!self.touchEventDelegate || (touch.identifier > MaximumNumberOfTouches)) { return; } - dispatch_async(dispatch_get_main_queue(), ^{ - if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeBegin]) { - [self sdl_handleTouchBegan:touch]; - } else if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeMove]) { - [self sdl_handleTouchMoved:touch]; - } else if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeEnd]) { - [self sdl_handleTouchEnded:touch]; - } else if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeCancel]) { - [self sdl_handleTouchCanceled:touch]; - } - }); + if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeBegin]) { + [self sdl_handleTouchBegan:touch]; + } else if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeMove]) { + [self sdl_handleTouchMoved:touch]; + } else if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeEnd]) { + [self sdl_handleTouchEnded:touch]; + } else if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeCancel]) { + [self sdl_handleTouchCanceled:touch]; + } }]; } @@ -227,8 +241,11 @@ - (void)sdl_handleTouchBegan:(SDLTouch *)touch { self.currentPinchGesture = [[SDLPinchGesture alloc] initWithFirstTouch:self.previousTouch secondTouch:touch]; self.previousPinchDistance = self.currentPinchGesture.distance; if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:pinchDidStartInView:atCenterPoint:)]) { - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:self.currentPinchGesture.center] : nil; - [self.touchEventDelegate touchManager:self pinchDidStartInView:hitView atCenterPoint:self.currentPinchGesture.center]; + CGPoint center = self.currentPinchGesture.center; + dispatch_async(dispatch_get_main_queue(), ^{ + UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:center] : nil; + [self.touchEventDelegate touchManager:self pinchDidStartInView:hitView atCenterPoint:center]; + }); } } break; } @@ -247,7 +264,7 @@ - (void)sdl_handleTouchMoved:(SDLTouch *)touch { return; // no-op } #pragma clang diagnostic pop - + CGFloat xDelta = fabs(touch.location.x - self.firstTouch.location.x); CGFloat yDelta = fabs(touch.location.y - self.firstTouch.location.y); if (xDelta <= self.panDistanceThreshold && yDelta <= self.panDistanceThreshold) { @@ -275,8 +292,10 @@ - (void)sdl_handleTouchMoved:(SDLTouch *)touch { _performingTouchType = SDLPerformingTouchTypePanningTouch; if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:panningDidStartInView:atPoint:)]) { + dispatch_async(dispatch_get_main_queue(), ^{ UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:touch.location] : nil; [self.touchEventDelegate touchManager:self panningDidStartInView:hitView atPoint:touch.location]; + }); } } break; case SDLPerformingTouchTypePanningTouch: { @@ -302,9 +321,11 @@ - (void)sdl_handleTouchEnded:(SDLTouch *)touch { [self sdl_setMultiTouchFingerTouchForTouch:touch]; if (self.currentPinchGesture.isValid) { if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:pinchDidEndInView:atCenterPoint:)]) { + dispatch_async(dispatch_get_main_queue(), ^{ UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:self.currentPinchGesture.center] : nil; [self.touchEventDelegate touchManager:self pinchDidEndInView:hitView atCenterPoint:self.currentPinchGesture.center]; self.currentPinchGesture = nil; + }); } else { self.currentPinchGesture = nil; } @@ -312,8 +333,10 @@ - (void)sdl_handleTouchEnded:(SDLTouch *)touch { } break; case SDLPerformingTouchTypePanningTouch: { if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:panningDidEndInView:atPoint:)]) { + dispatch_async(dispatch_get_main_queue(), ^{ UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:touch.location] : nil; [self.touchEventDelegate touchManager:self panningDidEndInView:hitView atPoint:touch.location]; + }); } } break; case SDLPerformingTouchTypeSingleTouch: { @@ -333,8 +356,10 @@ - (void)sdl_handleTouchEnded:(SDLTouch *)touch { CGPoint centerPoint = CGPointCenterOfPoints(touch.location, self.singleTapTouch.location); if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceiveDoubleTapForView:atPoint:)]) { + dispatch_async(dispatch_get_main_queue(), ^{ UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:centerPoint] : nil; [self.touchEventDelegate touchManager:self didReceiveDoubleTapForView:hitView atPoint:centerPoint]; + }); } } @@ -368,16 +393,21 @@ - (void)sdl_handleTouchCanceled:(SDLTouch *)touch { [self sdl_setMultiTouchFingerTouchForTouch:touch]; if (self.currentPinchGesture.isValid) { if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:pinchCanceledAtCenterPoint:)]) { - [self.touchEventDelegate touchManager:self - pinchCanceledAtCenterPoint:self.currentPinchGesture.center]; + CGPoint center = self.currentPinchGesture.center; + dispatch_async(dispatch_get_main_queue(), ^{ + [self.touchEventDelegate touchManager:self + pinchCanceledAtCenterPoint:center]; + }); } self.currentPinchGesture = nil; } } break; case SDLPerformingTouchTypePanningTouch: { if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:panningCanceledAtPoint:)]) { - [self.touchEventDelegate touchManager:self - panningCanceledAtPoint:touch.location]; + dispatch_async(dispatch_get_main_queue(), ^{ + [self.touchEventDelegate touchManager:self + panningCanceledAtPoint:touch.location]; + }); } } break; case SDLPerformingTouchTypeSingleTouch: // fallthrough @@ -413,28 +443,67 @@ - (void)sdl_setMultiTouchFingerTouchForTouch:(SDLTouch *)touch { * @param point Screen coordinates of the tap gesture */ - (void)sdl_initializeSingleTapTimerAtPoint:(CGPoint)point { + if (self.singleTapTimer != nil) { + [self sdl_cancelSingleTapTimer]; + } + __weak typeof(self) weakSelf = self; - self.singleTapTimer = dispatch_create_timer(self.tapTimeThreshold, NO, ^{ - // If timer was not canceled by a second tap then only one tap detected - typeof(weakSelf) strongSelf = weakSelf; - strongSelf.singleTapTouch = nil; - [strongSelf sdl_cancelSingleTapTimer]; - if ([strongSelf.touchEventDelegate respondsToSelector:@selector(touchManager:didReceiveSingleTapForView:atPoint:)]) { - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:point] : nil; - [strongSelf.touchEventDelegate touchManager:strongSelf didReceiveSingleTapForView:hitView atPoint:point]; - } - }); + self.singleTapTimer = [[SDLTimer alloc] initWithDuration:self.tapTimeThreshold]; + self.singleTapTimer.elapsedBlock = ^{ + [weakSelf sdl_singleTapTimerCallbackWithPoint:point]; + }; + [self.singleTapTimer start]; +} + +/** + The method that will be called when the timer fires that was started in `sdl_initializeSingleTapTimerAtPoint:`. + + This is called on the main thread based on `sdl_initializeSingleTapTimerAtPoint:` + + @param point The point where the tap occurred + */ +- (void)sdl_singleTapTimerCallbackWithPoint:(CGPoint)point { + self.singleTapTouch = nil; + [self sdl_cancelSingleTapTimer]; + if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceiveSingleTapForView:atPoint:)]) { + dispatch_async(dispatch_get_main_queue(), ^{ + [self sdl_getSingleTapHitView:point hitViewHandler:^(UIView * _Nullable selectedView) { + [self.touchEventDelegate touchManager:self didReceiveSingleTapForView:selectedView atPoint:point]; + }]; + }); + } +} + +/** + * HAX to preserve the thread on which the delegate is notified for single taps; returning on the main thread would be a breaking change. All other touch gestures currently notify the delegate on the main thread. The single tap timer runs on a background thread so when a single tap is detected the hit test needs to be done on the main thread and then the result is returned on a background thread. + * + * Checks if a single tap is inside a view. As the single tap timer is run on a background thread, the check is done on a main thread and then the result is returned on a background thread. + * + * @param point Screen coordinates of the tap gesture + * @param hitViewHandler A handler that returns the view the point is inside of; nil if the point does not lie inside of a view + */ +- (void)sdl_getSingleTapHitView:(CGPoint)point hitViewHandler:(nullable void (^)(UIView * __nullable hitView))hitViewHandler { + if (!self.hitTester) { + if (!hitViewHandler) { return; } + return hitViewHandler(nil); + } + + UIView *hitView = [self.hitTester viewForPoint:point]; + if (!hitViewHandler) { return; } + + return hitViewHandler(hitView); } /** * Cancels a tap gesture timer */ - (void)sdl_cancelSingleTapTimer { - if (self.singleTapTimer == NULL) { + if (self.singleTapTimer == nil) { return; } - dispatch_stop_timer(self.singleTapTimer); - self.singleTapTimer = NULL; + + [self.singleTapTimer cancel]; + self.singleTapTimer = nil; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManagerDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManagerDelegate.h index 29f53bc..1e3bc57 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManagerDelegate.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManagerDelegate.h @@ -12,6 +12,7 @@ NS_ASSUME_NONNULL_BEGIN +/// The delegate to be notified of processed touches such as pinches, pans, and taps @protocol SDLTouchManagerDelegate @optional diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTransportType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTransportType.h index 5d51680..8cfb4ec 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTransportType.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTransportType.h @@ -11,7 +11,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nullable, weak, nonatomic) id delegate; - (void)connect; -- (void)disconnect; +- (void)disconnectWithCompletionHandler:(void (^)(void))disconnectCompletionHandler; - (void)sendData:(NSData *)dataToSend; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.h index f0cd7dc..b86d646 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.h @@ -12,6 +12,11 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLTurn : SDLRPCStruct +/// Convenience init to UpdateTurnList for navigation +/// +/// @param navigationText Individual turn text. Must provide at least text or icon for a given turn +/// @param icon Individual turn icon. Must provide at least text or icon for a given turn +/// @return An SDLTurn object - (instancetype)initWithNavigationText:(nullable NSString *)navigationText turnIcon:(nullable SDLImage *)icon; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.m index 3351427..ec4ced9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -24,19 +24,19 @@ - (instancetype)initWithNavigationText:(nullable NSString *)navigationText turnI } - (void)setNavigationText:(nullable NSString *)navigationText { - [store sdl_setObject:navigationText forName:SDLNameNavigationText]; + [self.store sdl_setObject:navigationText forName:SDLRPCParameterNameNavigationText]; } - (nullable NSString *)navigationText { - return [store sdl_objectForName:SDLNameNavigationText]; + return [self.store sdl_objectForName:SDLRPCParameterNameNavigationText ofClass:NSString.class error:nil]; } - (void)setTurnIcon:(nullable SDLImage *)turnIcon { - [store sdl_setObject:turnIcon forName:SDLNameTurnIcon]; + [self.store sdl_setObject:turnIcon forName:SDLRPCParameterNameTurnIcon]; } - (nullable SDLImage *)turnIcon { - return [store sdl_objectForName:SDLNameTurnIcon ofClass:SDLImage.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameTurnIcon ofClass:SDLImage.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurnSignal.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurnSignal.h index b8d50c6..daca0b0 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurnSignal.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurnSignal.h @@ -8,27 +8,27 @@ #import "SDLEnum.h" -/* +/** * Enumeration that describes the status of the turn light indicator. */ typedef SDLEnum SDLTurnSignal SDL_SWIFT_ENUM; -/* +/** * Turn signal is OFF */ extern SDLTurnSignal const SDLTurnSignalOff; -/* +/** * Left turn signal is on */ extern SDLTurnSignal const SDLTurnSignalLeft; -/* +/** * Right turn signal is on */ extern SDLTurnSignal const SDLTurnSignalRight; -/* +/** * Both signals (left and right) are on */ extern SDLTurnSignal const SDLTurnSignalBoth; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.h new file mode 100644 index 0000000..56e1f12 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.h @@ -0,0 +1,34 @@ +// +// SDLUnpublishAppService.h +// SmartDeviceLink +// +// Created by Bretty White on 7/15/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Unpublish an existing service published by this application. + */ +@interface SDLUnpublishAppService : SDLRPCRequest + +/** + * Create an instance of UnpublishAppService with the serviceID that corresponds with the service to be unpublished + * + * @param serviceID The ID of the service to be unpublished. + */ +- (instancetype)initWithServiceID:(NSString*)serviceID; + +/** + * The ID of the service to be unpublished. + * + * Required, String + */ +@property (strong, nonatomic) NSString *serviceID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.m new file mode 100644 index 0000000..3da7285 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.m @@ -0,0 +1,49 @@ +// +// SDLUnpublishAppService.m +// SmartDeviceLink +// +// Created by Bretty White on 7/15/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "NSMutableDictionary+Store.h" +#import "SDLUnpublishAppService.h" +#import "SDLRPCFunctionNames.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLUnpublishAppService + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameUnpublishAppService]) { + } + return self; +} +#pragma clang diagnostic pop + +- (instancetype)initWithServiceID:(NSString *)serviceID { + self = [self init]; + if (!self) { + return nil; + } + + self.serviceID = serviceID; + + return self; +} + +- (void)setServiceID:(NSString *)serviceID { + [self.parameters sdl_setObject:serviceID forName:SDLRPCParameterNameServiceID]; +} + +- (NSString *)serviceID { + NSError *error = nil; + return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceID ofClass:NSString.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.h new file mode 100644 index 0000000..fb048ca --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.h @@ -0,0 +1,20 @@ +// +// SDLUnpublishAppServiceResponse.h +// SmartDeviceLink +// +// Created by Bretty White on 7/15/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * The response to UnpublishAppService + */ +@interface SDLUnpublishAppServiceResponse : SDLRPCResponse + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.m new file mode 100644 index 0000000..db26d06 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.m @@ -0,0 +1,27 @@ +// +// SDLUnpublishAppServiceResponse.m +// SmartDeviceLink +// +// Created by Bretty White on 7/15/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLUnpublishAppServiceResponse.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLUnpublishAppServiceResponse + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameUnpublishAppService]) { + } + return self; +} +#pragma clang diagnostic pop + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterface.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterface.m index 95520fc..d191da5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterface.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterface.m @@ -5,17 +5,21 @@ #import "SDLUnregisterAppInterface.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnregisterAppInterface +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameUnregisterAppInterface]) { + if (self = [super initWithName:SDLRPCFunctionNameUnregisterAppInterface]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m index 77e9385..7cc5ece 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m @@ -5,17 +5,21 @@ #import "SDLUnregisterAppInterfaceResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnregisterAppInterfaceResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameUnregisterAppInterface]) { + if (self = [super initWithName:SDLRPCFunctionNameUnregisterAppInterface]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.h index 23d4cbf..9fd78ec 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.h @@ -24,6 +24,10 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLUnsubscribeButton : SDLRPCRequest +/// Convenience init to unsubscribe from a subscription button +/// +/// @param buttonName A name of the button to unsubscribe from +/// @return A name of the button to unsubscribe from - (instancetype)initWithButtonName:(SDLButtonName)buttonName; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.m index 1b1c186..3e84ad5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.m @@ -6,17 +6,21 @@ #import "NSMutableDictionary+Store.h" #import "SDLButtonName.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeButton +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameUnsubscribeButton]) { + if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeButton]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithButtonName:(SDLButtonName)buttonName { self = [self init]; @@ -30,11 +34,12 @@ - (instancetype)initWithButtonName:(SDLButtonName)buttonName { } - (void)setButtonName:(SDLButtonName)buttonName { - [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; + [self.parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; } - (SDLButtonName)buttonName { - return [parameters sdl_objectForName:SDLNameButtonName]; + NSError *error = nil; + return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButtonResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButtonResponse.m index e92565e..6d705d3 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButtonResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButtonResponse.m @@ -5,17 +5,21 @@ #import "SDLUnsubscribeButtonResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeButtonResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameUnsubscribeButton]) { + if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeButton]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.h index ace3cf5..370f348 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.h @@ -85,7 +85,43 @@ NS_ASSUME_NONNULL_BEGIN * @param wiperStatus Unsubscribe to wiperStatus * @return A SDLUnsubscribeVehicleData object */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus; +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); + +/** + * Convenience init for unsubscribing to all possible vehicle data items. + * + * @param accelerationPedalPosition Unsubscribe to accelerationPedalPosition + * @param airbagStatus Unsubscribe to airbagStatus + * @param beltStatus Unsubscribe to beltStatus + * @param bodyInformation Unsubscribe to bodyInformation + * @param cloudAppVehicleID Unsubscribe to cloudAppVehicleID + * @param clusterModeStatus Unsubscribe to clusterModeStatus + * @param deviceStatus Unsubscribe to deviceStatus + * @param driverBraking Unsubscribe to driverBraking + * @param eCallInfo Unsubscribe to eCallInfo + * @param electronicParkBrakeStatus Unsubscribe to electronicParkBrakeStatus + * @param emergencyEvent Unsubscribe to emergencyEvent + * @param engineOilLife Unsubscribe to engineOilLife + * @param engineTorque Unsubscribe to engineTorque + * @param externalTemperature Unsubscribe to externalTemperature + * @param fuelLevel Unsubscribe to fuelLevel + * @param fuelLevelState Unsubscribe to fuelLevelState + * @param fuelRange Unsubscribe to fuelRange + * @param gps Unsubscribe to gps + * @param headLampStatus Unsubscribe to headLampStatus + * @param instantFuelConsumption Unsubscribe to instantFuelConsumption + * @param myKey Unsubscribe to myKey + * @param odometer Unsubscribe to odometer + * @param prndl Unsubscribe to prndl + * @param rpm Unsubscribe to rpm + * @param speed Unsubscribe to speed + * @param steeringWheelAngle Unsubscribe to steeringWheelAngle + * @param tirePressure Unsubscribe to tirePressure + * @param turnSignal Unsubscribe to turnSignal + * @param wiperStatus Unsubscribe to wiperStatus + * @return A SDLUnsubscribeVehicleData object + */ +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus; /** * If true, unsubscribes from GPS @@ -227,6 +263,31 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) NSNumber *turnSignal; +/** + A boolean value. If true, unsubscribes to the Cloud App Vehicle ID + */ +@property (strong, nonatomic, nullable) NSNumber *cloudAppVehicleID; + +/** + Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @param vehicleDataState A boolean value. If true, requests an unsubscribes of the OEM custom vehicle data item. + + Added SmartDeviceLink 6.0 + */ +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); + +/** + Gets the OEM custom vehicle data state for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item to unsubscribe for. + @return A boolean value indicating if an unsubscribe request will occur for the OEM custom vehicle data item. + + Added SmartDeviceLink 6.0 + */ +- (nullable NSNumber *)getOEMCustomVehicleData:(NSString *)vehicleDataName; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.m index 3ecf16b..e83148b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.m @@ -5,23 +5,31 @@ #import "SDLUnsubscribeVehicleData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeVehicleData +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameUnsubscribeVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeVehicleData]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure wiperStatus:(BOOL)wiperStatus { return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:NO emergencyEvent:emergencyEvent engineOilLife:NO engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:NO gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:NO wiperStatus:wiperStatus]; } - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus { + return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation cloudAppVehicleID:NO clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:electronicParkBrakeStatus emergencyEvent:emergencyEvent engineOilLife:engineOilLife engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:fuelRange gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:turnSignal wiperStatus:wiperStatus]; +} + +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus { self = [self init]; if (!self) { return nil; @@ -31,6 +39,7 @@ - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPositio self.airbagStatus = @(airbagStatus); self.beltStatus = @(beltStatus); self.bodyInformation = @(bodyInformation); + self.cloudAppVehicleID = @(cloudAppVehicleID); self.clusterModeStatus = @(clusterModeStatus); self.deviceStatus = @(deviceStatus); self.driverBraking = @(driverBraking); @@ -60,227 +69,243 @@ - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPositio } - (void)setGps:(nullable NSNumber *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable NSNumber *)gps { - return [parameters sdl_objectForName:SDLNameGPS]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:NSNumber.class error:nil]; } - (void)setSpeed:(nullable NSNumber *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber *)speed { - return [parameters sdl_objectForName:SDLNameSpeed]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; } - (void)setRpm:(nullable NSNumber *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable NSNumber *)rpm { - return [parameters sdl_objectForName:SDLNameRPM]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel:(nullable NSNumber *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable NSNumber *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel_State:(nullable NSNumber *)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable NSNumber *)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:NSNumber.class error:nil]; } - (void)setFuelRange:(nullable NSNumber *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable NSNumber *)fuelRange { - return [parameters sdl_objectForName:SDLNameFuelRange]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:NSNumber.class error:nil]; } - (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable NSNumber *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; } - (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable NSNumber *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; } - (void)setPrndl:(nullable NSNumber *)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable NSNumber *)prndl { - return [parameters sdl_objectForName:SDLNamePRNDL]; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:NSNumber.class error:nil]; } - (void)setTirePressure:(nullable NSNumber *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable NSNumber *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:NSNumber.class error:nil]; } - (void)setOdometer:(nullable NSNumber *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable NSNumber *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; } - (void)setBeltStatus:(nullable NSNumber *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable NSNumber *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:NSNumber.class error:nil]; } - (void)setBodyInformation:(nullable NSNumber *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable NSNumber *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:NSNumber.class error:nil]; } - (void)setDeviceStatus:(nullable NSNumber *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable NSNumber *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:NSNumber.class error:nil]; } - (void)setDriverBraking:(nullable NSNumber *)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable NSNumber *)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:NSNumber.class error:nil]; } - (void)setWiperStatus:(nullable NSNumber *)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable NSNumber *)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:NSNumber.class error:nil]; } - (void)setHeadLampStatus:(nullable NSNumber *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable NSNumber *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:NSNumber.class error:nil]; } - (void)setEngineOilLife:(nullable NSNumber *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; + [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable NSNumber *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; } - (void)setEngineTorque:(nullable NSNumber *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable NSNumber *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; } - (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable NSNumber *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; } - (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable NSNumber *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; } - (void)setECallInfo:(nullable NSNumber *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable NSNumber *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:NSNumber.class error:nil]; } - (void)setAirbagStatus:(nullable NSNumber *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable NSNumber *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:NSNumber.class error:nil]; } - (void)setEmergencyEvent:(nullable NSNumber *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable NSNumber *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:NSNumber.class error:nil]; } - (void)setClusterModeStatus:(nullable NSNumber *)clusterModeStatus { - [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; + [self.parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; } - (nullable NSNumber *)clusterModeStatus { - return [parameters sdl_objectForName:SDLNameClusterModeStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:NSNumber.class error:nil]; } - (void)setMyKey:(nullable NSNumber *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable NSNumber *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:NSNumber.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable NSNumber *)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable NSNumber *)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:NSNumber.class error:nil]; } - (void)setTurnSignal:(nullable NSNumber *)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable NSNumber *)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:NSNumber.class error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable NSNumber *)cloudAppVehicleID { + [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable NSNumber *)cloudAppVehicleID { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSNumber.class error:nil]; +} + +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState { + [self.parameters sdl_setObject:@(vehicleDataState) forName:vehicleDataName]; +} + +- (nullable NSNumber *)getOEMCustomVehicleData:(NSString *)vehicleDataName { + return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h index 0500a19..da07d66 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h @@ -211,6 +211,33 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) SDLVehicleDataResult *turnSignal; +/** + The result of requesting to unsubscribe to the cloud app vehicle id + + Optional + */ +@property (strong, nonatomic, nullable) SDLVehicleDataResult *cloudAppVehicleID; + +/** + Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @param vehicleDataState SDLVehicleDataResult object containing custom data type and result code information. + + Added SmartDeviceLink 6.0 + */ +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(SDLVehicleDataResult *)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); + +/** + Gets the OEM custom vehicle data state for any given OEM custom vehicle data name. + + @param vehicleDataName The name of the OEM custom vehicle data item. + @return SDLVehicleDataResult object containing custom data type and result code information. + + Added SmartDeviceLink 6.0 + */ +- (nullable SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m index 6ad213d..b864230 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m @@ -5,241 +5,261 @@ #import "SDLUnsubscribeVehicleDataResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLVehicleDataResult.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeVehicleDataResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameUnsubscribeVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeVehicleData]) { } return self; } +#pragma clang diagnostic pop - (void)setGps:(nullable SDLVehicleDataResult *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable SDLVehicleDataResult *)gps { - return [parameters sdl_objectForName:SDLNameGPS ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setSpeed:(nullable SDLVehicleDataResult *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable SDLVehicleDataResult *)speed { - return [parameters sdl_objectForName:SDLNameSpeed ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setRpm:(nullable SDLVehicleDataResult *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable SDLVehicleDataResult *)rpm { - return [parameters sdl_objectForName:SDLNameRPM ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setFuelLevel:(nullable SDLVehicleDataResult *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable SDLVehicleDataResult *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setFuelLevel_State:(nullable SDLVehicleDataResult *)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable SDLVehicleDataResult *)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setFuelRange:(nullable SDLVehicleDataResult *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable SDLVehicleDataResult *)fuelRange { - return [parameters sdl_objectForName:SDLNameFuelRange ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setInstantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable SDLVehicleDataResult *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setExternalTemperature:(nullable SDLVehicleDataResult *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable SDLVehicleDataResult *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setPrndl:(nullable SDLVehicleDataResult *)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable SDLVehicleDataResult *)prndl { - return [parameters sdl_objectForName:SDLNamePRNDL ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setTirePressure:(nullable SDLVehicleDataResult *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable SDLVehicleDataResult *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setOdometer:(nullable SDLVehicleDataResult *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable SDLVehicleDataResult *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setBeltStatus:(nullable SDLVehicleDataResult *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable SDLVehicleDataResult *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setBodyInformation:(nullable SDLVehicleDataResult *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable SDLVehicleDataResult *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setDeviceStatus:(nullable SDLVehicleDataResult *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable SDLVehicleDataResult *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setDriverBraking:(nullable SDLVehicleDataResult *)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable SDLVehicleDataResult *)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setWiperStatus:(nullable SDLVehicleDataResult *)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable SDLVehicleDataResult *)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setHeadLampStatus:(nullable SDLVehicleDataResult *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable SDLVehicleDataResult *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setEngineOilLife:(nullable SDLVehicleDataResult *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; + [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable SDLVehicleDataResult *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setEngineTorque:(nullable SDLVehicleDataResult *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable SDLVehicleDataResult *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setAccPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable SDLVehicleDataResult *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setSteeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable SDLVehicleDataResult *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setECallInfo:(nullable SDLVehicleDataResult *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable SDLVehicleDataResult *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setAirbagStatus:(nullable SDLVehicleDataResult *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable SDLVehicleDataResult *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setEmergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable SDLVehicleDataResult *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setClusterModes:(nullable SDLVehicleDataResult *)clusterModes { - [parameters sdl_setObject:clusterModes forName:SDLNameClusterModes]; + [self.parameters sdl_setObject:clusterModes forName:SDLRPCParameterNameClusterModes]; } - (nullable SDLVehicleDataResult *)clusterModes { - return [parameters sdl_objectForName:SDLNameClusterModes ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModes ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setMyKey:(nullable SDLVehicleDataResult *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable SDLVehicleDataResult *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable SDLVehicleDataResult *)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus ofClass:[SDLVehicleDataResult class]]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setTurnSignal:(nullable SDLVehicleDataResult *)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable SDLVehicleDataResult *)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal ofClass:SDLVehicleDataResult.class]; + return [self.parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:SDLVehicleDataResult.class error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID { + [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable SDLVehicleDataResult *)cloudAppVehicleID { + return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:SDLVehicleDataResult.class error:nil]; +} + +- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(SDLVehicleDataResult *)vehicleDataState { + [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName]; +} + +- (nullable SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName { + return [self.parameters sdl_objectForName:vehicleDataName ofClass:SDLVehicleDataResult.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPoints.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPoints.m index 4504eba..30b3e2c 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPoints.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPoints.m @@ -4,17 +4,21 @@ #import "SDLUnsubscribeWayPoints.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeWayPoints +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameUnsubscribeWayPoints]) { + if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeWayPoints]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m index 2db5d01..7eb3e63 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m @@ -4,17 +4,21 @@ #import "SDLUnsubscribeWayPointsResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeWayPointsResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameUnsubscribeWayPoints]) { + if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeWayPoints]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.h index 96d54a5..0133e0e 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.h @@ -17,6 +17,10 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLUpdateTurnList : SDLRPCRequest +/// Convenience init to update a list of maneuvers for navigation +/// +/// @param turnList A struct used in UpdateTurnList for Turn-by-Turn navigation applications +/// @param softButtons An array of softbuttons - (instancetype)initWithTurnList:(nullable NSArray *)turnList softButtons:(nullable NSArray *)softButtons; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.m index b6361f6..ed7d632 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.m @@ -5,7 +5,8 @@ #import "SDLUpdateTurnList.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSoftButton.h" #import "SDLTurn.h" @@ -13,11 +14,14 @@ @implementation SDLUpdateTurnList +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameUpdateTurnList]) { + if (self = [super initWithName:SDLRPCFunctionNameUpdateTurnList]) { } return self; } +#pragma clang diagnostic pop - (instancetype)initWithTurnList:(nullable NSArray *)turnList softButtons:(nullable NSArray *)softButtons { self = [self init]; @@ -32,19 +36,19 @@ - (instancetype)initWithTurnList:(nullable NSArray *)turnList softBut } - (void)setTurnList:(nullable NSArray *)turnList { - [parameters sdl_setObject:turnList forName:SDLNameTurnList]; + [self.parameters sdl_setObject:turnList forName:SDLRPCParameterNameTurnList]; } - (nullable NSArray *)turnList { - return [parameters sdl_objectsForName:SDLNameTurnList ofClass:SDLTurn.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameTurnList ofClass:SDLTurn.class error:nil]; } - (void)setSoftButtons:(nullable NSArray *)softButtons { - [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; + [self.parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; } - (nullable NSArray *)softButtons { - return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; + return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnListResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnListResponse.m index d77ded7..5231609 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnListResponse.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnListResponse.m @@ -5,17 +5,21 @@ #import "SDLUpdateTurnListResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUpdateTurnListResponse +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { - if (self = [super initWithName:SDLNameUpdateTurnList]) { + if (self = [super initWithName:SDLRPCFunctionNameUpdateTurnList]) { } return self; } +#pragma clang diagnostic pop @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.h index 40c4b36..cd3eaa4 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.h @@ -31,6 +31,8 @@ NS_ASSUME_NONNULL_BEGIN */ - (instancetype)initWithFile:(SDLFileWrapper *)file connectionManager:(id)connectionManager; +@property (nonatomic, strong, readonly) SDLFileWrapper *fileWrapper; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.m index 620d0f8..b87629b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.m @@ -24,7 +24,7 @@ @interface SDLUploadFileOperation () -@property (strong, nonatomic) SDLFileWrapper *fileWrapper; +@property (strong, nonatomic, readwrite) SDLFileWrapper *fileWrapper; @property (weak, nonatomic) id connectionManager; @property (strong, nonatomic) NSInputStream *inputStream; @@ -53,6 +53,7 @@ - (instancetype)initWithFile:(SDLFileWrapper *)file connectionManager:(id *innerDictionary = [[NSMutableDictionary alloc] init]; NSString *functionName = [[SDLFunctionID sharedInstance] functionNameForId:rpcPayload.functionID]; - innerDictionary[SDLNameOperationName] = functionName; - innerDictionary[SDLNameCorrelationId] = @(rpcPayload.correlationID); + innerDictionary[SDLRPCParameterNameOperationName] = functionName; + innerDictionary[SDLRPCParameterNameCorrelationId] = @(rpcPayload.correlationID); // Get the json data from the struct if (rpcPayload.jsonData) { @@ -46,18 +47,18 @@ - (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(nullable if (error != nil) { SDLLogE(@"Error decoding JSON data: %@", error); } else if (jsonDictionary) { - [innerDictionary setObject:jsonDictionary forKey:SDLNameParameters]; + [innerDictionary setObject:jsonDictionary forKey:SDLRPCParameterNameParameters]; } } // Store it in the containing dictionary UInt8 rpcType = rpcPayload.rpcType; - NSArray *rpcTypeNames = @[SDLNameRequest, SDLNameResponse, SDLNameNotification]; + NSArray *rpcTypeNames = @[SDLRPCParameterNameRequest, SDLRPCParameterNameResponse, SDLRPCParameterNameNotification]; [rpcMessageAsDictionary setObject:innerDictionary forKey:rpcTypeNames[rpcType]]; // The bulk data also goes in the dictionary if (rpcPayload.binaryData) { - [rpcMessageAsDictionary setObject:rpcPayload.binaryData forKey:SDLNameBulkData]; + [rpcMessageAsDictionary setObject:rpcPayload.binaryData forKey:SDLRPCParameterNameBulkData]; } return rpcMessageAsDictionary; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.h index 44d43b7..deeb325 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.h @@ -13,11 +13,34 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLVehicleDataResult : SDLRPCStruct +/** + * Convenience init for creating a SDLVehicleDataResult with a dataType + * + * @param dataType The Vehicle DataType data + * @param resultCode The VehicleData ResultCode data + */ +- (instancetype)initWithDataType:(SDLVehicleDataType)dataType resultCode:(SDLVehicleDataResultCode)resultCode; + +/** + * Convenience init for creating a SDLVehicleDataResult with a customDataType + * + * @param customDataType The custom dataType data + * @param resultCode The VehicleData ResultCode data + */ +- (instancetype)initWithCustomOEMDataType:(NSString *)customDataType resultCode:(SDLVehicleDataResultCode)resultCode; + /** Defined published data element type */ @property (strong, nonatomic) SDLVehicleDataType dataType; +/** + OEM custom defined published data element type + + Added SmartDeviceLink 6.0 + */ +@property (nullable, strong, nonatomic) NSString *customOEMDataType; + /** Published data result code */ diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.m index 3f45850..db69950 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.m @@ -4,26 +4,61 @@ #import "SDLVehicleDataResult.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLVehicleDataResult +- (instancetype)initWithDataType:(SDLVehicleDataType)dataType resultCode:(SDLVehicleDataResultCode)resultCode { + self = [self init]; + if (!self) { + return nil; + } + + self.dataType = dataType; + self.resultCode = resultCode; + + return self; +} + +- (instancetype)initWithCustomOEMDataType:(NSString *)customDataType resultCode:(SDLVehicleDataResultCode)resultCode{ + self = [self init]; + if (!self) { + return nil; + } + + self.customOEMDataType = customDataType; + self.resultCode = resultCode; + + return self; +} + - (void)setDataType:(SDLVehicleDataType)dataType { - [store sdl_setObject:dataType forName:SDLNameDataType]; + [self.store sdl_setObject:dataType forName:SDLRPCParameterNameDataType]; } - (SDLVehicleDataType)dataType { - return [store sdl_objectForName:SDLNameDataType]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameDataType error:&error]; } - (void)setResultCode:(SDLVehicleDataResultCode)resultCode { - [store sdl_setObject:resultCode forName:SDLNameResultCode]; + [self.store sdl_setObject:resultCode forName:SDLRPCParameterNameResultCode]; } - (SDLVehicleDataResultCode)resultCode { - return [store sdl_objectForName:SDLNameResultCode]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameResultCode error:&error]; +} + +- (nullable NSString *)customOEMDataType { + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameOEMCustomDataType error:&error]; +} + +- (void)setCustomOEMDataType:(nullable NSString *)oemCustomDataType { + [self.store sdl_setObject:oemCustomDataType forName:SDLRPCParameterNameOEMCustomDataType]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.h index 4afe818..e65cdce 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.h @@ -158,3 +158,15 @@ extern SDLVehicleDataType const SDLVehicleDataTypeElectronicParkBrakeStatus; Vehicle turn signal data */ extern SDLVehicleDataType const SDLVehicleDataTypeTurnSignal; + +/** + The cloud application vehicle id. Used by cloud apps to identify a head unit + */ +extern SDLVehicleDataType const SDLVehicleDataTypeCloudAppVehicleID; + +/** + Custom OEM Vehicle data + + Added in SDL 6.0 + */ +extern SDLVehicleDataType const SDLVehicleDataTypeOEMVehicleDataType; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.m index 4b37a24..8956138 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.m @@ -34,4 +34,6 @@ SDLVehicleDataType const SDLVehicleDataTypeSteeringWheel = @"VEHICLEDATA_STEERINGWHEEL"; SDLVehicleDataType const SDLVehicleDataTypeElectronicParkBrakeStatus = @"VEHICLEDATA_ELECTRONICPARKBRAKESTATUS"; SDLVehicleDataType const SDLVehicleDataTypeTurnSignal = @"VEHICLEDATA_TURNSIGNAL"; +SDLVehicleDataType const SDLVehicleDataTypeCloudAppVehicleID = @"VEHICLEDATA_CLOUDAPPVEHICLEID"; +SDLVehicleDataType const SDLVehicleDataTypeOEMVehicleDataType = @"VEHICLEDATA_OEM_CUSTOM_DATA"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleType.m index 73e98aa..5f3df07 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleType.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleType.m @@ -5,42 +5,42 @@ #import "SDLVehicleType.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLVehicleType - (void)setMake:(nullable NSString *)make { - [store sdl_setObject:make forName:SDLNameMake]; + [self.store sdl_setObject:make forName:SDLRPCParameterNameMake]; } - (nullable NSString *)make { - return [store sdl_objectForName:SDLNameMake]; + return [self.store sdl_objectForName:SDLRPCParameterNameMake ofClass:NSString.class error:nil]; } - (void)setModel:(nullable NSString *)model { - [store sdl_setObject:model forName:SDLNameModel]; + [self.store sdl_setObject:model forName:SDLRPCParameterNameModel]; } - (nullable NSString *)model { - return [store sdl_objectForName:SDLNameModel]; + return [self.store sdl_objectForName:SDLRPCParameterNameModel ofClass:NSString.class error:nil]; } - (void)setModelYear:(nullable NSString *)modelYear { - [store sdl_setObject:modelYear forName:SDLNameModelYear]; + [self.store sdl_setObject:modelYear forName:SDLRPCParameterNameModelYear]; } - (nullable NSString *)modelYear { - return [store sdl_objectForName:SDLNameModelYear]; + return [self.store sdl_objectForName:SDLRPCParameterNameModelYear ofClass:NSString.class error:nil]; } - (void)setTrim:(nullable NSString *)trim { - [store sdl_setObject:trim forName:SDLNameTrim]; + [self.store sdl_setObject:trim forName:SDLRPCParameterNameTrim]; } - (nullable NSString *)trim { - return [store sdl_objectForName:SDLNameTrim]; + return [self.store sdl_objectForName:SDLRPCParameterNameTrim ofClass:NSString.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.h new file mode 100644 index 0000000..22ff79d --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.h @@ -0,0 +1,121 @@ +// +// SDLVersion.h +// SmartDeviceLink +// +// Created by Joel Fischer on 2/19/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import + +@class SDLSyncMsgVersion; +@class SDLMsgVersion; + +NS_ASSUME_NONNULL_BEGIN + +/// Specifies a major / minor / patch version number for semantic versioning purposes and comparisons +@interface SDLVersion : NSObject + +/// Major version (e.g. X.0.0) +@property (nonatomic, assign) NSUInteger major; + +/// Minor version (e.g. 0.X.0) +@property (nonatomic, assign) NSUInteger minor; + +/// Patch version (e.g. 0.0.X) +@property (nonatomic, assign) NSUInteger patch; + +/// A String format of the current SDLVersion +@property (nonatomic, copy, readonly) NSString *stringVersion; + +/// Convenience init +/// +/// @param major Major version +/// @param minor Minor version +/// @param patch Patch version +/// @return An SDLVersion object +- (instancetype)initWithMajor:(NSUInteger)major minor:(NSUInteger)minor patch:(NSUInteger)patch; + +/// Convenience init +/// +/// @param major Major version +/// @param minor Minor version +/// @param patch Patch version +/// @return An SDLVersion object ++ (instancetype)versionWithMajor:(NSUInteger)major minor:(NSUInteger)minor patch:(NSUInteger)patch; + +/// Convenience init +/// +/// @param versionString String representation of the version +/// @return An SDLVersion object +- (nullable instancetype)initWithString:(NSString *)versionString; + +/// Convenience init +/// +/// @param versionString String representation of the version +/// @return An SDLVersion object ++ (nullable instancetype)versionWithString:(NSString *)versionString; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" +/// Deprecated convenience init to set version using SDLSyncMsgVersion +/// +/// @param syncMsgVersion Specifies the version number of the SmartDeviceLink protocol that is supported by the mobile application. +/// @return An SDLVersion object +- (instancetype)initWithSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion __deprecated_msg(("Use initWithSDLMsgVersion:sdlMsgVersion: instead")); + +/// Deprecated convenience init to set version using SDLSyncMsgVersion +/// +/// @param syncMsgVersion Specifies the version number of the SmartDeviceLink protocol that is supported by the mobile application. +/// @return An SDLVersion object ++ (instancetype)versionWithSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion __deprecated_msg(("Use versionWithSDLMsgVersion:sdlMsgVersion instead")); +#pragma clang diagnostic pop + +/// Convenience init to set version using SDLMsgVersion +/// +/// @param sdlMsgVersion Specifies the version number of the SmartDeviceLink protocol that is supported by the mobile application. +/// @return An SDLVersion object +- (instancetype)initWithSDLMsgVersion:(SDLMsgVersion *)sdlMsgVersion; + +/// Convenience init to set version using SDLMsgVersion +/// +/// @param sdlMsgVersion Specifies the version number of the SmartDeviceLink protocol that is supported by the mobile application. +/// @return SDLVersion object ++ (instancetype)versionWithSDLMsgVersion:(SDLMsgVersion *)sdlMsgVersion; + +/// Compare two SDLVersions +- (NSComparisonResult)compare:(SDLVersion *)otherVersion; + +/// Compare is less than +/// +/// @param otherVersion SDLVersion Object +/// @return BOOL +- (BOOL)isLessThanVersion:(SDLVersion *)otherVersion; + +/// Compare is equal to +/// +/// @param otherVersion SDLVersion Object +/// @return BOOL +- (BOOL)isEqualToVersion:(SDLVersion *)otherVersion; + +/// Compare is greater than +/// +/// @param otherVersion SDLVersion Object +/// @return BOOL +- (BOOL)isGreaterThanVersion:(SDLVersion *)otherVersion; + +/// Compare is greater than or equal to +/// +/// @param otherVersion SDLVersion Object +/// @return BOOL +- (BOOL)isGreaterThanOrEqualToVersion:(SDLVersion *)otherVersion; + +/// Compare is less than or equal to +/// +/// @param otherVersion SDLVersion Object +/// @return BOOL +- (BOOL)isLessThanOrEqualToVersion:(SDLVersion *)otherVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.m new file mode 100644 index 0000000..9ec3e48 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.m @@ -0,0 +1,160 @@ +// +// SDLVersion.m +// SmartDeviceLink +// +// Created by Joel Fischer on 2/19/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLVersion.h" + +#import "SDLSyncMsgVersion.h" +#import "SDLMsgVersion.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLVersion + +#pragma mark - Initializers + +- (instancetype)initWithMajor:(NSUInteger)major minor:(NSUInteger)minor patch:(NSUInteger)patch { + self = [super init]; + if (!self) { return nil; } + + _major = major; + _minor = minor; + _patch = patch; + + return self; +} + ++ (instancetype)versionWithMajor:(NSUInteger)major minor:(NSUInteger)minor patch:(NSUInteger)patch { + return [[self alloc] initWithMajor:major minor:minor patch:patch]; +} + +- (nullable instancetype)initWithString:(NSString *)versionString { + self = [super init]; + if (!self) { return nil; } + + NSArray *splitVersions = [versionString componentsSeparatedByString:@"."]; + if (splitVersions.count != 3) { + NSAssert(splitVersions.count == 3, @"Splitting a version string must result in major, minor, and patch. The format must be 'X.X.X'"); + return nil; + } + + NSInteger majorInt = splitVersions[0].integerValue; + NSInteger minorInt = splitVersions[1].integerValue; + NSInteger patchInt = splitVersions[2].integerValue; + + if (majorInt < 0 || minorInt < 0 || patchInt < 0) { + NSAssert(NO, @"Attempted to parse invalid SDLVersion: %@", splitVersions); + return nil; + } + + _major = (NSUInteger)majorInt; + _minor = (NSUInteger)minorInt; + _patch = (NSUInteger)patchInt; + + return self; +} + ++ (nullable instancetype)versionWithString:(NSString *)versionString { + return [[self alloc] initWithString:versionString]; +} + +- (instancetype)initWithSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion { + self = [super init]; + if (!self) { return nil; } + + _major = syncMsgVersion.majorVersion.unsignedIntegerValue; + _minor = syncMsgVersion.minorVersion.unsignedIntegerValue; + _patch = syncMsgVersion.patchVersion.unsignedIntegerValue; + + return self; +} + ++ (instancetype)versionWithSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion { + return [[self alloc] initWithSyncMsgVersion:syncMsgVersion]; +} + +- (instancetype)initWithSDLMsgVersion:(SDLMsgVersion *)sdlMsgVersion { + self = [super init]; + if (!self) { return nil; } + + _major = sdlMsgVersion.majorVersion.unsignedIntegerValue; + _minor = sdlMsgVersion.minorVersion.unsignedIntegerValue; + _patch = sdlMsgVersion.patchVersion.unsignedIntegerValue; + + return self; +} + ++ (instancetype)versionWithSDLMsgVersion:(SDLMsgVersion *)sdlMsgVersion { + return [[self alloc] initWithSDLMsgVersion:sdlMsgVersion]; +} + +#pragma mark - Setters / Getters + +- (NSString *)stringVersion { + return [NSString stringWithFormat:@"%lu.%lu.%lu", (unsigned long)_major, (unsigned long)_minor, (unsigned long)_patch]; +} + +#pragma mark - Helper functions + +- (NSComparisonResult)compare:(SDLVersion *)otherVersion { + if (self.major > otherVersion.major) { + return NSOrderedDescending; + } else if ((self.major == otherVersion.major) && (self.minor > otherVersion.minor)) { + return NSOrderedDescending; + } else if ((self.major == otherVersion.major) && (self.minor == otherVersion.minor) && (self.patch > otherVersion.patch)) { + return NSOrderedDescending; + } else if ((self.major == otherVersion.major) && (self.minor == otherVersion.minor) && (self.patch == otherVersion.patch)) { + return NSOrderedSame; + } + + return NSOrderedAscending; +} + +- (BOOL)isLessThanVersion:(SDLVersion *)otherVersion { + return ([self compare:otherVersion] == NSOrderedAscending); +} + +- (BOOL)isEqualToVersion:(SDLVersion *)otherVersion { + return ([self compare:otherVersion] == NSOrderedSame); +} + +- (BOOL)isGreaterThanVersion:(SDLVersion *)otherVersion { + return ([self compare:otherVersion] == NSOrderedDescending); +} + +- (BOOL)isGreaterThanOrEqualToVersion:(SDLVersion *)otherVersion { + return ([self isGreaterThanVersion:otherVersion] || [self isEqualToVersion:otherVersion]); +} + +- (BOOL)isLessThanOrEqualToVersion:(SDLVersion *)otherVersion { + return ([self isLessThanVersion:otherVersion] || [self isEqualToVersion:otherVersion]); +} + +#pragma mark - NSObject overrides + +- (BOOL)isEqual:(id)object { + if (object == nil) { return NO; } + if (![object isMemberOfClass:self.class]) { return NO; } + + SDLVersion *otherVersion = (SDLVersion *)object; + + return [self isEqualToVersion:otherVersion]; +} + +- (NSString *)description { + return self.stringVersion; +} + +- (id)copyWithZone:(nullable NSZone *)zone { + SDLVersion *new = [[SDLVersion allocWithZone:zone] initWithMajor:_major minor:_minor patch:_patch]; + return new; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.h index c15c73a..17a4468 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.h @@ -18,7 +18,30 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLVideoStreamingCapability : SDLRPCStruct -- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported; +/** +Convenience init for creating a video streaming capability. + +@param preferredResolution The preferred resolution of a video stream for decoding and rendering on HMI +@param maxBitrate The maximum bitrate of video stream that is supported, in kbps +@param supportedFormats Detailed information on each format supported by this system, in its preferred order +@param hapticDataSupported True if the system can utilize the haptic spatial data from the source being streamed +@return A SDLVideoStreamingCapability object +*/ +- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported __deprecated_msg("Use initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:diagonalScreenSize:pixelPerInch:scale: instead"); + +/** + Convenience init for creating a video streaming capability with all parameters. + + @param preferredResolution The preferred resolution of a video stream for decoding and rendering on HMI + @param maxBitrate The maximum bitrate of video stream that is supported, in kbps + @param supportedFormats Detailed information on each format supported by this system, in its preferred order + @param hapticDataSupported True if the system can utilize the haptic spatial data from the source being streamed + @param diagonalScreenSize The diagonal screen size in inches + @param pixelPerInch The diagonal resolution in pixels divided by the diagonal screen size in inches + @param scale The scaling factor the app should use to change the size of the projecting view + @return A SDLVideoStreamingCapability object + */ +- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported diagonalScreenSize:(float)diagonalScreenSize pixelPerInch:(float)pixelPerInch scale:(float)scale; /** The preferred resolution of a video stream for decoding and rendering on HMI @@ -48,6 +71,30 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSNumber *hapticSpatialDataSupported; +/** + The diagonal screen size in inches. + + Float, Optional, minvalue="0" + @since SDL 6.0 + */ +@property (nullable, strong, nonatomic) NSNumber *diagonalScreenSize; + +/** + The diagonal resolution in pixels divided by the diagonal screen size in inches. + + Float, Optional, minvalue="0" + @since SDL 6.0 + */ +@property (nullable, strong, nonatomic) NSNumber *pixelPerInch; + +/** + The scaling factor the app should use to change the size of the projecting view. + + Float, Optional, minvalue="1" maxvalue="10" + @since SDL 6.0 + */ +@property (nullable, strong, nonatomic) NSNumber *scale; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.m index c5f5ae2..3239f55 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.m @@ -11,56 +11,91 @@ #import "SDLVideoStreamingFormat.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLVideoStreamingCapability - (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported { + return [self initWithPreferredResolution:preferredResolution maxBitrate:@(maxBitrate) supportedFormats:supportedFormats hapticDataSupported:@(hapticDataSupported) diagonalScreenSize:nil ppi:nil scale:nil]; +} + +- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported diagonalScreenSize:(float)diagonalScreenSize pixelPerInch:(float)pixelPerInch scale:(float)scale { + return [self initWithPreferredResolution:preferredResolution maxBitrate:@(maxBitrate) supportedFormats:supportedFormats hapticDataSupported:@(hapticDataSupported) diagonalScreenSize:@(diagonalScreenSize) ppi:@(pixelPerInch) scale:@(scale)]; +} + +- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(nullable NSNumber *)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(nullable NSNumber *)hapticDataSupported diagonalScreenSize:(nullable NSNumber *)diagonalScreenSize ppi:(nullable NSNumber *)pixelPerInch scale:(nullable NSNumber *)scale { self = [self init]; if (!self) { return self; } - self.maxBitrate = @(maxBitrate); + self.maxBitrate = maxBitrate; self.preferredResolution = preferredResolution; self.supportedFormats = supportedFormats; - self.hapticSpatialDataSupported = @(hapticDataSupported); + self.hapticSpatialDataSupported = hapticDataSupported; + self.diagonalScreenSize = diagonalScreenSize; + self.pixelPerInch = pixelPerInch; + self.scale = scale; return self; } - (void)setPreferredResolution:(nullable SDLImageResolution *)preferredResolution { - [store sdl_setObject:preferredResolution forName:SDLNamePreferredResolution]; + [self.store sdl_setObject:preferredResolution forName:SDLRPCParameterNamePreferredResolution]; } - (nullable SDLImageResolution *)preferredResolution { - return [store sdl_objectForName:SDLNamePreferredResolution ofClass:SDLImageResolution.class]; + return [self.store sdl_objectForName:SDLRPCParameterNamePreferredResolution ofClass:SDLImageResolution.class error:nil]; } - (void)setMaxBitrate:(nullable NSNumber *)maxBitrate { - [store sdl_setObject:maxBitrate forName:SDLNameMaxBitrate]; + [self.store sdl_setObject:maxBitrate forName:SDLRPCParameterNameMaxBitrate]; } - (nullable NSNumber *)maxBitrate { - return [store sdl_objectForName:SDLNameMaxBitrate]; + return [self.store sdl_objectForName:SDLRPCParameterNameMaxBitrate ofClass:NSNumber.class error:nil]; } - (void)setSupportedFormats:(nullable NSArray *)supportedFormats { - [store sdl_setObject:supportedFormats forName:SDLNameSupportedFormats]; + [self.store sdl_setObject:supportedFormats forName:SDLRPCParameterNameSupportedFormats]; } - (nullable NSArray *)supportedFormats { - return [store sdl_objectsForName:SDLNameSupportedFormats ofClass:SDLVideoStreamingFormat.class]; + return [self.store sdl_objectsForName:SDLRPCParameterNameSupportedFormats ofClass:SDLVideoStreamingFormat.class error:nil]; } - (void)setHapticSpatialDataSupported:(nullable NSNumber *)hapticSpatialDataSupported { - [store sdl_setObject:hapticSpatialDataSupported forName:SDLNameHapticSpatialDataSupported]; + [self.store sdl_setObject:hapticSpatialDataSupported forName:SDLRPCParameterNameHapticSpatialDataSupported]; } - (nullable NSNumber *)hapticSpatialDataSupported { - return [store sdl_objectForName:SDLNameHapticSpatialDataSupported]; + return [self.store sdl_objectForName:SDLRPCParameterNameHapticSpatialDataSupported ofClass:NSNumber.class error:nil]; +} + +- (void)setDiagonalScreenSize:(nullable NSNumber *)diagonalScreenSize { + [self.store sdl_setObject:diagonalScreenSize forName:SDLRPCParameterNameDiagonalScreenSize]; +} + +- (nullable NSNumber *)diagonalScreenSize { + return [self.store sdl_objectForName:SDLRPCParameterNameDiagonalScreenSize ofClass:NSNumber.class error:nil]; +} + +- (void)setPixelPerInch:(nullable NSNumber *)pixelPerInch { + [self.store sdl_setObject:pixelPerInch forName:SDLRPCParameterNamePixelPerInch]; +} + +- (nullable NSNumber *)pixelPerInch { + return [self.store sdl_objectForName:SDLRPCParameterNamePixelPerInch ofClass:NSNumber.class error:nil]; +} + +- (void)setScale:(nullable NSNumber *)scale { + [self.store sdl_setObject:scale forName:SDLRPCParameterNameScale]; +} + +- (nullable NSNumber *)scale { + return [self.store sdl_objectForName:SDLRPCParameterNameScale ofClass:NSNumber.class error:nil]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.h index 9cc3cb7..958ae43 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.h @@ -28,6 +28,11 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic) SDLVideoStreamingCodec codec; +/// Convenience init +/// +/// @param codec Codec type, see VideoStreamingCodec +/// @param protocol Protocol type, see VideoStreamingProtocol +/// @return An SDLVideoStreamingFormat object - (instancetype)initWithCodec:(SDLVideoStreamingCodec)codec protocol:(SDLVideoStreamingProtocol)protocol; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.m index 35c6395..4fda8d3 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.m @@ -8,7 +8,7 @@ #import "SDLVideoStreamingFormat.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -25,19 +25,21 @@ - (instancetype)initWithCodec:(SDLVideoStreamingCodec)codec protocol:(SDLVideoSt } - (SDLVideoStreamingProtocol)protocol { - return [store sdl_objectForName:SDLNameVideoProtocol]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameVideoProtocol error:&error]; } - (void)setProtocol:(SDLVideoStreamingProtocol)protocol { - [store sdl_setObject:protocol forName:SDLNameVideoProtocol]; + [self.store sdl_setObject:protocol forName:SDLRPCParameterNameVideoProtocol]; } - (SDLVideoStreamingCodec)codec { - return [store sdl_objectForName:SDLNameVideoCodec]; + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameVideoCodec error:&error]; } - (void)setCodec:(SDLVideoStreamingCodec)codec { - [store sdl_setObject:codec forName:SDLNameVideoCodec]; + [self.store sdl_setObject:codec forName:SDLRPCParameterNameVideoCodec]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLViewControllerPresentable.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLViewControllerPresentable.h index 72cfd31..50006dd 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLViewControllerPresentable.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLViewControllerPresentable.h @@ -1,5 +1,5 @@ // -// SDLDialogPresenting.h +// SDLViewControllerPresentable.h // SmartDeviceLink-iOS // // Created by Joel Fischer on 7/15/16. @@ -8,15 +8,26 @@ #import -/** - * A protocol used to tell a view controller to present another view controller. This makes testing of modal VCs' presentation easier. - */ +NS_ASSUME_NONNULL_BEGIN + +typedef void (^SDLLockScreenDidFinishHandler)(void); + +/// A protocol used to tell a view controller to present another view controller. This makes testing of modal VCs' presentation easier. @protocol SDLViewControllerPresentable -@property (strong, nonatomic) UIViewController *lockViewController; -@property (assign, nonatomic, readonly) BOOL presented; +/// The view controller to be presented as a lockscreen +@property (strong, nonatomic, nullable) UIViewController *lockViewController; + +/// Whether or not the lockscreen should be presented +@property (assign, nonatomic, readonly) BOOL shouldShowLockScreen; -- (void)present; -- (void)dismiss; +/// Dismisses and destroys the lock screen window +- (void)stopWithCompletionHandler:(nullable SDLLockScreenDidFinishHandler)completionHandler; + +/// Shows or hides the lock screen with animation +/// @param show True if the lock screen should be presented; false if dismissed. +- (void)updateLockScreenToShow:(BOOL)show withCompletionHandler:(nullable SDLLockScreenDidFinishHandler)completionHandler; @end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommand.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommand.h index 252fbae..1ed0225 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommand.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommand.h @@ -10,8 +10,12 @@ NS_ASSUME_NONNULL_BEGIN +/** +The handler that will be called when the command is activated +*/ typedef void(^SDLVoiceCommandSelectionHandler)(void); +/// Voice commands available for the user to speak and be recognized by the IVI's voice recognition engine. @interface SDLVoiceCommand : NSObject /** @@ -24,6 +28,11 @@ typedef void(^SDLVoiceCommandSelectionHandler)(void); */ @property (copy, nonatomic, readonly, nullable) SDLVoiceCommandSelectionHandler handler; +/// Convenience init +/// +/// @param voiceCommands The strings the user can say to activate this voice command +/// @param handler The handler that will be called when the command is activated +/// @return An SDLVoiceCommand object - (instancetype)initWithVoiceCommands:(NSArray *)voiceCommands handler:(SDLVoiceCommandSelectionHandler)handler; @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommandManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommandManager.m index ef5027c..e9bd3d5 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommandManager.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommandManager.m @@ -17,6 +17,7 @@ #import "SDLNotificationConstants.h" #import "SDLOnCommand.h" #import "SDLOnHMIStatus.h" +#import "SDLPredefinedWindows.h" #import "SDLRPCNotificationNotification.h" #import "SDLRPCRequest.h" #import "SDLVoiceCommand.h" @@ -242,6 +243,11 @@ - (void)sdl_commandNotification:(SDLRPCNotificationNotification *)notification { - (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; + + if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { + return; + } + SDLHMILevel oldHMILevel = self.currentHMILevel; self.currentHMILevel = hmiStatus.hmiLevel; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.h index caa0ea0..9587da9 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.h @@ -12,8 +12,19 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLVRHelpItem : SDLRPCStruct +/// Convenience init to create a VR help item with the following parameters +/// +/// @param text Text to display for VR Help item +/// @param image Image for VR Help item +/// @return An SDLVRHelpItem object - (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image; +/// Convenience init to create a VR help item with all parameters +/// +/// @param text Text to display for VR Help item +/// @param image Image for VR Help item +/// @param position Position to display item in VR Help list +/// @return An SDLVRHelpItem object - (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image position:(UInt8)position; /** diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.m index 4136578..8a9424b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.m @@ -6,7 +6,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -36,27 +36,29 @@ - (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image { } - (void)setText:(NSString *)text { - [store sdl_setObject:text forName:SDLNameText]; + [self.store sdl_setObject:text forName:SDLRPCParameterNameText]; } - (NSString *)text { - return [store sdl_objectForName:SDLNameText]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameText ofClass:NSString.class error:&error]; } - (void)setImage:(nullable SDLImage *)image { - [store sdl_setObject:image forName:SDLNameImage]; + [self.store sdl_setObject:image forName:SDLRPCParameterNameImage]; } - (nullable SDLImage *)image { - return [store sdl_objectForName:SDLNameImage ofClass:SDLImage.class]; + return [self.store sdl_objectForName:SDLRPCParameterNameImage ofClass:SDLImage.class error:nil]; } - (void)setPosition:(NSNumber *)position { - [store sdl_setObject:position forName:SDLNamePosition]; + [self.store sdl_setObject:position forName:SDLRPCParameterNamePosition]; } - (NSNumber *)position { - return [store sdl_objectForName:SDLNamePosition]; + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNamePosition ofClass:NSNumber.class error:&error]; } @end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.h new file mode 100644 index 0000000..21d8545 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.h @@ -0,0 +1,76 @@ +// +// SDLWeatherAlert.h +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" +#import "SDLDateTime.h" + +NS_ASSUME_NONNULL_BEGIN + +/// Contains information about a weather alert +/// +/// @since RPC 5.1 +@interface SDLWeatherAlert : SDLRPCStruct + +/** + * Convenience init for all parameters + * + * @param title The title of the alert + * @param summary A summary for the alert + * @param expires The date the alert expires + * @param regions Regions affected + * @param severity Severity + * @param timeIssued The date the alert was issued + * @return A SDLWeatherAlert alert + */ +- (instancetype)initWithTitle:(nullable NSString *)title summary:(nullable NSString *)summary expires:(nullable SDLDateTime *)expires regions:(nullable NSArray *)regions severity:(nullable NSString *)severity timeIssued:(nullable SDLDateTime *)timeIssued; + +/** + * The title of the alert. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *title; + +/** + * A summary for the alert. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *summary; + +/** + * The date the alert expires. + * + * SDLDateTime, Optional + */ +@property (nullable, strong, nonatomic) SDLDateTime *expires; + +/** + * Regions affected. + * + * Array of Strings, Optional, minsize="1" maxsize="99" + */ +@property (nullable, strong, nonatomic) NSArray *regions; + +/** + * Severity of the weather alert. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *severity; + +/** + * The date the alert was issued. + * + * SDLDateTime, Optional + */ +@property (nullable, strong, nonatomic) SDLDateTime *timeIssued; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.m new file mode 100644 index 0000000..8d09e78 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.m @@ -0,0 +1,84 @@ +// +// SDLWeatherAlert.m +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLWeatherAlert.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLWeatherAlert + +- (instancetype)initWithTitle:(nullable NSString *)title summary:(nullable NSString *)summary expires:(nullable SDLDateTime *)expires regions:(nullable NSArray *)regions severity:(nullable NSString *)severity timeIssued:(nullable SDLDateTime *)timeIssued { + self = [self init]; + if (!self) { + return nil; + } + + self.title = title; + self.summary = summary; + self.expires = expires; + self.regions = regions; + self.severity = severity; + self.timeIssued = timeIssued; + + return self; +} + +- (void)setTitle:(nullable NSString *)title { + [self.store sdl_setObject:title forName:SDLRPCParameterNameTitle]; +} + +- (nullable NSString *)title { + return [self.store sdl_objectForName:SDLRPCParameterNameTitle ofClass:NSString.class error:nil]; +} + +- (void)setSummary:(nullable NSString *)summary { + [self.store sdl_setObject:summary forName:SDLRPCParameterNameSummary]; +} + +- (nullable NSString *)summary { + return [self.store sdl_objectForName:SDLRPCParameterNameSummary ofClass:NSString.class error:nil]; +} + +- (void)setExpires:(nullable SDLDateTime *)expires { + [self.store sdl_setObject:expires forName:SDLRPCParameterNameExpires]; +} + +- (nullable SDLDateTime *)expires { + return [self.store sdl_objectForName:SDLRPCParameterNameExpires ofClass:SDLDateTime.class error:nil]; +} + +- (void)setRegions:(nullable NSArray *)regions { + [self.store sdl_setObject:regions forName:SDLRPCParameterNameRegions]; +} + +- (nullable NSArray *)regions { + return [self.store sdl_objectsForName:SDLRPCParameterNameRegions ofClass:NSString.class error:nil]; +} + +- (void)setSeverity:(nullable NSString *)severity { + [self.store sdl_setObject:severity forName:SDLRPCParameterNameSeverity]; +} + +- (nullable NSString *)severity { + return [self.store sdl_objectForName:SDLRPCParameterNameSeverity ofClass:NSString.class error:nil]; +} + +- (void)setTimeIssued:(nullable SDLDateTime *)timeIssued { + [self.store sdl_setObject:timeIssued forName:SDLRPCParameterNameTimeIssued]; +} + +- (nullable SDLDateTime *)timeIssued { + return [self.store sdl_objectForName:SDLRPCParameterNameTimeIssued ofClass:SDLDateTime.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.h new file mode 100644 index 0000000..68ea63c --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.h @@ -0,0 +1,208 @@ +// +// SDLWeatherData.h +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +@class SDLDateTime; +@class SDLImage; +@class SDLTemperature; + + +NS_ASSUME_NONNULL_BEGIN + +/// Contains information about the current weather +/// +/// @since RPC 5.1 +@interface SDLWeatherData : SDLRPCStruct + +/** + * Convenience init for all parameters + * + * @param currentTemperature The current temperature + * @param temperatureHigh The predicted high temperature for the day + * @param temperatureLow The predicted low temperature for the day + * @param apparentTemperature The apparent temperature + * @param apparentTemperatureHigh The predicted high apparent temperature for the day + * @param apparentTemperatureLow The predicted low apparent temperature for the day + * @param weatherSummary A summary of the weather + * @param time The time this data refers to + * @param humidity From 0 to 1, percentage humidity + * @param cloudCover From 0 to 1, percentage cloud cover + * @param moonPhase From 0 to 1, percentage of the moon seen, e.g. 0 = no moon, 0.25 = quarter moon + * @param windBearing In degrees, true north at 0 degrees + * @param windGust In km/hr + * @param windSpeed In km/hr + * @param nearestStormBearing In degrees, true north at 0 degrees + * @param nearestStormDistance In km + * @param precipAccumulation In cm + * @param precipIntensity In cm of water per hour + * @param precipProbability From 0 to 1, percentage chance + * @param precipType A description of the precipitation type (e.g. "rain", "snow", "sleet", "hail") + * @param visibility In km + * @param weatherIcon The weather icon image + * @return A SDLWeatherData object + */ +- (instancetype)initWithCurrentTemperature:(nullable SDLTemperature *)currentTemperature temperatureHigh:(nullable SDLTemperature *)temperatureHigh temperatureLow:(nullable SDLTemperature *)temperatureLow apparentTemperature:(nullable SDLTemperature *)apparentTemperature apparentTemperatureHigh:(nullable SDLTemperature *)apparentTemperatureHigh apparentTemperatureLow:(nullable SDLTemperature *)apparentTemperatureLow weatherSummary:(nullable NSString *)weatherSummary time:(nullable SDLDateTime *)time humidity:(nullable NSNumber *)humidity cloudCover:(nullable NSNumber *)cloudCover moonPhase:(nullable NSNumber *)moonPhase windBearing:(nullable NSNumber *)windBearing windGust:(nullable NSNumber *)windGust windSpeed:(nullable NSNumber *)windSpeed nearestStormBearing:(nullable NSNumber *)nearestStormBearing nearestStormDistance:(nullable NSNumber *)nearestStormDistance precipAccumulation:(nullable NSNumber *)precipAccumulation precipIntensity:(nullable NSNumber *)precipIntensity precipProbability:(nullable NSNumber *)precipProbability precipType:(nullable NSString *)precipType visibility:(nullable NSNumber *)visibility weatherIcon:(nullable SDLImage *)weatherIcon; + +/** + * The current temperature. + * + * SDLTemperature, Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *currentTemperature; + +/** + * The predicted high temperature for the day. + * + * SDLTemperature, Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *temperatureHigh; + +/** + * The predicted low temperature for the day. + * + * SDLTemperature, Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *temperatureLow; + +/** + * The apparent temperature. + * + * SDLTemperature, Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *apparentTemperature; + +/** + * The predicted high apparent temperature for the day. + * + * SDLTemperature, Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *apparentTemperatureHigh; + +/** + * The predicted low apparent temperature for the day. + * + * SDLTemperature, Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *apparentTemperatureLow; + +/** + * A summary of the weather. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *weatherSummary; + +/** + * The time this data refers to. + * + * SDLDateTime, Optional + */ +@property (nullable, strong, nonatomic) SDLDateTime *time; + +/** + * From 0 to 1, percentage humidity. + * + * Float, Optional, minvalue="0" maxvalue="1" + */ +@property (nullable, strong, nonatomic) NSNumber *humidity; + +/** + * From 0 to 1, percentage cloud cover. + * + * Float, Optional, minvalue="0" maxvalue="1" + */ +@property (nullable, strong, nonatomic) NSNumber *cloudCover; + +/** + * From 0 to 1, percentage of the moon seen, e.g. 0 = no moon, 0.25 = quarter moon + * + * Float, Optional, minvalue="0" maxvalue="1" + */ +@property (nullable, strong, nonatomic) NSNumber *moonPhase; + +/** + * In degrees, true north at 0 degrees. + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *windBearing; + +/** + * In km/hr + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *windGust; + +/** + * In km/hr + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *windSpeed; + +/** + * In degrees, true north at 0 degrees. + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *nearestStormBearing; + +/** + * In km + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *nearestStormDistance; + +/** + * In cm + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *precipAccumulation; + +/** + * In cm of water per hour. + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *precipIntensity; + +/** + * From 0 to 1, percentage chance. + * + * Float, Optional, minvalue="0" maxvalue="1" + */ +@property (nullable, strong, nonatomic) NSNumber *precipProbability; + +/** + * A description of the precipitation type (e.g. "rain", "snow", "sleet", "hail") + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *precipType; + +/** + * In km + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *visibility; + +/** + * The weather icon image. + * + * SDLImage, Optional + */ +@property (nullable, strong, nonatomic) SDLImage *weatherIcon; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.m new file mode 100644 index 0000000..4be530e --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.m @@ -0,0 +1,231 @@ +// +// SDLWeatherData.m +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLWeatherData.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLDateTime.h" +#import "SDLImage.h" +#import "SDLRPCParameterNames.h" +#import "SDLTemperature.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLWeatherData + +- (instancetype)initWithCurrentTemperature:(nullable SDLTemperature *)currentTemperature temperatureHigh:(nullable SDLTemperature *)temperatureHigh temperatureLow:(nullable SDLTemperature *)temperatureLow apparentTemperature:(nullable SDLTemperature *)apparentTemperature apparentTemperatureHigh:(nullable SDLTemperature *)apparentTemperatureHigh apparentTemperatureLow:(nullable SDLTemperature *)apparentTemperatureLow weatherSummary:(nullable NSString *)weatherSummary time:(nullable SDLDateTime *)time humidity:(nullable NSNumber *)humidity cloudCover:(nullable NSNumber *)cloudCover moonPhase:(nullable NSNumber *)moonPhase windBearing:(nullable NSNumber *)windBearing windGust:(nullable NSNumber *)windGust windSpeed:(nullable NSNumber *)windSpeed nearestStormBearing:(nullable NSNumber *)nearestStormBearing nearestStormDistance:(nullable NSNumber *)nearestStormDistance precipAccumulation:(nullable NSNumber *)precipAccumulation precipIntensity:(nullable NSNumber *)precipIntensity precipProbability:(nullable NSNumber *)precipProbability precipType:(nullable NSString *)precipType visibility:(nullable NSNumber *)visibility weatherIcon:(nullable SDLImage *)weatherIcon { + self = [self init]; + if (!self) { + return nil; + } + + self.currentTemperature = currentTemperature; + self.temperatureHigh = temperatureHigh; + self.temperatureLow = temperatureLow; + self.apparentTemperature = apparentTemperature; + self.apparentTemperatureHigh = apparentTemperatureHigh; + self.apparentTemperatureLow = apparentTemperatureLow; + self.weatherSummary = weatherSummary; + self.time = time; + self.humidity = humidity; + self.cloudCover = cloudCover; + self.moonPhase = moonPhase; + self.windBearing = windBearing; + self.windGust = windGust; + self.windSpeed = windSpeed; + self.nearestStormBearing = nearestStormBearing; + self.nearestStormDistance = nearestStormDistance; + self.precipAccumulation = precipAccumulation; + self.precipIntensity = precipIntensity; + self.precipProbability = precipProbability; + self.precipType = precipType; + self.visibility = visibility; + self.weatherIcon = weatherIcon; + + return self; +} + +- (void)setCurrentTemperature:(nullable SDLTemperature *)currentTemperature { + [self.store sdl_setObject:currentTemperature forName:SDLRPCParameterNameCurrentTemperature]; +} + +- (nullable SDLTemperature *)currentTemperature { + return [self.store sdl_objectForName:SDLRPCParameterNameCurrentTemperature ofClass:SDLTemperature.class error:nil]; +} + +- (void)setTemperatureHigh:(nullable SDLTemperature *)temperatureHigh { + [self.store sdl_setObject:temperatureHigh forName:SDLRPCParameterNameTemperatureHigh]; +} + +- (nullable SDLTemperature *)temperatureHigh { + return [self.store sdl_objectForName:SDLRPCParameterNameTemperatureHigh ofClass:SDLTemperature.class error:nil]; +} + +- (void)setTemperatureLow:(nullable SDLTemperature *)temperatureLow { + [self.store sdl_setObject:temperatureLow forName:SDLRPCParameterNameTemperatureLow]; +} + +- (nullable SDLTemperature *)temperatureLow { + return [self.store sdl_objectForName:SDLRPCParameterNameTemperatureLow ofClass:SDLTemperature.class error:nil]; +} + +- (void)setApparentTemperature:(nullable SDLTemperature *)apparentTemperature { + [self.store sdl_setObject:apparentTemperature forName:SDLRPCParameterNameApparentTemperature]; +} + +- (nullable SDLTemperature *)apparentTemperature { + return [self.store sdl_objectForName:SDLRPCParameterNameApparentTemperature ofClass:SDLTemperature.class error:nil]; +} + +- (void)setApparentTemperatureHigh:(nullable SDLTemperature *)apparentTemperatureHigh { + [self.store sdl_setObject:apparentTemperatureHigh forName:SDLRPCParameterNameApparentTemperatureHigh]; +} + +- (nullable SDLTemperature *)apparentTemperatureHigh { + return [self.store sdl_objectForName:SDLRPCParameterNameApparentTemperatureHigh ofClass:SDLTemperature.class error:nil]; +} + +- (void)setApparentTemperatureLow:(nullable SDLTemperature *)apparentTemperatureLow { + [self.store sdl_setObject:apparentTemperatureLow forName:SDLRPCParameterNameApparentTemperatureLow]; +} + +- (nullable SDLTemperature *)apparentTemperatureLow { + return [self.store sdl_objectForName:SDLRPCParameterNameApparentTemperatureLow ofClass:SDLTemperature.class error:nil]; +} + +- (void)setWeatherSummary:(nullable NSString *)weatherSummary { + [self.store sdl_setObject:weatherSummary forName:SDLRPCParameterNameWeatherSummary]; +} + +- (nullable NSString *)weatherSummary { + return [self.store sdl_objectForName:SDLRPCParameterNameWeatherSummary ofClass:NSString.class error:nil]; +} + +- (void)setTime:(nullable SDLDateTime *)time { + [self.store sdl_setObject:time forName:SDLRPCParameterNameTime]; +} + +- (nullable SDLDateTime *)time { + return [self.store sdl_objectForName:SDLRPCParameterNameTime ofClass:SDLDateTime.class error:nil]; +} + +- (void)setHumidity:(nullable NSNumber *)humidity { + [self.store sdl_setObject:humidity forName:SDLRPCParameterNameHumidity]; +} + +- (nullable NSNumber *)humidity { + return [self.store sdl_objectForName:SDLRPCParameterNameHumidity ofClass:NSNumber.class error:nil]; +} + +- (void)setCloudCover:(nullable NSNumber *)cloudCover { + [self.store sdl_setObject:cloudCover forName:SDLRPCParameterNameCloudCover]; +} + +- (nullable NSNumber *)cloudCover { + return [self.store sdl_objectForName:SDLRPCParameterNameCloudCover ofClass:NSNumber.class error:nil]; +} + +- (void)setMoonPhase:(nullable NSNumber *)moonPhase { + [self.store sdl_setObject:moonPhase forName:SDLRPCParameterNameMoonPhase]; +} + +- (nullable NSNumber *)moonPhase { + return [self.store sdl_objectForName:SDLRPCParameterNameMoonPhase ofClass:NSNumber.class error:nil]; +} + +- (void)setWindBearing:(nullable NSNumber *)windBearing { + [self.store sdl_setObject:windBearing forName:SDLRPCParameterNameWindBearing]; +} + +- (nullable NSNumber *)windBearing { + return [self.store sdl_objectForName:SDLRPCParameterNameWindBearing ofClass:NSNumber.class error:nil]; +} + +- (void)setWindGust:(nullable NSNumber *)windGust { + [self.store sdl_setObject:windGust forName:SDLRPCParameterNameWindGust]; +} + +- (nullable NSNumber *)windGust { + return [self.store sdl_objectForName:SDLRPCParameterNameWindGust ofClass:NSNumber.class error:nil]; +} + +- (void)setWindSpeed:(nullable NSNumber *)windSpeed { + [self.store sdl_setObject:windSpeed forName:SDLRPCParameterNameWindSpeed]; +} + +- (nullable NSNumber *)windSpeed { + return [self.store sdl_objectForName:SDLRPCParameterNameWindSpeed ofClass:NSNumber.class error:nil]; +} + +- (void)setNearestStormBearing:(nullable NSNumber *)nearestStormBearing { + [self.store sdl_setObject:nearestStormBearing forName:SDLRPCParameterNameNearestStormBearing]; +} + +- (nullable NSNumber *)nearestStormBearing { + return [self.store sdl_objectForName:SDLRPCParameterNameNearestStormBearing ofClass:NSNumber.class error:nil]; +} + +- (void)setNearestStormDistance:(nullable NSNumber *)nearestStormDistance { + [self.store sdl_setObject:nearestStormDistance forName:SDLRPCParameterNameNearestStormDistance]; +} + +- (nullable NSNumber *)nearestStormDistance { + return [self.store sdl_objectForName:SDLRPCParameterNameNearestStormDistance ofClass:NSNumber.class error:nil]; +} + +- (void)setPrecipAccumulation:(nullable NSNumber *)precipAccumulation { + [self.store sdl_setObject:precipAccumulation forName:SDLRPCParameterNamePrecipAccumulation]; +} + +- (nullable NSNumber *)precipAccumulation { + return [self.store sdl_objectForName:SDLRPCParameterNamePrecipAccumulation ofClass:NSNumber.class error:nil]; +} + +- (void)setPrecipIntensity:(nullable NSNumber *)precipIntensity { + [self.store sdl_setObject:precipIntensity forName:SDLRPCParameterNamePrecipIntensity]; +} + +- (nullable NSNumber *)precipIntensity { + return [self.store sdl_objectForName:SDLRPCParameterNamePrecipIntensity ofClass:NSNumber.class error:nil]; +} + +- (void)setPrecipProbability:(nullable NSNumber *)precipProbability { + [self.store sdl_setObject:precipProbability forName:SDLRPCParameterNamePrecipProbability]; +} + +- (nullable NSNumber *)precipProbability { + return [self.store sdl_objectForName:SDLRPCParameterNamePrecipProbability ofClass:NSNumber.class error:nil]; +} + +- (void)setPrecipType:(nullable NSString *)precipType { + [self.store sdl_setObject:precipType forName:SDLRPCParameterNamePrecipType]; +} + +- (nullable NSString *)precipType { + return [self.store sdl_objectForName:SDLRPCParameterNamePrecipType ofClass:NSString.class error:nil]; +} + +- (void)setVisibility:(nullable NSNumber *)visibility { + [self.store sdl_setObject:visibility forName:SDLRPCParameterNameVisibility]; +} + +- (nullable NSNumber *)visibility { + return [self.store sdl_objectForName:SDLRPCParameterNameVisibility ofClass:NSNumber.class error:nil]; +} + +- (void)setWeatherIcon:(nullable SDLImage *)weatherIcon { + [self.store sdl_setObject:weatherIcon forName:SDLRPCParameterNameWeatherIcon]; +} + +- (nullable SDLImage *)weatherIcon { + return [self.store sdl_objectForName:SDLRPCParameterNameWeatherIcon ofClass:SDLImage.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.h new file mode 100644 index 0000000..488e30f --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.h @@ -0,0 +1,87 @@ +// +// SDLWeatherServiceData.h +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +#import "SDLLocationDetails.h" +#import "SDLWeatherData.h" +#import "SDLWeatherAlert.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * This data is related to what a weather service would provide. + */ +@interface SDLWeatherServiceData : SDLRPCStruct + +/** + * Convenience init for required parameters. + * + * @param location The location + * @return A SDLWeatherServiceData object + */ +- (instancetype)initWithLocation:(SDLLocationDetails *)location NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for all parameters. + * + * @param location The location + * @param currentForecast The current forecast + * @param minuteForecast A minute-by-minute array of forecasts + * @param hourlyForecast An hour-by-hour array of forecasts + * @param multidayForecast A day-by-day array of forecasts + * @param alerts An array of weather alerts + * @return A SDLWeatherServiceData object + */ +- (instancetype)initWithLocation:(SDLLocationDetails *)location currentForecast:(nullable SDLWeatherData *)currentForecast minuteForecast:(nullable NSArray *)minuteForecast hourlyForecast:(nullable NSArray *)hourlyForecast multidayForecast:(nullable NSArray *)multidayForecast alerts:(nullable NSArray *)alerts; + +/** + * The location. + * + * SDLLocationDetails, Required + */ +@property (strong, nonatomic) SDLLocationDetails *location; + +/** + * The current forecast. + * + * SDLWeatherData, Optional + */ +@property (nullable, strong, nonatomic) SDLWeatherData *currentForecast; + +/** + * A minute-by-minute array of forecasts. + * + * Array of SDLWeatherData, Optional, minsize="15" maxsize="60" + */ +@property (nullable, strong, nonatomic) NSArray *minuteForecast; + +/** + * An hour-by-hour array of forecasts. + * + * Array of SDLWeatherData, Optional, minsize="1" maxsize="96" + */ +@property (nullable, strong, nonatomic) NSArray *hourlyForecast; + +/** + * A day-by-day array of forecasts. + * + * Array of SDLWeatherData, Optional, minsize="1" maxsize="30" + */ +@property (nullable, strong, nonatomic) NSArray *multidayForecast; + +/** + * An array of weather alerts. This array should be ordered with the first object being the current day. + * + * Array of SDLWeatherData, Optional, minsize="1" maxsize="10" + */ +@property (nullable, strong, nonatomic) NSArray *alerts; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.m new file mode 100644 index 0000000..60b110e --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.m @@ -0,0 +1,95 @@ +// +// SDLWeatherServiceData.m +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLWeatherServiceData.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLWeatherServiceData + +- (instancetype)initWithLocation:(SDLLocationDetails *)location { + self = [super init]; + if (!self) { + return nil; + } + + self.location = location; + + return self; +} + +- (instancetype)initWithLocation:(SDLLocationDetails *)location currentForecast:(nullable SDLWeatherData *)currentForecast minuteForecast:(nullable NSArray *)minuteForecast hourlyForecast:(nullable NSArray *)hourlyForecast multidayForecast:(nullable NSArray *)multidayForecast alerts:(nullable NSArray *)alerts { + self = [self initWithLocation:location]; + if (!self) { + return nil; + } + + self.currentForecast = currentForecast; + self.minuteForecast = minuteForecast; + self.hourlyForecast = hourlyForecast; + self.multidayForecast = multidayForecast; + self.alerts = alerts; + + return self; +} + +- (void)setLocation:(SDLLocationDetails *)location { + [self.store sdl_setObject:location forName:SDLRPCParameterNameLocation]; +} + +- (SDLLocationDetails *)location { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLocation ofClass:SDLLocationDetails.class error:&error]; +} + +- (void)setCurrentForecast:(nullable SDLWeatherData *)currentForecast { + [self.store sdl_setObject:currentForecast forName:SDLRPCParameterNameCurrentForecast]; +} + +- (nullable SDLWeatherData *)currentForecast { + return [self.store sdl_objectForName:SDLRPCParameterNameCurrentForecast ofClass:SDLWeatherData.class error:nil]; +} + +- (void)setMinuteForecast:(nullable NSArray *)minuteForecast { + [self.store sdl_setObject:minuteForecast forName:SDLRPCParameterNameMinuteForecast]; +} + +- (nullable NSArray *)minuteForecast { + return [self.store sdl_objectsForName:SDLRPCParameterNameMinuteForecast ofClass:SDLWeatherData.class error:nil]; +} + +- (void)setHourlyForecast:(nullable NSArray *)hourlyForecast { + [self.store sdl_setObject:hourlyForecast forName:SDLRPCParameterNameHourlyForecast]; +} + +- (nullable NSArray *)hourlyForecast { + return [self.store sdl_objectsForName:SDLRPCParameterNameHourlyForecast ofClass:SDLWeatherData.class error:nil]; +} + +- (void)setMultidayForecast:(nullable NSArray *)multidayForecast { + [self.store sdl_setObject:multidayForecast forName:SDLRPCParameterNameMultidayForecast]; +} + +- (nullable NSArray *)multidayForecast { + return [self.store sdl_objectsForName:SDLRPCParameterNameMultidayForecast ofClass:SDLWeatherData.class error:nil]; +} + +- (void)setAlerts:(nullable NSArray *)alerts { + [self.store sdl_setObject:alerts forName:SDLRPCParameterNameAlerts]; +} + +- (nullable NSArray *)alerts { + return [self.store sdl_objectsForName:SDLRPCParameterNameAlerts ofClass:SDLWeatherAlert.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.h new file mode 100644 index 0000000..761474b --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.h @@ -0,0 +1,67 @@ +// +// SDLWeatherServiceManifest.h +// SmartDeviceLink +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * A weather service manifest. + */ +@interface SDLWeatherServiceManifest : SDLRPCStruct + +/** + * Convenience init for all parameters. + * + * @param currentForecastSupported Whether or not the current forcast is supported. + * @param maxMultidayForecastAmount The maximum number of day-by-day forecasts. + * @param maxHourlyForecastAmount The maximum number of hour-by-hour forecasts. + * @param maxMinutelyForecastAmount The maximum number of minute-by-minute forecasts. + * @param weatherForLocationSupported Whether or not the weather for location is supported. + * @return A SDLWeatherServiceManifest object + */ +- (instancetype)initWithCurrentForecastSupported:(BOOL)currentForecastSupported maxMultidayForecastAmount:(UInt32)maxMultidayForecastAmount maxHourlyForecastAmount:(UInt32)maxHourlyForecastAmount maxMinutelyForecastAmount:(UInt32)maxMinutelyForecastAmount weatherForLocationSupported:(BOOL)weatherForLocationSupported; + +/** + * Whether or not the current forcast is supported. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *currentForecastSupported; + +/** + * The maximum number of day-by-day forecasts. + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *maxMultidayForecastAmount; + +/** + * The maximum number of hour-by-hour forecasts. + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *maxHourlyForecastAmount; + +/** + * The maximum number of minute-by-minute forecasts. + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *maxMinutelyForecastAmount; + +/** + * Whether or not the weather for location is supported. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber *weatherForLocationSupported; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.m new file mode 100644 index 0000000..753a152 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.m @@ -0,0 +1,75 @@ +// +// SDLWeatherServiceManifest.m +// SmartDeviceLink +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLWeatherServiceManifest.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLWeatherServiceManifest + +- (instancetype)initWithCurrentForecastSupported:(BOOL)currentForecastSupported maxMultidayForecastAmount:(UInt32)maxMultidayForecastAmount maxHourlyForecastAmount:(UInt32)maxHourlyForecastAmount maxMinutelyForecastAmount:(UInt32)maxMinutelyForecastAmount weatherForLocationSupported:(BOOL)weatherForLocationSupported { + self = [self init]; + if (!self) { + return nil; + } + + self.currentForecastSupported = @(currentForecastSupported); + self.maxMultidayForecastAmount = @(maxMultidayForecastAmount); + self.maxHourlyForecastAmount = @(maxHourlyForecastAmount); + self.maxMinutelyForecastAmount = @(maxMinutelyForecastAmount); + self.weatherForLocationSupported = @(weatherForLocationSupported); + + return self; +} + +- (void)setCurrentForecastSupported:(nullable NSNumber *)currentForecastSupported { + [self.store sdl_setObject:currentForecastSupported forName:SDLRPCParameterNameCurrentForecastSupported]; +} + +- (nullable NSNumber *)currentForecastSupported { + return [self.store sdl_objectForName:SDLRPCParameterNameCurrentForecastSupported ofClass:NSNumber.class error:nil]; +} + +- (void)setMaxMultidayForecastAmount:(nullable NSNumber *)maxMultidayForecastAmount { + [self.store sdl_setObject:maxMultidayForecastAmount forName:SDLRPCParameterNameMaxMultidayForecastAmount]; +} + +- (nullable NSNumber *)maxMultidayForecastAmount { + return [self.store sdl_objectForName:SDLRPCParameterNameMaxMultidayForecastAmount ofClass:NSNumber.class error:nil]; +} + +- (void)setMaxHourlyForecastAmount:(nullable NSNumber *)maxHourlyForecastAmount { + [self.store sdl_setObject:maxHourlyForecastAmount forName:SDLRPCParameterNameMaxHourlyForecastAmount]; +} + +- (nullable NSNumber *)maxHourlyForecastAmount { + return [self.store sdl_objectForName:SDLRPCParameterNameMaxHourlyForecastAmount ofClass:NSNumber.class error:nil]; +} + +- (void)setMaxMinutelyForecastAmount:(nullable NSNumber *)maxMinutelyForecastAmount { + [self.store sdl_setObject:maxMinutelyForecastAmount forName:SDLRPCParameterNameMaxMinutelyForecastAmount]; +} + +- (nullable NSNumber *)maxMinutelyForecastAmount { + return [self.store sdl_objectForName:SDLRPCParameterNameMaxMinutelyForecastAmount ofClass:NSNumber.class error:nil]; +} + +- (void)setWeatherForLocationSupported:(nullable NSNumber *)weatherForLocationSupported { + [self.store sdl_setObject:weatherForLocationSupported forName:SDLRPCParameterNameWeatherForLocationSupported]; +} + +- (nullable NSNumber *)weatherForLocationSupported { + return [self.store sdl_objectForName:SDLRPCParameterNameWeatherForLocationSupported ofClass:NSNumber.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.h new file mode 100644 index 0000000..9321c98 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.h @@ -0,0 +1,26 @@ +// +// SDLWindowCapability+ShowManagerExtensions.h +// SmartDeviceLink +// +// Created by Joel Fischer on 2/28/18. +// Updated by Kujtim Shala (Ford) on 13.09.19. +// - Renamed and adapted for WindowCapability +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLImageFieldName.h" +#import "SDLTextFieldName.h" +#import "SDLWindowCapability.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLWindowCapability (ScreenManagerExtensions) + +@property (assign, nonatomic, readonly) NSUInteger maxNumberOfMainFieldLines; + +- (BOOL)hasTextFieldOfName:(SDLTextFieldName)name; +- (BOOL)hasImageFieldOfName:(SDLImageFieldName)name; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities+ShowManagerExtensions.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.m similarity index 76% rename from Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities+ShowManagerExtensions.m rename to Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.m index 188b107..441356a 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities+ShowManagerExtensions.m +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.m @@ -1,16 +1,18 @@ // -// SDLDisplayCapabilities+ShowManagerExtensions.m +// SDLWindowCapability+ShowManagerExtensions.m // SmartDeviceLink // // Created by Joel Fischer on 2/28/18. -// Copyright © 2018 smartdevicelink. All rights reserved. +// Updated by Kujtim Shala (Ford) on 13.09.19. +// - Renamed and adapted for WindowCapability +// Copyright © 2019 smartdevicelink. All rights reserved. // -#import "SDLDisplayCapabilities+ShowManagerExtensions.h" +#import "SDLWindowCapability+ScreenManagerExtensions.h" #import "SDLImageField.h" #import "SDLTextField.h" -@implementation SDLDisplayCapabilities (ShowManagerExtensions) +@implementation SDLWindowCapability (ScreenManagerExtensions) - (BOOL)hasTextFieldOfName:(SDLTextFieldName)name { for (SDLTextField *textField in self.textFields) { @@ -25,6 +27,7 @@ - (BOOL)hasTextFieldOfName:(SDLTextFieldName)name { - (NSUInteger)maxNumberOfMainFieldLines { NSInteger highestFound = 0; for (SDLTextField *textField in self.textFields) { + if (![textField.name isKindOfClass:[NSString class]]) { continue; } if ([textField.name isEqualToString:SDLTextFieldNameMainField1] || [textField.name isEqualToString:SDLTextFieldNameMainField2] || [textField.name isEqualToString:SDLTextFieldNameMainField3] @@ -40,10 +43,6 @@ - (NSUInteger)maxNumberOfMainFieldLines { } - (BOOL)hasImageFieldOfName:(SDLImageFieldName)name { - if (!self.graphicSupported.boolValue) { - return NO; - } - for (SDLImageField *imageField in self.imageFields) { if ([imageField.name isEqualToString:name]) { return YES; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.h new file mode 100644 index 0000000..8360416 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.h @@ -0,0 +1,89 @@ +// +// SDLWindowCapability.h +// SmartDeviceLink + +#import "SDLRPCStruct.h" +#import "SDLImageType.h" +#import "SDLMenuLayout.h" + +@class SDLTextField; +@class SDLImageField; +@class SDLButtonCapabilities; +@class SDLSoftButtonCapabilities; + + +NS_ASSUME_NONNULL_BEGIN + +/** + Reflects content of DisplayCapabilities, ButtonCapabilities and SoftButtonCapabilities + + @since SDL 6.0 + */ +@interface SDLWindowCapability : SDLRPCStruct + +/** + The specified ID of the window. Can be set to a predefined window, or omitted for the main window on the main display. + + Size: min 1 max 100 + */ +@property (nullable, strong, nonatomic) NSNumber *windowID; + +/** + A set of all fields that support text data. @see TextField + + Size: min 1 max 100 + */ +@property (nullable, strong, nonatomic) NSArray *textFields; + +/** + A set of all fields that support images. @see ImageField + + Size: min 0 max 1000 + */ +@property (nullable, strong, nonatomic) NSArray *imageFields; + +/** + Provides information about image types supported by the system. + + Size: min 0 max 1000 + */ +@property (nullable, strong, nonatomic) NSArray *imageTypeSupported; + +/** + A set of all window templates available on the head unit. + + Size: min 0 max 100 + */ +@property (nullable, strong, nonatomic) NSArray *templatesAvailable; + +/** + The number of on-window custom presets available (if any); otherwise omitted. + + Size: min 1 max 100 + */ +@property (nullable, strong, nonatomic) NSNumber *numCustomPresetsAvailable; + +/** + The number of buttons and the capabilities of each on-window button. + + Size: min 1 max 100 + */ +@property (nullable, strong, nonatomic) NSArray *buttonCapabilities; + +/** + The number of soft buttons available on-window and the capabilities for each button. + + Size: min 1 max 100 + */ +@property (nullable, strong, nonatomic) NSArray *softButtonCapabilities; + +/** + An array of available menu layouts. If this parameter is not provided, only the `LIST` layout is assumed to be available. + + Optional, array of 1 to 100, see SDLMenuLayout + */ +@property (nullable, strong, nonatomic) NSArray *menuLayoutsAvailable; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.m new file mode 100644 index 0000000..509e2aa --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.m @@ -0,0 +1,89 @@ +// +// SDLWindowCapability.m +// SmartDeviceLink + +#import "SDLWindowCapability.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLTextField.h" +#import "SDLImageField.h" +#import "SDLButtonCapabilities.h" +#import "SDLSoftButtonCapabilities.h" + +@implementation SDLWindowCapability + +- (void)setWindowID:(nullable NSNumber *)windowID { + [self.store sdl_setObject:windowID forName:SDLRPCParameterNameWindowId]; +} + +- (nullable NSNumber *)windowID { + return [self.store sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:nil]; +} + +- (void)setTextFields:(nullable NSArray *)textFields { + [self.store sdl_setObject:textFields forName:SDLRPCParameterNameTextFields]; +} + +- (nullable NSArray *)textFields { + return [self.store sdl_objectsForName:SDLRPCParameterNameTextFields ofClass:SDLTextField.class error:nil]; +} + +- (void)setImageFields:(nullable NSArray *)imageFields { + [self.store sdl_setObject:imageFields forName:SDLRPCParameterNameImageFields]; +} + +- (nullable NSArray *)imageFields { + return [self.store sdl_objectsForName:SDLRPCParameterNameImageFields ofClass:SDLImageField.class error:nil]; +} + +- (void)setImageTypeSupported:(nullable NSArray *)imageTypeSupported { + [self.store sdl_setObject:imageTypeSupported forName:SDLRPCParameterNameImageTypeSupported]; +} + +- (nullable NSArray *)imageTypeSupported { + return [self.store sdl_enumsForName:SDLRPCParameterNameImageTypeSupported error:nil]; +} + +- (void)setTemplatesAvailable:(nullable NSArray *)templatesAvailable { + [self.store sdl_setObject:templatesAvailable forName:SDLRPCParameterNameTemplatesAvailable]; +} + +- (nullable NSArray *)templatesAvailable { + return [self.store sdl_objectsForName:SDLRPCParameterNameTemplatesAvailable ofClass:NSString.class error:nil]; +} + +- (void)setNumCustomPresetsAvailable:(nullable NSNumber *)numCustomPresetsAvailable { + [self.store sdl_setObject:numCustomPresetsAvailable forName:SDLRPCParameterNameNumberCustomPresetsAvailable]; +} + +- (nullable NSNumber *)numCustomPresetsAvailable { + return [self.store sdl_objectForName:SDLRPCParameterNameNumberCustomPresetsAvailable ofClass:NSNumber.class error:nil]; +} + +- (void)setButtonCapabilities:(nullable NSArray *)buttonCapabilities { + [self.store sdl_setObject:buttonCapabilities forName:SDLRPCParameterNameButtonCapabilities]; +} + +- (nullable NSArray *)buttonCapabilities { + return [self.store sdl_objectsForName:SDLRPCParameterNameButtonCapabilities ofClass:SDLButtonCapabilities.class error:nil]; +} + + +- (void)setSoftButtonCapabilities:(nullable NSArray *)softButtonCapabilities { + [self.store sdl_setObject:softButtonCapabilities forName:SDLRPCParameterNameSoftButtonCapabilities]; +} + +- (nullable NSArray *)softButtonCapabilities { + return [self.store sdl_objectsForName:SDLRPCParameterNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class error:nil]; +} + +- (void)setMenuLayoutsAvailable:(nullable NSArray *)menuLayoutsAvailable { + [self.store sdl_setObject:menuLayoutsAvailable forName:SDLRPCParameterNameMenuLayoutsAvailable]; +} + +- (nullable NSArray *)menuLayoutsAvailable { + return [self.store sdl_enumsForName:SDLRPCParameterNameMenuLayoutsAvailable error:nil]; +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.h new file mode 100644 index 0000000..5dca1b3 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.h @@ -0,0 +1,21 @@ +// +// SDLWindowType.h +// SmartDeviceLink + +#import "SDLEnum.h" +/** + The type of the window to be created. Main window or widget. + + @since SDL 6.0 + */ +typedef SDLEnum SDLWindowType SDL_SWIFT_ENUM; + +/** + This window type describes the main window on a display. + */ +extern SDLWindowType const SDLWindowTypeMain; + +/** + A widget is a small window that the app can create to provide information and soft buttons for quick app control. + */ +extern SDLWindowType const SDLWindowTypeWidget; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.m new file mode 100644 index 0000000..90678e3 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.m @@ -0,0 +1,8 @@ +// +// SDLWindowType.m +// SmartDeviceLink + +#import "SDLWindowType.h" + +SDLWindowType const SDLWindowTypeMain = @"MAIN"; +SDLWindowType const SDLWindowTypeWidget = @"WIDGET"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.h new file mode 100644 index 0000000..551fd69 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.h @@ -0,0 +1,41 @@ +// +// SDLWindowTypeCapabilities.h +// SmartDeviceLink + +#import "SDLRPCStruct.h" +#import "SDLWindowType.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + Used to inform an app how many window instances per type that can be created. + + @since SDL 6.0 + */ +@interface SDLWindowTypeCapabilities : SDLRPCStruct + +/** + Init with required parameters + + @param type Type of windows available, to create. + @param maximumNumberOfWindows Number of windows available, to create. + */ +- (instancetype)initWithType:(SDLWindowType)type maximumNumberOfWindows:(UInt32)maximumNumberOfWindows; + +/** + Type of windows available, to create. + + Required + */ +@property (strong, nonatomic) SDLWindowType type; + +/** + Number of windows available, to create. + + Required + */ +@property (strong, nonatomic) NSNumber *maximumNumberOfWindows; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.m new file mode 100644 index 0000000..1e2212d --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.m @@ -0,0 +1,58 @@ +// +// SDLWindowTypeCapabilities.m +// SmartDeviceLink +// +// Created by cssoeutest1 on 16.07.19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLWindowTypeCapabilities.h" + + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLWindowTypeCapabilities + +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + return self; +} + +- (instancetype)initWithType:(SDLWindowType)type maximumNumberOfWindows:(UInt32)maximumNumberOfWindows { + self = [self init]; + if (!self) { + return nil; + } + self.type = type; + self.maximumNumberOfWindows = @(maximumNumberOfWindows); + return self; +} + +- (void)setType:(SDLWindowType)type { + [self.store sdl_setObject:type forName:SDLRPCParameterNameType]; +} + +- (SDLWindowType)type { + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameType error:&error]; +} + +- (void)setMaximumNumberOfWindows:(NSNumber *)maximumNumberOfWindows { + [self.store sdl_setObject:maximumNumberOfWindows forName:SDLRPCParameterNameMaximumNumberOfWindows]; +} + +- (NSNumber *)maximumNumberOfWindows { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameMaximumNumberOfWindows ofClass:NSNumber.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END + diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SmartDeviceLink.h b/Pods/SmartDeviceLink/SmartDeviceLink/SmartDeviceLink.h index 3dfd5e2..177d60b 100644 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SmartDeviceLink.h +++ b/Pods/SmartDeviceLink/SmartDeviceLink/SmartDeviceLink.h @@ -3,10 +3,10 @@ #import -//! Project version number for SmartDeviceLink. +/// Project version number for SmartDeviceLink. FOUNDATION_EXPORT double SmartDeviceLinkVersionNumber; -//! Project version string for SmartDeviceLink. +/// Project version string for SmartDeviceLink. FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; /***** RPCs *****/ @@ -24,24 +24,34 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLAlert.h" #import "SDLAlertManeuver.h" #import "SDLButtonPress.h" +#import "SDLCancelInteraction.h" #import "SDLChangeRegistration.h" +#import "SDLCloseApplication.h" #import "SDLCreateInteractionChoiceSet.h" +#import "SDLCreateWindow.h" #import "SDLDeleteCommand.h" #import "SDLDeleteFile.h" #import "SDLDeleteInteractionChoiceSet.h" #import "SDLDeleteSubMenu.h" +#import "SDLDeleteWindow.h" #import "SDLDiagnosticMessage.h" #import "SDLDialNumber.h" #import "SDLEncodedSyncPData.h" #import "SDLEndAudioPassThru.h" +#import "SDLGetCloudAppProperties.h" +#import "SDLGetAppServiceData.h" #import "SDLGetDTCs.h" +#import "SDLGetFile.h" #import "SDLGetInteriorVehicleData.h" +#import "SDLGetInteriorVehicleDataConsent.h" #import "SDLGetSystemCapability.h" #import "SDLGetVehicleData.h" #import "SDLGetWayPoints.h" #import "SDLListFiles.h" +#import "SDLPerformAppServiceInteraction.h" #import "SDLPerformAudioPassThru.h" #import "SDLPerformInteraction.h" +#import "SDLPublishAppService.h" #import "SDLPutFile.h" #import "SDLReadDID.h" #import "SDLRegisterAppInterface.h" @@ -50,11 +60,13 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSendHapticData.h" #import "SDLSendLocation.h" #import "SDLSetAppIcon.h" +#import "SDLSetCloudAppProperties.h" #import "SDLSetDisplayLayout.h" #import "SDLSetGlobalProperties.h" #import "SDLSetInteriorVehicleData.h" #import "SDLSetMediaClockTimer.h" #import "SDLShow.h" +#import "SDLShowAppMenu.h" #import "SDLShowConstantTBT.h" #import "SDLSlider.h" #import "SDLSpeak.h" @@ -62,6 +74,9 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSubscribeVehicleData.h" #import "SDLSubscribeWayPoints.h" #import "SDLSyncPData.h" +#import "SDLSystemRequest.h" +#import "SDLUnpublishAppService.h" +#import "SDLReleaseInteriorVehicleDataModule.h" #import "SDLUnregisterAppInterface.h" #import "SDLUnsubscribeButton.h" #import "SDLUnsubscribeVehicleData.h" @@ -74,25 +89,35 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLAlertManeuverResponse.h" #import "SDLAlertResponse.h" #import "SDLButtonPressResponse.h" +#import "SDLCancelInteractionResponse.h" #import "SDLChangeRegistrationResponse.h" +#import "SDLCloseApplicationResponse.h" #import "SDLCreateInteractionChoiceSetResponse.h" +#import "SDLCreateWindowResponse.h" #import "SDLDeleteCommandResponse.h" #import "SDLDeleteFileResponse.h" #import "SDLDeleteInteractionChoiceSetResponse.h" #import "SDLDeleteSubMenuResponse.h" +#import "SDLDeleteWindowResponse.h" #import "SDLDiagnosticMessageResponse.h" #import "SDLDialNumberResponse.h" #import "SDLEncodedSyncPDataResponse.h" #import "SDLEndAudioPassThruResponse.h" #import "SDLGenericResponse.h" +#import "SDLGetCloudAppPropertiesResponse.h" +#import "SDLGetAppServiceDataResponse.h" #import "SDLGetDTCsResponse.h" +#import "SDLGetFileResponse.h" +#import "SDLGetInteriorVehicleDataConsentResponse.h" #import "SDLGetInteriorVehicleDataResponse.h" #import "SDLGetSystemCapabilityResponse.h" #import "SDLGetVehicleDataResponse.h" #import "SDLGetWayPointsResponse.h" #import "SDLListFilesResponse.h" +#import "SDLPerformAppServiceInteractionResponse.h" #import "SDLPerformAudioPassThruResponse.h" #import "SDLPerformInteractionResponse.h" +#import "SDLPublishAppServiceResponse.h" #import "SDLPutFileResponse.h" #import "SDLReadDIDResponse.h" #import "SDLRegisterAppInterfaceResponse.h" @@ -101,18 +126,22 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSendHapticDataResponse.h" #import "SDLSendLocationResponse.h" #import "SDLSetAppIconResponse.h" +#import "SDLSetCloudAppPropertiesResponse.h" #import "SDLSetDisplayLayoutResponse.h" #import "SDLSetGlobalPropertiesResponse.h" #import "SDLSetInteriorVehicleDataResponse.h" #import "SDLSetMediaClockTimerResponse.h" #import "SDLShowConstantTBTResponse.h" #import "SDLShowResponse.h" +#import "SDLShowAppMenuResponse.h" #import "SDLSliderResponse.h" #import "SDLSpeakResponse.h" #import "SDLSubscribeButtonResponse.h" #import "SDLSubscribeVehicleDataResponse.h" #import "SDLSubscribeWayPointsResponse.h" #import "SDLSyncPDataResponse.h" +#import "SDLUnpublishAppServiceResponse.h" +#import "SDLReleaseInteriorVehicleDataModuleResponse.h" #import "SDLUnregisterAppInterfaceResponse.h" #import "SDLUnsubscribeButtonResponse.h" #import "SDLUnsubscribeVehicleDataResponse.h" @@ -121,6 +150,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; // Notifications #import "SDLOnAppInterfaceUnregistered.h" +#import "SDLOnAppServiceData.h" #import "SDLOnAudioPassThru.h" #import "SDLOnButtonEvent.h" #import "SDLOnButtonPress.h" @@ -136,6 +166,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLOnPermissionsChange.h" #import "SDLOnRCStatus.h" #import "SDLOnSyncPData.h" +#import "SDLOnSystemCapabilityUpdated.h" #import "SDLOnSystemRequest.h" #import "SDLOnTBTClientState.h" #import "SDLOnTouchEvent.h" @@ -145,6 +176,11 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; // Structs #import "SDLAirbagStatus.h" #import "SDLAppInfo.h" +#import "SDLAppServiceCapability.h" +#import "SDLAppServiceData.h" +#import "SDLAppServiceManifest.h" +#import "SDLAppServiceRecord.h" +#import "SDLAppServicesCapabilities.h" #import "SDLAudioControlData.h" #import "SDLAudioControlCapabilities.h" #import "SDLAudioPassThruCapabilities.h" @@ -155,16 +191,19 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLClusterModeStatus.h" #import "SDLClimateControlCapabilities.h" #import "SDLClimateControlData.h" +#import "SDLCloudAppProperties.h" #import "SDLDIDResult.h" #import "SDLDateTime.h" #import "SDLDeviceInfo.h" #import "SDLDeviceStatus.h" #import "SDLDisplayCapabilities.h" +#import "SDLDisplayCapability.h" #import "SDLECallInfo.h" #import "SDLEmergencyEvent.h" #import "SDLFuelRange.h" #import "SDLEqualizerSettings.h" #import "SDLGPSData.h" +#import "SDLGrid.h" #import "SDLHapticRect.h" #import "SDLHMICapabilities.h" #import "SDLHMIPermissions.h" @@ -183,11 +222,17 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLLocationDetails.h" #import "SDLMassageCushionFirmness.h" #import "SDLMassageModeData.h" +#import "SDLMediaServiceData.h" +#import "SDLMediaServiceManifest.h" #import "SDLMenuParams.h" #import "SDLMetadataTags.h" #import "SDLModuleData.h" +#import "SDLModuleInfo.h" #import "SDLMyKey.h" #import "SDLNavigationCapability.h" +#import "SDLNavigationInstruction.h" +#import "SDLNavigationServiceData.h" +#import "SDLNavigationServiceManifest.h" #import "SDLOasisAddress.h" #import "SDLParameterPermissions.h" #import "SDLPermissionItem.h" @@ -203,6 +248,8 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSeatControlCapabilities.h" #import "SDLSeatControlData.h" #import "SDLSeatMemoryAction.h" +#import "SDLSeatLocation.h" +#import "SDLSeatLocationCapability.h" #import "SDLSingleTireStatus.h" #import "SDLSISData.h" #import "SDLSoftButton.h" @@ -210,10 +257,12 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLStartTime.h" #import "SDLStationIDNumber.h" #import "SDLSyncMsgVersion.h" +#import "SDLMsgVersion.h" #import "SDLSystemCapability.h" #import "SDLTTSChunk.h" #import "SDLTemperature.h" #import "SDLTemplateColorScheme.h" +#import "SDLTemplateConfiguration.h" #import "SDLTextField.h" #import "SDLTireStatus.h" #import "SDLTouchCoord.h" @@ -225,11 +274,18 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLVideoStreamingCapability.h" #import "SDLVideoStreamingFormat.h" #import "SDLVrHelpItem.h" +#import "SDLWeatherAlert.h" +#import "SDLWeatherData.h" +#import "SDLWeatherServiceData.h" +#import "SDLWeatherServiceManifest.h" +#import "SDLWindowCapability.h" +#import "SDLWindowTypeCapabilities.h" // Enums #import "SDLAmbientLightStatus.h" #import "SDLAppHMIType.h" #import "SDLAppInterfaceUnregisteredReason.h" +#import "SDLAppServiceType.h" #import "SDLAudioStreamingState.h" #import "SDLAudioStreamingIndicator.h" #import "SDLAudioType.h" @@ -245,6 +301,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLDeliveryMode.h" #import "SDLDeviceLevelStatus.h" #import "SDLDimension.h" +#import "SDLDirection.h" #import "SDLDisplayMode.h" #import "SDLDisplayType.h" #import "SDLDistanceUnit.h" @@ -258,6 +315,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLGlobalProperty.h" #import "SDLHMILevel.h" #import "SDLHMIZoneCapabilities.h" +#import "SDLHybridAppPreference.h" #import "SDLIgnitionStableStatus.h" #import "SDLIgnitionStatus.h" #import "SDLImageFieldName.h" @@ -276,14 +334,20 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLMassageMode.h" #import "SDLMassageZone.h" #import "SDLMediaClockFormat.h" +#import "SDLMediaType.h" +#import "SDLMenuLayout.h" +#import "SDLMenuManagerConstants.h" #import "SDLMetadataType.h" #import "SDLModuleType.h" +#import "SDLNavigationAction.h" +#import "SDLNavigationJunction.h" #import "SDLPRNDL.h" #import "SDLPermissionStatus.h" #import "SDLPowerModeQualificationStatus.h" #import "SDLPowerModeStatus.h" #import "SDLPredefinedLayout.h" #import "SDLPrerecordedSpeech.h" +#import "SDLPredefinedWindows.h" #import "SDLPrimaryAudioSource.h" #import "SDLRadioBand.h" #import "SDLRadioState.h" @@ -292,6 +356,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLResult.h" #import "SDLSamplingRate.h" #import "SDLSeatMemoryActionType.h" +#import "SDLServiceUpdateReason.h" #import "SDLSupportedSeat.h" #import "SDLSoftButtonType.h" #import "SDLSpeechCapabilities.h" @@ -322,18 +387,25 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLVrCapabilities.h" #import "SDLWarningLightStatus.h" #import "SDLWayPointType.h" +#import "SDLWindowType.h" #import "SDLWiperStatus.h" // Developer API // Configurations #import "SDLConfiguration.h" +#import "SDLEncryptionConfiguration.h" #import "SDLFileManagerConfiguration.h" #import "SDLLifecycleConfiguration.h" #import "SDLLifecycleConfigurationUpdate.h" #import "SDLLockScreenConfiguration.h" #import "SDLStreamingMediaConfiguration.h" +// Encryption +#import "SDLProtocolConstants.h" +#import "SDLServiceEncryptionDelegate.h" + // Streaming +#import "SDLAudioFile.h" #import "SDLAudioStreamManager.h" #import "SDLAudioStreamManagerDelegate.h" #import "SDLCarWindowViewController.h" @@ -343,6 +415,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLTouchManagerDelegate.h" #import "SDLSecurityType.h" #import "SDLStreamingMediaManagerDataSource.h" +#import "SDLStreamingVideoScaleManager.h" // Files #import "SDLArtwork.h" @@ -362,6 +435,8 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; // Permissions #import "SDLPermissionConstants.h" +#import "SDLPermissionElement.h" +#import "SDLRPCPermissionStatus.h" #import "SDLPermissionManager.h" // Screen @@ -370,6 +445,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSoftButtonState.h" #import "SDLMenuCell.h" +#import "SDLMenuConfiguration.h" #import "SDLVoiceCommand.h" #import "SDLChoiceCell.h" @@ -384,12 +460,16 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; // Utilities #import "NSNumber+NumberType.h" #import "SDLErrorConstants.h" +#import "SDLFunctionID.h" +#import "SDLRPCFunctionNames.h" #import "SDLNotificationConstants.h" #import "SDLStreamingMediaManagerConstants.h" +#import "SDLVersion.h" // Notifications #import "SDLRPCNotificationNotification.h" #import "SDLRPCResponseNotification.h" +#import "SDLRPCRequestNotification.h" // Logger #import "SDLLogConstants.h" diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.h b/Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.h new file mode 100644 index 0000000..f2cde73 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.h @@ -0,0 +1,34 @@ +// +// TestSubscribeButtonObserver.h +// SmartDeviceLink +// +// Created by Nicole on 6/22/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLSubscribeButton.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface TestSubscribeButtonObserver : NSObject + +@property (assign, nonatomic) NSUInteger selectorCalledCount; +@property (strong, nonatomic, nullable) NSMutableArray *buttonNamesReceived; +@property (strong, nonatomic, nullable) NSMutableArray *buttonErrorsReceived; +@property (strong, nonatomic, nullable) NSMutableArray *buttonEventsReceived; +@property (strong, nonatomic, nullable) NSMutableArray *buttonPressesReceived; + +- (void)buttonPressEvent; +- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName; +- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error; +- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error buttonPress:(SDLOnButtonPress *)buttonPress; +- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error buttonPress:(SDLOnButtonPress *)buttonPress buttonEvent:(SDLOnButtonEvent *)buttonEvent; + +/// An invalid selector with too many parameters +- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error buttonPress:(SDLOnButtonPress *)buttonPress buttonEvent:(SDLOnButtonEvent *)buttonEvent extraParameter:(BOOL)extraParameter; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.m b/Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.m new file mode 100644 index 0000000..99f9f44 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.m @@ -0,0 +1,70 @@ +// +// TestSubscribeButtonObserver.m +// SmartDeviceLink +// +// Created by Nicole on 6/22/20. +// Copyright © 2020 smartdevicelink. All rights reserved. +// + +#import "TestSubscribeButtonObserver.h" + +@implementation TestSubscribeButtonObserver + +- (instancetype)init { + self = [super init]; + if (!self) { return nil; } + + _selectorCalledCount = 0; + _buttonNamesReceived = [NSMutableArray array]; + _buttonErrorsReceived = [NSMutableArray array]; + _buttonEventsReceived = [NSMutableArray array]; + _buttonPressesReceived = [NSMutableArray array]; + + return self; +} + +- (void)buttonPressEvent { + [self sdl_saveButtonName:nil buttonError:nil buttonPress:nil buttonEvent:nil]; +} + +- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName { + [self sdl_saveButtonName:buttonName buttonError:nil buttonPress:nil buttonEvent:nil]; +} + +- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error { + [self sdl_saveButtonName:buttonName buttonError:error buttonPress:nil buttonEvent:nil]; +} + +- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error buttonPress:(SDLOnButtonPress *)buttonPress { + [self sdl_saveButtonName:buttonName buttonError:error buttonPress:buttonPress buttonEvent:nil]; +} + +- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error buttonPress:(SDLOnButtonPress *)buttonPress buttonEvent:(SDLOnButtonEvent *)buttonEvent { + [self sdl_saveButtonName:buttonName buttonError:error buttonPress:buttonPress buttonEvent:buttonEvent]; +} + +- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error buttonPress:(SDLOnButtonPress *)buttonPress buttonEvent:(SDLOnButtonEvent *)buttonEvent extraParameter:(BOOL)extraParameter { + [self sdl_saveButtonName:buttonName buttonError:error buttonPress:buttonPress buttonEvent:buttonEvent]; +} + +- (void)sdl_saveButtonName:(nullable SDLButtonName)buttonName buttonError:(nullable NSError *)buttonError buttonPress:(nullable SDLOnButtonPress *)buttonPress buttonEvent:(nullable SDLOnButtonEvent *)buttonEvent { + self.selectorCalledCount++; + + if (buttonName != nil) { + [self.buttonNamesReceived addObject:buttonName]; + } + + if (buttonError != nil) { + [self.buttonErrorsReceived addObject:buttonError]; + } + + if (buttonPress != nil) { + [self.buttonPressesReceived addObject:buttonPress]; + } + + if (buttonEvent != nil) { + [self.buttonEventsReceived addObject:buttonEvent]; + } +} + +@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/dispatch_timer.h b/Pods/SmartDeviceLink/SmartDeviceLink/dispatch_timer.h deleted file mode 100644 index 1dd8bb9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/dispatch_timer.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// dispatch_timer.h -// MobileNav -// -// Created by Muller, Alexander (A.) on 5/12/16. -// Copyright © 2016 Alex Muller. All rights reserved. -// - -#ifndef dispatch_timer_h -#define dispatch_timer_h - -#include -#include - -dispatch_source_t dispatch_create_timer(double afterInterval, bool repeating, dispatch_block_t block); -void dispatch_stop_timer(dispatch_source_t timer); - -#endif /* dispatch_timer_h */ diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/dispatch_timer.m b/Pods/SmartDeviceLink/SmartDeviceLink/dispatch_timer.m deleted file mode 100644 index 445095e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/dispatch_timer.m +++ /dev/null @@ -1,38 +0,0 @@ -// -// dispatch_timer.c -// MobileNav -// -// Created by Muller, Alexander (A.) on 5/12/16. -// Copyright © 2016 Alex Muller. All rights reserved. -// - -#include "dispatch_timer.h" - -dispatch_source_t dispatch_create_timer(double afterInterval, bool repeating, dispatch_block_t block) { - dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, - 0); - dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, - 0, - 0, - queue); - dispatch_source_set_timer(timer, - dispatch_time(DISPATCH_TIME_NOW, (int64_t)(afterInterval * NSEC_PER_SEC)), - (uint64_t)(afterInterval * NSEC_PER_SEC), - (1ull * NSEC_PER_SEC) / 10); - dispatch_source_set_event_handler(timer, ^{ - if (!repeating) { - dispatch_stop_timer(timer); - } - if (block) { - block(); - } - }); - dispatch_resume(timer); - - return timer; -} - -void dispatch_stop_timer(dispatch_source_t timer) { - dispatch_source_set_event_handler(timer, NULL); - dispatch_source_cancel(timer); -} diff --git a/Pods/SmartDeviceLink/SmartDeviceLinkSwift/SDLLog.swift b/Pods/SmartDeviceLink/SmartDeviceLinkSwift/SDLLog.swift new file mode 100644 index 0000000..c7bc4b0 --- /dev/null +++ b/Pods/SmartDeviceLink/SmartDeviceLinkSwift/SDLLog.swift @@ -0,0 +1,118 @@ +// +// SDLLog.swift +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 3/2/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +import Foundation + +import SmartDeviceLink + + +/// You may use this class or the below functions for convenience logging in Swift 3 projects. +/// It would be used like so: +/// +/// ``` +/// let log = SDLLog.self +/// log.e("Test something \(NSDate())") +/// ``` +public class SDLLog { + /// Log a verbose message through SDL's custom logging framework. + /// + /// - Parameters: + /// - message: The message to be logged. + /// - file: The file the log is coming from, you should probably leave this as the default. + /// - function: The function the log is coming from, you should probably leave this as the default. + /// - line: The line the log is coming from, you should probably leave this as the default. + public class func v(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .verbose, timestamp: Date(), file: stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") + } + + /// Log a debug message through SDL's custom logging framework. + /// + /// - Parameters: + /// - message: The message to be logged. + /// - file: The file the log is coming from, you should probably leave this as the default. + /// - function: The function the log is coming from, you should probably leave this as the default. + /// - line: The line the log is coming from, you should probably leave this as the default. + public class func d(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .debug, timestamp: Date(), file: stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") + } + + /// Log a warning message through SDL's custom logging framework. + /// + /// - Parameters: + /// - message: The message to be logged. + /// - file: The file the log is coming from, you should probably leave this as the default. + /// - function: The function the log is coming from, you should probably leave this as the default. + /// - line: The line the log is coming from, you should probably leave this as the default. + public class func w(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .warning, timestamp: Date(), file: stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") + } + + /// Log an error message through SDL's custom logging framework. + /// + /// - Parameters: + /// - message: The message to be logged. + /// - file: The file the log is coming from, you should probably leave this as the default. + /// - function: The function the log is coming from, you should probably leave this as the default. + /// - line: The line the log is coming from, you should probably leave this as the default. + public class func e(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .error, timestamp: Date(), file: stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") + } + + class func stripFileName(_ file: String) -> String { + let url = URL(fileURLWithPath: file) + return url.deletingPathExtension().lastPathComponent + } +} + +/// Log a verbose message through SDL's custom logging framework. +/// +/// - Parameters: +/// - message: The message to be logged. +/// - file: The file the log is coming from, you should probably leave this as the default. +/// - function: The function the log is coming from, you should probably leave this as the default. +/// - line: The line the log is coming from, you should probably leave this as the default. +public func SDLV(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .verbose, timestamp: Date(), file: SDLLog.stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") +} + +/// Log a debug message through SDL's custom logging framework. +/// +/// - Parameters: +/// - message: The message to be logged. +/// - file: The file the log is coming from, you should probably leave this as the default. +/// - function: The function the log is coming from, you should probably leave this as the default. +/// - line: The line the log is coming from, you should probably leave this as the default. +public func SDLD(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .debug, timestamp: Date(), file: SDLLog.stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") +} + +/// Log a warning message through SDL's custom logging framework. +/// +/// - Parameters: +/// - message: The message to be logged. +/// - file: The file the log is coming from, you should probably leave this as the default. +/// - function: The function the log is coming from, you should probably leave this as the default. +/// - line: The line the log is coming from, you should probably leave this as the default. +public func SDLW(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .warning, timestamp: Date(), file: SDLLog.stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") +} + +/// Log an error message through SDL's custom logging framework. +/// +/// - Parameters: +/// - message: The message to be logged. +/// - file: The file the log is coming from, you should probably leave this as the default. +/// - function: The function the log is coming from, you should probably leave this as the default. +/// - line: The line the log is coming from, you should probably leave this as the default. +public func SDLE(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .error, timestamp: Date(), file: SDLLog.stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") +} + +private func logQueue() -> String { + return String(cString: __dispatch_queue_get_label(nil), encoding: .utf8) ?? "" +} diff --git a/Pods/Target Support Files/BiSON/BiSON-Info.plist b/Pods/Target Support Files/BiSON/BiSON-Info.plist new file mode 100644 index 0000000..2a9158a --- /dev/null +++ b/Pods/Target Support Files/BiSON/BiSON-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.2.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/BiSON/BiSON.debug.xcconfig b/Pods/Target Support Files/BiSON/BiSON.debug.xcconfig new file mode 100644 index 0000000..f7ba363 --- /dev/null +++ b/Pods/Target Support Files/BiSON/BiSON.debug.xcconfig @@ -0,0 +1,9 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BiSON +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/BiSON +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/BiSON/BiSON.release.xcconfig b/Pods/Target Support Files/BiSON/BiSON.release.xcconfig new file mode 100644 index 0000000..f7ba363 --- /dev/null +++ b/Pods/Target Support Files/BiSON/BiSON.release.xcconfig @@ -0,0 +1,9 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BiSON +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/BiSON +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-Info.plist b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.markdown b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.markdown index 43a09cd..7f0c139 100644 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.markdown @@ -34,7 +34,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## SmartDeviceLink -Copyright (c) 2017 - 2018 SmartDeviceLink Consortium, Inc. +Copyright (c) 2017 - 2020 SmartDeviceLink Consortium, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.plist b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.plist index 08c1b45..d7e4e05 100644 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.plist @@ -51,7 +51,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. FooterText - Copyright (c) 2017 - 2018 SmartDeviceLink Consortium, Inc. + Copyright (c) 2017 - 2020 SmartDeviceLink Consortium, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-frameworks.sh b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-frameworks.sh index 5a849cf..b20ac7b 100755 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-frameworks.sh +++ b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-frameworks.sh @@ -3,10 +3,15 @@ set -e set -u set -o pipefail +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then - # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy - # frameworks to, so exit 0 (signalling the script phase was successful). - exit 0 + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" @@ -36,19 +41,24 @@ install_framework() local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" + echo "Symlinked..." + source="$(readlink "${source}")" fi # Use filter instead of exclude so missing patterns don't throw errors. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" fi # Strip invalid architectures so "fat" simulator / device frameworks work on device @@ -62,7 +72,7 @@ install_framework() # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) for lib in $swift_runtime_libs; do echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" @@ -74,35 +84,45 @@ install_framework() # Copies and strips a vendored dSYM install_dsym() { local source="$1" + warn_missing_arch=${2:-true} if [ -r "$source" ]; then - # Copy the dSYM into a the targets temp dir. + # Copy the dSYM into the targets temp dir. echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" local basename - basename="$(basename -s .framework.dSYM "$source")" - binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + basename="$(basename -s .dSYM "$source")" + binary_name="$(ls "$source/Contents/Resources/DWARF")" + binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then - strip_invalid_archs "$binary" + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then + strip_invalid_archs "$binary" "$warn_missing_arch" fi if [[ $STRIP_BINARY_RETVAL == 1 ]]; then # Move the stripped file into its final destination. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" else # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. - touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" fi fi } +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identitiy + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" @@ -117,13 +137,16 @@ code_sign_if_enabled() { # Strip invalid architectures strip_invalid_archs() { binary="$1" + warn_missing_arch=${2:-true} # Get architectures for current target binary binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" # Intersect them with the architectures we are building for intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" # If there are no archs supported by this binary then warn the user if [[ -z "$intersected_archs" ]]; then - echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + if [[ "$warn_missing_arch" == "true" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + fi STRIP_BINARY_RETVAL=0 return fi @@ -131,7 +154,7 @@ strip_invalid_archs() { for arch in $binary_archs; do if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + lipo -remove "$arch" -output "$binary" "$binary" stripped="$stripped $arch" fi done @@ -141,6 +164,37 @@ strip_invalid_archs() { STRIP_BINARY_RETVAL=1 } +install_artifact() { + artifact="$1" + base="$(basename "$artifact")" + case $base in + *.framework) + install_framework "$artifact" + ;; + *.dSYM) + # Suppress arch warnings since XCFrameworks will include many dSYM files + install_dsym "$artifact" "false" + ;; + *.bcsymbolmap) + install_bcsymbolmap "$artifact" + ;; + *) + echo "error: Unrecognized artifact "$artifact"" + ;; + esac +} + +copy_artifacts() { + file_list="$1" + while read artifact; do + install_artifact "$artifact" + done <$file_list +} + +ARTIFACT_LIST_FILE="${BUILT_PRODUCTS_DIR}/cocoapods-artifacts-${CONFIGURATION}.txt" +if [ -r "${ARTIFACT_LIST_FILE}" ]; then + copy_artifacts "${ARTIFACT_LIST_FILE}" +fi if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/BiSON/BiSON.framework" diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.debug.xcconfig b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.debug.xcconfig index 826e654..c360b93 100644 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.debug.xcconfig +++ b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.debug.xcconfig @@ -1,9 +1,12 @@ +EMBEDDED_CONTENT_CONTAINS_SWIFT = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON/BiSON.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink/SmartDeviceLink.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/BiSON/BiSON.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink/SmartDeviceLink.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "BiSON" -framework "SmartDeviceLink" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig index 826e654..c360b93 100644 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig +++ b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig @@ -1,9 +1,12 @@ +EMBEDDED_CONTENT_CONTAINS_SWIFT = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON/BiSON.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink/SmartDeviceLink.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/BiSON/BiSON.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink/SmartDeviceLink.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "BiSON" -framework "SmartDeviceLink" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist b/Pods/Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist new file mode 100644 index 0000000..f19680e --- /dev/null +++ b/Pods/Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 6.6.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist new file mode 100644 index 0000000..3fe24c0 --- /dev/null +++ b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 6.6.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-umbrella.h b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-umbrella.h index 3dd6954..142d7d9 100644 --- a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-umbrella.h +++ b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-umbrella.h @@ -20,6 +20,12 @@ #import "SDLAlertManeuver.h" #import "SDLAlertManeuverResponse.h" #import "SDLAlertResponse.h" +#import "SDLAppServiceCapability.h" +#import "SDLAppServiceData.h" +#import "SDLAppServiceManifest.h" +#import "SDLAppServiceRecord.h" +#import "SDLAppServicesCapabilities.h" +#import "SDLAppServiceType.h" #import "SDLButtonPressResponse.h" #import "SDLAmbientLightStatus.h" #import "SDLAppHMIType.h" @@ -29,6 +35,7 @@ #import "SDLAudioControlData.h" #import "SDLAudioControlCapabilities.h" #import "SDLAudioPassThruCapabilities.h" +#import "SDLAudioFile.h" #import "SDLAudioStreamingState.h" #import "SDLAudioStreamingIndicator.h" #import "SDLAudioStreamManager.h" @@ -43,6 +50,8 @@ #import "SDLButtonName.h" #import "SDLButtonPress.h" #import "SDLButtonPressMode.h" +#import "SDLCancelInteraction.h" +#import "SDLCancelInteractionResponse.h" #import "SDLCarModeStatus.h" #import "SDLCarWindowViewController.h" #import "SDLChangeRegistration.h" @@ -54,12 +63,17 @@ #import "SDLChoiceSetDelegate.h" #import "SDLClimateControlCapabilities.h" #import "SDLClimateControlData.h" +#import "SDLCloseApplication.h" +#import "SDLCloseApplicationResponse.h" +#import "SDLCloudAppProperties.h" #import "SDLClusterModeStatus.h" #import "SDLCompassDirection.h" #import "SDLComponentVolumeStatus.h" #import "SDLConfiguration.h" #import "SDLCreateInteractionChoiceSet.h" #import "SDLCreateInteractionChoiceSetResponse.h" +#import "SDLCreateWindow.h" +#import "SDLCreateWindowResponse.h" #import "SDLDateTime.h" #import "SDLDefrostZone.h" #import "SDLDeleteCommand.h" @@ -70,6 +84,8 @@ #import "SDLDeleteInteractionChoiceSetResponse.h" #import "SDLDeleteSubMenu.h" #import "SDLDeleteSubMenuResponse.h" +#import "SDLDeleteWindow.h" +#import "SDLDeleteWindowResponse.h" #import "SDLDeliveryMode.h" #import "SDLDeviceInfo.h" #import "SDLDeviceLevelStatus.h" @@ -80,6 +96,8 @@ #import "SDLDialNumberResponse.h" #import "SDLDIDResult.h" #import "SDLDimension.h" +#import "SDLDirection.h" +#import "SDLDisplayCapability.h" #import "SDLDisplayCapabilities.h" #import "SDLDisplayMode.h" #import "SDLDisplayType.h" @@ -88,6 +106,7 @@ #import "SDLECallConfirmationStatus.h" #import "SDLECallInfo.h" #import "SDLElectronicParkBrakeStatus.h" +#import "SDLEncryptionConfiguration.h" #import "SDLEmergencyEvent.h" #import "SDLEmergencyEventType.h" #import "SDLEncodedSyncPData.h" @@ -105,10 +124,19 @@ #import "SDLFuelCutoffStatus.h" #import "SDLFuelRange.h" #import "SDLFuelType.h" +#import "SDLFunctionID.h" #import "SDLGenericResponse.h" +#import "SDLGetAppServiceData.h" +#import "SDLGetAppServiceDataResponse.h" #import "SDLGetDTCs.h" -#import "SDLGetInteriorVehicleData.h" +#import "SDLGetCloudAppProperties.h" +#import "SDLGetCloudAppPropertiesResponse.h" #import "SDLGetDTCsResponse.h" +#import "SDLGetFile.h" +#import "SDLGetFileResponse.h" +#import "SDLGetInteriorVehicleData.h" +#import "SDLGetInteriorVehicleDataConsent.h" +#import "SDLGetInteriorVehicleDataConsentResponse.h" #import "SDLGetInteriorVehicleDataResponse.h" #import "SDLGetSystemCapability.h" #import "SDLGetSystemCapabilityResponse.h" @@ -118,6 +146,7 @@ #import "SDLGetWayPointsResponse.h" #import "SDLGlobalProperty.h" #import "SDLGPSData.h" +#import "SDLGrid.h" #import "SDLHapticRect.h" #import "SDLHeadLampStatus.h" #import "SDLHMICapabilities.h" @@ -126,6 +155,7 @@ #import "SDLHMISettingsControlCapabilities.h" #import "SDLHMISettingsControlData.h" #import "SDLHMIZoneCapabilities.h" +#import "SDLHybridAppPreference.h" #import "SDLIgnitionStableStatus.h" #import "SDLIgnitionStatus.h" #import "SDLImage.h" @@ -176,17 +206,30 @@ #import "SDLMassageMode.h" #import "SDLMassageZone.h" #import "SDLMediaClockFormat.h" +#import "SDLMediaServiceData.h" +#import "SDLMediaServiceManifest.h" +#import "SDLMediaType.h" #import "SDLMenuCell.h" +#import "SDLMenuConfiguration.h" +#import "SDLMenuLayout.h" +#import "SDLMenuManagerConstants.h" #import "SDLMenuParams.h" #import "SDLMetadataTags.h" #import "SDLMetadataType.h" #import "SDLModuleData.h" +#import "SDLModuleInfo.h" #import "SDLModuleType.h" #import "SDLMyKey.h" +#import "SDLNavigationAction.h" #import "SDLNavigationCapability.h" +#import "SDLNavigationInstruction.h" +#import "SDLNavigationJunction.h" +#import "SDLNavigationServiceData.h" +#import "SDLNavigationServiceManifest.h" #import "SDLNotificationConstants.h" #import "SDLOasisAddress.h" #import "SDLOnAppInterfaceUnregistered.h" +#import "SDLOnAppServiceData.h" #import "SDLOnAudioPassThru.h" #import "SDLOnButtonEvent.h" #import "SDLOnButtonPress.h" @@ -202,17 +245,21 @@ #import "SDLOnPermissionsChange.h" #import "SDLOnRCStatus.h" #import "SDLOnSyncPData.h" +#import "SDLOnSystemCapabilityUpdated.h" #import "SDLOnSystemRequest.h" #import "SDLOnTBTClientState.h" #import "SDLOnTouchEvent.h" #import "SDLOnVehicleData.h" #import "SDLOnWayPointChange.h" #import "SDLParameterPermissions.h" +#import "SDLPerformAppServiceInteraction.h" +#import "SDLPerformAppServiceInteractionResponse.h" #import "SDLPerformAudioPassThru.h" #import "SDLPerformAudioPassThruResponse.h" #import "SDLPerformInteraction.h" #import "SDLPerformInteractionResponse.h" #import "SDLPermissionConstants.h" +#import "SDLPermissionElement.h" #import "SDLPermissionItem.h" #import "SDLPermissionManager.h" #import "SDLPermissionStatus.h" @@ -221,10 +268,14 @@ #import "SDLPowerModeQualificationStatus.h" #import "SDLPowerModeStatus.h" #import "SDLPredefinedLayout.h" +#import "SDLPredefinedWindows.h" #import "SDLPrerecordedSpeech.h" #import "SDLPresetBankCapabilities.h" #import "SDLPrimaryAudioSource.h" #import "SDLPRNDL.h" +#import "SDLProtocolConstants.h" +#import "SDLPublishAppService.h" +#import "SDLPublishAppServiceResponse.h" #import "SDLPutFile.h" #import "SDLPutFileResponse.h" #import "SDLRadioBand.h" @@ -238,16 +289,21 @@ #import "SDLRegisterAppInterface.h" #import "SDLRegisterAppInterfaceResponse.h" #import "SDLRemoteControlCapabilities.h" +#import "SDLReleaseInteriorVehicleDataModule.h" +#import "SDLReleaseInteriorVehicleDataModuleResponse.h" #import "SDLRequestType.h" #import "SDLResetGlobalProperties.h" #import "SDLResetGlobalPropertiesResponse.h" #import "SDLResult.h" #import "SDLRGBColor.h" +#import "SDLRPCFunctionNames.h" #import "SDLRPCMessage.h" #import "SDLRPCMessageType.h" #import "SDLRPCNotification.h" #import "SDLRPCNotificationNotification.h" +#import "SDLRPCPermissionStatus.h" #import "SDLRPCRequest.h" +#import "SDLRPCRequestNotification.h" #import "SDLRPCResponse.h" #import "SDLRPCResponseNotification.h" #import "SDLRPCStruct.h" @@ -258,16 +314,21 @@ #import "SDLScrollableMessageResponse.h" #import "SDLSeatControlCapabilities.h" #import "SDLSeatControlData.h" +#import "SDLSeatLocation.h" +#import "SDLSeatLocationCapability.h" #import "SDLSeatMemoryAction.h" #import "SDLSeatMemoryActionType.h" -#import "SDLSupportedSeat.h" #import "SDLSecurityType.h" #import "SDLSendHapticData.h" #import "SDLSendHapticDataResponse.h" #import "SDLSendLocation.h" #import "SDLSendLocationResponse.h" +#import "SDLServiceEncryptionDelegate.h" +#import "SDLServiceUpdateReason.h" #import "SDLSetAppIcon.h" #import "SDLSetAppIconResponse.h" +#import "SDLSetCloudAppProperties.h" +#import "SDLSetCloudAppPropertiesResponse.h" #import "SDLSetDisplayLayout.h" #import "SDLSetDisplayLayoutResponse.h" #import "SDLSetGlobalProperties.h" @@ -277,6 +338,8 @@ #import "SDLSetMediaClockTimer.h" #import "SDLSetMediaClockTimerResponse.h" #import "SDLShow.h" +#import "SDLShowAppMenu.h" +#import "SDLShowAppMenuResponse.h" #import "SDLShowConstantTBT.h" #import "SDLShowConstantTBTResponse.h" #import "SDLShowResponse.h" @@ -299,13 +362,16 @@ #import "SDLStreamingMediaManager.h" #import "SDLStreamingMediaManagerConstants.h" #import "SDLStreamingMediaManagerDataSource.h" +#import "SDLStreamingVideoScaleManager.h" #import "SDLSubscribeButton.h" #import "SDLSubscribeButtonResponse.h" #import "SDLSubscribeVehicleData.h" #import "SDLSubscribeVehicleDataResponse.h" #import "SDLSubscribeWayPoints.h" #import "SDLSubscribeWayPointsResponse.h" +#import "SDLSupportedSeat.h" #import "SDLSyncMsgVersion.h" +#import "SDLMsgVersion.h" #import "SDLSyncPData.h" #import "SDLSyncPDataResponse.h" #import "SDLSystemAction.h" @@ -313,9 +379,11 @@ #import "SDLSystemCapabilityManager.h" #import "SDLSystemCapabilityType.h" #import "SDLSystemContext.h" +#import "SDLSystemRequest.h" #import "SDLTBTState.h" #import "SDLTemperature.h" #import "SDLTemperatureUnit.h" +#import "SDLTemplateConfiguration.h" #import "SDLTemplateColorScheme.h" #import "SDLTextAlignment.h" #import "SDLTextField.h" @@ -334,6 +402,8 @@ #import "SDLTTSChunk.h" #import "SDLTurn.h" #import "SDLTurnSignal.h" +#import "SDLUnpublishAppService.h" +#import "SDLUnpublishAppServiceResponse.h" #import "SDLUnregisterAppInterface.h" #import "SDLUnregisterAppInterfaceResponse.h" #import "SDLUnsubscribeButton.h" @@ -354,6 +424,7 @@ #import "SDLVehicleDataType.h" #import "SDLVentilationMode.h" #import "SDLVehicleType.h" +#import "SDLVersion.h" #import "SDLVideoStreamingCapability.h" #import "SDLVideoStreamingCodec.h" #import "SDLVideoStreamingFormat.h" @@ -364,7 +435,14 @@ #import "SDLVrHelpItem.h" #import "SDLWarningLightStatus.h" #import "SDLWayPointType.h" +#import "SDLWeatherAlert.h" +#import "SDLWeatherData.h" +#import "SDLWeatherServiceData.h" +#import "SDLWeatherServiceManifest.h" #import "SDLWiperStatus.h" +#import "SDLWindowCapability.h" +#import "SDLWindowType.h" +#import "SDLWindowTypeCapabilities.h" #import "SmartDeviceLink.h" FOUNDATION_EXPORT double SmartDeviceLinkVersionNumber; diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.debug.xcconfig b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.debug.xcconfig new file mode 100644 index 0000000..21276b7 --- /dev/null +++ b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.debug.xcconfig @@ -0,0 +1,11 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/SmartDeviceLink +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.release.xcconfig b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.release.xcconfig new file mode 100644 index 0000000..21276b7 --- /dev/null +++ b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.release.xcconfig @@ -0,0 +1,11 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/SmartDeviceLink +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/SmartDeviceLinkService.m b/SmartDeviceLinkService.m index fb70e16..96445be 100644 --- a/SmartDeviceLinkService.m +++ b/SmartDeviceLinkService.m @@ -92,23 +92,23 @@ - (void)start { WeatherLanguage *wlanguage = [WeatherLanguage elementWithValue:languageString]; [[NSNotificationCenter defaultCenter] postNotificationName:MobileWeatherLanguageUpdateNotification object:self userInfo:@{ @"language" : wlanguage }]; - SDLConfiguration *config = [SDLConfiguration configurationWithLifecycle:lifecycleConfig lockScreen:[SDLLockScreenConfiguration enabledConfiguration] logging:[SDLLogConfiguration debugConfiguration] fileManager:[SDLFileManagerConfiguration defaultConfiguration]]; + SDLConfiguration *config = [[SDLConfiguration alloc] initWithLifecycle:lifecycleConfig lockScreen:[SDLLockScreenConfiguration enabledConfiguration] logging:[SDLLogConfiguration debugConfiguration] fileManager:[SDLFileManagerConfiguration defaultConfiguration] encryption:[SDLEncryptionConfiguration defaultConfiguration]]; self.manager = [[SDLManager alloc] initWithConfiguration:config delegate:self]; // Create a proxy object by simply using the factory class. [self.manager startWithReadyHandler:^(BOOL success, NSError * _Nullable error) { - // are graphics supported? - self.graphicsAvailable = (self.manager.registerResponse.displayCapabilities.graphicSupported).boolValue; - - // get the available templates - self.templatesAvailable = self.manager.registerResponse.displayCapabilities.templatesAvailable; + self.graphicsAvailable = self.manager.systemCapabilityManager.defaultMainWindowCapability.imageFields.count > 0; + self.templatesAvailable = self.manager.systemCapabilityManager.defaultMainWindowCapability.templatesAvailable; // set the app display layout to the non-media template - [self registerDisplayLayout:SDLPredefinedLayoutNonMedia]; - - // print out the app name for the language - SDLLogD(@"%@", self.localization[@"app.name"]); + if ([self.templatesAvailable containsObject:SDLPredefinedLayoutNonMedia]) { + SDLSetDisplayLayout *request = [[SDLSetDisplayLayout alloc] initWithLayout:SDLPredefinedLayoutNonMedia]; + [self.manager sendRequest:request]; + } else { + // This head unit isn't supported + SDLLogE(@"The non-media template isn't supported. This app may not work properly"); + } }]; } @@ -129,15 +129,15 @@ - (void)hmiLevel:(SDLHMILevel)oldLevel didChangeToLevel:(SDLHMILevel)newLevel { self.firstHMIFullOccurred = YES; // the app is just started by the user. Send everything needed to be done once [self sendWelcomeMessageWithSpeak:YES]; - [self subscribeRepeatButton]; [self sendDefaultGlobalProperties]; [self preloadChangeUnitsChoices]; + self.manager.screenManager.menuConfiguration = [[SDLMenuConfiguration alloc] initWithMainMenuLayout:SDLMenuLayoutTiles defaultSubmenuLayout:SDLMenuLayoutTiles]; self.manager.screenManager.menu = [self weatherMenuCells]; } } -- (nullable SDLLifecycleConfigurationUpdate *)managerShouldUpdateLifecycleToLanguage:(SDLLanguage)language { +- (nullable SDLLifecycleConfigurationUpdate *)managerShouldUpdateLifecycleToLanguage:(SDLLanguage)language hmiLanguage:(SDLLanguage)hmiLanguage { self.language = language; NSString *languageString = [self.language substringToIndex:2]; @@ -195,8 +195,7 @@ - (void)handleWeatherDataUpdate:(NSNotification *)notification { NSArray *chunks = [SDLTTSChunk textChunksFromString:chunk]; // create an alert request - SDLAlert *request = [[SDLAlert alloc] initWithAlertText1:alert.title alertText2:[formatterShow stringFromDate:alert.dateExpires] duration:10000]; - request.ttsChunks = chunks; + SDLAlert *request = [[SDLAlert alloc] initWithAlertText1:alert.title alertText2:[formatterShow stringFromDate:alert.dateExpires] alertText3:nil softButtons:nil playTone:NO ttsChunks:chunks duration:10000 progressIndicator:NO alertIcon:nil cancelID:0]; [requests addObject:request]; } @@ -219,14 +218,6 @@ - (void)handleWeatherDataUpdate:(NSNotification *)notification { } } - -#pragma mark - RPC Requests - -- (void)registerDisplayLayout:(NSString *)layout { - SDLSetDisplayLayout *request = [[SDLSetDisplayLayout alloc] initWithLayout:layout]; - [self.manager sendRequest:request]; -} - #pragma mark - Choice Sets - (NSArray *)changeUnitsChoiceCells { @@ -315,84 +306,83 @@ - (void)sendWelcomeMessageWithSpeak:(BOOL)withSpeak { } - (void)sendWeatherConditions:(WeatherConditions *)conditions withSpeak:(BOOL)withSpeak { - if (conditions != nil) { - self.currentInfoType = MWInfoTypeWeatherConditions; - - // use these types for unit conversion - UnitPercentageType percentageType = UnitPercentageDefault; - UnitTemperatureType temperatureType = UnitTemperatureCelsius; - UnitSpeedType speedType = UnitSpeedMeterSecond; - - if ([WeatherDataManager sharedManager].unit == UnitTypeMetric) { - temperatureType = UnitTemperatureCelsius; - speedType = UnitSpeedKiloMeterHour; - } else if ([WeatherDataManager sharedManager].unit == UnitTypeImperial) { - temperatureType = UnitTemperatureFahrenheit; - speedType = UnitSpeedMileHour; - } + if (conditions == nil) { + SDLAlert *alertRequest = [[SDLAlert alloc] initWithAlertText1:self.localization[@"alert.no-conditions.field1"] alertText2:self.localization[@"alert.no-conditions.field2"] alertText3:nil softButtons:nil playTone:NO ttsChunks:self.localization[@"alert.no-forecast.prompt"] duration:10000 progressIndicator:NO alertIcon:nil cancelID:0]; + [self.manager sendRequest:alertRequest]; + } - [self.manager.screenManager beginUpdates]; - self.manager.screenManager.softButtonObjects = [self buildDefaultSoftButtons]; - self.manager.screenManager.textField1 = conditions.conditionTitle; - self.manager.screenManager.textField1Type = SDLMetadataTypeWeatherTerm; + self.currentInfoType = MWInfoTypeWeatherConditions; - self.manager.screenManager.textField2 = [conditions.temperature stringValueForUnit:temperatureType shortened:YES localization:self.localization]; - self.manager.screenManager.textField2Type = SDLMetadataTypeCurrentTemperature; + // use these types for unit conversion + UnitPercentageType percentageType = UnitPercentageDefault; + UnitTemperatureType temperatureType = UnitTemperatureCelsius; + UnitSpeedType speedType = UnitSpeedMeterSecond; - self.manager.screenManager.textField3 = [conditions.precipitation stringValueForUnit:percentageType shortened:YES localization:self.localization]; - self.manager.screenManager.textField4 = [conditions.windSpeed stringValueForUnit:speedType shortened:YES localization:self.localization]; + if ([WeatherDataManager sharedManager].unit == UnitTypeMetric) { + temperatureType = UnitTemperatureCelsius; + speedType = UnitSpeedKiloMeterHour; + } else if ([WeatherDataManager sharedManager].unit == UnitTypeImperial) { + temperatureType = UnitTemperatureFahrenheit; + speedType = UnitSpeedMileHour; + } - self.manager.screenManager.primaryGraphic = [SDLArtwork artworkWithImage:[[[ImageProcessor sharedProcessor] imageFromConditionImage:conditions.conditionIcon] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] name:conditions.conditionIcon asImageFormat:SDLArtworkImageFormatPNG]; + [self.manager.screenManager beginUpdates]; + self.manager.screenManager.softButtonObjects = [self buildDefaultSoftButtons]; + self.manager.screenManager.textField1 = conditions.conditionTitle; + self.manager.screenManager.textField1Type = SDLMetadataTypeWeatherTerm; - [self.manager.screenManager endUpdatesWithCompletionHandler:nil]; + self.manager.screenManager.textField2 = [conditions.temperature stringValueForUnit:temperatureType shortened:YES localization:self.localization]; + self.manager.screenManager.textField2Type = SDLMetadataTypeCurrentTemperature; - if (withSpeak) { - SDLSpeak *speakRequest = [[SDLSpeak alloc] initWithTTS:[self.localization stringForKey:@"conditions.speak", conditions.conditionTitle, [conditions.temperature stringValueForUnit:temperatureType shortened:NO localization:self.localization], [conditions.humidity stringValueForUnit:percentageType shortened:NO localization:self.localization], [conditions.windSpeed stringValueForUnit:speedType shortened:NO localization:self.localization]]]; - [self.manager sendRequest:speakRequest]; - } - } - else { - SDLAlert *alertRequest = [[SDLAlert alloc] initWithTTS:self.localization[@"alert.no-conditions.prompt"] alertText1:self.localization[@"alert.no-conditions.field1"] alertText2:self.localization[@"alert.no-conditions.field2"] playTone:NO duration:10000]; - [self.manager sendRequest:alertRequest]; + self.manager.screenManager.textField3 = [conditions.precipitation stringValueForUnit:percentageType shortened:YES localization:self.localization]; + self.manager.screenManager.textField4 = [conditions.windSpeed stringValueForUnit:speedType shortened:YES localization:self.localization]; + + self.manager.screenManager.primaryGraphic = [SDLArtwork artworkWithImage:[[[ImageProcessor sharedProcessor] imageFromConditionImage:conditions.conditionIcon] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] name:conditions.conditionIcon asImageFormat:SDLArtworkImageFormatPNG]; + + [self.manager.screenManager endUpdatesWithCompletionHandler:nil]; + + if (withSpeak) { + SDLSpeak *speakRequest = [[SDLSpeak alloc] initWithTTS:[self.localization stringForKey:@"conditions.speak", conditions.conditionTitle, [conditions.temperature stringValueForUnit:temperatureType shortened:NO localization:self.localization], [conditions.humidity stringValueForUnit:percentageType shortened:NO localization:self.localization], [conditions.windSpeed stringValueForUnit:speedType shortened:NO localization:self.localization]]]; + [self.manager sendRequest:speakRequest]; } } - (void)sendForecastList:(NSArray *)forecasts infoType:(MWInfoType)infoType withSpeak:(BOOL)withSpeak { - if (forecasts && forecasts.count > 0) { - if ([infoType isEqualToString:MWInfoTypeDailyForecast]) { - forecasts = [forecasts subarrayWithRange:NSMakeRange(0, MIN(forecasts.count, 7))]; - } else if ([infoType isEqualToString:MWInfoTypeHourlyForecast]) { - forecasts = [forecasts subarrayWithRange:NSMakeRange(0, MIN(forecasts.count, 24))]; - } - NSUInteger index = 0; - if ([infoType isEqualToString:self.currentInfoType]) { - Forecast *oldForecast = (self.currentInfoTypeList)[self.currentInfoTypeListIndex]; - - for (NSUInteger newindex = 0; newindex < forecasts.count; newindex++) { - Forecast *newForecast = forecasts[index]; - - if ([newForecast.date isEqualToDate:oldForecast.date]) { - index = newindex; - break; - } + if (forecasts == nil || forecasts.count == 0) { + SDLAlert *alertRequest = [[SDLAlert alloc] initWithAlertText1:self.localization[@"alert.no-forecast.field1"] alertText2:self.localization[@"alert.no-forecast.field2"] alertText3:nil softButtons:nil playTone:NO ttsChunks:self.localization[@"alert.no-forecast.prompt"] duration:10000 progressIndicator:NO alertIcon:nil cancelID:0]; + [self.manager sendRequest:alertRequest]; + } + + if ([infoType isEqualToString:MWInfoTypeDailyForecast]) { + forecasts = [forecasts subarrayWithRange:NSMakeRange(0, MIN(forecasts.count, 7))]; + } else if ([infoType isEqualToString:MWInfoTypeHourlyForecast]) { + forecasts = [forecasts subarrayWithRange:NSMakeRange(0, MIN(forecasts.count, 24))]; + } + NSUInteger index = 0; + if ([infoType isEqualToString:self.currentInfoType]) { + Forecast *oldForecast = (self.currentInfoTypeList)[self.currentInfoTypeListIndex]; + + for (NSUInteger newindex = 0; newindex < forecasts.count; newindex++) { + Forecast *newForecast = forecasts[index]; + + if ([newForecast.date isEqualToDate:oldForecast.date]) { + index = newindex; + break; } - } else { - self.manager.screenManager.menu = [self listMenuCellsForType:infoType]; - self.manager.screenManager.voiceCommands = [self listVoiceCommandsForType:infoType]; } - - [self showForecastAtIndex:index fromList:forecasts infoType:infoType withSpeak:withSpeak]; - - self.currentInfoType = infoType; - self.currentInfoTypeList = forecasts; - self.currentInfoTypeListIndex = index; } else { - SDLAlert *alertRequest = [[SDLAlert alloc] initWithTTS:self.localization[@"alert.no-forecast.prompt"] alertText1:self.localization[@"alert.no-forecast.field1"] alertText2:self.localization[@"alert.no-forecast.field2"] playTone:NO duration:10000]; - [self.manager sendRequest:alertRequest]; + self.manager.screenManager.menu = [self listMenuCellsForType:infoType]; + self.manager.screenManager.voiceCommands = [self listVoiceCommandsForType:infoType]; } + + [self showForecastAtIndex:index fromList:forecasts infoType:infoType withSpeak:withSpeak]; + + self.currentInfoType = infoType; + self.currentInfoTypeList = forecasts; + self.currentInfoTypeListIndex = index; } -- (void)showForecastAtIndex:(NSUInteger)index fromList:(NSArray *)forecasts infoType:(MWInfoType)infoType withSpeak:(BOOL)withSpeak { +- (void)showForecastAtIndex:(NSUInteger)index fromList:(NSArray *)forecasts infoType:(MWInfoType)infoType withSpeak:(BOOL)withSpeak { BOOL isHourlyForecast = [infoType isEqualToString:MWInfoTypeHourlyForecast]; Forecast *forecast = forecasts[index]; @@ -511,33 +501,34 @@ - (void)showForecastAtIndex:(NSUInteger)index fromList:(NSArray *)forecasts info #pragma mark - Alerts - (void)sendAlertList:(NSArray *)alerts withSpeak:(BOOL)withSpeak { - if (alerts.count > 0) { - NSUInteger index = 0; - if ([MWInfoTypeAlerts isEqualToString:self.currentInfoType]) { - Alert *oldAlert = self.currentInfoTypeList[self.currentInfoTypeListIndex]; - - for (NSUInteger newindex = 0; newindex < alerts.count; newindex++) { - Alert *newAlert = alerts[index]; - - if ([newAlert isEqualToAlert:oldAlert]) { - index = newindex; - break; - } + if (alerts.count == 0) { + SDLAlert *alertRequest = [[SDLAlert alloc] initWithAlertText1:self.localization[@"alert.no-alerts.field1"] alertText2:self.localization[@"alert.no-alerts.field2"] alertText3:nil softButtons:nil playTone:NO ttsChunks:self.localization[@"alert.no-alerts.prompt"] duration:10000 progressIndicator:NO alertIcon:nil cancelID:0]; + [self.manager sendRequest:alertRequest]; + return; + } + + NSUInteger index = 0; + if ([MWInfoTypeAlerts isEqualToString:self.currentInfoType]) { + Alert *oldAlert = self.currentInfoTypeList[self.currentInfoTypeListIndex]; + + for (NSUInteger newindex = 0; newindex < alerts.count; newindex++) { + Alert *newAlert = alerts[index]; + + if ([newAlert isEqualToAlert:oldAlert]) { + index = newindex; + break; } - } else { - self.manager.screenManager.menu = [self listMenuCellsForType:MWInfoTypeAlerts]; - self.manager.screenManager.voiceCommands = [self listVoiceCommandsForType:MWInfoTypeAlerts]; } - - [self sendAlertAtIndex:index fromList:alerts withSpeak:withSpeak]; - - self.currentInfoType = MWInfoTypeAlerts; - self.currentInfoTypeList = alerts; - self.currentInfoTypeListIndex = index; } else { - SDLAlert *alertRequest = [[SDLAlert alloc] initWithTTS:self.localization[@"alert.no-alerts.prompt"] alertText1:self.localization[@"alert.no-alerts.field1"] alertText2:self.localization[@"alert.no-alerts.field2"] playTone:NO duration:10000]; - [self.manager sendRequest:alertRequest]; + self.manager.screenManager.menu = [self listMenuCellsForType:MWInfoTypeAlerts]; + self.manager.screenManager.voiceCommands = [self listVoiceCommandsForType:MWInfoTypeAlerts]; } + + [self sendAlertAtIndex:index fromList:alerts withSpeak:withSpeak]; + + self.currentInfoType = MWInfoTypeAlerts; + self.currentInfoTypeList = alerts; + self.currentInfoTypeListIndex = index; } - (void)sendAlertAtIndex:(NSUInteger)index fromList:(NSArray *)alerts withSpeak:(BOOL)withSpeak { @@ -579,8 +570,8 @@ - (void)sendAlertMessageAtIndex:(NSUInteger)index { if (description.length > 500) { description = [[description substringToIndex:497] stringByAppendingString:@"..."]; } - - SDLScrollableMessage *message = [[SDLScrollableMessage alloc] initWithMessage:description timeout:60000 softButtons:nil]; + + SDLScrollableMessage *message = [[SDLScrollableMessage alloc] initWithMessage:description timeout:60000 softButtons:nil cancelID:0]; [self.manager sendRequest:message]; } @@ -606,17 +597,6 @@ - (void)repeatWeatherInformation { } } -- (void)subscribeRepeatButton { - __weak typeof(self) weakSelf = self; - SDLSubscribeButton *request = [[SDLSubscribeButton alloc] initWithButtonName:SDLButtonNamePreset1 handler:^(SDLOnButtonPress * _Nullable buttonPress, SDLOnButtonEvent * _Nullable buttonEvent) { - if (!buttonPress) { return; } - - [weakSelf repeatWeatherInformation]; - }]; - - [self.manager sendRequest:request]; -} - #pragma mark - Soft Buttons - (NSArray *)buildDefaultSoftButtons { @@ -826,10 +806,9 @@ - (void)sendDefaultGlobalProperties { [helpitems addObject:helpitem]; [prompts addObject:self.localization[@"vr.change-units"]]; - NSString *promptstring = [prompts componentsJoinedByString:@","]; + NSString *promptString = [prompts componentsJoinedByString:@","]; - SDLSetGlobalProperties *request = [[SDLSetGlobalProperties alloc] initWithHelpText:promptstring timeoutText:promptstring vrHelpTitle:self.localization[@"app.name"] vrHelp:[helpitems copy]]; - + SDLSetGlobalProperties *request = [[SDLSetGlobalProperties alloc] initWithHelpText:promptString timeoutText:promptString vrHelpTitle:self.localization[@"app.name"] vrHelp:[helpitems copy] menuTitle:nil menuIcon:nil keyboardProperties:nil menuLayout:nil]; [self.manager sendRequest:request]; } @@ -869,9 +848,9 @@ - (void)sendListGlobalProperties:(MWInfoType)infoType withPrevious:(BOOL)withPre [items addObject:helpitem]; [prompts addObject:self.localization[@"vr.change-units"]]; - NSString *promptstring = [prompts componentsJoinedByString:@","]; + NSString *promptString = [prompts componentsJoinedByString:@","]; - SDLSetGlobalProperties *request = [[SDLSetGlobalProperties alloc] initWithHelpText:promptstring timeoutText:promptstring vrHelpTitle:self.localization[@"app.name"] vrHelp:[items copy]]; + SDLSetGlobalProperties *request = [[SDLSetGlobalProperties alloc] initWithHelpText:promptString timeoutText:promptString vrHelpTitle:self.localization[@"app.name"] vrHelp:[items copy] menuTitle:nil menuIcon:nil keyboardProperties:nil menuLayout:nil]; [self.manager sendRequest:request]; } @@ -896,7 +875,7 @@ - (void)mw_forecastDidSelectChoice:(SDLChoiceCell *)cell atIndex:(NSUInteger)row } - (void)choiceSet:(SDLChoiceSet *)choiceSet didReceiveError:(NSError *)error { - + SDLLogE(@"Choice Set did error: %@", error); } @end From 9a52369f9b0fa75c3af85a98848c0aa3514edfcb Mon Sep 17 00:00:00 2001 From: Joel Fischer Date: Tue, 21 Jul 2020 15:51:55 -0400 Subject: [PATCH 2/4] Add menu and soft button icons * Update app icon with a more distinctive but still very test icon * Improve logging --- .DS_Store | Bin 8196 -> 8196 bytes MobileWeather.xcodeproj/project.pbxproj | 12 +- MobileWeather/.DS_Store | Bin 6148 -> 6148 bytes MobileWeather/DarkSkyProcessor.m | 6 +- MobileWeather/DarkSkyService.m | 6 +- MobileWeather/Images.xcassets/.DS_Store | Bin 0 -> 6148 bytes .../App Store - alpha 512@2x.png | Bin 0 -> 343057 bytes .../AppIcon.appiconset/Contents.json | 70 +- .../AppIcon.appiconset/iPhone App 60@2x.png | Bin 0 -> 14776 bytes .../AppIcon.appiconset/iPhone App 60@3x.png | Bin 0 -> 25866 bytes .../iPhone Notification 20@2x.png | Bin 0 -> 2657 bytes .../iPhone Notification 20@3x.png | Bin 0 -> 5216 bytes .../iPhone Settings 29@1x.png | Bin 0 -> 1790 bytes .../iPhone Settings 29@2x.png | Bin 0 -> 5048 bytes .../iPhone Settings 29@3x.png | Bin 0 -> 8594 bytes .../iPhone Spotlight 40@2x.png | Bin 0 -> 7842 bytes .../iPhone Spotlight 40@3x.png | Bin 0 -> 14776 bytes .../AppIcon.appiconset/icon114.png | Bin 3222 -> 0 bytes .../AppIcon.appiconset/icon120.png | Bin 3237 -> 0 bytes .../AppIcon.appiconset/icon29.png | Bin 652 -> 0 bytes .../AppIcon.appiconset/icon57.png | Bin 1521 -> 0 bytes .../AppIcon.appiconset/icon58.png | Bin 1561 -> 0 bytes .../AppIcon.appiconset/icon80.png | Bin 2052 -> 0 bytes .../Images/chancerain.imageset/chancerain.png | Bin 13868 -> 13851 bytes .../Images/chancesnow.imageset/chancesnow.png | Bin 14775 -> 14762 bytes .../clear-night.imageset/clear-night.png | Bin 7996 -> 7941 bytes .../Images/cloudy.imageset/cloudy.png | Bin 16991 -> 16921 bytes .../Images/flurries.imageset/flurries.png | Bin 16356 -> 16189 bytes .../Images/fog.imageset/fog.png | Bin 9382 -> 9257 bytes .../Images/hazy.imageset/hazy.png | Bin 8999 -> 8899 bytes .../partly-cloudy-day.png | Bin 18322 -> 18235 bytes .../partly-cloudy-night.png | Bin 17319 -> 17021 bytes .../partlycloudy.imageset/partlycloudy.png | Bin 12667 -> 12474 bytes .../partlysunny.imageset/partlysunny.png | Bin 18322 -> 18235 bytes .../Images/rain.imageset/rain.png | Bin 16464 -> 16390 bytes .../Images/sdl-appicon.imageset/AppIcon.png | Bin 27665 -> 0 bytes .../Images/sleet.imageset/sleet.png | Bin 15680 -> 15477 bytes .../Images/snow.imageset/snow.png | Bin 20612 -> 20359 bytes .../Images/tstorms.imageset/tstorms.png | Bin 13540 -> 13131 bytes .../Images/wind.imageset/wind.png | Bin 6176 -> 6095 bytes .../LaunchImage.launchimage/Contents.json | 23 - MobileWeather/Images.xcassets/SDL/.DS_Store | Bin 0 -> 6148 bytes .../Images.xcassets/SDL/Contents.json | 6 + .../SDL/menu-alert.imageset/Contents.json | 21 + .../SDL/menu-alert.imageset/menu-alert.png | Bin 0 -> 1671 bytes .../menu-day.imageset}/Contents.json | 8 +- .../SDL/menu-day.imageset/menu-day.png | Bin 0 -> 1828 bytes .../SDL/menu-time.imageset/Contents.json | 21 + .../SDL/menu-time.imageset/menu-time.png | Bin 0 -> 5768 bytes .../SDL/menu-units.imageset/Contents.json | 21 + .../iconmonstr-weather-131-240.png | Bin 0 -> 5363 bytes .../App Store + alpha 512@1x.png | Bin 0 -> 126861 bytes .../sdl-appicon.imageset/Contents.json | 21 + MobileWeather/Info.plist | 2 +- MobileWeather/Launch.storyboard | 27 + MobileWeather/Settings.h | 2 +- Podfile | 2 +- Podfile.lock | 10 +- Pods/Manifest.lock | 10 +- Pods/Pods.xcodeproj/project.pbxproj | 9016 ++++++++--------- .../SmartDeviceLinkSwift/SDLLog.swift | 118 - .../Pods-MobileWeather.debug.xcconfig | 2 - .../Pods-MobileWeather.release.xcconfig | 2 - .../SmartDeviceLink.debug.xcconfig | 1 - .../SmartDeviceLink.release.xcconfig | 1 - SmartDeviceLinkService.m | 39 +- 66 files changed, 4715 insertions(+), 4732 deletions(-) create mode 100644 MobileWeather/Images.xcassets/.DS_Store create mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/App Store - alpha 512@2x.png create mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone App 60@2x.png create mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone App 60@3x.png create mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Notification 20@2x.png create mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Notification 20@3x.png create mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Settings 29@1x.png create mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Settings 29@2x.png create mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Settings 29@3x.png create mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Spotlight 40@2x.png create mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Spotlight 40@3x.png delete mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/icon114.png delete mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/icon120.png delete mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/icon29.png delete mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/icon57.png delete mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/icon58.png delete mode 100644 MobileWeather/Images.xcassets/AppIcon.appiconset/icon80.png delete mode 100644 MobileWeather/Images.xcassets/Images/sdl-appicon.imageset/AppIcon.png delete mode 100644 MobileWeather/Images.xcassets/LaunchImage.launchimage/Contents.json create mode 100644 MobileWeather/Images.xcassets/SDL/.DS_Store create mode 100644 MobileWeather/Images.xcassets/SDL/Contents.json create mode 100644 MobileWeather/Images.xcassets/SDL/menu-alert.imageset/Contents.json create mode 100644 MobileWeather/Images.xcassets/SDL/menu-alert.imageset/menu-alert.png rename MobileWeather/Images.xcassets/{Images/sdl-appicon.imageset => SDL/menu-day.imageset}/Contents.json (74%) create mode 100644 MobileWeather/Images.xcassets/SDL/menu-day.imageset/menu-day.png create mode 100644 MobileWeather/Images.xcassets/SDL/menu-time.imageset/Contents.json create mode 100644 MobileWeather/Images.xcassets/SDL/menu-time.imageset/menu-time.png create mode 100644 MobileWeather/Images.xcassets/SDL/menu-units.imageset/Contents.json create mode 100644 MobileWeather/Images.xcassets/SDL/menu-units.imageset/iconmonstr-weather-131-240.png create mode 100644 MobileWeather/Images.xcassets/sdl-appicon.imageset/App Store + alpha 512@1x.png create mode 100644 MobileWeather/Images.xcassets/sdl-appicon.imageset/Contents.json create mode 100644 MobileWeather/Launch.storyboard delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLinkSwift/SDLLog.swift diff --git a/.DS_Store b/.DS_Store index d549b19d3876e21b983d66789c55383b2b4af54c..e38682e2f0795d405dca099df989e90003599557 100644 GIT binary patch delta 56 zcmV-80LTA?K!iZBbP)or6_dOXG?S_k3I*@;0h_jy{}DBl?h%>-;(C)F6E>5;5}^YD OAOMp*6*IG!6KxEA^%WWb delta 50 zcmV-20L}k|K!iZBbP)opQj@$9G?S_k3X}Q~I+N}ZngW$klO7W`lfV+80|3wflROnO IvzHTX4D2WpRR910 diff --git a/MobileWeather.xcodeproj/project.pbxproj b/MobileWeather.xcodeproj/project.pbxproj index 8f7bc64..8dc7fce 100644 --- a/MobileWeather.xcodeproj/project.pbxproj +++ b/MobileWeather.xcodeproj/project.pbxproj @@ -11,6 +11,7 @@ 1E555E3918466B6500B143B4 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E555E3818466B6500B143B4 /* UIKit.framework */; }; 1E555E4518466B6500B143B4 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E555E4418466B6500B143B4 /* AppDelegate.m */; }; 1E555E4B18466B6500B143B4 /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E555E4A18466B6500B143B4 /* MainViewController.m */; }; + 4A55CAFA24C76D35008065DA /* Launch.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4A55CAF924C76D35008065DA /* Launch.storyboard */; }; 5DB7EDC91D89CC2C00B62BB7 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 5DB7EDC81D89CC2C00B62BB7 /* Settings.bundle */; }; 5DB7EDCB1D89CC3800B62BB7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5DB7EDCA1D89CC3800B62BB7 /* Images.xcassets */; }; 6E04EAC31CF4E52A00115C2F /* Localization.m in Sources */ = {isa = PBXBuildFile; fileRef = E4BD7AEE1B023A2C006BE23B /* Localization.m */; }; @@ -68,6 +69,7 @@ 1E555E4418466B6500B143B4 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 1E555E4918466B6500B143B4 /* MainViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = ""; }; 1E555E4A18466B6500B143B4 /* MainViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MainViewController.m; sourceTree = ""; }; + 4A55CAF924C76D35008065DA /* Launch.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Launch.storyboard; sourceTree = ""; }; 56FBAA80C3ED8E16429896CD /* Pods-MobileWeather.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MobileWeather.release.xcconfig"; path = "Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig"; sourceTree = ""; }; 5DB7EDC81D89CC2C00B62BB7 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = Settings.bundle; path = MobileWeather/Settings.bundle; sourceTree = SOURCE_ROOT; }; 5DB7EDCA1D89CC3800B62BB7 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = MobileWeather/Images.xcassets; sourceTree = SOURCE_ROOT; }; @@ -227,6 +229,7 @@ 5DB7EDC81D89CC2C00B62BB7 /* Settings.bundle */, E427582D1A0B75C000AA42B1 /* main.m */, E427582E1A0B75C000AA42B1 /* Info.plist */, + 4A55CAF924C76D35008065DA /* Launch.storyboard */, ); name = "Supporting Files"; sourceTree = ""; @@ -389,7 +392,7 @@ 1E555E2918466B6500B143B4 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0920; + LastUpgradeCheck = 1160; ORGANIZATIONNAME = Ford; TargetAttributes = { 1E555E3018466B6500B143B4 = { @@ -411,6 +414,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, de, es, @@ -436,6 +440,7 @@ E44272FB1B00A5FC0018EA4F /* Localizable.strings in Resources */, 5DB7EDCB1D89CC3800B62BB7 /* Images.xcassets in Resources */, E436919A19F556D800678C1D /* Main.storyboard in Resources */, + 4A55CAFA24C76D35008065DA /* Launch.storyboard in Resources */, E43D8D5D1B32E50D00FB8717 /* Localizable.stringsdict in Resources */, 5DB7EDC91D89CC2C00B62BB7 /* Settings.bundle in Resources */, ); @@ -657,12 +662,13 @@ isa = XCBuildConfiguration; baseConfigurationReference = C407ED364EBBDDB306D541A8 /* Pods-MobileWeather.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = NCVC2MHU7M; GCC_PRECOMPILE_PREFIX_HEADER = YES; INFOPLIST_FILE = MobileWeather/Info.plist; @@ -681,10 +687,10 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = NCVC2MHU7M; GCC_PRECOMPILE_PREFIX_HEADER = YES; INFOPLIST_FILE = MobileWeather/Info.plist; diff --git a/MobileWeather/.DS_Store b/MobileWeather/.DS_Store index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..cff48c4dabac46fec19677f1eb8a205b7ffae5a5 100644 GIT binary patch delta 421 zcmZoMXfc=|#>B)qF;Q%yo}wrd0|Nsi1A_nqLn=ctgC0W#Lo!3+#>C}}^&lC322X}u zhD3&RWLcoPVj#bSp*X3$xF9JfKMAPvYf?c@W^svu!3{%bl#+~))I8Um)Uwn(|018nlGLJTkm8X1{G6ov zL?|aQDJ(O!JYGP=IX|x?F*7f<2y7t4keKkyyp;TMr~J~qlwz=EsOeyKKw?P-&?XLL zhh(4=fq;{fGhRTVy4u{#Ku5vI(4YFt?WXaNH z%MTrf=wk#15f}(UX&7|`$RH3%Wx+*xIr(|%K$VOe6IZcJHV|Ri%+0~g0gQx=iQkzg V^NT35f&yD%vZ09d<^Yi`%m9brZ7u)+ delta 70 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%0Dqv4iHOth6#azjT9K~Bfi`( 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%0DW257 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

    >yyW{B8 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%0A3iU?W`aIv%DX4{ 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%0D_ZGF${0l_ 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 Dzt36{ literal 0 HcmV?d00001 diff --git a/MobileWeather/Images.xcassets/AppIcon.appiconset/Contents.json b/MobileWeather/Images.xcassets/AppIcon.appiconset/Contents.json index 0b0abfa..651b4db 100644 --- a/MobileWeather/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/MobileWeather/Images.xcassets/AppIcon.appiconset/Contents.json @@ -1,74 +1,78 @@ { "images" : [ { + "filename" : "iPhone Notification 20@2x.png", "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" + "scale" : "2x", + "size" : "20x20" }, { + "filename" : "iPhone Notification 20@3x.png", "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" + "scale" : "3x", + "size" : "20x20" }, { - "size" : "29x29", + "filename" : "iPhone Settings 29@1x.png", "idiom" : "iphone", - "filename" : "icon29.png", - "scale" : "1x" + "scale" : "1x", + "size" : "29x29" }, { - "size" : "29x29", + "filename" : "iPhone Settings 29@2x.png", "idiom" : "iphone", - "filename" : "icon58.png", - "scale" : "2x" + "scale" : "2x", + "size" : "29x29" }, { + "filename" : "iPhone Settings 29@3x.png", "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" + "scale" : "3x", + "size" : "29x29" }, { - "size" : "40x40", + "filename" : "iPhone Spotlight 40@2x.png", "idiom" : "iphone", - "filename" : "icon80.png", - "scale" : "2x" + "scale" : "2x", + "size" : "40x40" }, { + "filename" : "iPhone Spotlight 40@3x.png", "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" + "scale" : "3x", + "size" : "40x40" }, { - "size" : "57x57", "idiom" : "iphone", - "filename" : "icon57.png", - "scale" : "1x" + "scale" : "1x", + "size" : "57x57" }, { - "size" : "57x57", "idiom" : "iphone", - "filename" : "icon114.png", - "scale" : "2x" + "scale" : "2x", + "size" : "57x57" }, { - "size" : "60x60", + "filename" : "iPhone App 60@2x.png", "idiom" : "iphone", - "filename" : "icon120.png", - "scale" : "2x" + "scale" : "2x", + "size" : "60x60" }, { + "filename" : "iPhone App 60@3x.png", "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" + "scale" : "3x", + "size" : "60x60" }, { + "filename" : "App Store - alpha 512@2x.png", "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" + "scale" : "1x", + "size" : "1024x1024" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone App 60@2x.png b/MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone App 60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f489190c5904cb87085d5a717f639a84357a1076 GIT binary patch literal 14776 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 literal 0 HcmV?d00001 diff --git a/MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Notification 20@2x.png b/MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Notification 20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7747aaaa2639c261e0b5b4ab936bc838e90a4bdc GIT binary patch literal 2657 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 P00000NkvXXu0mjfu!Q|P literal 0 HcmV?d00001 diff --git a/MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Notification 20@3x.png b/MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Notification 20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..851656d72329df8cc5364286f59495ce597731ef GIT binary patch literal 5216 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 literal 0 HcmV?d00001 diff --git a/MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Settings 29@2x.png b/MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Settings 29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..da004a3755e69921d07bf7b2e2644bc469f93371 GIT binary patch literal 5048 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 literal 0 HcmV?d00001 diff --git a/MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Spotlight 40@2x.png b/MobileWeather/Images.xcassets/AppIcon.appiconset/iPhone Spotlight 40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8ae2f617de6ec784f5a52764832455c95fc45c70 GIT binary patch literal 7842 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 IM6N<$f|c)0&Hw-a diff --git a/MobileWeather/Images.xcassets/AppIcon.appiconset/icon120.png b/MobileWeather/Images.xcassets/AppIcon.appiconset/icon120.png deleted file mode 100644 index 122b5d064ced8e38dcf0e46a082d833567ab3acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3237 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 Xp7}e%Br+S;00000NkvXXu0mjfgS}7@ diff --git a/MobileWeather/Images.xcassets/AppIcon.appiconset/icon29.png b/MobileWeather/Images.xcassets/AppIcon.appiconset/icon29.png deleted file mode 100644 index 8db842dd75c032ab081b05729df1adfe52e7cfa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 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�dd#?nR zrFkqNxmYaX&zD95yO5~!drL0NTX~#&tmC-+%KLq0(ffMRlb-wwE01rn$*rYR00000 LNkvXXu0mjfl#B>8 diff --git a/MobileWeather/Images.xcassets/AppIcon.appiconset/icon80.png b/MobileWeather/Images.xcassets/AppIcon.appiconset/icon80.png deleted file mode 100644 index 661b9ead7fbf49c67e90dd5375ea7627c8ac830b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2052 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 F{{s|PbKd{} literal 13868 zcmbVzWmpwo)bAWXkdlyY5JXzKBt1xXBM8!sfRxmskqq008h66`)!GfCfII0go}k+nM+DH2?^n zDney+ynpX^Lm(g#7I$BL`1n7m|IZ7y(3&$LhIkRPq0eEkmtUGx=st$DR+&oHBiD=9 zxyFJl6Aw_5WWSL4+nUh>@odLFNpsVh@p;r9>q;OO1b~gXqQplXEyje{ z7a(5LDf{j}OPDjN^!?aZ7Ds$v#nnYO-+UOmiopPY`||2)q^IIrmPL-Mw_h6&w^~-; z<=v{3IASXOqd1y+d07D<{l~J)aLasV9WqjRZ-(V^wLnpb*L9y4lb4M5Ij;~l0DGsA zyg8W}=_Go?_)`*bBA;Z(=fJIS|2|4L$}q|V4aikq`s#k1>U)g%o1^5ZD{#@WWgqoE z%F38gfo(Yx07@hCU+5|H@qeYQJPEN~I!!{B)5J%VjP6%q09~@~UXkNfEDy2*TYZD3 zx<;Zm1|xE4fLV6Ny@3Fo9C|+X++i$45hUe49bea9;99`at%6&>J?*8rvh!N)qrw1S z4|~NI(S8@)!p9yS+`6Jf?v(E70FbI082GS!Fn)dzWt-ieTy5@b5%UxP7{>@VRBDD; ze!cLOAb)6Q2LRhb7V(_GW6Rqq>R%+(X{k3^zNS<*{t&=+M5|5m`GS|K3#^dVOPpG; zTdNnC2*Jd{O4;78R`9Ia#g84K^STkWXSQd70N)>YJJPItO43)>2BZ5+@~!hdiGkd` z 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 diff --git a/MobileWeather/Images.xcassets/Images/chancesnow.imageset/chancesnow.png b/MobileWeather/Images.xcassets/Images/chancesnow.imageset/chancesnow.png index 4e4360d69c69e26d48c492ed5598781ab3e48c91..a69056b702d7b594eb74acfd9bec356157ed4552 100644 GIT binary patch literal 14762 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 diff --git a/MobileWeather/Images.xcassets/Images/cloudy.imageset/cloudy.png b/MobileWeather/Images.xcassets/Images/cloudy.imageset/cloudy.png index f283cff9891c7b07ca4be7e2d949c5c54f21c3e1..67017f356bf0c07665dadbf25570684f5d46bd16 100644 GIT binary patch literal 16921 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 V1V_G!K%fo)s!E!QWzSx{{~r&qDdGSC literal 16991 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 diff --git a/MobileWeather/Images.xcassets/Images/flurries.imageset/flurries.png b/MobileWeather/Images.xcassets/Images/flurries.imageset/flurries.png index 731ffa50eb1e9e85ce3f3419ca94207de0eb2674..854f6c4d2b35483188989ca69570c9216b19af0d 100644 GIT binary patch literal 16189 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 JU(_B({V&n;KJown literal 16356 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 diff --git a/MobileWeather/Images.xcassets/Images/fog.imageset/fog.png b/MobileWeather/Images.xcassets/Images/fog.imageset/fog.png index 1b396da4e3516fd2e6cc505085a48087691e73c4..58edfab0a2a5e4d39f347ce9f1c4c19e5f23ac04 100644 GIT binary patch literal 9257 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%0D#+_nnj@npr-j- zOt@*Tt&I4RP4EFYT!E{pZ^pE0d}jK~&2RgH!*;gUhFBolrZ6?vW}DI1oMkFa3gH#O zsT99P1Hl0FLvSO{B&BtAO^wfE!MJcz!YtNM1g=@Ws%Le;Safu-dy3g8wOINQ`Aye7<$z7YbBQtJ*CO{eJtn! zN1B(7{hXI$E;KhLwqrIe*u)R=K|A_KPSi5qC(%?wOb+D5UBv+)resmE)fiDSv7MKp zC&Q*!O(z8aM1zWqkU$bIH@SCh!V}-g0n9glVYa7gPZ|5jRCd0rtPd`vz3>jne=bJj z)I8Ajur~JVSMp#u)iW3b4=;x8Erf^u4Ht}eERR-&HA02_*@F+Gd3~ikn>KXxZ_>KM zA#@1Ak-hK^mh;Mu26=y!BHDaKndV*3Is@gkLl^rBs$-a6Z#Q6&b&?wZ&TVN|TJebC zcRWSK=Fe{NwTAg(@Bn~CgsXfoaRGCvJnw!5 zAHp{KI^Kg!Pj_4oq6azd#R-XUoomTkvy%5y0Kl~*CF}AlrZbI7vd-zMH}|p1Wb~9l zg;tJWYAFxhfMrn-&>8jcGqeRy+|Sg(6j=Ct#R34z%lL#O!?nP9@j~W7_E-l19&#@02r;ctv`A%W>M(6 z>fSmN;{*2CRzE2MHtt=!<6*X3;4v3k>kbu%aVTEv!`Aqe}{;dm;`5-zPCzh z?kzM+XY)QfRwl#>2L_OaS%i)DGfNqIbunOsH9}M;u6Qxqu`FzN!K{di%5p0no}DyMFM zCkA`~>e|m;*D0Qyrb{P{$u)pH(BVfEa>h$`jr70@{Yv;1e(99w)3O<523%a= z;x0}p30ZiIVsr|~BCW$;8DPDivazqE-hOwpGr@LWpGMT@^ztJBj~yH=w7~a0*xYP! zk}#{p&c8Su*8`xca?vv&>GVD0v2=xw%xZ*wR*54BpqHIX3(2lV*B1^8s-X#$>>*Ko zk6Z5m{r#WE);#skmWXFO6y7&Qy(8v*H!Cl8#D;a-g5I;znG4=v78E)ugp?QX<;h8$ zaAF1Wt}X3ccLCQieX4@^5~31=m}N*6FTe_}Gj;cAGQZZK1B|5c;YEu%TMs)wxd2dn z%>q3|`w_vIa()I{iUp09WG6FufHfZQ;&KOg7T;$dMsMYF1Gak;!eBsb)T#dC@G`x! zd>gjJ|GUv?<%dcwD8;@!IyZUbOekc$e|$aC^f&nfv}suGZF|fK^|N;}QjKa75*#GW zJLbZyqbiw<3l!jaPJ+l2d`X06%WtUsAc>zOQ6Gh;4w*{b=ABDowI z=%#YN7Da>WcS+;0;jLggoy2^(+T|G z$8%_ePQ)(@;}3V3nv&V77ws-qxllc&g8!a(a;`EO7;Ms7SagYOcGFa05Z#vNIR}2F zs=l6-Qi4k8vgUu&du@H65WmWp91;q|;XY95(}YDL5Oc>j2X*?H>!b^5!JzTRfWO;& z-p?;~Kkh~XaP7z0vJHkb@sF46Sa1QmaSK)h{2yIc|B6WC-p&_Hd(Dvn9C}xWRg=HM zeku_H{bxAV!~h`X0rF+R`FD}Go%2@mG5})z?FlEv!GXsTfXY3UP%0Ap)nr&A71sss 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 Gz5E}(AG0w4 literal 8999 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ß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 N($g{oS7_M3{vVf5fWiO( literal 12667 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 LrbelnZPfn&r8?zJ diff --git a/MobileWeather/Images.xcassets/Images/partlysunny.imageset/partlysunny.png b/MobileWeather/Images.xcassets/Images/partlysunny.imageset/partlysunny.png index b9451178b8680e110f19d64247970fba9924a28d..4dc9bde06f6fe0c3e3a3401af1ce0478e4bb525f 100644 GIT binary patch literal 18235 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 literal 16464 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 BTDSlJ diff --git a/MobileWeather/Images.xcassets/Images/sdl-appicon.imageset/AppIcon.png b/MobileWeather/Images.xcassets/Images/sdl-appicon.imageset/AppIcon.png deleted file mode 100644 index 3d328d51e5fed9e5dd5b85ba1efcb63ca1e6c2de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27665 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

      SDC&uu>pS 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%0A{<@>tn_>{13v8llDjYyigU0 z)22y93w5Os{mk6rMCnPH%9KCs*kwxIDzuk9Ar9Q&6Ejm~4nT zPai}r6HJJ=U9(Y^!`OtR#giN3UykhkQ~PP$(;D}gHiu(oI>@z%6{B>l-!HqSHR7|d zxBi>;v(bKX%x!Ntf*>3XCDB9JthFEinzdcw4LpW|8&c@74SB>>&(z969W& z&swiF;kxH9$PTB z-GdK#s@`}fxJ(OCeK^pN2{XjBOcv7{{u>BJ*4tNcXTrJ=(Bi~f)F-gJfXNN>2aRXW z#N2D)f1xepBw?YOQ0`CZy^HP3#sQVNQuJ}$sDK&&AgAo(PoDaJh97a|fGeUrbb|7b z=}4lT%kj&u>VXHM@Lr>U#LBVOsLEt`!Cy7FwxE1y;VX3jGI1NY_I1gz|D*k<&f)zH zoE6+ubZVk_@=$>Hvw;`U5p>jS_3=-)5s!!i!DpEYJ21zq_32yWc!n>q(?giY7O$ho z$Db-_#MYgp%hL_-y`^k_z2BJhfY*5c8si6kd*4)Ao%Bd*Q(Ss^Ve~9wcIHfENw}xs zhm5~W7f1eH`NzeD^)*YvAm1Op3T~G0c=M{PE2(86E5E z>;L4+)nXC3f%@KW_kNMbgjWjYu6gh&KR%%RQszC>b3T#r=Z77(+glZX$8llGw4VZ& zS0#N8#XIuS9<;qj?53n^t^wP5y8)^CX z)^nZR;}_gMcl-93h9~ApkA}Ur+JQ*@K`)~HB+5UuqML~MKCf=Sqfus6IX3>21*_yd zc4+=|m`dyU`Mdk~cMwFICx1nMwnUl$$AKG01jh%0RBOIriqXqQIcYrmz4h@z{i3u= zQ3saJ5q$CZzrNqMQ8kMmj;+Tq=sb4^U8pRJy01QSBfn?lQ)==Jx$VM+b&`?KUmH}m z*Y1XjLQ#2icx5y{v-ZX?CblB{kz8pL9J*kk|(O*uNGX4l|+ArU}1`~|C|5Mn0fwycD+Iztu>f@%DA@OlxzQ}J;O}`9R*rbQ_ zlFNQ}8^3#?=4~Iv#*#gcjqPT?Y$v(JW&K-)5whV5FDbG?>i^}rRZT9u4ZY=Pz?^Kt z{NQ5gdO{*9QR6>2xNrZF z`_d388Y07ceO9lCWv|Su^-l8ff!bZ^6qOUs^;}`JvEp??!>nw555q`&1YIA`ACbDd zA@G;|?o;1@wL~6&PvlYj7I9!GM=#5;csNC`6zCpG>lLY>a^{%0tN(dZ(?MAsN57xd z4j%XQ`x9vlo$8fw9Ax`DyHa06^5(uwT<9oo8@9LfxQqgJQZ3#F01BPSiM zy+ndt`Hd*40bMv0!ZF8z*4NI_x8KaT+)7z)NViy_Xgk1?X^a*b&Y8Y_%kiRJdboCj zE&x@8DAAX0DrjyJ*W!iBGJ@O!YiPRW)+qFtE9k!~hW!`r!fTq{=O_~=PwDKZcL^=; zd{J(q*vW)LoSdy_-Aq&B#fAPNGE3C0qE)@oBKE^C&wT0HIu6HXxT1WyHC|(=ZmaNt e5T$O3;bgL|O$L|O+$BK3WuR-K^XiIYCFBundleSignature ???? CFBundleVersion - 20180323 + $(CURRENT_PROJECT_VERSION) LSRequiresIPhoneOS NSLocationUsageDescription diff --git a/MobileWeather/Launch.storyboard b/MobileWeather/Launch.storyboard new file mode 100644 index 0000000..a7915df --- /dev/null +++ b/MobileWeather/Launch.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MobileWeather/Settings.h b/MobileWeather/Settings.h index 55b0434..82664ac 100644 --- a/MobileWeather/Settings.h +++ b/MobileWeather/Settings.h @@ -12,6 +12,6 @@ #define PREFS_UNITS_KEY @"unit" #define PREFS_UNITS_METRIC_KEY @"unitmetric" #define PREFS_UNITS_IMPERIAL_KEY @"unitimperial" -#define PREFS_WEATHER_API_KEY @"713e2acc766caaf015c1a879a18ef1a6" +#define PREFS_WEATHER_API_KEY @"" #endif diff --git a/Podfile b/Podfile index 85187a7..ff44fa8 100644 --- a/Podfile +++ b/Podfile @@ -2,5 +2,5 @@ platform :ios, '9.0' use_frameworks! target 'MobileWeather' do - pod 'SmartDeviceLink/Swift', :git => 'https://github.com/smartdevicelink/sdl_ios.git', :branch => 'develop' + pod 'SmartDeviceLink', :git => 'https://github.com/smartdevicelink/sdl_ios.git', :branch => 'develop' end diff --git a/Podfile.lock b/Podfile.lock index 9789013..33983dd 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,13 +1,13 @@ PODS: - BiSON (1.2.0) - - SmartDeviceLink/Default (6.6.0): + - SmartDeviceLink (6.6.0): - BiSON (~> 1.2.0) - - SmartDeviceLink/Swift (6.6.0): + - SmartDeviceLink/Default (= 6.6.0) + - SmartDeviceLink/Default (6.6.0): - BiSON (~> 1.2.0) - - SmartDeviceLink/Default DEPENDENCIES: - - SmartDeviceLink/Swift (from `https://github.com/smartdevicelink/sdl_ios.git`, branch `develop`) + - SmartDeviceLink (from `https://github.com/smartdevicelink/sdl_ios.git`, branch `develop`) SPEC REPOS: trunk: @@ -27,6 +27,6 @@ SPEC CHECKSUMS: BiSON: 1165a5486ee9755400b096cf374e1f03cb73a980 SmartDeviceLink: 7971e530adc02d0540c8dba7a049a0edbebf97a1 -PODFILE CHECKSUM: d9878e8cf4f7224a831c7962f7b83b4dd3b8a7bb +PODFILE CHECKSUM: 6ca963dcdb2e354f2dc698c9fadf910a0c5a71b9 COCOAPODS: 1.9.3 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 9789013..33983dd 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -1,13 +1,13 @@ PODS: - BiSON (1.2.0) - - SmartDeviceLink/Default (6.6.0): + - SmartDeviceLink (6.6.0): - BiSON (~> 1.2.0) - - SmartDeviceLink/Swift (6.6.0): + - SmartDeviceLink/Default (= 6.6.0) + - SmartDeviceLink/Default (6.6.0): - BiSON (~> 1.2.0) - - SmartDeviceLink/Default DEPENDENCIES: - - SmartDeviceLink/Swift (from `https://github.com/smartdevicelink/sdl_ios.git`, branch `develop`) + - SmartDeviceLink (from `https://github.com/smartdevicelink/sdl_ios.git`, branch `develop`) SPEC REPOS: trunk: @@ -27,6 +27,6 @@ SPEC CHECKSUMS: BiSON: 1165a5486ee9755400b096cf374e1f03cb73a980 SmartDeviceLink: 7971e530adc02d0540c8dba7a049a0edbebf97a1 -PODFILE CHECKSUM: d9878e8cf4f7224a831c7962f7b83b4dd3b8a7bb +PODFILE CHECKSUM: 6ca963dcdb2e354f2dc698c9fadf910a0c5a71b9 COCOAPODS: 1.9.3 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index ceeeade..24ff469 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,1101 +7,1100 @@ objects = { /* Begin PBXBuildFile section */ - 0066A50956A60610464FC1F18D624CF7 /* SDLSingleTireStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 31BBFBBEB2100C4535679ABAF5A55F79 /* SDLSingleTireStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 00CB17531475454F299A0A8C2D46C476 /* SDLSetMediaClockTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = B63DE7845F5EA943E8C3BC9F2728CFB8 /* SDLSetMediaClockTimer.m */; }; - 0110C3A32BF6872DBCE812C8BBEFF1BE /* SDLTriggerSource.h in Headers */ = {isa = PBXBuildFile; fileRef = E0F50AF8211EE62DF94E01FA5E79CE67 /* SDLTriggerSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 011DC22B43225C9180D2B058811D31AA /* SDLDiagnosticMessageResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5550D8512B86F0A9F6C54350FB7AAE2F /* SDLDiagnosticMessageResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 012F6AE0D9162FA9149FB63AA537BF0C /* SDLFileType.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EF29BC404FD0F315A73C9D9A7351277 /* SDLFileType.m */; }; - 016271ED126FCB8B88C223982FE04B7A /* SDLStreamingVideoLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E182A82AB3C691E7B275AADAB942174 /* SDLStreamingVideoLifecycleManager.m */; }; - 017D3194B0FDE2D9A6C3A9ED92EDEDE5 /* SDLV1ProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B07FF648818147BBC509B12366D5DBE /* SDLV1ProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 018583F6E7B468815A4573F80262E82C /* SDLReadDIDResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 96983BEA7459A4232662DD0F57B29510 /* SDLReadDIDResponse.m */; }; - 01DFEF5F29A72D78E26203AC58138181 /* SDLIAPDataSession.m in Sources */ = {isa = PBXBuildFile; fileRef = F92F17C1D868E9CB7F4CF24A1F1EE509 /* SDLIAPDataSession.m */; }; - 022788A008E07EC139761666C4AFE592 /* SDLReleaseInteriorVehicleDataModule.h in Headers */ = {isa = PBXBuildFile; fileRef = B7A802ACC8F876FF3416830E0C985866 /* SDLReleaseInteriorVehicleDataModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 023E2436FD8188E9E8A6CA420BC6D170 /* SDLAppServicesCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 092865BB22501250C0C3FF3D5CF2E200 /* SDLAppServicesCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 02AB9B1AA28B31228B74A8126EA4F6E9 /* SDLBitsPerSample.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BDE0E2D5DE878BA2561C438678E7EA /* SDLBitsPerSample.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 02E615FEAD3D67B70BD9E50488658C20 /* SDLAppInterfaceUnregisteredReason.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C7F206C35B6B523B922930AEAD75A25 /* SDLAppInterfaceUnregisteredReason.m */; }; - 031495D4969E56B37EACAA1F70767994 /* SDLVideoStreamingFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AE2355374C44304F88A7DFB00858AA2 /* SDLVideoStreamingFormat.m */; }; - 035191FB5FFFEEABB361B4A406A43A41 /* SDLFile.m in Sources */ = {isa = PBXBuildFile; fileRef = D3DA4CCC5B1886D2AC2DC948D22D54C9 /* SDLFile.m */; }; - 0357B14944269911EAAD982BCA3F4A66 /* SDLResponseDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 304AFE04E482029F914E870FCBC54E4F /* SDLResponseDispatcher.m */; }; - 03BFBA09CDC067C038AE6B2618500579 /* SDLPerformInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1550A67573AAF420DF46830D2328EB6F /* SDLPerformInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03DB16B1FFEB1C86E3BD993FE8734543 /* SDLOnVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = BA1EE36D54B3E51448786809008AA6D3 /* SDLOnVehicleData.m */; }; - 03FD1A58E5CE6B4F5D7AC73BD8F04106 /* SDLEnum.h in Headers */ = {isa = PBXBuildFile; fileRef = 8619125F9745A7BD3975F3CBD74C4613 /* SDLEnum.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 040C6196B4B9154BCBFD11E9FAE0466D /* SDLScreenParams.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C4374789272475208038484B688328D /* SDLScreenParams.m */; }; - 04437FB778E703F55CBAE8E1E6B26E79 /* SDLSystemRequestResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8659E6ED0DA1E9DEB1C42B4582F2C284 /* SDLSystemRequestResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 045750228497D4A9200D3F5B8E4364CD /* SDLInteractionMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 4055BE744BC2A9F663E6671A2480D01A /* SDLInteractionMode.m */; }; - 04867FEAFBAA4F32FDEE6D4D145C1B19 /* CGPoint_Util.m in Sources */ = {isa = PBXBuildFile; fileRef = B5ACECDC2EB38CF822CD5E4F6482A49A /* CGPoint_Util.m */; }; - 04AC3A2D5D8EA70CD7DC71985028059E /* SDLDiagnosticMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 76D324B05E41128D942966F0A0EEBB12 /* SDLDiagnosticMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 04B18BE8079A29A81ACA01FED3181CED /* SDLVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = A8F74D221FAE93D785BB127D2DBA24CF /* SDLVersion.m */; }; - 0551A6C1A7387993229F74C2DA8DFED0 /* SDLPermissionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E5DD878D3427D986DE5573FF06202CB /* SDLPermissionManager.m */; }; - 0567BA39C9D8F87D132349786EF77E51 /* SDLV2ProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B3EF2AF2354F5AF6D7A430764CE2C2B /* SDLV2ProtocolHeader.m */; }; - 0640A84E3A042DC547293AA195F16D9E /* SmartDeviceLink-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FA6252C6FBD069E899B6254B7D8F58B5 /* SmartDeviceLink-dummy.m */; }; - 0699763FA69B0EF2765A379706BFBB5C /* SDLPermissionConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 7510FD20D7400BF8B329E618E46A0A19 /* SDLPermissionConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 06CF5C974D40D1CAE5DA0BD8B6BEDA1A /* SmartDeviceLink.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C197364227C0998A9025317EAD699894 /* SmartDeviceLink.bundle */; }; - 07103FB478E54508351B3BE23E35492E /* SDLUpdateMode.h in Headers */ = {isa = PBXBuildFile; fileRef = F3CD46DEB812EEF3053AE7AD322133F4 /* SDLUpdateMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07236B7C2904B1537466E4F3B99A7483 /* SDLTouchManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 691225BFF1BB8235FF07367825ECE854 /* SDLTouchManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07B6661A4C2C025E3467589D6971E4DB /* SDLCancelInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 102FDAC56AEF5163B033D0CC47822A7F /* SDLCancelInteractionResponse.m */; }; - 07FE270AE156157348A04C871085DC67 /* SDLGetSystemCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 12816F5316A38E539BD4FBCC77ADE586 /* SDLGetSystemCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 08FA3423342DC39363ADE4F4A3D7A5E0 /* SDLStationIDNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 92FB143CC43A57BDCD09A5180EFC7A56 /* SDLStationIDNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 09718516EA3E6A7A5CFC06F350845401 /* SDLOnCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = CFE665A143945D4F523E9805AC91DEE2 /* SDLOnCommand.m */; }; - 09CB3258A7C0449C98FC1A8FFCBD7E8B /* SDLControlFramePayloadNak.m in Sources */ = {isa = PBXBuildFile; fileRef = AFF3E79663035A0B5E589A3D5DF2051B /* SDLControlFramePayloadNak.m */; }; - 0A5F18BE6407FA7AAC0208B310CCA32F /* SDLLifecycleProtocolHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 37BB95EEE59CD21C3293F54E2CD22CEA /* SDLLifecycleProtocolHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0AC91200FA1934E943493ECCC8136122 /* SDLFileManagerConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = BB04F62BFFD1CB792E34526F173104FF /* SDLFileManagerConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0AD6F7B5EC996D9805558DCB02414DA7 /* SDLRadioBand.h in Headers */ = {isa = PBXBuildFile; fileRef = AAA96D67B0E11DC1C39AA70AED46098E /* SDLRadioBand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B8CFC9287CE4FD15A45F365C86B5FFE /* SDLSeatLocationCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 39FFFBA8ED556FDD85EBCF18BF7898C8 /* SDLSeatLocationCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B933EE495EEB97207691239D9319BC2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */; }; - 0BBAEC4E7FDE7908CB2F92C7B294C4D8 /* SDLSystemCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BBAEFCD3A5756020019D66827B7F6BA /* SDLSystemCapability.m */; }; - 0BD5D8A58EE45EC6BAB24293E3FEA017 /* SDLAudioStreamingState.m in Sources */ = {isa = PBXBuildFile; fileRef = AF28A68579C98F539C039EA29CA59D4B /* SDLAudioStreamingState.m */; }; - 0BF4C3DD58C44DA1F4C0174DD975AA7F /* SDLSystemContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CB3708FD84DFD102864FB3A724A9689 /* SDLSystemContext.m */; }; - 0C4CAB319C0DD76BC32BE6C5EBB1B41C /* SDLOnHashChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EAB0821E72518202FBFA198CD9E48F0 /* SDLOnHashChange.m */; }; - 0C68DF7AC21D2860D88C4EAFD8B95C31 /* SDLSetMediaClockTimerResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C4AC1439B1DAC65A9F876F7CBE5B8E3F /* SDLSetMediaClockTimerResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0C842D098EED306B734C442A93C4D3B0 /* SDLListFilesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A1B97540C9445EBC294C833B507564A /* SDLListFilesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0D455F85C037AA10A41AB17B5E73F7D9 /* SDLLocationDetails.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B0CD534B92E485AC78B351897352A70 /* SDLLocationDetails.m */; }; - 0D4E9787AFBEBE399ED33BC220BBF5DB /* SDLDeleteFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C8C16DD6E47A4B9FA795780317963CB0 /* SDLDeleteFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0DB4E8891C30BCE56D71B24F6AC8874E /* SDLSetInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F29D039A34A2CA78536348CE96D9ACA /* SDLSetInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0DEB36187DADB983909A6D14D84906B8 /* SDLFuelType.m in Sources */ = {isa = PBXBuildFile; fileRef = 16195BA066D92C5855624759BE7284F8 /* SDLFuelType.m */; }; - 0E07F39B9DC463DCFC8D2D7E96CEB223 /* SDLControlFramePayloadAudioStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = FED390E4F93350C474A580927CB768CE /* SDLControlFramePayloadAudioStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0E3B22B9667D90B77024475A54B97B6A /* SDLSubscribeButtonManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 889A9936FDAA22D7E7DACA85443E9515 /* SDLSubscribeButtonManager.m */; }; - 0E3ECC9ABD6472D32DC6E58A3E08B44E /* SDLOnLanguageChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 533F7AB90936113C747905A9130536F7 /* SDLOnLanguageChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0E4D84974346309363F47C9BC13F891F /* SDLFileWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 5587E86763C14DCAE5CD85F2D66EEE60 /* SDLFileWrapper.m */; }; - 0E670FBA97E4397EE7B3E77471F4D8BD /* SDLMetadataTags.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F4125C10AB281EFB11D2A890DF0DE61 /* SDLMetadataTags.m */; }; - 0F25929AD33907EB2347A3F23241C047 /* SDLUnsubscribeWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B4549A9A5E6AF77B821A8EA6F04A858 /* SDLUnsubscribeWayPoints.m */; }; - 0F3B5FE619F16BEE1403425BD8C7F520 /* SDLLogConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 78F5E319075CD2E0DA4A60935A86DC1F /* SDLLogConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0F6A60ED43283E82D2B9D2B44891F791 /* SDLDeleteCommandResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 99287642C46A058853261EE0F8FB5803 /* SDLDeleteCommandResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 105369E74A34167632F2CE1FEEC4B7CC /* SDLNavigationServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = E9F85118D824B3F5F59A8305E48245E0 /* SDLNavigationServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 107C1A8D01DEA7B07FC9EA5B18C62015 /* SDLSlider.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E30FC7A94025A61E6EA176845E4BEF3 /* SDLSlider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 10B7FA44559708E235A4D2429B1DD44C /* SDLAddSubMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 50B06BF759879E5F7FB48501D617628A /* SDLAddSubMenu.m */; }; - 10E36D3AD6990D109C03EF220CB91E32 /* SDLLockScreenConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 00F5A6A079156BEB8005F1C89BA34E2C /* SDLLockScreenConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 10FDDEDD0CB42C86BE626249764D1B85 /* SDLOnPermissionsChange.h in Headers */ = {isa = PBXBuildFile; fileRef = BE78691CB41A6B40E2140633BB7AA4A7 /* SDLOnPermissionsChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1129F96669BD2895C203A36F68AC5039 /* SDLKeyboardDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = EC650878367AF7C7B83FAEC062BFA3A1 /* SDLKeyboardDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1283216835F6ABF78E4E5E54EA7962E0 /* SDLLogTargetOSLog.h in Headers */ = {isa = PBXBuildFile; fileRef = CA97A48978C804461E3488F28629372A /* SDLLogTargetOSLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1299B38E94144A30AE45024F7CC05532 /* SDLAddSubMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D68D39C84895E461F1B9634D606671E1 /* SDLAddSubMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 13972B331486A40C0383D0FF8694E4BC /* SDLTextAndGraphicManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1908048E1CC8A27E740EF38F5430D864 /* SDLTextAndGraphicManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 13FB2D6E2ACF6617CF28D7BC8F966E73 /* SDLLightCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B628B43B6ADADBEB6501E049D64E37F /* SDLLightCapabilities.m */; }; - 143FEB3EE4BC244DDD88E14344D6B76C /* SDLLockScreenViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 769339F5B0569F2B7DC24EC805CA5828 /* SDLLockScreenViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 145286E6935D42A4892E1B68B64CEE1D /* SDLAddSubMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = F308C661B15B847B779C39D350766544 /* SDLAddSubMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14696775CAFCCDDD4E89AF56DF5B4D81 /* SDLSystemCapabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 773018652B375661E7ABA7CC63A04D1D /* SDLSystemCapabilityManager.m */; }; - 14861AC8930B7F124EB641618C8EC24B /* SDLNavigationServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FF1117561E991A2D81068EDFF178C65 /* SDLNavigationServiceData.m */; }; - 14A912514B48A2F767D72FFC45C7057E /* SDLPrimaryAudioSource.h in Headers */ = {isa = PBXBuildFile; fileRef = BC5A329C0A76812EF1D11777FDB665A8 /* SDLPrimaryAudioSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14C2FEF6C23E292C7F15E45015C72645 /* SDLSoftButton.m in Sources */ = {isa = PBXBuildFile; fileRef = FF05E55CA61B330811455432212034C1 /* SDLSoftButton.m */; }; - 1514165F8C64FE072961FCC0853C48A1 /* SDLScrollableMessageResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B384DD0203EADC9A558BDBF6CCD33DA /* SDLScrollableMessageResponse.m */; }; - 157BAA3EB92752922B163EA46E9D0DB9 /* SDLRDSData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B261757A2927398D6F981A1FCC62A65 /* SDLRDSData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 158A038BFD11A6E0BC5A6E687F9E3647 /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 79477F35CD70B0D22D924DD87A435888 /* SDLControlFramePayloadVideoStartServiceAck.m */; }; - 1697CD08D2311669260F79B71E513B5F /* SDLWeatherAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = D570A1BD7CC0E6336C341706DE07CA56 /* SDLWeatherAlert.m */; }; - 1699B1DC3B210BB0EA3EC3477569179C /* SDLTemperatureUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = DB37F4EF3E6ADA6FA78C8A414C2980AF /* SDLTemperatureUnit.m */; }; - 16AB530744D2106B1F11B0430918DF43 /* SDLVideoStreamingState.m in Sources */ = {isa = PBXBuildFile; fileRef = E0A61B983B6B91FDF2BA49150AE2356C /* SDLVideoStreamingState.m */; }; - 16ACD830584EB36BBCD51EE70C466504 /* SDLLockScreenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 576F83EF4D4371B437DFAE8A0F7CFAA1 /* SDLLockScreenViewController.m */; }; - 172F0217F50B3802792873291333615B /* SDLGetDTCs.h in Headers */ = {isa = PBXBuildFile; fileRef = 868ABD43DF81EE49690B9D5C41FB25D3 /* SDLGetDTCs.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17388E0CEAD1357464CC365A3C483F55 /* SDLPrerecordedSpeech.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DEF9947C4576AE910482FFD434E878E /* SDLPrerecordedSpeech.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 174101305620EC2BDD86A2324EAD2250 /* SDLGetVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 41DDF1201E3711F4B246F80D53C3BE29 /* SDLGetVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1782A870F0444CD170E723B94D9D9938 /* SDLStartTime.m in Sources */ = {isa = PBXBuildFile; fileRef = BA6551D7C8879D8E91C30E3DB455E34C /* SDLStartTime.m */; }; - 17C52BC9B9BE5AA733DFC59948575010 /* SDLStreamingAudioLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C22133A4EF2323F887466EC7EED58C3 /* SDLStreamingAudioLifecycleManager.m */; }; - 17CECF9E5DD0110F7D4844C33B8355D1 /* SDLOnEncodedSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = CE553E3605D4CBF175959C2A6AFFA992 /* SDLOnEncodedSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17E4FFBC4E56178F24E14C3672E2A532 /* SDLStreamingMediaManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 235D21011FFD874789BF1B303492BB80 /* SDLStreamingMediaManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17F93BD73F0A59E175D277959F26E49E /* SDLOnAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 07586438D975F70590DE46C92B04B3D4 /* SDLOnAppServiceData.m */; }; - 180E06FF7C4938D1766280C11FB4E657 /* SDLMetadataTags.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A116087C3B6EFD78EC43CDA42ED9FA1 /* SDLMetadataTags.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1815A9C8A4247E4E7613B7EF15930B09 /* SDLLogFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = AF19BE6750BCA76EDC3A8FC9E6C92344 /* SDLLogFilter.m */; }; - 184B5F2AB049F7AEACB2B4E425EF9DA2 /* SDLEqualizerSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = E9865E2D3C6B1D187D3D04C2B429951E /* SDLEqualizerSettings.m */; }; - 1866DAB2990E2E6758DBFCC4AFFC1164 /* SDLProtocolMessageAssembler.h in Headers */ = {isa = PBXBuildFile; fileRef = DADF8BE5914CC5FDE27CC4C54E6F38A6 /* SDLProtocolMessageAssembler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 18A04DAC7FB0A146DAC40573D200166B /* SDLControlFramePayloadRPCStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B5378A0D8A574B369D8D84FC58D1882 /* SDLControlFramePayloadRPCStartServiceAck.m */; }; - 19835AEE7EA809F00EE8C6FA4A1F1304 /* SDLButtonPressResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FA3D11485B98D532358487B826F92A6 /* SDLButtonPressResponse.m */; }; - 1AB0F0C524720148B94C531A6EC007E7 /* SDLSpeak.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1C11AC277FD13D61BE3491397D447F /* SDLSpeak.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1ABF5FF95BD4B3072309D0302C023D69 /* SDLChangeRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF8FC180D4BBA0EC08C5AEB71F88B60 /* SDLChangeRegistration.m */; }; - 1AF57B3641E4C70E402DC7D0D99D10B3 /* SDLLogManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 14A578E900D2B9BF8DDA0AE05B717967 /* SDLLogManager.m */; }; - 1B0890B8A98812BF360C72316B4CDA04 /* SDLMsgVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B140D8D2A0B9E079DA6C09D0FDD57F2 /* SDLMsgVersion.m */; }; - 1B5C00162799C6FCF2D19928932C85D5 /* SDLSoftButtonReplaceOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CF4CCE42229C9A7F2C4FACE1B032A768 /* SDLSoftButtonReplaceOperation.m */; }; - 1B7FC0D068CB65F067EE1EF97AE651EF /* SDLHeadLampStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 74A65D2D8ED21D32C107935C517191E4 /* SDLHeadLampStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1BA2F03BE97087A041FE88AEE1781741 /* SDLAddSubMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CE9058C4CECC7EB2181F33AED464312 /* SDLAddSubMenuResponse.m */; }; - 1BC4F89B700407702412F597B8D6A4C0 /* SDLTouchEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DB8E34CADC6FD344370C3E41DF04943 /* SDLTouchEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C2AFD76AF172CA723E4F2D158FB0649 /* SDLVehicleDataResultCode.h in Headers */ = {isa = PBXBuildFile; fileRef = BA96306DAEE794F0C9FC374D0556DB27 /* SDLVehicleDataResultCode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C89E481A5D7EF11BBBD00A7639D1CEE /* SDLSpeechCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = D68BE4979539A4404F1FA1C07DC34D55 /* SDLSpeechCapabilities.m */; }; - 1C8C72AEDD049473754C1840C1174517 /* SDLEndAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FE4CF814EDDBC348C63CE0ADEA512E8 /* SDLEndAudioPassThru.m */; }; - 1CAAE194909CE3C7EF3D0CCEAA15CC0B /* SDLWindowType.h in Headers */ = {isa = PBXBuildFile; fileRef = A84893E9B393129BECE4A90B2112AA3D /* SDLWindowType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1CCDD2195B5F545AC27DCDEEE82662AD /* SDLDisplayCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = D4C1DE17C70124F2EC7ADB7C93FCA111 /* SDLDisplayCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1CDB4452916538DA9605B54CD9CF9253 /* SDLModuleType.h in Headers */ = {isa = PBXBuildFile; fileRef = A11273079923EC17BEF8EA166ED142FD /* SDLModuleType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1CDF2C5793F2F158F1C6972F6555B83C /* SDLLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = EE8BF2510CC06F2DAEB2AE8D19B4346D /* SDLLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1CF92ED9901B6CC836F3981EFADF0EAE /* SDLAmbientLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 29633F4DCFB56822424E2DE90E738544 /* SDLAmbientLightStatus.m */; }; - 1D3DFC81393C32B76E87A25331260E3D /* SDLDIDResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A578665B9047694A0F347F293DE12B4 /* SDLDIDResult.m */; }; - 1D4B6C284868B1006C28D7EB5E755169 /* SDLViewControllerPresentable.h in Headers */ = {isa = PBXBuildFile; fileRef = E809A18658FB035135235C331745934C /* SDLViewControllerPresentable.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1DBD98BA90ACDD24E656DA81B6F5D53E /* SDLResetGlobalPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D76301C2554A02484AFC7B13C487F7AF /* SDLResetGlobalPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1DCA61545F36E072ADB3AC5B84120804 /* SDLEmergencyEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 02FDA2F0BEF128D86C26F8CC45E68CD1 /* SDLEmergencyEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1DD7C0B18941D631AC369A549BCCF337 /* SDLDisplayType.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E811202558CAA5E41CCE8C8544776CB /* SDLDisplayType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E0B34809FC5E69B56D3EA6B2A1F6298 /* SDLSendLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = FDB100B41F41367A5046A8650FD53430 /* SDLSendLocation.m */; }; - 1E1C18899CFA06BDF66E3C1276224C50 /* SDLSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D2180BDF4301C114F0173CBFE678364 /* SDLSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E78598094FD94D3F1B5A829104E11A8 /* SDLTemperatureUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E8C49B9AEFE2B7A0D27192F5F4FE6C7 /* SDLTemperatureUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F04F9E2D54DFA9F857F25B8733C4D20 /* SDLOnTBTClientState.h in Headers */ = {isa = PBXBuildFile; fileRef = 80B228053FDFC1AE6EC6A285F9C67826 /* SDLOnTBTClientState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F3DC8D6580E5EFD9D430958C7434B53 /* SDLVoiceCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 18305D4E4A21F03086AE858DAC4C9BC4 /* SDLVoiceCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F50DF24E9A0014A9BCFC634EC76C186 /* SDLCloseApplicationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FB76E8AF108D2D2C116E5B5C72CECB28 /* SDLCloseApplicationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F84AE9ABE9E1282B0FABD9A18DE176B /* SDLCreateWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 851DB4FB9BD1E39F4B61D6DD51ABD057 /* SDLCreateWindow.m */; }; - 1FB5E6E796E7E74B7DE35289B91F3756 /* SDLOnWayPointChange.m in Sources */ = {isa = PBXBuildFile; fileRef = FF9381D8A697377FEAB359470F3303BD /* SDLOnWayPointChange.m */; }; - 1FD1613858BF4AF4DD707C31690E31F1 /* SDLUpdateTurnList.m in Sources */ = {isa = PBXBuildFile; fileRef = 2156D0BCF6E0BA97352362D70EAD4710 /* SDLUpdateTurnList.m */; }; - 20BCA8A438D8E11BEABF1C8D8B366DD6 /* SDLTemplateConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DC2041DC5B9A5327C3B94AB4B3B41E6 /* SDLTemplateConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 20DAB1C92EC44DFEFEF56D51198C572D /* SDLCreateInteractionChoiceSetResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DC9D9DFEFD8DA66012392040EC1C55F /* SDLCreateInteractionChoiceSetResponse.m */; }; - 20FDB32A5B293CF83F082EDA2F290768 /* SDLSyncMsgVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 53A6F7FC8DB6771A7F606C83EE0F33E9 /* SDLSyncMsgVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 21675C3CF6D3BF02A34431A59D05325A /* SDLOnLockScreenStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = E7BB33F82335ED3BB74B4FA4B921F6D0 /* SDLOnLockScreenStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2191D6A77C470AA4A0164CB8E52CC83D /* SDLOnHMIStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E50C0F6174603A652E389F91F94FED1 /* SDLOnHMIStatus.m */; }; - 21F4851D28775B178740FCDD77840B46 /* SDLDeleteFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 157695036F630B99AA2A2162AAAAAF9E /* SDLDeleteFile.m */; }; - 2280C3166A90D6C9945AE301208FA48F /* SDLIAPConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 4066A1AC90601F2ED75F112128204143 /* SDLIAPConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 22EE85743201277158FD54ED1EFC1B31 /* SDLReleaseInteriorVehicleDataModule.m in Sources */ = {isa = PBXBuildFile; fileRef = C23DBC473A201419B768CC403C329AA9 /* SDLReleaseInteriorVehicleDataModule.m */; }; - 237E939E34B845012E338C238CCDDAD1 /* SDLTouchEventCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = C4A900A3C04D81E8AFE979A9CD841CF8 /* SDLTouchEventCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 23918DCD6B118E665408EF1F6E7FD543 /* SDLResetGlobalPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EF49DE50EC4EBA86EC32278ADDCE591 /* SDLResetGlobalPropertiesResponse.m */; }; - 2394A20ABF6920FF93BCE2BBA53462C5 /* SDLSoftButtonState.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D40C571D57B74A89D78D4877D935250 /* SDLSoftButtonState.m */; }; - 23A7D1922ACCA1C1A1469D21A8AAAC31 /* SDLOnRCStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5543FDC0294954DF0D4040D2E4999970 /* SDLOnRCStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 23F309309CBB2F13AE5498C66F9CBBA4 /* SDLHexUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 46523A89CAE6EF97155926063D0C221A /* SDLHexUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 24529E6BF87EACE46A7B5EBD319B9CBE /* SDLTurnSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = A47E1D7E285C5B3399B259F741739553 /* SDLTurnSignal.m */; }; - 245F13ECAB0929AEE2AEEDE7127267E2 /* SDLImageField.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC611A83E6B204442E6053A45D288D1 /* SDLImageField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 247BCA2300E405F276470156679EA6E5 /* SDLAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = 14A8D51B3439374BFB1554CBD1E477B8 /* SDLAlert.m */; }; - 24801F1525B3F26C7DE78E9D6F1EC07C /* SDLAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 507FBFEE8A6A81402E77FB59A01BA642 /* SDLAppServiceData.m */; }; - 24863AF1DC6EA3BBCDC32937F67E71A6 /* SDLH264VideoEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = FF21715135EC614F06983334F08B0E1E /* SDLH264VideoEncoder.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 251BAE21F7CECAFA6F0EE5688FACF319 /* SDLChoiceSetDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DE9E361C8A5F013FAB70F518A575C64 /* SDLChoiceSetDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 252F2EB3219E3AA3C08C5A57AA3B4B34 /* SDLAddCommandResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FB207C099B87EED0B5CC938CCD5BCA17 /* SDLAddCommandResponse.m */; }; - 2584B04D87C22A32D2A58FDCDB7C40A9 /* SDLVideoStreamingProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F3FC5C1D5936F9A265745B7DB5851979 /* SDLVideoStreamingProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 25872E377E8B390BC6BC2DBA36F64FBF /* SDLPermissionFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A5DF934A09C6ECE921C963F3156E087B /* SDLPermissionFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 25FE556376226762A75B4CB7AAF596BC /* SDLCancelInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 59F336B19B5A14921AF73428A666E018 /* SDLCancelInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 260B1F3FE55BFBBDA28A06E4EA9B2277 /* SDLSystemCapabilityObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CE2B2F33B9741F264BE0D9D55A6BF32 /* SDLSystemCapabilityObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 260EDB6847E1D91E446BD87705E9889D /* SDLError.m in Sources */ = {isa = PBXBuildFile; fileRef = 3778DFBEF00494FE5D31E79DFBB96B35 /* SDLError.m */; }; - 261863B80132A0BC07FDDDCF74A88507 /* SDLControlFramePayloadType.h in Headers */ = {isa = PBXBuildFile; fileRef = 285B908EABA56FEE3FBABD179F93E58C /* SDLControlFramePayloadType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 261E2ED889FAC8724554E6B02245D729 /* SDLMenuCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B0B69E8E7BE0B46B0C8659E5046F112 /* SDLMenuCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2620F0B28CBE552798F639DFC8ADF7A7 /* SDLSeatMemoryActionType.m in Sources */ = {isa = PBXBuildFile; fileRef = 2205A00A1B4704AA9532149FA266EF7A /* SDLSeatMemoryActionType.m */; }; - 2667B1229C8C1AAFCB5CD02B1E3EAB10 /* SDLPreloadChoicesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 346DD6B5C6DEFF7D91F128D926AFB0FE /* SDLPreloadChoicesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 26C615A4EB161B3EC705D293B8D165AD /* SDLTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = C05B25FD08F4EDE81BBF8E97080430FB /* SDLTimer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 26C8FE72C49E22979FB3F49A0D007AB4 /* SDLGetFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D6986E5DF7E39BCD4F822E4CB001676F /* SDLGetFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 26D505993874143E36649CCE262C63CE /* emhashmap.c in Sources */ = {isa = PBXBuildFile; fileRef = B53DDEC25BD2CEEE368F8B2099D4269E /* emhashmap.c */; }; - 26E5E0310598C29F8DDE94067A2958CB /* SDLAppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 55217909B98035F7AFBC7F73096982A2 /* SDLAppInfo.m */; }; - 275BFC3C7C9C324194B6BB00671D2E13 /* SDLPerformInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D0219EB46973A2D486CE1181ECA2FE0F /* SDLPerformInteractionResponse.m */; }; - 279BC5E11138599E41CC590BC89D4968 /* SDLDeviceLevelStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = E4EC6315B72CAC0F33814470212DCDC3 /* SDLDeviceLevelStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 27B426645465AF05B798A3058FCE6D44 /* SDLCacheFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A2717B2D5DE554897D72CB951C42757 /* SDLCacheFileManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 27CB4D94922255DE00C087E636C77FED /* SDLSetAppIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = 20237D47AB74244F657CB78EAC6D5E1D /* SDLSetAppIcon.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 27F0E023B8465A23F6EADAEFD3386A66 /* SDLAudioFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 878CFADA0C9FAF4387BFEBA236775E0D /* SDLAudioFile.m */; }; - 27F44F85A8B72CE438D99AC77CFCB009 /* SDLShowAppMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 38E242E9C5BDB3380CD5DE37E9262B8D /* SDLShowAppMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 283A4555F3187593CF5BF0276861F516 /* SDLTireStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 013381222E2F09C3FC30E0546F2E0E85 /* SDLTireStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28498442BCD463C896D1E9738D30D149 /* SDLCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = A6B9669FEDAAA1EF5A7C9F94BED90F1E /* SDLCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 286884B8ECBF5EBF98E40CDEA1432CBC /* SDLSystemRequestResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DD46481394302F4F857FA386B5B3D6D8 /* SDLSystemRequestResponse.m */; }; - 2872CD02FF5C555D4B23ABF8457D1AB6 /* SDLReleaseInteriorVehicleDataModuleResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B4F48B7943331568869C78731D2C1A3 /* SDLReleaseInteriorVehicleDataModuleResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28B1880871255ABAB7B693DB477BE2BF /* SDLHMILevel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DFB940A77A15D0F3E0C0C48889F05B0 /* SDLHMILevel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28F0D6F6BB67A870D663D51FC0CE0746 /* SDLLifecycleConfigurationUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B3EA6783E26BB49A731FCF69628F558 /* SDLLifecycleConfigurationUpdate.m */; }; - 2901022E187FA529C011EE5A8AEDA672 /* SDLHMICapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B5397A5AAFDDF3AA577CDC4718DDD2C /* SDLHMICapabilities.m */; }; - 2985A53122A05128571159CFA1AD21D1 /* SDLScrollableMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 33A2A786BDAED219574077742C9AA3FC /* SDLScrollableMessage.m */; }; - 2A9FE21B0BA859AED5280902B130A9ED /* SDLCloseApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D21D2139E965A5CA024DB58BE117962 /* SDLCloseApplication.m */; }; - 2B6C25B8C9B489B00C3ED80593792E99 /* SDLUploadFileOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 927F104C5BC3088472101359E0E7B4FE /* SDLUploadFileOperation.m */; }; - 2B6CDC7B0101E699EFF3726D4E0388E4 /* SDLResetGlobalProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 7442CCEB4D854A9A904B550B922A6AD7 /* SDLResetGlobalProperties.m */; }; - 2B734A17FAB58B4CE730C0540D22988D /* SDLOnVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BE4028ADAD57F4A9176FEBC20B5EC95 /* SDLOnVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2BE1E8F5E2507C4C2E16D826F74B4DDA /* SDLGetFile.m in Sources */ = {isa = PBXBuildFile; fileRef = F6CEE3FF97A40D47F14C11800619E1DB /* SDLGetFile.m */; }; - 2C70ADEC205EC64A4DD444D3EE158409 /* SDLLightControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = B408FA5A72D8BD3C40461CF55C8CC884 /* SDLLightControlData.m */; }; - 2C7676C5700FEDFB6F40906E87614915 /* SDLModuleInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B887B61299E3CDBAD04F3FAF0C642DB /* SDLModuleInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2CB612FCC5FC2844742A9D63064C0735 /* SDLMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = DB53BFBC217D15847AE38FD82BFE5014 /* SDLMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2CEEFA0305B7075B60D8A82D8C7AE3C7 /* SDLLogTargetFile.h in Headers */ = {isa = PBXBuildFile; fileRef = CFAE2994F819888468C9D2EAC8918FDF /* SDLLogTargetFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D094A7342D5409693FB87A9130B7A5D /* SDLVideoStreamingCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ABA9D773535CC39A270DD8160147CAB /* SDLVideoStreamingCapability.m */; }; - 2DAF25E7B98FBEF6D7DD2435E1AE63F5 /* SDLAsynchronousRPCRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C18115663476B7D482AC09B3DC33F5 /* SDLAsynchronousRPCRequestOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2DD3D1CD40C2BBC2A0781547C6922088 /* SDLBackgroundTaskManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EAC648706939F20E524EF7CD347A0C2 /* SDLBackgroundTaskManager.m */; }; - 2E8C0C18BE0AB72BAAA75756C7AA7EF6 /* SDLVehicleDataActiveStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 9238647073F63757659A703F1665A4D8 /* SDLVehicleDataActiveStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2E9FE8554C9075C973E8F7E8ADD01171 /* SDLRectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = FB0998F7945F98866D5AAEC80A248E5B /* SDLRectangle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2EA6C02C5692FEF6D1CE4C340FB9595E /* SDLGetWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C385BAB9B99A124EC2DEF4D689CB7BB /* SDLGetWayPoints.m */; }; - 2F19F6E35794A71E80EAE7F89B4AB5AB /* SDLLogModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 39EDE1E04ABABDD6EB636AABBB6871A0 /* SDLLogModel.m */; }; - 2F4FFEE16B3FD1784AB626573515DD35 /* SDLPermissionElement.m in Sources */ = {isa = PBXBuildFile; fileRef = B9F98F256A89963EAD420D333EB31F37 /* SDLPermissionElement.m */; }; - 2F9DB498E2C28210E3DF3810C99CB74E /* SDLVideoStreamingProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C1B74D20AD626E1FF7D59D1201016C8 /* SDLVideoStreamingProtocol.m */; }; - 2FA2DF4750EF0B673A0A8465018F35EA /* SDLSeatMemoryActionType.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AEB6BF5F6EEEDDC3AD1882CBE90B52D /* SDLSeatMemoryActionType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2FAFFC1A43E38BE0952DD64BE3EFBCD7 /* SDLHeadLampStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A4C87793B3C6B531E0A6541C94DAFB52 /* SDLHeadLampStatus.m */; }; - 2FD7CF9D67F1E9A67396EBCCCE51F42D /* SDLMediaClockFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 798FBD4B8BEE30A8944489D1A694BFDD /* SDLMediaClockFormat.m */; }; - 30170E4981190642C08902283DA8EA15 /* SDLLightControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 89C99B8EF7D6E80920E770B6E500F5A7 /* SDLLightControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 30353FA6C6AD3B18737ED0DEB34F77B8 /* SDLTouchManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = B1C140D9FFA2E9FCFD8A401D69499C73 /* SDLTouchManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 30532F9A11D1F1284F004B623EDDC92D /* SDLRectangle.m in Sources */ = {isa = PBXBuildFile; fileRef = 9304883AC1BF7D236BA9C5D9EF93A4AD /* SDLRectangle.m */; }; - 305E19FA7E71E7AC503766BD40DF92D4 /* SDLEncodedSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = 20E5AD672FECA3D8596890719BD59620 /* SDLEncodedSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 30D65525229B09FA9CFEBD81B8763C7B /* BiSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E9A0368A42FD75DB7B35822E72FE4CA /* BiSON-dummy.m */; }; - 30E5E0206E793A637F06DE630A981A59 /* SDLMenuLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A8B110CC3F7818FE4E9FBF59DA7831 /* SDLMenuLayout.m */; }; - 310677899FEA4BEC324AEC113080A4F5 /* SDLLogFileModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 95FA5938BB91EC86606D7D35B36D1799 /* SDLLogFileModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 312252BAF5168F0452B6032AF7262088 /* SDLControlFramePayloadRPCStartService.h in Headers */ = {isa = PBXBuildFile; fileRef = CDC3E3043CC87C0BB89DD7FD7BCE772A /* SDLControlFramePayloadRPCStartService.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 313D3F6741CB4A876DC870D6950185BD /* SDLHMIZoneCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DA4BCA93C02ABAD3179337438D37C21 /* SDLHMIZoneCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3193A89DD9C594CF5AF5C8FAAA01199A /* SDLStreamingMediaManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 95B6A24926E184BDA559B418D4A20232 /* SDLStreamingMediaManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 31F84B21B506C0A0DE2AB3959E41F9EE /* SDLUnsubscribeButtonResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 08DA15E3B091636F3E38EEE53E5BD64E /* SDLUnsubscribeButtonResponse.m */; }; - 31FE459EED3422D6D52406195997A5B5 /* SDLGenericResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 356850E904CD295F4FF6ED4BB15D4D57 /* SDLGenericResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 32210BF5CC463E9D45B351AC51D3701C /* SDLImageType.h in Headers */ = {isa = PBXBuildFile; fileRef = A60D22A926D93A0D726FFF6A31239E5D /* SDLImageType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 32272744E2728BF0CC353CF8075DE56D /* SDLPRNDL.h in Headers */ = {isa = PBXBuildFile; fileRef = 74AD80168C993652453FE3971FF647BC /* SDLPRNDL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3292D382EAD8519DAC1AE0E10F4D5062 /* NSMutableArray+Safe.h in Headers */ = {isa = PBXBuildFile; fileRef = 71626D352E691F8B7E7514EB0EAEAB01 /* NSMutableArray+Safe.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 32CF5B82101419D7815D0024314D4021 /* SDLPinchGesture.h in Headers */ = {isa = PBXBuildFile; fileRef = C9134305738F77B0E852842422F81D36 /* SDLPinchGesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 33735964ECB1F41B90FED9693684FC6A /* SDLFocusableItemHitTester.h in Headers */ = {isa = PBXBuildFile; fileRef = 48849036CC2BEE806DD74887DCF4875B /* SDLFocusableItemHitTester.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 33AA2D5C6064086920C929390E25D49F /* SDLWeatherServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B74FBD65102DD04AAD49A5F43E8D28B /* SDLWeatherServiceData.m */; }; - 33B2BF8E23DFF5A3C417CD80CD43CC32 /* SDLOnKeyboardInput.h in Headers */ = {isa = PBXBuildFile; fileRef = 72DEFC52DA69C0042103401227D6AE2E /* SDLOnKeyboardInput.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 33FCDDA1CB1F598D1C6207348791564D /* SDLDeleteSubMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = EB181A531DCA51446180DE770DFF44F1 /* SDLDeleteSubMenu.m */; }; - 342A1FB599F25F3A131C10A29A175FA8 /* SDLEncodedSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BD6D254A4BA71629C487F7B9B5FF780 /* SDLEncodedSyncPData.m */; }; - 348763461B039C50375433135292E6F8 /* SDLStreamingMediaManagerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D2BE3CCEA4B2BB726B06E6675B831E6 /* SDLStreamingMediaManagerConstants.m */; }; - 34DB843A171C44A34317D65BE3E173E8 /* SDLUnsubscribeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B14A2B419E2DC947711544B4DFA5659 /* SDLUnsubscribeButton.m */; }; - 3592348A1908B19BDCC82B075D3EF470 /* SDLProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 303674032980DBA4C264AC80AD1BF117 /* SDLProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 361298C811976BB148D53B2FD2C35863 /* SDLTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = FCFB1CA08F9688C66B82C8C2EDFDC54D /* SDLTextField.m */; }; - 361EA55F7977ACF8AFF73CCB49DD9002 /* SDLUnregisterAppInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA2B752BEA8AAB3CDE06DD763FC4CAF /* SDLUnregisterAppInterface.m */; }; - 364A7DB60D73F1034DBF45748AF68B26 /* SDLDisplayType.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F96F850E5D86162FB221E7A54E8EFD /* SDLDisplayType.m */; }; - 3666461CD2659EB1F156A9ED4B635DD8 /* SDLDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B9385D01A185AC52F1A077BBDC5759D /* SDLDeviceInfo.m */; }; - 366DB00DE052ED5F95A0CBBB863657F9 /* SDLDynamicMenuUpdateAlgorithm.h in Headers */ = {isa = PBXBuildFile; fileRef = 27513221634E83533BBE60EDA4667D93 /* SDLDynamicMenuUpdateAlgorithm.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 36A7484512448011EF3F2C0A38672487 /* SDLSetCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = E4AC2494F1A779D80138CD7A5D8980C6 /* SDLSetCloudAppProperties.m */; }; - 36DE87793D478673E902B66BA865E0B3 /* SDLDimension.h in Headers */ = {isa = PBXBuildFile; fileRef = A8A312C4D8E76C9BC500924B32C0A57F /* SDLDimension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 371E5AD456E767CBEB739FBFA55BE545 /* SDLDynamicMenuUpdateAlgorithm.m in Sources */ = {isa = PBXBuildFile; fileRef = D8BC4DC3D5C26DEF7E62FBB6D8922181 /* SDLDynamicMenuUpdateAlgorithm.m */; }; - 3754EAD930F3D40A42F3223321F899B0 /* SDLWeatherServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DCEF38864BBC13A94861FE01FD6837C /* SDLWeatherServiceManifest.m */; }; - 37B8173E99F5A470A7FD8F67DE82E815 /* SDLSequentialRPCRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 675E2F625AECD899CD113C3918FD540E /* SDLSequentialRPCRequestOperation.m */; }; - 37C9D90EE3EF9A798C26D18654A50F75 /* SDLSendHapticData.h in Headers */ = {isa = PBXBuildFile; fileRef = 4157869D41FABE62B8C192F3D08F1612 /* SDLSendHapticData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 386E9EFC772B289246945F8BE7241D87 /* SDLManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D725474F95CF3A37D8217D26C3D33F69 /* SDLManager.m */; }; - 38939F69AF45C6D6B3EFAAC3218AB7C1 /* SDLArtwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 880F24F11420E145AFB4143AF75C49B8 /* SDLArtwork.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 389E330EA7204E8C246622D7B2C64206 /* SDLGetVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C122D385DA1B67231C109629EFBCF67 /* SDLGetVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 38D106DD3F9A61296105A0BBFA74A793 /* SDLMassageMode.m in Sources */ = {isa = PBXBuildFile; fileRef = F0D39ACA0371B8A981CE9CDB1FE1F3C0 /* SDLMassageMode.m */; }; - 3947336D6D27AF2C2B8F484756012548 /* SDLPinchGesture.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F25040FF627FE9246171E4EA90E8CA3 /* SDLPinchGesture.m */; }; - 39DC456DDBBAD48E26F6455BBBE56443 /* NSMutableDictionary+SafeRemove.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B9DA57DC3982AC2A8A92052ECAB639A /* NSMutableDictionary+SafeRemove.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 39FE38C28A881AD8F5D28B4AF7F585D7 /* SDLLifecycleRPCAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F2DC8CFD2770D191663EE9B313E334F /* SDLLifecycleRPCAdapter.m */; }; - 3A7F3063768B19D7796C73C2EA441D2C /* SDLStaticIconName.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C31BC277EBBE8EABF6F1F7725ACEEAA /* SDLStaticIconName.m */; }; - 3A824D7618A73311D7673B00D46ECBA0 /* SDLConnectionManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 865CF3B1A51E7AF3086DD6E840A8C8C7 /* SDLConnectionManagerType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3ABE3D33FBFE8B497368ADC4CF2DB3C6 /* SDLClusterModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B2C56DF1F1818D8E1FD488B352881DD0 /* SDLClusterModeStatus.m */; }; - 3ABFC40D5B2E13194B0D5B2EBA25822E /* SDLGetInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = D71F5B91669B94ED03ECE68DF8A69310 /* SDLGetInteriorVehicleData.m */; }; - 3B0D77042D0B05B201861684C71567FF /* SDLSystemCapabilityObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 19FBDDF5290895EF460401DCB7F2C9EB /* SDLSystemCapabilityObserver.m */; }; - 3B79D7FFB7B31333AB5B2EA58912DA0F /* SDLStreamingVideoScaleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FFB29DF01447220453AB1CF83DD5396 /* SDLStreamingVideoScaleManager.m */; }; - 3BE2CD266829ABCD9AA01020133A08D3 /* bson_util.c in Sources */ = {isa = PBXBuildFile; fileRef = EB5B9BB9D28C2BC68BFABDDE546A6246 /* bson_util.c */; }; - 3C3EC5487121EB98E99F0F97BE42C1EA /* SDLParameterPermissions.h in Headers */ = {isa = PBXBuildFile; fileRef = 079C8504D554E430687E23C3BB9F291F /* SDLParameterPermissions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3C67F554D0D515E034A5C7E22838CB9B /* SDLPutFile.m in Sources */ = {isa = PBXBuildFile; fileRef = FCC94AEE7EC43BA74EEFA5EC841EB296 /* SDLPutFile.m */; }; - 3C7453895CF4AE78AFA1E2A6DB28F6B1 /* SDLTBTState.m in Sources */ = {isa = PBXBuildFile; fileRef = A4525E374C0C6592950D6900876AA4F2 /* SDLTBTState.m */; }; - 3C875631F98D94D88FC9E91933B2C190 /* SDLBeltStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = D04E8AFADA5F4A1EFE947D76FC10E211 /* SDLBeltStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D218CB9BCB99B81F0160E9EC92DA02E /* SDLIAPTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 38CB1A0076770A1F273C6EBCD6D8C8B0 /* SDLIAPTransport.m */; }; - 3D4438E9B8C4651BAA6CEB5D5039C883 /* SDLUnsubscribeVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = E6A9A7FEC27852B2A0E5BC59182279C3 /* SDLUnsubscribeVehicleData.m */; }; - 3D7803B431EF484181D70B0FD36525D1 /* SDLOnButtonEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = C26DB840FED234F39D27C9C871BAA550 /* SDLOnButtonEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D8BB45F1239777FAD6FA461E204167A /* SDLSeatMemoryAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 80D9C9B56D254F2A33C2AE1EA81D9AF6 /* SDLSeatMemoryAction.m */; }; - 3DC0D34F7A82505A73EAC836507FAF16 /* SDLPowerModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = AB4899E896AC7243959C641E40D9EB6C /* SDLPowerModeStatus.m */; }; - 3E1C27FA8FB062F1EBF23125ECF0DCC7 /* SDLNavigationServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = F05E89950AFAAE21DF32ACB82FC50FCB /* SDLNavigationServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E9AAB221B1FBCD6C5F6FDAF98BEDF7C /* SDLRPCMessageType.m in Sources */ = {isa = PBXBuildFile; fileRef = 00D366651669905A0972F086586FA9B4 /* SDLRPCMessageType.m */; }; - 3E9C0BA00FE324B6F5A23D5EB73376A4 /* SDLDeleteInteractionChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 181548D9FA28EF29C39F058DDD467003 /* SDLDeleteInteractionChoiceSet.m */; }; - 3EB130E67D616532CECE546D5B9198F5 /* SDLTextField+ScreenManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 270D8238A2295E6936F9BCC907DD8BB1 /* SDLTextField+ScreenManagerExtensions.m */; }; - 3EB29C6B91501244CBAA1180DEBA766E /* SDLRPCPermissionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 271D810484AEA55E4E3F80C25773E46A /* SDLRPCPermissionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F0496824DC5D461075A4069C03F939E /* SDLRPCPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B78A428E3625D60C6EDC36E0B0E2FAA /* SDLRPCPayload.m */; }; - 3F142C8529F267AEEDB407067747D466 /* SDLHMISettingsControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 22F425A341DF24170003B4CF66D9AB40 /* SDLHMISettingsControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F4FCFC6CA60801D30BF902812F1CC08 /* SDLGrid.m in Sources */ = {isa = PBXBuildFile; fileRef = ECBFE3D76862F81C78E80FCF7BBE9EF8 /* SDLGrid.m */; }; - 3F5A069FA9FFA9506975ECAA644E389B /* SDLAudioStreamManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CB7781E3AFB6084B7FF7B008C554AA /* SDLAudioStreamManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F75A11E958789B91A510DD260CA7D5B /* SDLVoiceCommandManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C6724681B057A0BC81FDCBB5C63008EA /* SDLVoiceCommandManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3F83A26390073BDF79CA24F02C401B74 /* SDLSendHapticData.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F4D26F5662FB5B045698D0F6EA082B /* SDLSendHapticData.m */; }; - 3FDEB76B1310B44C542A23A99FFDC12A /* SDLDefrostZone.h in Headers */ = {isa = PBXBuildFile; fileRef = AF8586C62AFA2F4833F9F198CA2236FA /* SDLDefrostZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3FF26779DAE684544CB75200EF942B03 /* SDLSubscribeButtonResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B58642FDAB1B0A7547822E7591B829 /* SDLSubscribeButtonResponse.m */; }; - 4008A1304DD99DB9C511DF3E470FC3D2 /* SDLSendLocationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F12CCA82A48E7EC083C69337418DE2F1 /* SDLSendLocationResponse.m */; }; - 401E5019769E747A0D6447BE8A3EAE13 /* SDLDialNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 410C7382DF348567CD7D56ECDD08CAC7 /* SDLDialNumber.m */; }; - 4031C08AF41EB5717E50F252EB9619DE /* SDLControlFramePayloadTransportEventUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = 026C522465461D2651A396400F15816E /* SDLControlFramePayloadTransportEventUpdate.m */; }; - 406DFE813A052A855D6676BE3C7442EC /* SDLTemperature.h in Headers */ = {isa = PBXBuildFile; fileRef = D16DBA7C10C34D2E22A67C65927F8D25 /* SDLTemperature.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4118ED81086EC0AB6C067C913FF309EF /* SDLTireStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 881888E1F3926DBD7D2B8B9D4057B6B9 /* SDLTireStatus.m */; }; - 4146591FBD90FC641348E6736882B2E5 /* SDLAsynchronousRPCRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 77B63B96875F1C820F190F3AC0A911ED /* SDLAsynchronousRPCRequestOperation.m */; }; - 414659B4BBF380B05FB6D14228116399 /* SDLNotificationDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 2540FB48A65EFCB11FB8B5156DBA8201 /* SDLNotificationDispatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 416C55C12904245979B370B13EDE13C0 /* SDLCarWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 524A27962BB7A038C3B5A39B5A529ED5 /* SDLCarWindow.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4188A89659E8983E8F643EE3DA11134E /* SDLRAWH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = B11185632289362C4E685A33488343CF /* SDLRAWH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 41B5F7422392AF0E4913343AA37DFC09 /* SDLLanguage.h in Headers */ = {isa = PBXBuildFile; fileRef = CFFD94F699E758B296EBA10E07F683B1 /* SDLLanguage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 41C627171A616D718ABDDC5E9298BCDD /* SDLControlFramePayloadEndService.h in Headers */ = {isa = PBXBuildFile; fileRef = EBD94A8CDBA452B3D05316C90227BD89 /* SDLControlFramePayloadEndService.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 41F229081EA3B2C8DD97C7847EA59C00 /* bson_object.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = DD2A35B92D9AC44F072344ECC125D1B7 /* bson_object.h */; }; - 42B0127D5FE47E06FC473C2E73076C39 /* SDLSendHapticDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B837E51434913D84E58B09A8B04A7E84 /* SDLSendHapticDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 43433209F0A6AEBBC66F9C2C0C3677FB /* SDLDIDResult.h in Headers */ = {isa = PBXBuildFile; fileRef = AACAAE80DEC9BA4877F4673B9A256C7A /* SDLDIDResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 43AE76A59C4B8CBA13DF103BCCE5CBBD /* SDLEncryptionLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 58FE6CB1EE278E803C1B5FF6EB589249 /* SDLEncryptionLifecycleManager.m */; }; - 44298616B04419E21E3B52AA81344E41 /* SDLSetGlobalPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 221567F33875BCC7E8D9E6448B21CAEA /* SDLSetGlobalPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4459DBDBAC2274C4C6A3562284C82CD4 /* SDLKeyboardLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 00F802377FED3220A7D572E90814F78E /* SDLKeyboardLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 446DD73796C4DB12980BF45ECE1851A9 /* SDLSamplingRate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D6BD3775E7938F10CC4DDE5EFEB12C2 /* SDLSamplingRate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 44812B4C0E8553CE1C5270014C84E4E8 /* SDLElectronicParkBrakeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 326B988FE7A92BB39F45659C26EDF13D /* SDLElectronicParkBrakeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 44B209A527A69871374E1E156CFB0899 /* SDLEncodedSyncPDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 080C0AFE1D0A26741E58932027641033 /* SDLEncodedSyncPDataResponse.m */; }; - 44C7B81BAEBD57895AFB62013688DB25 /* SDLSecondaryTransportManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4937DF05A2FDF67D435549105737E0AD /* SDLSecondaryTransportManager.m */; }; - 44E2E8310C02EFCD578734633D24C5D5 /* SDLSyncPDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C754499B66CE148E693BB1FF1F468E2A /* SDLSyncPDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 455B22814822C82236B23D1CC8CAFC57 /* SDLNavigationAction.m in Sources */ = {isa = PBXBuildFile; fileRef = CA602EC4E5C28004D96933F0A7FC26A5 /* SDLNavigationAction.m */; }; - 45B89DB4BC754CABE301F3976E817DDF /* SDLAlertResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 83335AC43298E401A07294CE5F7FB4FA /* SDLAlertResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 45E837C2448C3A2E325E1F3C704DDDDB /* SDLGetInteriorVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CF64BCEDC0A50BBDFC1D74C9A0243BEA /* SDLGetInteriorVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 466C4783AC46602811E0B894FBCAEBA3 /* SDLPerformAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = 4411DAF1B7858D84F9A5933F44751B69 /* SDLPerformAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4681242BC3AA9D72A34C48AB5E217313 /* SDLPowerModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 743FE6CD7692742CFA7D4D7A6E714FC7 /* SDLPowerModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 468E23F01910C00372871E321677D708 /* SDLMenuManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 26FD9D1C417A073A9574CE798E12DFED /* SDLMenuManager.m */; }; - 46D8ED642B200A137512BB44D779E9AD /* SDLPerformAppServiceInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F34249B622DD4B497630858D68F221B /* SDLPerformAppServiceInteractionResponse.m */; }; - 47367F64A363C61D250A3468085643BD /* SDLCancelInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = 448B4ECBFE83DF3E2B77F2D820F2A368 /* SDLCancelInteraction.m */; }; - 477719EE4D3DE4F85F24E2648C5CEB6E /* SDLVrCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 8715DA57587883550705045298299293 /* SDLVrCapabilities.m */; }; - 4816981DC17C9216116E43146A4DF17E /* SDLProtocolReceivedMessageRouter.h in Headers */ = {isa = PBXBuildFile; fileRef = DCE361553E0EABB14A1C509A7093DE01 /* SDLProtocolReceivedMessageRouter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 482E7DA3E17EA819958A6ADE561D4A6C /* SDLVoiceCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B28910E4BB86E3DEC060B763E45C0FA /* SDLVoiceCommand.m */; }; - 48318B613184DDE2158BB0319C651664 /* SDLImageFieldName.m in Sources */ = {isa = PBXBuildFile; fileRef = 795BD010B79F761A42E76581AB8275FF /* SDLImageFieldName.m */; }; - 48533795DE37FD01F7C341BAD8E9F1A6 /* SDLDeleteCommandResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = CB3FBF9629A46D84216A895E9CC557D0 /* SDLDeleteCommandResponse.m */; }; - 486D0104F246B30FA7F8CED598B947F1 /* SDLOnSystemRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = C0739DA52D74882686FE054F273446BD /* SDLOnSystemRequest.m */; }; - 48A87FEEBAB7CDD8F8361A46EA1A6EEC /* SDLGetAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 20FED3C64AC281061455C114F2CDEEA8 /* SDLGetAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48D2F37A0323E42FA7F9720CD932C164 /* SDLMutableDataQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = E069D9D3F86160512916B7ABC072595F /* SDLMutableDataQueue.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 48EC5046C8C0F0F88B2D70EFCC70A55B /* SDLDeliveryMode.h in Headers */ = {isa = PBXBuildFile; fileRef = EDD45B023BDB53CC20F889178F9F4D35 /* SDLDeliveryMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48F332FAF2668AC6AEE9652BAFA7E8E9 /* EAAccessoryManager+SDLProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = EDB0328B80CB9DE895193A6A4467BB91 /* EAAccessoryManager+SDLProtocols.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 491C6573D1D0904EA6E083E25724DA04 /* SDLRPCStruct.h in Headers */ = {isa = PBXBuildFile; fileRef = F0E6D6348ED4BE7016042DB10D5CB6C1 /* SDLRPCStruct.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 491D694C8F0A8892857BD74CADEB69A0 /* SDLFocusableItemLocator.m in Sources */ = {isa = PBXBuildFile; fileRef = 11EBD8D7297FC1CE9479C7508D26FEF6 /* SDLFocusableItemLocator.m */; }; - 497C10D19DE00429231009C559672879 /* SDLSoftButtonTransitionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = A61B36731BEBEFB3938CDFBFC1EF305B /* SDLSoftButtonTransitionOperation.m */; }; - 4A1F895472135B6EDD8F124EC7FBD79C /* SDLOnRCStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B753AC886E9C4581F99D019C2AE558E5 /* SDLOnRCStatus.m */; }; - 4A82C43B943A07EB9B3B35C775D7E384 /* SDLRGBColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53151FA74CB6E2324C41DA26D397B648 /* SDLRGBColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4AA196AC12C2887B2B7F3BF50D5D33F3 /* SDLPCMAudioConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = CFAE9C8809F27A20EA7BA366B50D1D09 /* SDLPCMAudioConverter.m */; }; - 4AE20BD11A94133B07C8EADCD51AEF47 /* SDLCharacterSet.h in Headers */ = {isa = PBXBuildFile; fileRef = B3B2790352EE6BE9ABFDD04D31188B31 /* SDLCharacterSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B3D121041EA80CF0A6C54EEDC4D567F /* SDLIconArchiveFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A55660E282AE3C863355F2402E8A0E1 /* SDLIconArchiveFile.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4B557114510641E1C5179A13E20947C2 /* SDLMsgVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B778D29FEEFC0DD5D2556DE02F267F8 /* SDLMsgVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B8B28A242A8DDEF1B1FB81CBF000F1C /* SDLCompassDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = CCEFC169422E967386D07342ED9E5B8F /* SDLCompassDirection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B98282E2AA74AA1026B2A51C6111F68 /* SDLButtonName.h in Headers */ = {isa = PBXBuildFile; fileRef = 659961EA97BC4FAE7763288542F9CB2F /* SDLButtonName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4BA7B8B616FE3C0AE1EC144263805DB5 /* SDLAppInterfaceUnregisteredReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D17B47BB0D9A877AB0D85B41A630687 /* SDLAppInterfaceUnregisteredReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4CB426F09D090C57A0C0D743F5A802B1 /* BiSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 66FD520D0728F8EF271910AF32E9C621 /* BiSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4CCF6B5645070AD44CBC65C932FACE82 /* SDLAlertManeuver.m in Sources */ = {isa = PBXBuildFile; fileRef = 8012DBA7B04E0C0D6D13D3AB41B86CFA /* SDLAlertManeuver.m */; }; - 4D0CDF50A825C03A88E5F1D91B94FE14 /* SDLOnTouchEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A6433D1239C8C9171A35AE33070626 /* SDLOnTouchEvent.m */; }; - 4D7E7BA2A3F3F8258536082B0A8C408F /* SDLEmergencyEventType.h in Headers */ = {isa = PBXBuildFile; fileRef = 84C4889DD2C1AC35B627A69F8C7C3D42 /* SDLEmergencyEventType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4D9CCEE4CD5610447009B1E2E3102802 /* SDLPermissionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 2741946AE645F8BDA0E4E6BEFA965D56 /* SDLPermissionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4E10FE11AA345AB32DF8C2C78AC72945 /* SDLLocationDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = A72EACA38EEC0588D3830851A96A2681 /* SDLLocationDetails.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4E3A3B4BD619CC83FB17F5C37AF54790 /* SDLDefrostZone.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D33A9934F9557666AEADB5FF2C1768 /* SDLDefrostZone.m */; }; - 4E42B5A60D7D15B0A6D56BF106E0DF6C /* NSMutableDictionary+Store.m in Sources */ = {isa = PBXBuildFile; fileRef = 208C514CB24786D3F215E8EE314CA7B1 /* NSMutableDictionary+Store.m */; }; - 4E6DF2C01963631E37CB8DE7C06AFC7B /* SDLClimateControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C61578FBFA3147D20DF240420C54033 /* SDLClimateControlData.m */; }; - 4E98EC57EB6B986BCA31A8CBD8D47770 /* SDLUnpublishAppServiceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C3BF3454AF3C68B1EDF2469AF1478D8F /* SDLUnpublishAppServiceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4EB7EF3C3B8A753DE2CD8976DAC11678 /* SDLCheckChoiceVROptionalOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D870FC3F91ACC2B15AB223846D01700 /* SDLCheckChoiceVROptionalOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4EE7DC6A8E300AECCAD774FC04C06CC7 /* SDLFuelRange.h in Headers */ = {isa = PBXBuildFile; fileRef = D48DCBCD7C2098396B010A87235DBEC7 /* SDLFuelRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F09D2BD66940623B09B41ABAF668917 /* SDLIAPTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E24BC1F0E1A7E4BCD68AF3379A7B00 /* SDLIAPTransport.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4F59B76594C1905BB5FE6EE9197C1274 /* SDLSeatControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = ADECF6F036198C3154612FAAE7A54AA5 /* SDLSeatControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F6EC3B01C68F0C98C207FFE03CE1318 /* EAAccessoryManager+SDLProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = C2984A671B556FF5F5714ABB2F86EE8A /* EAAccessoryManager+SDLProtocols.m */; }; - 4F8500F87E23C15D287C5DD2DECE8B4B /* SDLRequestType.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EC4FB6334D52A0DA36EAF8AB148A89A /* SDLRequestType.m */; }; - 4F85738975C802A74B14297825DFB4CB /* SDLLifecycleProtocolHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = DBA779D91F961DC90E60E31DA4580DDF /* SDLLifecycleProtocolHandler.m */; }; - 4F8AE7258BB956DFB6C7040D9018ADF2 /* SDLShowConstantTBTResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 4484173D9CEBA083E87CF3BC381D844B /* SDLShowConstantTBTResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4FC54723A213B4601E377D642C8B7A3A /* SDLImageResolution.m in Sources */ = {isa = PBXBuildFile; fileRef = 12A3FA6BEC26E85A501F2A6A020EDBA3 /* SDLImageResolution.m */; }; - 4FCE0088480192BE0F5AD6E1F62569C1 /* NSBundle+SDLBundle.m in Sources */ = {isa = PBXBuildFile; fileRef = B04D130FB2F02F323455BD16B20ACE8B /* NSBundle+SDLBundle.m */; }; - 4FDC415F408F842E6797D412B962A94E /* SDLLayoutMode.m in Sources */ = {isa = PBXBuildFile; fileRef = BEB3EB4F638B59511646F2FAB436EA28 /* SDLLayoutMode.m */; }; - 5018CBE8BD73A237A1D49B52DFDA4469 /* SDLVehicleDataResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C4733935F901007F3F62700534869C2 /* SDLVehicleDataResult.m */; }; - 507614048885966692844A57CAB8F768 /* SDLSingleTireStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = EA25911F974B5B30D235AC704A107388 /* SDLSingleTireStatus.m */; }; - 5096182474D6C15A6B0FFAB419190E81 /* SDLEncryptionManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CED171DA1E775EB6E14EA2D2D5AF5D5 /* SDLEncryptionManagerConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 50AE63D8332621CC3493C807B8134262 /* SDLEqualizerSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = A46B7480DA60280AFABEE933D1777D59 /* SDLEqualizerSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 50C89E8901B132F3463B7FD73E2A7DF9 /* SDLIgnitionStableStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC369B414377098F2BD4E968676D84D /* SDLIgnitionStableStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 50FB6AFA657CFB352989099D13102F5B /* SDLFunctionID.h in Headers */ = {isa = PBXBuildFile; fileRef = 90DBBF1589F80689A14CB59C1644BEE7 /* SDLFunctionID.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 51028908A8086942864F571CBEC493D6 /* SDLOnKeyboardInput.m in Sources */ = {isa = PBXBuildFile; fileRef = EA45F0C83A48EACA03748C23787612AB /* SDLOnKeyboardInput.m */; }; - 5122E43189822CFA912FF5442E49F767 /* NSBundle+SDLBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = FDBA9441EBE6863A395EF0DDA111A8FC /* NSBundle+SDLBundle.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 51378702549105BAEC08F36DF29A9C35 /* SDLShowConstantTBT.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B39BA281073C47D8203292D7923D0E8 /* SDLShowConstantTBT.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 51558A65B02D8B1FBF6385B3763DBACB /* SDLCarWindowViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 92ACAA8B4D0D63E63F39B9F53DEFD855 /* SDLCarWindowViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 51E5FDE48BA94ADB52A8A4C7D2E3CB3E /* SDLObjectWithPriority.m in Sources */ = {isa = PBXBuildFile; fileRef = D8C3E2092639989CC311D760FEFFF098 /* SDLObjectWithPriority.m */; }; - 51F564A4B2B0F3AD4D87627DC3996138 /* SDLTimerMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 52AD32EB63C924C84FDEC6DD43F329EE /* SDLTimerMode.m */; }; - 521E03E63F754E1A463AE59E6FC1A41C /* SDLPresetBankCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C9122F060BC11803A66A7401A0F946FD /* SDLPresetBankCapabilities.m */; }; - 528B18A7832F83E491FC2CE80FB6670B /* SDLCacheFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C9328B451F98B0315DBA9202D5241 /* SDLCacheFileManager.m */; }; - 529E1292ED8DB847A829F4DB43CA5167 /* SDLShow.m in Sources */ = {isa = PBXBuildFile; fileRef = F21009FEE092F6591C2E5955ACBCD7A7 /* SDLShow.m */; }; - 52A4C2B016A6EC2EFBB52FE9D6D75591 /* SDLShowAppMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 77D15E8AD5A19B2ED89FB10E91070268 /* SDLShowAppMenuResponse.m */; }; - 52B914BB3F72F83BBA465716FD859115 /* SDLLifecycleSyncPDataHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 445645662A65A1C42078DABD7A20509E /* SDLLifecycleSyncPDataHandler.m */; }; - 52DDF42FFF38F3CE6B04BFCA44933A35 /* SDLRPCFunctionNames.m in Sources */ = {isa = PBXBuildFile; fileRef = 04F52C5DC12FEA3AC1931C02FEB88081 /* SDLRPCFunctionNames.m */; }; - 532CBAD7F7203330EB116F867D78AD94 /* SDLImageResolution.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E7E805FF542E9C1C6E18B46AFABA56 /* SDLImageResolution.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5384C2E17CD387967780AB2004FA1D02 /* SDLSliderResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D48E02753FA770CE680D9502BD8F27F /* SDLSliderResponse.m */; }; - 5387C9D45457C73F1FE2DEC29EA23BAC /* SDLSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C10B9546CABAE071881D281D73820BB /* SDLSyncPData.m */; }; - 53A4C5BB897DE00C73D04FE9C798A378 /* SDLImageFieldName.h in Headers */ = {isa = PBXBuildFile; fileRef = F45151BA3773006A971D197673C22C5F /* SDLImageFieldName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 53D2AEBA404C140CAD3C1D71C71B671B /* SDLSetDisplayLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 881E4C25BD44C40E029B9496CF96582E /* SDLSetDisplayLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 53E093C1DC6055913CCCC71F391E9A8B /* SDLIAPControlSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 86D33E8FBC03915470B26F43AFCE8644 /* SDLIAPControlSession.m */; }; - 53FB495454A995493CFBA59DA2A7186A /* SDLVehicleDataEventStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 363A1394DE1FFD6DF123791772377320 /* SDLVehicleDataEventStatus.m */; }; - 554E100F0671184D9B15CC7FFEF7C9D9 /* SDLEmergencyEventType.m in Sources */ = {isa = PBXBuildFile; fileRef = BB4BC0AA3756089C2F90667540A4880D /* SDLEmergencyEventType.m */; }; - 557D83DD1A2B8A0488AAE4F2C227DB16 /* SDLPerformAudioPassThruResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = BF926AC06548F171C59AEE3EFD6254AA /* SDLPerformAudioPassThruResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5583694D10586B8BE311BE8C17491438 /* SDLLogTargetFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 383B3E8FFC31FF9511326F14714F98E2 /* SDLLogTargetFile.m */; }; - 558629DF1394586DBF06BA79BC133AFC /* SDLMyKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 031BBB010D945FCF674851CA3A00B9F3 /* SDLMyKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5632263F62FB69A40803CE6C3D995709 /* SDLFunctionID.m in Sources */ = {isa = PBXBuildFile; fileRef = 1444B3657275C2D2C695FC678ED8EF62 /* SDLFunctionID.m */; }; - 56EE8DEB476EB170BA3E5B106F3C05CD /* SDLListFiles.h in Headers */ = {isa = PBXBuildFile; fileRef = A59281B6B7A635EC71C289B5AA8FAFEC /* SDLListFiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 56F95DBFCAF964065E83931B5DAAE65E /* SDLControlFramePayloadRPCStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AB1DCB476513BFF046B549ACEA9FE45 /* SDLControlFramePayloadRPCStartService.m */; }; - 56FD57BF3791ACD2B74C0162F2BE9FBD /* BiSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C64A1B5B79B529141EBEF99FD0560328 /* BiSON.framework */; }; - 5722E858FD960FDCE31C18D4FC174A03 /* SDLTouchManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 709665B2A1B0E940E288AE35CA99AEDD /* SDLTouchManager.m */; }; - 5755FB5601F8050337ED594D86F3CA0C /* SDLRPCParameterNames.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FBCD2AEAD60094A7CB51F32D61FDFDA /* SDLRPCParameterNames.m */; }; - 5789D88EC2C3F5D751FB5B6579DD2BA8 /* NSMutableDictionary+SafeRemove.m in Sources */ = {isa = PBXBuildFile; fileRef = 8945F938BC1F0E55439AAB1ADFF84C1C /* NSMutableDictionary+SafeRemove.m */; }; - 57929D337BFC2A2910D7D58E49CBA51C /* SDLSeatControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 74815297D14D7E57559C2C6AF0F29BBF /* SDLSeatControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 580AE776FEBAFD0A7408EBC296789908 /* SDLLifecycleSystemRequestHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E3170BC3B4F4F5877B69D05DED54CBA /* SDLLifecycleSystemRequestHandler.m */; }; - 5814A19214584FF711E27A0165DB70B8 /* SDLOnTBTClientState.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B5BA0CEC12E67BC7F5BD539A70729DA /* SDLOnTBTClientState.m */; }; - 582C9ADF86D98712DAED3E320A3726F7 /* SDLSoftButtonState.h in Headers */ = {isa = PBXBuildFile; fileRef = E7395392C63B23687A1B8E76B8AB07F7 /* SDLSoftButtonState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 584B521B4CD67564DD2EAEA58D0741AD /* SDLAsynchronousOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F747C1DEC46DA7F32A9DA0A49F0887A5 /* SDLAsynchronousOperation.m */; }; - 5864283BEBFE5C0165A1AEA85C2C8BB2 /* SDLVehicleType.h in Headers */ = {isa = PBXBuildFile; fileRef = 52A7852C42AC1A630401AD0DB04DCACD /* SDLVehicleType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 58E0719523FFA83A09D39EF3F58F6736 /* SDLKeyboardEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E74A07526CBD02470FDA755AB5D6C7 /* SDLKeyboardEvent.m */; }; - 5936185F7F9BDEA038CBC25861A7B800 /* SDLMediaClockFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = CF03C1888031E3BA51620916196E3F13 /* SDLMediaClockFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 59A56DDBA228D55C3134BD240398EED9 /* SDLDirection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D0CF36EE6F81BF9E7C336BFF6FA6882 /* SDLDirection.m */; }; - 59ED79597725A4AADB89371D24EBEBC1 /* SDLPermissionElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8673925B5FFBCA631C8D9562197C41 /* SDLPermissionElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5A47D62F5F8F9C203469C13B913B1462 /* SDLECallConfirmationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C252C93BD400D587AED7514EAE2990A /* SDLECallConfirmationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5A48DFAAD820439C6DD283B25B1B6699 /* SDLOnButtonPress.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A761B2562737FE71DC9907B5B509B09 /* SDLOnButtonPress.m */; }; - 5B7878B537CD40ED19460FE32BFE4B78 /* SDLRPCResponseNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5BC1A9155BA8ED843E0972909B9572 /* SDLRPCResponseNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5B8FDF2A72CAB13B7848126ED89D4A99 /* SDLImageField.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D3EC08357B4F67E2BD4CACCC0300724 /* SDLImageField.m */; }; - 5BCCF4D01B9C4C5DDDC66A187E1158C4 /* SDLPRNDL.m in Sources */ = {isa = PBXBuildFile; fileRef = 02F85B02BD1D0104B4B4F60FE4E0B7A3 /* SDLPRNDL.m */; }; - 5BD31D6CFFAA15DBF142536BA3BD94EE /* SDLChangeRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = 057BF4E380C24A34B8A91DABCBD55757 /* SDLChangeRegistration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5BF9A79E2DB2C57D1AAB763884F1F50B /* SDLAppServiceRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 63CCE3D626BB22CCA767323E3EE5965A /* SDLAppServiceRecord.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C0C633DD0A3D67F0763146E88F96668 /* NSMapTable+Subscripting.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CFB911A9893560A2C355E39C00E5539 /* NSMapTable+Subscripting.m */; }; - 5C110E803525A9E4B32FD457F76865E0 /* SDLSeatLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 790A157900FC0357E1E10AE048065C70 /* SDLSeatLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C1C02512F9868EE4D3CB40D3EFEB29F /* TestSubscribeButtonObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = B7462198B3907DB7D73BC29114E41EAA /* TestSubscribeButtonObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5C2BC01A4218E85A37E7980742B3D0E7 /* SDLLockScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4F718CA865E4EBD8B3A40B5E3399596B /* SDLLockScreen.storyboard */; }; - 5C369D256AF7DC378B86FA8474FCDA3B /* SDLDeleteSubMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F2295CBB1464F89AF0CD86D10D353133 /* SDLDeleteSubMenuResponse.m */; }; - 5C6CEB2D9368DD956E8DFB71E7290E3C /* SDLPrimaryAudioSource.m in Sources */ = {isa = PBXBuildFile; fileRef = D08EB5D57959DC19650C80C22DAB3BE6 /* SDLPrimaryAudioSource.m */; }; - 5D956CAE93765CF2D19F46066504001A /* SDLKeyboardEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ED6CCE2CF434E4F07A3031783397721 /* SDLKeyboardEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5DEB98011444C5BCFC62E391A0AC0074 /* SDLLifecycleConfigurationUpdate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EB6A8B5DA3D228DF8DC2F364DAA3F73 /* SDLLifecycleConfigurationUpdate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5E02140A9157AA4C9BEE6A9A044E4DC1 /* SDLIgnitionStableStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 7910570CD2F58D8D77EC77D4F5477546 /* SDLIgnitionStableStatus.m */; }; - 5E3F02846B693F10D67988B2311C5637 /* SDLHMISettingsControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = C588AF22E8C9EBAD69A20BE6D4709DD3 /* SDLHMISettingsControlData.m */; }; - 5E6226967B8FBB946A53C86E6730FC47 /* NSNumber+NumberType.h in Headers */ = {isa = PBXBuildFile; fileRef = 61BCAB5AD776DC231BC9B208AEA941FC /* NSNumber+NumberType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5F34BFCB3F62497D394181D996499346 /* SDLTurn.m in Sources */ = {isa = PBXBuildFile; fileRef = C1C6FBB24C1BC5CA5A7F2B3C4FFED418 /* SDLTurn.m */; }; - 5F380CC11226D4A05EC5A8276730B966 /* SDLPrioritizedObjectCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = B274AD52B0FF57921A0C62CA06B15804 /* SDLPrioritizedObjectCollection.m */; }; - 5F3CB89390876085191CC0A3D249692A /* SDLNavigationCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD062E44BAEAC8F381D25BB2C49F775 /* SDLNavigationCapability.m */; }; - 5F41FC573ECCB166C8CEA257C47841FA /* SDLGPSData.h in Headers */ = {isa = PBXBuildFile; fileRef = 200CFF87D513357375E0E8A676B4DCF0 /* SDLGPSData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5F5C149F78091F0E90FDC1E306A9F0BB /* SDLSoftButtonCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 84184A09E2EEE69596297343EBF3F35F /* SDLSoftButtonCapabilities.m */; }; - 5F86B7F362E3DB2F5EADF6A81651C848 /* SDLGetWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = 950F3C54DD8E214F44E5D973A18C2FC3 /* SDLGetWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5FB5DD9F6732B719FEC80F4FB928AAEF /* SDLVideoStreamingFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 808D3D1BD6F1044040D5B2D458E4B21C /* SDLVideoStreamingFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5FF2F52E73B01B06B0D1DD2B7502B928 /* SDLSystemCapabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CCD15C77520926C2D6DE6C44A380FD73 /* SDLSystemCapabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5FF666CC71C873FC835E1C8473DCC044 /* SDLDriverDistractionState.h in Headers */ = {isa = PBXBuildFile; fileRef = BD026A8DACC64BF05FE396E827AA092F /* SDLDriverDistractionState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6018282BC65CCED9D947B60ACB3549E6 /* SDLTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B6AA11A6ACA1FEDE8194897C492F598 /* SDLTouch.m */; }; - 603D7B56C9C81FD06C3EC810D7D782F7 /* SDLListFilesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 554FE2A409FB1FB6BF0E98F233F97E6C /* SDLListFilesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 60497AADC0C7F17F737D365084E50302 /* SDLPowerModeQualificationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B1CFEA53176A71E567B91FF0E97CB278 /* SDLPowerModeQualificationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 60680334C6656A73B54B98D1D6062EC2 /* SDLAudioStreamManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FE164609DE1ECF1EFF6A42F2D5BEEABC /* SDLAudioStreamManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 609D59858F614E865E35B9047D721B55 /* SDLLogTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = CDA21BAF0A80764F863AA3136B132BCC /* SDLLogTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 60F49BAE1E585A348B04B8C10FE7876C /* SDLProtocolConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = C6544B04071C10C4B60339851B191DEB /* SDLProtocolConstants.m */; }; - 61286289354C21684DCA0FB800FCB7E3 /* SDLTemperature.m in Sources */ = {isa = PBXBuildFile; fileRef = C30E238F7AB23166E9F59B321FF1EDFE /* SDLTemperature.m */; }; - 615F5B49FC792C5089E5C9F8FEDA7EC9 /* SDLAppServiceType.m in Sources */ = {isa = PBXBuildFile; fileRef = 30C60087B34A79843BE53EE59A516D68 /* SDLAppServiceType.m */; }; - 61622F162E170CCC574404D22E2DF210 /* CVPixelBufferRef+SDLUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = E2D2C496603448224B3A478BD1E7C7FC /* CVPixelBufferRef+SDLUtil.m */; }; - 616D6920637E804849E0373AD2174843 /* SDLPerformInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = CB91F38B3D46D7DF0F73684B53D3BDD8 /* SDLPerformInteraction.m */; }; - 61E51A232CFFA49D07A9D4BBEB33C394 /* SDLButtonPressResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 297D3BF189B64B55B4EBFB1B4F256FD9 /* SDLButtonPressResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 61EFCEEB040AC3FA357021A8C021BFDB /* SDLButtonPressMode.m in Sources */ = {isa = PBXBuildFile; fileRef = CD3B8A988BB67EDC48B5BBDC39F44164 /* SDLButtonPressMode.m */; }; - 61FAC7102046B7AA02E77C61022505B2 /* SDLGetDTCsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D1D048D4CD12A7F93CA9F3BEB86BB85C /* SDLGetDTCsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 624FB9F57A65D99E279F7B7030CE8F2A /* SDLPresentChoiceSetOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 78A7A95A29CAE2745B67B7C2F0F5FCD4 /* SDLPresentChoiceSetOperation.m */; }; - 62541828E1ED8584171F55DD3CF610D8 /* SDLAudioPassThruCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C18816A43577E38FE8908AD8B8B72321 /* SDLAudioPassThruCapabilities.m */; }; - 631017B15D80B89745179561A7882711 /* SDLPerformAudioPassThruResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1079F5E8BF4B26941ED6E2AC3446BCC1 /* SDLPerformAudioPassThruResponse.m */; }; - 6320CDF0BD3E03E4095435D5FF23AE05 /* SDLWindowType.m in Sources */ = {isa = PBXBuildFile; fileRef = 53911CEF89F12CFA7AEA7FF43FBF7E06 /* SDLWindowType.m */; }; - 63375F5754AB2A6330826FAEF85475FF /* SDLPerformAppServiceInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B456CA5D8FC2BB67712D9BE46D2EA781 /* SDLPerformAppServiceInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6389FBC37D9B7A5FCE86628A648D6023 /* SDLCloseApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = A4D71C10FFEEDB848F3F2C093F2DC642 /* SDLCloseApplication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 63917E3E16077B84F94481FEEE4EF4FA /* SDLDialNumberResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B29A443AF2301B12BD576CFDE7A4092C /* SDLDialNumberResponse.m */; }; - 63A78859EA9AFE1590C58ED29AD1773E /* SDLOnButtonPress.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A3F5B7EC0DC340080344B57171997C6 /* SDLOnButtonPress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 63D0F548923E6CCF260C1B0B8FAC6765 /* SDLManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C810B6DB2EF473A10A3289A980D1430 /* SDLManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 63D41CDF01DD88B980D593CCB9F42789 /* SDLSetDisplayLayoutResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E7334963A37BC3A08C266E45F0DD29B9 /* SDLSetDisplayLayoutResponse.m */; }; - 64561042D6D620D2EE28EBB734BF03EF /* SDLWindowTypeCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AF964C803E435C54BC6C0D5656BC75A /* SDLWindowTypeCapabilities.m */; }; - 647A5E0ECA0ADC3528B86763362A0924 /* NSMapTable+Subscripting.h in Headers */ = {isa = PBXBuildFile; fileRef = BA157A4B51D5529A4050627BB1C06625 /* NSMapTable+Subscripting.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 64BBDF7281EAD65AEDDB047B1D987BDF /* SDLTimerMode.h in Headers */ = {isa = PBXBuildFile; fileRef = EFD2738443614AA486E73684C49EFD84 /* SDLTimerMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65272CADF916905A96F9819D51EBE142 /* SDLSetMediaClockTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 009617EB39512D02064536C0802DF918 /* SDLSetMediaClockTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6546CB8FB941FA6521D2D53F4423E0A0 /* SDLOasisAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = ECA0A1828C5374CB24D7B145DA5A60D2 /* SDLOasisAddress.m */; }; - 6555ADD4F28D7D0113B1ADEA9908B813 /* SDLTouchType.h in Headers */ = {isa = PBXBuildFile; fileRef = F831CC11D420FA3CB7D9E212B2E9874C /* SDLTouchType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65740342F23043EC9699F09D611C30B3 /* SDLDeleteWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = CBEBD6445D569D27DF83CCC6C9F8DC0E /* SDLDeleteWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65FFC30295F6558FCA6A0D44DE401664 /* SDLUpdateTurnList.h in Headers */ = {isa = PBXBuildFile; fileRef = 59F1B488251110BAEA799A5E7C83E6A7 /* SDLUpdateTurnList.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 661388FE2DB8C7B278CC3595E6F7B8A9 /* SDLControlFramePayloadAudioStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 6644C7A504AD3CAC83C4A63B22675EB0 /* SDLControlFramePayloadAudioStartServiceAck.m */; }; - 663348139A84842D9DC8B687D034FAA3 /* SDLIAPControlSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 2118A772BE2023279116272EE7B812EB /* SDLIAPControlSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 665B8CB4DEEC8E138E60BBA8D5F6D783 /* SDLWindowCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 4417737422CDA6FC54D20FD73B984618 /* SDLWindowCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 667074D7329FC4A6C93D491CCA95AD28 /* SDLDateTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 3603AB47CCA7EABB5B1FDAC0C16A59C7 /* SDLDateTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 669E7D9BE46C978941CAF921CD8448E8 /* SDLAppServiceType.h in Headers */ = {isa = PBXBuildFile; fileRef = 70D15488C806D4BEC8709786B9EE4931 /* SDLAppServiceType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66AE1E0830F6B4805FB27212308F3740 /* SDLSystemCapabilityType.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B5B5ADAAD2A74CAACA981BBA0E650AC /* SDLSystemCapabilityType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66DD4C2351A07491E98BD7CD80A6A7DC /* SDLRPCStruct.m in Sources */ = {isa = PBXBuildFile; fileRef = FC438DC201BFBEC2EE4025086F8313F9 /* SDLRPCStruct.m */; }; - 66EFE45CF4E1A18BA9351BE5D23B4AE5 /* SDLAudioStreamManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E455C3FFF2568B4B1C81CC712A1DB06 /* SDLAudioStreamManager.m */; }; - 66FC0DCB94EBCBFBC1E6A3D16FCBE32B /* SDLSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F81576D0E235C0559B93C3A3784A4A6 /* SDLSystemRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 670B776F551B36D554119FB8026FE32F /* SDLDeleteInteractionChoiceSetResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DEE0B3D792D8D9B339974A65CFE9D595 /* SDLDeleteInteractionChoiceSetResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 672A6C9980B30F2A8A1A7E7ADC9CC09D /* SDLStreamingVideoScaleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 95F535D382BB81682B987861B7CB0DDC /* SDLStreamingVideoScaleManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 67692FE28D4340CE9F1E21ED290A7BF4 /* SDLMediaServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C69A475BAE41EDD24A00FB701BC3EC6 /* SDLMediaServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 676C546E11B1621DE2BB157860876C84 /* emhashmap.h in Copy emhashmap Public Headers */ = {isa = PBXBuildFile; fileRef = 4498BA293BEAD680B6055DB76B201258 /* emhashmap.h */; }; - 67D46AD5B6E35CB62DA133B5B348FA24 /* SDLGenericResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D1D89E21C967BEB9B2C7C143BF7A6A4 /* SDLGenericResponse.m */; }; - 67DD2F6C2C1B752CD9325DED259FEE1B /* SDLCreateWindowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E34195450014D320A5D463831A181938 /* SDLCreateWindowResponse.m */; }; - 67EF13392843998F139806BCF4599AEA /* SDLMenuManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = B2564FC1D10877AF9A91ABEB9100B92C /* SDLMenuManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 67F80DAB5A2C44767BBD1E0F87132790 /* SDLPermissionFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = BE76E8F8542A250DA8DF7178F62984AE /* SDLPermissionFilter.m */; }; - 682621E46D4F78FA33B4AE15672E7795 /* SDLCarModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 30D436C8BEF4813A0366098F52523C60 /* SDLCarModeStatus.m */; }; - 683759594A286A805CC281E2A1377FDF /* SDLPrioritizedObjectCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F9EA7382A67871A90547746B880626E /* SDLPrioritizedObjectCollection.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 68A1D017360BBBBC0074B9F8C38324D7 /* SDLTriggerSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 399963B38F59EC81F67BF3E9E31B2F1B /* SDLTriggerSource.m */; }; - 68A818CEEC6D3464F1F342FDA6F2A589 /* SDLDeleteChoicesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 32A8A151275801260ADFAEC896C908A8 /* SDLDeleteChoicesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 68B1EF92CDDDAE01715C7BE396C2F1A9 /* SDLAlertResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A9C1A17D21E9FA2E45F72C2B32CCE8F7 /* SDLAlertResponse.m */; }; - 68E4D80462EF8FE2BF63088DC7969409 /* SDLWayPointType.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5EACB795A74BEECD2B2D57A5D74C00 /* SDLWayPointType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68EA9F3B5A2C59F3DAEB02CB431641BE /* SDLSetGlobalProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 29F0F5DC74AC7556C287B80348D40588 /* SDLSetGlobalProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68EC307B38999212B1E4E52A2A6A5938 /* SDLSystemAction.h in Headers */ = {isa = PBXBuildFile; fileRef = F113CD1AE27E195E8E894E7CEFF2C186 /* SDLSystemAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68F032CE30BD7CE0AE34E486D3284828 /* SDLRPCPermissionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = FFDB98B89A59A3B2447CB847429D8C87 /* SDLRPCPermissionStatus.m */; }; - 68F7A1B469E057D5D1704769522F3430 /* SDLReleaseInteriorVehicleDataModuleResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 895A7D207902140EBA17041F62E54A34 /* SDLReleaseInteriorVehicleDataModuleResponse.m */; }; - 690DFDCAC21DB2CF0A4196DF85213638 /* SDLSetDisplayLayoutResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 02D17977948909712E8F721ABB765601 /* SDLSetDisplayLayoutResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 693B129F38CC2B703FD8A7F08CB78C2F /* SDLLifecycleRPCAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = E8B87E7B6C490A994E034330CB9660CA /* SDLLifecycleRPCAdapter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6965ACD0E911E9BD96D98B7BBF6999D2 /* SDLAddCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D48DAC1DBEA20AE11B03D74419A181C /* SDLAddCommand.m */; }; - 69A700328FFCFD1C1E2E9FF0F0529DEC /* SDLLockScreenPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 663A9EF7F5F3FD6EE0A2CD1D2AC97B32 /* SDLLockScreenPresenter.m */; }; - 69BC1D80B84B7F1707FED6EDB7A50848 /* SDLDisplayMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 91BF1416AB652B4C37A9DEB376B5AEE0 /* SDLDisplayMode.m */; }; - 69E988775F50BC03CB1A92A342B78898 /* SDLSystemContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 05EF0182EFA11F347688F90D543F5C41 /* SDLSystemContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69F72E41357AC14E6AEDFA5D29169648 /* SDLProtocolReceivedMessageRouter.m in Sources */ = {isa = PBXBuildFile; fileRef = DD6BDB7BD482EF289B2480B8CA328408 /* SDLProtocolReceivedMessageRouter.m */; }; - 6A10282A596AAC26FD1C0C7C25D5B703 /* SDLClusterModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5869C4B4CE96D9E62C0313B0D1A429CE /* SDLClusterModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6A32EE1E98F4B89DC22FF426ED90E128 /* SDLGetDTCsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 93B36FDBAD2C44E813F8584D034A63CF /* SDLGetDTCsResponse.m */; }; - 6A39551CE8FE95E61A13AC6303021CF1 /* SDLH264VideoEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 511FC688BC8715CB040A0DE1F8B24C2E /* SDLH264VideoEncoder.m */; }; - 6A77038D70724D42FBE36C660FA25984 /* SDLRadioControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 41EEEB77F744D0ED3EF519C0FD308F2D /* SDLRadioControlData.m */; }; - 6A99B6EF560D2A0736B874F45E8B1D06 /* SDLRemoteControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C3E1DA75336E5B7703B366F52EB61E9 /* SDLRemoteControlCapabilities.m */; }; - 6B045CB9000C16A8E5D3AD569DFDCF1F /* SDLStreamingProtocolDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = EE1FAE9A70F6C11454D435DA45460256 /* SDLStreamingProtocolDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6B57D1A412547788055E9DA7140CFC2B /* SDLModuleType.m in Sources */ = {isa = PBXBuildFile; fileRef = FC83851939F611364060849E34FD8F54 /* SDLModuleType.m */; }; - 6B6C4354D06CE6C89C8326CEF5DEC82C /* SDLBeltStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 8491710A7CDE4F582940CE688AF7A91B /* SDLBeltStatus.m */; }; - 6B8AD2A80230C69999C2557111A863D6 /* SDLDeleteInteractionChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = C24AADEEDA015C43C563DB8822396C0A /* SDLDeleteInteractionChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6BAED78EC69507553115F18851E48139 /* SDLAppHMIType.m in Sources */ = {isa = PBXBuildFile; fileRef = 67B1375F3DDA0692EAB06F16FF383182 /* SDLAppHMIType.m */; }; - 6C0DD486593A4C4E141651525DA3E0B4 /* SDLDeviceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 579644EEE9880D03CC5BDA3AAA01F743 /* SDLDeviceStatus.m */; }; - 6C5B7C4935BC2EE9F988FBCB42082F22 /* bson_array.c in Sources */ = {isa = PBXBuildFile; fileRef = 094B9EE84AB60943CDCB9F8C70FA11EC /* bson_array.c */; }; - 6CA6585CCC7F10A53605A5ED5C6E6B81 /* SDLVehicleDataNotificationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D150921AE68F0BB3EE9419F5B9B006D /* SDLVehicleDataNotificationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6D06E07A53474A734004B5F848586E0A /* SDLUpdateTurnListResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6965165C7082ACB5194C99CB6FA07E6B /* SDLUpdateTurnListResponse.m */; }; - 6D90411B199CDB756ECFF1B520D943CA /* SDLMaintenanceModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 761B798C05833C28B0A217F40C5D9DC6 /* SDLMaintenanceModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6E3FD9310F03098F4243193E0FBFDE22 /* SDLRPCNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 9468B7F69A0644FCBBCDBB810795C4B3 /* SDLRPCNotification.m */; }; - 6E5B5A9D4E5A1A3D974242BA837F34F0 /* SDLLifecycleMobileHMIStateHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D9A91B4DF7620814FB322D536E96E5C /* SDLLifecycleMobileHMIStateHandler.m */; }; - 6E9BE8E12179D20D279AB45E03DE90A5 /* SDLImageType.m in Sources */ = {isa = PBXBuildFile; fileRef = 133621C4947DCE93C647CED71714B924 /* SDLImageType.m */; }; - 6EC13292E4664E664044A60BCE60965F /* SDLFuelType.h in Headers */ = {isa = PBXBuildFile; fileRef = 751014CBE69345246F2D0A816DC57EFA /* SDLFuelType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F0DF2DDAA5289F5AFFC0E041C66C3DD /* SDLMassageMode.h in Headers */ = {isa = PBXBuildFile; fileRef = E46DCE56EFD40F057672597BEDF9BC5C /* SDLMassageMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F77FE57579EF72D016C882461807E4A /* SDLTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C51B2936414DC95DE04ABA7C8408101 /* SDLTextField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F9DB2F491CAE7DADD2B8B6D0AC37586 /* SDLResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E3B71900EA08E804133F37E5D6ADC285 /* SDLResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6FCD8781D26DE624CA3BE497CAB3C388 /* SDLCancelInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 79BE090F6A21A962EE21A4F1CEEF8475 /* SDLCancelInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 702B1574D8EBB3CECE5EE20403899AD4 /* SDLOnButtonEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = B123B8245FE7984988B165A780AED107 /* SDLOnButtonEvent.m */; }; - 703F4BBF41D33B378CCAA13A2E993693 /* SDLSoftButtonTransitionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B4CDDE3895D8DB904D1109A078E3244 /* SDLSoftButtonTransitionOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 704C9306EF48FE1BBAE20B7CAADE8FA8 /* SDLTouchType.m in Sources */ = {isa = PBXBuildFile; fileRef = 745677B913DC8E4E41FB2994B6781B3B /* SDLTouchType.m */; }; - 705C280F5C64DD6D5151417E328EBD00 /* SDLRTPH264Packetizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ECF2069806AE61431252D9A6ED62A8F /* SDLRTPH264Packetizer.m */; }; - 70645ECC9769D5C102088085D044489C /* SDLChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 99258EE24FD66E3BA4328B7EB26FED96 /* SDLChoiceSet.m */; }; - 70756AAE89B977A4D161441924CA9238 /* SDLHMIPermissions.h in Headers */ = {isa = PBXBuildFile; fileRef = 138D7E23E43103272A89FF94CAF440C3 /* SDLHMIPermissions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 70E35DA4DAB10B2117EF821AA552390E /* SDLFuelCutoffStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 35CFB929B710C6200396CA20289832F1 /* SDLFuelCutoffStatus.m */; }; - 7114457F0DC999CFA9DD249404EBB384 /* SDLVideoEncoderDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = AC622C32763FF5BF0D5E745522571CB6 /* SDLVideoEncoderDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 71886EF8686699A2B144C9FDB19500F0 /* SDLRegisterAppInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = C1B0FF7E975829A08686F5A95439E6AF /* SDLRegisterAppInterface.m */; }; - 719F1510793284941FE5BF903CA15B03 /* SDLMassageCushionFirmness.h in Headers */ = {isa = PBXBuildFile; fileRef = D987EAF5E95BE2470E9AFACD43D35461 /* SDLMassageCushionFirmness.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71B061EECEA783CBDE28CC159BEB1C7E /* SDLServiceEncryptionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E82FE3223DC169D9038DD1EB8FC32E30 /* SDLServiceEncryptionDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71BF4F92683DCBC2B99F2CA7C9F38AEB /* SDLUnsubscribeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C3FE6D390A5D3DF3DDB3C3E02CD486 /* SDLUnsubscribeButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7206EA4C3E70012194A19E7A57784E73 /* SDLRPCRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = E8061A69F7A640BFC2198A1B24F37983 /* SDLRPCRequest.m */; }; - 72087CE9FAB920594133BABA14505343 /* SDLWeatherServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = E78CF1EFD9F68E40428F71D4887D5C50 /* SDLWeatherServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 722D3B085A292F3B1F54D195F6374EA5 /* SDLDateTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EAE47EB9D6FA6A7086775871FD445E1 /* SDLDateTime.m */; }; - 728A4B617C43974BBB7EC3785D380ECC /* SDLSoftButtonCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = F281EBFE5ACD2B7340F65D4E7EEA5416 /* SDLSoftButtonCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 72D0FE3256E463B80705508EA33D1904 /* SDLRPCNotificationNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = AF5B172A3AB107D165BE0B845E9FFA33 /* SDLRPCNotificationNotification.m */; }; - 72E713506534D95203F92A95487AD5B2 /* SDLPublishAppServiceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FD7EEC34E8024D6A971F56B948E0EE1 /* SDLPublishAppServiceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 72F95D970F57DD3D099831677FBD44F6 /* SDLNavigationInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 01F187BD4B1741FD143AC9FEE6B6A9B8 /* SDLNavigationInstruction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 732010BF7C56D3F7501939DEF04CDB01 /* SDLOnAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = F3A5F47BE1D6B4E4B91C6E9FDC9B8BB3 /* SDLOnAudioPassThru.m */; }; - 733B8F6B2D6794F76EC54A74E1BF9391 /* SDLAddCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 810191FBC97CF880144ABEB67A432DD7 /* SDLAddCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 73AF02C61796BC9795EB99512699E5BA /* SDLTemplateColorScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 87C67CACB98D0E3DBC70C30114AA819D /* SDLTemplateColorScheme.m */; }; - 73CEDC08872351275F6942229AD3F2F2 /* SDLVrCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 585E39B167E64180E6C78FEC200638A0 /* SDLVrCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 741A73FF97C6C57457B593472329EBF1 /* SDLLogFileModuleMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 6832CC0E9D2EAF6011514D2D39624749 /* SDLLogFileModuleMap.m */; }; - 7456AC0029B0ED5013845EF8690B4800 /* SDLIAPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 49CD8EE4FC64B30478D9E206DAC78F84 /* SDLIAPSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7462ECF43D6F46BF304953FF4F06DF9C /* CVPixelBufferRef+SDLUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4071441DDC5077B72F75166D79DE65 /* CVPixelBufferRef+SDLUtil.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 74A5B28E5563DB190D6A5F4FCB5F95E2 /* SDLVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 25F504266BEC635D2B9887837CA00D26 /* SDLVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 74B5FD77F904539F2A425C2B6596E7CB /* SDLUnsubscribeVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = F1F3ABF315700CBC59CCB9DDE42C0C6F /* SDLUnsubscribeVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 74BC3B711C2F9F27EF800EC0D8BB3E7F /* SDLV1ProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = B74B5802B681CDB3E7A210BB0EEEB7D0 /* SDLV1ProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 74DEDAE776C51EFDD5DB1136F7BEACE3 /* SDLSubscribeWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 84BCD84500C53F400D5B51AB716B9A7C /* SDLSubscribeWayPointsResponse.m */; }; - 75B5CF174677B662157EE0E564B16CA9 /* SDLGetSystemCapabilityResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = BF781992E0488A0904062D8D4D4B7369 /* SDLGetSystemCapabilityResponse.m */; }; - 75E6C6F54EEA45DBB11CA4791C6541C4 /* SDLRAWH264Packetizer.m in Sources */ = {isa = PBXBuildFile; fileRef = D516C013762946799CEEFE4D998577D4 /* SDLRAWH264Packetizer.m */; }; - 75F75168E87F0477AF56A4433120E337 /* SDLLightCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 43FC77484E65E9648B5154177DA965B0 /* SDLLightCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 76FB2772BBD488BD031C94BD2D790911 /* SDLVehicleDataEventStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = EB86E9E686A67D3B92112A90F2138FF8 /* SDLVehicleDataEventStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 76FB8F453DF3B113045E68FC3BAEF526 /* SDLWayPointType.m in Sources */ = {isa = PBXBuildFile; fileRef = 10C447C90A40A49C0653E0D97B15E7C4 /* SDLWayPointType.m */; }; - 770D17FE53CB1E2885FE07DF770AA9B6 /* SDLCloseApplicationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C1F9C5416BB8D0ED9335E1A889B51A93 /* SDLCloseApplicationResponse.m */; }; - 774AABC7C408007271B765CB49CE11B5 /* SDLRDSData.m in Sources */ = {isa = PBXBuildFile; fileRef = BF737E9FCE10383D22E0AC258DC505F8 /* SDLRDSData.m */; }; - 7796527893D2EBB3895B55EF97A3800F /* SDLMenuParams.m in Sources */ = {isa = PBXBuildFile; fileRef = 49732759D432317F0DA45A467B441A1C /* SDLMenuParams.m */; }; - 77C1792F987AC3B2A678A95E3BD85C32 /* SDLNavigationInstruction.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BF22D8F89AAD3C5356C6D640553D7C9 /* SDLNavigationInstruction.m */; }; - 77F8B1D0628B527B45BE658B3B293E2D /* SDLShowConstantTBT.m in Sources */ = {isa = PBXBuildFile; fileRef = F3623CCA82E15DB239231177AEED9FE2 /* SDLShowConstantTBT.m */; }; - 7851718413DB3073469A983DC222E140 /* SDLResetGlobalProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 068BB05FC0F060EEA4D7C2CA18384BB6 /* SDLResetGlobalProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 785A0499CCC19692E52D12A856D8A998 /* SDLGetFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 556E40F610F2EB3D2F7A0EA1C6707035 /* SDLGetFileResponse.m */; }; - 785AFB7110E873CBC9CD1D4D6EFA9FAE /* SDLPerformAppServiceInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = B6F87FE59A859BA349CCDEFB67E12842 /* SDLPerformAppServiceInteraction.m */; }; - 78A8DD9987A5AD9F966EC563DE304315 /* SDLUnsubscribeVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 052CE8CBD47B13C4CF8725945BB4F79B /* SDLUnsubscribeVehicleDataResponse.m */; }; - 78BF11691585A2A34E9BF697CABDB77B /* SDLRPCResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C4F2955E72C9BC6322E9F39A5C0BCCE7 /* SDLRPCResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78DD03DE1F2E1CDAF6EFBE85FB271659 /* SDLModuleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B4F218D5BBC11B808F5FCB846D65C36 /* SDLModuleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79DC53A9C788ADDD57B9EDB85F999694 /* SDLSoftButtonType.h in Headers */ = {isa = PBXBuildFile; fileRef = E72B649C1BBFB6CC29A8201C5681766D /* SDLSoftButtonType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79E2DC7E5768C6622D75EF018FB82F0F /* SDLRegisterAppInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F28BC6B50D22A511ABF2860A5A43136 /* SDLRegisterAppInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A10A582CE1C096717AD7336C1B7EBD4 /* SDLUnpublishAppService.m in Sources */ = {isa = PBXBuildFile; fileRef = B70A1025E2176483677FE18DB926E317 /* SDLUnpublishAppService.m */; }; - 7A1CDB9C2A552A2EDA566CE7B61B02FA /* SDLChoiceCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FABEE925707D9F7BE28A3E70A9545F08 /* SDLChoiceCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7B1E4523F92AFFECDEC08D8005987727 /* SDLUnregisterAppInterfaceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 166F38C67540EA16117D3D9B0786CA65 /* SDLUnregisterAppInterfaceResponse.m */; }; - 7B24FA06A268C3DA54C496C28B13E25A /* SDLLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0381C7F8F19AB2E83F3F40CB77F00DCB /* SDLLog.swift */; }; - 7B7B00F06DD077C562AC195054871C6D /* SDLProtocolMessageDisassembler.h in Headers */ = {isa = PBXBuildFile; fileRef = 7225B3942F9C5E129FA86F41720C7403 /* SDLProtocolMessageDisassembler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7BDB9F0C874B2B2DC0EDF0ACD35410DC /* SDLSpeakResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 20267DD8ABB8C4937C58CB114EFA029A /* SDLSpeakResponse.m */; }; - 7BE925A905AB58CFA7FC82DE131D9C55 /* SDLRPCRequestNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A682C7A761BD4627EABB545706018F3 /* SDLRPCRequestNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D0062F56EACBA6F8476176C8FF0E2E7 /* SDLReadDID.h in Headers */ = {isa = PBXBuildFile; fileRef = 303C3E1F855B7BE56C54751F8820643A /* SDLReadDID.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D449072D02DC41B5EC19BC012176186 /* SDLVideoStreamingState.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F27E3C03AA7B2EAA902D3C1D95090DB /* SDLVideoStreamingState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7E128A41B92ABD534D3BED1EB0166F27 /* SDLWeatherAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = 19139224AA63FB5E62A3D689DD610047 /* SDLWeatherAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7E1B85155539D7490393F22A7B5DD864 /* SDLSubscribeButtonResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B552BC411A63CECEDC496B62D1B4B8FE /* SDLSubscribeButtonResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7E667B3B3745C84FA7FA7E7A83CDDDED /* SDLLogConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 9998667EF3AD9356F74EFEBA18B71B18 /* SDLLogConfiguration.m */; }; - 7E7594511BA3FB188C0D4874798AE1D6 /* SDLShowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C55134DFAC0BA632F4739F88E9C22F64 /* SDLShowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7ED73AD3B2A398A24F0F5F902C2BEC7E /* SDLNotificationConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 113CB9707D2133750B2A74C8E4E75D53 /* SDLNotificationConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7EF3CC27A41E978150622B382F5DBBC1 /* SDLSetGlobalPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D28C9BD0381F41CC4ECCDB3308A2629C /* SDLSetGlobalPropertiesResponse.m */; }; - 7EF977C0D687F79EEBE5556F4B91C795 /* SDLPreloadChoicesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EFA016E112D9F7CEE1696C8B3D236C1 /* SDLPreloadChoicesOperation.m */; }; - 7F2C743C5E22D4B43E3C96718A287635 /* SDLPublishAppServiceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 70634D4480B4DFDAB8FA657ADAEF768B /* SDLPublishAppServiceResponse.m */; }; - 7F5CE8EAAFC658D1733DC0D80A624DE1 /* SDLListFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D4C1FD6526097EEBD7A4AEE29623C7A /* SDLListFiles.m */; }; - 7F6424CEFDA3B3C532BCDDFAD1E0593F /* SDLResponseDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 96FDD76CCE5AB56B5E2F2065E5AA5F04 /* SDLResponseDispatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7F809464FB227F599754C4774F4F0D00 /* SDLSubscribeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 14CAEF2A13506951EA87997CC4AA236B /* SDLSubscribeButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8003E563EBF25F8D6C8BF11084650CED /* SDLControlFramePayloadEndService.m in Sources */ = {isa = PBXBuildFile; fileRef = 77CC97F51D3268076905BB31E39F4CD1 /* SDLControlFramePayloadEndService.m */; }; - 8015E7789F7FC9A108335F54BB07608A /* SDLProtocolDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A697E2FEB8F9928973AF1D4697F0C023 /* SDLProtocolDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 801B9BEFA66C3145C817445D8AE5BA1F /* SDLSoftButtonType.m in Sources */ = {isa = PBXBuildFile; fileRef = 611B8EA6CFB53369E15F75B735E1EF03 /* SDLSoftButtonType.m */; }; - 8063604BF5348DFC96A063DB686D9A0B /* SDLSetCloudAppPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 06C8E96119F2882B4C2C262F67AD29E7 /* SDLSetCloudAppPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8079D14942FAFBE0EE5A57F3665810AD /* SDLVrHelpItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 45E554466607C0B6553630AB6FB0D015 /* SDLVrHelpItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80A4C0F0E1202AF9F786FDF9B730D7C2 /* SDLSetInteriorVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C1B6C3AA7551CF9A652411C8E74DBF34 /* SDLSetInteriorVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80C005673FF0A17E64ABC38D3D87A0E7 /* SDLSeatMemoryAction.h in Headers */ = {isa = PBXBuildFile; fileRef = F60CF60AC5E2912FDBA7FB16CCDD927F /* SDLSeatMemoryAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80C31DB7E8132BB5C12F3C7AEC99CE36 /* bson_array.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FDDC6658582C0B1CEC0775EEBEFEF01 /* bson_array.h */; }; - 80E9854ADFCBD2E2B0D0C318C5896D89 /* SDLSpeak.m in Sources */ = {isa = PBXBuildFile; fileRef = 060F9D8B01CC5577C06B7438BDB833E6 /* SDLSpeak.m */; }; - 80FDD0C4DF99B717DD2CC97FC228F91B /* SDLDistanceUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = BF812F295C7BC99D0E7260C44A30FA1A /* SDLDistanceUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 810BB67A4F073E317DDCD354D46D5798 /* SDLUnsubscribeWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A40F0AF559343F73CD03D070F06706FF /* SDLUnsubscribeWayPointsResponse.m */; }; - 8142B72C40C42732642DFE6C9E248FD4 /* SDLGetSystemCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 07761CF3C8D6A5A03E8B321C60A0DCE8 /* SDLGetSystemCapability.m */; }; - 817649F62E631491CB4D4AC78AD1F931 /* SDLSubscribeVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D765E0A70DFB9714A0F405D852A66FAB /* SDLSubscribeVehicleDataResponse.m */; }; - 81A2EE8BC56912D7216441DA5841C2DC /* SDLLifecycleSyncPDataHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3999098BE21C5D7373235405AF09F5A4 /* SDLLifecycleSyncPDataHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8202ACFD681FB7B0CF7F76BB088E01B2 /* SDLSendLocationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FD4A03C289D0C51D2ADFA923A6B14728 /* SDLSendLocationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 827C5F581A5FB46D0D7B9A13960CFC87 /* SDLSecondaryTransportManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A4A011384B18AB35F5D5E7615AABE7C2 /* SDLSecondaryTransportManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 82885DBB8D8EB8C4A666083AF5A1B140 /* SDLControlFramePayloadRegisterSecondaryTransportNak.m in Sources */ = {isa = PBXBuildFile; fileRef = A8F1FC7563B35841A0B1D696269FA3AB /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */; }; - 828C58703B8028751F490E8A6AA7DEE5 /* SDLLightState.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D162E149D1234C0EC8BD90C863EBC29 /* SDLLightState.m */; }; - 82DA35190CA47C0906DF3CF1F2275F9F /* bson_object.h in Headers */ = {isa = PBXBuildFile; fileRef = DD2A35B92D9AC44F072344ECC125D1B7 /* bson_object.h */; }; - 82FFF51387E80FCEDA5352282339DB5E /* SDLChoiceSetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C7F9ED55C903DF4E945CF493F83626F /* SDLChoiceSetManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 839759EA6DB888BEF170B204E7533E87 /* SDLAlertManeuverResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CC66876557B0753F1E8075EEECFA7C06 /* SDLAlertManeuverResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 83A68ADEDA90E33CC63142A22912ABF9 /* SDLKeyboardLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B2B524E9D5A872B97EC4D57EA21E041 /* SDLKeyboardLayout.m */; }; - 83A82DBF4D25D51D1476CD1761FD8193 /* SDLMetadataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 90137F76EDA22309EDDAEF4418590198 /* SDLMetadataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 83D2CD65D5D95573F01977E99B1D75E0 /* SDLDeleteSubMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B783431D6B033263CF2D12A61575D27F /* SDLDeleteSubMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 841D7336AA726A431DA23D4AE4B74B0C /* SDLGetInteriorVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D030FEAB644BB0DA021BED593500842A /* SDLGetInteriorVehicleDataResponse.m */; }; - 84540A4EDD1929D0EA78BAFA88717E6E /* SDLFileManagerConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 338899E14AD4EC3E7D4D257B7F18AF1C /* SDLFileManagerConfiguration.m */; }; - 8464C78AAB2ABA1F3432F3A7E05F6F2B /* SDLUnsubscribeWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 576CF948F88ECCCBFAC0594C7F4040B0 /* SDLUnsubscribeWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8472EC40CE62517B318FA0D8BEE85BED /* SDLAudioControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 089526E918DB53DC6E49872629FFC303 /* SDLAudioControlData.m */; }; - 8481C28E972233354B8C968975D53DED /* SDLOnHMIStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 88A98EF18C6CD1EA711938578B4CB959 /* SDLOnHMIStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 84A93A03350F9B2E58F388D5C6941ADF /* SDLUpdateTurnListResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C2B0CA84D3B9C68D496FD66419D566C3 /* SDLUpdateTurnListResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 84AC99C20CB76DB834582FBADBA11A3A /* SDLPresetBankCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 565B69B36A8F76F2E5BC0B5883391027 /* SDLPresetBankCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 84C5619937EB87E33EFD6E14666690ED /* SDLMassageCushionFirmness.m in Sources */ = {isa = PBXBuildFile; fileRef = CF7F2682404352A5DA48275A68971699 /* SDLMassageCushionFirmness.m */; }; - 851385917D7B75901BBEC54799544B16 /* SDLTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EA4853DDAAB63EC25DE5EFCC17C1914 /* SDLTimer.m */; }; - 853FBDDD33406416B3CD92C116D48527 /* SDLOnAppInterfaceUnregistered.h in Headers */ = {isa = PBXBuildFile; fileRef = F5DE8533E913F68EBF72EDF7E4D95FDA /* SDLOnAppInterfaceUnregistered.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 854A588B639BD42CC33822B7AEE5AEC3 /* SDLSetInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 3323659F219E52681E8003E7972EF6C6 /* SDLSetInteriorVehicleData.m */; }; - 85B6CE567D6BC650645D3BC8D7503A89 /* SDLMetadataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B735CFF284972E87F85DEDF52E7B4B0 /* SDLMetadataType.m */; }; - 860C590D39EEF30148340A4A972B2EA3 /* SDLSubscribeButtonObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CEDDEAFB2948E2135AAB8C34A9C9277 /* SDLSubscribeButtonObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 862FAFCD13F05A7A30DA725EA4BD11B2 /* SDLIgnitionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B4BC1552B9C96F9D0CA45A8320DDFA /* SDLIgnitionStatus.m */; }; - 8648110FFEF2D75F6B7F55C32146724C /* SDLKeypressMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 9041DBA4C0CB716742630EA1FC2D72B7 /* SDLKeypressMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 865B4D4D641A4E05B041FEF288509946 /* SDLUnsubscribeButtonResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 78BCD3CBF28669B305138E89FAF33DE4 /* SDLUnsubscribeButtonResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 869B5690CE0248DE52F1A2DED2BFBD8A /* SDLTouchCoord.h in Headers */ = {isa = PBXBuildFile; fileRef = DC1B6BD9F7404CCE757869AF75DC0434 /* SDLTouchCoord.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 86DB089944ED1B94905A6348FF65F560 /* SDLGetInteriorVehicleDataConsent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D07BF9A19096BDE35C54CB33E961268 /* SDLGetInteriorVehicleDataConsent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 874054E606BCA76A8EB634D9E108F2B8 /* SDLAlertManeuver.h in Headers */ = {isa = PBXBuildFile; fileRef = 7107118F63D85B4E1D0C3139EC411FA9 /* SDLAlertManeuver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 875A8146A25E141985609DF2203B794A /* SDLRPCMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = CF9460897660A78535CEA62503CB6771 /* SDLRPCMessage.m */; }; - 8761C5C5FAE98F01177293BEF5214671 /* SDLButtonPressMode.h in Headers */ = {isa = PBXBuildFile; fileRef = E78DEB8B749679E27472A7740A653CED /* SDLButtonPressMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8772FCEC5E9710246CEE8FBCA4019860 /* SDLCreateInteractionChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 116815ADE5356987348CB6CA1D5E8C88 /* SDLCreateInteractionChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 877EEF9736AFC84910376C4956E2F72D /* SDLSetAppIconResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F9AC4187700727AA62E02334C521533 /* SDLSetAppIconResponse.m */; }; - 87A6792BA6AC2CE0161CFEF34F119059 /* SDLGetCloudAppPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F7B82FAB4C07FC4227B758EFFFD79F6 /* SDLGetCloudAppPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 000CDD8FCEDE9376F89AB3F42D96722A /* SDLTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 01FC030EB54C7FC64CE1140E0CF51EC2 /* SDLTimer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 003DA91DE9E5454518E11A54CEEED6D1 /* SDLMassageCushion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6295861AA5817049121A7E98779B04F0 /* SDLMassageCushion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 004F6EEBA9E62438D6A1599A6B90672C /* SDLSubscribeVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = E15094CEC1019E3193DC001F59191F6B /* SDLSubscribeVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 00879774B5433F93871F996ED7137C2F /* SDLNavigationCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B04572C7780D11E01CA5FC3B4CFFAD5 /* SDLNavigationCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 00B029951254F839641912D1E46ACE89 /* SDLSecondaryTransportManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 81DC4C775620B12380A4F90F2DAEB081 /* SDLSecondaryTransportManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 00F4491685B737A4DB17096FED751E6E /* SDLSetAppIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B8D629931815D5CAF7718BE57D7E744 /* SDLSetAppIcon.m */; }; + 010C3B63A6D23E6FFDCECFA3501FD245 /* SDLControlFramePayloadConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 91022FC9BD41CC0B9D0193EA80339523 /* SDLControlFramePayloadConstants.m */; }; + 01141EC6215EB5322369A3B5F1811BD8 /* SDLSystemRequestResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FC38C9FCF3E7343DF43B8368DC546B42 /* SDLSystemRequestResponse.m */; }; + 013DCC67B78583911AC21A27784A921F /* SDLLifecycleMobileHMIStateHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 53E02D4536535B419DF1F95513E1ECBA /* SDLLifecycleMobileHMIStateHandler.m */; }; + 014F6ABA74CD657439A0AB4B3BF1E28A /* SDLPerformInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = BC44973166E4FD5059074DCF268D17F8 /* SDLPerformInteraction.m */; }; + 0169E4DFEF372748DE00C9F39383DB6C /* SDLHeadLampStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F656263CA5DF65889FE6D8936080E02 /* SDLHeadLampStatus.m */; }; + 01D2CAE59967EA1D70D78F423D414DBB /* SDLOnSystemCapabilityUpdated.m in Sources */ = {isa = PBXBuildFile; fileRef = BC2DDF4C8D4FF0BB610F87922F9DC8C1 /* SDLOnSystemCapabilityUpdated.m */; }; + 01DD4A57171E44161D0BB154CC5D3848 /* SDLOnSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 77B17840CA60F5A16BED44DFBD406D00 /* SDLOnSyncPData.m */; }; + 020C50C71A8B336649F77B0855268D50 /* SDLSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = CA15ECE757FC373C85DCC38EC5858576 /* SDLSlider.m */; }; + 023FF5FF6AB8D92897C064F883E571BB /* SDLCompassDirection.m in Sources */ = {isa = PBXBuildFile; fileRef = 72456DACFF4B143FA90DC10239139E18 /* SDLCompassDirection.m */; }; + 0298561779A0AFB043DE0A9FAAAC19E7 /* SDLUnsubscribeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A5C983C7E972FDF63900044F87CBB3DC /* SDLUnsubscribeButton.m */; }; + 02B9BA59D1C0E22367D384281346B66F /* SDLLogModel.h in Headers */ = {isa = PBXBuildFile; fileRef = E27890CE8E8F1D7904C65EB29FB9ABD0 /* SDLLogModel.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 02E6E4F413A2B966E004A1031FFEDE61 /* SDLDIDResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 72270B3D9ECE1B81AC9E613184E61E23 /* SDLDIDResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 02E7456C7087BCE794EB5F4BFDCD6B5E /* SDLWeatherData.m in Sources */ = {isa = PBXBuildFile; fileRef = FC37CDD446A3599BE497DE78F8931C4F /* SDLWeatherData.m */; }; + 02E85CFC1F2403195CE879996A331227 /* SDLIconArchiveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = C5C00931EAB51480DCF119086CEF8E38 /* SDLIconArchiveFile.m */; }; + 030A31875F755108423BB4F15FBEAA83 /* SDLAudioStreamingIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 752C180C8E3193C1898AFD82D953B208 /* SDLAudioStreamingIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 031E6C0A70724D15DF1B5A662470EDDF /* SDLOnHashChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 65F149F667D01754A1E0645711F6D6EA /* SDLOnHashChange.m */; }; + 034FD36A8B615166B2A55A320825E672 /* SDLAppServiceCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 4946BD85165935E30EBDE5F0983445E0 /* SDLAppServiceCapability.m */; }; + 038A0C2C3BD5BB22B37280A56FAB5AB3 /* SDLOnLanguageChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD3A5AE962BF24F342B8F4DB73EC5BC /* SDLOnLanguageChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0449A73F6CEFDDAB155A322DC5602A53 /* SDLCloseApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = BD0A82F3B2EBBDF4D3C4FB965156E9D3 /* SDLCloseApplication.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0464DC7F6803F80C656F554A937663A8 /* SDLImageField.h in Headers */ = {isa = PBXBuildFile; fileRef = B1CBAE6C6FCD662932F84593886D1FB9 /* SDLImageField.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 04ABCD1D5500C77298DC8E61F181EE3F /* SDLScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F9AB9291462E3AB06586D1F3A200B6F3 /* SDLScreenManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0525CA12876C208985EACA58FC753CCB /* SDLSetCloudAppPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 89FF276588037654834B38572ADBF860 /* SDLSetCloudAppPropertiesResponse.m */; }; + 056296F8E42866A7507D690F4ABF87BB /* SDLSpeakResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 9718170DC522C4211FF7BFB86F042E6E /* SDLSpeakResponse.m */; }; + 05AA2C453D9E68208FCF493F216AE4BC /* SDLButtonPressResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AFD67A512B7797A6F916B27F9816BC6 /* SDLButtonPressResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0656DA2E1EB814B1CDF91E68EB1D3F20 /* SDLParameterPermissions.m in Sources */ = {isa = PBXBuildFile; fileRef = 7828CB789D2D3420C6618DE0D17264C3 /* SDLParameterPermissions.m */; }; + 06937EC8C50E58F95E3115B64BE7AA1F /* SDLFileManagerConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E7DF54F44C89CE28EC111C69CA41A80 /* SDLFileManagerConfiguration.m */; }; + 06BBEEDC729D9D948D944852399F2F05 /* SDLAddCommandResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = E65AB80689651E51BC67BD306B058C30 /* SDLAddCommandResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 06C4D583DBCDD900D42AF20BF4399C4B /* SDLCharacterSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 76060F5A6770E40F2895C5DEE9DBC9F7 /* SDLCharacterSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 06FB324D9C94F818A31A24576F78E93C /* SDLAppHMIType.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F46BF5B95E2FE244011A908FAA7404C /* SDLAppHMIType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0755FA5543652B43F25B0B5700871AA3 /* SDLSetDisplayLayoutResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FBAF5D2A296ECEE5B1BF22DD9C49B9D /* SDLSetDisplayLayoutResponse.m */; }; + 0764F62FE2EF9090EB233425C00A6A6C /* SDLSetGlobalPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 19E0135257858BD7168C64D56B8D7A75 /* SDLSetGlobalPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07737B0114944A0D3B652F3B43EF0509 /* SDLTCPTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = F47E1861039AE8C9169792FC3ADCA6F4 /* SDLTCPTransport.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 07975E5C3B4B93AAEB029FE3196E3E64 /* SDLOnWayPointChange.h in Headers */ = {isa = PBXBuildFile; fileRef = B9544257AFAAD1DB9C4EF3E6481FC4A6 /* SDLOnWayPointChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07ACC12BF7F60B323CF56C98071F0BDA /* SDLMassageZone.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF246B79DE4F55FA9C83D84B39DED75 /* SDLMassageZone.m */; }; + 07AD372A4D2EB711FF523E81E3E90BF1 /* SDLCancelInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D7B6671467E1F2AFF00152A3BB56DA00 /* SDLCancelInteractionResponse.m */; }; + 07AFBEE85AAE2A4ECBE32262BB03746B /* SDLMenuParams.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D744D294CB82BB107AB6ED0A3F46323 /* SDLMenuParams.m */; }; + 07D5575EC6154BD6A1DA7EFED6E844F3 /* SDLLockScreenRootViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A548B2F0B4F07864D70445C29686B09 /* SDLLockScreenRootViewController.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 07EA124701A0E2A13034C57CBFADCD56 /* SDLVideoStreamingState.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B7041C400969E9738627D46ED2889FF /* SDLVideoStreamingState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07EC897039F399022A881C2C79BC77F4 /* NSMapTable+Subscripting.h in Headers */ = {isa = PBXBuildFile; fileRef = E88D7898374900884A7E0C3274ACDD65 /* NSMapTable+Subscripting.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 07ED05FDEB6D1F1255386B7FBFBEC076 /* SDLOnSystemCapabilityUpdated.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A2921F1E5CA7555173077B04B2B228 /* SDLOnSystemCapabilityUpdated.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07EFC4CE82C6A11142BD4302D87A3239 /* SDLSubscribeWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3ED9AAC40D94011EA3DFB96F5394A88A /* SDLSubscribeWayPointsResponse.m */; }; + 07F8FBBF7DA3BD45DD48F55585CC2952 /* SDLTemplateConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A44C3037DEC000D177A8E94BECA4B95C /* SDLTemplateConfiguration.m */; }; + 084021FEEBDC121A01E76CD5D9D3A414 /* SDLOnKeyboardInput.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F73D712297E40F90B7E1A7D01DFEC67 /* SDLOnKeyboardInput.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 08844BF14B2337C1EE9AEAC757BE8180 /* SDLV1ProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 25A19CDDD7442D5D9F541CD6664CED80 /* SDLV1ProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0928674585F59E61E7A886E8DE6C14E7 /* SDLV2ProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = C4F791D12BE19DF77A3BCC8EEB641295 /* SDLV2ProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 09723FAF4772B086F3936D5EE3201220 /* SDLMenuLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = CAD566B149788CE2A5407D1274A17F00 /* SDLMenuLayout.m */; }; + 09AB9C5FF6058254B64C63123E971C10 /* SDLOnSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = C98E0A40D9302E06972A9D641D33736F /* SDLOnSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 09BBF1696D9DA2B01A476C7145E9197E /* SDLRTPH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = B2285BB6C866BBF444CF2BA47538A3F9 /* SDLRTPH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 09CD47E2B2DBAC5AAD45C21317330C84 /* SDLSetMediaClockTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = D139C1A1E0119ED0A73E0642B12675BD /* SDLSetMediaClockTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 09E404E2F25004CA9B63E3A8740FBAA8 /* SDLH264VideoEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BED0EB216A163B02E038B24BD163908 /* SDLH264VideoEncoder.m */; }; + 09E452042624B13E52782502AF683E8C /* SDLTCPTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C75420A65D82C21EDD26CEFF38A1BBA /* SDLTCPTransport.m */; }; + 0A3A907CBF1998EF1F9DF2A2DBFAFC53 /* SDLShow.m in Sources */ = {isa = PBXBuildFile; fileRef = 256D8960A3671CB91AB11F36D27BFE73 /* SDLShow.m */; }; + 0AC45935BAAC4EEC4B3AC41963ABDEAE /* SDLControlFramePayloadConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = A09A123F4100A6E0985F62A0D2C03B11 /* SDLControlFramePayloadConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0AEC8A1C117796DBCDF8B3438AFDA908 /* SDLRPCFunctionNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B6D168B1F9F66F44F3FCEE9FB5B9F89 /* SDLRPCFunctionNames.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0B3A68B8A8DAE66BE0D40553A8E8F0F0 /* SDLDeleteCommandResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ED15A0AC24E44401A1D40DED75708E9 /* SDLDeleteCommandResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0B68D3C320FE736582F954A1808256E2 /* SDLLanguage.h in Headers */ = {isa = PBXBuildFile; fileRef = 86257F6370BE9E41B823982B8B658DCD /* SDLLanguage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0B85145AE7451030C55559AE27AEA1A7 /* SDLPresentChoiceSetOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = A719199D3EBFE5A3C4619D3DC80ED70B /* SDLPresentChoiceSetOperation.m */; }; + 0BB300C87144AD7B369E0430F1202E19 /* SDLUpdateTurnList.m in Sources */ = {isa = PBXBuildFile; fileRef = 78CCB2B40906D5C1D9AC673498D3D31D /* SDLUpdateTurnList.m */; }; + 0BE15734B37B15CACCB2040050832FA7 /* SDLCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = ABCC08D24761FA1AB3187DB24D8E870D /* SDLCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C53EA9570A03E274435E76A870664CD /* SDLSubscribeWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C058FD535A44116F3B9EC5AAC90DB06 /* SDLSubscribeWayPoints.m */; }; + 0C5FFABE03742C7D42D4C2CFFC50CADB /* SDLKeypressMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 739CEE74F80EDD2726D485B052803409 /* SDLKeypressMode.m */; }; + 0C612F491097584F468E5EA199DC519B /* SDLManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 50519D317000C62928D0855FCBD05D94 /* SDLManager.m */; }; + 0CD8661CBFFE3EEC13E840FD788482CF /* SDLManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CB1A61D4933119EA30B60E11CB2A55E4 /* SDLManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0CEA11A5EB62E9F281219DD07A95D42B /* SDLTemperatureUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3DC9F22E4F546F8A133454410C7091 /* SDLTemperatureUnit.m */; }; + 0DC17CC659095ACDA1DD4475EB6B61AE /* SDLDeliveryMode.m in Sources */ = {isa = PBXBuildFile; fileRef = F96C3EF342C56B944AB2446197932888 /* SDLDeliveryMode.m */; }; + 0E0B9B7A4C8989D773E0D9852764BE23 /* SDLSoftButtonState.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FD2A7EAD3CEDFD045490467DAD18F18 /* SDLSoftButtonState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0E26ACDF875370E9FE2C72970C89A55A /* SDLRegisterAppInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = B648DB91A3098DA7B1E0A5FEE3FE23A6 /* SDLRegisterAppInterface.m */; }; + 0E28D0CF26FDE3DF127B22E91EC58828 /* SDLUnsubscribeVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = E5B5D96B206B481EDA794734FDF0120F /* SDLUnsubscribeVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0E35DAB1AB19E38627F023A110471CA1 /* SDLIAPDataSessionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 798BC3FB68D60AF937EFE55D6BBCE3FF /* SDLIAPDataSessionDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0E43D15AA5F1FD0B502ADB565D76215C /* SDLTurn.h in Headers */ = {isa = PBXBuildFile; fileRef = CB8CEF2E6739A98ACE9DB96F08CB2ED3 /* SDLTurn.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0E4DE85C863AAA4C47096A975DC50831 /* SDLVrCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = A1F84D97CDAFDB9F9F700BCF60FCA9B9 /* SDLVrCapabilities.m */; }; + 0E6E01DCAD73B2D0AA22BEEF99D6220F /* SDLCreateWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 17BD7329197D81447717DC7ADEB5750E /* SDLCreateWindow.m */; }; + 0E7F23534544BF8C03808A24131664A3 /* SDLShow.h in Headers */ = {isa = PBXBuildFile; fileRef = 23383B37C6DBACB1FDCDF86CE54C386A /* SDLShow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0F3BE3D37B1583BC547B32930DC8BCE0 /* SDLGenericResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C8817A9FA9D65B3370E04B0D63880BDF /* SDLGenericResponse.m */; }; + 0F80DC9D4D10F534C6F2B7CB23896C90 /* SDLButtonPressResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B4487AD673E64E1277940325C03E19A6 /* SDLButtonPressResponse.m */; }; + 0FEC36EC65956FCDE10B7AD3D03B3AA7 /* SDLTimerMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 931FA41FFCE73EAD4491E531A2BF3CE5 /* SDLTimerMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 10399FEFB6AE8D84D33269A2552FE260 /* SDLLifecycleConfigurationUpdate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A84F34CB374BEB91FE4C77E7F10F2FA /* SDLLifecycleConfigurationUpdate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 108D2F1476FD2D75A98286FCA2B4B36B /* SDLAlertManeuver.h in Headers */ = {isa = PBXBuildFile; fileRef = B0DF64B830CBF8A2D3A1F42792E5E927 /* SDLAlertManeuver.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 109CF6FCB76DF49872312F73F694589E /* SDLLogTargetAppleSystemLog.m in Sources */ = {isa = PBXBuildFile; fileRef = E3CBEA1B6A63BBECF895DD4D924B8BE8 /* SDLLogTargetAppleSystemLog.m */; }; + 10B60849CF1A0F57C155CF09B6CEF269 /* SDLDeleteSubMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D30EA1923FA31DA9BE9ABCBAE3F7AC8 /* SDLDeleteSubMenuResponse.m */; }; + 11C99CB3B640F6A9B292B910BA3D6CB2 /* SDLSamplingRate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B9BAA4D99166BCE4C535F65CE463058 /* SDLSamplingRate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11FC0615BCD4D7C3D74F0E3A0AEA56D1 /* SDLMassageModeData.m in Sources */ = {isa = PBXBuildFile; fileRef = BF050F8D21022CD0E6C2AD5A17E6B282 /* SDLMassageModeData.m */; }; + 121491DBAA381C791139D50B3F9EC85E /* SDLSendLocationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6316B004E69CA34EAA8ADB8A39D0E24C /* SDLSendLocationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1252F7AF021293B5517FCA6C9AF44A21 /* SDLAppServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 32BD65A04E2AD6AAF6ADC18E5A5DE4EB /* SDLAppServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 12DC40A3D198F7C3BE10BE221DCDB5C2 /* SDLSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 90BA4BFF5CAD58299D1A0CBC8CFA45FD /* SDLSyncPData.m */; }; + 137536F0DC6C6A1290F7C928335EE9EC /* SDLDiagnosticMessageResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 941C68CF789F85A7C11457585FAACEC6 /* SDLDiagnosticMessageResponse.m */; }; + 13FE73ABEC5272554491F31BA15FBE98 /* SDLAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = A0A6C0D7A199BCCE8F0FF9593EC73681 /* SDLAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 140AE13905D4AA976BBE7D32C20EC80D /* SDLFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 794968D771482D3B2B695A119EEFC610 /* SDLFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 146B618653FFA74052F2FB52092207F8 /* SDLMenuLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C28381778F9B6F73AE7045AFF50293B /* SDLMenuLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14FDAE2B365BF4599C349F9E4C49A436 /* SDLGetInteriorVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = ADB87610BB6428EAF7555538EE3E9CF5 /* SDLGetInteriorVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1535D3148D3604D2EBEE4EB5E3008417 /* SDLAsynchronousRPCOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 68D12D24E08593D40782A089F52040A9 /* SDLAsynchronousRPCOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 15790938EAFC293CD326D4F72ECA3B18 /* SDLRPCParameterNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 593ED256D9FF77FF4B35CE6871FAE25D /* SDLRPCParameterNames.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 15826D1DB258E41D27E6E3E5C6315F5A /* SDLSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3116BCED42B3229298A5A04AFEACEB97 /* SDLSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1632546B737E58E78653F73017E59695 /* SDLOasisAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E19B35BFCAF24D72CE74D4A958941BB /* SDLOasisAddress.m */; }; + 1676673063B34A25A383627B95D940E3 /* SDLRPCNotificationNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B19A0B5A3387852751CFDCB453B116 /* SDLRPCNotificationNotification.m */; }; + 16E4705974FE4C949F41C2E807EBEE18 /* SDLGrid.h in Headers */ = {isa = PBXBuildFile; fileRef = AEE5EB23993F004A5B8717B7811188D6 /* SDLGrid.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17285ECD70560F7B126EF60F44F24FFA /* SDLSoftButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 5103BF7ABB8FE6480004A5CA73CFE14C /* SDLSoftButton.m */; }; + 173519F7A886931450C9B847A2EBEB6C /* SDLGetWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = 43E6B7E8C5F8053C7D1CC36D63B661F6 /* SDLGetWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1740E8B2F60D77BFBC604D07BEE19B14 /* SDLChangeRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = C68E00EA0C35209A7F5D2308107243E6 /* SDLChangeRegistration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17CA7FE9B07526278051C7A56EB7963D /* SDLVoiceCommandManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 42661551A62CE606353EE0A3A1811CC7 /* SDLVoiceCommandManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 181A55A6A8BFE664ADDFF50A12B11B66 /* SDLLocationCoordinate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E4F804CFCE6EB5C7532E3E88A095743 /* SDLLocationCoordinate.m */; }; + 1833E6DCA530A450C5480467B637E31E /* SDLAsynchronousRPCRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E29BFBE9F6D962531E8241C660B4AB4 /* SDLAsynchronousRPCRequestOperation.m */; }; + 1848DB3F89B60722831C8A28961BC2E1 /* SDLDialNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 72D0738CE8E4BEA34432415457A21559 /* SDLDialNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 18F37C785F076E64EE279114F7AB40B6 /* SDLLifecycleSystemRequestHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 44F03874CFBDB12A46DAEDBEBC01EDED /* SDLLifecycleSystemRequestHandler.m */; }; + 190106E955FF3E05FEC02D5F58304C32 /* SmartDeviceLink-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EA703085F3146AFE22FBAD2AE662CAF2 /* SmartDeviceLink-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 195BDF65B263C2245DA85829BAB3235A /* SDLTouchEventCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 013F0FD57EDF8FF55737B083957CAE10 /* SDLTouchEventCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 19808A920357393815692F5AE549D63F /* SDLResult.h in Headers */ = {isa = PBXBuildFile; fileRef = B458E71A46CC3C10BFED1AE0A05A3530 /* SDLResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 19978E124F50D5A1E905B1DE029C3E96 /* SDLAppServicesCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = ADFFB6C5FDA442555BEF95532E12DEBC /* SDLAppServicesCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 19A6A6C5F102F44356A797E2F38E4443 /* SDLSyncMsgVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C720BC1768C931937E27B5512056F9D /* SDLSyncMsgVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 19FC5C8BF351FC3E95B20901E34AFDB4 /* SDLAudioControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F09D6CBF3B576AB4BCEE787D60E8A7 /* SDLAudioControlData.m */; }; + 1A5B4634AAA0EEFA5F44D5672FA96CD3 /* SDLLogTargetOSLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F47C488B08BF5122754BFE7BBEC9A14 /* SDLLogTargetOSLog.m */; }; + 1A862E5568966C1D6F18CC410B49D5B4 /* SDLSetAppIconResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE0BD4D689088D8A8B5DBD772D84AD5 /* SDLSetAppIconResponse.m */; }; + 1ABFE6BF37268AFD497C1C336F5F54EE /* SDLSystemCapabilityObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = CCFBCFEAE99E82FA228AFBDFA25BFE2A /* SDLSystemCapabilityObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1AD0941AAD522DB92F9F9EF5D02F0C58 /* SDLWindowTypeCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = AFE83FD04F32E338D78150E93D001309 /* SDLWindowTypeCapabilities.m */; }; + 1BA6566C54CC331FD44B6D747A71413E /* EAAccessoryManager+SDLProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = 46B479E9DE24EACDF8798380CCC4B19E /* EAAccessoryManager+SDLProtocols.m */; }; + 1C3779A1ED805EBA676412F23CD6E4F3 /* SDLLogFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CD4E213C5B2DB7E81A09C7CA35B69EC /* SDLLogFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C674AC828EA23F8F36FC14512F17D3A /* SDLLogFileModuleMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 306A96E272DDC349606149EEE10530B3 /* SDLLogFileModuleMap.m */; }; + 1C92C671D8279E6FB7270A408214F9D3 /* SDLCloseApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 513C5F441F1680E2DF08C9769B0F1261 /* SDLCloseApplication.m */; }; + 1D98A62E3D9E2303CC18BC70EED93D99 /* SDLReleaseInteriorVehicleDataModule.m in Sources */ = {isa = PBXBuildFile; fileRef = A7934C16A837F342002F2415BDE82793 /* SDLReleaseInteriorVehicleDataModule.m */; }; + 1DAD7BD3D1586E8C16F802E91D029869 /* SDLVoiceCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = C2AA680B3D37F013ECB5B16618A27EFA /* SDLVoiceCommand.m */; }; + 1DDA4BF089765BFD15BEB62136419F67 /* SDLModuleType.m in Sources */ = {isa = PBXBuildFile; fileRef = E744FAD3C000DB8C868581AA6D77DDE9 /* SDLModuleType.m */; }; + 1DDBAD92F469AFCE7DE53D43A7E3C2C4 /* SDLLockScreenRootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EB18E676157C3DBB7F7B0573085BC479 /* SDLLockScreenRootViewController.m */; }; + 1DE196C4FB473A8B9DBBFCE728FBAD97 /* SDLRPCFunctionNames.m in Sources */ = {isa = PBXBuildFile; fileRef = 9760ECDFB3D886D97C84848DB99676AB /* SDLRPCFunctionNames.m */; }; + 1E34EE1AE419A9801D49AABE3DE98B70 /* SDLProtocolDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6795D9E1B70C789604C444042F88585F /* SDLProtocolDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1E5B60D553AAD384F9F860E77298BB39 /* SDLSendHapticDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F99146EE0F08A756FF12683196D348C9 /* SDLSendHapticDataResponse.m */; }; + 1E860D58C4B4F4A01EB689D1B276DD2A /* SDLLightControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = EC8827628FE4A59FFDCFD4E3F3D7C4C2 /* SDLLightControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E92C1FBC46299C97494391A9A157F64 /* SDLHapticRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 85AE177498B404861704BE8D54AA5040 /* SDLHapticRect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1EE73C7B3A4FF142BDE9B2C656B53D3C /* SDLV2ProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = C594D7D022ADDBB1CCA1C39D63737DD4 /* SDLV2ProtocolHeader.m */; }; + 1F39155F30D115B93B97782715C30C9B /* SDLSupportedSeat.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BB6B7C29FB74F9FC111836E3FDC00 /* SDLSupportedSeat.m */; }; + 1F56FDE49764142BAAC3281184A0F44F /* SDLOnWayPointChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E485F28BB0A7E258C9F739157505BA7 /* SDLOnWayPointChange.m */; }; + 1F82BAB874DDB98D7FDFA3C70DC99E81 /* SDLSubscribeButtonObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CDEED18FD1039629786CEEA57699019 /* SDLSubscribeButtonObserver.m */; }; + 1FA8E1D71FDA6FBA04439981618AA74E /* SDLClusterModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A874F4C09FE07D7EF94135D92A5A2D31 /* SDLClusterModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1FAFBC495EB3F87999BDDCF1583AD696 /* SDLAudioPassThruCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = C10CCA1F0756004AD9418EF06446AD16 /* SDLAudioPassThruCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1FC3717780F9C340D3CDA0E3B746A46E /* SDLWindowType.h in Headers */ = {isa = PBXBuildFile; fileRef = B3F2F3DE7B7885DE54384816E98EC71B /* SDLWindowType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1FF10BE9E8007086210AA089BBD34F2B /* SDLDialNumberResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A8F68EFE966B4AE635B3514B21823DD /* SDLDialNumberResponse.m */; }; + 205D1C12AE6541D565AC31853F6D00B8 /* SDLShowAppMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E7464F993D6552704E1EAFCF1DF78D /* SDLShowAppMenu.m */; }; + 20C79EED1BFD13B24B8119A104E92501 /* SDLFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 606081890E34F1A52EA3621D5B06F45D /* SDLFile.m */; }; + 20E52603A144D5E23A91FC15FB220553 /* SDLPerformInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 23C50F80EECB17D50B91A723C4564B5B /* SDLPerformInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2143F4C92496739C1E9F659C76C34437 /* SDLEncryptionLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 90229AC6E8F0ECD254DB821584B0F830 /* SDLEncryptionLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 21902704F3A9A9F03579486E23620DE7 /* SDLPublishAppServiceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 40A630A6C0CC2E6947903DC5BA0B4A42 /* SDLPublishAppServiceResponse.m */; }; + 21E4968504B9B9A36C22927525A27A22 /* SDLConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B4D15588619AC4E8EE11A21A4FB48AD /* SDLConfiguration.m */; }; + 21FF6C36B0867373CDD2C28FC05147CF /* SDLVehicleType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E6C4ADE7103309719A9A2A77D95DFA0 /* SDLVehicleType.m */; }; + 224F1528A157FCD35BFF1EBA4D2C2872 /* SDLSendHapticData.m in Sources */ = {isa = PBXBuildFile; fileRef = AC69D3F94604F5AE723986975A84A9B9 /* SDLSendHapticData.m */; }; + 22677CAE5321A6CAA40B6D42378E953B /* SDLModuleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA353CD4341D5B1B5F4211679D6562 /* SDLModuleData.m */; }; + 22F3EF5746CA33D946F1C1EB781D5D14 /* SDLUnsubscribeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 13F5B04D46A1927416EB7B00EC10D588 /* SDLUnsubscribeButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2322726A5483D59A55C4EDC2AA0156F1 /* SDLDeleteSubMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = E7B8F3E8A6E8FEFDC6D3FFF9938E7219 /* SDLDeleteSubMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 232876DEA5EDCB623AC73A31EF06CEFE /* SDLSetAppIconResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C4526E09C6759AD25F54590F9002AE8 /* SDLSetAppIconResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2357A232DE207AAE2411963C3617D7CE /* SDLChoiceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CC74D66E26424A87C56B92B709CA407 /* SDLChoiceCell.m */; }; + 236A9A5A39693FF2A879024D41698185 /* SDLVehicleDataEventStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F20535D9DEA52BADB1B4063B4EAA92E /* SDLVehicleDataEventStatus.m */; }; + 23CD6E5D59B9816CB5B431D84A9B841C /* SDLCreateInteractionChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 45278E4B1599BA7B963172755EE7266C /* SDLCreateInteractionChoiceSet.m */; }; + 23DB5FB26B11BBD509563FD447334FF9 /* SDLScrollableMessageResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 35A95205B4A7E275F1EC800DF558C0EA /* SDLScrollableMessageResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 24054C486169603B5BA458F3CBF702EB /* SDLOnInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 680E830A922E9C7A8D1E5A3C3D4F580C /* SDLOnInteriorVehicleData.m */; }; + 2409088233FBB4C2C35C088F7BD27B2C /* SDLUpdateMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BC04274374151301839F46AAE270B2C /* SDLUpdateMode.m */; }; + 24F42C3E97FF7E9B0AA0358D00D9C3B2 /* SDLSetMediaClockTimerResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 058F4086A8EDDCFE4AED952B5F2F9052 /* SDLSetMediaClockTimerResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 250CBB9751DBD8C706CEFFE1E3E8468B /* SDLModuleInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A800C1FAD99D70B8B29AAE775776B9F /* SDLModuleInfo.m */; }; + 25276E5A1E876F2DFC5094A769C6A7FE /* SDLKeyboardLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 556489F7F882C1F45315798A6F7A1FCC /* SDLKeyboardLayout.m */; }; + 252B5ED026A01C0D4C40814C966FED34 /* SDLDeleteFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B8DB8AD97F13CD6B4CD990703A087B9 /* SDLDeleteFile.m */; }; + 253CF5828543F3EBE5E6AD378905C642 /* SDLAppServiceRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = FBA1886A6AB5675C30E45BE6BDC08ABD /* SDLAppServiceRecord.m */; }; + 254F979EC45C46E927239748ED585AEA /* SDLHMISettingsControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F5004CD6B82FEDEBE21181B317258D /* SDLHMISettingsControlData.m */; }; + 25BE8C8B4CECF880BE4335312ED8B717 /* SDLCarModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6A97EE0FBB026A0734AE80DF2F8572 /* SDLCarModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 26217B2CFE53FB77D314083C9F7D8455 /* SDLHMILevel.h in Headers */ = {isa = PBXBuildFile; fileRef = DEEB8CD3B1A76596EEC8B093838892F3 /* SDLHMILevel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 26353657D5D6B0F84D089E872827FDDE /* SDLEmergencyEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 1673D555128E7CE618DE3C3279E10278 /* SDLEmergencyEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 266AA31C12A9492F483B4AAEDD775FE3 /* SDLKeyboardEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 10210FEFC75394E3B2F578C082EA07D2 /* SDLKeyboardEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 26D4C0D8E30774CFEE843FEF4743645B /* SDLCarWindowViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F907665A4BB12E254E52BB764DBAB620 /* SDLCarWindowViewController.m */; }; + 26D505993874143E36649CCE262C63CE /* emhashmap.c in Sources */ = {isa = PBXBuildFile; fileRef = 0EFE9E833025F639CA949ECC8B8C90F0 /* emhashmap.c */; }; + 2706135D6304AF804131C64201373241 /* SDLCacheFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FBFE07B70439DC670284DEB1C34BA90D /* SDLCacheFileManager.m */; }; + 27355A0ACD2391F8BDF5C4F0C7C57C6F /* SDLTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = A77701E6DFFC3EB08EEC973A1F7D7190 /* SDLTimer.m */; }; + 28041814F66B4A71E8F63DD9B094EC21 /* SDLTemplateColorScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 802EC4A98FA4600B644BF8C09D41BA44 /* SDLTemplateColorScheme.m */; }; + 28275C910F5B5C86487FF92DEDC9AFBE /* SDLSetInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F5D4445E6E09F666DD97ABCAF27C4B1 /* SDLSetInteriorVehicleData.m */; }; + 282A9379A10F52BF5C5D49932CBC0B22 /* SDLSubscribeButtonResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CEAFEC8445F27E380E37DA46CE0FEE6 /* SDLSubscribeButtonResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2885509A0C6D2186F50E993D93392E3B /* SDLVehicleDataNotificationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC2979DED81E3F2C7CE44D570F2C83C /* SDLVehicleDataNotificationStatus.m */; }; + 288C523997A09EC027B619F7F3895078 /* SDLUpdateMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0719C780E196AC9980E531CF8FBD8088 /* SDLUpdateMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28BD38304ADA7FC85E743DEE7314C025 /* SDLLifecycleSystemRequestHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = ED7883C58B7DD059DDA8CACAC65B0774 /* SDLLifecycleSystemRequestHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 28CC084EC7D95AD5533A75860CA631DE /* SDLEmergencyEventType.h in Headers */ = {isa = PBXBuildFile; fileRef = 4975CFB97046B46A61DB1C5214F450B7 /* SDLEmergencyEventType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28E84A6A1F1BDD249D7EB18D110508F9 /* SDLStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 075F751ECFEC7836B3AC765DA2730721 /* SDLStateMachine.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 29333D0AA67B0FE2307D1B6C711CB6A5 /* SDLAmbientLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = AE1E83E5226544501924015F9D97A062 /* SDLAmbientLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 29343D75325A60F2F26ACB2E2A148BDD /* SDLPermissionFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B4095FC3652FF81F7C17BD02355E6C58 /* SDLPermissionFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 293C7367008EF74D0DD9DD9123AF01D8 /* SDLClimateControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 95569FF6FBE18E8D60E93393B780FC1A /* SDLClimateControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 29725FF38EFA8B496123C61DD592C84B /* SDLLockScreenStatusManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B3C88EDC28B4D78F4CF7643299FC87EE /* SDLLockScreenStatusManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 29F621F3B007E7C389AC60BA73E62268 /* SDLScrollableMessageResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 40A71807A649A656E2DA4942B6C7F861 /* SDLScrollableMessageResponse.m */; }; + 2A1683EB0706F6F8EAAFF5E6959B7B3D /* SDLStartTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 5784EB866AAB23C634D0887413828115 /* SDLStartTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2A313B1672E3B5388BB705FE11F3066D /* SDLTouchCoord.h in Headers */ = {isa = PBXBuildFile; fileRef = B692A71C44F049B8B83DDCF6B8927340 /* SDLTouchCoord.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2A7C7C18EC434E6BD10F0AC42D3C7241 /* SDLWeatherAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = DB8BAEF5BA6F28C6E8D303A40D4F9752 /* SDLWeatherAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2A8CCD7E7B1CC9315E04159E7FDDD738 /* SDLLightControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 330DE6702F86BC1CEC62353483DA8E09 /* SDLLightControlData.m */; }; + 2A8FE75D11339DAF0559381B487CE080 /* SDLInteractionMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 995A7E70BDA2C8AED3E00F4433D46835 /* SDLInteractionMode.m */; }; + 2AEEBC756B4314A3C04256AFE546BBC4 /* SDLOnHMIStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 51B7A6EEE9B94D329C7266DE4D081999 /* SDLOnHMIStatus.m */; }; + 2BCD9A7B3DD021361FFE8FB9B730AE60 /* NSMutableArray+Safe.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AEFB5FD4FD8D86E84F192A4E8DFCDC3 /* NSMutableArray+Safe.m */; }; + 2BCEB50F391F05504DA184137B9CC6CA /* SDLTouchCoord.m in Sources */ = {isa = PBXBuildFile; fileRef = F45E77EB88561822BCBB70591945A179 /* SDLTouchCoord.m */; }; + 2BD2B68D5F3E75CC7CFD753D59B5C645 /* SDLGetCloudAppPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D357CCADC7705B89FD66DEEE0E6DE86 /* SDLGetCloudAppPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2BF560ED93231DCAF6365DE031A17ADC /* SDLRPCPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = DB2DBF7A190C1B28F89A4CAA411A5074 /* SDLRPCPayload.m */; }; + 2C3074BE81DA26E6E3E62D45D05E71F0 /* SDLMsgVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = F3C46904E4C375379797C22AD77B4E79 /* SDLMsgVersion.m */; }; + 2CAB4C88313670F0F36281867EAD1019 /* SDLLockScreenConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 620CF46A0CCD4D50705CBD8D5628B133 /* SDLLockScreenConfiguration.m */; }; + 2CB2EC1505E6E5E792CB49D3F4403DAB /* SDLTextAndGraphicManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D2A524F1F2044F31A8BCD218FCCA1A9 /* SDLTextAndGraphicManager.m */; }; + 2D294C215F324510375F702DB4AF9F05 /* SDLNavigationJunction.m in Sources */ = {isa = PBXBuildFile; fileRef = 58F3751CB279F04FD7904D88ADC33AD9 /* SDLNavigationJunction.m */; }; + 2D8B55A1BFA18EB1E3CB14D6FCE09063 /* SDLAudioStreamManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 74E065CD49B4A598CACA6C88D69006AC /* SDLAudioStreamManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2D8DCB5B9AF6C9F4FE1CB0366FCDFD7E /* SDLButtonEventMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 359E694B54914987D0F5C484CDD1B988 /* SDLButtonEventMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2DB08513DEEDEF75DC9B4E14E2472368 /* SDLClimateControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = B1AFFBD09878FE64AE19E65AB5D0D9D0 /* SDLClimateControlCapabilities.m */; }; + 2DB78F6080F090A8961C26B799153455 /* SDLDeviceLevelStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = D39069B46FB5C4AA3C7B4F149BC3A9E8 /* SDLDeviceLevelStatus.m */; }; + 2DFDC4AD6962C73978FDCB69788CB03A /* SDLAddSubMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B5A4E5EEBEDE007C98C3E1449D1236B /* SDLAddSubMenu.m */; }; + 2DFED5B1E18F9EB68F6D688C9FF399EB /* SDLIgnitionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = D389BD4118B81FB0470D538239B59E34 /* SDLIgnitionStatus.m */; }; + 2E635C926F57C5CF8AC735F9DFC10B19 /* SDLAddSubMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D4BA9AEA9F55ABDD3453605BCA0C84B /* SDLAddSubMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2EBDB2DA3424BF2FD4965273F2F4CB13 /* SDLRPCRequestNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = C4DE74679FEA4D70BF5121E2F06EE9C6 /* SDLRPCRequestNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2F4E80B19F313DE275BF8A4C380F0F74 /* SDLDirection.m in Sources */ = {isa = PBXBuildFile; fileRef = CFB9AA79201C2D9C76506FEDF237FF2A /* SDLDirection.m */; }; + 2F7BDF1B09192128D071307D6B0D96D3 /* SDLMenuManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = EF925E86FABB82836176E8B05534DE9F /* SDLMenuManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 301FBFDA0A54CC473E7A55F7174A1827 /* SDLSetInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B5DC307A9450A056D106EF2EABD94 /* SDLSetInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 303F0EB9B270569385EE922355BB7E3D /* SDLDeleteFileOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E8F3EE9F30783B26AA56961091BF72E /* SDLDeleteFileOperation.m */; }; + 3070702B8B93F00CC702230E08A81478 /* SDLIconArchiveFile.h in Headers */ = {isa = PBXBuildFile; fileRef = E958081595D9D09F94B5A4E61223D317 /* SDLIconArchiveFile.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 30A46A62B4A22B6AFE3B7369879FCB46 /* SDLEncryptionManagerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B2C77A2D099C8E8D0415A41140C39 /* SDLEncryptionManagerConstants.m */; }; + 30D65525229B09FA9CFEBD81B8763C7B /* BiSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B4B09C9B8D6AB14F61330FF6FB8E3257 /* BiSON-dummy.m */; }; + 30F56DD16FD5AC410C8EC40453FD8C34 /* SDLClimateControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 96ABA69015D9F51A879DB818FAE3605B /* SDLClimateControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 311D7778EBE0EF8015E83B8D32D389D0 /* SDLOnSystemRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 503A41DB589BA9EC2CCA4AB7017329EF /* SDLOnSystemRequest.m */; }; + 3135F7D1FD60C81070DDDE6DBB4B7427 /* SDLHapticRect.m in Sources */ = {isa = PBXBuildFile; fileRef = FE62CE2C7E1A9C2C2276D29ACDE4392B /* SDLHapticRect.m */; }; + 31439E62B01AE8A36809C187E695C6E9 /* SDLPreloadChoicesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = E0CE6739547F25EDD5501E95B62ABE3A /* SDLPreloadChoicesOperation.m */; }; + 31C87220F6131D5D232FF0238894771B /* SDLWindowCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EAD2E9892034B9E96D9C73757CC2DE /* SDLWindowCapability.m */; }; + 31DF1B2C4244986AE7B049BB6B21B1BA /* SDLGetAppServiceDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 378EBD7F1E0220A44E552335CBA83F26 /* SDLGetAppServiceDataResponse.m */; }; + 31FA9389F01B517A21968C079FB0F7AF /* SDLTemplateConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = DCFD55E0C6865C089002A13599E34D97 /* SDLTemplateConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3232318E389CA8A1E52BAFA5F2C1F6ED /* SDLStreamingMediaManagerDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = E6D5D0212AEA8F2CF6AEA8DAD32868E0 /* SDLStreamingMediaManagerDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 329C6036FBDB55CFD9E1982FEDF0B431 /* SDLLifecycleConfigurationUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C52C7F9DFB04519EEFA548FB3DAB2C /* SDLLifecycleConfigurationUpdate.m */; }; + 334D229652DFB8A0950B16CB079B9FC1 /* SDLStreamingAudioManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BC802E860BD6A7F3005C68FFE4ADE0 /* SDLStreamingAudioManagerType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 337A6486B41B81121017894953322C2D /* SDLNavigationServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = CB10D3679A8E589017A8F931A055A746 /* SDLNavigationServiceManifest.m */; }; + 33ADC9641FFA2C3C5D4C3CB29270E2CA /* SDLAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E836B2993410EB417C2123481A4E6CD /* SDLAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 34173D2DD70127DF62B75CE23A170982 /* SDLSubscribeVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = A10396D9F0A4682A819D005885FDA4D6 /* SDLSubscribeVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 342C8E76BD027C866688E49E07922DC5 /* SDLCloseApplicationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 71BBFBB7A0760A4443CBB21CA252E8CB /* SDLCloseApplicationResponse.m */; }; + 34B32B0474B72819A6A6C8C158645D81 /* SDLSetAppIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = EA623EBC3192894DD618538B8DE469FD /* SDLSetAppIcon.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3517FA25C26876DD57DDCCF67ECCDF39 /* SDLOnAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A97648721B27DE7C06C2FD5DEE52543 /* SDLOnAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 355AD62388FCF6C80A11237D40D38F47 /* SDLPredefinedLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 09462E66A2B03CC7B6CFB922D8AF3709 /* SDLPredefinedLayout.m */; }; + 356FBEDAFC9DE9CE10B94CCE35ABE585 /* SDLConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BC8BBD75E4ABF360800CAA3D4E00485 /* SDLConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 359DB004D8FFFCA81496A2589BF9C102 /* SDLSetDisplayLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B79F919E881908F7E25787F89119DDB /* SDLSetDisplayLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 35CF57427874A819B9E1285661D32347 /* SDLLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 286D40C6D0DF1F4E4AAA22A91CA707E1 /* SDLLifecycleManager.m */; }; + 36CF5F6B96A767D0582D629A37F445D9 /* SDLSetDisplayLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BE98A3AA92E8E3B7CED340B5CCAE389 /* SDLSetDisplayLayout.m */; }; + 37C103C2A55DB3911D4BCA00063446AD /* SDLOnKeyboardInput.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DFCB575AA035436B66797EA08EFAB0C /* SDLOnKeyboardInput.m */; }; + 37D70E272826FAD2A7459E3052927215 /* SDLVehicleDataStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 406D36F0D5A4360A34D547F29DAEC507 /* SDLVehicleDataStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 37E2297CE2C16488DF70FACD9E4D9A42 /* SDLManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6390AF2F2F40CABD81E416ABBDB1DA38 /* SDLManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 38B84FE054DC605D69AC886B4BB4AFB1 /* SDLMassageModeData.h in Headers */ = {isa = PBXBuildFile; fileRef = E36CCB25374711839E0FBA532EF81EC0 /* SDLMassageModeData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 38DBBE38509CC185A4FFDF3FAB2EF403 /* NSBundle+SDLBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = 93636199EFDA841EF4C2CC4859CE2B6F /* NSBundle+SDLBundle.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3996BA8EF0729BA4914A1E52A157D86D /* SDLSoftButtonManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B773DF4090413C4A96873F27804F6FE8 /* SDLSoftButtonManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 39BA1E6BF24E49F7DF63A57C5D2F5F66 /* SDLDistanceUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = FBF8392198B21FE38EBE90F5DD79437F /* SDLDistanceUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 39F5E52B10B43B5EA8AE72BE10430DF3 /* SDLResetGlobalProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B25BFBB7743CC1BB55BB0A462DC320E /* SDLResetGlobalProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3A00ED6EAC8495E2A78104DC2DFB2C6B /* SDLMetadataTags.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AAE3DEF47FBE1D573CA3230BBD12E26 /* SDLMetadataTags.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3A72A19314E3CB64935731A4EFF2E8F2 /* SDLPerformAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = 56B207D8614F79DE603BFA47589AFFD6 /* SDLPerformAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3ACD9797CEF78B50A3D83645939DB07E /* SDLVrCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B8342EC5F8546285C0DB1E40C10C12E /* SDLVrCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3B0ACE0BF82CAB30ED1ABC54F39CB5DB /* SDLDisplayMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 07643F069443483408E8DF939B35C281 /* SDLDisplayMode.m */; }; + 3B7033C9D6CE86470B95F2C51B9400EC /* SDLFocusableItemLocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EC447A9F44C626EE8F180C4FD1F774A /* SDLFocusableItemLocator.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3B72322E9621369EC860A18E67637976 /* SDLRPCMessageType.h in Headers */ = {isa = PBXBuildFile; fileRef = F8C42B1050E473F7203DF663AF91285E /* SDLRPCMessageType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3BE2CD266829ABCD9AA01020133A08D3 /* bson_util.c in Sources */ = {isa = PBXBuildFile; fileRef = C1D81050F28D62B6EDECEBB7DF2391A0 /* bson_util.c */; }; + 3CA592C06FB203D552B3F6D89E1CA318 /* SDLPowerModeQualificationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AA9EBE70B104558299E530D51210C27 /* SDLPowerModeQualificationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3CE9948E64E6E23127278086C3CE3D2F /* SDLHMISettingsControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 94D396845FE301C9BD090468079F6BB7 /* SDLHMISettingsControlCapabilities.m */; }; + 3D3BEA2BEB9CFCE1B220AD7DC31B9A83 /* SDLMediaServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = F2294C32AA5333D43982A700A5D97711 /* SDLMediaServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3D8726A061E96537E54E7276ABE0F8FB /* SDLControlFramePayloadType.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBFC65AAAB2DE0ED2B74F8CE3002306 /* SDLControlFramePayloadType.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3DF594F7EBAEC2D9B4C672D8E54BC8EE /* SDLLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 434F7E258AA1DD104EC3CFB0E53CD4F5 /* SDLLightStatus.m */; }; + 3E5E415918576021223E72FDEF0A3C9F /* SDLError.m in Sources */ = {isa = PBXBuildFile; fileRef = B4979E6424D2B5B676846623A6C7D4ED /* SDLError.m */; }; + 3E79998B5C40E4AC8D1794F26E7C453B /* SDLPhoneCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B6F9761E83A66A7DFFB1E6866464197 /* SDLPhoneCapability.m */; }; + 3E84DCB02F0A0F92DEE9F035C7419B7C /* SDLUpdateTurnListResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7252AE8CFD85B98CF08E197488052DC1 /* SDLUpdateTurnListResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3EA94155B7EC5117E704B30EF66256D4 /* SDLComponentVolumeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B49CB8BCE22DD2B4CF1B57ACC983DCC /* SDLComponentVolumeStatus.m */; }; + 3EE109E86F504C8541C3781EAA536C33 /* SDLPresetBankCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 79ABFF6CAF3C11C17386F29E3C4F6561 /* SDLPresetBankCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3F4AD047267732B8620595C92A211626 /* SDLDateTime.m in Sources */ = {isa = PBXBuildFile; fileRef = C318BCF5948BE73D137E480D096B323B /* SDLDateTime.m */; }; + 3FAD343C0F867C2097B12804C5907DB6 /* SDLOnButtonPress.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EC3AF92A0155AA2A2E679263C15CA4B /* SDLOnButtonPress.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FDD76D86DA6E85561401E00FD5A9C75 /* SDLVideoStreamingCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F549F3D9954F40A97B6921D59DBDCC /* SDLVideoStreamingCapability.m */; }; + 402FE8CEBCE2DB4FF9430C97EE3B5C7D /* SDLProtocolReceivedMessageRouter.h in Headers */ = {isa = PBXBuildFile; fileRef = 41001F8A8E38A09CC2782EDFC033C7A4 /* SDLProtocolReceivedMessageRouter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 40350EC1E0C7771E44C6BA8DB22C3666 /* SDLPerformAppServiceInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = A288A63276C3C43A527ACA059A0ABBA3 /* SDLPerformAppServiceInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 404425782FA399BBF0D7E2D3D4591B81 /* SDLGetVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A4A0AB3F4FBC747F8A9BF2C7F38F20B /* SDLGetVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4076BFBF65A4A2046591AABC91A028F4 /* SDLDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = F453F9BFB3B93AA2625EE2FBBB625D24 /* SDLDeviceInfo.m */; }; + 4138B2ACFD9C35D69ECFF36B8D73988E /* SDLStreamingVideoLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E7D643B6479CA671FCC68F8D9B079FE1 /* SDLStreamingVideoLifecycleManager.m */; }; + 418915792BBCF4558CC5AA1618DCBF3E /* SDLDeviceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = C8CB8529A9386D82BBB3D5191EF06A18 /* SDLDeviceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 41942EC4AE2AF408EC4FAB078ACBE980 /* SDLGetSystemCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F85105DF89C5A00C24011ADD2F11E33 /* SDLGetSystemCapability.m */; }; + 41A90106B4715AB967B0EC05FBDA2539 /* SDLMediaType.h in Headers */ = {isa = PBXBuildFile; fileRef = 99260C97979258B09198B8E093019FAD /* SDLMediaType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 41ACFBF95F2E17E58C237CE67A1D6C68 /* SDLFuelType.m in Sources */ = {isa = PBXBuildFile; fileRef = F7901CE8B0D66BE7D80603D36AC4C9F0 /* SDLFuelType.m */; }; + 41BD6912F45B73EA88F91D8FF36470F3 /* SDLEmergencyEventType.m in Sources */ = {isa = PBXBuildFile; fileRef = 56BD8841DFE8B3FBBC4A5C4D08264F39 /* SDLEmergencyEventType.m */; }; + 41D046D2EAD5760794D0459A8316D66B /* SDLDynamicMenuUpdateAlgorithm.h in Headers */ = {isa = PBXBuildFile; fileRef = 59E9E6DA852CDB3807D696B60E051419 /* SDLDynamicMenuUpdateAlgorithm.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 41D0EF1CC1302A540C682C2BB821A8D6 /* SDLFunctionID.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B8EFD1CF76083158407FC36B8E116EE /* SDLFunctionID.m */; }; + 41F229081EA3B2C8DD97C7847EA59C00 /* bson_object.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = CCF1E88FAC247087B1D04D8DC970BE73 /* bson_object.h */; }; + 4229C388D87E44653544F9B367D91B03 /* SDLGetAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A54A6815830D84DACA174DA5B066347 /* SDLGetAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 428B9550A0F15A2B8F5584900093F8C0 /* SDLLogFileModule.m in Sources */ = {isa = PBXBuildFile; fileRef = D7857EF566BA1394F763413B59EC6BC7 /* SDLLogFileModule.m */; }; + 4309DAF1A0EC9BBBFCB7FC4B2F73FBBA /* SDLDisplayCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A9E6530D498F353F0F09932DF6E0EAD /* SDLDisplayCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 43431BFF32039C6CFBAAB8C71D13EB79 /* SDLOnHashChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 812DC2376AB84B8D759BA7BDEBA1D186 /* SDLOnHashChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 434437D79AF1D372D6D67496B72D1358 /* SDLLockScreenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AE76BA22D74D21AAF31A4BC6C4C57F1 /* SDLLockScreenManager.m */; }; + 434BB6186E1C616AAF51687143FBDF2E /* BiSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C64A1B5B79B529141EBEF99FD0560328 /* BiSON.framework */; }; + 435A9A8FBEC0AD2E8B7B46BACE464E00 /* SDLIAPDataSession.h in Headers */ = {isa = PBXBuildFile; fileRef = B4CDAA4EB638051C5A0474B84B73471A /* SDLIAPDataSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 436DCF518BC654B893E3567925A97D24 /* SDLPRNDL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C2EDACE6ACD4C977F1501873B8C715C /* SDLPRNDL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 437AE1029BE7E84D5C77531F19999CAD /* SDLSubscribeButtonResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F8013668A1A4E9A3111D5B2E843FBA13 /* SDLSubscribeButtonResponse.m */; }; + 43963E4F4E8BD7A5A13BE8BC32F2D88B /* SDLWindowTypeCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = A70CB0DAFC9A084992447D811A756878 /* SDLWindowTypeCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 43BFE80CE7C858FF07FF9056216D5ABC /* SDLOnCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 51210DA0C1436DDB81E521EBA6EADBC8 /* SDLOnCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 43C00FAF5B815417E2E4CA652CBD4221 /* SDLObjectWithPriority.m in Sources */ = {isa = PBXBuildFile; fileRef = D70663478539E6AEC0CB55388F533D99 /* SDLObjectWithPriority.m */; }; + 43E6E27A903694B9A5668A5E2E3AE7C8 /* SDLProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 092B1D219F562512D83E15E5DA0F4859 /* SDLProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4420163C672AAF5B0F6472F0F13B41D5 /* SDLDisplayMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 05AC4D2805528F742A66D7477F43714E /* SDLDisplayMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4422E4ADFCEA142E06C698B954D88413 /* SDLSetCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = FF58817A16825E97C73749864272841A /* SDLSetCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44688FDFE801EB640910E77BCD4676C1 /* SDLUnpublishAppServiceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 755EC40C9CDFD1F64E17F5F7B58C3FFB /* SDLUnpublishAppServiceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 448960757DCCD0251887598DD98C7721 /* SDLMassageCushionFirmness.h in Headers */ = {isa = PBXBuildFile; fileRef = EE3BD31D681144934CA751D4EBE59FBE /* SDLMassageCushionFirmness.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 448C6E33A3018444FFF0D83F5FAF4419 /* SDLInteractionMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 888125F9D139D66C74276506032B1A88 /* SDLInteractionMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4493C9382CEFE5A8B0545A7C08E6B87C /* SDLResetGlobalProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 74686EC68A889701EFD2843CB7AED2F1 /* SDLResetGlobalProperties.m */; }; + 456E753731B63506DBE8906EE694AB5E /* SDLOnPermissionsChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 64ABE3A5D90ED6ECBAC18ABA973D85CA /* SDLOnPermissionsChange.m */; }; + 458BF4D2B838994829BFBA9D69641434 /* SDLSoftButtonState.m in Sources */ = {isa = PBXBuildFile; fileRef = 91385E176713F556761B0AF1EB7AA94C /* SDLSoftButtonState.m */; }; + 45D24D3189F7695C51AAACC2A4171DC5 /* SDLSoftButtonTransitionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 84E5BF87FD6C342013333DB77ACA1E7C /* SDLSoftButtonTransitionOperation.m */; }; + 45E4823DCE75519D98AD45B17EF4144A /* SDLMyKey.h in Headers */ = {isa = PBXBuildFile; fileRef = A56BE725C12073F229AA3AF5449958A1 /* SDLMyKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 45F55718ACB758E98BA2735A380DC37F /* SDLUnsubscribeVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AB0ECB1844711AAB00BE85D75CDB9B8 /* SDLUnsubscribeVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 460A09BF2FFCEB9D00FFB58ECCF7F7C1 /* SDLSoftButtonReplaceOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 53B9D390255C9D726244342D1F11DB4E /* SDLSoftButtonReplaceOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 46300F41ECC56138DAE8F56FEF10E7B8 /* SDLCompassDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = CCF47A553221E3AD83C4363CB7B81894 /* SDLCompassDirection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 46460D60D382738558332EE5529E7BEF /* SDLSpeechCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = BEF6EAE77CAC2466EB562CFF77920BCC /* SDLSpeechCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 46668785EC2A839C027BE887D6598241 /* SDLResetGlobalPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AB4971438A6A699BC2C1C2BEDAA999E /* SDLResetGlobalPropertiesResponse.m */; }; + 46CB9EA98028EF5643189A044EF55FA6 /* NSMutableDictionary+SafeRemove.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FFF9A629644A4A7222767D6C63D7E24 /* NSMutableDictionary+SafeRemove.m */; }; + 46E72DA12639145BA10361DC9CB2EF60 /* SDLGetSystemCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 658B5E74262239EB89838E06BCDA0669 /* SDLGetSystemCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 46E7DEEBB97AD7240942419DE6B6FBCC /* SDLVideoStreamingProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = ACD66EC9F2852429481A7BADD06F50A5 /* SDLVideoStreamingProtocol.m */; }; + 46F1D5E0135F13C261F3FA1128102B3C /* SDLMediaType.m in Sources */ = {isa = PBXBuildFile; fileRef = 87B650D370D62BF0EC67E9AD42F6E22B /* SDLMediaType.m */; }; + 480BCA1C16557CEEEB35054063CC6C07 /* SDLSetGlobalProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FD900A135D822B0C46DB3FC2398B8BC /* SDLSetGlobalProperties.m */; }; + 485EB884477F1C792D748D9760C80F96 /* SDLPermissionElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 2398A5BA455B24EEA12F22248F56CB41 /* SDLPermissionElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 48C57C43B0748423EFC4685C4907DEE7 /* SDLUpdateTurnListResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = CA4E2E2D6448CAAB671EE663AF8C9038 /* SDLUpdateTurnListResponse.m */; }; + 4913A753E7AE009D299D2B0C42BC49D2 /* SDLGetWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EE2D6F35E8ED91165271F62FB1A31AB /* SDLGetWayPoints.m */; }; + 494D14787586F8CF5AD27828DDAD1EC9 /* SDLRadioState.h in Headers */ = {isa = PBXBuildFile; fileRef = 1036AF4390ACFEC2CFCDA61FA0498E28 /* SDLRadioState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4955A39B2114E75169CEF9B9F85534C6 /* SDLRectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = D693943ACF1FD2282F38E0EAA87D03BE /* SDLRectangle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 498DE56DFEC17537625C394BB3B725B3 /* SDLGenericResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 96BEB464EEABED67F857FCAA31784297 /* SDLGenericResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 499C36B26E6CAB22A022386A12660DB8 /* SDLGetDTCs.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B7024D8FB7FFF140C2B02CD06A30621 /* SDLGetDTCs.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4A3B8C054EFCF528CBF4ABB1AC3DD93F /* SDLSoftButtonReplaceOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BF5D3B07CABB0353EF64221323FB214 /* SDLSoftButtonReplaceOperation.m */; }; + 4A57A7C0739E81694973E20F0A5E6F86 /* SDLWeatherServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = 95B6BE3E72235AC592C06AF8A4F665F9 /* SDLWeatherServiceManifest.m */; }; + 4AB3A964E345CF3E0D5ACC1A63991290 /* SDLSystemCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E42A8B49F8AA2A40213699E2A1C40BF /* SDLSystemCapability.m */; }; + 4AB72D0E36873D1317F92EEC019BDF58 /* SDLVehicleDataEventStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 17117CBD93690A080777FF3CCAB14EBF /* SDLVehicleDataEventStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4AD88CBD9DFB871BC60464B1D464C126 /* SDLAddSubMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ECFA9EC3D76BE7DB5AA4AD25DED7262 /* SDLAddSubMenuResponse.m */; }; + 4B0660F894928C9F214F03C6483D8351 /* SDLMenuCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D547BCC4DEAD1C428EDF45B037D5201A /* SDLMenuCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4B75F9DA99F98B193944890144BD5988 /* SDLServiceEncryptionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E8EAF599769D42519D9B2A60644B86B /* SDLServiceEncryptionDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4BB3C3F4C43F262E62FC10A2B90C5509 /* SDLEndAudioPassThruResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C89447CA3A2D998A71484D9D7EEC0D6E /* SDLEndAudioPassThruResponse.m */; }; + 4C7E24A221E96927418CE33F08F14A05 /* SDLBeltStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A279D9C92C4169FF98A476AB715168EB /* SDLBeltStatus.m */; }; + 4C93079B440925D756A0573344DA4D96 /* SDLAddSubMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FBF01691FA6A64E8B91B258A087254D5 /* SDLAddSubMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4CB22235F686471AAAB40748D9D5A4A9 /* SDLOnButtonPress.m in Sources */ = {isa = PBXBuildFile; fileRef = 79B7A63E7628613EAA9F22EB4C339E89 /* SDLOnButtonPress.m */; }; + 4CB426F09D090C57A0C0D743F5A802B1 /* BiSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF2016A9D7AE38A97F83A8E40300735 /* BiSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4CCED9A1BAF149906BF8742B1D33B3FB /* SDLWiperStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 971F3693D99D4DF5AB6B162D6026730A /* SDLWiperStatus.m */; }; + 4D2E68E344832556024E6BCCF039EF08 /* SDLTemperature.m in Sources */ = {isa = PBXBuildFile; fileRef = CDCD325FB9D69CF0D80F1C46381EEED5 /* SDLTemperature.m */; }; + 4D33761F1DC2FBE91EDDDE215A1E6959 /* SDLDeleteCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 41D2FDD18C0EC502F3D54359F05AEA12 /* SDLDeleteCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4D56160493B136A03CE409F6C79B8A52 /* SDLSetDisplayLayoutResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 491D8037228A91B41497B86D86B203FA /* SDLSetDisplayLayoutResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E7FE570BC489D0CD32A6D0E4CF82ADC /* SDLNavigationServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = E28D7727C696BB6A9A719269ED72550C /* SDLNavigationServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4ED3CA7455F452C244BFBB3489AE5429 /* SDLVideoStreamingCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = EB17B3E359DDDCA44BC834ABB8C6C3B8 /* SDLVideoStreamingCodec.m */; }; + 4EEA7E1F5B0599432045D965A5F0F853 /* SDLCarWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C7358A46E79FC0C9BC7001B0A76870E /* SDLCarWindow.m */; }; + 4F0E6A9D816AA18B7EDE637892AAB4EA /* SDLEnum.h in Headers */ = {isa = PBXBuildFile; fileRef = 719DCAF92882EA100E2C8795B42C2678 /* SDLEnum.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F106B6602723F06DE807FEC15B46F84 /* SDLViewControllerPresentable.h in Headers */ = {isa = PBXBuildFile; fileRef = E6D1FBD011D035D23562FC050633E575 /* SDLViewControllerPresentable.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4F25F4D7F19E1F2FC5B08AE99801DAE6 /* SDLVentilationMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A6B3017F1431C58D97751955A16C720 /* SDLVentilationMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F65E2C7B4EA078E55DEE34B47EEFFAA /* SDLGetCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = CC79D886FC0B1F4F59AC179912B3288C /* SDLGetCloudAppProperties.m */; }; + 4F7B3FACDC968EEB28DBBDE1A4B118D2 /* SDLAudioStreamingState.m in Sources */ = {isa = PBXBuildFile; fileRef = EC880BF5EFC8FBD9AB4F63EEC9191983 /* SDLAudioStreamingState.m */; }; + 4F7C9C4E30D040A4AB32FE05BBD9001D /* SDLAsynchronousOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = DDE558E5D0448F16F7A74A931431AA9C /* SDLAsynchronousOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4FA65B210DE99D64030605C9E769AC05 /* SDLAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 5307CCD102337C9C53D4EFE667B761F4 /* SDLAppServiceData.m */; }; + 4FAF9E8D38594CDAD8143CA6370F6EB8 /* SDLNavigationInstruction.m in Sources */ = {isa = PBXBuildFile; fileRef = BCACAA14FF60CF41338964A0B4EB8421 /* SDLNavigationInstruction.m */; }; + 4FD30C228C4C7D31C57D36865C45DDE1 /* SDLIgnitionStableStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 06303A86B1B729A73E63863D21AF2925 /* SDLIgnitionStableStatus.m */; }; + 4FD8B4B6CFA7CA9726828141B0A48F5D /* SDLOnRCStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AE9EC548FF21C32A33D465E73564DE4 /* SDLOnRCStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 500FD152C9497C38BE0B36C857027D6D /* SDLTransportType.h in Headers */ = {isa = PBXBuildFile; fileRef = 2559C479FF5977A46C191A0DF82F5A42 /* SDLTransportType.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 50676B3E69F865A99F78CB8BF3C1FDE0 /* SDLSetInteriorVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C6706EFEDF66F1A0AD318CAF53CE694E /* SDLSetInteriorVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5074ED2355E751C3B61FB476B87B59C9 /* SDLFileManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BB6D4E91D8A0F98864787DB620D6AE0 /* SDLFileManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 508DAE5023F694C4CD2E7867B3CE6F56 /* SDLSoftButtonType.m in Sources */ = {isa = PBXBuildFile; fileRef = 248505262AF0D2F58A9D246BB6C6BD84 /* SDLSoftButtonType.m */; }; + 50B469336EC4B317FD37E4F3DBD146E5 /* SDLTurn.m in Sources */ = {isa = PBXBuildFile; fileRef = C7416C95E6F086E3A8112582FBA43F5B /* SDLTurn.m */; }; + 51DA975E13B256C4B5D1FE787629B5A3 /* SDLPredefinedLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EB901BBD8CDB6EBCBAE64DA451A00CC /* SDLPredefinedLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51EF218E3562B0C1E47C1404A923C604 /* SDLPublishAppService.h in Headers */ = {isa = PBXBuildFile; fileRef = 34CAA3D2C0E052E3DBD4E08D86483AE3 /* SDLPublishAppService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 524FC58075C102402E54D6C9D2B7EFF5 /* SDLFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D2F8D638111E1E1C919E161F33554DCC /* SDLFileManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5302244179BF6A0021E20261F7B0C3DD /* SDLMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E264BEF6A4FED13F137E6FD85DE5CF5 /* SDLMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5308F5ED1B015EB8DB777A56AF97B611 /* SDLSendHapticData.h in Headers */ = {isa = PBXBuildFile; fileRef = 22F7A01AE367466B8917F5FEBC8F9D1D /* SDLSendHapticData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53892E3772E852A7278E75A75D3CB2B2 /* SDLPerformInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DF843EEBBB30D7B7389D88A9A97026E /* SDLPerformInteractionResponse.m */; }; + 53BBA1FD281AA378016607203506D143 /* NSMutableArray+Safe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9470359FA084F4E00E48F9FCE83F58E1 /* NSMutableArray+Safe.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 53BC9C01093F61CF20D0CF465FA37E8F /* SDLWeatherData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CD719AC3C9050D19676E1840EB584D8 /* SDLWeatherData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 542276EFF16755D0D3022600FB995EB8 /* SDLRequestType.h in Headers */ = {isa = PBXBuildFile; fileRef = A775F59AD389385C91183BEAF59C659B /* SDLRequestType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 543478E1D2830917285505E70CC177C6 /* SDLLocationDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = 19B1A83A55BD6197AA3C2050EDA2EDB2 /* SDLLocationDetails.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 54E2E06940B5DF1F43FCCDB95FBC7852 /* SDLTouchType.h in Headers */ = {isa = PBXBuildFile; fileRef = 3364DED576C91F4B3E9543F8E3F1D22A /* SDLTouchType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 55BC0E64D4A51021A93FB2D763F3BF9C /* SDLFuelCutoffStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 390D7DC13089AAF192CF47CA92343067 /* SDLFuelCutoffStatus.m */; }; + 55D5D0856115578A202D59702AEA852F /* SDLProtocolConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EAA73147795978ABCFD9E0261FFCAA6 /* SDLProtocolConstants.m */; }; + 55FEF4FF43C2FC907DCB0ECC9AB94286 /* SDLDeleteCommandResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AD71C120072B2C90332685ABC447D8B /* SDLDeleteCommandResponse.m */; }; + 5680D0D1D06F3D3B54396D398B8A417C /* SDLPerformAudioPassThruResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FBC39295240049B5FF46205827728BFE /* SDLPerformAudioPassThruResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56E5FE374352C392DC8E51B09AF1BBA3 /* SDLDeleteWindowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = E6676C50EEF5E1C69FF7D27A9C87426A /* SDLDeleteWindowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 571CEBE5B6BC6AA08B580FE03D8C64F2 /* SDLVehicleDataNotificationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B006F22A5BF2027E0B3A10A8332C0AB1 /* SDLVehicleDataNotificationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 571DDD47BD1560C506A2C8CFF60B6F02 /* SDLChoiceSetDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7E2467D5DC2019F260BD475A53CA1F3 /* SDLChoiceSetDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 572EA07632A1B4FD40F4BAF78A817413 /* SDLChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 515C64D6ED07705316C7A0B26C4DD75E /* SDLChoiceSet.m */; }; + 573384DD9BADD8F3B332668BD49F2C29 /* SDLGlobals.h in Headers */ = {isa = PBXBuildFile; fileRef = 341C430BE22913BF9CA0B57997C20BE1 /* SDLGlobals.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 574EFD25DFDD6AF16AF2031CFC0AAA81 /* SDLTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = DC368A37A25AD64AC69F460E5EB32339 /* SDLTextField.m */; }; + 57675316F7DF755DB77B03DF5D82077D /* SDLIAPTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = AF87D39D8C17C6A34DCC703C68689E08 /* SDLIAPTransport.m */; }; + 5785685CC981419E5FBE990997285980 /* SDLTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = FCEAF8E21008989F4E1DE6BF04801187 /* SDLTouch.m */; }; + 57B2D46DB78B0D4D338E57C1D4D4D5CD /* SDLResetGlobalPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BB2A05D1451A32684E59CFF3328352 /* SDLResetGlobalPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 581A00BAEB05979C1FA7426A48471335 /* SDLFuelRange.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9731F0EEDD01B488AE412DDC732A15 /* SDLFuelRange.m */; }; + 5850EF9B044637368E9F6B753DA1661D /* SDLMassageCushion.m in Sources */ = {isa = PBXBuildFile; fileRef = 144A510FD012E8B3D68672FACAD74C3D /* SDLMassageCushion.m */; }; + 5870BC9B944DF757D12AF66ABCBD3708 /* SDLListFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 55E435B983612931D00E4E0BE0F83314 /* SDLListFiles.m */; }; + 58A5861410B7BAB3BBD9D1A84DB8EB2E /* SDLSystemCapabilityType.m in Sources */ = {isa = PBXBuildFile; fileRef = E98EB0FB9B881074126B6496AE6EE4A6 /* SDLSystemCapabilityType.m */; }; + 58C4CBE7BAAA82F67DBAC49F2E5788BC /* SDLAlertResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D4105D8C883FAEA6442789492798AA6 /* SDLAlertResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58CF8CA453B2AB8AA13CB2D31A23C62B /* SDLPermissionElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 70BFC55E36D45F3E9FDDDA27271DB651 /* SDLPermissionElement.m */; }; + 58DB52B0C275C61237721E3D2AC4DAD1 /* SDLPerformAudioPassThruResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E18B248ABDE8B1FCC6F0DBC564ED42D /* SDLPerformAudioPassThruResponse.m */; }; + 58DE982C4E8188ECF4D6F251CBB29645 /* SDLStateMachine.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A7C79923DB7BE60A8C3C81172411692 /* SDLStateMachine.m */; }; + 5924A69A69D0AF8A3DAF58868969E1A9 /* SDLImageFieldName.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3100295E8CA323C777D8F2A6CC4D95 /* SDLImageFieldName.m */; }; + 5A05C8C3A39875B1AC0A46C18FAB7203 /* SDLUnregisterAppInterfaceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 95FEDB3A040A9AF27C4F297BB1D4B137 /* SDLUnregisterAppInterfaceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5A198FFEA19EF76603AB27CEB799AF79 /* SDLSystemCapabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 565B3BF287FB32FC25688D47A589EACC /* SDLSystemCapabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5A7F0025D46821A9392DC4115B746DF1 /* SDLFileWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 3108E6D3BDA3B4349EC02CCBB85B6307 /* SDLFileWrapper.m */; }; + 5AA6EC18B9143E9DC48FDBCCAF08EA1E /* SDLLightName.h in Headers */ = {isa = PBXBuildFile; fileRef = 0540D028CA350ED05CE0F5B10778ED6D /* SDLLightName.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5AC2BBF2338C0E1AFFC9719B7F895930 /* SDLGlobalProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = AE6AE53069716EDC4D28271639B1ECF6 /* SDLGlobalProperty.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B049E4888F5BCE4DC057D4E42C1F2D3 /* SDLBitsPerSample.h in Headers */ = {isa = PBXBuildFile; fileRef = C0150C2F6FCAEDCCE0078FFF6A5F9854 /* SDLBitsPerSample.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B288148F0AFA6AB22190A0E1024367F /* SDLSequentialRPCRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = B1961973F2A5564B8E0FF5586067C528 /* SDLSequentialRPCRequestOperation.m */; }; + 5B471B072C46766C6029792C0D91040D /* SDLSyncMsgVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A60138A12628B558D512D97D89EE5B2 /* SDLSyncMsgVersion.m */; }; + 5B8C2645A7E114E40C5A2D8DB333C72B /* SDLFocusableItemLocator.m in Sources */ = {isa = PBXBuildFile; fileRef = 395C9056FCC2D6785467927C7C046C36 /* SDLFocusableItemLocator.m */; }; + 5BA9A54A41ED1A2C09132DD9EBD78C27 /* SDLDiagnosticMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 04612B443920F41D035644D3D5DCC4BD /* SDLDiagnosticMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5BC280DDA0CDAF30020BABBC7AC703E1 /* SDLIAPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = DE79CEA37357B6F9DD91B9559EEEFEBA /* SDLIAPSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5BC3AA186D38E4432C705AC60EB1E651 /* SDLOnDriverDistraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EF11FACEE1EFEF67EDBD239E3CFE981 /* SDLOnDriverDistraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C33B2CE1EF4650E175EF9E3AE1C7C72 /* SDLRPCPermissionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 09691EAC4A4C3B8C10A61F569A68E123 /* SDLRPCPermissionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C37346184074495446F9DB33C56CE01 /* SDLReleaseInteriorVehicleDataModuleResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BE4EE1D8BE9A2DCD428088444FCC1C8 /* SDLReleaseInteriorVehicleDataModuleResponse.m */; }; + 5C378A2D9ADBF6829478D771E6E57B2C /* SDLVentilationMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 810E44A8EB4510C42EDE2EDC43A78459 /* SDLVentilationMode.m */; }; + 5CF48848187250BD2DEF080316CAC9DB /* SDLGlobals.m in Sources */ = {isa = PBXBuildFile; fileRef = DE69A7B9DB57BFBF5BD9A2D76ED79B77 /* SDLGlobals.m */; }; + 5D9A8E36A8A6FB375DDF1B0521EADD95 /* SDLOnVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = B0B485F2DBCDC2B0D33BE35382C71715 /* SDLOnVehicleData.m */; }; + 5FB32668254EF921D8C9D5C0625A6C1E /* SDLSeatMemoryAction.m in Sources */ = {isa = PBXBuildFile; fileRef = C7F54D6509DB0FC7F6534EE13492D451 /* SDLSeatMemoryAction.m */; }; + 5FDAA1E19BCA3962C75A8383718C8C24 /* SDLProtocolMessageDisassembler.h in Headers */ = {isa = PBXBuildFile; fileRef = B1489C28FDE9BC04F3A6D6E52C5CCE68 /* SDLProtocolMessageDisassembler.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6014038CC3B4CF7B9F8914B391B7A37B /* SDLProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 7513AD379CB357399CB9BF73BEF6E74C /* SDLProtocolMessage.m */; }; + 601CE9E6BD148366CDC9D03D30EEEC90 /* SDLResponseDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 64305656CE2B59145E9B70508EF743BC /* SDLResponseDispatcher.m */; }; + 60521D1FE88A1564BD108C0F62E69D9F /* SDLSendHapticDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EF82F8948A2C13108DB3E6BC79A6DA9 /* SDLSendHapticDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 608C377B709C7C5D8284B5331A22F2B4 /* SDLTTSChunk.h in Headers */ = {isa = PBXBuildFile; fileRef = A53632E3212C0B4683F082091768234F /* SDLTTSChunk.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60F5AE17A02DF80CEE6DBF6E6413020B /* SDLDIDResult.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB1E250DE3E63DEB5019B86C69B0AF4 /* SDLDIDResult.m */; }; + 612C6E250B9D452F704EEE4B2A29F640 /* SDLReadDID.h in Headers */ = {isa = PBXBuildFile; fileRef = D976C60F80AF73BCF88057AFCC997BF2 /* SDLReadDID.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61514DCF5A2A0366879CCFF8E1D53FCD /* SDLArtwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 78DB22A547F3877AFC6B9C4837827A62 /* SDLArtwork.m */; }; + 636D8C8EBB49829369E13843A86C0600 /* SDLPrioritizedObjectCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = EC6A18970938783F09F8FBF76216579B /* SDLPrioritizedObjectCollection.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 638357A247E8289D2E0CB7FB94483415 /* SDLOnButtonEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 121E4A108B2448717672CE50FEDE685A /* SDLOnButtonEvent.m */; }; + 6399449E25DF90657AF772C5241C419B /* SDLPerformAppServiceInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 267FA2C1E15499A2CD4854991CC471EA /* SDLPerformAppServiceInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63A3F4D0CDCE1016D255C75D13EC7504 /* SDLSlider.h in Headers */ = {isa = PBXBuildFile; fileRef = F97131D44A7A2ED6C07482A31E5F6104 /* SDLSlider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63C6BE616ADEE4D41DEDCC81327945AD /* SDLStaticIconName.h in Headers */ = {isa = PBXBuildFile; fileRef = A7AFAFFD39AE907E63F13217D5067A14 /* SDLStaticIconName.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63E91526EBD93C2EF19EA765829657BE /* SDLPutFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 73B13638D5FFEDDA542EB00CD057988B /* SDLPutFileResponse.m */; }; + 646AD977FC1D69B37D5E99F3FC282DF2 /* SDLSubscribeButtonManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 953643AF1E768FAB16D37AF6E1107ACC /* SDLSubscribeButtonManager.m */; }; + 64B4EB36C718264B16DFDF8D035A51AC /* SDLRDSData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E31ADF790B6CD458B58780AEEA2DC29 /* SDLRDSData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 64FD30538308F3AE59148DC736F72625 /* SDLPermissionConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A5780D6C351FCA2B9EBE2AD7E6BBFC5 /* SDLPermissionConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6536501943A353860D4FF7101CF32D06 /* SDLUnsubscribeWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 4722008FD5C647B6F89537D21F158386 /* SDLUnsubscribeWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 65552455476E98C94CACB3A15B8AC48E /* SDLRTPH264Packetizer.m in Sources */ = {isa = PBXBuildFile; fileRef = D70AC7BCD19517CAE727871B85813F39 /* SDLRTPH264Packetizer.m */; }; + 659DAF3396869C71FF9FF49AE8096CF6 /* SDLOnLockScreenStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 84539D3623D9A251B4E5FA6AE4EFB0EE /* SDLOnLockScreenStatus.m */; }; + 65B80391203B29755940056CD7130299 /* SDLButtonName.h in Headers */ = {isa = PBXBuildFile; fileRef = 27C368EAA0D3AC1FA9ECDC2F63B9730F /* SDLButtonName.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 65D70E1DDF74B399D28ED6B4077F0FC6 /* SDLSystemCapabilityType.h in Headers */ = {isa = PBXBuildFile; fileRef = A256F032355513227EF3F0E7BC0D121D /* SDLSystemCapabilityType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 665ABE2154820B9CEA1EF0EC5B0B2E1A /* SDLLifecycleSyncPDataHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = D4DA5A5B16BCBD07008310F92C3960D1 /* SDLLifecycleSyncPDataHandler.m */; }; + 667DD157108EB7E1B946CE0B82C8876C /* SDLTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = B431E7802E17E1F281E75FF94AC70BB4 /* SDLTouch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66932F4CC3CD23BFE1DFE816A405E5B9 /* SDLSISData.h in Headers */ = {isa = PBXBuildFile; fileRef = AB19EDDD4140C1BE93B38F0AAAD31A3D /* SDLSISData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66B27F474A7986812D213809F149E989 /* SDLStartTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F43B62FD5522EFA8F5EDEBE12238EC7 /* SDLStartTime.m */; }; + 66ED15B498C10845B6833F5B4A77C059 /* SDLGetDTCsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 36ABD04F09CB9E8C748573174EDFED6A /* SDLGetDTCsResponse.m */; }; + 66F5C089D30A9889D0F8BA63A8443041 /* SDLButtonCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E31DCCADEC394A9E791837B3BD64B501 /* SDLButtonCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 675A18616DA8321C848C329AEC19B160 /* SDLReadDID.m in Sources */ = {isa = PBXBuildFile; fileRef = 32F53530C42DC0CF82E40AB2BBA5E9CD /* SDLReadDID.m */; }; + 676C546E11B1621DE2BB157860876C84 /* emhashmap.h in Copy emhashmap Public Headers */ = {isa = PBXBuildFile; fileRef = D8937A5799CDE32614D2726C81F82818 /* emhashmap.h */; }; + 67B909C564FDC20E3CC8440E232B7001 /* SDLMassageMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B7301DAF575A72B748A49FDB3EB87C7 /* SDLMassageMode.m */; }; + 680C81B640507A0A2695AC221C995EEA /* SDLGetVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E238C3A14756784DF2389D96C274D46 /* SDLGetVehicleData.m */; }; + 6867184EB0DA4E64F43D2F30EB0488CB /* SDLEndAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = B1B7A6430BC02C0B52516656BA4B5DE6 /* SDLEndAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68A8266B19CDDD69DE77B14A45C13057 /* SDLProtocolMessageDisassembler.m in Sources */ = {isa = PBXBuildFile; fileRef = D8F4594E3083E428B64B683C182E3BB6 /* SDLProtocolMessageDisassembler.m */; }; + 68F509B411A9D21346004B2316F5E759 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */; }; + 6933E178872E557AFF58D48A5474FA58 /* SDLGetInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3088C13A654A2FE2C6AE29FAC85859A8 /* SDLGetInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69576725BB10F3D345CC93CF2BA3C019 /* SDLSetGlobalProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 894257BCE702D293AB8A34D2CFB19171 /* SDLSetGlobalProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69D9241B27BEE1A16D8E9C69304C610C /* SDLFuelCutoffStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DAA75FD4629A2D623ECDA3EE735764B /* SDLFuelCutoffStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6A63E3C69D4A0BD81FB87B9C5E6B9E88 /* SDLOnAppInterfaceUnregistered.m in Sources */ = {isa = PBXBuildFile; fileRef = B59517F7CBBA095EAF2897CDD2F95780 /* SDLOnAppInterfaceUnregistered.m */; }; + 6A87625EF2166A613128D2C3B2CD0EDC /* SDLControlFramePayloadRPCStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A11856FDCCC57B69B91D3F4F8AAAE92 /* SDLControlFramePayloadRPCStartServiceAck.m */; }; + 6AAE591F718CA3C4EEA021C92023D5EA /* SDLAirbagStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 57AFA95624C62EA40DCF7A4A52DA2D26 /* SDLAirbagStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6B0BACE25CB2A25AA900691BBAA33280 /* SDLPinchGesture.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C2B7CEA902C141170ED3DB6E93DDE34 /* SDLPinchGesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6B4E6D647A87B1240984B511FAE34F84 /* SDLWayPointType.m in Sources */ = {isa = PBXBuildFile; fileRef = F347411CD5DA8210885B978CC14AB768 /* SDLWayPointType.m */; }; + 6B7709E582D650713411B7209028BDE5 /* SDLNavigationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 720B6176093F9F84BF6916A0DC55B8C1 /* SDLNavigationAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6BB44F106B80C0DB9846E5EFD1476F37 /* SDLStreamingAudioLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 41304645E4705DE8828DD0B01D402863 /* SDLStreamingAudioLifecycleManager.m */; }; + 6BD16DA220DACD38E212853FEF3CFC3F /* SDLNotificationDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D7871125148142044AD48FDD6D7511C /* SDLNotificationDispatcher.m */; }; + 6C2EF741FAF06B5B273480A4E83B71A3 /* SDLPresetBankCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7529E322A5D70F236ACC18A43FC1DC0A /* SDLPresetBankCapabilities.m */; }; + 6C38405A146F50D74FC39F597AB204CB /* SDLVehicleDataResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 53C9FB09310F3715EB6A1F8329DEA635 /* SDLVehicleDataResult.m */; }; + 6C55CF78347F53006F8826D260640D04 /* SDLShowConstantTBT.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A10D8B7901189488B952CD3118CD658 /* SDLShowConstantTBT.m */; }; + 6C5B7C4935BC2EE9F988FBCB42082F22 /* bson_array.c in Sources */ = {isa = PBXBuildFile; fileRef = C34405251FE0562CCA9FEA6FC884A66E /* bson_array.c */; }; + 6C95A689B7F1C67945E65FF4D8A64113 /* SDLGetSystemCapabilityResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = F1474259B2634C2CA09FBC4E9EC0F197 /* SDLGetSystemCapabilityResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6CBCD999A12041B09FA345EACCE7D67E /* SDLMenuManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E75F183917254542C99CC42AA2CC3860 /* SDLMenuManager.m */; }; + 6D1AF4472A7F9C1B0A8C9300D17B1212 /* SDLSeatMemoryActionType.m in Sources */ = {isa = PBXBuildFile; fileRef = E56DF2253BB23B90018E5D9A59964BA2 /* SDLSeatMemoryActionType.m */; }; + 6D2A18A8F43141760C979EA5865D5905 /* SDLSetMediaClockTimerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C44CB14CFDBEDB6BE91BBEE9F2AEBFF5 /* SDLSetMediaClockTimerResponse.m */; }; + 6DBB70DED9927270DE107BB855A6561C /* SDLVehicleDataResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A6077950B867FA52904D60977A57F2BD /* SDLVehicleDataResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6E2D4B80A9BADA0A13B7E8FC6F25DB13 /* SDLWeatherServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 2338435A2FBDDD2CFAB4A28B846695F0 /* SDLWeatherServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6E3D28A6C67E2201C10090F45C743AC2 /* SDLShowConstantTBTResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = F618C99CCA734DA992DC8FF3AF0415BC /* SDLShowConstantTBTResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6E6860F1FC4E478A4EA8239F823DDB59 /* SDLOasisAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = ABC42E73E04AA89D2638CE5E086A0BAC /* SDLOasisAddress.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6EE8571C87BCEC83176A0160B0235153 /* SDLKeypressMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 710DFC67FB36B6C8C38EE056D84223ED /* SDLKeypressMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6FA272F240EE747D4D5D69180A05B4A0 /* SDLOnEncodedSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = D2FECA407FF6E408DFFDA2B1B0C1992A /* SDLOnEncodedSyncPData.m */; }; + 6FCD89C21C9DABCA54C354123A05DA43 /* SDLPublishAppServiceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB2711FB405251BACF64A0A65EAE099 /* SDLPublishAppServiceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6FFBDADDDAF3EB0CAE0F592A4D57944A /* SmartDeviceLink.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C197364227C0998A9025317EAD699894 /* SmartDeviceLink.bundle */; }; + 703007E30FE5A04B2C59DE8467A15FD7 /* SDLDriverDistractionState.h in Headers */ = {isa = PBXBuildFile; fileRef = 60F046623D1338F618C008003CCE3C24 /* SDLDriverDistractionState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 703EDBB8AE959470D576A0D12F2108A7 /* SDLAudioStreamManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AFC9728863E515D3D032829F1D3C57F /* SDLAudioStreamManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 70496DDADFCF3EED7575045A94F3CE25 /* SDLSystemCapabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C320F686525DE123071E06FE38A4733 /* SDLSystemCapabilityManager.m */; }; + 704C315F529AF8A9C0D8A3956B143E30 /* SDLLogFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 034FAA8CE999DFA9139A4FF001EF3175 /* SDLLogFilter.m */; }; + 70641AFF8F162D96E9A8D15A25ED7DEA /* SDLAlertManeuver.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FC09BC7628BFAB7CD416C70D3F97726 /* SDLAlertManeuver.m */; }; + 70AEED633DCBAB9C33F9B4089A91EDB4 /* SDLGetInteriorVehicleDataConsent.m in Sources */ = {isa = PBXBuildFile; fileRef = BA017EDCE303A08B1FC07733F845ED45 /* SDLGetInteriorVehicleDataConsent.m */; }; + 70B31A172B881F2D7EC04BA2EC0D9440 /* SDLTextFieldName.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EE8C22DA5EFA161CCD704956C17C56D /* SDLTextFieldName.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 70CF8E2FDDEF2C0826A194D233D72DF1 /* SDLLifecycleRPCAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 560110B981BC4B6770CCD1C3367DB69A /* SDLLifecycleRPCAdapter.m */; }; + 70E0209B95ABB6721B429C455413E1D1 /* SDLLogTargetFile.h in Headers */ = {isa = PBXBuildFile; fileRef = E395B89F16DB085EDAA307A77151A4E9 /* SDLLogTargetFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 70F0649750C5E9DBD1AFA36ACEF458C8 /* SDLAudioStreamingState.h in Headers */ = {isa = PBXBuildFile; fileRef = E06E125B93E154B8A67C00E35CF0FB9F /* SDLAudioStreamingState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 70FE1E9B6DDA7F6EB3CC5F29BF782158 /* SDLSoftButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AD7C4BC8864B7BD4E88BB4E14571991 /* SDLSoftButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 715A7299FB24EDB0B8C8566CACF275EA /* SDLChangeRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = B85B6A3BDFE2C9C0F9DE2E3DEDFAF475 /* SDLChangeRegistration.m */; }; + 7182F43C32ED6456BEBC1055352D96D4 /* SDLFileWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = E2FAAAE33D2528754A3DCB84CEBD7047 /* SDLFileWrapper.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7195E044FEC69FB050E2E51AAB636AFB /* SDLEncodedSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B7CFE27E7FD5DFEDF19B5BF803548D /* SDLEncodedSyncPData.m */; }; + 721C6905B171EEA60C69F896DBE66D5F /* SDLControlFramePayloadTransportEventUpdate.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F2375B625B97F66D8E12F064F7521C3 /* SDLControlFramePayloadTransportEventUpdate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 723B98063F796F3A205BBF4D69D397FF /* SDLPermissionItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E7FB3AF5EB94225C574B017EDB897BA /* SDLPermissionItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72A5665F30946F50FF9A45AAE98D35BA /* SDLAppServiceCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 03156C93EE8442396869D907BBBF3E51 /* SDLAppServiceCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 73149802150251AC42CFCD9B3CDA96CA /* SDLTouchType.m in Sources */ = {isa = PBXBuildFile; fileRef = F15B9DBA698067E52DAF11F273D8C305 /* SDLTouchType.m */; }; + 733D59C10EE7B42B3E3775EE9945F3CB /* SDLHMISettingsControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = EDD01FD8321E8A489DCCF59E4DE051D9 /* SDLHMISettingsControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7363BD6E4C6F33855F2424FAF92C24C2 /* SDLDeleteInteractionChoiceSetResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 57F213F76C681791E8A6A44907FAD2A2 /* SDLDeleteInteractionChoiceSetResponse.m */; }; + 736B31E923657EA9F14B39C4D016E747 /* SDLMutableDataQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 0303F7A337A026665A7C2B1401481962 /* SDLMutableDataQueue.m */; }; + 73AA14293006489564B10EE55DB803BE /* SDLDialNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 03E209DD429BD45C838761E809185BB6 /* SDLDialNumber.m */; }; + 73B554D007A9561BFDB7FA5D9EC45AB3 /* SDLGetInteriorVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B33B4BD373DC2C35A7D1CB0AC87B3376 /* SDLGetInteriorVehicleDataResponse.m */; }; + 73B7133D90D85100D75563A8466B0FC6 /* SDLUnsubscribeWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D64070C063A2A910A459CAE2E7A4679D /* SDLUnsubscribeWayPointsResponse.m */; }; + 73DE5C4E84CC11C41F29013A13AE6B49 /* SDLButtonPressMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 042CAE65E8266BAAC2DA30FF0B6CED41 /* SDLButtonPressMode.m */; }; + 73E45E0082A8F8ED80CBD24FA3C77E09 /* SDLTTSChunk.m in Sources */ = {isa = PBXBuildFile; fileRef = A26B3309312952B2AED6A7ADA67DB6D9 /* SDLTTSChunk.m */; }; + 73E6D14C57A0B93C43FF9A9783852879 /* SDLTBTState.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BEA52EFF09F88D06D5BBDFE47ACB86A /* SDLTBTState.m */; }; + 73EE015CFC589C611F793F3F32B9EA6A /* SDLVehicleDataActiveStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E2B0AAB2CCBFBD6FAC8F2B04D2A0C31 /* SDLVehicleDataActiveStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 75A47F369EB4C9E2307C69986DB81EB8 /* SDLHMILevel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23817E0063BEAB1A48262BE111DF3256 /* SDLHMILevel.m */; }; + 75EDAD156F18E1031B3797F58D04BE56 /* SDLDeviceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = AE3A34EFCC4B7995EFC13CDFF7415942 /* SDLDeviceStatus.m */; }; + 7622141190322B2049CB7BFF23200BB7 /* SDLDeliveryMode.h in Headers */ = {isa = PBXBuildFile; fileRef = B054B7658B858C19F36D425B913FCA53 /* SDLDeliveryMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76A0F62D7F2B3A10ED98DDD5FA7E0D73 /* SDLVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 3ED13A45BA2BAA69E7C1CE75280162A1 /* SDLVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76F0CA06BFCC765F9E093AB4DAB81220 /* SDLChoiceCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 8223FE4A0640C2107CC1B1C83483D0F4 /* SDLChoiceCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 770CF2172153416F75DA8434CA9D0987 /* SDLMediaServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E17BE2717EB8E175D224175E94EF0C5 /* SDLMediaServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 771AD16C3C75E73480731E53C6EE5AF4 /* SDLLanguage.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AE79256F1FBD692C97BF6AF4A9AA8F5 /* SDLLanguage.m */; }; + 7771D6000CD81F2B8F910037ED770852 /* SDLLogFileModuleMap.h in Headers */ = {isa = PBXBuildFile; fileRef = E8FF631234AC949BCF5E7BA206039D09 /* SDLLogFileModuleMap.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 778128EA09DA2FB70F0756AF8C4DE0AA /* SDLSubscribeButtonManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F619DCBA443D3BF50D0B314A294B809 /* SDLSubscribeButtonManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7797ACE4CA0ECF8E48783A0F0F48B613 /* NSMapTable+Subscripting.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DEDB66DF7B774B967B556AA20105522 /* NSMapTable+Subscripting.m */; }; + 7797B6005DA53531D352BB960AE6EC19 /* SDLVrHelpItem.h in Headers */ = {isa = PBXBuildFile; fileRef = F0B8848BE9A446F837F0690DDED95563 /* SDLVrHelpItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 77E0636365C6ADFA34D3E1D40BD34575 /* SDLShowAppMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CC0536F1740B2347A3FDD9BE3712BAC9 /* SDLShowAppMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 783DAB48EBF9DF33D24A813007A16BAF /* SDLFocusableItemHitTester.h in Headers */ = {isa = PBXBuildFile; fileRef = 121CC19826232F3072AFD1D83D158A42 /* SDLFocusableItemHitTester.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 788BA682507FEAF11F09D62C9F14AC0F /* SDLShowAppMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B6A3BB418DC18D464B34AC1BAFE6451 /* SDLShowAppMenuResponse.m */; }; + 78F0AE09FA57809FDA2B8119391DF058 /* SDLMenuConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 299684AFB9A86A8651CE61038ED446F6 /* SDLMenuConfiguration.m */; }; + 790D4202C8608711D71DEFA479151C5F /* SDLTouchManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8558881F294FC3B3B55C638CC2708B36 /* SDLTouchManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 791627EAC8B4EEE54EAF063B35262F0F /* SDLRPCNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 797A684E702982C756DB5875D2568A32 /* SDLRPCNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 79578E59AD64D8003939313FE749F474 /* SDLNotificationConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = A4D3B69BC21E62BA98351B1E601DBE97 /* SDLNotificationConstants.m */; }; + 797330768E845F89F1FEDDE14C055440 /* SDLPerformInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 885A0F6D020A6CA40C779378E47D90C5 /* SDLPerformInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7977925ECE55E6167F6B1C6355277218 /* SDLTextFieldName.m in Sources */ = {isa = PBXBuildFile; fileRef = 925B5C5D259A10BE034E8C3403363C5E /* SDLTextFieldName.m */; }; + 79A1ED399F40324160E433A36A0E4DEE /* SDLAppHMIType.m in Sources */ = {isa = PBXBuildFile; fileRef = E9AE0633C881E09921808B99336A33CD /* SDLAppHMIType.m */; }; + 79DA7C2BA0454A250426F3F164EA4CBC /* SDLSoftButtonCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E39C12C56DA2895956477F555CACEAC /* SDLSoftButtonCapabilities.m */; }; + 7A5A4CCE72E7384F52744B4D7699A5DC /* SDLLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A5988CF4E97C39E992F5F38B97769ED /* SDLLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7AC571FC74816A8F25ACD12D756449C5 /* SDLShowConstantTBT.h in Headers */ = {isa = PBXBuildFile; fileRef = B36217DF1D67CB1D77EF190BB99F29EE /* SDLShowConstantTBT.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7AF166CD4FFF2B0EB623D07AC3B40770 /* SDLLifecycleProtocolHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C6D93D8E80998CD66E39C448733F9C8 /* SDLLifecycleProtocolHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7B087CC97B2A19EA9BE23929DCB45523 /* SDLMsgVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 39D9C69734E237DD22253CC4F5D9F863 /* SDLMsgVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7B5E3919628E4763AF44CA7EBCF7139E /* SDLSeatControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 55370BA933CFB6684AC8D5FD1954BD37 /* SDLSeatControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7B9A5F389E2CEDE6D1E9EAA1B30C5659 /* SDLImageResolution.h in Headers */ = {isa = PBXBuildFile; fileRef = 86B8AD55F292718C4A52B693B3EA5F2D /* SDLImageResolution.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7BA72342DFEA2FD8D0230A7D1114B0D5 /* SDLMenuConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 91F7EE2A199046AFC07A4EE31FA290E0 /* SDLMenuConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7BBDCA6FF69DCAB38A3475ED1949C260 /* SDLV2ProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 07B6C54F0471CF191AA538E250A10A1C /* SDLV2ProtocolMessage.m */; }; + 7BEFE01A2A2147EFBD6480EC899125F8 /* SDLTouchEventCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EF11EC23640091B05621565D114E9F4 /* SDLTouchEventCapabilities.m */; }; + 7C078A8F5DE31C7A59EEBAFFAEEE1229 /* SDLSeatControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AEEE89A8645A94795F0CCCBD4A67D43 /* SDLSeatControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C2914E90E64A052CD25A0C06B28FCE3 /* SDLLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B325B54245A4E4E8C66F6A001CF9340 /* SDLLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7C9F95F79CF45BFC8E03B0954D18CBB6 /* SDLTemperature.h in Headers */ = {isa = PBXBuildFile; fileRef = 481E981C3D01379187FF066BD3C0DABA /* SDLTemperature.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D3C32CE5AFD4BF1EAA006DE944B11D9 /* SDLLogModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9712AC0C44D0ADF928AA7E06E0017867 /* SDLLogModel.m */; }; + 7D3FDCF280500CFA08D4FF079F23EE53 /* SDLDeleteFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DC5946B04F71B3AB896F1E96200F9AF8 /* SDLDeleteFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7DB2DCC05E106A77EFE0A9672A8F9373 /* SDLPredefinedWindows.h in Headers */ = {isa = PBXBuildFile; fileRef = A7E6588DB6AB90B5A4E955365321B36B /* SDLPredefinedWindows.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7E1AB33ED4368698355849CC018E62B8 /* SDLCreateWindowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 34E7BCC2915FB3B8486062ECCDC005B7 /* SDLCreateWindowResponse.m */; }; + 7E22622570D54BD1940684C8878AD8EE /* CVPixelBufferRef+SDLUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = B1737F018C1201A37BA9F403EA0E0019 /* CVPixelBufferRef+SDLUtil.m */; }; + 7E254B51D45A6C9BA396DCADEFF5C2C0 /* SDLAmbientLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 64D9FFCA2DD46CA3C4112C71901478D2 /* SDLAmbientLightStatus.m */; }; + 7EF1FD8D20751CB663DA5DF3A69A3AD8 /* SDLServiceUpdateReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E5DFA275C99DF550A09B4DC823C5CB4 /* SDLServiceUpdateReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7F1BE10CD92530355AF15639B19E4C5B /* SDLRadioState.m in Sources */ = {isa = PBXBuildFile; fileRef = 12E2448D342B0C719508658356C62FD8 /* SDLRadioState.m */; }; + 7F580997F9720C55DD316BFD91C20488 /* SDLTurnSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 590C1C4982D954259C18E6BAF8EA15A0 /* SDLTurnSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7F84AC5D276982D92B3A9F817B40899E /* SDLVehicleDataResultCode.h in Headers */ = {isa = PBXBuildFile; fileRef = C57EE820C482DB351A5D22661395FD35 /* SDLVehicleDataResultCode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7F9DC4ABE8D601CA0A814F5C84BF0F71 /* SDLListFilesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D7B76D1D26F17C8DFCC609B03BB5F1FF /* SDLListFilesOperation.m */; }; + 7FC9E3671626AC556EA615AF090EA1E0 /* SDLPrimaryAudioSource.m in Sources */ = {isa = PBXBuildFile; fileRef = DC461630F2C6E45F81C3CC6B7D8BDD9E /* SDLPrimaryAudioSource.m */; }; + 8012681A7A1329501CC0D2C6FB41522C /* SDLPerformAppServiceInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 15626200BCC288FAB8202F84EAD600A5 /* SDLPerformAppServiceInteractionResponse.m */; }; + 8057D4C4047A1C456E6BFFA904469F2A /* SDLControlFramePayloadAudioStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = E75E53426BB1F8D06083AA6B092186F3 /* SDLControlFramePayloadAudioStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 80B64B933A7AF5423CCD493385F73D9D /* SDLUnregisterAppInterfaceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = AB95F07898AACB764288FB68551926A7 /* SDLUnregisterAppInterfaceResponse.m */; }; + 80B981D376B7AA3D80C491C8C6F4C465 /* SDLOnLanguageChange.m in Sources */ = {isa = PBXBuildFile; fileRef = CB073ABF5500F256EAF20D2D4DC6D70A /* SDLOnLanguageChange.m */; }; + 80C31DB7E8132BB5C12F3C7AEC99CE36 /* bson_array.h in Headers */ = {isa = PBXBuildFile; fileRef = C3C759E34418D5E3F059C76D2E9BD03F /* bson_array.h */; }; + 80EE893775E39EB4C5AD60C59D973BAC /* SDLAppInterfaceUnregisteredReason.m in Sources */ = {isa = PBXBuildFile; fileRef = D7C7F86F69CEA7AF2F36510A9E3ADF4F /* SDLAppInterfaceUnregisteredReason.m */; }; + 8139D9D6698265090BCCD8938F16A9A1 /* SDLUnsubscribeButtonResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 24EC57E64CE1C46DC722D87EDCCBE81F /* SDLUnsubscribeButtonResponse.m */; }; + 816906CF73001C8E4934FB8771610EDD /* SDLSyncPDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CCDAAE659DCA593607D4BF6558C25CE /* SDLSyncPDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 81C1D63EDAF3BD34054FF17FE620080B /* SDLPermissionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 63A7E80FD365C91A7303ABC5BE8B11F5 /* SDLPermissionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 81C464894078D0923CB734B498325E5C /* SDLLayoutMode.h in Headers */ = {isa = PBXBuildFile; fileRef = F0F72587391C1C5AB8C181F91DA3ABCF /* SDLLayoutMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 820EA879555877005F0F2585C7D91934 /* SDLLocationCoordinate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9401FE979F2F8AEAF58BE90F5FB0B075 /* SDLLocationCoordinate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 82244FCBDBC4DE2521484AA8076AD467 /* SDLPutFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 4525C34999BF5F6C1D46FE4471300796 /* SDLPutFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8282D5A46E55FB7731B772BC17EF7C48 /* SDLPresentChoiceSetOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D7BBACE033B0E506CA5830D0C9A67E30 /* SDLPresentChoiceSetOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 82BAE0EF80B27A362DDF3DC304D0F20A /* SDLIAPSession.m in Sources */ = {isa = PBXBuildFile; fileRef = ACE4B9AC146F03631EC52683B808D9D2 /* SDLIAPSession.m */; }; + 82C471FF3C4C36F6DED566A9F38DACC5 /* SDLPCMAudioConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = FF61F998914A5EB8F53759FEBD2416D2 /* SDLPCMAudioConverter.m */; }; + 82CFC44513CCB0B7C3DAB9499A777B37 /* SDLRemoteControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A5795C050E031087B37E6F0B8B99FE3 /* SDLRemoteControlCapabilities.m */; }; + 82DA35190CA47C0906DF3CF1F2275F9F /* bson_object.h in Headers */ = {isa = PBXBuildFile; fileRef = CCF1E88FAC247087B1D04D8DC970BE73 /* bson_object.h */; }; + 8328B9D04BFB65C0975608CCD290F129 /* SDLLightState.h in Headers */ = {isa = PBXBuildFile; fileRef = C57AA9193B116618556C40DAECF8CF3A /* SDLLightState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 832E56B087986F80B9F00C2A58DE0AB8 /* SDLLocationDetails.m in Sources */ = {isa = PBXBuildFile; fileRef = C1ABA54275646D92071529E1091B1333 /* SDLLocationDetails.m */; }; + 836439614BB958B33C815F337891A1E4 /* SDLControlFramePayloadVideoStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CD8B26768A85697E5937AC3887AFC5E /* SDLControlFramePayloadVideoStartService.m */; }; + 842A278FF6CA695AE140DE3C90FB6C09 /* SDLFuelRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BEAB10C4471AE448C7D5D75888C4D2D /* SDLFuelRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 84AEEB5BB746FD70224E608230EFB8D1 /* SDLOnTouchEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = DE194516542EC704AADE0A2FC32B63FD /* SDLOnTouchEvent.m */; }; + 8508CB2E94573CDD48B6B69A6C865C21 /* SDLPrerecordedSpeech.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ED5B47BF52A07A02D9AF9F3873C2C5D /* SDLPrerecordedSpeech.m */; }; + 85882347D6B6966362786872D21D1889 /* SDLPutFile.h in Headers */ = {isa = PBXBuildFile; fileRef = F62DC0A1FB87B2CE3F9928C0AC3BA403 /* SDLPutFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 87265B55E2D27269A551AB06B0D834E1 /* SDLOnAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = 565121A4F57AC7B9E0FFA044BC680BAB /* SDLOnAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8757369831E7EF6DF27109FDDD773FD8 /* SDLServiceUpdateReason.m in Sources */ = {isa = PBXBuildFile; fileRef = C23EE35725C46B65EF548339396EBAE4 /* SDLServiceUpdateReason.m */; }; + 8791415B6BA285019F93446711CFB890 /* SDLAirbagStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 12FB6C12FA7C56F07A058C648B52AA9A /* SDLAirbagStatus.m */; }; + 87A35022E373D35D80B39F53F6371307 /* SDLPublishAppService.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A91F9EA62F0075F9ACCFF6B6F7FA96E /* SDLPublishAppService.m */; }; 87AC6CA51E70B12C479133AC047D6AD0 /* Pods-MobileWeather-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E7A92F6F5DF51067E86A63E8CD1EC5C /* Pods-MobileWeather-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 88055DB6523505C026A7186A042B0A19 /* SDLIconArchiveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 7271B5F541D7EA6BA5478DFBDD079C30 /* SDLIconArchiveFile.m */; }; - 8915858705EA72AA41C1956BB876A8A1 /* SDLGPSData.m in Sources */ = {isa = PBXBuildFile; fileRef = A9E5A8AA97EA88C0C5010827AA38639E /* SDLGPSData.m */; }; - 8927C69D5DD6678A506F11A6E5004CA4 /* SDLGetVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = AFF9F053405AFE53208F5AF054964C4B /* SDLGetVehicleDataResponse.m */; }; - 89C7621F6C964ED4A80F6EDAEF5508C1 /* SDLLockScreenStatusManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 322553C18D16DC8359FEAAC9FC09B82A /* SDLLockScreenStatusManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 89F186632F6D84F43B5C85887FB6BF32 /* SDLDynamicMenuUpdateRunScore.m in Sources */ = {isa = PBXBuildFile; fileRef = B8C8AC93E9BA7751B05993A0779C952D /* SDLDynamicMenuUpdateRunScore.m */; }; - 8A14D6E4EE2461D75FAF5D8B9BEEDE4D /* SDLSendLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F06DFF88342148FB4F6EA0481D909CF /* SDLSendLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A468CCE4EA458EED9B48499F95B50C9 /* SDLStreamingAudioManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F0D8AB40C82029C65CEECC77D7D8C1A /* SDLStreamingAudioManagerType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A6BB66B60FA045F1595512D6C0499B1 /* SDLPowerModeQualificationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 678F1D8B5E1A5F63E7E494C394BAD3AA /* SDLPowerModeQualificationStatus.m */; }; - 8AC6D618D2B7B9D4C8336DCE6D260BD2 /* SDLCarWindowViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B0DCC93C381CC643F45864405E55E958 /* SDLCarWindowViewController.m */; }; - 8AD486A4ADCD0FF1DAF25B7345927219 /* SDLLogTargetAppleSystemLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A8807AD416E6BB85AFA2FF648C9ADFD /* SDLLogTargetAppleSystemLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8B60E0077AA57B200EE99D7969CE5725 /* SDLEncryptionLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 408658D7DB613F01047698ECAE093D90 /* SDLEncryptionLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8BE60469ACDDAE2C4D3125B9CC07C1C9 /* SDLChangeRegistrationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 84C5C4D0E7C8575BB285D8DD30E89F56 /* SDLChangeRegistrationResponse.m */; }; - 8C03788689B6BFF34AA7FDE462B5E83F /* SDLFuelRange.m in Sources */ = {isa = PBXBuildFile; fileRef = FCA1A0BB75E977F6C47C984A7E0B7329 /* SDLFuelRange.m */; }; - 8C340626051AFB39A7A54148ACAC7B83 /* SDLPCMAudioConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8E77F2592BA2AADA9952C6A050C4E2 /* SDLPCMAudioConverter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8C443CDAE7BE73B240DF7DF391CA1950 /* SDLTextFieldName.h in Headers */ = {isa = PBXBuildFile; fileRef = 76849B1E655537F0605C6BABA3DBCE8E /* SDLTextFieldName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8CE0DA79C4FDC864AE221A3E92471547 /* SDLFocusableItemLocator.h in Headers */ = {isa = PBXBuildFile; fileRef = DEDA2F4C7E4A828FFB91244C19F756D0 /* SDLFocusableItemLocator.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8D061CCDAEEC859B14DA87086D16829C /* SDLGetSystemCapabilityResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF24E18157165E29DE67C839ABF0DF9 /* SDLGetSystemCapabilityResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8D61AE766EED51AC232160F87E00B811 /* SDLSequentialRPCRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F45A44BD6C12AA0EB5B0553231CD72F4 /* SDLSequentialRPCRequestOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 87B3F3A88241E01AB0FACBDFC3593F9A /* SDLSliderResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 62C0442C9E0D051B0310BB29437BC90B /* SDLSliderResponse.m */; }; + 88C588D8E3BA8DCFE6492D8A84C27955 /* SDLControlFramePayloadRPCStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = 4534A47F55F401B4F9461F6E133F8C1D /* SDLControlFramePayloadRPCStartService.m */; }; + 8924FC0582CB6B6236BB6905FE65176F /* SDLRectangle.m in Sources */ = {isa = PBXBuildFile; fileRef = 269BB207FFE8AA6F46208486DEE9BA3A /* SDLRectangle.m */; }; + 892798392921AA060D0A363863972910 /* SDLVideoStreamingFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = C9F308B39068D7126A74593F5FF3DEB4 /* SDLVideoStreamingFormat.m */; }; + 8940DF96E280A683D1AE6F0C516558CB /* SDLPrerecordedSpeech.h in Headers */ = {isa = PBXBuildFile; fileRef = EA74E73DE00325097C89E066596A17F9 /* SDLPrerecordedSpeech.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 896B434043508082AF277D789CFA2BBC /* SDLIgnitionStableStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A23C49669583356A1CE449D9EBC74DB /* SDLIgnitionStableStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 89712DE1E205AF44BB30F36CBDB31118 /* SDLEncodedSyncPDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C7A37EAF43721950F29116483BA4DA7 /* SDLEncodedSyncPDataResponse.m */; }; + 897E5513A347BC1E367CA9F2C1F941CE /* SDLSubscribeWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = 63E7D4AB6E3E4F7AC84C60288E5D41D9 /* SDLSubscribeWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 89CF0DFE01D957DA8527799ABE3B1FA8 /* SDLTPMS.h in Headers */ = {isa = PBXBuildFile; fileRef = 194A205E3D3AB6329814281A5F801855 /* SDLTPMS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 89DE45CB97C1845FCAAF7B83E9D03F58 /* SDLParameterPermissions.h in Headers */ = {isa = PBXBuildFile; fileRef = E7ADE67ACC724F1B63A80B9A025AA67C /* SDLParameterPermissions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 89EBC07A9931E19A0D7CE8CCFC9E196D /* EAAccessory+SDLProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = 583045D48F0608C0A7B71AE4D7666158 /* EAAccessory+SDLProtocols.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8A0217E86ABB97C151485BEE6A05C9B3 /* SDLDynamicMenuUpdateRunScore.m in Sources */ = {isa = PBXBuildFile; fileRef = 61826AE009D0EFACD0702CE842CA700D /* SDLDynamicMenuUpdateRunScore.m */; }; + 8A3EFA26C9A85C5A9BCF353A99C5AAC0 /* SDLLockScreenStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = E66A988442959BA4FF4EA6712EB679BA /* SDLLockScreenStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8A5C8F87E4D7A32CC93B2DC1C6A322DC /* SDLRadioBand.m in Sources */ = {isa = PBXBuildFile; fileRef = 43D14531D9A7ED9C7FBFA6F900E02E1D /* SDLRadioBand.m */; }; + 8B0432997DC6DA829148948220731193 /* SDLRPCMessageType.m in Sources */ = {isa = PBXBuildFile; fileRef = 32F90AB5741CFF9D0E0907CE26FD7A62 /* SDLRPCMessageType.m */; }; + 8B423DDB671A45A561C24D5ADEBB8D17 /* SDLMenuCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 50189BAC7FFDD4590A653D15F6445710 /* SDLMenuCell.m */; }; + 8BCD8952EB9E93BCDCF52A6BBECB921A /* SDLSendLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = D9FE9E92F26E2D6ED7FF95DF199E8CE4 /* SDLSendLocation.m */; }; + 8C042DE95ACE95E73BDFB610B4E8E73C /* SDLMediaClockFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 755D72CFBEC566638C5F451190E126C8 /* SDLMediaClockFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8C5CBA98BA079CB5DB372F9795C00402 /* SDLAlertManeuverResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = AEB84A7714266B9D07AF0529C3361737 /* SDLAlertManeuverResponse.m */; }; + 8C5DEC040B352CB525F66B45CD5E8748 /* SDLRequestType.m in Sources */ = {isa = PBXBuildFile; fileRef = 4120946CE7AB246EF162C99558A3845D /* SDLRequestType.m */; }; + 8CF4F12468C7886C63A1ECDD6791C936 /* SDLListFilesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F72C939EDB942180ADF30F6AB0ADC7AA /* SDLListFilesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8CF98996F8D5ABE5A8593471D349367B /* SDLH264VideoEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A14F3582266D6F7B75BA4AA85218D3A /* SDLH264VideoEncoder.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8D0B79BE234C74A8E6FCEC2B7AC0C0EC /* SDLUploadFileOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2483492441C4BEB1F8A9B82BAC067681 /* SDLUploadFileOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8D4AB4E591716291BBAAF6ED6158C334 /* SDLControlFramePayloadRegisterSecondaryTransportNak.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EBE26A5E99C203ABB63EB5567F7464E /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */; }; + 8D4F4377C8B41695F73334FA8DF62670 /* SDLEndAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = F8EDD51E7C160D973CB9023C262ADF2E /* SDLEndAudioPassThru.m */; }; 8D6461D76103F1285DA80188D7295EE9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */; }; - 8D65C40824DFE60D525CED2C023A0F7A /* SDLLifecycleMobileHMIStateHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C902D9277607A16626B5FEB6FC12BE6 /* SDLLifecycleMobileHMIStateHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8D8A4A26C3D88C9A288A0BE158F5AECC /* SDLInteractionMode.h in Headers */ = {isa = PBXBuildFile; fileRef = E3FF43EE6114A0D361EE11A38FA91FB1 /* SDLInteractionMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8E80CC5191B3799B9446E341E7A1436F /* SDLRTPH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D75BCCCC055F72C4B46F1FF7ADE460C /* SDLRTPH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8E91351C40B6D32DD0C621B1E1F0ED58 /* SDLWindowCapability+ScreenManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = E6F7F96110B8644ABA5E6DE312BB0D7F /* SDLWindowCapability+ScreenManagerExtensions.m */; }; - 8EAC634A23B80D6CD82059550A5F6A95 /* SDLOnInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 682C1E866A0552DF161B4CA6BE8C02BD /* SDLOnInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8FB139DC468B629C24AE83DDCA703344 /* SDLObjectWithPriority.h in Headers */ = {isa = PBXBuildFile; fileRef = A83D74392A8FBE5A5BBCC7D29249B943 /* SDLObjectWithPriority.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 900DA1DA0A234DAD380424C769E4DEB4 /* SDLGetCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = C3F129DBFD0A6763197FE363BF2CE288 /* SDLGetCloudAppProperties.m */; }; - 90134E4A78B41A1419B50CDD40E9853B /* SDLScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E994AA0B434ED590CB3CEBE77F7F72F /* SDLScreenManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 90410C380CABA5FB3BDE928DBFFE5296 /* SDLRadioState.h in Headers */ = {isa = PBXBuildFile; fileRef = 199A9F6B336A337B69923DC5C5B8543F /* SDLRadioState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 90C56DC843F06A3447BBF31BD8347720 /* SDLButtonCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CA15BB34449EB60AC4245F6669B10C /* SDLButtonCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 90C967F20ED1D42E7E4EF18EBCE60915 /* SDLDistanceUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F8B26301962DAB3A218E94BBF267589 /* SDLDistanceUnit.m */; }; - 90ECAE46CCBED46C36E8BB36C3A8B080 /* SDLLockScreenRootViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D37716D691664883B517AA8C5B0D4D48 /* SDLLockScreenRootViewController.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 911746B423568C0733997FC634BAEDFF /* SDLStreamingMediaConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 0050DA0BCF8282C74B54D6A62D359073 /* SDLStreamingMediaConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 91957F0442555A51D28E6AA37FBCC7A6 /* SDLVideoStreamingCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F45435EC8D3A8BC571D18035BCFCC2 /* SDLVideoStreamingCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 91F691863F419908423A46BD4884281D /* SDLBodyInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 994CECE8A7C71DE7FD91078E6AC4AF7F /* SDLBodyInformation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 92238BCEA4DFDFAA71A87191E4ECD566 /* SDLGetFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B104772AA6E58A9F090818DD41BA3D7 /* SDLGetFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9227D349F178FA9A6CB03E7C9D7371D7 /* SDLGetAppServiceDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 86B7CD8697FB29C377FF70D301A9BE51 /* SDLGetAppServiceDataResponse.m */; }; - 924C9E71DB2A227D30317E0D51B3E29A /* SDLTurnSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 57D658C85ECE3E69E79BB2FABFE5E487 /* SDLTurnSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 926C8094DD82B05E32B533990D9085E0 /* SDLRPCMessageType.h in Headers */ = {isa = PBXBuildFile; fileRef = C336638C51C89E3892AB1E786D8D97A6 /* SDLRPCMessageType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 927C947F095CE2F08573FEBABE2EF00A /* SDLTemplateConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = AA9CE864FB36C4F19622600C8C289B7C /* SDLTemplateConfiguration.m */; }; - 9284A3475A6E66F94C10D23DFD34B2E6 /* SDLClimateControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6235BA14F1F7044B98188F7FACCFE4C8 /* SDLClimateControlCapabilities.m */; }; - 92ADA69AC48C7B62950700FD91DE0207 /* SDLControlFramePayloadVideoStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = 25831F0759C377A291230FE1B42725AC /* SDLControlFramePayloadVideoStartService.m */; }; - 92C3ABE638A331C03AD29E1AAF919E66 /* SDLProtocolMessageAssembler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4594CC3FF1671BC10D8439D6DD794F5C /* SDLProtocolMessageAssembler.m */; }; - 93415208EBEF817C98ADBD5036CA1B2E /* SDLDeleteFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 69EB1D090E106984195E7886C58C910C /* SDLDeleteFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9388E820E8565F9117CDF46D2C2C107B /* SDLModuleInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3ADF6F4E6226B439753C2A759A9860E3 /* SDLModuleInfo.m */; }; - 93BD8B81C51CE40CB6A05AE7AE074C1A /* SDLSISData.h in Headers */ = {isa = PBXBuildFile; fileRef = B66ACED6C9FBD518D39C8CDB3849E983 /* SDLSISData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 93BD94B217E901E1EF481553053C6098 /* SDLHexUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = DBE7466B721D1E6A2BC31A2D5D2D8124 /* SDLHexUtility.m */; }; - 93DA28C985C4ACFB75AE57626D5206B9 /* SDLRPCNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 873FE0283FBF8E45FCF48C1242A364F2 /* SDLRPCNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 941FB36D28F8570C928318E6E2B285E6 /* SDLLockScreenStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = BDFE84853600B6F6F43B3F05550C2D91 /* SDLLockScreenStatus.m */; }; - 942414A05FF809E21FB3DB012A624EF4 /* TestSubscribeButtonObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A5AD3441FF3C7D1A42E2F592EC01E42 /* TestSubscribeButtonObserver.m */; }; - 945C1D3E2B5E534A1DCBB20F9207C238 /* SDLDeleteFileOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 10932B52AE70AF095B0197772101BF9E /* SDLDeleteFileOperation.m */; }; - 94CD4C275A0079DB1B44313AFB8C9157 /* SDLAppServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 57F1282A6F2ED03A5614C9C2B2DAAF2D /* SDLAppServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 94F5B9443E54B16196DA24D8D5BDFE20 /* SDLPredefinedWindows.h in Headers */ = {isa = PBXBuildFile; fileRef = FB3EB42F4E00D78C3E9D2EAB0CD56A65 /* SDLPredefinedWindows.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9581012BA1BF244C1798CC9F0F8FD912 /* SDLIgnitionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 76AA2E78DDBD9125228F85316E09095F /* SDLIgnitionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9585BEED50A4D422F43BF6EDAE401D14 /* SDLProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = C93964422ECEFB35C0A15E1AC214E587 /* SDLProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 95B5F07BEBB763878CE72E1B28008DA4 /* SDLStateMachine.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D74AD8B5D8CFF4297D85C83D4BAD091 /* SDLStateMachine.m */; }; - 95D89B876490D16D030AA0D34B6A405C /* SDLImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B5DB19512329465920F68B50C253776 /* SDLImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9603A9FB3A51776C2FAB23573513D478 /* SDLSetCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = B43FBF384A4067786E679B690EA2BDCE /* SDLSetCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 962B115D078E230C22DA4E91AA804C82 /* SDLLogFileModuleMap.h in Headers */ = {isa = PBXBuildFile; fileRef = B051F7FF13D4892208EA8EDC154E67C2 /* SDLLogFileModuleMap.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 962D1254984FEEA395E1C5D203BAE7AE /* SDLListFilesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 23D8613239E013C85A55566B014E652F /* SDLListFilesOperation.m */; }; - 966C2B23020D23A8D78F9953BF04589D /* SDLKeyboardProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A695B3A3F27221B6CBE669925E43199 /* SDLKeyboardProperties.m */; }; - 968CCBFF41DD6AF7457D8CE38CB12715 /* SDLRPCRequestNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = C2325615A6C0BEAE35B68E675087D313 /* SDLRPCRequestNotification.m */; }; - 96A470701A4EB6AB6BF58852B32BC224 /* SDLAppServicesCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 821880E4A2BC5BEF5F42B7CCFF64AB9D /* SDLAppServicesCapabilities.m */; }; - 96D889E335AC9CFF1639A13B0BF18736 /* NSMutableArray+Safe.m in Sources */ = {isa = PBXBuildFile; fileRef = 72A24826CB06B3C74BFF1FAC64D33A17 /* NSMutableArray+Safe.m */; }; - 96E61C55BA1EECD3A1E4775D8B3FD9B0 /* SDLSystemCapabilityType.m in Sources */ = {isa = PBXBuildFile; fileRef = AB9A647494B575CFA5ADA8C3FEC415DF /* SDLSystemCapabilityType.m */; }; - 96EED05BD75DD6497FF959D93C46E53C /* SDLOnSystemCapabilityUpdated.h in Headers */ = {isa = PBXBuildFile; fileRef = 2845FF7035CF7F607706E501DB44DE7E /* SDLOnSystemCapabilityUpdated.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 974F61EC8063CE5073BACEC8FB26D73C /* SDLAddCommandResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C42BD5083909F2F176B3762128DD9B06 /* SDLAddCommandResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 97FBF30CCEA2FD94D7297C91E5D8DE21 /* SDLAudioStreamingIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 808FA370A600BD6F4DF9382F215445CF /* SDLAudioStreamingIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8D96B70D023F440340BE44A4E7FEAD66 /* SDLGetCloudAppPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 78FE8C97F350096089415B007A7C9167 /* SDLGetCloudAppPropertiesResponse.m */; }; + 8E4A9699872B71DECE53A3A947A70EFD /* SDLHMICapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CE844466F3EDF16CC0981DA495566991 /* SDLHMICapabilities.m */; }; + 8F1D97A10A4CD8C000AA88F803250671 /* SDLStreamingMediaManagerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 9685342C1846C658E601FB8B352C69B5 /* SDLStreamingMediaManagerConstants.m */; }; + 8F79C57B48BD48C9C5C9CBDDEE4FA12E /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F36F6895EC63F83831A850E7A3837B9 /* SDLControlFramePayloadVideoStartServiceAck.m */; }; + 90AA1C0CCC283A6883424274A5289F60 /* SDLSeatMemoryAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1845BF083AE4ED65CD2A0C2493883D93 /* SDLSeatMemoryAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90B132644819CDCFE3C4B8B316C0980B /* SDLBackgroundTaskManager.h in Headers */ = {isa = PBXBuildFile; fileRef = BEA81FC17FEEBB29EA50A437D78643CD /* SDLBackgroundTaskManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 90E54FF893D72AE14A79C43840493828 /* SDLListFilesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7744F0C66582742EF55FA411E81338 /* SDLListFilesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90F8E628A253894A60975451EFD100FC /* SDLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = BFF07975F02BE7BDA5311F3AD80E5CDA /* SDLProtocol.m */; }; + 9108B6E2D3167C1881C88BA53125294E /* SDLHMIPermissions.h in Headers */ = {isa = PBXBuildFile; fileRef = F10B8AB7BDA6627AA906D8076EACAE16 /* SDLHMIPermissions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 919DFEBF8B0A1266AA42C4DB2B0735AA /* SDLRPCResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FA34FAF6769FF6E67146C25E3918D1BE /* SDLRPCResponse.m */; }; + 91C37B3813B051EFF69A023933848154 /* SDLTouchEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E046E87DA6D8162BC3CF15D53AF5F0C /* SDLTouchEvent.m */; }; + 9250B505D81DEC59872413A95BEAB844 /* SDLHMIZoneCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = BAE82B84E1601BFF59D0A736CDEFE053 /* SDLHMIZoneCapabilities.m */; }; + 925AF3168A7110110C9DAF79D5C00386 /* SDLGrid.m in Sources */ = {isa = PBXBuildFile; fileRef = FB292819C30F7CC71BE8B0A31B91068D /* SDLGrid.m */; }; + 928086E89A6C7D79AF499C3E12F411D3 /* SDLSoftButtonType.h in Headers */ = {isa = PBXBuildFile; fileRef = 98E0B47ADD51DA93F0FC18C094035A10 /* SDLSoftButtonType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 929ADD71B64CBA1ACDBA88FA86B27B5D /* SDLButtonPress.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A3CC4629A17A1D6F3FAEC259BA87C31 /* SDLButtonPress.m */; }; + 92B358063BF2D4E4FBA527CFF06F0060 /* SDLDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = A295FC118C7C689512C3EE0C5BEEA414 /* SDLDeviceInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 92E669ED90ECE510D2704648AEC3B87B /* SDLModuleData.h in Headers */ = {isa = PBXBuildFile; fileRef = BB3973D6F3986950AA95D58E21EA4849 /* SDLModuleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 92FCB943F695195618F753813F97E249 /* SDLRPCStruct.h in Headers */ = {isa = PBXBuildFile; fileRef = D59096499EC97E026ECAE9E71C7E6DE4 /* SDLRPCStruct.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 930C00002E462F22EC9F0A811A3BC48A /* SDLMassageCushionFirmness.m in Sources */ = {isa = PBXBuildFile; fileRef = 56348A384ADED81FB3086D9B75D54306 /* SDLMassageCushionFirmness.m */; }; + 9320B7839548C10A540A2FF853A9DDF4 /* SDLTireStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = BDC78482302FF8AC794EE8765A179282 /* SDLTireStatus.m */; }; + 938ED6E03E70AEFFE50F57C66AE7C77D /* SDLScreenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 13180087A895C1F6E63F9F01F333ECF1 /* SDLScreenParams.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 943BDF0A57AB9536CF0CC6D1E1C51D14 /* SDLCancelInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DAD96E48B6521B50D315831C92D08A4 /* SDLCancelInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 948E7F11C00F9CC8161C026A9EEC54C1 /* SDLIAPConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 1878E365B1431D16CB7D13B067382A01 /* SDLIAPConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 94B16494699CA8D318680A2E935156A9 /* SDLDeleteWindowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 09596899A697F08A6B73A7F8DD24700D /* SDLDeleteWindowResponse.m */; }; + 94FD5E6BE1C4A20B1C87E81487731621 /* SDLScrollableMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 2778C8EDF4959730B4DEF535ABC16675 /* SDLScrollableMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9572650EBB7B2B8D936F2844DECB03E6 /* SDLCarWindowViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EA76282753B31122B78D182BFFE41253 /* SDLCarWindowViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 958BA35B1D729FDEF31741435AE32D47 /* EAAccessory+SDLProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = A875209328BA108883DB60F79AA77ACF /* EAAccessory+SDLProtocols.m */; }; + 959EEEC7A5E91DF4108F9BE317930100 /* SDLUnpublishAppService.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BD7935852D12459264EA6168F97B4D /* SDLUnpublishAppService.m */; }; + 95B632680000864684FC326A77E81490 /* SDLAudioType.h in Headers */ = {isa = PBXBuildFile; fileRef = B0659086D16C101E4B3240900C7412B1 /* SDLAudioType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 968D8990CE7A5931F68A82AFFAA76416 /* SDLGetVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E0482F1FF68E1DE5D306B4F4B9D57CC8 /* SDLGetVehicleDataResponse.m */; }; + 96B3A64C13C755BF2344A019F3BD7564 /* SDLHMIZoneCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A352F773B0D24E76E0DDA51D741F4F4 /* SDLHMIZoneCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 96ECD4F7CB098FCFE884F32CB2CA407A /* SDLErrorConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 04C4ACFBE0F5E7AA0EB2EDC5D718F443 /* SDLErrorConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 97552846A61ABE9D89635D411CF6886A /* SDLEncodedSyncPDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = A47AC218EDD3DC3F3FF2978AEDCF2E78 /* SDLEncodedSyncPDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 975B822DBE1D9BBE04F01841DE7F9A50 /* NSNumber+NumberType.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8AB9952510177705B3F01E462FE897 /* NSNumber+NumberType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 97987F32A35F3BFEE2A7EE14ED37B862 /* SDLEncryptionManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 55244989E8038AB58D5327F3F2477E52 /* SDLEncryptionManagerConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9807627F3863B4F0B8478AC7810C3ED9 /* SDLComponentVolumeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = C0F9B31189558811D7A53ACF37EC44D9 /* SDLComponentVolumeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9823B5569DCFBA54362B5478B81102B5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */; }; - 98A982A0D23CBE76B4B9481EBC5B7DCC /* SDLLifecycleConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 21FF3C3DE15BAD7345BC1A9C2B469984 /* SDLLifecycleConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 98D8C81B899984A0E7968B41F0F0031D /* SDLArtwork.m in Sources */ = {isa = PBXBuildFile; fileRef = C3EBAD2DFAF1E748D9CE7A71A8F7ADD2 /* SDLArtwork.m */; }; - 9907162460264A1E3245E22EAE049630 /* SDLNavigationServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = 50FA0F82B0F0FD360E29F2AC0D2F05D1 /* SDLNavigationServiceManifest.m */; }; - 994A5BCDA5C0EC5C5712514EBCFE024D /* SDLControlFramePayloadConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AB0EFA70338ECA876CAE278CBCEF17D /* SDLControlFramePayloadConstants.m */; }; - 999FE86F3A5166111487B9F4C4519044 /* SDLWeatherData.m in Sources */ = {isa = PBXBuildFile; fileRef = 69C08735FF330FCAC39AB5054B9E06AA /* SDLWeatherData.m */; }; - 9A3BC4EF0F8485DA14F489A5336420B4 /* SDLLogFileModule.m in Sources */ = {isa = PBXBuildFile; fileRef = C3BEF3FC0B61392A43041463481D99DC /* SDLLogFileModule.m */; }; - 9A4099CB0E977922DCD215920D51E6EF /* SDLVehicleDataNotificationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 544D38C68F8828FD1E9856024D36B44D /* SDLVehicleDataNotificationStatus.m */; }; - 9A48AC603DDEF5B24BD4076C2290AFC2 /* SDLControlFramePayloadVideoStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = CE545916C7D8D475FB552FAAE7AD0286 /* SDLControlFramePayloadVideoStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9AC6194F046D6E9C2F0E69C0D8C0AFE3 /* SDLOnSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 86206B1B96CF24D8B99B4EE97C44B185 /* SDLOnSyncPData.m */; }; - 9AFEB611162042E0D236BF151AE0A572 /* SDLPerformInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 95FF4C52E66589C119C22DF3909390AC /* SDLPerformInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9B53BF4496D9FBFEB94AC0F5A27DD92F /* EAAccessory+SDLProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = 17D87C03746D4C019B47395971B49753 /* EAAccessory+SDLProtocols.m */; }; - 9BFCD1634ABB1FFE13CFD4447FCE9CB7 /* SDLConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FA1E34ACCBDEF2099EC4469F2405BBB /* SDLConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9C447D1F8CC18ED9C81322538C5D8745 /* SDLRadioState.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FFAB5BB716F6C328E6A31CC62B4B11D /* SDLRadioState.m */; }; - 9C5BB601A65D77A59756F8DA0CA60A4C /* SDLV2ProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = B96A1767D28449410C3C9A92255D7FA9 /* SDLV2ProtocolMessage.m */; }; - 9CA1C5D540B6F8A9D15AE08E08F282A8 /* SDLTPMS.m in Sources */ = {isa = PBXBuildFile; fileRef = 842712B0CDF8A50C05707074C6B3E1BE /* SDLTPMS.m */; }; - 9CB6CCA60A7BB877BEA0851591D86AB9 /* SDLKeypressMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 157D461716A9EC90AA0014DEAF19F1BF /* SDLKeypressMode.m */; }; - 9CC23329ACF6AC45A3CD5927CBCCDB70 /* SDLMaintenanceModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 9356A9B7DF203B1E599FF67CDB2AB2F4 /* SDLMaintenanceModeStatus.m */; }; - 9D4F3D442A1E6B6D5616F9E28EEBCBCF /* SDLVehicleDataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A703348831CBF1811100C05D2D7FC44 /* SDLVehicleDataType.m */; }; - 9D59CA4C3A29F154C87BF4F144F0304F /* SDLSeatControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E948ADD47AA0D93F041A0773607D8D6 /* SDLSeatControlCapabilities.m */; }; - 9DA7510D35653DAB61574EAF7CD41A60 /* bson_object.c in Sources */ = {isa = PBXBuildFile; fileRef = 956785ADB6C5C07C0C429DA47DA59E4E /* bson_object.c */; }; - 9E3DC35284B0EF19F839FF0F7045F243 /* SDLWindowCapability+ScreenManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F7A94FC00388D92F20C90B87BE945C /* SDLWindowCapability+ScreenManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9E6083DC34FA4DC0770B8119699D96A4 /* SDLVentilationMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 372472FCDD67DFC4CADCCC7B18520B62 /* SDLVentilationMode.m */; }; - 9EAA1FB46BE08D3EF32659A6DC6924E3 /* SDLSecurityType.h in Headers */ = {isa = PBXBuildFile; fileRef = 1580E808E8B8B029807BCC9320D098D6 /* SDLSecurityType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9EADD154CDB96A0D1B3E6E5382EC6E74 /* SDLDeleteWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 809D3FC9668359BFD1AD77E50506EFA2 /* SDLDeleteWindow.m */; }; - 9EB265F8BCAA7305BB4F1A09C414F989 /* SDLNavigationJunction.m in Sources */ = {isa = PBXBuildFile; fileRef = 60E560ED9A603C1EE72D1DC626FC9DA8 /* SDLNavigationJunction.m */; }; - 9F2F8E54F7ABE7EB152CF5017ED25735 /* SDLDeviceLevelStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E839A485728E494163C610E5F436EA9 /* SDLDeviceLevelStatus.m */; }; - 9F30B639E559F0B7DD77042DE4A3304E /* SDLVoiceCommandManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B476612D209040FF1C5E1D9D7D7DC068 /* SDLVoiceCommandManager.m */; }; - 9F3B8143751BFE86CD8EAA6F4AE05B8C /* SDLStartTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E2E8F901CA5F0F91FB51345F05D3027 /* SDLStartTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F921520417BF771C9E3891A5EF5430D /* SDLECallInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = F0851AE5D79F77344448BCED157FDBA1 /* SDLECallInfo.m */; }; - 9FA55423485F9631453E7AB46E9C4089 /* SDLButtonName.m in Sources */ = {isa = PBXBuildFile; fileRef = AD2F8C7E3E2CA2E54A878E1804C6819B /* SDLButtonName.m */; }; - 9FF51D0DFFAEE08A3ECA62113D394DB1 /* SDLAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 545945C37CA202B7C89B0BDB939DF95C /* SDLAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A00752000D6758411D62C24B0428BC3F /* SDLStreamingMediaManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C4251A6C0C3D88AFE2E87AE0572B7B32 /* SDLStreamingMediaManager.m */; }; - A07C3309D375FBFFB0B9076DE461F26C /* SDLMyKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 98FDC0A54C018DFA5E057249D1EDF737 /* SDLMyKey.m */; }; - A089C16C74635B52EBC65729AF6EBBAC /* SDLListFilesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 633E599F3936F7344FB0DBA1DB5127C1 /* SDLListFilesResponse.m */; }; - A13DA9493AD1940DF8E4F7C2929B710E /* SDLLightControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BF96D4C2DA598534A4D8326D5961403 /* SDLLightControlCapabilities.m */; }; - A14201E05A5F23717A4AF5E21AC4404A /* SDLStaticIconName.h in Headers */ = {isa = PBXBuildFile; fileRef = 16E0FE4610CAA939B208269D597C2BBF /* SDLStaticIconName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A16DD1665116466714C5965E5600EB3B /* SDLMassageZone.h in Headers */ = {isa = PBXBuildFile; fileRef = C9703269E7ADB6FFB0BAC46F741BF3E1 /* SDLMassageZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A1AF3C95FF46B13F93DA0EDFF0C63FC0 /* SDLLockScreenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 192A53884A3A908C146B28777940F5E7 /* SDLLockScreenManager.m */; }; - A1CB2DBE53FB15D96D2AEF47E2AA0B8F /* SDLTextAlignment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09287D9F2DCDB16BF6E036447C615805 /* SDLTextAlignment.m */; }; - A212124738A6FDA7630C16154422B70D /* SDLUnregisterAppInterfaceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 18D0C94E081C5652700A6657D0150BDA /* SDLUnregisterAppInterfaceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A22ECF3CB1A288D78157AC42FCBB68C3 /* SDLMediaServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 352942891F72F2773BF5C6130A6AF9B9 /* SDLMediaServiceData.m */; }; - A231ECE70CC02B9F1B199A860B67E5CA /* SDLMediaType.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E982E3129EE1BF2B88BE3ECFD70CFE7 /* SDLMediaType.m */; }; - A239E346274909BDC903979FD4B4C6FA /* SDLSpeechCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 0308C13EE2FCDF4DBE02F2C11AFBFC1A /* SDLSpeechCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A242E5E367F30640A5FFC65D998FCE23 /* SDLPhoneCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = A8D2591CD0E614AB45EEE6E819BC5715 /* SDLPhoneCapability.m */; }; - A28A71C756E62973A2AA45EFC9282570 /* SDLGlobals.m in Sources */ = {isa = PBXBuildFile; fileRef = 43BDEBA0AFE8CD88C63344AA13ECFD35 /* SDLGlobals.m */; }; - A2A9921EB8164C6246F43B98C428DAFB /* SDLPutFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 731A9565B4A85AFC0CCB16E396BCCA40 /* SDLPutFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A2E76D7B29F39B1C4109492C9D134EFD /* SDLHybridAppPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = D831A281EF816381B291008A9D4FAA9E /* SDLHybridAppPreference.m */; }; - A343D2D2F0859C8234D815B9A4E21190 /* SDLPerformAppServiceInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 66A4B1A486BE8F5F2523D7B998E03397 /* SDLPerformAppServiceInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A3609858C4CC85B82B2DB5EE1F16DCB8 /* SDLMenuParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C86D4CBB2B58B5DB610CFA8980934F5 /* SDLMenuParams.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A399E20CA220D299A8DF309E86426D1A /* SDLCreateWindowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 944E4D0EB351D4FF821AC8C6E8A6599F /* SDLCreateWindowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A3D6E5343C5EBA76EB0F377AFA744A12 /* SDLSoftButtonObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 388D88A1DB6D4B1CECD8ADE296D05335 /* SDLSoftButtonObject.m */; }; - A3E201F3B3EB3232CE70F87323B1AE4A /* SDLCarModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = C2465E4A570C1A14AA2E12DA0AE6B8C7 /* SDLCarModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A44C2604ED15FF19CA61B1C3536DED7C /* SDLDeleteWindowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 51B66260E43F75F7BD5D210137A3720C /* SDLDeleteWindowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A47AA1D939A83E24760E8911CD07437E /* SDLLocationCoordinate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ACC18BF8B3AA6A798755C8C4A61E644 /* SDLLocationCoordinate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A4A2DF6197C7023E874BE6BF12317FE5 /* SDLDiagnosticMessageResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B5504C8F1E24113D498111742CF96E /* SDLDiagnosticMessageResponse.m */; }; - A502C2D1CF7CD300D4DD57DAFB83957E /* SDLGetVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = F325EE523B44B2D99BDB8360522C5DAB /* SDLGetVehicleData.m */; }; - A55F2D47BEE40D7772843861B42840DC /* SDLButtonPress.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B426EF21719FFCBFD4CC285CE5B8E31 /* SDLButtonPress.m */; }; - A565805CB816BE9F3B0D0E09DC310653 /* SDLRPCMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = FC04BA45906F2ACFB5C2465C9AB915A3 /* SDLRPCMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5BF758FF15B8A1CA545BCABF3ED58F9 /* SDLAmbientLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FD49396D5358F998A4629ED1C829892 /* SDLAmbientLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5D2E31993A8DFCCE1145E7CEF4A1A55 /* SDLDialNumberResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 360BEE262B398C4DAF3FB595771EFA2D /* SDLDialNumberResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A61C1EA4AAC054DCFD62C8E3E430B5C2 /* SDLKeyboardProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EC3C54E0392906F04997BCF759C440D /* SDLKeyboardProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A64F8AC8AB4B30F78B3224EB3DEA4F08 /* SDLPermissionItem.h in Headers */ = {isa = PBXBuildFile; fileRef = CC4534AF33C9B2498C5DB1A3A5B390C3 /* SDLPermissionItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6A0C5D8FC9C6B9F16298EDAF864E40F /* SDLHMILevel.m in Sources */ = {isa = PBXBuildFile; fileRef = F833AA2E2D10941E6E078E46A5A395A5 /* SDLHMILevel.m */; }; - A6A4551713557B3612CB818CA36D2180 /* SDLMenuConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A6A3F4A1DAD219F117FF921A98B3E55B /* SDLMenuConfiguration.m */; }; - A6DEEB95AC4B9E08CFB4DB6709EF54D1 /* SDLWeatherData.h in Headers */ = {isa = PBXBuildFile; fileRef = C185C026B8EEB00D5EDD482420CEB1C7 /* SDLWeatherData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A71EA2A436D225D95F38B7388412A08A /* SDLImageField+ScreenManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0656901E080D59E2E26E8D8989D2EED3 /* SDLImageField+ScreenManagerExtensions.m */; }; - A72713FA7E24B3B7BD7207DCE5FD4446 /* SDLSubscribeButtonObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = D1451982C674F8C57D7939A9DC79695B /* SDLSubscribeButtonObserver.m */; }; - A72A34CB87D792D08B1E2FB164AB3947 /* SDLComponentVolumeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E97BBBE0B504665860ED1CAA8E59FE8 /* SDLComponentVolumeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A73902712800A16C4859D7ADAF4C45CB /* SDLVrHelpItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 27CD966D3D85688EC1467BD37B74D1E0 /* SDLVrHelpItem.m */; }; - A752A770F02A5D857134CE5F0A8047ED /* SDLSupportedSeat.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DE402844A0376A05C991CFC47EF599E /* SDLSupportedSeat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A75998CF4F504D34746CEDA36C622C0E /* SDLAudioType.m in Sources */ = {isa = PBXBuildFile; fileRef = AB7CED9964DD3F087B0208B33F08C202 /* SDLAudioType.m */; }; - A7659903549585DFAFEABD6E439FE12F /* SDLSeatControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 59D419F67DD1ED5642ED9D9BBE63D388 /* SDLSeatControlData.m */; }; - A7F8FAB0C96FD69FA1FC28ED30B2ECBB /* SDLReadDID.m in Sources */ = {isa = PBXBuildFile; fileRef = 2947E91CDA3B132E494738EF13BCB952 /* SDLReadDID.m */; }; - A827485FDCFA229B69E2EC034F53E8C0 /* SDLRadioControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 35CB1DE90D5986B9423B7DFF67E9C2CB /* SDLRadioControlCapabilities.m */; }; - A8B394A4B621EDC8A9808654867417AA /* SDLMassageCushion.h in Headers */ = {isa = PBXBuildFile; fileRef = B41E3BF75DB009256653DF32F1496FE7 /* SDLMassageCushion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A8C832F5D8C9FFBC15B909B281A13441 /* SDLLocationCoordinate.m in Sources */ = {isa = PBXBuildFile; fileRef = D7B42911B767CE7D2DB7CD903DA4BA90 /* SDLLocationCoordinate.m */; }; - A8F40580F01A389445A4CB766D5FAEE2 /* SDLRadioControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = E7F0A2E1BCB7060346CDE26635657E5B /* SDLRadioControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A92EB02A106C15DC9A3AE3BC10A6ADFF /* SDLPutFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 63D098D74619FDADF2DBEDAB8939A5C8 /* SDLPutFileResponse.m */; }; - A98D7D891EBE12AE00ABB86C93553536 /* SDLEndAudioPassThruResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E148CD4DE2F892CDEA9A3C1BCCD3DE /* SDLEndAudioPassThruResponse.m */; }; - A9D3D0CE7B2A739C7873A2FFE9AF4E46 /* SDLAppHMIType.h in Headers */ = {isa = PBXBuildFile; fileRef = 76914E4FB138C6C29615A345C805BB4E /* SDLAppHMIType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AA1D9E2BA2787A6184069465AC5831FA /* SDLAudioType.h in Headers */ = {isa = PBXBuildFile; fileRef = F66B5FBBDDB4463C3B333E131A0693E0 /* SDLAudioType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AA7A1B60EBD72027EBDDCED773EEB144 /* SDLUnpublishAppService.h in Headers */ = {isa = PBXBuildFile; fileRef = CA63DD963834C98C595F586200D303A2 /* SDLUnpublishAppService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AAD614157E529CD67FB103448F2FED1A /* SDLPublishAppService.h in Headers */ = {isa = PBXBuildFile; fileRef = DD54737AADEC12705D5ED30EB6CA1A1B /* SDLPublishAppService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AB15DC9878A7480D662E8E7F09FE83F8 /* SDLPresentKeyboardOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 813217C2A949443C3D0F3B06A2A3F439 /* SDLPresentKeyboardOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AB470733A71B7A4336A54B799BB903D7 /* SDLClimateControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E1639EE1075414A5D5EA690D7F79B69 /* SDLClimateControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AB52007367A5C4AB6820326CBAEF5F65 /* SDLGetAppServiceDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B0D6188E04884E87F16C5D09E4F25B7A /* SDLGetAppServiceDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ABB509C9A5348FF75C8D7AB737896B76 /* SDLRPCParameterNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 450AA0AE78066B15DEBE4151BFA7A1DD /* SDLRPCParameterNames.h */; settings = {ATTRIBUTES = (Project, ); }; }; - ABEFEBA9C5DF91EC41F22DC9994A35FB /* SDLComponentVolumeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 813A147E7FDCF70030F5AEC4B266E506 /* SDLComponentVolumeStatus.m */; }; - AC2DFB15873E4FCDEC002550ECDB8EB5 /* SDLLockScreenConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A75D986DAB949A4EA63D5DDFC11ECAC /* SDLLockScreenConfiguration.m */; }; - AC445B1933708F21D8AF1D6AF2FB074A /* SDLOnCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = C2FA6304D4FBBE0B4EAE346B56077504 /* SDLOnCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AC4E1A3C06C91EA16765C11A4F70A766 /* SDLOnSystemCapabilityUpdated.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F83E2FDBC27F6BEBC1DB1957CD550D9 /* SDLOnSystemCapabilityUpdated.m */; }; - ACC70E74E729688F72E6AD7FD4B43460 /* SDLSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 6657481C1066F2BFD64C601F0DE30820 /* SDLSlider.m */; }; - ACFF233B8E3A348018FF3E76F0D95FF4 /* SDLStationIDNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 856D3BA7D8F100C4E870645839EC4088 /* SDLStationIDNumber.m */; }; - AD6F7731154088DF04ABF7B114C3E3D5 /* SDLHMISettingsControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BC571015C3D3C1EF66114AC5050FB2C /* SDLHMISettingsControlCapabilities.m */; }; - AD7801AB5E6D5F623B5063C6670D38C0 /* SDLVehicleDataActiveStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 182F56830437E660474472022B3B6A98 /* SDLVehicleDataActiveStatus.m */; }; - AE475D883F32EB2142B5EA25F969B6C1 /* SDLChoiceSetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E72CA0DD191E63F3A67CEBEC9625C1F5 /* SDLChoiceSetManager.m */; }; - AE9BD968DDEABA9836A36574FD0D8833 /* SDLManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 2ACE82786CE0ED6B2A519263CE025F18 /* SDLManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AEB12E59859E89B338584DD02E72BBDD /* SDLImageField+ScreenManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 506F62C867B2AA4ED9C51CA1DB62873F /* SDLImageField+ScreenManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AF04041B21448126565DE1FF073E50F3 /* SDLHMISettingsControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 57E4834E2857ECB273998AC9B9207D2E /* SDLHMISettingsControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AF46DF04E283DA2C025B970031AFCEF5 /* SDLLogManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E5657CE38BB08F9563C92FE224B79FB1 /* SDLLogManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AFA866B8EAF18418E65247BAE7E556E7 /* SDLBodyInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E2C9383A7DCAF213C875854C59E3043 /* SDLBodyInformation.m */; }; - AFDCD08E8A842643D3F79AA1A1F57C96 /* SDLProtocolMessageDisassembler.m in Sources */ = {isa = PBXBuildFile; fileRef = 438BFB4FB40C6B387CF8D49072456C32 /* SDLProtocolMessageDisassembler.m */; }; - B026E62AE7AA73A7E308CEA35706423D /* SDLDisplayCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A43468737969CFBC34B9E215CE0D886 /* SDLDisplayCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0A8D6493BC79BDED329310810FC6B7C /* SDLEncryptionConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = CB94E5F60A8212C2F399605867F18BD7 /* SDLEncryptionConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0FDBE349EAE1AB26C3EDCDECBFBDBFB /* SDLDeliveryMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F7B026A5E29DCF1060FD41C895EB056 /* SDLDeliveryMode.m */; }; - B15FEA9D1CB41910C878C87E66276711 /* SDLOnEncodedSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = E72FB018DC8626B10CEA4186C29DEC69 /* SDLOnEncodedSyncPData.m */; }; - B1D805EE1F0226E6C240401C8961BC06 /* SDLPrerecordedSpeech.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A18641DB12A7690CFBB24321A955BBC /* SDLPrerecordedSpeech.m */; }; - B28AD4EB609E426CFA05E5537497ECFF /* SDLParameterPermissions.m in Sources */ = {isa = PBXBuildFile; fileRef = F91D92B21B5BD8E0E4A09822AE93C6CC /* SDLParameterPermissions.m */; }; - B2E0C4DA0C2AEC5B2A7B6ACBF4220E09 /* SDLVideoStreamingCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = FA7A7DA3C20C1725AD9388188E89250F /* SDLVideoStreamingCodec.m */; }; - B31FFC503045F9D0FD85A82167BB51EB /* SDLBackgroundTaskManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 121EABB22D7495B5EBE9D72C0E2F9D2B /* SDLBackgroundTaskManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B3C93590B5B3FC4891ECC8B30EFEE2D0 /* SDLLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BDE7DCAD2B3CFA25E38ADF8F9B7C9ED /* SDLLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B3F88965CBEF8C0FD322AE9E1CC5BDE1 /* SmartDeviceLink-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A9E9D261C1048E5D099A24A970F9FC3 /* SmartDeviceLink-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B418427429C057ED4BEDEEBC3B54E972 /* SDLRemoteControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E44B29B11FFF564D52CADA80FF7E157 /* SDLRemoteControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B49B1F5D35ACBF61C28026831A527A2F /* SDLPublishAppService.m in Sources */ = {isa = PBXBuildFile; fileRef = 76424AB29A53E628F57743FDF2F79FEF /* SDLPublishAppService.m */; }; - B49E4BAB49D46EA13D6E48EAA4CDF8B9 /* SDLEncryptionConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DE719023045A4F8E7FB620C98982C60 /* SDLEncryptionConfiguration.m */; }; - B4A8BF4B8F942574D50ECFF3AE010660 /* SDLPermissionItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C3239BD5861D539F39785429EBE0EFE /* SDLPermissionItem.m */; }; - B59731E62C036C36E1BF3B02EC02732C /* SDLPermissionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AA15811C6C82B48B1CE0CF72D93BB8E /* SDLPermissionStatus.m */; }; - B5B97B24E95245BBFA545A415B906F21 /* SDLFocusableItemLocatorType.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E3E1DD21F0F75C6E6C6BB96CE53E34F /* SDLFocusableItemLocatorType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B646EC4DD347FE666670BB8E8FABA6B2 /* SDLEndAudioPassThruResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FE66F7EA43B7C8883B49BF7021DBB96 /* SDLEndAudioPassThruResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B67E53A87562D448A2B0B22F350200C9 /* SDLDeleteChoicesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = DE0871AD02E119A57E3097FB1311D3C1 /* SDLDeleteChoicesOperation.m */; }; - B6B9DB34FF134B3C30ABBA52DC9F9E0C /* SDLLockScreenStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = F27B5920FDC7FD3CE439214E9756A74E /* SDLLockScreenStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B6DEB8B6987E3DC830711BB697BB2EA5 /* SDLMenuLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F44E48D23E1A8174BD093395CF63563 /* SDLMenuLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B6F038FB2FD3D2A6122C859B0FD77F6C /* SDLServiceUpdateReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A942A35064A0FA53F092510D10B5198 /* SDLServiceUpdateReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B70DEE703AEA1B85CDE2C396ECAAF1FA /* SDLUploadFileOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = EBA42054F2C0D64D68F0AAFBD937E5CC /* SDLUploadFileOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B7117F6EF2052C5043114C3520AB787F /* SDLProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E1869CDF2207B055D23A497C6184140 /* SDLProtocolHeader.m */; }; - B72434B441A18026A9032BFCDB7C3C1C /* SDLAppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 824499C1074ACBA17C39242C022396D4 /* SDLAppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B743DF2EB989526A9B7CA860793CC0EC /* SDLSendHapticDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = BA836CEA6A1C9872BEEDA51C34FBD2BE /* SDLSendHapticDataResponse.m */; }; - B7630BA13320336380743669B1FD03D1 /* SDLRPCFunctionNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 9502CA77DD202D38FE595ACBF6558DDD /* SDLRPCFunctionNames.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7666AC64BE2566C73733D5E4218946D /* SDLAppServiceRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 09CB1EF14BDD7FF6541D42C4AA269392 /* SDLAppServiceRecord.m */; }; - B8425BED5CAC2291C0479640AFAB2A22 /* SDLWarningLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 22F32629EED3C3C993F19F29509552C5 /* SDLWarningLightStatus.m */; }; - B85EAD39E2090312474E012A26CC234A /* SDLV1ProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 2761563B654943CE2BDBA7FAEF303886 /* SDLV1ProtocolHeader.m */; }; - B870F919C9CB4A6A1BB503EE28D958B0 /* SDLMutableDataQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 695B8ED2FCC305054E59AA1279EB261B /* SDLMutableDataQueue.m */; }; - B894F5782F2E7E7BC34056A80B601A6E /* SDLOnHashChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 01576AC9DF9C06D0764239C2D918DB93 /* SDLOnHashChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B8A5382FC2441B722AD2C82A370DA111 /* SDLLockScreenPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A53E97D25D99A5593B52E88C69877A8 /* SDLLockScreenPresenter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B8AD1E30EF9ABF9E7891A547006E7A70 /* bson_util.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 82FF30811604FAB65F49A60CF6868F75 /* bson_util.h */; }; - B8BDB8F2E45BF5101B5E5B926C88A2C5 /* SDLGlobalProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = 21F2AED434573DC685BDADF20194DD4E /* SDLGlobalProperty.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B8C8ACFC662321DA0803C3377DE8A738 /* SDLOnPermissionsChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 36421268915268D123352BDEDA5AC948 /* SDLOnPermissionsChange.m */; }; - B8E6DEEB54803908A1463045917D1DAA /* SDLOnAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 08FD56690946400B66FA81A3473A5CD0 /* SDLOnAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B90F0AC037A0C668401856BFB79D61C1 /* SDLTextFieldName.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BBEC9CD4C3851AF20E177DC499AFC7F /* SDLTextFieldName.m */; }; - B970D6C4028085CF32C4082F353EA558 /* SDLCreateWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = FD89634476BF88A8D8E8D716A8A8CD42 /* SDLCreateWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BA0BFE367BFC3B4A7D3E2B5879C7F7B9 /* SDLSetGlobalProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F735242ADEB26A3EFED063A728FBFD17 /* SDLSetGlobalProperties.m */; }; - BA2FDF7FB9614291894702D810997E58 /* SDLServiceUpdateReason.m in Sources */ = {isa = PBXBuildFile; fileRef = 38E58E6ACD990EA45CAE7C8353A814AC /* SDLServiceUpdateReason.m */; }; - BB4E4601D7F85091B639CD980A0BC885 /* SDLVehicleDataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 84439E65ABFB04398E7E8680FA2A7755 /* SDLVehicleDataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BBC5285BF2004834D5B7AD500C948F15 /* SDLVideoStreamingCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = A80BF767FDD68AB1636D37FBA5E4E345 /* SDLVideoStreamingCodec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BBFEBA37199DB7C2A7C50B66D41C769D /* SDLNotificationDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E2A334FC98479B6D81A09D35E4975DDA /* SDLNotificationDispatcher.m */; }; - BC24B3B714C06A50BA2C14B52A6F7E83 /* SDLLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 28C885A6D2F4227B45D870A38421B3A2 /* SDLLightStatus.m */; }; - BC45A3363C22BFDA59826F07C50A4886 /* SDLSubscribeWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F9EFD1A81F30902BAA0BFD14E95906A /* SDLSubscribeWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC69322845C93C436E64BCC888FC2C87 /* SDLRequestType.h in Headers */ = {isa = PBXBuildFile; fileRef = F1A2C4D06CB5BAF62E5ED897C126990F /* SDLRequestType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC9550536464FA9F75A2A288BE8822DD /* SDLIAPSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 909B5FA1FF8FFF76425CED5E51AF212F /* SDLIAPSession.m */; }; - BCCE283A6F1B81EEE8ED8D78E1AFB93C /* SDLDeleteCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = EE640E82A995C6B4B7358301B1821AB5 /* SDLDeleteCommand.m */; }; - BD0935CAB7454504F8A936DC7D9E8DBF /* SDLEndAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = AE2BAC066A795F9A2BC704A131DD796B /* SDLEndAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD6BAA58C6AF239EEE661ED9DA99920A /* SDLV2ProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = BBD4EDFBF8EE19B3FBA0F3448A7B54B1 /* SDLV2ProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BD93F389EA6C6D84A7CE4D6C4F4D49C3 /* SDLLanguage.m in Sources */ = {isa = PBXBuildFile; fileRef = 05EF4CC4570D8BE1DE3ECC0889A81ED7 /* SDLLanguage.m */; }; - BDC2CD1A1E888B02795ECECDAC742755 /* SDLOnLanguageChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 057374D02ED1566D4CB631DFB6705D55 /* SDLOnLanguageChange.m */; }; - BDC97FB8252F310E34C402C05D46F82F /* SDLFileWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FDDB1063EBEFDA59DA01CE662F32CE8 /* SDLFileWrapper.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BEB387A0851CE78DA18EA4C1591A8D09 /* SDLPermissionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C083E636854B0B9353C528C02DD0119 /* SDLPermissionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF0DD23904A939E421F56AEA262F63F7 /* SDLWeatherServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = D22DDB6D7F55F6ED4E2E018BE51EB987 /* SDLWeatherServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF50E3A299C323B4D578ED1A35281FB8 /* SDLSyncMsgVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = ECE02258B281F599E9F848CF9A440B6D /* SDLSyncMsgVersion.m */; }; - BF742D0DA92B99A103C7C83E1B811C38 /* SDLOnAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = DD3CC83A67C250A8A7230DECEE87840D /* SDLOnAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BFEE044D016834F2B5E66E50008B1229 /* SDLChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = B9216714A4B6D6F70DA8E53B3F9320CA /* SDLChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C014B97737D79AA488368329DD9B9BE8 /* SDLAsynchronousRPCOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 646F19BE927B0171643AFCA74D750304 /* SDLAsynchronousRPCOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C0480F3D520ED0985E5BD3D021629BBC /* SDLFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B8C8887A387D235F538311D49C4D060 /* SDLFileManager.m */; }; - C08E8703CB3E2A985D9AF689F03A1E3A /* SDLTCPTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 74883F69A6EF23F8FE9794EE3CEE21EA /* SDLTCPTransport.m */; }; - C09A7EF3511E4D1DAA83BE9F2C58589F /* SDLLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B64A1F3DB42D6EF48AA200C070D9974C /* SDLLifecycleManager.m */; }; - C09F0A16E73306D9023FB1ABA362D8B1 /* SDLECallInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 3416AED17893B065F631CBB7B0714BAC /* SDLECallInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C141AA20F7F4A1CE0ABE4146D9DF4469 /* SDLUnsubscribeVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = BF23B355A2ED03E01AACD1364CDE9011 /* SDLUnsubscribeVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C1A2ACDFECBB62131B3E5E6278E5E8B0 /* SDLSoftButtonManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 74E30D8D3F070C400D8A5A719C652BE3 /* SDLSoftButtonManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C1D98456C85367AA570A828DC98EFD8A /* SDLSubscribeWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = 60C9980F7C06B067A4739AEF6364E6BB /* SDLSubscribeWayPoints.m */; }; - C2AF1FA0B237ECE3973A4D955B834D62 /* SDLLogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0EE4570CF0887B91A7C8D2E2E0414C /* SDLLogMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2E03A3D6572E22C87D81A604D47992F /* SDLMassageZone.m in Sources */ = {isa = PBXBuildFile; fileRef = D9FCEE47A681128EBFB0EFED02719BE8 /* SDLMassageZone.m */; }; - C2F4478D9CA02EA33BE8A7B5AF5BA595 /* SDLMediaServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = 08C7E71E744D35BDA4283D2972693EA5 /* SDLMediaServiceManifest.m */; }; - C2F71EF0CA12DAA83E5D5FD76B4C9AE7 /* SDLResult.m in Sources */ = {isa = PBXBuildFile; fileRef = EC49183B2BDBFC8AF747ABD142598757 /* SDLResult.m */; }; - C37E0A7500862346CC0188EE615B9E52 /* SDLV1ProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = A457A96BC13A557BA1810EA50BC942AC /* SDLV1ProtocolMessage.m */; }; - C3897010E229BC2F8FAAA59CA978C9C3 /* SDLSubscribeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D476F4C1BDF441FDB174D26DB9437AD3 /* SDLSubscribeButton.m */; }; - C3A36F166899F2091ACC48FBC1F71D97 /* SDLNavigationCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 17471B77EFB1B0CCB584D1BD7A3C1953 /* SDLNavigationCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C3E54CEBB8FB78A7494CE9DFF3058933 /* SDLDeviceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 382E3AEEA682773DFC104C615B3B6240 /* SDLDeviceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C406A5BDF00EF83E462C9746291C2A95 /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DC1AB877E125DDBE42B80EF6A00A5F98 /* SDLGetInteriorVehicleDataConsentResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C40C833F9ADA24E8D735707B4D7EBF1C /* SDLSpeakResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EE602770509983D76D37ABED9C3EB57 /* SDLSpeakResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C4720ECDF1EB5D70742BBA8C419E6BEE /* SDLGetInteriorVehicleDataConsent.m in Sources */ = {isa = PBXBuildFile; fileRef = D27F5613B42AA93A93AA3040A73BF94C /* SDLGetInteriorVehicleDataConsent.m */; }; - C49A60B1AE8BD2253AA0CFB78AED841C /* SDLCheckChoiceVROptionalOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = BC088F50F39FABB3A2835578295D6FCE /* SDLCheckChoiceVROptionalOperation.m */; }; - C4A2A9F354149CDA02580EFE345C5A7E /* SDLWiperStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A84D0C360959095854C5870445E677B /* SDLWiperStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C56F66D9B8AD9294B028C7C5C2270AB0 /* SDLTouchCoord.m in Sources */ = {isa = PBXBuildFile; fileRef = 180F965AD76BFA9FF73D2E6A17D76C66 /* SDLTouchCoord.m */; }; - C585713307985FD8E3FF5D0E372A8961 /* SDLVehicleDataStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 11BAC842CBB10B4B7C24DD4A558F24D1 /* SDLVehicleDataStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C5E5880273DD3A08B4F5CDAAACD699F0 /* SDLPresentKeyboardOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = A8F9E32E9728CC43CF973F445B0435EF /* SDLPresentKeyboardOperation.m */; }; - C6410DF2F1430F4ED083AA68B0639407 /* SDLProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9377AFD1675D463C7129EA86B5DB2AFC /* SDLProtocolMessage.m */; }; - C675EC6DE3912F5B5514656C3C6A5C44 /* SDLGetAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 489CBF13E068A7E6A66DF0EFDFFB7B8B /* SDLGetAppServiceData.m */; }; - C67BB4B67598E1831EEBDDD9DD3D4342 /* SDLFileType.h in Headers */ = {isa = PBXBuildFile; fileRef = F07D3E9880A5F22DA73856522EECD33A /* SDLFileType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C6941A6FF49829CAD804EF442CDEC532 /* SDLTCPTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = A26A29D7E64A6FED6EAEC44F2DAB8EF8 /* SDLTCPTransport.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C6A5D68AC8EFB53B34D18E8C12FD5CA0 /* SDLLayoutMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B09D19145E0FCA24838F5D274F3D523 /* SDLLayoutMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C6C679C53BD8DF8348E50BBD9B6EDBED /* SDLOnTouchEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 88FA7221DE85C8EE3F58E1425E6640BF /* SDLOnTouchEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C6C7B6FDA272B371411CA5B0011F2A89 /* SDLLightName.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A033E80AC09276E47884FBDAC7CA19 /* SDLLightName.m */; }; - C71B0B80E85DDF04457ED4A157EC63BE /* SDLGetDTCs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7725181B40E656D5EC95817265FFB76D /* SDLGetDTCs.m */; }; - C768AE4F1F770E7734CD8CC4B8A23306 /* SDLDeleteInteractionChoiceSetResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 856764E6D7C402933AA4B550B7ADCBCD /* SDLDeleteInteractionChoiceSetResponse.m */; }; - C7A212D73E761420B4E79A2901DD389C /* SDLButtonPress.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B1FA2D3A3AECF7476B6EB1A1004187A /* SDLButtonPress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C7B9447E9D84622A6C05BCCA146CB768 /* SDLChangeRegistrationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AC9DBB4949F6A3B97B7BEB8AE95E1BE /* SDLChangeRegistrationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81F5A18F9170388C41F9D93C9EF4103 /* SDLFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC08B2D1ECABDAF764AE254824DC457 /* SDLFileManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8A0BF9E182B267629C254EB8B2AC221 /* SDLRPCRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD38BC5045E2280587608630721EB31 /* SDLRPCRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8AFD07137303A4BAA1E27BE76C2476E /* SDLNavigationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 16EBB6180D66091B30DBE5C095E5CD44 /* SDLNavigationAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8CE5EB649E1C10ECDA088CC6E53D487 /* CGPoint_Util.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F98A315A729E83EEEFA448CB1B4AE9D /* CGPoint_Util.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C913D3DD8C730B92D2A8BBC72947580A /* SDLFuelCutoffStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = E7CCD566D513D6EEC4E95B4D23D395FB /* SDLFuelCutoffStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C92CD2430E581982358A1362D3C8AF85 /* SDLVehicleType.m in Sources */ = {isa = PBXBuildFile; fileRef = C3EBDE4679B3284A0BCAA44A5D195BF4 /* SDLVehicleType.m */; }; - C9C7D39F1CA59D3F1BA74F9F4C1A4E8E /* SDLEncryptionManagerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = CA172B821F0003F4CA4CF26BF6E2EF6B /* SDLEncryptionManagerConstants.m */; }; - C9D33DEDBE5109B9371CCF78FA4B5192 /* SDLLogConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 72740556340F8C21368CF87A79C8F5DF /* SDLLogConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA250D82EAC0308FA595B87D98EC2259 /* SDLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C610CA798F30FD6426257E526AC02F4 /* SDLProtocol.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CAC102566CD54361F5086A273A706B8A /* SDLGlobalProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = F80DCE9605631CF67528BCC3D2584A4C /* SDLGlobalProperty.m */; }; - CAC7C9F6DE36100C778BB500C4B9FC66 /* SDLWarningLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A877633FFF7377994C92687A4E85E718 /* SDLWarningLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CAD17BD965F06658766D62411C358BB6 /* SDLRPCPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = D935E4ACA5BD1466555211496C5A0F89 /* SDLRPCPayload.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CAD42BB6B985BECA56F3CED84173A6E4 /* SDLNavigationJunction.h in Headers */ = {isa = PBXBuildFile; fileRef = 218552AF91635BA12359F7249694AF3B /* SDLNavigationJunction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CB5893572A2A29A05C47351C7D774B1E /* SDLMassageModeData.h in Headers */ = {isa = PBXBuildFile; fileRef = F52EC5B14583173C4125CAE62815F05C /* SDLMassageModeData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CB96E61276D98E9A7E6EE9EA13F73E4A /* SDLDeleteCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B50E027677BEB5915991E589C93AA10 /* SDLDeleteCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CBDD5E404BA924F86C7D7148AC7D7628 /* SDLVentilationMode.h in Headers */ = {isa = PBXBuildFile; fileRef = CAFA794CC2E87DB83C46EC3AF3A8F7CD /* SDLVentilationMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CBF78451B2FF04F7214072DC193CC9FE /* SDLOnWayPointChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 9701CAEA001B151A3237DDBC5CCC06B0 /* SDLOnWayPointChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CBF7DF2B7DF0FB5F45F67AACFA74F66D /* SDLHMIZoneCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C68FA444D0ECFF71A216F789929F82 /* SDLHMIZoneCapabilities.m */; }; - CC65A5F101469227FED175DA7A220E03 /* SDLAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 863AFB2E5034F4791C4E19C43C1F917C /* SDLAssets.xcassets */; }; - CC9E43F7F975E29D4CEFADB3CF92530B /* SDLLifecycleConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D85052B41FE8A425641B594DBE76849 /* SDLLifecycleConfiguration.m */; }; - CD2FA1C8839FD6FE08DCC8A97DF7220F /* SDLGetInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C6985E2F4386AC03DB19BF363A41F0 /* SDLGetInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD925B345A3E54E75A88CBDC423BCC37 /* SDLElectronicParkBrakeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 9232A35C7990DF5C5A02370607D23D1B /* SDLElectronicParkBrakeStatus.m */; }; - CE0907AF29BE4C2529034A3529439E98 /* SDLSupportedSeat.m in Sources */ = {isa = PBXBuildFile; fileRef = D42E48D6CC0F6C034CFD9C9FF1EED954 /* SDLSupportedSeat.m */; }; - CE33E214C4EF7F657B4E1A730C50298B /* SDLDeleteSubMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 202CF610C5F2342C8E54FB9049CF4F47 /* SDLDeleteSubMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF556B40CBEAB213E7FB5AB37B3A8F78 /* SDLCreateInteractionChoiceSetResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B663F05251D2CEC64244343870CC61B4 /* SDLCreateInteractionChoiceSetResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF5AB47D4857BD7D5D1BC6287E751617 /* SDLChoice.m in Sources */ = {isa = PBXBuildFile; fileRef = E00FDE680B46E1B812D8143C5D0A5271 /* SDLChoice.m */; }; - CFA9E37CDCB344B88BF96EB669E9520D /* SDLVehicleDataResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EB05BE08F0592AB8A2B2E5AA70E41FC /* SDLVehicleDataResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CFCF4FDADFD7796F5BEAF925B79BEBAA /* SDLDiagnosticMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E8B2B973E85F3287EF6B9408633BD6D /* SDLDiagnosticMessage.m */; }; - D0687F8DE9690C573C4C0446EE4F197C /* SDLTTSChunk.m in Sources */ = {isa = PBXBuildFile; fileRef = A6FD2FA90F20F6C5140D25FA0A41EB8C /* SDLTTSChunk.m */; }; - D08B9207BDA690B3F378DBC655D97704 /* SDLGrid.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AB253E744896719697E4F5307AA1F8F /* SDLGrid.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0C88B9168198144FE7FA6F3E4F7825D /* SDLSetAppIconResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DD6D85898628258D6A68C4B679B238B1 /* SDLSetAppIconResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0F7A93036C76522C1F67732C96D2A85 /* SDLHMICapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = B965BA54B73AAB7DD28ADEF78BD168DA /* SDLHMICapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D112A18A400F5F4553BB42CA33F9AD14 /* SDLDimension.m in Sources */ = {isa = PBXBuildFile; fileRef = B119F703EFD09662F12A91AC7015A81C /* SDLDimension.m */; }; - D14B926EFC1FDF906D5A57CF73D656A6 /* bson_array.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 3FDDC6658582C0B1CEC0775EEBEFEF01 /* bson_array.h */; }; - D14E04DA2DA7178B5A6B389E296D4DC6 /* SDLChoiceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A92F939214CB9AE0B8F4A9AC267DF28 /* SDLChoiceCell.m */; }; - D17A65C54A8CA8E5F268634CB63E3A60 /* SDLSetDisplayLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = BE4CA9FAD52700FBCAD76C76239758B3 /* SDLSetDisplayLayout.m */; }; - D1B56E95735916F4717FEEA32F73CD30 /* SDLH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 257C0CD607BEF7992A0953E0AD01C31D /* SDLH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D2076457A9AD3DAD99153504CC3E2942 /* SDLRPCResponseNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 50CB8DB198313EF592E6A9DE3B0F6CAC /* SDLRPCResponseNotification.m */; }; - D2083CC54CCEC2FE484B31F105CEAA31 /* SDLShowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 745681F76A482E1B3B632F0DDCDF603F /* SDLShowResponse.m */; }; - D2E1F6044277640103B8532FD88ECCCD /* SDLStreamingVideoLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9249C3F27F0E10C1E2F52FF5AB75D618 /* SDLStreamingVideoLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D2FDF52D5353CA1AE6DE662BA066B310 /* SDLControlFramePayloadNak.h in Headers */ = {isa = PBXBuildFile; fileRef = 120E0599820F60BBAB5980EF892809ED /* SDLControlFramePayloadNak.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D3632770E0BF2D28B2213E1AE13F8C85 /* SDLEnum.m in Sources */ = {isa = PBXBuildFile; fileRef = 57FF113F520A5C67641777D6914A56DE /* SDLEnum.m */; }; - D383905C1BC02D559216275118596959 /* SDLPredefinedLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C8B86BA2EF69ECCA8BB0E915700E2FD /* SDLPredefinedLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D3E51F57F33BBDB90E0026E6A50A8C18 /* SDLSliderResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CED9E972E8876CBE62B74E0A508DB50 /* SDLSliderResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D418AC49F67AAFA470ED4D742ACCB12D /* SDLAudioPassThruCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 28FD8035C89A39A37313F411B5C93EA4 /* SDLAudioPassThruCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4BD6166FE38A9982C6D09ECE4E8E62C /* SDLMassageModeData.m in Sources */ = {isa = PBXBuildFile; fileRef = 5482FBD961552B74651C104693279E71 /* SDLMassageModeData.m */; }; - D4CE05EE4A4C7BED2C1545256717844E /* SDLAudioControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 2887D0C5085EA06F9D4FD170C6F4235C /* SDLAudioControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D51475FCE0E2024873BF20E3DC6E984D /* EAAccessory+SDLProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AB6823D25685820410ED63918C02E0A /* EAAccessory+SDLProtocols.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D5669FF6BD7F10510C5BFEEC1D6285CC /* SDLShow.h in Headers */ = {isa = PBXBuildFile; fileRef = B5B59F14B5A937BCC17AE1731AC44B43 /* SDLShow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D5AFCC6EADD5C94029C13A88099C46E6 /* SDLTouchEventCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = BF47CEA7D6AB8CCC5CC7B1A41D6BD3B0 /* SDLTouchEventCapabilities.m */; }; - D5FF4F7258D11BD646907C8BBC834823 /* SDLMediaType.h in Headers */ = {isa = PBXBuildFile; fileRef = 815DBEEF21C974D2236762AC3D4FADB1 /* SDLMediaType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D613164BA0BA84926A93B0247D7A188E /* SDLGetInteriorVehicleDataConsentResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3030AFD52F92B429CA1F20183DDAE4FF /* SDLGetInteriorVehicleDataConsentResponse.m */; }; - D6B423A9B6701091982E34CA244F9A0E /* SDLCharacterSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AF9C51B912A87FCA50DB65BF6162630 /* SDLCharacterSet.m */; }; - D72091B46BA87644DA72787424704D7E /* SDLAudioStreamingState.h in Headers */ = {isa = PBXBuildFile; fileRef = A3F84DAD3D88A67D4CE282450BA269F8 /* SDLAudioStreamingState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D7A3CC246C315674298880EEB2B97169 /* SDLTBTState.h in Headers */ = {isa = PBXBuildFile; fileRef = 1535EB0F1986701BB26F15612FD19173 /* SDLTBTState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D7A4CAECEC686A01DA319E8C6E1D3C04 /* SDLStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A41267BCF7ACCDD59CABE41F6C1B46C /* SDLStateMachine.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D7C6624037B1FF6F5D58C6B12DA3F63B /* SDLTransportType.h in Headers */ = {isa = PBXBuildFile; fileRef = 4085E3CA18C0C722411355146D5FA236 /* SDLTransportType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D80078A675B7A36DC01D242EFC0CD243 /* SDLTextAndGraphicManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5F2C4BA784D2770AEA68069BA870A6 /* SDLTextAndGraphicManager.m */; }; - D804E00C1E99EF81AE7B9E9BD98FDCF7 /* SDLLogFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = ECD19B85A34BEFF3300F295ACCA65603 /* SDLLogFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D86EFCCFCE0D86525E9DDB7949962ACD /* SDLBitsPerSample.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DE2FE3B6560346F8069F04D79D7E283 /* SDLBitsPerSample.m */; }; - D87AC2C573191F7995FD5F12D9A5CADC /* SDLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 37A578EB03978AF09B4B22E2D9B48EB6 /* SDLProtocol.m */; }; - D8A98474F332772BCCBB7FCCF0B24758 /* SDLDeleteFileOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5183ABBFFA966A641482836B262617DD /* SDLDeleteFileOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D92C780614F70CBC8E9275E0B7FF117A /* SDLChoice.h in Headers */ = {isa = PBXBuildFile; fileRef = 70FCA6EA14F58857FDC822D78A615F03 /* SDLChoice.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D96DDD8B9CA7EA5E0BAA7811256DD2D6 /* SDLAlertManeuverResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D0981807051884EEA83FBA93119C3343 /* SDLAlertManeuverResponse.m */; }; - D9AB3140951E8AAE2F2D9B4B5231CB1A /* SDLAirbagStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 8855466267A3B3D5676C6D27C57295EA /* SDLAirbagStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D9C1F69D50AFCD76135A06BBA8B9CC68 /* SDLLogTargetAppleSystemLog.m in Sources */ = {isa = PBXBuildFile; fileRef = A677CF8D17087FD37FABB05CE8384E98 /* SDLLogTargetAppleSystemLog.m */; }; - D9FA90B43920243882EBC7A5AB83B874 /* SDLHapticRect.m in Sources */ = {isa = PBXBuildFile; fileRef = 4149BB003DEF4C5C4BC5B7A332FD6707 /* SDLHapticRect.m */; }; - DA31C910CCC271F4076D1BBECE2CB207 /* SDLIAPConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DD50A61126C05D1E22DD18C08F59593 /* SDLIAPConstants.m */; }; - DABDCA12A6E91B9A065F97B7A9C5BFFE /* NSMutableDictionary+Store.h in Headers */ = {isa = PBXBuildFile; fileRef = E957BB923D9D863C7E408A84D7E62E28 /* NSMutableDictionary+Store.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DB0A2637AAC77D579CEAE3A3B0B7A781 /* SDLErrorConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A5A2F651034AEC49BAE3963D3AA8018 /* SDLErrorConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DB2585B9615080A2C1A8A0D5069EBD6D /* SDLLockScreenRootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DD50AAA2369E60F10DA24C777F7D9D8 /* SDLLockScreenRootViewController.m */; }; - DBB1C2E6DDFF5465334168A7BE0F8356 /* SDLIAPControlSessionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F6B6A40C2D7A321D2ECEFC97E432FD89 /* SDLIAPControlSessionDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DBE730A70BE64357EEB827CBEF8550A6 /* SDLUpdateMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 087970D423C4D2D7AB2EE1EE71444F15 /* SDLUpdateMode.m */; }; - DBFAADE3779350453CD7BFAE86F35101 /* SDLTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = 37100CC61CBB83D8FD8AF13BB98BCD14 /* SDLTouch.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DC02273D2AA5CEF43581EBE2A8747E52 /* SDLSubscribeButtonManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18CF297ABA10DB64D20A22E9C6634FF1 /* SDLSubscribeButtonManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DC7BA875C9FF947F0B1FBA4177C6F093 /* SDLDeleteWindowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C6AE16D11DEDEAAF0E172B5CDACB105 /* SDLDeleteWindowResponse.m */; }; - DE5388F35C48BCE6C7CDC9E3B72E900E /* SDLImage.m in Sources */ = {isa = PBXBuildFile; fileRef = AAE83D19F9F6CCFDFBE2E4176612A66A /* SDLImage.m */; }; - DE63E79D4F876DB8F9EE94E01C7D5069 /* SDLMediaServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = A9BC3AA38D28D6FBC7BBBEB0A7D0B622 /* SDLMediaServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE9575D32F7A6A605DD928E3EA6F90B6 /* SDLSoftButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 57C40F8D0811DF6059FEDB49AEBDC69C /* SDLSoftButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE972E82D89194FE5744335794CB8894 /* SDLError.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DE51752FED2D7FE208CE05FC220435D /* SDLError.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DEE7AD7F86B81A9BC1E2EE6C39A2FECC /* SDLPerformAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = C1B55A5D6E1EA252835733A44DF307EA /* SDLPerformAudioPassThru.m */; }; - DEF7B91670D14C4BCF191B13B1CBDB8D /* SDLPutFile.h in Headers */ = {isa = PBXBuildFile; fileRef = C78E389C985303221ECDC5D18E6DFD51 /* SDLPutFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DF507767E93AFB36A70ED75AFF3D7074 /* SDLDeleteFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F7EAA79417587FD8CB036BC849FA1552 /* SDLDeleteFileResponse.m */; }; - DF81482006B1DD064059CD729193F9FE /* SDLOnSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = CCDD6594ECBBE163AA3B6819EAECDD83 /* SDLOnSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DFB776F630297A0329B965599E305013 /* SDLDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = 684377DF2520C00D1850BD09A565E45D /* SDLDirection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DFE6BEA12EC622B3B238EE8C4009FB56 /* SDLOnInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = FE30695FCCBB7E0CC7987C538AFF14FD /* SDLOnInteriorVehicleData.m */; }; - E081B77445962FADA85C08A8E6FEA338 /* SDLAirbagStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B5D1F23B2E71DAA1B5D0B59605A90913 /* SDLAirbagStatus.m */; }; - E09A6ED07FF88A2B3DFCAD50F1598689 /* SDLFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 430C9D5FCDF96E9E712BC537CDC01EA1 /* SDLFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0B1ED0FAEF62E7A9ECDE44B4C2834F7 /* SDLClimateControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = DEB1D477D9EB612F32B6432000660C59 /* SDLClimateControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0E6BA7F5D22191786EEF3537BC1616E /* SDLSystemAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D90AE10D126FDEAC9EC89DC2DA4C9C9C /* SDLSystemAction.m */; }; - E0FC41FEC6C7E4801B4394F3200D1F14 /* SDLVehicleDataStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E745564AE37D33E39D0D5F6C4614133 /* SDLVehicleDataStatus.m */; }; - E1152B7BAE15B01DBAA1C1F7896402E6 /* SDLGetCloudAppPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B3717C92695FDC869375458442425C25 /* SDLGetCloudAppPropertiesResponse.m */; }; - E127F3F478549E5907B2850B362FED22 /* SDLAsynchronousOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EADC1263640A78820A3303343799BE6 /* SDLAsynchronousOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E144979B7797BD3CC98DC251768C9DC2 /* SDLAudioControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = BBBA34781B3503DDA95B0CAE4B42E438 /* SDLAudioControlCapabilities.m */; }; - E1C6FEC796F238A0D768AEEF13D8BF2F /* SDLDialNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D5AFE5EC9DFCBD550B6CE009570187A /* SDLDialNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E24DEEB6C2CD227A7D65A2670DB65D92 /* SDLDisplayCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7767E20AEA869F60F20EA97DB0E504E1 /* SDLDisplayCapabilities.m */; }; - E3157BC456D801956E1474CCF765F853 /* SDLScrollableMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 831E596C3FA752444D1ABCA67DB7BB9F /* SDLScrollableMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E329AF57A57A5BF7BD973D6F447B9CB3 /* SDLNotificationConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = FF791906F1FC8B75F3E5D9D9CDE8DADE /* SDLNotificationConstants.m */; }; - E395F72E06B6F2E54CE0B4977F3FAABD /* SDLFileManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = A39FC9ECBCE47531EA0F628BD8F31F5B /* SDLFileManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E3D8E77FFD3C3CCD8FEF0CB36D65603B /* SDLDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = C70B2859CDC07782CF755E851575239E /* SDLDeviceInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E3FB99D01C97093682E0A1EF03DEF33C /* SDLStreamingAudioLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = ED4168058B624B5FDD47D387C6D1E8A2 /* SDLStreamingAudioLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E45157D8F36A97F44996C299AFC261BF /* SDLSetMediaClockTimerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DEF6AE23910B9300DD3A0EB0B277C68E /* SDLSetMediaClockTimerResponse.m */; }; - E5060579BBE45E03FA927A5B6CCF64B5 /* SDLMassageCushion.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C8558030DFB952D8D24FA06D63E520 /* SDLMassageCushion.m */; }; - E5B246C5FA6496C31A85FB4A70C1D6A2 /* SDLUnsubscribeWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = A4BF66140123996F41DEFF60B1C946BD /* SDLUnsubscribeWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E5B88FE74B2EE51391E6F196C27429F4 /* SDLWiperStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 89DF44BE873C0C35B93160AF2AFA563E /* SDLWiperStatus.m */; }; - E605233B33437E5342710523DC192F16 /* SDLGlobals.h in Headers */ = {isa = PBXBuildFile; fileRef = 984B721B08C198B887A18CD320C0C30B /* SDLGlobals.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E64A8CC048B3B646F407159AC4BE4F4C /* SDLSoftButtonObject.h in Headers */ = {isa = PBXBuildFile; fileRef = D825304615E69EF79423978DDC24A034 /* SDLSoftButtonObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E66DB3C37E4973F7DDE47B53F4A1CED2 /* SDLSubscribeVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = F5911DA96561B2E0DB4E79F8EF63A561 /* SDLSubscribeVehicleData.m */; }; - E6A83EE82658F0FD32589B0165F03D06 /* SDLTTSChunk.h in Headers */ = {isa = PBXBuildFile; fileRef = FB58EAC6AED2BCF3595566AB716728B0 /* SDLTTSChunk.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E6D8226083D387CD8BD4EF2CE9F86DBF /* SDLReadDIDResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 44849D20DBCA2A08A69AC1CC08D2E12E /* SDLReadDIDResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E6E55A8F2A2BFBE31505BE9307FA5BD5 /* SDLTPMS.h in Headers */ = {isa = PBXBuildFile; fileRef = 117F46D8AD9F12EC389BFEC8EC4A4A7F /* SDLTPMS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E70C0DD38EBA9D727D26A5D6D38E50CC /* SDLSamplingRate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B617AF0E9B7984864BBC87BCDA8FD50 /* SDLSamplingRate.m */; }; - E76389D113E1B62086B889FF5763CBF2 /* SDLSoftButtonReplaceOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A2CC1AB9C604A7E227193554050F049 /* SDLSoftButtonReplaceOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E829F19D11C1077B6B68CA9E77E7A3CF /* SDLRegisterAppInterfaceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 88CF0A4361A069189BA99DE9D9F45FB5 /* SDLRegisterAppInterfaceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E92412A888974C3419F69E616690EBD9 /* SDLTurn.h in Headers */ = {isa = PBXBuildFile; fileRef = 3798CB99A6B7352DEED2C27BC86F9E32 /* SDLTurn.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E95A6B40C522978A7B5C7048F5CEA422 /* SDLButtonEventMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 17F39883F5C926723043B16C4FEB77D9 /* SDLButtonEventMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E9783EF1C9A4FEBF1663C195E052DFFA /* SDLConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C8B7EAEF425B5B3F0375A9301A599C4 /* SDLConfiguration.m */; }; - E9842B3A085EBC79B367D1EBCF4D3EDA /* SDLControlFramePayloadRPCStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = E1A8A1E0A076B07F56387D1063ABB1A3 /* SDLControlFramePayloadRPCStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EA1674D4751D7F85F5D79F9DBF218E8C /* SDLCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 89A76245B2627554C8BCFD4EC00D0102 /* SDLCloudAppProperties.m */; }; - EA3B5A546245509630C45FF94EE0F01B /* SDLRGBColor.m in Sources */ = {isa = PBXBuildFile; fileRef = C17FA75188543D16F15C11D353AD7B2D /* SDLRGBColor.m */; }; - EB2AE2C03AF5B038D0D8F8C5B7F86405 /* SDLSubscribeWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = 21D8EB78FB694C0B9754FB236AD82B6E /* SDLSubscribeWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 984F9250442AD90516197769FB66AC3F /* SDLSetCloudAppPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = EB55A0D888F6AE9CCC809D50497AD040 /* SDLSetCloudAppPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9865B7A5B80139F7E840ED07E1848F59 /* SDLSetInteriorVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 21299607CA16E90A5C0710F2E2785242 /* SDLSetInteriorVehicleDataResponse.m */; }; + 988688D3D697D96628D7083C22A6746B /* SDLAudioStreamingIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = EB3F3F76167CA66B3B7C05138A413E0C /* SDLAudioStreamingIndicator.m */; }; + 98A0D6893B9CEF42738012575D4B81ED /* SDLRPCRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB970D4B1463F7A5435F594C50FE27F /* SDLRPCRequest.m */; }; + 98BD10DED5BAA7E5ED957677B48616C0 /* SDLTextAlignment.m in Sources */ = {isa = PBXBuildFile; fileRef = CBCE52F73B99C2EB241CED559CC155FA /* SDLTextAlignment.m */; }; + 98E22984D664414B333A2690BC267A50 /* SDLPermissionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AEB0447F840FA8B85356311591B1E92 /* SDLPermissionManager.m */; }; + 98EA3B80A0B1142E33F52CBC82E6D596 /* SDLTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = BE263957CF097F8038614F284D6503B2 /* SDLTextField.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 99053937DFFC0E1B063400B22BCCD6C5 /* SDLEncryptionConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 51FFB00ABD6490160288E149838F9914 /* SDLEncryptionConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9A06824727611E6DB64130AE34B5205B /* SDLResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 141A750A4B7658D57C0EA1C5677AC485 /* SDLResult.m */; }; + 9AB381AEFEE5A61992ACD7F10F8A0BE1 /* SDLECallConfirmationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = AA978EFFF7802A57334EEC147C532F12 /* SDLECallConfirmationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9AC1E68F168FC9BD70C6F53284C18A09 /* SDLV2ProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 972B7E177642FF7F73935ABD0DF3B924 /* SDLV2ProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9B1D0DC686CA127B3507C3BDBC7556C4 /* SDLKeyboardProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = D90CAAF858A78919418815026E93FE6C /* SDLKeyboardProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B55F42A537180FC37A5A170B1FB6309 /* SDLPresentKeyboardOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 35872C6BFFC71956A1E4CA4786AF126F /* SDLPresentKeyboardOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9B62DF6B4229906E1D2ECDC12DDE06C7 /* SDLLogTargetFile.m in Sources */ = {isa = PBXBuildFile; fileRef = BC48020E05365643AE6EA8547CC8AD26 /* SDLLogTargetFile.m */; }; + 9B64057F42AB2ABE7AE945EBF1BE29A7 /* SDLGetWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EB9B954F1D1DCEB391A1D236360F644 /* SDLGetWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9BF5B7F3010DA88A9BF4F6F6B16227B4 /* SDLTextField+ScreenManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 030B9EFF025F2C40E4F44F1065406AC8 /* SDLTextField+ScreenManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9C0456EBA174B29942498ED83DBBBFB7 /* SDLRDSData.m in Sources */ = {isa = PBXBuildFile; fileRef = 922F65EF53B7070CDB774AA85CCDF664 /* SDLRDSData.m */; }; + 9C119AD13DAE62F186B5AF78C8CCEFF1 /* SDLMediaServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = FBD38969E857441AA3068AD8C9ED8B42 /* SDLMediaServiceData.m */; }; + 9C3E8E79D55F890640B50D7F4F74F081 /* SDLGetSystemCapabilityResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 789539F0D0B01F9B19A6F15A31E9B06F /* SDLGetSystemCapabilityResponse.m */; }; + 9C6F8EC6BB779E9ED31A4BE3D33D5A72 /* SDLPermissionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B10B875766B1C1B96DF356737056AB9A /* SDLPermissionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9C9ECEB77C7F6593C5816D6A6E08BF93 /* SDLRPCPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = E074E1828DBE20E4E333AF7D5CB7597C /* SDLRPCPayload.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9CC99894D5AA75B1EC79ABB3CD9C2E2A /* SDLScreenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E27B8D2C7EF19BFB8D2813DE94C44F5 /* SDLScreenManager.m */; }; + 9D0AC63359FA806DBD87D26C86A27892 /* SDLSubscribeVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C641082806A93BA26912DBABD29845FC /* SDLSubscribeVehicleDataResponse.m */; }; + 9D0E273B9D1C3CD49BC10C2157792DBC /* SDLSupportedSeat.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DCE4D9A1ECFC1B74D7B4C95CBDC5A0A /* SDLSupportedSeat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9D128154E213F2A044C61D9129B5BC56 /* SDLAddCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 05AF30F572533AFA58903B5BA40CC28B /* SDLAddCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9D183E14A9513C11B72CDDF134760AEE /* SDLSpeak.m in Sources */ = {isa = PBXBuildFile; fileRef = 9793856BCD714E4673B7C4D1120726F5 /* SDLSpeak.m */; }; + 9DA547A789D5556CB6C8E4CB38337256 /* SDLSubscribeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A41C2D42956A2BC9ED6622038B85ED8F /* SDLSubscribeButton.m */; }; + 9DA7510D35653DAB61574EAF7CD41A60 /* bson_object.c in Sources */ = {isa = PBXBuildFile; fileRef = 66E64A3674325E99630AB41079D65E52 /* bson_object.c */; }; + 9DA96D9D62C66E1387A426433D1D0180 /* SDLSingleTireStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 67857A032BAADE3614D213222C35BF8C /* SDLSingleTireStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9DD41205E9F9884198DE310BC34FB4A2 /* SDLUploadFileOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 32614CFD26D45B1414C5745CF0EFC3EC /* SDLUploadFileOperation.m */; }; + 9DF783D275D92A46DE02F25C3B837321 /* SDLLogTargetOSLog.h in Headers */ = {isa = PBXBuildFile; fileRef = B5D86F64C557ECB55D17B7F743CE14A3 /* SDLLogTargetOSLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9DFB1A6DB2598EDE3EE46E5C4CE0BCA9 /* SDLGetFile.h in Headers */ = {isa = PBXBuildFile; fileRef = C7A3524440606449BF1F506F67159172 /* SDLGetFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9E02638823EC1F1D11F02EFDE7FE15D9 /* SDLFuelType.h in Headers */ = {isa = PBXBuildFile; fileRef = A28A3EF650501C5F764BD9255379B913 /* SDLFuelType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9ED85FAD2AF0198AADBFAD98BB11C799 /* SDLLockScreenStatusManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 264466043512A19F32B8FD33808B100C /* SDLLockScreenStatusManager.m */; }; + 9EF3295D4B53DF53BE6353110DD2B85E /* SDLLightControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0623BF96606B58FD9FCC3861992A2F61 /* SDLLightControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F29AC1D8588B1909F44A2D2154B059E /* SDLEmergencyEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C68BF2CE6FE130CE0B0A970E9E4EB46 /* SDLEmergencyEvent.m */; }; + 9F6E93F678382583CB066DB5551B6328 /* SDLCancelInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE0F5BE889755CBF2EACC79F9B92C01 /* SDLCancelInteraction.m */; }; + 9F8232117DA710D03B7E6C7D59670979 /* SDLMaintenanceModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5219E50197D0F16E89EF7D41AA424C50 /* SDLMaintenanceModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F8FE4EBAD620939494FAF4BD5B8E635 /* SDLIAPDataSession.m in Sources */ = {isa = PBXBuildFile; fileRef = EC66B309EDD7459B38A3029CA12705EC /* SDLIAPDataSession.m */; }; + 9F9DC8D007500904C401C5C7E8C89FFA /* SDLGetFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EDBC18F6B463FA2C5159B39D11406A8 /* SDLGetFile.m */; }; + A004CE7345498F2955076679857302C9 /* SDLShowConstantTBTResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = BBA4A2A569A352F32B460D479A488FD1 /* SDLShowConstantTBTResponse.m */; }; + A00E882CF0FA04AC4318B555BA1B4A44 /* SDLFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FD269E190CA05DE20711325DB709DCA /* SDLFileManager.m */; }; + A037C3C3A83530301BEA2F881D8288BA /* SDLHexUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B65BB837429AB03BD36724BAA2EDB6 /* SDLHexUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A0EA4A22CB0687C97EF3BC22D1735572 /* SDLVehicleDataResultCode.m in Sources */ = {isa = PBXBuildFile; fileRef = 20B9DF79B0ED0674C8ED798A7D73B3F2 /* SDLVehicleDataResultCode.m */; }; + A0EA899E9A6772A0E111CAF3A5B4D692 /* SDLMetadataType.h in Headers */ = {isa = PBXBuildFile; fileRef = AF2EB782EEAA8529D44E257890E1E3A7 /* SDLMetadataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1131A6BB01A094C26C80E68F70AA7E2 /* SDLLogConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = AAFA82C0BFDBC0D64BF1C7E2CF3ACF45 /* SDLLogConfiguration.m */; }; + A1161753253DEFA30B66E27E94AFAFA8 /* SDLDeleteChoicesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CDDE49677C1E817827B6E102A64583F /* SDLDeleteChoicesOperation.m */; }; + A11F26070BE925687139B0C109399C19 /* SDLCancelInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 186CF5CA656EF53E457CC74A91CED8BF /* SDLCancelInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1275CC9FDC8F2175D1DC71D25332C6A /* SDLTemperatureUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 17B584482168B64D8A9B1D66FD274FB7 /* SDLTemperatureUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1327BFC088CD8D368B15DED7246E077 /* SDLRAWH264Packetizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 70ED7008A3D1DC757EE6B277ACD920AE /* SDLRAWH264Packetizer.m */; }; + A13C0973729C96228DD864BEABC09B27 /* SDLCheckChoiceVROptionalOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0101AB6A004A001DF9E0F740590E99D1 /* SDLCheckChoiceVROptionalOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A198B40DBA405B5DB3F5E3447BE94C9E /* SDLRadioControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CBCB16E496EFD6B64945F52DA1861BB5 /* SDLRadioControlCapabilities.m */; }; + A1EB1E865A03EC4D69C80EB755A77CDD /* SDLVideoEncoderDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A3EDAEBB63DC81EB0D8197E941D92BA /* SDLVideoEncoderDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A26C078F292F94A82E10F7CF3CFF947A /* SDLRPCRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 2927EDEFBAA36BACD83602F7DA5F877E /* SDLRPCRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A29DDF83D423EEF2B51B63527AE1EB53 /* SDLControlFramePayloadTransportEventUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = 717DFB9BE8DC679E6C4758105253E4D5 /* SDLControlFramePayloadTransportEventUpdate.m */; }; + A2C335E45D5808348227BAED740FA4E8 /* SDLRPCResponseNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 73CA9166AE10B30401A01C7A47B3029E /* SDLRPCResponseNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A2CDEF188C1B5C93E25A3F7880080B74 /* SDLOnHMIStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = D3566C02B6DB84A4D90013751CD1071F /* SDLOnHMIStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A2F68F9AE4211CB31227C8790627D865 /* SDLControlFramePayloadVideoStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = 7356AD33DD279C8B715E26EA25CACD63 /* SDLControlFramePayloadVideoStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A364DD5B4142117E4B4631E68A00FE45 /* SDLOnCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = C4BE27470822649960E3E82D1CCE585F /* SDLOnCommand.m */; }; + A36ED8B7AA4C7BC318EE0E63EA70CE15 /* SDLImageField.m in Sources */ = {isa = PBXBuildFile; fileRef = AFF3854A1D8BC5DD5484E62759DB92A8 /* SDLImageField.m */; }; + A3B8C6795DDA83285BEFB831CB44827C /* SDLNotificationDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 19CCE221988FAB4BFF131C894F0920C4 /* SDLNotificationDispatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A4583BCEB2AC1DD17A778969E1176224 /* SDLSetGlobalPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 17B209E28D1DF58F13E9ED57702FBE24 /* SDLSetGlobalPropertiesResponse.m */; }; + A4E3B6C1B43783D1FAA4E1CC40625BFA /* SDLSoftButtonTransitionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B944A8411396B636FBDC617B69BA653 /* SDLSoftButtonTransitionOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A593A77AB1486F65ACE3B83D54B74BF3 /* SDLIAPTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C7DA6DFDBC398CAB62E0896412F9A2A /* SDLIAPTransport.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A5F4708B4FE2C25C993C970DAA270D63 /* SDLProtocolReceivedMessageRouter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C95A15F1ABB56F87595C248AF00C07F /* SDLProtocolReceivedMessageRouter.m */; }; + A60900079A6C1F0B634C7268D10787FB /* SDLSystemAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 6327F4CF9F830BB34651793AA66D1377 /* SDLSystemAction.m */; }; + A64D310CA13C5BAF7C23D66405E178C5 /* SDLSendLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 400D3E396C926D58653D9550ED9D959D /* SDLSendLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A6BBC719536F101CB562CAB3FE06D5BA /* SDLNavigationJunction.h in Headers */ = {isa = PBXBuildFile; fileRef = B2B32C73887D39822D8BCF44DD62ADE0 /* SDLNavigationJunction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A6D8F9B1A7E7ED29A5BBC3F8D864A511 /* SDLVehicleDataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 171E13E59404914970C3C1146AACEF54 /* SDLVehicleDataType.m */; }; + A6FD855ED3F925B400BD27B86ED4E5B8 /* SDLLifecycleConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 560F738DFD43F14B66D6575B0D922FF8 /* SDLLifecycleConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A744F3FBDD027EF8083D56235DD11762 /* SDLPinchGesture.m in Sources */ = {isa = PBXBuildFile; fileRef = E9BE11B50B61C825DEC533B7D69EB1FC /* SDLPinchGesture.m */; }; + A74F1CA5505DE503FFAA407AE3AB1129 /* SDLSpeechCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 29E4B47051A2CBE2B10DFE80E3D19287 /* SDLSpeechCapabilities.m */; }; + A7E72AF0798FCBA961B605865BC0D940 /* SDLSISData.m in Sources */ = {isa = PBXBuildFile; fileRef = 738A838988DDC4A7320C42B53C6763F9 /* SDLSISData.m */; }; + A81D5EC3B4B6F201C3603E3DAD6D8D60 /* SDLVoiceCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 760CA141DE64208FD9CF023B7FBA7EF4 /* SDLVoiceCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A820135ABA605F791A72BDF903F83D64 /* SDLVoiceCommandManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECC06D0A68E4B2D1C7C59006097D069 /* SDLVoiceCommandManager.m */; }; + A8703C5059F822E6DB8F4F390982EC70 /* SDLVrHelpItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F79001BEC04EAE768A2897A4D2F4684 /* SDLVrHelpItem.m */; }; + A880069AB28A616308F535E09774FE5B /* SDLChoiceSetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B85ED94C4814B0CC8AE4863BE9962AA3 /* SDLChoiceSetManager.m */; }; + A8BCEFDF545668B86C4B26D77F543012 /* SDLChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CFA9A9E1169A3206174FA90EF8EDB20 /* SDLChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A90A906DCF7DCBCA8E836FA3E00A6282 /* SDLEqualizerSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 6301C36A8C5A7DFCE5AE6E9C37BBE530 /* SDLEqualizerSettings.m */; }; + A93762770ACAEA4669A192AA1B24F74E /* SDLCharacterSet.m in Sources */ = {isa = PBXBuildFile; fileRef = CC96F7C7B44C145A8134DF1D1AA18116 /* SDLCharacterSet.m */; }; + A983A6276F3C7B7AC3587F036EE6E779 /* SDLAudioType.m in Sources */ = {isa = PBXBuildFile; fileRef = 74E48158DDD5FF132D47C5C3AB49717F /* SDLAudioType.m */; }; + AA090C3D5E165EF8E36C9AA113A53B96 /* SDLSecurityType.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BB6954C66C6C182131AA4914D6690E9 /* SDLSecurityType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA342DA2EF3182E7DBBB4A113C12A4B4 /* SDLDisplayCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C449475F6E0CE07B003A60F21E17DFCC /* SDLDisplayCapabilities.m */; }; + AA47F6819C48293DD50ABABE42D59952 /* SDLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 416EEFA8DF9920B950D45A438B6CEB3B /* SDLProtocol.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AA756116198DB6B581A20CB3873E30E4 /* SDLPreloadChoicesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 180376AD38DA70C86CE6A85F04306440 /* SDLPreloadChoicesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AA873E6F9C27CEBDA0C183CAD68759EA /* SDLPrimaryAudioSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D3E8ACACCBAA2545A9291162519C02F /* SDLPrimaryAudioSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAC0DB5D3A430B05CC4019E7D477C302 /* SDLEnum.m in Sources */ = {isa = PBXBuildFile; fileRef = 94170D786D38E92B4C692CF92C3ABD30 /* SDLEnum.m */; }; + AAD2C90D0EB813824B3D8A3AB0B383BF /* SDLCreateWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 867279F7956ED364FE2FF921B6C6E196 /* SDLCreateWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AB7861DE54C82B10AC22ACC4D25E1587 /* SDLDisplayCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7DCE417C4EE2395C2B60D1AFE92B0B /* SDLDisplayCapability.m */; }; + AB7F9CEBB797B1CE9C0A6369925F40D7 /* SDLDeleteInteractionChoiceSetResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C90C1D028D438622CABA6C39AD5A9BA /* SDLDeleteInteractionChoiceSetResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ABB493723C1C7433B4FFDD4C3F175B60 /* SDLMediaServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = AF122075C0B55246AB9E41B45037309F /* SDLMediaServiceManifest.m */; }; + ABF656C5E21AEC6D38F3E13417005688 /* SDLLockScreenPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B7C65426660FAD7B711561101E64251 /* SDLLockScreenPresenter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AC9ABA1E5756F8D06C41D5F12FAF5FCC /* SDLGetVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = C3F279ED37C2B8521FA6B95F37C61B6F /* SDLGetVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ACA68CEF0DCC1C8B2658E9ABDEEBFB65 /* SDLOnAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B58A20A29A45608DC88942D98FAD328 /* SDLOnAudioPassThru.m */; }; + AD5AF27742CC22CEC1D1C3DFC44F88D4 /* SDLReadDIDResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AB71279385780F65642903C30E49879 /* SDLReadDIDResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AD736001016B54573EABDD90DADE0E53 /* SDLDialNumberResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BE641F519C441DF7E48B7D3B6919934 /* SDLDialNumberResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ADB73BBB02E97BCF7038D35756317AD2 /* SDLStreamingAudioLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CED1E6D7D0EA2E9D6C83332611768557 /* SDLStreamingAudioLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + ADC074FCA5AE10C28D5026FF190EE446 /* SDLOnVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 02D5E907F468C148CBD8FD6B7AB586DF /* SDLOnVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ADC486DAB4AECF83CEF1528805F0D5DD /* SDLDiagnosticMessageResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FAA770CD2F0D719792C511D30970EE1 /* SDLDiagnosticMessageResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ADEC3628DFBEE6798F4B23763C1A92C7 /* SDLSystemAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 00FF637FC89DC702B5A3B6AA9D2D2039 /* SDLSystemAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AE62522F9520AF29D75A29C4F52021DA /* SDLCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = B2C0261F3896CD81D17FC9889CD6080E /* SDLCloudAppProperties.m */; }; + AEA20BEDAED5BFD7E117618DE31A2294 /* SDLCheckChoiceVROptionalOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC1D764310276A1B4C8335898707354 /* SDLCheckChoiceVROptionalOperation.m */; }; + AEE77C021573B8DD9C36742C872CC145 /* SDLAsynchronousOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D56532D34DE9E68146CFDE8B079E3A04 /* SDLAsynchronousOperation.m */; }; + AF0378DD30CA9A0BA2190F015D33287A /* SDLDeleteFileOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA766A3B7A6071AF22334BC052F5D9 /* SDLDeleteFileOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AF723A4A4F7BAE013836CFA6EA0A96CC /* SDLGetDTCsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 873AD46682BA883CE3701B9759A685AF /* SDLGetDTCsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFB8E1D1D3A726DC7722D55D4D6C512B /* SDLSoftButtonObject.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDAA6BCF5B1B476FC7FBE2731FD3B66 /* SDLSoftButtonObject.m */; }; + AFBA83A49C18D3400B678ED151AA501B /* TestSubscribeButtonObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = D10B31A393DEE18CB04EA2485ABD892B /* TestSubscribeButtonObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AFBCAA22FB24A405351A20E2B74558BB /* SDLDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = 7133F6AC9671200858B818B6C007DECF /* SDLDirection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFD036FA927C58A0F33C0BAC98F1CDC7 /* SDLWeatherServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 803C2E9668B7B07DB2FF5F2B5A39CDC7 /* SDLWeatherServiceData.m */; }; + B0A97A8C76EFC9A82EEDC2D7929E1EEC /* SDLSoftButtonObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DCA91383086A7E683C2F22BCF6D2362 /* SDLSoftButtonObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B0C6AD5C1F58F49D4F0EB9202EE6654B /* SDLBitsPerSample.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FF29143ABCD4BB3E7BEDE8C7CCAD067 /* SDLBitsPerSample.m */; }; + B11616E2030587DA492555777C6F1074 /* SDLProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 594AC4B2DF9D7E1F894764C0639282A4 /* SDLProtocolHeader.m */; }; + B132314B07C6A9CA6CD44F32E91AEAEB /* SDLV1ProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8078F5D8FD2E5AA8F5B8AD58492E41F8 /* SDLV1ProtocolMessage.m */; }; + B150E5DE7978C3481FD1EB1A61030C0E /* SDLAppInterfaceUnregisteredReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 5034B677DE11A819CC149521CC6E7720 /* SDLAppInterfaceUnregisteredReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B19FC81F57091EDF5B9AD8821F0B0A45 /* SDLImageField+ScreenManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 41D72B7B4ED48D2E8526C8AF6D0B9A7B /* SDLImageField+ScreenManagerExtensions.m */; }; + B1D4313BE976C18539749F477ED2A75B /* SDLUnsubscribeWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = E544DB7D1612FA15EF84618495E675FA /* SDLUnsubscribeWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B1FF65E7334126187569DEF9C0C33807 /* SDLCreateInteractionChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A117B857E94BF65B1F05AF4CDAB3A39 /* SDLCreateInteractionChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B22F7F10287D36689566D1A98DC3A8D5 /* SDLStreamingVideoScaleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EFC4194E558FB1558B3CB47C41F68BE1 /* SDLStreamingVideoScaleManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B2419129FDB4A9CB41C203589CA22D4B /* SDLHexUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 795E1BED3027BAEDD697E8A22A036324 /* SDLHexUtility.m */; }; + B2526A2E015B04742D776EE2820B521D /* SDLPowerModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = C22DA0D19740BC3671D0F671BB54CCEC /* SDLPowerModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B2559CB3C0CD6DEC3D98F6AC227D10EE /* SDLSystemCapabilityObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = B7A9DB758AF9D71ED356105B12453644 /* SDLSystemCapabilityObserver.m */; }; + B2912E54327248FAE3A3170E39F35F97 /* SDLH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1310B5C3A3FD8D5E490FB2B56E5AAC43 /* SDLH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B2974FCBC9EC3C2830F9860E9C4243DD /* SDLLifecycleProtocolHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 5712312473A00BB85C7BFFF2A9701AB2 /* SDLLifecycleProtocolHandler.m */; }; + B343B9B9FD94A55F5C1DF63E3797BCD8 /* SDLPerformAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA1D7A2FE7B1D749E12E48562AF0E9B /* SDLPerformAudioPassThru.m */; }; + B38195C88F92FEB489620CCBBC2020BB /* SDLLogTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = 61E9DF9DE239F356089DAA53E89279CA /* SDLLogTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B393614ECB8435C999A656EA5FF4DA9A /* SDLOnAppInterfaceUnregistered.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5DF3D138D81A3A587A931F4D1E6E9C /* SDLOnAppInterfaceUnregistered.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3E5781080E9941D62D42336DB9B4AB3 /* SDLHeadLampStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BB5CC306F5A580E2DE14FF2E2AA1009 /* SDLHeadLampStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B4A61C8FC47F7E6EB2494CE3ECFEB4D9 /* SDLDeleteFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EC6E2E0ADD9BFC51D3ECF0FBFD7E9D0 /* SDLDeleteFileResponse.m */; }; + B4A68E8A12DB0394DFCDAC1D5C57270D /* SDLWiperStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = BAD2C195FC0F61B8AE3C568DAACD11A4 /* SDLWiperStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B4C64A6399943D451530DA5FD7209CAD /* SDLKeyboardProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 47CEE7254EB0F1FF12B377E55631510A /* SDLKeyboardProperties.m */; }; + B4F0E7BDC21F461F00D673334BBDF781 /* SDLControlFramePayloadRPCStartService.h in Headers */ = {isa = PBXBuildFile; fileRef = DADD98EB7761E07FAD05EA3DD3712E13 /* SDLControlFramePayloadRPCStartService.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B505E5278CDF2E21BACF15324A723BC1 /* SDLControlFramePayloadVideoStartService.h in Headers */ = {isa = PBXBuildFile; fileRef = AEF7CB1324D1DFFE0F15BCED4F422DE1 /* SDLControlFramePayloadVideoStartService.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B5D2886890D272E031FDDFBD5EE82D60 /* SDLOnTBTClientState.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D4D2EA95117DB980E905FBBAFCE239E /* SDLOnTBTClientState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5DAAC1FAC61166246C28B0C670BA05F /* SDLStreamingMediaManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B2D91153D914C941AEEFE99436B0BBC /* SDLStreamingMediaManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5F122A762987627F0C53217DD6B86B5 /* SDLLockScreenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A922B6EE1FBBD668DC4D132D27791DD /* SDLLockScreenViewController.m */; }; + B6211F586ECE845BDC52226B40D463CE /* SDLDefrostZone.h in Headers */ = {isa = PBXBuildFile; fileRef = 0393BBC2C9A85C3D9B9616139D4F4859 /* SDLDefrostZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6226AFDF8EC2EF9AFB9A54E8746D4E2 /* SDLTBTState.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ADC53976D99CE2F85B0E80D35F54E94 /* SDLTBTState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B65BC8F264AD280C4B608EC613C945F3 /* SDLKeyboardEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B19D438E24EAAC5AB55CF4F1D7C0C34 /* SDLKeyboardEvent.m */; }; + B6CCE216B0EF2FB21C052AFBA47F8FF8 /* SDLAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2F51D8373F62E91462F357675AA277C6 /* SDLAssets.xcassets */; }; + B6E6C60209386BE1EA96C33B06677686 /* SDLProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = B4BA26A3F50E769204A2072B622513BE /* SDLProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B7690B374717F6654E1FB323F56CDAC5 /* SDLCreateInteractionChoiceSetResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C840BD5423689277D6E9D631A85F41E7 /* SDLCreateInteractionChoiceSetResponse.m */; }; + B79E708F7FE9CA288585EAD4F467C27C /* SDLNavigationInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 8027DAC33017EFA7299687C48733622B /* SDLNavigationInstruction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B81CAD6446F72990185C0B2499FBFACA /* SDLRadioControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 894048EEB0466180965743DBF850170F /* SDLRadioControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B863542C7C9CB768A3D04A69834CD9A2 /* SDLLogManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 70BE2640088F6CC3C663C6A47A6FF4EA /* SDLLogManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B877A9A1393EAA6899BBBA1B83912AA0 /* SDLStationIDNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FB0ECE1385A23AFF87B1D6E9848D84E /* SDLStationIDNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B891FD986004E64FAD5DBD9B5F711428 /* SDLStreamingMediaManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F447D50B76CF152BE05CADE1A36C2EF /* SDLStreamingMediaManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B8AD1E30EF9ABF9E7891A547006E7A70 /* bson_util.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 5ED1A1D0218C25583F5764B0E59FDC4E /* bson_util.h */; }; + B94BF8ABCA51E7953AA57545718C7C13 /* SDLLightName.m in Sources */ = {isa = PBXBuildFile; fileRef = 38C9A59422FFB04B66D9134E84B54F55 /* SDLLightName.m */; }; + B9617E8EDB38BF24FD843947A207D4B2 /* SDLGetInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 9396AC892DC0B21725B21B23AFA995D3 /* SDLGetInteriorVehicleData.m */; }; + B962D4BFCFE63DA66B345FEFD0543267 /* SDLResponseDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = F02F9007512F1E4FA4D094A117532E40 /* SDLResponseDispatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B9B40F9E3886D12F34F89C1991503195 /* SDLVideoStreamingProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = C9CA43544C48DA82A71EA58A4D291F62 /* SDLVideoStreamingProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B9EA100F0608AF1BD236FA70F8124F25 /* SDLUnsubscribeWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1172141E4430CBCB9C7B46FA2362F4 /* SDLUnsubscribeWayPoints.m */; }; + B9FBF724A55EE25820B80F367AC73C25 /* SDLClimateControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = A21A4B3EBE116F516BFBC74130C407B1 /* SDLClimateControlData.m */; }; + BA00DAA64D9E20E51594BE9DA61FB3B8 /* SDLLogTargetAppleSystemLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 7788E7C2DFC41AF4C6F9D275C716316E /* SDLLogTargetAppleSystemLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA1BC253AFEB4606F25935208F851471 /* SDLEncodedSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6423F48220C9A8B6095DDC2BC8E85DE5 /* SDLEncodedSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA3D8EF0CE88A9A0D9CD7AE6E2AA5FCA /* SDLGetInteriorVehicleDataConsent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C6C83F225EFD1EB3CF30CCBEC52C689 /* SDLGetInteriorVehicleDataConsent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA45891E7B3D37994FF8A8939804C746 /* SDLNotificationConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 106CC8005ED9499CD5FD635CC6B264FD /* SDLNotificationConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA4D812C328C254955AB984DB383EF9C /* SDLPowerModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = FC45F95EB06DB46BEF630E65F773DD1C /* SDLPowerModeStatus.m */; }; + BA96A1F8A67AA4B4EDF29EF9C9B80C1B /* SDLVideoStreamingState.m in Sources */ = {isa = PBXBuildFile; fileRef = 648FA1637D806CACB0CC9A6C444D1B77 /* SDLVideoStreamingState.m */; }; + BAC2CAAD8EF1B594AF2AACCC04E5C18D /* SDLButtonEventMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 1776C574198D8077B69B01D3AEDA34E6 /* SDLButtonEventMode.m */; }; + BADBE3327420053B18A5DC872A42BAEE /* SDLScreenParams.m in Sources */ = {isa = PBXBuildFile; fileRef = 66F45795ED9AEACF2E1E1767FF421BFF /* SDLScreenParams.m */; }; + BADDA940E23CE2325CC698BF0931F559 /* SDLSetCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C56E0DAFD813A6679773DEA90F319CD /* SDLSetCloudAppProperties.m */; }; + BB3AFD42421B78E509DDB0D3C3025F84 /* SDLLogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 99D249C8F6BCB49BC6DED24ABEACC7BB /* SDLLogMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BB601246A9167E4708E5B9D7B6E850F8 /* SDLModuleInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = C5CC066A137773D4739994E979CF375D /* SDLModuleInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC62D64FCA313B4D85D29F327B3A89E5 /* SDLSeatMemoryActionType.h in Headers */ = {isa = PBXBuildFile; fileRef = C5EFD2B1C3124A2AEC3850F1E0F152B5 /* SDLSeatMemoryActionType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC887BD28B535FDED0EE08BE93F01CBD /* SDLPowerModeQualificationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B8D419D41D4EBE7F427F3F1A6E8C791 /* SDLPowerModeQualificationStatus.m */; }; + BC95947B2CA1B575357D685F78EE3250 /* SDLStreamingMediaConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A0F610055C67181D6FFE3E0D8652FBC7 /* SDLStreamingMediaConfiguration.m */; }; + BC9735E85FD629EAA8E6D66A17FA922D /* SDLAudioControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 6076ED1F7C813186E772A1EFE55F1B2C /* SDLAudioControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BCA619430CF3590B6F43FA809D1629AD /* SDLOnPermissionsChange.h in Headers */ = {isa = PBXBuildFile; fileRef = BEEE2F7E9040BABB48B69701692886EF /* SDLOnPermissionsChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BCBEE0AE3ACC08FB525F661F1F7AC05B /* SDLBodyInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 264FB4E8863E17A2F5E34BECDA538F65 /* SDLBodyInformation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BCDDBC9A33D1F77E7522ECF8FC9A1926 /* SDLOnButtonEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 249F9CCBE006EBE28439076CEDF02C70 /* SDLOnButtonEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BCE0B77562870F561076138E433792E5 /* SDLLifecycleSyncPDataHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = DDD04A6F68474FB574C693B9CBD2C5A3 /* SDLLifecycleSyncPDataHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BCFD1E3A30AB7AFC8538D94E6451EBCD /* SDLVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = EF6117AA0363308CE09FE3E3A578564A /* SDLVersion.m */; }; + BD43BAB75FF7A0D1A0E2296F239A2D84 /* SDLTPMS.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B3CAB29D2B4B5E6B23F89F7C09B52EF /* SDLTPMS.m */; }; + BD70C9EC645E6C987CF29025EA5A4423 /* SDLWarningLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DCA0A5DCD6DD350EA1CF99B9837B512 /* SDLWarningLightStatus.m */; }; + BD9334E76F0C5A53139A91BD41F251C2 /* SDLRAWH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = D86564978231DBB8DE6638F518A092E9 /* SDLRAWH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BD9AB81D2EB679A0ECAE3F85B412382F /* SDLEncryptionConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D42EAA6631F7F9BA8CADAC3A96CC64E /* SDLEncryptionConfiguration.m */; }; + BDD7F9A3576E6AB17083ADB2CB825B21 /* SDLVideoStreamingCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = AC550FFCFB8CA9B1B0C09C0E26595391 /* SDLVideoStreamingCodec.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BE6575C305CDB643EFE2EEF7E6C18923 /* SDLGlobalProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D503EB0E143D4B5FF04B10A34BC6D16 /* SDLGlobalProperty.m */; }; + BE94382158A13556092EB443969BDAB1 /* SDLRPCMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 44DE2E913C1FFDEB763626983CED98D4 /* SDLRPCMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF1E60E37BF4D60693B64925C7F73BC5 /* SDLPermissionItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 694C894F8FA7F51AA620E23A7754B19E /* SDLPermissionItem.m */; }; + BF4207D49038AEDAE220D0EEE358DC4A /* SDLSeatLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = AC107A81E5890B57D66A4B85F2F5D37A /* SDLSeatLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF434044E8805B53F9C49572258A336C /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D35FA4BEEE3F908B03AEB2D32E4321 /* SDLGetInteriorVehicleDataConsentResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF741D4194863C9E087DA82D29EB42AC /* SDLError.h in Headers */ = {isa = PBXBuildFile; fileRef = 543FCEC5A85DD779ABF6ACE810B1AD64 /* SDLError.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BF82FC7181F586CF5EE1AEC6F08AFB8C /* SDLImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A5CB6D69CF7CCF3B825B42C91828400 /* SDLImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF9446AB36AF25C269305E518A6FEF66 /* SDLWindowCapability+ScreenManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5DB4842C8200AA008032CB8399D93B /* SDLWindowCapability+ScreenManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BFADD0FED2798C307E340300A4A559CB /* SDLCarModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B9B1FC9F310952A5B90D5345964A38C2 /* SDLCarModeStatus.m */; }; + BFC83F4E11869F5C6CD87BC9F91E123A /* SDLTireStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = EB0698F6977CDCFDF81D79A0FDBCD2C9 /* SDLTireStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C00BA8764AB904D2A89E38A8F5D9B101 /* SDLLogConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 824E5F03CBD68420A86B160BD96E6742 /* SDLLogConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C013B4F3EDA532B100A72EAE5104948D /* SDLRegisterAppInterfaceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C1E045F73DED94B7C08D794BBB769E4B /* SDLRegisterAppInterfaceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C032FFE551DF10F2182A1D1345526748 /* SDLNavigationCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 87E0AF0EFF86DC936E595031B5F1260E /* SDLNavigationCapability.m */; }; + C072FE06DD0CAAA689963411B9C86019 /* SDLDeleteChoicesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C95F788EAED941BB5F58CA21C90D17D /* SDLDeleteChoicesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C0A71255BA42AABF49FC6BF20B7E6942 /* SDLControlFramePayloadAudioStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = BF93E5FC62B485106482874C40C58DE6 /* SDLControlFramePayloadAudioStartServiceAck.m */; }; + C175A9B4A5DF2D064C455F649EA87DEE /* SDLButtonPressMode.h in Headers */ = {isa = PBXBuildFile; fileRef = FCEA708E983578ACFF71772E8EC543E2 /* SDLButtonPressMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C17F4F8AB2A43B0B4823D243F506F5E8 /* SDLRPCParameterNames.m in Sources */ = {isa = PBXBuildFile; fileRef = 2789675DE6523B265B03FC1FF6E6C922 /* SDLRPCParameterNames.m */; }; + C281C9947B10D00CE99D0A4880B05FA0 /* SDLTriggerSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 717B86B7C8D401095BF86C8890BEFADE /* SDLTriggerSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C283ED9B5B1EC7EC6868B78713450850 /* SDLECallConfirmationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = F5903A4BA6C59D4D52E4F8EDA87E0AD5 /* SDLECallConfirmationStatus.m */; }; + C29FD00E3FFA2E5D7C80F63B4E9E5EAB /* SDLImageField+ScreenManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C02BCB7CC0146495C11C4741811815E /* SDLImageField+ScreenManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C2AD5790A01FA909CB37927DA7F418BE /* SDLWeatherAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = FAFC34A107469B13834960D07A94FC42 /* SDLWeatherAlert.m */; }; + C2D33B43AC2FD5798C2FAB02B8174AD0 /* SDLSetMediaClockTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = BB22292F07E70E3D6FCDE83B18E1B929 /* SDLSetMediaClockTimer.m */; }; + C2EA147B1E0EE749146AD91F1A361EB4 /* SDLDriverDistractionState.m in Sources */ = {isa = PBXBuildFile; fileRef = F75444C19206F2D27C8E558236DD8652 /* SDLDriverDistractionState.m */; }; + C2F592A1499AB4B47912EDA24EFBF491 /* SDLSystemCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F91D4B24F4C2C59889390112438B1 /* SDLSystemCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2FE8CF94D832796F3EF72FB70D19BAE /* SDLAlertResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = CC9604E66648405ECCC5FEF1ED5DAF7D /* SDLAlertResponse.m */; }; + C330281B036B07AEF8315BBA3F980286 /* SDLReadDIDResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 276CAF8F9D6F163C8789B58614C8F995 /* SDLReadDIDResponse.m */; }; + C3A16DFCC7A71BF686D742882E0ABD44 /* SDLOnTBTClientState.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BB9CD0CFFBB9A34D5C1833A78E5C956 /* SDLOnTBTClientState.m */; }; + C401770909E121E973EEC50C039FE781 /* SDLStaticIconName.m in Sources */ = {isa = PBXBuildFile; fileRef = 7497259EDCC6CAC9BEF6D2D1E503EF68 /* SDLStaticIconName.m */; }; + C4378E5305D6B3EA5395DB20C54057E7 /* SDLEqualizerSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = E68B7D0A4A009DA0A9A0B94AB87A0D21 /* SDLEqualizerSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C49085322E666749EF2BFEBE0B39A03D /* NSBundle+SDLBundle.m in Sources */ = {isa = PBXBuildFile; fileRef = C60EA5909682DF758FBFC7F0114743A5 /* NSBundle+SDLBundle.m */; }; + C604E4365ACFDCA05168D748D10B6BAE /* SDLImageFieldName.h in Headers */ = {isa = PBXBuildFile; fileRef = A499748AF54AFC5230B135A169E0F5AE /* SDLImageFieldName.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C6882A2AA7E8DF44215463FBBD0A5844 /* SDLV1ProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B07D32813B19DEED174BB740E4AE97A /* SDLV1ProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C696CAE3A09EB97DC810FC07560EC69B /* SDLButtonName.m in Sources */ = {isa = PBXBuildFile; fileRef = 67855906284D207F83522CBD12130F96 /* SDLButtonName.m */; }; + C6B6887F8C6AD6C37EF48F20921312B6 /* SDLRegisterAppInterfaceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 65DF9500E597CFDE3EF8716944FF3E34 /* SDLRegisterAppInterfaceResponse.m */; }; + C7031C39032964315A742AD31DA2DC03 /* SDLFunctionID.h in Headers */ = {isa = PBXBuildFile; fileRef = 6832CFBF1515389AC3364F399A91817E /* SDLFunctionID.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C72845A179CF91D97BA28A95A08D1B5F /* SDLImageType.m in Sources */ = {isa = PBXBuildFile; fileRef = 143137C3210A437C0540124CDBE42B86 /* SDLImageType.m */; }; + C765A62BC7D3BAF02422BDDC64022D28 /* SDLSeatControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 74933F6EA38779F0E6B6A5E647BFAF3A /* SDLSeatControlData.m */; }; + C8354B4FAA109B7F8E992FB959D0D7F3 /* SDLAudioPassThruCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 64A402A669311BB17E6D1A2C93B61EF8 /* SDLAudioPassThruCapabilities.m */; }; + C83608B2022EF502365295CEE3046EE9 /* SDLLightControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C48BC3D16BDEC962C895DAC4CD023C /* SDLLightControlCapabilities.m */; }; + C8B526917E4FCD8F00E01FAF201C6FF1 /* SDLTimerMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B6E8C1AF472B205BEEAA5ACDA1339A3 /* SDLTimerMode.m */; }; + C91879AA8DE05A71C2033F931AB5CCA3 /* SDLAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C4083DFA322D07EB69325A6B9D19535 /* SDLAlert.m */; }; + C927DC95742CBB01C497AFA4B78445B6 /* SDLDeleteCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = E704475B197CAEDFADBA46990776ABED /* SDLDeleteCommand.m */; }; + C93DE69DC8E81F3B919DC5041BE32DF5 /* SDLCreateWindowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FA15E0A79BCB48FD659C8724AE5E8D70 /* SDLCreateWindowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C96541A29287F286A29CE2D41F837A8C /* SDLLockScreenPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 756E3677484D98F236D0DEFED0A75FCB /* SDLLockScreenPresenter.m */; }; + C9A51A47B90DE8253FD3BC6440CFB71E /* SDLAddCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = EBEB8360055FF562885140AB8EDC891A /* SDLAddCommand.m */; }; + C9C038075883A4ACFC245F7BB0F5AAC7 /* SDLMyKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 20D7BE66EF79F8245CD53754C388C728 /* SDLMyKey.m */; }; + C9F342135DE170D7298B6311F1F41FC0 /* SDLUnregisterAppInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = 75C363A47DCF966B0F26AC9DF8623EFE /* SDLUnregisterAppInterface.m */; }; + C9FC2712FD59353F55017123EB379B15 /* SDLSoftButtonCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B6FD0DA2716669347AF1A445E85BE70 /* SDLSoftButtonCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA828C268CD9EDA17EEB8F8B54EC580F /* SDLGetInteriorVehicleDataConsentResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 64190B404D04BE52AA1D0DEE2805F556 /* SDLGetInteriorVehicleDataConsentResponse.m */; }; + CAC3A564C9FD78BB9295F9B6399CEA9C /* SDLSeatLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 679D66BB05750D3932558F28A7CAD469 /* SDLSeatLocation.m */; }; + CB314D43C8D15A58318A5743F366449C /* SDLRPCResponseNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = AE8A6C8CDEC1BDBFE21E0C20040FB131 /* SDLRPCResponseNotification.m */; }; + CB5175E540FEDA9D29FD99735A14E9CC /* SDLRGBColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 9218B97772D190A9BC1FBAC18A3BF6CE /* SDLRGBColor.m */; }; + CB753DDB9FFC23A82636E11F3E8201E9 /* SDLShowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3968E1FF70DAB6F1C5CCCDB5E938D6AB /* SDLShowResponse.m */; }; + CB78A3E864EA0A002502E8C3AD6C46D8 /* SDLAppServiceType.m in Sources */ = {isa = PBXBuildFile; fileRef = 48307D297D9F19863197DD3A5B8AFBD8 /* SDLAppServiceType.m */; }; + CB791B74CA451436BBDA8DBA49F32388 /* SDLWindowCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 17FE8D4DAAE70A4CF5E436290E17D17D /* SDLWindowCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CC38CE4B649D9F3DD92503A289BE0CD3 /* SDLLogManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FF74FFAAB89A4E89CD8576C7CCF13EB /* SDLLogManager.m */; }; + CC75C0FF02FCD0592B72443A8EF5A318 /* SDLECallInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D5380F0BCC170C113C3965CCB7AD31F /* SDLECallInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CC7B499C32833CC21989CB78BF57BD8D /* SDLVideoStreamingCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = C4FFC5C7A65B24AFC32457EF2DE79160 /* SDLVideoStreamingCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CCBECB250F1187B41A68914229588D8C /* SDLTurnSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 375F2398BB370B3CEDB269657E50A87D /* SDLTurnSignal.m */; }; + CCE74EBBF92764FA7768E11556D54FD6 /* SDLHMIPermissions.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A6CDBAD9F0E1DE4C224214867D802DE /* SDLHMIPermissions.m */; }; + CD55C89B732A94B7FCC7CC31DC96683E /* SDLOnTouchEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5755CA4656E4B0C76ED9F9F63356B985 /* SDLOnTouchEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CE49C253A850F521047B5640FB5E53D9 /* SDLLightCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 28171FB492C52974721D3E4837BA46EB /* SDLLightCapabilities.m */; }; + CE691148A9A35566ECB26399D679E7B2 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h in Headers */ = {isa = PBXBuildFile; fileRef = 371F5509AF08468749E6798199E0D549 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CE860D295614DCB059C534EDA0E64B39 /* SDLShowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 86689BFD78F7052E93F28B5BBE6A09E6 /* SDLShowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CEF0992BAA5B7F699F8DA9AD14CF30D7 /* SDLHMICapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CF3282DF31D7BD5C48812D01950DBA5 /* SDLHMICapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF0D78642CD57EA660A8067270AAAF75 /* SDLAsynchronousRPCOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C932CDEE9602EF8E18CDD087C0022D /* SDLAsynchronousRPCOperation.m */; }; + CFBCEFA39678BB8EFED556C4C4E393C8 /* SDLVehicleType.h in Headers */ = {isa = PBXBuildFile; fileRef = C65504710D6D14CB30F9BA892B1A289C /* SDLVehicleType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CFC7B8C1E1DC3CFE16D20AA62F278C69 /* SDLRPCStruct.m in Sources */ = {isa = PBXBuildFile; fileRef = CC30ACD3F6015F21547F9A433E6385B3 /* SDLRPCStruct.m */; }; + CFC9643FF9F27BE41FD8D8256171F71C /* SDLIAPControlSessionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E588D52092688278DFB1ABBD34198268 /* SDLIAPControlSessionDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CFD9812D61C603C043D630BB5F397E1D /* SDLSubscribeButtonObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = DBDB552AB8B94525743E433DEDF82011 /* SDLSubscribeButtonObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D0023E1F0600BF9CAAAA43E80FB6FEC7 /* SDLGetAppServiceDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 23F819C18E6C44ED74C4333AD5189778 /* SDLGetAppServiceDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D029694A9ECA974051F09BD25C50A725 /* SDLMetadataTags.m in Sources */ = {isa = PBXBuildFile; fileRef = A3ED9F7681E099143B800F40621D588E /* SDLMetadataTags.m */; }; + D03657B4B97135C1DCC9000C19C8BE79 /* SDLObjectWithPriority.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C0A8CFB3D9B165CAB3A25F6C5FE2553 /* SDLObjectWithPriority.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D066E3D20D52ACFC367678312426430F /* SDLSubscribeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B5139FCDAC1C84B8E10AB5D0D7E1E0E /* SDLSubscribeButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0F3FBDF8B599CEC7A632F06AC53403C /* SDLDeleteInteractionChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = AB15A2A894735B2E1F0B2159CA744E96 /* SDLDeleteInteractionChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D1369C0C9D556D158451FE97A301BFA7 /* SDLRadioControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 6974D1792F6599EC0D62B246B18D24E4 /* SDLRadioControlData.m */; }; + D14B926EFC1FDF906D5A57CF73D656A6 /* bson_array.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = C3C759E34418D5E3F059C76D2E9BD03F /* bson_array.h */; }; + D1DAA1AC9B11A5D2BDD511E04EB074B3 /* SDLPCMAudioConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A8CEE67C635CC8AF33D4597EDEF323E /* SDLPCMAudioConverter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D234391D80E52A63CABA557E2648CB1D /* SDLDimension.m in Sources */ = {isa = PBXBuildFile; fileRef = A65FAB1A1AE67773721FE07A100A3E83 /* SDLDimension.m */; }; + D2E6FD57DC939224A0D55A6A73C8E32A /* SDLSystemRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0692FFE8FAC6940F376FCEF685DDC7B1 /* SDLSystemRequest.m */; }; + D30AA824325A769A834200E9DD3F59C0 /* SDLElectronicParkBrakeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DBF14A9018FF0267ED5E2B71139B68D /* SDLElectronicParkBrakeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D3348A43DB6C171E887F1D9954A78844 /* SDLRemoteControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 2498D14A443BEA451B1C1E3F10FCAE0A /* SDLRemoteControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D354CACF9942538FCD7108F3AD25E2FF /* SDLSubscribeVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C42D7A37E6811A0891E4271E3B53A5 /* SDLSubscribeVehicleData.m */; }; + D3D759726795216F9424D189A841E710 /* SDLAppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0C5BDEA392C2632EF566C04D76A2D0 /* SDLAppInfo.m */; }; + D4A54E3C0D63E0D6C971F0FC5C75D9A2 /* SDLButtonPress.h in Headers */ = {isa = PBXBuildFile; fileRef = 5515A49433320321179C4B897753C324 /* SDLButtonPress.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D4C33A66E4B2EDDA130CF9F6A5F4867E /* SDLCreateInteractionChoiceSetResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5123591BCB0470FF6776714BBA79CF39 /* SDLCreateInteractionChoiceSetResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D53AA773DBCA4F6FBCEBA54EFB599F67 /* SDLControlFramePayloadRPCStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = C38C988FF2BC04E3BECCA8B8B2BBB7E1 /* SDLControlFramePayloadRPCStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D53FD842288FA0D06416A49B6C1AFBE0 /* SDLGetFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 61F44CE148CA8C83F8C0A4C085412C87 /* SDLGetFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D54A635809186EE3A7DE1A53F06521A6 /* SDLWindowType.m in Sources */ = {isa = PBXBuildFile; fileRef = FC49D6A818044BC964C9DFC092C0A8DF /* SDLWindowType.m */; }; + D5CC270CFF00D37990A5827DC91AFFAB /* SDLSamplingRate.m in Sources */ = {isa = PBXBuildFile; fileRef = 547FC85E47390A2ECB343B5888FA5AD9 /* SDLSamplingRate.m */; }; + D64E2353417610902CA55C5AF2070043 /* SDLRPCNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CDFA658ED93C052C47B55E697EA5794 /* SDLRPCNotification.m */; }; + D6A04EACEFFB11EE78396AFCD301CFAD /* NSMutableDictionary+Store.h in Headers */ = {isa = PBXBuildFile; fileRef = 879A113E59D1AE7DFEBF6165CDA5A8D2 /* NSMutableDictionary+Store.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D71547F3652CA341C38A8D6F220F2120 /* SDLSliderResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A6FFDC23241F75DEE1A10FDC70F86EF /* SDLSliderResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D73ADEB3AC0387951C53E6960FA055E7 /* SDLWarningLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 6576A40CB2829D4CDEE4A81F7E0E7603 /* SDLWarningLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D795C46A692D0C8E9ED02F075AB7ACEB /* SDLLockScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F82D999CC1B451EA5E5D2B62490AA064 /* SDLLockScreen.storyboard */; }; + D82D736B2C3DF45A7C4F9F8FD1C56517 /* SDLPerformAppServiceInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A913DD8B429EFA97826EA9C49B3B92B /* SDLPerformAppServiceInteraction.m */; }; + D862DF3A1123E8B1E20F34D6FA127FA3 /* SDLPermissionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EFA8634E116455C1E294504A1C5622 /* SDLPermissionStatus.m */; }; + D945C7965067F2906108EDCC145A2E96 /* SDLImageType.h in Headers */ = {isa = PBXBuildFile; fileRef = 93C7430585EB46BE55AE0CB860148481 /* SDLImageType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D95A9D7BB42ACCBA3A63C34D01602A83 /* SDLHybridAppPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = BD5725BF0453F0E370C791AFFCA33AB0 /* SDLHybridAppPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9A5E832734F7C100908FCC5E7F82B4E /* SDLSystemContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DDB64CACEBCF991EC3567F7211CF4D7 /* SDLSystemContext.m */; }; + DA392F7D8AEA6EE6F78C2FB9A4922637 /* SDLGetCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F2C244E4B55F098A0A0B3DB07E12A8C /* SDLGetCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA960755FE2D4EDAC30E870462D1A91E /* SDLTriggerSource.m in Sources */ = {isa = PBXBuildFile; fileRef = CBEE832F83BA93DFD8764142F6CBA3D6 /* SDLTriggerSource.m */; }; + DBA4C7F13AA39D73C5CC1DB14A0A6AB9 /* SDLSpeak.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F67F561A7D9BA5C6B5EFD140526D3F7 /* SDLSpeak.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DBDF33CC4BB41323D4184E33B9461898 /* SDLDisplayType.h in Headers */ = {isa = PBXBuildFile; fileRef = F15F88F1FB854998E6F08EFE580379A1 /* SDLDisplayType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DC881BB2F2DFC11A47CD97DFA6AD0A35 /* SDLUnsubscribeVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A3B1CF955FF3C570C55831E8B43B2068 /* SDLUnsubscribeVehicleDataResponse.m */; }; + DC9AE1FE02EE4FA7CC1FC9B08CEBC606 /* SDLFileType.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B563B100B41A14984E794CEF82D270E /* SDLFileType.m */; }; + DCCB73ABAEDCE1A79D4064B827A4A199 /* SDLShowAppMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 8853DFABCBBEFF6CC328439BFF8817C3 /* SDLShowAppMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCE0587A668CB5629A3922AEED72696D /* CGPoint_Util.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A08ADB128C672DC69C4127E045F5070 /* CGPoint_Util.m */; }; + DD0A1BEB5AEA8AABB567D0818319E6E2 /* SDLAudioStreamManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 415932F30412FF10E539284D48E8C35D /* SDLAudioStreamManager.m */; }; + DD12156E50D744D040B9FEB30EA4953A /* SDLLockScreenConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB3BE56CAC7F62425D19C1C143A480E /* SDLLockScreenConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DD85346FE22FA8E930D3CB3A28796C18 /* SDLAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BB01A65CEF78E53E9E87B5A49249EF7 /* SDLAudioFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DDC9A6C3B028FAED1D590BB8FB455CFA /* SDLDeleteInteractionChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = CBEA9E8BA4BEAF80193321CF986F0A91 /* SDLDeleteInteractionChoiceSet.m */; }; + DDD1B26C9CF46F4824E82A0F9680CC69 /* SDLIAPControlSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E2182C9F77CC4097FBDD673E8C2836A /* SDLIAPControlSession.m */; }; + DDE358C2EE534C830E21C925CBFF1336 /* SDLSeatLocationCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = CBF1AE79CC723B76B9681FA0C5983591 /* SDLSeatLocationCapability.m */; }; + DDF86259DDD170BA0A4E196E4091693D /* SDLVideoStreamingFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = E11A499A146EB80F4A50C4AE2C91E1B7 /* SDLVideoStreamingFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE5FE3482E96C8FBC5DCF4D0E5163EBE /* SDLPutFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E86A7FA49FEA6AEC0D760D8965C3F6E /* SDLPutFile.m */; }; + DEA9189597B1D402634C0FDC1F148A1E /* SDLIAPConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D62134BBF189EA2FAE0F2B9924C1CEA /* SDLIAPConstants.m */; }; + DF0F464852D0677F40806289EC180D71 /* SDLTransportDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 813A808D60B18F9235194773796098F2 /* SDLTransportDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DF20DAAFCB4697B4CEEE7EBD7B0A4E3C /* SDLConnectionManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 31D638E1DE7C038192AB4E63575C1E34 /* SDLConnectionManagerType.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DF259E1489BF17C7A620368B26B8E6A8 /* SDLPresentKeyboardOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7785AC3BC85CD23B07AA11423440A028 /* SDLPresentKeyboardOperation.m */; }; + DF389ED4CFCC4C49722FF32428C21F02 /* SDLTouchEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = E5BD5854C96BA4FE20BD941CF41A25F7 /* SDLTouchEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DF7F7D30FAFA0F25842E683D7A400EE4 /* SDLSyncPDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 20AA06A772B16D6AFF72CC6CA4ECBE20 /* SDLSyncPDataResponse.m */; }; + DFB5323BF440F714217F5A09633AC683 /* SDLUnsubscribeVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = D84CA7BBE7B7548D37D20852C77A974C /* SDLUnsubscribeVehicleData.m */; }; + DFD13BF6A7E6D738C7D1630542AF5872 /* SDLWayPointType.h in Headers */ = {isa = PBXBuildFile; fileRef = 28EB6163FCBF6FF4A874232363F1F693 /* SDLWayPointType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DFD1D56FCF90A9760B608B68C4B20D6C /* SDLDeleteWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ED1437EE8F2E16924B445E6758A4682 /* SDLDeleteWindow.m */; }; + DFF19085B6F82962C5F1F82038CCB5E2 /* EAAccessoryManager+SDLProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EFC8BC7FEE4107EC3E3E44D15D11048 /* EAAccessoryManager+SDLProtocols.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E056C153EAE20DCBD4C9346F351F7717 /* SDLGetWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F504801CD4380D506BB8BFFCF7087AAC /* SDLGetWayPointsResponse.m */; }; + E078403E7DFF3C8235326AF4AEC6EF77 /* SDLMassageZone.h in Headers */ = {isa = PBXBuildFile; fileRef = A71C484F36F765E076597940091AFBAE /* SDLMassageZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E0A5E4C0E118E169E451821D5BF2E993 /* SDLAppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = F27A5F1AE23A8CC4875C2B9F720E0983 /* SDLAppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E0A861742905E7E47078908A5C2A0AD3 /* SmartDeviceLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 87267A348F7A4B4D11EE9347E8677479 /* SmartDeviceLink.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E0E1B3ACC985352FAE972CBA76E0181F /* SDLAppServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = CBC0300359DEB43A7C09E1D901FCA137 /* SDLAppServiceManifest.m */; }; + E11E514E7F0437EA78FF5E7634527A07 /* SDLSequentialRPCRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DD86F842662CDA74C3E46854A424F2C /* SDLSequentialRPCRequestOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E12CD1AD7EA335D3E545466678071A23 /* SDLModuleType.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D09D03FDBAC839C0B609D7085FE7612 /* SDLModuleType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E15BEF011399A57453FA0051FDDB3602 /* SmartDeviceLink-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C93D02DE99AD9CEDF69F718811048F8A /* SmartDeviceLink-dummy.m */; }; + E189829941785EB78EBB2334CF16DAEA /* TestSubscribeButtonObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 6748E54A60D5360EEF0582C7FD7CCF5D /* TestSubscribeButtonObserver.m */; }; + E19B88D7A8B3DD5BB44A6A8A020B25E6 /* SDLSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6802538CA9682265946D00C4029FA1AF /* SDLSystemRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E26CE02D51DACC443064BFB173681339 /* SDLControlFramePayloadEndService.h in Headers */ = {isa = PBXBuildFile; fileRef = 450FA67BD7C44184F88D81F8C399251F /* SDLControlFramePayloadEndService.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E27BEE118C9765810483CB560ABD00CC /* SDLPermissionFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = D46CF1A0CC78659C588255386F2C8286 /* SDLPermissionFilter.m */; }; + E30B75E167E1051A94351A3237DD84B4 /* SDLWindowCapability+ScreenManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 19123175F1282074060FF723AA346973 /* SDLWindowCapability+ScreenManagerExtensions.m */; }; + E3644BDDD294BE373BF8857CA9A0C87A /* SDLLockScreenViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = CEFD29CFFB2F5E8DB487421FE557262D /* SDLLockScreenViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3DDE087EE819EC6A6C2B47398AD2778 /* SDLAsynchronousRPCRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 734B4EBB383604167B153F2C9772FB06 /* SDLAsynchronousRPCRequestOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E48843702E229647A8BEBA0EDFEAF5A5 /* SDLFileManagerConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 87FBD700D9DBA4D763D490E8394ECAAF /* SDLFileManagerConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4C8134393CD7860FE31F8B17DDF6F51 /* SDLLifecycleRPCAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 560968D114523D039B47918DE9FC2B26 /* SDLLifecycleRPCAdapter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E4DBBC95BD7911FD5036361AD92217E1 /* SDLLifecycleMobileHMIStateHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CDFC5B023598A90612B35331554854F /* SDLLifecycleMobileHMIStateHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E4E197C549F240B3BAAF1AC8DECE3A05 /* SDLUnregisterAppInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F13B63A4EAD46B06716304725A8B45C /* SDLUnregisterAppInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4F533095901E422CA5FDE7ABA3D70F5 /* SDLSoftButtonManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 76B79D31FD4EBE8EA253F726A2DFA50B /* SDLSoftButtonManager.m */; }; + E5979E7ED144130EDF229E940FDCEC6D /* SDLDiagnosticMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 534381EF77922C7C1FEB465E9A76C391 /* SDLDiagnosticMessage.m */; }; + E5B8877CA9E196869619D1FC0581AFFD /* SDLMassageMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DE90E5D2B3882F8873FABF50DA4CCA6 /* SDLMassageMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E60C31BCA01176861E329F22E3E0E7E0 /* SDLStreamingVideoLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 23459A7914F07050043EE0F27ED4F5AC /* SDLStreamingVideoLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E64C863EE7F6A9280C3D958F9FAB6D75 /* SDLChoiceSetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 956C902E2F413D6BBFF38305B200A08F /* SDLChoiceSetManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E67FF2ADC53F5081B3B89A633B585ADB /* SDLFocusableItemLocatorType.h in Headers */ = {isa = PBXBuildFile; fileRef = AAD2B4E1C0F33BFEB252C2481A9032F2 /* SDLFocusableItemLocatorType.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E6A2C645C61F2F9B43588404108BCE6A /* SDLV1ProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 697EB906700E028BBEB4A35248DC2B56 /* SDLV1ProtocolHeader.m */; }; + E6BA8D851540D188968B8544AF39F7C7 /* SDLChoice.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BAF278CD2A85FB40BB8CC980CAF9CE0 /* SDLChoice.m */; }; + E7223141AA526DE27508B110154D0FFF /* NSMutableDictionary+SafeRemove.h in Headers */ = {isa = PBXBuildFile; fileRef = 3267E75ED2305FABE31E4255A576BFF0 /* NSMutableDictionary+SafeRemove.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E72E6D7C1BC53DD19935FABF258E5F28 /* SDLTextField+ScreenManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D385296CCF12F9A0B41C02B3DE307DF /* SDLTextField+ScreenManagerExtensions.m */; }; + E745F04FE498B11A62DAC56607C8F16C /* SDLGetDTCs.m in Sources */ = {isa = PBXBuildFile; fileRef = CCEDBA4CF5298ACECCDBB21E9EF83088 /* SDLGetDTCs.m */; }; + E770BD60F6BEE6EA0CC738E462297255 /* SDLDateTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE3643BA5E989C40224C3A030671F99 /* SDLDateTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E77B6A7478F7762E6DF80267D1107F58 /* SDLElectronicParkBrakeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CF68D31D1441A9B01A4855729375706 /* SDLElectronicParkBrakeStatus.m */; }; + E78A6E5549B103DFAE743AD12D3BB3C9 /* SDLControlFramePayloadNak.m in Sources */ = {isa = PBXBuildFile; fileRef = D08CB1A94F1B6EE63D943DD3D8D04CA0 /* SDLControlFramePayloadNak.m */; }; + E7C7BCA91C1B7925FF3236886B7C661C /* SDLStreamingMediaConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EFFAA583749B44A2BF65582EA151370 /* SDLStreamingMediaConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E810E9E75212B959F2CD0DF82CD36C73 /* SDLAppServiceRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 453036FA291BAD166B2A99B5B41BD415 /* SDLAppServiceRecord.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E84F68513747CEC8D204D0D889788925 /* SDLChangeRegistrationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 96D8D2CAC3C9D900AC00A8B3CC5C579F /* SDLChangeRegistrationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E856AEBFEFC7D5F0578CD0BCF2E437A2 /* NSMutableDictionary+Store.m in Sources */ = {isa = PBXBuildFile; fileRef = 9125F90EF6EEDE90B5699DE26ABE1AC6 /* NSMutableDictionary+Store.m */; }; + E879B34C758CF14640C5A627D0307261 /* SDLReleaseInteriorVehicleDataModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 80E39D52CFCFBFC32F5CB5C74DE3AAA0 /* SDLReleaseInteriorVehicleDataModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E8A50AE74D22C3B1C7383C7A66920E85 /* CGPoint_Util.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD6F467D5959B95D867103EEA1CA0D2 /* CGPoint_Util.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E8AAE041A57854E0F8D501E9E3069433 /* SDLAudioControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D35EEBE45318E549076542898349235 /* SDLAudioControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E8C544AFFA8924FF213F3F40FD60CB93 /* SDLLogFileModule.h in Headers */ = {isa = PBXBuildFile; fileRef = AFC91724BBDC797A1FBE9062D011BD62 /* SDLLogFileModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E8EC8F9D6034BB1DE7A080BE397C90F4 /* SDLRPCResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 12FA04857AC1900EEA2522D1D3101207 /* SDLRPCResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E9259CB039160D0244527AB61D400DC1 /* SDLProtocolMessageAssembler.h in Headers */ = {isa = PBXBuildFile; fileRef = FBC6B21F650C1A094011B17D5E921EE8 /* SDLProtocolMessageAssembler.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E931DA8F802C54BF86A5340D1A2B2137 /* SDLLightCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 47C1FDEBDE61E5805D49671442A7A863 /* SDLLightCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E976D4852A3C6F9FD8D41E3EDEE93C12 /* SDLArtwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D43F462BE01761031E4AFB3D2476A5F /* SDLArtwork.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E9863F20A70B2CC2E80FF2810B3C9D62 /* SDLHybridAppPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F676E8F3D670FF0D4C133C69B09A3DC /* SDLHybridAppPreference.m */; }; + EA3FCADC9D8E43CBCFC84DFE35BCFAD8 /* SDLKeyboardLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = C33288F60F5B286E2B4C53A09F9694A8 /* SDLKeyboardLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EA6E38C397BEA72FCE30006B71CA4BE6 /* SDLGPSData.h in Headers */ = {isa = PBXBuildFile; fileRef = CE702433D4927A3186F0C2ED53D7F27B /* SDLGPSData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EAD277CFE95CC66B1039E4D7FDB59286 /* SDLAlertManeuverResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DCE03B2B123ED8E259A090EA186A04C7 /* SDLAlertManeuverResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB06F65BAC152480E3E9C9F16199CB39 /* SDLUnpublishAppService.h in Headers */ = {isa = PBXBuildFile; fileRef = 93B08DECC2D7CA909B9CDA3141DB7B0E /* SDLUnpublishAppService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB14E5C92B2A258AAD60D0CACD27F65B /* SDLBeltStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = CE75998AC803F932D548A5CFAFE79632 /* SDLBeltStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB385DA834293AC271339D75AF78F3FE /* SDLStreamingProtocolDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F7A53F84A8696465E51EAF70199ABE9 /* SDLStreamingProtocolDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EB4732C359585CD72017A5D90B904EDA /* SDLDeleteFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8968D59CE9F5ACC5102A6047D3E64151 /* SDLDeleteFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB66896A19F2C1294373CFB8E100750C /* SDLImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 5607006D258938F74C9BF96F14B4D4DF /* SDLImage.m */; }; + EB82C497CFD63A7E991892F5B60D361D /* SDLOnEncodedSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = BB36829AE73AF06B17E8AEA68D9D2473 /* SDLOnEncodedSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; EB96732B0C7E6402276EDDF4DE47A4CC /* Pods-MobileWeather-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FC419B6D5F4F5B911DB8B2F295E08532 /* Pods-MobileWeather-dummy.m */; }; - EBE09075FFCB277CF9EA3E3A4D070C84 /* SDLScrollableMessageResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = BB097D4C8A058214236F5DA62E2D55D0 /* SDLScrollableMessageResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EBF9DDBD069ECC7C4BF0C8C6092DC67C /* SDLLogModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AC029B73C422385316B810096AC575F /* SDLLogModel.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EC00209B66BA6A8E9C3CECCD2F5B5B45 /* SDLSubscribeVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = AD92E87BD9A9816EC4D59E0AD66C1E62 /* SDLSubscribeVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EC0A56B098D4D9D2DEC520EF28D878C3 /* SDLLifecycleSystemRequestHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 5ED3A5134C0B156DBE89E14A72AB0F95 /* SDLLifecycleSystemRequestHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EC0E19F24C8F829BAAA5042EC6CEAE21 /* SDLPredefinedLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = A638ABDCA82A0FCFD9E2949D129993CD /* SDLPredefinedLayout.m */; }; - EC0E322A16F7612CAF6B035EC0C3EF99 /* SDLSetAppIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = E78CAECB818A0AAFD5ACB1B475C157D2 /* SDLSetAppIcon.m */; }; - EC1F50828A025FA4F94B70385787ABBF /* SDLVehicleDataResultCode.m in Sources */ = {isa = PBXBuildFile; fileRef = 93667B5FF68BE37BC728FB920DD912EA /* SDLVehicleDataResultCode.m */; }; - EC85B08AF38BBDD94B706D8341525764 /* SDLV2ProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 9303C2006A43927A3DDDA863577D7E24 /* SDLV2ProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - ECC7D8F9B89FAEB6F736532C0E9492FA /* SDLUnregisterAppInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D1B8BCE12335818CDCDA92072B0EE7F /* SDLUnregisterAppInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ECF14494FD79560B8425DC6C914A0443 /* SDLAudioStreamingIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 73ACA9CF96F869FA20D4FA90D8076760 /* SDLAudioStreamingIndicator.m */; }; - EDCF0D12F91D225EE21FC90B90DF45B0 /* SDLIAPDataSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 79D0753524C87826EC27651FB26FD354 /* SDLIAPDataSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EDD61F460E67ABD6093235C76D0B3030 /* SDLDisplayMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 25D424DB2BA7511820D2FE4FCDC9E179 /* SDLDisplayMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE126905164C9734AC28DDFC63C52D4A /* SDLSetCloudAppPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FB773F958DBC067615AA9A0590DBCC61 /* SDLSetCloudAppPropertiesResponse.m */; }; - EE67E315BD67A87FF40C84C77AA35394 /* SDLAppServiceCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DB78A3398DB496866979B7038BB5583 /* SDLAppServiceCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EEF6E7F741B89CE1B74279CDDD578B68 /* SDLShowAppMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C9AED1F70FC929F9636D503F5A4B658 /* SDLShowAppMenu.m */; }; - EF10AC48D2719E2DFB43ACCF6D899D0D /* SDLDynamicMenuUpdateRunScore.h in Headers */ = {isa = PBXBuildFile; fileRef = D4966D54B828A01F82DC4326A367A6B3 /* SDLDynamicMenuUpdateRunScore.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EF19B8608648A79B8FB439746726C03D /* SDLLightControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = C793CE4C5804B98CF64AF6F63FDCFD33 /* SDLLightControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EF5F16A2D1A46F4EAA5E69F72AD45ED6 /* SDLRPCResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 80BA52F7804336DB0F03FC8F1C10CD00 /* SDLRPCResponse.m */; }; - EF6207A4CDB7229EECBD4E564185CB8E /* SDLControlFramePayloadTransportEventUpdate.h in Headers */ = {isa = PBXBuildFile; fileRef = D9122ED144BA8E4A71AAE00847B80AD2 /* SDLControlFramePayloadTransportEventUpdate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EFE7C89F1D6188B957882AC34CE3D2EF /* SDLShowAppMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 950FAD2DDF31FA20CDC674CA6C66F3C6 /* SDLShowAppMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F03F8D0FD515F7D50A09B053578BE029 /* SDLRPCNotificationNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = E89CF33AA04C619DDD01D52E4CA9ACA2 /* SDLRPCNotificationNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F0771FB03F3BE78A03CDA6851381B1B6 /* SDLTextAlignment.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ECBAA05C55448900253CB47419A5374 /* SDLTextAlignment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F0900CEC7175AD4E95776489973B213F /* SDLGetCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 13701FFA4C23EEB343B1BAA4DE60E163 /* SDLGetCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1795858A80044888465909C25A2D3C6 /* SDLOnDriverDistraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 610922E85FBDB66F79FF6230A47D4B75 /* SDLOnDriverDistraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1A103230DFAE80CBB1C5E087DBBD700 /* SDLPhoneCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C86980F55A57904FF85C7623588A367 /* SDLPhoneCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1BC8A93814012F7CDFB754643FA878B /* SDLStreamingMediaConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FBC3FE7098E4D00F7657B9BFDBF6AA /* SDLStreamingMediaConfiguration.m */; }; - F1DD1651F7D575FF5C044437AA4FED30 /* SDLDriverDistractionState.m in Sources */ = {isa = PBXBuildFile; fileRef = C578DE7BA9E0FFC539C979EB88551881 /* SDLDriverDistractionState.m */; }; - F1FEB31C5C7A2C466F936C8CEAD401DD /* SDLAppServiceCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = F077FE63CBC553DC56DCF5958EC799BA /* SDLAppServiceCapability.m */; }; - F210B2382368AEBE9301E0EB34A26D6D /* SDLSeatLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 95168703431BF300E73567EE607D8A0C /* SDLSeatLocation.m */; }; - F256A192BBBE3C98C369D2375D6EB1E8 /* SDLEmergencyEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = A58155F4D86C1C49F4B0245936BBF3E6 /* SDLEmergencyEvent.m */; }; - F26364001CACD8039EE54E4E7BF8BEC8 /* SDLShowConstantTBTResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D3D372A87B4AFED15B15E0EC89F51A5 /* SDLShowConstantTBTResponse.m */; }; - F283AA06AE3E28E317A738DBA7DC9CA9 /* SDLPresentChoiceSetOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D34DA30DA43361D2C480A221DBB67CD0 /* SDLPresentChoiceSetOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F2B7CC9ADABB102423469D03817D6EEB /* SDLLightState.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FEC1FB5460DDB76F458A2F7F27AA236 /* SDLLightState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F2D2FD0B10D0FFD8AE6299BD90601122 /* SDLLockScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 505A39ADC4E3561B7594E28FD0429E64 /* SDLLockScreenManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F326E244E8C563D5B3BD41A56D20D18A /* SDLMenuCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F5A4EE85CC2237920F6A3B30FCE073C4 /* SDLMenuCell.m */; }; - F3383B633BE898CB9A98120AC1D7D7E7 /* SDLECallConfirmationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = F796106033DB7CF49C2AFF239DDD2F71 /* SDLECallConfirmationStatus.m */; }; - F36307961DF70A8DFC73478E78F68284 /* emhashmap.h in Headers */ = {isa = PBXBuildFile; fileRef = 4498BA293BEAD680B6055DB76B201258 /* emhashmap.h */; }; - F3E03877BAD0D44D99FF726626072704 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h in Headers */ = {isa = PBXBuildFile; fileRef = 154F7BD449EBAB714A8FBF679C03A16F /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F4007F4A5519CFDDF825860E24FBB59B /* SDLUnpublishAppServiceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B777CF456AFE62300FFF21779B554D81 /* SDLUnpublishAppServiceResponse.m */; }; - F438AFD76D78B6660ACDA6441A358A2B /* SDLOnLockScreenStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = DBDC0BCD9D5A756A12269D89CA68E411 /* SDLOnLockScreenStatus.m */; }; - F4419F5F39751E51D708DC49653C24FE /* SDLOnSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = E2F7792FEE3F880C4B7A2CEF50105C43 /* SDLOnSystemRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F4531EDAE28E6B40E5897E5E50FBF9A2 /* SDLScreenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EA005E80F14C30BEEAD6843C40AC7D05 /* SDLScreenManager.m */; }; - F47674D7A51174A7C32C4BB40B703B55 /* SDLGetWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B002378124E8B08D2C433B0CBAE53FA5 /* SDLGetWayPointsResponse.m */; }; - F4D3DCD1482DC7169320000B0CFD58FC /* SDLLightName.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F343F8E278AA4A0EFBFBC077661846E /* SDLLightName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F503C527CD5501588ED3673D9676BABD /* SDLModuleData.m in Sources */ = {isa = PBXBuildFile; fileRef = DF00C9E7609E5400EC4274851BEB8AE5 /* SDLModuleData.m */; }; - F54ABA2F5DB667EFFD347157BB9FFD99 /* SDLTouchEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 72279C07ABBAEA264B9075A1A89C7434 /* SDLTouchEvent.m */; }; - F54CBAF56B9B678D042AC19DD0255CA7 /* SDLOnAppInterfaceUnregistered.m in Sources */ = {isa = PBXBuildFile; fileRef = E9BCDAE3BF99C86CED1A5CB6384054CA /* SDLOnAppInterfaceUnregistered.m */; }; - F5739CA941079DCD8B42FAF36B4E99F8 /* SDLLockScreenStatusManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 05AF2492C648CAF3472BCDC0B4D590FD /* SDLLockScreenStatusManager.m */; }; - F581452AB8DD619BF9DEFCB7DAD3B495 /* SDLOnDriverDistraction.m in Sources */ = {isa = PBXBuildFile; fileRef = 31788B292B69F3A09E1B6F39CAD277FB /* SDLOnDriverDistraction.m */; }; - F586F836095468D7E035D0D52AE2D236 /* SDLScreenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 64BA143AD255D19B934724F34E2072CD /* SDLScreenParams.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F625647BF7E1785CD864DCDA9D21E7D6 /* SDLSyncPDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D3B8CF68FC478BF3823F6C4D2995ED5A /* SDLSyncPDataResponse.m */; }; - F66A68935B8E019A5A1FAE879ECA5384 /* bson_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 82FF30811604FAB65F49A60CF6868F75 /* bson_util.h */; }; - F736EA12A3CF2B12ED63AD84085A768B /* SDLHybridAppPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = A99EA0FB7F0C4D0EB328913A51F92615 /* SDLHybridAppPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F7466745158C54756E4285345452BD39 /* SDLRegisterAppInterfaceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C3E14078B0F9E5376F9494B8D3CA4C7 /* SDLRegisterAppInterfaceResponse.m */; }; - F752F614709B9EEA82F86F4A62BEA66C /* SDLAudioControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AF9D8696C22ABDC9B6EC313EC8554C4 /* SDLAudioControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F78527CC8638C170A0B00821EE5375DB /* SDLSystemCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D4B95B4B14683496035C798353826CA /* SDLSystemCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F7A72542FEA16DBFC8895F49973CEE69 /* SDLRadioBand.m in Sources */ = {isa = PBXBuildFile; fileRef = 98E14E95533F49ABC0D74A2121D62620 /* SDLRadioBand.m */; }; - F7DAA886D075CA259411B3B7A6395EA3 /* SDLAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9570AA3F2F4CC1AE3DEC19E631620F29 /* SDLAudioFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F83A6CB1994098C4B58D47D636F75951 /* SDLButtonCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 970F63E20BB6D882EF074800A3CE6176 /* SDLButtonCapabilities.m */; }; - F8442F1675B44DFC70114DBE8650387E /* SDLMenuConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = B47755B35347AB14C2570D1F7A7BC934 /* SDLMenuConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F8C787819D63B7D4622645AAAB479314 /* SDLAppServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = D55417FE7F7FC0C9B4F34CAE0D38AC5C /* SDLAppServiceManifest.m */; }; - F9B2C89631AA9232F9CB801641DAC31E /* SDLOasisAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = C9CB658027934C58CB5E44288BDE79BE /* SDLOasisAddress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F9EBD1E23154F9D743AB6BA7CE13B787 /* SDLCarWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 94AB62DC444A4E92E8E71099CDED36CE /* SDLCarWindow.m */; }; - F9F67F2646FC92E2B9C54DABBB0D165D /* SDLTemplateColorScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = C1F3C424DD2CB129EBF8CFDEE9E339E1 /* SDLTemplateColorScheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA3B57CB38D403CC2A89A61D00EBE74C /* SDLSubscribeVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 347ECC1742A5C5DD03FA8380821DB34F /* SDLSubscribeVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA5BE5FA92E0BFEFCE58DD65F1AF67DB /* SDLStreamingMediaManagerDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 0482261E0D79D54F44C861DCF5D31296 /* SDLStreamingMediaManagerDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA62FBB392579EFE2754A875108A4301 /* SDLIAPDataSessionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F7A97AE27AA359A932FD6703E3DAE004 /* SDLIAPDataSessionDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FA63B81F435E767F24EA31CA32A38952 /* SDLCreateInteractionChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = F18A7D5B549029AE3017FE3E78F970C4 /* SDLCreateInteractionChoiceSet.m */; }; - FAD93E03EE1003989F8A89BE6F9E992A /* SDLGetWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CB3E5816DA0A95C87F21D3CEB5CDB491 /* SDLGetWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FB5714ED15412CCCECA24EE3A2BA4886 /* SDLCompassDirection.m in Sources */ = {isa = PBXBuildFile; fileRef = 96D7A594E902D4A574B41FF1CEFB2D60 /* SDLCompassDirection.m */; }; - FB6039EBE381999530969D021FC20EDB /* SDLWindowTypeCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E9D2FA097525605C95E2AFE782A6BE6C /* SDLWindowTypeCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FC03DDA275EDF285D7C124C51A321A72 /* SDLSISData.m in Sources */ = {isa = PBXBuildFile; fileRef = F9FDB0D2AA9E98077817EB3B8C90BC03 /* SDLSISData.m */; }; - FC2AA09F1FD2F926814EC569C07360FF /* SDLSeatLocationCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E027DB1F50B0C19CFFB73267754D157 /* SDLSeatLocationCapability.m */; }; - FC5FE1F84697A3314FBD5A170442BC40 /* SDLSystemRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F08A40DF1E002E9280563EFB8F024E54 /* SDLSystemRequest.m */; }; - FC78B70C9F799ACA864846610091A7EC /* SDLHMIPermissions.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CF01B1E30A78C156C0BFFA57CEAD88 /* SDLHMIPermissions.m */; }; - FC8ED395A93A30E8199D7647E28C52D9 /* SDLDisplayCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = CF06C121B2AD922B5E0F2F9075C29C29 /* SDLDisplayCapability.m */; }; - FCECADD9A357293803247BC3C76A9503 /* SDLControlFramePayloadVideoStartService.h in Headers */ = {isa = PBXBuildFile; fileRef = D454F140BD2837E493EFB52D5D399FF6 /* SDLControlFramePayloadVideoStartService.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FD1D54FC7E3963916E30AF17CF6C7E08 /* SDLRadioControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 7026D561A07AC0E8C0BE86D3E4C3DA7A /* SDLRadioControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FD44AF223147172C11BA5AF146AFD8EB /* SDLEncodedSyncPDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 879D45F15B6B19AD8392A3B6A475AB91 /* SDLEncodedSyncPDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FD4B9DEB7C0B8B83E8BB18B89BC2589E /* SDLAsynchronousRPCOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C38F093E9748ACAA9284BD728AA9AAF /* SDLAsynchronousRPCOperation.m */; }; - FDDD566B0FCC00853F7748B764791F7F /* SDLTextField+ScreenManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = FB6A10D40CFC0CC11ECFD6D0C56D5A5E /* SDLTextField+ScreenManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FE474D92574F0C37042FF367C1869FF4 /* SmartDeviceLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF84943922331DACE393EFF73879043 /* SmartDeviceLink.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEA2C633BF61DAEA879091A9D48C0223 /* SDLProtocolConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = CB1A8B920D83FAD8420BFA57B9376BD2 /* SDLProtocolConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEE7490180AF75B55DD253B9ADE512F5 /* SDLAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = 64CC24A0167F43E7EFCD3741ED2CD00A /* SDLAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEF44E1D08BCE16AEDBF9C6B8C33E647 /* SDLControlFramePayloadConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = C56E766AC9995A99617E24C80F827D43 /* SDLControlFramePayloadConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FEFA37AA6D063CAC96E0FA294F03339E /* SDLMenuManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D879437E0B1DE45D4D626AD9DA1BD58 /* SDLMenuManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FF13ABB8D4771283578DFE394E35E422 /* SDLTransportDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EB24F185C13507CF836631F5BDF0A2C /* SDLTransportDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FF9013FBD59D4DB3DA6F80750DC9C3FA /* SDLButtonEventMode.m in Sources */ = {isa = PBXBuildFile; fileRef = A19E73266D6733F4C2E8727710A11ED9 /* SDLButtonEventMode.m */; }; - FF9ABE4F036C6B902A2B802E6E2479B2 /* SDLWindowCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 2643EB480894991204DC88CA218D09C2 /* SDLWindowCapability.m */; }; - FFCADB158DBD81417BDF149A09C7C861 /* SDLSetInteriorVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B7506383773C5D6EDE24916C30190446 /* SDLSetInteriorVehicleDataResponse.m */; }; - FFD72484C274C1D4F2A4EC9B8A2D38C5 /* SDLHapticRect.h in Headers */ = {isa = PBXBuildFile; fileRef = F2C4FC36D54FA4DCEB9CB7427F105086 /* SDLHapticRect.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FFDC6E163ACB77CBE6819E9860BD4F22 /* SDLLogTargetOSLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 185F3515C64226DE214C71343949C0A5 /* SDLLogTargetOSLog.m */; }; - FFE6AD5AE2B963DF76A98DD2119B858D /* SDLSoftButtonManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 511CF82F1FB9D8A7C5929F635B3E778A /* SDLSoftButtonManager.m */; }; + EC4C030E69EDB7ED01EAF333978D082C /* SDLSystemContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 74B94C300012972D84ADFCB8F8E1CF22 /* SDLSystemContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ECB370882E699F878A5EE75B1851B368 /* SDLGetFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CB6D2B700919E44F651FE5643F0D5AF /* SDLGetFileResponse.m */; }; + ECC87CADBAB0667E1CD7E637907B3FFB /* SDLOnInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = E47779D3822D6421717CCECB009326EF /* SDLOnInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ED68CCC97FB702F10ED78C504F690D4C /* SDLBackgroundTaskManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AFE831074AA07078B0E351971A9F0E26 /* SDLBackgroundTaskManager.m */; }; + ED90A63BB1EB1FFE8F728ECEBA936AAC /* SDLStreamingMediaManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 67F2B147BCDCFCAA281D2A08BC379214 /* SDLStreamingMediaManager.m */; }; + EDCCABE00468B31ECA26D0C9F8DDB32A /* SDLOnAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = E0693F2A953A77A17E75C29FAFD7F7BD /* SDLOnAppServiceData.m */; }; + EDDBA38A8B5F08CB9E558E24E13E0A6E /* SDLLockScreenStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 096D9EC5221B9D6B456EDA53A2E88F92 /* SDLLockScreenStatus.m */; }; + EDE7F8A2D90DC7182E741D38768672F2 /* SDLMediaClockFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 5229ED97F3A6D032C282A878D63A8092 /* SDLMediaClockFormat.m */; }; + EDEC92034597B5305FB581C52EC342C4 /* SDLUpdateTurnList.h in Headers */ = {isa = PBXBuildFile; fileRef = 85FF8FC6AE8E88BF0CA87D995EEEE5E7 /* SDLUpdateTurnList.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EE121FDEC42443727301FA4327B5E85D /* SDLTextAndGraphicManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 42438A9D2F6D3292FF657E90823128D4 /* SDLTextAndGraphicManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EE1F6BB1177EE70D1169A40CCC7461B8 /* SDLProtocolConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = CCF9B35E59B89A18102BA35693887E8B /* SDLProtocolConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EE461746C8941EDF411A4EA8A1171FB1 /* SDLRegisterAppInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = DFDCE97BBEEFF7D0876C6518B71FF257 /* SDLRegisterAppInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EE5D946537A1DF4179774759EFFD6220 /* SDLUnsubscribeButtonResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = E8F6D5DF57737B1814A0C47D2D638B89 /* SDLUnsubscribeButtonResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EE697B0B4995E7259B791BCC582D727B /* SDLOnLockScreenStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E271C1F0006C8746C76DB4C28A25B6C /* SDLOnLockScreenStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EEE954637AC6DD4A372598EF3440574C /* SDLNavigationServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F19ED2AEE6718C0915FC669935F35ED /* SDLNavigationServiceData.m */; }; + EEED8D96B2DECE2356CDBED6331960F9 /* SDLTextAlignment.h in Headers */ = {isa = PBXBuildFile; fileRef = 09E0B697D5D3515000987CB02ED7EF2A /* SDLTextAlignment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EF44A701FBA04315711D250293E37709 /* SDLPrioritizedObjectCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 198A0AA98C61E2A39539B9020C6185CB /* SDLPrioritizedObjectCollection.m */; }; + EF4DCF74785D8396D212AAE785137F90 /* SDLTemplateColorScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = E8AF7FA3A3B233DDB4F14996698E8FE0 /* SDLTemplateColorScheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EFBEEF8568380DEE11B6F08A8B78B4A8 /* SDLSingleTireStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = DFEC3B4824AB98BD46E19AA4744BB016 /* SDLSingleTireStatus.m */; }; + EFCF4F776EC87D885ABAEAB6A6F008B0 /* SDLLayoutMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 407C6AE6126DB991B09BB16445481048 /* SDLLayoutMode.m */; }; + EFE389E20849E812CB14B8BB26E3B3E4 /* SDLRPCPermissionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = D23AB515C337D48F2DCD15C942D9FF3D /* SDLRPCPermissionStatus.m */; }; + F02D84852A5EBD3B296F70F05E44B9F6 /* SDLControlFramePayloadNak.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A7CA326FC1A31FBED51465160C7D19 /* SDLControlFramePayloadNak.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F0E8376DAD107E666421E01CCEA55406 /* SDLPhoneCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = F498D01DC4282CD4E4C51C6511F9D57F /* SDLPhoneCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F11187AB47B27B53FE198D0BB45746B1 /* SDLMetadataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A7526B4C33F3597CF06B974E14148B3 /* SDLMetadataType.m */; }; + F19E92D00AF56884D8403180450C673D /* SDLDisplayCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 9227FC37C76C208644F400388ECD5C95 /* SDLDisplayCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1E0F92908B6D9838308E4BE87F9F35A /* SDLDeleteWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F84252F4C10EA659DE486850D8B391F /* SDLDeleteWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1EFCA8C3F62223ADFD09C33D6AB282E /* SDLOnRCStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 6243FFA5A3FBB349C133E1FC613BD6AD /* SDLOnRCStatus.m */; }; + F1FC1F415525E9BE1FB87674C21164B7 /* SDLKeyboardDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = FBB16D3DFAE9EF0F599A37586C34BCF7 /* SDLKeyboardDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F203E56DA3EE44EB9FFDDDC5C49825CC /* SDLSystemRequestResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A030F2B6E37938FF8043D0017F09F80 /* SDLSystemRequestResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F21FA12D42119F7BB39472B8AE1A52E0 /* SDLMutableDataQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CA5C324677346256F9E7AF067CA1CC /* SDLMutableDataQueue.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F294BC925A822EDFBD0E5486EF65A9EC /* SDLVehicleDataActiveStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BDE7214FFD1799A060E153912422D29 /* SDLVehicleDataActiveStatus.m */; }; + F2B384A9614E760CE466DFCCD80F5CEB /* SDLCarWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = E0BC4F6E6B159DB9BBF7B3971DE31957 /* SDLCarWindow.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F2BE2F57B286B175FC62F1444430B1D4 /* SDLChangeRegistrationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D1038E18768690DF540899139455789E /* SDLChangeRegistrationResponse.m */; }; + F2F0578FC5558A1FD4D42C94CC018FD6 /* SDLIgnitionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A5B485EB6672E131B13E69E253F738D6 /* SDLIgnitionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F325BB0AC6DDD888968309DBD7C206F4 /* SDLRGBColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 22D8E6FEF71BF3A66088118AA02F0841 /* SDLRGBColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F36307961DF70A8DFC73478E78F68284 /* emhashmap.h in Headers */ = {isa = PBXBuildFile; fileRef = D8937A5799CDE32614D2726C81F82818 /* emhashmap.h */; }; + F38051ED9D5A6D64BA22B6120F718E08 /* SDLDimension.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D5A06B422339F19A2053DF7AD2E64B0 /* SDLDimension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3ECB95B0031A65E9E7E7169914044C4 /* SDLSecondaryTransportManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F3EBD6B66041D66C2196112E820E644E /* SDLSecondaryTransportManager.m */; }; + F3F1C5B0BC58DC8D8FC6B259EB0932F1 /* SDLDistanceUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = D83C3F848B3100D62A9329AE8FD1E53A /* SDLDistanceUnit.m */; }; + F42A7657DCF0C0B769D05F922B972CE9 /* SDLOnSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 71CFF60AB38BB1284642C3A2EAE0D940 /* SDLOnSystemRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F434E151A675619FB6DE7B0CF3BB0AA7 /* SDLDeviceLevelStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 0014601A825D99EBC10BD35C7B771929 /* SDLDeviceLevelStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F46BEBD9A0AB03DE13E0B3F4D967DA73 /* SDLMenuManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 793212B2CF70C31043EA09E6CBA12BD0 /* SDLMenuManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F51C62C254D0309353E467F80FEFFE34 /* SDLPRNDL.m in Sources */ = {isa = PBXBuildFile; fileRef = 46ECC18D967806C249E479F3E3F6CB28 /* SDLPRNDL.m */; }; + F54ED240190830BC405F8A3F246EA0A2 /* SDLCloseApplicationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DD906B67A1DB81F1A4D78834D42F0C3C /* SDLCloseApplicationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F56962B7761B2885ACAAA3F09C022199 /* SDLVehicleDataStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = FAE209F3C74B1C886D2FEBB75394F38F /* SDLVehicleDataStatus.m */; }; + F58FAECE702EA7D92183F8760FD9A2FE /* SDLECallInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CEB2D97B78F3D03054621D61974E2CB /* SDLECallInfo.m */; }; + F5B39B468E865441CE2BB79219D8BDC1 /* SDLSeatLocationCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 41D1F2E020D4C94A54B41209DF6979D4 /* SDLSeatLocationCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F5D727D9EECDD13F365FBE86B3106EB0 /* SDLEndAudioPassThruResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 0006A2A7A7BDE53A1AACFDA8155F4F61 /* SDLEndAudioPassThruResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F5D9E586A90FEA617FCD63C38EFCA138 /* SDLLogConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 45C3A2C25877219916DC604237EE989A /* SDLLogConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F5F3431D4E9DA8E993F74FBB8700C2D3 /* SDLControlFramePayloadEndService.m in Sources */ = {isa = PBXBuildFile; fileRef = 26D0EBD3EEA72649EE8D2DF59814B8B1 /* SDLControlFramePayloadEndService.m */; }; + F5FF108C0938117D95BEBD45B79C0983 /* SDLAppServicesCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 756CD9B80439215BBA2D29D4ED43E094 /* SDLAppServicesCapabilities.m */; }; + F63A5F17974134AAE7F5EC1A2E61B5B1 /* SDLLockScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 736D1EB1BA3C095F2150065772354EC2 /* SDLLockScreenManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F66A68935B8E019A5A1FAE879ECA5384 /* bson_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 5ED1A1D0218C25583F5764B0E59FDC4E /* bson_util.h */; }; + F67B5F6721755926DB4686901905A266 /* CVPixelBufferRef+SDLUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = B8C4AFF624FB42A6EEE527432AB9EAA9 /* CVPixelBufferRef+SDLUtil.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F6A3C792B488CB3D8AEEF40EBC595D0D /* SDLAudioControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 75470F9E88B2A0F0EE2F691B6EE20841 /* SDLAudioControlCapabilities.m */; }; + F7154784E2F5DB9E3C24FC2928C7D12B /* SDLHMISettingsControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A6546CC22413DE90D216F99190F62B4 /* SDLHMISettingsControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F739B4CC8B331017CA8BEEB40B20C0FE /* SDLSeatControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1E994C0CAD055C104B0306EC25F432 /* SDLSeatControlCapabilities.m */; }; + F775EFF321560177450BFF361F98946B /* SDLListFilesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 20FA6E8D363E92E2246382F8E4DFCF0E /* SDLListFilesResponse.m */; }; + F7B7828265E8A71460813E695FF12C5E /* SDLTouchManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 264B352A2E79FBBE53D7A84B3F98003A /* SDLTouchManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F7FACF4C402CFC2A06E1F45A987CF1AC /* SDLSendLocationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 65419DF568C66F604EF0738C1965D385 /* SDLSendLocationResponse.m */; }; + F84B04F6281DE18EAAE313588E28E966 /* SDLDeleteSubMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BA0AF625F5738A2DFEC698A0E10DE96 /* SDLDeleteSubMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F8925070BDD710E983CABAD7EBCD3DDD /* SDLCacheFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E56E1D0EA294149153FB6F83C9262C2 /* SDLCacheFileManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F8C5750BFF965AB560AD9035ABBC92EB /* SDLLifecycleConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A8431B0F75B502F5FE58F26285618A6D /* SDLLifecycleConfiguration.m */; }; + F8F099F4279F7D966A919E609C51C219 /* SDLRadioBand.h in Headers */ = {isa = PBXBuildFile; fileRef = 234C8B719DEDD260BA78077064A1C78D /* SDLRadioBand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F91095D6314BB3F6EDA3EB1D11DB5109 /* SDLListFiles.h in Headers */ = {isa = PBXBuildFile; fileRef = C857DA8AD51F0B0A8D7F9682E8435BC5 /* SDLListFiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F915DB893F05D3A733468F86A065182C /* SDLRPCMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F743A14A81CBDA132220AA28D5EB8D6 /* SDLRPCMessage.m */; }; + F9D4473988403B0D857F60E04AE1869C /* SDLAddCommandResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 223764A1541B9FABCBFF13489C0B8067 /* SDLAddCommandResponse.m */; }; + FA0E1BA770AC99ACCFA6FADD294E6AD5 /* SDLRPCNotificationNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE104BE89E6E1AFC8970A8566B31A02 /* SDLRPCNotificationNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA2F2356937995D9DA09307906E52A31 /* SDLSubscribeWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = AC01AEE997639AA2260C7CB7AF71C4C3 /* SDLSubscribeWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA3D73D6F771B4BFFE38E0FDF46BB2EA /* SDLTouchManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D4B5DE50493E322D022ECD4BE5E38481 /* SDLTouchManager.m */; }; + FA4A926BE21F813482C1EEF8B5D3E8C1 /* SDLAudioFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 942B330B46ACF300BF3CBDAECE4EC0C9 /* SDLAudioFile.m */; }; + FA4CC44F8F212A7F83890F85250C8D1F /* SDLFileType.h in Headers */ = {isa = PBXBuildFile; fileRef = 85C831243400E8D6A9F22B565CD3EE18 /* SDLFileType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA9FF61A369932D7A9F8CA98DE159A5A /* SDLGetAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 689B0C277D4D74417F0703BA219AF3EC /* SDLGetAppServiceData.m */; }; + FABA89B3B6E0B6808D2CC7394744E608 /* SDLOnDriverDistraction.m in Sources */ = {isa = PBXBuildFile; fileRef = D4E743BD5D9868B2B5008D089934B105 /* SDLOnDriverDistraction.m */; }; + FACC0EB4D9967C04B9F4ED7A82ED4A80 /* SDLEncryptionLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = CF679021B1F310A3DA1CCAD24947CE31 /* SDLEncryptionLifecycleManager.m */; }; + FB198942C45C672D222FC6E4211CFE28 /* SDLLightState.m in Sources */ = {isa = PBXBuildFile; fileRef = F297A1D12DA6A40D653E588BCFB5BE1F /* SDLLightState.m */; }; + FB5187CAF6381587B2C09B586DCFD65E /* SDLDefrostZone.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BDFD54AD0587D67A9F01BE35775FEFB /* SDLDefrostZone.m */; }; + FB5303D0D0879E80AB215DAFA1F8075D /* SDLVehicleDataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 337B14C8810BEC7C71631851E3F7C134 /* SDLVehicleDataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB6193D5C5C6C4AF6E15EA9EFA14908D /* SDLNavigationAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 9385A8C466EFC5D2EECF88F1BB4D7E51 /* SDLNavigationAction.m */; }; + FB6CA35AE69A8225058E8E82E5960A56 /* SDLAppServiceType.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F909C05943A039E0097211A7DF01A9B /* SDLAppServiceType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB7EFF49F20734D699CFB56494EC388A /* SDLChoice.h in Headers */ = {isa = PBXBuildFile; fileRef = 943DDBBF480DC8B8E38C092C2740CCBE /* SDLChoice.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB8C2C8AE52A78F6D7CB349AAAD996FA /* SDLUnpublishAppServiceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A9E0567B3A13DFD90B87980D7B9C2A35 /* SDLUnpublishAppServiceResponse.m */; }; + FBEF565E8C984AABB64F19512D5ADE76 /* SDLSpeakResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 0338D36D87FF27EDD72CE81C13BCC65F /* SDLSpeakResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC16833BB8606EE3ECBF22387E960652 /* SDLButtonCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = F486561AF5F904ABC8067B60C4EECF23 /* SDLButtonCapabilities.m */; }; + FC3444AE19593182B1B1D7256A3C3221 /* SDLDisplayType.m in Sources */ = {isa = PBXBuildFile; fileRef = A429FA0D271048EA825CC81CA78405F0 /* SDLDisplayType.m */; }; + FC73D4BF63D50DEE5A7168F8D9F1913D /* SDLWeatherServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D8C0BA72794AC638DB9DF5A48C945D0 /* SDLWeatherServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FCA506B6BF42A7A8FE6C1B55747B8ECB /* SDLDynamicMenuUpdateRunScore.h in Headers */ = {isa = PBXBuildFile; fileRef = DDC4519536BC211F5D35E00B5E2BB216 /* SDLDynamicMenuUpdateRunScore.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FD1E5787AE17758017D394D82920962E /* SDLMaintenanceModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 96F0D36E1F88AD285C4F2EDEFC6311FA /* SDLMaintenanceModeStatus.m */; }; + FD4C4028726EAF24D96022D4D1F0F0B4 /* SDLRadioControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 5489C9144952EA64BC69A2AFEA7D3E52 /* SDLRadioControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FD565C5B865F3F82F33B5C599542BB56 /* SDLNavigationServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = D1C31EB7EB2D9E54E40DF8F679512777 /* SDLNavigationServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FDA8CE14078E6C248AA850B366A863E5 /* SDLIAPControlSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 9699CEFAE8CC63EAF12D47952326F8E7 /* SDLIAPControlSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FDC6CB7FA72121BBA4CA5D470068C345 /* SDLRPCRequestNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 1179CCA11545B1607C32D9B258323DC9 /* SDLRPCRequestNotification.m */; }; + FE0532EB484B23FC43E5E8BCDE6E09EC /* SDLReleaseInteriorVehicleDataModuleResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B333958DAB7FA32DB021C89E59865776 /* SDLReleaseInteriorVehicleDataModuleResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE4F97665C7F66149151763B5E251ED9 /* SDLBodyInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C71161060166817E773FB5B022B4BF7 /* SDLBodyInformation.m */; }; + FE7919B6C34A51008AE0001CA25EB708 /* SDLProtocolMessageAssembler.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C1D9612F74CBE518438548A4CF314FF /* SDLProtocolMessageAssembler.m */; }; + FE7ECE8ED397E4084323336BCF2EA284 /* SDLStationIDNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = C0CE5DCD736E603F98EFA824D23FDADB /* SDLStationIDNumber.m */; }; + FEAE3D2D0A27CEFD66C33B263B0F34E3 /* SDLScrollableMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AC7F7B3D6371B00DBFF85FFF2F4E873 /* SDLScrollableMessage.m */; }; + FEBFDB67FEDBDF463E70EFD31350D707 /* SDLDeleteSubMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 12D744FC8FA6C20656E30908E2337246 /* SDLDeleteSubMenu.m */; }; + FF463F1426B7BF72BDD00DC5B128F2A1 /* SDLMenuParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 82421BB2792D77283F0C50BBB7B95D13 /* SDLMenuParams.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FF500408E7F872622329864F819CB05C /* SDLGPSData.m in Sources */ = {isa = PBXBuildFile; fileRef = 97AD120A3AD881B75046604C99B99B22 /* SDLGPSData.m */; }; + FF9B788C9EE45B9AD0D4112BEC4BC27E /* SDLImageResolution.m in Sources */ = {isa = PBXBuildFile; fileRef = EEBA83F076ACB48D5FAF0C28B9E04400 /* SDLImageResolution.m */; }; + FFA33134510D6CC20094D31BA6C22AB4 /* SDLDynamicMenuUpdateAlgorithm.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C314283909AA88717A78A8BAF8E331D /* SDLDynamicMenuUpdateAlgorithm.m */; }; + FFD26297C611AF551A2738FBBB3E9C80 /* SDLStreamingVideoScaleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D0581F57A3E133B297BFA59428ED20F9 /* SDLStreamingVideoScaleManager.m */; }; + FFE6F75D5CD21D5E45302E27C7330DDB /* SDLClusterModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = E1FAE16882639A3A3090385712018D6F /* SDLClusterModeStatus.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -1119,14 +1118,14 @@ remoteGlobalIDString = D80456DDA93CD634453A682E14808519; remoteInfo = SmartDeviceLink; }; - A9D46AB6AB677FC4ABCB10C5F8081AC3 /* PBXContainerItemProxy */ = { + 658E9669E3F8265A6FE378935AC49E44 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 3BAB8E4F4ED1E843F9C863ADE37B95B5; remoteInfo = BiSON; }; - F7F1266388AA8BD3DD808CFAD47EADF5 /* PBXContainerItemProxy */ = { + 6AF19360149BA595F0706575B6CB6ACE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; @@ -1163,1147 +1162,1146 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0050DA0BCF8282C74B54D6A62D359073 /* SDLStreamingMediaConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaConfiguration.h; path = SmartDeviceLink/SDLStreamingMediaConfiguration.h; sourceTree = ""; }; - 009617EB39512D02064536C0802DF918 /* SDLSetMediaClockTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetMediaClockTimer.h; path = SmartDeviceLink/SDLSetMediaClockTimer.h; sourceTree = ""; }; - 00C68FA444D0ECFF71A216F789929F82 /* SDLHMIZoneCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMIZoneCapabilities.m; path = SmartDeviceLink/SDLHMIZoneCapabilities.m; sourceTree = ""; }; - 00D366651669905A0972F086586FA9B4 /* SDLRPCMessageType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCMessageType.m; path = SmartDeviceLink/SDLRPCMessageType.m; sourceTree = ""; }; - 00F5A6A079156BEB8005F1C89BA34E2C /* SDLLockScreenConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenConfiguration.h; path = SmartDeviceLink/SDLLockScreenConfiguration.h; sourceTree = ""; }; - 00F802377FED3220A7D572E90814F78E /* SDLKeyboardLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardLayout.h; path = SmartDeviceLink/SDLKeyboardLayout.h; sourceTree = ""; }; + 0006A2A7A7BDE53A1AACFDA8155F4F61 /* SDLEndAudioPassThruResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEndAudioPassThruResponse.h; path = SmartDeviceLink/SDLEndAudioPassThruResponse.h; sourceTree = ""; }; + 0014601A825D99EBC10BD35C7B771929 /* SDLDeviceLevelStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceLevelStatus.h; path = SmartDeviceLink/SDLDeviceLevelStatus.h; sourceTree = ""; }; + 00FF637FC89DC702B5A3B6AA9D2D2039 /* SDLSystemAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemAction.h; path = SmartDeviceLink/SDLSystemAction.h; sourceTree = ""; }; + 0101AB6A004A001DF9E0F740590E99D1 /* SDLCheckChoiceVROptionalOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCheckChoiceVROptionalOperation.h; path = SmartDeviceLink/SDLCheckChoiceVROptionalOperation.h; sourceTree = ""; }; 012CE07CE00E36054DA038C75909F04A /* SmartDeviceLink.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SmartDeviceLink.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 013381222E2F09C3FC30E0546F2E0E85 /* SDLTireStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTireStatus.h; path = SmartDeviceLink/SDLTireStatus.h; sourceTree = ""; }; - 01576AC9DF9C06D0764239C2D918DB93 /* SDLOnHashChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnHashChange.h; path = SmartDeviceLink/SDLOnHashChange.h; sourceTree = ""; }; - 01F187BD4B1741FD143AC9FEE6B6A9B8 /* SDLNavigationInstruction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationInstruction.h; path = SmartDeviceLink/SDLNavigationInstruction.h; sourceTree = ""; }; - 026C522465461D2651A396400F15816E /* SDLControlFramePayloadTransportEventUpdate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadTransportEventUpdate.m; path = SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m; sourceTree = ""; }; - 02D17977948909712E8F721ABB765601 /* SDLSetDisplayLayoutResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetDisplayLayoutResponse.h; path = SmartDeviceLink/SDLSetDisplayLayoutResponse.h; sourceTree = ""; }; - 02F85B02BD1D0104B4B4F60FE4E0B7A3 /* SDLPRNDL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPRNDL.m; path = SmartDeviceLink/SDLPRNDL.m; sourceTree = ""; }; - 02FDA2F0BEF128D86C26F8CC45E68CD1 /* SDLEmergencyEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEmergencyEvent.h; path = SmartDeviceLink/SDLEmergencyEvent.h; sourceTree = ""; }; - 0308C13EE2FCDF4DBE02F2C11AFBFC1A /* SDLSpeechCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeechCapabilities.h; path = SmartDeviceLink/SDLSpeechCapabilities.h; sourceTree = ""; }; - 031BBB010D945FCF674851CA3A00B9F3 /* SDLMyKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMyKey.h; path = SmartDeviceLink/SDLMyKey.h; sourceTree = ""; }; - 0381C7F8F19AB2E83F3F40CB77F00DCB /* SDLLog.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SDLLog.swift; path = SmartDeviceLinkSwift/SDLLog.swift; sourceTree = ""; }; - 03CB7781E3AFB6084B7FF7B008C554AA /* SDLAudioStreamManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamManagerDelegate.h; path = SmartDeviceLink/SDLAudioStreamManagerDelegate.h; sourceTree = ""; }; - 0482261E0D79D54F44C861DCF5D31296 /* SDLStreamingMediaManagerDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManagerDataSource.h; path = SmartDeviceLink/SDLStreamingMediaManagerDataSource.h; sourceTree = ""; }; - 04F52C5DC12FEA3AC1931C02FEB88081 /* SDLRPCFunctionNames.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCFunctionNames.m; path = SmartDeviceLink/SDLRPCFunctionNames.m; sourceTree = ""; }; - 052CE8CBD47B13C4CF8725945BB4F79B /* SDLUnsubscribeVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeVehicleDataResponse.m; path = SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m; sourceTree = ""; }; - 057374D02ED1566D4CB631DFB6705D55 /* SDLOnLanguageChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnLanguageChange.m; path = SmartDeviceLink/SDLOnLanguageChange.m; sourceTree = ""; }; - 057BF4E380C24A34B8A91DABCBD55757 /* SDLChangeRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChangeRegistration.h; path = SmartDeviceLink/SDLChangeRegistration.h; sourceTree = ""; }; - 05AF2492C648CAF3472BCDC0B4D590FD /* SDLLockScreenStatusManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenStatusManager.m; path = SmartDeviceLink/SDLLockScreenStatusManager.m; sourceTree = ""; }; - 05EF0182EFA11F347688F90D543F5C41 /* SDLSystemContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemContext.h; path = SmartDeviceLink/SDLSystemContext.h; sourceTree = ""; }; - 05EF4CC4570D8BE1DE3ECC0889A81ED7 /* SDLLanguage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLanguage.m; path = SmartDeviceLink/SDLLanguage.m; sourceTree = ""; }; - 060F9D8B01CC5577C06B7438BDB833E6 /* SDLSpeak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeak.m; path = SmartDeviceLink/SDLSpeak.m; sourceTree = ""; }; - 0656901E080D59E2E26E8D8989D2EED3 /* SDLImageField+ScreenManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLImageField+ScreenManagerExtensions.m"; path = "SmartDeviceLink/SDLImageField+ScreenManagerExtensions.m"; sourceTree = ""; }; - 068BB05FC0F060EEA4D7C2CA18384BB6 /* SDLResetGlobalProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResetGlobalProperties.h; path = SmartDeviceLink/SDLResetGlobalProperties.h; sourceTree = ""; }; - 06C8E96119F2882B4C2C262F67AD29E7 /* SDLSetCloudAppPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetCloudAppPropertiesResponse.h; path = SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h; sourceTree = ""; }; - 07586438D975F70590DE46C92B04B3D4 /* SDLOnAppServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAppServiceData.m; path = SmartDeviceLink/SDLOnAppServiceData.m; sourceTree = ""; }; - 07761CF3C8D6A5A03E8B321C60A0DCE8 /* SDLGetSystemCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetSystemCapability.m; path = SmartDeviceLink/SDLGetSystemCapability.m; sourceTree = ""; }; - 079C8504D554E430687E23C3BB9F291F /* SDLParameterPermissions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLParameterPermissions.h; path = SmartDeviceLink/SDLParameterPermissions.h; sourceTree = ""; }; - 080C0AFE1D0A26741E58932027641033 /* SDLEncodedSyncPDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncodedSyncPDataResponse.m; path = SmartDeviceLink/SDLEncodedSyncPDataResponse.m; sourceTree = ""; }; - 087970D423C4D2D7AB2EE1EE71444F15 /* SDLUpdateMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateMode.m; path = SmartDeviceLink/SDLUpdateMode.m; sourceTree = ""; }; - 089526E918DB53DC6E49872629FFC303 /* SDLAudioControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioControlData.m; path = SmartDeviceLink/SDLAudioControlData.m; sourceTree = ""; }; - 08C7E71E744D35BDA4283D2972693EA5 /* SDLMediaServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaServiceManifest.m; path = SmartDeviceLink/SDLMediaServiceManifest.m; sourceTree = ""; }; - 08DA15E3B091636F3E38EEE53E5BD64E /* SDLUnsubscribeButtonResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeButtonResponse.m; path = SmartDeviceLink/SDLUnsubscribeButtonResponse.m; sourceTree = ""; }; - 08FD56690946400B66FA81A3473A5CD0 /* SDLOnAppServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAppServiceData.h; path = SmartDeviceLink/SDLOnAppServiceData.h; sourceTree = ""; }; - 092865BB22501250C0C3FF3D5CF2E200 /* SDLAppServicesCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServicesCapabilities.h; path = SmartDeviceLink/SDLAppServicesCapabilities.h; sourceTree = ""; }; - 09287D9F2DCDB16BF6E036447C615805 /* SDLTextAlignment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextAlignment.m; path = SmartDeviceLink/SDLTextAlignment.m; sourceTree = ""; }; - 094B9EE84AB60943CDCB9F8C70FA11EC /* bson_array.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = bson_array.c; path = src/bson_array.c; sourceTree = ""; }; - 09CB1EF14BDD7FF6541D42C4AA269392 /* SDLAppServiceRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceRecord.m; path = SmartDeviceLink/SDLAppServiceRecord.m; sourceTree = ""; }; - 0A3F5B7EC0DC340080344B57171997C6 /* SDLOnButtonPress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnButtonPress.h; path = SmartDeviceLink/SDLOnButtonPress.h; sourceTree = ""; }; - 0A92F939214CB9AE0B8F4A9AC267DF28 /* SDLChoiceCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceCell.m; path = SmartDeviceLink/SDLChoiceCell.m; sourceTree = ""; }; - 0B1FA2D3A3AECF7476B6EB1A1004187A /* SDLButtonPress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPress.h; path = SmartDeviceLink/SDLButtonPress.h; sourceTree = ""; }; - 0B426EF21719FFCBFD4CC285CE5B8E31 /* SDLButtonPress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPress.m; path = SmartDeviceLink/SDLButtonPress.m; sourceTree = ""; }; - 0BBAEFCD3A5756020019D66827B7F6BA /* SDLSystemCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapability.m; path = SmartDeviceLink/SDLSystemCapability.m; sourceTree = ""; }; - 0BC571015C3D3C1EF66114AC5050FB2C /* SDLHMISettingsControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMISettingsControlCapabilities.m; path = SmartDeviceLink/SDLHMISettingsControlCapabilities.m; sourceTree = ""; }; - 0C385BAB9B99A124EC2DEF4D689CB7BB /* SDLGetWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetWayPoints.m; path = SmartDeviceLink/SDLGetWayPoints.m; sourceTree = ""; }; - 0C86980F55A57904FF85C7623588A367 /* SDLPhoneCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPhoneCapability.h; path = SmartDeviceLink/SDLPhoneCapability.h; sourceTree = ""; }; - 0D21D2139E965A5CA024DB58BE117962 /* SDLCloseApplication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCloseApplication.m; path = SmartDeviceLink/SDLCloseApplication.m; sourceTree = ""; }; - 0DD50A61126C05D1E22DD18C08F59593 /* SDLIAPConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPConstants.m; path = SmartDeviceLink/SDLIAPConstants.m; sourceTree = ""; }; - 0DD50AAA2369E60F10DA24C777F7D9D8 /* SDLLockScreenRootViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenRootViewController.m; path = SmartDeviceLink/SDLLockScreenRootViewController.m; sourceTree = ""; }; - 0DE2FE3B6560346F8069F04D79D7E283 /* SDLBitsPerSample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBitsPerSample.m; path = SmartDeviceLink/SDLBitsPerSample.m; sourceTree = ""; }; - 0DEF9947C4576AE910482FFD434E878E /* SDLPrerecordedSpeech.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrerecordedSpeech.h; path = SmartDeviceLink/SDLPrerecordedSpeech.h; sourceTree = ""; }; - 0E30FC7A94025A61E6EA176845E4BEF3 /* SDLSlider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSlider.h; path = SmartDeviceLink/SDLSlider.h; sourceTree = ""; }; - 0E3170BC3B4F4F5877B69D05DED54CBA /* SDLLifecycleSystemRequestHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleSystemRequestHandler.m; path = SmartDeviceLink/SDLLifecycleSystemRequestHandler.m; sourceTree = ""; }; - 0ECF2069806AE61431252D9A6ED62A8F /* SDLRTPH264Packetizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRTPH264Packetizer.m; path = SmartDeviceLink/SDLRTPH264Packetizer.m; sourceTree = ""; }; - 0EF49DE50EC4EBA86EC32278ADDCE591 /* SDLResetGlobalPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResetGlobalPropertiesResponse.m; path = SmartDeviceLink/SDLResetGlobalPropertiesResponse.m; sourceTree = ""; }; - 0F83E2FDBC27F6BEBC1DB1957CD550D9 /* SDLOnSystemCapabilityUpdated.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSystemCapabilityUpdated.m; path = SmartDeviceLink/SDLOnSystemCapabilityUpdated.m; sourceTree = ""; }; - 0F98A315A729E83EEEFA448CB1B4AE9D /* CGPoint_Util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CGPoint_Util.h; path = SmartDeviceLink/CGPoint_Util.h; sourceTree = ""; }; - 102FDAC56AEF5163B033D0CC47822A7F /* SDLCancelInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCancelInteractionResponse.m; path = SmartDeviceLink/SDLCancelInteractionResponse.m; sourceTree = ""; }; - 1079F5E8BF4B26941ED6E2AC3446BCC1 /* SDLPerformAudioPassThruResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAudioPassThruResponse.m; path = SmartDeviceLink/SDLPerformAudioPassThruResponse.m; sourceTree = ""; }; - 10932B52AE70AF095B0197772101BF9E /* SDLDeleteFileOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileOperation.m; path = SmartDeviceLink/SDLDeleteFileOperation.m; sourceTree = ""; }; - 10C447C90A40A49C0653E0D97B15E7C4 /* SDLWayPointType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWayPointType.m; path = SmartDeviceLink/SDLWayPointType.m; sourceTree = ""; }; - 1131203DD1A9D81CB8211E61876734B7 /* ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist"; sourceTree = ""; }; - 113CB9707D2133750B2A74C8E4E75D53 /* SDLNotificationConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNotificationConstants.h; path = SmartDeviceLink/SDLNotificationConstants.h; sourceTree = ""; }; - 116815ADE5356987348CB6CA1D5E8C88 /* SDLCreateInteractionChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateInteractionChoiceSet.h; path = SmartDeviceLink/SDLCreateInteractionChoiceSet.h; sourceTree = ""; }; - 117F46D8AD9F12EC389BFEC8EC4A4A7F /* SDLTPMS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTPMS.h; path = SmartDeviceLink/SDLTPMS.h; sourceTree = ""; }; - 11BAC842CBB10B4B7C24DD4A558F24D1 /* SDLVehicleDataStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataStatus.h; path = SmartDeviceLink/SDLVehicleDataStatus.h; sourceTree = ""; }; - 11EBD8D7297FC1CE9479C7508D26FEF6 /* SDLFocusableItemLocator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFocusableItemLocator.m; path = SmartDeviceLink/SDLFocusableItemLocator.m; sourceTree = ""; }; - 120E0599820F60BBAB5980EF892809ED /* SDLControlFramePayloadNak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadNak.h; path = SmartDeviceLink/SDLControlFramePayloadNak.h; sourceTree = ""; }; - 121EABB22D7495B5EBE9D72C0E2F9D2B /* SDLBackgroundTaskManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBackgroundTaskManager.h; path = SmartDeviceLink/SDLBackgroundTaskManager.h; sourceTree = ""; }; - 12816F5316A38E539BD4FBCC77ADE586 /* SDLGetSystemCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetSystemCapability.h; path = SmartDeviceLink/SDLGetSystemCapability.h; sourceTree = ""; }; - 12A3FA6BEC26E85A501F2A6A020EDBA3 /* SDLImageResolution.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageResolution.m; path = SmartDeviceLink/SDLImageResolution.m; sourceTree = ""; }; - 1333ABE7F346AAE4D08CC2F9393F2FBF /* SDLLockScreen.storyboard */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.storyboard; name = SDLLockScreen.storyboard; path = Base.lproj/SDLLockScreen.storyboard; sourceTree = ""; }; - 133621C4947DCE93C647CED71714B924 /* SDLImageType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageType.m; path = SmartDeviceLink/SDLImageType.m; sourceTree = ""; }; - 13701FFA4C23EEB343B1BAA4DE60E163 /* SDLGetCloudAppProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetCloudAppProperties.h; path = SmartDeviceLink/SDLGetCloudAppProperties.h; sourceTree = ""; }; - 138D7E23E43103272A89FF94CAF440C3 /* SDLHMIPermissions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMIPermissions.h; path = SmartDeviceLink/SDLHMIPermissions.h; sourceTree = ""; }; - 1444B3657275C2D2C695FC678ED8EF62 /* SDLFunctionID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFunctionID.m; path = SmartDeviceLink/SDLFunctionID.m; sourceTree = ""; }; - 14A578E900D2B9BF8DDA0AE05B717967 /* SDLLogManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogManager.m; path = SmartDeviceLink/SDLLogManager.m; sourceTree = ""; }; - 14A8D51B3439374BFB1554CBD1E477B8 /* SDLAlert.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlert.m; path = SmartDeviceLink/SDLAlert.m; sourceTree = ""; }; - 14CAEF2A13506951EA87997CC4AA236B /* SDLSubscribeButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButton.h; path = SmartDeviceLink/SDLSubscribeButton.h; sourceTree = ""; }; - 1535EB0F1986701BB26F15612FD19173 /* SDLTBTState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTBTState.h; path = SmartDeviceLink/SDLTBTState.h; sourceTree = ""; }; - 154F7BD449EBAB714A8FBF679C03A16F /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRegisterSecondaryTransportNak.h; path = SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.h; sourceTree = ""; }; - 1550A67573AAF420DF46830D2328EB6F /* SDLPerformInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformInteractionResponse.h; path = SmartDeviceLink/SDLPerformInteractionResponse.h; sourceTree = ""; }; - 157695036F630B99AA2A2162AAAAAF9E /* SDLDeleteFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFile.m; path = SmartDeviceLink/SDLDeleteFile.m; sourceTree = ""; }; - 157D461716A9EC90AA0014DEAF19F1BF /* SDLKeypressMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeypressMode.m; path = SmartDeviceLink/SDLKeypressMode.m; sourceTree = ""; }; - 1580E808E8B8B029807BCC9320D098D6 /* SDLSecurityType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSecurityType.h; path = SmartDeviceLink/SDLSecurityType.h; sourceTree = ""; }; - 16195BA066D92C5855624759BE7284F8 /* SDLFuelType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelType.m; path = SmartDeviceLink/SDLFuelType.m; sourceTree = ""; }; - 166F38C67540EA16117D3D9B0786CA65 /* SDLUnregisterAppInterfaceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnregisterAppInterfaceResponse.m; path = SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m; sourceTree = ""; }; - 16E0FE4610CAA939B208269D597C2BBF /* SDLStaticIconName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStaticIconName.h; path = SmartDeviceLink/SDLStaticIconName.h; sourceTree = ""; }; - 16EBB6180D66091B30DBE5C095E5CD44 /* SDLNavigationAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationAction.h; path = SmartDeviceLink/SDLNavigationAction.h; sourceTree = ""; }; - 17471B77EFB1B0CCB584D1BD7A3C1953 /* SDLNavigationCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationCapability.h; path = SmartDeviceLink/SDLNavigationCapability.h; sourceTree = ""; }; - 17D87C03746D4C019B47395971B49753 /* EAAccessory+SDLProtocols.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EAAccessory+SDLProtocols.m"; path = "SmartDeviceLink/EAAccessory+SDLProtocols.m"; sourceTree = ""; }; - 17F39883F5C926723043B16C4FEB77D9 /* SDLButtonEventMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonEventMode.h; path = SmartDeviceLink/SDLButtonEventMode.h; sourceTree = ""; }; - 180F965AD76BFA9FF73D2E6A17D76C66 /* SDLTouchCoord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchCoord.m; path = SmartDeviceLink/SDLTouchCoord.m; sourceTree = ""; }; - 181548D9FA28EF29C39F058DDD467003 /* SDLDeleteInteractionChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteInteractionChoiceSet.m; path = SmartDeviceLink/SDLDeleteInteractionChoiceSet.m; sourceTree = ""; }; - 182F56830437E660474472022B3B6A98 /* SDLVehicleDataActiveStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataActiveStatus.m; path = SmartDeviceLink/SDLVehicleDataActiveStatus.m; sourceTree = ""; }; - 18305D4E4A21F03086AE858DAC4C9BC4 /* SDLVoiceCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommand.h; path = SmartDeviceLink/SDLVoiceCommand.h; sourceTree = ""; }; - 185F3515C64226DE214C71343949C0A5 /* SDLLogTargetOSLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetOSLog.m; path = SmartDeviceLink/SDLLogTargetOSLog.m; sourceTree = ""; }; - 18C6985E2F4386AC03DB19BF363A41F0 /* SDLGetInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleData.h; path = SmartDeviceLink/SDLGetInteriorVehicleData.h; sourceTree = ""; }; - 18C8558030DFB952D8D24FA06D63E520 /* SDLMassageCushion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageCushion.m; path = SmartDeviceLink/SDLMassageCushion.m; sourceTree = ""; }; - 18CF297ABA10DB64D20A22E9C6634FF1 /* SDLSubscribeButtonManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonManager.h; path = SmartDeviceLink/SDLSubscribeButtonManager.h; sourceTree = ""; }; - 18D0C94E081C5652700A6657D0150BDA /* SDLUnregisterAppInterfaceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnregisterAppInterfaceResponse.h; path = SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h; sourceTree = ""; }; - 1908048E1CC8A27E740EF38F5430D864 /* SDLTextAndGraphicManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextAndGraphicManager.h; path = SmartDeviceLink/SDLTextAndGraphicManager.h; sourceTree = ""; }; - 19139224AA63FB5E62A3D689DD610047 /* SDLWeatherAlert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherAlert.h; path = SmartDeviceLink/SDLWeatherAlert.h; sourceTree = ""; }; - 192A53884A3A908C146B28777940F5E7 /* SDLLockScreenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenManager.m; path = SmartDeviceLink/SDLLockScreenManager.m; sourceTree = ""; }; - 199A9F6B336A337B69923DC5C5B8543F /* SDLRadioState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioState.h; path = SmartDeviceLink/SDLRadioState.h; sourceTree = ""; }; - 19FBDDF5290895EF460401DCB7F2C9EB /* SDLSystemCapabilityObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityObserver.m; path = SmartDeviceLink/SDLSystemCapabilityObserver.m; sourceTree = ""; }; - 1A4071441DDC5077B72F75166D79DE65 /* CVPixelBufferRef+SDLUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CVPixelBufferRef+SDLUtil.h"; path = "SmartDeviceLink/CVPixelBufferRef+SDLUtil.h"; sourceTree = ""; }; - 1A75D986DAB949A4EA63D5DDFC11ECAC /* SDLLockScreenConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenConfiguration.m; path = SmartDeviceLink/SDLLockScreenConfiguration.m; sourceTree = ""; }; - 1A761B2562737FE71DC9907B5B509B09 /* SDLOnButtonPress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnButtonPress.m; path = SmartDeviceLink/SDLOnButtonPress.m; sourceTree = ""; }; - 1B4F48B7943331568869C78731D2C1A3 /* SDLReleaseInteriorVehicleDataModuleResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReleaseInteriorVehicleDataModuleResponse.h; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h; sourceTree = ""; }; - 1B5378A0D8A574B369D8D84FC58D1882 /* SDLControlFramePayloadRPCStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRPCStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m; sourceTree = ""; }; - 1B74FBD65102DD04AAD49A5F43E8D28B /* SDLWeatherServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherServiceData.m; path = SmartDeviceLink/SDLWeatherServiceData.m; sourceTree = ""; }; - 1C7F206C35B6B523B922930AEAD75A25 /* SDLAppInterfaceUnregisteredReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppInterfaceUnregisteredReason.m; path = SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m; sourceTree = ""; }; - 1C8B86BA2EF69ECCA8BB0E915700E2FD /* SDLPredefinedLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPredefinedLayout.h; path = SmartDeviceLink/SDLPredefinedLayout.h; sourceTree = ""; }; - 1D2180BDF4301C114F0173CBFE678364 /* SDLSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncPData.h; path = SmartDeviceLink/SDLSyncPData.h; sourceTree = ""; }; - 1D48DAC1DBEA20AE11B03D74419A181C /* SDLAddCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddCommand.m; path = SmartDeviceLink/SDLAddCommand.m; sourceTree = ""; }; - 1D74AD8B5D8CFF4297D85C83D4BAD091 /* SDLStateMachine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStateMachine.m; path = SmartDeviceLink/SDLStateMachine.m; sourceTree = ""; }; - 1D9A91B4DF7620814FB322D536E96E5C /* SDLLifecycleMobileHMIStateHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleMobileHMIStateHandler.m; path = SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.m; sourceTree = ""; }; - 1DC9D9DFEFD8DA66012392040EC1C55F /* SDLCreateInteractionChoiceSetResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateInteractionChoiceSetResponse.m; path = SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m; sourceTree = ""; }; - 1E1869CDF2207B055D23A497C6184140 /* SDLProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolHeader.m; path = SmartDeviceLink/SDLProtocolHeader.m; sourceTree = ""; }; - 1E50C0F6174603A652E389F91F94FED1 /* SDLOnHMIStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnHMIStatus.m; path = SmartDeviceLink/SDLOnHMIStatus.m; sourceTree = ""; }; - 1E5F2C4BA784D2770AEA68069BA870A6 /* SDLTextAndGraphicManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextAndGraphicManager.m; path = SmartDeviceLink/SDLTextAndGraphicManager.m; sourceTree = ""; }; - 1E9A0368A42FD75DB7B35822E72FE4CA /* BiSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BiSON-dummy.m"; sourceTree = ""; }; - 1EAC648706939F20E524EF7CD347A0C2 /* SDLBackgroundTaskManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBackgroundTaskManager.m; path = SmartDeviceLink/SDLBackgroundTaskManager.m; sourceTree = ""; }; - 1EAE47EB9D6FA6A7086775871FD445E1 /* SDLDateTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDateTime.m; path = SmartDeviceLink/SDLDateTime.m; sourceTree = ""; }; - 1ECBAA05C55448900253CB47419A5374 /* SDLTextAlignment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextAlignment.h; path = SmartDeviceLink/SDLTextAlignment.h; sourceTree = ""; }; - 1EFA016E112D9F7CEE1696C8B3D236C1 /* SDLPreloadChoicesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPreloadChoicesOperation.m; path = SmartDeviceLink/SDLPreloadChoicesOperation.m; sourceTree = ""; }; - 1F9EA7382A67871A90547746B880626E /* SDLPrioritizedObjectCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrioritizedObjectCollection.h; path = SmartDeviceLink/SDLPrioritizedObjectCollection.h; sourceTree = ""; }; - 1FA3D11485B98D532358487B826F92A6 /* SDLButtonPressResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPressResponse.m; path = SmartDeviceLink/SDLButtonPressResponse.m; sourceTree = ""; }; - 1FBCD2AEAD60094A7CB51F32D61FDFDA /* SDLRPCParameterNames.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCParameterNames.m; path = SmartDeviceLink/SDLRPCParameterNames.m; sourceTree = ""; }; - 1FD7EEC34E8024D6A971F56B948E0EE1 /* SDLPublishAppServiceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPublishAppServiceResponse.h; path = SmartDeviceLink/SDLPublishAppServiceResponse.h; sourceTree = ""; }; - 1FF1117561E991A2D81068EDFF178C65 /* SDLNavigationServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationServiceData.m; path = SmartDeviceLink/SDLNavigationServiceData.m; sourceTree = ""; }; - 200CFF87D513357375E0E8A676B4DCF0 /* SDLGPSData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGPSData.h; path = SmartDeviceLink/SDLGPSData.h; sourceTree = ""; }; - 20237D47AB74244F657CB78EAC6D5E1D /* SDLSetAppIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetAppIcon.h; path = SmartDeviceLink/SDLSetAppIcon.h; sourceTree = ""; }; - 20267DD8ABB8C4937C58CB114EFA029A /* SDLSpeakResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeakResponse.m; path = SmartDeviceLink/SDLSpeakResponse.m; sourceTree = ""; }; - 202CF610C5F2342C8E54FB9049CF4F47 /* SDLDeleteSubMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteSubMenu.h; path = SmartDeviceLink/SDLDeleteSubMenu.h; sourceTree = ""; }; - 208C514CB24786D3F215E8EE314CA7B1 /* NSMutableDictionary+Store.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+Store.m"; path = "SmartDeviceLink/NSMutableDictionary+Store.m"; sourceTree = ""; }; - 20E5AD672FECA3D8596890719BD59620 /* SDLEncodedSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncodedSyncPData.h; path = SmartDeviceLink/SDLEncodedSyncPData.h; sourceTree = ""; }; - 20FED3C64AC281061455C114F2CDEEA8 /* SDLGetAppServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetAppServiceData.h; path = SmartDeviceLink/SDLGetAppServiceData.h; sourceTree = ""; }; - 2118A772BE2023279116272EE7B812EB /* SDLIAPControlSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPControlSession.h; path = SmartDeviceLink/SDLIAPControlSession.h; sourceTree = ""; }; - 21336DC8F1B0075CB0306847BECE7486 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = fr.lproj/SDLLockScreen.strings; sourceTree = ""; }; - 2156D0BCF6E0BA97352362D70EAD4710 /* SDLUpdateTurnList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateTurnList.m; path = SmartDeviceLink/SDLUpdateTurnList.m; sourceTree = ""; }; - 218552AF91635BA12359F7249694AF3B /* SDLNavigationJunction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationJunction.h; path = SmartDeviceLink/SDLNavigationJunction.h; sourceTree = ""; }; - 21D8EB78FB694C0B9754FB236AD82B6E /* SDLSubscribeWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeWayPoints.h; path = SmartDeviceLink/SDLSubscribeWayPoints.h; sourceTree = ""; }; - 21F2AED434573DC685BDADF20194DD4E /* SDLGlobalProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGlobalProperty.h; path = SmartDeviceLink/SDLGlobalProperty.h; sourceTree = ""; }; - 21FF3C3DE15BAD7345BC1A9C2B469984 /* SDLLifecycleConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleConfiguration.h; path = SmartDeviceLink/SDLLifecycleConfiguration.h; sourceTree = ""; }; - 2205A00A1B4704AA9532149FA266EF7A /* SDLSeatMemoryActionType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatMemoryActionType.m; path = SmartDeviceLink/SDLSeatMemoryActionType.m; sourceTree = ""; }; - 221567F33875BCC7E8D9E6448B21CAEA /* SDLSetGlobalPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetGlobalPropertiesResponse.h; path = SmartDeviceLink/SDLSetGlobalPropertiesResponse.h; sourceTree = ""; }; - 22F32629EED3C3C993F19F29509552C5 /* SDLWarningLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWarningLightStatus.m; path = SmartDeviceLink/SDLWarningLightStatus.m; sourceTree = ""; }; - 22F425A341DF24170003B4CF66D9AB40 /* SDLHMISettingsControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMISettingsControlCapabilities.h; path = SmartDeviceLink/SDLHMISettingsControlCapabilities.h; sourceTree = ""; }; - 235D21011FFD874789BF1B303492BB80 /* SDLStreamingMediaManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManagerConstants.h; path = SmartDeviceLink/SDLStreamingMediaManagerConstants.h; sourceTree = ""; }; - 23D8613239E013C85A55566B014E652F /* SDLListFilesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFilesOperation.m; path = SmartDeviceLink/SDLListFilesOperation.m; sourceTree = ""; }; - 23FBC3FE7098E4D00F7657B9BFDBF6AA /* SDLStreamingMediaConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaConfiguration.m; path = SmartDeviceLink/SDLStreamingMediaConfiguration.m; sourceTree = ""; }; - 2540FB48A65EFCB11FB8B5156DBA8201 /* SDLNotificationDispatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNotificationDispatcher.h; path = SmartDeviceLink/SDLNotificationDispatcher.h; sourceTree = ""; }; - 257C0CD607BEF7992A0953E0AD01C31D /* SDLH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLH264Packetizer.h; path = SmartDeviceLink/SDLH264Packetizer.h; sourceTree = ""; }; - 25831F0759C377A291230FE1B42725AC /* SDLControlFramePayloadVideoStartService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadVideoStartService.m; path = SmartDeviceLink/SDLControlFramePayloadVideoStartService.m; sourceTree = ""; }; - 25D424DB2BA7511820D2FE4FCDC9E179 /* SDLDisplayMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayMode.h; path = SmartDeviceLink/SDLDisplayMode.h; sourceTree = ""; }; - 25F504266BEC635D2B9887837CA00D26 /* SDLVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVersion.h; path = SmartDeviceLink/SDLVersion.h; sourceTree = ""; }; - 2643EB480894991204DC88CA218D09C2 /* SDLWindowCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWindowCapability.m; path = SmartDeviceLink/SDLWindowCapability.m; sourceTree = ""; }; - 26FD9D1C417A073A9574CE798E12DFED /* SDLMenuManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuManager.m; path = SmartDeviceLink/SDLMenuManager.m; sourceTree = ""; }; - 270D8238A2295E6936F9BCC907DD8BB1 /* SDLTextField+ScreenManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLTextField+ScreenManagerExtensions.m"; path = "SmartDeviceLink/SDLTextField+ScreenManagerExtensions.m"; sourceTree = ""; }; - 271D810484AEA55E4E3F80C25773E46A /* SDLRPCPermissionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCPermissionStatus.h; path = SmartDeviceLink/SDLRPCPermissionStatus.h; sourceTree = ""; }; - 2741946AE645F8BDA0E4E6BEFA965D56 /* SDLPermissionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionStatus.h; path = SmartDeviceLink/SDLPermissionStatus.h; sourceTree = ""; }; - 27513221634E83533BBE60EDA4667D93 /* SDLDynamicMenuUpdateAlgorithm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDynamicMenuUpdateAlgorithm.h; path = SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.h; sourceTree = ""; }; - 2761563B654943CE2BDBA7FAEF303886 /* SDLV1ProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV1ProtocolHeader.m; path = SmartDeviceLink/SDLV1ProtocolHeader.m; sourceTree = ""; }; - 27CD966D3D85688EC1467BD37B74D1E0 /* SDLVrHelpItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVrHelpItem.m; path = SmartDeviceLink/SDLVrHelpItem.m; sourceTree = ""; }; - 2845FF7035CF7F607706E501DB44DE7E /* SDLOnSystemCapabilityUpdated.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSystemCapabilityUpdated.h; path = SmartDeviceLink/SDLOnSystemCapabilityUpdated.h; sourceTree = ""; }; - 285B908EABA56FEE3FBABD179F93E58C /* SDLControlFramePayloadType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadType.h; path = SmartDeviceLink/SDLControlFramePayloadType.h; sourceTree = ""; }; - 2887D0C5085EA06F9D4FD170C6F4235C /* SDLAudioControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioControlCapabilities.h; path = SmartDeviceLink/SDLAudioControlCapabilities.h; sourceTree = ""; }; - 28C885A6D2F4227B45D870A38421B3A2 /* SDLLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightStatus.m; path = SmartDeviceLink/SDLLightStatus.m; sourceTree = ""; }; - 28FD8035C89A39A37313F411B5C93EA4 /* SDLAudioPassThruCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioPassThruCapabilities.h; path = SmartDeviceLink/SDLAudioPassThruCapabilities.h; sourceTree = ""; }; - 2947E91CDA3B132E494738EF13BCB952 /* SDLReadDID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReadDID.m; path = SmartDeviceLink/SDLReadDID.m; sourceTree = ""; }; - 29633F4DCFB56822424E2DE90E738544 /* SDLAmbientLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAmbientLightStatus.m; path = SmartDeviceLink/SDLAmbientLightStatus.m; sourceTree = ""; }; - 297D3BF189B64B55B4EBFB1B4F256FD9 /* SDLButtonPressResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPressResponse.h; path = SmartDeviceLink/SDLButtonPressResponse.h; sourceTree = ""; }; - 29F0F5DC74AC7556C287B80348D40588 /* SDLSetGlobalProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetGlobalProperties.h; path = SmartDeviceLink/SDLSetGlobalProperties.h; sourceTree = ""; }; - 2A55660E282AE3C863355F2402E8A0E1 /* SDLIconArchiveFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIconArchiveFile.h; path = SmartDeviceLink/SDLIconArchiveFile.h; sourceTree = ""; }; - 2AB253E744896719697E4F5307AA1F8F /* SDLGrid.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGrid.h; path = SmartDeviceLink/SDLGrid.h; sourceTree = ""; }; - 2ACE82786CE0ED6B2A519263CE025F18 /* SDLManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLManagerDelegate.h; path = SmartDeviceLink/SDLManagerDelegate.h; sourceTree = ""; }; - 2AF9D8696C22ABDC9B6EC313EC8554C4 /* SDLAudioControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioControlData.h; path = SmartDeviceLink/SDLAudioControlData.h; sourceTree = ""; }; - 2B5397A5AAFDDF3AA577CDC4718DDD2C /* SDLHMICapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMICapabilities.m; path = SmartDeviceLink/SDLHMICapabilities.m; sourceTree = ""; }; - 2B6AA11A6ACA1FEDE8194897C492F598 /* SDLTouch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouch.m; path = SmartDeviceLink/SDLTouch.m; sourceTree = ""; }; - 2B9DA57DC3982AC2A8A92052ECAB639A /* NSMutableDictionary+SafeRemove.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+SafeRemove.h"; path = "SmartDeviceLink/NSMutableDictionary+SafeRemove.h"; sourceTree = ""; }; - 2BD6D254A4BA71629C487F7B9B5FF780 /* SDLEncodedSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncodedSyncPData.m; path = SmartDeviceLink/SDLEncodedSyncPData.m; sourceTree = ""; }; - 2BE4028ADAD57F4A9176FEBC20B5EC95 /* SDLOnVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnVehicleData.h; path = SmartDeviceLink/SDLOnVehicleData.h; sourceTree = ""; }; - 2C10B9546CABAE071881D281D73820BB /* SDLSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncPData.m; path = SmartDeviceLink/SDLSyncPData.m; sourceTree = ""; }; - 2C38F093E9748ACAA9284BD728AA9AAF /* SDLAsynchronousRPCOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousRPCOperation.m; path = SmartDeviceLink/SDLAsynchronousRPCOperation.m; sourceTree = ""; }; - 2D2BE3CCEA4B2BB726B06E6675B831E6 /* SDLStreamingMediaManagerConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaManagerConstants.m; path = SmartDeviceLink/SDLStreamingMediaManagerConstants.m; sourceTree = ""; }; - 2D879437E0B1DE45D4D626AD9DA1BD58 /* SDLMenuManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuManager.h; path = SmartDeviceLink/SDLMenuManager.h; sourceTree = ""; }; - 2EC4FB6334D52A0DA36EAF8AB148A89A /* SDLRequestType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRequestType.m; path = SmartDeviceLink/SDLRequestType.m; sourceTree = ""; }; - 2F06DFF88342148FB4F6EA0481D909CF /* SDLSendLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendLocation.h; path = SmartDeviceLink/SDLSendLocation.h; sourceTree = ""; }; - 2F27E3C03AA7B2EAA902D3C1D95090DB /* SDLVideoStreamingState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingState.h; path = SmartDeviceLink/SDLVideoStreamingState.h; sourceTree = ""; }; - 2F7B82FAB4C07FC4227B758EFFFD79F6 /* SDLGetCloudAppPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetCloudAppPropertiesResponse.h; path = SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h; sourceTree = ""; }; - 2FD49396D5358F998A4629ED1C829892 /* SDLAmbientLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAmbientLightStatus.h; path = SmartDeviceLink/SDLAmbientLightStatus.h; sourceTree = ""; }; - 3030AFD52F92B429CA1F20183DDAE4FF /* SDLGetInteriorVehicleDataConsentResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataConsentResponse.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m; sourceTree = ""; }; - 303674032980DBA4C264AC80AD1BF117 /* SDLProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolHeader.h; path = SmartDeviceLink/SDLProtocolHeader.h; sourceTree = ""; }; - 303C3E1F855B7BE56C54751F8820643A /* SDLReadDID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReadDID.h; path = SmartDeviceLink/SDLReadDID.h; sourceTree = ""; }; - 304AFE04E482029F914E870FCBC54E4F /* SDLResponseDispatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResponseDispatcher.m; path = SmartDeviceLink/SDLResponseDispatcher.m; sourceTree = ""; }; - 30C60087B34A79843BE53EE59A516D68 /* SDLAppServiceType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceType.m; path = SmartDeviceLink/SDLAppServiceType.m; sourceTree = ""; }; - 30D436C8BEF4813A0366098F52523C60 /* SDLCarModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarModeStatus.m; path = SmartDeviceLink/SDLCarModeStatus.m; sourceTree = ""; }; - 31788B292B69F3A09E1B6F39CAD277FB /* SDLOnDriverDistraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnDriverDistraction.m; path = SmartDeviceLink/SDLOnDriverDistraction.m; sourceTree = ""; }; - 31BBFBBEB2100C4535679ABAF5A55F79 /* SDLSingleTireStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSingleTireStatus.h; path = SmartDeviceLink/SDLSingleTireStatus.h; sourceTree = ""; }; - 322553C18D16DC8359FEAAC9FC09B82A /* SDLLockScreenStatusManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenStatusManager.h; path = SmartDeviceLink/SDLLockScreenStatusManager.h; sourceTree = ""; }; - 326B988FE7A92BB39F45659C26EDF13D /* SDLElectronicParkBrakeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLElectronicParkBrakeStatus.h; path = SmartDeviceLink/SDLElectronicParkBrakeStatus.h; sourceTree = ""; }; - 32A8A151275801260ADFAEC896C908A8 /* SDLDeleteChoicesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteChoicesOperation.h; path = SmartDeviceLink/SDLDeleteChoicesOperation.h; sourceTree = ""; }; - 32C3FE6D390A5D3DF3DDB3C3E02CD486 /* SDLUnsubscribeButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeButton.h; path = SmartDeviceLink/SDLUnsubscribeButton.h; sourceTree = ""; }; - 3323659F219E52681E8003E7972EF6C6 /* SDLSetInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetInteriorVehicleData.m; path = SmartDeviceLink/SDLSetInteriorVehicleData.m; sourceTree = ""; }; - 338899E14AD4EC3E7D4D257B7F18AF1C /* SDLFileManagerConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileManagerConfiguration.m; path = SmartDeviceLink/SDLFileManagerConfiguration.m; sourceTree = ""; }; - 33A2A786BDAED219574077742C9AA3FC /* SDLScrollableMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScrollableMessage.m; path = SmartDeviceLink/SDLScrollableMessage.m; sourceTree = ""; }; - 3416AED17893B065F631CBB7B0714BAC /* SDLECallInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLECallInfo.h; path = SmartDeviceLink/SDLECallInfo.h; sourceTree = ""; }; - 346DD6B5C6DEFF7D91F128D926AFB0FE /* SDLPreloadChoicesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPreloadChoicesOperation.h; path = SmartDeviceLink/SDLPreloadChoicesOperation.h; sourceTree = ""; }; - 347ECC1742A5C5DD03FA8380821DB34F /* SDLSubscribeVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeVehicleData.h; path = SmartDeviceLink/SDLSubscribeVehicleData.h; sourceTree = ""; }; - 352942891F72F2773BF5C6130A6AF9B9 /* SDLMediaServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaServiceData.m; path = SmartDeviceLink/SDLMediaServiceData.m; sourceTree = ""; }; - 356850E904CD295F4FF6ED4BB15D4D57 /* SDLGenericResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGenericResponse.h; path = SmartDeviceLink/SDLGenericResponse.h; sourceTree = ""; }; - 35CB1DE90D5986B9423B7DFF67E9C2CB /* SDLRadioControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioControlCapabilities.m; path = SmartDeviceLink/SDLRadioControlCapabilities.m; sourceTree = ""; }; - 35CFB929B710C6200396CA20289832F1 /* SDLFuelCutoffStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelCutoffStatus.m; path = SmartDeviceLink/SDLFuelCutoffStatus.m; sourceTree = ""; }; - 3603AB47CCA7EABB5B1FDAC0C16A59C7 /* SDLDateTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDateTime.h; path = SmartDeviceLink/SDLDateTime.h; sourceTree = ""; }; - 360BEE262B398C4DAF3FB595771EFA2D /* SDLDialNumberResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDialNumberResponse.h; path = SmartDeviceLink/SDLDialNumberResponse.h; sourceTree = ""; }; - 363A1394DE1FFD6DF123791772377320 /* SDLVehicleDataEventStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataEventStatus.m; path = SmartDeviceLink/SDLVehicleDataEventStatus.m; sourceTree = ""; }; - 36421268915268D123352BDEDA5AC948 /* SDLOnPermissionsChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnPermissionsChange.m; path = SmartDeviceLink/SDLOnPermissionsChange.m; sourceTree = ""; }; - 37100CC61CBB83D8FD8AF13BB98BCD14 /* SDLTouch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouch.h; path = SmartDeviceLink/SDLTouch.h; sourceTree = ""; }; - 372472FCDD67DFC4CADCCC7B18520B62 /* SDLVentilationMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVentilationMode.m; path = SmartDeviceLink/SDLVentilationMode.m; sourceTree = ""; }; - 3778DFBEF00494FE5D31E79DFBB96B35 /* SDLError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLError.m; path = SmartDeviceLink/SDLError.m; sourceTree = ""; }; - 3798CB99A6B7352DEED2C27BC86F9E32 /* SDLTurn.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTurn.h; path = SmartDeviceLink/SDLTurn.h; sourceTree = ""; }; - 37A578EB03978AF09B4B22E2D9B48EB6 /* SDLProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocol.m; path = SmartDeviceLink/SDLProtocol.m; sourceTree = ""; }; - 37BB95EEE59CD21C3293F54E2CD22CEA /* SDLLifecycleProtocolHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleProtocolHandler.h; path = SmartDeviceLink/SDLLifecycleProtocolHandler.h; sourceTree = ""; }; - 382E3AEEA682773DFC104C615B3B6240 /* SDLDeviceStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceStatus.h; path = SmartDeviceLink/SDLDeviceStatus.h; sourceTree = ""; }; - 383B3E8FFC31FF9511326F14714F98E2 /* SDLLogTargetFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetFile.m; path = SmartDeviceLink/SDLLogTargetFile.m; sourceTree = ""; }; - 388D88A1DB6D4B1CECD8ADE296D05335 /* SDLSoftButtonObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonObject.m; path = SmartDeviceLink/SDLSoftButtonObject.m; sourceTree = ""; }; - 38CB1A0076770A1F273C6EBCD6D8C8B0 /* SDLIAPTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPTransport.m; path = SmartDeviceLink/SDLIAPTransport.m; sourceTree = ""; }; - 38E242E9C5BDB3380CD5DE37E9262B8D /* SDLShowAppMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowAppMenu.h; path = SmartDeviceLink/SDLShowAppMenu.h; sourceTree = ""; }; - 38E58E6ACD990EA45CAE7C8353A814AC /* SDLServiceUpdateReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLServiceUpdateReason.m; path = SmartDeviceLink/SDLServiceUpdateReason.m; sourceTree = ""; }; - 3999098BE21C5D7373235405AF09F5A4 /* SDLLifecycleSyncPDataHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleSyncPDataHandler.h; path = SmartDeviceLink/SDLLifecycleSyncPDataHandler.h; sourceTree = ""; }; - 399963B38F59EC81F67BF3E9E31B2F1B /* SDLTriggerSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTriggerSource.m; path = SmartDeviceLink/SDLTriggerSource.m; sourceTree = ""; }; - 39EDE1E04ABABDD6EB636AABBB6871A0 /* SDLLogModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogModel.m; path = SmartDeviceLink/SDLLogModel.m; sourceTree = ""; }; - 39FFFBA8ED556FDD85EBCF18BF7898C8 /* SDLSeatLocationCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatLocationCapability.h; path = SmartDeviceLink/SDLSeatLocationCapability.h; sourceTree = ""; }; - 3A53E97D25D99A5593B52E88C69877A8 /* SDLLockScreenPresenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenPresenter.h; path = SmartDeviceLink/SDLLockScreenPresenter.h; sourceTree = ""; }; - 3A703348831CBF1811100C05D2D7FC44 /* SDLVehicleDataType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataType.m; path = SmartDeviceLink/SDLVehicleDataType.m; sourceTree = ""; }; - 3A8807AD416E6BB85AFA2FF648C9ADFD /* SDLLogTargetAppleSystemLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetAppleSystemLog.h; path = SmartDeviceLink/SDLLogTargetAppleSystemLog.h; sourceTree = ""; }; - 3ADF6F4E6226B439753C2A759A9860E3 /* SDLModuleInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleInfo.m; path = SmartDeviceLink/SDLModuleInfo.m; sourceTree = ""; }; - 3AF9C51B912A87FCA50DB65BF6162630 /* SDLCharacterSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCharacterSet.m; path = SmartDeviceLink/SDLCharacterSet.m; sourceTree = ""; }; - 3B07FF648818147BBC509B12366D5DBE /* SDLV1ProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV1ProtocolHeader.h; path = SmartDeviceLink/SDLV1ProtocolHeader.h; sourceTree = ""; }; - 3B163DFB6631E803FE7DF33DF6D511D7 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = es.lproj/SDLLockScreen.strings; sourceTree = ""; }; - 3B4CDDE3895D8DB904D1109A078E3244 /* SDLSoftButtonTransitionOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonTransitionOperation.h; path = SmartDeviceLink/SDLSoftButtonTransitionOperation.h; sourceTree = ""; }; - 3B9385D01A185AC52F1A077BBDC5759D /* SDLDeviceInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceInfo.m; path = SmartDeviceLink/SDLDeviceInfo.m; sourceTree = ""; }; - 3C252C93BD400D587AED7514EAE2990A /* SDLECallConfirmationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLECallConfirmationStatus.h; path = SmartDeviceLink/SDLECallConfirmationStatus.h; sourceTree = ""; }; - 3C4374789272475208038484B688328D /* SDLScreenParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScreenParams.m; path = SmartDeviceLink/SDLScreenParams.m; sourceTree = ""; }; - 3C61578FBFA3147D20DF240420C54033 /* SDLClimateControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClimateControlData.m; path = SmartDeviceLink/SDLClimateControlData.m; sourceTree = ""; }; - 3C902D9277607A16626B5FEB6FC12BE6 /* SDLLifecycleMobileHMIStateHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleMobileHMIStateHandler.h; path = SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.h; sourceTree = ""; }; - 3CFB911A9893560A2C355E39C00E5539 /* NSMapTable+Subscripting.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMapTable+Subscripting.m"; path = "SmartDeviceLink/NSMapTable+Subscripting.m"; sourceTree = ""; }; - 3D0CF36EE6F81BF9E7C336BFF6FA6882 /* SDLDirection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDirection.m; path = SmartDeviceLink/SDLDirection.m; sourceTree = ""; }; - 3D0EE4570CF0887B91A7C8D2E2E0414C /* SDLLogMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogMacros.h; path = SmartDeviceLink/SDLLogMacros.h; sourceTree = ""; }; - 3DB78A3398DB496866979B7038BB5583 /* SDLAppServiceCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceCapability.h; path = SmartDeviceLink/SDLAppServiceCapability.h; sourceTree = ""; }; - 3DE9E361C8A5F013FAB70F518A575C64 /* SDLChoiceSetDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSetDelegate.h; path = SmartDeviceLink/SDLChoiceSetDelegate.h; sourceTree = ""; }; - 3E982E3129EE1BF2B88BE3ECFD70CFE7 /* SDLMediaType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaType.m; path = SmartDeviceLink/SDLMediaType.m; sourceTree = ""; }; - 3EADC1263640A78820A3303343799BE6 /* SDLAsynchronousOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousOperation.h; path = SmartDeviceLink/SDLAsynchronousOperation.h; sourceTree = ""; }; - 3EB05BE08F0592AB8A2B2E5AA70E41FC /* SDLVehicleDataResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataResult.h; path = SmartDeviceLink/SDLVehicleDataResult.h; sourceTree = ""; }; - 3EB6A8B5DA3D228DF8DC2F364DAA3F73 /* SDLLifecycleConfigurationUpdate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleConfigurationUpdate.h; path = SmartDeviceLink/SDLLifecycleConfigurationUpdate.h; sourceTree = ""; }; - 3EC3C54E0392906F04997BCF759C440D /* SDLKeyboardProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardProperties.h; path = SmartDeviceLink/SDLKeyboardProperties.h; sourceTree = ""; }; - 3F25040FF627FE9246171E4EA90E8CA3 /* SDLPinchGesture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPinchGesture.m; path = SmartDeviceLink/SDLPinchGesture.m; sourceTree = ""; }; - 3F343F8E278AA4A0EFBFBC077661846E /* SDLLightName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightName.h; path = SmartDeviceLink/SDLLightName.h; sourceTree = ""; }; - 3F9AC4187700727AA62E02334C521533 /* SDLSetAppIconResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetAppIconResponse.m; path = SmartDeviceLink/SDLSetAppIconResponse.m; sourceTree = ""; }; - 3FDDB1063EBEFDA59DA01CE662F32CE8 /* SDLFileWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileWrapper.h; path = SmartDeviceLink/SDLFileWrapper.h; sourceTree = ""; }; - 3FDDC6658582C0B1CEC0775EEBEFEF01 /* bson_array.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_array.h; path = src/bson_array.h; sourceTree = ""; }; - 3FE4CF814EDDBC348C63CE0ADEA512E8 /* SDLEndAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEndAudioPassThru.m; path = SmartDeviceLink/SDLEndAudioPassThru.m; sourceTree = ""; }; - 4055BE744BC2A9F663E6671A2480D01A /* SDLInteractionMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLInteractionMode.m; path = SmartDeviceLink/SDLInteractionMode.m; sourceTree = ""; }; - 4066A1AC90601F2ED75F112128204143 /* SDLIAPConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPConstants.h; path = SmartDeviceLink/SDLIAPConstants.h; sourceTree = ""; }; - 4085E3CA18C0C722411355146D5FA236 /* SDLTransportType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTransportType.h; path = SmartDeviceLink/SDLTransportType.h; sourceTree = ""; }; - 408658D7DB613F01047698ECAE093D90 /* SDLEncryptionLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncryptionLifecycleManager.h; path = SmartDeviceLink/SDLEncryptionLifecycleManager.h; sourceTree = ""; }; - 40B5504C8F1E24113D498111742CF96E /* SDLDiagnosticMessageResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDiagnosticMessageResponse.m; path = SmartDeviceLink/SDLDiagnosticMessageResponse.m; sourceTree = ""; }; - 40E148CD4DE2F892CDEA9A3C1BCCD3DE /* SDLEndAudioPassThruResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEndAudioPassThruResponse.m; path = SmartDeviceLink/SDLEndAudioPassThruResponse.m; sourceTree = ""; }; - 410C7382DF348567CD7D56ECDD08CAC7 /* SDLDialNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDialNumber.m; path = SmartDeviceLink/SDLDialNumber.m; sourceTree = ""; }; - 4149BB003DEF4C5C4BC5B7A332FD6707 /* SDLHapticRect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHapticRect.m; path = SmartDeviceLink/SDLHapticRect.m; sourceTree = ""; }; - 4157869D41FABE62B8C192F3D08F1612 /* SDLSendHapticData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendHapticData.h; path = SmartDeviceLink/SDLSendHapticData.h; sourceTree = ""; }; - 41DDF1201E3711F4B246F80D53C3BE29 /* SDLGetVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetVehicleDataResponse.h; path = SmartDeviceLink/SDLGetVehicleDataResponse.h; sourceTree = ""; }; - 41EEEB77F744D0ED3EF519C0FD308F2D /* SDLRadioControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioControlData.m; path = SmartDeviceLink/SDLRadioControlData.m; sourceTree = ""; }; - 430C9D5FCDF96E9E712BC537CDC01EA1 /* SDLFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFile.h; path = SmartDeviceLink/SDLFile.h; sourceTree = ""; }; - 438BFB4FB40C6B387CF8D49072456C32 /* SDLProtocolMessageDisassembler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessageDisassembler.m; path = SmartDeviceLink/SDLProtocolMessageDisassembler.m; sourceTree = ""; }; - 43BDEBA0AFE8CD88C63344AA13ECFD35 /* SDLGlobals.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGlobals.m; path = SmartDeviceLink/SDLGlobals.m; sourceTree = ""; }; - 43FC77484E65E9648B5154177DA965B0 /* SDLLightCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightCapabilities.h; path = SmartDeviceLink/SDLLightCapabilities.h; sourceTree = ""; }; - 4411DAF1B7858D84F9A5933F44751B69 /* SDLPerformAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAudioPassThru.h; path = SmartDeviceLink/SDLPerformAudioPassThru.h; sourceTree = ""; }; - 4417737422CDA6FC54D20FD73B984618 /* SDLWindowCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWindowCapability.h; path = SmartDeviceLink/SDLWindowCapability.h; sourceTree = ""; }; - 445645662A65A1C42078DABD7A20509E /* SDLLifecycleSyncPDataHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleSyncPDataHandler.m; path = SmartDeviceLink/SDLLifecycleSyncPDataHandler.m; sourceTree = ""; }; - 4484173D9CEBA083E87CF3BC381D844B /* SDLShowConstantTBTResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowConstantTBTResponse.h; path = SmartDeviceLink/SDLShowConstantTBTResponse.h; sourceTree = ""; }; - 44849D20DBCA2A08A69AC1CC08D2E12E /* SDLReadDIDResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReadDIDResponse.h; path = SmartDeviceLink/SDLReadDIDResponse.h; sourceTree = ""; }; - 448B4ECBFE83DF3E2B77F2D820F2A368 /* SDLCancelInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCancelInteraction.m; path = SmartDeviceLink/SDLCancelInteraction.m; sourceTree = ""; }; - 4498BA293BEAD680B6055DB76B201258 /* emhashmap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = emhashmap.h; path = src/emhashmap/emhashmap.h; sourceTree = ""; }; - 44A033E80AC09276E47884FBDAC7CA19 /* SDLLightName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightName.m; path = SmartDeviceLink/SDLLightName.m; sourceTree = ""; }; - 44A6433D1239C8C9171A35AE33070626 /* SDLOnTouchEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnTouchEvent.m; path = SmartDeviceLink/SDLOnTouchEvent.m; sourceTree = ""; }; - 450AA0AE78066B15DEBE4151BFA7A1DD /* SDLRPCParameterNames.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCParameterNames.h; path = SmartDeviceLink/SDLRPCParameterNames.h; sourceTree = ""; }; - 454C2F95ECB135A8B710295C27270E3C /* SmartDeviceLink.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartDeviceLink.release.xcconfig; sourceTree = ""; }; - 4594CC3FF1671BC10D8439D6DD794F5C /* SDLProtocolMessageAssembler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessageAssembler.m; path = SmartDeviceLink/SDLProtocolMessageAssembler.m; sourceTree = ""; }; - 45E554466607C0B6553630AB6FB0D015 /* SDLVrHelpItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVrHelpItem.h; path = SmartDeviceLink/SDLVrHelpItem.h; sourceTree = ""; }; - 46523A89CAE6EF97155926063D0C221A /* SDLHexUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHexUtility.h; path = SmartDeviceLink/SDLHexUtility.h; sourceTree = ""; }; - 48849036CC2BEE806DD74887DCF4875B /* SDLFocusableItemHitTester.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemHitTester.h; path = SmartDeviceLink/SDLFocusableItemHitTester.h; sourceTree = ""; }; - 489CBF13E068A7E6A66DF0EFDFFB7B8B /* SDLGetAppServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetAppServiceData.m; path = SmartDeviceLink/SDLGetAppServiceData.m; sourceTree = ""; }; - 48BF8E7CA87C2563EB4169EC2CFC771C /* SmartDeviceLink.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SmartDeviceLink.modulemap; sourceTree = ""; }; - 4937DF05A2FDF67D435549105737E0AD /* SDLSecondaryTransportManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSecondaryTransportManager.m; path = SmartDeviceLink/SDLSecondaryTransportManager.m; sourceTree = ""; }; - 49732759D432317F0DA45A467B441A1C /* SDLMenuParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuParams.m; path = SmartDeviceLink/SDLMenuParams.m; sourceTree = ""; }; - 49CD8EE4FC64B30478D9E206DAC78F84 /* SDLIAPSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPSession.h; path = SmartDeviceLink/SDLIAPSession.h; sourceTree = ""; }; - 4A1B97540C9445EBC294C833B507564A /* SDLListFilesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFilesOperation.h; path = SmartDeviceLink/SDLListFilesOperation.h; sourceTree = ""; }; - 4A2717B2D5DE554897D72CB951C42757 /* SDLCacheFileManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCacheFileManager.h; path = SmartDeviceLink/SDLCacheFileManager.h; sourceTree = ""; }; - 4A5A2F651034AEC49BAE3963D3AA8018 /* SDLErrorConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLErrorConstants.h; path = SmartDeviceLink/SDLErrorConstants.h; sourceTree = ""; }; - 4A84D0C360959095854C5870445E677B /* SDLWiperStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWiperStatus.h; path = SmartDeviceLink/SDLWiperStatus.h; sourceTree = ""; }; - 4AC029B73C422385316B810096AC575F /* SDLLogModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogModel.h; path = SmartDeviceLink/SDLLogModel.h; sourceTree = ""; }; - 4B0B69E8E7BE0B46B0C8659E5046F112 /* SDLMenuCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuCell.h; path = SmartDeviceLink/SDLMenuCell.h; sourceTree = ""; }; - 4B0CD534B92E485AC78B351897352A70 /* SDLLocationDetails.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLocationDetails.m; path = SmartDeviceLink/SDLLocationDetails.m; sourceTree = ""; }; - 4B14A2B419E2DC947711544B4DFA5659 /* SDLUnsubscribeButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeButton.m; path = SmartDeviceLink/SDLUnsubscribeButton.m; sourceTree = ""; }; - 4B28910E4BB86E3DEC060B763E45C0FA /* SDLVoiceCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommand.m; path = SmartDeviceLink/SDLVoiceCommand.m; sourceTree = ""; }; - 4B5B5ADAAD2A74CAACA981BBA0E650AC /* SDLSystemCapabilityType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityType.h; path = SmartDeviceLink/SDLSystemCapabilityType.h; sourceTree = ""; }; - 4B887B61299E3CDBAD04F3FAF0C642DB /* SDLModuleInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleInfo.h; path = SmartDeviceLink/SDLModuleInfo.h; sourceTree = ""; }; - 4BC369B414377098F2BD4E968676D84D /* SDLIgnitionStableStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIgnitionStableStatus.h; path = SmartDeviceLink/SDLIgnitionStableStatus.h; sourceTree = ""; }; - 4BC611A83E6B204442E6053A45D288D1 /* SDLImageField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageField.h; path = SmartDeviceLink/SDLImageField.h; sourceTree = ""; }; - 4BDE7DCAD2B3CFA25E38ADF8F9B7C9ED /* SDLLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleManager.h; path = SmartDeviceLink/SDLLifecycleManager.h; sourceTree = ""; }; - 4C31BC277EBBE8EABF6F1F7725ACEEAA /* SDLStaticIconName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStaticIconName.m; path = SmartDeviceLink/SDLStaticIconName.m; sourceTree = ""; }; - 4C7F9ED55C903DF4E945CF493F83626F /* SDLChoiceSetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSetManager.h; path = SmartDeviceLink/SDLChoiceSetManager.h; sourceTree = ""; }; - 4C9AED1F70FC929F9636D503F5A4B658 /* SDLShowAppMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowAppMenu.m; path = SmartDeviceLink/SDLShowAppMenu.m; sourceTree = ""; }; - 4D3EC08357B4F67E2BD4CACCC0300724 /* SDLImageField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageField.m; path = SmartDeviceLink/SDLImageField.m; sourceTree = ""; }; - 4D48E02753FA770CE680D9502BD8F27F /* SDLSliderResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSliderResponse.m; path = SmartDeviceLink/SDLSliderResponse.m; sourceTree = ""; }; - 4D75BCCCC055F72C4B46F1FF7ADE460C /* SDLRTPH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRTPH264Packetizer.h; path = SmartDeviceLink/SDLRTPH264Packetizer.h; sourceTree = ""; }; - 4E3E1DD21F0F75C6E6C6BB96CE53E34F /* SDLFocusableItemLocatorType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemLocatorType.h; path = SmartDeviceLink/SDLFocusableItemLocatorType.h; sourceTree = ""; }; - 4E839A485728E494163C610E5F436EA9 /* SDLDeviceLevelStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceLevelStatus.m; path = SmartDeviceLink/SDLDeviceLevelStatus.m; sourceTree = ""; }; - 4F29D039A34A2CA78536348CE96D9ACA /* SDLSetInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetInteriorVehicleData.h; path = SmartDeviceLink/SDLSetInteriorVehicleData.h; sourceTree = ""; }; - 505A39ADC4E3561B7594E28FD0429E64 /* SDLLockScreenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenManager.h; path = SmartDeviceLink/SDLLockScreenManager.h; sourceTree = ""; }; - 506F62C867B2AA4ED9C51CA1DB62873F /* SDLImageField+ScreenManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLImageField+ScreenManagerExtensions.h"; path = "SmartDeviceLink/SDLImageField+ScreenManagerExtensions.h"; sourceTree = ""; }; - 507FBFEE8A6A81402E77FB59A01BA642 /* SDLAppServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceData.m; path = SmartDeviceLink/SDLAppServiceData.m; sourceTree = ""; }; - 50B06BF759879E5F7FB48501D617628A /* SDLAddSubMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddSubMenu.m; path = SmartDeviceLink/SDLAddSubMenu.m; sourceTree = ""; }; - 50CB8DB198313EF592E6A9DE3B0F6CAC /* SDLRPCResponseNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCResponseNotification.m; path = SmartDeviceLink/SDLRPCResponseNotification.m; sourceTree = ""; }; - 50FA0F82B0F0FD360E29F2AC0D2F05D1 /* SDLNavigationServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationServiceManifest.m; path = SmartDeviceLink/SDLNavigationServiceManifest.m; sourceTree = ""; }; - 511CF82F1FB9D8A7C5929F635B3E778A /* SDLSoftButtonManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonManager.m; path = SmartDeviceLink/SDLSoftButtonManager.m; sourceTree = ""; }; - 511FC688BC8715CB040A0DE1F8B24C2E /* SDLH264VideoEncoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLH264VideoEncoder.m; path = SmartDeviceLink/SDLH264VideoEncoder.m; sourceTree = ""; }; - 5183ABBFFA966A641482836B262617DD /* SDLDeleteFileOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFileOperation.h; path = SmartDeviceLink/SDLDeleteFileOperation.h; sourceTree = ""; }; - 51B66260E43F75F7BD5D210137A3720C /* SDLDeleteWindowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteWindowResponse.h; path = SmartDeviceLink/SDLDeleteWindowResponse.h; sourceTree = ""; }; - 524A27962BB7A038C3B5A39B5A529ED5 /* SDLCarWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarWindow.h; path = SmartDeviceLink/SDLCarWindow.h; sourceTree = ""; }; - 52A7852C42AC1A630401AD0DB04DCACD /* SDLVehicleType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleType.h; path = SmartDeviceLink/SDLVehicleType.h; sourceTree = ""; }; - 52AD32EB63C924C84FDEC6DD43F329EE /* SDLTimerMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTimerMode.m; path = SmartDeviceLink/SDLTimerMode.m; sourceTree = ""; }; - 53151FA74CB6E2324C41DA26D397B648 /* SDLRGBColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRGBColor.h; path = SmartDeviceLink/SDLRGBColor.h; sourceTree = ""; }; - 533F7AB90936113C747905A9130536F7 /* SDLOnLanguageChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnLanguageChange.h; path = SmartDeviceLink/SDLOnLanguageChange.h; sourceTree = ""; }; - 53911CEF89F12CFA7AEA7FF43FBF7E06 /* SDLWindowType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWindowType.m; path = SmartDeviceLink/SDLWindowType.m; sourceTree = ""; }; - 53A6F7FC8DB6771A7F606C83EE0F33E9 /* SDLSyncMsgVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncMsgVersion.h; path = SmartDeviceLink/SDLSyncMsgVersion.h; sourceTree = ""; }; - 53F45435EC8D3A8BC571D18035BCFCC2 /* SDLVideoStreamingCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingCapability.h; path = SmartDeviceLink/SDLVideoStreamingCapability.h; sourceTree = ""; }; - 53F7A94FC00388D92F20C90B87BE945C /* SDLWindowCapability+ScreenManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLWindowCapability+ScreenManagerExtensions.h"; path = "SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.h"; sourceTree = ""; }; - 544D38C68F8828FD1E9856024D36B44D /* SDLVehicleDataNotificationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataNotificationStatus.m; path = SmartDeviceLink/SDLVehicleDataNotificationStatus.m; sourceTree = ""; }; - 545945C37CA202B7C89B0BDB939DF95C /* SDLAppServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceData.h; path = SmartDeviceLink/SDLAppServiceData.h; sourceTree = ""; }; - 5482FBD961552B74651C104693279E71 /* SDLMassageModeData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageModeData.m; path = SmartDeviceLink/SDLMassageModeData.m; sourceTree = ""; }; - 55217909B98035F7AFBC7F73096982A2 /* SDLAppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppInfo.m; path = SmartDeviceLink/SDLAppInfo.m; sourceTree = ""; }; - 5543FDC0294954DF0D4040D2E4999970 /* SDLOnRCStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnRCStatus.h; path = SmartDeviceLink/SDLOnRCStatus.h; sourceTree = ""; }; - 554FE2A409FB1FB6BF0E98F233F97E6C /* SDLListFilesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFilesResponse.h; path = SmartDeviceLink/SDLListFilesResponse.h; sourceTree = ""; }; - 5550D8512B86F0A9F6C54350FB7AAE2F /* SDLDiagnosticMessageResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDiagnosticMessageResponse.h; path = SmartDeviceLink/SDLDiagnosticMessageResponse.h; sourceTree = ""; }; - 556E40F610F2EB3D2F7A0EA1C6707035 /* SDLGetFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetFileResponse.m; path = SmartDeviceLink/SDLGetFileResponse.m; sourceTree = ""; }; - 5587E86763C14DCAE5CD85F2D66EEE60 /* SDLFileWrapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileWrapper.m; path = SmartDeviceLink/SDLFileWrapper.m; sourceTree = ""; }; - 565B69B36A8F76F2E5BC0B5883391027 /* SDLPresetBankCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresetBankCapabilities.h; path = SmartDeviceLink/SDLPresetBankCapabilities.h; sourceTree = ""; }; - 576CF948F88ECCCBFAC0594C7F4040B0 /* SDLUnsubscribeWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeWayPointsResponse.h; path = SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h; sourceTree = ""; }; - 576F83EF4D4371B437DFAE8A0F7CFAA1 /* SDLLockScreenViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenViewController.m; path = SmartDeviceLink/SDLLockScreenViewController.m; sourceTree = ""; }; - 579644EEE9880D03CC5BDA3AAA01F743 /* SDLDeviceStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceStatus.m; path = SmartDeviceLink/SDLDeviceStatus.m; sourceTree = ""; }; - 57C40F8D0811DF6059FEDB49AEBDC69C /* SDLSoftButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButton.h; path = SmartDeviceLink/SDLSoftButton.h; sourceTree = ""; }; - 57D658C85ECE3E69E79BB2FABFE5E487 /* SDLTurnSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTurnSignal.h; path = SmartDeviceLink/SDLTurnSignal.h; sourceTree = ""; }; - 57E4834E2857ECB273998AC9B9207D2E /* SDLHMISettingsControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMISettingsControlData.h; path = SmartDeviceLink/SDLHMISettingsControlData.h; sourceTree = ""; }; - 57F1282A6F2ED03A5614C9C2B2DAAF2D /* SDLAppServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceManifest.h; path = SmartDeviceLink/SDLAppServiceManifest.h; sourceTree = ""; }; - 57FF113F520A5C67641777D6914A56DE /* SDLEnum.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEnum.m; path = SmartDeviceLink/SDLEnum.m; sourceTree = ""; }; - 585E39B167E64180E6C78FEC200638A0 /* SDLVrCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVrCapabilities.h; path = SmartDeviceLink/SDLVrCapabilities.h; sourceTree = ""; }; - 5869C4B4CE96D9E62C0313B0D1A429CE /* SDLClusterModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClusterModeStatus.h; path = SmartDeviceLink/SDLClusterModeStatus.h; sourceTree = ""; }; - 58FE6CB1EE278E803C1B5FF6EB589249 /* SDLEncryptionLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncryptionLifecycleManager.m; path = SmartDeviceLink/SDLEncryptionLifecycleManager.m; sourceTree = ""; }; - 59D419F67DD1ED5642ED9D9BBE63D388 /* SDLSeatControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatControlData.m; path = SmartDeviceLink/SDLSeatControlData.m; sourceTree = ""; }; + 013F0FD57EDF8FF55737B083957CAE10 /* SDLTouchEventCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchEventCapabilities.h; path = SmartDeviceLink/SDLTouchEventCapabilities.h; sourceTree = ""; }; + 01FC030EB54C7FC64CE1140E0CF51EC2 /* SDLTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTimer.h; path = SmartDeviceLink/SDLTimer.h; sourceTree = ""; }; + 02D5E907F468C148CBD8FD6B7AB586DF /* SDLOnVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnVehicleData.h; path = SmartDeviceLink/SDLOnVehicleData.h; sourceTree = ""; }; + 0303F7A337A026665A7C2B1401481962 /* SDLMutableDataQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMutableDataQueue.m; path = SmartDeviceLink/SDLMutableDataQueue.m; sourceTree = ""; }; + 030B9EFF025F2C40E4F44F1065406AC8 /* SDLTextField+ScreenManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLTextField+ScreenManagerExtensions.h"; path = "SmartDeviceLink/SDLTextField+ScreenManagerExtensions.h"; sourceTree = ""; }; + 03156C93EE8442396869D907BBBF3E51 /* SDLAppServiceCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceCapability.h; path = SmartDeviceLink/SDLAppServiceCapability.h; sourceTree = ""; }; + 0338D36D87FF27EDD72CE81C13BCC65F /* SDLSpeakResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeakResponse.h; path = SmartDeviceLink/SDLSpeakResponse.h; sourceTree = ""; }; + 034FAA8CE999DFA9139A4FF001EF3175 /* SDLLogFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFilter.m; path = SmartDeviceLink/SDLLogFilter.m; sourceTree = ""; }; + 0393BBC2C9A85C3D9B9616139D4F4859 /* SDLDefrostZone.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDefrostZone.h; path = SmartDeviceLink/SDLDefrostZone.h; sourceTree = ""; }; + 03E209DD429BD45C838761E809185BB6 /* SDLDialNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDialNumber.m; path = SmartDeviceLink/SDLDialNumber.m; sourceTree = ""; }; + 042CAE65E8266BAAC2DA30FF0B6CED41 /* SDLButtonPressMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPressMode.m; path = SmartDeviceLink/SDLButtonPressMode.m; sourceTree = ""; }; + 04612B443920F41D035644D3D5DCC4BD /* SDLDiagnosticMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDiagnosticMessage.h; path = SmartDeviceLink/SDLDiagnosticMessage.h; sourceTree = ""; }; + 04BC802E860BD6A7F3005C68FFE4ADE0 /* SDLStreamingAudioManagerType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingAudioManagerType.h; path = SmartDeviceLink/SDLStreamingAudioManagerType.h; sourceTree = ""; }; + 04C4ACFBE0F5E7AA0EB2EDC5D718F443 /* SDLErrorConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLErrorConstants.h; path = SmartDeviceLink/SDLErrorConstants.h; sourceTree = ""; }; + 04CA5C324677346256F9E7AF067CA1CC /* SDLMutableDataQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMutableDataQueue.h; path = SmartDeviceLink/SDLMutableDataQueue.h; sourceTree = ""; }; + 0540D028CA350ED05CE0F5B10778ED6D /* SDLLightName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightName.h; path = SmartDeviceLink/SDLLightName.h; sourceTree = ""; }; + 0581CF5948F60C4C5CA59EC84679756E /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = fr.lproj/SDLLockScreen.strings; sourceTree = ""; }; + 058F4086A8EDDCFE4AED952B5F2F9052 /* SDLSetMediaClockTimerResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetMediaClockTimerResponse.h; path = SmartDeviceLink/SDLSetMediaClockTimerResponse.h; sourceTree = ""; }; + 05AC4D2805528F742A66D7477F43714E /* SDLDisplayMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayMode.h; path = SmartDeviceLink/SDLDisplayMode.h; sourceTree = ""; }; + 05AF30F572533AFA58903B5BA40CC28B /* SDLAddCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddCommand.h; path = SmartDeviceLink/SDLAddCommand.h; sourceTree = ""; }; + 05B65BB837429AB03BD36724BAA2EDB6 /* SDLHexUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHexUtility.h; path = SmartDeviceLink/SDLHexUtility.h; sourceTree = ""; }; + 0623BF96606B58FD9FCC3861992A2F61 /* SDLLightControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightControlData.h; path = SmartDeviceLink/SDLLightControlData.h; sourceTree = ""; }; + 06303A86B1B729A73E63863D21AF2925 /* SDLIgnitionStableStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIgnitionStableStatus.m; path = SmartDeviceLink/SDLIgnitionStableStatus.m; sourceTree = ""; }; + 0692FFE8FAC6940F376FCEF685DDC7B1 /* SDLSystemRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemRequest.m; path = SmartDeviceLink/SDLSystemRequest.m; sourceTree = ""; }; + 0719C780E196AC9980E531CF8FBD8088 /* SDLUpdateMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateMode.h; path = SmartDeviceLink/SDLUpdateMode.h; sourceTree = ""; }; + 075F751ECFEC7836B3AC765DA2730721 /* SDLStateMachine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStateMachine.h; path = SmartDeviceLink/SDLStateMachine.h; sourceTree = ""; }; + 07643F069443483408E8DF939B35C281 /* SDLDisplayMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayMode.m; path = SmartDeviceLink/SDLDisplayMode.m; sourceTree = ""; }; + 07B6C54F0471CF191AA538E250A10A1C /* SDLV2ProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV2ProtocolMessage.m; path = SmartDeviceLink/SDLV2ProtocolMessage.m; sourceTree = ""; }; + 092B1D219F562512D83E15E5DA0F4859 /* SDLProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolHeader.h; path = SmartDeviceLink/SDLProtocolHeader.h; sourceTree = ""; }; + 09462E66A2B03CC7B6CFB922D8AF3709 /* SDLPredefinedLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPredefinedLayout.m; path = SmartDeviceLink/SDLPredefinedLayout.m; sourceTree = ""; }; + 09596899A697F08A6B73A7F8DD24700D /* SDLDeleteWindowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteWindowResponse.m; path = SmartDeviceLink/SDLDeleteWindowResponse.m; sourceTree = ""; }; + 09691EAC4A4C3B8C10A61F569A68E123 /* SDLRPCPermissionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCPermissionStatus.h; path = SmartDeviceLink/SDLRPCPermissionStatus.h; sourceTree = ""; }; + 096D9EC5221B9D6B456EDA53A2E88F92 /* SDLLockScreenStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenStatus.m; path = SmartDeviceLink/SDLLockScreenStatus.m; sourceTree = ""; }; + 09E0B697D5D3515000987CB02ED7EF2A /* SDLTextAlignment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextAlignment.h; path = SmartDeviceLink/SDLTextAlignment.h; sourceTree = ""; }; + 09E7464F993D6552704E1EAFCF1DF78D /* SDLShowAppMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowAppMenu.m; path = SmartDeviceLink/SDLShowAppMenu.m; sourceTree = ""; }; + 0A23C49669583356A1CE449D9EBC74DB /* SDLIgnitionStableStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIgnitionStableStatus.h; path = SmartDeviceLink/SDLIgnitionStableStatus.h; sourceTree = ""; }; + 0A3CC4629A17A1D6F3FAEC259BA87C31 /* SDLButtonPress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPress.m; path = SmartDeviceLink/SDLButtonPress.m; sourceTree = ""; }; + 0A3EDAEBB63DC81EB0D8197E941D92BA /* SDLVideoEncoderDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoEncoderDelegate.h; path = SmartDeviceLink/SDLVideoEncoderDelegate.h; sourceTree = ""; }; + 0A913DD8B429EFA97826EA9C49B3B92B /* SDLPerformAppServiceInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAppServiceInteraction.m; path = SmartDeviceLink/SDLPerformAppServiceInteraction.m; sourceTree = ""; }; + 0A922B6EE1FBBD668DC4D132D27791DD /* SDLLockScreenViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenViewController.m; path = SmartDeviceLink/SDLLockScreenViewController.m; sourceTree = ""; }; + 0AB4971438A6A699BC2C1C2BEDAA999E /* SDLResetGlobalPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResetGlobalPropertiesResponse.m; path = SmartDeviceLink/SDLResetGlobalPropertiesResponse.m; sourceTree = ""; }; + 0AD7C4BC8864B7BD4E88BB4E14571991 /* SDLSoftButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButton.h; path = SmartDeviceLink/SDLSoftButton.h; sourceTree = ""; }; + 0B25BFBB7743CC1BB55BB0A462DC320E /* SDLResetGlobalProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResetGlobalProperties.h; path = SmartDeviceLink/SDLResetGlobalProperties.h; sourceTree = ""; }; + 0B6E8C1AF472B205BEEAA5ACDA1339A3 /* SDLTimerMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTimerMode.m; path = SmartDeviceLink/SDLTimerMode.m; sourceTree = ""; }; + 0B7024D8FB7FFF140C2B02CD06A30621 /* SDLGetDTCs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetDTCs.h; path = SmartDeviceLink/SDLGetDTCs.h; sourceTree = ""; }; + 0BED0EB216A163B02E038B24BD163908 /* SDLH264VideoEncoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLH264VideoEncoder.m; path = SmartDeviceLink/SDLH264VideoEncoder.m; sourceTree = ""; }; + 0BF5D3B07CABB0353EF64221323FB214 /* SDLSoftButtonReplaceOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonReplaceOperation.m; path = SmartDeviceLink/SDLSoftButtonReplaceOperation.m; sourceTree = ""; }; + 0C68BF2CE6FE130CE0B0A970E9E4EB46 /* SDLEmergencyEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEmergencyEvent.m; path = SmartDeviceLink/SDLEmergencyEvent.m; sourceTree = ""; }; + 0C6D93D8E80998CD66E39C448733F9C8 /* SDLLifecycleProtocolHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleProtocolHandler.h; path = SmartDeviceLink/SDLLifecycleProtocolHandler.h; sourceTree = ""; }; + 0C75420A65D82C21EDD26CEFF38A1BBA /* SDLTCPTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTCPTransport.m; path = SmartDeviceLink/SDLTCPTransport.m; sourceTree = ""; }; + 0D3E8ACACCBAA2545A9291162519C02F /* SDLPrimaryAudioSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrimaryAudioSource.h; path = SmartDeviceLink/SDLPrimaryAudioSource.h; sourceTree = ""; }; + 0E17BE2717EB8E175D224175E94EF0C5 /* SDLMediaServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaServiceData.h; path = SmartDeviceLink/SDLMediaServiceData.h; sourceTree = ""; }; + 0E18B248ABDE8B1FCC6F0DBC564ED42D /* SDLPerformAudioPassThruResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAudioPassThruResponse.m; path = SmartDeviceLink/SDLPerformAudioPassThruResponse.m; sourceTree = ""; }; + 0E56E1D0EA294149153FB6F83C9262C2 /* SDLCacheFileManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCacheFileManager.h; path = SmartDeviceLink/SDLCacheFileManager.h; sourceTree = ""; }; + 0E836B2993410EB417C2123481A4E6CD /* SDLAppServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceData.h; path = SmartDeviceLink/SDLAppServiceData.h; sourceTree = ""; }; + 0ED1437EE8F2E16924B445E6758A4682 /* SDLDeleteWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteWindow.m; path = SmartDeviceLink/SDLDeleteWindow.m; sourceTree = ""; }; + 0EE8C22DA5EFA161CCD704956C17C56D /* SDLTextFieldName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextFieldName.h; path = SmartDeviceLink/SDLTextFieldName.h; sourceTree = ""; }; + 0EFE9E833025F639CA949ECC8B8C90F0 /* emhashmap.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = emhashmap.c; path = src/emhashmap/emhashmap.c; sourceTree = ""; }; + 0F19ED2AEE6718C0915FC669935F35ED /* SDLNavigationServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationServiceData.m; path = SmartDeviceLink/SDLNavigationServiceData.m; sourceTree = ""; }; + 0F5D4445E6E09F666DD97ABCAF27C4B1 /* SDLSetInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetInteriorVehicleData.m; path = SmartDeviceLink/SDLSetInteriorVehicleData.m; sourceTree = ""; }; + 0FD269E190CA05DE20711325DB709DCA /* SDLFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileManager.m; path = SmartDeviceLink/SDLFileManager.m; sourceTree = ""; }; + 10210FEFC75394E3B2F578C082EA07D2 /* SDLKeyboardEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardEvent.h; path = SmartDeviceLink/SDLKeyboardEvent.h; sourceTree = ""; }; + 1036AF4390ACFEC2CFCDA61FA0498E28 /* SDLRadioState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioState.h; path = SmartDeviceLink/SDLRadioState.h; sourceTree = ""; }; + 106CC8005ED9499CD5FD635CC6B264FD /* SDLNotificationConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNotificationConstants.h; path = SmartDeviceLink/SDLNotificationConstants.h; sourceTree = ""; }; + 1179CCA11545B1607C32D9B258323DC9 /* SDLRPCRequestNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCRequestNotification.m; path = SmartDeviceLink/SDLRPCRequestNotification.m; sourceTree = ""; }; + 121CC19826232F3072AFD1D83D158A42 /* SDLFocusableItemHitTester.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemHitTester.h; path = SmartDeviceLink/SDLFocusableItemHitTester.h; sourceTree = ""; }; + 121E4A108B2448717672CE50FEDE685A /* SDLOnButtonEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnButtonEvent.m; path = SmartDeviceLink/SDLOnButtonEvent.m; sourceTree = ""; }; + 12D744FC8FA6C20656E30908E2337246 /* SDLDeleteSubMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteSubMenu.m; path = SmartDeviceLink/SDLDeleteSubMenu.m; sourceTree = ""; }; + 12E2448D342B0C719508658356C62FD8 /* SDLRadioState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioState.m; path = SmartDeviceLink/SDLRadioState.m; sourceTree = ""; }; + 12FA04857AC1900EEA2522D1D3101207 /* SDLRPCResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCResponse.h; path = SmartDeviceLink/SDLRPCResponse.h; sourceTree = ""; }; + 12FB6C12FA7C56F07A058C648B52AA9A /* SDLAirbagStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAirbagStatus.m; path = SmartDeviceLink/SDLAirbagStatus.m; sourceTree = ""; }; + 1310B5C3A3FD8D5E490FB2B56E5AAC43 /* SDLH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLH264Packetizer.h; path = SmartDeviceLink/SDLH264Packetizer.h; sourceTree = ""; }; + 13180087A895C1F6E63F9F01F333ECF1 /* SDLScreenParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScreenParams.h; path = SmartDeviceLink/SDLScreenParams.h; sourceTree = ""; }; + 13F5B04D46A1927416EB7B00EC10D588 /* SDLUnsubscribeButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeButton.h; path = SmartDeviceLink/SDLUnsubscribeButton.h; sourceTree = ""; }; + 141A750A4B7658D57C0EA1C5677AC485 /* SDLResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResult.m; path = SmartDeviceLink/SDLResult.m; sourceTree = ""; }; + 143137C3210A437C0540124CDBE42B86 /* SDLImageType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageType.m; path = SmartDeviceLink/SDLImageType.m; sourceTree = ""; }; + 144A510FD012E8B3D68672FACAD74C3D /* SDLMassageCushion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageCushion.m; path = SmartDeviceLink/SDLMassageCushion.m; sourceTree = ""; }; + 15626200BCC288FAB8202F84EAD600A5 /* SDLPerformAppServiceInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAppServiceInteractionResponse.m; path = SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m; sourceTree = ""; }; + 15CC7A0BD292142B96199EFAB3E8D06C /* SmartDeviceLink.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartDeviceLink.release.xcconfig; sourceTree = ""; }; + 16381A0EE20FA5C47430A5B402B7689B /* SDLLockScreen.storyboard */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.storyboard; name = SDLLockScreen.storyboard; path = Base.lproj/SDLLockScreen.storyboard; sourceTree = ""; }; + 1673D555128E7CE618DE3C3279E10278 /* SDLEmergencyEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEmergencyEvent.h; path = SmartDeviceLink/SDLEmergencyEvent.h; sourceTree = ""; }; + 17117CBD93690A080777FF3CCAB14EBF /* SDLVehicleDataEventStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataEventStatus.h; path = SmartDeviceLink/SDLVehicleDataEventStatus.h; sourceTree = ""; }; + 171E13E59404914970C3C1146AACEF54 /* SDLVehicleDataType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataType.m; path = SmartDeviceLink/SDLVehicleDataType.m; sourceTree = ""; }; + 1776C574198D8077B69B01D3AEDA34E6 /* SDLButtonEventMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonEventMode.m; path = SmartDeviceLink/SDLButtonEventMode.m; sourceTree = ""; }; + 17B209E28D1DF58F13E9ED57702FBE24 /* SDLSetGlobalPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetGlobalPropertiesResponse.m; path = SmartDeviceLink/SDLSetGlobalPropertiesResponse.m; sourceTree = ""; }; + 17B584482168B64D8A9B1D66FD274FB7 /* SDLTemperatureUnit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemperatureUnit.h; path = SmartDeviceLink/SDLTemperatureUnit.h; sourceTree = ""; }; + 17BD7329197D81447717DC7ADEB5750E /* SDLCreateWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateWindow.m; path = SmartDeviceLink/SDLCreateWindow.m; sourceTree = ""; }; + 17FE8D4DAAE70A4CF5E436290E17D17D /* SDLWindowCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWindowCapability.h; path = SmartDeviceLink/SDLWindowCapability.h; sourceTree = ""; }; + 180376AD38DA70C86CE6A85F04306440 /* SDLPreloadChoicesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPreloadChoicesOperation.h; path = SmartDeviceLink/SDLPreloadChoicesOperation.h; sourceTree = ""; }; + 1845BF083AE4ED65CD2A0C2493883D93 /* SDLSeatMemoryAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatMemoryAction.h; path = SmartDeviceLink/SDLSeatMemoryAction.h; sourceTree = ""; }; + 186CF5CA656EF53E457CC74A91CED8BF /* SDLCancelInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCancelInteraction.h; path = SmartDeviceLink/SDLCancelInteraction.h; sourceTree = ""; }; + 1878E365B1431D16CB7D13B067382A01 /* SDLIAPConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPConstants.h; path = SmartDeviceLink/SDLIAPConstants.h; sourceTree = ""; }; + 19123175F1282074060FF723AA346973 /* SDLWindowCapability+ScreenManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLWindowCapability+ScreenManagerExtensions.m"; path = "SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.m"; sourceTree = ""; }; + 194A205E3D3AB6329814281A5F801855 /* SDLTPMS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTPMS.h; path = SmartDeviceLink/SDLTPMS.h; sourceTree = ""; }; + 198A0AA98C61E2A39539B9020C6185CB /* SDLPrioritizedObjectCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrioritizedObjectCollection.m; path = SmartDeviceLink/SDLPrioritizedObjectCollection.m; sourceTree = ""; }; + 19B1A83A55BD6197AA3C2050EDA2EDB2 /* SDLLocationDetails.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLocationDetails.h; path = SmartDeviceLink/SDLLocationDetails.h; sourceTree = ""; }; + 19CCE221988FAB4BFF131C894F0920C4 /* SDLNotificationDispatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNotificationDispatcher.h; path = SmartDeviceLink/SDLNotificationDispatcher.h; sourceTree = ""; }; + 19E0135257858BD7168C64D56B8D7A75 /* SDLSetGlobalPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetGlobalPropertiesResponse.h; path = SmartDeviceLink/SDLSetGlobalPropertiesResponse.h; sourceTree = ""; }; + 1A030F2B6E37938FF8043D0017F09F80 /* SDLSystemRequestResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemRequestResponse.h; path = SmartDeviceLink/SDLSystemRequestResponse.h; sourceTree = ""; }; + 1A08ADB128C672DC69C4127E045F5070 /* CGPoint_Util.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CGPoint_Util.m; path = SmartDeviceLink/CGPoint_Util.m; sourceTree = ""; }; + 1A54A6815830D84DACA174DA5B066347 /* SDLGetAppServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetAppServiceData.h; path = SmartDeviceLink/SDLGetAppServiceData.h; sourceTree = ""; }; + 1A5795C050E031087B37E6F0B8B99FE3 /* SDLRemoteControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRemoteControlCapabilities.m; path = SmartDeviceLink/SDLRemoteControlCapabilities.m; sourceTree = ""; }; + 1A6CDBAD9F0E1DE4C224214867D802DE /* SDLHMIPermissions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMIPermissions.m; path = SmartDeviceLink/SDLHMIPermissions.m; sourceTree = ""; }; + 1A91F9EA62F0075F9ACCFF6B6F7FA96E /* SDLPublishAppService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPublishAppService.m; path = SmartDeviceLink/SDLPublishAppService.m; sourceTree = ""; }; + 1ACA353CD4341D5B1B5F4211679D6562 /* SDLModuleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleData.m; path = SmartDeviceLink/SDLModuleData.m; sourceTree = ""; }; + 1ACA766A3B7A6071AF22334BC052F5D9 /* SDLDeleteFileOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFileOperation.h; path = SmartDeviceLink/SDLDeleteFileOperation.h; sourceTree = ""; }; + 1ADC53976D99CE2F85B0E80D35F54E94 /* SDLTBTState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTBTState.h; path = SmartDeviceLink/SDLTBTState.h; sourceTree = ""; }; + 1B04572C7780D11E01CA5FC3B4CFFAD5 /* SDLNavigationCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationCapability.h; path = SmartDeviceLink/SDLNavigationCapability.h; sourceTree = ""; }; + 1B07D32813B19DEED174BB740E4AE97A /* SDLV1ProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV1ProtocolMessage.h; path = SmartDeviceLink/SDLV1ProtocolMessage.h; sourceTree = ""; }; + 1BB6954C66C6C182131AA4914D6690E9 /* SDLSecurityType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSecurityType.h; path = SmartDeviceLink/SDLSecurityType.h; sourceTree = ""; }; + 1C02BCB7CC0146495C11C4741811815E /* SDLImageField+ScreenManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLImageField+ScreenManagerExtensions.h"; path = "SmartDeviceLink/SDLImageField+ScreenManagerExtensions.h"; sourceTree = ""; }; + 1C28381778F9B6F73AE7045AFF50293B /* SDLMenuLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuLayout.h; path = SmartDeviceLink/SDLMenuLayout.h; sourceTree = ""; }; + 1C320F686525DE123071E06FE38A4733 /* SDLSystemCapabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityManager.m; path = SmartDeviceLink/SDLSystemCapabilityManager.m; sourceTree = ""; }; + 1C4083DFA322D07EB69325A6B9D19535 /* SDLAlert.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlert.m; path = SmartDeviceLink/SDLAlert.m; sourceTree = ""; }; + 1C95F788EAED941BB5F58CA21C90D17D /* SDLDeleteChoicesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteChoicesOperation.h; path = SmartDeviceLink/SDLDeleteChoicesOperation.h; sourceTree = ""; }; + 1CCDAAE659DCA593607D4BF6558C25CE /* SDLSyncPDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncPDataResponse.h; path = SmartDeviceLink/SDLSyncPDataResponse.h; sourceTree = ""; }; + 1CFA9A9E1169A3206174FA90EF8EDB20 /* SDLChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSet.h; path = SmartDeviceLink/SDLChoiceSet.h; sourceTree = ""; }; + 1D09D03FDBAC839C0B609D7085FE7612 /* SDLModuleType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleType.h; path = SmartDeviceLink/SDLModuleType.h; sourceTree = ""; }; + 1D3100295E8CA323C777D8F2A6CC4D95 /* SDLImageFieldName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageFieldName.m; path = SmartDeviceLink/SDLImageFieldName.m; sourceTree = ""; }; + 1D35EEBE45318E549076542898349235 /* SDLAudioControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioControlData.h; path = SmartDeviceLink/SDLAudioControlData.h; sourceTree = ""; }; + 1D42EAA6631F7F9BA8CADAC3A96CC64E /* SDLEncryptionConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncryptionConfiguration.m; path = SmartDeviceLink/SDLEncryptionConfiguration.m; sourceTree = ""; }; + 1D503EB0E143D4B5FF04B10A34BC6D16 /* SDLGlobalProperty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGlobalProperty.m; path = SmartDeviceLink/SDLGlobalProperty.m; sourceTree = ""; }; + 1D5A06B422339F19A2053DF7AD2E64B0 /* SDLDimension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDimension.h; path = SmartDeviceLink/SDLDimension.h; sourceTree = ""; }; + 1D62134BBF189EA2FAE0F2B9924C1CEA /* SDLIAPConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPConstants.m; path = SmartDeviceLink/SDLIAPConstants.m; sourceTree = ""; }; + 1DF843EEBBB30D7B7389D88A9A97026E /* SDLPerformInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformInteractionResponse.m; path = SmartDeviceLink/SDLPerformInteractionResponse.m; sourceTree = ""; }; + 1E31ADF790B6CD458B58780AEEA2DC29 /* SDLRDSData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRDSData.h; path = SmartDeviceLink/SDLRDSData.h; sourceTree = ""; }; + 1E86A7FA49FEA6AEC0D760D8965C3F6E /* SDLPutFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPutFile.m; path = SmartDeviceLink/SDLPutFile.m; sourceTree = ""; }; + 1ECFA9EC3D76BE7DB5AA4AD25DED7262 /* SDLAddSubMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddSubMenuResponse.m; path = SmartDeviceLink/SDLAddSubMenuResponse.m; sourceTree = ""; }; + 1EF11FACEE1EFEF67EDBD239E3CFE981 /* SDLOnDriverDistraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnDriverDistraction.h; path = SmartDeviceLink/SDLOnDriverDistraction.h; sourceTree = ""; }; + 1F47C488B08BF5122754BFE7BBEC9A14 /* SDLLogTargetOSLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetOSLog.m; path = SmartDeviceLink/SDLLogTargetOSLog.m; sourceTree = ""; }; + 1F619DCBA443D3BF50D0B314A294B809 /* SDLSubscribeButtonManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonManager.h; path = SmartDeviceLink/SDLSubscribeButtonManager.h; sourceTree = ""; }; + 1FAA770CD2F0D719792C511D30970EE1 /* SDLDiagnosticMessageResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDiagnosticMessageResponse.h; path = SmartDeviceLink/SDLDiagnosticMessageResponse.h; sourceTree = ""; }; + 1FD2A7EAD3CEDFD045490467DAD18F18 /* SDLSoftButtonState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonState.h; path = SmartDeviceLink/SDLSoftButtonState.h; sourceTree = ""; }; + 1FD900A135D822B0C46DB3FC2398B8BC /* SDLSetGlobalProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetGlobalProperties.m; path = SmartDeviceLink/SDLSetGlobalProperties.m; sourceTree = ""; }; + 20AA06A772B16D6AFF72CC6CA4ECBE20 /* SDLSyncPDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncPDataResponse.m; path = SmartDeviceLink/SDLSyncPDataResponse.m; sourceTree = ""; }; + 20B9DF79B0ED0674C8ED798A7D73B3F2 /* SDLVehicleDataResultCode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataResultCode.m; path = SmartDeviceLink/SDLVehicleDataResultCode.m; sourceTree = ""; }; + 20D7BE66EF79F8245CD53754C388C728 /* SDLMyKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMyKey.m; path = SmartDeviceLink/SDLMyKey.m; sourceTree = ""; }; + 20FA6E8D363E92E2246382F8E4DFCF0E /* SDLListFilesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFilesResponse.m; path = SmartDeviceLink/SDLListFilesResponse.m; sourceTree = ""; }; + 21299607CA16E90A5C0710F2E2785242 /* SDLSetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetInteriorVehicleDataResponse.m; path = SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m; sourceTree = ""; }; + 223764A1541B9FABCBFF13489C0B8067 /* SDLAddCommandResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddCommandResponse.m; path = SmartDeviceLink/SDLAddCommandResponse.m; sourceTree = ""; }; + 22A7CA326FC1A31FBED51465160C7D19 /* SDLControlFramePayloadNak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadNak.h; path = SmartDeviceLink/SDLControlFramePayloadNak.h; sourceTree = ""; }; + 22D8E6FEF71BF3A66088118AA02F0841 /* SDLRGBColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRGBColor.h; path = SmartDeviceLink/SDLRGBColor.h; sourceTree = ""; }; + 22F7A01AE367466B8917F5FEBC8F9D1D /* SDLSendHapticData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendHapticData.h; path = SmartDeviceLink/SDLSendHapticData.h; sourceTree = ""; }; + 23383B37C6DBACB1FDCDF86CE54C386A /* SDLShow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShow.h; path = SmartDeviceLink/SDLShow.h; sourceTree = ""; }; + 2338435A2FBDDD2CFAB4A28B846695F0 /* SDLWeatherServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherServiceManifest.h; path = SmartDeviceLink/SDLWeatherServiceManifest.h; sourceTree = ""; }; + 23459A7914F07050043EE0F27ED4F5AC /* SDLStreamingVideoLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingVideoLifecycleManager.h; path = SmartDeviceLink/SDLStreamingVideoLifecycleManager.h; sourceTree = ""; }; + 234C8B719DEDD260BA78077064A1C78D /* SDLRadioBand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioBand.h; path = SmartDeviceLink/SDLRadioBand.h; sourceTree = ""; }; + 23817E0063BEAB1A48262BE111DF3256 /* SDLHMILevel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMILevel.m; path = SmartDeviceLink/SDLHMILevel.m; sourceTree = ""; }; + 2398A5BA455B24EEA12F22248F56CB41 /* SDLPermissionElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionElement.h; path = SmartDeviceLink/SDLPermissionElement.h; sourceTree = ""; }; + 23C50F80EECB17D50B91A723C4564B5B /* SDLPerformInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformInteraction.h; path = SmartDeviceLink/SDLPerformInteraction.h; sourceTree = ""; }; + 23C52C7F9DFB04519EEFA548FB3DAB2C /* SDLLifecycleConfigurationUpdate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleConfigurationUpdate.m; path = SmartDeviceLink/SDLLifecycleConfigurationUpdate.m; sourceTree = ""; }; + 23F819C18E6C44ED74C4333AD5189778 /* SDLGetAppServiceDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetAppServiceDataResponse.h; path = SmartDeviceLink/SDLGetAppServiceDataResponse.h; sourceTree = ""; }; + 2483492441C4BEB1F8A9B82BAC067681 /* SDLUploadFileOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUploadFileOperation.h; path = SmartDeviceLink/SDLUploadFileOperation.h; sourceTree = ""; }; + 248505262AF0D2F58A9D246BB6C6BD84 /* SDLSoftButtonType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonType.m; path = SmartDeviceLink/SDLSoftButtonType.m; sourceTree = ""; }; + 2498D14A443BEA451B1C1E3F10FCAE0A /* SDLRemoteControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRemoteControlCapabilities.h; path = SmartDeviceLink/SDLRemoteControlCapabilities.h; sourceTree = ""; }; + 249F9CCBE006EBE28439076CEDF02C70 /* SDLOnButtonEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnButtonEvent.h; path = SmartDeviceLink/SDLOnButtonEvent.h; sourceTree = ""; }; + 24EC57E64CE1C46DC722D87EDCCBE81F /* SDLUnsubscribeButtonResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeButtonResponse.m; path = SmartDeviceLink/SDLUnsubscribeButtonResponse.m; sourceTree = ""; }; + 2559C479FF5977A46C191A0DF82F5A42 /* SDLTransportType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTransportType.h; path = SmartDeviceLink/SDLTransportType.h; sourceTree = ""; }; + 256D8960A3671CB91AB11F36D27BFE73 /* SDLShow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShow.m; path = SmartDeviceLink/SDLShow.m; sourceTree = ""; }; + 25A19CDDD7442D5D9F541CD6664CED80 /* SDLV1ProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV1ProtocolHeader.h; path = SmartDeviceLink/SDLV1ProtocolHeader.h; sourceTree = ""; }; + 264466043512A19F32B8FD33808B100C /* SDLLockScreenStatusManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenStatusManager.m; path = SmartDeviceLink/SDLLockScreenStatusManager.m; sourceTree = ""; }; + 264B352A2E79FBBE53D7A84B3F98003A /* SDLTouchManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchManagerDelegate.h; path = SmartDeviceLink/SDLTouchManagerDelegate.h; sourceTree = ""; }; + 264FB4E8863E17A2F5E34BECDA538F65 /* SDLBodyInformation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBodyInformation.h; path = SmartDeviceLink/SDLBodyInformation.h; sourceTree = ""; }; + 267FA2C1E15499A2CD4854991CC471EA /* SDLPerformAppServiceInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAppServiceInteractionResponse.h; path = SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h; sourceTree = ""; }; + 269BB207FFE8AA6F46208486DEE9BA3A /* SDLRectangle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRectangle.m; path = SmartDeviceLink/SDLRectangle.m; sourceTree = ""; }; + 26D0EBD3EEA72649EE8D2DF59814B8B1 /* SDLControlFramePayloadEndService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadEndService.m; path = SmartDeviceLink/SDLControlFramePayloadEndService.m; sourceTree = ""; }; + 276CAF8F9D6F163C8789B58614C8F995 /* SDLReadDIDResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReadDIDResponse.m; path = SmartDeviceLink/SDLReadDIDResponse.m; sourceTree = ""; }; + 2778C8EDF4959730B4DEF535ABC16675 /* SDLScrollableMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScrollableMessage.h; path = SmartDeviceLink/SDLScrollableMessage.h; sourceTree = ""; }; + 2789675DE6523B265B03FC1FF6E6C922 /* SDLRPCParameterNames.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCParameterNames.m; path = SmartDeviceLink/SDLRPCParameterNames.m; sourceTree = ""; }; + 27C368EAA0D3AC1FA9ECDC2F63B9730F /* SDLButtonName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonName.h; path = SmartDeviceLink/SDLButtonName.h; sourceTree = ""; }; + 28171FB492C52974721D3E4837BA46EB /* SDLLightCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightCapabilities.m; path = SmartDeviceLink/SDLLightCapabilities.m; sourceTree = ""; }; + 286D40C6D0DF1F4E4AAA22A91CA707E1 /* SDLLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleManager.m; path = SmartDeviceLink/SDLLifecycleManager.m; sourceTree = ""; }; + 28EB6163FCBF6FF4A874232363F1F693 /* SDLWayPointType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWayPointType.h; path = SmartDeviceLink/SDLWayPointType.h; sourceTree = ""; }; + 2927EDEFBAA36BACD83602F7DA5F877E /* SDLRPCRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCRequest.h; path = SmartDeviceLink/SDLRPCRequest.h; sourceTree = ""; }; + 299684AFB9A86A8651CE61038ED446F6 /* SDLMenuConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuConfiguration.m; path = SmartDeviceLink/SDLMenuConfiguration.m; sourceTree = ""; }; + 29E4B47051A2CBE2B10DFE80E3D19287 /* SDLSpeechCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeechCapabilities.m; path = SmartDeviceLink/SDLSpeechCapabilities.m; sourceTree = ""; }; + 2A14F3582266D6F7B75BA4AA85218D3A /* SDLH264VideoEncoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLH264VideoEncoder.h; path = SmartDeviceLink/SDLH264VideoEncoder.h; sourceTree = ""; }; + 2A4A0AB3F4FBC747F8A9BF2C7F38F20B /* SDLGetVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetVehicleDataResponse.h; path = SmartDeviceLink/SDLGetVehicleDataResponse.h; sourceTree = ""; }; + 2A5988CF4E97C39E992F5F38B97769ED /* SDLLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightStatus.h; path = SmartDeviceLink/SDLLightStatus.h; sourceTree = ""; }; + 2A5CB6D69CF7CCF3B825B42C91828400 /* SDLImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImage.h; path = SmartDeviceLink/SDLImage.h; sourceTree = ""; }; + 2A97648721B27DE7C06C2FD5DEE52543 /* SDLOnAppServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAppServiceData.h; path = SmartDeviceLink/SDLOnAppServiceData.h; sourceTree = ""; }; + 2AAE3DEF47FBE1D573CA3230BBD12E26 /* SDLMetadataTags.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMetadataTags.h; path = SmartDeviceLink/SDLMetadataTags.h; sourceTree = ""; }; + 2AEFB5FD4FD8D86E84F192A4E8DFCDC3 /* NSMutableArray+Safe.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+Safe.m"; path = "SmartDeviceLink/NSMutableArray+Safe.m"; sourceTree = ""; }; + 2B6A3BB418DC18D464B34AC1BAFE6451 /* SDLShowAppMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowAppMenuResponse.m; path = SmartDeviceLink/SDLShowAppMenuResponse.m; sourceTree = ""; }; + 2B6D168B1F9F66F44F3FCEE9FB5B9F89 /* SDLRPCFunctionNames.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCFunctionNames.h; path = SmartDeviceLink/SDLRPCFunctionNames.h; sourceTree = ""; }; + 2B6F9761E83A66A7DFFB1E6866464197 /* SDLPhoneCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPhoneCapability.m; path = SmartDeviceLink/SDLPhoneCapability.m; sourceTree = ""; }; + 2B6FD0DA2716669347AF1A445E85BE70 /* SDLSoftButtonCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonCapabilities.h; path = SmartDeviceLink/SDLSoftButtonCapabilities.h; sourceTree = ""; }; + 2B7041C400969E9738627D46ED2889FF /* SDLVideoStreamingState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingState.h; path = SmartDeviceLink/SDLVideoStreamingState.h; sourceTree = ""; }; + 2BB01A65CEF78E53E9E87B5A49249EF7 /* SDLAudioFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioFile.h; path = SmartDeviceLink/SDLAudioFile.h; sourceTree = ""; }; + 2BE98A3AA92E8E3B7CED340B5CCAE389 /* SDLSetDisplayLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetDisplayLayout.m; path = SmartDeviceLink/SDLSetDisplayLayout.m; sourceTree = ""; }; + 2CDEED18FD1039629786CEEA57699019 /* SDLSubscribeButtonObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonObserver.m; path = SmartDeviceLink/SDLSubscribeButtonObserver.m; sourceTree = ""; }; + 2D43F462BE01761031E4AFB3D2476A5F /* SDLArtwork.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLArtwork.h; path = SmartDeviceLink/SDLArtwork.h; sourceTree = ""; }; + 2D4BA9AEA9F55ABDD3453605BCA0C84B /* SDLAddSubMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddSubMenu.h; path = SmartDeviceLink/SDLAddSubMenu.h; sourceTree = ""; }; + 2D744D294CB82BB107AB6ED0A3F46323 /* SDLMenuParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuParams.m; path = SmartDeviceLink/SDLMenuParams.m; sourceTree = ""; }; + 2DCA0A5DCD6DD350EA1CF99B9837B512 /* SDLWarningLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWarningLightStatus.m; path = SmartDeviceLink/SDLWarningLightStatus.m; sourceTree = ""; }; + 2E7DF54F44C89CE28EC111C69CA41A80 /* SDLFileManagerConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileManagerConfiguration.m; path = SmartDeviceLink/SDLFileManagerConfiguration.m; sourceTree = ""; }; + 2EC447A9F44C626EE8F180C4FD1F774A /* SDLFocusableItemLocator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemLocator.h; path = SmartDeviceLink/SDLFocusableItemLocator.h; sourceTree = ""; }; + 2ED5B47BF52A07A02D9AF9F3873C2C5D /* SDLPrerecordedSpeech.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrerecordedSpeech.m; path = SmartDeviceLink/SDLPrerecordedSpeech.m; sourceTree = ""; }; + 2EE2D6F35E8ED91165271F62FB1A31AB /* SDLGetWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetWayPoints.m; path = SmartDeviceLink/SDLGetWayPoints.m; sourceTree = ""; }; + 2F2375B625B97F66D8E12F064F7521C3 /* SDLControlFramePayloadTransportEventUpdate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadTransportEventUpdate.h; path = SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.h; sourceTree = ""; }; + 2F2C244E4B55F098A0A0B3DB07E12A8C /* SDLGetCloudAppProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetCloudAppProperties.h; path = SmartDeviceLink/SDLGetCloudAppProperties.h; sourceTree = ""; }; + 2F51D8373F62E91462F357675AA277C6 /* SDLAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = SDLAssets.xcassets; path = SmartDeviceLink/Assets/SDLAssets.xcassets; sourceTree = ""; }; + 2F79001BEC04EAE768A2897A4D2F4684 /* SDLVrHelpItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVrHelpItem.m; path = SmartDeviceLink/SDLVrHelpItem.m; sourceTree = ""; }; + 2F7A53F84A8696465E51EAF70199ABE9 /* SDLStreamingProtocolDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingProtocolDelegate.h; path = SmartDeviceLink/SDLStreamingProtocolDelegate.h; sourceTree = ""; }; + 2FBAF5D2A296ECEE5B1BF22DD9C49B9D /* SDLSetDisplayLayoutResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetDisplayLayoutResponse.m; path = SmartDeviceLink/SDLSetDisplayLayoutResponse.m; sourceTree = ""; }; + 306A96E272DDC349606149EEE10530B3 /* SDLLogFileModuleMap.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFileModuleMap.m; path = SmartDeviceLink/SDLLogFileModuleMap.m; sourceTree = ""; }; + 3088C13A654A2FE2C6AE29FAC85859A8 /* SDLGetInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleData.h; path = SmartDeviceLink/SDLGetInteriorVehicleData.h; sourceTree = ""; }; + 3108E6D3BDA3B4349EC02CCBB85B6307 /* SDLFileWrapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileWrapper.m; path = SmartDeviceLink/SDLFileWrapper.m; sourceTree = ""; }; + 3116BCED42B3229298A5A04AFEACEB97 /* SDLSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncPData.h; path = SmartDeviceLink/SDLSyncPData.h; sourceTree = ""; }; + 3146752598F98460737A0816F21D1DC0 /* BiSON-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "BiSON-Info.plist"; sourceTree = ""; }; + 31D638E1DE7C038192AB4E63575C1E34 /* SDLConnectionManagerType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLConnectionManagerType.h; path = SmartDeviceLink/SDLConnectionManagerType.h; sourceTree = ""; }; + 32614CFD26D45B1414C5745CF0EFC3EC /* SDLUploadFileOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUploadFileOperation.m; path = SmartDeviceLink/SDLUploadFileOperation.m; sourceTree = ""; }; + 3267E75ED2305FABE31E4255A576BFF0 /* NSMutableDictionary+SafeRemove.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+SafeRemove.h"; path = "SmartDeviceLink/NSMutableDictionary+SafeRemove.h"; sourceTree = ""; }; + 32B03FBB47DA786AAB86E6FE9445ECA8 /* SmartDeviceLink.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SmartDeviceLink.modulemap; sourceTree = ""; }; + 32BD65A04E2AD6AAF6ADC18E5A5DE4EB /* SDLAppServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceManifest.h; path = SmartDeviceLink/SDLAppServiceManifest.h; sourceTree = ""; }; + 32C42D7A37E6811A0891E4271E3B53A5 /* SDLSubscribeVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeVehicleData.m; path = SmartDeviceLink/SDLSubscribeVehicleData.m; sourceTree = ""; }; + 32F53530C42DC0CF82E40AB2BBA5E9CD /* SDLReadDID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReadDID.m; path = SmartDeviceLink/SDLReadDID.m; sourceTree = ""; }; + 32F90AB5741CFF9D0E0907CE26FD7A62 /* SDLRPCMessageType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCMessageType.m; path = SmartDeviceLink/SDLRPCMessageType.m; sourceTree = ""; }; + 330DE6702F86BC1CEC62353483DA8E09 /* SDLLightControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightControlData.m; path = SmartDeviceLink/SDLLightControlData.m; sourceTree = ""; }; + 3364DED576C91F4B3E9543F8E3F1D22A /* SDLTouchType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchType.h; path = SmartDeviceLink/SDLTouchType.h; sourceTree = ""; }; + 337B14C8810BEC7C71631851E3F7C134 /* SDLVehicleDataType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataType.h; path = SmartDeviceLink/SDLVehicleDataType.h; sourceTree = ""; }; + 341C430BE22913BF9CA0B57997C20BE1 /* SDLGlobals.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGlobals.h; path = SmartDeviceLink/SDLGlobals.h; sourceTree = ""; }; + 34CAA3D2C0E052E3DBD4E08D86483AE3 /* SDLPublishAppService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPublishAppService.h; path = SmartDeviceLink/SDLPublishAppService.h; sourceTree = ""; }; + 34E7BCC2915FB3B8486062ECCDC005B7 /* SDLCreateWindowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateWindowResponse.m; path = SmartDeviceLink/SDLCreateWindowResponse.m; sourceTree = ""; }; + 35872C6BFFC71956A1E4CA4786AF126F /* SDLPresentKeyboardOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresentKeyboardOperation.h; path = SmartDeviceLink/SDLPresentKeyboardOperation.h; sourceTree = ""; }; + 359E694B54914987D0F5C484CDD1B988 /* SDLButtonEventMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonEventMode.h; path = SmartDeviceLink/SDLButtonEventMode.h; sourceTree = ""; }; + 35A95205B4A7E275F1EC800DF558C0EA /* SDLScrollableMessageResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScrollableMessageResponse.h; path = SmartDeviceLink/SDLScrollableMessageResponse.h; sourceTree = ""; }; + 36ABD04F09CB9E8C748573174EDFED6A /* SDLGetDTCsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetDTCsResponse.m; path = SmartDeviceLink/SDLGetDTCsResponse.m; sourceTree = ""; }; + 371F5509AF08468749E6798199E0D549 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRegisterSecondaryTransportNak.h; path = SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.h; sourceTree = ""; }; + 375F2398BB370B3CEDB269657E50A87D /* SDLTurnSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTurnSignal.m; path = SmartDeviceLink/SDLTurnSignal.m; sourceTree = ""; }; + 378EBD7F1E0220A44E552335CBA83F26 /* SDLGetAppServiceDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetAppServiceDataResponse.m; path = SmartDeviceLink/SDLGetAppServiceDataResponse.m; sourceTree = ""; }; + 38C9A59422FFB04B66D9134E84B54F55 /* SDLLightName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightName.m; path = SmartDeviceLink/SDLLightName.m; sourceTree = ""; }; + 390D7DC13089AAF192CF47CA92343067 /* SDLFuelCutoffStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelCutoffStatus.m; path = SmartDeviceLink/SDLFuelCutoffStatus.m; sourceTree = ""; }; + 395C9056FCC2D6785467927C7C046C36 /* SDLFocusableItemLocator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFocusableItemLocator.m; path = SmartDeviceLink/SDLFocusableItemLocator.m; sourceTree = ""; }; + 3968E1FF70DAB6F1C5CCCDB5E938D6AB /* SDLShowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowResponse.m; path = SmartDeviceLink/SDLShowResponse.m; sourceTree = ""; }; + 39D9C69734E237DD22253CC4F5D9F863 /* SDLMsgVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMsgVersion.h; path = SmartDeviceLink/SDLMsgVersion.h; sourceTree = ""; }; + 3A7C79923DB7BE60A8C3C81172411692 /* SDLStateMachine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStateMachine.m; path = SmartDeviceLink/SDLStateMachine.m; sourceTree = ""; }; + 3AC7F7B3D6371B00DBFF85FFF2F4E873 /* SDLScrollableMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScrollableMessage.m; path = SmartDeviceLink/SDLScrollableMessage.m; sourceTree = ""; }; + 3AEB0447F840FA8B85356311591B1E92 /* SDLPermissionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionManager.m; path = SmartDeviceLink/SDLPermissionManager.m; sourceTree = ""; }; + 3B4D15588619AC4E8EE11A21A4FB48AD /* SDLConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLConfiguration.m; path = SmartDeviceLink/SDLConfiguration.m; sourceTree = ""; }; + 3B79F919E881908F7E25787F89119DDB /* SDLSetDisplayLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetDisplayLayout.h; path = SmartDeviceLink/SDLSetDisplayLayout.h; sourceTree = ""; }; + 3B8D419D41D4EBE7F427F3F1A6E8C791 /* SDLPowerModeQualificationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPowerModeQualificationStatus.m; path = SmartDeviceLink/SDLPowerModeQualificationStatus.m; sourceTree = ""; }; + 3BEA52EFF09F88D06D5BBDFE47ACB86A /* SDLTBTState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTBTState.m; path = SmartDeviceLink/SDLTBTState.m; sourceTree = ""; }; + 3CDFC5B023598A90612B35331554854F /* SDLLifecycleMobileHMIStateHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleMobileHMIStateHandler.h; path = SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.h; sourceTree = ""; }; + 3D2A524F1F2044F31A8BCD218FCCA1A9 /* SDLTextAndGraphicManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextAndGraphicManager.m; path = SmartDeviceLink/SDLTextAndGraphicManager.m; sourceTree = ""; }; + 3D6A97EE0FBB026A0734AE80DF2F8572 /* SDLCarModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarModeStatus.h; path = SmartDeviceLink/SDLCarModeStatus.h; sourceTree = ""; }; + 3D7871125148142044AD48FDD6D7511C /* SDLNotificationDispatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNotificationDispatcher.m; path = SmartDeviceLink/SDLNotificationDispatcher.m; sourceTree = ""; }; + 3DD3A5AE962BF24F342B8F4DB73EC5BC /* SDLOnLanguageChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnLanguageChange.h; path = SmartDeviceLink/SDLOnLanguageChange.h; sourceTree = ""; }; + 3E046E87DA6D8162BC3CF15D53AF5F0C /* SDLTouchEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchEvent.m; path = SmartDeviceLink/SDLTouchEvent.m; sourceTree = ""; }; + 3E264BEF6A4FED13F137E6FD85DE5CF5 /* SDLMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMacros.h; path = SmartDeviceLink/SDLMacros.h; sourceTree = ""; }; + 3E485F28BB0A7E258C9F739157505BA7 /* SDLOnWayPointChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnWayPointChange.m; path = SmartDeviceLink/SDLOnWayPointChange.m; sourceTree = ""; }; + 3E4F804CFCE6EB5C7532E3E88A095743 /* SDLLocationCoordinate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLocationCoordinate.m; path = SmartDeviceLink/SDLLocationCoordinate.m; sourceTree = ""; }; + 3ED13A45BA2BAA69E7C1CE75280162A1 /* SDLVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVersion.h; path = SmartDeviceLink/SDLVersion.h; sourceTree = ""; }; + 3ED9AAC40D94011EA3DFB96F5394A88A /* SDLSubscribeWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeWayPointsResponse.m; path = SmartDeviceLink/SDLSubscribeWayPointsResponse.m; sourceTree = ""; }; + 3F46BF5B95E2FE244011A908FAA7404C /* SDLAppHMIType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppHMIType.h; path = SmartDeviceLink/SDLAppHMIType.h; sourceTree = ""; }; + 3F743A14A81CBDA132220AA28D5EB8D6 /* SDLRPCMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCMessage.m; path = SmartDeviceLink/SDLRPCMessage.m; sourceTree = ""; }; + 3FC09BC7628BFAB7CD416C70D3F97726 /* SDLAlertManeuver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertManeuver.m; path = SmartDeviceLink/SDLAlertManeuver.m; sourceTree = ""; }; + 400D3E396C926D58653D9550ED9D959D /* SDLSendLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendLocation.h; path = SmartDeviceLink/SDLSendLocation.h; sourceTree = ""; }; + 406D36F0D5A4360A34D547F29DAEC507 /* SDLVehicleDataStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataStatus.h; path = SmartDeviceLink/SDLVehicleDataStatus.h; sourceTree = ""; }; + 407C6AE6126DB991B09BB16445481048 /* SDLLayoutMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLayoutMode.m; path = SmartDeviceLink/SDLLayoutMode.m; sourceTree = ""; }; + 40A630A6C0CC2E6947903DC5BA0B4A42 /* SDLPublishAppServiceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPublishAppServiceResponse.m; path = SmartDeviceLink/SDLPublishAppServiceResponse.m; sourceTree = ""; }; + 40A71807A649A656E2DA4942B6C7F861 /* SDLScrollableMessageResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScrollableMessageResponse.m; path = SmartDeviceLink/SDLScrollableMessageResponse.m; sourceTree = ""; }; + 40F09D6CBF3B576AB4BCEE787D60E8A7 /* SDLAudioControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioControlData.m; path = SmartDeviceLink/SDLAudioControlData.m; sourceTree = ""; }; + 41001F8A8E38A09CC2782EDFC033C7A4 /* SDLProtocolReceivedMessageRouter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolReceivedMessageRouter.h; path = SmartDeviceLink/SDLProtocolReceivedMessageRouter.h; sourceTree = ""; }; + 4120946CE7AB246EF162C99558A3845D /* SDLRequestType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRequestType.m; path = SmartDeviceLink/SDLRequestType.m; sourceTree = ""; }; + 41304645E4705DE8828DD0B01D402863 /* SDLStreamingAudioLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingAudioLifecycleManager.m; path = SmartDeviceLink/SDLStreamingAudioLifecycleManager.m; sourceTree = ""; }; + 415932F30412FF10E539284D48E8C35D /* SDLAudioStreamManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamManager.m; path = SmartDeviceLink/SDLAudioStreamManager.m; sourceTree = ""; }; + 416EEFA8DF9920B950D45A438B6CEB3B /* SDLProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocol.h; path = SmartDeviceLink/SDLProtocol.h; sourceTree = ""; }; + 41D1F2E020D4C94A54B41209DF6979D4 /* SDLSeatLocationCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatLocationCapability.h; path = SmartDeviceLink/SDLSeatLocationCapability.h; sourceTree = ""; }; + 41D2FDD18C0EC502F3D54359F05AEA12 /* SDLDeleteCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteCommand.h; path = SmartDeviceLink/SDLDeleteCommand.h; sourceTree = ""; }; + 41D72B7B4ED48D2E8526C8AF6D0B9A7B /* SDLImageField+ScreenManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLImageField+ScreenManagerExtensions.m"; path = "SmartDeviceLink/SDLImageField+ScreenManagerExtensions.m"; sourceTree = ""; }; + 42438A9D2F6D3292FF657E90823128D4 /* SDLTextAndGraphicManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextAndGraphicManager.h; path = SmartDeviceLink/SDLTextAndGraphicManager.h; sourceTree = ""; }; + 42661551A62CE606353EE0A3A1811CC7 /* SDLVoiceCommandManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommandManager.h; path = SmartDeviceLink/SDLVoiceCommandManager.h; sourceTree = ""; }; + 434F7E258AA1DD104EC3CFB0E53CD4F5 /* SDLLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightStatus.m; path = SmartDeviceLink/SDLLightStatus.m; sourceTree = ""; }; + 43D14531D9A7ED9C7FBFA6F900E02E1D /* SDLRadioBand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioBand.m; path = SmartDeviceLink/SDLRadioBand.m; sourceTree = ""; }; + 43E6B7E8C5F8053C7D1CC36D63B661F6 /* SDLGetWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetWayPoints.h; path = SmartDeviceLink/SDLGetWayPoints.h; sourceTree = ""; }; + 44DE2E913C1FFDEB763626983CED98D4 /* SDLRPCMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCMessage.h; path = SmartDeviceLink/SDLRPCMessage.h; sourceTree = ""; }; + 44F03874CFBDB12A46DAEDBEBC01EDED /* SDLLifecycleSystemRequestHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleSystemRequestHandler.m; path = SmartDeviceLink/SDLLifecycleSystemRequestHandler.m; sourceTree = ""; }; + 450FA67BD7C44184F88D81F8C399251F /* SDLControlFramePayloadEndService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadEndService.h; path = SmartDeviceLink/SDLControlFramePayloadEndService.h; sourceTree = ""; }; + 4525C34999BF5F6C1D46FE4471300796 /* SDLPutFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPutFileResponse.h; path = SmartDeviceLink/SDLPutFileResponse.h; sourceTree = ""; }; + 45278E4B1599BA7B963172755EE7266C /* SDLCreateInteractionChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateInteractionChoiceSet.m; path = SmartDeviceLink/SDLCreateInteractionChoiceSet.m; sourceTree = ""; }; + 453036FA291BAD166B2A99B5B41BD415 /* SDLAppServiceRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceRecord.h; path = SmartDeviceLink/SDLAppServiceRecord.h; sourceTree = ""; }; + 4534A47F55F401B4F9461F6E133F8C1D /* SDLControlFramePayloadRPCStartService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRPCStartService.m; path = SmartDeviceLink/SDLControlFramePayloadRPCStartService.m; sourceTree = ""; }; + 45C3A2C25877219916DC604237EE989A /* SDLLogConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogConstants.h; path = SmartDeviceLink/SDLLogConstants.h; sourceTree = ""; }; + 46B479E9DE24EACDF8798380CCC4B19E /* EAAccessoryManager+SDLProtocols.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EAAccessoryManager+SDLProtocols.m"; path = "SmartDeviceLink/EAAccessoryManager+SDLProtocols.m"; sourceTree = ""; }; + 46ECC18D967806C249E479F3E3F6CB28 /* SDLPRNDL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPRNDL.m; path = SmartDeviceLink/SDLPRNDL.m; sourceTree = ""; }; + 4722008FD5C647B6F89537D21F158386 /* SDLUnsubscribeWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeWayPointsResponse.h; path = SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h; sourceTree = ""; }; + 47B19A0B5A3387852751CFDCB453B116 /* SDLRPCNotificationNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCNotificationNotification.m; path = SmartDeviceLink/SDLRPCNotificationNotification.m; sourceTree = ""; }; + 47C1FDEBDE61E5805D49671442A7A863 /* SDLLightCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightCapabilities.h; path = SmartDeviceLink/SDLLightCapabilities.h; sourceTree = ""; }; + 47CEE7254EB0F1FF12B377E55631510A /* SDLKeyboardProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardProperties.m; path = SmartDeviceLink/SDLKeyboardProperties.m; sourceTree = ""; }; + 481E981C3D01379187FF066BD3C0DABA /* SDLTemperature.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemperature.h; path = SmartDeviceLink/SDLTemperature.h; sourceTree = ""; }; + 48307D297D9F19863197DD3A5B8AFBD8 /* SDLAppServiceType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceType.m; path = SmartDeviceLink/SDLAppServiceType.m; sourceTree = ""; }; + 491D8037228A91B41497B86D86B203FA /* SDLSetDisplayLayoutResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetDisplayLayoutResponse.h; path = SmartDeviceLink/SDLSetDisplayLayoutResponse.h; sourceTree = ""; }; + 4946BD85165935E30EBDE5F0983445E0 /* SDLAppServiceCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceCapability.m; path = SmartDeviceLink/SDLAppServiceCapability.m; sourceTree = ""; }; + 4975CFB97046B46A61DB1C5214F450B7 /* SDLEmergencyEventType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEmergencyEventType.h; path = SmartDeviceLink/SDLEmergencyEventType.h; sourceTree = ""; }; + 4A10D8B7901189488B952CD3118CD658 /* SDLShowConstantTBT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowConstantTBT.m; path = SmartDeviceLink/SDLShowConstantTBT.m; sourceTree = ""; }; + 4A9E6530D498F353F0F09932DF6E0EAD /* SDLDisplayCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayCapability.h; path = SmartDeviceLink/SDLDisplayCapability.h; sourceTree = ""; }; + 4AE79256F1FBD692C97BF6AF4A9AA8F5 /* SDLLanguage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLanguage.m; path = SmartDeviceLink/SDLLanguage.m; sourceTree = ""; }; + 4B58A20A29A45608DC88942D98FAD328 /* SDLOnAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAudioPassThru.m; path = SmartDeviceLink/SDLOnAudioPassThru.m; sourceTree = ""; }; + 4B944A8411396B636FBDC617B69BA653 /* SDLSoftButtonTransitionOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonTransitionOperation.h; path = SmartDeviceLink/SDLSoftButtonTransitionOperation.h; sourceTree = ""; }; + 4C0A8CFB3D9B165CAB3A25F6C5FE2553 /* SDLObjectWithPriority.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLObjectWithPriority.h; path = SmartDeviceLink/SDLObjectWithPriority.h; sourceTree = ""; }; + 4C0C5BDEA392C2632EF566C04D76A2D0 /* SDLAppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppInfo.m; path = SmartDeviceLink/SDLAppInfo.m; sourceTree = ""; }; + 4C1E994C0CAD055C104B0306EC25F432 /* SDLSeatControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatControlCapabilities.m; path = SmartDeviceLink/SDLSeatControlCapabilities.m; sourceTree = ""; }; + 4C56E0DAFD813A6679773DEA90F319CD /* SDLSetCloudAppProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetCloudAppProperties.m; path = SmartDeviceLink/SDLSetCloudAppProperties.m; sourceTree = ""; }; + 4C7358A46E79FC0C9BC7001B0A76870E /* SDLCarWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarWindow.m; path = SmartDeviceLink/SDLCarWindow.m; sourceTree = ""; }; + 4C8AB9952510177705B3F01E462FE897 /* NSNumber+NumberType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+NumberType.h"; path = "SmartDeviceLink/NSNumber+NumberType.h"; sourceTree = ""; }; + 4CDDE49677C1E817827B6E102A64583F /* SDLDeleteChoicesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteChoicesOperation.m; path = SmartDeviceLink/SDLDeleteChoicesOperation.m; sourceTree = ""; }; + 4CF246B79DE4F55FA9C83D84B39DED75 /* SDLMassageZone.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageZone.m; path = SmartDeviceLink/SDLMassageZone.m; sourceTree = ""; }; + 4D30EA1923FA31DA9BE9ABCBAE3F7AC8 /* SDLDeleteSubMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteSubMenuResponse.m; path = SmartDeviceLink/SDLDeleteSubMenuResponse.m; sourceTree = ""; }; + 4DBF14A9018FF0267ED5E2B71139B68D /* SDLElectronicParkBrakeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLElectronicParkBrakeStatus.h; path = SmartDeviceLink/SDLElectronicParkBrakeStatus.h; sourceTree = ""; }; + 4DDB64CACEBCF991EC3567F7211CF4D7 /* SDLSystemContext.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemContext.m; path = SmartDeviceLink/SDLSystemContext.m; sourceTree = ""; }; + 4EB9B954F1D1DCEB391A1D236360F644 /* SDLGetWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetWayPointsResponse.h; path = SmartDeviceLink/SDLGetWayPointsResponse.h; sourceTree = ""; }; + 4EDBC18F6B463FA2C5159B39D11406A8 /* SDLGetFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetFile.m; path = SmartDeviceLink/SDLGetFile.m; sourceTree = ""; }; + 4F447D50B76CF152BE05CADE1A36C2EF /* SDLStreamingMediaManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManagerConstants.h; path = SmartDeviceLink/SDLStreamingMediaManagerConstants.h; sourceTree = ""; }; + 4F84252F4C10EA659DE486850D8B391F /* SDLDeleteWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteWindow.h; path = SmartDeviceLink/SDLDeleteWindow.h; sourceTree = ""; }; + 4FD6F467D5959B95D867103EEA1CA0D2 /* CGPoint_Util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CGPoint_Util.h; path = SmartDeviceLink/CGPoint_Util.h; sourceTree = ""; }; + 50189BAC7FFDD4590A653D15F6445710 /* SDLMenuCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuCell.m; path = SmartDeviceLink/SDLMenuCell.m; sourceTree = ""; }; + 5034B677DE11A819CC149521CC6E7720 /* SDLAppInterfaceUnregisteredReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppInterfaceUnregisteredReason.h; path = SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h; sourceTree = ""; }; + 503A41DB589BA9EC2CCA4AB7017329EF /* SDLOnSystemRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSystemRequest.m; path = SmartDeviceLink/SDLOnSystemRequest.m; sourceTree = ""; }; + 50519D317000C62928D0855FCBD05D94 /* SDLManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLManager.m; path = SmartDeviceLink/SDLManager.m; sourceTree = ""; }; + 5103BF7ABB8FE6480004A5CA73CFE14C /* SDLSoftButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButton.m; path = SmartDeviceLink/SDLSoftButton.m; sourceTree = ""; }; + 51210DA0C1436DDB81E521EBA6EADBC8 /* SDLOnCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnCommand.h; path = SmartDeviceLink/SDLOnCommand.h; sourceTree = ""; }; + 5123591BCB0470FF6776714BBA79CF39 /* SDLCreateInteractionChoiceSetResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateInteractionChoiceSetResponse.h; path = SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h; sourceTree = ""; }; + 513C5F441F1680E2DF08C9769B0F1261 /* SDLCloseApplication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCloseApplication.m; path = SmartDeviceLink/SDLCloseApplication.m; sourceTree = ""; }; + 515C64D6ED07705316C7A0B26C4DD75E /* SDLChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceSet.m; path = SmartDeviceLink/SDLChoiceSet.m; sourceTree = ""; }; + 51B7A6EEE9B94D329C7266DE4D081999 /* SDLOnHMIStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnHMIStatus.m; path = SmartDeviceLink/SDLOnHMIStatus.m; sourceTree = ""; }; + 51FFB00ABD6490160288E149838F9914 /* SDLEncryptionConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncryptionConfiguration.h; path = SmartDeviceLink/SDLEncryptionConfiguration.h; sourceTree = ""; }; + 5219E50197D0F16E89EF7D41AA424C50 /* SDLMaintenanceModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMaintenanceModeStatus.h; path = SmartDeviceLink/SDLMaintenanceModeStatus.h; sourceTree = ""; }; + 5229ED97F3A6D032C282A878D63A8092 /* SDLMediaClockFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaClockFormat.m; path = SmartDeviceLink/SDLMediaClockFormat.m; sourceTree = ""; }; + 5307CCD102337C9C53D4EFE667B761F4 /* SDLAppServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceData.m; path = SmartDeviceLink/SDLAppServiceData.m; sourceTree = ""; }; + 534381EF77922C7C1FEB465E9A76C391 /* SDLDiagnosticMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDiagnosticMessage.m; path = SmartDeviceLink/SDLDiagnosticMessage.m; sourceTree = ""; }; + 53B9D390255C9D726244342D1F11DB4E /* SDLSoftButtonReplaceOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonReplaceOperation.h; path = SmartDeviceLink/SDLSoftButtonReplaceOperation.h; sourceTree = ""; }; + 53C9FB09310F3715EB6A1F8329DEA635 /* SDLVehicleDataResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataResult.m; path = SmartDeviceLink/SDLVehicleDataResult.m; sourceTree = ""; }; + 53E02D4536535B419DF1F95513E1ECBA /* SDLLifecycleMobileHMIStateHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleMobileHMIStateHandler.m; path = SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.m; sourceTree = ""; }; + 543FCEC5A85DD779ABF6ACE810B1AD64 /* SDLError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLError.h; path = SmartDeviceLink/SDLError.h; sourceTree = ""; }; + 547FC85E47390A2ECB343B5888FA5AD9 /* SDLSamplingRate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSamplingRate.m; path = SmartDeviceLink/SDLSamplingRate.m; sourceTree = ""; }; + 5489C9144952EA64BC69A2AFEA7D3E52 /* SDLRadioControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioControlCapabilities.h; path = SmartDeviceLink/SDLRadioControlCapabilities.h; sourceTree = ""; }; + 5515A49433320321179C4B897753C324 /* SDLButtonPress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPress.h; path = SmartDeviceLink/SDLButtonPress.h; sourceTree = ""; }; + 55244989E8038AB58D5327F3F2477E52 /* SDLEncryptionManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncryptionManagerConstants.h; path = SmartDeviceLink/SDLEncryptionManagerConstants.h; sourceTree = ""; }; + 55370BA933CFB6684AC8D5FD1954BD37 /* SDLSeatControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatControlData.h; path = SmartDeviceLink/SDLSeatControlData.h; sourceTree = ""; }; + 556489F7F882C1F45315798A6F7A1FCC /* SDLKeyboardLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardLayout.m; path = SmartDeviceLink/SDLKeyboardLayout.m; sourceTree = ""; }; + 55E435B983612931D00E4E0BE0F83314 /* SDLListFiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFiles.m; path = SmartDeviceLink/SDLListFiles.m; sourceTree = ""; }; + 560110B981BC4B6770CCD1C3367DB69A /* SDLLifecycleRPCAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleRPCAdapter.m; path = SmartDeviceLink/SDLLifecycleRPCAdapter.m; sourceTree = ""; }; + 5607006D258938F74C9BF96F14B4D4DF /* SDLImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImage.m; path = SmartDeviceLink/SDLImage.m; sourceTree = ""; }; + 560968D114523D039B47918DE9FC2B26 /* SDLLifecycleRPCAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleRPCAdapter.h; path = SmartDeviceLink/SDLLifecycleRPCAdapter.h; sourceTree = ""; }; + 560F738DFD43F14B66D6575B0D922FF8 /* SDLLifecycleConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleConfiguration.h; path = SmartDeviceLink/SDLLifecycleConfiguration.h; sourceTree = ""; }; + 56348A384ADED81FB3086D9B75D54306 /* SDLMassageCushionFirmness.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageCushionFirmness.m; path = SmartDeviceLink/SDLMassageCushionFirmness.m; sourceTree = ""; }; + 565121A4F57AC7B9E0FFA044BC680BAB /* SDLOnAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAudioPassThru.h; path = SmartDeviceLink/SDLOnAudioPassThru.h; sourceTree = ""; }; + 565B3BF287FB32FC25688D47A589EACC /* SDLSystemCapabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityManager.h; path = SmartDeviceLink/SDLSystemCapabilityManager.h; sourceTree = ""; }; + 56B207D8614F79DE603BFA47589AFFD6 /* SDLPerformAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAudioPassThru.h; path = SmartDeviceLink/SDLPerformAudioPassThru.h; sourceTree = ""; }; + 56BD8841DFE8B3FBBC4A5C4D08264F39 /* SDLEmergencyEventType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEmergencyEventType.m; path = SmartDeviceLink/SDLEmergencyEventType.m; sourceTree = ""; }; + 5712312473A00BB85C7BFFF2A9701AB2 /* SDLLifecycleProtocolHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleProtocolHandler.m; path = SmartDeviceLink/SDLLifecycleProtocolHandler.m; sourceTree = ""; }; + 5755CA4656E4B0C76ED9F9F63356B985 /* SDLOnTouchEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnTouchEvent.h; path = SmartDeviceLink/SDLOnTouchEvent.h; sourceTree = ""; }; + 5784EB866AAB23C634D0887413828115 /* SDLStartTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStartTime.h; path = SmartDeviceLink/SDLStartTime.h; sourceTree = ""; }; + 57AFA95624C62EA40DCF7A4A52DA2D26 /* SDLAirbagStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAirbagStatus.h; path = SmartDeviceLink/SDLAirbagStatus.h; sourceTree = ""; }; + 57B7CFE27E7FD5DFEDF19B5BF803548D /* SDLEncodedSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncodedSyncPData.m; path = SmartDeviceLink/SDLEncodedSyncPData.m; sourceTree = ""; }; + 57F213F76C681791E8A6A44907FAD2A2 /* SDLDeleteInteractionChoiceSetResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteInteractionChoiceSetResponse.m; path = SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m; sourceTree = ""; }; + 583045D48F0608C0A7B71AE4D7666158 /* EAAccessory+SDLProtocols.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EAAccessory+SDLProtocols.h"; path = "SmartDeviceLink/EAAccessory+SDLProtocols.h"; sourceTree = ""; }; + 58F3751CB279F04FD7904D88ADC33AD9 /* SDLNavigationJunction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationJunction.m; path = SmartDeviceLink/SDLNavigationJunction.m; sourceTree = ""; }; + 590C1C4982D954259C18E6BAF8EA15A0 /* SDLTurnSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTurnSignal.h; path = SmartDeviceLink/SDLTurnSignal.h; sourceTree = ""; }; + 593ED256D9FF77FF4B35CE6871FAE25D /* SDLRPCParameterNames.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCParameterNames.h; path = SmartDeviceLink/SDLRPCParameterNames.h; sourceTree = ""; }; + 594AC4B2DF9D7E1F894764C0639282A4 /* SDLProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolHeader.m; path = SmartDeviceLink/SDLProtocolHeader.m; sourceTree = ""; }; 59D7FD29EEF5AC55F5624BD9B791ADD6 /* Pods-MobileWeather-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MobileWeather-Info.plist"; sourceTree = ""; }; - 59F1B488251110BAEA799A5E7C83E6A7 /* SDLUpdateTurnList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateTurnList.h; path = SmartDeviceLink/SDLUpdateTurnList.h; sourceTree = ""; }; - 59F336B19B5A14921AF73428A666E018 /* SDLCancelInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCancelInteractionResponse.h; path = SmartDeviceLink/SDLCancelInteractionResponse.h; sourceTree = ""; }; - 5A116087C3B6EFD78EC43CDA42ED9FA1 /* SDLMetadataTags.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMetadataTags.h; path = SmartDeviceLink/SDLMetadataTags.h; sourceTree = ""; }; - 5A695B3A3F27221B6CBE669925E43199 /* SDLKeyboardProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardProperties.m; path = SmartDeviceLink/SDLKeyboardProperties.m; sourceTree = ""; }; - 5A969288213535D08DB702C6481A24BE /* SmartDeviceLink-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartDeviceLink-prefix.pch"; sourceTree = ""; }; - 5AA15811C6C82B48B1CE0CF72D93BB8E /* SDLPermissionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionStatus.m; path = SmartDeviceLink/SDLPermissionStatus.m; sourceTree = ""; }; - 5ABA9D773535CC39A270DD8160147CAB /* SDLVideoStreamingCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingCapability.m; path = SmartDeviceLink/SDLVideoStreamingCapability.m; sourceTree = ""; }; - 5AE2355374C44304F88A7DFB00858AA2 /* SDLVideoStreamingFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingFormat.m; path = SmartDeviceLink/SDLVideoStreamingFormat.m; sourceTree = ""; }; - 5B384DD0203EADC9A558BDBF6CCD33DA /* SDLScrollableMessageResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScrollableMessageResponse.m; path = SmartDeviceLink/SDLScrollableMessageResponse.m; sourceTree = ""; }; - 5B4549A9A5E6AF77B821A8EA6F04A858 /* SDLUnsubscribeWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeWayPoints.m; path = SmartDeviceLink/SDLUnsubscribeWayPoints.m; sourceTree = ""; }; - 5B5DB19512329465920F68B50C253776 /* SDLImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImage.h; path = SmartDeviceLink/SDLImage.h; sourceTree = ""; }; - 5C083E636854B0B9353C528C02DD0119 /* SDLPermissionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionManager.h; path = SmartDeviceLink/SDLPermissionManager.h; sourceTree = ""; }; - 5C810B6DB2EF473A10A3289A980D1430 /* SDLManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLManager.h; path = SmartDeviceLink/SDLManager.h; sourceTree = ""; }; - 5CC08B2D1ECABDAF764AE254824DC457 /* SDLFileManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManager.h; path = SmartDeviceLink/SDLFileManager.h; sourceTree = ""; }; - 5CE9058C4CECC7EB2181F33AED464312 /* SDLAddSubMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddSubMenuResponse.m; path = SmartDeviceLink/SDLAddSubMenuResponse.m; sourceTree = ""; }; - 5CED9E972E8876CBE62B74E0A508DB50 /* SDLSliderResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSliderResponse.h; path = SmartDeviceLink/SDLSliderResponse.h; sourceTree = ""; }; - 5CEDDEAFB2948E2135AAB8C34A9C9277 /* SDLSubscribeButtonObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonObserver.h; path = SmartDeviceLink/SDLSubscribeButtonObserver.h; sourceTree = ""; }; - 5D3D372A87B4AFED15B15E0EC89F51A5 /* SDLShowConstantTBTResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowConstantTBTResponse.m; path = SmartDeviceLink/SDLShowConstantTBTResponse.m; sourceTree = ""; }; - 5D85052B41FE8A425641B594DBE76849 /* SDLLifecycleConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleConfiguration.m; path = SmartDeviceLink/SDLLifecycleConfiguration.m; sourceTree = ""; }; - 5DB8E34CADC6FD344370C3E41DF04943 /* SDLTouchEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchEvent.h; path = SmartDeviceLink/SDLTouchEvent.h; sourceTree = ""; }; - 5DE51752FED2D7FE208CE05FC220435D /* SDLError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLError.h; path = SmartDeviceLink/SDLError.h; sourceTree = ""; }; - 5DE719023045A4F8E7FB620C98982C60 /* SDLEncryptionConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncryptionConfiguration.m; path = SmartDeviceLink/SDLEncryptionConfiguration.m; sourceTree = ""; }; - 5DFB940A77A15D0F3E0C0C48889F05B0 /* SDLHMILevel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMILevel.h; path = SmartDeviceLink/SDLHMILevel.h; sourceTree = ""; }; - 5E027DB1F50B0C19CFFB73267754D157 /* SDLSeatLocationCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatLocationCapability.m; path = SmartDeviceLink/SDLSeatLocationCapability.m; sourceTree = ""; }; - 5E182A82AB3C691E7B275AADAB942174 /* SDLStreamingVideoLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingVideoLifecycleManager.m; path = SmartDeviceLink/SDLStreamingVideoLifecycleManager.m; sourceTree = ""; }; + 59E9E6DA852CDB3807D696B60E051419 /* SDLDynamicMenuUpdateAlgorithm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDynamicMenuUpdateAlgorithm.h; path = SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.h; sourceTree = ""; }; + 5A11856FDCCC57B69B91D3F4F8AAAE92 /* SDLControlFramePayloadRPCStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRPCStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m; sourceTree = ""; }; + 5A352F773B0D24E76E0DDA51D741F4F4 /* SDLHMIZoneCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMIZoneCapabilities.h; path = SmartDeviceLink/SDLHMIZoneCapabilities.h; sourceTree = ""; }; + 5A548B2F0B4F07864D70445C29686B09 /* SDLLockScreenRootViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenRootViewController.h; path = SmartDeviceLink/SDLLockScreenRootViewController.h; sourceTree = ""; }; + 5A6B3017F1431C58D97751955A16C720 /* SDLVentilationMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVentilationMode.h; path = SmartDeviceLink/SDLVentilationMode.h; sourceTree = ""; }; + 5A7526B4C33F3597CF06B974E14148B3 /* SDLMetadataType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMetadataType.m; path = SmartDeviceLink/SDLMetadataType.m; sourceTree = ""; }; + 5B19D438E24EAAC5AB55CF4F1D7C0C34 /* SDLKeyboardEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardEvent.m; path = SmartDeviceLink/SDLKeyboardEvent.m; sourceTree = ""; }; + 5BC04274374151301839F46AAE270B2C /* SDLUpdateMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateMode.m; path = SmartDeviceLink/SDLUpdateMode.m; sourceTree = ""; }; + 5BDE7214FFD1799A060E153912422D29 /* SDLVehicleDataActiveStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataActiveStatus.m; path = SmartDeviceLink/SDLVehicleDataActiveStatus.m; sourceTree = ""; }; + 5C1D9612F74CBE518438548A4CF314FF /* SDLProtocolMessageAssembler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessageAssembler.m; path = SmartDeviceLink/SDLProtocolMessageAssembler.m; sourceTree = ""; }; + 5C71161060166817E773FB5B022B4BF7 /* SDLBodyInformation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBodyInformation.m; path = SmartDeviceLink/SDLBodyInformation.m; sourceTree = ""; }; + 5C7DA6DFDBC398CAB62E0896412F9A2A /* SDLIAPTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPTransport.h; path = SmartDeviceLink/SDLIAPTransport.h; sourceTree = ""; }; + 5CB2711FB405251BACF64A0A65EAE099 /* SDLPublishAppServiceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPublishAppServiceResponse.h; path = SmartDeviceLink/SDLPublishAppServiceResponse.h; sourceTree = ""; }; + 5CB3BE56CAC7F62425D19C1C143A480E /* SDLLockScreenConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenConfiguration.h; path = SmartDeviceLink/SDLLockScreenConfiguration.h; sourceTree = ""; }; + 5CC74D66E26424A87C56B92B709CA407 /* SDLChoiceCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceCell.m; path = SmartDeviceLink/SDLChoiceCell.m; sourceTree = ""; }; + 5CD8B26768A85697E5937AC3887AFC5E /* SDLControlFramePayloadVideoStartService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadVideoStartService.m; path = SmartDeviceLink/SDLControlFramePayloadVideoStartService.m; sourceTree = ""; }; + 5CF68D31D1441A9B01A4855729375706 /* SDLElectronicParkBrakeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLElectronicParkBrakeStatus.m; path = SmartDeviceLink/SDLElectronicParkBrakeStatus.m; sourceTree = ""; }; + 5D5380F0BCC170C113C3965CCB7AD31F /* SDLECallInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLECallInfo.h; path = SmartDeviceLink/SDLECallInfo.h; sourceTree = ""; }; + 5DFCB575AA035436B66797EA08EFAB0C /* SDLOnKeyboardInput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnKeyboardInput.m; path = SmartDeviceLink/SDLOnKeyboardInput.m; sourceTree = ""; }; + 5E2B0AAB2CCBFBD6FAC8F2B04D2A0C31 /* SDLVehicleDataActiveStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataActiveStatus.h; path = SmartDeviceLink/SDLVehicleDataActiveStatus.h; sourceTree = ""; }; 5E7A92F6F5DF51067E86A63E8CD1EC5C /* Pods-MobileWeather-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MobileWeather-umbrella.h"; sourceTree = ""; }; - 5E97BBBE0B504665860ED1CAA8E59FE8 /* SDLComponentVolumeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLComponentVolumeStatus.h; path = SmartDeviceLink/SDLComponentVolumeStatus.h; sourceTree = ""; }; - 5EA4853DDAAB63EC25DE5EFCC17C1914 /* SDLTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTimer.m; path = SmartDeviceLink/SDLTimer.m; sourceTree = ""; }; - 5ED3A5134C0B156DBE89E14A72AB0F95 /* SDLLifecycleSystemRequestHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleSystemRequestHandler.h; path = SmartDeviceLink/SDLLifecycleSystemRequestHandler.h; sourceTree = ""; }; - 5EF29BC404FD0F315A73C9D9A7351277 /* SDLFileType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileType.m; path = SmartDeviceLink/SDLFileType.m; sourceTree = ""; }; - 5F8B26301962DAB3A218E94BBF267589 /* SDLDistanceUnit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDistanceUnit.m; path = SmartDeviceLink/SDLDistanceUnit.m; sourceTree = ""; }; - 5F9EFD1A81F30902BAA0BFD14E95906A /* SDLSubscribeWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeWayPointsResponse.h; path = SmartDeviceLink/SDLSubscribeWayPointsResponse.h; sourceTree = ""; }; - 60C9980F7C06B067A4739AEF6364E6BB /* SDLSubscribeWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeWayPoints.m; path = SmartDeviceLink/SDLSubscribeWayPoints.m; sourceTree = ""; }; - 60E560ED9A603C1EE72D1DC626FC9DA8 /* SDLNavigationJunction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationJunction.m; path = SmartDeviceLink/SDLNavigationJunction.m; sourceTree = ""; }; - 610922E85FBDB66F79FF6230A47D4B75 /* SDLOnDriverDistraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnDriverDistraction.h; path = SmartDeviceLink/SDLOnDriverDistraction.h; sourceTree = ""; }; - 611B8EA6CFB53369E15F75B735E1EF03 /* SDLSoftButtonType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonType.m; path = SmartDeviceLink/SDLSoftButtonType.m; sourceTree = ""; }; - 61BCAB5AD776DC231BC9B208AEA941FC /* NSNumber+NumberType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+NumberType.h"; path = "SmartDeviceLink/NSNumber+NumberType.h"; sourceTree = ""; }; - 6235BA14F1F7044B98188F7FACCFE4C8 /* SDLClimateControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClimateControlCapabilities.m; path = SmartDeviceLink/SDLClimateControlCapabilities.m; sourceTree = ""; }; - 633E599F3936F7344FB0DBA1DB5127C1 /* SDLListFilesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFilesResponse.m; path = SmartDeviceLink/SDLListFilesResponse.m; sourceTree = ""; }; - 63CCE3D626BB22CCA767323E3EE5965A /* SDLAppServiceRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceRecord.h; path = SmartDeviceLink/SDLAppServiceRecord.h; sourceTree = ""; }; - 63D098D74619FDADF2DBEDAB8939A5C8 /* SDLPutFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPutFileResponse.m; path = SmartDeviceLink/SDLPutFileResponse.m; sourceTree = ""; }; - 646F19BE927B0171643AFCA74D750304 /* SDLAsynchronousRPCOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousRPCOperation.h; path = SmartDeviceLink/SDLAsynchronousRPCOperation.h; sourceTree = ""; }; - 64BA143AD255D19B934724F34E2072CD /* SDLScreenParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScreenParams.h; path = SmartDeviceLink/SDLScreenParams.h; sourceTree = ""; }; - 64CC24A0167F43E7EFCD3741ED2CD00A /* SDLAlert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlert.h; path = SmartDeviceLink/SDLAlert.h; sourceTree = ""; }; - 659961EA97BC4FAE7763288542F9CB2F /* SDLButtonName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonName.h; path = SmartDeviceLink/SDLButtonName.h; sourceTree = ""; }; - 663A9EF7F5F3FD6EE0A2CD1D2AC97B32 /* SDLLockScreenPresenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenPresenter.m; path = SmartDeviceLink/SDLLockScreenPresenter.m; sourceTree = ""; }; - 6644C7A504AD3CAC83C4A63B22675EB0 /* SDLControlFramePayloadAudioStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadAudioStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m; sourceTree = ""; }; - 6657481C1066F2BFD64C601F0DE30820 /* SDLSlider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSlider.m; path = SmartDeviceLink/SDLSlider.m; sourceTree = ""; }; - 66A4B1A486BE8F5F2523D7B998E03397 /* SDLPerformAppServiceInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAppServiceInteraction.h; path = SmartDeviceLink/SDLPerformAppServiceInteraction.h; sourceTree = ""; }; - 66FD520D0728F8EF271910AF32E9C621 /* BiSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BiSON-umbrella.h"; sourceTree = ""; }; - 675E2F625AECD899CD113C3918FD540E /* SDLSequentialRPCRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSequentialRPCRequestOperation.m; path = SmartDeviceLink/SDLSequentialRPCRequestOperation.m; sourceTree = ""; }; - 678F1D8B5E1A5F63E7E494C394BAD3AA /* SDLPowerModeQualificationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPowerModeQualificationStatus.m; path = SmartDeviceLink/SDLPowerModeQualificationStatus.m; sourceTree = ""; }; - 67B1375F3DDA0692EAB06F16FF383182 /* SDLAppHMIType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppHMIType.m; path = SmartDeviceLink/SDLAppHMIType.m; sourceTree = ""; }; + 5E8F3EE9F30783B26AA56961091BF72E /* SDLDeleteFileOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileOperation.m; path = SmartDeviceLink/SDLDeleteFileOperation.m; sourceTree = ""; }; + 5EB901BBD8CDB6EBCBAE64DA451A00CC /* SDLPredefinedLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPredefinedLayout.h; path = SmartDeviceLink/SDLPredefinedLayout.h; sourceTree = ""; }; + 5ED1A1D0218C25583F5764B0E59FDC4E /* bson_util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_util.h; path = src/bson_util.h; sourceTree = ""; }; + 5F13B63A4EAD46B06716304725A8B45C /* SDLUnregisterAppInterface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnregisterAppInterface.h; path = SmartDeviceLink/SDLUnregisterAppInterface.h; sourceTree = ""; }; + 5F656263CA5DF65889FE6D8936080E02 /* SDLHeadLampStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHeadLampStatus.m; path = SmartDeviceLink/SDLHeadLampStatus.m; sourceTree = ""; }; + 5FF29143ABCD4BB3E7BEDE8C7CCAD067 /* SDLBitsPerSample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBitsPerSample.m; path = SmartDeviceLink/SDLBitsPerSample.m; sourceTree = ""; }; + 606081890E34F1A52EA3621D5B06F45D /* SDLFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFile.m; path = SmartDeviceLink/SDLFile.m; sourceTree = ""; }; + 6076ED1F7C813186E772A1EFE55F1B2C /* SDLAudioControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioControlCapabilities.h; path = SmartDeviceLink/SDLAudioControlCapabilities.h; sourceTree = ""; }; + 60F046623D1338F618C008003CCE3C24 /* SDLDriverDistractionState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDriverDistractionState.h; path = SmartDeviceLink/SDLDriverDistractionState.h; sourceTree = ""; }; + 61826AE009D0EFACD0702CE842CA700D /* SDLDynamicMenuUpdateRunScore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDynamicMenuUpdateRunScore.m; path = SmartDeviceLink/SDLDynamicMenuUpdateRunScore.m; sourceTree = ""; }; + 61E9DF9DE239F356089DAA53E89279CA /* SDLLogTarget.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTarget.h; path = SmartDeviceLink/SDLLogTarget.h; sourceTree = ""; }; + 61F44CE148CA8C83F8C0A4C085412C87 /* SDLGetFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetFileResponse.h; path = SmartDeviceLink/SDLGetFileResponse.h; sourceTree = ""; }; + 620CF46A0CCD4D50705CBD8D5628B133 /* SDLLockScreenConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenConfiguration.m; path = SmartDeviceLink/SDLLockScreenConfiguration.m; sourceTree = ""; }; + 6243FFA5A3FBB349C133E1FC613BD6AD /* SDLOnRCStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnRCStatus.m; path = SmartDeviceLink/SDLOnRCStatus.m; sourceTree = ""; }; + 628B5DC307A9450A056D106EF2EABD94 /* SDLSetInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetInteriorVehicleData.h; path = SmartDeviceLink/SDLSetInteriorVehicleData.h; sourceTree = ""; }; + 6295861AA5817049121A7E98779B04F0 /* SDLMassageCushion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageCushion.h; path = SmartDeviceLink/SDLMassageCushion.h; sourceTree = ""; }; + 62C0442C9E0D051B0310BB29437BC90B /* SDLSliderResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSliderResponse.m; path = SmartDeviceLink/SDLSliderResponse.m; sourceTree = ""; }; + 6301C36A8C5A7DFCE5AE6E9C37BBE530 /* SDLEqualizerSettings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEqualizerSettings.m; path = SmartDeviceLink/SDLEqualizerSettings.m; sourceTree = ""; }; + 6316B004E69CA34EAA8ADB8A39D0E24C /* SDLSendLocationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendLocationResponse.h; path = SmartDeviceLink/SDLSendLocationResponse.h; sourceTree = ""; }; + 6327F4CF9F830BB34651793AA66D1377 /* SDLSystemAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemAction.m; path = SmartDeviceLink/SDLSystemAction.m; sourceTree = ""; }; + 6390AF2F2F40CABD81E416ABBDB1DA38 /* SDLManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLManagerDelegate.h; path = SmartDeviceLink/SDLManagerDelegate.h; sourceTree = ""; }; + 63A7E80FD365C91A7303ABC5BE8B11F5 /* SDLPermissionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionStatus.h; path = SmartDeviceLink/SDLPermissionStatus.h; sourceTree = ""; }; + 63E7D4AB6E3E4F7AC84C60288E5D41D9 /* SDLSubscribeWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeWayPoints.h; path = SmartDeviceLink/SDLSubscribeWayPoints.h; sourceTree = ""; }; + 64190B404D04BE52AA1D0DEE2805F556 /* SDLGetInteriorVehicleDataConsentResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataConsentResponse.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m; sourceTree = ""; }; + 6423F48220C9A8B6095DDC2BC8E85DE5 /* SDLEncodedSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncodedSyncPData.h; path = SmartDeviceLink/SDLEncodedSyncPData.h; sourceTree = ""; }; + 64305656CE2B59145E9B70508EF743BC /* SDLResponseDispatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResponseDispatcher.m; path = SmartDeviceLink/SDLResponseDispatcher.m; sourceTree = ""; }; + 648FA1637D806CACB0CC9A6C444D1B77 /* SDLVideoStreamingState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingState.m; path = SmartDeviceLink/SDLVideoStreamingState.m; sourceTree = ""; }; + 64A402A669311BB17E6D1A2C93B61EF8 /* SDLAudioPassThruCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioPassThruCapabilities.m; path = SmartDeviceLink/SDLAudioPassThruCapabilities.m; sourceTree = ""; }; + 64ABE3A5D90ED6ECBAC18ABA973D85CA /* SDLOnPermissionsChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnPermissionsChange.m; path = SmartDeviceLink/SDLOnPermissionsChange.m; sourceTree = ""; }; + 64D9FFCA2DD46CA3C4112C71901478D2 /* SDLAmbientLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAmbientLightStatus.m; path = SmartDeviceLink/SDLAmbientLightStatus.m; sourceTree = ""; }; + 65419DF568C66F604EF0738C1965D385 /* SDLSendLocationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendLocationResponse.m; path = SmartDeviceLink/SDLSendLocationResponse.m; sourceTree = ""; }; + 6576A40CB2829D4CDEE4A81F7E0E7603 /* SDLWarningLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWarningLightStatus.h; path = SmartDeviceLink/SDLWarningLightStatus.h; sourceTree = ""; }; + 658B5E74262239EB89838E06BCDA0669 /* SDLGetSystemCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetSystemCapability.h; path = SmartDeviceLink/SDLGetSystemCapability.h; sourceTree = ""; }; + 65DF9500E597CFDE3EF8716944FF3E34 /* SDLRegisterAppInterfaceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRegisterAppInterfaceResponse.m; path = SmartDeviceLink/SDLRegisterAppInterfaceResponse.m; sourceTree = ""; }; + 65F149F667D01754A1E0645711F6D6EA /* SDLOnHashChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnHashChange.m; path = SmartDeviceLink/SDLOnHashChange.m; sourceTree = ""; }; + 66BB2A05D1451A32684E59CFF3328352 /* SDLResetGlobalPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResetGlobalPropertiesResponse.h; path = SmartDeviceLink/SDLResetGlobalPropertiesResponse.h; sourceTree = ""; }; + 66E64A3674325E99630AB41079D65E52 /* bson_object.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = bson_object.c; path = src/bson_object.c; sourceTree = ""; }; + 66F45795ED9AEACF2E1E1767FF421BFF /* SDLScreenParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScreenParams.m; path = SmartDeviceLink/SDLScreenParams.m; sourceTree = ""; }; + 67293A61FAECED20B679AB1C5047B8DB /* SmartDeviceLink-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SmartDeviceLink-Info.plist"; sourceTree = ""; }; + 6748E54A60D5360EEF0582C7FD7CCF5D /* TestSubscribeButtonObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TestSubscribeButtonObserver.m; path = SmartDeviceLink/TestSubscribeButtonObserver.m; sourceTree = ""; }; + 67855906284D207F83522CBD12130F96 /* SDLButtonName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonName.m; path = SmartDeviceLink/SDLButtonName.m; sourceTree = ""; }; + 67857A032BAADE3614D213222C35BF8C /* SDLSingleTireStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSingleTireStatus.h; path = SmartDeviceLink/SDLSingleTireStatus.h; sourceTree = ""; }; + 6795D9E1B70C789604C444042F88585F /* SDLProtocolDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolDelegate.h; path = SmartDeviceLink/SDLProtocolDelegate.h; sourceTree = ""; }; + 679D66BB05750D3932558F28A7CAD469 /* SDLSeatLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatLocation.m; path = SmartDeviceLink/SDLSeatLocation.m; sourceTree = ""; }; + 67F2B147BCDCFCAA281D2A08BC379214 /* SDLStreamingMediaManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaManager.m; path = SmartDeviceLink/SDLStreamingMediaManager.m; sourceTree = ""; }; 67F8B6234CDA01ABF6D0A2BB501FAF2D /* Pods-MobileWeather.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MobileWeather.debug.xcconfig"; sourceTree = ""; }; - 682C1E866A0552DF161B4CA6BE8C02BD /* SDLOnInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnInteriorVehicleData.h; path = SmartDeviceLink/SDLOnInteriorVehicleData.h; sourceTree = ""; }; - 6832CC0E9D2EAF6011514D2D39624749 /* SDLLogFileModuleMap.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFileModuleMap.m; path = SmartDeviceLink/SDLLogFileModuleMap.m; sourceTree = ""; }; - 684377DF2520C00D1850BD09A565E45D /* SDLDirection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDirection.h; path = SmartDeviceLink/SDLDirection.h; sourceTree = ""; }; - 691225BFF1BB8235FF07367825ECE854 /* SDLTouchManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchManager.h; path = SmartDeviceLink/SDLTouchManager.h; sourceTree = ""; }; - 695B8ED2FCC305054E59AA1279EB261B /* SDLMutableDataQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMutableDataQueue.m; path = SmartDeviceLink/SDLMutableDataQueue.m; sourceTree = ""; }; - 6965165C7082ACB5194C99CB6FA07E6B /* SDLUpdateTurnListResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateTurnListResponse.m; path = SmartDeviceLink/SDLUpdateTurnListResponse.m; sourceTree = ""; }; - 69C08735FF330FCAC39AB5054B9E06AA /* SDLWeatherData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherData.m; path = SmartDeviceLink/SDLWeatherData.m; sourceTree = ""; }; - 69EB1D090E106984195E7886C58C910C /* SDLDeleteFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFile.h; path = SmartDeviceLink/SDLDeleteFile.h; sourceTree = ""; }; - 6A41267BCF7ACCDD59CABE41F6C1B46C /* SDLStateMachine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStateMachine.h; path = SmartDeviceLink/SDLStateMachine.h; sourceTree = ""; }; - 6A682C7A761BD4627EABB545706018F3 /* SDLRPCRequestNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCRequestNotification.h; path = SmartDeviceLink/SDLRPCRequestNotification.h; sourceTree = ""; }; - 6A942A35064A0FA53F092510D10B5198 /* SDLServiceUpdateReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLServiceUpdateReason.h; path = SmartDeviceLink/SDLServiceUpdateReason.h; sourceTree = ""; }; - 6A9E9D261C1048E5D099A24A970F9FC3 /* SmartDeviceLink-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartDeviceLink-umbrella.h"; sourceTree = ""; }; - 6AB0EFA70338ECA876CAE278CBCEF17D /* SDLControlFramePayloadConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadConstants.m; path = SmartDeviceLink/SDLControlFramePayloadConstants.m; sourceTree = ""; }; - 6AB1DCB476513BFF046B549ACEA9FE45 /* SDLControlFramePayloadRPCStartService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRPCStartService.m; path = SmartDeviceLink/SDLControlFramePayloadRPCStartService.m; sourceTree = ""; }; - 6B09D19145E0FCA24838F5D274F3D523 /* SDLLayoutMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLayoutMode.h; path = SmartDeviceLink/SDLLayoutMode.h; sourceTree = ""; }; - 6B2B524E9D5A872B97EC4D57EA21E041 /* SDLKeyboardLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardLayout.m; path = SmartDeviceLink/SDLKeyboardLayout.m; sourceTree = ""; }; - 6B3EA6783E26BB49A731FCF69628F558 /* SDLLifecycleConfigurationUpdate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleConfigurationUpdate.m; path = SmartDeviceLink/SDLLifecycleConfigurationUpdate.m; sourceTree = ""; }; - 6B5BA0CEC12E67BC7F5BD539A70729DA /* SDLOnTBTClientState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnTBTClientState.m; path = SmartDeviceLink/SDLOnTBTClientState.m; sourceTree = ""; }; - 6BBEC9CD4C3851AF20E177DC499AFC7F /* SDLTextFieldName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextFieldName.m; path = SmartDeviceLink/SDLTextFieldName.m; sourceTree = ""; }; - 6BF96D4C2DA598534A4D8326D5961403 /* SDLLightControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightControlCapabilities.m; path = SmartDeviceLink/SDLLightControlCapabilities.m; sourceTree = ""; }; - 6C122D385DA1B67231C109629EFBCF67 /* SDLGetVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetVehicleData.h; path = SmartDeviceLink/SDLGetVehicleData.h; sourceTree = ""; }; - 6C22133A4EF2323F887466EC7EED58C3 /* SDLStreamingAudioLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingAudioLifecycleManager.m; path = SmartDeviceLink/SDLStreamingAudioLifecycleManager.m; sourceTree = ""; }; - 6C69A475BAE41EDD24A00FB701BC3EC6 /* SDLMediaServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaServiceManifest.h; path = SmartDeviceLink/SDLMediaServiceManifest.h; sourceTree = ""; }; - 6C6AE16D11DEDEAAF0E172B5CDACB105 /* SDLDeleteWindowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteWindowResponse.m; path = SmartDeviceLink/SDLDeleteWindowResponse.m; sourceTree = ""; }; - 6D150921AE68F0BB3EE9419F5B9B006D /* SDLVehicleDataNotificationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataNotificationStatus.h; path = SmartDeviceLink/SDLVehicleDataNotificationStatus.h; sourceTree = ""; }; - 6D1B8BCE12335818CDCDA92072B0EE7F /* SDLUnregisterAppInterface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnregisterAppInterface.h; path = SmartDeviceLink/SDLUnregisterAppInterface.h; sourceTree = ""; }; - 6D40C571D57B74A89D78D4877D935250 /* SDLSoftButtonState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonState.m; path = SmartDeviceLink/SDLSoftButtonState.m; sourceTree = ""; }; - 6D4C1FD6526097EEBD7A4AEE29623C7A /* SDLListFiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFiles.m; path = SmartDeviceLink/SDLListFiles.m; sourceTree = ""; }; - 6E1639EE1075414A5D5EA690D7F79B69 /* SDLClimateControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClimateControlData.h; path = SmartDeviceLink/SDLClimateControlData.h; sourceTree = ""; }; - 6E44B29B11FFF564D52CADA80FF7E157 /* SDLRemoteControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRemoteControlCapabilities.h; path = SmartDeviceLink/SDLRemoteControlCapabilities.h; sourceTree = ""; }; - 6E5DD878D3427D986DE5573FF06202CB /* SDLPermissionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionManager.m; path = SmartDeviceLink/SDLPermissionManager.m; sourceTree = ""; }; - 6EA2B752BEA8AAB3CDE06DD763FC4CAF /* SDLUnregisterAppInterface.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnregisterAppInterface.m; path = SmartDeviceLink/SDLUnregisterAppInterface.m; sourceTree = ""; }; - 6EAB0821E72518202FBFA198CD9E48F0 /* SDLOnHashChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnHashChange.m; path = SmartDeviceLink/SDLOnHashChange.m; sourceTree = ""; }; - 6EB24F185C13507CF836631F5BDF0A2C /* SDLTransportDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTransportDelegate.h; path = SmartDeviceLink/SDLTransportDelegate.h; sourceTree = ""; }; - 6F2DC8CFD2770D191663EE9B313E334F /* SDLLifecycleRPCAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleRPCAdapter.m; path = SmartDeviceLink/SDLLifecycleRPCAdapter.m; sourceTree = ""; }; - 6F34249B622DD4B497630858D68F221B /* SDLPerformAppServiceInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAppServiceInteractionResponse.m; path = SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m; sourceTree = ""; }; - 6F81576D0E235C0559B93C3A3784A4A6 /* SDLSystemRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemRequest.h; path = SmartDeviceLink/SDLSystemRequest.h; sourceTree = ""; }; - 6FEC1FB5460DDB76F458A2F7F27AA236 /* SDLLightState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightState.h; path = SmartDeviceLink/SDLLightState.h; sourceTree = ""; }; - 6FFAB5BB716F6C328E6A31CC62B4B11D /* SDLRadioState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioState.m; path = SmartDeviceLink/SDLRadioState.m; sourceTree = ""; }; - 7026D561A07AC0E8C0BE86D3E4C3DA7A /* SDLRadioControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioControlCapabilities.h; path = SmartDeviceLink/SDLRadioControlCapabilities.h; sourceTree = ""; }; - 70634D4480B4DFDAB8FA657ADAEF768B /* SDLPublishAppServiceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPublishAppServiceResponse.m; path = SmartDeviceLink/SDLPublishAppServiceResponse.m; sourceTree = ""; }; - 709665B2A1B0E940E288AE35CA99AEDD /* SDLTouchManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchManager.m; path = SmartDeviceLink/SDLTouchManager.m; sourceTree = ""; }; - 70D15488C806D4BEC8709786B9EE4931 /* SDLAppServiceType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceType.h; path = SmartDeviceLink/SDLAppServiceType.h; sourceTree = ""; }; - 70FCA6EA14F58857FDC822D78A615F03 /* SDLChoice.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoice.h; path = SmartDeviceLink/SDLChoice.h; sourceTree = ""; }; - 7107118F63D85B4E1D0C3139EC411FA9 /* SDLAlertManeuver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertManeuver.h; path = SmartDeviceLink/SDLAlertManeuver.h; sourceTree = ""; }; - 71626D352E691F8B7E7514EB0EAEAB01 /* NSMutableArray+Safe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+Safe.h"; path = "SmartDeviceLink/NSMutableArray+Safe.h"; sourceTree = ""; }; - 7225B3942F9C5E129FA86F41720C7403 /* SDLProtocolMessageDisassembler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessageDisassembler.h; path = SmartDeviceLink/SDLProtocolMessageDisassembler.h; sourceTree = ""; }; - 72279C07ABBAEA264B9075A1A89C7434 /* SDLTouchEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchEvent.m; path = SmartDeviceLink/SDLTouchEvent.m; sourceTree = ""; }; - 7271B5F541D7EA6BA5478DFBDD079C30 /* SDLIconArchiveFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIconArchiveFile.m; path = SmartDeviceLink/SDLIconArchiveFile.m; sourceTree = ""; }; - 72740556340F8C21368CF87A79C8F5DF /* SDLLogConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogConfiguration.h; path = SmartDeviceLink/SDLLogConfiguration.h; sourceTree = ""; }; - 72A24826CB06B3C74BFF1FAC64D33A17 /* NSMutableArray+Safe.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+Safe.m"; path = "SmartDeviceLink/NSMutableArray+Safe.m"; sourceTree = ""; }; - 72DEFC52DA69C0042103401227D6AE2E /* SDLOnKeyboardInput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnKeyboardInput.h; path = SmartDeviceLink/SDLOnKeyboardInput.h; sourceTree = ""; }; - 731A9565B4A85AFC0CCB16E396BCCA40 /* SDLPutFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPutFileResponse.h; path = SmartDeviceLink/SDLPutFileResponse.h; sourceTree = ""; }; - 73ACA9CF96F869FA20D4FA90D8076760 /* SDLAudioStreamingIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamingIndicator.m; path = SmartDeviceLink/SDLAudioStreamingIndicator.m; sourceTree = ""; }; - 743FE6CD7692742CFA7D4D7A6E714FC7 /* SDLPowerModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPowerModeStatus.h; path = SmartDeviceLink/SDLPowerModeStatus.h; sourceTree = ""; }; - 7442CCEB4D854A9A904B550B922A6AD7 /* SDLResetGlobalProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResetGlobalProperties.m; path = SmartDeviceLink/SDLResetGlobalProperties.m; sourceTree = ""; }; - 745677B913DC8E4E41FB2994B6781B3B /* SDLTouchType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchType.m; path = SmartDeviceLink/SDLTouchType.m; sourceTree = ""; }; - 745681F76A482E1B3B632F0DDCDF603F /* SDLShowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowResponse.m; path = SmartDeviceLink/SDLShowResponse.m; sourceTree = ""; }; - 74815297D14D7E57559C2C6AF0F29BBF /* SDLSeatControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatControlCapabilities.h; path = SmartDeviceLink/SDLSeatControlCapabilities.h; sourceTree = ""; }; - 74883F69A6EF23F8FE9794EE3CEE21EA /* SDLTCPTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTCPTransport.m; path = SmartDeviceLink/SDLTCPTransport.m; sourceTree = ""; }; - 74A65D2D8ED21D32C107935C517191E4 /* SDLHeadLampStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHeadLampStatus.h; path = SmartDeviceLink/SDLHeadLampStatus.h; sourceTree = ""; }; - 74AD80168C993652453FE3971FF647BC /* SDLPRNDL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPRNDL.h; path = SmartDeviceLink/SDLPRNDL.h; sourceTree = ""; }; - 74E30D8D3F070C400D8A5A719C652BE3 /* SDLSoftButtonManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonManager.h; path = SmartDeviceLink/SDLSoftButtonManager.h; sourceTree = ""; }; - 751014CBE69345246F2D0A816DC57EFA /* SDLFuelType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelType.h; path = SmartDeviceLink/SDLFuelType.h; sourceTree = ""; }; - 7510FD20D7400BF8B329E618E46A0A19 /* SDLPermissionConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionConstants.h; path = SmartDeviceLink/SDLPermissionConstants.h; sourceTree = ""; }; - 761B798C05833C28B0A217F40C5D9DC6 /* SDLMaintenanceModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMaintenanceModeStatus.h; path = SmartDeviceLink/SDLMaintenanceModeStatus.h; sourceTree = ""; }; + 6802538CA9682265946D00C4029FA1AF /* SDLSystemRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemRequest.h; path = SmartDeviceLink/SDLSystemRequest.h; sourceTree = ""; }; + 680E830A922E9C7A8D1E5A3C3D4F580C /* SDLOnInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnInteriorVehicleData.m; path = SmartDeviceLink/SDLOnInteriorVehicleData.m; sourceTree = ""; }; + 6832CFBF1515389AC3364F399A91817E /* SDLFunctionID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFunctionID.h; path = SmartDeviceLink/SDLFunctionID.h; sourceTree = ""; }; + 689B0C277D4D74417F0703BA219AF3EC /* SDLGetAppServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetAppServiceData.m; path = SmartDeviceLink/SDLGetAppServiceData.m; sourceTree = ""; }; + 68D12D24E08593D40782A089F52040A9 /* SDLAsynchronousRPCOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousRPCOperation.h; path = SmartDeviceLink/SDLAsynchronousRPCOperation.h; sourceTree = ""; }; + 694C894F8FA7F51AA620E23A7754B19E /* SDLPermissionItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionItem.m; path = SmartDeviceLink/SDLPermissionItem.m; sourceTree = ""; }; + 6974D1792F6599EC0D62B246B18D24E4 /* SDLRadioControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioControlData.m; path = SmartDeviceLink/SDLRadioControlData.m; sourceTree = ""; }; + 697EB906700E028BBEB4A35248DC2B56 /* SDLV1ProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV1ProtocolHeader.m; path = SmartDeviceLink/SDLV1ProtocolHeader.m; sourceTree = ""; }; + 6A6546CC22413DE90D216F99190F62B4 /* SDLHMISettingsControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMISettingsControlCapabilities.h; path = SmartDeviceLink/SDLHMISettingsControlCapabilities.h; sourceTree = ""; }; + 6A6FFDC23241F75DEE1A10FDC70F86EF /* SDLSliderResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSliderResponse.h; path = SmartDeviceLink/SDLSliderResponse.h; sourceTree = ""; }; + 6A800C1FAD99D70B8B29AAE775776B9F /* SDLModuleInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleInfo.m; path = SmartDeviceLink/SDLModuleInfo.m; sourceTree = ""; }; + 6A84F34CB374BEB91FE4C77E7F10F2FA /* SDLLifecycleConfigurationUpdate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleConfigurationUpdate.h; path = SmartDeviceLink/SDLLifecycleConfigurationUpdate.h; sourceTree = ""; }; + 6AA9EBE70B104558299E530D51210C27 /* SDLPowerModeQualificationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPowerModeQualificationStatus.h; path = SmartDeviceLink/SDLPowerModeQualificationStatus.h; sourceTree = ""; }; + 6AE9EC548FF21C32A33D465E73564DE4 /* SDLOnRCStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnRCStatus.h; path = SmartDeviceLink/SDLOnRCStatus.h; sourceTree = ""; }; + 6B2D91153D914C941AEEFE99436B0BBC /* SDLStreamingMediaManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManager.h; path = SmartDeviceLink/SDLStreamingMediaManager.h; sourceTree = ""; }; + 6B563B100B41A14984E794CEF82D270E /* SDLFileType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileType.m; path = SmartDeviceLink/SDLFileType.m; sourceTree = ""; }; + 6B8EFD1CF76083158407FC36B8E116EE /* SDLFunctionID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFunctionID.m; path = SmartDeviceLink/SDLFunctionID.m; sourceTree = ""; }; + 6B9BAA4D99166BCE4C535F65CE463058 /* SDLSamplingRate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSamplingRate.h; path = SmartDeviceLink/SDLSamplingRate.h; sourceTree = ""; }; + 6BB5CC306F5A580E2DE14FF2E2AA1009 /* SDLHeadLampStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHeadLampStatus.h; path = SmartDeviceLink/SDLHeadLampStatus.h; sourceTree = ""; }; + 6BB9CD0CFFBB9A34D5C1833A78E5C956 /* SDLOnTBTClientState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnTBTClientState.m; path = SmartDeviceLink/SDLOnTBTClientState.m; sourceTree = ""; }; + 6BDFD54AD0587D67A9F01BE35775FEFB /* SDLDefrostZone.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDefrostZone.m; path = SmartDeviceLink/SDLDefrostZone.m; sourceTree = ""; }; + 6BE4EE1D8BE9A2DCD428088444FCC1C8 /* SDLReleaseInteriorVehicleDataModuleResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReleaseInteriorVehicleDataModuleResponse.m; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m; sourceTree = ""; }; + 6BEAB10C4471AE448C7D5D75888C4D2D /* SDLFuelRange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelRange.h; path = SmartDeviceLink/SDLFuelRange.h; sourceTree = ""; }; + 6C058FD535A44116F3B9EC5AAC90DB06 /* SDLSubscribeWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeWayPoints.m; path = SmartDeviceLink/SDLSubscribeWayPoints.m; sourceTree = ""; }; + 6C720BC1768C931937E27B5512056F9D /* SDLSyncMsgVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncMsgVersion.h; path = SmartDeviceLink/SDLSyncMsgVersion.h; sourceTree = ""; }; + 6CB6D2B700919E44F651FE5643F0D5AF /* SDLGetFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetFileResponse.m; path = SmartDeviceLink/SDLGetFileResponse.m; sourceTree = ""; }; + 6CD719AC3C9050D19676E1840EB584D8 /* SDLWeatherData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherData.h; path = SmartDeviceLink/SDLWeatherData.h; sourceTree = ""; }; + 6DEDB66DF7B774B967B556AA20105522 /* NSMapTable+Subscripting.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMapTable+Subscripting.m"; path = "SmartDeviceLink/NSMapTable+Subscripting.m"; sourceTree = ""; }; + 6E238C3A14756784DF2389D96C274D46 /* SDLGetVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetVehicleData.m; path = SmartDeviceLink/SDLGetVehicleData.m; sourceTree = ""; }; + 6E27B8D2C7EF19BFB8D2813DE94C44F5 /* SDLScreenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScreenManager.m; path = SmartDeviceLink/SDLScreenManager.m; sourceTree = ""; }; + 6E7DCE417C4EE2395C2B60D1AFE92B0B /* SDLDisplayCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayCapability.m; path = SmartDeviceLink/SDLDisplayCapability.m; sourceTree = ""; }; + 6ECC06D0A68E4B2D1C7C59006097D069 /* SDLVoiceCommandManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandManager.m; path = SmartDeviceLink/SDLVoiceCommandManager.m; sourceTree = ""; }; + 6F36F6895EC63F83831A850E7A3837B9 /* SDLControlFramePayloadVideoStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadVideoStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m; sourceTree = ""; }; + 6F85105DF89C5A00C24011ADD2F11E33 /* SDLGetSystemCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetSystemCapability.m; path = SmartDeviceLink/SDLGetSystemCapability.m; sourceTree = ""; }; + 6FF174A3130345B9E197CC1FC67E0BBE /* SmartDeviceLink.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartDeviceLink.debug.xcconfig; sourceTree = ""; }; + 70BE2640088F6CC3C663C6A47A6FF4EA /* SDLLogManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogManager.h; path = SmartDeviceLink/SDLLogManager.h; sourceTree = ""; }; + 70BFC55E36D45F3E9FDDDA27271DB651 /* SDLPermissionElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionElement.m; path = SmartDeviceLink/SDLPermissionElement.m; sourceTree = ""; }; + 70ED7008A3D1DC757EE6B277ACD920AE /* SDLRAWH264Packetizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRAWH264Packetizer.m; path = SmartDeviceLink/SDLRAWH264Packetizer.m; sourceTree = ""; }; + 710DFC67FB36B6C8C38EE056D84223ED /* SDLKeypressMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeypressMode.h; path = SmartDeviceLink/SDLKeypressMode.h; sourceTree = ""; }; + 7133F6AC9671200858B818B6C007DECF /* SDLDirection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDirection.h; path = SmartDeviceLink/SDLDirection.h; sourceTree = ""; }; + 717B86B7C8D401095BF86C8890BEFADE /* SDLTriggerSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTriggerSource.h; path = SmartDeviceLink/SDLTriggerSource.h; sourceTree = ""; }; + 717DFB9BE8DC679E6C4758105253E4D5 /* SDLControlFramePayloadTransportEventUpdate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadTransportEventUpdate.m; path = SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m; sourceTree = ""; }; + 719DCAF92882EA100E2C8795B42C2678 /* SDLEnum.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEnum.h; path = SmartDeviceLink/SDLEnum.h; sourceTree = ""; }; + 71BBFBB7A0760A4443CBB21CA252E8CB /* SDLCloseApplicationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCloseApplicationResponse.m; path = SmartDeviceLink/SDLCloseApplicationResponse.m; sourceTree = ""; }; + 71CFF60AB38BB1284642C3A2EAE0D940 /* SDLOnSystemRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSystemRequest.h; path = SmartDeviceLink/SDLOnSystemRequest.h; sourceTree = ""; }; + 720B6176093F9F84BF6916A0DC55B8C1 /* SDLNavigationAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationAction.h; path = SmartDeviceLink/SDLNavigationAction.h; sourceTree = ""; }; + 72270B3D9ECE1B81AC9E613184E61E23 /* SDLDIDResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDIDResult.h; path = SmartDeviceLink/SDLDIDResult.h; sourceTree = ""; }; + 72456DACFF4B143FA90DC10239139E18 /* SDLCompassDirection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCompassDirection.m; path = SmartDeviceLink/SDLCompassDirection.m; sourceTree = ""; }; + 7252AE8CFD85B98CF08E197488052DC1 /* SDLUpdateTurnListResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateTurnListResponse.h; path = SmartDeviceLink/SDLUpdateTurnListResponse.h; sourceTree = ""; }; + 72D0738CE8E4BEA34432415457A21559 /* SDLDialNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDialNumber.h; path = SmartDeviceLink/SDLDialNumber.h; sourceTree = ""; }; + 734B4EBB383604167B153F2C9772FB06 /* SDLAsynchronousRPCRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousRPCRequestOperation.h; path = SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h; sourceTree = ""; }; + 7356AD33DD279C8B715E26EA25CACD63 /* SDLControlFramePayloadVideoStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadVideoStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h; sourceTree = ""; }; + 736D1EB1BA3C095F2150065772354EC2 /* SDLLockScreenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenManager.h; path = SmartDeviceLink/SDLLockScreenManager.h; sourceTree = ""; }; + 738A838988DDC4A7320C42B53C6763F9 /* SDLSISData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSISData.m; path = SmartDeviceLink/SDLSISData.m; sourceTree = ""; }; + 739CEE74F80EDD2726D485B052803409 /* SDLKeypressMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeypressMode.m; path = SmartDeviceLink/SDLKeypressMode.m; sourceTree = ""; }; + 73B13638D5FFEDDA542EB00CD057988B /* SDLPutFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPutFileResponse.m; path = SmartDeviceLink/SDLPutFileResponse.m; sourceTree = ""; }; + 73CA9166AE10B30401A01C7A47B3029E /* SDLRPCResponseNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCResponseNotification.h; path = SmartDeviceLink/SDLRPCResponseNotification.h; sourceTree = ""; }; + 74686EC68A889701EFD2843CB7AED2F1 /* SDLResetGlobalProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResetGlobalProperties.m; path = SmartDeviceLink/SDLResetGlobalProperties.m; sourceTree = ""; }; + 74933F6EA38779F0E6B6A5E647BFAF3A /* SDLSeatControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatControlData.m; path = SmartDeviceLink/SDLSeatControlData.m; sourceTree = ""; }; + 7497259EDCC6CAC9BEF6D2D1E503EF68 /* SDLStaticIconName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStaticIconName.m; path = SmartDeviceLink/SDLStaticIconName.m; sourceTree = ""; }; + 74B94C300012972D84ADFCB8F8E1CF22 /* SDLSystemContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemContext.h; path = SmartDeviceLink/SDLSystemContext.h; sourceTree = ""; }; + 74E065CD49B4A598CACA6C88D69006AC /* SDLAudioStreamManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamManagerDelegate.h; path = SmartDeviceLink/SDLAudioStreamManagerDelegate.h; sourceTree = ""; }; + 74E48158DDD5FF132D47C5C3AB49717F /* SDLAudioType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioType.m; path = SmartDeviceLink/SDLAudioType.m; sourceTree = ""; }; + 7513AD379CB357399CB9BF73BEF6E74C /* SDLProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessage.m; path = SmartDeviceLink/SDLProtocolMessage.m; sourceTree = ""; }; + 7529E322A5D70F236ACC18A43FC1DC0A /* SDLPresetBankCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresetBankCapabilities.m; path = SmartDeviceLink/SDLPresetBankCapabilities.m; sourceTree = ""; }; + 752C180C8E3193C1898AFD82D953B208 /* SDLAudioStreamingIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamingIndicator.h; path = SmartDeviceLink/SDLAudioStreamingIndicator.h; sourceTree = ""; }; + 75470F9E88B2A0F0EE2F691B6EE20841 /* SDLAudioControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioControlCapabilities.m; path = SmartDeviceLink/SDLAudioControlCapabilities.m; sourceTree = ""; }; + 755D72CFBEC566638C5F451190E126C8 /* SDLMediaClockFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaClockFormat.h; path = SmartDeviceLink/SDLMediaClockFormat.h; sourceTree = ""; }; + 755EC40C9CDFD1F64E17F5F7B58C3FFB /* SDLUnpublishAppServiceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnpublishAppServiceResponse.h; path = SmartDeviceLink/SDLUnpublishAppServiceResponse.h; sourceTree = ""; }; + 756CD9B80439215BBA2D29D4ED43E094 /* SDLAppServicesCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServicesCapabilities.m; path = SmartDeviceLink/SDLAppServicesCapabilities.m; sourceTree = ""; }; + 756E3677484D98F236D0DEFED0A75FCB /* SDLLockScreenPresenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenPresenter.m; path = SmartDeviceLink/SDLLockScreenPresenter.m; sourceTree = ""; }; + 75C363A47DCF966B0F26AC9DF8623EFE /* SDLUnregisterAppInterface.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnregisterAppInterface.m; path = SmartDeviceLink/SDLUnregisterAppInterface.m; sourceTree = ""; }; + 76060F5A6770E40F2895C5DEE9DBC9F7 /* SDLCharacterSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCharacterSet.h; path = SmartDeviceLink/SDLCharacterSet.h; sourceTree = ""; }; + 760CA141DE64208FD9CF023B7FBA7EF4 /* SDLVoiceCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommand.h; path = SmartDeviceLink/SDLVoiceCommand.h; sourceTree = ""; }; 761CC69C3F5D1EFD734F628AEA4699D0 /* Pods-MobileWeather-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MobileWeather-frameworks.sh"; sourceTree = ""; }; - 76424AB29A53E628F57743FDF2F79FEF /* SDLPublishAppService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPublishAppService.m; path = SmartDeviceLink/SDLPublishAppService.m; sourceTree = ""; }; - 76849B1E655537F0605C6BABA3DBCE8E /* SDLTextFieldName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextFieldName.h; path = SmartDeviceLink/SDLTextFieldName.h; sourceTree = ""; }; - 76914E4FB138C6C29615A345C805BB4E /* SDLAppHMIType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppHMIType.h; path = SmartDeviceLink/SDLAppHMIType.h; sourceTree = ""; }; - 769339F5B0569F2B7DC24EC805CA5828 /* SDLLockScreenViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenViewController.h; path = SmartDeviceLink/SDLLockScreenViewController.h; sourceTree = ""; }; - 76AA2E78DDBD9125228F85316E09095F /* SDLIgnitionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIgnitionStatus.h; path = SmartDeviceLink/SDLIgnitionStatus.h; sourceTree = ""; }; - 76D324B05E41128D942966F0A0EEBB12 /* SDLDiagnosticMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDiagnosticMessage.h; path = SmartDeviceLink/SDLDiagnosticMessage.h; sourceTree = ""; }; - 7725181B40E656D5EC95817265FFB76D /* SDLGetDTCs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetDTCs.m; path = SmartDeviceLink/SDLGetDTCs.m; sourceTree = ""; }; - 773018652B375661E7ABA7CC63A04D1D /* SDLSystemCapabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityManager.m; path = SmartDeviceLink/SDLSystemCapabilityManager.m; sourceTree = ""; }; - 7767E20AEA869F60F20EA97DB0E504E1 /* SDLDisplayCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayCapabilities.m; path = SmartDeviceLink/SDLDisplayCapabilities.m; sourceTree = ""; }; - 77B63B96875F1C820F190F3AC0A911ED /* SDLAsynchronousRPCRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousRPCRequestOperation.m; path = SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m; sourceTree = ""; }; - 77CC97F51D3268076905BB31E39F4CD1 /* SDLControlFramePayloadEndService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadEndService.m; path = SmartDeviceLink/SDLControlFramePayloadEndService.m; sourceTree = ""; }; - 77D15E8AD5A19B2ED89FB10E91070268 /* SDLShowAppMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowAppMenuResponse.m; path = SmartDeviceLink/SDLShowAppMenuResponse.m; sourceTree = ""; }; - 77E74A07526CBD02470FDA755AB5D6C7 /* SDLKeyboardEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardEvent.m; path = SmartDeviceLink/SDLKeyboardEvent.m; sourceTree = ""; }; - 78A7A95A29CAE2745B67B7C2F0F5FCD4 /* SDLPresentChoiceSetOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresentChoiceSetOperation.m; path = SmartDeviceLink/SDLPresentChoiceSetOperation.m; sourceTree = ""; }; - 78BCD3CBF28669B305138E89FAF33DE4 /* SDLUnsubscribeButtonResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeButtonResponse.h; path = SmartDeviceLink/SDLUnsubscribeButtonResponse.h; sourceTree = ""; }; - 78F5E319075CD2E0DA4A60935A86DC1F /* SDLLogConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogConstants.h; path = SmartDeviceLink/SDLLogConstants.h; sourceTree = ""; }; - 790A157900FC0357E1E10AE048065C70 /* SDLSeatLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatLocation.h; path = SmartDeviceLink/SDLSeatLocation.h; sourceTree = ""; }; - 7910570CD2F58D8D77EC77D4F5477546 /* SDLIgnitionStableStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIgnitionStableStatus.m; path = SmartDeviceLink/SDLIgnitionStableStatus.m; sourceTree = ""; }; - 79477F35CD70B0D22D924DD87A435888 /* SDLControlFramePayloadVideoStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadVideoStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m; sourceTree = ""; }; - 795BD010B79F761A42E76581AB8275FF /* SDLImageFieldName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageFieldName.m; path = SmartDeviceLink/SDLImageFieldName.m; sourceTree = ""; }; - 798FBD4B8BEE30A8944489D1A694BFDD /* SDLMediaClockFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaClockFormat.m; path = SmartDeviceLink/SDLMediaClockFormat.m; sourceTree = ""; }; - 79BE090F6A21A962EE21A4F1CEEF8475 /* SDLCancelInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCancelInteraction.h; path = SmartDeviceLink/SDLCancelInteraction.h; sourceTree = ""; }; - 79D0753524C87826EC27651FB26FD354 /* SDLIAPDataSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPDataSession.h; path = SmartDeviceLink/SDLIAPDataSession.h; sourceTree = ""; }; - 79E7E805FF542E9C1C6E18B46AFABA56 /* SDLImageResolution.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageResolution.h; path = SmartDeviceLink/SDLImageResolution.h; sourceTree = ""; }; - 7A2CC1AB9C604A7E227193554050F049 /* SDLSoftButtonReplaceOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonReplaceOperation.h; path = SmartDeviceLink/SDLSoftButtonReplaceOperation.h; sourceTree = ""; }; - 7AC9DBB4949F6A3B97B7BEB8AE95E1BE /* SDLChangeRegistrationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChangeRegistrationResponse.h; path = SmartDeviceLink/SDLChangeRegistrationResponse.h; sourceTree = ""; }; - 7ACC18BF8B3AA6A798755C8C4A61E644 /* SDLLocationCoordinate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLocationCoordinate.h; path = SmartDeviceLink/SDLLocationCoordinate.h; sourceTree = ""; }; - 7AEB6BF5F6EEEDDC3AD1882CBE90B52D /* SDLSeatMemoryActionType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatMemoryActionType.h; path = SmartDeviceLink/SDLSeatMemoryActionType.h; sourceTree = ""; }; - 7AF24E18157165E29DE67C839ABF0DF9 /* SDLGetSystemCapabilityResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetSystemCapabilityResponse.h; path = SmartDeviceLink/SDLGetSystemCapabilityResponse.h; sourceTree = ""; }; + 76B79D31FD4EBE8EA253F726A2DFA50B /* SDLSoftButtonManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonManager.m; path = SmartDeviceLink/SDLSoftButtonManager.m; sourceTree = ""; }; + 7785AC3BC85CD23B07AA11423440A028 /* SDLPresentKeyboardOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresentKeyboardOperation.m; path = SmartDeviceLink/SDLPresentKeyboardOperation.m; sourceTree = ""; }; + 7788E7C2DFC41AF4C6F9D275C716316E /* SDLLogTargetAppleSystemLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetAppleSystemLog.h; path = SmartDeviceLink/SDLLogTargetAppleSystemLog.h; sourceTree = ""; }; + 77B17840CA60F5A16BED44DFBD406D00 /* SDLOnSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSyncPData.m; path = SmartDeviceLink/SDLOnSyncPData.m; sourceTree = ""; }; + 7828CB789D2D3420C6618DE0D17264C3 /* SDLParameterPermissions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLParameterPermissions.m; path = SmartDeviceLink/SDLParameterPermissions.m; sourceTree = ""; }; + 789539F0D0B01F9B19A6F15A31E9B06F /* SDLGetSystemCapabilityResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetSystemCapabilityResponse.m; path = SmartDeviceLink/SDLGetSystemCapabilityResponse.m; sourceTree = ""; }; + 78CCB2B40906D5C1D9AC673498D3D31D /* SDLUpdateTurnList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateTurnList.m; path = SmartDeviceLink/SDLUpdateTurnList.m; sourceTree = ""; }; + 78DB22A547F3877AFC6B9C4837827A62 /* SDLArtwork.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLArtwork.m; path = SmartDeviceLink/SDLArtwork.m; sourceTree = ""; }; + 78FE8C97F350096089415B007A7C9167 /* SDLGetCloudAppPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetCloudAppPropertiesResponse.m; path = SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m; sourceTree = ""; }; + 793212B2CF70C31043EA09E6CBA12BD0 /* SDLMenuManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuManager.h; path = SmartDeviceLink/SDLMenuManager.h; sourceTree = ""; }; + 794968D771482D3B2B695A119EEFC610 /* SDLFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFile.h; path = SmartDeviceLink/SDLFile.h; sourceTree = ""; }; + 795E1BED3027BAEDD697E8A22A036324 /* SDLHexUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHexUtility.m; path = SmartDeviceLink/SDLHexUtility.m; sourceTree = ""; }; + 797A684E702982C756DB5875D2568A32 /* SDLRPCNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCNotification.h; path = SmartDeviceLink/SDLRPCNotification.h; sourceTree = ""; }; + 798BC3FB68D60AF937EFE55D6BBCE3FF /* SDLIAPDataSessionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPDataSessionDelegate.h; path = SmartDeviceLink/SDLIAPDataSessionDelegate.h; sourceTree = ""; }; + 79ABFF6CAF3C11C17386F29E3C4F6561 /* SDLPresetBankCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresetBankCapabilities.h; path = SmartDeviceLink/SDLPresetBankCapabilities.h; sourceTree = ""; }; + 79B7A63E7628613EAA9F22EB4C339E89 /* SDLOnButtonPress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnButtonPress.m; path = SmartDeviceLink/SDLOnButtonPress.m; sourceTree = ""; }; + 7A117B857E94BF65B1F05AF4CDAB3A39 /* SDLCreateInteractionChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateInteractionChoiceSet.h; path = SmartDeviceLink/SDLCreateInteractionChoiceSet.h; sourceTree = ""; }; + 7A8F68EFE966B4AE635B3514B21823DD /* SDLDialNumberResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDialNumberResponse.m; path = SmartDeviceLink/SDLDialNumberResponse.m; sourceTree = ""; }; + 7AFD67A512B7797A6F916B27F9816BC6 /* SDLButtonPressResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPressResponse.h; path = SmartDeviceLink/SDLButtonPressResponse.h; sourceTree = ""; }; 7B1F6B431A4C7D300274DCDBE2BC7043 /* BiSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BiSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B3EF2AF2354F5AF6D7A430764CE2C2B /* SDLV2ProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV2ProtocolHeader.m; path = SmartDeviceLink/SDLV2ProtocolHeader.m; sourceTree = ""; }; - 7B4F218D5BBC11B808F5FCB846D65C36 /* SDLModuleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleData.h; path = SmartDeviceLink/SDLModuleData.h; sourceTree = ""; }; - 7B50E027677BEB5915991E589C93AA10 /* SDLDeleteCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteCommand.h; path = SmartDeviceLink/SDLDeleteCommand.h; sourceTree = ""; }; - 7B628B43B6ADADBEB6501E049D64E37F /* SDLLightCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightCapabilities.m; path = SmartDeviceLink/SDLLightCapabilities.m; sourceTree = ""; }; - 7B78A428E3625D60C6EDC36E0B0E2FAA /* SDLRPCPayload.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCPayload.m; path = SmartDeviceLink/SDLRPCPayload.m; sourceTree = ""; }; - 7B8C8887A387D235F538311D49C4D060 /* SDLFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileManager.m; path = SmartDeviceLink/SDLFileManager.m; sourceTree = ""; }; - 7BF22D8F89AAD3C5356C6D640553D7C9 /* SDLNavigationInstruction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationInstruction.m; path = SmartDeviceLink/SDLNavigationInstruction.m; sourceTree = ""; }; - 7C4733935F901007F3F62700534869C2 /* SDLVehicleDataResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataResult.m; path = SmartDeviceLink/SDLVehicleDataResult.m; sourceTree = ""; }; - 7CE2B2F33B9741F264BE0D9D55A6BF32 /* SDLSystemCapabilityObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityObserver.h; path = SmartDeviceLink/SDLSystemCapabilityObserver.h; sourceTree = ""; }; - 7D162E149D1234C0EC8BD90C863EBC29 /* SDLLightState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightState.m; path = SmartDeviceLink/SDLLightState.m; sourceTree = ""; }; - 7D17B47BB0D9A877AB0D85B41A630687 /* SDLAppInterfaceUnregisteredReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppInterfaceUnregisteredReason.h; path = SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h; sourceTree = ""; }; - 7D4B95B4B14683496035C798353826CA /* SDLSystemCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapability.h; path = SmartDeviceLink/SDLSystemCapability.h; sourceTree = ""; }; - 7D5AFE5EC9DFCBD550B6CE009570187A /* SDLDialNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDialNumber.h; path = SmartDeviceLink/SDLDialNumber.h; sourceTree = ""; }; - 7D6BD3775E7938F10CC4DDE5EFEB12C2 /* SDLSamplingRate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSamplingRate.h; path = SmartDeviceLink/SDLSamplingRate.h; sourceTree = ""; }; - 7D870FC3F91ACC2B15AB223846D01700 /* SDLCheckChoiceVROptionalOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCheckChoiceVROptionalOperation.h; path = SmartDeviceLink/SDLCheckChoiceVROptionalOperation.h; sourceTree = ""; }; - 7E745564AE37D33E39D0D5F6C4614133 /* SDLVehicleDataStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataStatus.m; path = SmartDeviceLink/SDLVehicleDataStatus.m; sourceTree = ""; }; - 7E811202558CAA5E41CCE8C8544776CB /* SDLDisplayType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayType.h; path = SmartDeviceLink/SDLDisplayType.h; sourceTree = ""; }; - 7E8B2B973E85F3287EF6B9408633BD6D /* SDLDiagnosticMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDiagnosticMessage.m; path = SmartDeviceLink/SDLDiagnosticMessage.m; sourceTree = ""; }; - 7E948ADD47AA0D93F041A0773607D8D6 /* SDLSeatControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatControlCapabilities.m; path = SmartDeviceLink/SDLSeatControlCapabilities.m; sourceTree = ""; }; - 7E994AA0B434ED590CB3CEBE77F7F72F /* SDLScreenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScreenManager.h; path = SmartDeviceLink/SDLScreenManager.h; sourceTree = ""; }; - 7EE602770509983D76D37ABED9C3EB57 /* SDLSpeakResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeakResponse.h; path = SmartDeviceLink/SDLSpeakResponse.h; sourceTree = ""; }; - 7F28BC6B50D22A511ABF2860A5A43136 /* SDLRegisterAppInterface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRegisterAppInterface.h; path = SmartDeviceLink/SDLRegisterAppInterface.h; sourceTree = ""; }; - 7F2C5F89F8B578C3FB94E3AF3276CD61 /* BiSON.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BiSON.debug.xcconfig; sourceTree = ""; }; - 7F4125C10AB281EFB11D2A890DF0DE61 /* SDLMetadataTags.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMetadataTags.m; path = SmartDeviceLink/SDLMetadataTags.m; sourceTree = ""; }; - 7F44E48D23E1A8174BD093395CF63563 /* SDLMenuLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuLayout.h; path = SmartDeviceLink/SDLMenuLayout.h; sourceTree = ""; }; - 7F7B026A5E29DCF1060FD41C895EB056 /* SDLDeliveryMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeliveryMode.m; path = SmartDeviceLink/SDLDeliveryMode.m; sourceTree = ""; }; - 8012DBA7B04E0C0D6D13D3AB41B86CFA /* SDLAlertManeuver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertManeuver.m; path = SmartDeviceLink/SDLAlertManeuver.m; sourceTree = ""; }; - 808D3D1BD6F1044040D5B2D458E4B21C /* SDLVideoStreamingFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingFormat.h; path = SmartDeviceLink/SDLVideoStreamingFormat.h; sourceTree = ""; }; - 808FA370A600BD6F4DF9382F215445CF /* SDLAudioStreamingIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamingIndicator.h; path = SmartDeviceLink/SDLAudioStreamingIndicator.h; sourceTree = ""; }; - 809D3FC9668359BFD1AD77E50506EFA2 /* SDLDeleteWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteWindow.m; path = SmartDeviceLink/SDLDeleteWindow.m; sourceTree = ""; }; - 80B228053FDFC1AE6EC6A285F9C67826 /* SDLOnTBTClientState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnTBTClientState.h; path = SmartDeviceLink/SDLOnTBTClientState.h; sourceTree = ""; }; - 80BA52F7804336DB0F03FC8F1C10CD00 /* SDLRPCResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCResponse.m; path = SmartDeviceLink/SDLRPCResponse.m; sourceTree = ""; }; - 80D9C9B56D254F2A33C2AE1EA81D9AF6 /* SDLSeatMemoryAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatMemoryAction.m; path = SmartDeviceLink/SDLSeatMemoryAction.m; sourceTree = ""; }; - 810191FBC97CF880144ABEB67A432DD7 /* SDLAddCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddCommand.h; path = SmartDeviceLink/SDLAddCommand.h; sourceTree = ""; }; - 813217C2A949443C3D0F3B06A2A3F439 /* SDLPresentKeyboardOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresentKeyboardOperation.h; path = SmartDeviceLink/SDLPresentKeyboardOperation.h; sourceTree = ""; }; - 813A147E7FDCF70030F5AEC4B266E506 /* SDLComponentVolumeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLComponentVolumeStatus.m; path = SmartDeviceLink/SDLComponentVolumeStatus.m; sourceTree = ""; }; - 815DBEEF21C974D2236762AC3D4FADB1 /* SDLMediaType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaType.h; path = SmartDeviceLink/SDLMediaType.h; sourceTree = ""; }; - 81EC89561B1309E5EBCB47D731425C63 /* SmartDeviceLink-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SmartDeviceLink-Info.plist"; sourceTree = ""; }; - 821880E4A2BC5BEF5F42B7CCFF64AB9D /* SDLAppServicesCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServicesCapabilities.m; path = SmartDeviceLink/SDLAppServicesCapabilities.m; sourceTree = ""; }; - 824499C1074ACBA17C39242C022396D4 /* SDLAppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppInfo.h; path = SmartDeviceLink/SDLAppInfo.h; sourceTree = ""; }; - 82F4D26F5662FB5B045698D0F6EA082B /* SDLSendHapticData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendHapticData.m; path = SmartDeviceLink/SDLSendHapticData.m; sourceTree = ""; }; - 82FF30811604FAB65F49A60CF6868F75 /* bson_util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_util.h; path = src/bson_util.h; sourceTree = ""; }; - 831E596C3FA752444D1ABCA67DB7BB9F /* SDLScrollableMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScrollableMessage.h; path = SmartDeviceLink/SDLScrollableMessage.h; sourceTree = ""; }; - 83335AC43298E401A07294CE5F7FB4FA /* SDLAlertResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertResponse.h; path = SmartDeviceLink/SDLAlertResponse.h; sourceTree = ""; }; - 84184A09E2EEE69596297343EBF3F35F /* SDLSoftButtonCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonCapabilities.m; path = SmartDeviceLink/SDLSoftButtonCapabilities.m; sourceTree = ""; }; - 842712B0CDF8A50C05707074C6B3E1BE /* SDLTPMS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTPMS.m; path = SmartDeviceLink/SDLTPMS.m; sourceTree = ""; }; - 84439E65ABFB04398E7E8680FA2A7755 /* SDLVehicleDataType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataType.h; path = SmartDeviceLink/SDLVehicleDataType.h; sourceTree = ""; }; - 8491710A7CDE4F582940CE688AF7A91B /* SDLBeltStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBeltStatus.m; path = SmartDeviceLink/SDLBeltStatus.m; sourceTree = ""; }; - 84A87A780C05802FA7F395A3C3AFF5E4 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = ja.lproj/SDLLockScreen.strings; sourceTree = ""; }; - 84BCD84500C53F400D5B51AB716B9A7C /* SDLSubscribeWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeWayPointsResponse.m; path = SmartDeviceLink/SDLSubscribeWayPointsResponse.m; sourceTree = ""; }; - 84C4889DD2C1AC35B627A69F8C7C3D42 /* SDLEmergencyEventType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEmergencyEventType.h; path = SmartDeviceLink/SDLEmergencyEventType.h; sourceTree = ""; }; - 84C5C4D0E7C8575BB285D8DD30E89F56 /* SDLChangeRegistrationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChangeRegistrationResponse.m; path = SmartDeviceLink/SDLChangeRegistrationResponse.m; sourceTree = ""; }; - 851DB4FB9BD1E39F4B61D6DD51ABD057 /* SDLCreateWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateWindow.m; path = SmartDeviceLink/SDLCreateWindow.m; sourceTree = ""; }; - 856764E6D7C402933AA4B550B7ADCBCD /* SDLDeleteInteractionChoiceSetResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteInteractionChoiceSetResponse.m; path = SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m; sourceTree = ""; }; - 856D3BA7D8F100C4E870645839EC4088 /* SDLStationIDNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStationIDNumber.m; path = SmartDeviceLink/SDLStationIDNumber.m; sourceTree = ""; }; - 85B58642FDAB1B0A7547822E7591B829 /* SDLSubscribeButtonResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonResponse.m; path = SmartDeviceLink/SDLSubscribeButtonResponse.m; sourceTree = ""; }; - 8619125F9745A7BD3975F3CBD74C4613 /* SDLEnum.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEnum.h; path = SmartDeviceLink/SDLEnum.h; sourceTree = ""; }; - 86206B1B96CF24D8B99B4EE97C44B185 /* SDLOnSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSyncPData.m; path = SmartDeviceLink/SDLOnSyncPData.m; sourceTree = ""; }; - 863AFB2E5034F4791C4E19C43C1F917C /* SDLAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = SDLAssets.xcassets; path = SmartDeviceLink/Assets/SDLAssets.xcassets; sourceTree = ""; }; - 8659E6ED0DA1E9DEB1C42B4582F2C284 /* SDLSystemRequestResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemRequestResponse.h; path = SmartDeviceLink/SDLSystemRequestResponse.h; sourceTree = ""; }; - 865CF3B1A51E7AF3086DD6E840A8C8C7 /* SDLConnectionManagerType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLConnectionManagerType.h; path = SmartDeviceLink/SDLConnectionManagerType.h; sourceTree = ""; }; - 868ABD43DF81EE49690B9D5C41FB25D3 /* SDLGetDTCs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetDTCs.h; path = SmartDeviceLink/SDLGetDTCs.h; sourceTree = ""; }; - 86B7CD8697FB29C377FF70D301A9BE51 /* SDLGetAppServiceDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetAppServiceDataResponse.m; path = SmartDeviceLink/SDLGetAppServiceDataResponse.m; sourceTree = ""; }; - 86D33E8FBC03915470B26F43AFCE8644 /* SDLIAPControlSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPControlSession.m; path = SmartDeviceLink/SDLIAPControlSession.m; sourceTree = ""; }; - 8715DA57587883550705045298299293 /* SDLVrCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVrCapabilities.m; path = SmartDeviceLink/SDLVrCapabilities.m; sourceTree = ""; }; - 873FE0283FBF8E45FCF48C1242A364F2 /* SDLRPCNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCNotification.h; path = SmartDeviceLink/SDLRPCNotification.h; sourceTree = ""; }; - 878CFADA0C9FAF4387BFEBA236775E0D /* SDLAudioFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioFile.m; path = SmartDeviceLink/SDLAudioFile.m; sourceTree = ""; }; - 879D45F15B6B19AD8392A3B6A475AB91 /* SDLEncodedSyncPDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncodedSyncPDataResponse.h; path = SmartDeviceLink/SDLEncodedSyncPDataResponse.h; sourceTree = ""; }; - 87C67CACB98D0E3DBC70C30114AA819D /* SDLTemplateColorScheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemplateColorScheme.m; path = SmartDeviceLink/SDLTemplateColorScheme.m; sourceTree = ""; }; - 880F24F11420E145AFB4143AF75C49B8 /* SDLArtwork.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLArtwork.h; path = SmartDeviceLink/SDLArtwork.h; sourceTree = ""; }; - 881888E1F3926DBD7D2B8B9D4057B6B9 /* SDLTireStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTireStatus.m; path = SmartDeviceLink/SDLTireStatus.m; sourceTree = ""; }; - 881E4C25BD44C40E029B9496CF96582E /* SDLSetDisplayLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetDisplayLayout.h; path = SmartDeviceLink/SDLSetDisplayLayout.h; sourceTree = ""; }; - 8855466267A3B3D5676C6D27C57295EA /* SDLAirbagStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAirbagStatus.h; path = SmartDeviceLink/SDLAirbagStatus.h; sourceTree = ""; }; - 889A9936FDAA22D7E7DACA85443E9515 /* SDLSubscribeButtonManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonManager.m; path = SmartDeviceLink/SDLSubscribeButtonManager.m; sourceTree = ""; }; - 88A98EF18C6CD1EA711938578B4CB959 /* SDLOnHMIStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnHMIStatus.h; path = SmartDeviceLink/SDLOnHMIStatus.h; sourceTree = ""; }; - 88CF0A4361A069189BA99DE9D9F45FB5 /* SDLRegisterAppInterfaceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRegisterAppInterfaceResponse.h; path = SmartDeviceLink/SDLRegisterAppInterfaceResponse.h; sourceTree = ""; }; - 88FA7221DE85C8EE3F58E1425E6640BF /* SDLOnTouchEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnTouchEvent.h; path = SmartDeviceLink/SDLOnTouchEvent.h; sourceTree = ""; }; - 8945F938BC1F0E55439AAB1ADFF84C1C /* NSMutableDictionary+SafeRemove.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+SafeRemove.m"; path = "SmartDeviceLink/NSMutableDictionary+SafeRemove.m"; sourceTree = ""; }; - 895A7D207902140EBA17041F62E54A34 /* SDLReleaseInteriorVehicleDataModuleResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReleaseInteriorVehicleDataModuleResponse.m; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m; sourceTree = ""; }; - 89A76245B2627554C8BCFD4EC00D0102 /* SDLCloudAppProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCloudAppProperties.m; path = SmartDeviceLink/SDLCloudAppProperties.m; sourceTree = ""; }; - 89C99B8EF7D6E80920E770B6E500F5A7 /* SDLLightControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightControlCapabilities.h; path = SmartDeviceLink/SDLLightControlCapabilities.h; sourceTree = ""; }; - 89DF44BE873C0C35B93160AF2AFA563E /* SDLWiperStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWiperStatus.m; path = SmartDeviceLink/SDLWiperStatus.m; sourceTree = ""; }; - 8A18641DB12A7690CFBB24321A955BBC /* SDLPrerecordedSpeech.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrerecordedSpeech.m; path = SmartDeviceLink/SDLPrerecordedSpeech.m; sourceTree = ""; }; - 8A43468737969CFBC34B9E215CE0D886 /* SDLDisplayCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayCapability.h; path = SmartDeviceLink/SDLDisplayCapability.h; sourceTree = ""; }; - 8A578665B9047694A0F347F293DE12B4 /* SDLDIDResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDIDResult.m; path = SmartDeviceLink/SDLDIDResult.m; sourceTree = ""; }; - 8A5AD3441FF3C7D1A42E2F592EC01E42 /* TestSubscribeButtonObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TestSubscribeButtonObserver.m; path = SmartDeviceLink/TestSubscribeButtonObserver.m; sourceTree = ""; }; - 8AB6823D25685820410ED63918C02E0A /* EAAccessory+SDLProtocols.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EAAccessory+SDLProtocols.h"; path = "SmartDeviceLink/EAAccessory+SDLProtocols.h"; sourceTree = ""; }; - 8AF84943922331DACE393EFF73879043 /* SmartDeviceLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SmartDeviceLink.h; path = SmartDeviceLink/SmartDeviceLink.h; sourceTree = ""; }; - 8B140D8D2A0B9E079DA6C09D0FDD57F2 /* SDLMsgVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMsgVersion.m; path = SmartDeviceLink/SDLMsgVersion.m; sourceTree = ""; }; - 8B261757A2927398D6F981A1FCC62A65 /* SDLRDSData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRDSData.h; path = SmartDeviceLink/SDLRDSData.h; sourceTree = ""; }; - 8B39BA281073C47D8203292D7923D0E8 /* SDLShowConstantTBT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowConstantTBT.h; path = SmartDeviceLink/SDLShowConstantTBT.h; sourceTree = ""; }; - 8B5BC1A9155BA8ED843E0972909B9572 /* SDLRPCResponseNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCResponseNotification.h; path = SmartDeviceLink/SDLRPCResponseNotification.h; sourceTree = ""; }; - 8B735CFF284972E87F85DEDF52E7B4B0 /* SDLMetadataType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMetadataType.m; path = SmartDeviceLink/SDLMetadataType.m; sourceTree = ""; }; - 8B8673925B5FFBCA631C8D9562197C41 /* SDLPermissionElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionElement.h; path = SmartDeviceLink/SDLPermissionElement.h; sourceTree = ""; }; - 8B8E77F2592BA2AADA9952C6A050C4E2 /* SDLPCMAudioConverter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPCMAudioConverter.h; path = SmartDeviceLink/SDLPCMAudioConverter.h; sourceTree = ""; }; - 8C3E14078B0F9E5376F9494B8D3CA4C7 /* SDLRegisterAppInterfaceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRegisterAppInterfaceResponse.m; path = SmartDeviceLink/SDLRegisterAppInterfaceResponse.m; sourceTree = ""; }; - 8C3E1DA75336E5B7703B366F52EB61E9 /* SDLRemoteControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRemoteControlCapabilities.m; path = SmartDeviceLink/SDLRemoteControlCapabilities.m; sourceTree = ""; }; - 8C8B7EAEF425B5B3F0375A9301A599C4 /* SDLConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLConfiguration.m; path = SmartDeviceLink/SDLConfiguration.m; sourceTree = ""; }; - 8D1D89E21C967BEB9B2C7C143BF7A6A4 /* SDLGenericResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGenericResponse.m; path = SmartDeviceLink/SDLGenericResponse.m; sourceTree = ""; }; - 8DC2041DC5B9A5327C3B94AB4B3B41E6 /* SDLTemplateConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemplateConfiguration.h; path = SmartDeviceLink/SDLTemplateConfiguration.h; sourceTree = ""; }; - 8DCEF38864BBC13A94861FE01FD6837C /* SDLWeatherServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherServiceManifest.m; path = SmartDeviceLink/SDLWeatherServiceManifest.m; sourceTree = ""; }; - 8DE402844A0376A05C991CFC47EF599E /* SDLSupportedSeat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSupportedSeat.h; path = SmartDeviceLink/SDLSupportedSeat.h; sourceTree = ""; }; - 8E1C9328B451F98B0315DBA9202D5241 /* SDLCacheFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCacheFileManager.m; path = SmartDeviceLink/SDLCacheFileManager.m; sourceTree = ""; }; - 8E2C9383A7DCAF213C875854C59E3043 /* SDLBodyInformation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBodyInformation.m; path = SmartDeviceLink/SDLBodyInformation.m; sourceTree = ""; }; - 8E55EFB9D3BAD62918F64D3B710B38F8 /* BiSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BiSON-prefix.pch"; sourceTree = ""; }; - 8EF8FC180D4BBA0EC08C5AEB71F88B60 /* SDLChangeRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChangeRegistration.m; path = SmartDeviceLink/SDLChangeRegistration.m; sourceTree = ""; }; - 8FA1E34ACCBDEF2099EC4469F2405BBB /* SDLConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLConfiguration.h; path = SmartDeviceLink/SDLConfiguration.h; sourceTree = ""; }; - 90137F76EDA22309EDDAEF4418590198 /* SDLMetadataType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMetadataType.h; path = SmartDeviceLink/SDLMetadataType.h; sourceTree = ""; }; - 9041DBA4C0CB716742630EA1FC2D72B7 /* SDLKeypressMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeypressMode.h; path = SmartDeviceLink/SDLKeypressMode.h; sourceTree = ""; }; - 909B5FA1FF8FFF76425CED5E51AF212F /* SDLIAPSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPSession.m; path = SmartDeviceLink/SDLIAPSession.m; sourceTree = ""; }; - 90DBBF1589F80689A14CB59C1644BEE7 /* SDLFunctionID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFunctionID.h; path = SmartDeviceLink/SDLFunctionID.h; sourceTree = ""; }; - 91BF1416AB652B4C37A9DEB376B5AEE0 /* SDLDisplayMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayMode.m; path = SmartDeviceLink/SDLDisplayMode.m; sourceTree = ""; }; - 9232A35C7990DF5C5A02370607D23D1B /* SDLElectronicParkBrakeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLElectronicParkBrakeStatus.m; path = SmartDeviceLink/SDLElectronicParkBrakeStatus.m; sourceTree = ""; }; - 9238647073F63757659A703F1665A4D8 /* SDLVehicleDataActiveStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataActiveStatus.h; path = SmartDeviceLink/SDLVehicleDataActiveStatus.h; sourceTree = ""; }; - 9249C3F27F0E10C1E2F52FF5AB75D618 /* SDLStreamingVideoLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingVideoLifecycleManager.h; path = SmartDeviceLink/SDLStreamingVideoLifecycleManager.h; sourceTree = ""; }; - 927F104C5BC3088472101359E0E7B4FE /* SDLUploadFileOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUploadFileOperation.m; path = SmartDeviceLink/SDLUploadFileOperation.m; sourceTree = ""; }; - 92ACAA8B4D0D63E63F39B9F53DEFD855 /* SDLCarWindowViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarWindowViewController.h; path = SmartDeviceLink/SDLCarWindowViewController.h; sourceTree = ""; }; - 92CF01B1E30A78C156C0BFFA57CEAD88 /* SDLHMIPermissions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMIPermissions.m; path = SmartDeviceLink/SDLHMIPermissions.m; sourceTree = ""; }; - 92FB143CC43A57BDCD09A5180EFC7A56 /* SDLStationIDNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStationIDNumber.h; path = SmartDeviceLink/SDLStationIDNumber.h; sourceTree = ""; }; - 9303C2006A43927A3DDDA863577D7E24 /* SDLV2ProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV2ProtocolHeader.h; path = SmartDeviceLink/SDLV2ProtocolHeader.h; sourceTree = ""; }; - 9304883AC1BF7D236BA9C5D9EF93A4AD /* SDLRectangle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRectangle.m; path = SmartDeviceLink/SDLRectangle.m; sourceTree = ""; }; - 9356A9B7DF203B1E599FF67CDB2AB2F4 /* SDLMaintenanceModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMaintenanceModeStatus.m; path = SmartDeviceLink/SDLMaintenanceModeStatus.m; sourceTree = ""; }; - 93667B5FF68BE37BC728FB920DD912EA /* SDLVehicleDataResultCode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataResultCode.m; path = SmartDeviceLink/SDLVehicleDataResultCode.m; sourceTree = ""; }; - 9377AFD1675D463C7129EA86B5DB2AFC /* SDLProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessage.m; path = SmartDeviceLink/SDLProtocolMessage.m; sourceTree = ""; }; - 93B36FDBAD2C44E813F8584D034A63CF /* SDLGetDTCsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetDTCsResponse.m; path = SmartDeviceLink/SDLGetDTCsResponse.m; sourceTree = ""; }; - 93CA15BB34449EB60AC4245F6669B10C /* SDLButtonCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonCapabilities.h; path = SmartDeviceLink/SDLButtonCapabilities.h; sourceTree = ""; }; - 944E4D0EB351D4FF821AC8C6E8A6599F /* SDLCreateWindowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateWindowResponse.h; path = SmartDeviceLink/SDLCreateWindowResponse.h; sourceTree = ""; }; - 9468B7F69A0644FCBBCDBB810795C4B3 /* SDLRPCNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCNotification.m; path = SmartDeviceLink/SDLRPCNotification.m; sourceTree = ""; }; - 94AB62DC444A4E92E8E71099CDED36CE /* SDLCarWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarWindow.m; path = SmartDeviceLink/SDLCarWindow.m; sourceTree = ""; }; - 9502CA77DD202D38FE595ACBF6558DDD /* SDLRPCFunctionNames.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCFunctionNames.h; path = SmartDeviceLink/SDLRPCFunctionNames.h; sourceTree = ""; }; - 950F3C54DD8E214F44E5D973A18C2FC3 /* SDLGetWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetWayPoints.h; path = SmartDeviceLink/SDLGetWayPoints.h; sourceTree = ""; }; - 950FAD2DDF31FA20CDC674CA6C66F3C6 /* SDLShowAppMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowAppMenuResponse.h; path = SmartDeviceLink/SDLShowAppMenuResponse.h; sourceTree = ""; }; - 95168703431BF300E73567EE607D8A0C /* SDLSeatLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatLocation.m; path = SmartDeviceLink/SDLSeatLocation.m; sourceTree = ""; }; - 956785ADB6C5C07C0C429DA47DA59E4E /* bson_object.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = bson_object.c; path = src/bson_object.c; sourceTree = ""; }; - 9570AA3F2F4CC1AE3DEC19E631620F29 /* SDLAudioFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioFile.h; path = SmartDeviceLink/SDLAudioFile.h; sourceTree = ""; }; - 95B6A24926E184BDA559B418D4A20232 /* SDLStreamingMediaManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManager.h; path = SmartDeviceLink/SDLStreamingMediaManager.h; sourceTree = ""; }; - 95F535D382BB81682B987861B7CB0DDC /* SDLStreamingVideoScaleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingVideoScaleManager.h; path = SmartDeviceLink/SDLStreamingVideoScaleManager.h; sourceTree = ""; }; - 95FA5938BB91EC86606D7D35B36D1799 /* SDLLogFileModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFileModule.h; path = SmartDeviceLink/SDLLogFileModule.h; sourceTree = ""; }; - 95FF4C52E66589C119C22DF3909390AC /* SDLPerformInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformInteraction.h; path = SmartDeviceLink/SDLPerformInteraction.h; sourceTree = ""; }; - 96983BEA7459A4232662DD0F57B29510 /* SDLReadDIDResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReadDIDResponse.m; path = SmartDeviceLink/SDLReadDIDResponse.m; sourceTree = ""; }; - 96D7A594E902D4A574B41FF1CEFB2D60 /* SDLCompassDirection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCompassDirection.m; path = SmartDeviceLink/SDLCompassDirection.m; sourceTree = ""; }; - 96FDD76CCE5AB56B5E2F2065E5AA5F04 /* SDLResponseDispatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResponseDispatcher.h; path = SmartDeviceLink/SDLResponseDispatcher.h; sourceTree = ""; }; - 9701CAEA001B151A3237DDBC5CCC06B0 /* SDLOnWayPointChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnWayPointChange.h; path = SmartDeviceLink/SDLOnWayPointChange.h; sourceTree = ""; }; - 970F63E20BB6D882EF074800A3CE6176 /* SDLButtonCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonCapabilities.m; path = SmartDeviceLink/SDLButtonCapabilities.m; sourceTree = ""; }; - 984B721B08C198B887A18CD320C0C30B /* SDLGlobals.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGlobals.h; path = SmartDeviceLink/SDLGlobals.h; sourceTree = ""; }; - 98E14E95533F49ABC0D74A2121D62620 /* SDLRadioBand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioBand.m; path = SmartDeviceLink/SDLRadioBand.m; sourceTree = ""; }; - 98FDC0A54C018DFA5E057249D1EDF737 /* SDLMyKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMyKey.m; path = SmartDeviceLink/SDLMyKey.m; sourceTree = ""; }; - 99258EE24FD66E3BA4328B7EB26FED96 /* SDLChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceSet.m; path = SmartDeviceLink/SDLChoiceSet.m; sourceTree = ""; }; - 99287642C46A058853261EE0F8FB5803 /* SDLDeleteCommandResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteCommandResponse.h; path = SmartDeviceLink/SDLDeleteCommandResponse.h; sourceTree = ""; }; - 994CECE8A7C71DE7FD91078E6AC4AF7F /* SDLBodyInformation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBodyInformation.h; path = SmartDeviceLink/SDLBodyInformation.h; sourceTree = ""; }; - 9998667EF3AD9356F74EFEBA18B71B18 /* SDLLogConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogConfiguration.m; path = SmartDeviceLink/SDLLogConfiguration.m; sourceTree = ""; }; - 9AF964C803E435C54BC6C0D5656BC75A /* SDLWindowTypeCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWindowTypeCapabilities.m; path = SmartDeviceLink/SDLWindowTypeCapabilities.m; sourceTree = ""; }; - 9B104772AA6E58A9F090818DD41BA3D7 /* SDLGetFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetFile.h; path = SmartDeviceLink/SDLGetFile.h; sourceTree = ""; }; - 9B617AF0E9B7984864BBC87BCDA8FD50 /* SDLSamplingRate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSamplingRate.m; path = SmartDeviceLink/SDLSamplingRate.m; sourceTree = ""; }; + 7B7301DAF575A72B748A49FDB3EB87C7 /* SDLMassageMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageMode.m; path = SmartDeviceLink/SDLMassageMode.m; sourceTree = ""; }; + 7B8342EC5F8546285C0DB1E40C10C12E /* SDLVrCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVrCapabilities.h; path = SmartDeviceLink/SDLVrCapabilities.h; sourceTree = ""; }; + 7BB6D4E91D8A0F98864787DB620D6AE0 /* SDLFileManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManagerConstants.h; path = SmartDeviceLink/SDLFileManagerConstants.h; sourceTree = ""; }; + 7C314283909AA88717A78A8BAF8E331D /* SDLDynamicMenuUpdateAlgorithm.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDynamicMenuUpdateAlgorithm.m; path = SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.m; sourceTree = ""; }; + 7C79ED7FCDBADAE3DAF6AD095392D371 /* ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist"; sourceTree = ""; }; + 7C839817F778FF0EB9B342A6F817167C /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = de.lproj/SDLLockScreen.strings; sourceTree = ""; }; + 7C90C1D028D438622CABA6C39AD5A9BA /* SDLDeleteInteractionChoiceSetResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteInteractionChoiceSetResponse.h; path = SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h; sourceTree = ""; }; + 7CDFA658ED93C052C47B55E697EA5794 /* SDLRPCNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCNotification.m; path = SmartDeviceLink/SDLRPCNotification.m; sourceTree = ""; }; + 7CEAFEC8445F27E380E37DA46CE0FEE6 /* SDLSubscribeButtonResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonResponse.h; path = SmartDeviceLink/SDLSubscribeButtonResponse.h; sourceTree = ""; }; + 7D357CCADC7705B89FD66DEEE0E6DE86 /* SDLGetCloudAppPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetCloudAppPropertiesResponse.h; path = SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h; sourceTree = ""; }; + 7D3DC9F22E4F546F8A133454410C7091 /* SDLTemperatureUnit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemperatureUnit.m; path = SmartDeviceLink/SDLTemperatureUnit.m; sourceTree = ""; }; + 7D4D2EA95117DB980E905FBBAFCE239E /* SDLOnTBTClientState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnTBTClientState.h; path = SmartDeviceLink/SDLOnTBTClientState.h; sourceTree = ""; }; + 7D8C0BA72794AC638DB9DF5A48C945D0 /* SDLWeatherServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherServiceData.h; path = SmartDeviceLink/SDLWeatherServiceData.h; sourceTree = ""; }; + 7DE90E5D2B3882F8873FABF50DA4CCA6 /* SDLMassageMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageMode.h; path = SmartDeviceLink/SDLMassageMode.h; sourceTree = ""; }; + 7E271C1F0006C8746C76DB4C28A25B6C /* SDLOnLockScreenStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnLockScreenStatus.h; path = SmartDeviceLink/SDLOnLockScreenStatus.h; sourceTree = ""; }; + 7E29BFBE9F6D962531E8241C660B4AB4 /* SDLAsynchronousRPCRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousRPCRequestOperation.m; path = SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m; sourceTree = ""; }; + 7E7FB3AF5EB94225C574B017EDB897BA /* SDLPermissionItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionItem.h; path = SmartDeviceLink/SDLPermissionItem.h; sourceTree = ""; }; + 7E8EAF599769D42519D9B2A60644B86B /* SDLServiceEncryptionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLServiceEncryptionDelegate.h; path = SmartDeviceLink/SDLServiceEncryptionDelegate.h; sourceTree = ""; }; + 7EBE26A5E99C203ABB63EB5567F7464E /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRegisterSecondaryTransportNak.m; path = SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m; sourceTree = ""; }; + 7EC3AF92A0155AA2A2E679263C15CA4B /* SDLOnButtonPress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnButtonPress.h; path = SmartDeviceLink/SDLOnButtonPress.h; sourceTree = ""; }; + 7EF11EC23640091B05621565D114E9F4 /* SDLTouchEventCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchEventCapabilities.m; path = SmartDeviceLink/SDLTouchEventCapabilities.m; sourceTree = ""; }; + 7EFFAA583749B44A2BF65582EA151370 /* SDLStreamingMediaConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaConfiguration.h; path = SmartDeviceLink/SDLStreamingMediaConfiguration.h; sourceTree = ""; }; + 7F676E8F3D670FF0D4C133C69B09A3DC /* SDLHybridAppPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHybridAppPreference.m; path = SmartDeviceLink/SDLHybridAppPreference.m; sourceTree = ""; }; + 7F67F561A7D9BA5C6B5EFD140526D3F7 /* SDLSpeak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeak.h; path = SmartDeviceLink/SDLSpeak.h; sourceTree = ""; }; + 7FB0ECE1385A23AFF87B1D6E9848D84E /* SDLStationIDNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStationIDNumber.h; path = SmartDeviceLink/SDLStationIDNumber.h; sourceTree = ""; }; + 8027DAC33017EFA7299687C48733622B /* SDLNavigationInstruction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationInstruction.h; path = SmartDeviceLink/SDLNavigationInstruction.h; sourceTree = ""; }; + 802EC4A98FA4600B644BF8C09D41BA44 /* SDLTemplateColorScheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemplateColorScheme.m; path = SmartDeviceLink/SDLTemplateColorScheme.m; sourceTree = ""; }; + 803C2E9668B7B07DB2FF5F2B5A39CDC7 /* SDLWeatherServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherServiceData.m; path = SmartDeviceLink/SDLWeatherServiceData.m; sourceTree = ""; }; + 8078F5D8FD2E5AA8F5B8AD58492E41F8 /* SDLV1ProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV1ProtocolMessage.m; path = SmartDeviceLink/SDLV1ProtocolMessage.m; sourceTree = ""; }; + 80E39D52CFCFBFC32F5CB5C74DE3AAA0 /* SDLReleaseInteriorVehicleDataModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReleaseInteriorVehicleDataModule.h; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h; sourceTree = ""; }; + 810E44A8EB4510C42EDE2EDC43A78459 /* SDLVentilationMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVentilationMode.m; path = SmartDeviceLink/SDLVentilationMode.m; sourceTree = ""; }; + 812DC2376AB84B8D759BA7BDEBA1D186 /* SDLOnHashChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnHashChange.h; path = SmartDeviceLink/SDLOnHashChange.h; sourceTree = ""; }; + 813A808D60B18F9235194773796098F2 /* SDLTransportDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTransportDelegate.h; path = SmartDeviceLink/SDLTransportDelegate.h; sourceTree = ""; }; + 81DC4C775620B12380A4F90F2DAEB081 /* SDLSecondaryTransportManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSecondaryTransportManager.h; path = SmartDeviceLink/SDLSecondaryTransportManager.h; sourceTree = ""; }; + 8223FE4A0640C2107CC1B1C83483D0F4 /* SDLChoiceCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceCell.h; path = SmartDeviceLink/SDLChoiceCell.h; sourceTree = ""; }; + 82421BB2792D77283F0C50BBB7B95D13 /* SDLMenuParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuParams.h; path = SmartDeviceLink/SDLMenuParams.h; sourceTree = ""; }; + 824E5F03CBD68420A86B160BD96E6742 /* SDLLogConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogConfiguration.h; path = SmartDeviceLink/SDLLogConfiguration.h; sourceTree = ""; }; + 84539D3623D9A251B4E5FA6AE4EFB0EE /* SDLOnLockScreenStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnLockScreenStatus.m; path = SmartDeviceLink/SDLOnLockScreenStatus.m; sourceTree = ""; }; + 84E5BF87FD6C342013333DB77ACA1E7C /* SDLSoftButtonTransitionOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonTransitionOperation.m; path = SmartDeviceLink/SDLSoftButtonTransitionOperation.m; sourceTree = ""; }; + 8558881F294FC3B3B55C638CC2708B36 /* SDLTouchManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchManager.h; path = SmartDeviceLink/SDLTouchManager.h; sourceTree = ""; }; + 85AE177498B404861704BE8D54AA5040 /* SDLHapticRect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHapticRect.h; path = SmartDeviceLink/SDLHapticRect.h; sourceTree = ""; }; + 85C831243400E8D6A9F22B565CD3EE18 /* SDLFileType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileType.h; path = SmartDeviceLink/SDLFileType.h; sourceTree = ""; }; + 85FF8FC6AE8E88BF0CA87D995EEEE5E7 /* SDLUpdateTurnList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateTurnList.h; path = SmartDeviceLink/SDLUpdateTurnList.h; sourceTree = ""; }; + 86257F6370BE9E41B823982B8B658DCD /* SDLLanguage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLanguage.h; path = SmartDeviceLink/SDLLanguage.h; sourceTree = ""; }; + 86689BFD78F7052E93F28B5BBE6A09E6 /* SDLShowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowResponse.h; path = SmartDeviceLink/SDLShowResponse.h; sourceTree = ""; }; + 867279F7956ED364FE2FF921B6C6E196 /* SDLCreateWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateWindow.h; path = SmartDeviceLink/SDLCreateWindow.h; sourceTree = ""; }; + 868E6709A9E8A540B5221E40E674E358 /* SmartDeviceLink-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartDeviceLink-prefix.pch"; sourceTree = ""; }; + 86B8AD55F292718C4A52B693B3EA5F2D /* SDLImageResolution.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageResolution.h; path = SmartDeviceLink/SDLImageResolution.h; sourceTree = ""; }; + 87267A348F7A4B4D11EE9347E8677479 /* SmartDeviceLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SmartDeviceLink.h; path = SmartDeviceLink/SmartDeviceLink.h; sourceTree = ""; }; + 873AD46682BA883CE3701B9759A685AF /* SDLGetDTCsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetDTCsResponse.h; path = SmartDeviceLink/SDLGetDTCsResponse.h; sourceTree = ""; }; + 879A113E59D1AE7DFEBF6165CDA5A8D2 /* NSMutableDictionary+Store.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+Store.h"; path = "SmartDeviceLink/NSMutableDictionary+Store.h"; sourceTree = ""; }; + 87B650D370D62BF0EC67E9AD42F6E22B /* SDLMediaType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaType.m; path = SmartDeviceLink/SDLMediaType.m; sourceTree = ""; }; + 87E0AF0EFF86DC936E595031B5F1260E /* SDLNavigationCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationCapability.m; path = SmartDeviceLink/SDLNavigationCapability.m; sourceTree = ""; }; + 87FBD700D9DBA4D763D490E8394ECAAF /* SDLFileManagerConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManagerConfiguration.h; path = SmartDeviceLink/SDLFileManagerConfiguration.h; sourceTree = ""; }; + 8853DFABCBBEFF6CC328439BFF8817C3 /* SDLShowAppMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowAppMenu.h; path = SmartDeviceLink/SDLShowAppMenu.h; sourceTree = ""; }; + 885A0F6D020A6CA40C779378E47D90C5 /* SDLPerformInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformInteractionResponse.h; path = SmartDeviceLink/SDLPerformInteractionResponse.h; sourceTree = ""; }; + 888125F9D139D66C74276506032B1A88 /* SDLInteractionMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLInteractionMode.h; path = SmartDeviceLink/SDLInteractionMode.h; sourceTree = ""; }; + 88C48BC3D16BDEC962C895DAC4CD023C /* SDLLightControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightControlCapabilities.m; path = SmartDeviceLink/SDLLightControlCapabilities.m; sourceTree = ""; }; + 894048EEB0466180965743DBF850170F /* SDLRadioControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioControlData.h; path = SmartDeviceLink/SDLRadioControlData.h; sourceTree = ""; }; + 894257BCE702D293AB8A34D2CFB19171 /* SDLSetGlobalProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetGlobalProperties.h; path = SmartDeviceLink/SDLSetGlobalProperties.h; sourceTree = ""; }; + 8968D59CE9F5ACC5102A6047D3E64151 /* SDLDeleteFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFile.h; path = SmartDeviceLink/SDLDeleteFile.h; sourceTree = ""; }; + 89FF276588037654834B38572ADBF860 /* SDLSetCloudAppPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetCloudAppPropertiesResponse.m; path = SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m; sourceTree = ""; }; + 8A5780D6C351FCA2B9EBE2AD7E6BBFC5 /* SDLPermissionConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionConstants.h; path = SmartDeviceLink/SDLPermissionConstants.h; sourceTree = ""; }; + 8A60138A12628B558D512D97D89EE5B2 /* SDLSyncMsgVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncMsgVersion.m; path = SmartDeviceLink/SDLSyncMsgVersion.m; sourceTree = ""; }; + 8AB71279385780F65642903C30E49879 /* SDLReadDIDResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReadDIDResponse.h; path = SmartDeviceLink/SDLReadDIDResponse.h; sourceTree = ""; }; + 8AD71C120072B2C90332685ABC447D8B /* SDLDeleteCommandResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteCommandResponse.m; path = SmartDeviceLink/SDLDeleteCommandResponse.m; sourceTree = ""; }; + 8AFC9728863E515D3D032829F1D3C57F /* SDLAudioStreamManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamManager.h; path = SmartDeviceLink/SDLAudioStreamManager.h; sourceTree = ""; }; + 8B2BB6B7C29FB74F9FC111836E3FDC00 /* SDLSupportedSeat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSupportedSeat.m; path = SmartDeviceLink/SDLSupportedSeat.m; sourceTree = ""; }; + 8B325B54245A4E4E8C66F6A001CF9340 /* SDLLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleManager.h; path = SmartDeviceLink/SDLLifecycleManager.h; sourceTree = ""; }; + 8B3F91D4B24F4C2C59889390112438B1 /* SDLSystemCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapability.h; path = SmartDeviceLink/SDLSystemCapability.h; sourceTree = ""; }; + 8B49CB8BCE22DD2B4CF1B57ACC983DCC /* SDLComponentVolumeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLComponentVolumeStatus.m; path = SmartDeviceLink/SDLComponentVolumeStatus.m; sourceTree = ""; }; + 8B5DB4842C8200AA008032CB8399D93B /* SDLWindowCapability+ScreenManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLWindowCapability+ScreenManagerExtensions.h"; path = "SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.h"; sourceTree = ""; }; + 8B5DF3D138D81A3A587A931F4D1E6E9C /* SDLOnAppInterfaceUnregistered.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAppInterfaceUnregistered.h; path = SmartDeviceLink/SDLOnAppInterfaceUnregistered.h; sourceTree = ""; }; + 8C2B7CEA902C141170ED3DB6E93DDE34 /* SDLPinchGesture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPinchGesture.h; path = SmartDeviceLink/SDLPinchGesture.h; sourceTree = ""; }; + 8C2EDACE6ACD4C977F1501873B8C715C /* SDLPRNDL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPRNDL.h; path = SmartDeviceLink/SDLPRNDL.h; sourceTree = ""; }; + 8C4526E09C6759AD25F54590F9002AE8 /* SDLSetAppIconResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetAppIconResponse.h; path = SmartDeviceLink/SDLSetAppIconResponse.h; sourceTree = ""; }; + 8C7A37EAF43721950F29116483BA4DA7 /* SDLEncodedSyncPDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncodedSyncPDataResponse.m; path = SmartDeviceLink/SDLEncodedSyncPDataResponse.m; sourceTree = ""; }; + 8C95A15F1ABB56F87595C248AF00C07F /* SDLProtocolReceivedMessageRouter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolReceivedMessageRouter.m; path = SmartDeviceLink/SDLProtocolReceivedMessageRouter.m; sourceTree = ""; }; + 8CEB2D97B78F3D03054621D61974E2CB /* SDLECallInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLECallInfo.m; path = SmartDeviceLink/SDLECallInfo.m; sourceTree = ""; }; + 8D4105D8C883FAEA6442789492798AA6 /* SDLAlertResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertResponse.h; path = SmartDeviceLink/SDLAlertResponse.h; sourceTree = ""; }; + 8DAD96E48B6521B50D315831C92D08A4 /* SDLCancelInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCancelInteractionResponse.h; path = SmartDeviceLink/SDLCancelInteractionResponse.h; sourceTree = ""; }; + 8DCE4D9A1ECFC1B74D7B4C95CBDC5A0A /* SDLSupportedSeat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSupportedSeat.h; path = SmartDeviceLink/SDLSupportedSeat.h; sourceTree = ""; }; + 8DD86F842662CDA74C3E46854A424F2C /* SDLSequentialRPCRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSequentialRPCRequestOperation.h; path = SmartDeviceLink/SDLSequentialRPCRequestOperation.h; sourceTree = ""; }; + 8E39C12C56DA2895956477F555CACEAC /* SDLSoftButtonCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonCapabilities.m; path = SmartDeviceLink/SDLSoftButtonCapabilities.m; sourceTree = ""; }; + 8E42A8B49F8AA2A40213699E2A1C40BF /* SDLSystemCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapability.m; path = SmartDeviceLink/SDLSystemCapability.m; sourceTree = ""; }; + 8E6C4ADE7103309719A9A2A77D95DFA0 /* SDLVehicleType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleType.m; path = SmartDeviceLink/SDLVehicleType.m; sourceTree = ""; }; + 8EC6E2E0ADD9BFC51D3ECF0FBFD7E9D0 /* SDLDeleteFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileResponse.m; path = SmartDeviceLink/SDLDeleteFileResponse.m; sourceTree = ""; }; + 8EF82F8948A2C13108DB3E6BC79A6DA9 /* SDLSendHapticDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendHapticDataResponse.h; path = SmartDeviceLink/SDLSendHapticDataResponse.h; sourceTree = ""; }; + 8F43B62FD5522EFA8F5EDEBE12238EC7 /* SDLStartTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStartTime.m; path = SmartDeviceLink/SDLStartTime.m; sourceTree = ""; }; + 8F73D712297E40F90B7E1A7D01DFEC67 /* SDLOnKeyboardInput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnKeyboardInput.h; path = SmartDeviceLink/SDLOnKeyboardInput.h; sourceTree = ""; }; + 8FE0F5BE889755CBF2EACC79F9B92C01 /* SDLCancelInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCancelInteraction.m; path = SmartDeviceLink/SDLCancelInteraction.m; sourceTree = ""; }; + 8FE3643BA5E989C40224C3A030671F99 /* SDLDateTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDateTime.h; path = SmartDeviceLink/SDLDateTime.h; sourceTree = ""; }; + 8FFF9A629644A4A7222767D6C63D7E24 /* NSMutableDictionary+SafeRemove.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+SafeRemove.m"; path = "SmartDeviceLink/NSMutableDictionary+SafeRemove.m"; sourceTree = ""; }; + 90229AC6E8F0ECD254DB821584B0F830 /* SDLEncryptionLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncryptionLifecycleManager.h; path = SmartDeviceLink/SDLEncryptionLifecycleManager.h; sourceTree = ""; }; + 90BA4BFF5CAD58299D1A0CBC8CFA45FD /* SDLSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncPData.m; path = SmartDeviceLink/SDLSyncPData.m; sourceTree = ""; }; + 91022FC9BD41CC0B9D0193EA80339523 /* SDLControlFramePayloadConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadConstants.m; path = SmartDeviceLink/SDLControlFramePayloadConstants.m; sourceTree = ""; }; + 9125F90EF6EEDE90B5699DE26ABE1AC6 /* NSMutableDictionary+Store.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+Store.m"; path = "SmartDeviceLink/NSMutableDictionary+Store.m"; sourceTree = ""; }; + 91385E176713F556761B0AF1EB7AA94C /* SDLSoftButtonState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonState.m; path = SmartDeviceLink/SDLSoftButtonState.m; sourceTree = ""; }; + 91F7EE2A199046AFC07A4EE31FA290E0 /* SDLMenuConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuConfiguration.h; path = SmartDeviceLink/SDLMenuConfiguration.h; sourceTree = ""; }; + 9218B97772D190A9BC1FBAC18A3BF6CE /* SDLRGBColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRGBColor.m; path = SmartDeviceLink/SDLRGBColor.m; sourceTree = ""; }; + 9227FC37C76C208644F400388ECD5C95 /* SDLDisplayCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayCapabilities.h; path = SmartDeviceLink/SDLDisplayCapabilities.h; sourceTree = ""; }; + 922F65EF53B7070CDB774AA85CCDF664 /* SDLRDSData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRDSData.m; path = SmartDeviceLink/SDLRDSData.m; sourceTree = ""; }; + 925B5C5D259A10BE034E8C3403363C5E /* SDLTextFieldName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextFieldName.m; path = SmartDeviceLink/SDLTextFieldName.m; sourceTree = ""; }; + 931FA41FFCE73EAD4491E531A2BF3CE5 /* SDLTimerMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTimerMode.h; path = SmartDeviceLink/SDLTimerMode.h; sourceTree = ""; }; + 93636199EFDA841EF4C2CC4859CE2B6F /* NSBundle+SDLBundle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+SDLBundle.h"; path = "SmartDeviceLink/NSBundle+SDLBundle.h"; sourceTree = ""; }; + 936CD2C8FA37089FF8BEBF38BBA57083 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = en.lproj/SDLLockScreen.strings; sourceTree = ""; }; + 9385A8C466EFC5D2EECF88F1BB4D7E51 /* SDLNavigationAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationAction.m; path = SmartDeviceLink/SDLNavigationAction.m; sourceTree = ""; }; + 9396AC892DC0B21725B21B23AFA995D3 /* SDLGetInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleData.m; path = SmartDeviceLink/SDLGetInteriorVehicleData.m; sourceTree = ""; }; + 93B08DECC2D7CA909B9CDA3141DB7B0E /* SDLUnpublishAppService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnpublishAppService.h; path = SmartDeviceLink/SDLUnpublishAppService.h; sourceTree = ""; }; + 93C7430585EB46BE55AE0CB860148481 /* SDLImageType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageType.h; path = SmartDeviceLink/SDLImageType.h; sourceTree = ""; }; + 9401FE979F2F8AEAF58BE90F5FB0B075 /* SDLLocationCoordinate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLocationCoordinate.h; path = SmartDeviceLink/SDLLocationCoordinate.h; sourceTree = ""; }; + 94170D786D38E92B4C692CF92C3ABD30 /* SDLEnum.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEnum.m; path = SmartDeviceLink/SDLEnum.m; sourceTree = ""; }; + 941C68CF789F85A7C11457585FAACEC6 /* SDLDiagnosticMessageResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDiagnosticMessageResponse.m; path = SmartDeviceLink/SDLDiagnosticMessageResponse.m; sourceTree = ""; }; + 942B330B46ACF300BF3CBDAECE4EC0C9 /* SDLAudioFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioFile.m; path = SmartDeviceLink/SDLAudioFile.m; sourceTree = ""; }; + 943DDBBF480DC8B8E38C092C2740CCBE /* SDLChoice.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoice.h; path = SmartDeviceLink/SDLChoice.h; sourceTree = ""; }; + 9470359FA084F4E00E48F9FCE83F58E1 /* NSMutableArray+Safe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+Safe.h"; path = "SmartDeviceLink/NSMutableArray+Safe.h"; sourceTree = ""; }; + 94D396845FE301C9BD090468079F6BB7 /* SDLHMISettingsControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMISettingsControlCapabilities.m; path = SmartDeviceLink/SDLHMISettingsControlCapabilities.m; sourceTree = ""; }; + 953643AF1E768FAB16D37AF6E1107ACC /* SDLSubscribeButtonManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonManager.m; path = SmartDeviceLink/SDLSubscribeButtonManager.m; sourceTree = ""; }; + 95569FF6FBE18E8D60E93393B780FC1A /* SDLClimateControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClimateControlData.h; path = SmartDeviceLink/SDLClimateControlData.h; sourceTree = ""; }; + 956C902E2F413D6BBFF38305B200A08F /* SDLChoiceSetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSetManager.h; path = SmartDeviceLink/SDLChoiceSetManager.h; sourceTree = ""; }; + 95B6BE3E72235AC592C06AF8A4F665F9 /* SDLWeatherServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherServiceManifest.m; path = SmartDeviceLink/SDLWeatherServiceManifest.m; sourceTree = ""; }; + 95FEDB3A040A9AF27C4F297BB1D4B137 /* SDLUnregisterAppInterfaceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnregisterAppInterfaceResponse.h; path = SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h; sourceTree = ""; }; + 9685342C1846C658E601FB8B352C69B5 /* SDLStreamingMediaManagerConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaManagerConstants.m; path = SmartDeviceLink/SDLStreamingMediaManagerConstants.m; sourceTree = ""; }; + 9699CEFAE8CC63EAF12D47952326F8E7 /* SDLIAPControlSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPControlSession.h; path = SmartDeviceLink/SDLIAPControlSession.h; sourceTree = ""; }; + 96ABA69015D9F51A879DB818FAE3605B /* SDLClimateControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClimateControlCapabilities.h; path = SmartDeviceLink/SDLClimateControlCapabilities.h; sourceTree = ""; }; + 96BEB464EEABED67F857FCAA31784297 /* SDLGenericResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGenericResponse.h; path = SmartDeviceLink/SDLGenericResponse.h; sourceTree = ""; }; + 96D8D2CAC3C9D900AC00A8B3CC5C579F /* SDLChangeRegistrationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChangeRegistrationResponse.h; path = SmartDeviceLink/SDLChangeRegistrationResponse.h; sourceTree = ""; }; + 96F0D36E1F88AD285C4F2EDEFC6311FA /* SDLMaintenanceModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMaintenanceModeStatus.m; path = SmartDeviceLink/SDLMaintenanceModeStatus.m; sourceTree = ""; }; + 9712AC0C44D0ADF928AA7E06E0017867 /* SDLLogModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogModel.m; path = SmartDeviceLink/SDLLogModel.m; sourceTree = ""; }; + 9718170DC522C4211FF7BFB86F042E6E /* SDLSpeakResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeakResponse.m; path = SmartDeviceLink/SDLSpeakResponse.m; sourceTree = ""; }; + 971F3693D99D4DF5AB6B162D6026730A /* SDLWiperStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWiperStatus.m; path = SmartDeviceLink/SDLWiperStatus.m; sourceTree = ""; }; + 972B7E177642FF7F73935ABD0DF3B924 /* SDLV2ProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV2ProtocolHeader.h; path = SmartDeviceLink/SDLV2ProtocolHeader.h; sourceTree = ""; }; + 9760ECDFB3D886D97C84848DB99676AB /* SDLRPCFunctionNames.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCFunctionNames.m; path = SmartDeviceLink/SDLRPCFunctionNames.m; sourceTree = ""; }; + 9793856BCD714E4673B7C4D1120726F5 /* SDLSpeak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeak.m; path = SmartDeviceLink/SDLSpeak.m; sourceTree = ""; }; + 97AD120A3AD881B75046604C99B99B22 /* SDLGPSData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGPSData.m; path = SmartDeviceLink/SDLGPSData.m; sourceTree = ""; }; + 97C932CDEE9602EF8E18CDD087C0022D /* SDLAsynchronousRPCOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousRPCOperation.m; path = SmartDeviceLink/SDLAsynchronousRPCOperation.m; sourceTree = ""; }; + 98E0B47ADD51DA93F0FC18C094035A10 /* SDLSoftButtonType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonType.h; path = SmartDeviceLink/SDLSoftButtonType.h; sourceTree = ""; }; + 99260C97979258B09198B8E093019FAD /* SDLMediaType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaType.h; path = SmartDeviceLink/SDLMediaType.h; sourceTree = ""; }; + 995A7E70BDA2C8AED3E00F4433D46835 /* SDLInteractionMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLInteractionMode.m; path = SmartDeviceLink/SDLInteractionMode.m; sourceTree = ""; }; + 99D249C8F6BCB49BC6DED24ABEACC7BB /* SDLLogMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogMacros.h; path = SmartDeviceLink/SDLLogMacros.h; sourceTree = ""; }; + 9A8CEE67C635CC8AF33D4597EDEF323E /* SDLPCMAudioConverter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPCMAudioConverter.h; path = SmartDeviceLink/SDLPCMAudioConverter.h; sourceTree = ""; }; + 9AB0ECB1844711AAB00BE85D75CDB9B8 /* SDLUnsubscribeVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeVehicleData.h; path = SmartDeviceLink/SDLUnsubscribeVehicleData.h; sourceTree = ""; }; + 9AE76BA22D74D21AAF31A4BC6C4C57F1 /* SDLLockScreenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenManager.m; path = SmartDeviceLink/SDLLockScreenManager.m; sourceTree = ""; }; + 9AEEE89A8645A94795F0CCCBD4A67D43 /* SDLSeatControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatControlCapabilities.h; path = SmartDeviceLink/SDLSeatControlCapabilities.h; sourceTree = ""; }; + 9B3CAB29D2B4B5E6B23F89F7C09B52EF /* SDLTPMS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTPMS.m; path = SmartDeviceLink/SDLTPMS.m; sourceTree = ""; }; + 9B5139FCDAC1C84B8E10AB5D0D7E1E0E /* SDLSubscribeButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButton.h; path = SmartDeviceLink/SDLSubscribeButton.h; sourceTree = ""; }; + 9B5A4E5EEBEDE007C98C3E1449D1236B /* SDLAddSubMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddSubMenu.m; path = SmartDeviceLink/SDLAddSubMenu.m; sourceTree = ""; }; 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 9B778D29FEEFC0DD5D2556DE02F267F8 /* SDLMsgVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMsgVersion.h; path = SmartDeviceLink/SDLMsgVersion.h; sourceTree = ""; }; - 9BD062E44BAEAC8F381D25BB2C49F775 /* SDLNavigationCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationCapability.m; path = SmartDeviceLink/SDLNavigationCapability.m; sourceTree = ""; }; - 9C1B74D20AD626E1FF7D59D1201016C8 /* SDLVideoStreamingProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingProtocol.m; path = SmartDeviceLink/SDLVideoStreamingProtocol.m; sourceTree = ""; }; - 9C3239BD5861D539F39785429EBE0EFE /* SDLPermissionItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionItem.m; path = SmartDeviceLink/SDLPermissionItem.m; sourceTree = ""; }; - 9C51B2936414DC95DE04ABA7C8408101 /* SDLTextField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextField.h; path = SmartDeviceLink/SDLTextField.h; sourceTree = ""; }; - 9C610CA798F30FD6426257E526AC02F4 /* SDLProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocol.h; path = SmartDeviceLink/SDLProtocol.h; sourceTree = ""; }; - 9C86D4CBB2B58B5DB610CFA8980934F5 /* SDLMenuParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuParams.h; path = SmartDeviceLink/SDLMenuParams.h; sourceTree = ""; }; - 9CB3708FD84DFD102864FB3A724A9689 /* SDLSystemContext.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemContext.m; path = SmartDeviceLink/SDLSystemContext.m; sourceTree = ""; }; - 9CED171DA1E775EB6E14EA2D2D5AF5D5 /* SDLEncryptionManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncryptionManagerConstants.h; path = SmartDeviceLink/SDLEncryptionManagerConstants.h; sourceTree = ""; }; - 9D07BF9A19096BDE35C54CB33E961268 /* SDLGetInteriorVehicleDataConsent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataConsent.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h; sourceTree = ""; }; + 9B7C65426660FAD7B711561101E64251 /* SDLLockScreenPresenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenPresenter.h; path = SmartDeviceLink/SDLLockScreenPresenter.h; sourceTree = ""; }; + 9B8D629931815D5CAF7718BE57D7E744 /* SDLSetAppIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetAppIcon.m; path = SmartDeviceLink/SDLSetAppIcon.m; sourceTree = ""; }; + 9B8DB8AD97F13CD6B4CD990703A087B9 /* SDLDeleteFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFile.m; path = SmartDeviceLink/SDLDeleteFile.m; sourceTree = ""; }; + 9BA0AF625F5738A2DFEC698A0E10DE96 /* SDLDeleteSubMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteSubMenuResponse.h; path = SmartDeviceLink/SDLDeleteSubMenuResponse.h; sourceTree = ""; }; + 9BAF278CD2A85FB40BB8CC980CAF9CE0 /* SDLChoice.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoice.m; path = SmartDeviceLink/SDLChoice.m; sourceTree = ""; }; + 9BC8BBD75E4ABF360800CAA3D4E00485 /* SDLConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLConfiguration.h; path = SmartDeviceLink/SDLConfiguration.h; sourceTree = ""; }; + 9BE0BD4D689088D8A8B5DBD772D84AD5 /* SDLSetAppIconResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetAppIconResponse.m; path = SmartDeviceLink/SDLSetAppIconResponse.m; sourceTree = ""; }; + 9BE641F519C441DF7E48B7D3B6919934 /* SDLDialNumberResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDialNumberResponse.h; path = SmartDeviceLink/SDLDialNumberResponse.h; sourceTree = ""; }; + 9C6C83F225EFD1EB3CF30CCBEC52C689 /* SDLGetInteriorVehicleDataConsent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataConsent.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h; sourceTree = ""; }; + 9CD4E213C5B2DB7E81A09C7CA35B69EC /* SDLLogFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFilter.h; path = SmartDeviceLink/SDLLogFilter.h; sourceTree = ""; }; + 9CF3282DF31D7BD5C48812D01950DBA5 /* SDLHMICapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMICapabilities.h; path = SmartDeviceLink/SDLHMICapabilities.h; sourceTree = ""; }; + 9D385296CCF12F9A0B41C02B3DE307DF /* SDLTextField+ScreenManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLTextField+ScreenManagerExtensions.m"; path = "SmartDeviceLink/SDLTextField+ScreenManagerExtensions.m"; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9DA4BCA93C02ABAD3179337438D37C21 /* SDLHMIZoneCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMIZoneCapabilities.h; path = SmartDeviceLink/SDLHMIZoneCapabilities.h; sourceTree = ""; }; - 9E2E8F901CA5F0F91FB51345F05D3027 /* SDLStartTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStartTime.h; path = SmartDeviceLink/SDLStartTime.h; sourceTree = ""; }; - 9E455C3FFF2568B4B1C81CC712A1DB06 /* SDLAudioStreamManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamManager.m; path = SmartDeviceLink/SDLAudioStreamManager.m; sourceTree = ""; }; - 9E8C49B9AEFE2B7A0D27192F5F4FE6C7 /* SDLTemperatureUnit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemperatureUnit.h; path = SmartDeviceLink/SDLTemperatureUnit.h; sourceTree = ""; }; - 9ED6CCE2CF434E4F07A3031783397721 /* SDLKeyboardEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardEvent.h; path = SmartDeviceLink/SDLKeyboardEvent.h; sourceTree = ""; }; - 9F0D8AB40C82029C65CEECC77D7D8C1A /* SDLStreamingAudioManagerType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingAudioManagerType.h; path = SmartDeviceLink/SDLStreamingAudioManagerType.h; sourceTree = ""; }; - 9FE66F7EA43B7C8883B49BF7021DBB96 /* SDLEndAudioPassThruResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEndAudioPassThruResponse.h; path = SmartDeviceLink/SDLEndAudioPassThruResponse.h; sourceTree = ""; }; - 9FFB29DF01447220453AB1CF83DD5396 /* SDLStreamingVideoScaleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingVideoScaleManager.m; path = SmartDeviceLink/SDLStreamingVideoScaleManager.m; sourceTree = ""; }; - A11273079923EC17BEF8EA166ED142FD /* SDLModuleType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleType.h; path = SmartDeviceLink/SDLModuleType.h; sourceTree = ""; }; - A19E73266D6733F4C2E8727710A11ED9 /* SDLButtonEventMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonEventMode.m; path = SmartDeviceLink/SDLButtonEventMode.m; sourceTree = ""; }; - A26A29D7E64A6FED6EAEC44F2DAB8EF8 /* SDLTCPTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTCPTransport.h; path = SmartDeviceLink/SDLTCPTransport.h; sourceTree = ""; }; - A39FC9ECBCE47531EA0F628BD8F31F5B /* SDLFileManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManagerConstants.h; path = SmartDeviceLink/SDLFileManagerConstants.h; sourceTree = ""; }; - A3F84DAD3D88A67D4CE282450BA269F8 /* SDLAudioStreamingState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamingState.h; path = SmartDeviceLink/SDLAudioStreamingState.h; sourceTree = ""; }; - A40F0AF559343F73CD03D070F06706FF /* SDLUnsubscribeWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeWayPointsResponse.m; path = SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m; sourceTree = ""; }; - A4525E374C0C6592950D6900876AA4F2 /* SDLTBTState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTBTState.m; path = SmartDeviceLink/SDLTBTState.m; sourceTree = ""; }; - A457A96BC13A557BA1810EA50BC942AC /* SDLV1ProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV1ProtocolMessage.m; path = SmartDeviceLink/SDLV1ProtocolMessage.m; sourceTree = ""; }; - A46B7480DA60280AFABEE933D1777D59 /* SDLEqualizerSettings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEqualizerSettings.h; path = SmartDeviceLink/SDLEqualizerSettings.h; sourceTree = ""; }; - A47E1D7E285C5B3399B259F741739553 /* SDLTurnSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTurnSignal.m; path = SmartDeviceLink/SDLTurnSignal.m; sourceTree = ""; }; - A4A011384B18AB35F5D5E7615AABE7C2 /* SDLSecondaryTransportManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSecondaryTransportManager.h; path = SmartDeviceLink/SDLSecondaryTransportManager.h; sourceTree = ""; }; - A4BF66140123996F41DEFF60B1C946BD /* SDLUnsubscribeWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeWayPoints.h; path = SmartDeviceLink/SDLUnsubscribeWayPoints.h; sourceTree = ""; }; - A4C87793B3C6B531E0A6541C94DAFB52 /* SDLHeadLampStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHeadLampStatus.m; path = SmartDeviceLink/SDLHeadLampStatus.m; sourceTree = ""; }; - A4D71C10FFEEDB848F3F2C093F2DC642 /* SDLCloseApplication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCloseApplication.h; path = SmartDeviceLink/SDLCloseApplication.h; sourceTree = ""; }; - A58155F4D86C1C49F4B0245936BBF3E6 /* SDLEmergencyEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEmergencyEvent.m; path = SmartDeviceLink/SDLEmergencyEvent.m; sourceTree = ""; }; - A59281B6B7A635EC71C289B5AA8FAFEC /* SDLListFiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFiles.h; path = SmartDeviceLink/SDLListFiles.h; sourceTree = ""; }; - A5DF934A09C6ECE921C963F3156E087B /* SDLPermissionFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionFilter.h; path = SmartDeviceLink/SDLPermissionFilter.h; sourceTree = ""; }; - A60D22A926D93A0D726FFF6A31239E5D /* SDLImageType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageType.h; path = SmartDeviceLink/SDLImageType.h; sourceTree = ""; }; - A61B36731BEBEFB3938CDFBFC1EF305B /* SDLSoftButtonTransitionOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonTransitionOperation.m; path = SmartDeviceLink/SDLSoftButtonTransitionOperation.m; sourceTree = ""; }; - A638ABDCA82A0FCFD9E2949D129993CD /* SDLPredefinedLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPredefinedLayout.m; path = SmartDeviceLink/SDLPredefinedLayout.m; sourceTree = ""; }; - A677CF8D17087FD37FABB05CE8384E98 /* SDLLogTargetAppleSystemLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetAppleSystemLog.m; path = SmartDeviceLink/SDLLogTargetAppleSystemLog.m; sourceTree = ""; }; - A697E2FEB8F9928973AF1D4697F0C023 /* SDLProtocolDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolDelegate.h; path = SmartDeviceLink/SDLProtocolDelegate.h; sourceTree = ""; }; - A6A3F4A1DAD219F117FF921A98B3E55B /* SDLMenuConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuConfiguration.m; path = SmartDeviceLink/SDLMenuConfiguration.m; sourceTree = ""; }; - A6B9669FEDAAA1EF5A7C9F94BED90F1E /* SDLCloudAppProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCloudAppProperties.h; path = SmartDeviceLink/SDLCloudAppProperties.h; sourceTree = ""; }; - A6FD2FA90F20F6C5140D25FA0A41EB8C /* SDLTTSChunk.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTTSChunk.m; path = SmartDeviceLink/SDLTTSChunk.m; sourceTree = ""; }; - A72EACA38EEC0588D3830851A96A2681 /* SDLLocationDetails.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLocationDetails.h; path = SmartDeviceLink/SDLLocationDetails.h; sourceTree = ""; }; - A80BF767FDD68AB1636D37FBA5E4E345 /* SDLVideoStreamingCodec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingCodec.h; path = SmartDeviceLink/SDLVideoStreamingCodec.h; sourceTree = ""; }; - A83D74392A8FBE5A5BBCC7D29249B943 /* SDLObjectWithPriority.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLObjectWithPriority.h; path = SmartDeviceLink/SDLObjectWithPriority.h; sourceTree = ""; }; - A84893E9B393129BECE4A90B2112AA3D /* SDLWindowType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWindowType.h; path = SmartDeviceLink/SDLWindowType.h; sourceTree = ""; }; - A877633FFF7377994C92687A4E85E718 /* SDLWarningLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWarningLightStatus.h; path = SmartDeviceLink/SDLWarningLightStatus.h; sourceTree = ""; }; - A8A312C4D8E76C9BC500924B32C0A57F /* SDLDimension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDimension.h; path = SmartDeviceLink/SDLDimension.h; sourceTree = ""; }; - A8D2591CD0E614AB45EEE6E819BC5715 /* SDLPhoneCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPhoneCapability.m; path = SmartDeviceLink/SDLPhoneCapability.m; sourceTree = ""; }; - A8F1FC7563B35841A0B1D696269FA3AB /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRegisterSecondaryTransportNak.m; path = SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m; sourceTree = ""; }; - A8F74D221FAE93D785BB127D2DBA24CF /* SDLVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVersion.m; path = SmartDeviceLink/SDLVersion.m; sourceTree = ""; }; - A8F9E32E9728CC43CF973F445B0435EF /* SDLPresentKeyboardOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresentKeyboardOperation.m; path = SmartDeviceLink/SDLPresentKeyboardOperation.m; sourceTree = ""; }; - A99EA0FB7F0C4D0EB328913A51F92615 /* SDLHybridAppPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHybridAppPreference.h; path = SmartDeviceLink/SDLHybridAppPreference.h; sourceTree = ""; }; - A9BC3AA38D28D6FBC7BBBEB0A7D0B622 /* SDLMediaServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaServiceData.h; path = SmartDeviceLink/SDLMediaServiceData.h; sourceTree = ""; }; - A9C1A17D21E9FA2E45F72C2B32CCE8F7 /* SDLAlertResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertResponse.m; path = SmartDeviceLink/SDLAlertResponse.m; sourceTree = ""; }; - A9E5A8AA97EA88C0C5010827AA38639E /* SDLGPSData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGPSData.m; path = SmartDeviceLink/SDLGPSData.m; sourceTree = ""; }; - AA9CE864FB36C4F19622600C8C289B7C /* SDLTemplateConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemplateConfiguration.m; path = SmartDeviceLink/SDLTemplateConfiguration.m; sourceTree = ""; }; - AAA96D67B0E11DC1C39AA70AED46098E /* SDLRadioBand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioBand.h; path = SmartDeviceLink/SDLRadioBand.h; sourceTree = ""; }; - AACAAE80DEC9BA4877F4673B9A256C7A /* SDLDIDResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDIDResult.h; path = SmartDeviceLink/SDLDIDResult.h; sourceTree = ""; }; - AAE83D19F9F6CCFDFBE2E4176612A66A /* SDLImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImage.m; path = SmartDeviceLink/SDLImage.m; sourceTree = ""; }; - AB4899E896AC7243959C641E40D9EB6C /* SDLPowerModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPowerModeStatus.m; path = SmartDeviceLink/SDLPowerModeStatus.m; sourceTree = ""; }; - AB7CED9964DD3F087B0208B33F08C202 /* SDLAudioType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioType.m; path = SmartDeviceLink/SDLAudioType.m; sourceTree = ""; }; - AB9A647494B575CFA5ADA8C3FEC415DF /* SDLSystemCapabilityType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityType.m; path = SmartDeviceLink/SDLSystemCapabilityType.m; sourceTree = ""; }; - AC622C32763FF5BF0D5E745522571CB6 /* SDLVideoEncoderDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoEncoderDelegate.h; path = SmartDeviceLink/SDLVideoEncoderDelegate.h; sourceTree = ""; }; - AD2F8C7E3E2CA2E54A878E1804C6819B /* SDLButtonName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonName.m; path = SmartDeviceLink/SDLButtonName.m; sourceTree = ""; }; - AD92E87BD9A9816EC4D59E0AD66C1E62 /* SDLSubscribeVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeVehicleDataResponse.h; path = SmartDeviceLink/SDLSubscribeVehicleDataResponse.h; sourceTree = ""; }; - ADD3A5E2AF56D8C4B191087DCC79274E /* SmartDeviceLink.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartDeviceLink.debug.xcconfig; sourceTree = ""; }; - ADECF6F036198C3154612FAAE7A54AA5 /* SDLSeatControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatControlData.h; path = SmartDeviceLink/SDLSeatControlData.h; sourceTree = ""; }; - AE2BAC066A795F9A2BC704A131DD796B /* SDLEndAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEndAudioPassThru.h; path = SmartDeviceLink/SDLEndAudioPassThru.h; sourceTree = ""; }; - AF19BE6750BCA76EDC3A8FC9E6C92344 /* SDLLogFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFilter.m; path = SmartDeviceLink/SDLLogFilter.m; sourceTree = ""; }; - AF28A68579C98F539C039EA29CA59D4B /* SDLAudioStreamingState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamingState.m; path = SmartDeviceLink/SDLAudioStreamingState.m; sourceTree = ""; }; - AF5B172A3AB107D165BE0B845E9FFA33 /* SDLRPCNotificationNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCNotificationNotification.m; path = SmartDeviceLink/SDLRPCNotificationNotification.m; sourceTree = ""; }; - AF8586C62AFA2F4833F9F198CA2236FA /* SDLDefrostZone.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDefrostZone.h; path = SmartDeviceLink/SDLDefrostZone.h; sourceTree = ""; }; - AFF3E79663035A0B5E589A3D5DF2051B /* SDLControlFramePayloadNak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadNak.m; path = SmartDeviceLink/SDLControlFramePayloadNak.m; sourceTree = ""; }; - AFF9F053405AFE53208F5AF054964C4B /* SDLGetVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetVehicleDataResponse.m; path = SmartDeviceLink/SDLGetVehicleDataResponse.m; sourceTree = ""; }; - B002378124E8B08D2C433B0CBAE53FA5 /* SDLGetWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetWayPointsResponse.m; path = SmartDeviceLink/SDLGetWayPointsResponse.m; sourceTree = ""; }; - B04D130FB2F02F323455BD16B20ACE8B /* NSBundle+SDLBundle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+SDLBundle.m"; path = "SmartDeviceLink/NSBundle+SDLBundle.m"; sourceTree = ""; }; - B051F7FF13D4892208EA8EDC154E67C2 /* SDLLogFileModuleMap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFileModuleMap.h; path = SmartDeviceLink/SDLLogFileModuleMap.h; sourceTree = ""; }; - B0D6188E04884E87F16C5D09E4F25B7A /* SDLGetAppServiceDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetAppServiceDataResponse.h; path = SmartDeviceLink/SDLGetAppServiceDataResponse.h; sourceTree = ""; }; - B0DCC93C381CC643F45864405E55E958 /* SDLCarWindowViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarWindowViewController.m; path = SmartDeviceLink/SDLCarWindowViewController.m; sourceTree = ""; }; - B11185632289362C4E685A33488343CF /* SDLRAWH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRAWH264Packetizer.h; path = SmartDeviceLink/SDLRAWH264Packetizer.h; sourceTree = ""; }; - B119F703EFD09662F12A91AC7015A81C /* SDLDimension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDimension.m; path = SmartDeviceLink/SDLDimension.m; sourceTree = ""; }; - B123B8245FE7984988B165A780AED107 /* SDLOnButtonEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnButtonEvent.m; path = SmartDeviceLink/SDLOnButtonEvent.m; sourceTree = ""; }; - B1C140D9FFA2E9FCFD8A401D69499C73 /* SDLTouchManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchManagerDelegate.h; path = SmartDeviceLink/SDLTouchManagerDelegate.h; sourceTree = ""; }; - B1CFEA53176A71E567B91FF0E97CB278 /* SDLPowerModeQualificationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPowerModeQualificationStatus.h; path = SmartDeviceLink/SDLPowerModeQualificationStatus.h; sourceTree = ""; }; - B1F0D12088396E98ECB82370C6025F0B /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = en.lproj/SDLLockScreen.strings; sourceTree = ""; }; - B2564FC1D10877AF9A91ABEB9100B92C /* SDLMenuManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuManagerConstants.h; path = SmartDeviceLink/SDLMenuManagerConstants.h; sourceTree = ""; }; - B274AD52B0FF57921A0C62CA06B15804 /* SDLPrioritizedObjectCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrioritizedObjectCollection.m; path = SmartDeviceLink/SDLPrioritizedObjectCollection.m; sourceTree = ""; }; - B29A443AF2301B12BD576CFDE7A4092C /* SDLDialNumberResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDialNumberResponse.m; path = SmartDeviceLink/SDLDialNumberResponse.m; sourceTree = ""; }; - B2C56DF1F1818D8E1FD488B352881DD0 /* SDLClusterModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClusterModeStatus.m; path = SmartDeviceLink/SDLClusterModeStatus.m; sourceTree = ""; }; - B3717C92695FDC869375458442425C25 /* SDLGetCloudAppPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetCloudAppPropertiesResponse.m; path = SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m; sourceTree = ""; }; - B3B2790352EE6BE9ABFDD04D31188B31 /* SDLCharacterSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCharacterSet.h; path = SmartDeviceLink/SDLCharacterSet.h; sourceTree = ""; }; - B408FA5A72D8BD3C40461CF55C8CC884 /* SDLLightControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightControlData.m; path = SmartDeviceLink/SDLLightControlData.m; sourceTree = ""; }; - B41E3BF75DB009256653DF32F1496FE7 /* SDLMassageCushion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageCushion.h; path = SmartDeviceLink/SDLMassageCushion.h; sourceTree = ""; }; - B43FBF384A4067786E679B690EA2BDCE /* SDLSetCloudAppProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetCloudAppProperties.h; path = SmartDeviceLink/SDLSetCloudAppProperties.h; sourceTree = ""; }; - B456CA5D8FC2BB67712D9BE46D2EA781 /* SDLPerformAppServiceInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAppServiceInteractionResponse.h; path = SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h; sourceTree = ""; }; - B476612D209040FF1C5E1D9D7D7DC068 /* SDLVoiceCommandManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandManager.m; path = SmartDeviceLink/SDLVoiceCommandManager.m; sourceTree = ""; }; - B47755B35347AB14C2570D1F7A7BC934 /* SDLMenuConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuConfiguration.h; path = SmartDeviceLink/SDLMenuConfiguration.h; sourceTree = ""; }; - B53DDEC25BD2CEEE368F8B2099D4269E /* emhashmap.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = emhashmap.c; path = src/emhashmap/emhashmap.c; sourceTree = ""; }; - B552BC411A63CECEDC496B62D1B4B8FE /* SDLSubscribeButtonResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonResponse.h; path = SmartDeviceLink/SDLSubscribeButtonResponse.h; sourceTree = ""; }; - B5ACECDC2EB38CF822CD5E4F6482A49A /* CGPoint_Util.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CGPoint_Util.m; path = SmartDeviceLink/CGPoint_Util.m; sourceTree = ""; }; - B5B59F14B5A937BCC17AE1731AC44B43 /* SDLShow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShow.h; path = SmartDeviceLink/SDLShow.h; sourceTree = ""; }; - B5BDE0E2D5DE878BA2561C438678E7EA /* SDLBitsPerSample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBitsPerSample.h; path = SmartDeviceLink/SDLBitsPerSample.h; sourceTree = ""; }; - B5D1F23B2E71DAA1B5D0B59605A90913 /* SDLAirbagStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAirbagStatus.m; path = SmartDeviceLink/SDLAirbagStatus.m; sourceTree = ""; }; - B63DE7845F5EA943E8C3BC9F2728CFB8 /* SDLSetMediaClockTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetMediaClockTimer.m; path = SmartDeviceLink/SDLSetMediaClockTimer.m; sourceTree = ""; }; - B64A1F3DB42D6EF48AA200C070D9974C /* SDLLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleManager.m; path = SmartDeviceLink/SDLLifecycleManager.m; sourceTree = ""; }; + 9DAA75FD4629A2D623ECDA3EE735764B /* SDLFuelCutoffStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelCutoffStatus.h; path = SmartDeviceLink/SDLFuelCutoffStatus.h; sourceTree = ""; }; + 9DCA91383086A7E683C2F22BCF6D2362 /* SDLSoftButtonObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonObject.h; path = SmartDeviceLink/SDLSoftButtonObject.h; sourceTree = ""; }; + 9E19B35BFCAF24D72CE74D4A958941BB /* SDLOasisAddress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOasisAddress.m; path = SmartDeviceLink/SDLOasisAddress.m; sourceTree = ""; }; + 9E2182C9F77CC4097FBDD673E8C2836A /* SDLIAPControlSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPControlSession.m; path = SmartDeviceLink/SDLIAPControlSession.m; sourceTree = ""; }; + 9E5DFA275C99DF550A09B4DC823C5CB4 /* SDLServiceUpdateReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLServiceUpdateReason.h; path = SmartDeviceLink/SDLServiceUpdateReason.h; sourceTree = ""; }; + 9EAA73147795978ABCFD9E0261FFCAA6 /* SDLProtocolConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolConstants.m; path = SmartDeviceLink/SDLProtocolConstants.m; sourceTree = ""; }; + 9ED15A0AC24E44401A1D40DED75708E9 /* SDLDeleteCommandResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteCommandResponse.h; path = SmartDeviceLink/SDLDeleteCommandResponse.h; sourceTree = ""; }; + 9EFC8BC7FEE4107EC3E3E44D15D11048 /* EAAccessoryManager+SDLProtocols.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EAAccessoryManager+SDLProtocols.h"; path = "SmartDeviceLink/EAAccessoryManager+SDLProtocols.h"; sourceTree = ""; }; + 9F20535D9DEA52BADB1B4063B4EAA92E /* SDLVehicleDataEventStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataEventStatus.m; path = SmartDeviceLink/SDLVehicleDataEventStatus.m; sourceTree = ""; }; + 9F909C05943A039E0097211A7DF01A9B /* SDLAppServiceType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceType.h; path = SmartDeviceLink/SDLAppServiceType.h; sourceTree = ""; }; + 9FF74FFAAB89A4E89CD8576C7CCF13EB /* SDLLogManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogManager.m; path = SmartDeviceLink/SDLLogManager.m; sourceTree = ""; }; + A09A123F4100A6E0985F62A0D2C03B11 /* SDLControlFramePayloadConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadConstants.h; path = SmartDeviceLink/SDLControlFramePayloadConstants.h; sourceTree = ""; }; + A0A6C0D7A199BCCE8F0FF9593EC73681 /* SDLAlert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlert.h; path = SmartDeviceLink/SDLAlert.h; sourceTree = ""; }; + A0F610055C67181D6FFE3E0D8652FBC7 /* SDLStreamingMediaConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaConfiguration.m; path = SmartDeviceLink/SDLStreamingMediaConfiguration.m; sourceTree = ""; }; + A10396D9F0A4682A819D005885FDA4D6 /* SDLSubscribeVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeVehicleDataResponse.h; path = SmartDeviceLink/SDLSubscribeVehicleDataResponse.h; sourceTree = ""; }; + A1F84D97CDAFDB9F9F700BCF60FCA9B9 /* SDLVrCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVrCapabilities.m; path = SmartDeviceLink/SDLVrCapabilities.m; sourceTree = ""; }; + A21A4B3EBE116F516BFBC74130C407B1 /* SDLClimateControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClimateControlData.m; path = SmartDeviceLink/SDLClimateControlData.m; sourceTree = ""; }; + A256F032355513227EF3F0E7BC0D121D /* SDLSystemCapabilityType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityType.h; path = SmartDeviceLink/SDLSystemCapabilityType.h; sourceTree = ""; }; + A26B3309312952B2AED6A7ADA67DB6D9 /* SDLTTSChunk.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTTSChunk.m; path = SmartDeviceLink/SDLTTSChunk.m; sourceTree = ""; }; + A279D9C92C4169FF98A476AB715168EB /* SDLBeltStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBeltStatus.m; path = SmartDeviceLink/SDLBeltStatus.m; sourceTree = ""; }; + A288A63276C3C43A527ACA059A0ABBA3 /* SDLPerformAppServiceInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAppServiceInteraction.h; path = SmartDeviceLink/SDLPerformAppServiceInteraction.h; sourceTree = ""; }; + A28A3EF650501C5F764BD9255379B913 /* SDLFuelType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelType.h; path = SmartDeviceLink/SDLFuelType.h; sourceTree = ""; }; + A295FC118C7C689512C3EE0C5BEEA414 /* SDLDeviceInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceInfo.h; path = SmartDeviceLink/SDLDeviceInfo.h; sourceTree = ""; }; + A3B1CF955FF3C570C55831E8B43B2068 /* SDLUnsubscribeVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeVehicleDataResponse.m; path = SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m; sourceTree = ""; }; + A3ED9F7681E099143B800F40621D588E /* SDLMetadataTags.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMetadataTags.m; path = SmartDeviceLink/SDLMetadataTags.m; sourceTree = ""; }; + A41C2D42956A2BC9ED6622038B85ED8F /* SDLSubscribeButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButton.m; path = SmartDeviceLink/SDLSubscribeButton.m; sourceTree = ""; }; + A429FA0D271048EA825CC81CA78405F0 /* SDLDisplayType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayType.m; path = SmartDeviceLink/SDLDisplayType.m; sourceTree = ""; }; + A44C3037DEC000D177A8E94BECA4B95C /* SDLTemplateConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemplateConfiguration.m; path = SmartDeviceLink/SDLTemplateConfiguration.m; sourceTree = ""; }; + A47AC218EDD3DC3F3FF2978AEDCF2E78 /* SDLEncodedSyncPDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncodedSyncPDataResponse.h; path = SmartDeviceLink/SDLEncodedSyncPDataResponse.h; sourceTree = ""; }; + A499748AF54AFC5230B135A169E0F5AE /* SDLImageFieldName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageFieldName.h; path = SmartDeviceLink/SDLImageFieldName.h; sourceTree = ""; }; + A4D3B69BC21E62BA98351B1E601DBE97 /* SDLNotificationConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNotificationConstants.m; path = SmartDeviceLink/SDLNotificationConstants.m; sourceTree = ""; }; + A53632E3212C0B4683F082091768234F /* SDLTTSChunk.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTTSChunk.h; path = SmartDeviceLink/SDLTTSChunk.h; sourceTree = ""; }; + A56BE725C12073F229AA3AF5449958A1 /* SDLMyKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMyKey.h; path = SmartDeviceLink/SDLMyKey.h; sourceTree = ""; }; + A5B485EB6672E131B13E69E253F738D6 /* SDLIgnitionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIgnitionStatus.h; path = SmartDeviceLink/SDLIgnitionStatus.h; sourceTree = ""; }; + A5C983C7E972FDF63900044F87CBB3DC /* SDLUnsubscribeButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeButton.m; path = SmartDeviceLink/SDLUnsubscribeButton.m; sourceTree = ""; }; + A6077950B867FA52904D60977A57F2BD /* SDLVehicleDataResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataResult.h; path = SmartDeviceLink/SDLVehicleDataResult.h; sourceTree = ""; }; + A65FAB1A1AE67773721FE07A100A3E83 /* SDLDimension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDimension.m; path = SmartDeviceLink/SDLDimension.m; sourceTree = ""; }; + A6EFA8634E116455C1E294504A1C5622 /* SDLPermissionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionStatus.m; path = SmartDeviceLink/SDLPermissionStatus.m; sourceTree = ""; }; + A70CB0DAFC9A084992447D811A756878 /* SDLWindowTypeCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWindowTypeCapabilities.h; path = SmartDeviceLink/SDLWindowTypeCapabilities.h; sourceTree = ""; }; + A719199D3EBFE5A3C4619D3DC80ED70B /* SDLPresentChoiceSetOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresentChoiceSetOperation.m; path = SmartDeviceLink/SDLPresentChoiceSetOperation.m; sourceTree = ""; }; + A71C484F36F765E076597940091AFBAE /* SDLMassageZone.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageZone.h; path = SmartDeviceLink/SDLMassageZone.h; sourceTree = ""; }; + A775F59AD389385C91183BEAF59C659B /* SDLRequestType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRequestType.h; path = SmartDeviceLink/SDLRequestType.h; sourceTree = ""; }; + A77701E6DFFC3EB08EEC973A1F7D7190 /* SDLTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTimer.m; path = SmartDeviceLink/SDLTimer.m; sourceTree = ""; }; + A7934C16A837F342002F2415BDE82793 /* SDLReleaseInteriorVehicleDataModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReleaseInteriorVehicleDataModule.m; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m; sourceTree = ""; }; + A7AFAFFD39AE907E63F13217D5067A14 /* SDLStaticIconName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStaticIconName.h; path = SmartDeviceLink/SDLStaticIconName.h; sourceTree = ""; }; + A7E2467D5DC2019F260BD475A53CA1F3 /* SDLChoiceSetDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSetDelegate.h; path = SmartDeviceLink/SDLChoiceSetDelegate.h; sourceTree = ""; }; + A7E6588DB6AB90B5A4E955365321B36B /* SDLPredefinedWindows.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPredefinedWindows.h; path = SmartDeviceLink/SDLPredefinedWindows.h; sourceTree = ""; }; + A8431B0F75B502F5FE58F26285618A6D /* SDLLifecycleConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleConfiguration.m; path = SmartDeviceLink/SDLLifecycleConfiguration.m; sourceTree = ""; }; + A874F4C09FE07D7EF94135D92A5A2D31 /* SDLClusterModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClusterModeStatus.h; path = SmartDeviceLink/SDLClusterModeStatus.h; sourceTree = ""; }; + A875209328BA108883DB60F79AA77ACF /* EAAccessory+SDLProtocols.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EAAccessory+SDLProtocols.m"; path = "SmartDeviceLink/EAAccessory+SDLProtocols.m"; sourceTree = ""; }; + A9E0567B3A13DFD90B87980D7B9C2A35 /* SDLUnpublishAppServiceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnpublishAppServiceResponse.m; path = SmartDeviceLink/SDLUnpublishAppServiceResponse.m; sourceTree = ""; }; + AA978EFFF7802A57334EEC147C532F12 /* SDLECallConfirmationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLECallConfirmationStatus.h; path = SmartDeviceLink/SDLECallConfirmationStatus.h; sourceTree = ""; }; + AAD2B4E1C0F33BFEB252C2481A9032F2 /* SDLFocusableItemLocatorType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemLocatorType.h; path = SmartDeviceLink/SDLFocusableItemLocatorType.h; sourceTree = ""; }; + AAFA82C0BFDBC0D64BF1C7E2CF3ACF45 /* SDLLogConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogConfiguration.m; path = SmartDeviceLink/SDLLogConfiguration.m; sourceTree = ""; }; + AB15A2A894735B2E1F0B2159CA744E96 /* SDLDeleteInteractionChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteInteractionChoiceSet.h; path = SmartDeviceLink/SDLDeleteInteractionChoiceSet.h; sourceTree = ""; }; + AB19EDDD4140C1BE93B38F0AAAD31A3D /* SDLSISData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSISData.h; path = SmartDeviceLink/SDLSISData.h; sourceTree = ""; }; + AB95F07898AACB764288FB68551926A7 /* SDLUnregisterAppInterfaceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnregisterAppInterfaceResponse.m; path = SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m; sourceTree = ""; }; + ABC42E73E04AA89D2638CE5E086A0BAC /* SDLOasisAddress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOasisAddress.h; path = SmartDeviceLink/SDLOasisAddress.h; sourceTree = ""; }; + ABCC08D24761FA1AB3187DB24D8E870D /* SDLCloudAppProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCloudAppProperties.h; path = SmartDeviceLink/SDLCloudAppProperties.h; sourceTree = ""; }; + AC01AEE997639AA2260C7CB7AF71C4C3 /* SDLSubscribeWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeWayPointsResponse.h; path = SmartDeviceLink/SDLSubscribeWayPointsResponse.h; sourceTree = ""; }; + AC107A81E5890B57D66A4B85F2F5D37A /* SDLSeatLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatLocation.h; path = SmartDeviceLink/SDLSeatLocation.h; sourceTree = ""; }; + AC550FFCFB8CA9B1B0C09C0E26595391 /* SDLVideoStreamingCodec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingCodec.h; path = SmartDeviceLink/SDLVideoStreamingCodec.h; sourceTree = ""; }; + AC69D3F94604F5AE723986975A84A9B9 /* SDLSendHapticData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendHapticData.m; path = SmartDeviceLink/SDLSendHapticData.m; sourceTree = ""; }; + ACD66EC9F2852429481A7BADD06F50A5 /* SDLVideoStreamingProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingProtocol.m; path = SmartDeviceLink/SDLVideoStreamingProtocol.m; sourceTree = ""; }; + ACE4B9AC146F03631EC52683B808D9D2 /* SDLIAPSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPSession.m; path = SmartDeviceLink/SDLIAPSession.m; sourceTree = ""; }; + ADB87610BB6428EAF7555538EE3E9CF5 /* SDLGetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataResponse.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h; sourceTree = ""; }; + ADFFB6C5FDA442555BEF95532E12DEBC /* SDLAppServicesCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServicesCapabilities.h; path = SmartDeviceLink/SDLAppServicesCapabilities.h; sourceTree = ""; }; + AE1E83E5226544501924015F9D97A062 /* SDLAmbientLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAmbientLightStatus.h; path = SmartDeviceLink/SDLAmbientLightStatus.h; sourceTree = ""; }; + AE3A34EFCC4B7995EFC13CDFF7415942 /* SDLDeviceStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceStatus.m; path = SmartDeviceLink/SDLDeviceStatus.m; sourceTree = ""; }; + AE6AE53069716EDC4D28271639B1ECF6 /* SDLGlobalProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGlobalProperty.h; path = SmartDeviceLink/SDLGlobalProperty.h; sourceTree = ""; }; + AE8A6C8CDEC1BDBFE21E0C20040FB131 /* SDLRPCResponseNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCResponseNotification.m; path = SmartDeviceLink/SDLRPCResponseNotification.m; sourceTree = ""; }; + AEB84A7714266B9D07AF0529C3361737 /* SDLAlertManeuverResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertManeuverResponse.m; path = SmartDeviceLink/SDLAlertManeuverResponse.m; sourceTree = ""; }; + AEE5EB23993F004A5B8717B7811188D6 /* SDLGrid.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGrid.h; path = SmartDeviceLink/SDLGrid.h; sourceTree = ""; }; + AEF7CB1324D1DFFE0F15BCED4F422DE1 /* SDLControlFramePayloadVideoStartService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadVideoStartService.h; path = SmartDeviceLink/SDLControlFramePayloadVideoStartService.h; sourceTree = ""; }; + AF122075C0B55246AB9E41B45037309F /* SDLMediaServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaServiceManifest.m; path = SmartDeviceLink/SDLMediaServiceManifest.m; sourceTree = ""; }; + AF2EB782EEAA8529D44E257890E1E3A7 /* SDLMetadataType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMetadataType.h; path = SmartDeviceLink/SDLMetadataType.h; sourceTree = ""; }; + AF87D39D8C17C6A34DCC703C68689E08 /* SDLIAPTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPTransport.m; path = SmartDeviceLink/SDLIAPTransport.m; sourceTree = ""; }; + AFC91724BBDC797A1FBE9062D011BD62 /* SDLLogFileModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFileModule.h; path = SmartDeviceLink/SDLLogFileModule.h; sourceTree = ""; }; + AFE831074AA07078B0E351971A9F0E26 /* SDLBackgroundTaskManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBackgroundTaskManager.m; path = SmartDeviceLink/SDLBackgroundTaskManager.m; sourceTree = ""; }; + AFE83FD04F32E338D78150E93D001309 /* SDLWindowTypeCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWindowTypeCapabilities.m; path = SmartDeviceLink/SDLWindowTypeCapabilities.m; sourceTree = ""; }; + AFF3854A1D8BC5DD5484E62759DB92A8 /* SDLImageField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageField.m; path = SmartDeviceLink/SDLImageField.m; sourceTree = ""; }; + B006F22A5BF2027E0B3A10A8332C0AB1 /* SDLVehicleDataNotificationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataNotificationStatus.h; path = SmartDeviceLink/SDLVehicleDataNotificationStatus.h; sourceTree = ""; }; + B054B7658B858C19F36D425B913FCA53 /* SDLDeliveryMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeliveryMode.h; path = SmartDeviceLink/SDLDeliveryMode.h; sourceTree = ""; }; + B0659086D16C101E4B3240900C7412B1 /* SDLAudioType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioType.h; path = SmartDeviceLink/SDLAudioType.h; sourceTree = ""; }; + B0B485F2DBCDC2B0D33BE35382C71715 /* SDLOnVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnVehicleData.m; path = SmartDeviceLink/SDLOnVehicleData.m; sourceTree = ""; }; + B0DF64B830CBF8A2D3A1F42792E5E927 /* SDLAlertManeuver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertManeuver.h; path = SmartDeviceLink/SDLAlertManeuver.h; sourceTree = ""; }; + B10B875766B1C1B96DF356737056AB9A /* SDLPermissionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionManager.h; path = SmartDeviceLink/SDLPermissionManager.h; sourceTree = ""; }; + B12B2C77A2D099C8E8D0415A41140C39 /* SDLEncryptionManagerConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncryptionManagerConstants.m; path = SmartDeviceLink/SDLEncryptionManagerConstants.m; sourceTree = ""; }; + B1489C28FDE9BC04F3A6D6E52C5CCE68 /* SDLProtocolMessageDisassembler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessageDisassembler.h; path = SmartDeviceLink/SDLProtocolMessageDisassembler.h; sourceTree = ""; }; + B1737F018C1201A37BA9F403EA0E0019 /* CVPixelBufferRef+SDLUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CVPixelBufferRef+SDLUtil.m"; path = "SmartDeviceLink/CVPixelBufferRef+SDLUtil.m"; sourceTree = ""; }; + B1961973F2A5564B8E0FF5586067C528 /* SDLSequentialRPCRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSequentialRPCRequestOperation.m; path = SmartDeviceLink/SDLSequentialRPCRequestOperation.m; sourceTree = ""; }; + B1AFFBD09878FE64AE19E65AB5D0D9D0 /* SDLClimateControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClimateControlCapabilities.m; path = SmartDeviceLink/SDLClimateControlCapabilities.m; sourceTree = ""; }; + B1B7A6430BC02C0B52516656BA4B5DE6 /* SDLEndAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEndAudioPassThru.h; path = SmartDeviceLink/SDLEndAudioPassThru.h; sourceTree = ""; }; + B1CBAE6C6FCD662932F84593886D1FB9 /* SDLImageField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageField.h; path = SmartDeviceLink/SDLImageField.h; sourceTree = ""; }; + B2285BB6C866BBF444CF2BA47538A3F9 /* SDLRTPH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRTPH264Packetizer.h; path = SmartDeviceLink/SDLRTPH264Packetizer.h; sourceTree = ""; }; + B2A2921F1E5CA7555173077B04B2B228 /* SDLOnSystemCapabilityUpdated.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSystemCapabilityUpdated.h; path = SmartDeviceLink/SDLOnSystemCapabilityUpdated.h; sourceTree = ""; }; + B2B32C73887D39822D8BCF44DD62ADE0 /* SDLNavigationJunction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationJunction.h; path = SmartDeviceLink/SDLNavigationJunction.h; sourceTree = ""; }; + B2C0261F3896CD81D17FC9889CD6080E /* SDLCloudAppProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCloudAppProperties.m; path = SmartDeviceLink/SDLCloudAppProperties.m; sourceTree = ""; }; + B333958DAB7FA32DB021C89E59865776 /* SDLReleaseInteriorVehicleDataModuleResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReleaseInteriorVehicleDataModuleResponse.h; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h; sourceTree = ""; }; + B33B4BD373DC2C35A7D1CB0AC87B3376 /* SDLGetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataResponse.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m; sourceTree = ""; }; + B36217DF1D67CB1D77EF190BB99F29EE /* SDLShowConstantTBT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowConstantTBT.h; path = SmartDeviceLink/SDLShowConstantTBT.h; sourceTree = ""; }; + B3C88EDC28B4D78F4CF7643299FC87EE /* SDLLockScreenStatusManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenStatusManager.h; path = SmartDeviceLink/SDLLockScreenStatusManager.h; sourceTree = ""; }; + B3F2F3DE7B7885DE54384816E98EC71B /* SDLWindowType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWindowType.h; path = SmartDeviceLink/SDLWindowType.h; sourceTree = ""; }; + B4095FC3652FF81F7C17BD02355E6C58 /* SDLPermissionFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionFilter.h; path = SmartDeviceLink/SDLPermissionFilter.h; sourceTree = ""; }; + B431E7802E17E1F281E75FF94AC70BB4 /* SDLTouch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouch.h; path = SmartDeviceLink/SDLTouch.h; sourceTree = ""; }; + B4487AD673E64E1277940325C03E19A6 /* SDLButtonPressResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPressResponse.m; path = SmartDeviceLink/SDLButtonPressResponse.m; sourceTree = ""; }; + B458E71A46CC3C10BFED1AE0A05A3530 /* SDLResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResult.h; path = SmartDeviceLink/SDLResult.h; sourceTree = ""; }; + B4979E6424D2B5B676846623A6C7D4ED /* SDLError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLError.m; path = SmartDeviceLink/SDLError.m; sourceTree = ""; }; + B4B09C9B8D6AB14F61330FF6FB8E3257 /* BiSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BiSON-dummy.m"; sourceTree = ""; }; + B4BA26A3F50E769204A2072B622513BE /* SDLProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessage.h; path = SmartDeviceLink/SDLProtocolMessage.h; sourceTree = ""; }; + B4CDAA4EB638051C5A0474B84B73471A /* SDLIAPDataSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPDataSession.h; path = SmartDeviceLink/SDLIAPDataSession.h; sourceTree = ""; }; + B59517F7CBBA095EAF2897CDD2F95780 /* SDLOnAppInterfaceUnregistered.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAppInterfaceUnregistered.m; path = SmartDeviceLink/SDLOnAppInterfaceUnregistered.m; sourceTree = ""; }; + B5D86F64C557ECB55D17B7F743CE14A3 /* SDLLogTargetOSLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetOSLog.h; path = SmartDeviceLink/SDLLogTargetOSLog.h; sourceTree = ""; }; + B648DB91A3098DA7B1E0A5FEE3FE23A6 /* SDLRegisterAppInterface.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRegisterAppInterface.m; path = SmartDeviceLink/SDLRegisterAppInterface.m; sourceTree = ""; }; B658D9594E81D91F5F5FF21E8DD5044A /* Pods_MobileWeather.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MobileWeather.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B663F05251D2CEC64244343870CC61B4 /* SDLCreateInteractionChoiceSetResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateInteractionChoiceSetResponse.h; path = SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h; sourceTree = ""; }; - B66ACED6C9FBD518D39C8CDB3849E983 /* SDLSISData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSISData.h; path = SmartDeviceLink/SDLSISData.h; sourceTree = ""; }; - B6A8B110CC3F7818FE4E9FBF59DA7831 /* SDLMenuLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuLayout.m; path = SmartDeviceLink/SDLMenuLayout.m; sourceTree = ""; }; - B6F87FE59A859BA349CCDEFB67E12842 /* SDLPerformAppServiceInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAppServiceInteraction.m; path = SmartDeviceLink/SDLPerformAppServiceInteraction.m; sourceTree = ""; }; - B70A1025E2176483677FE18DB926E317 /* SDLUnpublishAppService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnpublishAppService.m; path = SmartDeviceLink/SDLUnpublishAppService.m; sourceTree = ""; }; - B7462198B3907DB7D73BC29114E41EAA /* TestSubscribeButtonObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TestSubscribeButtonObserver.h; path = SmartDeviceLink/TestSubscribeButtonObserver.h; sourceTree = ""; }; - B74B5802B681CDB3E7A210BB0EEEB7D0 /* SDLV1ProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV1ProtocolMessage.h; path = SmartDeviceLink/SDLV1ProtocolMessage.h; sourceTree = ""; }; - B7506383773C5D6EDE24916C30190446 /* SDLSetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetInteriorVehicleDataResponse.m; path = SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m; sourceTree = ""; }; - B753AC886E9C4581F99D019C2AE558E5 /* SDLOnRCStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnRCStatus.m; path = SmartDeviceLink/SDLOnRCStatus.m; sourceTree = ""; }; - B777CF456AFE62300FFF21779B554D81 /* SDLUnpublishAppServiceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnpublishAppServiceResponse.m; path = SmartDeviceLink/SDLUnpublishAppServiceResponse.m; sourceTree = ""; }; - B783431D6B033263CF2D12A61575D27F /* SDLDeleteSubMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteSubMenuResponse.h; path = SmartDeviceLink/SDLDeleteSubMenuResponse.h; sourceTree = ""; }; - B7A802ACC8F876FF3416830E0C985866 /* SDLReleaseInteriorVehicleDataModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReleaseInteriorVehicleDataModule.h; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h; sourceTree = ""; }; - B837E51434913D84E58B09A8B04A7E84 /* SDLSendHapticDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendHapticDataResponse.h; path = SmartDeviceLink/SDLSendHapticDataResponse.h; sourceTree = ""; }; - B8C8AC93E9BA7751B05993A0779C952D /* SDLDynamicMenuUpdateRunScore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDynamicMenuUpdateRunScore.m; path = SmartDeviceLink/SDLDynamicMenuUpdateRunScore.m; sourceTree = ""; }; - B9216714A4B6D6F70DA8E53B3F9320CA /* SDLChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSet.h; path = SmartDeviceLink/SDLChoiceSet.h; sourceTree = ""; }; - B965BA54B73AAB7DD28ADEF78BD168DA /* SDLHMICapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMICapabilities.h; path = SmartDeviceLink/SDLHMICapabilities.h; sourceTree = ""; }; - B96A1767D28449410C3C9A92255D7FA9 /* SDLV2ProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV2ProtocolMessage.m; path = SmartDeviceLink/SDLV2ProtocolMessage.m; sourceTree = ""; }; - B9F98F256A89963EAD420D333EB31F37 /* SDLPermissionElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionElement.m; path = SmartDeviceLink/SDLPermissionElement.m; sourceTree = ""; }; - BA157A4B51D5529A4050627BB1C06625 /* NSMapTable+Subscripting.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMapTable+Subscripting.h"; path = "SmartDeviceLink/NSMapTable+Subscripting.h"; sourceTree = ""; }; - BA1EE36D54B3E51448786809008AA6D3 /* SDLOnVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnVehicleData.m; path = SmartDeviceLink/SDLOnVehicleData.m; sourceTree = ""; }; - BA6551D7C8879D8E91C30E3DB455E34C /* SDLStartTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStartTime.m; path = SmartDeviceLink/SDLStartTime.m; sourceTree = ""; }; - BA836CEA6A1C9872BEEDA51C34FBD2BE /* SDLSendHapticDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendHapticDataResponse.m; path = SmartDeviceLink/SDLSendHapticDataResponse.m; sourceTree = ""; }; - BA96306DAEE794F0C9FC374D0556DB27 /* SDLVehicleDataResultCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataResultCode.h; path = SmartDeviceLink/SDLVehicleDataResultCode.h; sourceTree = ""; }; - BB04F62BFFD1CB792E34526F173104FF /* SDLFileManagerConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManagerConfiguration.h; path = SmartDeviceLink/SDLFileManagerConfiguration.h; sourceTree = ""; }; - BB097D4C8A058214236F5DA62E2D55D0 /* SDLScrollableMessageResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScrollableMessageResponse.h; path = SmartDeviceLink/SDLScrollableMessageResponse.h; sourceTree = ""; }; - BB4BC0AA3756089C2F90667540A4880D /* SDLEmergencyEventType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEmergencyEventType.m; path = SmartDeviceLink/SDLEmergencyEventType.m; sourceTree = ""; }; - BBBA34781B3503DDA95B0CAE4B42E438 /* SDLAudioControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioControlCapabilities.m; path = SmartDeviceLink/SDLAudioControlCapabilities.m; sourceTree = ""; }; - BBD4EDFBF8EE19B3FBA0F3448A7B54B1 /* SDLV2ProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV2ProtocolMessage.h; path = SmartDeviceLink/SDLV2ProtocolMessage.h; sourceTree = ""; }; - BC088F50F39FABB3A2835578295D6FCE /* SDLCheckChoiceVROptionalOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCheckChoiceVROptionalOperation.m; path = SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m; sourceTree = ""; }; - BC5A329C0A76812EF1D11777FDB665A8 /* SDLPrimaryAudioSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrimaryAudioSource.h; path = SmartDeviceLink/SDLPrimaryAudioSource.h; sourceTree = ""; }; - BD026A8DACC64BF05FE396E827AA092F /* SDLDriverDistractionState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDriverDistractionState.h; path = SmartDeviceLink/SDLDriverDistractionState.h; sourceTree = ""; }; - BDFE84853600B6F6F43B3F05550C2D91 /* SDLLockScreenStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenStatus.m; path = SmartDeviceLink/SDLLockScreenStatus.m; sourceTree = ""; }; - BE4CA9FAD52700FBCAD76C76239758B3 /* SDLSetDisplayLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetDisplayLayout.m; path = SmartDeviceLink/SDLSetDisplayLayout.m; sourceTree = ""; }; - BE76E8F8542A250DA8DF7178F62984AE /* SDLPermissionFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionFilter.m; path = SmartDeviceLink/SDLPermissionFilter.m; sourceTree = ""; }; - BE78691CB41A6B40E2140633BB7AA4A7 /* SDLOnPermissionsChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnPermissionsChange.h; path = SmartDeviceLink/SDLOnPermissionsChange.h; sourceTree = ""; }; - BEB3EB4F638B59511646F2FAB436EA28 /* SDLLayoutMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLayoutMode.m; path = SmartDeviceLink/SDLLayoutMode.m; sourceTree = ""; }; - BF23B355A2ED03E01AACD1364CDE9011 /* SDLUnsubscribeVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeVehicleDataResponse.h; path = SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h; sourceTree = ""; }; - BF3B79CB79DA4BF9796E3C06A34739EF /* BiSON.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BiSON.release.xcconfig; sourceTree = ""; }; - BF47CEA7D6AB8CCC5CC7B1A41D6BD3B0 /* SDLTouchEventCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchEventCapabilities.m; path = SmartDeviceLink/SDLTouchEventCapabilities.m; sourceTree = ""; }; - BF5EACB795A74BEECD2B2D57A5D74C00 /* SDLWayPointType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWayPointType.h; path = SmartDeviceLink/SDLWayPointType.h; sourceTree = ""; }; - BF737E9FCE10383D22E0AC258DC505F8 /* SDLRDSData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRDSData.m; path = SmartDeviceLink/SDLRDSData.m; sourceTree = ""; }; - BF781992E0488A0904062D8D4D4B7369 /* SDLGetSystemCapabilityResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetSystemCapabilityResponse.m; path = SmartDeviceLink/SDLGetSystemCapabilityResponse.m; sourceTree = ""; }; - BF812F295C7BC99D0E7260C44A30FA1A /* SDLDistanceUnit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDistanceUnit.h; path = SmartDeviceLink/SDLDistanceUnit.h; sourceTree = ""; }; - BF926AC06548F171C59AEE3EFD6254AA /* SDLPerformAudioPassThruResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAudioPassThruResponse.h; path = SmartDeviceLink/SDLPerformAudioPassThruResponse.h; sourceTree = ""; }; - C05B25FD08F4EDE81BBF8E97080430FB /* SDLTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTimer.h; path = SmartDeviceLink/SDLTimer.h; sourceTree = ""; }; - C0739DA52D74882686FE054F273446BD /* SDLOnSystemRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSystemRequest.m; path = SmartDeviceLink/SDLOnSystemRequest.m; sourceTree = ""; }; - C17FA75188543D16F15C11D353AD7B2D /* SDLRGBColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRGBColor.m; path = SmartDeviceLink/SDLRGBColor.m; sourceTree = ""; }; - C185C026B8EEB00D5EDD482420CEB1C7 /* SDLWeatherData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherData.h; path = SmartDeviceLink/SDLWeatherData.h; sourceTree = ""; }; - C18816A43577E38FE8908AD8B8B72321 /* SDLAudioPassThruCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioPassThruCapabilities.m; path = SmartDeviceLink/SDLAudioPassThruCapabilities.m; sourceTree = ""; }; + B692A71C44F049B8B83DDCF6B8927340 /* SDLTouchCoord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchCoord.h; path = SmartDeviceLink/SDLTouchCoord.h; sourceTree = ""; }; + B773DF4090413C4A96873F27804F6FE8 /* SDLSoftButtonManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonManager.h; path = SmartDeviceLink/SDLSoftButtonManager.h; sourceTree = ""; }; + B7A9DB758AF9D71ED356105B12453644 /* SDLSystemCapabilityObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityObserver.m; path = SmartDeviceLink/SDLSystemCapabilityObserver.m; sourceTree = ""; }; + B85B6A3BDFE2C9C0F9DE2E3DEDFAF475 /* SDLChangeRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChangeRegistration.m; path = SmartDeviceLink/SDLChangeRegistration.m; sourceTree = ""; }; + B85ED94C4814B0CC8AE4863BE9962AA3 /* SDLChoiceSetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceSetManager.m; path = SmartDeviceLink/SDLChoiceSetManager.m; sourceTree = ""; }; + B8C4AFF624FB42A6EEE527432AB9EAA9 /* CVPixelBufferRef+SDLUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CVPixelBufferRef+SDLUtil.h"; path = "SmartDeviceLink/CVPixelBufferRef+SDLUtil.h"; sourceTree = ""; }; + B9544257AFAAD1DB9C4EF3E6481FC4A6 /* SDLOnWayPointChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnWayPointChange.h; path = SmartDeviceLink/SDLOnWayPointChange.h; sourceTree = ""; }; + B9B1FC9F310952A5B90D5345964A38C2 /* SDLCarModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarModeStatus.m; path = SmartDeviceLink/SDLCarModeStatus.m; sourceTree = ""; }; + BA017EDCE303A08B1FC07733F845ED45 /* SDLGetInteriorVehicleDataConsent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataConsent.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m; sourceTree = ""; }; + BAD2C195FC0F61B8AE3C568DAACD11A4 /* SDLWiperStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWiperStatus.h; path = SmartDeviceLink/SDLWiperStatus.h; sourceTree = ""; }; + BAE82B84E1601BFF59D0A736CDEFE053 /* SDLHMIZoneCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMIZoneCapabilities.m; path = SmartDeviceLink/SDLHMIZoneCapabilities.m; sourceTree = ""; }; + BB22292F07E70E3D6FCDE83B18E1B929 /* SDLSetMediaClockTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetMediaClockTimer.m; path = SmartDeviceLink/SDLSetMediaClockTimer.m; sourceTree = ""; }; + BB36829AE73AF06B17E8AEA68D9D2473 /* SDLOnEncodedSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnEncodedSyncPData.h; path = SmartDeviceLink/SDLOnEncodedSyncPData.h; sourceTree = ""; }; + BB3973D6F3986950AA95D58E21EA4849 /* SDLModuleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleData.h; path = SmartDeviceLink/SDLModuleData.h; sourceTree = ""; }; + BBA4A2A569A352F32B460D479A488FD1 /* SDLShowConstantTBTResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowConstantTBTResponse.m; path = SmartDeviceLink/SDLShowConstantTBTResponse.m; sourceTree = ""; }; + BC2DDF4C8D4FF0BB610F87922F9DC8C1 /* SDLOnSystemCapabilityUpdated.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSystemCapabilityUpdated.m; path = SmartDeviceLink/SDLOnSystemCapabilityUpdated.m; sourceTree = ""; }; + BC44973166E4FD5059074DCF268D17F8 /* SDLPerformInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformInteraction.m; path = SmartDeviceLink/SDLPerformInteraction.m; sourceTree = ""; }; + BC48020E05365643AE6EA8547CC8AD26 /* SDLLogTargetFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetFile.m; path = SmartDeviceLink/SDLLogTargetFile.m; sourceTree = ""; }; + BCACAA14FF60CF41338964A0B4EB8421 /* SDLNavigationInstruction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationInstruction.m; path = SmartDeviceLink/SDLNavigationInstruction.m; sourceTree = ""; }; + BCBFC65AAAB2DE0ED2B74F8CE3002306 /* SDLControlFramePayloadType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadType.h; path = SmartDeviceLink/SDLControlFramePayloadType.h; sourceTree = ""; }; + BCDAA6BCF5B1B476FC7FBE2731FD3B66 /* SDLSoftButtonObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonObject.m; path = SmartDeviceLink/SDLSoftButtonObject.m; sourceTree = ""; }; + BD0A82F3B2EBBDF4D3C4FB965156E9D3 /* SDLCloseApplication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCloseApplication.h; path = SmartDeviceLink/SDLCloseApplication.h; sourceTree = ""; }; + BD5725BF0453F0E370C791AFFCA33AB0 /* SDLHybridAppPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHybridAppPreference.h; path = SmartDeviceLink/SDLHybridAppPreference.h; sourceTree = ""; }; + BDC78482302FF8AC794EE8765A179282 /* SDLTireStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTireStatus.m; path = SmartDeviceLink/SDLTireStatus.m; sourceTree = ""; }; + BE263957CF097F8038614F284D6503B2 /* SDLTextField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextField.h; path = SmartDeviceLink/SDLTextField.h; sourceTree = ""; }; + BEA81FC17FEEBB29EA50A437D78643CD /* SDLBackgroundTaskManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBackgroundTaskManager.h; path = SmartDeviceLink/SDLBackgroundTaskManager.h; sourceTree = ""; }; + BEEE2F7E9040BABB48B69701692886EF /* SDLOnPermissionsChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnPermissionsChange.h; path = SmartDeviceLink/SDLOnPermissionsChange.h; sourceTree = ""; }; + BEF6EAE77CAC2466EB562CFF77920BCC /* SDLSpeechCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeechCapabilities.h; path = SmartDeviceLink/SDLSpeechCapabilities.h; sourceTree = ""; }; + BF050F8D21022CD0E6C2AD5A17E6B282 /* SDLMassageModeData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageModeData.m; path = SmartDeviceLink/SDLMassageModeData.m; sourceTree = ""; }; + BF93E5FC62B485106482874C40C58DE6 /* SDLControlFramePayloadAudioStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadAudioStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m; sourceTree = ""; }; + BFF07975F02BE7BDA5311F3AD80E5CDA /* SDLProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocol.m; path = SmartDeviceLink/SDLProtocol.m; sourceTree = ""; }; + C0150C2F6FCAEDCCE0078FFF6A5F9854 /* SDLBitsPerSample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBitsPerSample.h; path = SmartDeviceLink/SDLBitsPerSample.h; sourceTree = ""; }; + C0CE5DCD736E603F98EFA824D23FDADB /* SDLStationIDNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStationIDNumber.m; path = SmartDeviceLink/SDLStationIDNumber.m; sourceTree = ""; }; + C0F9B31189558811D7A53ACF37EC44D9 /* SDLComponentVolumeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLComponentVolumeStatus.h; path = SmartDeviceLink/SDLComponentVolumeStatus.h; sourceTree = ""; }; + C10CCA1F0756004AD9418EF06446AD16 /* SDLAudioPassThruCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioPassThruCapabilities.h; path = SmartDeviceLink/SDLAudioPassThruCapabilities.h; sourceTree = ""; }; C197364227C0998A9025317EAD699894 /* SmartDeviceLink.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SmartDeviceLink.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - C1B0FF7E975829A08686F5A95439E6AF /* SDLRegisterAppInterface.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRegisterAppInterface.m; path = SmartDeviceLink/SDLRegisterAppInterface.m; sourceTree = ""; }; - C1B55A5D6E1EA252835733A44DF307EA /* SDLPerformAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAudioPassThru.m; path = SmartDeviceLink/SDLPerformAudioPassThru.m; sourceTree = ""; }; - C1B6C3AA7551CF9A652411C8E74DBF34 /* SDLSetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetInteriorVehicleDataResponse.h; path = SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h; sourceTree = ""; }; - C1C6FBB24C1BC5CA5A7F2B3C4FFED418 /* SDLTurn.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTurn.m; path = SmartDeviceLink/SDLTurn.m; sourceTree = ""; }; - C1F3C424DD2CB129EBF8CFDEE9E339E1 /* SDLTemplateColorScheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemplateColorScheme.h; path = SmartDeviceLink/SDLTemplateColorScheme.h; sourceTree = ""; }; - C1F9C5416BB8D0ED9335E1A889B51A93 /* SDLCloseApplicationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCloseApplicationResponse.m; path = SmartDeviceLink/SDLCloseApplicationResponse.m; sourceTree = ""; }; - C2325615A6C0BEAE35B68E675087D313 /* SDLRPCRequestNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCRequestNotification.m; path = SmartDeviceLink/SDLRPCRequestNotification.m; sourceTree = ""; }; - C23DBC473A201419B768CC403C329AA9 /* SDLReleaseInteriorVehicleDataModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReleaseInteriorVehicleDataModule.m; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m; sourceTree = ""; }; - C2465E4A570C1A14AA2E12DA0AE6B8C7 /* SDLCarModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarModeStatus.h; path = SmartDeviceLink/SDLCarModeStatus.h; sourceTree = ""; }; - C24AADEEDA015C43C563DB8822396C0A /* SDLDeleteInteractionChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteInteractionChoiceSet.h; path = SmartDeviceLink/SDLDeleteInteractionChoiceSet.h; sourceTree = ""; }; - C26DB840FED234F39D27C9C871BAA550 /* SDLOnButtonEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnButtonEvent.h; path = SmartDeviceLink/SDLOnButtonEvent.h; sourceTree = ""; }; - C2984A671B556FF5F5714ABB2F86EE8A /* EAAccessoryManager+SDLProtocols.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EAAccessoryManager+SDLProtocols.m"; path = "SmartDeviceLink/EAAccessoryManager+SDLProtocols.m"; sourceTree = ""; }; - C2B0CA84D3B9C68D496FD66419D566C3 /* SDLUpdateTurnListResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateTurnListResponse.h; path = SmartDeviceLink/SDLUpdateTurnListResponse.h; sourceTree = ""; }; - C2FA6304D4FBBE0B4EAE346B56077504 /* SDLOnCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnCommand.h; path = SmartDeviceLink/SDLOnCommand.h; sourceTree = ""; }; - C30E238F7AB23166E9F59B321FF1EDFE /* SDLTemperature.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemperature.m; path = SmartDeviceLink/SDLTemperature.m; sourceTree = ""; }; - C336638C51C89E3892AB1E786D8D97A6 /* SDLRPCMessageType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCMessageType.h; path = SmartDeviceLink/SDLRPCMessageType.h; sourceTree = ""; }; - C3BEF3FC0B61392A43041463481D99DC /* SDLLogFileModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFileModule.m; path = SmartDeviceLink/SDLLogFileModule.m; sourceTree = ""; }; - C3BF3454AF3C68B1EDF2469AF1478D8F /* SDLUnpublishAppServiceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnpublishAppServiceResponse.h; path = SmartDeviceLink/SDLUnpublishAppServiceResponse.h; sourceTree = ""; }; - C3EBAD2DFAF1E748D9CE7A71A8F7ADD2 /* SDLArtwork.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLArtwork.m; path = SmartDeviceLink/SDLArtwork.m; sourceTree = ""; }; - C3EBDE4679B3284A0BCAA44A5D195BF4 /* SDLVehicleType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleType.m; path = SmartDeviceLink/SDLVehicleType.m; sourceTree = ""; }; - C3F129DBFD0A6763197FE363BF2CE288 /* SDLGetCloudAppProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetCloudAppProperties.m; path = SmartDeviceLink/SDLGetCloudAppProperties.m; sourceTree = ""; }; - C4251A6C0C3D88AFE2E87AE0572B7B32 /* SDLStreamingMediaManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaManager.m; path = SmartDeviceLink/SDLStreamingMediaManager.m; sourceTree = ""; }; - C42BD5083909F2F176B3762128DD9B06 /* SDLAddCommandResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddCommandResponse.h; path = SmartDeviceLink/SDLAddCommandResponse.h; sourceTree = ""; }; - C4A900A3C04D81E8AFE979A9CD841CF8 /* SDLTouchEventCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchEventCapabilities.h; path = SmartDeviceLink/SDLTouchEventCapabilities.h; sourceTree = ""; }; - C4AC1439B1DAC65A9F876F7CBE5B8E3F /* SDLSetMediaClockTimerResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetMediaClockTimerResponse.h; path = SmartDeviceLink/SDLSetMediaClockTimerResponse.h; sourceTree = ""; }; - C4F2955E72C9BC6322E9F39A5C0BCCE7 /* SDLRPCResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCResponse.h; path = SmartDeviceLink/SDLRPCResponse.h; sourceTree = ""; }; - C55134DFAC0BA632F4739F88E9C22F64 /* SDLShowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowResponse.h; path = SmartDeviceLink/SDLShowResponse.h; sourceTree = ""; }; - C56E766AC9995A99617E24C80F827D43 /* SDLControlFramePayloadConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadConstants.h; path = SmartDeviceLink/SDLControlFramePayloadConstants.h; sourceTree = ""; }; - C578DE7BA9E0FFC539C979EB88551881 /* SDLDriverDistractionState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDriverDistractionState.m; path = SmartDeviceLink/SDLDriverDistractionState.m; sourceTree = ""; }; - C588AF22E8C9EBAD69A20BE6D4709DD3 /* SDLHMISettingsControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMISettingsControlData.m; path = SmartDeviceLink/SDLHMISettingsControlData.m; sourceTree = ""; }; + C1ABA54275646D92071529E1091B1333 /* SDLLocationDetails.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLocationDetails.m; path = SmartDeviceLink/SDLLocationDetails.m; sourceTree = ""; }; + C1D81050F28D62B6EDECEBB7DF2391A0 /* bson_util.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = bson_util.c; path = src/bson_util.c; sourceTree = ""; }; + C1E045F73DED94B7C08D794BBB769E4B /* SDLRegisterAppInterfaceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRegisterAppInterfaceResponse.h; path = SmartDeviceLink/SDLRegisterAppInterfaceResponse.h; sourceTree = ""; }; + C22DA0D19740BC3671D0F671BB54CCEC /* SDLPowerModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPowerModeStatus.h; path = SmartDeviceLink/SDLPowerModeStatus.h; sourceTree = ""; }; + C23EE35725C46B65EF548339396EBAE4 /* SDLServiceUpdateReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLServiceUpdateReason.m; path = SmartDeviceLink/SDLServiceUpdateReason.m; sourceTree = ""; }; + C2AA680B3D37F013ECB5B16618A27EFA /* SDLVoiceCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommand.m; path = SmartDeviceLink/SDLVoiceCommand.m; sourceTree = ""; }; + C318BCF5948BE73D137E480D096B323B /* SDLDateTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDateTime.m; path = SmartDeviceLink/SDLDateTime.m; sourceTree = ""; }; + C33288F60F5B286E2B4C53A09F9694A8 /* SDLKeyboardLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardLayout.h; path = SmartDeviceLink/SDLKeyboardLayout.h; sourceTree = ""; }; + C34405251FE0562CCA9FEA6FC884A66E /* bson_array.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = bson_array.c; path = src/bson_array.c; sourceTree = ""; }; + C38C988FF2BC04E3BECCA8B8B2BBB7E1 /* SDLControlFramePayloadRPCStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRPCStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h; sourceTree = ""; }; + C3C759E34418D5E3F059C76D2E9BD03F /* bson_array.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_array.h; path = src/bson_array.h; sourceTree = ""; }; + C3F279ED37C2B8521FA6B95F37C61B6F /* SDLGetVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetVehicleData.h; path = SmartDeviceLink/SDLGetVehicleData.h; sourceTree = ""; }; + C449475F6E0CE07B003A60F21E17DFCC /* SDLDisplayCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayCapabilities.m; path = SmartDeviceLink/SDLDisplayCapabilities.m; sourceTree = ""; }; + C44CB14CFDBEDB6BE91BBEE9F2AEBFF5 /* SDLSetMediaClockTimerResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetMediaClockTimerResponse.m; path = SmartDeviceLink/SDLSetMediaClockTimerResponse.m; sourceTree = ""; }; + C4BE27470822649960E3E82D1CCE585F /* SDLOnCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnCommand.m; path = SmartDeviceLink/SDLOnCommand.m; sourceTree = ""; }; + C4CE7887593CC1FC33CAE5D179B39AC5 /* BiSON.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BiSON.release.xcconfig; sourceTree = ""; }; + C4DE74679FEA4D70BF5121E2F06EE9C6 /* SDLRPCRequestNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCRequestNotification.h; path = SmartDeviceLink/SDLRPCRequestNotification.h; sourceTree = ""; }; + C4F6558A305336CC62BB5516E27A38C3 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = ja.lproj/SDLLockScreen.strings; sourceTree = ""; }; + C4F791D12BE19DF77A3BCC8EEB641295 /* SDLV2ProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV2ProtocolMessage.h; path = SmartDeviceLink/SDLV2ProtocolMessage.h; sourceTree = ""; }; + C4FFC5C7A65B24AFC32457EF2DE79160 /* SDLVideoStreamingCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingCapability.h; path = SmartDeviceLink/SDLVideoStreamingCapability.h; sourceTree = ""; }; + C57AA9193B116618556C40DAECF8CF3A /* SDLLightState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightState.h; path = SmartDeviceLink/SDLLightState.h; sourceTree = ""; }; + C57EE820C482DB351A5D22661395FD35 /* SDLVehicleDataResultCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataResultCode.h; path = SmartDeviceLink/SDLVehicleDataResultCode.h; sourceTree = ""; }; + C594D7D022ADDBB1CCA1C39D63737DD4 /* SDLV2ProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV2ProtocolHeader.m; path = SmartDeviceLink/SDLV2ProtocolHeader.m; sourceTree = ""; }; + C5C00931EAB51480DCF119086CEF8E38 /* SDLIconArchiveFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIconArchiveFile.m; path = SmartDeviceLink/SDLIconArchiveFile.m; sourceTree = ""; }; + C5CC066A137773D4739994E979CF375D /* SDLModuleInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleInfo.h; path = SmartDeviceLink/SDLModuleInfo.h; sourceTree = ""; }; + C5EFD2B1C3124A2AEC3850F1E0F152B5 /* SDLSeatMemoryActionType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatMemoryActionType.h; path = SmartDeviceLink/SDLSeatMemoryActionType.h; sourceTree = ""; }; + C60EA5909682DF758FBFC7F0114743A5 /* NSBundle+SDLBundle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+SDLBundle.m"; path = "SmartDeviceLink/NSBundle+SDLBundle.m"; sourceTree = ""; }; + C641082806A93BA26912DBABD29845FC /* SDLSubscribeVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeVehicleDataResponse.m; path = SmartDeviceLink/SDLSubscribeVehicleDataResponse.m; sourceTree = ""; }; C64A1B5B79B529141EBEF99FD0560328 /* BiSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BiSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C6544B04071C10C4B60339851B191DEB /* SDLProtocolConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolConstants.m; path = SmartDeviceLink/SDLProtocolConstants.m; sourceTree = ""; }; - C6724681B057A0BC81FDCBB5C63008EA /* SDLVoiceCommandManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommandManager.h; path = SmartDeviceLink/SDLVoiceCommandManager.h; sourceTree = ""; }; - C6E24BC1F0E1A7E4BCD68AF3379A7B00 /* SDLIAPTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPTransport.h; path = SmartDeviceLink/SDLIAPTransport.h; sourceTree = ""; }; - C70B2859CDC07782CF755E851575239E /* SDLDeviceInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceInfo.h; path = SmartDeviceLink/SDLDeviceInfo.h; sourceTree = ""; }; - C754499B66CE148E693BB1FF1F468E2A /* SDLSyncPDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncPDataResponse.h; path = SmartDeviceLink/SDLSyncPDataResponse.h; sourceTree = ""; }; - C78E389C985303221ECDC5D18E6DFD51 /* SDLPutFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPutFile.h; path = SmartDeviceLink/SDLPutFile.h; sourceTree = ""; }; - C793CE4C5804B98CF64AF6F63FDCFD33 /* SDLLightControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightControlData.h; path = SmartDeviceLink/SDLLightControlData.h; sourceTree = ""; }; - C8C16DD6E47A4B9FA795780317963CB0 /* SDLDeleteFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFileResponse.h; path = SmartDeviceLink/SDLDeleteFileResponse.h; sourceTree = ""; }; - C9122F060BC11803A66A7401A0F946FD /* SDLPresetBankCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresetBankCapabilities.m; path = SmartDeviceLink/SDLPresetBankCapabilities.m; sourceTree = ""; }; - C9134305738F77B0E852842422F81D36 /* SDLPinchGesture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPinchGesture.h; path = SmartDeviceLink/SDLPinchGesture.h; sourceTree = ""; }; - C93964422ECEFB35C0A15E1AC214E587 /* SDLProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessage.h; path = SmartDeviceLink/SDLProtocolMessage.h; sourceTree = ""; }; - C9703269E7ADB6FFB0BAC46F741BF3E1 /* SDLMassageZone.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageZone.h; path = SmartDeviceLink/SDLMassageZone.h; sourceTree = ""; }; - C9CB658027934C58CB5E44288BDE79BE /* SDLOasisAddress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOasisAddress.h; path = SmartDeviceLink/SDLOasisAddress.h; sourceTree = ""; }; - CA172B821F0003F4CA4CF26BF6E2EF6B /* SDLEncryptionManagerConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncryptionManagerConstants.m; path = SmartDeviceLink/SDLEncryptionManagerConstants.m; sourceTree = ""; }; - CA602EC4E5C28004D96933F0A7FC26A5 /* SDLNavigationAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationAction.m; path = SmartDeviceLink/SDLNavigationAction.m; sourceTree = ""; }; - CA63DD963834C98C595F586200D303A2 /* SDLUnpublishAppService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnpublishAppService.h; path = SmartDeviceLink/SDLUnpublishAppService.h; sourceTree = ""; }; - CA97A48978C804461E3488F28629372A /* SDLLogTargetOSLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetOSLog.h; path = SmartDeviceLink/SDLLogTargetOSLog.h; sourceTree = ""; }; + C65504710D6D14CB30F9BA892B1A289C /* SDLVehicleType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleType.h; path = SmartDeviceLink/SDLVehicleType.h; sourceTree = ""; }; + C6706EFEDF66F1A0AD318CAF53CE694E /* SDLSetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetInteriorVehicleDataResponse.h; path = SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h; sourceTree = ""; }; + C68E00EA0C35209A7F5D2308107243E6 /* SDLChangeRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChangeRegistration.h; path = SmartDeviceLink/SDLChangeRegistration.h; sourceTree = ""; }; + C7416C95E6F086E3A8112582FBA43F5B /* SDLTurn.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTurn.m; path = SmartDeviceLink/SDLTurn.m; sourceTree = ""; }; + C7A3524440606449BF1F506F67159172 /* SDLGetFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetFile.h; path = SmartDeviceLink/SDLGetFile.h; sourceTree = ""; }; + C7F54D6509DB0FC7F6534EE13492D451 /* SDLSeatMemoryAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatMemoryAction.m; path = SmartDeviceLink/SDLSeatMemoryAction.m; sourceTree = ""; }; + C840BD5423689277D6E9D631A85F41E7 /* SDLCreateInteractionChoiceSetResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateInteractionChoiceSetResponse.m; path = SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m; sourceTree = ""; }; + C857DA8AD51F0B0A8D7F9682E8435BC5 /* SDLListFiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFiles.h; path = SmartDeviceLink/SDLListFiles.h; sourceTree = ""; }; + C8817A9FA9D65B3370E04B0D63880BDF /* SDLGenericResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGenericResponse.m; path = SmartDeviceLink/SDLGenericResponse.m; sourceTree = ""; }; + C89447CA3A2D998A71484D9D7EEC0D6E /* SDLEndAudioPassThruResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEndAudioPassThruResponse.m; path = SmartDeviceLink/SDLEndAudioPassThruResponse.m; sourceTree = ""; }; + C8CB8529A9386D82BBB3D5191EF06A18 /* SDLDeviceStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceStatus.h; path = SmartDeviceLink/SDLDeviceStatus.h; sourceTree = ""; }; + C93D02DE99AD9CEDF69F718811048F8A /* SmartDeviceLink-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SmartDeviceLink-dummy.m"; sourceTree = ""; }; + C98E0A40D9302E06972A9D641D33736F /* SDLOnSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSyncPData.h; path = SmartDeviceLink/SDLOnSyncPData.h; sourceTree = ""; }; + C9CA43544C48DA82A71EA58A4D291F62 /* SDLVideoStreamingProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingProtocol.h; path = SmartDeviceLink/SDLVideoStreamingProtocol.h; sourceTree = ""; }; + C9F308B39068D7126A74593F5FF3DEB4 /* SDLVideoStreamingFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingFormat.m; path = SmartDeviceLink/SDLVideoStreamingFormat.m; sourceTree = ""; }; + CA1172141E4430CBCB9C7B46FA2362F4 /* SDLUnsubscribeWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeWayPoints.m; path = SmartDeviceLink/SDLUnsubscribeWayPoints.m; sourceTree = ""; }; + CA15ECE757FC373C85DCC38EC5858576 /* SDLSlider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSlider.m; path = SmartDeviceLink/SDLSlider.m; sourceTree = ""; }; + CA4E2E2D6448CAAB671EE663AF8C9038 /* SDLUpdateTurnListResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateTurnListResponse.m; path = SmartDeviceLink/SDLUpdateTurnListResponse.m; sourceTree = ""; }; + CAD566B149788CE2A5407D1274A17F00 /* SDLMenuLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuLayout.m; path = SmartDeviceLink/SDLMenuLayout.m; sourceTree = ""; }; CADB648304E13078D32B3FD465D4550E /* Pods-MobileWeather.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MobileWeather.modulemap"; sourceTree = ""; }; - CAFA794CC2E87DB83C46EC3AF3A8F7CD /* SDLVentilationMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVentilationMode.h; path = SmartDeviceLink/SDLVentilationMode.h; sourceTree = ""; }; - CB1A8B920D83FAD8420BFA57B9376BD2 /* SDLProtocolConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolConstants.h; path = SmartDeviceLink/SDLProtocolConstants.h; sourceTree = ""; }; - CB3E5816DA0A95C87F21D3CEB5CDB491 /* SDLGetWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetWayPointsResponse.h; path = SmartDeviceLink/SDLGetWayPointsResponse.h; sourceTree = ""; }; - CB3FBF9629A46D84216A895E9CC557D0 /* SDLDeleteCommandResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteCommandResponse.m; path = SmartDeviceLink/SDLDeleteCommandResponse.m; sourceTree = ""; }; - CB91F38B3D46D7DF0F73684B53D3BDD8 /* SDLPerformInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformInteraction.m; path = SmartDeviceLink/SDLPerformInteraction.m; sourceTree = ""; }; - CB94E5F60A8212C2F399605867F18BD7 /* SDLEncryptionConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncryptionConfiguration.h; path = SmartDeviceLink/SDLEncryptionConfiguration.h; sourceTree = ""; }; + CB073ABF5500F256EAF20D2D4DC6D70A /* SDLOnLanguageChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnLanguageChange.m; path = SmartDeviceLink/SDLOnLanguageChange.m; sourceTree = ""; }; + CB10D3679A8E589017A8F931A055A746 /* SDLNavigationServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationServiceManifest.m; path = SmartDeviceLink/SDLNavigationServiceManifest.m; sourceTree = ""; }; + CB1A61D4933119EA30B60E11CB2A55E4 /* SDLManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLManager.h; path = SmartDeviceLink/SDLManager.h; sourceTree = ""; }; + CB8CEF2E6739A98ACE9DB96F08CB2ED3 /* SDLTurn.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTurn.h; path = SmartDeviceLink/SDLTurn.h; sourceTree = ""; }; + CBB1E250DE3E63DEB5019B86C69B0AF4 /* SDLDIDResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDIDResult.m; path = SmartDeviceLink/SDLDIDResult.m; sourceTree = ""; }; + CBC0300359DEB43A7C09E1D901FCA137 /* SDLAppServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceManifest.m; path = SmartDeviceLink/SDLAppServiceManifest.m; sourceTree = ""; }; + CBCB16E496EFD6B64945F52DA1861BB5 /* SDLRadioControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioControlCapabilities.m; path = SmartDeviceLink/SDLRadioControlCapabilities.m; sourceTree = ""; }; + CBCE52F73B99C2EB241CED559CC155FA /* SDLTextAlignment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextAlignment.m; path = SmartDeviceLink/SDLTextAlignment.m; sourceTree = ""; }; CBDFD38C9C935811D67494103D5F4E6C /* Pods-MobileWeather-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MobileWeather-acknowledgements.plist"; sourceTree = ""; }; - CBEBD6445D569D27DF83CCC6C9F8DC0E /* SDLDeleteWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteWindow.h; path = SmartDeviceLink/SDLDeleteWindow.h; sourceTree = ""; }; - CC4534AF33C9B2498C5DB1A3A5B390C3 /* SDLPermissionItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionItem.h; path = SmartDeviceLink/SDLPermissionItem.h; sourceTree = ""; }; - CC66876557B0753F1E8075EEECFA7C06 /* SDLAlertManeuverResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertManeuverResponse.h; path = SmartDeviceLink/SDLAlertManeuverResponse.h; sourceTree = ""; }; - CCD15C77520926C2D6DE6C44A380FD73 /* SDLSystemCapabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityManager.h; path = SmartDeviceLink/SDLSystemCapabilityManager.h; sourceTree = ""; }; - CCDD6594ECBBE163AA3B6819EAECDD83 /* SDLOnSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSyncPData.h; path = SmartDeviceLink/SDLOnSyncPData.h; sourceTree = ""; }; - CCEFC169422E967386D07342ED9E5B8F /* SDLCompassDirection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCompassDirection.h; path = SmartDeviceLink/SDLCompassDirection.h; sourceTree = ""; }; - CD3B8A988BB67EDC48B5BBDC39F44164 /* SDLButtonPressMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPressMode.m; path = SmartDeviceLink/SDLButtonPressMode.m; sourceTree = ""; }; - CDA21BAF0A80764F863AA3136B132BCC /* SDLLogTarget.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTarget.h; path = SmartDeviceLink/SDLLogTarget.h; sourceTree = ""; }; - CDC3E3043CC87C0BB89DD7FD7BCE772A /* SDLControlFramePayloadRPCStartService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRPCStartService.h; path = SmartDeviceLink/SDLControlFramePayloadRPCStartService.h; sourceTree = ""; }; - CE545916C7D8D475FB552FAAE7AD0286 /* SDLControlFramePayloadVideoStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadVideoStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h; sourceTree = ""; }; - CE553E3605D4CBF175959C2A6AFFA992 /* SDLOnEncodedSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnEncodedSyncPData.h; path = SmartDeviceLink/SDLOnEncodedSyncPData.h; sourceTree = ""; }; - CF03C1888031E3BA51620916196E3F13 /* SDLMediaClockFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaClockFormat.h; path = SmartDeviceLink/SDLMediaClockFormat.h; sourceTree = ""; }; - CF06C121B2AD922B5E0F2F9075C29C29 /* SDLDisplayCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayCapability.m; path = SmartDeviceLink/SDLDisplayCapability.m; sourceTree = ""; }; - CF4CCE42229C9A7F2C4FACE1B032A768 /* SDLSoftButtonReplaceOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonReplaceOperation.m; path = SmartDeviceLink/SDLSoftButtonReplaceOperation.m; sourceTree = ""; }; - CF64BCEDC0A50BBDFC1D74C9A0243BEA /* SDLGetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataResponse.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h; sourceTree = ""; }; - CF7F2682404352A5DA48275A68971699 /* SDLMassageCushionFirmness.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageCushionFirmness.m; path = SmartDeviceLink/SDLMassageCushionFirmness.m; sourceTree = ""; }; - CF9460897660A78535CEA62503CB6771 /* SDLRPCMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCMessage.m; path = SmartDeviceLink/SDLRPCMessage.m; sourceTree = ""; }; - CFAE2994F819888468C9D2EAC8918FDF /* SDLLogTargetFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetFile.h; path = SmartDeviceLink/SDLLogTargetFile.h; sourceTree = ""; }; - CFAE9C8809F27A20EA7BA366B50D1D09 /* SDLPCMAudioConverter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPCMAudioConverter.m; path = SmartDeviceLink/SDLPCMAudioConverter.m; sourceTree = ""; }; - CFE665A143945D4F523E9805AC91DEE2 /* SDLOnCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnCommand.m; path = SmartDeviceLink/SDLOnCommand.m; sourceTree = ""; }; - CFFD94F699E758B296EBA10E07F683B1 /* SDLLanguage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLanguage.h; path = SmartDeviceLink/SDLLanguage.h; sourceTree = ""; }; - D0219EB46973A2D486CE1181ECA2FE0F /* SDLPerformInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformInteractionResponse.m; path = SmartDeviceLink/SDLPerformInteractionResponse.m; sourceTree = ""; }; - D030FEAB644BB0DA021BED593500842A /* SDLGetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataResponse.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m; sourceTree = ""; }; - D04E8AFADA5F4A1EFE947D76FC10E211 /* SDLBeltStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBeltStatus.h; path = SmartDeviceLink/SDLBeltStatus.h; sourceTree = ""; }; - D08EB5D57959DC19650C80C22DAB3BE6 /* SDLPrimaryAudioSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrimaryAudioSource.m; path = SmartDeviceLink/SDLPrimaryAudioSource.m; sourceTree = ""; }; - D0981807051884EEA83FBA93119C3343 /* SDLAlertManeuverResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertManeuverResponse.m; path = SmartDeviceLink/SDLAlertManeuverResponse.m; sourceTree = ""; }; - D0C18115663476B7D482AC09B3DC33F5 /* SDLAsynchronousRPCRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousRPCRequestOperation.h; path = SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h; sourceTree = ""; }; - D1451982C674F8C57D7939A9DC79695B /* SDLSubscribeButtonObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonObserver.m; path = SmartDeviceLink/SDLSubscribeButtonObserver.m; sourceTree = ""; }; - D16DBA7C10C34D2E22A67C65927F8D25 /* SDLTemperature.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemperature.h; path = SmartDeviceLink/SDLTemperature.h; sourceTree = ""; }; - D1D048D4CD12A7F93CA9F3BEB86BB85C /* SDLGetDTCsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetDTCsResponse.h; path = SmartDeviceLink/SDLGetDTCsResponse.h; sourceTree = ""; }; - D22DDB6D7F55F6ED4E2E018BE51EB987 /* SDLWeatherServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherServiceData.h; path = SmartDeviceLink/SDLWeatherServiceData.h; sourceTree = ""; }; - D27F5613B42AA93A93AA3040A73BF94C /* SDLGetInteriorVehicleDataConsent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataConsent.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m; sourceTree = ""; }; - D28C9BD0381F41CC4ECCDB3308A2629C /* SDLSetGlobalPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetGlobalPropertiesResponse.m; path = SmartDeviceLink/SDLSetGlobalPropertiesResponse.m; sourceTree = ""; }; - D34DA30DA43361D2C480A221DBB67CD0 /* SDLPresentChoiceSetOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresentChoiceSetOperation.h; path = SmartDeviceLink/SDLPresentChoiceSetOperation.h; sourceTree = ""; }; - D37716D691664883B517AA8C5B0D4D48 /* SDLLockScreenRootViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenRootViewController.h; path = SmartDeviceLink/SDLLockScreenRootViewController.h; sourceTree = ""; }; - D3B8CF68FC478BF3823F6C4D2995ED5A /* SDLSyncPDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncPDataResponse.m; path = SmartDeviceLink/SDLSyncPDataResponse.m; sourceTree = ""; }; - D3DA4CCC5B1886D2AC2DC948D22D54C9 /* SDLFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFile.m; path = SmartDeviceLink/SDLFile.m; sourceTree = ""; }; - D42E48D6CC0F6C034CFD9C9FF1EED954 /* SDLSupportedSeat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSupportedSeat.m; path = SmartDeviceLink/SDLSupportedSeat.m; sourceTree = ""; }; - D454F140BD2837E493EFB52D5D399FF6 /* SDLControlFramePayloadVideoStartService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadVideoStartService.h; path = SmartDeviceLink/SDLControlFramePayloadVideoStartService.h; sourceTree = ""; }; - D476F4C1BDF441FDB174D26DB9437AD3 /* SDLSubscribeButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButton.m; path = SmartDeviceLink/SDLSubscribeButton.m; sourceTree = ""; }; - D48DCBCD7C2098396B010A87235DBEC7 /* SDLFuelRange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelRange.h; path = SmartDeviceLink/SDLFuelRange.h; sourceTree = ""; }; - D4966D54B828A01F82DC4326A367A6B3 /* SDLDynamicMenuUpdateRunScore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDynamicMenuUpdateRunScore.h; path = SmartDeviceLink/SDLDynamicMenuUpdateRunScore.h; sourceTree = ""; }; - D4C1DE17C70124F2EC7ADB7C93FCA111 /* SDLDisplayCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayCapabilities.h; path = SmartDeviceLink/SDLDisplayCapabilities.h; sourceTree = ""; }; - D516C013762946799CEEFE4D998577D4 /* SDLRAWH264Packetizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRAWH264Packetizer.m; path = SmartDeviceLink/SDLRAWH264Packetizer.m; sourceTree = ""; }; - D55417FE7F7FC0C9B4F34CAE0D38AC5C /* SDLAppServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceManifest.m; path = SmartDeviceLink/SDLAppServiceManifest.m; sourceTree = ""; }; - D570A1BD7CC0E6336C341706DE07CA56 /* SDLWeatherAlert.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherAlert.m; path = SmartDeviceLink/SDLWeatherAlert.m; sourceTree = ""; }; - D68BE4979539A4404F1FA1C07DC34D55 /* SDLSpeechCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeechCapabilities.m; path = SmartDeviceLink/SDLSpeechCapabilities.m; sourceTree = ""; }; - D68D39C84895E461F1B9634D606671E1 /* SDLAddSubMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddSubMenuResponse.h; path = SmartDeviceLink/SDLAddSubMenuResponse.h; sourceTree = ""; }; - D6986E5DF7E39BCD4F822E4CB001676F /* SDLGetFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetFileResponse.h; path = SmartDeviceLink/SDLGetFileResponse.h; sourceTree = ""; }; - D71F5B91669B94ED03ECE68DF8A69310 /* SDLGetInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleData.m; path = SmartDeviceLink/SDLGetInteriorVehicleData.m; sourceTree = ""; }; - D725474F95CF3A37D8217D26C3D33F69 /* SDLManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLManager.m; path = SmartDeviceLink/SDLManager.m; sourceTree = ""; }; - D76301C2554A02484AFC7B13C487F7AF /* SDLResetGlobalPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResetGlobalPropertiesResponse.h; path = SmartDeviceLink/SDLResetGlobalPropertiesResponse.h; sourceTree = ""; }; - D765E0A70DFB9714A0F405D852A66FAB /* SDLSubscribeVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeVehicleDataResponse.m; path = SmartDeviceLink/SDLSubscribeVehicleDataResponse.m; sourceTree = ""; }; - D7B42911B767CE7D2DB7CD903DA4BA90 /* SDLLocationCoordinate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLocationCoordinate.m; path = SmartDeviceLink/SDLLocationCoordinate.m; sourceTree = ""; }; - D825304615E69EF79423978DDC24A034 /* SDLSoftButtonObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonObject.h; path = SmartDeviceLink/SDLSoftButtonObject.h; sourceTree = ""; }; - D831A281EF816381B291008A9D4FAA9E /* SDLHybridAppPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHybridAppPreference.m; path = SmartDeviceLink/SDLHybridAppPreference.m; sourceTree = ""; }; - D8BC4DC3D5C26DEF7E62FBB6D8922181 /* SDLDynamicMenuUpdateAlgorithm.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDynamicMenuUpdateAlgorithm.m; path = SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.m; sourceTree = ""; }; - D8C3E2092639989CC311D760FEFFF098 /* SDLObjectWithPriority.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLObjectWithPriority.m; path = SmartDeviceLink/SDLObjectWithPriority.m; sourceTree = ""; }; - D90AE10D126FDEAC9EC89DC2DA4C9C9C /* SDLSystemAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemAction.m; path = SmartDeviceLink/SDLSystemAction.m; sourceTree = ""; }; - D9122ED144BA8E4A71AAE00847B80AD2 /* SDLControlFramePayloadTransportEventUpdate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadTransportEventUpdate.h; path = SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.h; sourceTree = ""; }; - D935E4ACA5BD1466555211496C5A0F89 /* SDLRPCPayload.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCPayload.h; path = SmartDeviceLink/SDLRPCPayload.h; sourceTree = ""; }; - D987EAF5E95BE2470E9AFACD43D35461 /* SDLMassageCushionFirmness.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageCushionFirmness.h; path = SmartDeviceLink/SDLMassageCushionFirmness.h; sourceTree = ""; }; - D9FCEE47A681128EBFB0EFED02719BE8 /* SDLMassageZone.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageZone.m; path = SmartDeviceLink/SDLMassageZone.m; sourceTree = ""; }; - DAD38BC5045E2280587608630721EB31 /* SDLRPCRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCRequest.h; path = SmartDeviceLink/SDLRPCRequest.h; sourceTree = ""; }; - DADF8BE5914CC5FDE27CC4C54E6F38A6 /* SDLProtocolMessageAssembler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessageAssembler.h; path = SmartDeviceLink/SDLProtocolMessageAssembler.h; sourceTree = ""; }; - DB37F4EF3E6ADA6FA78C8A414C2980AF /* SDLTemperatureUnit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemperatureUnit.m; path = SmartDeviceLink/SDLTemperatureUnit.m; sourceTree = ""; }; - DB53BFBC217D15847AE38FD82BFE5014 /* SDLMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMacros.h; path = SmartDeviceLink/SDLMacros.h; sourceTree = ""; }; - DBA779D91F961DC90E60E31DA4580DDF /* SDLLifecycleProtocolHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleProtocolHandler.m; path = SmartDeviceLink/SDLLifecycleProtocolHandler.m; sourceTree = ""; }; - DBDC0BCD9D5A756A12269D89CA68E411 /* SDLOnLockScreenStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnLockScreenStatus.m; path = SmartDeviceLink/SDLOnLockScreenStatus.m; sourceTree = ""; }; - DBE7466B721D1E6A2BC31A2D5D2D8124 /* SDLHexUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHexUtility.m; path = SmartDeviceLink/SDLHexUtility.m; sourceTree = ""; }; - DC1AB877E125DDBE42B80EF6A00A5F98 /* SDLGetInteriorVehicleDataConsentResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataConsentResponse.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h; sourceTree = ""; }; - DC1B6BD9F7404CCE757869AF75DC0434 /* SDLTouchCoord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchCoord.h; path = SmartDeviceLink/SDLTouchCoord.h; sourceTree = ""; }; - DCE361553E0EABB14A1C509A7093DE01 /* SDLProtocolReceivedMessageRouter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolReceivedMessageRouter.h; path = SmartDeviceLink/SDLProtocolReceivedMessageRouter.h; sourceTree = ""; }; - DD2A35B92D9AC44F072344ECC125D1B7 /* bson_object.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_object.h; path = src/bson_object.h; sourceTree = ""; }; - DD3CC83A67C250A8A7230DECEE87840D /* SDLOnAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAudioPassThru.h; path = SmartDeviceLink/SDLOnAudioPassThru.h; sourceTree = ""; }; - DD46481394302F4F857FA386B5B3D6D8 /* SDLSystemRequestResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemRequestResponse.m; path = SmartDeviceLink/SDLSystemRequestResponse.m; sourceTree = ""; }; - DD54737AADEC12705D5ED30EB6CA1A1B /* SDLPublishAppService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPublishAppService.h; path = SmartDeviceLink/SDLPublishAppService.h; sourceTree = ""; }; - DD6BDB7BD482EF289B2480B8CA328408 /* SDLProtocolReceivedMessageRouter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolReceivedMessageRouter.m; path = SmartDeviceLink/SDLProtocolReceivedMessageRouter.m; sourceTree = ""; }; - DD6D85898628258D6A68C4B679B238B1 /* SDLSetAppIconResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetAppIconResponse.h; path = SmartDeviceLink/SDLSetAppIconResponse.h; sourceTree = ""; }; - DE0871AD02E119A57E3097FB1311D3C1 /* SDLDeleteChoicesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteChoicesOperation.m; path = SmartDeviceLink/SDLDeleteChoicesOperation.m; sourceTree = ""; }; - DEB1D477D9EB612F32B6432000660C59 /* SDLClimateControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClimateControlCapabilities.h; path = SmartDeviceLink/SDLClimateControlCapabilities.h; sourceTree = ""; }; - DEDA2F4C7E4A828FFB91244C19F756D0 /* SDLFocusableItemLocator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemLocator.h; path = SmartDeviceLink/SDLFocusableItemLocator.h; sourceTree = ""; }; - DEE0B3D792D8D9B339974A65CFE9D595 /* SDLDeleteInteractionChoiceSetResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteInteractionChoiceSetResponse.h; path = SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h; sourceTree = ""; }; - DEF6AE23910B9300DD3A0EB0B277C68E /* SDLSetMediaClockTimerResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetMediaClockTimerResponse.m; path = SmartDeviceLink/SDLSetMediaClockTimerResponse.m; sourceTree = ""; }; - DF00C9E7609E5400EC4274851BEB8AE5 /* SDLModuleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleData.m; path = SmartDeviceLink/SDLModuleData.m; sourceTree = ""; }; - E00FDE680B46E1B812D8143C5D0A5271 /* SDLChoice.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoice.m; path = SmartDeviceLink/SDLChoice.m; sourceTree = ""; }; - E069D9D3F86160512916B7ABC072595F /* SDLMutableDataQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMutableDataQueue.h; path = SmartDeviceLink/SDLMutableDataQueue.h; sourceTree = ""; }; - E0A61B983B6B91FDF2BA49150AE2356C /* SDLVideoStreamingState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingState.m; path = SmartDeviceLink/SDLVideoStreamingState.m; sourceTree = ""; }; - E0EBAA870975DA984A3928C8DCFE7A40 /* BiSON-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "BiSON-Info.plist"; sourceTree = ""; }; - E0F50AF8211EE62DF94E01FA5E79CE67 /* SDLTriggerSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTriggerSource.h; path = SmartDeviceLink/SDLTriggerSource.h; sourceTree = ""; }; - E1A8A1E0A076B07F56387D1063ABB1A3 /* SDLControlFramePayloadRPCStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRPCStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h; sourceTree = ""; }; - E1F96F850E5D86162FB221E7A54E8EFD /* SDLDisplayType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayType.m; path = SmartDeviceLink/SDLDisplayType.m; sourceTree = ""; }; - E28AD265DA83A4A53DB9748E338D4E1E /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = de.lproj/SDLLockScreen.strings; sourceTree = ""; }; - E2A334FC98479B6D81A09D35E4975DDA /* SDLNotificationDispatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNotificationDispatcher.m; path = SmartDeviceLink/SDLNotificationDispatcher.m; sourceTree = ""; }; - E2D2C496603448224B3A478BD1E7C7FC /* CVPixelBufferRef+SDLUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CVPixelBufferRef+SDLUtil.m"; path = "SmartDeviceLink/CVPixelBufferRef+SDLUtil.m"; sourceTree = ""; }; - E2F7792FEE3F880C4B7A2CEF50105C43 /* SDLOnSystemRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSystemRequest.h; path = SmartDeviceLink/SDLOnSystemRequest.h; sourceTree = ""; }; - E34195450014D320A5D463831A181938 /* SDLCreateWindowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateWindowResponse.m; path = SmartDeviceLink/SDLCreateWindowResponse.m; sourceTree = ""; }; - E3B71900EA08E804133F37E5D6ADC285 /* SDLResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResult.h; path = SmartDeviceLink/SDLResult.h; sourceTree = ""; }; - E3FF43EE6114A0D361EE11A38FA91FB1 /* SDLInteractionMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLInteractionMode.h; path = SmartDeviceLink/SDLInteractionMode.h; sourceTree = ""; }; + CBEA9E8BA4BEAF80193321CF986F0A91 /* SDLDeleteInteractionChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteInteractionChoiceSet.m; path = SmartDeviceLink/SDLDeleteInteractionChoiceSet.m; sourceTree = ""; }; + CBEE832F83BA93DFD8764142F6CBA3D6 /* SDLTriggerSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTriggerSource.m; path = SmartDeviceLink/SDLTriggerSource.m; sourceTree = ""; }; + CBF1AE79CC723B76B9681FA0C5983591 /* SDLSeatLocationCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatLocationCapability.m; path = SmartDeviceLink/SDLSeatLocationCapability.m; sourceTree = ""; }; + CC0536F1740B2347A3FDD9BE3712BAC9 /* SDLShowAppMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowAppMenuResponse.h; path = SmartDeviceLink/SDLShowAppMenuResponse.h; sourceTree = ""; }; + CC30ACD3F6015F21547F9A433E6385B3 /* SDLRPCStruct.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCStruct.m; path = SmartDeviceLink/SDLRPCStruct.m; sourceTree = ""; }; + CC79D886FC0B1F4F59AC179912B3288C /* SDLGetCloudAppProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetCloudAppProperties.m; path = SmartDeviceLink/SDLGetCloudAppProperties.m; sourceTree = ""; }; + CC9604E66648405ECCC5FEF1ED5DAF7D /* SDLAlertResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertResponse.m; path = SmartDeviceLink/SDLAlertResponse.m; sourceTree = ""; }; + CC96F7C7B44C145A8134DF1D1AA18116 /* SDLCharacterSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCharacterSet.m; path = SmartDeviceLink/SDLCharacterSet.m; sourceTree = ""; }; + CCC1D764310276A1B4C8335898707354 /* SDLCheckChoiceVROptionalOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCheckChoiceVROptionalOperation.m; path = SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m; sourceTree = ""; }; + CCEDBA4CF5298ACECCDBB21E9EF83088 /* SDLGetDTCs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetDTCs.m; path = SmartDeviceLink/SDLGetDTCs.m; sourceTree = ""; }; + CCF1E88FAC247087B1D04D8DC970BE73 /* bson_object.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_object.h; path = src/bson_object.h; sourceTree = ""; }; + CCF47A553221E3AD83C4363CB7B81894 /* SDLCompassDirection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCompassDirection.h; path = SmartDeviceLink/SDLCompassDirection.h; sourceTree = ""; }; + CCF9B35E59B89A18102BA35693887E8B /* SDLProtocolConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolConstants.h; path = SmartDeviceLink/SDLProtocolConstants.h; sourceTree = ""; }; + CCFBCFEAE99E82FA228AFBDFA25BFE2A /* SDLSystemCapabilityObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityObserver.h; path = SmartDeviceLink/SDLSystemCapabilityObserver.h; sourceTree = ""; }; + CDCD325FB9D69CF0D80F1C46381EEED5 /* SDLTemperature.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemperature.m; path = SmartDeviceLink/SDLTemperature.m; sourceTree = ""; }; + CE702433D4927A3186F0C2ED53D7F27B /* SDLGPSData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGPSData.h; path = SmartDeviceLink/SDLGPSData.h; sourceTree = ""; }; + CE75998AC803F932D548A5CFAFE79632 /* SDLBeltStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBeltStatus.h; path = SmartDeviceLink/SDLBeltStatus.h; sourceTree = ""; }; + CE844466F3EDF16CC0981DA495566991 /* SDLHMICapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMICapabilities.m; path = SmartDeviceLink/SDLHMICapabilities.m; sourceTree = ""; }; + CEC2979DED81E3F2C7CE44D570F2C83C /* SDLVehicleDataNotificationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataNotificationStatus.m; path = SmartDeviceLink/SDLVehicleDataNotificationStatus.m; sourceTree = ""; }; + CED1E6D7D0EA2E9D6C83332611768557 /* SDLStreamingAudioLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingAudioLifecycleManager.h; path = SmartDeviceLink/SDLStreamingAudioLifecycleManager.h; sourceTree = ""; }; + CEFD29CFFB2F5E8DB487421FE557262D /* SDLLockScreenViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenViewController.h; path = SmartDeviceLink/SDLLockScreenViewController.h; sourceTree = ""; }; + CF679021B1F310A3DA1CCAD24947CE31 /* SDLEncryptionLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncryptionLifecycleManager.m; path = SmartDeviceLink/SDLEncryptionLifecycleManager.m; sourceTree = ""; }; + CFB9AA79201C2D9C76506FEDF237FF2A /* SDLDirection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDirection.m; path = SmartDeviceLink/SDLDirection.m; sourceTree = ""; }; + D0581F57A3E133B297BFA59428ED20F9 /* SDLStreamingVideoScaleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingVideoScaleManager.m; path = SmartDeviceLink/SDLStreamingVideoScaleManager.m; sourceTree = ""; }; + D08CB1A94F1B6EE63D943DD3D8D04CA0 /* SDLControlFramePayloadNak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadNak.m; path = SmartDeviceLink/SDLControlFramePayloadNak.m; sourceTree = ""; }; + D0D35FA4BEEE3F908B03AEB2D32E4321 /* SDLGetInteriorVehicleDataConsentResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataConsentResponse.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h; sourceTree = ""; }; + D1038E18768690DF540899139455789E /* SDLChangeRegistrationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChangeRegistrationResponse.m; path = SmartDeviceLink/SDLChangeRegistrationResponse.m; sourceTree = ""; }; + D10B31A393DEE18CB04EA2485ABD892B /* TestSubscribeButtonObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TestSubscribeButtonObserver.h; path = SmartDeviceLink/TestSubscribeButtonObserver.h; sourceTree = ""; }; + D139C1A1E0119ED0A73E0642B12675BD /* SDLSetMediaClockTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetMediaClockTimer.h; path = SmartDeviceLink/SDLSetMediaClockTimer.h; sourceTree = ""; }; + D1C31EB7EB2D9E54E40DF8F679512777 /* SDLNavigationServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationServiceData.h; path = SmartDeviceLink/SDLNavigationServiceData.h; sourceTree = ""; }; + D23AB515C337D48F2DCD15C942D9FF3D /* SDLRPCPermissionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCPermissionStatus.m; path = SmartDeviceLink/SDLRPCPermissionStatus.m; sourceTree = ""; }; + D2F8D638111E1E1C919E161F33554DCC /* SDLFileManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManager.h; path = SmartDeviceLink/SDLFileManager.h; sourceTree = ""; }; + D2FECA407FF6E408DFFDA2B1B0C1992A /* SDLOnEncodedSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnEncodedSyncPData.m; path = SmartDeviceLink/SDLOnEncodedSyncPData.m; sourceTree = ""; }; + D3566C02B6DB84A4D90013751CD1071F /* SDLOnHMIStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnHMIStatus.h; path = SmartDeviceLink/SDLOnHMIStatus.h; sourceTree = ""; }; + D389BD4118B81FB0470D538239B59E34 /* SDLIgnitionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIgnitionStatus.m; path = SmartDeviceLink/SDLIgnitionStatus.m; sourceTree = ""; }; + D39069B46FB5C4AA3C7B4F149BC3A9E8 /* SDLDeviceLevelStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceLevelStatus.m; path = SmartDeviceLink/SDLDeviceLevelStatus.m; sourceTree = ""; }; + D46CF1A0CC78659C588255386F2C8286 /* SDLPermissionFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionFilter.m; path = SmartDeviceLink/SDLPermissionFilter.m; sourceTree = ""; }; + D4B5DE50493E322D022ECD4BE5E38481 /* SDLTouchManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchManager.m; path = SmartDeviceLink/SDLTouchManager.m; sourceTree = ""; }; + D4DA5A5B16BCBD07008310F92C3960D1 /* SDLLifecycleSyncPDataHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleSyncPDataHandler.m; path = SmartDeviceLink/SDLLifecycleSyncPDataHandler.m; sourceTree = ""; }; + D4E743BD5D9868B2B5008D089934B105 /* SDLOnDriverDistraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnDriverDistraction.m; path = SmartDeviceLink/SDLOnDriverDistraction.m; sourceTree = ""; }; + D547BCC4DEAD1C428EDF45B037D5201A /* SDLMenuCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuCell.h; path = SmartDeviceLink/SDLMenuCell.h; sourceTree = ""; }; + D56532D34DE9E68146CFDE8B079E3A04 /* SDLAsynchronousOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousOperation.m; path = SmartDeviceLink/SDLAsynchronousOperation.m; sourceTree = ""; }; + D59096499EC97E026ECAE9E71C7E6DE4 /* SDLRPCStruct.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCStruct.h; path = SmartDeviceLink/SDLRPCStruct.h; sourceTree = ""; }; + D64070C063A2A910A459CAE2E7A4679D /* SDLUnsubscribeWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeWayPointsResponse.m; path = SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m; sourceTree = ""; }; + D693943ACF1FD2282F38E0EAA87D03BE /* SDLRectangle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRectangle.h; path = SmartDeviceLink/SDLRectangle.h; sourceTree = ""; }; + D70663478539E6AEC0CB55388F533D99 /* SDLObjectWithPriority.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLObjectWithPriority.m; path = SmartDeviceLink/SDLObjectWithPriority.m; sourceTree = ""; }; + D70AC7BCD19517CAE727871B85813F39 /* SDLRTPH264Packetizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRTPH264Packetizer.m; path = SmartDeviceLink/SDLRTPH264Packetizer.m; sourceTree = ""; }; + D7857EF566BA1394F763413B59EC6BC7 /* SDLLogFileModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFileModule.m; path = SmartDeviceLink/SDLLogFileModule.m; sourceTree = ""; }; + D7B6671467E1F2AFF00152A3BB56DA00 /* SDLCancelInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCancelInteractionResponse.m; path = SmartDeviceLink/SDLCancelInteractionResponse.m; sourceTree = ""; }; + D7B76D1D26F17C8DFCC609B03BB5F1FF /* SDLListFilesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFilesOperation.m; path = SmartDeviceLink/SDLListFilesOperation.m; sourceTree = ""; }; + D7BBACE033B0E506CA5830D0C9A67E30 /* SDLPresentChoiceSetOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresentChoiceSetOperation.h; path = SmartDeviceLink/SDLPresentChoiceSetOperation.h; sourceTree = ""; }; + D7C7F86F69CEA7AF2F36510A9E3ADF4F /* SDLAppInterfaceUnregisteredReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppInterfaceUnregisteredReason.m; path = SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m; sourceTree = ""; }; + D83C3F848B3100D62A9329AE8FD1E53A /* SDLDistanceUnit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDistanceUnit.m; path = SmartDeviceLink/SDLDistanceUnit.m; sourceTree = ""; }; + D84CA7BBE7B7548D37D20852C77A974C /* SDLUnsubscribeVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeVehicleData.m; path = SmartDeviceLink/SDLUnsubscribeVehicleData.m; sourceTree = ""; }; + D86564978231DBB8DE6638F518A092E9 /* SDLRAWH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRAWH264Packetizer.h; path = SmartDeviceLink/SDLRAWH264Packetizer.h; sourceTree = ""; }; + D8937A5799CDE32614D2726C81F82818 /* emhashmap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = emhashmap.h; path = src/emhashmap/emhashmap.h; sourceTree = ""; }; + D8F4594E3083E428B64B683C182E3BB6 /* SDLProtocolMessageDisassembler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessageDisassembler.m; path = SmartDeviceLink/SDLProtocolMessageDisassembler.m; sourceTree = ""; }; + D90CAAF858A78919418815026E93FE6C /* SDLKeyboardProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardProperties.h; path = SmartDeviceLink/SDLKeyboardProperties.h; sourceTree = ""; }; + D976C60F80AF73BCF88057AFCC997BF2 /* SDLReadDID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReadDID.h; path = SmartDeviceLink/SDLReadDID.h; sourceTree = ""; }; + D9FE9E92F26E2D6ED7FF95DF199E8CE4 /* SDLSendLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendLocation.m; path = SmartDeviceLink/SDLSendLocation.m; sourceTree = ""; }; + DADD98EB7761E07FAD05EA3DD3712E13 /* SDLControlFramePayloadRPCStartService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRPCStartService.h; path = SmartDeviceLink/SDLControlFramePayloadRPCStartService.h; sourceTree = ""; }; + DB2DBF7A190C1B28F89A4CAA411A5074 /* SDLRPCPayload.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCPayload.m; path = SmartDeviceLink/SDLRPCPayload.m; sourceTree = ""; }; + DB8BAEF5BA6F28C6E8D303A40D4F9752 /* SDLWeatherAlert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherAlert.h; path = SmartDeviceLink/SDLWeatherAlert.h; sourceTree = ""; }; + DBDB552AB8B94525743E433DEDF82011 /* SDLSubscribeButtonObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonObserver.h; path = SmartDeviceLink/SDLSubscribeButtonObserver.h; sourceTree = ""; }; + DC368A37A25AD64AC69F460E5EB32339 /* SDLTextField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextField.m; path = SmartDeviceLink/SDLTextField.m; sourceTree = ""; }; + DC461630F2C6E45F81C3CC6B7D8BDD9E /* SDLPrimaryAudioSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrimaryAudioSource.m; path = SmartDeviceLink/SDLPrimaryAudioSource.m; sourceTree = ""; }; + DC5946B04F71B3AB896F1E96200F9AF8 /* SDLDeleteFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFileResponse.h; path = SmartDeviceLink/SDLDeleteFileResponse.h; sourceTree = ""; }; + DCE03B2B123ED8E259A090EA186A04C7 /* SDLAlertManeuverResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertManeuverResponse.h; path = SmartDeviceLink/SDLAlertManeuverResponse.h; sourceTree = ""; }; + DCFD55E0C6865C089002A13599E34D97 /* SDLTemplateConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemplateConfiguration.h; path = SmartDeviceLink/SDLTemplateConfiguration.h; sourceTree = ""; }; + DD906B67A1DB81F1A4D78834D42F0C3C /* SDLCloseApplicationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCloseApplicationResponse.h; path = SmartDeviceLink/SDLCloseApplicationResponse.h; sourceTree = ""; }; + DDC4519536BC211F5D35E00B5E2BB216 /* SDLDynamicMenuUpdateRunScore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDynamicMenuUpdateRunScore.h; path = SmartDeviceLink/SDLDynamicMenuUpdateRunScore.h; sourceTree = ""; }; + DDD04A6F68474FB574C693B9CBD2C5A3 /* SDLLifecycleSyncPDataHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleSyncPDataHandler.h; path = SmartDeviceLink/SDLLifecycleSyncPDataHandler.h; sourceTree = ""; }; + DDE35F83F21F26BF020C728950D6C990 /* BiSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BiSON.modulemap; sourceTree = ""; }; + DDE558E5D0448F16F7A74A931431AA9C /* SDLAsynchronousOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousOperation.h; path = SmartDeviceLink/SDLAsynchronousOperation.h; sourceTree = ""; }; + DE194516542EC704AADE0A2FC32B63FD /* SDLOnTouchEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnTouchEvent.m; path = SmartDeviceLink/SDLOnTouchEvent.m; sourceTree = ""; }; + DE69A7B9DB57BFBF5BD9A2D76ED79B77 /* SDLGlobals.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGlobals.m; path = SmartDeviceLink/SDLGlobals.m; sourceTree = ""; }; + DE79CEA37357B6F9DD91B9559EEEFEBA /* SDLIAPSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPSession.h; path = SmartDeviceLink/SDLIAPSession.h; sourceTree = ""; }; + DEB970D4B1463F7A5435F594C50FE27F /* SDLRPCRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCRequest.m; path = SmartDeviceLink/SDLRPCRequest.m; sourceTree = ""; }; + DEEB8CD3B1A76596EEC8B093838892F3 /* SDLHMILevel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMILevel.h; path = SmartDeviceLink/SDLHMILevel.h; sourceTree = ""; }; + DF9731F0EEDD01B488AE412DDC732A15 /* SDLFuelRange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelRange.m; path = SmartDeviceLink/SDLFuelRange.m; sourceTree = ""; }; + DFDCE97BBEEFF7D0876C6518B71FF257 /* SDLRegisterAppInterface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRegisterAppInterface.h; path = SmartDeviceLink/SDLRegisterAppInterface.h; sourceTree = ""; }; + DFEC3B4824AB98BD46E19AA4744BB016 /* SDLSingleTireStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSingleTireStatus.m; path = SmartDeviceLink/SDLSingleTireStatus.m; sourceTree = ""; }; + E0482F1FF68E1DE5D306B4F4B9D57CC8 /* SDLGetVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetVehicleDataResponse.m; path = SmartDeviceLink/SDLGetVehicleDataResponse.m; sourceTree = ""; }; + E0693F2A953A77A17E75C29FAFD7F7BD /* SDLOnAppServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAppServiceData.m; path = SmartDeviceLink/SDLOnAppServiceData.m; sourceTree = ""; }; + E06E125B93E154B8A67C00E35CF0FB9F /* SDLAudioStreamingState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamingState.h; path = SmartDeviceLink/SDLAudioStreamingState.h; sourceTree = ""; }; + E074E1828DBE20E4E333AF7D5CB7597C /* SDLRPCPayload.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCPayload.h; path = SmartDeviceLink/SDLRPCPayload.h; sourceTree = ""; }; + E0ABE76C5826D12B93EBF61BAAF52F60 /* BiSON.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BiSON.debug.xcconfig; sourceTree = ""; }; + E0BC4F6E6B159DB9BBF7B3971DE31957 /* SDLCarWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarWindow.h; path = SmartDeviceLink/SDLCarWindow.h; sourceTree = ""; }; + E0CE6739547F25EDD5501E95B62ABE3A /* SDLPreloadChoicesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPreloadChoicesOperation.m; path = SmartDeviceLink/SDLPreloadChoicesOperation.m; sourceTree = ""; }; + E11A499A146EB80F4A50C4AE2C91E1B7 /* SDLVideoStreamingFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingFormat.h; path = SmartDeviceLink/SDLVideoStreamingFormat.h; sourceTree = ""; }; + E15094CEC1019E3193DC001F59191F6B /* SDLSubscribeVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeVehicleData.h; path = SmartDeviceLink/SDLSubscribeVehicleData.h; sourceTree = ""; }; + E1FAE16882639A3A3090385712018D6F /* SDLClusterModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClusterModeStatus.m; path = SmartDeviceLink/SDLClusterModeStatus.m; sourceTree = ""; }; + E27890CE8E8F1D7904C65EB29FB9ABD0 /* SDLLogModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogModel.h; path = SmartDeviceLink/SDLLogModel.h; sourceTree = ""; }; + E28D7727C696BB6A9A719269ED72550C /* SDLNavigationServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationServiceManifest.h; path = SmartDeviceLink/SDLNavigationServiceManifest.h; sourceTree = ""; }; + E2FAAAE33D2528754A3DCB84CEBD7047 /* SDLFileWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileWrapper.h; path = SmartDeviceLink/SDLFileWrapper.h; sourceTree = ""; }; + E31DCCADEC394A9E791837B3BD64B501 /* SDLButtonCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonCapabilities.h; path = SmartDeviceLink/SDLButtonCapabilities.h; sourceTree = ""; }; + E36CCB25374711839E0FBA532EF81EC0 /* SDLMassageModeData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageModeData.h; path = SmartDeviceLink/SDLMassageModeData.h; sourceTree = ""; }; + E395B89F16DB085EDAA307A77151A4E9 /* SDLLogTargetFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetFile.h; path = SmartDeviceLink/SDLLogTargetFile.h; sourceTree = ""; }; + E3CBEA1B6A63BBECF895DD4D924B8BE8 /* SDLLogTargetAppleSystemLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetAppleSystemLog.m; path = SmartDeviceLink/SDLLogTargetAppleSystemLog.m; sourceTree = ""; }; E4434753B7C23D766EC5A0D8B1EC7D24 /* Pods-MobileWeather-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MobileWeather-acknowledgements.markdown"; sourceTree = ""; }; - E46DCE56EFD40F057672597BEDF9BC5C /* SDLMassageMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageMode.h; path = SmartDeviceLink/SDLMassageMode.h; sourceTree = ""; }; - E4AC2494F1A779D80138CD7A5D8980C6 /* SDLSetCloudAppProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetCloudAppProperties.m; path = SmartDeviceLink/SDLSetCloudAppProperties.m; sourceTree = ""; }; - E4EC6315B72CAC0F33814470212DCDC3 /* SDLDeviceLevelStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceLevelStatus.h; path = SmartDeviceLink/SDLDeviceLevelStatus.h; sourceTree = ""; }; - E5657CE38BB08F9563C92FE224B79FB1 /* SDLLogManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogManager.h; path = SmartDeviceLink/SDLLogManager.h; sourceTree = ""; }; - E6A9A7FEC27852B2A0E5BC59182279C3 /* SDLUnsubscribeVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeVehicleData.m; path = SmartDeviceLink/SDLUnsubscribeVehicleData.m; sourceTree = ""; }; - E6F7F96110B8644ABA5E6DE312BB0D7F /* SDLWindowCapability+ScreenManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLWindowCapability+ScreenManagerExtensions.m"; path = "SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.m"; sourceTree = ""; }; - E72B649C1BBFB6CC29A8201C5681766D /* SDLSoftButtonType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonType.h; path = SmartDeviceLink/SDLSoftButtonType.h; sourceTree = ""; }; - E72CA0DD191E63F3A67CEBEC9625C1F5 /* SDLChoiceSetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceSetManager.m; path = SmartDeviceLink/SDLChoiceSetManager.m; sourceTree = ""; }; - E72FB018DC8626B10CEA4186C29DEC69 /* SDLOnEncodedSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnEncodedSyncPData.m; path = SmartDeviceLink/SDLOnEncodedSyncPData.m; sourceTree = ""; }; - E7334963A37BC3A08C266E45F0DD29B9 /* SDLSetDisplayLayoutResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetDisplayLayoutResponse.m; path = SmartDeviceLink/SDLSetDisplayLayoutResponse.m; sourceTree = ""; }; - E7395392C63B23687A1B8E76B8AB07F7 /* SDLSoftButtonState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonState.h; path = SmartDeviceLink/SDLSoftButtonState.h; sourceTree = ""; }; - E78CAECB818A0AAFD5ACB1B475C157D2 /* SDLSetAppIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetAppIcon.m; path = SmartDeviceLink/SDLSetAppIcon.m; sourceTree = ""; }; - E78CF1EFD9F68E40428F71D4887D5C50 /* SDLWeatherServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherServiceManifest.h; path = SmartDeviceLink/SDLWeatherServiceManifest.h; sourceTree = ""; }; - E78DEB8B749679E27472A7740A653CED /* SDLButtonPressMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPressMode.h; path = SmartDeviceLink/SDLButtonPressMode.h; sourceTree = ""; }; - E7BB33F82335ED3BB74B4FA4B921F6D0 /* SDLOnLockScreenStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnLockScreenStatus.h; path = SmartDeviceLink/SDLOnLockScreenStatus.h; sourceTree = ""; }; - E7CCD566D513D6EEC4E95B4D23D395FB /* SDLFuelCutoffStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelCutoffStatus.h; path = SmartDeviceLink/SDLFuelCutoffStatus.h; sourceTree = ""; }; - E7F0A2E1BCB7060346CDE26635657E5B /* SDLRadioControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioControlData.h; path = SmartDeviceLink/SDLRadioControlData.h; sourceTree = ""; }; - E8061A69F7A640BFC2198A1B24F37983 /* SDLRPCRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCRequest.m; path = SmartDeviceLink/SDLRPCRequest.m; sourceTree = ""; }; - E809A18658FB035135235C331745934C /* SDLViewControllerPresentable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLViewControllerPresentable.h; path = SmartDeviceLink/SDLViewControllerPresentable.h; sourceTree = ""; }; - E82FE3223DC169D9038DD1EB8FC32E30 /* SDLServiceEncryptionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLServiceEncryptionDelegate.h; path = SmartDeviceLink/SDLServiceEncryptionDelegate.h; sourceTree = ""; }; - E89CF33AA04C619DDD01D52E4CA9ACA2 /* SDLRPCNotificationNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCNotificationNotification.h; path = SmartDeviceLink/SDLRPCNotificationNotification.h; sourceTree = ""; }; - E8B87E7B6C490A994E034330CB9660CA /* SDLLifecycleRPCAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleRPCAdapter.h; path = SmartDeviceLink/SDLLifecycleRPCAdapter.h; sourceTree = ""; }; - E957BB923D9D863C7E408A84D7E62E28 /* NSMutableDictionary+Store.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+Store.h"; path = "SmartDeviceLink/NSMutableDictionary+Store.h"; sourceTree = ""; }; - E9865E2D3C6B1D187D3D04C2B429951E /* SDLEqualizerSettings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEqualizerSettings.m; path = SmartDeviceLink/SDLEqualizerSettings.m; sourceTree = ""; }; - E9B4BC1552B9C96F9D0CA45A8320DDFA /* SDLIgnitionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIgnitionStatus.m; path = SmartDeviceLink/SDLIgnitionStatus.m; sourceTree = ""; }; - E9BCDAE3BF99C86CED1A5CB6384054CA /* SDLOnAppInterfaceUnregistered.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAppInterfaceUnregistered.m; path = SmartDeviceLink/SDLOnAppInterfaceUnregistered.m; sourceTree = ""; }; - E9D2FA097525605C95E2AFE782A6BE6C /* SDLWindowTypeCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWindowTypeCapabilities.h; path = SmartDeviceLink/SDLWindowTypeCapabilities.h; sourceTree = ""; }; - E9F85118D824B3F5F59A8305E48245E0 /* SDLNavigationServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationServiceData.h; path = SmartDeviceLink/SDLNavigationServiceData.h; sourceTree = ""; }; - EA005E80F14C30BEEAD6843C40AC7D05 /* SDLScreenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScreenManager.m; path = SmartDeviceLink/SDLScreenManager.m; sourceTree = ""; }; - EA25911F974B5B30D235AC704A107388 /* SDLSingleTireStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSingleTireStatus.m; path = SmartDeviceLink/SDLSingleTireStatus.m; sourceTree = ""; }; - EA45F0C83A48EACA03748C23787612AB /* SDLOnKeyboardInput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnKeyboardInput.m; path = SmartDeviceLink/SDLOnKeyboardInput.m; sourceTree = ""; }; - EB181A531DCA51446180DE770DFF44F1 /* SDLDeleteSubMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteSubMenu.m; path = SmartDeviceLink/SDLDeleteSubMenu.m; sourceTree = ""; }; - EB5B9BB9D28C2BC68BFABDDE546A6246 /* bson_util.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = bson_util.c; path = src/bson_util.c; sourceTree = ""; }; - EB86E9E686A67D3B92112A90F2138FF8 /* SDLVehicleDataEventStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataEventStatus.h; path = SmartDeviceLink/SDLVehicleDataEventStatus.h; sourceTree = ""; }; - EBA42054F2C0D64D68F0AAFBD937E5CC /* SDLUploadFileOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUploadFileOperation.h; path = SmartDeviceLink/SDLUploadFileOperation.h; sourceTree = ""; }; - EBD94A8CDBA452B3D05316C90227BD89 /* SDLControlFramePayloadEndService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadEndService.h; path = SmartDeviceLink/SDLControlFramePayloadEndService.h; sourceTree = ""; }; - EC49183B2BDBFC8AF747ABD142598757 /* SDLResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResult.m; path = SmartDeviceLink/SDLResult.m; sourceTree = ""; }; - EC650878367AF7C7B83FAEC062BFA3A1 /* SDLKeyboardDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardDelegate.h; path = SmartDeviceLink/SDLKeyboardDelegate.h; sourceTree = ""; }; - ECA0A1828C5374CB24D7B145DA5A60D2 /* SDLOasisAddress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOasisAddress.m; path = SmartDeviceLink/SDLOasisAddress.m; sourceTree = ""; }; - ECBFE3D76862F81C78E80FCF7BBE9EF8 /* SDLGrid.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGrid.m; path = SmartDeviceLink/SDLGrid.m; sourceTree = ""; }; - ECD19B85A34BEFF3300F295ACCA65603 /* SDLLogFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFilter.h; path = SmartDeviceLink/SDLLogFilter.h; sourceTree = ""; }; - ECE02258B281F599E9F848CF9A440B6D /* SDLSyncMsgVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncMsgVersion.m; path = SmartDeviceLink/SDLSyncMsgVersion.m; sourceTree = ""; }; - ED4168058B624B5FDD47D387C6D1E8A2 /* SDLStreamingAudioLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingAudioLifecycleManager.h; path = SmartDeviceLink/SDLStreamingAudioLifecycleManager.h; sourceTree = ""; }; - EDB0328B80CB9DE895193A6A4467BB91 /* EAAccessoryManager+SDLProtocols.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EAAccessoryManager+SDLProtocols.h"; path = "SmartDeviceLink/EAAccessoryManager+SDLProtocols.h"; sourceTree = ""; }; - EDD45B023BDB53CC20F889178F9F4D35 /* SDLDeliveryMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeliveryMode.h; path = SmartDeviceLink/SDLDeliveryMode.h; sourceTree = ""; }; - EE1FAE9A70F6C11454D435DA45460256 /* SDLStreamingProtocolDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingProtocolDelegate.h; path = SmartDeviceLink/SDLStreamingProtocolDelegate.h; sourceTree = ""; }; - EE640E82A995C6B4B7358301B1821AB5 /* SDLDeleteCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteCommand.m; path = SmartDeviceLink/SDLDeleteCommand.m; sourceTree = ""; }; - EE8BF2510CC06F2DAEB2AE8D19B4346D /* SDLLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightStatus.h; path = SmartDeviceLink/SDLLightStatus.h; sourceTree = ""; }; + E46E14F3FFBE57DED951B698700F742D /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = es.lproj/SDLLockScreen.strings; sourceTree = ""; }; + E47779D3822D6421717CCECB009326EF /* SDLOnInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnInteriorVehicleData.h; path = SmartDeviceLink/SDLOnInteriorVehicleData.h; sourceTree = ""; }; + E4F5004CD6B82FEDEBE21181B317258D /* SDLHMISettingsControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMISettingsControlData.m; path = SmartDeviceLink/SDLHMISettingsControlData.m; sourceTree = ""; }; + E535CD3255E256549582056BB430BAF5 /* BiSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BiSON-prefix.pch"; sourceTree = ""; }; + E544DB7D1612FA15EF84618495E675FA /* SDLUnsubscribeWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeWayPoints.h; path = SmartDeviceLink/SDLUnsubscribeWayPoints.h; sourceTree = ""; }; + E56DF2253BB23B90018E5D9A59964BA2 /* SDLSeatMemoryActionType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatMemoryActionType.m; path = SmartDeviceLink/SDLSeatMemoryActionType.m; sourceTree = ""; }; + E588D52092688278DFB1ABBD34198268 /* SDLIAPControlSessionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPControlSessionDelegate.h; path = SmartDeviceLink/SDLIAPControlSessionDelegate.h; sourceTree = ""; }; + E5B5D96B206B481EDA794734FDF0120F /* SDLUnsubscribeVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeVehicleDataResponse.h; path = SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h; sourceTree = ""; }; + E5BD5854C96BA4FE20BD941CF41A25F7 /* SDLTouchEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchEvent.h; path = SmartDeviceLink/SDLTouchEvent.h; sourceTree = ""; }; + E65AB80689651E51BC67BD306B058C30 /* SDLAddCommandResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddCommandResponse.h; path = SmartDeviceLink/SDLAddCommandResponse.h; sourceTree = ""; }; + E6676C50EEF5E1C69FF7D27A9C87426A /* SDLDeleteWindowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteWindowResponse.h; path = SmartDeviceLink/SDLDeleteWindowResponse.h; sourceTree = ""; }; + E66A988442959BA4FF4EA6712EB679BA /* SDLLockScreenStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenStatus.h; path = SmartDeviceLink/SDLLockScreenStatus.h; sourceTree = ""; }; + E68B7D0A4A009DA0A9A0B94AB87A0D21 /* SDLEqualizerSettings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEqualizerSettings.h; path = SmartDeviceLink/SDLEqualizerSettings.h; sourceTree = ""; }; + E6D1FBD011D035D23562FC050633E575 /* SDLViewControllerPresentable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLViewControllerPresentable.h; path = SmartDeviceLink/SDLViewControllerPresentable.h; sourceTree = ""; }; + E6D5D0212AEA8F2CF6AEA8DAD32868E0 /* SDLStreamingMediaManagerDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManagerDataSource.h; path = SmartDeviceLink/SDLStreamingMediaManagerDataSource.h; sourceTree = ""; }; + E704475B197CAEDFADBA46990776ABED /* SDLDeleteCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteCommand.m; path = SmartDeviceLink/SDLDeleteCommand.m; sourceTree = ""; }; + E744FAD3C000DB8C868581AA6D77DDE9 /* SDLModuleType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleType.m; path = SmartDeviceLink/SDLModuleType.m; sourceTree = ""; }; + E75E53426BB1F8D06083AA6B092186F3 /* SDLControlFramePayloadAudioStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadAudioStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.h; sourceTree = ""; }; + E75F183917254542C99CC42AA2CC3860 /* SDLMenuManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuManager.m; path = SmartDeviceLink/SDLMenuManager.m; sourceTree = ""; }; + E7ADE67ACC724F1B63A80B9A025AA67C /* SDLParameterPermissions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLParameterPermissions.h; path = SmartDeviceLink/SDLParameterPermissions.h; sourceTree = ""; }; + E7B8F3E8A6E8FEFDC6D3FFF9938E7219 /* SDLDeleteSubMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteSubMenu.h; path = SmartDeviceLink/SDLDeleteSubMenu.h; sourceTree = ""; }; + E7D643B6479CA671FCC68F8D9B079FE1 /* SDLStreamingVideoLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingVideoLifecycleManager.m; path = SmartDeviceLink/SDLStreamingVideoLifecycleManager.m; sourceTree = ""; }; + E88D7898374900884A7E0C3274ACDD65 /* NSMapTable+Subscripting.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMapTable+Subscripting.h"; path = "SmartDeviceLink/NSMapTable+Subscripting.h"; sourceTree = ""; }; + E8AF7FA3A3B233DDB4F14996698E8FE0 /* SDLTemplateColorScheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemplateColorScheme.h; path = SmartDeviceLink/SDLTemplateColorScheme.h; sourceTree = ""; }; + E8EAD2E9892034B9E96D9C73757CC2DE /* SDLWindowCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWindowCapability.m; path = SmartDeviceLink/SDLWindowCapability.m; sourceTree = ""; }; + E8F549F3D9954F40A97B6921D59DBDCC /* SDLVideoStreamingCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingCapability.m; path = SmartDeviceLink/SDLVideoStreamingCapability.m; sourceTree = ""; }; + E8F6D5DF57737B1814A0C47D2D638B89 /* SDLUnsubscribeButtonResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeButtonResponse.h; path = SmartDeviceLink/SDLUnsubscribeButtonResponse.h; sourceTree = ""; }; + E8FF631234AC949BCF5E7BA206039D09 /* SDLLogFileModuleMap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFileModuleMap.h; path = SmartDeviceLink/SDLLogFileModuleMap.h; sourceTree = ""; }; + E958081595D9D09F94B5A4E61223D317 /* SDLIconArchiveFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIconArchiveFile.h; path = SmartDeviceLink/SDLIconArchiveFile.h; sourceTree = ""; }; + E98EB0FB9B881074126B6496AE6EE4A6 /* SDLSystemCapabilityType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityType.m; path = SmartDeviceLink/SDLSystemCapabilityType.m; sourceTree = ""; }; + E9AE0633C881E09921808B99336A33CD /* SDLAppHMIType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppHMIType.m; path = SmartDeviceLink/SDLAppHMIType.m; sourceTree = ""; }; + E9BE11B50B61C825DEC533B7D69EB1FC /* SDLPinchGesture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPinchGesture.m; path = SmartDeviceLink/SDLPinchGesture.m; sourceTree = ""; }; + EA623EBC3192894DD618538B8DE469FD /* SDLSetAppIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetAppIcon.h; path = SmartDeviceLink/SDLSetAppIcon.h; sourceTree = ""; }; + EA703085F3146AFE22FBAD2AE662CAF2 /* SmartDeviceLink-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartDeviceLink-umbrella.h"; sourceTree = ""; }; + EA74E73DE00325097C89E066596A17F9 /* SDLPrerecordedSpeech.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrerecordedSpeech.h; path = SmartDeviceLink/SDLPrerecordedSpeech.h; sourceTree = ""; }; + EA76282753B31122B78D182BFFE41253 /* SDLCarWindowViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarWindowViewController.h; path = SmartDeviceLink/SDLCarWindowViewController.h; sourceTree = ""; }; + EB0698F6977CDCFDF81D79A0FDBCD2C9 /* SDLTireStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTireStatus.h; path = SmartDeviceLink/SDLTireStatus.h; sourceTree = ""; }; + EB17B3E359DDDCA44BC834ABB8C6C3B8 /* SDLVideoStreamingCodec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingCodec.m; path = SmartDeviceLink/SDLVideoStreamingCodec.m; sourceTree = ""; }; + EB18E676157C3DBB7F7B0573085BC479 /* SDLLockScreenRootViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenRootViewController.m; path = SmartDeviceLink/SDLLockScreenRootViewController.m; sourceTree = ""; }; + EB3F3F76167CA66B3B7C05138A413E0C /* SDLAudioStreamingIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamingIndicator.m; path = SmartDeviceLink/SDLAudioStreamingIndicator.m; sourceTree = ""; }; + EB55A0D888F6AE9CCC809D50497AD040 /* SDLSetCloudAppPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetCloudAppPropertiesResponse.h; path = SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h; sourceTree = ""; }; + EBA1D7A2FE7B1D749E12E48562AF0E9B /* SDLPerformAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAudioPassThru.m; path = SmartDeviceLink/SDLPerformAudioPassThru.m; sourceTree = ""; }; + EBEB8360055FF562885140AB8EDC891A /* SDLAddCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddCommand.m; path = SmartDeviceLink/SDLAddCommand.m; sourceTree = ""; }; + EC66B309EDD7459B38A3029CA12705EC /* SDLIAPDataSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPDataSession.m; path = SmartDeviceLink/SDLIAPDataSession.m; sourceTree = ""; }; + EC6A18970938783F09F8FBF76216579B /* SDLPrioritizedObjectCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrioritizedObjectCollection.h; path = SmartDeviceLink/SDLPrioritizedObjectCollection.h; sourceTree = ""; }; + EC880BF5EFC8FBD9AB4F63EEC9191983 /* SDLAudioStreamingState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamingState.m; path = SmartDeviceLink/SDLAudioStreamingState.m; sourceTree = ""; }; + EC8827628FE4A59FFDCFD4E3F3D7C4C2 /* SDLLightControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightControlCapabilities.h; path = SmartDeviceLink/SDLLightControlCapabilities.h; sourceTree = ""; }; + ED7883C58B7DD059DDA8CACAC65B0774 /* SDLLifecycleSystemRequestHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleSystemRequestHandler.h; path = SmartDeviceLink/SDLLifecycleSystemRequestHandler.h; sourceTree = ""; }; + EDD01FD8321E8A489DCCF59E4DE051D9 /* SDLHMISettingsControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMISettingsControlData.h; path = SmartDeviceLink/SDLHMISettingsControlData.h; sourceTree = ""; }; + EE3BD31D681144934CA751D4EBE59FBE /* SDLMassageCushionFirmness.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageCushionFirmness.h; path = SmartDeviceLink/SDLMassageCushionFirmness.h; sourceTree = ""; }; + EEBA83F076ACB48D5FAF0C28B9E04400 /* SDLImageResolution.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageResolution.m; path = SmartDeviceLink/SDLImageResolution.m; sourceTree = ""; }; EEEFAB8E3FFC61EA0D729CFCA1DF85F5 /* Pods-MobileWeather.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MobileWeather.release.xcconfig"; sourceTree = ""; }; - EFD2738443614AA486E73684C49EFD84 /* SDLTimerMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTimerMode.h; path = SmartDeviceLink/SDLTimerMode.h; sourceTree = ""; }; - F05E89950AFAAE21DF32ACB82FC50FCB /* SDLNavigationServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationServiceManifest.h; path = SmartDeviceLink/SDLNavigationServiceManifest.h; sourceTree = ""; }; - F077FE63CBC553DC56DCF5958EC799BA /* SDLAppServiceCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceCapability.m; path = SmartDeviceLink/SDLAppServiceCapability.m; sourceTree = ""; }; - F07D3E9880A5F22DA73856522EECD33A /* SDLFileType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileType.h; path = SmartDeviceLink/SDLFileType.h; sourceTree = ""; }; - F0851AE5D79F77344448BCED157FDBA1 /* SDLECallInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLECallInfo.m; path = SmartDeviceLink/SDLECallInfo.m; sourceTree = ""; }; - F08A40DF1E002E9280563EFB8F024E54 /* SDLSystemRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemRequest.m; path = SmartDeviceLink/SDLSystemRequest.m; sourceTree = ""; }; - F0D39ACA0371B8A981CE9CDB1FE1F3C0 /* SDLMassageMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageMode.m; path = SmartDeviceLink/SDLMassageMode.m; sourceTree = ""; }; - F0E6D6348ED4BE7016042DB10D5CB6C1 /* SDLRPCStruct.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCStruct.h; path = SmartDeviceLink/SDLRPCStruct.h; sourceTree = ""; }; - F113CD1AE27E195E8E894E7CEFF2C186 /* SDLSystemAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemAction.h; path = SmartDeviceLink/SDLSystemAction.h; sourceTree = ""; }; - F12CCA82A48E7EC083C69337418DE2F1 /* SDLSendLocationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendLocationResponse.m; path = SmartDeviceLink/SDLSendLocationResponse.m; sourceTree = ""; }; - F18A7D5B549029AE3017FE3E78F970C4 /* SDLCreateInteractionChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateInteractionChoiceSet.m; path = SmartDeviceLink/SDLCreateInteractionChoiceSet.m; sourceTree = ""; }; - F19067B542E8E8B13534A927F11732B5 /* BiSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BiSON.modulemap; sourceTree = ""; }; - F1A2C4D06CB5BAF62E5ED897C126990F /* SDLRequestType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRequestType.h; path = SmartDeviceLink/SDLRequestType.h; sourceTree = ""; }; - F1F3ABF315700CBC59CCB9DDE42C0C6F /* SDLUnsubscribeVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeVehicleData.h; path = SmartDeviceLink/SDLUnsubscribeVehicleData.h; sourceTree = ""; }; - F21009FEE092F6591C2E5955ACBCD7A7 /* SDLShow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShow.m; path = SmartDeviceLink/SDLShow.m; sourceTree = ""; }; - F2295CBB1464F89AF0CD86D10D353133 /* SDLDeleteSubMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteSubMenuResponse.m; path = SmartDeviceLink/SDLDeleteSubMenuResponse.m; sourceTree = ""; }; - F27B5920FDC7FD3CE439214E9756A74E /* SDLLockScreenStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenStatus.h; path = SmartDeviceLink/SDLLockScreenStatus.h; sourceTree = ""; }; - F281EBFE5ACD2B7340F65D4E7EEA5416 /* SDLSoftButtonCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonCapabilities.h; path = SmartDeviceLink/SDLSoftButtonCapabilities.h; sourceTree = ""; }; - F2C4FC36D54FA4DCEB9CB7427F105086 /* SDLHapticRect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHapticRect.h; path = SmartDeviceLink/SDLHapticRect.h; sourceTree = ""; }; - F308C661B15B847B779C39D350766544 /* SDLAddSubMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddSubMenu.h; path = SmartDeviceLink/SDLAddSubMenu.h; sourceTree = ""; }; - F325EE523B44B2D99BDB8360522C5DAB /* SDLGetVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetVehicleData.m; path = SmartDeviceLink/SDLGetVehicleData.m; sourceTree = ""; }; - F3623CCA82E15DB239231177AEED9FE2 /* SDLShowConstantTBT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowConstantTBT.m; path = SmartDeviceLink/SDLShowConstantTBT.m; sourceTree = ""; }; - F3A5F47BE1D6B4E4B91C6E9FDC9B8BB3 /* SDLOnAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAudioPassThru.m; path = SmartDeviceLink/SDLOnAudioPassThru.m; sourceTree = ""; }; - F3CD46DEB812EEF3053AE7AD322133F4 /* SDLUpdateMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateMode.h; path = SmartDeviceLink/SDLUpdateMode.h; sourceTree = ""; }; - F3FC5C1D5936F9A265745B7DB5851979 /* SDLVideoStreamingProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingProtocol.h; path = SmartDeviceLink/SDLVideoStreamingProtocol.h; sourceTree = ""; }; - F45151BA3773006A971D197673C22C5F /* SDLImageFieldName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageFieldName.h; path = SmartDeviceLink/SDLImageFieldName.h; sourceTree = ""; }; - F45A44BD6C12AA0EB5B0553231CD72F4 /* SDLSequentialRPCRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSequentialRPCRequestOperation.h; path = SmartDeviceLink/SDLSequentialRPCRequestOperation.h; sourceTree = ""; }; - F52EC5B14583173C4125CAE62815F05C /* SDLMassageModeData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageModeData.h; path = SmartDeviceLink/SDLMassageModeData.h; sourceTree = ""; }; - F5911DA96561B2E0DB4E79F8EF63A561 /* SDLSubscribeVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeVehicleData.m; path = SmartDeviceLink/SDLSubscribeVehicleData.m; sourceTree = ""; }; - F5A4EE85CC2237920F6A3B30FCE073C4 /* SDLMenuCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuCell.m; path = SmartDeviceLink/SDLMenuCell.m; sourceTree = ""; }; - F5DE8533E913F68EBF72EDF7E4D95FDA /* SDLOnAppInterfaceUnregistered.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAppInterfaceUnregistered.h; path = SmartDeviceLink/SDLOnAppInterfaceUnregistered.h; sourceTree = ""; }; - F60CF60AC5E2912FDBA7FB16CCDD927F /* SDLSeatMemoryAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatMemoryAction.h; path = SmartDeviceLink/SDLSeatMemoryAction.h; sourceTree = ""; }; - F66B5FBBDDB4463C3B333E131A0693E0 /* SDLAudioType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioType.h; path = SmartDeviceLink/SDLAudioType.h; sourceTree = ""; }; - F6B6A40C2D7A321D2ECEFC97E432FD89 /* SDLIAPControlSessionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPControlSessionDelegate.h; path = SmartDeviceLink/SDLIAPControlSessionDelegate.h; sourceTree = ""; }; - F6CEE3FF97A40D47F14C11800619E1DB /* SDLGetFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetFile.m; path = SmartDeviceLink/SDLGetFile.m; sourceTree = ""; }; - F6D33A9934F9557666AEADB5FF2C1768 /* SDLDefrostZone.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDefrostZone.m; path = SmartDeviceLink/SDLDefrostZone.m; sourceTree = ""; }; - F735242ADEB26A3EFED063A728FBFD17 /* SDLSetGlobalProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetGlobalProperties.m; path = SmartDeviceLink/SDLSetGlobalProperties.m; sourceTree = ""; }; - F747C1DEC46DA7F32A9DA0A49F0887A5 /* SDLAsynchronousOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousOperation.m; path = SmartDeviceLink/SDLAsynchronousOperation.m; sourceTree = ""; }; - F747E1141A8856C814D76672F68FF23A /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = "zh-Hans.lproj/SDLLockScreen.strings"; sourceTree = ""; }; - F796106033DB7CF49C2AFF239DDD2F71 /* SDLECallConfirmationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLECallConfirmationStatus.m; path = SmartDeviceLink/SDLECallConfirmationStatus.m; sourceTree = ""; }; - F7A97AE27AA359A932FD6703E3DAE004 /* SDLIAPDataSessionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPDataSessionDelegate.h; path = SmartDeviceLink/SDLIAPDataSessionDelegate.h; sourceTree = ""; }; - F7EAA79417587FD8CB036BC849FA1552 /* SDLDeleteFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileResponse.m; path = SmartDeviceLink/SDLDeleteFileResponse.m; sourceTree = ""; }; - F80DCE9605631CF67528BCC3D2584A4C /* SDLGlobalProperty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGlobalProperty.m; path = SmartDeviceLink/SDLGlobalProperty.m; sourceTree = ""; }; - F831CC11D420FA3CB7D9E212B2E9874C /* SDLTouchType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchType.h; path = SmartDeviceLink/SDLTouchType.h; sourceTree = ""; }; - F833AA2E2D10941E6E078E46A5A395A5 /* SDLHMILevel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMILevel.m; path = SmartDeviceLink/SDLHMILevel.m; sourceTree = ""; }; - F91D92B21B5BD8E0E4A09822AE93C6CC /* SDLParameterPermissions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLParameterPermissions.m; path = SmartDeviceLink/SDLParameterPermissions.m; sourceTree = ""; }; - F92F17C1D868E9CB7F4CF24A1F1EE509 /* SDLIAPDataSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPDataSession.m; path = SmartDeviceLink/SDLIAPDataSession.m; sourceTree = ""; }; - F9FDB0D2AA9E98077817EB3B8C90BC03 /* SDLSISData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSISData.m; path = SmartDeviceLink/SDLSISData.m; sourceTree = ""; }; - FA6252C6FBD069E899B6254B7D8F58B5 /* SmartDeviceLink-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SmartDeviceLink-dummy.m"; sourceTree = ""; }; - FA7A7DA3C20C1725AD9388188E89250F /* SDLVideoStreamingCodec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingCodec.m; path = SmartDeviceLink/SDLVideoStreamingCodec.m; sourceTree = ""; }; - FABEE925707D9F7BE28A3E70A9545F08 /* SDLChoiceCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceCell.h; path = SmartDeviceLink/SDLChoiceCell.h; sourceTree = ""; }; - FB0998F7945F98866D5AAEC80A248E5B /* SDLRectangle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRectangle.h; path = SmartDeviceLink/SDLRectangle.h; sourceTree = ""; }; - FB207C099B87EED0B5CC938CCD5BCA17 /* SDLAddCommandResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddCommandResponse.m; path = SmartDeviceLink/SDLAddCommandResponse.m; sourceTree = ""; }; - FB3EB42F4E00D78C3E9D2EAB0CD56A65 /* SDLPredefinedWindows.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPredefinedWindows.h; path = SmartDeviceLink/SDLPredefinedWindows.h; sourceTree = ""; }; - FB58EAC6AED2BCF3595566AB716728B0 /* SDLTTSChunk.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTTSChunk.h; path = SmartDeviceLink/SDLTTSChunk.h; sourceTree = ""; }; - FB6A10D40CFC0CC11ECFD6D0C56D5A5E /* SDLTextField+ScreenManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLTextField+ScreenManagerExtensions.h"; path = "SmartDeviceLink/SDLTextField+ScreenManagerExtensions.h"; sourceTree = ""; }; - FB76E8AF108D2D2C116E5B5C72CECB28 /* SDLCloseApplicationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCloseApplicationResponse.h; path = SmartDeviceLink/SDLCloseApplicationResponse.h; sourceTree = ""; }; - FB773F958DBC067615AA9A0590DBCC61 /* SDLSetCloudAppPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetCloudAppPropertiesResponse.m; path = SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m; sourceTree = ""; }; - FC04BA45906F2ACFB5C2465C9AB915A3 /* SDLRPCMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCMessage.h; path = SmartDeviceLink/SDLRPCMessage.h; sourceTree = ""; }; + EF6117AA0363308CE09FE3E3A578564A /* SDLVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVersion.m; path = SmartDeviceLink/SDLVersion.m; sourceTree = ""; }; + EF925E86FABB82836176E8B05534DE9F /* SDLMenuManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuManagerConstants.h; path = SmartDeviceLink/SDLMenuManagerConstants.h; sourceTree = ""; }; + EFC4194E558FB1558B3CB47C41F68BE1 /* SDLStreamingVideoScaleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingVideoScaleManager.h; path = SmartDeviceLink/SDLStreamingVideoScaleManager.h; sourceTree = ""; }; + F02F9007512F1E4FA4D094A117532E40 /* SDLResponseDispatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResponseDispatcher.h; path = SmartDeviceLink/SDLResponseDispatcher.h; sourceTree = ""; }; + F0B8848BE9A446F837F0690DDED95563 /* SDLVrHelpItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVrHelpItem.h; path = SmartDeviceLink/SDLVrHelpItem.h; sourceTree = ""; }; + F0F72587391C1C5AB8C181F91DA3ABCF /* SDLLayoutMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLayoutMode.h; path = SmartDeviceLink/SDLLayoutMode.h; sourceTree = ""; }; + F10B8AB7BDA6627AA906D8076EACAE16 /* SDLHMIPermissions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMIPermissions.h; path = SmartDeviceLink/SDLHMIPermissions.h; sourceTree = ""; }; + F1474259B2634C2CA09FBC4E9EC0F197 /* SDLGetSystemCapabilityResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetSystemCapabilityResponse.h; path = SmartDeviceLink/SDLGetSystemCapabilityResponse.h; sourceTree = ""; }; + F15B9DBA698067E52DAF11F273D8C305 /* SDLTouchType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchType.m; path = SmartDeviceLink/SDLTouchType.m; sourceTree = ""; }; + F15F88F1FB854998E6F08EFE580379A1 /* SDLDisplayType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayType.h; path = SmartDeviceLink/SDLDisplayType.h; sourceTree = ""; }; + F2294C32AA5333D43982A700A5D97711 /* SDLMediaServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaServiceManifest.h; path = SmartDeviceLink/SDLMediaServiceManifest.h; sourceTree = ""; }; + F27A5F1AE23A8CC4875C2B9F720E0983 /* SDLAppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppInfo.h; path = SmartDeviceLink/SDLAppInfo.h; sourceTree = ""; }; + F297A1D12DA6A40D653E588BCFB5BE1F /* SDLLightState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightState.m; path = SmartDeviceLink/SDLLightState.m; sourceTree = ""; }; + F347411CD5DA8210885B978CC14AB768 /* SDLWayPointType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWayPointType.m; path = SmartDeviceLink/SDLWayPointType.m; sourceTree = ""; }; + F3C46904E4C375379797C22AD77B4E79 /* SDLMsgVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMsgVersion.m; path = SmartDeviceLink/SDLMsgVersion.m; sourceTree = ""; }; + F3EBD6B66041D66C2196112E820E644E /* SDLSecondaryTransportManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSecondaryTransportManager.m; path = SmartDeviceLink/SDLSecondaryTransportManager.m; sourceTree = ""; }; + F453F9BFB3B93AA2625EE2FBBB625D24 /* SDLDeviceInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceInfo.m; path = SmartDeviceLink/SDLDeviceInfo.m; sourceTree = ""; }; + F45E77EB88561822BCBB70591945A179 /* SDLTouchCoord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchCoord.m; path = SmartDeviceLink/SDLTouchCoord.m; sourceTree = ""; }; + F47E1861039AE8C9169792FC3ADCA6F4 /* SDLTCPTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTCPTransport.h; path = SmartDeviceLink/SDLTCPTransport.h; sourceTree = ""; }; + F486561AF5F904ABC8067B60C4EECF23 /* SDLButtonCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonCapabilities.m; path = SmartDeviceLink/SDLButtonCapabilities.m; sourceTree = ""; }; + F498D01DC4282CD4E4C51C6511F9D57F /* SDLPhoneCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPhoneCapability.h; path = SmartDeviceLink/SDLPhoneCapability.h; sourceTree = ""; }; + F504801CD4380D506BB8BFFCF7087AAC /* SDLGetWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetWayPointsResponse.m; path = SmartDeviceLink/SDLGetWayPointsResponse.m; sourceTree = ""; }; + F5903A4BA6C59D4D52E4F8EDA87E0AD5 /* SDLECallConfirmationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLECallConfirmationStatus.m; path = SmartDeviceLink/SDLECallConfirmationStatus.m; sourceTree = ""; }; + F618C99CCA734DA992DC8FF3AF0415BC /* SDLShowConstantTBTResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowConstantTBTResponse.h; path = SmartDeviceLink/SDLShowConstantTBTResponse.h; sourceTree = ""; }; + F62DC0A1FB87B2CE3F9928C0AC3BA403 /* SDLPutFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPutFile.h; path = SmartDeviceLink/SDLPutFile.h; sourceTree = ""; }; + F72C939EDB942180ADF30F6AB0ADC7AA /* SDLListFilesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFilesOperation.h; path = SmartDeviceLink/SDLListFilesOperation.h; sourceTree = ""; }; + F75444C19206F2D27C8E558236DD8652 /* SDLDriverDistractionState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDriverDistractionState.m; path = SmartDeviceLink/SDLDriverDistractionState.m; sourceTree = ""; }; + F7901CE8B0D66BE7D80603D36AC4C9F0 /* SDLFuelType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelType.m; path = SmartDeviceLink/SDLFuelType.m; sourceTree = ""; }; + F7BD7935852D12459264EA6168F97B4D /* SDLUnpublishAppService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnpublishAppService.m; path = SmartDeviceLink/SDLUnpublishAppService.m; sourceTree = ""; }; + F8013668A1A4E9A3111D5B2E843FBA13 /* SDLSubscribeButtonResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonResponse.m; path = SmartDeviceLink/SDLSubscribeButtonResponse.m; sourceTree = ""; }; + F8C42B1050E473F7203DF663AF91285E /* SDLRPCMessageType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCMessageType.h; path = SmartDeviceLink/SDLRPCMessageType.h; sourceTree = ""; }; + F8EDD51E7C160D973CB9023C262ADF2E /* SDLEndAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEndAudioPassThru.m; path = SmartDeviceLink/SDLEndAudioPassThru.m; sourceTree = ""; }; + F907665A4BB12E254E52BB764DBAB620 /* SDLCarWindowViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarWindowViewController.m; path = SmartDeviceLink/SDLCarWindowViewController.m; sourceTree = ""; }; + F96C3EF342C56B944AB2446197932888 /* SDLDeliveryMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeliveryMode.m; path = SmartDeviceLink/SDLDeliveryMode.m; sourceTree = ""; }; + F97131D44A7A2ED6C07482A31E5F6104 /* SDLSlider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSlider.h; path = SmartDeviceLink/SDLSlider.h; sourceTree = ""; }; + F99146EE0F08A756FF12683196D348C9 /* SDLSendHapticDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendHapticDataResponse.m; path = SmartDeviceLink/SDLSendHapticDataResponse.m; sourceTree = ""; }; + F9AB9291462E3AB06586D1F3A200B6F3 /* SDLScreenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScreenManager.h; path = SmartDeviceLink/SDLScreenManager.h; sourceTree = ""; }; + FA15E0A79BCB48FD659C8724AE5E8D70 /* SDLCreateWindowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateWindowResponse.h; path = SmartDeviceLink/SDLCreateWindowResponse.h; sourceTree = ""; }; + FA34FAF6769FF6E67146C25E3918D1BE /* SDLRPCResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCResponse.m; path = SmartDeviceLink/SDLRPCResponse.m; sourceTree = ""; }; + FAE209F3C74B1C886D2FEBB75394F38F /* SDLVehicleDataStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataStatus.m; path = SmartDeviceLink/SDLVehicleDataStatus.m; sourceTree = ""; }; + FAFC34A107469B13834960D07A94FC42 /* SDLWeatherAlert.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherAlert.m; path = SmartDeviceLink/SDLWeatherAlert.m; sourceTree = ""; }; + FB292819C30F7CC71BE8B0A31B91068D /* SDLGrid.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGrid.m; path = SmartDeviceLink/SDLGrid.m; sourceTree = ""; }; + FBA1886A6AB5675C30E45BE6BDC08ABD /* SDLAppServiceRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceRecord.m; path = SmartDeviceLink/SDLAppServiceRecord.m; sourceTree = ""; }; + FBB16D3DFAE9EF0F599A37586C34BCF7 /* SDLKeyboardDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardDelegate.h; path = SmartDeviceLink/SDLKeyboardDelegate.h; sourceTree = ""; }; + FBC39295240049B5FF46205827728BFE /* SDLPerformAudioPassThruResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAudioPassThruResponse.h; path = SmartDeviceLink/SDLPerformAudioPassThruResponse.h; sourceTree = ""; }; + FBC6B21F650C1A094011B17D5E921EE8 /* SDLProtocolMessageAssembler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessageAssembler.h; path = SmartDeviceLink/SDLProtocolMessageAssembler.h; sourceTree = ""; }; + FBD38969E857441AA3068AD8C9ED8B42 /* SDLMediaServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaServiceData.m; path = SmartDeviceLink/SDLMediaServiceData.m; sourceTree = ""; }; + FBF01691FA6A64E8B91B258A087254D5 /* SDLAddSubMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddSubMenuResponse.h; path = SmartDeviceLink/SDLAddSubMenuResponse.h; sourceTree = ""; }; + FBF8392198B21FE38EBE90F5DD79437F /* SDLDistanceUnit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDistanceUnit.h; path = SmartDeviceLink/SDLDistanceUnit.h; sourceTree = ""; }; + FBFE07B70439DC670284DEB1C34BA90D /* SDLCacheFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCacheFileManager.m; path = SmartDeviceLink/SDLCacheFileManager.m; sourceTree = ""; }; + FC37CDD446A3599BE497DE78F8931C4F /* SDLWeatherData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherData.m; path = SmartDeviceLink/SDLWeatherData.m; sourceTree = ""; }; + FC38C9FCF3E7343DF43B8368DC546B42 /* SDLSystemRequestResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemRequestResponse.m; path = SmartDeviceLink/SDLSystemRequestResponse.m; sourceTree = ""; }; FC419B6D5F4F5B911DB8B2F295E08532 /* Pods-MobileWeather-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MobileWeather-dummy.m"; sourceTree = ""; }; - FC438DC201BFBEC2EE4025086F8313F9 /* SDLRPCStruct.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCStruct.m; path = SmartDeviceLink/SDLRPCStruct.m; sourceTree = ""; }; - FC83851939F611364060849E34FD8F54 /* SDLModuleType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleType.m; path = SmartDeviceLink/SDLModuleType.m; sourceTree = ""; }; - FCA1A0BB75E977F6C47C984A7E0B7329 /* SDLFuelRange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelRange.m; path = SmartDeviceLink/SDLFuelRange.m; sourceTree = ""; }; - FCC94AEE7EC43BA74EEFA5EC841EB296 /* SDLPutFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPutFile.m; path = SmartDeviceLink/SDLPutFile.m; sourceTree = ""; }; - FCFB1CA08F9688C66B82C8C2EDFDC54D /* SDLTextField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextField.m; path = SmartDeviceLink/SDLTextField.m; sourceTree = ""; }; - FD4A03C289D0C51D2ADFA923A6B14728 /* SDLSendLocationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendLocationResponse.h; path = SmartDeviceLink/SDLSendLocationResponse.h; sourceTree = ""; }; - FD89634476BF88A8D8E8D716A8A8CD42 /* SDLCreateWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateWindow.h; path = SmartDeviceLink/SDLCreateWindow.h; sourceTree = ""; }; - FDB100B41F41367A5046A8650FD53430 /* SDLSendLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendLocation.m; path = SmartDeviceLink/SDLSendLocation.m; sourceTree = ""; }; - FDBA9441EBE6863A395EF0DDA111A8FC /* NSBundle+SDLBundle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+SDLBundle.h"; path = "SmartDeviceLink/NSBundle+SDLBundle.h"; sourceTree = ""; }; - FE164609DE1ECF1EFF6A42F2D5BEEABC /* SDLAudioStreamManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamManager.h; path = SmartDeviceLink/SDLAudioStreamManager.h; sourceTree = ""; }; - FE1C11AC277FD13D61BE3491397D447F /* SDLSpeak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeak.h; path = SmartDeviceLink/SDLSpeak.h; sourceTree = ""; }; - FE30695FCCBB7E0CC7987C538AFF14FD /* SDLOnInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnInteriorVehicleData.m; path = SmartDeviceLink/SDLOnInteriorVehicleData.m; sourceTree = ""; }; - FED390E4F93350C474A580927CB768CE /* SDLControlFramePayloadAudioStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadAudioStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.h; sourceTree = ""; }; - FF05E55CA61B330811455432212034C1 /* SDLSoftButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButton.m; path = SmartDeviceLink/SDLSoftButton.m; sourceTree = ""; }; - FF21715135EC614F06983334F08B0E1E /* SDLH264VideoEncoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLH264VideoEncoder.h; path = SmartDeviceLink/SDLH264VideoEncoder.h; sourceTree = ""; }; - FF791906F1FC8B75F3E5D9D9CDE8DADE /* SDLNotificationConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNotificationConstants.m; path = SmartDeviceLink/SDLNotificationConstants.m; sourceTree = ""; }; - FF9381D8A697377FEAB359470F3303BD /* SDLOnWayPointChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnWayPointChange.m; path = SmartDeviceLink/SDLOnWayPointChange.m; sourceTree = ""; }; - FFDB98B89A59A3B2447CB847429D8C87 /* SDLRPCPermissionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCPermissionStatus.m; path = SmartDeviceLink/SDLRPCPermissionStatus.m; sourceTree = ""; }; + FC45F95EB06DB46BEF630E65F773DD1C /* SDLPowerModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPowerModeStatus.m; path = SmartDeviceLink/SDLPowerModeStatus.m; sourceTree = ""; }; + FC49D6A818044BC964C9DFC092C0A8DF /* SDLWindowType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWindowType.m; path = SmartDeviceLink/SDLWindowType.m; sourceTree = ""; }; + FCEA708E983578ACFF71772E8EC543E2 /* SDLButtonPressMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPressMode.h; path = SmartDeviceLink/SDLButtonPressMode.h; sourceTree = ""; }; + FCEAF8E21008989F4E1DE6BF04801187 /* SDLTouch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouch.m; path = SmartDeviceLink/SDLTouch.m; sourceTree = ""; }; + FD9450438A4321ABF2471012E8AB5C70 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = "zh-Hans.lproj/SDLLockScreen.strings"; sourceTree = ""; }; + FE62CE2C7E1A9C2C2276D29ACDE4392B /* SDLHapticRect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHapticRect.m; path = SmartDeviceLink/SDLHapticRect.m; sourceTree = ""; }; + FE7744F0C66582742EF55FA411E81338 /* SDLListFilesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFilesResponse.h; path = SmartDeviceLink/SDLListFilesResponse.h; sourceTree = ""; }; + FEE104BE89E6E1AFC8970A8566B31A02 /* SDLRPCNotificationNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCNotificationNotification.h; path = SmartDeviceLink/SDLRPCNotificationNotification.h; sourceTree = ""; }; + FEF2016A9D7AE38A97F83A8E40300735 /* BiSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BiSON-umbrella.h"; sourceTree = ""; }; + FF58817A16825E97C73749864272841A /* SDLSetCloudAppProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetCloudAppProperties.h; path = SmartDeviceLink/SDLSetCloudAppProperties.h; sourceTree = ""; }; + FF61F998914A5EB8F53759FEBD2416D2 /* SDLPCMAudioConverter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPCMAudioConverter.m; path = SmartDeviceLink/SDLPCMAudioConverter.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 0462C6BC022E3DA7F6D838C53ED0C2D7 /* Frameworks */ = { + 072FE30B51DE3BD5A1AD793BB58D062D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 434BB6186E1C616AAF51687143FBDF2E /* BiSON.framework in Frameworks */, + 68F509B411A9D21346004B2316F5E759 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 3777EA804422776487C8F513BEE7F4AF /* Frameworks */ = { + 59047D00004E0FC863A84D4A108701F4 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 56FD57BF3791ACD2B74C0162F2BE9FBD /* BiSON.framework in Frameworks */, - 0B933EE495EEB97207691239D9319BC2 /* Foundation.framework in Frameworks */, + 8D6461D76103F1285DA80188D7295EE9 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 59047D00004E0FC863A84D4A108701F4 /* Frameworks */ = { + 6ECD2E914F56D3E2BE62A07561B18D03 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 8D6461D76103F1285DA80188D7295EE9 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2318,20 +2316,11 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 16078D60F18D9059209E00CB8AAD1C5E /* Resources */ = { + 01A3524E412C84B88E48937114994213 /* Pods */ = { isa = PBXGroup; children = ( - 863AFB2E5034F4791C4E19C43C1F917C /* SDLAssets.xcassets */, - 4F718CA865E4EBD8B3A40B5E3399596B /* SDLLockScreen.storyboard */, - ); - name = Resources; - sourceTree = ""; - }; - 1F44F6C17D07B2869644379E212938BC /* Pods */ = { - isa = PBXGroup; - children = ( - BDDB36FAFEC8E06EA81E7B69A93982ED /* BiSON */, - 4BF1E08B5422EDF7FEB85BA1E9A83CDD /* SmartDeviceLink */, + F07FEB30CF9223AE0F038EDED31EEFA8 /* BiSON */, + 79190AE0E09AAB511AF11AD1CED0C631 /* SmartDeviceLink */, ); name = Pods; sourceTree = ""; @@ -2345,1119 +2334,16 @@ name = Frameworks; sourceTree = ""; }; - 4B18C4D46DE5F2FB43CC1E819DAF000E /* Support Files */ = { - isa = PBXGroup; - children = ( - 1131203DD1A9D81CB8211E61876734B7 /* ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist */, - 48BF8E7CA87C2563EB4169EC2CFC771C /* SmartDeviceLink.modulemap */, - FA6252C6FBD069E899B6254B7D8F58B5 /* SmartDeviceLink-dummy.m */, - 81EC89561B1309E5EBCB47D731425C63 /* SmartDeviceLink-Info.plist */, - 5A969288213535D08DB702C6481A24BE /* SmartDeviceLink-prefix.pch */, - 6A9E9D261C1048E5D099A24A970F9FC3 /* SmartDeviceLink-umbrella.h */, - ADD3A5E2AF56D8C4B191087DCC79274E /* SmartDeviceLink.debug.xcconfig */, - 454C2F95ECB135A8B710295C27270E3C /* SmartDeviceLink.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/SmartDeviceLink"; - sourceTree = ""; - }; - 4BF1E08B5422EDF7FEB85BA1E9A83CDD /* SmartDeviceLink */ = { - isa = PBXGroup; - children = ( - 51CBC7711516B96100D4A7273DBFA491 /* Default */, - 4B18C4D46DE5F2FB43CC1E819DAF000E /* Support Files */, - 89B38A6C0A3CAF4A24CF6CDBC710402E /* Swift */, - ); - path = SmartDeviceLink; - sourceTree = ""; - }; - 51CBC7711516B96100D4A7273DBFA491 /* Default */ = { + 47C7166BA760847A0AD362E48BB367E5 /* Support Files */ = { isa = PBXGroup; children = ( - 0F98A315A729E83EEEFA448CB1B4AE9D /* CGPoint_Util.h */, - B5ACECDC2EB38CF822CD5E4F6482A49A /* CGPoint_Util.m */, - 1A4071441DDC5077B72F75166D79DE65 /* CVPixelBufferRef+SDLUtil.h */, - E2D2C496603448224B3A478BD1E7C7FC /* CVPixelBufferRef+SDLUtil.m */, - 8AB6823D25685820410ED63918C02E0A /* EAAccessory+SDLProtocols.h */, - 17D87C03746D4C019B47395971B49753 /* EAAccessory+SDLProtocols.m */, - EDB0328B80CB9DE895193A6A4467BB91 /* EAAccessoryManager+SDLProtocols.h */, - C2984A671B556FF5F5714ABB2F86EE8A /* EAAccessoryManager+SDLProtocols.m */, - FDBA9441EBE6863A395EF0DDA111A8FC /* NSBundle+SDLBundle.h */, - B04D130FB2F02F323455BD16B20ACE8B /* NSBundle+SDLBundle.m */, - BA157A4B51D5529A4050627BB1C06625 /* NSMapTable+Subscripting.h */, - 3CFB911A9893560A2C355E39C00E5539 /* NSMapTable+Subscripting.m */, - 71626D352E691F8B7E7514EB0EAEAB01 /* NSMutableArray+Safe.h */, - 72A24826CB06B3C74BFF1FAC64D33A17 /* NSMutableArray+Safe.m */, - 2B9DA57DC3982AC2A8A92052ECAB639A /* NSMutableDictionary+SafeRemove.h */, - 8945F938BC1F0E55439AAB1ADFF84C1C /* NSMutableDictionary+SafeRemove.m */, - E957BB923D9D863C7E408A84D7E62E28 /* NSMutableDictionary+Store.h */, - 208C514CB24786D3F215E8EE314CA7B1 /* NSMutableDictionary+Store.m */, - 61BCAB5AD776DC231BC9B208AEA941FC /* NSNumber+NumberType.h */, - 810191FBC97CF880144ABEB67A432DD7 /* SDLAddCommand.h */, - 1D48DAC1DBEA20AE11B03D74419A181C /* SDLAddCommand.m */, - C42BD5083909F2F176B3762128DD9B06 /* SDLAddCommandResponse.h */, - FB207C099B87EED0B5CC938CCD5BCA17 /* SDLAddCommandResponse.m */, - F308C661B15B847B779C39D350766544 /* SDLAddSubMenu.h */, - 50B06BF759879E5F7FB48501D617628A /* SDLAddSubMenu.m */, - D68D39C84895E461F1B9634D606671E1 /* SDLAddSubMenuResponse.h */, - 5CE9058C4CECC7EB2181F33AED464312 /* SDLAddSubMenuResponse.m */, - 8855466267A3B3D5676C6D27C57295EA /* SDLAirbagStatus.h */, - B5D1F23B2E71DAA1B5D0B59605A90913 /* SDLAirbagStatus.m */, - 64CC24A0167F43E7EFCD3741ED2CD00A /* SDLAlert.h */, - 14A8D51B3439374BFB1554CBD1E477B8 /* SDLAlert.m */, - 7107118F63D85B4E1D0C3139EC411FA9 /* SDLAlertManeuver.h */, - 8012DBA7B04E0C0D6D13D3AB41B86CFA /* SDLAlertManeuver.m */, - CC66876557B0753F1E8075EEECFA7C06 /* SDLAlertManeuverResponse.h */, - D0981807051884EEA83FBA93119C3343 /* SDLAlertManeuverResponse.m */, - 83335AC43298E401A07294CE5F7FB4FA /* SDLAlertResponse.h */, - A9C1A17D21E9FA2E45F72C2B32CCE8F7 /* SDLAlertResponse.m */, - 2FD49396D5358F998A4629ED1C829892 /* SDLAmbientLightStatus.h */, - 29633F4DCFB56822424E2DE90E738544 /* SDLAmbientLightStatus.m */, - 76914E4FB138C6C29615A345C805BB4E /* SDLAppHMIType.h */, - 67B1375F3DDA0692EAB06F16FF383182 /* SDLAppHMIType.m */, - 824499C1074ACBA17C39242C022396D4 /* SDLAppInfo.h */, - 55217909B98035F7AFBC7F73096982A2 /* SDLAppInfo.m */, - 7D17B47BB0D9A877AB0D85B41A630687 /* SDLAppInterfaceUnregisteredReason.h */, - 1C7F206C35B6B523B922930AEAD75A25 /* SDLAppInterfaceUnregisteredReason.m */, - 3DB78A3398DB496866979B7038BB5583 /* SDLAppServiceCapability.h */, - F077FE63CBC553DC56DCF5958EC799BA /* SDLAppServiceCapability.m */, - 545945C37CA202B7C89B0BDB939DF95C /* SDLAppServiceData.h */, - 507FBFEE8A6A81402E77FB59A01BA642 /* SDLAppServiceData.m */, - 57F1282A6F2ED03A5614C9C2B2DAAF2D /* SDLAppServiceManifest.h */, - D55417FE7F7FC0C9B4F34CAE0D38AC5C /* SDLAppServiceManifest.m */, - 63CCE3D626BB22CCA767323E3EE5965A /* SDLAppServiceRecord.h */, - 09CB1EF14BDD7FF6541D42C4AA269392 /* SDLAppServiceRecord.m */, - 092865BB22501250C0C3FF3D5CF2E200 /* SDLAppServicesCapabilities.h */, - 821880E4A2BC5BEF5F42B7CCFF64AB9D /* SDLAppServicesCapabilities.m */, - 70D15488C806D4BEC8709786B9EE4931 /* SDLAppServiceType.h */, - 30C60087B34A79843BE53EE59A516D68 /* SDLAppServiceType.m */, - 880F24F11420E145AFB4143AF75C49B8 /* SDLArtwork.h */, - C3EBAD2DFAF1E748D9CE7A71A8F7ADD2 /* SDLArtwork.m */, - 3EADC1263640A78820A3303343799BE6 /* SDLAsynchronousOperation.h */, - F747C1DEC46DA7F32A9DA0A49F0887A5 /* SDLAsynchronousOperation.m */, - 646F19BE927B0171643AFCA74D750304 /* SDLAsynchronousRPCOperation.h */, - 2C38F093E9748ACAA9284BD728AA9AAF /* SDLAsynchronousRPCOperation.m */, - D0C18115663476B7D482AC09B3DC33F5 /* SDLAsynchronousRPCRequestOperation.h */, - 77B63B96875F1C820F190F3AC0A911ED /* SDLAsynchronousRPCRequestOperation.m */, - 2887D0C5085EA06F9D4FD170C6F4235C /* SDLAudioControlCapabilities.h */, - BBBA34781B3503DDA95B0CAE4B42E438 /* SDLAudioControlCapabilities.m */, - 2AF9D8696C22ABDC9B6EC313EC8554C4 /* SDLAudioControlData.h */, - 089526E918DB53DC6E49872629FFC303 /* SDLAudioControlData.m */, - 9570AA3F2F4CC1AE3DEC19E631620F29 /* SDLAudioFile.h */, - 878CFADA0C9FAF4387BFEBA236775E0D /* SDLAudioFile.m */, - 28FD8035C89A39A37313F411B5C93EA4 /* SDLAudioPassThruCapabilities.h */, - C18816A43577E38FE8908AD8B8B72321 /* SDLAudioPassThruCapabilities.m */, - 808FA370A600BD6F4DF9382F215445CF /* SDLAudioStreamingIndicator.h */, - 73ACA9CF96F869FA20D4FA90D8076760 /* SDLAudioStreamingIndicator.m */, - A3F84DAD3D88A67D4CE282450BA269F8 /* SDLAudioStreamingState.h */, - AF28A68579C98F539C039EA29CA59D4B /* SDLAudioStreamingState.m */, - FE164609DE1ECF1EFF6A42F2D5BEEABC /* SDLAudioStreamManager.h */, - 9E455C3FFF2568B4B1C81CC712A1DB06 /* SDLAudioStreamManager.m */, - 03CB7781E3AFB6084B7FF7B008C554AA /* SDLAudioStreamManagerDelegate.h */, - F66B5FBBDDB4463C3B333E131A0693E0 /* SDLAudioType.h */, - AB7CED9964DD3F087B0208B33F08C202 /* SDLAudioType.m */, - 121EABB22D7495B5EBE9D72C0E2F9D2B /* SDLBackgroundTaskManager.h */, - 1EAC648706939F20E524EF7CD347A0C2 /* SDLBackgroundTaskManager.m */, - D04E8AFADA5F4A1EFE947D76FC10E211 /* SDLBeltStatus.h */, - 8491710A7CDE4F582940CE688AF7A91B /* SDLBeltStatus.m */, - B5BDE0E2D5DE878BA2561C438678E7EA /* SDLBitsPerSample.h */, - 0DE2FE3B6560346F8069F04D79D7E283 /* SDLBitsPerSample.m */, - 994CECE8A7C71DE7FD91078E6AC4AF7F /* SDLBodyInformation.h */, - 8E2C9383A7DCAF213C875854C59E3043 /* SDLBodyInformation.m */, - 93CA15BB34449EB60AC4245F6669B10C /* SDLButtonCapabilities.h */, - 970F63E20BB6D882EF074800A3CE6176 /* SDLButtonCapabilities.m */, - 17F39883F5C926723043B16C4FEB77D9 /* SDLButtonEventMode.h */, - A19E73266D6733F4C2E8727710A11ED9 /* SDLButtonEventMode.m */, - 659961EA97BC4FAE7763288542F9CB2F /* SDLButtonName.h */, - AD2F8C7E3E2CA2E54A878E1804C6819B /* SDLButtonName.m */, - 0B1FA2D3A3AECF7476B6EB1A1004187A /* SDLButtonPress.h */, - 0B426EF21719FFCBFD4CC285CE5B8E31 /* SDLButtonPress.m */, - E78DEB8B749679E27472A7740A653CED /* SDLButtonPressMode.h */, - CD3B8A988BB67EDC48B5BBDC39F44164 /* SDLButtonPressMode.m */, - 297D3BF189B64B55B4EBFB1B4F256FD9 /* SDLButtonPressResponse.h */, - 1FA3D11485B98D532358487B826F92A6 /* SDLButtonPressResponse.m */, - 4A2717B2D5DE554897D72CB951C42757 /* SDLCacheFileManager.h */, - 8E1C9328B451F98B0315DBA9202D5241 /* SDLCacheFileManager.m */, - 79BE090F6A21A962EE21A4F1CEEF8475 /* SDLCancelInteraction.h */, - 448B4ECBFE83DF3E2B77F2D820F2A368 /* SDLCancelInteraction.m */, - 59F336B19B5A14921AF73428A666E018 /* SDLCancelInteractionResponse.h */, - 102FDAC56AEF5163B033D0CC47822A7F /* SDLCancelInteractionResponse.m */, - C2465E4A570C1A14AA2E12DA0AE6B8C7 /* SDLCarModeStatus.h */, - 30D436C8BEF4813A0366098F52523C60 /* SDLCarModeStatus.m */, - 524A27962BB7A038C3B5A39B5A529ED5 /* SDLCarWindow.h */, - 94AB62DC444A4E92E8E71099CDED36CE /* SDLCarWindow.m */, - 92ACAA8B4D0D63E63F39B9F53DEFD855 /* SDLCarWindowViewController.h */, - B0DCC93C381CC643F45864405E55E958 /* SDLCarWindowViewController.m */, - 057BF4E380C24A34B8A91DABCBD55757 /* SDLChangeRegistration.h */, - 8EF8FC180D4BBA0EC08C5AEB71F88B60 /* SDLChangeRegistration.m */, - 7AC9DBB4949F6A3B97B7BEB8AE95E1BE /* SDLChangeRegistrationResponse.h */, - 84C5C4D0E7C8575BB285D8DD30E89F56 /* SDLChangeRegistrationResponse.m */, - B3B2790352EE6BE9ABFDD04D31188B31 /* SDLCharacterSet.h */, - 3AF9C51B912A87FCA50DB65BF6162630 /* SDLCharacterSet.m */, - 7D870FC3F91ACC2B15AB223846D01700 /* SDLCheckChoiceVROptionalOperation.h */, - BC088F50F39FABB3A2835578295D6FCE /* SDLCheckChoiceVROptionalOperation.m */, - 70FCA6EA14F58857FDC822D78A615F03 /* SDLChoice.h */, - E00FDE680B46E1B812D8143C5D0A5271 /* SDLChoice.m */, - FABEE925707D9F7BE28A3E70A9545F08 /* SDLChoiceCell.h */, - 0A92F939214CB9AE0B8F4A9AC267DF28 /* SDLChoiceCell.m */, - B9216714A4B6D6F70DA8E53B3F9320CA /* SDLChoiceSet.h */, - 99258EE24FD66E3BA4328B7EB26FED96 /* SDLChoiceSet.m */, - 3DE9E361C8A5F013FAB70F518A575C64 /* SDLChoiceSetDelegate.h */, - 4C7F9ED55C903DF4E945CF493F83626F /* SDLChoiceSetManager.h */, - E72CA0DD191E63F3A67CEBEC9625C1F5 /* SDLChoiceSetManager.m */, - DEB1D477D9EB612F32B6432000660C59 /* SDLClimateControlCapabilities.h */, - 6235BA14F1F7044B98188F7FACCFE4C8 /* SDLClimateControlCapabilities.m */, - 6E1639EE1075414A5D5EA690D7F79B69 /* SDLClimateControlData.h */, - 3C61578FBFA3147D20DF240420C54033 /* SDLClimateControlData.m */, - A4D71C10FFEEDB848F3F2C093F2DC642 /* SDLCloseApplication.h */, - 0D21D2139E965A5CA024DB58BE117962 /* SDLCloseApplication.m */, - FB76E8AF108D2D2C116E5B5C72CECB28 /* SDLCloseApplicationResponse.h */, - C1F9C5416BB8D0ED9335E1A889B51A93 /* SDLCloseApplicationResponse.m */, - A6B9669FEDAAA1EF5A7C9F94BED90F1E /* SDLCloudAppProperties.h */, - 89A76245B2627554C8BCFD4EC00D0102 /* SDLCloudAppProperties.m */, - 5869C4B4CE96D9E62C0313B0D1A429CE /* SDLClusterModeStatus.h */, - B2C56DF1F1818D8E1FD488B352881DD0 /* SDLClusterModeStatus.m */, - CCEFC169422E967386D07342ED9E5B8F /* SDLCompassDirection.h */, - 96D7A594E902D4A574B41FF1CEFB2D60 /* SDLCompassDirection.m */, - 5E97BBBE0B504665860ED1CAA8E59FE8 /* SDLComponentVolumeStatus.h */, - 813A147E7FDCF70030F5AEC4B266E506 /* SDLComponentVolumeStatus.m */, - 8FA1E34ACCBDEF2099EC4469F2405BBB /* SDLConfiguration.h */, - 8C8B7EAEF425B5B3F0375A9301A599C4 /* SDLConfiguration.m */, - 865CF3B1A51E7AF3086DD6E840A8C8C7 /* SDLConnectionManagerType.h */, - FED390E4F93350C474A580927CB768CE /* SDLControlFramePayloadAudioStartServiceAck.h */, - 6644C7A504AD3CAC83C4A63B22675EB0 /* SDLControlFramePayloadAudioStartServiceAck.m */, - C56E766AC9995A99617E24C80F827D43 /* SDLControlFramePayloadConstants.h */, - 6AB0EFA70338ECA876CAE278CBCEF17D /* SDLControlFramePayloadConstants.m */, - EBD94A8CDBA452B3D05316C90227BD89 /* SDLControlFramePayloadEndService.h */, - 77CC97F51D3268076905BB31E39F4CD1 /* SDLControlFramePayloadEndService.m */, - 120E0599820F60BBAB5980EF892809ED /* SDLControlFramePayloadNak.h */, - AFF3E79663035A0B5E589A3D5DF2051B /* SDLControlFramePayloadNak.m */, - 154F7BD449EBAB714A8FBF679C03A16F /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */, - A8F1FC7563B35841A0B1D696269FA3AB /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */, - CDC3E3043CC87C0BB89DD7FD7BCE772A /* SDLControlFramePayloadRPCStartService.h */, - 6AB1DCB476513BFF046B549ACEA9FE45 /* SDLControlFramePayloadRPCStartService.m */, - E1A8A1E0A076B07F56387D1063ABB1A3 /* SDLControlFramePayloadRPCStartServiceAck.h */, - 1B5378A0D8A574B369D8D84FC58D1882 /* SDLControlFramePayloadRPCStartServiceAck.m */, - D9122ED144BA8E4A71AAE00847B80AD2 /* SDLControlFramePayloadTransportEventUpdate.h */, - 026C522465461D2651A396400F15816E /* SDLControlFramePayloadTransportEventUpdate.m */, - 285B908EABA56FEE3FBABD179F93E58C /* SDLControlFramePayloadType.h */, - D454F140BD2837E493EFB52D5D399FF6 /* SDLControlFramePayloadVideoStartService.h */, - 25831F0759C377A291230FE1B42725AC /* SDLControlFramePayloadVideoStartService.m */, - CE545916C7D8D475FB552FAAE7AD0286 /* SDLControlFramePayloadVideoStartServiceAck.h */, - 79477F35CD70B0D22D924DD87A435888 /* SDLControlFramePayloadVideoStartServiceAck.m */, - 116815ADE5356987348CB6CA1D5E8C88 /* SDLCreateInteractionChoiceSet.h */, - F18A7D5B549029AE3017FE3E78F970C4 /* SDLCreateInteractionChoiceSet.m */, - B663F05251D2CEC64244343870CC61B4 /* SDLCreateInteractionChoiceSetResponse.h */, - 1DC9D9DFEFD8DA66012392040EC1C55F /* SDLCreateInteractionChoiceSetResponse.m */, - FD89634476BF88A8D8E8D716A8A8CD42 /* SDLCreateWindow.h */, - 851DB4FB9BD1E39F4B61D6DD51ABD057 /* SDLCreateWindow.m */, - 944E4D0EB351D4FF821AC8C6E8A6599F /* SDLCreateWindowResponse.h */, - E34195450014D320A5D463831A181938 /* SDLCreateWindowResponse.m */, - 3603AB47CCA7EABB5B1FDAC0C16A59C7 /* SDLDateTime.h */, - 1EAE47EB9D6FA6A7086775871FD445E1 /* SDLDateTime.m */, - AF8586C62AFA2F4833F9F198CA2236FA /* SDLDefrostZone.h */, - F6D33A9934F9557666AEADB5FF2C1768 /* SDLDefrostZone.m */, - 32A8A151275801260ADFAEC896C908A8 /* SDLDeleteChoicesOperation.h */, - DE0871AD02E119A57E3097FB1311D3C1 /* SDLDeleteChoicesOperation.m */, - 7B50E027677BEB5915991E589C93AA10 /* SDLDeleteCommand.h */, - EE640E82A995C6B4B7358301B1821AB5 /* SDLDeleteCommand.m */, - 99287642C46A058853261EE0F8FB5803 /* SDLDeleteCommandResponse.h */, - CB3FBF9629A46D84216A895E9CC557D0 /* SDLDeleteCommandResponse.m */, - 69EB1D090E106984195E7886C58C910C /* SDLDeleteFile.h */, - 157695036F630B99AA2A2162AAAAAF9E /* SDLDeleteFile.m */, - 5183ABBFFA966A641482836B262617DD /* SDLDeleteFileOperation.h */, - 10932B52AE70AF095B0197772101BF9E /* SDLDeleteFileOperation.m */, - C8C16DD6E47A4B9FA795780317963CB0 /* SDLDeleteFileResponse.h */, - F7EAA79417587FD8CB036BC849FA1552 /* SDLDeleteFileResponse.m */, - C24AADEEDA015C43C563DB8822396C0A /* SDLDeleteInteractionChoiceSet.h */, - 181548D9FA28EF29C39F058DDD467003 /* SDLDeleteInteractionChoiceSet.m */, - DEE0B3D792D8D9B339974A65CFE9D595 /* SDLDeleteInteractionChoiceSetResponse.h */, - 856764E6D7C402933AA4B550B7ADCBCD /* SDLDeleteInteractionChoiceSetResponse.m */, - 202CF610C5F2342C8E54FB9049CF4F47 /* SDLDeleteSubMenu.h */, - EB181A531DCA51446180DE770DFF44F1 /* SDLDeleteSubMenu.m */, - B783431D6B033263CF2D12A61575D27F /* SDLDeleteSubMenuResponse.h */, - F2295CBB1464F89AF0CD86D10D353133 /* SDLDeleteSubMenuResponse.m */, - CBEBD6445D569D27DF83CCC6C9F8DC0E /* SDLDeleteWindow.h */, - 809D3FC9668359BFD1AD77E50506EFA2 /* SDLDeleteWindow.m */, - 51B66260E43F75F7BD5D210137A3720C /* SDLDeleteWindowResponse.h */, - 6C6AE16D11DEDEAAF0E172B5CDACB105 /* SDLDeleteWindowResponse.m */, - EDD45B023BDB53CC20F889178F9F4D35 /* SDLDeliveryMode.h */, - 7F7B026A5E29DCF1060FD41C895EB056 /* SDLDeliveryMode.m */, - C70B2859CDC07782CF755E851575239E /* SDLDeviceInfo.h */, - 3B9385D01A185AC52F1A077BBDC5759D /* SDLDeviceInfo.m */, - E4EC6315B72CAC0F33814470212DCDC3 /* SDLDeviceLevelStatus.h */, - 4E839A485728E494163C610E5F436EA9 /* SDLDeviceLevelStatus.m */, - 382E3AEEA682773DFC104C615B3B6240 /* SDLDeviceStatus.h */, - 579644EEE9880D03CC5BDA3AAA01F743 /* SDLDeviceStatus.m */, - 76D324B05E41128D942966F0A0EEBB12 /* SDLDiagnosticMessage.h */, - 7E8B2B973E85F3287EF6B9408633BD6D /* SDLDiagnosticMessage.m */, - 5550D8512B86F0A9F6C54350FB7AAE2F /* SDLDiagnosticMessageResponse.h */, - 40B5504C8F1E24113D498111742CF96E /* SDLDiagnosticMessageResponse.m */, - 7D5AFE5EC9DFCBD550B6CE009570187A /* SDLDialNumber.h */, - 410C7382DF348567CD7D56ECDD08CAC7 /* SDLDialNumber.m */, - 360BEE262B398C4DAF3FB595771EFA2D /* SDLDialNumberResponse.h */, - B29A443AF2301B12BD576CFDE7A4092C /* SDLDialNumberResponse.m */, - AACAAE80DEC9BA4877F4673B9A256C7A /* SDLDIDResult.h */, - 8A578665B9047694A0F347F293DE12B4 /* SDLDIDResult.m */, - A8A312C4D8E76C9BC500924B32C0A57F /* SDLDimension.h */, - B119F703EFD09662F12A91AC7015A81C /* SDLDimension.m */, - 684377DF2520C00D1850BD09A565E45D /* SDLDirection.h */, - 3D0CF36EE6F81BF9E7C336BFF6FA6882 /* SDLDirection.m */, - D4C1DE17C70124F2EC7ADB7C93FCA111 /* SDLDisplayCapabilities.h */, - 7767E20AEA869F60F20EA97DB0E504E1 /* SDLDisplayCapabilities.m */, - 8A43468737969CFBC34B9E215CE0D886 /* SDLDisplayCapability.h */, - CF06C121B2AD922B5E0F2F9075C29C29 /* SDLDisplayCapability.m */, - 25D424DB2BA7511820D2FE4FCDC9E179 /* SDLDisplayMode.h */, - 91BF1416AB652B4C37A9DEB376B5AEE0 /* SDLDisplayMode.m */, - 7E811202558CAA5E41CCE8C8544776CB /* SDLDisplayType.h */, - E1F96F850E5D86162FB221E7A54E8EFD /* SDLDisplayType.m */, - BF812F295C7BC99D0E7260C44A30FA1A /* SDLDistanceUnit.h */, - 5F8B26301962DAB3A218E94BBF267589 /* SDLDistanceUnit.m */, - BD026A8DACC64BF05FE396E827AA092F /* SDLDriverDistractionState.h */, - C578DE7BA9E0FFC539C979EB88551881 /* SDLDriverDistractionState.m */, - 27513221634E83533BBE60EDA4667D93 /* SDLDynamicMenuUpdateAlgorithm.h */, - D8BC4DC3D5C26DEF7E62FBB6D8922181 /* SDLDynamicMenuUpdateAlgorithm.m */, - D4966D54B828A01F82DC4326A367A6B3 /* SDLDynamicMenuUpdateRunScore.h */, - B8C8AC93E9BA7751B05993A0779C952D /* SDLDynamicMenuUpdateRunScore.m */, - 3C252C93BD400D587AED7514EAE2990A /* SDLECallConfirmationStatus.h */, - F796106033DB7CF49C2AFF239DDD2F71 /* SDLECallConfirmationStatus.m */, - 3416AED17893B065F631CBB7B0714BAC /* SDLECallInfo.h */, - F0851AE5D79F77344448BCED157FDBA1 /* SDLECallInfo.m */, - 326B988FE7A92BB39F45659C26EDF13D /* SDLElectronicParkBrakeStatus.h */, - 9232A35C7990DF5C5A02370607D23D1B /* SDLElectronicParkBrakeStatus.m */, - 02FDA2F0BEF128D86C26F8CC45E68CD1 /* SDLEmergencyEvent.h */, - A58155F4D86C1C49F4B0245936BBF3E6 /* SDLEmergencyEvent.m */, - 84C4889DD2C1AC35B627A69F8C7C3D42 /* SDLEmergencyEventType.h */, - BB4BC0AA3756089C2F90667540A4880D /* SDLEmergencyEventType.m */, - 20E5AD672FECA3D8596890719BD59620 /* SDLEncodedSyncPData.h */, - 2BD6D254A4BA71629C487F7B9B5FF780 /* SDLEncodedSyncPData.m */, - 879D45F15B6B19AD8392A3B6A475AB91 /* SDLEncodedSyncPDataResponse.h */, - 080C0AFE1D0A26741E58932027641033 /* SDLEncodedSyncPDataResponse.m */, - CB94E5F60A8212C2F399605867F18BD7 /* SDLEncryptionConfiguration.h */, - 5DE719023045A4F8E7FB620C98982C60 /* SDLEncryptionConfiguration.m */, - 408658D7DB613F01047698ECAE093D90 /* SDLEncryptionLifecycleManager.h */, - 58FE6CB1EE278E803C1B5FF6EB589249 /* SDLEncryptionLifecycleManager.m */, - 9CED171DA1E775EB6E14EA2D2D5AF5D5 /* SDLEncryptionManagerConstants.h */, - CA172B821F0003F4CA4CF26BF6E2EF6B /* SDLEncryptionManagerConstants.m */, - AE2BAC066A795F9A2BC704A131DD796B /* SDLEndAudioPassThru.h */, - 3FE4CF814EDDBC348C63CE0ADEA512E8 /* SDLEndAudioPassThru.m */, - 9FE66F7EA43B7C8883B49BF7021DBB96 /* SDLEndAudioPassThruResponse.h */, - 40E148CD4DE2F892CDEA9A3C1BCCD3DE /* SDLEndAudioPassThruResponse.m */, - 8619125F9745A7BD3975F3CBD74C4613 /* SDLEnum.h */, - 57FF113F520A5C67641777D6914A56DE /* SDLEnum.m */, - A46B7480DA60280AFABEE933D1777D59 /* SDLEqualizerSettings.h */, - E9865E2D3C6B1D187D3D04C2B429951E /* SDLEqualizerSettings.m */, - 5DE51752FED2D7FE208CE05FC220435D /* SDLError.h */, - 3778DFBEF00494FE5D31E79DFBB96B35 /* SDLError.m */, - 4A5A2F651034AEC49BAE3963D3AA8018 /* SDLErrorConstants.h */, - 430C9D5FCDF96E9E712BC537CDC01EA1 /* SDLFile.h */, - D3DA4CCC5B1886D2AC2DC948D22D54C9 /* SDLFile.m */, - 5CC08B2D1ECABDAF764AE254824DC457 /* SDLFileManager.h */, - 7B8C8887A387D235F538311D49C4D060 /* SDLFileManager.m */, - BB04F62BFFD1CB792E34526F173104FF /* SDLFileManagerConfiguration.h */, - 338899E14AD4EC3E7D4D257B7F18AF1C /* SDLFileManagerConfiguration.m */, - A39FC9ECBCE47531EA0F628BD8F31F5B /* SDLFileManagerConstants.h */, - F07D3E9880A5F22DA73856522EECD33A /* SDLFileType.h */, - 5EF29BC404FD0F315A73C9D9A7351277 /* SDLFileType.m */, - 3FDDB1063EBEFDA59DA01CE662F32CE8 /* SDLFileWrapper.h */, - 5587E86763C14DCAE5CD85F2D66EEE60 /* SDLFileWrapper.m */, - 48849036CC2BEE806DD74887DCF4875B /* SDLFocusableItemHitTester.h */, - DEDA2F4C7E4A828FFB91244C19F756D0 /* SDLFocusableItemLocator.h */, - 11EBD8D7297FC1CE9479C7508D26FEF6 /* SDLFocusableItemLocator.m */, - 4E3E1DD21F0F75C6E6C6BB96CE53E34F /* SDLFocusableItemLocatorType.h */, - E7CCD566D513D6EEC4E95B4D23D395FB /* SDLFuelCutoffStatus.h */, - 35CFB929B710C6200396CA20289832F1 /* SDLFuelCutoffStatus.m */, - D48DCBCD7C2098396B010A87235DBEC7 /* SDLFuelRange.h */, - FCA1A0BB75E977F6C47C984A7E0B7329 /* SDLFuelRange.m */, - 751014CBE69345246F2D0A816DC57EFA /* SDLFuelType.h */, - 16195BA066D92C5855624759BE7284F8 /* SDLFuelType.m */, - 90DBBF1589F80689A14CB59C1644BEE7 /* SDLFunctionID.h */, - 1444B3657275C2D2C695FC678ED8EF62 /* SDLFunctionID.m */, - 356850E904CD295F4FF6ED4BB15D4D57 /* SDLGenericResponse.h */, - 8D1D89E21C967BEB9B2C7C143BF7A6A4 /* SDLGenericResponse.m */, - 20FED3C64AC281061455C114F2CDEEA8 /* SDLGetAppServiceData.h */, - 489CBF13E068A7E6A66DF0EFDFFB7B8B /* SDLGetAppServiceData.m */, - B0D6188E04884E87F16C5D09E4F25B7A /* SDLGetAppServiceDataResponse.h */, - 86B7CD8697FB29C377FF70D301A9BE51 /* SDLGetAppServiceDataResponse.m */, - 13701FFA4C23EEB343B1BAA4DE60E163 /* SDLGetCloudAppProperties.h */, - C3F129DBFD0A6763197FE363BF2CE288 /* SDLGetCloudAppProperties.m */, - 2F7B82FAB4C07FC4227B758EFFFD79F6 /* SDLGetCloudAppPropertiesResponse.h */, - B3717C92695FDC869375458442425C25 /* SDLGetCloudAppPropertiesResponse.m */, - 868ABD43DF81EE49690B9D5C41FB25D3 /* SDLGetDTCs.h */, - 7725181B40E656D5EC95817265FFB76D /* SDLGetDTCs.m */, - D1D048D4CD12A7F93CA9F3BEB86BB85C /* SDLGetDTCsResponse.h */, - 93B36FDBAD2C44E813F8584D034A63CF /* SDLGetDTCsResponse.m */, - 9B104772AA6E58A9F090818DD41BA3D7 /* SDLGetFile.h */, - F6CEE3FF97A40D47F14C11800619E1DB /* SDLGetFile.m */, - D6986E5DF7E39BCD4F822E4CB001676F /* SDLGetFileResponse.h */, - 556E40F610F2EB3D2F7A0EA1C6707035 /* SDLGetFileResponse.m */, - 18C6985E2F4386AC03DB19BF363A41F0 /* SDLGetInteriorVehicleData.h */, - D71F5B91669B94ED03ECE68DF8A69310 /* SDLGetInteriorVehicleData.m */, - 9D07BF9A19096BDE35C54CB33E961268 /* SDLGetInteriorVehicleDataConsent.h */, - D27F5613B42AA93A93AA3040A73BF94C /* SDLGetInteriorVehicleDataConsent.m */, - DC1AB877E125DDBE42B80EF6A00A5F98 /* SDLGetInteriorVehicleDataConsentResponse.h */, - 3030AFD52F92B429CA1F20183DDAE4FF /* SDLGetInteriorVehicleDataConsentResponse.m */, - CF64BCEDC0A50BBDFC1D74C9A0243BEA /* SDLGetInteriorVehicleDataResponse.h */, - D030FEAB644BB0DA021BED593500842A /* SDLGetInteriorVehicleDataResponse.m */, - 12816F5316A38E539BD4FBCC77ADE586 /* SDLGetSystemCapability.h */, - 07761CF3C8D6A5A03E8B321C60A0DCE8 /* SDLGetSystemCapability.m */, - 7AF24E18157165E29DE67C839ABF0DF9 /* SDLGetSystemCapabilityResponse.h */, - BF781992E0488A0904062D8D4D4B7369 /* SDLGetSystemCapabilityResponse.m */, - 6C122D385DA1B67231C109629EFBCF67 /* SDLGetVehicleData.h */, - F325EE523B44B2D99BDB8360522C5DAB /* SDLGetVehicleData.m */, - 41DDF1201E3711F4B246F80D53C3BE29 /* SDLGetVehicleDataResponse.h */, - AFF9F053405AFE53208F5AF054964C4B /* SDLGetVehicleDataResponse.m */, - 950F3C54DD8E214F44E5D973A18C2FC3 /* SDLGetWayPoints.h */, - 0C385BAB9B99A124EC2DEF4D689CB7BB /* SDLGetWayPoints.m */, - CB3E5816DA0A95C87F21D3CEB5CDB491 /* SDLGetWayPointsResponse.h */, - B002378124E8B08D2C433B0CBAE53FA5 /* SDLGetWayPointsResponse.m */, - 21F2AED434573DC685BDADF20194DD4E /* SDLGlobalProperty.h */, - F80DCE9605631CF67528BCC3D2584A4C /* SDLGlobalProperty.m */, - 984B721B08C198B887A18CD320C0C30B /* SDLGlobals.h */, - 43BDEBA0AFE8CD88C63344AA13ECFD35 /* SDLGlobals.m */, - 200CFF87D513357375E0E8A676B4DCF0 /* SDLGPSData.h */, - A9E5A8AA97EA88C0C5010827AA38639E /* SDLGPSData.m */, - 2AB253E744896719697E4F5307AA1F8F /* SDLGrid.h */, - ECBFE3D76862F81C78E80FCF7BBE9EF8 /* SDLGrid.m */, - 257C0CD607BEF7992A0953E0AD01C31D /* SDLH264Packetizer.h */, - FF21715135EC614F06983334F08B0E1E /* SDLH264VideoEncoder.h */, - 511FC688BC8715CB040A0DE1F8B24C2E /* SDLH264VideoEncoder.m */, - F2C4FC36D54FA4DCEB9CB7427F105086 /* SDLHapticRect.h */, - 4149BB003DEF4C5C4BC5B7A332FD6707 /* SDLHapticRect.m */, - 74A65D2D8ED21D32C107935C517191E4 /* SDLHeadLampStatus.h */, - A4C87793B3C6B531E0A6541C94DAFB52 /* SDLHeadLampStatus.m */, - 46523A89CAE6EF97155926063D0C221A /* SDLHexUtility.h */, - DBE7466B721D1E6A2BC31A2D5D2D8124 /* SDLHexUtility.m */, - B965BA54B73AAB7DD28ADEF78BD168DA /* SDLHMICapabilities.h */, - 2B5397A5AAFDDF3AA577CDC4718DDD2C /* SDLHMICapabilities.m */, - 5DFB940A77A15D0F3E0C0C48889F05B0 /* SDLHMILevel.h */, - F833AA2E2D10941E6E078E46A5A395A5 /* SDLHMILevel.m */, - 138D7E23E43103272A89FF94CAF440C3 /* SDLHMIPermissions.h */, - 92CF01B1E30A78C156C0BFFA57CEAD88 /* SDLHMIPermissions.m */, - 22F425A341DF24170003B4CF66D9AB40 /* SDLHMISettingsControlCapabilities.h */, - 0BC571015C3D3C1EF66114AC5050FB2C /* SDLHMISettingsControlCapabilities.m */, - 57E4834E2857ECB273998AC9B9207D2E /* SDLHMISettingsControlData.h */, - C588AF22E8C9EBAD69A20BE6D4709DD3 /* SDLHMISettingsControlData.m */, - 9DA4BCA93C02ABAD3179337438D37C21 /* SDLHMIZoneCapabilities.h */, - 00C68FA444D0ECFF71A216F789929F82 /* SDLHMIZoneCapabilities.m */, - A99EA0FB7F0C4D0EB328913A51F92615 /* SDLHybridAppPreference.h */, - D831A281EF816381B291008A9D4FAA9E /* SDLHybridAppPreference.m */, - 4066A1AC90601F2ED75F112128204143 /* SDLIAPConstants.h */, - 0DD50A61126C05D1E22DD18C08F59593 /* SDLIAPConstants.m */, - 2118A772BE2023279116272EE7B812EB /* SDLIAPControlSession.h */, - 86D33E8FBC03915470B26F43AFCE8644 /* SDLIAPControlSession.m */, - F6B6A40C2D7A321D2ECEFC97E432FD89 /* SDLIAPControlSessionDelegate.h */, - 79D0753524C87826EC27651FB26FD354 /* SDLIAPDataSession.h */, - F92F17C1D868E9CB7F4CF24A1F1EE509 /* SDLIAPDataSession.m */, - F7A97AE27AA359A932FD6703E3DAE004 /* SDLIAPDataSessionDelegate.h */, - 49CD8EE4FC64B30478D9E206DAC78F84 /* SDLIAPSession.h */, - 909B5FA1FF8FFF76425CED5E51AF212F /* SDLIAPSession.m */, - C6E24BC1F0E1A7E4BCD68AF3379A7B00 /* SDLIAPTransport.h */, - 38CB1A0076770A1F273C6EBCD6D8C8B0 /* SDLIAPTransport.m */, - 2A55660E282AE3C863355F2402E8A0E1 /* SDLIconArchiveFile.h */, - 7271B5F541D7EA6BA5478DFBDD079C30 /* SDLIconArchiveFile.m */, - 4BC369B414377098F2BD4E968676D84D /* SDLIgnitionStableStatus.h */, - 7910570CD2F58D8D77EC77D4F5477546 /* SDLIgnitionStableStatus.m */, - 76AA2E78DDBD9125228F85316E09095F /* SDLIgnitionStatus.h */, - E9B4BC1552B9C96F9D0CA45A8320DDFA /* SDLIgnitionStatus.m */, - 5B5DB19512329465920F68B50C253776 /* SDLImage.h */, - AAE83D19F9F6CCFDFBE2E4176612A66A /* SDLImage.m */, - 4BC611A83E6B204442E6053A45D288D1 /* SDLImageField.h */, - 4D3EC08357B4F67E2BD4CACCC0300724 /* SDLImageField.m */, - 506F62C867B2AA4ED9C51CA1DB62873F /* SDLImageField+ScreenManagerExtensions.h */, - 0656901E080D59E2E26E8D8989D2EED3 /* SDLImageField+ScreenManagerExtensions.m */, - F45151BA3773006A971D197673C22C5F /* SDLImageFieldName.h */, - 795BD010B79F761A42E76581AB8275FF /* SDLImageFieldName.m */, - 79E7E805FF542E9C1C6E18B46AFABA56 /* SDLImageResolution.h */, - 12A3FA6BEC26E85A501F2A6A020EDBA3 /* SDLImageResolution.m */, - A60D22A926D93A0D726FFF6A31239E5D /* SDLImageType.h */, - 133621C4947DCE93C647CED71714B924 /* SDLImageType.m */, - E3FF43EE6114A0D361EE11A38FA91FB1 /* SDLInteractionMode.h */, - 4055BE744BC2A9F663E6671A2480D01A /* SDLInteractionMode.m */, - EC650878367AF7C7B83FAEC062BFA3A1 /* SDLKeyboardDelegate.h */, - 9ED6CCE2CF434E4F07A3031783397721 /* SDLKeyboardEvent.h */, - 77E74A07526CBD02470FDA755AB5D6C7 /* SDLKeyboardEvent.m */, - 00F802377FED3220A7D572E90814F78E /* SDLKeyboardLayout.h */, - 6B2B524E9D5A872B97EC4D57EA21E041 /* SDLKeyboardLayout.m */, - 3EC3C54E0392906F04997BCF759C440D /* SDLKeyboardProperties.h */, - 5A695B3A3F27221B6CBE669925E43199 /* SDLKeyboardProperties.m */, - 9041DBA4C0CB716742630EA1FC2D72B7 /* SDLKeypressMode.h */, - 157D461716A9EC90AA0014DEAF19F1BF /* SDLKeypressMode.m */, - CFFD94F699E758B296EBA10E07F683B1 /* SDLLanguage.h */, - 05EF4CC4570D8BE1DE3ECC0889A81ED7 /* SDLLanguage.m */, - 6B09D19145E0FCA24838F5D274F3D523 /* SDLLayoutMode.h */, - BEB3EB4F638B59511646F2FAB436EA28 /* SDLLayoutMode.m */, - 21FF3C3DE15BAD7345BC1A9C2B469984 /* SDLLifecycleConfiguration.h */, - 5D85052B41FE8A425641B594DBE76849 /* SDLLifecycleConfiguration.m */, - 3EB6A8B5DA3D228DF8DC2F364DAA3F73 /* SDLLifecycleConfigurationUpdate.h */, - 6B3EA6783E26BB49A731FCF69628F558 /* SDLLifecycleConfigurationUpdate.m */, - 4BDE7DCAD2B3CFA25E38ADF8F9B7C9ED /* SDLLifecycleManager.h */, - B64A1F3DB42D6EF48AA200C070D9974C /* SDLLifecycleManager.m */, - 3C902D9277607A16626B5FEB6FC12BE6 /* SDLLifecycleMobileHMIStateHandler.h */, - 1D9A91B4DF7620814FB322D536E96E5C /* SDLLifecycleMobileHMIStateHandler.m */, - 37BB95EEE59CD21C3293F54E2CD22CEA /* SDLLifecycleProtocolHandler.h */, - DBA779D91F961DC90E60E31DA4580DDF /* SDLLifecycleProtocolHandler.m */, - E8B87E7B6C490A994E034330CB9660CA /* SDLLifecycleRPCAdapter.h */, - 6F2DC8CFD2770D191663EE9B313E334F /* SDLLifecycleRPCAdapter.m */, - 3999098BE21C5D7373235405AF09F5A4 /* SDLLifecycleSyncPDataHandler.h */, - 445645662A65A1C42078DABD7A20509E /* SDLLifecycleSyncPDataHandler.m */, - 5ED3A5134C0B156DBE89E14A72AB0F95 /* SDLLifecycleSystemRequestHandler.h */, - 0E3170BC3B4F4F5877B69D05DED54CBA /* SDLLifecycleSystemRequestHandler.m */, - 43FC77484E65E9648B5154177DA965B0 /* SDLLightCapabilities.h */, - 7B628B43B6ADADBEB6501E049D64E37F /* SDLLightCapabilities.m */, - 89C99B8EF7D6E80920E770B6E500F5A7 /* SDLLightControlCapabilities.h */, - 6BF96D4C2DA598534A4D8326D5961403 /* SDLLightControlCapabilities.m */, - C793CE4C5804B98CF64AF6F63FDCFD33 /* SDLLightControlData.h */, - B408FA5A72D8BD3C40461CF55C8CC884 /* SDLLightControlData.m */, - 3F343F8E278AA4A0EFBFBC077661846E /* SDLLightName.h */, - 44A033E80AC09276E47884FBDAC7CA19 /* SDLLightName.m */, - 6FEC1FB5460DDB76F458A2F7F27AA236 /* SDLLightState.h */, - 7D162E149D1234C0EC8BD90C863EBC29 /* SDLLightState.m */, - EE8BF2510CC06F2DAEB2AE8D19B4346D /* SDLLightStatus.h */, - 28C885A6D2F4227B45D870A38421B3A2 /* SDLLightStatus.m */, - A59281B6B7A635EC71C289B5AA8FAFEC /* SDLListFiles.h */, - 6D4C1FD6526097EEBD7A4AEE29623C7A /* SDLListFiles.m */, - 4A1B97540C9445EBC294C833B507564A /* SDLListFilesOperation.h */, - 23D8613239E013C85A55566B014E652F /* SDLListFilesOperation.m */, - 554FE2A409FB1FB6BF0E98F233F97E6C /* SDLListFilesResponse.h */, - 633E599F3936F7344FB0DBA1DB5127C1 /* SDLListFilesResponse.m */, - 7ACC18BF8B3AA6A798755C8C4A61E644 /* SDLLocationCoordinate.h */, - D7B42911B767CE7D2DB7CD903DA4BA90 /* SDLLocationCoordinate.m */, - A72EACA38EEC0588D3830851A96A2681 /* SDLLocationDetails.h */, - 4B0CD534B92E485AC78B351897352A70 /* SDLLocationDetails.m */, - 00F5A6A079156BEB8005F1C89BA34E2C /* SDLLockScreenConfiguration.h */, - 1A75D986DAB949A4EA63D5DDFC11ECAC /* SDLLockScreenConfiguration.m */, - 505A39ADC4E3561B7594E28FD0429E64 /* SDLLockScreenManager.h */, - 192A53884A3A908C146B28777940F5E7 /* SDLLockScreenManager.m */, - 3A53E97D25D99A5593B52E88C69877A8 /* SDLLockScreenPresenter.h */, - 663A9EF7F5F3FD6EE0A2CD1D2AC97B32 /* SDLLockScreenPresenter.m */, - D37716D691664883B517AA8C5B0D4D48 /* SDLLockScreenRootViewController.h */, - 0DD50AAA2369E60F10DA24C777F7D9D8 /* SDLLockScreenRootViewController.m */, - F27B5920FDC7FD3CE439214E9756A74E /* SDLLockScreenStatus.h */, - BDFE84853600B6F6F43B3F05550C2D91 /* SDLLockScreenStatus.m */, - 322553C18D16DC8359FEAAC9FC09B82A /* SDLLockScreenStatusManager.h */, - 05AF2492C648CAF3472BCDC0B4D590FD /* SDLLockScreenStatusManager.m */, - 769339F5B0569F2B7DC24EC805CA5828 /* SDLLockScreenViewController.h */, - 576F83EF4D4371B437DFAE8A0F7CFAA1 /* SDLLockScreenViewController.m */, - 72740556340F8C21368CF87A79C8F5DF /* SDLLogConfiguration.h */, - 9998667EF3AD9356F74EFEBA18B71B18 /* SDLLogConfiguration.m */, - 78F5E319075CD2E0DA4A60935A86DC1F /* SDLLogConstants.h */, - 95FA5938BB91EC86606D7D35B36D1799 /* SDLLogFileModule.h */, - C3BEF3FC0B61392A43041463481D99DC /* SDLLogFileModule.m */, - B051F7FF13D4892208EA8EDC154E67C2 /* SDLLogFileModuleMap.h */, - 6832CC0E9D2EAF6011514D2D39624749 /* SDLLogFileModuleMap.m */, - ECD19B85A34BEFF3300F295ACCA65603 /* SDLLogFilter.h */, - AF19BE6750BCA76EDC3A8FC9E6C92344 /* SDLLogFilter.m */, - 3D0EE4570CF0887B91A7C8D2E2E0414C /* SDLLogMacros.h */, - E5657CE38BB08F9563C92FE224B79FB1 /* SDLLogManager.h */, - 14A578E900D2B9BF8DDA0AE05B717967 /* SDLLogManager.m */, - 4AC029B73C422385316B810096AC575F /* SDLLogModel.h */, - 39EDE1E04ABABDD6EB636AABBB6871A0 /* SDLLogModel.m */, - CDA21BAF0A80764F863AA3136B132BCC /* SDLLogTarget.h */, - 3A8807AD416E6BB85AFA2FF648C9ADFD /* SDLLogTargetAppleSystemLog.h */, - A677CF8D17087FD37FABB05CE8384E98 /* SDLLogTargetAppleSystemLog.m */, - CFAE2994F819888468C9D2EAC8918FDF /* SDLLogTargetFile.h */, - 383B3E8FFC31FF9511326F14714F98E2 /* SDLLogTargetFile.m */, - CA97A48978C804461E3488F28629372A /* SDLLogTargetOSLog.h */, - 185F3515C64226DE214C71343949C0A5 /* SDLLogTargetOSLog.m */, - DB53BFBC217D15847AE38FD82BFE5014 /* SDLMacros.h */, - 761B798C05833C28B0A217F40C5D9DC6 /* SDLMaintenanceModeStatus.h */, - 9356A9B7DF203B1E599FF67CDB2AB2F4 /* SDLMaintenanceModeStatus.m */, - 5C810B6DB2EF473A10A3289A980D1430 /* SDLManager.h */, - D725474F95CF3A37D8217D26C3D33F69 /* SDLManager.m */, - 2ACE82786CE0ED6B2A519263CE025F18 /* SDLManagerDelegate.h */, - B41E3BF75DB009256653DF32F1496FE7 /* SDLMassageCushion.h */, - 18C8558030DFB952D8D24FA06D63E520 /* SDLMassageCushion.m */, - D987EAF5E95BE2470E9AFACD43D35461 /* SDLMassageCushionFirmness.h */, - CF7F2682404352A5DA48275A68971699 /* SDLMassageCushionFirmness.m */, - E46DCE56EFD40F057672597BEDF9BC5C /* SDLMassageMode.h */, - F0D39ACA0371B8A981CE9CDB1FE1F3C0 /* SDLMassageMode.m */, - F52EC5B14583173C4125CAE62815F05C /* SDLMassageModeData.h */, - 5482FBD961552B74651C104693279E71 /* SDLMassageModeData.m */, - C9703269E7ADB6FFB0BAC46F741BF3E1 /* SDLMassageZone.h */, - D9FCEE47A681128EBFB0EFED02719BE8 /* SDLMassageZone.m */, - CF03C1888031E3BA51620916196E3F13 /* SDLMediaClockFormat.h */, - 798FBD4B8BEE30A8944489D1A694BFDD /* SDLMediaClockFormat.m */, - A9BC3AA38D28D6FBC7BBBEB0A7D0B622 /* SDLMediaServiceData.h */, - 352942891F72F2773BF5C6130A6AF9B9 /* SDLMediaServiceData.m */, - 6C69A475BAE41EDD24A00FB701BC3EC6 /* SDLMediaServiceManifest.h */, - 08C7E71E744D35BDA4283D2972693EA5 /* SDLMediaServiceManifest.m */, - 815DBEEF21C974D2236762AC3D4FADB1 /* SDLMediaType.h */, - 3E982E3129EE1BF2B88BE3ECFD70CFE7 /* SDLMediaType.m */, - 4B0B69E8E7BE0B46B0C8659E5046F112 /* SDLMenuCell.h */, - F5A4EE85CC2237920F6A3B30FCE073C4 /* SDLMenuCell.m */, - B47755B35347AB14C2570D1F7A7BC934 /* SDLMenuConfiguration.h */, - A6A3F4A1DAD219F117FF921A98B3E55B /* SDLMenuConfiguration.m */, - 7F44E48D23E1A8174BD093395CF63563 /* SDLMenuLayout.h */, - B6A8B110CC3F7818FE4E9FBF59DA7831 /* SDLMenuLayout.m */, - 2D879437E0B1DE45D4D626AD9DA1BD58 /* SDLMenuManager.h */, - 26FD9D1C417A073A9574CE798E12DFED /* SDLMenuManager.m */, - B2564FC1D10877AF9A91ABEB9100B92C /* SDLMenuManagerConstants.h */, - 9C86D4CBB2B58B5DB610CFA8980934F5 /* SDLMenuParams.h */, - 49732759D432317F0DA45A467B441A1C /* SDLMenuParams.m */, - 5A116087C3B6EFD78EC43CDA42ED9FA1 /* SDLMetadataTags.h */, - 7F4125C10AB281EFB11D2A890DF0DE61 /* SDLMetadataTags.m */, - 90137F76EDA22309EDDAEF4418590198 /* SDLMetadataType.h */, - 8B735CFF284972E87F85DEDF52E7B4B0 /* SDLMetadataType.m */, - 7B4F218D5BBC11B808F5FCB846D65C36 /* SDLModuleData.h */, - DF00C9E7609E5400EC4274851BEB8AE5 /* SDLModuleData.m */, - 4B887B61299E3CDBAD04F3FAF0C642DB /* SDLModuleInfo.h */, - 3ADF6F4E6226B439753C2A759A9860E3 /* SDLModuleInfo.m */, - A11273079923EC17BEF8EA166ED142FD /* SDLModuleType.h */, - FC83851939F611364060849E34FD8F54 /* SDLModuleType.m */, - 9B778D29FEEFC0DD5D2556DE02F267F8 /* SDLMsgVersion.h */, - 8B140D8D2A0B9E079DA6C09D0FDD57F2 /* SDLMsgVersion.m */, - E069D9D3F86160512916B7ABC072595F /* SDLMutableDataQueue.h */, - 695B8ED2FCC305054E59AA1279EB261B /* SDLMutableDataQueue.m */, - 031BBB010D945FCF674851CA3A00B9F3 /* SDLMyKey.h */, - 98FDC0A54C018DFA5E057249D1EDF737 /* SDLMyKey.m */, - 16EBB6180D66091B30DBE5C095E5CD44 /* SDLNavigationAction.h */, - CA602EC4E5C28004D96933F0A7FC26A5 /* SDLNavigationAction.m */, - 17471B77EFB1B0CCB584D1BD7A3C1953 /* SDLNavigationCapability.h */, - 9BD062E44BAEAC8F381D25BB2C49F775 /* SDLNavigationCapability.m */, - 01F187BD4B1741FD143AC9FEE6B6A9B8 /* SDLNavigationInstruction.h */, - 7BF22D8F89AAD3C5356C6D640553D7C9 /* SDLNavigationInstruction.m */, - 218552AF91635BA12359F7249694AF3B /* SDLNavigationJunction.h */, - 60E560ED9A603C1EE72D1DC626FC9DA8 /* SDLNavigationJunction.m */, - E9F85118D824B3F5F59A8305E48245E0 /* SDLNavigationServiceData.h */, - 1FF1117561E991A2D81068EDFF178C65 /* SDLNavigationServiceData.m */, - F05E89950AFAAE21DF32ACB82FC50FCB /* SDLNavigationServiceManifest.h */, - 50FA0F82B0F0FD360E29F2AC0D2F05D1 /* SDLNavigationServiceManifest.m */, - 113CB9707D2133750B2A74C8E4E75D53 /* SDLNotificationConstants.h */, - FF791906F1FC8B75F3E5D9D9CDE8DADE /* SDLNotificationConstants.m */, - 2540FB48A65EFCB11FB8B5156DBA8201 /* SDLNotificationDispatcher.h */, - E2A334FC98479B6D81A09D35E4975DDA /* SDLNotificationDispatcher.m */, - C9CB658027934C58CB5E44288BDE79BE /* SDLOasisAddress.h */, - ECA0A1828C5374CB24D7B145DA5A60D2 /* SDLOasisAddress.m */, - A83D74392A8FBE5A5BBCC7D29249B943 /* SDLObjectWithPriority.h */, - D8C3E2092639989CC311D760FEFFF098 /* SDLObjectWithPriority.m */, - F5DE8533E913F68EBF72EDF7E4D95FDA /* SDLOnAppInterfaceUnregistered.h */, - E9BCDAE3BF99C86CED1A5CB6384054CA /* SDLOnAppInterfaceUnregistered.m */, - 08FD56690946400B66FA81A3473A5CD0 /* SDLOnAppServiceData.h */, - 07586438D975F70590DE46C92B04B3D4 /* SDLOnAppServiceData.m */, - DD3CC83A67C250A8A7230DECEE87840D /* SDLOnAudioPassThru.h */, - F3A5F47BE1D6B4E4B91C6E9FDC9B8BB3 /* SDLOnAudioPassThru.m */, - C26DB840FED234F39D27C9C871BAA550 /* SDLOnButtonEvent.h */, - B123B8245FE7984988B165A780AED107 /* SDLOnButtonEvent.m */, - 0A3F5B7EC0DC340080344B57171997C6 /* SDLOnButtonPress.h */, - 1A761B2562737FE71DC9907B5B509B09 /* SDLOnButtonPress.m */, - C2FA6304D4FBBE0B4EAE346B56077504 /* SDLOnCommand.h */, - CFE665A143945D4F523E9805AC91DEE2 /* SDLOnCommand.m */, - 610922E85FBDB66F79FF6230A47D4B75 /* SDLOnDriverDistraction.h */, - 31788B292B69F3A09E1B6F39CAD277FB /* SDLOnDriverDistraction.m */, - CE553E3605D4CBF175959C2A6AFFA992 /* SDLOnEncodedSyncPData.h */, - E72FB018DC8626B10CEA4186C29DEC69 /* SDLOnEncodedSyncPData.m */, - 01576AC9DF9C06D0764239C2D918DB93 /* SDLOnHashChange.h */, - 6EAB0821E72518202FBFA198CD9E48F0 /* SDLOnHashChange.m */, - 88A98EF18C6CD1EA711938578B4CB959 /* SDLOnHMIStatus.h */, - 1E50C0F6174603A652E389F91F94FED1 /* SDLOnHMIStatus.m */, - 682C1E866A0552DF161B4CA6BE8C02BD /* SDLOnInteriorVehicleData.h */, - FE30695FCCBB7E0CC7987C538AFF14FD /* SDLOnInteriorVehicleData.m */, - 72DEFC52DA69C0042103401227D6AE2E /* SDLOnKeyboardInput.h */, - EA45F0C83A48EACA03748C23787612AB /* SDLOnKeyboardInput.m */, - 533F7AB90936113C747905A9130536F7 /* SDLOnLanguageChange.h */, - 057374D02ED1566D4CB631DFB6705D55 /* SDLOnLanguageChange.m */, - E7BB33F82335ED3BB74B4FA4B921F6D0 /* SDLOnLockScreenStatus.h */, - DBDC0BCD9D5A756A12269D89CA68E411 /* SDLOnLockScreenStatus.m */, - BE78691CB41A6B40E2140633BB7AA4A7 /* SDLOnPermissionsChange.h */, - 36421268915268D123352BDEDA5AC948 /* SDLOnPermissionsChange.m */, - 5543FDC0294954DF0D4040D2E4999970 /* SDLOnRCStatus.h */, - B753AC886E9C4581F99D019C2AE558E5 /* SDLOnRCStatus.m */, - CCDD6594ECBBE163AA3B6819EAECDD83 /* SDLOnSyncPData.h */, - 86206B1B96CF24D8B99B4EE97C44B185 /* SDLOnSyncPData.m */, - 2845FF7035CF7F607706E501DB44DE7E /* SDLOnSystemCapabilityUpdated.h */, - 0F83E2FDBC27F6BEBC1DB1957CD550D9 /* SDLOnSystemCapabilityUpdated.m */, - E2F7792FEE3F880C4B7A2CEF50105C43 /* SDLOnSystemRequest.h */, - C0739DA52D74882686FE054F273446BD /* SDLOnSystemRequest.m */, - 80B228053FDFC1AE6EC6A285F9C67826 /* SDLOnTBTClientState.h */, - 6B5BA0CEC12E67BC7F5BD539A70729DA /* SDLOnTBTClientState.m */, - 88FA7221DE85C8EE3F58E1425E6640BF /* SDLOnTouchEvent.h */, - 44A6433D1239C8C9171A35AE33070626 /* SDLOnTouchEvent.m */, - 2BE4028ADAD57F4A9176FEBC20B5EC95 /* SDLOnVehicleData.h */, - BA1EE36D54B3E51448786809008AA6D3 /* SDLOnVehicleData.m */, - 9701CAEA001B151A3237DDBC5CCC06B0 /* SDLOnWayPointChange.h */, - FF9381D8A697377FEAB359470F3303BD /* SDLOnWayPointChange.m */, - 079C8504D554E430687E23C3BB9F291F /* SDLParameterPermissions.h */, - F91D92B21B5BD8E0E4A09822AE93C6CC /* SDLParameterPermissions.m */, - 8B8E77F2592BA2AADA9952C6A050C4E2 /* SDLPCMAudioConverter.h */, - CFAE9C8809F27A20EA7BA366B50D1D09 /* SDLPCMAudioConverter.m */, - 66A4B1A486BE8F5F2523D7B998E03397 /* SDLPerformAppServiceInteraction.h */, - B6F87FE59A859BA349CCDEFB67E12842 /* SDLPerformAppServiceInteraction.m */, - B456CA5D8FC2BB67712D9BE46D2EA781 /* SDLPerformAppServiceInteractionResponse.h */, - 6F34249B622DD4B497630858D68F221B /* SDLPerformAppServiceInteractionResponse.m */, - 4411DAF1B7858D84F9A5933F44751B69 /* SDLPerformAudioPassThru.h */, - C1B55A5D6E1EA252835733A44DF307EA /* SDLPerformAudioPassThru.m */, - BF926AC06548F171C59AEE3EFD6254AA /* SDLPerformAudioPassThruResponse.h */, - 1079F5E8BF4B26941ED6E2AC3446BCC1 /* SDLPerformAudioPassThruResponse.m */, - 95FF4C52E66589C119C22DF3909390AC /* SDLPerformInteraction.h */, - CB91F38B3D46D7DF0F73684B53D3BDD8 /* SDLPerformInteraction.m */, - 1550A67573AAF420DF46830D2328EB6F /* SDLPerformInteractionResponse.h */, - D0219EB46973A2D486CE1181ECA2FE0F /* SDLPerformInteractionResponse.m */, - 7510FD20D7400BF8B329E618E46A0A19 /* SDLPermissionConstants.h */, - 8B8673925B5FFBCA631C8D9562197C41 /* SDLPermissionElement.h */, - B9F98F256A89963EAD420D333EB31F37 /* SDLPermissionElement.m */, - A5DF934A09C6ECE921C963F3156E087B /* SDLPermissionFilter.h */, - BE76E8F8542A250DA8DF7178F62984AE /* SDLPermissionFilter.m */, - CC4534AF33C9B2498C5DB1A3A5B390C3 /* SDLPermissionItem.h */, - 9C3239BD5861D539F39785429EBE0EFE /* SDLPermissionItem.m */, - 5C083E636854B0B9353C528C02DD0119 /* SDLPermissionManager.h */, - 6E5DD878D3427D986DE5573FF06202CB /* SDLPermissionManager.m */, - 2741946AE645F8BDA0E4E6BEFA965D56 /* SDLPermissionStatus.h */, - 5AA15811C6C82B48B1CE0CF72D93BB8E /* SDLPermissionStatus.m */, - 0C86980F55A57904FF85C7623588A367 /* SDLPhoneCapability.h */, - A8D2591CD0E614AB45EEE6E819BC5715 /* SDLPhoneCapability.m */, - C9134305738F77B0E852842422F81D36 /* SDLPinchGesture.h */, - 3F25040FF627FE9246171E4EA90E8CA3 /* SDLPinchGesture.m */, - B1CFEA53176A71E567B91FF0E97CB278 /* SDLPowerModeQualificationStatus.h */, - 678F1D8B5E1A5F63E7E494C394BAD3AA /* SDLPowerModeQualificationStatus.m */, - 743FE6CD7692742CFA7D4D7A6E714FC7 /* SDLPowerModeStatus.h */, - AB4899E896AC7243959C641E40D9EB6C /* SDLPowerModeStatus.m */, - 1C8B86BA2EF69ECCA8BB0E915700E2FD /* SDLPredefinedLayout.h */, - A638ABDCA82A0FCFD9E2949D129993CD /* SDLPredefinedLayout.m */, - FB3EB42F4E00D78C3E9D2EAB0CD56A65 /* SDLPredefinedWindows.h */, - 346DD6B5C6DEFF7D91F128D926AFB0FE /* SDLPreloadChoicesOperation.h */, - 1EFA016E112D9F7CEE1696C8B3D236C1 /* SDLPreloadChoicesOperation.m */, - 0DEF9947C4576AE910482FFD434E878E /* SDLPrerecordedSpeech.h */, - 8A18641DB12A7690CFBB24321A955BBC /* SDLPrerecordedSpeech.m */, - D34DA30DA43361D2C480A221DBB67CD0 /* SDLPresentChoiceSetOperation.h */, - 78A7A95A29CAE2745B67B7C2F0F5FCD4 /* SDLPresentChoiceSetOperation.m */, - 813217C2A949443C3D0F3B06A2A3F439 /* SDLPresentKeyboardOperation.h */, - A8F9E32E9728CC43CF973F445B0435EF /* SDLPresentKeyboardOperation.m */, - 565B69B36A8F76F2E5BC0B5883391027 /* SDLPresetBankCapabilities.h */, - C9122F060BC11803A66A7401A0F946FD /* SDLPresetBankCapabilities.m */, - BC5A329C0A76812EF1D11777FDB665A8 /* SDLPrimaryAudioSource.h */, - D08EB5D57959DC19650C80C22DAB3BE6 /* SDLPrimaryAudioSource.m */, - 1F9EA7382A67871A90547746B880626E /* SDLPrioritizedObjectCollection.h */, - B274AD52B0FF57921A0C62CA06B15804 /* SDLPrioritizedObjectCollection.m */, - 74AD80168C993652453FE3971FF647BC /* SDLPRNDL.h */, - 02F85B02BD1D0104B4B4F60FE4E0B7A3 /* SDLPRNDL.m */, - 9C610CA798F30FD6426257E526AC02F4 /* SDLProtocol.h */, - 37A578EB03978AF09B4B22E2D9B48EB6 /* SDLProtocol.m */, - CB1A8B920D83FAD8420BFA57B9376BD2 /* SDLProtocolConstants.h */, - C6544B04071C10C4B60339851B191DEB /* SDLProtocolConstants.m */, - A697E2FEB8F9928973AF1D4697F0C023 /* SDLProtocolDelegate.h */, - 303674032980DBA4C264AC80AD1BF117 /* SDLProtocolHeader.h */, - 1E1869CDF2207B055D23A497C6184140 /* SDLProtocolHeader.m */, - C93964422ECEFB35C0A15E1AC214E587 /* SDLProtocolMessage.h */, - 9377AFD1675D463C7129EA86B5DB2AFC /* SDLProtocolMessage.m */, - DADF8BE5914CC5FDE27CC4C54E6F38A6 /* SDLProtocolMessageAssembler.h */, - 4594CC3FF1671BC10D8439D6DD794F5C /* SDLProtocolMessageAssembler.m */, - 7225B3942F9C5E129FA86F41720C7403 /* SDLProtocolMessageDisassembler.h */, - 438BFB4FB40C6B387CF8D49072456C32 /* SDLProtocolMessageDisassembler.m */, - DCE361553E0EABB14A1C509A7093DE01 /* SDLProtocolReceivedMessageRouter.h */, - DD6BDB7BD482EF289B2480B8CA328408 /* SDLProtocolReceivedMessageRouter.m */, - DD54737AADEC12705D5ED30EB6CA1A1B /* SDLPublishAppService.h */, - 76424AB29A53E628F57743FDF2F79FEF /* SDLPublishAppService.m */, - 1FD7EEC34E8024D6A971F56B948E0EE1 /* SDLPublishAppServiceResponse.h */, - 70634D4480B4DFDAB8FA657ADAEF768B /* SDLPublishAppServiceResponse.m */, - C78E389C985303221ECDC5D18E6DFD51 /* SDLPutFile.h */, - FCC94AEE7EC43BA74EEFA5EC841EB296 /* SDLPutFile.m */, - 731A9565B4A85AFC0CCB16E396BCCA40 /* SDLPutFileResponse.h */, - 63D098D74619FDADF2DBEDAB8939A5C8 /* SDLPutFileResponse.m */, - AAA96D67B0E11DC1C39AA70AED46098E /* SDLRadioBand.h */, - 98E14E95533F49ABC0D74A2121D62620 /* SDLRadioBand.m */, - 7026D561A07AC0E8C0BE86D3E4C3DA7A /* SDLRadioControlCapabilities.h */, - 35CB1DE90D5986B9423B7DFF67E9C2CB /* SDLRadioControlCapabilities.m */, - E7F0A2E1BCB7060346CDE26635657E5B /* SDLRadioControlData.h */, - 41EEEB77F744D0ED3EF519C0FD308F2D /* SDLRadioControlData.m */, - 199A9F6B336A337B69923DC5C5B8543F /* SDLRadioState.h */, - 6FFAB5BB716F6C328E6A31CC62B4B11D /* SDLRadioState.m */, - B11185632289362C4E685A33488343CF /* SDLRAWH264Packetizer.h */, - D516C013762946799CEEFE4D998577D4 /* SDLRAWH264Packetizer.m */, - 8B261757A2927398D6F981A1FCC62A65 /* SDLRDSData.h */, - BF737E9FCE10383D22E0AC258DC505F8 /* SDLRDSData.m */, - 303C3E1F855B7BE56C54751F8820643A /* SDLReadDID.h */, - 2947E91CDA3B132E494738EF13BCB952 /* SDLReadDID.m */, - 44849D20DBCA2A08A69AC1CC08D2E12E /* SDLReadDIDResponse.h */, - 96983BEA7459A4232662DD0F57B29510 /* SDLReadDIDResponse.m */, - FB0998F7945F98866D5AAEC80A248E5B /* SDLRectangle.h */, - 9304883AC1BF7D236BA9C5D9EF93A4AD /* SDLRectangle.m */, - 7F28BC6B50D22A511ABF2860A5A43136 /* SDLRegisterAppInterface.h */, - C1B0FF7E975829A08686F5A95439E6AF /* SDLRegisterAppInterface.m */, - 88CF0A4361A069189BA99DE9D9F45FB5 /* SDLRegisterAppInterfaceResponse.h */, - 8C3E14078B0F9E5376F9494B8D3CA4C7 /* SDLRegisterAppInterfaceResponse.m */, - B7A802ACC8F876FF3416830E0C985866 /* SDLReleaseInteriorVehicleDataModule.h */, - C23DBC473A201419B768CC403C329AA9 /* SDLReleaseInteriorVehicleDataModule.m */, - 1B4F48B7943331568869C78731D2C1A3 /* SDLReleaseInteriorVehicleDataModuleResponse.h */, - 895A7D207902140EBA17041F62E54A34 /* SDLReleaseInteriorVehicleDataModuleResponse.m */, - 6E44B29B11FFF564D52CADA80FF7E157 /* SDLRemoteControlCapabilities.h */, - 8C3E1DA75336E5B7703B366F52EB61E9 /* SDLRemoteControlCapabilities.m */, - F1A2C4D06CB5BAF62E5ED897C126990F /* SDLRequestType.h */, - 2EC4FB6334D52A0DA36EAF8AB148A89A /* SDLRequestType.m */, - 068BB05FC0F060EEA4D7C2CA18384BB6 /* SDLResetGlobalProperties.h */, - 7442CCEB4D854A9A904B550B922A6AD7 /* SDLResetGlobalProperties.m */, - D76301C2554A02484AFC7B13C487F7AF /* SDLResetGlobalPropertiesResponse.h */, - 0EF49DE50EC4EBA86EC32278ADDCE591 /* SDLResetGlobalPropertiesResponse.m */, - 96FDD76CCE5AB56B5E2F2065E5AA5F04 /* SDLResponseDispatcher.h */, - 304AFE04E482029F914E870FCBC54E4F /* SDLResponseDispatcher.m */, - E3B71900EA08E804133F37E5D6ADC285 /* SDLResult.h */, - EC49183B2BDBFC8AF747ABD142598757 /* SDLResult.m */, - 53151FA74CB6E2324C41DA26D397B648 /* SDLRGBColor.h */, - C17FA75188543D16F15C11D353AD7B2D /* SDLRGBColor.m */, - 9502CA77DD202D38FE595ACBF6558DDD /* SDLRPCFunctionNames.h */, - 04F52C5DC12FEA3AC1931C02FEB88081 /* SDLRPCFunctionNames.m */, - FC04BA45906F2ACFB5C2465C9AB915A3 /* SDLRPCMessage.h */, - CF9460897660A78535CEA62503CB6771 /* SDLRPCMessage.m */, - C336638C51C89E3892AB1E786D8D97A6 /* SDLRPCMessageType.h */, - 00D366651669905A0972F086586FA9B4 /* SDLRPCMessageType.m */, - 873FE0283FBF8E45FCF48C1242A364F2 /* SDLRPCNotification.h */, - 9468B7F69A0644FCBBCDBB810795C4B3 /* SDLRPCNotification.m */, - E89CF33AA04C619DDD01D52E4CA9ACA2 /* SDLRPCNotificationNotification.h */, - AF5B172A3AB107D165BE0B845E9FFA33 /* SDLRPCNotificationNotification.m */, - 450AA0AE78066B15DEBE4151BFA7A1DD /* SDLRPCParameterNames.h */, - 1FBCD2AEAD60094A7CB51F32D61FDFDA /* SDLRPCParameterNames.m */, - D935E4ACA5BD1466555211496C5A0F89 /* SDLRPCPayload.h */, - 7B78A428E3625D60C6EDC36E0B0E2FAA /* SDLRPCPayload.m */, - 271D810484AEA55E4E3F80C25773E46A /* SDLRPCPermissionStatus.h */, - FFDB98B89A59A3B2447CB847429D8C87 /* SDLRPCPermissionStatus.m */, - DAD38BC5045E2280587608630721EB31 /* SDLRPCRequest.h */, - E8061A69F7A640BFC2198A1B24F37983 /* SDLRPCRequest.m */, - 6A682C7A761BD4627EABB545706018F3 /* SDLRPCRequestNotification.h */, - C2325615A6C0BEAE35B68E675087D313 /* SDLRPCRequestNotification.m */, - C4F2955E72C9BC6322E9F39A5C0BCCE7 /* SDLRPCResponse.h */, - 80BA52F7804336DB0F03FC8F1C10CD00 /* SDLRPCResponse.m */, - 8B5BC1A9155BA8ED843E0972909B9572 /* SDLRPCResponseNotification.h */, - 50CB8DB198313EF592E6A9DE3B0F6CAC /* SDLRPCResponseNotification.m */, - F0E6D6348ED4BE7016042DB10D5CB6C1 /* SDLRPCStruct.h */, - FC438DC201BFBEC2EE4025086F8313F9 /* SDLRPCStruct.m */, - 4D75BCCCC055F72C4B46F1FF7ADE460C /* SDLRTPH264Packetizer.h */, - 0ECF2069806AE61431252D9A6ED62A8F /* SDLRTPH264Packetizer.m */, - 7D6BD3775E7938F10CC4DDE5EFEB12C2 /* SDLSamplingRate.h */, - 9B617AF0E9B7984864BBC87BCDA8FD50 /* SDLSamplingRate.m */, - 7E994AA0B434ED590CB3CEBE77F7F72F /* SDLScreenManager.h */, - EA005E80F14C30BEEAD6843C40AC7D05 /* SDLScreenManager.m */, - 64BA143AD255D19B934724F34E2072CD /* SDLScreenParams.h */, - 3C4374789272475208038484B688328D /* SDLScreenParams.m */, - 831E596C3FA752444D1ABCA67DB7BB9F /* SDLScrollableMessage.h */, - 33A2A786BDAED219574077742C9AA3FC /* SDLScrollableMessage.m */, - BB097D4C8A058214236F5DA62E2D55D0 /* SDLScrollableMessageResponse.h */, - 5B384DD0203EADC9A558BDBF6CCD33DA /* SDLScrollableMessageResponse.m */, - 74815297D14D7E57559C2C6AF0F29BBF /* SDLSeatControlCapabilities.h */, - 7E948ADD47AA0D93F041A0773607D8D6 /* SDLSeatControlCapabilities.m */, - ADECF6F036198C3154612FAAE7A54AA5 /* SDLSeatControlData.h */, - 59D419F67DD1ED5642ED9D9BBE63D388 /* SDLSeatControlData.m */, - 790A157900FC0357E1E10AE048065C70 /* SDLSeatLocation.h */, - 95168703431BF300E73567EE607D8A0C /* SDLSeatLocation.m */, - 39FFFBA8ED556FDD85EBCF18BF7898C8 /* SDLSeatLocationCapability.h */, - 5E027DB1F50B0C19CFFB73267754D157 /* SDLSeatLocationCapability.m */, - F60CF60AC5E2912FDBA7FB16CCDD927F /* SDLSeatMemoryAction.h */, - 80D9C9B56D254F2A33C2AE1EA81D9AF6 /* SDLSeatMemoryAction.m */, - 7AEB6BF5F6EEEDDC3AD1882CBE90B52D /* SDLSeatMemoryActionType.h */, - 2205A00A1B4704AA9532149FA266EF7A /* SDLSeatMemoryActionType.m */, - A4A011384B18AB35F5D5E7615AABE7C2 /* SDLSecondaryTransportManager.h */, - 4937DF05A2FDF67D435549105737E0AD /* SDLSecondaryTransportManager.m */, - 1580E808E8B8B029807BCC9320D098D6 /* SDLSecurityType.h */, - 4157869D41FABE62B8C192F3D08F1612 /* SDLSendHapticData.h */, - 82F4D26F5662FB5B045698D0F6EA082B /* SDLSendHapticData.m */, - B837E51434913D84E58B09A8B04A7E84 /* SDLSendHapticDataResponse.h */, - BA836CEA6A1C9872BEEDA51C34FBD2BE /* SDLSendHapticDataResponse.m */, - 2F06DFF88342148FB4F6EA0481D909CF /* SDLSendLocation.h */, - FDB100B41F41367A5046A8650FD53430 /* SDLSendLocation.m */, - FD4A03C289D0C51D2ADFA923A6B14728 /* SDLSendLocationResponse.h */, - F12CCA82A48E7EC083C69337418DE2F1 /* SDLSendLocationResponse.m */, - F45A44BD6C12AA0EB5B0553231CD72F4 /* SDLSequentialRPCRequestOperation.h */, - 675E2F625AECD899CD113C3918FD540E /* SDLSequentialRPCRequestOperation.m */, - E82FE3223DC169D9038DD1EB8FC32E30 /* SDLServiceEncryptionDelegate.h */, - 6A942A35064A0FA53F092510D10B5198 /* SDLServiceUpdateReason.h */, - 38E58E6ACD990EA45CAE7C8353A814AC /* SDLServiceUpdateReason.m */, - 20237D47AB74244F657CB78EAC6D5E1D /* SDLSetAppIcon.h */, - E78CAECB818A0AAFD5ACB1B475C157D2 /* SDLSetAppIcon.m */, - DD6D85898628258D6A68C4B679B238B1 /* SDLSetAppIconResponse.h */, - 3F9AC4187700727AA62E02334C521533 /* SDLSetAppIconResponse.m */, - B43FBF384A4067786E679B690EA2BDCE /* SDLSetCloudAppProperties.h */, - E4AC2494F1A779D80138CD7A5D8980C6 /* SDLSetCloudAppProperties.m */, - 06C8E96119F2882B4C2C262F67AD29E7 /* SDLSetCloudAppPropertiesResponse.h */, - FB773F958DBC067615AA9A0590DBCC61 /* SDLSetCloudAppPropertiesResponse.m */, - 881E4C25BD44C40E029B9496CF96582E /* SDLSetDisplayLayout.h */, - BE4CA9FAD52700FBCAD76C76239758B3 /* SDLSetDisplayLayout.m */, - 02D17977948909712E8F721ABB765601 /* SDLSetDisplayLayoutResponse.h */, - E7334963A37BC3A08C266E45F0DD29B9 /* SDLSetDisplayLayoutResponse.m */, - 29F0F5DC74AC7556C287B80348D40588 /* SDLSetGlobalProperties.h */, - F735242ADEB26A3EFED063A728FBFD17 /* SDLSetGlobalProperties.m */, - 221567F33875BCC7E8D9E6448B21CAEA /* SDLSetGlobalPropertiesResponse.h */, - D28C9BD0381F41CC4ECCDB3308A2629C /* SDLSetGlobalPropertiesResponse.m */, - 4F29D039A34A2CA78536348CE96D9ACA /* SDLSetInteriorVehicleData.h */, - 3323659F219E52681E8003E7972EF6C6 /* SDLSetInteriorVehicleData.m */, - C1B6C3AA7551CF9A652411C8E74DBF34 /* SDLSetInteriorVehicleDataResponse.h */, - B7506383773C5D6EDE24916C30190446 /* SDLSetInteriorVehicleDataResponse.m */, - 009617EB39512D02064536C0802DF918 /* SDLSetMediaClockTimer.h */, - B63DE7845F5EA943E8C3BC9F2728CFB8 /* SDLSetMediaClockTimer.m */, - C4AC1439B1DAC65A9F876F7CBE5B8E3F /* SDLSetMediaClockTimerResponse.h */, - DEF6AE23910B9300DD3A0EB0B277C68E /* SDLSetMediaClockTimerResponse.m */, - B5B59F14B5A937BCC17AE1731AC44B43 /* SDLShow.h */, - F21009FEE092F6591C2E5955ACBCD7A7 /* SDLShow.m */, - 38E242E9C5BDB3380CD5DE37E9262B8D /* SDLShowAppMenu.h */, - 4C9AED1F70FC929F9636D503F5A4B658 /* SDLShowAppMenu.m */, - 950FAD2DDF31FA20CDC674CA6C66F3C6 /* SDLShowAppMenuResponse.h */, - 77D15E8AD5A19B2ED89FB10E91070268 /* SDLShowAppMenuResponse.m */, - 8B39BA281073C47D8203292D7923D0E8 /* SDLShowConstantTBT.h */, - F3623CCA82E15DB239231177AEED9FE2 /* SDLShowConstantTBT.m */, - 4484173D9CEBA083E87CF3BC381D844B /* SDLShowConstantTBTResponse.h */, - 5D3D372A87B4AFED15B15E0EC89F51A5 /* SDLShowConstantTBTResponse.m */, - C55134DFAC0BA632F4739F88E9C22F64 /* SDLShowResponse.h */, - 745681F76A482E1B3B632F0DDCDF603F /* SDLShowResponse.m */, - 31BBFBBEB2100C4535679ABAF5A55F79 /* SDLSingleTireStatus.h */, - EA25911F974B5B30D235AC704A107388 /* SDLSingleTireStatus.m */, - B66ACED6C9FBD518D39C8CDB3849E983 /* SDLSISData.h */, - F9FDB0D2AA9E98077817EB3B8C90BC03 /* SDLSISData.m */, - 0E30FC7A94025A61E6EA176845E4BEF3 /* SDLSlider.h */, - 6657481C1066F2BFD64C601F0DE30820 /* SDLSlider.m */, - 5CED9E972E8876CBE62B74E0A508DB50 /* SDLSliderResponse.h */, - 4D48E02753FA770CE680D9502BD8F27F /* SDLSliderResponse.m */, - 57C40F8D0811DF6059FEDB49AEBDC69C /* SDLSoftButton.h */, - FF05E55CA61B330811455432212034C1 /* SDLSoftButton.m */, - F281EBFE5ACD2B7340F65D4E7EEA5416 /* SDLSoftButtonCapabilities.h */, - 84184A09E2EEE69596297343EBF3F35F /* SDLSoftButtonCapabilities.m */, - 74E30D8D3F070C400D8A5A719C652BE3 /* SDLSoftButtonManager.h */, - 511CF82F1FB9D8A7C5929F635B3E778A /* SDLSoftButtonManager.m */, - D825304615E69EF79423978DDC24A034 /* SDLSoftButtonObject.h */, - 388D88A1DB6D4B1CECD8ADE296D05335 /* SDLSoftButtonObject.m */, - 7A2CC1AB9C604A7E227193554050F049 /* SDLSoftButtonReplaceOperation.h */, - CF4CCE42229C9A7F2C4FACE1B032A768 /* SDLSoftButtonReplaceOperation.m */, - E7395392C63B23687A1B8E76B8AB07F7 /* SDLSoftButtonState.h */, - 6D40C571D57B74A89D78D4877D935250 /* SDLSoftButtonState.m */, - 3B4CDDE3895D8DB904D1109A078E3244 /* SDLSoftButtonTransitionOperation.h */, - A61B36731BEBEFB3938CDFBFC1EF305B /* SDLSoftButtonTransitionOperation.m */, - E72B649C1BBFB6CC29A8201C5681766D /* SDLSoftButtonType.h */, - 611B8EA6CFB53369E15F75B735E1EF03 /* SDLSoftButtonType.m */, - FE1C11AC277FD13D61BE3491397D447F /* SDLSpeak.h */, - 060F9D8B01CC5577C06B7438BDB833E6 /* SDLSpeak.m */, - 7EE602770509983D76D37ABED9C3EB57 /* SDLSpeakResponse.h */, - 20267DD8ABB8C4937C58CB114EFA029A /* SDLSpeakResponse.m */, - 0308C13EE2FCDF4DBE02F2C11AFBFC1A /* SDLSpeechCapabilities.h */, - D68BE4979539A4404F1FA1C07DC34D55 /* SDLSpeechCapabilities.m */, - 9E2E8F901CA5F0F91FB51345F05D3027 /* SDLStartTime.h */, - BA6551D7C8879D8E91C30E3DB455E34C /* SDLStartTime.m */, - 6A41267BCF7ACCDD59CABE41F6C1B46C /* SDLStateMachine.h */, - 1D74AD8B5D8CFF4297D85C83D4BAD091 /* SDLStateMachine.m */, - 16E0FE4610CAA939B208269D597C2BBF /* SDLStaticIconName.h */, - 4C31BC277EBBE8EABF6F1F7725ACEEAA /* SDLStaticIconName.m */, - 92FB143CC43A57BDCD09A5180EFC7A56 /* SDLStationIDNumber.h */, - 856D3BA7D8F100C4E870645839EC4088 /* SDLStationIDNumber.m */, - ED4168058B624B5FDD47D387C6D1E8A2 /* SDLStreamingAudioLifecycleManager.h */, - 6C22133A4EF2323F887466EC7EED58C3 /* SDLStreamingAudioLifecycleManager.m */, - 9F0D8AB40C82029C65CEECC77D7D8C1A /* SDLStreamingAudioManagerType.h */, - 0050DA0BCF8282C74B54D6A62D359073 /* SDLStreamingMediaConfiguration.h */, - 23FBC3FE7098E4D00F7657B9BFDBF6AA /* SDLStreamingMediaConfiguration.m */, - 95B6A24926E184BDA559B418D4A20232 /* SDLStreamingMediaManager.h */, - C4251A6C0C3D88AFE2E87AE0572B7B32 /* SDLStreamingMediaManager.m */, - 235D21011FFD874789BF1B303492BB80 /* SDLStreamingMediaManagerConstants.h */, - 2D2BE3CCEA4B2BB726B06E6675B831E6 /* SDLStreamingMediaManagerConstants.m */, - 0482261E0D79D54F44C861DCF5D31296 /* SDLStreamingMediaManagerDataSource.h */, - EE1FAE9A70F6C11454D435DA45460256 /* SDLStreamingProtocolDelegate.h */, - 9249C3F27F0E10C1E2F52FF5AB75D618 /* SDLStreamingVideoLifecycleManager.h */, - 5E182A82AB3C691E7B275AADAB942174 /* SDLStreamingVideoLifecycleManager.m */, - 95F535D382BB81682B987861B7CB0DDC /* SDLStreamingVideoScaleManager.h */, - 9FFB29DF01447220453AB1CF83DD5396 /* SDLStreamingVideoScaleManager.m */, - 14CAEF2A13506951EA87997CC4AA236B /* SDLSubscribeButton.h */, - D476F4C1BDF441FDB174D26DB9437AD3 /* SDLSubscribeButton.m */, - 18CF297ABA10DB64D20A22E9C6634FF1 /* SDLSubscribeButtonManager.h */, - 889A9936FDAA22D7E7DACA85443E9515 /* SDLSubscribeButtonManager.m */, - 5CEDDEAFB2948E2135AAB8C34A9C9277 /* SDLSubscribeButtonObserver.h */, - D1451982C674F8C57D7939A9DC79695B /* SDLSubscribeButtonObserver.m */, - B552BC411A63CECEDC496B62D1B4B8FE /* SDLSubscribeButtonResponse.h */, - 85B58642FDAB1B0A7547822E7591B829 /* SDLSubscribeButtonResponse.m */, - 347ECC1742A5C5DD03FA8380821DB34F /* SDLSubscribeVehicleData.h */, - F5911DA96561B2E0DB4E79F8EF63A561 /* SDLSubscribeVehicleData.m */, - AD92E87BD9A9816EC4D59E0AD66C1E62 /* SDLSubscribeVehicleDataResponse.h */, - D765E0A70DFB9714A0F405D852A66FAB /* SDLSubscribeVehicleDataResponse.m */, - 21D8EB78FB694C0B9754FB236AD82B6E /* SDLSubscribeWayPoints.h */, - 60C9980F7C06B067A4739AEF6364E6BB /* SDLSubscribeWayPoints.m */, - 5F9EFD1A81F30902BAA0BFD14E95906A /* SDLSubscribeWayPointsResponse.h */, - 84BCD84500C53F400D5B51AB716B9A7C /* SDLSubscribeWayPointsResponse.m */, - 8DE402844A0376A05C991CFC47EF599E /* SDLSupportedSeat.h */, - D42E48D6CC0F6C034CFD9C9FF1EED954 /* SDLSupportedSeat.m */, - 53A6F7FC8DB6771A7F606C83EE0F33E9 /* SDLSyncMsgVersion.h */, - ECE02258B281F599E9F848CF9A440B6D /* SDLSyncMsgVersion.m */, - 1D2180BDF4301C114F0173CBFE678364 /* SDLSyncPData.h */, - 2C10B9546CABAE071881D281D73820BB /* SDLSyncPData.m */, - C754499B66CE148E693BB1FF1F468E2A /* SDLSyncPDataResponse.h */, - D3B8CF68FC478BF3823F6C4D2995ED5A /* SDLSyncPDataResponse.m */, - F113CD1AE27E195E8E894E7CEFF2C186 /* SDLSystemAction.h */, - D90AE10D126FDEAC9EC89DC2DA4C9C9C /* SDLSystemAction.m */, - 7D4B95B4B14683496035C798353826CA /* SDLSystemCapability.h */, - 0BBAEFCD3A5756020019D66827B7F6BA /* SDLSystemCapability.m */, - CCD15C77520926C2D6DE6C44A380FD73 /* SDLSystemCapabilityManager.h */, - 773018652B375661E7ABA7CC63A04D1D /* SDLSystemCapabilityManager.m */, - 7CE2B2F33B9741F264BE0D9D55A6BF32 /* SDLSystemCapabilityObserver.h */, - 19FBDDF5290895EF460401DCB7F2C9EB /* SDLSystemCapabilityObserver.m */, - 4B5B5ADAAD2A74CAACA981BBA0E650AC /* SDLSystemCapabilityType.h */, - AB9A647494B575CFA5ADA8C3FEC415DF /* SDLSystemCapabilityType.m */, - 05EF0182EFA11F347688F90D543F5C41 /* SDLSystemContext.h */, - 9CB3708FD84DFD102864FB3A724A9689 /* SDLSystemContext.m */, - 6F81576D0E235C0559B93C3A3784A4A6 /* SDLSystemRequest.h */, - F08A40DF1E002E9280563EFB8F024E54 /* SDLSystemRequest.m */, - 8659E6ED0DA1E9DEB1C42B4582F2C284 /* SDLSystemRequestResponse.h */, - DD46481394302F4F857FA386B5B3D6D8 /* SDLSystemRequestResponse.m */, - 1535EB0F1986701BB26F15612FD19173 /* SDLTBTState.h */, - A4525E374C0C6592950D6900876AA4F2 /* SDLTBTState.m */, - A26A29D7E64A6FED6EAEC44F2DAB8EF8 /* SDLTCPTransport.h */, - 74883F69A6EF23F8FE9794EE3CEE21EA /* SDLTCPTransport.m */, - D16DBA7C10C34D2E22A67C65927F8D25 /* SDLTemperature.h */, - C30E238F7AB23166E9F59B321FF1EDFE /* SDLTemperature.m */, - 9E8C49B9AEFE2B7A0D27192F5F4FE6C7 /* SDLTemperatureUnit.h */, - DB37F4EF3E6ADA6FA78C8A414C2980AF /* SDLTemperatureUnit.m */, - C1F3C424DD2CB129EBF8CFDEE9E339E1 /* SDLTemplateColorScheme.h */, - 87C67CACB98D0E3DBC70C30114AA819D /* SDLTemplateColorScheme.m */, - 8DC2041DC5B9A5327C3B94AB4B3B41E6 /* SDLTemplateConfiguration.h */, - AA9CE864FB36C4F19622600C8C289B7C /* SDLTemplateConfiguration.m */, - 1ECBAA05C55448900253CB47419A5374 /* SDLTextAlignment.h */, - 09287D9F2DCDB16BF6E036447C615805 /* SDLTextAlignment.m */, - 1908048E1CC8A27E740EF38F5430D864 /* SDLTextAndGraphicManager.h */, - 1E5F2C4BA784D2770AEA68069BA870A6 /* SDLTextAndGraphicManager.m */, - 9C51B2936414DC95DE04ABA7C8408101 /* SDLTextField.h */, - FCFB1CA08F9688C66B82C8C2EDFDC54D /* SDLTextField.m */, - FB6A10D40CFC0CC11ECFD6D0C56D5A5E /* SDLTextField+ScreenManagerExtensions.h */, - 270D8238A2295E6936F9BCC907DD8BB1 /* SDLTextField+ScreenManagerExtensions.m */, - 76849B1E655537F0605C6BABA3DBCE8E /* SDLTextFieldName.h */, - 6BBEC9CD4C3851AF20E177DC499AFC7F /* SDLTextFieldName.m */, - C05B25FD08F4EDE81BBF8E97080430FB /* SDLTimer.h */, - 5EA4853DDAAB63EC25DE5EFCC17C1914 /* SDLTimer.m */, - EFD2738443614AA486E73684C49EFD84 /* SDLTimerMode.h */, - 52AD32EB63C924C84FDEC6DD43F329EE /* SDLTimerMode.m */, - 013381222E2F09C3FC30E0546F2E0E85 /* SDLTireStatus.h */, - 881888E1F3926DBD7D2B8B9D4057B6B9 /* SDLTireStatus.m */, - 37100CC61CBB83D8FD8AF13BB98BCD14 /* SDLTouch.h */, - 2B6AA11A6ACA1FEDE8194897C492F598 /* SDLTouch.m */, - DC1B6BD9F7404CCE757869AF75DC0434 /* SDLTouchCoord.h */, - 180F965AD76BFA9FF73D2E6A17D76C66 /* SDLTouchCoord.m */, - 5DB8E34CADC6FD344370C3E41DF04943 /* SDLTouchEvent.h */, - 72279C07ABBAEA264B9075A1A89C7434 /* SDLTouchEvent.m */, - C4A900A3C04D81E8AFE979A9CD841CF8 /* SDLTouchEventCapabilities.h */, - BF47CEA7D6AB8CCC5CC7B1A41D6BD3B0 /* SDLTouchEventCapabilities.m */, - 691225BFF1BB8235FF07367825ECE854 /* SDLTouchManager.h */, - 709665B2A1B0E940E288AE35CA99AEDD /* SDLTouchManager.m */, - B1C140D9FFA2E9FCFD8A401D69499C73 /* SDLTouchManagerDelegate.h */, - F831CC11D420FA3CB7D9E212B2E9874C /* SDLTouchType.h */, - 745677B913DC8E4E41FB2994B6781B3B /* SDLTouchType.m */, - 117F46D8AD9F12EC389BFEC8EC4A4A7F /* SDLTPMS.h */, - 842712B0CDF8A50C05707074C6B3E1BE /* SDLTPMS.m */, - 6EB24F185C13507CF836631F5BDF0A2C /* SDLTransportDelegate.h */, - 4085E3CA18C0C722411355146D5FA236 /* SDLTransportType.h */, - E0F50AF8211EE62DF94E01FA5E79CE67 /* SDLTriggerSource.h */, - 399963B38F59EC81F67BF3E9E31B2F1B /* SDLTriggerSource.m */, - FB58EAC6AED2BCF3595566AB716728B0 /* SDLTTSChunk.h */, - A6FD2FA90F20F6C5140D25FA0A41EB8C /* SDLTTSChunk.m */, - 3798CB99A6B7352DEED2C27BC86F9E32 /* SDLTurn.h */, - C1C6FBB24C1BC5CA5A7F2B3C4FFED418 /* SDLTurn.m */, - 57D658C85ECE3E69E79BB2FABFE5E487 /* SDLTurnSignal.h */, - A47E1D7E285C5B3399B259F741739553 /* SDLTurnSignal.m */, - CA63DD963834C98C595F586200D303A2 /* SDLUnpublishAppService.h */, - B70A1025E2176483677FE18DB926E317 /* SDLUnpublishAppService.m */, - C3BF3454AF3C68B1EDF2469AF1478D8F /* SDLUnpublishAppServiceResponse.h */, - B777CF456AFE62300FFF21779B554D81 /* SDLUnpublishAppServiceResponse.m */, - 6D1B8BCE12335818CDCDA92072B0EE7F /* SDLUnregisterAppInterface.h */, - 6EA2B752BEA8AAB3CDE06DD763FC4CAF /* SDLUnregisterAppInterface.m */, - 18D0C94E081C5652700A6657D0150BDA /* SDLUnregisterAppInterfaceResponse.h */, - 166F38C67540EA16117D3D9B0786CA65 /* SDLUnregisterAppInterfaceResponse.m */, - 32C3FE6D390A5D3DF3DDB3C3E02CD486 /* SDLUnsubscribeButton.h */, - 4B14A2B419E2DC947711544B4DFA5659 /* SDLUnsubscribeButton.m */, - 78BCD3CBF28669B305138E89FAF33DE4 /* SDLUnsubscribeButtonResponse.h */, - 08DA15E3B091636F3E38EEE53E5BD64E /* SDLUnsubscribeButtonResponse.m */, - F1F3ABF315700CBC59CCB9DDE42C0C6F /* SDLUnsubscribeVehicleData.h */, - E6A9A7FEC27852B2A0E5BC59182279C3 /* SDLUnsubscribeVehicleData.m */, - BF23B355A2ED03E01AACD1364CDE9011 /* SDLUnsubscribeVehicleDataResponse.h */, - 052CE8CBD47B13C4CF8725945BB4F79B /* SDLUnsubscribeVehicleDataResponse.m */, - A4BF66140123996F41DEFF60B1C946BD /* SDLUnsubscribeWayPoints.h */, - 5B4549A9A5E6AF77B821A8EA6F04A858 /* SDLUnsubscribeWayPoints.m */, - 576CF948F88ECCCBFAC0594C7F4040B0 /* SDLUnsubscribeWayPointsResponse.h */, - A40F0AF559343F73CD03D070F06706FF /* SDLUnsubscribeWayPointsResponse.m */, - F3CD46DEB812EEF3053AE7AD322133F4 /* SDLUpdateMode.h */, - 087970D423C4D2D7AB2EE1EE71444F15 /* SDLUpdateMode.m */, - 59F1B488251110BAEA799A5E7C83E6A7 /* SDLUpdateTurnList.h */, - 2156D0BCF6E0BA97352362D70EAD4710 /* SDLUpdateTurnList.m */, - C2B0CA84D3B9C68D496FD66419D566C3 /* SDLUpdateTurnListResponse.h */, - 6965165C7082ACB5194C99CB6FA07E6B /* SDLUpdateTurnListResponse.m */, - EBA42054F2C0D64D68F0AAFBD937E5CC /* SDLUploadFileOperation.h */, - 927F104C5BC3088472101359E0E7B4FE /* SDLUploadFileOperation.m */, - 3B07FF648818147BBC509B12366D5DBE /* SDLV1ProtocolHeader.h */, - 2761563B654943CE2BDBA7FAEF303886 /* SDLV1ProtocolHeader.m */, - B74B5802B681CDB3E7A210BB0EEEB7D0 /* SDLV1ProtocolMessage.h */, - A457A96BC13A557BA1810EA50BC942AC /* SDLV1ProtocolMessage.m */, - 9303C2006A43927A3DDDA863577D7E24 /* SDLV2ProtocolHeader.h */, - 7B3EF2AF2354F5AF6D7A430764CE2C2B /* SDLV2ProtocolHeader.m */, - BBD4EDFBF8EE19B3FBA0F3448A7B54B1 /* SDLV2ProtocolMessage.h */, - B96A1767D28449410C3C9A92255D7FA9 /* SDLV2ProtocolMessage.m */, - 9238647073F63757659A703F1665A4D8 /* SDLVehicleDataActiveStatus.h */, - 182F56830437E660474472022B3B6A98 /* SDLVehicleDataActiveStatus.m */, - EB86E9E686A67D3B92112A90F2138FF8 /* SDLVehicleDataEventStatus.h */, - 363A1394DE1FFD6DF123791772377320 /* SDLVehicleDataEventStatus.m */, - 6D150921AE68F0BB3EE9419F5B9B006D /* SDLVehicleDataNotificationStatus.h */, - 544D38C68F8828FD1E9856024D36B44D /* SDLVehicleDataNotificationStatus.m */, - 3EB05BE08F0592AB8A2B2E5AA70E41FC /* SDLVehicleDataResult.h */, - 7C4733935F901007F3F62700534869C2 /* SDLVehicleDataResult.m */, - BA96306DAEE794F0C9FC374D0556DB27 /* SDLVehicleDataResultCode.h */, - 93667B5FF68BE37BC728FB920DD912EA /* SDLVehicleDataResultCode.m */, - 11BAC842CBB10B4B7C24DD4A558F24D1 /* SDLVehicleDataStatus.h */, - 7E745564AE37D33E39D0D5F6C4614133 /* SDLVehicleDataStatus.m */, - 84439E65ABFB04398E7E8680FA2A7755 /* SDLVehicleDataType.h */, - 3A703348831CBF1811100C05D2D7FC44 /* SDLVehicleDataType.m */, - 52A7852C42AC1A630401AD0DB04DCACD /* SDLVehicleType.h */, - C3EBDE4679B3284A0BCAA44A5D195BF4 /* SDLVehicleType.m */, - CAFA794CC2E87DB83C46EC3AF3A8F7CD /* SDLVentilationMode.h */, - 372472FCDD67DFC4CADCCC7B18520B62 /* SDLVentilationMode.m */, - 25F504266BEC635D2B9887837CA00D26 /* SDLVersion.h */, - A8F74D221FAE93D785BB127D2DBA24CF /* SDLVersion.m */, - AC622C32763FF5BF0D5E745522571CB6 /* SDLVideoEncoderDelegate.h */, - 53F45435EC8D3A8BC571D18035BCFCC2 /* SDLVideoStreamingCapability.h */, - 5ABA9D773535CC39A270DD8160147CAB /* SDLVideoStreamingCapability.m */, - A80BF767FDD68AB1636D37FBA5E4E345 /* SDLVideoStreamingCodec.h */, - FA7A7DA3C20C1725AD9388188E89250F /* SDLVideoStreamingCodec.m */, - 808D3D1BD6F1044040D5B2D458E4B21C /* SDLVideoStreamingFormat.h */, - 5AE2355374C44304F88A7DFB00858AA2 /* SDLVideoStreamingFormat.m */, - F3FC5C1D5936F9A265745B7DB5851979 /* SDLVideoStreamingProtocol.h */, - 9C1B74D20AD626E1FF7D59D1201016C8 /* SDLVideoStreamingProtocol.m */, - 2F27E3C03AA7B2EAA902D3C1D95090DB /* SDLVideoStreamingState.h */, - E0A61B983B6B91FDF2BA49150AE2356C /* SDLVideoStreamingState.m */, - E809A18658FB035135235C331745934C /* SDLViewControllerPresentable.h */, - 18305D4E4A21F03086AE858DAC4C9BC4 /* SDLVoiceCommand.h */, - 4B28910E4BB86E3DEC060B763E45C0FA /* SDLVoiceCommand.m */, - C6724681B057A0BC81FDCBB5C63008EA /* SDLVoiceCommandManager.h */, - B476612D209040FF1C5E1D9D7D7DC068 /* SDLVoiceCommandManager.m */, - 585E39B167E64180E6C78FEC200638A0 /* SDLVrCapabilities.h */, - 8715DA57587883550705045298299293 /* SDLVrCapabilities.m */, - 45E554466607C0B6553630AB6FB0D015 /* SDLVrHelpItem.h */, - 27CD966D3D85688EC1467BD37B74D1E0 /* SDLVrHelpItem.m */, - A877633FFF7377994C92687A4E85E718 /* SDLWarningLightStatus.h */, - 22F32629EED3C3C993F19F29509552C5 /* SDLWarningLightStatus.m */, - BF5EACB795A74BEECD2B2D57A5D74C00 /* SDLWayPointType.h */, - 10C447C90A40A49C0653E0D97B15E7C4 /* SDLWayPointType.m */, - 19139224AA63FB5E62A3D689DD610047 /* SDLWeatherAlert.h */, - D570A1BD7CC0E6336C341706DE07CA56 /* SDLWeatherAlert.m */, - C185C026B8EEB00D5EDD482420CEB1C7 /* SDLWeatherData.h */, - 69C08735FF330FCAC39AB5054B9E06AA /* SDLWeatherData.m */, - D22DDB6D7F55F6ED4E2E018BE51EB987 /* SDLWeatherServiceData.h */, - 1B74FBD65102DD04AAD49A5F43E8D28B /* SDLWeatherServiceData.m */, - E78CF1EFD9F68E40428F71D4887D5C50 /* SDLWeatherServiceManifest.h */, - 8DCEF38864BBC13A94861FE01FD6837C /* SDLWeatherServiceManifest.m */, - 4417737422CDA6FC54D20FD73B984618 /* SDLWindowCapability.h */, - 2643EB480894991204DC88CA218D09C2 /* SDLWindowCapability.m */, - 53F7A94FC00388D92F20C90B87BE945C /* SDLWindowCapability+ScreenManagerExtensions.h */, - E6F7F96110B8644ABA5E6DE312BB0D7F /* SDLWindowCapability+ScreenManagerExtensions.m */, - A84893E9B393129BECE4A90B2112AA3D /* SDLWindowType.h */, - 53911CEF89F12CFA7AEA7FF43FBF7E06 /* SDLWindowType.m */, - E9D2FA097525605C95E2AFE782A6BE6C /* SDLWindowTypeCapabilities.h */, - 9AF964C803E435C54BC6C0D5656BC75A /* SDLWindowTypeCapabilities.m */, - 4A84D0C360959095854C5870445E677B /* SDLWiperStatus.h */, - 89DF44BE873C0C35B93160AF2AFA563E /* SDLWiperStatus.m */, - 8AF84943922331DACE393EFF73879043 /* SmartDeviceLink.h */, - B7462198B3907DB7D73BC29114E41EAA /* TestSubscribeButtonObserver.h */, - 8A5AD3441FF3C7D1A42E2F592EC01E42 /* TestSubscribeButtonObserver.m */, - 16078D60F18D9059209E00CB8AAD1C5E /* Resources */, - ); - name = Default; - sourceTree = ""; - }; - 51CE33EBE8FFBC30BEF32E469BF01E5D /* Support Files */ = { - isa = PBXGroup; - children = ( - F19067B542E8E8B13534A927F11732B5 /* BiSON.modulemap */, - 1E9A0368A42FD75DB7B35822E72FE4CA /* BiSON-dummy.m */, - E0EBAA870975DA984A3928C8DCFE7A40 /* BiSON-Info.plist */, - 8E55EFB9D3BAD62918F64D3B710B38F8 /* BiSON-prefix.pch */, - 66FD520D0728F8EF271910AF32E9C621 /* BiSON-umbrella.h */, - 7F2C5F89F8B578C3FB94E3AF3276CD61 /* BiSON.debug.xcconfig */, - BF3B79CB79DA4BF9796E3C06A34739EF /* BiSON.release.xcconfig */, + DDE35F83F21F26BF020C728950D6C990 /* BiSON.modulemap */, + B4B09C9B8D6AB14F61330FF6FB8E3257 /* BiSON-dummy.m */, + 3146752598F98460737A0816F21D1DC0 /* BiSON-Info.plist */, + E535CD3255E256549582056BB430BAF5 /* BiSON-prefix.pch */, + FEF2016A9D7AE38A97F83A8E40300735 /* BiSON-umbrella.h */, + E0ABE76C5826D12B93EBF61BAAF52F60 /* BiSON.debug.xcconfig */, + C4CE7887593CC1FC33CAE5D179B39AC5 /* BiSON.release.xcconfig */, ); name = "Support Files"; path = "../Target Support Files/BiSON"; @@ -3480,6 +2366,1092 @@ path = "Target Support Files/Pods-MobileWeather"; sourceTree = ""; }; + 79190AE0E09AAB511AF11AD1CED0C631 /* SmartDeviceLink */ = { + isa = PBXGroup; + children = ( + 7D9F729C9B351AD1305789B8B2A21936 /* Default */, + BA3A7450871FE17E9BFF7EABA6C36536 /* Support Files */, + ); + path = SmartDeviceLink; + sourceTree = ""; + }; + 7D9F729C9B351AD1305789B8B2A21936 /* Default */ = { + isa = PBXGroup; + children = ( + 4FD6F467D5959B95D867103EEA1CA0D2 /* CGPoint_Util.h */, + 1A08ADB128C672DC69C4127E045F5070 /* CGPoint_Util.m */, + B8C4AFF624FB42A6EEE527432AB9EAA9 /* CVPixelBufferRef+SDLUtil.h */, + B1737F018C1201A37BA9F403EA0E0019 /* CVPixelBufferRef+SDLUtil.m */, + 583045D48F0608C0A7B71AE4D7666158 /* EAAccessory+SDLProtocols.h */, + A875209328BA108883DB60F79AA77ACF /* EAAccessory+SDLProtocols.m */, + 9EFC8BC7FEE4107EC3E3E44D15D11048 /* EAAccessoryManager+SDLProtocols.h */, + 46B479E9DE24EACDF8798380CCC4B19E /* EAAccessoryManager+SDLProtocols.m */, + 93636199EFDA841EF4C2CC4859CE2B6F /* NSBundle+SDLBundle.h */, + C60EA5909682DF758FBFC7F0114743A5 /* NSBundle+SDLBundle.m */, + E88D7898374900884A7E0C3274ACDD65 /* NSMapTable+Subscripting.h */, + 6DEDB66DF7B774B967B556AA20105522 /* NSMapTable+Subscripting.m */, + 9470359FA084F4E00E48F9FCE83F58E1 /* NSMutableArray+Safe.h */, + 2AEFB5FD4FD8D86E84F192A4E8DFCDC3 /* NSMutableArray+Safe.m */, + 3267E75ED2305FABE31E4255A576BFF0 /* NSMutableDictionary+SafeRemove.h */, + 8FFF9A629644A4A7222767D6C63D7E24 /* NSMutableDictionary+SafeRemove.m */, + 879A113E59D1AE7DFEBF6165CDA5A8D2 /* NSMutableDictionary+Store.h */, + 9125F90EF6EEDE90B5699DE26ABE1AC6 /* NSMutableDictionary+Store.m */, + 4C8AB9952510177705B3F01E462FE897 /* NSNumber+NumberType.h */, + 05AF30F572533AFA58903B5BA40CC28B /* SDLAddCommand.h */, + EBEB8360055FF562885140AB8EDC891A /* SDLAddCommand.m */, + E65AB80689651E51BC67BD306B058C30 /* SDLAddCommandResponse.h */, + 223764A1541B9FABCBFF13489C0B8067 /* SDLAddCommandResponse.m */, + 2D4BA9AEA9F55ABDD3453605BCA0C84B /* SDLAddSubMenu.h */, + 9B5A4E5EEBEDE007C98C3E1449D1236B /* SDLAddSubMenu.m */, + FBF01691FA6A64E8B91B258A087254D5 /* SDLAddSubMenuResponse.h */, + 1ECFA9EC3D76BE7DB5AA4AD25DED7262 /* SDLAddSubMenuResponse.m */, + 57AFA95624C62EA40DCF7A4A52DA2D26 /* SDLAirbagStatus.h */, + 12FB6C12FA7C56F07A058C648B52AA9A /* SDLAirbagStatus.m */, + A0A6C0D7A199BCCE8F0FF9593EC73681 /* SDLAlert.h */, + 1C4083DFA322D07EB69325A6B9D19535 /* SDLAlert.m */, + B0DF64B830CBF8A2D3A1F42792E5E927 /* SDLAlertManeuver.h */, + 3FC09BC7628BFAB7CD416C70D3F97726 /* SDLAlertManeuver.m */, + DCE03B2B123ED8E259A090EA186A04C7 /* SDLAlertManeuverResponse.h */, + AEB84A7714266B9D07AF0529C3361737 /* SDLAlertManeuverResponse.m */, + 8D4105D8C883FAEA6442789492798AA6 /* SDLAlertResponse.h */, + CC9604E66648405ECCC5FEF1ED5DAF7D /* SDLAlertResponse.m */, + AE1E83E5226544501924015F9D97A062 /* SDLAmbientLightStatus.h */, + 64D9FFCA2DD46CA3C4112C71901478D2 /* SDLAmbientLightStatus.m */, + 3F46BF5B95E2FE244011A908FAA7404C /* SDLAppHMIType.h */, + E9AE0633C881E09921808B99336A33CD /* SDLAppHMIType.m */, + F27A5F1AE23A8CC4875C2B9F720E0983 /* SDLAppInfo.h */, + 4C0C5BDEA392C2632EF566C04D76A2D0 /* SDLAppInfo.m */, + 5034B677DE11A819CC149521CC6E7720 /* SDLAppInterfaceUnregisteredReason.h */, + D7C7F86F69CEA7AF2F36510A9E3ADF4F /* SDLAppInterfaceUnregisteredReason.m */, + 03156C93EE8442396869D907BBBF3E51 /* SDLAppServiceCapability.h */, + 4946BD85165935E30EBDE5F0983445E0 /* SDLAppServiceCapability.m */, + 0E836B2993410EB417C2123481A4E6CD /* SDLAppServiceData.h */, + 5307CCD102337C9C53D4EFE667B761F4 /* SDLAppServiceData.m */, + 32BD65A04E2AD6AAF6ADC18E5A5DE4EB /* SDLAppServiceManifest.h */, + CBC0300359DEB43A7C09E1D901FCA137 /* SDLAppServiceManifest.m */, + 453036FA291BAD166B2A99B5B41BD415 /* SDLAppServiceRecord.h */, + FBA1886A6AB5675C30E45BE6BDC08ABD /* SDLAppServiceRecord.m */, + ADFFB6C5FDA442555BEF95532E12DEBC /* SDLAppServicesCapabilities.h */, + 756CD9B80439215BBA2D29D4ED43E094 /* SDLAppServicesCapabilities.m */, + 9F909C05943A039E0097211A7DF01A9B /* SDLAppServiceType.h */, + 48307D297D9F19863197DD3A5B8AFBD8 /* SDLAppServiceType.m */, + 2D43F462BE01761031E4AFB3D2476A5F /* SDLArtwork.h */, + 78DB22A547F3877AFC6B9C4837827A62 /* SDLArtwork.m */, + DDE558E5D0448F16F7A74A931431AA9C /* SDLAsynchronousOperation.h */, + D56532D34DE9E68146CFDE8B079E3A04 /* SDLAsynchronousOperation.m */, + 68D12D24E08593D40782A089F52040A9 /* SDLAsynchronousRPCOperation.h */, + 97C932CDEE9602EF8E18CDD087C0022D /* SDLAsynchronousRPCOperation.m */, + 734B4EBB383604167B153F2C9772FB06 /* SDLAsynchronousRPCRequestOperation.h */, + 7E29BFBE9F6D962531E8241C660B4AB4 /* SDLAsynchronousRPCRequestOperation.m */, + 6076ED1F7C813186E772A1EFE55F1B2C /* SDLAudioControlCapabilities.h */, + 75470F9E88B2A0F0EE2F691B6EE20841 /* SDLAudioControlCapabilities.m */, + 1D35EEBE45318E549076542898349235 /* SDLAudioControlData.h */, + 40F09D6CBF3B576AB4BCEE787D60E8A7 /* SDLAudioControlData.m */, + 2BB01A65CEF78E53E9E87B5A49249EF7 /* SDLAudioFile.h */, + 942B330B46ACF300BF3CBDAECE4EC0C9 /* SDLAudioFile.m */, + C10CCA1F0756004AD9418EF06446AD16 /* SDLAudioPassThruCapabilities.h */, + 64A402A669311BB17E6D1A2C93B61EF8 /* SDLAudioPassThruCapabilities.m */, + 752C180C8E3193C1898AFD82D953B208 /* SDLAudioStreamingIndicator.h */, + EB3F3F76167CA66B3B7C05138A413E0C /* SDLAudioStreamingIndicator.m */, + E06E125B93E154B8A67C00E35CF0FB9F /* SDLAudioStreamingState.h */, + EC880BF5EFC8FBD9AB4F63EEC9191983 /* SDLAudioStreamingState.m */, + 8AFC9728863E515D3D032829F1D3C57F /* SDLAudioStreamManager.h */, + 415932F30412FF10E539284D48E8C35D /* SDLAudioStreamManager.m */, + 74E065CD49B4A598CACA6C88D69006AC /* SDLAudioStreamManagerDelegate.h */, + B0659086D16C101E4B3240900C7412B1 /* SDLAudioType.h */, + 74E48158DDD5FF132D47C5C3AB49717F /* SDLAudioType.m */, + BEA81FC17FEEBB29EA50A437D78643CD /* SDLBackgroundTaskManager.h */, + AFE831074AA07078B0E351971A9F0E26 /* SDLBackgroundTaskManager.m */, + CE75998AC803F932D548A5CFAFE79632 /* SDLBeltStatus.h */, + A279D9C92C4169FF98A476AB715168EB /* SDLBeltStatus.m */, + C0150C2F6FCAEDCCE0078FFF6A5F9854 /* SDLBitsPerSample.h */, + 5FF29143ABCD4BB3E7BEDE8C7CCAD067 /* SDLBitsPerSample.m */, + 264FB4E8863E17A2F5E34BECDA538F65 /* SDLBodyInformation.h */, + 5C71161060166817E773FB5B022B4BF7 /* SDLBodyInformation.m */, + E31DCCADEC394A9E791837B3BD64B501 /* SDLButtonCapabilities.h */, + F486561AF5F904ABC8067B60C4EECF23 /* SDLButtonCapabilities.m */, + 359E694B54914987D0F5C484CDD1B988 /* SDLButtonEventMode.h */, + 1776C574198D8077B69B01D3AEDA34E6 /* SDLButtonEventMode.m */, + 27C368EAA0D3AC1FA9ECDC2F63B9730F /* SDLButtonName.h */, + 67855906284D207F83522CBD12130F96 /* SDLButtonName.m */, + 5515A49433320321179C4B897753C324 /* SDLButtonPress.h */, + 0A3CC4629A17A1D6F3FAEC259BA87C31 /* SDLButtonPress.m */, + FCEA708E983578ACFF71772E8EC543E2 /* SDLButtonPressMode.h */, + 042CAE65E8266BAAC2DA30FF0B6CED41 /* SDLButtonPressMode.m */, + 7AFD67A512B7797A6F916B27F9816BC6 /* SDLButtonPressResponse.h */, + B4487AD673E64E1277940325C03E19A6 /* SDLButtonPressResponse.m */, + 0E56E1D0EA294149153FB6F83C9262C2 /* SDLCacheFileManager.h */, + FBFE07B70439DC670284DEB1C34BA90D /* SDLCacheFileManager.m */, + 186CF5CA656EF53E457CC74A91CED8BF /* SDLCancelInteraction.h */, + 8FE0F5BE889755CBF2EACC79F9B92C01 /* SDLCancelInteraction.m */, + 8DAD96E48B6521B50D315831C92D08A4 /* SDLCancelInteractionResponse.h */, + D7B6671467E1F2AFF00152A3BB56DA00 /* SDLCancelInteractionResponse.m */, + 3D6A97EE0FBB026A0734AE80DF2F8572 /* SDLCarModeStatus.h */, + B9B1FC9F310952A5B90D5345964A38C2 /* SDLCarModeStatus.m */, + E0BC4F6E6B159DB9BBF7B3971DE31957 /* SDLCarWindow.h */, + 4C7358A46E79FC0C9BC7001B0A76870E /* SDLCarWindow.m */, + EA76282753B31122B78D182BFFE41253 /* SDLCarWindowViewController.h */, + F907665A4BB12E254E52BB764DBAB620 /* SDLCarWindowViewController.m */, + C68E00EA0C35209A7F5D2308107243E6 /* SDLChangeRegistration.h */, + B85B6A3BDFE2C9C0F9DE2E3DEDFAF475 /* SDLChangeRegistration.m */, + 96D8D2CAC3C9D900AC00A8B3CC5C579F /* SDLChangeRegistrationResponse.h */, + D1038E18768690DF540899139455789E /* SDLChangeRegistrationResponse.m */, + 76060F5A6770E40F2895C5DEE9DBC9F7 /* SDLCharacterSet.h */, + CC96F7C7B44C145A8134DF1D1AA18116 /* SDLCharacterSet.m */, + 0101AB6A004A001DF9E0F740590E99D1 /* SDLCheckChoiceVROptionalOperation.h */, + CCC1D764310276A1B4C8335898707354 /* SDLCheckChoiceVROptionalOperation.m */, + 943DDBBF480DC8B8E38C092C2740CCBE /* SDLChoice.h */, + 9BAF278CD2A85FB40BB8CC980CAF9CE0 /* SDLChoice.m */, + 8223FE4A0640C2107CC1B1C83483D0F4 /* SDLChoiceCell.h */, + 5CC74D66E26424A87C56B92B709CA407 /* SDLChoiceCell.m */, + 1CFA9A9E1169A3206174FA90EF8EDB20 /* SDLChoiceSet.h */, + 515C64D6ED07705316C7A0B26C4DD75E /* SDLChoiceSet.m */, + A7E2467D5DC2019F260BD475A53CA1F3 /* SDLChoiceSetDelegate.h */, + 956C902E2F413D6BBFF38305B200A08F /* SDLChoiceSetManager.h */, + B85ED94C4814B0CC8AE4863BE9962AA3 /* SDLChoiceSetManager.m */, + 96ABA69015D9F51A879DB818FAE3605B /* SDLClimateControlCapabilities.h */, + B1AFFBD09878FE64AE19E65AB5D0D9D0 /* SDLClimateControlCapabilities.m */, + 95569FF6FBE18E8D60E93393B780FC1A /* SDLClimateControlData.h */, + A21A4B3EBE116F516BFBC74130C407B1 /* SDLClimateControlData.m */, + BD0A82F3B2EBBDF4D3C4FB965156E9D3 /* SDLCloseApplication.h */, + 513C5F441F1680E2DF08C9769B0F1261 /* SDLCloseApplication.m */, + DD906B67A1DB81F1A4D78834D42F0C3C /* SDLCloseApplicationResponse.h */, + 71BBFBB7A0760A4443CBB21CA252E8CB /* SDLCloseApplicationResponse.m */, + ABCC08D24761FA1AB3187DB24D8E870D /* SDLCloudAppProperties.h */, + B2C0261F3896CD81D17FC9889CD6080E /* SDLCloudAppProperties.m */, + A874F4C09FE07D7EF94135D92A5A2D31 /* SDLClusterModeStatus.h */, + E1FAE16882639A3A3090385712018D6F /* SDLClusterModeStatus.m */, + CCF47A553221E3AD83C4363CB7B81894 /* SDLCompassDirection.h */, + 72456DACFF4B143FA90DC10239139E18 /* SDLCompassDirection.m */, + C0F9B31189558811D7A53ACF37EC44D9 /* SDLComponentVolumeStatus.h */, + 8B49CB8BCE22DD2B4CF1B57ACC983DCC /* SDLComponentVolumeStatus.m */, + 9BC8BBD75E4ABF360800CAA3D4E00485 /* SDLConfiguration.h */, + 3B4D15588619AC4E8EE11A21A4FB48AD /* SDLConfiguration.m */, + 31D638E1DE7C038192AB4E63575C1E34 /* SDLConnectionManagerType.h */, + E75E53426BB1F8D06083AA6B092186F3 /* SDLControlFramePayloadAudioStartServiceAck.h */, + BF93E5FC62B485106482874C40C58DE6 /* SDLControlFramePayloadAudioStartServiceAck.m */, + A09A123F4100A6E0985F62A0D2C03B11 /* SDLControlFramePayloadConstants.h */, + 91022FC9BD41CC0B9D0193EA80339523 /* SDLControlFramePayloadConstants.m */, + 450FA67BD7C44184F88D81F8C399251F /* SDLControlFramePayloadEndService.h */, + 26D0EBD3EEA72649EE8D2DF59814B8B1 /* SDLControlFramePayloadEndService.m */, + 22A7CA326FC1A31FBED51465160C7D19 /* SDLControlFramePayloadNak.h */, + D08CB1A94F1B6EE63D943DD3D8D04CA0 /* SDLControlFramePayloadNak.m */, + 371F5509AF08468749E6798199E0D549 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */, + 7EBE26A5E99C203ABB63EB5567F7464E /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */, + DADD98EB7761E07FAD05EA3DD3712E13 /* SDLControlFramePayloadRPCStartService.h */, + 4534A47F55F401B4F9461F6E133F8C1D /* SDLControlFramePayloadRPCStartService.m */, + C38C988FF2BC04E3BECCA8B8B2BBB7E1 /* SDLControlFramePayloadRPCStartServiceAck.h */, + 5A11856FDCCC57B69B91D3F4F8AAAE92 /* SDLControlFramePayloadRPCStartServiceAck.m */, + 2F2375B625B97F66D8E12F064F7521C3 /* SDLControlFramePayloadTransportEventUpdate.h */, + 717DFB9BE8DC679E6C4758105253E4D5 /* SDLControlFramePayloadTransportEventUpdate.m */, + BCBFC65AAAB2DE0ED2B74F8CE3002306 /* SDLControlFramePayloadType.h */, + AEF7CB1324D1DFFE0F15BCED4F422DE1 /* SDLControlFramePayloadVideoStartService.h */, + 5CD8B26768A85697E5937AC3887AFC5E /* SDLControlFramePayloadVideoStartService.m */, + 7356AD33DD279C8B715E26EA25CACD63 /* SDLControlFramePayloadVideoStartServiceAck.h */, + 6F36F6895EC63F83831A850E7A3837B9 /* SDLControlFramePayloadVideoStartServiceAck.m */, + 7A117B857E94BF65B1F05AF4CDAB3A39 /* SDLCreateInteractionChoiceSet.h */, + 45278E4B1599BA7B963172755EE7266C /* SDLCreateInteractionChoiceSet.m */, + 5123591BCB0470FF6776714BBA79CF39 /* SDLCreateInteractionChoiceSetResponse.h */, + C840BD5423689277D6E9D631A85F41E7 /* SDLCreateInteractionChoiceSetResponse.m */, + 867279F7956ED364FE2FF921B6C6E196 /* SDLCreateWindow.h */, + 17BD7329197D81447717DC7ADEB5750E /* SDLCreateWindow.m */, + FA15E0A79BCB48FD659C8724AE5E8D70 /* SDLCreateWindowResponse.h */, + 34E7BCC2915FB3B8486062ECCDC005B7 /* SDLCreateWindowResponse.m */, + 8FE3643BA5E989C40224C3A030671F99 /* SDLDateTime.h */, + C318BCF5948BE73D137E480D096B323B /* SDLDateTime.m */, + 0393BBC2C9A85C3D9B9616139D4F4859 /* SDLDefrostZone.h */, + 6BDFD54AD0587D67A9F01BE35775FEFB /* SDLDefrostZone.m */, + 1C95F788EAED941BB5F58CA21C90D17D /* SDLDeleteChoicesOperation.h */, + 4CDDE49677C1E817827B6E102A64583F /* SDLDeleteChoicesOperation.m */, + 41D2FDD18C0EC502F3D54359F05AEA12 /* SDLDeleteCommand.h */, + E704475B197CAEDFADBA46990776ABED /* SDLDeleteCommand.m */, + 9ED15A0AC24E44401A1D40DED75708E9 /* SDLDeleteCommandResponse.h */, + 8AD71C120072B2C90332685ABC447D8B /* SDLDeleteCommandResponse.m */, + 8968D59CE9F5ACC5102A6047D3E64151 /* SDLDeleteFile.h */, + 9B8DB8AD97F13CD6B4CD990703A087B9 /* SDLDeleteFile.m */, + 1ACA766A3B7A6071AF22334BC052F5D9 /* SDLDeleteFileOperation.h */, + 5E8F3EE9F30783B26AA56961091BF72E /* SDLDeleteFileOperation.m */, + DC5946B04F71B3AB896F1E96200F9AF8 /* SDLDeleteFileResponse.h */, + 8EC6E2E0ADD9BFC51D3ECF0FBFD7E9D0 /* SDLDeleteFileResponse.m */, + AB15A2A894735B2E1F0B2159CA744E96 /* SDLDeleteInteractionChoiceSet.h */, + CBEA9E8BA4BEAF80193321CF986F0A91 /* SDLDeleteInteractionChoiceSet.m */, + 7C90C1D028D438622CABA6C39AD5A9BA /* SDLDeleteInteractionChoiceSetResponse.h */, + 57F213F76C681791E8A6A44907FAD2A2 /* SDLDeleteInteractionChoiceSetResponse.m */, + E7B8F3E8A6E8FEFDC6D3FFF9938E7219 /* SDLDeleteSubMenu.h */, + 12D744FC8FA6C20656E30908E2337246 /* SDLDeleteSubMenu.m */, + 9BA0AF625F5738A2DFEC698A0E10DE96 /* SDLDeleteSubMenuResponse.h */, + 4D30EA1923FA31DA9BE9ABCBAE3F7AC8 /* SDLDeleteSubMenuResponse.m */, + 4F84252F4C10EA659DE486850D8B391F /* SDLDeleteWindow.h */, + 0ED1437EE8F2E16924B445E6758A4682 /* SDLDeleteWindow.m */, + E6676C50EEF5E1C69FF7D27A9C87426A /* SDLDeleteWindowResponse.h */, + 09596899A697F08A6B73A7F8DD24700D /* SDLDeleteWindowResponse.m */, + B054B7658B858C19F36D425B913FCA53 /* SDLDeliveryMode.h */, + F96C3EF342C56B944AB2446197932888 /* SDLDeliveryMode.m */, + A295FC118C7C689512C3EE0C5BEEA414 /* SDLDeviceInfo.h */, + F453F9BFB3B93AA2625EE2FBBB625D24 /* SDLDeviceInfo.m */, + 0014601A825D99EBC10BD35C7B771929 /* SDLDeviceLevelStatus.h */, + D39069B46FB5C4AA3C7B4F149BC3A9E8 /* SDLDeviceLevelStatus.m */, + C8CB8529A9386D82BBB3D5191EF06A18 /* SDLDeviceStatus.h */, + AE3A34EFCC4B7995EFC13CDFF7415942 /* SDLDeviceStatus.m */, + 04612B443920F41D035644D3D5DCC4BD /* SDLDiagnosticMessage.h */, + 534381EF77922C7C1FEB465E9A76C391 /* SDLDiagnosticMessage.m */, + 1FAA770CD2F0D719792C511D30970EE1 /* SDLDiagnosticMessageResponse.h */, + 941C68CF789F85A7C11457585FAACEC6 /* SDLDiagnosticMessageResponse.m */, + 72D0738CE8E4BEA34432415457A21559 /* SDLDialNumber.h */, + 03E209DD429BD45C838761E809185BB6 /* SDLDialNumber.m */, + 9BE641F519C441DF7E48B7D3B6919934 /* SDLDialNumberResponse.h */, + 7A8F68EFE966B4AE635B3514B21823DD /* SDLDialNumberResponse.m */, + 72270B3D9ECE1B81AC9E613184E61E23 /* SDLDIDResult.h */, + CBB1E250DE3E63DEB5019B86C69B0AF4 /* SDLDIDResult.m */, + 1D5A06B422339F19A2053DF7AD2E64B0 /* SDLDimension.h */, + A65FAB1A1AE67773721FE07A100A3E83 /* SDLDimension.m */, + 7133F6AC9671200858B818B6C007DECF /* SDLDirection.h */, + CFB9AA79201C2D9C76506FEDF237FF2A /* SDLDirection.m */, + 9227FC37C76C208644F400388ECD5C95 /* SDLDisplayCapabilities.h */, + C449475F6E0CE07B003A60F21E17DFCC /* SDLDisplayCapabilities.m */, + 4A9E6530D498F353F0F09932DF6E0EAD /* SDLDisplayCapability.h */, + 6E7DCE417C4EE2395C2B60D1AFE92B0B /* SDLDisplayCapability.m */, + 05AC4D2805528F742A66D7477F43714E /* SDLDisplayMode.h */, + 07643F069443483408E8DF939B35C281 /* SDLDisplayMode.m */, + F15F88F1FB854998E6F08EFE580379A1 /* SDLDisplayType.h */, + A429FA0D271048EA825CC81CA78405F0 /* SDLDisplayType.m */, + FBF8392198B21FE38EBE90F5DD79437F /* SDLDistanceUnit.h */, + D83C3F848B3100D62A9329AE8FD1E53A /* SDLDistanceUnit.m */, + 60F046623D1338F618C008003CCE3C24 /* SDLDriverDistractionState.h */, + F75444C19206F2D27C8E558236DD8652 /* SDLDriverDistractionState.m */, + 59E9E6DA852CDB3807D696B60E051419 /* SDLDynamicMenuUpdateAlgorithm.h */, + 7C314283909AA88717A78A8BAF8E331D /* SDLDynamicMenuUpdateAlgorithm.m */, + DDC4519536BC211F5D35E00B5E2BB216 /* SDLDynamicMenuUpdateRunScore.h */, + 61826AE009D0EFACD0702CE842CA700D /* SDLDynamicMenuUpdateRunScore.m */, + AA978EFFF7802A57334EEC147C532F12 /* SDLECallConfirmationStatus.h */, + F5903A4BA6C59D4D52E4F8EDA87E0AD5 /* SDLECallConfirmationStatus.m */, + 5D5380F0BCC170C113C3965CCB7AD31F /* SDLECallInfo.h */, + 8CEB2D97B78F3D03054621D61974E2CB /* SDLECallInfo.m */, + 4DBF14A9018FF0267ED5E2B71139B68D /* SDLElectronicParkBrakeStatus.h */, + 5CF68D31D1441A9B01A4855729375706 /* SDLElectronicParkBrakeStatus.m */, + 1673D555128E7CE618DE3C3279E10278 /* SDLEmergencyEvent.h */, + 0C68BF2CE6FE130CE0B0A970E9E4EB46 /* SDLEmergencyEvent.m */, + 4975CFB97046B46A61DB1C5214F450B7 /* SDLEmergencyEventType.h */, + 56BD8841DFE8B3FBBC4A5C4D08264F39 /* SDLEmergencyEventType.m */, + 6423F48220C9A8B6095DDC2BC8E85DE5 /* SDLEncodedSyncPData.h */, + 57B7CFE27E7FD5DFEDF19B5BF803548D /* SDLEncodedSyncPData.m */, + A47AC218EDD3DC3F3FF2978AEDCF2E78 /* SDLEncodedSyncPDataResponse.h */, + 8C7A37EAF43721950F29116483BA4DA7 /* SDLEncodedSyncPDataResponse.m */, + 51FFB00ABD6490160288E149838F9914 /* SDLEncryptionConfiguration.h */, + 1D42EAA6631F7F9BA8CADAC3A96CC64E /* SDLEncryptionConfiguration.m */, + 90229AC6E8F0ECD254DB821584B0F830 /* SDLEncryptionLifecycleManager.h */, + CF679021B1F310A3DA1CCAD24947CE31 /* SDLEncryptionLifecycleManager.m */, + 55244989E8038AB58D5327F3F2477E52 /* SDLEncryptionManagerConstants.h */, + B12B2C77A2D099C8E8D0415A41140C39 /* SDLEncryptionManagerConstants.m */, + B1B7A6430BC02C0B52516656BA4B5DE6 /* SDLEndAudioPassThru.h */, + F8EDD51E7C160D973CB9023C262ADF2E /* SDLEndAudioPassThru.m */, + 0006A2A7A7BDE53A1AACFDA8155F4F61 /* SDLEndAudioPassThruResponse.h */, + C89447CA3A2D998A71484D9D7EEC0D6E /* SDLEndAudioPassThruResponse.m */, + 719DCAF92882EA100E2C8795B42C2678 /* SDLEnum.h */, + 94170D786D38E92B4C692CF92C3ABD30 /* SDLEnum.m */, + E68B7D0A4A009DA0A9A0B94AB87A0D21 /* SDLEqualizerSettings.h */, + 6301C36A8C5A7DFCE5AE6E9C37BBE530 /* SDLEqualizerSettings.m */, + 543FCEC5A85DD779ABF6ACE810B1AD64 /* SDLError.h */, + B4979E6424D2B5B676846623A6C7D4ED /* SDLError.m */, + 04C4ACFBE0F5E7AA0EB2EDC5D718F443 /* SDLErrorConstants.h */, + 794968D771482D3B2B695A119EEFC610 /* SDLFile.h */, + 606081890E34F1A52EA3621D5B06F45D /* SDLFile.m */, + D2F8D638111E1E1C919E161F33554DCC /* SDLFileManager.h */, + 0FD269E190CA05DE20711325DB709DCA /* SDLFileManager.m */, + 87FBD700D9DBA4D763D490E8394ECAAF /* SDLFileManagerConfiguration.h */, + 2E7DF54F44C89CE28EC111C69CA41A80 /* SDLFileManagerConfiguration.m */, + 7BB6D4E91D8A0F98864787DB620D6AE0 /* SDLFileManagerConstants.h */, + 85C831243400E8D6A9F22B565CD3EE18 /* SDLFileType.h */, + 6B563B100B41A14984E794CEF82D270E /* SDLFileType.m */, + E2FAAAE33D2528754A3DCB84CEBD7047 /* SDLFileWrapper.h */, + 3108E6D3BDA3B4349EC02CCBB85B6307 /* SDLFileWrapper.m */, + 121CC19826232F3072AFD1D83D158A42 /* SDLFocusableItemHitTester.h */, + 2EC447A9F44C626EE8F180C4FD1F774A /* SDLFocusableItemLocator.h */, + 395C9056FCC2D6785467927C7C046C36 /* SDLFocusableItemLocator.m */, + AAD2B4E1C0F33BFEB252C2481A9032F2 /* SDLFocusableItemLocatorType.h */, + 9DAA75FD4629A2D623ECDA3EE735764B /* SDLFuelCutoffStatus.h */, + 390D7DC13089AAF192CF47CA92343067 /* SDLFuelCutoffStatus.m */, + 6BEAB10C4471AE448C7D5D75888C4D2D /* SDLFuelRange.h */, + DF9731F0EEDD01B488AE412DDC732A15 /* SDLFuelRange.m */, + A28A3EF650501C5F764BD9255379B913 /* SDLFuelType.h */, + F7901CE8B0D66BE7D80603D36AC4C9F0 /* SDLFuelType.m */, + 6832CFBF1515389AC3364F399A91817E /* SDLFunctionID.h */, + 6B8EFD1CF76083158407FC36B8E116EE /* SDLFunctionID.m */, + 96BEB464EEABED67F857FCAA31784297 /* SDLGenericResponse.h */, + C8817A9FA9D65B3370E04B0D63880BDF /* SDLGenericResponse.m */, + 1A54A6815830D84DACA174DA5B066347 /* SDLGetAppServiceData.h */, + 689B0C277D4D74417F0703BA219AF3EC /* SDLGetAppServiceData.m */, + 23F819C18E6C44ED74C4333AD5189778 /* SDLGetAppServiceDataResponse.h */, + 378EBD7F1E0220A44E552335CBA83F26 /* SDLGetAppServiceDataResponse.m */, + 2F2C244E4B55F098A0A0B3DB07E12A8C /* SDLGetCloudAppProperties.h */, + CC79D886FC0B1F4F59AC179912B3288C /* SDLGetCloudAppProperties.m */, + 7D357CCADC7705B89FD66DEEE0E6DE86 /* SDLGetCloudAppPropertiesResponse.h */, + 78FE8C97F350096089415B007A7C9167 /* SDLGetCloudAppPropertiesResponse.m */, + 0B7024D8FB7FFF140C2B02CD06A30621 /* SDLGetDTCs.h */, + CCEDBA4CF5298ACECCDBB21E9EF83088 /* SDLGetDTCs.m */, + 873AD46682BA883CE3701B9759A685AF /* SDLGetDTCsResponse.h */, + 36ABD04F09CB9E8C748573174EDFED6A /* SDLGetDTCsResponse.m */, + C7A3524440606449BF1F506F67159172 /* SDLGetFile.h */, + 4EDBC18F6B463FA2C5159B39D11406A8 /* SDLGetFile.m */, + 61F44CE148CA8C83F8C0A4C085412C87 /* SDLGetFileResponse.h */, + 6CB6D2B700919E44F651FE5643F0D5AF /* SDLGetFileResponse.m */, + 3088C13A654A2FE2C6AE29FAC85859A8 /* SDLGetInteriorVehicleData.h */, + 9396AC892DC0B21725B21B23AFA995D3 /* SDLGetInteriorVehicleData.m */, + 9C6C83F225EFD1EB3CF30CCBEC52C689 /* SDLGetInteriorVehicleDataConsent.h */, + BA017EDCE303A08B1FC07733F845ED45 /* SDLGetInteriorVehicleDataConsent.m */, + D0D35FA4BEEE3F908B03AEB2D32E4321 /* SDLGetInteriorVehicleDataConsentResponse.h */, + 64190B404D04BE52AA1D0DEE2805F556 /* SDLGetInteriorVehicleDataConsentResponse.m */, + ADB87610BB6428EAF7555538EE3E9CF5 /* SDLGetInteriorVehicleDataResponse.h */, + B33B4BD373DC2C35A7D1CB0AC87B3376 /* SDLGetInteriorVehicleDataResponse.m */, + 658B5E74262239EB89838E06BCDA0669 /* SDLGetSystemCapability.h */, + 6F85105DF89C5A00C24011ADD2F11E33 /* SDLGetSystemCapability.m */, + F1474259B2634C2CA09FBC4E9EC0F197 /* SDLGetSystemCapabilityResponse.h */, + 789539F0D0B01F9B19A6F15A31E9B06F /* SDLGetSystemCapabilityResponse.m */, + C3F279ED37C2B8521FA6B95F37C61B6F /* SDLGetVehicleData.h */, + 6E238C3A14756784DF2389D96C274D46 /* SDLGetVehicleData.m */, + 2A4A0AB3F4FBC747F8A9BF2C7F38F20B /* SDLGetVehicleDataResponse.h */, + E0482F1FF68E1DE5D306B4F4B9D57CC8 /* SDLGetVehicleDataResponse.m */, + 43E6B7E8C5F8053C7D1CC36D63B661F6 /* SDLGetWayPoints.h */, + 2EE2D6F35E8ED91165271F62FB1A31AB /* SDLGetWayPoints.m */, + 4EB9B954F1D1DCEB391A1D236360F644 /* SDLGetWayPointsResponse.h */, + F504801CD4380D506BB8BFFCF7087AAC /* SDLGetWayPointsResponse.m */, + AE6AE53069716EDC4D28271639B1ECF6 /* SDLGlobalProperty.h */, + 1D503EB0E143D4B5FF04B10A34BC6D16 /* SDLGlobalProperty.m */, + 341C430BE22913BF9CA0B57997C20BE1 /* SDLGlobals.h */, + DE69A7B9DB57BFBF5BD9A2D76ED79B77 /* SDLGlobals.m */, + CE702433D4927A3186F0C2ED53D7F27B /* SDLGPSData.h */, + 97AD120A3AD881B75046604C99B99B22 /* SDLGPSData.m */, + AEE5EB23993F004A5B8717B7811188D6 /* SDLGrid.h */, + FB292819C30F7CC71BE8B0A31B91068D /* SDLGrid.m */, + 1310B5C3A3FD8D5E490FB2B56E5AAC43 /* SDLH264Packetizer.h */, + 2A14F3582266D6F7B75BA4AA85218D3A /* SDLH264VideoEncoder.h */, + 0BED0EB216A163B02E038B24BD163908 /* SDLH264VideoEncoder.m */, + 85AE177498B404861704BE8D54AA5040 /* SDLHapticRect.h */, + FE62CE2C7E1A9C2C2276D29ACDE4392B /* SDLHapticRect.m */, + 6BB5CC306F5A580E2DE14FF2E2AA1009 /* SDLHeadLampStatus.h */, + 5F656263CA5DF65889FE6D8936080E02 /* SDLHeadLampStatus.m */, + 05B65BB837429AB03BD36724BAA2EDB6 /* SDLHexUtility.h */, + 795E1BED3027BAEDD697E8A22A036324 /* SDLHexUtility.m */, + 9CF3282DF31D7BD5C48812D01950DBA5 /* SDLHMICapabilities.h */, + CE844466F3EDF16CC0981DA495566991 /* SDLHMICapabilities.m */, + DEEB8CD3B1A76596EEC8B093838892F3 /* SDLHMILevel.h */, + 23817E0063BEAB1A48262BE111DF3256 /* SDLHMILevel.m */, + F10B8AB7BDA6627AA906D8076EACAE16 /* SDLHMIPermissions.h */, + 1A6CDBAD9F0E1DE4C224214867D802DE /* SDLHMIPermissions.m */, + 6A6546CC22413DE90D216F99190F62B4 /* SDLHMISettingsControlCapabilities.h */, + 94D396845FE301C9BD090468079F6BB7 /* SDLHMISettingsControlCapabilities.m */, + EDD01FD8321E8A489DCCF59E4DE051D9 /* SDLHMISettingsControlData.h */, + E4F5004CD6B82FEDEBE21181B317258D /* SDLHMISettingsControlData.m */, + 5A352F773B0D24E76E0DDA51D741F4F4 /* SDLHMIZoneCapabilities.h */, + BAE82B84E1601BFF59D0A736CDEFE053 /* SDLHMIZoneCapabilities.m */, + BD5725BF0453F0E370C791AFFCA33AB0 /* SDLHybridAppPreference.h */, + 7F676E8F3D670FF0D4C133C69B09A3DC /* SDLHybridAppPreference.m */, + 1878E365B1431D16CB7D13B067382A01 /* SDLIAPConstants.h */, + 1D62134BBF189EA2FAE0F2B9924C1CEA /* SDLIAPConstants.m */, + 9699CEFAE8CC63EAF12D47952326F8E7 /* SDLIAPControlSession.h */, + 9E2182C9F77CC4097FBDD673E8C2836A /* SDLIAPControlSession.m */, + E588D52092688278DFB1ABBD34198268 /* SDLIAPControlSessionDelegate.h */, + B4CDAA4EB638051C5A0474B84B73471A /* SDLIAPDataSession.h */, + EC66B309EDD7459B38A3029CA12705EC /* SDLIAPDataSession.m */, + 798BC3FB68D60AF937EFE55D6BBCE3FF /* SDLIAPDataSessionDelegate.h */, + DE79CEA37357B6F9DD91B9559EEEFEBA /* SDLIAPSession.h */, + ACE4B9AC146F03631EC52683B808D9D2 /* SDLIAPSession.m */, + 5C7DA6DFDBC398CAB62E0896412F9A2A /* SDLIAPTransport.h */, + AF87D39D8C17C6A34DCC703C68689E08 /* SDLIAPTransport.m */, + E958081595D9D09F94B5A4E61223D317 /* SDLIconArchiveFile.h */, + C5C00931EAB51480DCF119086CEF8E38 /* SDLIconArchiveFile.m */, + 0A23C49669583356A1CE449D9EBC74DB /* SDLIgnitionStableStatus.h */, + 06303A86B1B729A73E63863D21AF2925 /* SDLIgnitionStableStatus.m */, + A5B485EB6672E131B13E69E253F738D6 /* SDLIgnitionStatus.h */, + D389BD4118B81FB0470D538239B59E34 /* SDLIgnitionStatus.m */, + 2A5CB6D69CF7CCF3B825B42C91828400 /* SDLImage.h */, + 5607006D258938F74C9BF96F14B4D4DF /* SDLImage.m */, + B1CBAE6C6FCD662932F84593886D1FB9 /* SDLImageField.h */, + AFF3854A1D8BC5DD5484E62759DB92A8 /* SDLImageField.m */, + 1C02BCB7CC0146495C11C4741811815E /* SDLImageField+ScreenManagerExtensions.h */, + 41D72B7B4ED48D2E8526C8AF6D0B9A7B /* SDLImageField+ScreenManagerExtensions.m */, + A499748AF54AFC5230B135A169E0F5AE /* SDLImageFieldName.h */, + 1D3100295E8CA323C777D8F2A6CC4D95 /* SDLImageFieldName.m */, + 86B8AD55F292718C4A52B693B3EA5F2D /* SDLImageResolution.h */, + EEBA83F076ACB48D5FAF0C28B9E04400 /* SDLImageResolution.m */, + 93C7430585EB46BE55AE0CB860148481 /* SDLImageType.h */, + 143137C3210A437C0540124CDBE42B86 /* SDLImageType.m */, + 888125F9D139D66C74276506032B1A88 /* SDLInteractionMode.h */, + 995A7E70BDA2C8AED3E00F4433D46835 /* SDLInteractionMode.m */, + FBB16D3DFAE9EF0F599A37586C34BCF7 /* SDLKeyboardDelegate.h */, + 10210FEFC75394E3B2F578C082EA07D2 /* SDLKeyboardEvent.h */, + 5B19D438E24EAAC5AB55CF4F1D7C0C34 /* SDLKeyboardEvent.m */, + C33288F60F5B286E2B4C53A09F9694A8 /* SDLKeyboardLayout.h */, + 556489F7F882C1F45315798A6F7A1FCC /* SDLKeyboardLayout.m */, + D90CAAF858A78919418815026E93FE6C /* SDLKeyboardProperties.h */, + 47CEE7254EB0F1FF12B377E55631510A /* SDLKeyboardProperties.m */, + 710DFC67FB36B6C8C38EE056D84223ED /* SDLKeypressMode.h */, + 739CEE74F80EDD2726D485B052803409 /* SDLKeypressMode.m */, + 86257F6370BE9E41B823982B8B658DCD /* SDLLanguage.h */, + 4AE79256F1FBD692C97BF6AF4A9AA8F5 /* SDLLanguage.m */, + F0F72587391C1C5AB8C181F91DA3ABCF /* SDLLayoutMode.h */, + 407C6AE6126DB991B09BB16445481048 /* SDLLayoutMode.m */, + 560F738DFD43F14B66D6575B0D922FF8 /* SDLLifecycleConfiguration.h */, + A8431B0F75B502F5FE58F26285618A6D /* SDLLifecycleConfiguration.m */, + 6A84F34CB374BEB91FE4C77E7F10F2FA /* SDLLifecycleConfigurationUpdate.h */, + 23C52C7F9DFB04519EEFA548FB3DAB2C /* SDLLifecycleConfigurationUpdate.m */, + 8B325B54245A4E4E8C66F6A001CF9340 /* SDLLifecycleManager.h */, + 286D40C6D0DF1F4E4AAA22A91CA707E1 /* SDLLifecycleManager.m */, + 3CDFC5B023598A90612B35331554854F /* SDLLifecycleMobileHMIStateHandler.h */, + 53E02D4536535B419DF1F95513E1ECBA /* SDLLifecycleMobileHMIStateHandler.m */, + 0C6D93D8E80998CD66E39C448733F9C8 /* SDLLifecycleProtocolHandler.h */, + 5712312473A00BB85C7BFFF2A9701AB2 /* SDLLifecycleProtocolHandler.m */, + 560968D114523D039B47918DE9FC2B26 /* SDLLifecycleRPCAdapter.h */, + 560110B981BC4B6770CCD1C3367DB69A /* SDLLifecycleRPCAdapter.m */, + DDD04A6F68474FB574C693B9CBD2C5A3 /* SDLLifecycleSyncPDataHandler.h */, + D4DA5A5B16BCBD07008310F92C3960D1 /* SDLLifecycleSyncPDataHandler.m */, + ED7883C58B7DD059DDA8CACAC65B0774 /* SDLLifecycleSystemRequestHandler.h */, + 44F03874CFBDB12A46DAEDBEBC01EDED /* SDLLifecycleSystemRequestHandler.m */, + 47C1FDEBDE61E5805D49671442A7A863 /* SDLLightCapabilities.h */, + 28171FB492C52974721D3E4837BA46EB /* SDLLightCapabilities.m */, + EC8827628FE4A59FFDCFD4E3F3D7C4C2 /* SDLLightControlCapabilities.h */, + 88C48BC3D16BDEC962C895DAC4CD023C /* SDLLightControlCapabilities.m */, + 0623BF96606B58FD9FCC3861992A2F61 /* SDLLightControlData.h */, + 330DE6702F86BC1CEC62353483DA8E09 /* SDLLightControlData.m */, + 0540D028CA350ED05CE0F5B10778ED6D /* SDLLightName.h */, + 38C9A59422FFB04B66D9134E84B54F55 /* SDLLightName.m */, + C57AA9193B116618556C40DAECF8CF3A /* SDLLightState.h */, + F297A1D12DA6A40D653E588BCFB5BE1F /* SDLLightState.m */, + 2A5988CF4E97C39E992F5F38B97769ED /* SDLLightStatus.h */, + 434F7E258AA1DD104EC3CFB0E53CD4F5 /* SDLLightStatus.m */, + C857DA8AD51F0B0A8D7F9682E8435BC5 /* SDLListFiles.h */, + 55E435B983612931D00E4E0BE0F83314 /* SDLListFiles.m */, + F72C939EDB942180ADF30F6AB0ADC7AA /* SDLListFilesOperation.h */, + D7B76D1D26F17C8DFCC609B03BB5F1FF /* SDLListFilesOperation.m */, + FE7744F0C66582742EF55FA411E81338 /* SDLListFilesResponse.h */, + 20FA6E8D363E92E2246382F8E4DFCF0E /* SDLListFilesResponse.m */, + 9401FE979F2F8AEAF58BE90F5FB0B075 /* SDLLocationCoordinate.h */, + 3E4F804CFCE6EB5C7532E3E88A095743 /* SDLLocationCoordinate.m */, + 19B1A83A55BD6197AA3C2050EDA2EDB2 /* SDLLocationDetails.h */, + C1ABA54275646D92071529E1091B1333 /* SDLLocationDetails.m */, + 5CB3BE56CAC7F62425D19C1C143A480E /* SDLLockScreenConfiguration.h */, + 620CF46A0CCD4D50705CBD8D5628B133 /* SDLLockScreenConfiguration.m */, + 736D1EB1BA3C095F2150065772354EC2 /* SDLLockScreenManager.h */, + 9AE76BA22D74D21AAF31A4BC6C4C57F1 /* SDLLockScreenManager.m */, + 9B7C65426660FAD7B711561101E64251 /* SDLLockScreenPresenter.h */, + 756E3677484D98F236D0DEFED0A75FCB /* SDLLockScreenPresenter.m */, + 5A548B2F0B4F07864D70445C29686B09 /* SDLLockScreenRootViewController.h */, + EB18E676157C3DBB7F7B0573085BC479 /* SDLLockScreenRootViewController.m */, + E66A988442959BA4FF4EA6712EB679BA /* SDLLockScreenStatus.h */, + 096D9EC5221B9D6B456EDA53A2E88F92 /* SDLLockScreenStatus.m */, + B3C88EDC28B4D78F4CF7643299FC87EE /* SDLLockScreenStatusManager.h */, + 264466043512A19F32B8FD33808B100C /* SDLLockScreenStatusManager.m */, + CEFD29CFFB2F5E8DB487421FE557262D /* SDLLockScreenViewController.h */, + 0A922B6EE1FBBD668DC4D132D27791DD /* SDLLockScreenViewController.m */, + 824E5F03CBD68420A86B160BD96E6742 /* SDLLogConfiguration.h */, + AAFA82C0BFDBC0D64BF1C7E2CF3ACF45 /* SDLLogConfiguration.m */, + 45C3A2C25877219916DC604237EE989A /* SDLLogConstants.h */, + AFC91724BBDC797A1FBE9062D011BD62 /* SDLLogFileModule.h */, + D7857EF566BA1394F763413B59EC6BC7 /* SDLLogFileModule.m */, + E8FF631234AC949BCF5E7BA206039D09 /* SDLLogFileModuleMap.h */, + 306A96E272DDC349606149EEE10530B3 /* SDLLogFileModuleMap.m */, + 9CD4E213C5B2DB7E81A09C7CA35B69EC /* SDLLogFilter.h */, + 034FAA8CE999DFA9139A4FF001EF3175 /* SDLLogFilter.m */, + 99D249C8F6BCB49BC6DED24ABEACC7BB /* SDLLogMacros.h */, + 70BE2640088F6CC3C663C6A47A6FF4EA /* SDLLogManager.h */, + 9FF74FFAAB89A4E89CD8576C7CCF13EB /* SDLLogManager.m */, + E27890CE8E8F1D7904C65EB29FB9ABD0 /* SDLLogModel.h */, + 9712AC0C44D0ADF928AA7E06E0017867 /* SDLLogModel.m */, + 61E9DF9DE239F356089DAA53E89279CA /* SDLLogTarget.h */, + 7788E7C2DFC41AF4C6F9D275C716316E /* SDLLogTargetAppleSystemLog.h */, + E3CBEA1B6A63BBECF895DD4D924B8BE8 /* SDLLogTargetAppleSystemLog.m */, + E395B89F16DB085EDAA307A77151A4E9 /* SDLLogTargetFile.h */, + BC48020E05365643AE6EA8547CC8AD26 /* SDLLogTargetFile.m */, + B5D86F64C557ECB55D17B7F743CE14A3 /* SDLLogTargetOSLog.h */, + 1F47C488B08BF5122754BFE7BBEC9A14 /* SDLLogTargetOSLog.m */, + 3E264BEF6A4FED13F137E6FD85DE5CF5 /* SDLMacros.h */, + 5219E50197D0F16E89EF7D41AA424C50 /* SDLMaintenanceModeStatus.h */, + 96F0D36E1F88AD285C4F2EDEFC6311FA /* SDLMaintenanceModeStatus.m */, + CB1A61D4933119EA30B60E11CB2A55E4 /* SDLManager.h */, + 50519D317000C62928D0855FCBD05D94 /* SDLManager.m */, + 6390AF2F2F40CABD81E416ABBDB1DA38 /* SDLManagerDelegate.h */, + 6295861AA5817049121A7E98779B04F0 /* SDLMassageCushion.h */, + 144A510FD012E8B3D68672FACAD74C3D /* SDLMassageCushion.m */, + EE3BD31D681144934CA751D4EBE59FBE /* SDLMassageCushionFirmness.h */, + 56348A384ADED81FB3086D9B75D54306 /* SDLMassageCushionFirmness.m */, + 7DE90E5D2B3882F8873FABF50DA4CCA6 /* SDLMassageMode.h */, + 7B7301DAF575A72B748A49FDB3EB87C7 /* SDLMassageMode.m */, + E36CCB25374711839E0FBA532EF81EC0 /* SDLMassageModeData.h */, + BF050F8D21022CD0E6C2AD5A17E6B282 /* SDLMassageModeData.m */, + A71C484F36F765E076597940091AFBAE /* SDLMassageZone.h */, + 4CF246B79DE4F55FA9C83D84B39DED75 /* SDLMassageZone.m */, + 755D72CFBEC566638C5F451190E126C8 /* SDLMediaClockFormat.h */, + 5229ED97F3A6D032C282A878D63A8092 /* SDLMediaClockFormat.m */, + 0E17BE2717EB8E175D224175E94EF0C5 /* SDLMediaServiceData.h */, + FBD38969E857441AA3068AD8C9ED8B42 /* SDLMediaServiceData.m */, + F2294C32AA5333D43982A700A5D97711 /* SDLMediaServiceManifest.h */, + AF122075C0B55246AB9E41B45037309F /* SDLMediaServiceManifest.m */, + 99260C97979258B09198B8E093019FAD /* SDLMediaType.h */, + 87B650D370D62BF0EC67E9AD42F6E22B /* SDLMediaType.m */, + D547BCC4DEAD1C428EDF45B037D5201A /* SDLMenuCell.h */, + 50189BAC7FFDD4590A653D15F6445710 /* SDLMenuCell.m */, + 91F7EE2A199046AFC07A4EE31FA290E0 /* SDLMenuConfiguration.h */, + 299684AFB9A86A8651CE61038ED446F6 /* SDLMenuConfiguration.m */, + 1C28381778F9B6F73AE7045AFF50293B /* SDLMenuLayout.h */, + CAD566B149788CE2A5407D1274A17F00 /* SDLMenuLayout.m */, + 793212B2CF70C31043EA09E6CBA12BD0 /* SDLMenuManager.h */, + E75F183917254542C99CC42AA2CC3860 /* SDLMenuManager.m */, + EF925E86FABB82836176E8B05534DE9F /* SDLMenuManagerConstants.h */, + 82421BB2792D77283F0C50BBB7B95D13 /* SDLMenuParams.h */, + 2D744D294CB82BB107AB6ED0A3F46323 /* SDLMenuParams.m */, + 2AAE3DEF47FBE1D573CA3230BBD12E26 /* SDLMetadataTags.h */, + A3ED9F7681E099143B800F40621D588E /* SDLMetadataTags.m */, + AF2EB782EEAA8529D44E257890E1E3A7 /* SDLMetadataType.h */, + 5A7526B4C33F3597CF06B974E14148B3 /* SDLMetadataType.m */, + BB3973D6F3986950AA95D58E21EA4849 /* SDLModuleData.h */, + 1ACA353CD4341D5B1B5F4211679D6562 /* SDLModuleData.m */, + C5CC066A137773D4739994E979CF375D /* SDLModuleInfo.h */, + 6A800C1FAD99D70B8B29AAE775776B9F /* SDLModuleInfo.m */, + 1D09D03FDBAC839C0B609D7085FE7612 /* SDLModuleType.h */, + E744FAD3C000DB8C868581AA6D77DDE9 /* SDLModuleType.m */, + 39D9C69734E237DD22253CC4F5D9F863 /* SDLMsgVersion.h */, + F3C46904E4C375379797C22AD77B4E79 /* SDLMsgVersion.m */, + 04CA5C324677346256F9E7AF067CA1CC /* SDLMutableDataQueue.h */, + 0303F7A337A026665A7C2B1401481962 /* SDLMutableDataQueue.m */, + A56BE725C12073F229AA3AF5449958A1 /* SDLMyKey.h */, + 20D7BE66EF79F8245CD53754C388C728 /* SDLMyKey.m */, + 720B6176093F9F84BF6916A0DC55B8C1 /* SDLNavigationAction.h */, + 9385A8C466EFC5D2EECF88F1BB4D7E51 /* SDLNavigationAction.m */, + 1B04572C7780D11E01CA5FC3B4CFFAD5 /* SDLNavigationCapability.h */, + 87E0AF0EFF86DC936E595031B5F1260E /* SDLNavigationCapability.m */, + 8027DAC33017EFA7299687C48733622B /* SDLNavigationInstruction.h */, + BCACAA14FF60CF41338964A0B4EB8421 /* SDLNavigationInstruction.m */, + B2B32C73887D39822D8BCF44DD62ADE0 /* SDLNavigationJunction.h */, + 58F3751CB279F04FD7904D88ADC33AD9 /* SDLNavigationJunction.m */, + D1C31EB7EB2D9E54E40DF8F679512777 /* SDLNavigationServiceData.h */, + 0F19ED2AEE6718C0915FC669935F35ED /* SDLNavigationServiceData.m */, + E28D7727C696BB6A9A719269ED72550C /* SDLNavigationServiceManifest.h */, + CB10D3679A8E589017A8F931A055A746 /* SDLNavigationServiceManifest.m */, + 106CC8005ED9499CD5FD635CC6B264FD /* SDLNotificationConstants.h */, + A4D3B69BC21E62BA98351B1E601DBE97 /* SDLNotificationConstants.m */, + 19CCE221988FAB4BFF131C894F0920C4 /* SDLNotificationDispatcher.h */, + 3D7871125148142044AD48FDD6D7511C /* SDLNotificationDispatcher.m */, + ABC42E73E04AA89D2638CE5E086A0BAC /* SDLOasisAddress.h */, + 9E19B35BFCAF24D72CE74D4A958941BB /* SDLOasisAddress.m */, + 4C0A8CFB3D9B165CAB3A25F6C5FE2553 /* SDLObjectWithPriority.h */, + D70663478539E6AEC0CB55388F533D99 /* SDLObjectWithPriority.m */, + 8B5DF3D138D81A3A587A931F4D1E6E9C /* SDLOnAppInterfaceUnregistered.h */, + B59517F7CBBA095EAF2897CDD2F95780 /* SDLOnAppInterfaceUnregistered.m */, + 2A97648721B27DE7C06C2FD5DEE52543 /* SDLOnAppServiceData.h */, + E0693F2A953A77A17E75C29FAFD7F7BD /* SDLOnAppServiceData.m */, + 565121A4F57AC7B9E0FFA044BC680BAB /* SDLOnAudioPassThru.h */, + 4B58A20A29A45608DC88942D98FAD328 /* SDLOnAudioPassThru.m */, + 249F9CCBE006EBE28439076CEDF02C70 /* SDLOnButtonEvent.h */, + 121E4A108B2448717672CE50FEDE685A /* SDLOnButtonEvent.m */, + 7EC3AF92A0155AA2A2E679263C15CA4B /* SDLOnButtonPress.h */, + 79B7A63E7628613EAA9F22EB4C339E89 /* SDLOnButtonPress.m */, + 51210DA0C1436DDB81E521EBA6EADBC8 /* SDLOnCommand.h */, + C4BE27470822649960E3E82D1CCE585F /* SDLOnCommand.m */, + 1EF11FACEE1EFEF67EDBD239E3CFE981 /* SDLOnDriverDistraction.h */, + D4E743BD5D9868B2B5008D089934B105 /* SDLOnDriverDistraction.m */, + BB36829AE73AF06B17E8AEA68D9D2473 /* SDLOnEncodedSyncPData.h */, + D2FECA407FF6E408DFFDA2B1B0C1992A /* SDLOnEncodedSyncPData.m */, + 812DC2376AB84B8D759BA7BDEBA1D186 /* SDLOnHashChange.h */, + 65F149F667D01754A1E0645711F6D6EA /* SDLOnHashChange.m */, + D3566C02B6DB84A4D90013751CD1071F /* SDLOnHMIStatus.h */, + 51B7A6EEE9B94D329C7266DE4D081999 /* SDLOnHMIStatus.m */, + E47779D3822D6421717CCECB009326EF /* SDLOnInteriorVehicleData.h */, + 680E830A922E9C7A8D1E5A3C3D4F580C /* SDLOnInteriorVehicleData.m */, + 8F73D712297E40F90B7E1A7D01DFEC67 /* SDLOnKeyboardInput.h */, + 5DFCB575AA035436B66797EA08EFAB0C /* SDLOnKeyboardInput.m */, + 3DD3A5AE962BF24F342B8F4DB73EC5BC /* SDLOnLanguageChange.h */, + CB073ABF5500F256EAF20D2D4DC6D70A /* SDLOnLanguageChange.m */, + 7E271C1F0006C8746C76DB4C28A25B6C /* SDLOnLockScreenStatus.h */, + 84539D3623D9A251B4E5FA6AE4EFB0EE /* SDLOnLockScreenStatus.m */, + BEEE2F7E9040BABB48B69701692886EF /* SDLOnPermissionsChange.h */, + 64ABE3A5D90ED6ECBAC18ABA973D85CA /* SDLOnPermissionsChange.m */, + 6AE9EC548FF21C32A33D465E73564DE4 /* SDLOnRCStatus.h */, + 6243FFA5A3FBB349C133E1FC613BD6AD /* SDLOnRCStatus.m */, + C98E0A40D9302E06972A9D641D33736F /* SDLOnSyncPData.h */, + 77B17840CA60F5A16BED44DFBD406D00 /* SDLOnSyncPData.m */, + B2A2921F1E5CA7555173077B04B2B228 /* SDLOnSystemCapabilityUpdated.h */, + BC2DDF4C8D4FF0BB610F87922F9DC8C1 /* SDLOnSystemCapabilityUpdated.m */, + 71CFF60AB38BB1284642C3A2EAE0D940 /* SDLOnSystemRequest.h */, + 503A41DB589BA9EC2CCA4AB7017329EF /* SDLOnSystemRequest.m */, + 7D4D2EA95117DB980E905FBBAFCE239E /* SDLOnTBTClientState.h */, + 6BB9CD0CFFBB9A34D5C1833A78E5C956 /* SDLOnTBTClientState.m */, + 5755CA4656E4B0C76ED9F9F63356B985 /* SDLOnTouchEvent.h */, + DE194516542EC704AADE0A2FC32B63FD /* SDLOnTouchEvent.m */, + 02D5E907F468C148CBD8FD6B7AB586DF /* SDLOnVehicleData.h */, + B0B485F2DBCDC2B0D33BE35382C71715 /* SDLOnVehicleData.m */, + B9544257AFAAD1DB9C4EF3E6481FC4A6 /* SDLOnWayPointChange.h */, + 3E485F28BB0A7E258C9F739157505BA7 /* SDLOnWayPointChange.m */, + E7ADE67ACC724F1B63A80B9A025AA67C /* SDLParameterPermissions.h */, + 7828CB789D2D3420C6618DE0D17264C3 /* SDLParameterPermissions.m */, + 9A8CEE67C635CC8AF33D4597EDEF323E /* SDLPCMAudioConverter.h */, + FF61F998914A5EB8F53759FEBD2416D2 /* SDLPCMAudioConverter.m */, + A288A63276C3C43A527ACA059A0ABBA3 /* SDLPerformAppServiceInteraction.h */, + 0A913DD8B429EFA97826EA9C49B3B92B /* SDLPerformAppServiceInteraction.m */, + 267FA2C1E15499A2CD4854991CC471EA /* SDLPerformAppServiceInteractionResponse.h */, + 15626200BCC288FAB8202F84EAD600A5 /* SDLPerformAppServiceInteractionResponse.m */, + 56B207D8614F79DE603BFA47589AFFD6 /* SDLPerformAudioPassThru.h */, + EBA1D7A2FE7B1D749E12E48562AF0E9B /* SDLPerformAudioPassThru.m */, + FBC39295240049B5FF46205827728BFE /* SDLPerformAudioPassThruResponse.h */, + 0E18B248ABDE8B1FCC6F0DBC564ED42D /* SDLPerformAudioPassThruResponse.m */, + 23C50F80EECB17D50B91A723C4564B5B /* SDLPerformInteraction.h */, + BC44973166E4FD5059074DCF268D17F8 /* SDLPerformInteraction.m */, + 885A0F6D020A6CA40C779378E47D90C5 /* SDLPerformInteractionResponse.h */, + 1DF843EEBBB30D7B7389D88A9A97026E /* SDLPerformInteractionResponse.m */, + 8A5780D6C351FCA2B9EBE2AD7E6BBFC5 /* SDLPermissionConstants.h */, + 2398A5BA455B24EEA12F22248F56CB41 /* SDLPermissionElement.h */, + 70BFC55E36D45F3E9FDDDA27271DB651 /* SDLPermissionElement.m */, + B4095FC3652FF81F7C17BD02355E6C58 /* SDLPermissionFilter.h */, + D46CF1A0CC78659C588255386F2C8286 /* SDLPermissionFilter.m */, + 7E7FB3AF5EB94225C574B017EDB897BA /* SDLPermissionItem.h */, + 694C894F8FA7F51AA620E23A7754B19E /* SDLPermissionItem.m */, + B10B875766B1C1B96DF356737056AB9A /* SDLPermissionManager.h */, + 3AEB0447F840FA8B85356311591B1E92 /* SDLPermissionManager.m */, + 63A7E80FD365C91A7303ABC5BE8B11F5 /* SDLPermissionStatus.h */, + A6EFA8634E116455C1E294504A1C5622 /* SDLPermissionStatus.m */, + F498D01DC4282CD4E4C51C6511F9D57F /* SDLPhoneCapability.h */, + 2B6F9761E83A66A7DFFB1E6866464197 /* SDLPhoneCapability.m */, + 8C2B7CEA902C141170ED3DB6E93DDE34 /* SDLPinchGesture.h */, + E9BE11B50B61C825DEC533B7D69EB1FC /* SDLPinchGesture.m */, + 6AA9EBE70B104558299E530D51210C27 /* SDLPowerModeQualificationStatus.h */, + 3B8D419D41D4EBE7F427F3F1A6E8C791 /* SDLPowerModeQualificationStatus.m */, + C22DA0D19740BC3671D0F671BB54CCEC /* SDLPowerModeStatus.h */, + FC45F95EB06DB46BEF630E65F773DD1C /* SDLPowerModeStatus.m */, + 5EB901BBD8CDB6EBCBAE64DA451A00CC /* SDLPredefinedLayout.h */, + 09462E66A2B03CC7B6CFB922D8AF3709 /* SDLPredefinedLayout.m */, + A7E6588DB6AB90B5A4E955365321B36B /* SDLPredefinedWindows.h */, + 180376AD38DA70C86CE6A85F04306440 /* SDLPreloadChoicesOperation.h */, + E0CE6739547F25EDD5501E95B62ABE3A /* SDLPreloadChoicesOperation.m */, + EA74E73DE00325097C89E066596A17F9 /* SDLPrerecordedSpeech.h */, + 2ED5B47BF52A07A02D9AF9F3873C2C5D /* SDLPrerecordedSpeech.m */, + D7BBACE033B0E506CA5830D0C9A67E30 /* SDLPresentChoiceSetOperation.h */, + A719199D3EBFE5A3C4619D3DC80ED70B /* SDLPresentChoiceSetOperation.m */, + 35872C6BFFC71956A1E4CA4786AF126F /* SDLPresentKeyboardOperation.h */, + 7785AC3BC85CD23B07AA11423440A028 /* SDLPresentKeyboardOperation.m */, + 79ABFF6CAF3C11C17386F29E3C4F6561 /* SDLPresetBankCapabilities.h */, + 7529E322A5D70F236ACC18A43FC1DC0A /* SDLPresetBankCapabilities.m */, + 0D3E8ACACCBAA2545A9291162519C02F /* SDLPrimaryAudioSource.h */, + DC461630F2C6E45F81C3CC6B7D8BDD9E /* SDLPrimaryAudioSource.m */, + EC6A18970938783F09F8FBF76216579B /* SDLPrioritizedObjectCollection.h */, + 198A0AA98C61E2A39539B9020C6185CB /* SDLPrioritizedObjectCollection.m */, + 8C2EDACE6ACD4C977F1501873B8C715C /* SDLPRNDL.h */, + 46ECC18D967806C249E479F3E3F6CB28 /* SDLPRNDL.m */, + 416EEFA8DF9920B950D45A438B6CEB3B /* SDLProtocol.h */, + BFF07975F02BE7BDA5311F3AD80E5CDA /* SDLProtocol.m */, + CCF9B35E59B89A18102BA35693887E8B /* SDLProtocolConstants.h */, + 9EAA73147795978ABCFD9E0261FFCAA6 /* SDLProtocolConstants.m */, + 6795D9E1B70C789604C444042F88585F /* SDLProtocolDelegate.h */, + 092B1D219F562512D83E15E5DA0F4859 /* SDLProtocolHeader.h */, + 594AC4B2DF9D7E1F894764C0639282A4 /* SDLProtocolHeader.m */, + B4BA26A3F50E769204A2072B622513BE /* SDLProtocolMessage.h */, + 7513AD379CB357399CB9BF73BEF6E74C /* SDLProtocolMessage.m */, + FBC6B21F650C1A094011B17D5E921EE8 /* SDLProtocolMessageAssembler.h */, + 5C1D9612F74CBE518438548A4CF314FF /* SDLProtocolMessageAssembler.m */, + B1489C28FDE9BC04F3A6D6E52C5CCE68 /* SDLProtocolMessageDisassembler.h */, + D8F4594E3083E428B64B683C182E3BB6 /* SDLProtocolMessageDisassembler.m */, + 41001F8A8E38A09CC2782EDFC033C7A4 /* SDLProtocolReceivedMessageRouter.h */, + 8C95A15F1ABB56F87595C248AF00C07F /* SDLProtocolReceivedMessageRouter.m */, + 34CAA3D2C0E052E3DBD4E08D86483AE3 /* SDLPublishAppService.h */, + 1A91F9EA62F0075F9ACCFF6B6F7FA96E /* SDLPublishAppService.m */, + 5CB2711FB405251BACF64A0A65EAE099 /* SDLPublishAppServiceResponse.h */, + 40A630A6C0CC2E6947903DC5BA0B4A42 /* SDLPublishAppServiceResponse.m */, + F62DC0A1FB87B2CE3F9928C0AC3BA403 /* SDLPutFile.h */, + 1E86A7FA49FEA6AEC0D760D8965C3F6E /* SDLPutFile.m */, + 4525C34999BF5F6C1D46FE4471300796 /* SDLPutFileResponse.h */, + 73B13638D5FFEDDA542EB00CD057988B /* SDLPutFileResponse.m */, + 234C8B719DEDD260BA78077064A1C78D /* SDLRadioBand.h */, + 43D14531D9A7ED9C7FBFA6F900E02E1D /* SDLRadioBand.m */, + 5489C9144952EA64BC69A2AFEA7D3E52 /* SDLRadioControlCapabilities.h */, + CBCB16E496EFD6B64945F52DA1861BB5 /* SDLRadioControlCapabilities.m */, + 894048EEB0466180965743DBF850170F /* SDLRadioControlData.h */, + 6974D1792F6599EC0D62B246B18D24E4 /* SDLRadioControlData.m */, + 1036AF4390ACFEC2CFCDA61FA0498E28 /* SDLRadioState.h */, + 12E2448D342B0C719508658356C62FD8 /* SDLRadioState.m */, + D86564978231DBB8DE6638F518A092E9 /* SDLRAWH264Packetizer.h */, + 70ED7008A3D1DC757EE6B277ACD920AE /* SDLRAWH264Packetizer.m */, + 1E31ADF790B6CD458B58780AEEA2DC29 /* SDLRDSData.h */, + 922F65EF53B7070CDB774AA85CCDF664 /* SDLRDSData.m */, + D976C60F80AF73BCF88057AFCC997BF2 /* SDLReadDID.h */, + 32F53530C42DC0CF82E40AB2BBA5E9CD /* SDLReadDID.m */, + 8AB71279385780F65642903C30E49879 /* SDLReadDIDResponse.h */, + 276CAF8F9D6F163C8789B58614C8F995 /* SDLReadDIDResponse.m */, + D693943ACF1FD2282F38E0EAA87D03BE /* SDLRectangle.h */, + 269BB207FFE8AA6F46208486DEE9BA3A /* SDLRectangle.m */, + DFDCE97BBEEFF7D0876C6518B71FF257 /* SDLRegisterAppInterface.h */, + B648DB91A3098DA7B1E0A5FEE3FE23A6 /* SDLRegisterAppInterface.m */, + C1E045F73DED94B7C08D794BBB769E4B /* SDLRegisterAppInterfaceResponse.h */, + 65DF9500E597CFDE3EF8716944FF3E34 /* SDLRegisterAppInterfaceResponse.m */, + 80E39D52CFCFBFC32F5CB5C74DE3AAA0 /* SDLReleaseInteriorVehicleDataModule.h */, + A7934C16A837F342002F2415BDE82793 /* SDLReleaseInteriorVehicleDataModule.m */, + B333958DAB7FA32DB021C89E59865776 /* SDLReleaseInteriorVehicleDataModuleResponse.h */, + 6BE4EE1D8BE9A2DCD428088444FCC1C8 /* SDLReleaseInteriorVehicleDataModuleResponse.m */, + 2498D14A443BEA451B1C1E3F10FCAE0A /* SDLRemoteControlCapabilities.h */, + 1A5795C050E031087B37E6F0B8B99FE3 /* SDLRemoteControlCapabilities.m */, + A775F59AD389385C91183BEAF59C659B /* SDLRequestType.h */, + 4120946CE7AB246EF162C99558A3845D /* SDLRequestType.m */, + 0B25BFBB7743CC1BB55BB0A462DC320E /* SDLResetGlobalProperties.h */, + 74686EC68A889701EFD2843CB7AED2F1 /* SDLResetGlobalProperties.m */, + 66BB2A05D1451A32684E59CFF3328352 /* SDLResetGlobalPropertiesResponse.h */, + 0AB4971438A6A699BC2C1C2BEDAA999E /* SDLResetGlobalPropertiesResponse.m */, + F02F9007512F1E4FA4D094A117532E40 /* SDLResponseDispatcher.h */, + 64305656CE2B59145E9B70508EF743BC /* SDLResponseDispatcher.m */, + B458E71A46CC3C10BFED1AE0A05A3530 /* SDLResult.h */, + 141A750A4B7658D57C0EA1C5677AC485 /* SDLResult.m */, + 22D8E6FEF71BF3A66088118AA02F0841 /* SDLRGBColor.h */, + 9218B97772D190A9BC1FBAC18A3BF6CE /* SDLRGBColor.m */, + 2B6D168B1F9F66F44F3FCEE9FB5B9F89 /* SDLRPCFunctionNames.h */, + 9760ECDFB3D886D97C84848DB99676AB /* SDLRPCFunctionNames.m */, + 44DE2E913C1FFDEB763626983CED98D4 /* SDLRPCMessage.h */, + 3F743A14A81CBDA132220AA28D5EB8D6 /* SDLRPCMessage.m */, + F8C42B1050E473F7203DF663AF91285E /* SDLRPCMessageType.h */, + 32F90AB5741CFF9D0E0907CE26FD7A62 /* SDLRPCMessageType.m */, + 797A684E702982C756DB5875D2568A32 /* SDLRPCNotification.h */, + 7CDFA658ED93C052C47B55E697EA5794 /* SDLRPCNotification.m */, + FEE104BE89E6E1AFC8970A8566B31A02 /* SDLRPCNotificationNotification.h */, + 47B19A0B5A3387852751CFDCB453B116 /* SDLRPCNotificationNotification.m */, + 593ED256D9FF77FF4B35CE6871FAE25D /* SDLRPCParameterNames.h */, + 2789675DE6523B265B03FC1FF6E6C922 /* SDLRPCParameterNames.m */, + E074E1828DBE20E4E333AF7D5CB7597C /* SDLRPCPayload.h */, + DB2DBF7A190C1B28F89A4CAA411A5074 /* SDLRPCPayload.m */, + 09691EAC4A4C3B8C10A61F569A68E123 /* SDLRPCPermissionStatus.h */, + D23AB515C337D48F2DCD15C942D9FF3D /* SDLRPCPermissionStatus.m */, + 2927EDEFBAA36BACD83602F7DA5F877E /* SDLRPCRequest.h */, + DEB970D4B1463F7A5435F594C50FE27F /* SDLRPCRequest.m */, + C4DE74679FEA4D70BF5121E2F06EE9C6 /* SDLRPCRequestNotification.h */, + 1179CCA11545B1607C32D9B258323DC9 /* SDLRPCRequestNotification.m */, + 12FA04857AC1900EEA2522D1D3101207 /* SDLRPCResponse.h */, + FA34FAF6769FF6E67146C25E3918D1BE /* SDLRPCResponse.m */, + 73CA9166AE10B30401A01C7A47B3029E /* SDLRPCResponseNotification.h */, + AE8A6C8CDEC1BDBFE21E0C20040FB131 /* SDLRPCResponseNotification.m */, + D59096499EC97E026ECAE9E71C7E6DE4 /* SDLRPCStruct.h */, + CC30ACD3F6015F21547F9A433E6385B3 /* SDLRPCStruct.m */, + B2285BB6C866BBF444CF2BA47538A3F9 /* SDLRTPH264Packetizer.h */, + D70AC7BCD19517CAE727871B85813F39 /* SDLRTPH264Packetizer.m */, + 6B9BAA4D99166BCE4C535F65CE463058 /* SDLSamplingRate.h */, + 547FC85E47390A2ECB343B5888FA5AD9 /* SDLSamplingRate.m */, + F9AB9291462E3AB06586D1F3A200B6F3 /* SDLScreenManager.h */, + 6E27B8D2C7EF19BFB8D2813DE94C44F5 /* SDLScreenManager.m */, + 13180087A895C1F6E63F9F01F333ECF1 /* SDLScreenParams.h */, + 66F45795ED9AEACF2E1E1767FF421BFF /* SDLScreenParams.m */, + 2778C8EDF4959730B4DEF535ABC16675 /* SDLScrollableMessage.h */, + 3AC7F7B3D6371B00DBFF85FFF2F4E873 /* SDLScrollableMessage.m */, + 35A95205B4A7E275F1EC800DF558C0EA /* SDLScrollableMessageResponse.h */, + 40A71807A649A656E2DA4942B6C7F861 /* SDLScrollableMessageResponse.m */, + 9AEEE89A8645A94795F0CCCBD4A67D43 /* SDLSeatControlCapabilities.h */, + 4C1E994C0CAD055C104B0306EC25F432 /* SDLSeatControlCapabilities.m */, + 55370BA933CFB6684AC8D5FD1954BD37 /* SDLSeatControlData.h */, + 74933F6EA38779F0E6B6A5E647BFAF3A /* SDLSeatControlData.m */, + AC107A81E5890B57D66A4B85F2F5D37A /* SDLSeatLocation.h */, + 679D66BB05750D3932558F28A7CAD469 /* SDLSeatLocation.m */, + 41D1F2E020D4C94A54B41209DF6979D4 /* SDLSeatLocationCapability.h */, + CBF1AE79CC723B76B9681FA0C5983591 /* SDLSeatLocationCapability.m */, + 1845BF083AE4ED65CD2A0C2493883D93 /* SDLSeatMemoryAction.h */, + C7F54D6509DB0FC7F6534EE13492D451 /* SDLSeatMemoryAction.m */, + C5EFD2B1C3124A2AEC3850F1E0F152B5 /* SDLSeatMemoryActionType.h */, + E56DF2253BB23B90018E5D9A59964BA2 /* SDLSeatMemoryActionType.m */, + 81DC4C775620B12380A4F90F2DAEB081 /* SDLSecondaryTransportManager.h */, + F3EBD6B66041D66C2196112E820E644E /* SDLSecondaryTransportManager.m */, + 1BB6954C66C6C182131AA4914D6690E9 /* SDLSecurityType.h */, + 22F7A01AE367466B8917F5FEBC8F9D1D /* SDLSendHapticData.h */, + AC69D3F94604F5AE723986975A84A9B9 /* SDLSendHapticData.m */, + 8EF82F8948A2C13108DB3E6BC79A6DA9 /* SDLSendHapticDataResponse.h */, + F99146EE0F08A756FF12683196D348C9 /* SDLSendHapticDataResponse.m */, + 400D3E396C926D58653D9550ED9D959D /* SDLSendLocation.h */, + D9FE9E92F26E2D6ED7FF95DF199E8CE4 /* SDLSendLocation.m */, + 6316B004E69CA34EAA8ADB8A39D0E24C /* SDLSendLocationResponse.h */, + 65419DF568C66F604EF0738C1965D385 /* SDLSendLocationResponse.m */, + 8DD86F842662CDA74C3E46854A424F2C /* SDLSequentialRPCRequestOperation.h */, + B1961973F2A5564B8E0FF5586067C528 /* SDLSequentialRPCRequestOperation.m */, + 7E8EAF599769D42519D9B2A60644B86B /* SDLServiceEncryptionDelegate.h */, + 9E5DFA275C99DF550A09B4DC823C5CB4 /* SDLServiceUpdateReason.h */, + C23EE35725C46B65EF548339396EBAE4 /* SDLServiceUpdateReason.m */, + EA623EBC3192894DD618538B8DE469FD /* SDLSetAppIcon.h */, + 9B8D629931815D5CAF7718BE57D7E744 /* SDLSetAppIcon.m */, + 8C4526E09C6759AD25F54590F9002AE8 /* SDLSetAppIconResponse.h */, + 9BE0BD4D689088D8A8B5DBD772D84AD5 /* SDLSetAppIconResponse.m */, + FF58817A16825E97C73749864272841A /* SDLSetCloudAppProperties.h */, + 4C56E0DAFD813A6679773DEA90F319CD /* SDLSetCloudAppProperties.m */, + EB55A0D888F6AE9CCC809D50497AD040 /* SDLSetCloudAppPropertiesResponse.h */, + 89FF276588037654834B38572ADBF860 /* SDLSetCloudAppPropertiesResponse.m */, + 3B79F919E881908F7E25787F89119DDB /* SDLSetDisplayLayout.h */, + 2BE98A3AA92E8E3B7CED340B5CCAE389 /* SDLSetDisplayLayout.m */, + 491D8037228A91B41497B86D86B203FA /* SDLSetDisplayLayoutResponse.h */, + 2FBAF5D2A296ECEE5B1BF22DD9C49B9D /* SDLSetDisplayLayoutResponse.m */, + 894257BCE702D293AB8A34D2CFB19171 /* SDLSetGlobalProperties.h */, + 1FD900A135D822B0C46DB3FC2398B8BC /* SDLSetGlobalProperties.m */, + 19E0135257858BD7168C64D56B8D7A75 /* SDLSetGlobalPropertiesResponse.h */, + 17B209E28D1DF58F13E9ED57702FBE24 /* SDLSetGlobalPropertiesResponse.m */, + 628B5DC307A9450A056D106EF2EABD94 /* SDLSetInteriorVehicleData.h */, + 0F5D4445E6E09F666DD97ABCAF27C4B1 /* SDLSetInteriorVehicleData.m */, + C6706EFEDF66F1A0AD318CAF53CE694E /* SDLSetInteriorVehicleDataResponse.h */, + 21299607CA16E90A5C0710F2E2785242 /* SDLSetInteriorVehicleDataResponse.m */, + D139C1A1E0119ED0A73E0642B12675BD /* SDLSetMediaClockTimer.h */, + BB22292F07E70E3D6FCDE83B18E1B929 /* SDLSetMediaClockTimer.m */, + 058F4086A8EDDCFE4AED952B5F2F9052 /* SDLSetMediaClockTimerResponse.h */, + C44CB14CFDBEDB6BE91BBEE9F2AEBFF5 /* SDLSetMediaClockTimerResponse.m */, + 23383B37C6DBACB1FDCDF86CE54C386A /* SDLShow.h */, + 256D8960A3671CB91AB11F36D27BFE73 /* SDLShow.m */, + 8853DFABCBBEFF6CC328439BFF8817C3 /* SDLShowAppMenu.h */, + 09E7464F993D6552704E1EAFCF1DF78D /* SDLShowAppMenu.m */, + CC0536F1740B2347A3FDD9BE3712BAC9 /* SDLShowAppMenuResponse.h */, + 2B6A3BB418DC18D464B34AC1BAFE6451 /* SDLShowAppMenuResponse.m */, + B36217DF1D67CB1D77EF190BB99F29EE /* SDLShowConstantTBT.h */, + 4A10D8B7901189488B952CD3118CD658 /* SDLShowConstantTBT.m */, + F618C99CCA734DA992DC8FF3AF0415BC /* SDLShowConstantTBTResponse.h */, + BBA4A2A569A352F32B460D479A488FD1 /* SDLShowConstantTBTResponse.m */, + 86689BFD78F7052E93F28B5BBE6A09E6 /* SDLShowResponse.h */, + 3968E1FF70DAB6F1C5CCCDB5E938D6AB /* SDLShowResponse.m */, + 67857A032BAADE3614D213222C35BF8C /* SDLSingleTireStatus.h */, + DFEC3B4824AB98BD46E19AA4744BB016 /* SDLSingleTireStatus.m */, + AB19EDDD4140C1BE93B38F0AAAD31A3D /* SDLSISData.h */, + 738A838988DDC4A7320C42B53C6763F9 /* SDLSISData.m */, + F97131D44A7A2ED6C07482A31E5F6104 /* SDLSlider.h */, + CA15ECE757FC373C85DCC38EC5858576 /* SDLSlider.m */, + 6A6FFDC23241F75DEE1A10FDC70F86EF /* SDLSliderResponse.h */, + 62C0442C9E0D051B0310BB29437BC90B /* SDLSliderResponse.m */, + 0AD7C4BC8864B7BD4E88BB4E14571991 /* SDLSoftButton.h */, + 5103BF7ABB8FE6480004A5CA73CFE14C /* SDLSoftButton.m */, + 2B6FD0DA2716669347AF1A445E85BE70 /* SDLSoftButtonCapabilities.h */, + 8E39C12C56DA2895956477F555CACEAC /* SDLSoftButtonCapabilities.m */, + B773DF4090413C4A96873F27804F6FE8 /* SDLSoftButtonManager.h */, + 76B79D31FD4EBE8EA253F726A2DFA50B /* SDLSoftButtonManager.m */, + 9DCA91383086A7E683C2F22BCF6D2362 /* SDLSoftButtonObject.h */, + BCDAA6BCF5B1B476FC7FBE2731FD3B66 /* SDLSoftButtonObject.m */, + 53B9D390255C9D726244342D1F11DB4E /* SDLSoftButtonReplaceOperation.h */, + 0BF5D3B07CABB0353EF64221323FB214 /* SDLSoftButtonReplaceOperation.m */, + 1FD2A7EAD3CEDFD045490467DAD18F18 /* SDLSoftButtonState.h */, + 91385E176713F556761B0AF1EB7AA94C /* SDLSoftButtonState.m */, + 4B944A8411396B636FBDC617B69BA653 /* SDLSoftButtonTransitionOperation.h */, + 84E5BF87FD6C342013333DB77ACA1E7C /* SDLSoftButtonTransitionOperation.m */, + 98E0B47ADD51DA93F0FC18C094035A10 /* SDLSoftButtonType.h */, + 248505262AF0D2F58A9D246BB6C6BD84 /* SDLSoftButtonType.m */, + 7F67F561A7D9BA5C6B5EFD140526D3F7 /* SDLSpeak.h */, + 9793856BCD714E4673B7C4D1120726F5 /* SDLSpeak.m */, + 0338D36D87FF27EDD72CE81C13BCC65F /* SDLSpeakResponse.h */, + 9718170DC522C4211FF7BFB86F042E6E /* SDLSpeakResponse.m */, + BEF6EAE77CAC2466EB562CFF77920BCC /* SDLSpeechCapabilities.h */, + 29E4B47051A2CBE2B10DFE80E3D19287 /* SDLSpeechCapabilities.m */, + 5784EB866AAB23C634D0887413828115 /* SDLStartTime.h */, + 8F43B62FD5522EFA8F5EDEBE12238EC7 /* SDLStartTime.m */, + 075F751ECFEC7836B3AC765DA2730721 /* SDLStateMachine.h */, + 3A7C79923DB7BE60A8C3C81172411692 /* SDLStateMachine.m */, + A7AFAFFD39AE907E63F13217D5067A14 /* SDLStaticIconName.h */, + 7497259EDCC6CAC9BEF6D2D1E503EF68 /* SDLStaticIconName.m */, + 7FB0ECE1385A23AFF87B1D6E9848D84E /* SDLStationIDNumber.h */, + C0CE5DCD736E603F98EFA824D23FDADB /* SDLStationIDNumber.m */, + CED1E6D7D0EA2E9D6C83332611768557 /* SDLStreamingAudioLifecycleManager.h */, + 41304645E4705DE8828DD0B01D402863 /* SDLStreamingAudioLifecycleManager.m */, + 04BC802E860BD6A7F3005C68FFE4ADE0 /* SDLStreamingAudioManagerType.h */, + 7EFFAA583749B44A2BF65582EA151370 /* SDLStreamingMediaConfiguration.h */, + A0F610055C67181D6FFE3E0D8652FBC7 /* SDLStreamingMediaConfiguration.m */, + 6B2D91153D914C941AEEFE99436B0BBC /* SDLStreamingMediaManager.h */, + 67F2B147BCDCFCAA281D2A08BC379214 /* SDLStreamingMediaManager.m */, + 4F447D50B76CF152BE05CADE1A36C2EF /* SDLStreamingMediaManagerConstants.h */, + 9685342C1846C658E601FB8B352C69B5 /* SDLStreamingMediaManagerConstants.m */, + E6D5D0212AEA8F2CF6AEA8DAD32868E0 /* SDLStreamingMediaManagerDataSource.h */, + 2F7A53F84A8696465E51EAF70199ABE9 /* SDLStreamingProtocolDelegate.h */, + 23459A7914F07050043EE0F27ED4F5AC /* SDLStreamingVideoLifecycleManager.h */, + E7D643B6479CA671FCC68F8D9B079FE1 /* SDLStreamingVideoLifecycleManager.m */, + EFC4194E558FB1558B3CB47C41F68BE1 /* SDLStreamingVideoScaleManager.h */, + D0581F57A3E133B297BFA59428ED20F9 /* SDLStreamingVideoScaleManager.m */, + 9B5139FCDAC1C84B8E10AB5D0D7E1E0E /* SDLSubscribeButton.h */, + A41C2D42956A2BC9ED6622038B85ED8F /* SDLSubscribeButton.m */, + 1F619DCBA443D3BF50D0B314A294B809 /* SDLSubscribeButtonManager.h */, + 953643AF1E768FAB16D37AF6E1107ACC /* SDLSubscribeButtonManager.m */, + DBDB552AB8B94525743E433DEDF82011 /* SDLSubscribeButtonObserver.h */, + 2CDEED18FD1039629786CEEA57699019 /* SDLSubscribeButtonObserver.m */, + 7CEAFEC8445F27E380E37DA46CE0FEE6 /* SDLSubscribeButtonResponse.h */, + F8013668A1A4E9A3111D5B2E843FBA13 /* SDLSubscribeButtonResponse.m */, + E15094CEC1019E3193DC001F59191F6B /* SDLSubscribeVehicleData.h */, + 32C42D7A37E6811A0891E4271E3B53A5 /* SDLSubscribeVehicleData.m */, + A10396D9F0A4682A819D005885FDA4D6 /* SDLSubscribeVehicleDataResponse.h */, + C641082806A93BA26912DBABD29845FC /* SDLSubscribeVehicleDataResponse.m */, + 63E7D4AB6E3E4F7AC84C60288E5D41D9 /* SDLSubscribeWayPoints.h */, + 6C058FD535A44116F3B9EC5AAC90DB06 /* SDLSubscribeWayPoints.m */, + AC01AEE997639AA2260C7CB7AF71C4C3 /* SDLSubscribeWayPointsResponse.h */, + 3ED9AAC40D94011EA3DFB96F5394A88A /* SDLSubscribeWayPointsResponse.m */, + 8DCE4D9A1ECFC1B74D7B4C95CBDC5A0A /* SDLSupportedSeat.h */, + 8B2BB6B7C29FB74F9FC111836E3FDC00 /* SDLSupportedSeat.m */, + 6C720BC1768C931937E27B5512056F9D /* SDLSyncMsgVersion.h */, + 8A60138A12628B558D512D97D89EE5B2 /* SDLSyncMsgVersion.m */, + 3116BCED42B3229298A5A04AFEACEB97 /* SDLSyncPData.h */, + 90BA4BFF5CAD58299D1A0CBC8CFA45FD /* SDLSyncPData.m */, + 1CCDAAE659DCA593607D4BF6558C25CE /* SDLSyncPDataResponse.h */, + 20AA06A772B16D6AFF72CC6CA4ECBE20 /* SDLSyncPDataResponse.m */, + 00FF637FC89DC702B5A3B6AA9D2D2039 /* SDLSystemAction.h */, + 6327F4CF9F830BB34651793AA66D1377 /* SDLSystemAction.m */, + 8B3F91D4B24F4C2C59889390112438B1 /* SDLSystemCapability.h */, + 8E42A8B49F8AA2A40213699E2A1C40BF /* SDLSystemCapability.m */, + 565B3BF287FB32FC25688D47A589EACC /* SDLSystemCapabilityManager.h */, + 1C320F686525DE123071E06FE38A4733 /* SDLSystemCapabilityManager.m */, + CCFBCFEAE99E82FA228AFBDFA25BFE2A /* SDLSystemCapabilityObserver.h */, + B7A9DB758AF9D71ED356105B12453644 /* SDLSystemCapabilityObserver.m */, + A256F032355513227EF3F0E7BC0D121D /* SDLSystemCapabilityType.h */, + E98EB0FB9B881074126B6496AE6EE4A6 /* SDLSystemCapabilityType.m */, + 74B94C300012972D84ADFCB8F8E1CF22 /* SDLSystemContext.h */, + 4DDB64CACEBCF991EC3567F7211CF4D7 /* SDLSystemContext.m */, + 6802538CA9682265946D00C4029FA1AF /* SDLSystemRequest.h */, + 0692FFE8FAC6940F376FCEF685DDC7B1 /* SDLSystemRequest.m */, + 1A030F2B6E37938FF8043D0017F09F80 /* SDLSystemRequestResponse.h */, + FC38C9FCF3E7343DF43B8368DC546B42 /* SDLSystemRequestResponse.m */, + 1ADC53976D99CE2F85B0E80D35F54E94 /* SDLTBTState.h */, + 3BEA52EFF09F88D06D5BBDFE47ACB86A /* SDLTBTState.m */, + F47E1861039AE8C9169792FC3ADCA6F4 /* SDLTCPTransport.h */, + 0C75420A65D82C21EDD26CEFF38A1BBA /* SDLTCPTransport.m */, + 481E981C3D01379187FF066BD3C0DABA /* SDLTemperature.h */, + CDCD325FB9D69CF0D80F1C46381EEED5 /* SDLTemperature.m */, + 17B584482168B64D8A9B1D66FD274FB7 /* SDLTemperatureUnit.h */, + 7D3DC9F22E4F546F8A133454410C7091 /* SDLTemperatureUnit.m */, + E8AF7FA3A3B233DDB4F14996698E8FE0 /* SDLTemplateColorScheme.h */, + 802EC4A98FA4600B644BF8C09D41BA44 /* SDLTemplateColorScheme.m */, + DCFD55E0C6865C089002A13599E34D97 /* SDLTemplateConfiguration.h */, + A44C3037DEC000D177A8E94BECA4B95C /* SDLTemplateConfiguration.m */, + 09E0B697D5D3515000987CB02ED7EF2A /* SDLTextAlignment.h */, + CBCE52F73B99C2EB241CED559CC155FA /* SDLTextAlignment.m */, + 42438A9D2F6D3292FF657E90823128D4 /* SDLTextAndGraphicManager.h */, + 3D2A524F1F2044F31A8BCD218FCCA1A9 /* SDLTextAndGraphicManager.m */, + BE263957CF097F8038614F284D6503B2 /* SDLTextField.h */, + DC368A37A25AD64AC69F460E5EB32339 /* SDLTextField.m */, + 030B9EFF025F2C40E4F44F1065406AC8 /* SDLTextField+ScreenManagerExtensions.h */, + 9D385296CCF12F9A0B41C02B3DE307DF /* SDLTextField+ScreenManagerExtensions.m */, + 0EE8C22DA5EFA161CCD704956C17C56D /* SDLTextFieldName.h */, + 925B5C5D259A10BE034E8C3403363C5E /* SDLTextFieldName.m */, + 01FC030EB54C7FC64CE1140E0CF51EC2 /* SDLTimer.h */, + A77701E6DFFC3EB08EEC973A1F7D7190 /* SDLTimer.m */, + 931FA41FFCE73EAD4491E531A2BF3CE5 /* SDLTimerMode.h */, + 0B6E8C1AF472B205BEEAA5ACDA1339A3 /* SDLTimerMode.m */, + EB0698F6977CDCFDF81D79A0FDBCD2C9 /* SDLTireStatus.h */, + BDC78482302FF8AC794EE8765A179282 /* SDLTireStatus.m */, + B431E7802E17E1F281E75FF94AC70BB4 /* SDLTouch.h */, + FCEAF8E21008989F4E1DE6BF04801187 /* SDLTouch.m */, + B692A71C44F049B8B83DDCF6B8927340 /* SDLTouchCoord.h */, + F45E77EB88561822BCBB70591945A179 /* SDLTouchCoord.m */, + E5BD5854C96BA4FE20BD941CF41A25F7 /* SDLTouchEvent.h */, + 3E046E87DA6D8162BC3CF15D53AF5F0C /* SDLTouchEvent.m */, + 013F0FD57EDF8FF55737B083957CAE10 /* SDLTouchEventCapabilities.h */, + 7EF11EC23640091B05621565D114E9F4 /* SDLTouchEventCapabilities.m */, + 8558881F294FC3B3B55C638CC2708B36 /* SDLTouchManager.h */, + D4B5DE50493E322D022ECD4BE5E38481 /* SDLTouchManager.m */, + 264B352A2E79FBBE53D7A84B3F98003A /* SDLTouchManagerDelegate.h */, + 3364DED576C91F4B3E9543F8E3F1D22A /* SDLTouchType.h */, + F15B9DBA698067E52DAF11F273D8C305 /* SDLTouchType.m */, + 194A205E3D3AB6329814281A5F801855 /* SDLTPMS.h */, + 9B3CAB29D2B4B5E6B23F89F7C09B52EF /* SDLTPMS.m */, + 813A808D60B18F9235194773796098F2 /* SDLTransportDelegate.h */, + 2559C479FF5977A46C191A0DF82F5A42 /* SDLTransportType.h */, + 717B86B7C8D401095BF86C8890BEFADE /* SDLTriggerSource.h */, + CBEE832F83BA93DFD8764142F6CBA3D6 /* SDLTriggerSource.m */, + A53632E3212C0B4683F082091768234F /* SDLTTSChunk.h */, + A26B3309312952B2AED6A7ADA67DB6D9 /* SDLTTSChunk.m */, + CB8CEF2E6739A98ACE9DB96F08CB2ED3 /* SDLTurn.h */, + C7416C95E6F086E3A8112582FBA43F5B /* SDLTurn.m */, + 590C1C4982D954259C18E6BAF8EA15A0 /* SDLTurnSignal.h */, + 375F2398BB370B3CEDB269657E50A87D /* SDLTurnSignal.m */, + 93B08DECC2D7CA909B9CDA3141DB7B0E /* SDLUnpublishAppService.h */, + F7BD7935852D12459264EA6168F97B4D /* SDLUnpublishAppService.m */, + 755EC40C9CDFD1F64E17F5F7B58C3FFB /* SDLUnpublishAppServiceResponse.h */, + A9E0567B3A13DFD90B87980D7B9C2A35 /* SDLUnpublishAppServiceResponse.m */, + 5F13B63A4EAD46B06716304725A8B45C /* SDLUnregisterAppInterface.h */, + 75C363A47DCF966B0F26AC9DF8623EFE /* SDLUnregisterAppInterface.m */, + 95FEDB3A040A9AF27C4F297BB1D4B137 /* SDLUnregisterAppInterfaceResponse.h */, + AB95F07898AACB764288FB68551926A7 /* SDLUnregisterAppInterfaceResponse.m */, + 13F5B04D46A1927416EB7B00EC10D588 /* SDLUnsubscribeButton.h */, + A5C983C7E972FDF63900044F87CBB3DC /* SDLUnsubscribeButton.m */, + E8F6D5DF57737B1814A0C47D2D638B89 /* SDLUnsubscribeButtonResponse.h */, + 24EC57E64CE1C46DC722D87EDCCBE81F /* SDLUnsubscribeButtonResponse.m */, + 9AB0ECB1844711AAB00BE85D75CDB9B8 /* SDLUnsubscribeVehicleData.h */, + D84CA7BBE7B7548D37D20852C77A974C /* SDLUnsubscribeVehicleData.m */, + E5B5D96B206B481EDA794734FDF0120F /* SDLUnsubscribeVehicleDataResponse.h */, + A3B1CF955FF3C570C55831E8B43B2068 /* SDLUnsubscribeVehicleDataResponse.m */, + E544DB7D1612FA15EF84618495E675FA /* SDLUnsubscribeWayPoints.h */, + CA1172141E4430CBCB9C7B46FA2362F4 /* SDLUnsubscribeWayPoints.m */, + 4722008FD5C647B6F89537D21F158386 /* SDLUnsubscribeWayPointsResponse.h */, + D64070C063A2A910A459CAE2E7A4679D /* SDLUnsubscribeWayPointsResponse.m */, + 0719C780E196AC9980E531CF8FBD8088 /* SDLUpdateMode.h */, + 5BC04274374151301839F46AAE270B2C /* SDLUpdateMode.m */, + 85FF8FC6AE8E88BF0CA87D995EEEE5E7 /* SDLUpdateTurnList.h */, + 78CCB2B40906D5C1D9AC673498D3D31D /* SDLUpdateTurnList.m */, + 7252AE8CFD85B98CF08E197488052DC1 /* SDLUpdateTurnListResponse.h */, + CA4E2E2D6448CAAB671EE663AF8C9038 /* SDLUpdateTurnListResponse.m */, + 2483492441C4BEB1F8A9B82BAC067681 /* SDLUploadFileOperation.h */, + 32614CFD26D45B1414C5745CF0EFC3EC /* SDLUploadFileOperation.m */, + 25A19CDDD7442D5D9F541CD6664CED80 /* SDLV1ProtocolHeader.h */, + 697EB906700E028BBEB4A35248DC2B56 /* SDLV1ProtocolHeader.m */, + 1B07D32813B19DEED174BB740E4AE97A /* SDLV1ProtocolMessage.h */, + 8078F5D8FD2E5AA8F5B8AD58492E41F8 /* SDLV1ProtocolMessage.m */, + 972B7E177642FF7F73935ABD0DF3B924 /* SDLV2ProtocolHeader.h */, + C594D7D022ADDBB1CCA1C39D63737DD4 /* SDLV2ProtocolHeader.m */, + C4F791D12BE19DF77A3BCC8EEB641295 /* SDLV2ProtocolMessage.h */, + 07B6C54F0471CF191AA538E250A10A1C /* SDLV2ProtocolMessage.m */, + 5E2B0AAB2CCBFBD6FAC8F2B04D2A0C31 /* SDLVehicleDataActiveStatus.h */, + 5BDE7214FFD1799A060E153912422D29 /* SDLVehicleDataActiveStatus.m */, + 17117CBD93690A080777FF3CCAB14EBF /* SDLVehicleDataEventStatus.h */, + 9F20535D9DEA52BADB1B4063B4EAA92E /* SDLVehicleDataEventStatus.m */, + B006F22A5BF2027E0B3A10A8332C0AB1 /* SDLVehicleDataNotificationStatus.h */, + CEC2979DED81E3F2C7CE44D570F2C83C /* SDLVehicleDataNotificationStatus.m */, + A6077950B867FA52904D60977A57F2BD /* SDLVehicleDataResult.h */, + 53C9FB09310F3715EB6A1F8329DEA635 /* SDLVehicleDataResult.m */, + C57EE820C482DB351A5D22661395FD35 /* SDLVehicleDataResultCode.h */, + 20B9DF79B0ED0674C8ED798A7D73B3F2 /* SDLVehicleDataResultCode.m */, + 406D36F0D5A4360A34D547F29DAEC507 /* SDLVehicleDataStatus.h */, + FAE209F3C74B1C886D2FEBB75394F38F /* SDLVehicleDataStatus.m */, + 337B14C8810BEC7C71631851E3F7C134 /* SDLVehicleDataType.h */, + 171E13E59404914970C3C1146AACEF54 /* SDLVehicleDataType.m */, + C65504710D6D14CB30F9BA892B1A289C /* SDLVehicleType.h */, + 8E6C4ADE7103309719A9A2A77D95DFA0 /* SDLVehicleType.m */, + 5A6B3017F1431C58D97751955A16C720 /* SDLVentilationMode.h */, + 810E44A8EB4510C42EDE2EDC43A78459 /* SDLVentilationMode.m */, + 3ED13A45BA2BAA69E7C1CE75280162A1 /* SDLVersion.h */, + EF6117AA0363308CE09FE3E3A578564A /* SDLVersion.m */, + 0A3EDAEBB63DC81EB0D8197E941D92BA /* SDLVideoEncoderDelegate.h */, + C4FFC5C7A65B24AFC32457EF2DE79160 /* SDLVideoStreamingCapability.h */, + E8F549F3D9954F40A97B6921D59DBDCC /* SDLVideoStreamingCapability.m */, + AC550FFCFB8CA9B1B0C09C0E26595391 /* SDLVideoStreamingCodec.h */, + EB17B3E359DDDCA44BC834ABB8C6C3B8 /* SDLVideoStreamingCodec.m */, + E11A499A146EB80F4A50C4AE2C91E1B7 /* SDLVideoStreamingFormat.h */, + C9F308B39068D7126A74593F5FF3DEB4 /* SDLVideoStreamingFormat.m */, + C9CA43544C48DA82A71EA58A4D291F62 /* SDLVideoStreamingProtocol.h */, + ACD66EC9F2852429481A7BADD06F50A5 /* SDLVideoStreamingProtocol.m */, + 2B7041C400969E9738627D46ED2889FF /* SDLVideoStreamingState.h */, + 648FA1637D806CACB0CC9A6C444D1B77 /* SDLVideoStreamingState.m */, + E6D1FBD011D035D23562FC050633E575 /* SDLViewControllerPresentable.h */, + 760CA141DE64208FD9CF023B7FBA7EF4 /* SDLVoiceCommand.h */, + C2AA680B3D37F013ECB5B16618A27EFA /* SDLVoiceCommand.m */, + 42661551A62CE606353EE0A3A1811CC7 /* SDLVoiceCommandManager.h */, + 6ECC06D0A68E4B2D1C7C59006097D069 /* SDLVoiceCommandManager.m */, + 7B8342EC5F8546285C0DB1E40C10C12E /* SDLVrCapabilities.h */, + A1F84D97CDAFDB9F9F700BCF60FCA9B9 /* SDLVrCapabilities.m */, + F0B8848BE9A446F837F0690DDED95563 /* SDLVrHelpItem.h */, + 2F79001BEC04EAE768A2897A4D2F4684 /* SDLVrHelpItem.m */, + 6576A40CB2829D4CDEE4A81F7E0E7603 /* SDLWarningLightStatus.h */, + 2DCA0A5DCD6DD350EA1CF99B9837B512 /* SDLWarningLightStatus.m */, + 28EB6163FCBF6FF4A874232363F1F693 /* SDLWayPointType.h */, + F347411CD5DA8210885B978CC14AB768 /* SDLWayPointType.m */, + DB8BAEF5BA6F28C6E8D303A40D4F9752 /* SDLWeatherAlert.h */, + FAFC34A107469B13834960D07A94FC42 /* SDLWeatherAlert.m */, + 6CD719AC3C9050D19676E1840EB584D8 /* SDLWeatherData.h */, + FC37CDD446A3599BE497DE78F8931C4F /* SDLWeatherData.m */, + 7D8C0BA72794AC638DB9DF5A48C945D0 /* SDLWeatherServiceData.h */, + 803C2E9668B7B07DB2FF5F2B5A39CDC7 /* SDLWeatherServiceData.m */, + 2338435A2FBDDD2CFAB4A28B846695F0 /* SDLWeatherServiceManifest.h */, + 95B6BE3E72235AC592C06AF8A4F665F9 /* SDLWeatherServiceManifest.m */, + 17FE8D4DAAE70A4CF5E436290E17D17D /* SDLWindowCapability.h */, + E8EAD2E9892034B9E96D9C73757CC2DE /* SDLWindowCapability.m */, + 8B5DB4842C8200AA008032CB8399D93B /* SDLWindowCapability+ScreenManagerExtensions.h */, + 19123175F1282074060FF723AA346973 /* SDLWindowCapability+ScreenManagerExtensions.m */, + B3F2F3DE7B7885DE54384816E98EC71B /* SDLWindowType.h */, + FC49D6A818044BC964C9DFC092C0A8DF /* SDLWindowType.m */, + A70CB0DAFC9A084992447D811A756878 /* SDLWindowTypeCapabilities.h */, + AFE83FD04F32E338D78150E93D001309 /* SDLWindowTypeCapabilities.m */, + BAD2C195FC0F61B8AE3C568DAACD11A4 /* SDLWiperStatus.h */, + 971F3693D99D4DF5AB6B162D6026730A /* SDLWiperStatus.m */, + 87267A348F7A4B4D11EE9347E8677479 /* SmartDeviceLink.h */, + D10B31A393DEE18CB04EA2485ABD892B /* TestSubscribeButtonObserver.h */, + 6748E54A60D5360EEF0582C7FD7CCF5D /* TestSubscribeButtonObserver.m */, + A695A5AFF7C3F88FDBB540D2E02EABA8 /* Resources */, + ); + name = Default; + sourceTree = ""; + }; 86162AD35B5078217BAB16DE8DDBCA8F /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -3488,28 +3460,29 @@ name = "Targets Support Files"; sourceTree = ""; }; - 89B38A6C0A3CAF4A24CF6CDBC710402E /* Swift */ = { + A695A5AFF7C3F88FDBB540D2E02EABA8 /* Resources */ = { isa = PBXGroup; children = ( - 0381C7F8F19AB2E83F3F40CB77F00DCB /* SDLLog.swift */, + 2F51D8373F62E91462F357675AA277C6 /* SDLAssets.xcassets */, + F82D999CC1B451EA5E5D2B62490AA064 /* SDLLockScreen.storyboard */, ); - name = Swift; + name = Resources; sourceTree = ""; }; - BDDB36FAFEC8E06EA81E7B69A93982ED /* BiSON */ = { + BA3A7450871FE17E9BFF7EABA6C36536 /* Support Files */ = { isa = PBXGroup; children = ( - 094B9EE84AB60943CDCB9F8C70FA11EC /* bson_array.c */, - 3FDDC6658582C0B1CEC0775EEBEFEF01 /* bson_array.h */, - 956785ADB6C5C07C0C429DA47DA59E4E /* bson_object.c */, - DD2A35B92D9AC44F072344ECC125D1B7 /* bson_object.h */, - EB5B9BB9D28C2BC68BFABDDE546A6246 /* bson_util.c */, - 82FF30811604FAB65F49A60CF6868F75 /* bson_util.h */, - B53DDEC25BD2CEEE368F8B2099D4269E /* emhashmap.c */, - 4498BA293BEAD680B6055DB76B201258 /* emhashmap.h */, - 51CE33EBE8FFBC30BEF32E469BF01E5D /* Support Files */, + 7C79ED7FCDBADAE3DAF6AD095392D371 /* ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist */, + 32B03FBB47DA786AAB86E6FE9445ECA8 /* SmartDeviceLink.modulemap */, + C93D02DE99AD9CEDF69F718811048F8A /* SmartDeviceLink-dummy.m */, + 67293A61FAECED20B679AB1C5047B8DB /* SmartDeviceLink-Info.plist */, + 868E6709A9E8A540B5221E40E674E358 /* SmartDeviceLink-prefix.pch */, + EA703085F3146AFE22FBAD2AE662CAF2 /* SmartDeviceLink-umbrella.h */, + 6FF174A3130345B9E197CC1FC67E0BBE /* SmartDeviceLink.debug.xcconfig */, + 15CC7A0BD292142B96199EFAB3E8D06C /* SmartDeviceLink.release.xcconfig */, ); - path = BiSON; + name = "Support Files"; + path = "../Target Support Files/SmartDeviceLink"; sourceTree = ""; }; CF1408CF629C7361332E53B88F7BD30C = { @@ -3517,7 +3490,7 @@ children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, 42E3F06399806A758479239FE8C48DF5 /* Frameworks */, - 1F44F6C17D07B2869644379E212938BC /* Pods */, + 01A3524E412C84B88E48937114994213 /* Pods */, DD304B7CA51DC6D1CDE0F21CD545A9F1 /* Products */, 86162AD35B5078217BAB16DE8DDBCA8F /* Targets Support Files */, ); @@ -3534,6 +3507,22 @@ name = Products; sourceTree = ""; }; + F07FEB30CF9223AE0F038EDED31EEFA8 /* BiSON */ = { + isa = PBXGroup; + children = ( + C34405251FE0562CCA9FEA6FC884A66E /* bson_array.c */, + C3C759E34418D5E3F059C76D2E9BD03F /* bson_array.h */, + 66E64A3674325E99630AB41079D65E52 /* bson_object.c */, + CCF1E88FAC247087B1D04D8DC970BE73 /* bson_object.h */, + C1D81050F28D62B6EDECEBB7DF2391A0 /* bson_util.c */, + 5ED1A1D0218C25583F5764B0E59FDC4E /* bson_util.h */, + 0EFE9E833025F639CA949ECC8B8C90F0 /* emhashmap.c */, + D8937A5799CDE32614D2726C81F82818 /* emhashmap.h */, + 47C7166BA760847A0AD362E48BB367E5 /* Support Files */, + ); + path = BiSON; + sourceTree = ""; + }; F3F423CA06AF8F084BD2AF6D368BA938 /* iOS */ = { isa = PBXGroup; children = ( @@ -3545,570 +3534,570 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 1901E553EF7960531A828B98ACF2AA7D /* Headers */ = { + 101A7953E27756AC6A0A7BB9E7CF35E7 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 87AC6CA51E70B12C479133AC047D6AD0 /* Pods-MobileWeather-umbrella.h in Headers */, + E8A50AE74D22C3B1C7383C7A66920E85 /* CGPoint_Util.h in Headers */, + F67B5F6721755926DB4686901905A266 /* CVPixelBufferRef+SDLUtil.h in Headers */, + 89EBC07A9931E19A0D7CE8CCFC9E196D /* EAAccessory+SDLProtocols.h in Headers */, + DFF19085B6F82962C5F1F82038CCB5E2 /* EAAccessoryManager+SDLProtocols.h in Headers */, + 38DBBE38509CC185A4FFDF3FAB2EF403 /* NSBundle+SDLBundle.h in Headers */, + 07EC897039F399022A881C2C79BC77F4 /* NSMapTable+Subscripting.h in Headers */, + 53BBA1FD281AA378016607203506D143 /* NSMutableArray+Safe.h in Headers */, + E7223141AA526DE27508B110154D0FFF /* NSMutableDictionary+SafeRemove.h in Headers */, + D6A04EACEFFB11EE78396AFCD301CFAD /* NSMutableDictionary+Store.h in Headers */, + 975B822DBE1D9BBE04F01841DE7F9A50 /* NSNumber+NumberType.h in Headers */, + 9D128154E213F2A044C61D9129B5BC56 /* SDLAddCommand.h in Headers */, + 06BBEEDC729D9D948D944852399F2F05 /* SDLAddCommandResponse.h in Headers */, + 2E635C926F57C5CF8AC735F9DFC10B19 /* SDLAddSubMenu.h in Headers */, + 4C93079B440925D756A0573344DA4D96 /* SDLAddSubMenuResponse.h in Headers */, + 6AAE591F718CA3C4EEA021C92023D5EA /* SDLAirbagStatus.h in Headers */, + 13FE73ABEC5272554491F31BA15FBE98 /* SDLAlert.h in Headers */, + 108D2F1476FD2D75A98286FCA2B4B36B /* SDLAlertManeuver.h in Headers */, + EAD277CFE95CC66B1039E4D7FDB59286 /* SDLAlertManeuverResponse.h in Headers */, + 58C4CBE7BAAA82F67DBAC49F2E5788BC /* SDLAlertResponse.h in Headers */, + 29333D0AA67B0FE2307D1B6C711CB6A5 /* SDLAmbientLightStatus.h in Headers */, + 06FB324D9C94F818A31A24576F78E93C /* SDLAppHMIType.h in Headers */, + E0A5E4C0E118E169E451821D5BF2E993 /* SDLAppInfo.h in Headers */, + B150E5DE7978C3481FD1EB1A61030C0E /* SDLAppInterfaceUnregisteredReason.h in Headers */, + 72A5665F30946F50FF9A45AAE98D35BA /* SDLAppServiceCapability.h in Headers */, + 33ADC9641FFA2C3C5D4C3CB29270E2CA /* SDLAppServiceData.h in Headers */, + 1252F7AF021293B5517FCA6C9AF44A21 /* SDLAppServiceManifest.h in Headers */, + E810E9E75212B959F2CD0DF82CD36C73 /* SDLAppServiceRecord.h in Headers */, + 19978E124F50D5A1E905B1DE029C3E96 /* SDLAppServicesCapabilities.h in Headers */, + FB6CA35AE69A8225058E8E82E5960A56 /* SDLAppServiceType.h in Headers */, + E976D4852A3C6F9FD8D41E3EDEE93C12 /* SDLArtwork.h in Headers */, + 4F7C9C4E30D040A4AB32FE05BBD9001D /* SDLAsynchronousOperation.h in Headers */, + 1535D3148D3604D2EBEE4EB5E3008417 /* SDLAsynchronousRPCOperation.h in Headers */, + E3DDE087EE819EC6A6C2B47398AD2778 /* SDLAsynchronousRPCRequestOperation.h in Headers */, + BC9735E85FD629EAA8E6D66A17FA922D /* SDLAudioControlCapabilities.h in Headers */, + E8AAE041A57854E0F8D501E9E3069433 /* SDLAudioControlData.h in Headers */, + DD85346FE22FA8E930D3CB3A28796C18 /* SDLAudioFile.h in Headers */, + 1FAFBC495EB3F87999BDDCF1583AD696 /* SDLAudioPassThruCapabilities.h in Headers */, + 030A31875F755108423BB4F15FBEAA83 /* SDLAudioStreamingIndicator.h in Headers */, + 70F0649750C5E9DBD1AFA36ACEF458C8 /* SDLAudioStreamingState.h in Headers */, + 703EDBB8AE959470D576A0D12F2108A7 /* SDLAudioStreamManager.h in Headers */, + 2D8B55A1BFA18EB1E3CB14D6FCE09063 /* SDLAudioStreamManagerDelegate.h in Headers */, + 95B632680000864684FC326A77E81490 /* SDLAudioType.h in Headers */, + 90B132644819CDCFE3C4B8B316C0980B /* SDLBackgroundTaskManager.h in Headers */, + EB14E5C92B2A258AAD60D0CACD27F65B /* SDLBeltStatus.h in Headers */, + 5B049E4888F5BCE4DC057D4E42C1F2D3 /* SDLBitsPerSample.h in Headers */, + BCBEE0AE3ACC08FB525F661F1F7AC05B /* SDLBodyInformation.h in Headers */, + 66F5C089D30A9889D0F8BA63A8443041 /* SDLButtonCapabilities.h in Headers */, + 2D8DCB5B9AF6C9F4FE1CB0366FCDFD7E /* SDLButtonEventMode.h in Headers */, + 65B80391203B29755940056CD7130299 /* SDLButtonName.h in Headers */, + D4A54E3C0D63E0D6C971F0FC5C75D9A2 /* SDLButtonPress.h in Headers */, + C175A9B4A5DF2D064C455F649EA87DEE /* SDLButtonPressMode.h in Headers */, + 05AA2C453D9E68208FCF493F216AE4BC /* SDLButtonPressResponse.h in Headers */, + F8925070BDD710E983CABAD7EBCD3DDD /* SDLCacheFileManager.h in Headers */, + A11F26070BE925687139B0C109399C19 /* SDLCancelInteraction.h in Headers */, + 943BDF0A57AB9536CF0CC6D1E1C51D14 /* SDLCancelInteractionResponse.h in Headers */, + 25BE8C8B4CECF880BE4335312ED8B717 /* SDLCarModeStatus.h in Headers */, + F2B384A9614E760CE466DFCCD80F5CEB /* SDLCarWindow.h in Headers */, + 9572650EBB7B2B8D936F2844DECB03E6 /* SDLCarWindowViewController.h in Headers */, + 1740E8B2F60D77BFBC604D07BEE19B14 /* SDLChangeRegistration.h in Headers */, + E84F68513747CEC8D204D0D889788925 /* SDLChangeRegistrationResponse.h in Headers */, + 06C4D583DBCDD900D42AF20BF4399C4B /* SDLCharacterSet.h in Headers */, + A13C0973729C96228DD864BEABC09B27 /* SDLCheckChoiceVROptionalOperation.h in Headers */, + FB7EFF49F20734D699CFB56494EC388A /* SDLChoice.h in Headers */, + 76F0CA06BFCC765F9E093AB4DAB81220 /* SDLChoiceCell.h in Headers */, + A8BCEFDF545668B86C4B26D77F543012 /* SDLChoiceSet.h in Headers */, + 571DDD47BD1560C506A2C8CFF60B6F02 /* SDLChoiceSetDelegate.h in Headers */, + E64C863EE7F6A9280C3D958F9FAB6D75 /* SDLChoiceSetManager.h in Headers */, + 30F56DD16FD5AC410C8EC40453FD8C34 /* SDLClimateControlCapabilities.h in Headers */, + 293C7367008EF74D0DD9DD9123AF01D8 /* SDLClimateControlData.h in Headers */, + 0449A73F6CEFDDAB155A322DC5602A53 /* SDLCloseApplication.h in Headers */, + F54ED240190830BC405F8A3F246EA0A2 /* SDLCloseApplicationResponse.h in Headers */, + 0BE15734B37B15CACCB2040050832FA7 /* SDLCloudAppProperties.h in Headers */, + 1FA8E1D71FDA6FBA04439981618AA74E /* SDLClusterModeStatus.h in Headers */, + 46300F41ECC56138DAE8F56FEF10E7B8 /* SDLCompassDirection.h in Headers */, + 9807627F3863B4F0B8478AC7810C3ED9 /* SDLComponentVolumeStatus.h in Headers */, + 356FBEDAFC9DE9CE10B94CCE35ABE585 /* SDLConfiguration.h in Headers */, + DF20DAAFCB4697B4CEEE7EBD7B0A4E3C /* SDLConnectionManagerType.h in Headers */, + 8057D4C4047A1C456E6BFFA904469F2A /* SDLControlFramePayloadAudioStartServiceAck.h in Headers */, + 0AC45935BAAC4EEC4B3AC41963ABDEAE /* SDLControlFramePayloadConstants.h in Headers */, + E26CE02D51DACC443064BFB173681339 /* SDLControlFramePayloadEndService.h in Headers */, + F02D84852A5EBD3B296F70F05E44B9F6 /* SDLControlFramePayloadNak.h in Headers */, + CE691148A9A35566ECB26399D679E7B2 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h in Headers */, + B4F0E7BDC21F461F00D673334BBDF781 /* SDLControlFramePayloadRPCStartService.h in Headers */, + D53AA773DBCA4F6FBCEBA54EFB599F67 /* SDLControlFramePayloadRPCStartServiceAck.h in Headers */, + 721C6905B171EEA60C69F896DBE66D5F /* SDLControlFramePayloadTransportEventUpdate.h in Headers */, + 3D8726A061E96537E54E7276ABE0F8FB /* SDLControlFramePayloadType.h in Headers */, + B505E5278CDF2E21BACF15324A723BC1 /* SDLControlFramePayloadVideoStartService.h in Headers */, + A2F68F9AE4211CB31227C8790627D865 /* SDLControlFramePayloadVideoStartServiceAck.h in Headers */, + B1FF65E7334126187569DEF9C0C33807 /* SDLCreateInteractionChoiceSet.h in Headers */, + D4C33A66E4B2EDDA130CF9F6A5F4867E /* SDLCreateInteractionChoiceSetResponse.h in Headers */, + AAD2C90D0EB813824B3D8A3AB0B383BF /* SDLCreateWindow.h in Headers */, + C93DE69DC8E81F3B919DC5041BE32DF5 /* SDLCreateWindowResponse.h in Headers */, + E770BD60F6BEE6EA0CC738E462297255 /* SDLDateTime.h in Headers */, + B6211F586ECE845BDC52226B40D463CE /* SDLDefrostZone.h in Headers */, + C072FE06DD0CAAA689963411B9C86019 /* SDLDeleteChoicesOperation.h in Headers */, + 4D33761F1DC2FBE91EDDDE215A1E6959 /* SDLDeleteCommand.h in Headers */, + 0B3A68B8A8DAE66BE0D40553A8E8F0F0 /* SDLDeleteCommandResponse.h in Headers */, + EB4732C359585CD72017A5D90B904EDA /* SDLDeleteFile.h in Headers */, + AF0378DD30CA9A0BA2190F015D33287A /* SDLDeleteFileOperation.h in Headers */, + 7D3FDCF280500CFA08D4FF079F23EE53 /* SDLDeleteFileResponse.h in Headers */, + D0F3FBDF8B599CEC7A632F06AC53403C /* SDLDeleteInteractionChoiceSet.h in Headers */, + AB7F9CEBB797B1CE9C0A6369925F40D7 /* SDLDeleteInteractionChoiceSetResponse.h in Headers */, + 2322726A5483D59A55C4EDC2AA0156F1 /* SDLDeleteSubMenu.h in Headers */, + F84B04F6281DE18EAAE313588E28E966 /* SDLDeleteSubMenuResponse.h in Headers */, + F1E0F92908B6D9838308E4BE87F9F35A /* SDLDeleteWindow.h in Headers */, + 56E5FE374352C392DC8E51B09AF1BBA3 /* SDLDeleteWindowResponse.h in Headers */, + 7622141190322B2049CB7BFF23200BB7 /* SDLDeliveryMode.h in Headers */, + 92B358063BF2D4E4FBA527CFF06F0060 /* SDLDeviceInfo.h in Headers */, + F434E151A675619FB6DE7B0CF3BB0AA7 /* SDLDeviceLevelStatus.h in Headers */, + 418915792BBCF4558CC5AA1618DCBF3E /* SDLDeviceStatus.h in Headers */, + 5BA9A54A41ED1A2C09132DD9EBD78C27 /* SDLDiagnosticMessage.h in Headers */, + ADC486DAB4AECF83CEF1528805F0D5DD /* SDLDiagnosticMessageResponse.h in Headers */, + 1848DB3F89B60722831C8A28961BC2E1 /* SDLDialNumber.h in Headers */, + AD736001016B54573EABDD90DADE0E53 /* SDLDialNumberResponse.h in Headers */, + 02E6E4F413A2B966E004A1031FFEDE61 /* SDLDIDResult.h in Headers */, + F38051ED9D5A6D64BA22B6120F718E08 /* SDLDimension.h in Headers */, + AFBCAA22FB24A405351A20E2B74558BB /* SDLDirection.h in Headers */, + F19E92D00AF56884D8403180450C673D /* SDLDisplayCapabilities.h in Headers */, + 4309DAF1A0EC9BBBFCB7FC4B2F73FBBA /* SDLDisplayCapability.h in Headers */, + 4420163C672AAF5B0F6472F0F13B41D5 /* SDLDisplayMode.h in Headers */, + DBDF33CC4BB41323D4184E33B9461898 /* SDLDisplayType.h in Headers */, + 39BA1E6BF24E49F7DF63A57C5D2F5F66 /* SDLDistanceUnit.h in Headers */, + 703007E30FE5A04B2C59DE8467A15FD7 /* SDLDriverDistractionState.h in Headers */, + 41D046D2EAD5760794D0459A8316D66B /* SDLDynamicMenuUpdateAlgorithm.h in Headers */, + FCA506B6BF42A7A8FE6C1B55747B8ECB /* SDLDynamicMenuUpdateRunScore.h in Headers */, + 9AB381AEFEE5A61992ACD7F10F8A0BE1 /* SDLECallConfirmationStatus.h in Headers */, + CC75C0FF02FCD0592B72443A8EF5A318 /* SDLECallInfo.h in Headers */, + D30AA824325A769A834200E9DD3F59C0 /* SDLElectronicParkBrakeStatus.h in Headers */, + 26353657D5D6B0F84D089E872827FDDE /* SDLEmergencyEvent.h in Headers */, + 28CC084EC7D95AD5533A75860CA631DE /* SDLEmergencyEventType.h in Headers */, + BA1BC253AFEB4606F25935208F851471 /* SDLEncodedSyncPData.h in Headers */, + 97552846A61ABE9D89635D411CF6886A /* SDLEncodedSyncPDataResponse.h in Headers */, + 99053937DFFC0E1B063400B22BCCD6C5 /* SDLEncryptionConfiguration.h in Headers */, + 2143F4C92496739C1E9F659C76C34437 /* SDLEncryptionLifecycleManager.h in Headers */, + 97987F32A35F3BFEE2A7EE14ED37B862 /* SDLEncryptionManagerConstants.h in Headers */, + 6867184EB0DA4E64F43D2F30EB0488CB /* SDLEndAudioPassThru.h in Headers */, + F5D727D9EECDD13F365FBE86B3106EB0 /* SDLEndAudioPassThruResponse.h in Headers */, + 4F0E6A9D816AA18B7EDE637892AAB4EA /* SDLEnum.h in Headers */, + C4378E5305D6B3EA5395DB20C54057E7 /* SDLEqualizerSettings.h in Headers */, + BF741D4194863C9E087DA82D29EB42AC /* SDLError.h in Headers */, + 96ECD4F7CB098FCFE884F32CB2CA407A /* SDLErrorConstants.h in Headers */, + 140AE13905D4AA976BBE7D32C20EC80D /* SDLFile.h in Headers */, + 524FC58075C102402E54D6C9D2B7EFF5 /* SDLFileManager.h in Headers */, + E48843702E229647A8BEBA0EDFEAF5A5 /* SDLFileManagerConfiguration.h in Headers */, + 5074ED2355E751C3B61FB476B87B59C9 /* SDLFileManagerConstants.h in Headers */, + FA4CC44F8F212A7F83890F85250C8D1F /* SDLFileType.h in Headers */, + 7182F43C32ED6456BEBC1055352D96D4 /* SDLFileWrapper.h in Headers */, + 783DAB48EBF9DF33D24A813007A16BAF /* SDLFocusableItemHitTester.h in Headers */, + 3B7033C9D6CE86470B95F2C51B9400EC /* SDLFocusableItemLocator.h in Headers */, + E67FF2ADC53F5081B3B89A633B585ADB /* SDLFocusableItemLocatorType.h in Headers */, + 69D9241B27BEE1A16D8E9C69304C610C /* SDLFuelCutoffStatus.h in Headers */, + 842A278FF6CA695AE140DE3C90FB6C09 /* SDLFuelRange.h in Headers */, + 9E02638823EC1F1D11F02EFDE7FE15D9 /* SDLFuelType.h in Headers */, + C7031C39032964315A742AD31DA2DC03 /* SDLFunctionID.h in Headers */, + 498DE56DFEC17537625C394BB3B725B3 /* SDLGenericResponse.h in Headers */, + 4229C388D87E44653544F9B367D91B03 /* SDLGetAppServiceData.h in Headers */, + D0023E1F0600BF9CAAAA43E80FB6FEC7 /* SDLGetAppServiceDataResponse.h in Headers */, + DA392F7D8AEA6EE6F78C2FB9A4922637 /* SDLGetCloudAppProperties.h in Headers */, + 2BD2B68D5F3E75CC7CFD753D59B5C645 /* SDLGetCloudAppPropertiesResponse.h in Headers */, + 499C36B26E6CAB22A022386A12660DB8 /* SDLGetDTCs.h in Headers */, + AF723A4A4F7BAE013836CFA6EA0A96CC /* SDLGetDTCsResponse.h in Headers */, + 9DFB1A6DB2598EDE3EE46E5C4CE0BCA9 /* SDLGetFile.h in Headers */, + D53FD842288FA0D06416A49B6C1AFBE0 /* SDLGetFileResponse.h in Headers */, + 6933E178872E557AFF58D48A5474FA58 /* SDLGetInteriorVehicleData.h in Headers */, + BA3D8EF0CE88A9A0D9CD7AE6E2AA5FCA /* SDLGetInteriorVehicleDataConsent.h in Headers */, + BF434044E8805B53F9C49572258A336C /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */, + 14FDAE2B365BF4599C349F9E4C49A436 /* SDLGetInteriorVehicleDataResponse.h in Headers */, + 46E72DA12639145BA10361DC9CB2EF60 /* SDLGetSystemCapability.h in Headers */, + 6C95A689B7F1C67945E65FF4D8A64113 /* SDLGetSystemCapabilityResponse.h in Headers */, + AC9ABA1E5756F8D06C41D5F12FAF5FCC /* SDLGetVehicleData.h in Headers */, + 404425782FA399BBF0D7E2D3D4591B81 /* SDLGetVehicleDataResponse.h in Headers */, + 173519F7A886931450C9B847A2EBEB6C /* SDLGetWayPoints.h in Headers */, + 9B64057F42AB2ABE7AE945EBF1BE29A7 /* SDLGetWayPointsResponse.h in Headers */, + 5AC2BBF2338C0E1AFFC9719B7F895930 /* SDLGlobalProperty.h in Headers */, + 573384DD9BADD8F3B332668BD49F2C29 /* SDLGlobals.h in Headers */, + EA6E38C397BEA72FCE30006B71CA4BE6 /* SDLGPSData.h in Headers */, + 16E4705974FE4C949F41C2E807EBEE18 /* SDLGrid.h in Headers */, + B2912E54327248FAE3A3170E39F35F97 /* SDLH264Packetizer.h in Headers */, + 8CF98996F8D5ABE5A8593471D349367B /* SDLH264VideoEncoder.h in Headers */, + 1E92C1FBC46299C97494391A9A157F64 /* SDLHapticRect.h in Headers */, + B3E5781080E9941D62D42336DB9B4AB3 /* SDLHeadLampStatus.h in Headers */, + A037C3C3A83530301BEA2F881D8288BA /* SDLHexUtility.h in Headers */, + CEF0992BAA5B7F699F8DA9AD14CF30D7 /* SDLHMICapabilities.h in Headers */, + 26217B2CFE53FB77D314083C9F7D8455 /* SDLHMILevel.h in Headers */, + 9108B6E2D3167C1881C88BA53125294E /* SDLHMIPermissions.h in Headers */, + F7154784E2F5DB9E3C24FC2928C7D12B /* SDLHMISettingsControlCapabilities.h in Headers */, + 733D59C10EE7B42B3E3775EE9945F3CB /* SDLHMISettingsControlData.h in Headers */, + 96B3A64C13C755BF2344A019F3BD7564 /* SDLHMIZoneCapabilities.h in Headers */, + D95A9D7BB42ACCBA3A63C34D01602A83 /* SDLHybridAppPreference.h in Headers */, + 948E7F11C00F9CC8161C026A9EEC54C1 /* SDLIAPConstants.h in Headers */, + FDA8CE14078E6C248AA850B366A863E5 /* SDLIAPControlSession.h in Headers */, + CFC9643FF9F27BE41FD8D8256171F71C /* SDLIAPControlSessionDelegate.h in Headers */, + 435A9A8FBEC0AD2E8B7B46BACE464E00 /* SDLIAPDataSession.h in Headers */, + 0E35DAB1AB19E38627F023A110471CA1 /* SDLIAPDataSessionDelegate.h in Headers */, + 5BC280DDA0CDAF30020BABBC7AC703E1 /* SDLIAPSession.h in Headers */, + A593A77AB1486F65ACE3B83D54B74BF3 /* SDLIAPTransport.h in Headers */, + 3070702B8B93F00CC702230E08A81478 /* SDLIconArchiveFile.h in Headers */, + 896B434043508082AF277D789CFA2BBC /* SDLIgnitionStableStatus.h in Headers */, + F2F0578FC5558A1FD4D42C94CC018FD6 /* SDLIgnitionStatus.h in Headers */, + BF82FC7181F586CF5EE1AEC6F08AFB8C /* SDLImage.h in Headers */, + C29FD00E3FFA2E5D7C80F63B4E9E5EAB /* SDLImageField+ScreenManagerExtensions.h in Headers */, + 0464DC7F6803F80C656F554A937663A8 /* SDLImageField.h in Headers */, + C604E4365ACFDCA05168D748D10B6BAE /* SDLImageFieldName.h in Headers */, + 7B9A5F389E2CEDE6D1E9EAA1B30C5659 /* SDLImageResolution.h in Headers */, + D945C7965067F2906108EDCC145A2E96 /* SDLImageType.h in Headers */, + 448C6E33A3018444FFF0D83F5FAF4419 /* SDLInteractionMode.h in Headers */, + F1FC1F415525E9BE1FB87674C21164B7 /* SDLKeyboardDelegate.h in Headers */, + 266AA31C12A9492F483B4AAEDD775FE3 /* SDLKeyboardEvent.h in Headers */, + EA3FCADC9D8E43CBCFC84DFE35BCFAD8 /* SDLKeyboardLayout.h in Headers */, + 9B1D0DC686CA127B3507C3BDBC7556C4 /* SDLKeyboardProperties.h in Headers */, + 6EE8571C87BCEC83176A0160B0235153 /* SDLKeypressMode.h in Headers */, + 0B68D3C320FE736582F954A1808256E2 /* SDLLanguage.h in Headers */, + 81C464894078D0923CB734B498325E5C /* SDLLayoutMode.h in Headers */, + A6FD855ED3F925B400BD27B86ED4E5B8 /* SDLLifecycleConfiguration.h in Headers */, + 10399FEFB6AE8D84D33269A2552FE260 /* SDLLifecycleConfigurationUpdate.h in Headers */, + 7C2914E90E64A052CD25A0C06B28FCE3 /* SDLLifecycleManager.h in Headers */, + E4DBBC95BD7911FD5036361AD92217E1 /* SDLLifecycleMobileHMIStateHandler.h in Headers */, + 7AF166CD4FFF2B0EB623D07AC3B40770 /* SDLLifecycleProtocolHandler.h in Headers */, + E4C8134393CD7860FE31F8B17DDF6F51 /* SDLLifecycleRPCAdapter.h in Headers */, + BCE0B77562870F561076138E433792E5 /* SDLLifecycleSyncPDataHandler.h in Headers */, + 28BD38304ADA7FC85E743DEE7314C025 /* SDLLifecycleSystemRequestHandler.h in Headers */, + E931DA8F802C54BF86A5340D1A2B2137 /* SDLLightCapabilities.h in Headers */, + 1E860D58C4B4F4A01EB689D1B276DD2A /* SDLLightControlCapabilities.h in Headers */, + 9EF3295D4B53DF53BE6353110DD2B85E /* SDLLightControlData.h in Headers */, + 5AA6EC18B9143E9DC48FDBCCAF08EA1E /* SDLLightName.h in Headers */, + 8328B9D04BFB65C0975608CCD290F129 /* SDLLightState.h in Headers */, + 7A5A4CCE72E7384F52744B4D7699A5DC /* SDLLightStatus.h in Headers */, + F91095D6314BB3F6EDA3EB1D11DB5109 /* SDLListFiles.h in Headers */, + 8CF4F12468C7886C63A1ECDD6791C936 /* SDLListFilesOperation.h in Headers */, + 90E54FF893D72AE14A79C43840493828 /* SDLListFilesResponse.h in Headers */, + 820EA879555877005F0F2585C7D91934 /* SDLLocationCoordinate.h in Headers */, + 543478E1D2830917285505E70CC177C6 /* SDLLocationDetails.h in Headers */, + DD12156E50D744D040B9FEB30EA4953A /* SDLLockScreenConfiguration.h in Headers */, + F63A5F17974134AAE7F5EC1A2E61B5B1 /* SDLLockScreenManager.h in Headers */, + ABF656C5E21AEC6D38F3E13417005688 /* SDLLockScreenPresenter.h in Headers */, + 07D5575EC6154BD6A1DA7EFED6E844F3 /* SDLLockScreenRootViewController.h in Headers */, + 8A3EFA26C9A85C5A9BCF353A99C5AAC0 /* SDLLockScreenStatus.h in Headers */, + 29725FF38EFA8B496123C61DD592C84B /* SDLLockScreenStatusManager.h in Headers */, + E3644BDDD294BE373BF8857CA9A0C87A /* SDLLockScreenViewController.h in Headers */, + C00BA8764AB904D2A89E38A8F5D9B101 /* SDLLogConfiguration.h in Headers */, + F5D9E586A90FEA617FCD63C38EFCA138 /* SDLLogConstants.h in Headers */, + E8C544AFFA8924FF213F3F40FD60CB93 /* SDLLogFileModule.h in Headers */, + 7771D6000CD81F2B8F910037ED770852 /* SDLLogFileModuleMap.h in Headers */, + 1C3779A1ED805EBA676412F23CD6E4F3 /* SDLLogFilter.h in Headers */, + BB3AFD42421B78E509DDB0D3C3025F84 /* SDLLogMacros.h in Headers */, + B863542C7C9CB768A3D04A69834CD9A2 /* SDLLogManager.h in Headers */, + 02B9BA59D1C0E22367D384281346B66F /* SDLLogModel.h in Headers */, + B38195C88F92FEB489620CCBBC2020BB /* SDLLogTarget.h in Headers */, + BA00DAA64D9E20E51594BE9DA61FB3B8 /* SDLLogTargetAppleSystemLog.h in Headers */, + 70E0209B95ABB6721B429C455413E1D1 /* SDLLogTargetFile.h in Headers */, + 9DF783D275D92A46DE02F25C3B837321 /* SDLLogTargetOSLog.h in Headers */, + 5302244179BF6A0021E20261F7B0C3DD /* SDLMacros.h in Headers */, + 9F8232117DA710D03B7E6C7D59670979 /* SDLMaintenanceModeStatus.h in Headers */, + 0CD8661CBFFE3EEC13E840FD788482CF /* SDLManager.h in Headers */, + 37E2297CE2C16488DF70FACD9E4D9A42 /* SDLManagerDelegate.h in Headers */, + 003DA91DE9E5454518E11A54CEEED6D1 /* SDLMassageCushion.h in Headers */, + 448960757DCCD0251887598DD98C7721 /* SDLMassageCushionFirmness.h in Headers */, + E5B8877CA9E196869619D1FC0581AFFD /* SDLMassageMode.h in Headers */, + 38B84FE054DC605D69AC886B4BB4AFB1 /* SDLMassageModeData.h in Headers */, + E078403E7DFF3C8235326AF4AEC6EF77 /* SDLMassageZone.h in Headers */, + 8C042DE95ACE95E73BDFB610B4E8E73C /* SDLMediaClockFormat.h in Headers */, + 770CF2172153416F75DA8434CA9D0987 /* SDLMediaServiceData.h in Headers */, + 3D3BEA2BEB9CFCE1B220AD7DC31B9A83 /* SDLMediaServiceManifest.h in Headers */, + 41A90106B4715AB967B0EC05FBDA2539 /* SDLMediaType.h in Headers */, + 4B0660F894928C9F214F03C6483D8351 /* SDLMenuCell.h in Headers */, + 7BA72342DFEA2FD8D0230A7D1114B0D5 /* SDLMenuConfiguration.h in Headers */, + 146B618653FFA74052F2FB52092207F8 /* SDLMenuLayout.h in Headers */, + F46BEBD9A0AB03DE13E0B3F4D967DA73 /* SDLMenuManager.h in Headers */, + 2F7BDF1B09192128D071307D6B0D96D3 /* SDLMenuManagerConstants.h in Headers */, + FF463F1426B7BF72BDD00DC5B128F2A1 /* SDLMenuParams.h in Headers */, + 3A00ED6EAC8495E2A78104DC2DFB2C6B /* SDLMetadataTags.h in Headers */, + A0EA899E9A6772A0E111CAF3A5B4D692 /* SDLMetadataType.h in Headers */, + 92E669ED90ECE510D2704648AEC3B87B /* SDLModuleData.h in Headers */, + BB601246A9167E4708E5B9D7B6E850F8 /* SDLModuleInfo.h in Headers */, + E12CD1AD7EA335D3E545466678071A23 /* SDLModuleType.h in Headers */, + 7B087CC97B2A19EA9BE23929DCB45523 /* SDLMsgVersion.h in Headers */, + F21FA12D42119F7BB39472B8AE1A52E0 /* SDLMutableDataQueue.h in Headers */, + 45E4823DCE75519D98AD45B17EF4144A /* SDLMyKey.h in Headers */, + 6B7709E582D650713411B7209028BDE5 /* SDLNavigationAction.h in Headers */, + 00879774B5433F93871F996ED7137C2F /* SDLNavigationCapability.h in Headers */, + B79E708F7FE9CA288585EAD4F467C27C /* SDLNavigationInstruction.h in Headers */, + A6BBC719536F101CB562CAB3FE06D5BA /* SDLNavigationJunction.h in Headers */, + FD565C5B865F3F82F33B5C599542BB56 /* SDLNavigationServiceData.h in Headers */, + 4E7FE570BC489D0CD32A6D0E4CF82ADC /* SDLNavigationServiceManifest.h in Headers */, + BA45891E7B3D37994FF8A8939804C746 /* SDLNotificationConstants.h in Headers */, + A3B8C6795DDA83285BEFB831CB44827C /* SDLNotificationDispatcher.h in Headers */, + 6E6860F1FC4E478A4EA8239F823DDB59 /* SDLOasisAddress.h in Headers */, + D03657B4B97135C1DCC9000C19C8BE79 /* SDLObjectWithPriority.h in Headers */, + B393614ECB8435C999A656EA5FF4DA9A /* SDLOnAppInterfaceUnregistered.h in Headers */, + 3517FA25C26876DD57DDCCF67ECCDF39 /* SDLOnAppServiceData.h in Headers */, + 87265B55E2D27269A551AB06B0D834E1 /* SDLOnAudioPassThru.h in Headers */, + BCDDBC9A33D1F77E7522ECF8FC9A1926 /* SDLOnButtonEvent.h in Headers */, + 3FAD343C0F867C2097B12804C5907DB6 /* SDLOnButtonPress.h in Headers */, + 43BFE80CE7C858FF07FF9056216D5ABC /* SDLOnCommand.h in Headers */, + 5BC3AA186D38E4432C705AC60EB1E651 /* SDLOnDriverDistraction.h in Headers */, + EB82C497CFD63A7E991892F5B60D361D /* SDLOnEncodedSyncPData.h in Headers */, + 43431BFF32039C6CFBAAB8C71D13EB79 /* SDLOnHashChange.h in Headers */, + A2CDEF188C1B5C93E25A3F7880080B74 /* SDLOnHMIStatus.h in Headers */, + ECC87CADBAB0667E1CD7E637907B3FFB /* SDLOnInteriorVehicleData.h in Headers */, + 084021FEEBDC121A01E76CD5D9D3A414 /* SDLOnKeyboardInput.h in Headers */, + 038A0C2C3BD5BB22B37280A56FAB5AB3 /* SDLOnLanguageChange.h in Headers */, + EE697B0B4995E7259B791BCC582D727B /* SDLOnLockScreenStatus.h in Headers */, + BCA619430CF3590B6F43FA809D1629AD /* SDLOnPermissionsChange.h in Headers */, + 4FD8B4B6CFA7CA9726828141B0A48F5D /* SDLOnRCStatus.h in Headers */, + 09AB9C5FF6058254B64C63123E971C10 /* SDLOnSyncPData.h in Headers */, + 07ED05FDEB6D1F1255386B7FBFBEC076 /* SDLOnSystemCapabilityUpdated.h in Headers */, + F42A7657DCF0C0B769D05F922B972CE9 /* SDLOnSystemRequest.h in Headers */, + B5D2886890D272E031FDDFBD5EE82D60 /* SDLOnTBTClientState.h in Headers */, + CD55C89B732A94B7FCC7CC31DC96683E /* SDLOnTouchEvent.h in Headers */, + ADC074FCA5AE10C28D5026FF190EE446 /* SDLOnVehicleData.h in Headers */, + 07975E5C3B4B93AAEB029FE3196E3E64 /* SDLOnWayPointChange.h in Headers */, + 89DE45CB97C1845FCAAF7B83E9D03F58 /* SDLParameterPermissions.h in Headers */, + D1DAA1AC9B11A5D2BDD511E04EB074B3 /* SDLPCMAudioConverter.h in Headers */, + 40350EC1E0C7771E44C6BA8DB22C3666 /* SDLPerformAppServiceInteraction.h in Headers */, + 6399449E25DF90657AF772C5241C419B /* SDLPerformAppServiceInteractionResponse.h in Headers */, + 3A72A19314E3CB64935731A4EFF2E8F2 /* SDLPerformAudioPassThru.h in Headers */, + 5680D0D1D06F3D3B54396D398B8A417C /* SDLPerformAudioPassThruResponse.h in Headers */, + 20E52603A144D5E23A91FC15FB220553 /* SDLPerformInteraction.h in Headers */, + 797330768E845F89F1FEDDE14C055440 /* SDLPerformInteractionResponse.h in Headers */, + 64FD30538308F3AE59148DC736F72625 /* SDLPermissionConstants.h in Headers */, + 485EB884477F1C792D748D9760C80F96 /* SDLPermissionElement.h in Headers */, + 29343D75325A60F2F26ACB2E2A148BDD /* SDLPermissionFilter.h in Headers */, + 723B98063F796F3A205BBF4D69D397FF /* SDLPermissionItem.h in Headers */, + 9C6F8EC6BB779E9ED31A4BE3D33D5A72 /* SDLPermissionManager.h in Headers */, + 81C1D63EDAF3BD34054FF17FE620080B /* SDLPermissionStatus.h in Headers */, + F0E8376DAD107E666421E01CCEA55406 /* SDLPhoneCapability.h in Headers */, + 6B0BACE25CB2A25AA900691BBAA33280 /* SDLPinchGesture.h in Headers */, + 3CA592C06FB203D552B3F6D89E1CA318 /* SDLPowerModeQualificationStatus.h in Headers */, + B2526A2E015B04742D776EE2820B521D /* SDLPowerModeStatus.h in Headers */, + 51DA975E13B256C4B5D1FE787629B5A3 /* SDLPredefinedLayout.h in Headers */, + 7DB2DCC05E106A77EFE0A9672A8F9373 /* SDLPredefinedWindows.h in Headers */, + AA756116198DB6B581A20CB3873E30E4 /* SDLPreloadChoicesOperation.h in Headers */, + 8940DF96E280A683D1AE6F0C516558CB /* SDLPrerecordedSpeech.h in Headers */, + 8282D5A46E55FB7731B772BC17EF7C48 /* SDLPresentChoiceSetOperation.h in Headers */, + 9B55F42A537180FC37A5A170B1FB6309 /* SDLPresentKeyboardOperation.h in Headers */, + 3EE109E86F504C8541C3781EAA536C33 /* SDLPresetBankCapabilities.h in Headers */, + AA873E6F9C27CEBDA0C183CAD68759EA /* SDLPrimaryAudioSource.h in Headers */, + 636D8C8EBB49829369E13843A86C0600 /* SDLPrioritizedObjectCollection.h in Headers */, + 436DCF518BC654B893E3567925A97D24 /* SDLPRNDL.h in Headers */, + AA47F6819C48293DD50ABABE42D59952 /* SDLProtocol.h in Headers */, + EE1F6BB1177EE70D1169A40CCC7461B8 /* SDLProtocolConstants.h in Headers */, + 1E34EE1AE419A9801D49AABE3DE98B70 /* SDLProtocolDelegate.h in Headers */, + 43E6E27A903694B9A5668A5E2E3AE7C8 /* SDLProtocolHeader.h in Headers */, + B6E6C60209386BE1EA96C33B06677686 /* SDLProtocolMessage.h in Headers */, + E9259CB039160D0244527AB61D400DC1 /* SDLProtocolMessageAssembler.h in Headers */, + 5FDAA1E19BCA3962C75A8383718C8C24 /* SDLProtocolMessageDisassembler.h in Headers */, + 402FE8CEBCE2DB4FF9430C97EE3B5C7D /* SDLProtocolReceivedMessageRouter.h in Headers */, + 51EF218E3562B0C1E47C1404A923C604 /* SDLPublishAppService.h in Headers */, + 6FCD89C21C9DABCA54C354123A05DA43 /* SDLPublishAppServiceResponse.h in Headers */, + 85882347D6B6966362786872D21D1889 /* SDLPutFile.h in Headers */, + 82244FCBDBC4DE2521484AA8076AD467 /* SDLPutFileResponse.h in Headers */, + F8F099F4279F7D966A919E609C51C219 /* SDLRadioBand.h in Headers */, + FD4C4028726EAF24D96022D4D1F0F0B4 /* SDLRadioControlCapabilities.h in Headers */, + B81CAD6446F72990185C0B2499FBFACA /* SDLRadioControlData.h in Headers */, + 494D14787586F8CF5AD27828DDAD1EC9 /* SDLRadioState.h in Headers */, + BD9334E76F0C5A53139A91BD41F251C2 /* SDLRAWH264Packetizer.h in Headers */, + 64B4EB36C718264B16DFDF8D035A51AC /* SDLRDSData.h in Headers */, + 612C6E250B9D452F704EEE4B2A29F640 /* SDLReadDID.h in Headers */, + AD5AF27742CC22CEC1D1C3DFC44F88D4 /* SDLReadDIDResponse.h in Headers */, + 4955A39B2114E75169CEF9B9F85534C6 /* SDLRectangle.h in Headers */, + EE461746C8941EDF411A4EA8A1171FB1 /* SDLRegisterAppInterface.h in Headers */, + C013B4F3EDA532B100A72EAE5104948D /* SDLRegisterAppInterfaceResponse.h in Headers */, + E879B34C758CF14640C5A627D0307261 /* SDLReleaseInteriorVehicleDataModule.h in Headers */, + FE0532EB484B23FC43E5E8BCDE6E09EC /* SDLReleaseInteriorVehicleDataModuleResponse.h in Headers */, + D3348A43DB6C171E887F1D9954A78844 /* SDLRemoteControlCapabilities.h in Headers */, + 542276EFF16755D0D3022600FB995EB8 /* SDLRequestType.h in Headers */, + 39F5E52B10B43B5EA8AE72BE10430DF3 /* SDLResetGlobalProperties.h in Headers */, + 57B2D46DB78B0D4D338E57C1D4D4D5CD /* SDLResetGlobalPropertiesResponse.h in Headers */, + B962D4BFCFE63DA66B345FEFD0543267 /* SDLResponseDispatcher.h in Headers */, + 19808A920357393815692F5AE549D63F /* SDLResult.h in Headers */, + F325BB0AC6DDD888968309DBD7C206F4 /* SDLRGBColor.h in Headers */, + 0AEC8A1C117796DBCDF8B3438AFDA908 /* SDLRPCFunctionNames.h in Headers */, + BE94382158A13556092EB443969BDAB1 /* SDLRPCMessage.h in Headers */, + 3B72322E9621369EC860A18E67637976 /* SDLRPCMessageType.h in Headers */, + 791627EAC8B4EEE54EAF063B35262F0F /* SDLRPCNotification.h in Headers */, + FA0E1BA770AC99ACCFA6FADD294E6AD5 /* SDLRPCNotificationNotification.h in Headers */, + 15790938EAFC293CD326D4F72ECA3B18 /* SDLRPCParameterNames.h in Headers */, + 9C9ECEB77C7F6593C5816D6A6E08BF93 /* SDLRPCPayload.h in Headers */, + 5C33B2CE1EF4650E175EF9E3AE1C7C72 /* SDLRPCPermissionStatus.h in Headers */, + A26C078F292F94A82E10F7CF3CFF947A /* SDLRPCRequest.h in Headers */, + 2EBDB2DA3424BF2FD4965273F2F4CB13 /* SDLRPCRequestNotification.h in Headers */, + E8EC8F9D6034BB1DE7A080BE397C90F4 /* SDLRPCResponse.h in Headers */, + A2C335E45D5808348227BAED740FA4E8 /* SDLRPCResponseNotification.h in Headers */, + 92FCB943F695195618F753813F97E249 /* SDLRPCStruct.h in Headers */, + 09BBF1696D9DA2B01A476C7145E9197E /* SDLRTPH264Packetizer.h in Headers */, + 11C99CB3B640F6A9B292B910BA3D6CB2 /* SDLSamplingRate.h in Headers */, + 04ABCD1D5500C77298DC8E61F181EE3F /* SDLScreenManager.h in Headers */, + 938ED6E03E70AEFFE50F57C66AE7C77D /* SDLScreenParams.h in Headers */, + 94FD5E6BE1C4A20B1C87E81487731621 /* SDLScrollableMessage.h in Headers */, + 23DB5FB26B11BBD509563FD447334FF9 /* SDLScrollableMessageResponse.h in Headers */, + 7C078A8F5DE31C7A59EEBAFFAEEE1229 /* SDLSeatControlCapabilities.h in Headers */, + 7B5E3919628E4763AF44CA7EBCF7139E /* SDLSeatControlData.h in Headers */, + BF4207D49038AEDAE220D0EEE358DC4A /* SDLSeatLocation.h in Headers */, + F5B39B468E865441CE2BB79219D8BDC1 /* SDLSeatLocationCapability.h in Headers */, + 90AA1C0CCC283A6883424274A5289F60 /* SDLSeatMemoryAction.h in Headers */, + BC62D64FCA313B4D85D29F327B3A89E5 /* SDLSeatMemoryActionType.h in Headers */, + 00B029951254F839641912D1E46ACE89 /* SDLSecondaryTransportManager.h in Headers */, + AA090C3D5E165EF8E36C9AA113A53B96 /* SDLSecurityType.h in Headers */, + 5308F5ED1B015EB8DB777A56AF97B611 /* SDLSendHapticData.h in Headers */, + 60521D1FE88A1564BD108C0F62E69D9F /* SDLSendHapticDataResponse.h in Headers */, + A64D310CA13C5BAF7C23D66405E178C5 /* SDLSendLocation.h in Headers */, + 121491DBAA381C791139D50B3F9EC85E /* SDLSendLocationResponse.h in Headers */, + E11E514E7F0437EA78FF5E7634527A07 /* SDLSequentialRPCRequestOperation.h in Headers */, + 4B75F9DA99F98B193944890144BD5988 /* SDLServiceEncryptionDelegate.h in Headers */, + 7EF1FD8D20751CB663DA5DF3A69A3AD8 /* SDLServiceUpdateReason.h in Headers */, + 34B32B0474B72819A6A6C8C158645D81 /* SDLSetAppIcon.h in Headers */, + 232876DEA5EDCB623AC73A31EF06CEFE /* SDLSetAppIconResponse.h in Headers */, + 4422E4ADFCEA142E06C698B954D88413 /* SDLSetCloudAppProperties.h in Headers */, + 984F9250442AD90516197769FB66AC3F /* SDLSetCloudAppPropertiesResponse.h in Headers */, + 359DB004D8FFFCA81496A2589BF9C102 /* SDLSetDisplayLayout.h in Headers */, + 4D56160493B136A03CE409F6C79B8A52 /* SDLSetDisplayLayoutResponse.h in Headers */, + 69576725BB10F3D345CC93CF2BA3C019 /* SDLSetGlobalProperties.h in Headers */, + 0764F62FE2EF9090EB233425C00A6A6C /* SDLSetGlobalPropertiesResponse.h in Headers */, + 301FBFDA0A54CC473E7A55F7174A1827 /* SDLSetInteriorVehicleData.h in Headers */, + 50676B3E69F865A99F78CB8BF3C1FDE0 /* SDLSetInteriorVehicleDataResponse.h in Headers */, + 09CD47E2B2DBAC5AAD45C21317330C84 /* SDLSetMediaClockTimer.h in Headers */, + 24F42C3E97FF7E9B0AA0358D00D9C3B2 /* SDLSetMediaClockTimerResponse.h in Headers */, + 0E7F23534544BF8C03808A24131664A3 /* SDLShow.h in Headers */, + DCCB73ABAEDCE1A79D4064B827A4A199 /* SDLShowAppMenu.h in Headers */, + 77E0636365C6ADFA34D3E1D40BD34575 /* SDLShowAppMenuResponse.h in Headers */, + 7AC571FC74816A8F25ACD12D756449C5 /* SDLShowConstantTBT.h in Headers */, + 6E3D28A6C67E2201C10090F45C743AC2 /* SDLShowConstantTBTResponse.h in Headers */, + CE860D295614DCB059C534EDA0E64B39 /* SDLShowResponse.h in Headers */, + 9DA96D9D62C66E1387A426433D1D0180 /* SDLSingleTireStatus.h in Headers */, + 66932F4CC3CD23BFE1DFE816A405E5B9 /* SDLSISData.h in Headers */, + 63A3F4D0CDCE1016D255C75D13EC7504 /* SDLSlider.h in Headers */, + D71547F3652CA341C38A8D6F220F2120 /* SDLSliderResponse.h in Headers */, + 70FE1E9B6DDA7F6EB3CC5F29BF782158 /* SDLSoftButton.h in Headers */, + C9FC2712FD59353F55017123EB379B15 /* SDLSoftButtonCapabilities.h in Headers */, + 3996BA8EF0729BA4914A1E52A157D86D /* SDLSoftButtonManager.h in Headers */, + B0A97A8C76EFC9A82EEDC2D7929E1EEC /* SDLSoftButtonObject.h in Headers */, + 460A09BF2FFCEB9D00FFB58ECCF7F7C1 /* SDLSoftButtonReplaceOperation.h in Headers */, + 0E0B9B7A4C8989D773E0D9852764BE23 /* SDLSoftButtonState.h in Headers */, + A4E3B6C1B43783D1FAA4E1CC40625BFA /* SDLSoftButtonTransitionOperation.h in Headers */, + 928086E89A6C7D79AF499C3E12F411D3 /* SDLSoftButtonType.h in Headers */, + DBA4C7F13AA39D73C5CC1DB14A0A6AB9 /* SDLSpeak.h in Headers */, + FBEF565E8C984AABB64F19512D5ADE76 /* SDLSpeakResponse.h in Headers */, + 46460D60D382738558332EE5529E7BEF /* SDLSpeechCapabilities.h in Headers */, + 2A1683EB0706F6F8EAAFF5E6959B7B3D /* SDLStartTime.h in Headers */, + 28E84A6A1F1BDD249D7EB18D110508F9 /* SDLStateMachine.h in Headers */, + 63C6BE616ADEE4D41DEDCC81327945AD /* SDLStaticIconName.h in Headers */, + B877A9A1393EAA6899BBBA1B83912AA0 /* SDLStationIDNumber.h in Headers */, + ADB73BBB02E97BCF7038D35756317AD2 /* SDLStreamingAudioLifecycleManager.h in Headers */, + 334D229652DFB8A0950B16CB079B9FC1 /* SDLStreamingAudioManagerType.h in Headers */, + E7C7BCA91C1B7925FF3236886B7C661C /* SDLStreamingMediaConfiguration.h in Headers */, + B5DAAC1FAC61166246C28B0C670BA05F /* SDLStreamingMediaManager.h in Headers */, + B891FD986004E64FAD5DBD9B5F711428 /* SDLStreamingMediaManagerConstants.h in Headers */, + 3232318E389CA8A1E52BAFA5F2C1F6ED /* SDLStreamingMediaManagerDataSource.h in Headers */, + EB385DA834293AC271339D75AF78F3FE /* SDLStreamingProtocolDelegate.h in Headers */, + E60C31BCA01176861E329F22E3E0E7E0 /* SDLStreamingVideoLifecycleManager.h in Headers */, + B22F7F10287D36689566D1A98DC3A8D5 /* SDLStreamingVideoScaleManager.h in Headers */, + D066E3D20D52ACFC367678312426430F /* SDLSubscribeButton.h in Headers */, + 778128EA09DA2FB70F0756AF8C4DE0AA /* SDLSubscribeButtonManager.h in Headers */, + CFD9812D61C603C043D630BB5F397E1D /* SDLSubscribeButtonObserver.h in Headers */, + 282A9379A10F52BF5C5D49932CBC0B22 /* SDLSubscribeButtonResponse.h in Headers */, + 004F6EEBA9E62438D6A1599A6B90672C /* SDLSubscribeVehicleData.h in Headers */, + 34173D2DD70127DF62B75CE23A170982 /* SDLSubscribeVehicleDataResponse.h in Headers */, + 897E5513A347BC1E367CA9F2C1F941CE /* SDLSubscribeWayPoints.h in Headers */, + FA2F2356937995D9DA09307906E52A31 /* SDLSubscribeWayPointsResponse.h in Headers */, + 9D0E273B9D1C3CD49BC10C2157792DBC /* SDLSupportedSeat.h in Headers */, + 19A6A6C5F102F44356A797E2F38E4443 /* SDLSyncMsgVersion.h in Headers */, + 15826D1DB258E41D27E6E3E5C6315F5A /* SDLSyncPData.h in Headers */, + 816906CF73001C8E4934FB8771610EDD /* SDLSyncPDataResponse.h in Headers */, + ADEC3628DFBEE6798F4B23763C1A92C7 /* SDLSystemAction.h in Headers */, + C2F592A1499AB4B47912EDA24EFBF491 /* SDLSystemCapability.h in Headers */, + 5A198FFEA19EF76603AB27CEB799AF79 /* SDLSystemCapabilityManager.h in Headers */, + 1ABFE6BF37268AFD497C1C336F5F54EE /* SDLSystemCapabilityObserver.h in Headers */, + 65D70E1DDF74B399D28ED6B4077F0FC6 /* SDLSystemCapabilityType.h in Headers */, + EC4C030E69EDB7ED01EAF333978D082C /* SDLSystemContext.h in Headers */, + E19B88D7A8B3DD5BB44A6A8A020B25E6 /* SDLSystemRequest.h in Headers */, + F203E56DA3EE44EB9FFDDDC5C49825CC /* SDLSystemRequestResponse.h in Headers */, + B6226AFDF8EC2EF9AFB9A54E8746D4E2 /* SDLTBTState.h in Headers */, + 07737B0114944A0D3B652F3B43EF0509 /* SDLTCPTransport.h in Headers */, + 7C9F95F79CF45BFC8E03B0954D18CBB6 /* SDLTemperature.h in Headers */, + A1275CC9FDC8F2175D1DC71D25332C6A /* SDLTemperatureUnit.h in Headers */, + EF4DCF74785D8396D212AAE785137F90 /* SDLTemplateColorScheme.h in Headers */, + 31FA9389F01B517A21968C079FB0F7AF /* SDLTemplateConfiguration.h in Headers */, + EEED8D96B2DECE2356CDBED6331960F9 /* SDLTextAlignment.h in Headers */, + EE121FDEC42443727301FA4327B5E85D /* SDLTextAndGraphicManager.h in Headers */, + 9BF5B7F3010DA88A9BF4F6F6B16227B4 /* SDLTextField+ScreenManagerExtensions.h in Headers */, + 98EA3B80A0B1142E33F52CBC82E6D596 /* SDLTextField.h in Headers */, + 70B31A172B881F2D7EC04BA2EC0D9440 /* SDLTextFieldName.h in Headers */, + 000CDD8FCEDE9376F89AB3F42D96722A /* SDLTimer.h in Headers */, + 0FEC36EC65956FCDE10B7AD3D03B3AA7 /* SDLTimerMode.h in Headers */, + BFC83F4E11869F5C6CD87BC9F91E123A /* SDLTireStatus.h in Headers */, + 667DD157108EB7E1B946CE0B82C8876C /* SDLTouch.h in Headers */, + 2A313B1672E3B5388BB705FE11F3066D /* SDLTouchCoord.h in Headers */, + DF389ED4CFCC4C49722FF32428C21F02 /* SDLTouchEvent.h in Headers */, + 195BDF65B263C2245DA85829BAB3235A /* SDLTouchEventCapabilities.h in Headers */, + 790D4202C8608711D71DEFA479151C5F /* SDLTouchManager.h in Headers */, + F7B7828265E8A71460813E695FF12C5E /* SDLTouchManagerDelegate.h in Headers */, + 54E2E06940B5DF1F43FCCDB95FBC7852 /* SDLTouchType.h in Headers */, + 89CF0DFE01D957DA8527799ABE3B1FA8 /* SDLTPMS.h in Headers */, + DF0F464852D0677F40806289EC180D71 /* SDLTransportDelegate.h in Headers */, + 500FD152C9497C38BE0B36C857027D6D /* SDLTransportType.h in Headers */, + C281C9947B10D00CE99D0A4880B05FA0 /* SDLTriggerSource.h in Headers */, + 608C377B709C7C5D8284B5331A22F2B4 /* SDLTTSChunk.h in Headers */, + 0E43D15AA5F1FD0B502ADB565D76215C /* SDLTurn.h in Headers */, + 7F580997F9720C55DD316BFD91C20488 /* SDLTurnSignal.h in Headers */, + EB06F65BAC152480E3E9C9F16199CB39 /* SDLUnpublishAppService.h in Headers */, + 44688FDFE801EB640910E77BCD4676C1 /* SDLUnpublishAppServiceResponse.h in Headers */, + E4E197C549F240B3BAAF1AC8DECE3A05 /* SDLUnregisterAppInterface.h in Headers */, + 5A05C8C3A39875B1AC0A46C18FAB7203 /* SDLUnregisterAppInterfaceResponse.h in Headers */, + 22F3EF5746CA33D946F1C1EB781D5D14 /* SDLUnsubscribeButton.h in Headers */, + EE5D946537A1DF4179774759EFFD6220 /* SDLUnsubscribeButtonResponse.h in Headers */, + 45F55718ACB758E98BA2735A380DC37F /* SDLUnsubscribeVehicleData.h in Headers */, + 0E28D0CF26FDE3DF127B22E91EC58828 /* SDLUnsubscribeVehicleDataResponse.h in Headers */, + B1D4313BE976C18539749F477ED2A75B /* SDLUnsubscribeWayPoints.h in Headers */, + 6536501943A353860D4FF7101CF32D06 /* SDLUnsubscribeWayPointsResponse.h in Headers */, + 288C523997A09EC027B619F7F3895078 /* SDLUpdateMode.h in Headers */, + EDEC92034597B5305FB581C52EC342C4 /* SDLUpdateTurnList.h in Headers */, + 3E84DCB02F0A0F92DEE9F035C7419B7C /* SDLUpdateTurnListResponse.h in Headers */, + 8D0B79BE234C74A8E6FCEC2B7AC0C0EC /* SDLUploadFileOperation.h in Headers */, + 08844BF14B2337C1EE9AEAC757BE8180 /* SDLV1ProtocolHeader.h in Headers */, + C6882A2AA7E8DF44215463FBBD0A5844 /* SDLV1ProtocolMessage.h in Headers */, + 9AC1E68F168FC9BD70C6F53284C18A09 /* SDLV2ProtocolHeader.h in Headers */, + 0928674585F59E61E7A886E8DE6C14E7 /* SDLV2ProtocolMessage.h in Headers */, + 73EE015CFC589C611F793F3F32B9EA6A /* SDLVehicleDataActiveStatus.h in Headers */, + 4AB72D0E36873D1317F92EEC019BDF58 /* SDLVehicleDataEventStatus.h in Headers */, + 571CEBE5B6BC6AA08B580FE03D8C64F2 /* SDLVehicleDataNotificationStatus.h in Headers */, + 6DBB70DED9927270DE107BB855A6561C /* SDLVehicleDataResult.h in Headers */, + 7F84AC5D276982D92B3A9F817B40899E /* SDLVehicleDataResultCode.h in Headers */, + 37D70E272826FAD2A7459E3052927215 /* SDLVehicleDataStatus.h in Headers */, + FB5303D0D0879E80AB215DAFA1F8075D /* SDLVehicleDataType.h in Headers */, + CFBCEFA39678BB8EFED556C4C4E393C8 /* SDLVehicleType.h in Headers */, + 4F25F4D7F19E1F2FC5B08AE99801DAE6 /* SDLVentilationMode.h in Headers */, + 76A0F62D7F2B3A10ED98DDD5FA7E0D73 /* SDLVersion.h in Headers */, + A1EB1E865A03EC4D69C80EB755A77CDD /* SDLVideoEncoderDelegate.h in Headers */, + CC7B499C32833CC21989CB78BF57BD8D /* SDLVideoStreamingCapability.h in Headers */, + BDD7F9A3576E6AB17083ADB2CB825B21 /* SDLVideoStreamingCodec.h in Headers */, + DDF86259DDD170BA0A4E196E4091693D /* SDLVideoStreamingFormat.h in Headers */, + B9B40F9E3886D12F34F89C1991503195 /* SDLVideoStreamingProtocol.h in Headers */, + 07EA124701A0E2A13034C57CBFADCD56 /* SDLVideoStreamingState.h in Headers */, + 4F106B6602723F06DE807FEC15B46F84 /* SDLViewControllerPresentable.h in Headers */, + A81D5EC3B4B6F201C3603E3DAD6D8D60 /* SDLVoiceCommand.h in Headers */, + 17CA7FE9B07526278051C7A56EB7963D /* SDLVoiceCommandManager.h in Headers */, + 3ACD9797CEF78B50A3D83645939DB07E /* SDLVrCapabilities.h in Headers */, + 7797B6005DA53531D352BB960AE6EC19 /* SDLVrHelpItem.h in Headers */, + D73ADEB3AC0387951C53E6960FA055E7 /* SDLWarningLightStatus.h in Headers */, + DFD13BF6A7E6D738C7D1630542AF5872 /* SDLWayPointType.h in Headers */, + 2A7C7C18EC434E6BD10F0AC42D3C7241 /* SDLWeatherAlert.h in Headers */, + 53BC9C01093F61CF20D0CF465FA37E8F /* SDLWeatherData.h in Headers */, + FC73D4BF63D50DEE5A7168F8D9F1913D /* SDLWeatherServiceData.h in Headers */, + 6E2D4B80A9BADA0A13B7E8FC6F25DB13 /* SDLWeatherServiceManifest.h in Headers */, + BF9446AB36AF25C269305E518A6FEF66 /* SDLWindowCapability+ScreenManagerExtensions.h in Headers */, + CB791B74CA451436BBDA8DBA49F32388 /* SDLWindowCapability.h in Headers */, + 1FC3717780F9C340D3CDA0E3B746A46E /* SDLWindowType.h in Headers */, + 43963E4F4E8BD7A5A13BE8BC32F2D88B /* SDLWindowTypeCapabilities.h in Headers */, + B4A68E8A12DB0394DFCDAC1D5C57270D /* SDLWiperStatus.h in Headers */, + 190106E955FF3E05FEC02D5F58304C32 /* SmartDeviceLink-umbrella.h in Headers */, + E0A861742905E7E47078908A5C2A0AD3 /* SmartDeviceLink.h in Headers */, + AFBA83A49C18D3400B678ED151AA501B /* TestSubscribeButtonObserver.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 80D22BB0358122D6924BDD518FC87D4B /* Headers */ = { + 1901E553EF7960531A828B98ACF2AA7D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - C8CE5EB649E1C10ECDA088CC6E53D487 /* CGPoint_Util.h in Headers */, - 7462ECF43D6F46BF304953FF4F06DF9C /* CVPixelBufferRef+SDLUtil.h in Headers */, - D51475FCE0E2024873BF20E3DC6E984D /* EAAccessory+SDLProtocols.h in Headers */, - 48F332FAF2668AC6AEE9652BAFA7E8E9 /* EAAccessoryManager+SDLProtocols.h in Headers */, - 5122E43189822CFA912FF5442E49F767 /* NSBundle+SDLBundle.h in Headers */, - 647A5E0ECA0ADC3528B86763362A0924 /* NSMapTable+Subscripting.h in Headers */, - 3292D382EAD8519DAC1AE0E10F4D5062 /* NSMutableArray+Safe.h in Headers */, - 39DC456DDBBAD48E26F6455BBBE56443 /* NSMutableDictionary+SafeRemove.h in Headers */, - DABDCA12A6E91B9A065F97B7A9C5BFFE /* NSMutableDictionary+Store.h in Headers */, - 5E6226967B8FBB946A53C86E6730FC47 /* NSNumber+NumberType.h in Headers */, - 733B8F6B2D6794F76EC54A74E1BF9391 /* SDLAddCommand.h in Headers */, - 974F61EC8063CE5073BACEC8FB26D73C /* SDLAddCommandResponse.h in Headers */, - 145286E6935D42A4892E1B68B64CEE1D /* SDLAddSubMenu.h in Headers */, - 1299B38E94144A30AE45024F7CC05532 /* SDLAddSubMenuResponse.h in Headers */, - D9AB3140951E8AAE2F2D9B4B5231CB1A /* SDLAirbagStatus.h in Headers */, - FEE7490180AF75B55DD253B9ADE512F5 /* SDLAlert.h in Headers */, - 874054E606BCA76A8EB634D9E108F2B8 /* SDLAlertManeuver.h in Headers */, - 839759EA6DB888BEF170B204E7533E87 /* SDLAlertManeuverResponse.h in Headers */, - 45B89DB4BC754CABE301F3976E817DDF /* SDLAlertResponse.h in Headers */, - A5BF758FF15B8A1CA545BCABF3ED58F9 /* SDLAmbientLightStatus.h in Headers */, - A9D3D0CE7B2A739C7873A2FFE9AF4E46 /* SDLAppHMIType.h in Headers */, - B72434B441A18026A9032BFCDB7C3C1C /* SDLAppInfo.h in Headers */, - 4BA7B8B616FE3C0AE1EC144263805DB5 /* SDLAppInterfaceUnregisteredReason.h in Headers */, - EE67E315BD67A87FF40C84C77AA35394 /* SDLAppServiceCapability.h in Headers */, - 9FF51D0DFFAEE08A3ECA62113D394DB1 /* SDLAppServiceData.h in Headers */, - 94CD4C275A0079DB1B44313AFB8C9157 /* SDLAppServiceManifest.h in Headers */, - 5BF9A79E2DB2C57D1AAB763884F1F50B /* SDLAppServiceRecord.h in Headers */, - 023E2436FD8188E9E8A6CA420BC6D170 /* SDLAppServicesCapabilities.h in Headers */, - 669E7D9BE46C978941CAF921CD8448E8 /* SDLAppServiceType.h in Headers */, - 38939F69AF45C6D6B3EFAAC3218AB7C1 /* SDLArtwork.h in Headers */, - E127F3F478549E5907B2850B362FED22 /* SDLAsynchronousOperation.h in Headers */, - C014B97737D79AA488368329DD9B9BE8 /* SDLAsynchronousRPCOperation.h in Headers */, - 2DAF25E7B98FBEF6D7DD2435E1AE63F5 /* SDLAsynchronousRPCRequestOperation.h in Headers */, - D4CE05EE4A4C7BED2C1545256717844E /* SDLAudioControlCapabilities.h in Headers */, - F752F614709B9EEA82F86F4A62BEA66C /* SDLAudioControlData.h in Headers */, - F7DAA886D075CA259411B3B7A6395EA3 /* SDLAudioFile.h in Headers */, - D418AC49F67AAFA470ED4D742ACCB12D /* SDLAudioPassThruCapabilities.h in Headers */, - 97FBF30CCEA2FD94D7297C91E5D8DE21 /* SDLAudioStreamingIndicator.h in Headers */, - D72091B46BA87644DA72787424704D7E /* SDLAudioStreamingState.h in Headers */, - 60680334C6656A73B54B98D1D6062EC2 /* SDLAudioStreamManager.h in Headers */, - 3F5A069FA9FFA9506975ECAA644E389B /* SDLAudioStreamManagerDelegate.h in Headers */, - AA1D9E2BA2787A6184069465AC5831FA /* SDLAudioType.h in Headers */, - B31FFC503045F9D0FD85A82167BB51EB /* SDLBackgroundTaskManager.h in Headers */, - 3C875631F98D94D88FC9E91933B2C190 /* SDLBeltStatus.h in Headers */, - 02AB9B1AA28B31228B74A8126EA4F6E9 /* SDLBitsPerSample.h in Headers */, - 91F691863F419908423A46BD4884281D /* SDLBodyInformation.h in Headers */, - 90C56DC843F06A3447BBF31BD8347720 /* SDLButtonCapabilities.h in Headers */, - E95A6B40C522978A7B5C7048F5CEA422 /* SDLButtonEventMode.h in Headers */, - 4B98282E2AA74AA1026B2A51C6111F68 /* SDLButtonName.h in Headers */, - C7A212D73E761420B4E79A2901DD389C /* SDLButtonPress.h in Headers */, - 8761C5C5FAE98F01177293BEF5214671 /* SDLButtonPressMode.h in Headers */, - 61E51A232CFFA49D07A9D4BBEB33C394 /* SDLButtonPressResponse.h in Headers */, - 27B426645465AF05B798A3058FCE6D44 /* SDLCacheFileManager.h in Headers */, - 6FCD8781D26DE624CA3BE497CAB3C388 /* SDLCancelInteraction.h in Headers */, - 25FE556376226762A75B4CB7AAF596BC /* SDLCancelInteractionResponse.h in Headers */, - A3E201F3B3EB3232CE70F87323B1AE4A /* SDLCarModeStatus.h in Headers */, - 416C55C12904245979B370B13EDE13C0 /* SDLCarWindow.h in Headers */, - 51558A65B02D8B1FBF6385B3763DBACB /* SDLCarWindowViewController.h in Headers */, - 5BD31D6CFFAA15DBF142536BA3BD94EE /* SDLChangeRegistration.h in Headers */, - C7B9447E9D84622A6C05BCCA146CB768 /* SDLChangeRegistrationResponse.h in Headers */, - 4AE20BD11A94133B07C8EADCD51AEF47 /* SDLCharacterSet.h in Headers */, - 4EB7EF3C3B8A753DE2CD8976DAC11678 /* SDLCheckChoiceVROptionalOperation.h in Headers */, - D92C780614F70CBC8E9275E0B7FF117A /* SDLChoice.h in Headers */, - 7A1CDB9C2A552A2EDA566CE7B61B02FA /* SDLChoiceCell.h in Headers */, - BFEE044D016834F2B5E66E50008B1229 /* SDLChoiceSet.h in Headers */, - 251BAE21F7CECAFA6F0EE5688FACF319 /* SDLChoiceSetDelegate.h in Headers */, - 82FFF51387E80FCEDA5352282339DB5E /* SDLChoiceSetManager.h in Headers */, - E0B1ED0FAEF62E7A9ECDE44B4C2834F7 /* SDLClimateControlCapabilities.h in Headers */, - AB470733A71B7A4336A54B799BB903D7 /* SDLClimateControlData.h in Headers */, - 6389FBC37D9B7A5FCE86628A648D6023 /* SDLCloseApplication.h in Headers */, - 1F50DF24E9A0014A9BCFC634EC76C186 /* SDLCloseApplicationResponse.h in Headers */, - 28498442BCD463C896D1E9738D30D149 /* SDLCloudAppProperties.h in Headers */, - 6A10282A596AAC26FD1C0C7C25D5B703 /* SDLClusterModeStatus.h in Headers */, - 4B8B28A242A8DDEF1B1FB81CBF000F1C /* SDLCompassDirection.h in Headers */, - A72A34CB87D792D08B1E2FB164AB3947 /* SDLComponentVolumeStatus.h in Headers */, - 9BFCD1634ABB1FFE13CFD4447FCE9CB7 /* SDLConfiguration.h in Headers */, - 3A824D7618A73311D7673B00D46ECBA0 /* SDLConnectionManagerType.h in Headers */, - 0E07F39B9DC463DCFC8D2D7E96CEB223 /* SDLControlFramePayloadAudioStartServiceAck.h in Headers */, - FEF44E1D08BCE16AEDBF9C6B8C33E647 /* SDLControlFramePayloadConstants.h in Headers */, - 41C627171A616D718ABDDC5E9298BCDD /* SDLControlFramePayloadEndService.h in Headers */, - D2FDF52D5353CA1AE6DE662BA066B310 /* SDLControlFramePayloadNak.h in Headers */, - F3E03877BAD0D44D99FF726626072704 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h in Headers */, - 312252BAF5168F0452B6032AF7262088 /* SDLControlFramePayloadRPCStartService.h in Headers */, - E9842B3A085EBC79B367D1EBCF4D3EDA /* SDLControlFramePayloadRPCStartServiceAck.h in Headers */, - EF6207A4CDB7229EECBD4E564185CB8E /* SDLControlFramePayloadTransportEventUpdate.h in Headers */, - 261863B80132A0BC07FDDDCF74A88507 /* SDLControlFramePayloadType.h in Headers */, - FCECADD9A357293803247BC3C76A9503 /* SDLControlFramePayloadVideoStartService.h in Headers */, - 9A48AC603DDEF5B24BD4076C2290AFC2 /* SDLControlFramePayloadVideoStartServiceAck.h in Headers */, - 8772FCEC5E9710246CEE8FBCA4019860 /* SDLCreateInteractionChoiceSet.h in Headers */, - CF556B40CBEAB213E7FB5AB37B3A8F78 /* SDLCreateInteractionChoiceSetResponse.h in Headers */, - B970D6C4028085CF32C4082F353EA558 /* SDLCreateWindow.h in Headers */, - A399E20CA220D299A8DF309E86426D1A /* SDLCreateWindowResponse.h in Headers */, - 667074D7329FC4A6C93D491CCA95AD28 /* SDLDateTime.h in Headers */, - 3FDEB76B1310B44C542A23A99FFDC12A /* SDLDefrostZone.h in Headers */, - 68A818CEEC6D3464F1F342FDA6F2A589 /* SDLDeleteChoicesOperation.h in Headers */, - CB96E61276D98E9A7E6EE9EA13F73E4A /* SDLDeleteCommand.h in Headers */, - 0F6A60ED43283E82D2B9D2B44891F791 /* SDLDeleteCommandResponse.h in Headers */, - 93415208EBEF817C98ADBD5036CA1B2E /* SDLDeleteFile.h in Headers */, - D8A98474F332772BCCBB7FCCF0B24758 /* SDLDeleteFileOperation.h in Headers */, - 0D4E9787AFBEBE399ED33BC220BBF5DB /* SDLDeleteFileResponse.h in Headers */, - 6B8AD2A80230C69999C2557111A863D6 /* SDLDeleteInteractionChoiceSet.h in Headers */, - 670B776F551B36D554119FB8026FE32F /* SDLDeleteInteractionChoiceSetResponse.h in Headers */, - CE33E214C4EF7F657B4E1A730C50298B /* SDLDeleteSubMenu.h in Headers */, - 83D2CD65D5D95573F01977E99B1D75E0 /* SDLDeleteSubMenuResponse.h in Headers */, - 65740342F23043EC9699F09D611C30B3 /* SDLDeleteWindow.h in Headers */, - A44C2604ED15FF19CA61B1C3536DED7C /* SDLDeleteWindowResponse.h in Headers */, - 48EC5046C8C0F0F88B2D70EFCC70A55B /* SDLDeliveryMode.h in Headers */, - E3D8E77FFD3C3CCD8FEF0CB36D65603B /* SDLDeviceInfo.h in Headers */, - 279BC5E11138599E41CC590BC89D4968 /* SDLDeviceLevelStatus.h in Headers */, - C3E54CEBB8FB78A7494CE9DFF3058933 /* SDLDeviceStatus.h in Headers */, - 04AC3A2D5D8EA70CD7DC71985028059E /* SDLDiagnosticMessage.h in Headers */, - 011DC22B43225C9180D2B058811D31AA /* SDLDiagnosticMessageResponse.h in Headers */, - E1C6FEC796F238A0D768AEEF13D8BF2F /* SDLDialNumber.h in Headers */, - A5D2E31993A8DFCCE1145E7CEF4A1A55 /* SDLDialNumberResponse.h in Headers */, - 43433209F0A6AEBBC66F9C2C0C3677FB /* SDLDIDResult.h in Headers */, - 36DE87793D478673E902B66BA865E0B3 /* SDLDimension.h in Headers */, - DFB776F630297A0329B965599E305013 /* SDLDirection.h in Headers */, - 1CCDD2195B5F545AC27DCDEEE82662AD /* SDLDisplayCapabilities.h in Headers */, - B026E62AE7AA73A7E308CEA35706423D /* SDLDisplayCapability.h in Headers */, - EDD61F460E67ABD6093235C76D0B3030 /* SDLDisplayMode.h in Headers */, - 1DD7C0B18941D631AC369A549BCCF337 /* SDLDisplayType.h in Headers */, - 80FDD0C4DF99B717DD2CC97FC228F91B /* SDLDistanceUnit.h in Headers */, - 5FF666CC71C873FC835E1C8473DCC044 /* SDLDriverDistractionState.h in Headers */, - 366DB00DE052ED5F95A0CBBB863657F9 /* SDLDynamicMenuUpdateAlgorithm.h in Headers */, - EF10AC48D2719E2DFB43ACCF6D899D0D /* SDLDynamicMenuUpdateRunScore.h in Headers */, - 5A47D62F5F8F9C203469C13B913B1462 /* SDLECallConfirmationStatus.h in Headers */, - C09F0A16E73306D9023FB1ABA362D8B1 /* SDLECallInfo.h in Headers */, - 44812B4C0E8553CE1C5270014C84E4E8 /* SDLElectronicParkBrakeStatus.h in Headers */, - 1DCA61545F36E072ADB3AC5B84120804 /* SDLEmergencyEvent.h in Headers */, - 4D7E7BA2A3F3F8258536082B0A8C408F /* SDLEmergencyEventType.h in Headers */, - 305E19FA7E71E7AC503766BD40DF92D4 /* SDLEncodedSyncPData.h in Headers */, - FD44AF223147172C11BA5AF146AFD8EB /* SDLEncodedSyncPDataResponse.h in Headers */, - B0A8D6493BC79BDED329310810FC6B7C /* SDLEncryptionConfiguration.h in Headers */, - 8B60E0077AA57B200EE99D7969CE5725 /* SDLEncryptionLifecycleManager.h in Headers */, - 5096182474D6C15A6B0FFAB419190E81 /* SDLEncryptionManagerConstants.h in Headers */, - BD0935CAB7454504F8A936DC7D9E8DBF /* SDLEndAudioPassThru.h in Headers */, - B646EC4DD347FE666670BB8E8FABA6B2 /* SDLEndAudioPassThruResponse.h in Headers */, - 03FD1A58E5CE6B4F5D7AC73BD8F04106 /* SDLEnum.h in Headers */, - 50AE63D8332621CC3493C807B8134262 /* SDLEqualizerSettings.h in Headers */, - DE972E82D89194FE5744335794CB8894 /* SDLError.h in Headers */, - DB0A2637AAC77D579CEAE3A3B0B7A781 /* SDLErrorConstants.h in Headers */, - E09A6ED07FF88A2B3DFCAD50F1598689 /* SDLFile.h in Headers */, - C81F5A18F9170388C41F9D93C9EF4103 /* SDLFileManager.h in Headers */, - 0AC91200FA1934E943493ECCC8136122 /* SDLFileManagerConfiguration.h in Headers */, - E395F72E06B6F2E54CE0B4977F3FAABD /* SDLFileManagerConstants.h in Headers */, - C67BB4B67598E1831EEBDDD9DD3D4342 /* SDLFileType.h in Headers */, - BDC97FB8252F310E34C402C05D46F82F /* SDLFileWrapper.h in Headers */, - 33735964ECB1F41B90FED9693684FC6A /* SDLFocusableItemHitTester.h in Headers */, - 8CE0DA79C4FDC864AE221A3E92471547 /* SDLFocusableItemLocator.h in Headers */, - B5B97B24E95245BBFA545A415B906F21 /* SDLFocusableItemLocatorType.h in Headers */, - C913D3DD8C730B92D2A8BBC72947580A /* SDLFuelCutoffStatus.h in Headers */, - 4EE7DC6A8E300AECCAD774FC04C06CC7 /* SDLFuelRange.h in Headers */, - 6EC13292E4664E664044A60BCE60965F /* SDLFuelType.h in Headers */, - 50FB6AFA657CFB352989099D13102F5B /* SDLFunctionID.h in Headers */, - 31FE459EED3422D6D52406195997A5B5 /* SDLGenericResponse.h in Headers */, - 48A87FEEBAB7CDD8F8361A46EA1A6EEC /* SDLGetAppServiceData.h in Headers */, - AB52007367A5C4AB6820326CBAEF5F65 /* SDLGetAppServiceDataResponse.h in Headers */, - F0900CEC7175AD4E95776489973B213F /* SDLGetCloudAppProperties.h in Headers */, - 87A6792BA6AC2CE0161CFEF34F119059 /* SDLGetCloudAppPropertiesResponse.h in Headers */, - 172F0217F50B3802792873291333615B /* SDLGetDTCs.h in Headers */, - 61FAC7102046B7AA02E77C61022505B2 /* SDLGetDTCsResponse.h in Headers */, - 92238BCEA4DFDFAA71A87191E4ECD566 /* SDLGetFile.h in Headers */, - 26C8FE72C49E22979FB3F49A0D007AB4 /* SDLGetFileResponse.h in Headers */, - CD2FA1C8839FD6FE08DCC8A97DF7220F /* SDLGetInteriorVehicleData.h in Headers */, - 86DB089944ED1B94905A6348FF65F560 /* SDLGetInteriorVehicleDataConsent.h in Headers */, - C406A5BDF00EF83E462C9746291C2A95 /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */, - 45E837C2448C3A2E325E1F3C704DDDDB /* SDLGetInteriorVehicleDataResponse.h in Headers */, - 07FE270AE156157348A04C871085DC67 /* SDLGetSystemCapability.h in Headers */, - 8D061CCDAEEC859B14DA87086D16829C /* SDLGetSystemCapabilityResponse.h in Headers */, - 389E330EA7204E8C246622D7B2C64206 /* SDLGetVehicleData.h in Headers */, - 174101305620EC2BDD86A2324EAD2250 /* SDLGetVehicleDataResponse.h in Headers */, - 5F86B7F362E3DB2F5EADF6A81651C848 /* SDLGetWayPoints.h in Headers */, - FAD93E03EE1003989F8A89BE6F9E992A /* SDLGetWayPointsResponse.h in Headers */, - B8BDB8F2E45BF5101B5E5B926C88A2C5 /* SDLGlobalProperty.h in Headers */, - E605233B33437E5342710523DC192F16 /* SDLGlobals.h in Headers */, - 5F41FC573ECCB166C8CEA257C47841FA /* SDLGPSData.h in Headers */, - D08B9207BDA690B3F378DBC655D97704 /* SDLGrid.h in Headers */, - D1B56E95735916F4717FEEA32F73CD30 /* SDLH264Packetizer.h in Headers */, - 24863AF1DC6EA3BBCDC32937F67E71A6 /* SDLH264VideoEncoder.h in Headers */, - FFD72484C274C1D4F2A4EC9B8A2D38C5 /* SDLHapticRect.h in Headers */, - 1B7FC0D068CB65F067EE1EF97AE651EF /* SDLHeadLampStatus.h in Headers */, - 23F309309CBB2F13AE5498C66F9CBBA4 /* SDLHexUtility.h in Headers */, - D0F7A93036C76522C1F67732C96D2A85 /* SDLHMICapabilities.h in Headers */, - 28B1880871255ABAB7B693DB477BE2BF /* SDLHMILevel.h in Headers */, - 70756AAE89B977A4D161441924CA9238 /* SDLHMIPermissions.h in Headers */, - 3F142C8529F267AEEDB407067747D466 /* SDLHMISettingsControlCapabilities.h in Headers */, - AF04041B21448126565DE1FF073E50F3 /* SDLHMISettingsControlData.h in Headers */, - 313D3F6741CB4A876DC870D6950185BD /* SDLHMIZoneCapabilities.h in Headers */, - F736EA12A3CF2B12ED63AD84085A768B /* SDLHybridAppPreference.h in Headers */, - 2280C3166A90D6C9945AE301208FA48F /* SDLIAPConstants.h in Headers */, - 663348139A84842D9DC8B687D034FAA3 /* SDLIAPControlSession.h in Headers */, - DBB1C2E6DDFF5465334168A7BE0F8356 /* SDLIAPControlSessionDelegate.h in Headers */, - EDCF0D12F91D225EE21FC90B90DF45B0 /* SDLIAPDataSession.h in Headers */, - FA62FBB392579EFE2754A875108A4301 /* SDLIAPDataSessionDelegate.h in Headers */, - 7456AC0029B0ED5013845EF8690B4800 /* SDLIAPSession.h in Headers */, - 4F09D2BD66940623B09B41ABAF668917 /* SDLIAPTransport.h in Headers */, - 4B3D121041EA80CF0A6C54EEDC4D567F /* SDLIconArchiveFile.h in Headers */, - 50C89E8901B132F3463B7FD73E2A7DF9 /* SDLIgnitionStableStatus.h in Headers */, - 9581012BA1BF244C1798CC9F0F8FD912 /* SDLIgnitionStatus.h in Headers */, - 95D89B876490D16D030AA0D34B6A405C /* SDLImage.h in Headers */, - AEB12E59859E89B338584DD02E72BBDD /* SDLImageField+ScreenManagerExtensions.h in Headers */, - 245F13ECAB0929AEE2AEEDE7127267E2 /* SDLImageField.h in Headers */, - 53A4C5BB897DE00C73D04FE9C798A378 /* SDLImageFieldName.h in Headers */, - 532CBAD7F7203330EB116F867D78AD94 /* SDLImageResolution.h in Headers */, - 32210BF5CC463E9D45B351AC51D3701C /* SDLImageType.h in Headers */, - 8D8A4A26C3D88C9A288A0BE158F5AECC /* SDLInteractionMode.h in Headers */, - 1129F96669BD2895C203A36F68AC5039 /* SDLKeyboardDelegate.h in Headers */, - 5D956CAE93765CF2D19F46066504001A /* SDLKeyboardEvent.h in Headers */, - 4459DBDBAC2274C4C6A3562284C82CD4 /* SDLKeyboardLayout.h in Headers */, - A61C1EA4AAC054DCFD62C8E3E430B5C2 /* SDLKeyboardProperties.h in Headers */, - 8648110FFEF2D75F6B7F55C32146724C /* SDLKeypressMode.h in Headers */, - 41B5F7422392AF0E4913343AA37DFC09 /* SDLLanguage.h in Headers */, - C6A5D68AC8EFB53B34D18E8C12FD5CA0 /* SDLLayoutMode.h in Headers */, - 98A982A0D23CBE76B4B9481EBC5B7DCC /* SDLLifecycleConfiguration.h in Headers */, - 5DEB98011444C5BCFC62E391A0AC0074 /* SDLLifecycleConfigurationUpdate.h in Headers */, - B3C93590B5B3FC4891ECC8B30EFEE2D0 /* SDLLifecycleManager.h in Headers */, - 8D65C40824DFE60D525CED2C023A0F7A /* SDLLifecycleMobileHMIStateHandler.h in Headers */, - 0A5F18BE6407FA7AAC0208B310CCA32F /* SDLLifecycleProtocolHandler.h in Headers */, - 693B129F38CC2B703FD8A7F08CB78C2F /* SDLLifecycleRPCAdapter.h in Headers */, - 81A2EE8BC56912D7216441DA5841C2DC /* SDLLifecycleSyncPDataHandler.h in Headers */, - EC0A56B098D4D9D2DEC520EF28D878C3 /* SDLLifecycleSystemRequestHandler.h in Headers */, - 75F75168E87F0477AF56A4433120E337 /* SDLLightCapabilities.h in Headers */, - 30170E4981190642C08902283DA8EA15 /* SDLLightControlCapabilities.h in Headers */, - EF19B8608648A79B8FB439746726C03D /* SDLLightControlData.h in Headers */, - F4D3DCD1482DC7169320000B0CFD58FC /* SDLLightName.h in Headers */, - F2B7CC9ADABB102423469D03817D6EEB /* SDLLightState.h in Headers */, - 1CDF2C5793F2F158F1C6972F6555B83C /* SDLLightStatus.h in Headers */, - 56EE8DEB476EB170BA3E5B106F3C05CD /* SDLListFiles.h in Headers */, - 0C842D098EED306B734C442A93C4D3B0 /* SDLListFilesOperation.h in Headers */, - 603D7B56C9C81FD06C3EC810D7D782F7 /* SDLListFilesResponse.h in Headers */, - A47AA1D939A83E24760E8911CD07437E /* SDLLocationCoordinate.h in Headers */, - 4E10FE11AA345AB32DF8C2C78AC72945 /* SDLLocationDetails.h in Headers */, - 10E36D3AD6990D109C03EF220CB91E32 /* SDLLockScreenConfiguration.h in Headers */, - F2D2FD0B10D0FFD8AE6299BD90601122 /* SDLLockScreenManager.h in Headers */, - B8A5382FC2441B722AD2C82A370DA111 /* SDLLockScreenPresenter.h in Headers */, - 90ECAE46CCBED46C36E8BB36C3A8B080 /* SDLLockScreenRootViewController.h in Headers */, - B6B9DB34FF134B3C30ABBA52DC9F9E0C /* SDLLockScreenStatus.h in Headers */, - 89C7621F6C964ED4A80F6EDAEF5508C1 /* SDLLockScreenStatusManager.h in Headers */, - 143FEB3EE4BC244DDD88E14344D6B76C /* SDLLockScreenViewController.h in Headers */, - C9D33DEDBE5109B9371CCF78FA4B5192 /* SDLLogConfiguration.h in Headers */, - 0F3B5FE619F16BEE1403425BD8C7F520 /* SDLLogConstants.h in Headers */, - 310677899FEA4BEC324AEC113080A4F5 /* SDLLogFileModule.h in Headers */, - 962B115D078E230C22DA4E91AA804C82 /* SDLLogFileModuleMap.h in Headers */, - D804E00C1E99EF81AE7B9E9BD98FDCF7 /* SDLLogFilter.h in Headers */, - C2AF1FA0B237ECE3973A4D955B834D62 /* SDLLogMacros.h in Headers */, - AF46DF04E283DA2C025B970031AFCEF5 /* SDLLogManager.h in Headers */, - EBF9DDBD069ECC7C4BF0C8C6092DC67C /* SDLLogModel.h in Headers */, - 609D59858F614E865E35B9047D721B55 /* SDLLogTarget.h in Headers */, - 8AD486A4ADCD0FF1DAF25B7345927219 /* SDLLogTargetAppleSystemLog.h in Headers */, - 2CEEFA0305B7075B60D8A82D8C7AE3C7 /* SDLLogTargetFile.h in Headers */, - 1283216835F6ABF78E4E5E54EA7962E0 /* SDLLogTargetOSLog.h in Headers */, - 2CB612FCC5FC2844742A9D63064C0735 /* SDLMacros.h in Headers */, - 6D90411B199CDB756ECFF1B520D943CA /* SDLMaintenanceModeStatus.h in Headers */, - 63D0F548923E6CCF260C1B0B8FAC6765 /* SDLManager.h in Headers */, - AE9BD968DDEABA9836A36574FD0D8833 /* SDLManagerDelegate.h in Headers */, - A8B394A4B621EDC8A9808654867417AA /* SDLMassageCushion.h in Headers */, - 719F1510793284941FE5BF903CA15B03 /* SDLMassageCushionFirmness.h in Headers */, - 6F0DF2DDAA5289F5AFFC0E041C66C3DD /* SDLMassageMode.h in Headers */, - CB5893572A2A29A05C47351C7D774B1E /* SDLMassageModeData.h in Headers */, - A16DD1665116466714C5965E5600EB3B /* SDLMassageZone.h in Headers */, - 5936185F7F9BDEA038CBC25861A7B800 /* SDLMediaClockFormat.h in Headers */, - DE63E79D4F876DB8F9EE94E01C7D5069 /* SDLMediaServiceData.h in Headers */, - 67692FE28D4340CE9F1E21ED290A7BF4 /* SDLMediaServiceManifest.h in Headers */, - D5FF4F7258D11BD646907C8BBC834823 /* SDLMediaType.h in Headers */, - 261E2ED889FAC8724554E6B02245D729 /* SDLMenuCell.h in Headers */, - F8442F1675B44DFC70114DBE8650387E /* SDLMenuConfiguration.h in Headers */, - B6DEB8B6987E3DC830711BB697BB2EA5 /* SDLMenuLayout.h in Headers */, - FEFA37AA6D063CAC96E0FA294F03339E /* SDLMenuManager.h in Headers */, - 67EF13392843998F139806BCF4599AEA /* SDLMenuManagerConstants.h in Headers */, - A3609858C4CC85B82B2DB5EE1F16DCB8 /* SDLMenuParams.h in Headers */, - 180E06FF7C4938D1766280C11FB4E657 /* SDLMetadataTags.h in Headers */, - 83A82DBF4D25D51D1476CD1761FD8193 /* SDLMetadataType.h in Headers */, - 78DD03DE1F2E1CDAF6EFBE85FB271659 /* SDLModuleData.h in Headers */, - 2C7676C5700FEDFB6F40906E87614915 /* SDLModuleInfo.h in Headers */, - 1CDB4452916538DA9605B54CD9CF9253 /* SDLModuleType.h in Headers */, - 4B557114510641E1C5179A13E20947C2 /* SDLMsgVersion.h in Headers */, - 48D2F37A0323E42FA7F9720CD932C164 /* SDLMutableDataQueue.h in Headers */, - 558629DF1394586DBF06BA79BC133AFC /* SDLMyKey.h in Headers */, - C8AFD07137303A4BAA1E27BE76C2476E /* SDLNavigationAction.h in Headers */, - C3A36F166899F2091ACC48FBC1F71D97 /* SDLNavigationCapability.h in Headers */, - 72F95D970F57DD3D099831677FBD44F6 /* SDLNavigationInstruction.h in Headers */, - CAD42BB6B985BECA56F3CED84173A6E4 /* SDLNavigationJunction.h in Headers */, - 105369E74A34167632F2CE1FEEC4B7CC /* SDLNavigationServiceData.h in Headers */, - 3E1C27FA8FB062F1EBF23125ECF0DCC7 /* SDLNavigationServiceManifest.h in Headers */, - 7ED73AD3B2A398A24F0F5F902C2BEC7E /* SDLNotificationConstants.h in Headers */, - 414659B4BBF380B05FB6D14228116399 /* SDLNotificationDispatcher.h in Headers */, - F9B2C89631AA9232F9CB801641DAC31E /* SDLOasisAddress.h in Headers */, - 8FB139DC468B629C24AE83DDCA703344 /* SDLObjectWithPriority.h in Headers */, - 853FBDDD33406416B3CD92C116D48527 /* SDLOnAppInterfaceUnregistered.h in Headers */, - B8E6DEEB54803908A1463045917D1DAA /* SDLOnAppServiceData.h in Headers */, - BF742D0DA92B99A103C7C83E1B811C38 /* SDLOnAudioPassThru.h in Headers */, - 3D7803B431EF484181D70B0FD36525D1 /* SDLOnButtonEvent.h in Headers */, - 63A78859EA9AFE1590C58ED29AD1773E /* SDLOnButtonPress.h in Headers */, - AC445B1933708F21D8AF1D6AF2FB074A /* SDLOnCommand.h in Headers */, - F1795858A80044888465909C25A2D3C6 /* SDLOnDriverDistraction.h in Headers */, - 17CECF9E5DD0110F7D4844C33B8355D1 /* SDLOnEncodedSyncPData.h in Headers */, - B894F5782F2E7E7BC34056A80B601A6E /* SDLOnHashChange.h in Headers */, - 8481C28E972233354B8C968975D53DED /* SDLOnHMIStatus.h in Headers */, - 8EAC634A23B80D6CD82059550A5F6A95 /* SDLOnInteriorVehicleData.h in Headers */, - 33B2BF8E23DFF5A3C417CD80CD43CC32 /* SDLOnKeyboardInput.h in Headers */, - 0E3ECC9ABD6472D32DC6E58A3E08B44E /* SDLOnLanguageChange.h in Headers */, - 21675C3CF6D3BF02A34431A59D05325A /* SDLOnLockScreenStatus.h in Headers */, - 10FDDEDD0CB42C86BE626249764D1B85 /* SDLOnPermissionsChange.h in Headers */, - 23A7D1922ACCA1C1A1469D21A8AAAC31 /* SDLOnRCStatus.h in Headers */, - DF81482006B1DD064059CD729193F9FE /* SDLOnSyncPData.h in Headers */, - 96EED05BD75DD6497FF959D93C46E53C /* SDLOnSystemCapabilityUpdated.h in Headers */, - F4419F5F39751E51D708DC49653C24FE /* SDLOnSystemRequest.h in Headers */, - 1F04F9E2D54DFA9F857F25B8733C4D20 /* SDLOnTBTClientState.h in Headers */, - C6C679C53BD8DF8348E50BBD9B6EDBED /* SDLOnTouchEvent.h in Headers */, - 2B734A17FAB58B4CE730C0540D22988D /* SDLOnVehicleData.h in Headers */, - CBF78451B2FF04F7214072DC193CC9FE /* SDLOnWayPointChange.h in Headers */, - 3C3EC5487121EB98E99F0F97BE42C1EA /* SDLParameterPermissions.h in Headers */, - 8C340626051AFB39A7A54148ACAC7B83 /* SDLPCMAudioConverter.h in Headers */, - A343D2D2F0859C8234D815B9A4E21190 /* SDLPerformAppServiceInteraction.h in Headers */, - 63375F5754AB2A6330826FAEF85475FF /* SDLPerformAppServiceInteractionResponse.h in Headers */, - 466C4783AC46602811E0B894FBCAEBA3 /* SDLPerformAudioPassThru.h in Headers */, - 557D83DD1A2B8A0488AAE4F2C227DB16 /* SDLPerformAudioPassThruResponse.h in Headers */, - 9AFEB611162042E0D236BF151AE0A572 /* SDLPerformInteraction.h in Headers */, - 03BFBA09CDC067C038AE6B2618500579 /* SDLPerformInteractionResponse.h in Headers */, - 0699763FA69B0EF2765A379706BFBB5C /* SDLPermissionConstants.h in Headers */, - 59ED79597725A4AADB89371D24EBEBC1 /* SDLPermissionElement.h in Headers */, - 25872E377E8B390BC6BC2DBA36F64FBF /* SDLPermissionFilter.h in Headers */, - A64F8AC8AB4B30F78B3224EB3DEA4F08 /* SDLPermissionItem.h in Headers */, - BEB387A0851CE78DA18EA4C1591A8D09 /* SDLPermissionManager.h in Headers */, - 4D9CCEE4CD5610447009B1E2E3102802 /* SDLPermissionStatus.h in Headers */, - F1A103230DFAE80CBB1C5E087DBBD700 /* SDLPhoneCapability.h in Headers */, - 32CF5B82101419D7815D0024314D4021 /* SDLPinchGesture.h in Headers */, - 60497AADC0C7F17F737D365084E50302 /* SDLPowerModeQualificationStatus.h in Headers */, - 4681242BC3AA9D72A34C48AB5E217313 /* SDLPowerModeStatus.h in Headers */, - D383905C1BC02D559216275118596959 /* SDLPredefinedLayout.h in Headers */, - 94F5B9443E54B16196DA24D8D5BDFE20 /* SDLPredefinedWindows.h in Headers */, - 2667B1229C8C1AAFCB5CD02B1E3EAB10 /* SDLPreloadChoicesOperation.h in Headers */, - 17388E0CEAD1357464CC365A3C483F55 /* SDLPrerecordedSpeech.h in Headers */, - F283AA06AE3E28E317A738DBA7DC9CA9 /* SDLPresentChoiceSetOperation.h in Headers */, - AB15DC9878A7480D662E8E7F09FE83F8 /* SDLPresentKeyboardOperation.h in Headers */, - 84AC99C20CB76DB834582FBADBA11A3A /* SDLPresetBankCapabilities.h in Headers */, - 14A912514B48A2F767D72FFC45C7057E /* SDLPrimaryAudioSource.h in Headers */, - 683759594A286A805CC281E2A1377FDF /* SDLPrioritizedObjectCollection.h in Headers */, - 32272744E2728BF0CC353CF8075DE56D /* SDLPRNDL.h in Headers */, - CA250D82EAC0308FA595B87D98EC2259 /* SDLProtocol.h in Headers */, - FEA2C633BF61DAEA879091A9D48C0223 /* SDLProtocolConstants.h in Headers */, - 8015E7789F7FC9A108335F54BB07608A /* SDLProtocolDelegate.h in Headers */, - 3592348A1908B19BDCC82B075D3EF470 /* SDLProtocolHeader.h in Headers */, - 9585BEED50A4D422F43BF6EDAE401D14 /* SDLProtocolMessage.h in Headers */, - 1866DAB2990E2E6758DBFCC4AFFC1164 /* SDLProtocolMessageAssembler.h in Headers */, - 7B7B00F06DD077C562AC195054871C6D /* SDLProtocolMessageDisassembler.h in Headers */, - 4816981DC17C9216116E43146A4DF17E /* SDLProtocolReceivedMessageRouter.h in Headers */, - AAD614157E529CD67FB103448F2FED1A /* SDLPublishAppService.h in Headers */, - 72E713506534D95203F92A95487AD5B2 /* SDLPublishAppServiceResponse.h in Headers */, - DEF7B91670D14C4BCF191B13B1CBDB8D /* SDLPutFile.h in Headers */, - A2A9921EB8164C6246F43B98C428DAFB /* SDLPutFileResponse.h in Headers */, - 0AD6F7B5EC996D9805558DCB02414DA7 /* SDLRadioBand.h in Headers */, - FD1D54FC7E3963916E30AF17CF6C7E08 /* SDLRadioControlCapabilities.h in Headers */, - A8F40580F01A389445A4CB766D5FAEE2 /* SDLRadioControlData.h in Headers */, - 90410C380CABA5FB3BDE928DBFFE5296 /* SDLRadioState.h in Headers */, - 4188A89659E8983E8F643EE3DA11134E /* SDLRAWH264Packetizer.h in Headers */, - 157BAA3EB92752922B163EA46E9D0DB9 /* SDLRDSData.h in Headers */, - 7D0062F56EACBA6F8476176C8FF0E2E7 /* SDLReadDID.h in Headers */, - E6D8226083D387CD8BD4EF2CE9F86DBF /* SDLReadDIDResponse.h in Headers */, - 2E9FE8554C9075C973E8F7E8ADD01171 /* SDLRectangle.h in Headers */, - 79E2DC7E5768C6622D75EF018FB82F0F /* SDLRegisterAppInterface.h in Headers */, - E829F19D11C1077B6B68CA9E77E7A3CF /* SDLRegisterAppInterfaceResponse.h in Headers */, - 022788A008E07EC139761666C4AFE592 /* SDLReleaseInteriorVehicleDataModule.h in Headers */, - 2872CD02FF5C555D4B23ABF8457D1AB6 /* SDLReleaseInteriorVehicleDataModuleResponse.h in Headers */, - B418427429C057ED4BEDEEBC3B54E972 /* SDLRemoteControlCapabilities.h in Headers */, - BC69322845C93C436E64BCC888FC2C87 /* SDLRequestType.h in Headers */, - 7851718413DB3073469A983DC222E140 /* SDLResetGlobalProperties.h in Headers */, - 1DBD98BA90ACDD24E656DA81B6F5D53E /* SDLResetGlobalPropertiesResponse.h in Headers */, - 7F6424CEFDA3B3C532BCDDFAD1E0593F /* SDLResponseDispatcher.h in Headers */, - 6F9DB2F491CAE7DADD2B8B6D0AC37586 /* SDLResult.h in Headers */, - 4A82C43B943A07EB9B3B35C775D7E384 /* SDLRGBColor.h in Headers */, - B7630BA13320336380743669B1FD03D1 /* SDLRPCFunctionNames.h in Headers */, - A565805CB816BE9F3B0D0E09DC310653 /* SDLRPCMessage.h in Headers */, - 926C8094DD82B05E32B533990D9085E0 /* SDLRPCMessageType.h in Headers */, - 93DA28C985C4ACFB75AE57626D5206B9 /* SDLRPCNotification.h in Headers */, - F03F8D0FD515F7D50A09B053578BE029 /* SDLRPCNotificationNotification.h in Headers */, - ABB509C9A5348FF75C8D7AB737896B76 /* SDLRPCParameterNames.h in Headers */, - CAD17BD965F06658766D62411C358BB6 /* SDLRPCPayload.h in Headers */, - 3EB29C6B91501244CBAA1180DEBA766E /* SDLRPCPermissionStatus.h in Headers */, - C8A0BF9E182B267629C254EB8B2AC221 /* SDLRPCRequest.h in Headers */, - 7BE925A905AB58CFA7FC82DE131D9C55 /* SDLRPCRequestNotification.h in Headers */, - 78BF11691585A2A34E9BF697CABDB77B /* SDLRPCResponse.h in Headers */, - 5B7878B537CD40ED19460FE32BFE4B78 /* SDLRPCResponseNotification.h in Headers */, - 491C6573D1D0904EA6E083E25724DA04 /* SDLRPCStruct.h in Headers */, - 8E80CC5191B3799B9446E341E7A1436F /* SDLRTPH264Packetizer.h in Headers */, - 446DD73796C4DB12980BF45ECE1851A9 /* SDLSamplingRate.h in Headers */, - 90134E4A78B41A1419B50CDD40E9853B /* SDLScreenManager.h in Headers */, - F586F836095468D7E035D0D52AE2D236 /* SDLScreenParams.h in Headers */, - E3157BC456D801956E1474CCF765F853 /* SDLScrollableMessage.h in Headers */, - EBE09075FFCB277CF9EA3E3A4D070C84 /* SDLScrollableMessageResponse.h in Headers */, - 57929D337BFC2A2910D7D58E49CBA51C /* SDLSeatControlCapabilities.h in Headers */, - 4F59B76594C1905BB5FE6EE9197C1274 /* SDLSeatControlData.h in Headers */, - 5C110E803525A9E4B32FD457F76865E0 /* SDLSeatLocation.h in Headers */, - 0B8CFC9287CE4FD15A45F365C86B5FFE /* SDLSeatLocationCapability.h in Headers */, - 80C005673FF0A17E64ABC38D3D87A0E7 /* SDLSeatMemoryAction.h in Headers */, - 2FA2DF4750EF0B673A0A8465018F35EA /* SDLSeatMemoryActionType.h in Headers */, - 827C5F581A5FB46D0D7B9A13960CFC87 /* SDLSecondaryTransportManager.h in Headers */, - 9EAA1FB46BE08D3EF32659A6DC6924E3 /* SDLSecurityType.h in Headers */, - 37C9D90EE3EF9A798C26D18654A50F75 /* SDLSendHapticData.h in Headers */, - 42B0127D5FE47E06FC473C2E73076C39 /* SDLSendHapticDataResponse.h in Headers */, - 8A14D6E4EE2461D75FAF5D8B9BEEDE4D /* SDLSendLocation.h in Headers */, - 8202ACFD681FB7B0CF7F76BB088E01B2 /* SDLSendLocationResponse.h in Headers */, - 8D61AE766EED51AC232160F87E00B811 /* SDLSequentialRPCRequestOperation.h in Headers */, - 71B061EECEA783CBDE28CC159BEB1C7E /* SDLServiceEncryptionDelegate.h in Headers */, - B6F038FB2FD3D2A6122C859B0FD77F6C /* SDLServiceUpdateReason.h in Headers */, - 27CB4D94922255DE00C087E636C77FED /* SDLSetAppIcon.h in Headers */, - D0C88B9168198144FE7FA6F3E4F7825D /* SDLSetAppIconResponse.h in Headers */, - 9603A9FB3A51776C2FAB23573513D478 /* SDLSetCloudAppProperties.h in Headers */, - 8063604BF5348DFC96A063DB686D9A0B /* SDLSetCloudAppPropertiesResponse.h in Headers */, - 53D2AEBA404C140CAD3C1D71C71B671B /* SDLSetDisplayLayout.h in Headers */, - 690DFDCAC21DB2CF0A4196DF85213638 /* SDLSetDisplayLayoutResponse.h in Headers */, - 68EA9F3B5A2C59F3DAEB02CB431641BE /* SDLSetGlobalProperties.h in Headers */, - 44298616B04419E21E3B52AA81344E41 /* SDLSetGlobalPropertiesResponse.h in Headers */, - 0DB4E8891C30BCE56D71B24F6AC8874E /* SDLSetInteriorVehicleData.h in Headers */, - 80A4C0F0E1202AF9F786FDF9B730D7C2 /* SDLSetInteriorVehicleDataResponse.h in Headers */, - 65272CADF916905A96F9819D51EBE142 /* SDLSetMediaClockTimer.h in Headers */, - 0C68DF7AC21D2860D88C4EAFD8B95C31 /* SDLSetMediaClockTimerResponse.h in Headers */, - D5669FF6BD7F10510C5BFEEC1D6285CC /* SDLShow.h in Headers */, - 27F44F85A8B72CE438D99AC77CFCB009 /* SDLShowAppMenu.h in Headers */, - EFE7C89F1D6188B957882AC34CE3D2EF /* SDLShowAppMenuResponse.h in Headers */, - 51378702549105BAEC08F36DF29A9C35 /* SDLShowConstantTBT.h in Headers */, - 4F8AE7258BB956DFB6C7040D9018ADF2 /* SDLShowConstantTBTResponse.h in Headers */, - 7E7594511BA3FB188C0D4874798AE1D6 /* SDLShowResponse.h in Headers */, - 0066A50956A60610464FC1F18D624CF7 /* SDLSingleTireStatus.h in Headers */, - 93BD8B81C51CE40CB6A05AE7AE074C1A /* SDLSISData.h in Headers */, - 107C1A8D01DEA7B07FC9EA5B18C62015 /* SDLSlider.h in Headers */, - D3E51F57F33BBDB90E0026E6A50A8C18 /* SDLSliderResponse.h in Headers */, - DE9575D32F7A6A605DD928E3EA6F90B6 /* SDLSoftButton.h in Headers */, - 728A4B617C43974BBB7EC3785D380ECC /* SDLSoftButtonCapabilities.h in Headers */, - C1A2ACDFECBB62131B3E5E6278E5E8B0 /* SDLSoftButtonManager.h in Headers */, - E64A8CC048B3B646F407159AC4BE4F4C /* SDLSoftButtonObject.h in Headers */, - E76389D113E1B62086B889FF5763CBF2 /* SDLSoftButtonReplaceOperation.h in Headers */, - 582C9ADF86D98712DAED3E320A3726F7 /* SDLSoftButtonState.h in Headers */, - 703F4BBF41D33B378CCAA13A2E993693 /* SDLSoftButtonTransitionOperation.h in Headers */, - 79DC53A9C788ADDD57B9EDB85F999694 /* SDLSoftButtonType.h in Headers */, - 1AB0F0C524720148B94C531A6EC007E7 /* SDLSpeak.h in Headers */, - C40C833F9ADA24E8D735707B4D7EBF1C /* SDLSpeakResponse.h in Headers */, - A239E346274909BDC903979FD4B4C6FA /* SDLSpeechCapabilities.h in Headers */, - 9F3B8143751BFE86CD8EAA6F4AE05B8C /* SDLStartTime.h in Headers */, - D7A4CAECEC686A01DA319E8C6E1D3C04 /* SDLStateMachine.h in Headers */, - A14201E05A5F23717A4AF5E21AC4404A /* SDLStaticIconName.h in Headers */, - 08FA3423342DC39363ADE4F4A3D7A5E0 /* SDLStationIDNumber.h in Headers */, - E3FB99D01C97093682E0A1EF03DEF33C /* SDLStreamingAudioLifecycleManager.h in Headers */, - 8A468CCE4EA458EED9B48499F95B50C9 /* SDLStreamingAudioManagerType.h in Headers */, - 911746B423568C0733997FC634BAEDFF /* SDLStreamingMediaConfiguration.h in Headers */, - 3193A89DD9C594CF5AF5C8FAAA01199A /* SDLStreamingMediaManager.h in Headers */, - 17E4FFBC4E56178F24E14C3672E2A532 /* SDLStreamingMediaManagerConstants.h in Headers */, - FA5BE5FA92E0BFEFCE58DD65F1AF67DB /* SDLStreamingMediaManagerDataSource.h in Headers */, - 6B045CB9000C16A8E5D3AD569DFDCF1F /* SDLStreamingProtocolDelegate.h in Headers */, - D2E1F6044277640103B8532FD88ECCCD /* SDLStreamingVideoLifecycleManager.h in Headers */, - 672A6C9980B30F2A8A1A7E7ADC9CC09D /* SDLStreamingVideoScaleManager.h in Headers */, - 7F809464FB227F599754C4774F4F0D00 /* SDLSubscribeButton.h in Headers */, - DC02273D2AA5CEF43581EBE2A8747E52 /* SDLSubscribeButtonManager.h in Headers */, - 860C590D39EEF30148340A4A972B2EA3 /* SDLSubscribeButtonObserver.h in Headers */, - 7E1B85155539D7490393F22A7B5DD864 /* SDLSubscribeButtonResponse.h in Headers */, - FA3B57CB38D403CC2A89A61D00EBE74C /* SDLSubscribeVehicleData.h in Headers */, - EC00209B66BA6A8E9C3CECCD2F5B5B45 /* SDLSubscribeVehicleDataResponse.h in Headers */, - EB2AE2C03AF5B038D0D8F8C5B7F86405 /* SDLSubscribeWayPoints.h in Headers */, - BC45A3363C22BFDA59826F07C50A4886 /* SDLSubscribeWayPointsResponse.h in Headers */, - A752A770F02A5D857134CE5F0A8047ED /* SDLSupportedSeat.h in Headers */, - 20FDB32A5B293CF83F082EDA2F290768 /* SDLSyncMsgVersion.h in Headers */, - 1E1C18899CFA06BDF66E3C1276224C50 /* SDLSyncPData.h in Headers */, - 44E2E8310C02EFCD578734633D24C5D5 /* SDLSyncPDataResponse.h in Headers */, - 68EC307B38999212B1E4E52A2A6A5938 /* SDLSystemAction.h in Headers */, - F78527CC8638C170A0B00821EE5375DB /* SDLSystemCapability.h in Headers */, - 5FF2F52E73B01B06B0D1DD2B7502B928 /* SDLSystemCapabilityManager.h in Headers */, - 260B1F3FE55BFBBDA28A06E4EA9B2277 /* SDLSystemCapabilityObserver.h in Headers */, - 66AE1E0830F6B4805FB27212308F3740 /* SDLSystemCapabilityType.h in Headers */, - 69E988775F50BC03CB1A92A342B78898 /* SDLSystemContext.h in Headers */, - 66FC0DCB94EBCBFBC1E6A3D16FCBE32B /* SDLSystemRequest.h in Headers */, - 04437FB778E703F55CBAE8E1E6B26E79 /* SDLSystemRequestResponse.h in Headers */, - D7A3CC246C315674298880EEB2B97169 /* SDLTBTState.h in Headers */, - C6941A6FF49829CAD804EF442CDEC532 /* SDLTCPTransport.h in Headers */, - 406DFE813A052A855D6676BE3C7442EC /* SDLTemperature.h in Headers */, - 1E78598094FD94D3F1B5A829104E11A8 /* SDLTemperatureUnit.h in Headers */, - F9F67F2646FC92E2B9C54DABBB0D165D /* SDLTemplateColorScheme.h in Headers */, - 20BCA8A438D8E11BEABF1C8D8B366DD6 /* SDLTemplateConfiguration.h in Headers */, - F0771FB03F3BE78A03CDA6851381B1B6 /* SDLTextAlignment.h in Headers */, - 13972B331486A40C0383D0FF8694E4BC /* SDLTextAndGraphicManager.h in Headers */, - FDDD566B0FCC00853F7748B764791F7F /* SDLTextField+ScreenManagerExtensions.h in Headers */, - 6F77FE57579EF72D016C882461807E4A /* SDLTextField.h in Headers */, - 8C443CDAE7BE73B240DF7DF391CA1950 /* SDLTextFieldName.h in Headers */, - 26C615A4EB161B3EC705D293B8D165AD /* SDLTimer.h in Headers */, - 64BBDF7281EAD65AEDDB047B1D987BDF /* SDLTimerMode.h in Headers */, - 283A4555F3187593CF5BF0276861F516 /* SDLTireStatus.h in Headers */, - DBFAADE3779350453CD7BFAE86F35101 /* SDLTouch.h in Headers */, - 869B5690CE0248DE52F1A2DED2BFBD8A /* SDLTouchCoord.h in Headers */, - 1BC4F89B700407702412F597B8D6A4C0 /* SDLTouchEvent.h in Headers */, - 237E939E34B845012E338C238CCDDAD1 /* SDLTouchEventCapabilities.h in Headers */, - 07236B7C2904B1537466E4F3B99A7483 /* SDLTouchManager.h in Headers */, - 30353FA6C6AD3B18737ED0DEB34F77B8 /* SDLTouchManagerDelegate.h in Headers */, - 6555ADD4F28D7D0113B1ADEA9908B813 /* SDLTouchType.h in Headers */, - E6E55A8F2A2BFBE31505BE9307FA5BD5 /* SDLTPMS.h in Headers */, - FF13ABB8D4771283578DFE394E35E422 /* SDLTransportDelegate.h in Headers */, - D7C6624037B1FF6F5D58C6B12DA3F63B /* SDLTransportType.h in Headers */, - 0110C3A32BF6872DBCE812C8BBEFF1BE /* SDLTriggerSource.h in Headers */, - E6A83EE82658F0FD32589B0165F03D06 /* SDLTTSChunk.h in Headers */, - E92412A888974C3419F69E616690EBD9 /* SDLTurn.h in Headers */, - 924C9E71DB2A227D30317E0D51B3E29A /* SDLTurnSignal.h in Headers */, - AA7A1B60EBD72027EBDDCED773EEB144 /* SDLUnpublishAppService.h in Headers */, - 4E98EC57EB6B986BCA31A8CBD8D47770 /* SDLUnpublishAppServiceResponse.h in Headers */, - ECC7D8F9B89FAEB6F736532C0E9492FA /* SDLUnregisterAppInterface.h in Headers */, - A212124738A6FDA7630C16154422B70D /* SDLUnregisterAppInterfaceResponse.h in Headers */, - 71BF4F92683DCBC2B99F2CA7C9F38AEB /* SDLUnsubscribeButton.h in Headers */, - 865B4D4D641A4E05B041FEF288509946 /* SDLUnsubscribeButtonResponse.h in Headers */, - 74B5FD77F904539F2A425C2B6596E7CB /* SDLUnsubscribeVehicleData.h in Headers */, - C141AA20F7F4A1CE0ABE4146D9DF4469 /* SDLUnsubscribeVehicleDataResponse.h in Headers */, - E5B246C5FA6496C31A85FB4A70C1D6A2 /* SDLUnsubscribeWayPoints.h in Headers */, - 8464C78AAB2ABA1F3432F3A7E05F6F2B /* SDLUnsubscribeWayPointsResponse.h in Headers */, - 07103FB478E54508351B3BE23E35492E /* SDLUpdateMode.h in Headers */, - 65FFC30295F6558FCA6A0D44DE401664 /* SDLUpdateTurnList.h in Headers */, - 84A93A03350F9B2E58F388D5C6941ADF /* SDLUpdateTurnListResponse.h in Headers */, - B70DEE703AEA1B85CDE2C396ECAAF1FA /* SDLUploadFileOperation.h in Headers */, - 017D3194B0FDE2D9A6C3A9ED92EDEDE5 /* SDLV1ProtocolHeader.h in Headers */, - 74BC3B711C2F9F27EF800EC0D8BB3E7F /* SDLV1ProtocolMessage.h in Headers */, - EC85B08AF38BBDD94B706D8341525764 /* SDLV2ProtocolHeader.h in Headers */, - BD6BAA58C6AF239EEE661ED9DA99920A /* SDLV2ProtocolMessage.h in Headers */, - 2E8C0C18BE0AB72BAAA75756C7AA7EF6 /* SDLVehicleDataActiveStatus.h in Headers */, - 76FB2772BBD488BD031C94BD2D790911 /* SDLVehicleDataEventStatus.h in Headers */, - 6CA6585CCC7F10A53605A5ED5C6E6B81 /* SDLVehicleDataNotificationStatus.h in Headers */, - CFA9E37CDCB344B88BF96EB669E9520D /* SDLVehicleDataResult.h in Headers */, - 1C2AFD76AF172CA723E4F2D158FB0649 /* SDLVehicleDataResultCode.h in Headers */, - C585713307985FD8E3FF5D0E372A8961 /* SDLVehicleDataStatus.h in Headers */, - BB4E4601D7F85091B639CD980A0BC885 /* SDLVehicleDataType.h in Headers */, - 5864283BEBFE5C0165A1AEA85C2C8BB2 /* SDLVehicleType.h in Headers */, - CBDD5E404BA924F86C7D7148AC7D7628 /* SDLVentilationMode.h in Headers */, - 74A5B28E5563DB190D6A5F4FCB5F95E2 /* SDLVersion.h in Headers */, - 7114457F0DC999CFA9DD249404EBB384 /* SDLVideoEncoderDelegate.h in Headers */, - 91957F0442555A51D28E6AA37FBCC7A6 /* SDLVideoStreamingCapability.h in Headers */, - BBC5285BF2004834D5B7AD500C948F15 /* SDLVideoStreamingCodec.h in Headers */, - 5FB5DD9F6732B719FEC80F4FB928AAEF /* SDLVideoStreamingFormat.h in Headers */, - 2584B04D87C22A32D2A58FDCDB7C40A9 /* SDLVideoStreamingProtocol.h in Headers */, - 7D449072D02DC41B5EC19BC012176186 /* SDLVideoStreamingState.h in Headers */, - 1D4B6C284868B1006C28D7EB5E755169 /* SDLViewControllerPresentable.h in Headers */, - 1F3DC8D6580E5EFD9D430958C7434B53 /* SDLVoiceCommand.h in Headers */, - 3F75A11E958789B91A510DD260CA7D5B /* SDLVoiceCommandManager.h in Headers */, - 73CEDC08872351275F6942229AD3F2F2 /* SDLVrCapabilities.h in Headers */, - 8079D14942FAFBE0EE5A57F3665810AD /* SDLVrHelpItem.h in Headers */, - CAC7C9F6DE36100C778BB500C4B9FC66 /* SDLWarningLightStatus.h in Headers */, - 68E4D80462EF8FE2BF63088DC7969409 /* SDLWayPointType.h in Headers */, - 7E128A41B92ABD534D3BED1EB0166F27 /* SDLWeatherAlert.h in Headers */, - A6DEEB95AC4B9E08CFB4DB6709EF54D1 /* SDLWeatherData.h in Headers */, - BF0DD23904A939E421F56AEA262F63F7 /* SDLWeatherServiceData.h in Headers */, - 72087CE9FAB920594133BABA14505343 /* SDLWeatherServiceManifest.h in Headers */, - 9E3DC35284B0EF19F839FF0F7045F243 /* SDLWindowCapability+ScreenManagerExtensions.h in Headers */, - 665B8CB4DEEC8E138E60BBA8D5F6D783 /* SDLWindowCapability.h in Headers */, - 1CAAE194909CE3C7EF3D0CCEAA15CC0B /* SDLWindowType.h in Headers */, - FB6039EBE381999530969D021FC20EDB /* SDLWindowTypeCapabilities.h in Headers */, - C4A2A9F354149CDA02580EFE345C5A7E /* SDLWiperStatus.h in Headers */, - B3F88965CBEF8C0FD322AE9E1CC5BDE1 /* SmartDeviceLink-umbrella.h in Headers */, - FE474D92574F0C37042FF367C1869FF4 /* SmartDeviceLink.h in Headers */, - 5C1C02512F9868EE4D3CB40D3EFEB29F /* TestSubscribeButtonObserver.h in Headers */, + 87AC6CA51E70B12C479133AC047D6AD0 /* Pods-MobileWeather-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4149,11 +4138,11 @@ }; 3D5C8508F5D7F6E6DD86E88C9CF9F8F4 /* SmartDeviceLink-SmartDeviceLink */ = { isa = PBXNativeTarget; - buildConfigurationList = 582AB056CF0E2D5C1E680A386FADDA07 /* Build configuration list for PBXNativeTarget "SmartDeviceLink-SmartDeviceLink" */; + buildConfigurationList = EE906D3B455A6A0B2FB28DBA11DF210D /* Build configuration list for PBXNativeTarget "SmartDeviceLink-SmartDeviceLink" */; buildPhases = ( - FD48AF844ED7A4F116F59DA460F8FE50 /* Sources */, - 0462C6BC022E3DA7F6D838C53ED0C2D7 /* Frameworks */, - F1EC2EA1EFEAE79FA119FDA1F224AF36 /* Resources */, + 0E3BE5DEB9D36281D2D607CBA088EBF1 /* Sources */, + 6ECD2E914F56D3E2BE62A07561B18D03 /* Frameworks */, + F7C94F1023AD45EB81A64337621B47A1 /* Resources */, ); buildRules = ( ); @@ -4186,18 +4175,18 @@ }; D80456DDA93CD634453A682E14808519 /* SmartDeviceLink */ = { isa = PBXNativeTarget; - buildConfigurationList = 7DD0E3264F81B11844214F608181EE18 /* Build configuration list for PBXNativeTarget "SmartDeviceLink" */; + buildConfigurationList = CE293D9EFD2DEF0FF33713509CB18AC6 /* Build configuration list for PBXNativeTarget "SmartDeviceLink" */; buildPhases = ( - 80D22BB0358122D6924BDD518FC87D4B /* Headers */, - 792BD0F9B9A50172DA8479D077F2AC48 /* Sources */, - 3777EA804422776487C8F513BEE7F4AF /* Frameworks */, - E03FEC8C7B952E3BF6875003BFACF4CA /* Resources */, + 101A7953E27756AC6A0A7BB9E7CF35E7 /* Headers */, + 86262482C591891734DA2C278EDD81F5 /* Sources */, + 072FE30B51DE3BD5A1AD793BB58D062D /* Frameworks */, + 65226E71F89D09EFE42B07617D48EE8B /* Resources */, ); buildRules = ( ); dependencies = ( - F73743FB0482539B50C0127AAB9A6FC5 /* PBXTargetDependency */, - 6A9400F0EC45681DD223AD35E9CDDC5D /* PBXTargetDependency */, + E7069BB5B10BAB04527EF405F8C1E644 /* PBXTargetDependency */, + A706C0D266E37F9AEA47FAA65E9C50E7 /* PBXTargetDependency */, ); name = SmartDeviceLink; productName = SmartDeviceLink; @@ -4247,557 +4236,563 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 74125B44A08712DA5C7E97D229D21B72 /* Resources */ = { + 65226E71F89D09EFE42B07617D48EE8B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 6FFBDADDDAF3EB0CAE0F592A4D57944A /* SmartDeviceLink.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E03FEC8C7B952E3BF6875003BFACF4CA /* Resources */ = { + 74125B44A08712DA5C7E97D229D21B72 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 06CF5C974D40D1CAE5DA0BD8B6BEDA1A /* SmartDeviceLink.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - F1EC2EA1EFEAE79FA119FDA1F224AF36 /* Resources */ = { + F7C94F1023AD45EB81A64337621B47A1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - CC65A5F101469227FED175DA7A220E03 /* SDLAssets.xcassets in Resources */, - 5C2BC01A4218E85A37E7980742B3D0E7 /* SDLLockScreen.storyboard in Resources */, + B6CCE216B0EF2FB21C052AFBA47F8FF8 /* SDLAssets.xcassets in Resources */, + D795C46A692D0C8E9ED02F075AB7ACEB /* SDLLockScreen.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 792BD0F9B9A50172DA8479D077F2AC48 /* Sources */ = { + 0E3BE5DEB9D36281D2D607CBA088EBF1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 86262482C591891734DA2C278EDD81F5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 04867FEAFBAA4F32FDEE6D4D145C1B19 /* CGPoint_Util.m in Sources */, - 61622F162E170CCC574404D22E2DF210 /* CVPixelBufferRef+SDLUtil.m in Sources */, - 9B53BF4496D9FBFEB94AC0F5A27DD92F /* EAAccessory+SDLProtocols.m in Sources */, - 4F6EC3B01C68F0C98C207FFE03CE1318 /* EAAccessoryManager+SDLProtocols.m in Sources */, - 4FCE0088480192BE0F5AD6E1F62569C1 /* NSBundle+SDLBundle.m in Sources */, - 5C0C633DD0A3D67F0763146E88F96668 /* NSMapTable+Subscripting.m in Sources */, - 96D889E335AC9CFF1639A13B0BF18736 /* NSMutableArray+Safe.m in Sources */, - 5789D88EC2C3F5D751FB5B6579DD2BA8 /* NSMutableDictionary+SafeRemove.m in Sources */, - 4E42B5A60D7D15B0A6D56BF106E0DF6C /* NSMutableDictionary+Store.m in Sources */, - 6965ACD0E911E9BD96D98B7BBF6999D2 /* SDLAddCommand.m in Sources */, - 252F2EB3219E3AA3C08C5A57AA3B4B34 /* SDLAddCommandResponse.m in Sources */, - 10B7FA44559708E235A4D2429B1DD44C /* SDLAddSubMenu.m in Sources */, - 1BA2F03BE97087A041FE88AEE1781741 /* SDLAddSubMenuResponse.m in Sources */, - E081B77445962FADA85C08A8E6FEA338 /* SDLAirbagStatus.m in Sources */, - 247BCA2300E405F276470156679EA6E5 /* SDLAlert.m in Sources */, - 4CCF6B5645070AD44CBC65C932FACE82 /* SDLAlertManeuver.m in Sources */, - D96DDD8B9CA7EA5E0BAA7811256DD2D6 /* SDLAlertManeuverResponse.m in Sources */, - 68B1EF92CDDDAE01715C7BE396C2F1A9 /* SDLAlertResponse.m in Sources */, - 1CF92ED9901B6CC836F3981EFADF0EAE /* SDLAmbientLightStatus.m in Sources */, - 6BAED78EC69507553115F18851E48139 /* SDLAppHMIType.m in Sources */, - 26E5E0310598C29F8DDE94067A2958CB /* SDLAppInfo.m in Sources */, - 02E615FEAD3D67B70BD9E50488658C20 /* SDLAppInterfaceUnregisteredReason.m in Sources */, - F1FEB31C5C7A2C466F936C8CEAD401DD /* SDLAppServiceCapability.m in Sources */, - 24801F1525B3F26C7DE78E9D6F1EC07C /* SDLAppServiceData.m in Sources */, - F8C787819D63B7D4622645AAAB479314 /* SDLAppServiceManifest.m in Sources */, - B7666AC64BE2566C73733D5E4218946D /* SDLAppServiceRecord.m in Sources */, - 96A470701A4EB6AB6BF58852B32BC224 /* SDLAppServicesCapabilities.m in Sources */, - 615F5B49FC792C5089E5C9F8FEDA7EC9 /* SDLAppServiceType.m in Sources */, - 98D8C81B899984A0E7968B41F0F0031D /* SDLArtwork.m in Sources */, - 584B521B4CD67564DD2EAEA58D0741AD /* SDLAsynchronousOperation.m in Sources */, - FD4B9DEB7C0B8B83E8BB18B89BC2589E /* SDLAsynchronousRPCOperation.m in Sources */, - 4146591FBD90FC641348E6736882B2E5 /* SDLAsynchronousRPCRequestOperation.m in Sources */, - E144979B7797BD3CC98DC251768C9DC2 /* SDLAudioControlCapabilities.m in Sources */, - 8472EC40CE62517B318FA0D8BEE85BED /* SDLAudioControlData.m in Sources */, - 27F0E023B8465A23F6EADAEFD3386A66 /* SDLAudioFile.m in Sources */, - 62541828E1ED8584171F55DD3CF610D8 /* SDLAudioPassThruCapabilities.m in Sources */, - ECF14494FD79560B8425DC6C914A0443 /* SDLAudioStreamingIndicator.m in Sources */, - 0BD5D8A58EE45EC6BAB24293E3FEA017 /* SDLAudioStreamingState.m in Sources */, - 66EFE45CF4E1A18BA9351BE5D23B4AE5 /* SDLAudioStreamManager.m in Sources */, - A75998CF4F504D34746CEDA36C622C0E /* SDLAudioType.m in Sources */, - 2DD3D1CD40C2BBC2A0781547C6922088 /* SDLBackgroundTaskManager.m in Sources */, - 6B6C4354D06CE6C89C8326CEF5DEC82C /* SDLBeltStatus.m in Sources */, - D86EFCCFCE0D86525E9DDB7949962ACD /* SDLBitsPerSample.m in Sources */, - AFA866B8EAF18418E65247BAE7E556E7 /* SDLBodyInformation.m in Sources */, - F83A6CB1994098C4B58D47D636F75951 /* SDLButtonCapabilities.m in Sources */, - FF9013FBD59D4DB3DA6F80750DC9C3FA /* SDLButtonEventMode.m in Sources */, - 9FA55423485F9631453E7AB46E9C4089 /* SDLButtonName.m in Sources */, - A55F2D47BEE40D7772843861B42840DC /* SDLButtonPress.m in Sources */, - 61EFCEEB040AC3FA357021A8C021BFDB /* SDLButtonPressMode.m in Sources */, - 19835AEE7EA809F00EE8C6FA4A1F1304 /* SDLButtonPressResponse.m in Sources */, - 528B18A7832F83E491FC2CE80FB6670B /* SDLCacheFileManager.m in Sources */, - 47367F64A363C61D250A3468085643BD /* SDLCancelInteraction.m in Sources */, - 07B6661A4C2C025E3467589D6971E4DB /* SDLCancelInteractionResponse.m in Sources */, - 682621E46D4F78FA33B4AE15672E7795 /* SDLCarModeStatus.m in Sources */, - F9EBD1E23154F9D743AB6BA7CE13B787 /* SDLCarWindow.m in Sources */, - 8AC6D618D2B7B9D4C8336DCE6D260BD2 /* SDLCarWindowViewController.m in Sources */, - 1ABF5FF95BD4B3072309D0302C023D69 /* SDLChangeRegistration.m in Sources */, - 8BE60469ACDDAE2C4D3125B9CC07C1C9 /* SDLChangeRegistrationResponse.m in Sources */, - D6B423A9B6701091982E34CA244F9A0E /* SDLCharacterSet.m in Sources */, - C49A60B1AE8BD2253AA0CFB78AED841C /* SDLCheckChoiceVROptionalOperation.m in Sources */, - CF5AB47D4857BD7D5D1BC6287E751617 /* SDLChoice.m in Sources */, - D14E04DA2DA7178B5A6B389E296D4DC6 /* SDLChoiceCell.m in Sources */, - 70645ECC9769D5C102088085D044489C /* SDLChoiceSet.m in Sources */, - AE475D883F32EB2142B5EA25F969B6C1 /* SDLChoiceSetManager.m in Sources */, - 9284A3475A6E66F94C10D23DFD34B2E6 /* SDLClimateControlCapabilities.m in Sources */, - 4E6DF2C01963631E37CB8DE7C06AFC7B /* SDLClimateControlData.m in Sources */, - 2A9FE21B0BA859AED5280902B130A9ED /* SDLCloseApplication.m in Sources */, - 770D17FE53CB1E2885FE07DF770AA9B6 /* SDLCloseApplicationResponse.m in Sources */, - EA1674D4751D7F85F5D79F9DBF218E8C /* SDLCloudAppProperties.m in Sources */, - 3ABE3D33FBFE8B497368ADC4CF2DB3C6 /* SDLClusterModeStatus.m in Sources */, - FB5714ED15412CCCECA24EE3A2BA4886 /* SDLCompassDirection.m in Sources */, - ABEFEBA9C5DF91EC41F22DC9994A35FB /* SDLComponentVolumeStatus.m in Sources */, - E9783EF1C9A4FEBF1663C195E052DFFA /* SDLConfiguration.m in Sources */, - 661388FE2DB8C7B278CC3595E6F7B8A9 /* SDLControlFramePayloadAudioStartServiceAck.m in Sources */, - 994A5BCDA5C0EC5C5712514EBCFE024D /* SDLControlFramePayloadConstants.m in Sources */, - 8003E563EBF25F8D6C8BF11084650CED /* SDLControlFramePayloadEndService.m in Sources */, - 09CB3258A7C0449C98FC1A8FFCBD7E8B /* SDLControlFramePayloadNak.m in Sources */, - 82885DBB8D8EB8C4A666083AF5A1B140 /* SDLControlFramePayloadRegisterSecondaryTransportNak.m in Sources */, - 56F95DBFCAF964065E83931B5DAAE65E /* SDLControlFramePayloadRPCStartService.m in Sources */, - 18A04DAC7FB0A146DAC40573D200166B /* SDLControlFramePayloadRPCStartServiceAck.m in Sources */, - 4031C08AF41EB5717E50F252EB9619DE /* SDLControlFramePayloadTransportEventUpdate.m in Sources */, - 92ADA69AC48C7B62950700FD91DE0207 /* SDLControlFramePayloadVideoStartService.m in Sources */, - 158A038BFD11A6E0BC5A6E687F9E3647 /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */, - FA63B81F435E767F24EA31CA32A38952 /* SDLCreateInteractionChoiceSet.m in Sources */, - 20DAB1C92EC44DFEFEF56D51198C572D /* SDLCreateInteractionChoiceSetResponse.m in Sources */, - 1F84AE9ABE9E1282B0FABD9A18DE176B /* SDLCreateWindow.m in Sources */, - 67DD2F6C2C1B752CD9325DED259FEE1B /* SDLCreateWindowResponse.m in Sources */, - 722D3B085A292F3B1F54D195F6374EA5 /* SDLDateTime.m in Sources */, - 4E3A3B4BD619CC83FB17F5C37AF54790 /* SDLDefrostZone.m in Sources */, - B67E53A87562D448A2B0B22F350200C9 /* SDLDeleteChoicesOperation.m in Sources */, - BCCE283A6F1B81EEE8ED8D78E1AFB93C /* SDLDeleteCommand.m in Sources */, - 48533795DE37FD01F7C341BAD8E9F1A6 /* SDLDeleteCommandResponse.m in Sources */, - 21F4851D28775B178740FCDD77840B46 /* SDLDeleteFile.m in Sources */, - 945C1D3E2B5E534A1DCBB20F9207C238 /* SDLDeleteFileOperation.m in Sources */, - DF507767E93AFB36A70ED75AFF3D7074 /* SDLDeleteFileResponse.m in Sources */, - 3E9C0BA00FE324B6F5A23D5EB73376A4 /* SDLDeleteInteractionChoiceSet.m in Sources */, - C768AE4F1F770E7734CD8CC4B8A23306 /* SDLDeleteInteractionChoiceSetResponse.m in Sources */, - 33FCDDA1CB1F598D1C6207348791564D /* SDLDeleteSubMenu.m in Sources */, - 5C369D256AF7DC378B86FA8474FCDA3B /* SDLDeleteSubMenuResponse.m in Sources */, - 9EADD154CDB96A0D1B3E6E5382EC6E74 /* SDLDeleteWindow.m in Sources */, - DC7BA875C9FF947F0B1FBA4177C6F093 /* SDLDeleteWindowResponse.m in Sources */, - B0FDBE349EAE1AB26C3EDCDECBFBDBFB /* SDLDeliveryMode.m in Sources */, - 3666461CD2659EB1F156A9ED4B635DD8 /* SDLDeviceInfo.m in Sources */, - 9F2F8E54F7ABE7EB152CF5017ED25735 /* SDLDeviceLevelStatus.m in Sources */, - 6C0DD486593A4C4E141651525DA3E0B4 /* SDLDeviceStatus.m in Sources */, - CFCF4FDADFD7796F5BEAF925B79BEBAA /* SDLDiagnosticMessage.m in Sources */, - A4A2DF6197C7023E874BE6BF12317FE5 /* SDLDiagnosticMessageResponse.m in Sources */, - 401E5019769E747A0D6447BE8A3EAE13 /* SDLDialNumber.m in Sources */, - 63917E3E16077B84F94481FEEE4EF4FA /* SDLDialNumberResponse.m in Sources */, - 1D3DFC81393C32B76E87A25331260E3D /* SDLDIDResult.m in Sources */, - D112A18A400F5F4553BB42CA33F9AD14 /* SDLDimension.m in Sources */, - 59A56DDBA228D55C3134BD240398EED9 /* SDLDirection.m in Sources */, - E24DEEB6C2CD227A7D65A2670DB65D92 /* SDLDisplayCapabilities.m in Sources */, - FC8ED395A93A30E8199D7647E28C52D9 /* SDLDisplayCapability.m in Sources */, - 69BC1D80B84B7F1707FED6EDB7A50848 /* SDLDisplayMode.m in Sources */, - 364A7DB60D73F1034DBF45748AF68B26 /* SDLDisplayType.m in Sources */, - 90C967F20ED1D42E7E4EF18EBCE60915 /* SDLDistanceUnit.m in Sources */, - F1DD1651F7D575FF5C044437AA4FED30 /* SDLDriverDistractionState.m in Sources */, - 371E5AD456E767CBEB739FBFA55BE545 /* SDLDynamicMenuUpdateAlgorithm.m in Sources */, - 89F186632F6D84F43B5C85887FB6BF32 /* SDLDynamicMenuUpdateRunScore.m in Sources */, - F3383B633BE898CB9A98120AC1D7D7E7 /* SDLECallConfirmationStatus.m in Sources */, - 9F921520417BF771C9E3891A5EF5430D /* SDLECallInfo.m in Sources */, - CD925B345A3E54E75A88CBDC423BCC37 /* SDLElectronicParkBrakeStatus.m in Sources */, - F256A192BBBE3C98C369D2375D6EB1E8 /* SDLEmergencyEvent.m in Sources */, - 554E100F0671184D9B15CC7FFEF7C9D9 /* SDLEmergencyEventType.m in Sources */, - 342A1FB599F25F3A131C10A29A175FA8 /* SDLEncodedSyncPData.m in Sources */, - 44B209A527A69871374E1E156CFB0899 /* SDLEncodedSyncPDataResponse.m in Sources */, - B49E4BAB49D46EA13D6E48EAA4CDF8B9 /* SDLEncryptionConfiguration.m in Sources */, - 43AE76A59C4B8CBA13DF103BCCE5CBBD /* SDLEncryptionLifecycleManager.m in Sources */, - C9C7D39F1CA59D3F1BA74F9F4C1A4E8E /* SDLEncryptionManagerConstants.m in Sources */, - 1C8C72AEDD049473754C1840C1174517 /* SDLEndAudioPassThru.m in Sources */, - A98D7D891EBE12AE00ABB86C93553536 /* SDLEndAudioPassThruResponse.m in Sources */, - D3632770E0BF2D28B2213E1AE13F8C85 /* SDLEnum.m in Sources */, - 184B5F2AB049F7AEACB2B4E425EF9DA2 /* SDLEqualizerSettings.m in Sources */, - 260EDB6847E1D91E446BD87705E9889D /* SDLError.m in Sources */, - 035191FB5FFFEEABB361B4A406A43A41 /* SDLFile.m in Sources */, - C0480F3D520ED0985E5BD3D021629BBC /* SDLFileManager.m in Sources */, - 84540A4EDD1929D0EA78BAFA88717E6E /* SDLFileManagerConfiguration.m in Sources */, - 012F6AE0D9162FA9149FB63AA537BF0C /* SDLFileType.m in Sources */, - 0E4D84974346309363F47C9BC13F891F /* SDLFileWrapper.m in Sources */, - 491D694C8F0A8892857BD74CADEB69A0 /* SDLFocusableItemLocator.m in Sources */, - 70E35DA4DAB10B2117EF821AA552390E /* SDLFuelCutoffStatus.m in Sources */, - 8C03788689B6BFF34AA7FDE462B5E83F /* SDLFuelRange.m in Sources */, - 0DEB36187DADB983909A6D14D84906B8 /* SDLFuelType.m in Sources */, - 5632263F62FB69A40803CE6C3D995709 /* SDLFunctionID.m in Sources */, - 67D46AD5B6E35CB62DA133B5B348FA24 /* SDLGenericResponse.m in Sources */, - C675EC6DE3912F5B5514656C3C6A5C44 /* SDLGetAppServiceData.m in Sources */, - 9227D349F178FA9A6CB03E7C9D7371D7 /* SDLGetAppServiceDataResponse.m in Sources */, - 900DA1DA0A234DAD380424C769E4DEB4 /* SDLGetCloudAppProperties.m in Sources */, - E1152B7BAE15B01DBAA1C1F7896402E6 /* SDLGetCloudAppPropertiesResponse.m in Sources */, - C71B0B80E85DDF04457ED4A157EC63BE /* SDLGetDTCs.m in Sources */, - 6A32EE1E98F4B89DC22FF426ED90E128 /* SDLGetDTCsResponse.m in Sources */, - 2BE1E8F5E2507C4C2E16D826F74B4DDA /* SDLGetFile.m in Sources */, - 785A0499CCC19692E52D12A856D8A998 /* SDLGetFileResponse.m in Sources */, - 3ABFC40D5B2E13194B0D5B2EBA25822E /* SDLGetInteriorVehicleData.m in Sources */, - C4720ECDF1EB5D70742BBA8C419E6BEE /* SDLGetInteriorVehicleDataConsent.m in Sources */, - D613164BA0BA84926A93B0247D7A188E /* SDLGetInteriorVehicleDataConsentResponse.m in Sources */, - 841D7336AA726A431DA23D4AE4B74B0C /* SDLGetInteriorVehicleDataResponse.m in Sources */, - 8142B72C40C42732642DFE6C9E248FD4 /* SDLGetSystemCapability.m in Sources */, - 75B5CF174677B662157EE0E564B16CA9 /* SDLGetSystemCapabilityResponse.m in Sources */, - A502C2D1CF7CD300D4DD57DAFB83957E /* SDLGetVehicleData.m in Sources */, - 8927C69D5DD6678A506F11A6E5004CA4 /* SDLGetVehicleDataResponse.m in Sources */, - 2EA6C02C5692FEF6D1CE4C340FB9595E /* SDLGetWayPoints.m in Sources */, - F47674D7A51174A7C32C4BB40B703B55 /* SDLGetWayPointsResponse.m in Sources */, - CAC102566CD54361F5086A273A706B8A /* SDLGlobalProperty.m in Sources */, - A28A71C756E62973A2AA45EFC9282570 /* SDLGlobals.m in Sources */, - 8915858705EA72AA41C1956BB876A8A1 /* SDLGPSData.m in Sources */, - 3F4FCFC6CA60801D30BF902812F1CC08 /* SDLGrid.m in Sources */, - 6A39551CE8FE95E61A13AC6303021CF1 /* SDLH264VideoEncoder.m in Sources */, - D9FA90B43920243882EBC7A5AB83B874 /* SDLHapticRect.m in Sources */, - 2FAFFC1A43E38BE0952DD64BE3EFBCD7 /* SDLHeadLampStatus.m in Sources */, - 93BD94B217E901E1EF481553053C6098 /* SDLHexUtility.m in Sources */, - 2901022E187FA529C011EE5A8AEDA672 /* SDLHMICapabilities.m in Sources */, - A6A0C5D8FC9C6B9F16298EDAF864E40F /* SDLHMILevel.m in Sources */, - FC78B70C9F799ACA864846610091A7EC /* SDLHMIPermissions.m in Sources */, - AD6F7731154088DF04ABF7B114C3E3D5 /* SDLHMISettingsControlCapabilities.m in Sources */, - 5E3F02846B693F10D67988B2311C5637 /* SDLHMISettingsControlData.m in Sources */, - CBF7DF2B7DF0FB5F45F67AACFA74F66D /* SDLHMIZoneCapabilities.m in Sources */, - A2E76D7B29F39B1C4109492C9D134EFD /* SDLHybridAppPreference.m in Sources */, - DA31C910CCC271F4076D1BBECE2CB207 /* SDLIAPConstants.m in Sources */, - 53E093C1DC6055913CCCC71F391E9A8B /* SDLIAPControlSession.m in Sources */, - 01DFEF5F29A72D78E26203AC58138181 /* SDLIAPDataSession.m in Sources */, - BC9550536464FA9F75A2A288BE8822DD /* SDLIAPSession.m in Sources */, - 3D218CB9BCB99B81F0160E9EC92DA02E /* SDLIAPTransport.m in Sources */, - 88055DB6523505C026A7186A042B0A19 /* SDLIconArchiveFile.m in Sources */, - 5E02140A9157AA4C9BEE6A9A044E4DC1 /* SDLIgnitionStableStatus.m in Sources */, - 862FAFCD13F05A7A30DA725EA4BD11B2 /* SDLIgnitionStatus.m in Sources */, - DE5388F35C48BCE6C7CDC9E3B72E900E /* SDLImage.m in Sources */, - A71EA2A436D225D95F38B7388412A08A /* SDLImageField+ScreenManagerExtensions.m in Sources */, - 5B8FDF2A72CAB13B7848126ED89D4A99 /* SDLImageField.m in Sources */, - 48318B613184DDE2158BB0319C651664 /* SDLImageFieldName.m in Sources */, - 4FC54723A213B4601E377D642C8B7A3A /* SDLImageResolution.m in Sources */, - 6E9BE8E12179D20D279AB45E03DE90A5 /* SDLImageType.m in Sources */, - 045750228497D4A9200D3F5B8E4364CD /* SDLInteractionMode.m in Sources */, - 58E0719523FFA83A09D39EF3F58F6736 /* SDLKeyboardEvent.m in Sources */, - 83A68ADEDA90E33CC63142A22912ABF9 /* SDLKeyboardLayout.m in Sources */, - 966C2B23020D23A8D78F9953BF04589D /* SDLKeyboardProperties.m in Sources */, - 9CB6CCA60A7BB877BEA0851591D86AB9 /* SDLKeypressMode.m in Sources */, - BD93F389EA6C6D84A7CE4D6C4F4D49C3 /* SDLLanguage.m in Sources */, - 4FDC415F408F842E6797D412B962A94E /* SDLLayoutMode.m in Sources */, - CC9E43F7F975E29D4CEFADB3CF92530B /* SDLLifecycleConfiguration.m in Sources */, - 28F0D6F6BB67A870D663D51FC0CE0746 /* SDLLifecycleConfigurationUpdate.m in Sources */, - C09A7EF3511E4D1DAA83BE9F2C58589F /* SDLLifecycleManager.m in Sources */, - 6E5B5A9D4E5A1A3D974242BA837F34F0 /* SDLLifecycleMobileHMIStateHandler.m in Sources */, - 4F85738975C802A74B14297825DFB4CB /* SDLLifecycleProtocolHandler.m in Sources */, - 39FE38C28A881AD8F5D28B4AF7F585D7 /* SDLLifecycleRPCAdapter.m in Sources */, - 52B914BB3F72F83BBA465716FD859115 /* SDLLifecycleSyncPDataHandler.m in Sources */, - 580AE776FEBAFD0A7408EBC296789908 /* SDLLifecycleSystemRequestHandler.m in Sources */, - 13FB2D6E2ACF6617CF28D7BC8F966E73 /* SDLLightCapabilities.m in Sources */, - A13DA9493AD1940DF8E4F7C2929B710E /* SDLLightControlCapabilities.m in Sources */, - 2C70ADEC205EC64A4DD444D3EE158409 /* SDLLightControlData.m in Sources */, - C6C7B6FDA272B371411CA5B0011F2A89 /* SDLLightName.m in Sources */, - 828C58703B8028751F490E8A6AA7DEE5 /* SDLLightState.m in Sources */, - BC24B3B714C06A50BA2C14B52A6F7E83 /* SDLLightStatus.m in Sources */, - 7F5CE8EAAFC658D1733DC0D80A624DE1 /* SDLListFiles.m in Sources */, - 962D1254984FEEA395E1C5D203BAE7AE /* SDLListFilesOperation.m in Sources */, - A089C16C74635B52EBC65729AF6EBBAC /* SDLListFilesResponse.m in Sources */, - A8C832F5D8C9FFBC15B909B281A13441 /* SDLLocationCoordinate.m in Sources */, - 0D455F85C037AA10A41AB17B5E73F7D9 /* SDLLocationDetails.m in Sources */, - AC2DFB15873E4FCDEC002550ECDB8EB5 /* SDLLockScreenConfiguration.m in Sources */, - A1AF3C95FF46B13F93DA0EDFF0C63FC0 /* SDLLockScreenManager.m in Sources */, - 69A700328FFCFD1C1E2E9FF0F0529DEC /* SDLLockScreenPresenter.m in Sources */, - DB2585B9615080A2C1A8A0D5069EBD6D /* SDLLockScreenRootViewController.m in Sources */, - 941FB36D28F8570C928318E6E2B285E6 /* SDLLockScreenStatus.m in Sources */, - F5739CA941079DCD8B42FAF36B4E99F8 /* SDLLockScreenStatusManager.m in Sources */, - 16ACD830584EB36BBCD51EE70C466504 /* SDLLockScreenViewController.m in Sources */, - 7B24FA06A268C3DA54C496C28B13E25A /* SDLLog.swift in Sources */, - 7E667B3B3745C84FA7FA7E7A83CDDDED /* SDLLogConfiguration.m in Sources */, - 9A3BC4EF0F8485DA14F489A5336420B4 /* SDLLogFileModule.m in Sources */, - 741A73FF97C6C57457B593472329EBF1 /* SDLLogFileModuleMap.m in Sources */, - 1815A9C8A4247E4E7613B7EF15930B09 /* SDLLogFilter.m in Sources */, - 1AF57B3641E4C70E402DC7D0D99D10B3 /* SDLLogManager.m in Sources */, - 2F19F6E35794A71E80EAE7F89B4AB5AB /* SDLLogModel.m in Sources */, - D9C1F69D50AFCD76135A06BBA8B9CC68 /* SDLLogTargetAppleSystemLog.m in Sources */, - 5583694D10586B8BE311BE8C17491438 /* SDLLogTargetFile.m in Sources */, - FFDC6E163ACB77CBE6819E9860BD4F22 /* SDLLogTargetOSLog.m in Sources */, - 9CC23329ACF6AC45A3CD5927CBCCDB70 /* SDLMaintenanceModeStatus.m in Sources */, - 386E9EFC772B289246945F8BE7241D87 /* SDLManager.m in Sources */, - E5060579BBE45E03FA927A5B6CCF64B5 /* SDLMassageCushion.m in Sources */, - 84C5619937EB87E33EFD6E14666690ED /* SDLMassageCushionFirmness.m in Sources */, - 38D106DD3F9A61296105A0BBFA74A793 /* SDLMassageMode.m in Sources */, - D4BD6166FE38A9982C6D09ECE4E8E62C /* SDLMassageModeData.m in Sources */, - C2E03A3D6572E22C87D81A604D47992F /* SDLMassageZone.m in Sources */, - 2FD7CF9D67F1E9A67396EBCCCE51F42D /* SDLMediaClockFormat.m in Sources */, - A22ECF3CB1A288D78157AC42FCBB68C3 /* SDLMediaServiceData.m in Sources */, - C2F4478D9CA02EA33BE8A7B5AF5BA595 /* SDLMediaServiceManifest.m in Sources */, - A231ECE70CC02B9F1B199A860B67E5CA /* SDLMediaType.m in Sources */, - F326E244E8C563D5B3BD41A56D20D18A /* SDLMenuCell.m in Sources */, - A6A4551713557B3612CB818CA36D2180 /* SDLMenuConfiguration.m in Sources */, - 30E5E0206E793A637F06DE630A981A59 /* SDLMenuLayout.m in Sources */, - 468E23F01910C00372871E321677D708 /* SDLMenuManager.m in Sources */, - 7796527893D2EBB3895B55EF97A3800F /* SDLMenuParams.m in Sources */, - 0E670FBA97E4397EE7B3E77471F4D8BD /* SDLMetadataTags.m in Sources */, - 85B6CE567D6BC650645D3BC8D7503A89 /* SDLMetadataType.m in Sources */, - F503C527CD5501588ED3673D9676BABD /* SDLModuleData.m in Sources */, - 9388E820E8565F9117CDF46D2C2C107B /* SDLModuleInfo.m in Sources */, - 6B57D1A412547788055E9DA7140CFC2B /* SDLModuleType.m in Sources */, - 1B0890B8A98812BF360C72316B4CDA04 /* SDLMsgVersion.m in Sources */, - B870F919C9CB4A6A1BB503EE28D958B0 /* SDLMutableDataQueue.m in Sources */, - A07C3309D375FBFFB0B9076DE461F26C /* SDLMyKey.m in Sources */, - 455B22814822C82236B23D1CC8CAFC57 /* SDLNavigationAction.m in Sources */, - 5F3CB89390876085191CC0A3D249692A /* SDLNavigationCapability.m in Sources */, - 77C1792F987AC3B2A678A95E3BD85C32 /* SDLNavigationInstruction.m in Sources */, - 9EB265F8BCAA7305BB4F1A09C414F989 /* SDLNavigationJunction.m in Sources */, - 14861AC8930B7F124EB641618C8EC24B /* SDLNavigationServiceData.m in Sources */, - 9907162460264A1E3245E22EAE049630 /* SDLNavigationServiceManifest.m in Sources */, - E329AF57A57A5BF7BD973D6F447B9CB3 /* SDLNotificationConstants.m in Sources */, - BBFEBA37199DB7C2A7C50B66D41C769D /* SDLNotificationDispatcher.m in Sources */, - 6546CB8FB941FA6521D2D53F4423E0A0 /* SDLOasisAddress.m in Sources */, - 51E5FDE48BA94ADB52A8A4C7D2E3CB3E /* SDLObjectWithPriority.m in Sources */, - F54CBAF56B9B678D042AC19DD0255CA7 /* SDLOnAppInterfaceUnregistered.m in Sources */, - 17F93BD73F0A59E175D277959F26E49E /* SDLOnAppServiceData.m in Sources */, - 732010BF7C56D3F7501939DEF04CDB01 /* SDLOnAudioPassThru.m in Sources */, - 702B1574D8EBB3CECE5EE20403899AD4 /* SDLOnButtonEvent.m in Sources */, - 5A48DFAAD820439C6DD283B25B1B6699 /* SDLOnButtonPress.m in Sources */, - 09718516EA3E6A7A5CFC06F350845401 /* SDLOnCommand.m in Sources */, - F581452AB8DD619BF9DEFCB7DAD3B495 /* SDLOnDriverDistraction.m in Sources */, - B15FEA9D1CB41910C878C87E66276711 /* SDLOnEncodedSyncPData.m in Sources */, - 0C4CAB319C0DD76BC32BE6C5EBB1B41C /* SDLOnHashChange.m in Sources */, - 2191D6A77C470AA4A0164CB8E52CC83D /* SDLOnHMIStatus.m in Sources */, - DFE6BEA12EC622B3B238EE8C4009FB56 /* SDLOnInteriorVehicleData.m in Sources */, - 51028908A8086942864F571CBEC493D6 /* SDLOnKeyboardInput.m in Sources */, - BDC2CD1A1E888B02795ECECDAC742755 /* SDLOnLanguageChange.m in Sources */, - F438AFD76D78B6660ACDA6441A358A2B /* SDLOnLockScreenStatus.m in Sources */, - B8C8ACFC662321DA0803C3377DE8A738 /* SDLOnPermissionsChange.m in Sources */, - 4A1F895472135B6EDD8F124EC7FBD79C /* SDLOnRCStatus.m in Sources */, - 9AC6194F046D6E9C2F0E69C0D8C0AFE3 /* SDLOnSyncPData.m in Sources */, - AC4E1A3C06C91EA16765C11A4F70A766 /* SDLOnSystemCapabilityUpdated.m in Sources */, - 486D0104F246B30FA7F8CED598B947F1 /* SDLOnSystemRequest.m in Sources */, - 5814A19214584FF711E27A0165DB70B8 /* SDLOnTBTClientState.m in Sources */, - 4D0CDF50A825C03A88E5F1D91B94FE14 /* SDLOnTouchEvent.m in Sources */, - 03DB16B1FFEB1C86E3BD993FE8734543 /* SDLOnVehicleData.m in Sources */, - 1FB5E6E796E7E74B7DE35289B91F3756 /* SDLOnWayPointChange.m in Sources */, - B28AD4EB609E426CFA05E5537497ECFF /* SDLParameterPermissions.m in Sources */, - 4AA196AC12C2887B2B7F3BF50D5D33F3 /* SDLPCMAudioConverter.m in Sources */, - 785AFB7110E873CBC9CD1D4D6EFA9FAE /* SDLPerformAppServiceInteraction.m in Sources */, - 46D8ED642B200A137512BB44D779E9AD /* SDLPerformAppServiceInteractionResponse.m in Sources */, - DEE7AD7F86B81A9BC1E2EE6C39A2FECC /* SDLPerformAudioPassThru.m in Sources */, - 631017B15D80B89745179561A7882711 /* SDLPerformAudioPassThruResponse.m in Sources */, - 616D6920637E804849E0373AD2174843 /* SDLPerformInteraction.m in Sources */, - 275BFC3C7C9C324194B6BB00671D2E13 /* SDLPerformInteractionResponse.m in Sources */, - 2F4FFEE16B3FD1784AB626573515DD35 /* SDLPermissionElement.m in Sources */, - 67F80DAB5A2C44767BBD1E0F87132790 /* SDLPermissionFilter.m in Sources */, - B4A8BF4B8F942574D50ECFF3AE010660 /* SDLPermissionItem.m in Sources */, - 0551A6C1A7387993229F74C2DA8DFED0 /* SDLPermissionManager.m in Sources */, - B59731E62C036C36E1BF3B02EC02732C /* SDLPermissionStatus.m in Sources */, - A242E5E367F30640A5FFC65D998FCE23 /* SDLPhoneCapability.m in Sources */, - 3947336D6D27AF2C2B8F484756012548 /* SDLPinchGesture.m in Sources */, - 8A6BB66B60FA045F1595512D6C0499B1 /* SDLPowerModeQualificationStatus.m in Sources */, - 3DC0D34F7A82505A73EAC836507FAF16 /* SDLPowerModeStatus.m in Sources */, - EC0E19F24C8F829BAAA5042EC6CEAE21 /* SDLPredefinedLayout.m in Sources */, - 7EF977C0D687F79EEBE5556F4B91C795 /* SDLPreloadChoicesOperation.m in Sources */, - B1D805EE1F0226E6C240401C8961BC06 /* SDLPrerecordedSpeech.m in Sources */, - 624FB9F57A65D99E279F7B7030CE8F2A /* SDLPresentChoiceSetOperation.m in Sources */, - C5E5880273DD3A08B4F5CDAAACD699F0 /* SDLPresentKeyboardOperation.m in Sources */, - 521E03E63F754E1A463AE59E6FC1A41C /* SDLPresetBankCapabilities.m in Sources */, - 5C6CEB2D9368DD956E8DFB71E7290E3C /* SDLPrimaryAudioSource.m in Sources */, - 5F380CC11226D4A05EC5A8276730B966 /* SDLPrioritizedObjectCollection.m in Sources */, - 5BCCF4D01B9C4C5DDDC66A187E1158C4 /* SDLPRNDL.m in Sources */, - D87AC2C573191F7995FD5F12D9A5CADC /* SDLProtocol.m in Sources */, - 60F49BAE1E585A348B04B8C10FE7876C /* SDLProtocolConstants.m in Sources */, - B7117F6EF2052C5043114C3520AB787F /* SDLProtocolHeader.m in Sources */, - C6410DF2F1430F4ED083AA68B0639407 /* SDLProtocolMessage.m in Sources */, - 92C3ABE638A331C03AD29E1AAF919E66 /* SDLProtocolMessageAssembler.m in Sources */, - AFDCD08E8A842643D3F79AA1A1F57C96 /* SDLProtocolMessageDisassembler.m in Sources */, - 69F72E41357AC14E6AEDFA5D29169648 /* SDLProtocolReceivedMessageRouter.m in Sources */, - B49B1F5D35ACBF61C28026831A527A2F /* SDLPublishAppService.m in Sources */, - 7F2C743C5E22D4B43E3C96718A287635 /* SDLPublishAppServiceResponse.m in Sources */, - 3C67F554D0D515E034A5C7E22838CB9B /* SDLPutFile.m in Sources */, - A92EB02A106C15DC9A3AE3BC10A6ADFF /* SDLPutFileResponse.m in Sources */, - F7A72542FEA16DBFC8895F49973CEE69 /* SDLRadioBand.m in Sources */, - A827485FDCFA229B69E2EC034F53E8C0 /* SDLRadioControlCapabilities.m in Sources */, - 6A77038D70724D42FBE36C660FA25984 /* SDLRadioControlData.m in Sources */, - 9C447D1F8CC18ED9C81322538C5D8745 /* SDLRadioState.m in Sources */, - 75E6C6F54EEA45DBB11CA4791C6541C4 /* SDLRAWH264Packetizer.m in Sources */, - 774AABC7C408007271B765CB49CE11B5 /* SDLRDSData.m in Sources */, - A7F8FAB0C96FD69FA1FC28ED30B2ECBB /* SDLReadDID.m in Sources */, - 018583F6E7B468815A4573F80262E82C /* SDLReadDIDResponse.m in Sources */, - 30532F9A11D1F1284F004B623EDDC92D /* SDLRectangle.m in Sources */, - 71886EF8686699A2B144C9FDB19500F0 /* SDLRegisterAppInterface.m in Sources */, - F7466745158C54756E4285345452BD39 /* SDLRegisterAppInterfaceResponse.m in Sources */, - 22EE85743201277158FD54ED1EFC1B31 /* SDLReleaseInteriorVehicleDataModule.m in Sources */, - 68F7A1B469E057D5D1704769522F3430 /* SDLReleaseInteriorVehicleDataModuleResponse.m in Sources */, - 6A99B6EF560D2A0736B874F45E8B1D06 /* SDLRemoteControlCapabilities.m in Sources */, - 4F8500F87E23C15D287C5DD2DECE8B4B /* SDLRequestType.m in Sources */, - 2B6CDC7B0101E699EFF3726D4E0388E4 /* SDLResetGlobalProperties.m in Sources */, - 23918DCD6B118E665408EF1F6E7FD543 /* SDLResetGlobalPropertiesResponse.m in Sources */, - 0357B14944269911EAAD982BCA3F4A66 /* SDLResponseDispatcher.m in Sources */, - C2F71EF0CA12DAA83E5D5FD76B4C9AE7 /* SDLResult.m in Sources */, - EA3B5A546245509630C45FF94EE0F01B /* SDLRGBColor.m in Sources */, - 52DDF42FFF38F3CE6B04BFCA44933A35 /* SDLRPCFunctionNames.m in Sources */, - 875A8146A25E141985609DF2203B794A /* SDLRPCMessage.m in Sources */, - 3E9AAB221B1FBCD6C5F6FDAF98BEDF7C /* SDLRPCMessageType.m in Sources */, - 6E3FD9310F03098F4243193E0FBFDE22 /* SDLRPCNotification.m in Sources */, - 72D0FE3256E463B80705508EA33D1904 /* SDLRPCNotificationNotification.m in Sources */, - 5755FB5601F8050337ED594D86F3CA0C /* SDLRPCParameterNames.m in Sources */, - 3F0496824DC5D461075A4069C03F939E /* SDLRPCPayload.m in Sources */, - 68F032CE30BD7CE0AE34E486D3284828 /* SDLRPCPermissionStatus.m in Sources */, - 7206EA4C3E70012194A19E7A57784E73 /* SDLRPCRequest.m in Sources */, - 968CCBFF41DD6AF7457D8CE38CB12715 /* SDLRPCRequestNotification.m in Sources */, - EF5F16A2D1A46F4EAA5E69F72AD45ED6 /* SDLRPCResponse.m in Sources */, - D2076457A9AD3DAD99153504CC3E2942 /* SDLRPCResponseNotification.m in Sources */, - 66DD4C2351A07491E98BD7CD80A6A7DC /* SDLRPCStruct.m in Sources */, - 705C280F5C64DD6D5151417E328EBD00 /* SDLRTPH264Packetizer.m in Sources */, - E70C0DD38EBA9D727D26A5D6D38E50CC /* SDLSamplingRate.m in Sources */, - F4531EDAE28E6B40E5897E5E50FBF9A2 /* SDLScreenManager.m in Sources */, - 040C6196B4B9154BCBFD11E9FAE0466D /* SDLScreenParams.m in Sources */, - 2985A53122A05128571159CFA1AD21D1 /* SDLScrollableMessage.m in Sources */, - 1514165F8C64FE072961FCC0853C48A1 /* SDLScrollableMessageResponse.m in Sources */, - 9D59CA4C3A29F154C87BF4F144F0304F /* SDLSeatControlCapabilities.m in Sources */, - A7659903549585DFAFEABD6E439FE12F /* SDLSeatControlData.m in Sources */, - F210B2382368AEBE9301E0EB34A26D6D /* SDLSeatLocation.m in Sources */, - FC2AA09F1FD2F926814EC569C07360FF /* SDLSeatLocationCapability.m in Sources */, - 3D8BB45F1239777FAD6FA461E204167A /* SDLSeatMemoryAction.m in Sources */, - 2620F0B28CBE552798F639DFC8ADF7A7 /* SDLSeatMemoryActionType.m in Sources */, - 44C7B81BAEBD57895AFB62013688DB25 /* SDLSecondaryTransportManager.m in Sources */, - 3F83A26390073BDF79CA24F02C401B74 /* SDLSendHapticData.m in Sources */, - B743DF2EB989526A9B7CA860793CC0EC /* SDLSendHapticDataResponse.m in Sources */, - 1E0B34809FC5E69B56D3EA6B2A1F6298 /* SDLSendLocation.m in Sources */, - 4008A1304DD99DB9C511DF3E470FC3D2 /* SDLSendLocationResponse.m in Sources */, - 37B8173E99F5A470A7FD8F67DE82E815 /* SDLSequentialRPCRequestOperation.m in Sources */, - BA2FDF7FB9614291894702D810997E58 /* SDLServiceUpdateReason.m in Sources */, - EC0E322A16F7612CAF6B035EC0C3EF99 /* SDLSetAppIcon.m in Sources */, - 877EEF9736AFC84910376C4956E2F72D /* SDLSetAppIconResponse.m in Sources */, - 36A7484512448011EF3F2C0A38672487 /* SDLSetCloudAppProperties.m in Sources */, - EE126905164C9734AC28DDFC63C52D4A /* SDLSetCloudAppPropertiesResponse.m in Sources */, - D17A65C54A8CA8E5F268634CB63E3A60 /* SDLSetDisplayLayout.m in Sources */, - 63D41CDF01DD88B980D593CCB9F42789 /* SDLSetDisplayLayoutResponse.m in Sources */, - BA0BFE367BFC3B4A7D3E2B5879C7F7B9 /* SDLSetGlobalProperties.m in Sources */, - 7EF3CC27A41E978150622B382F5DBBC1 /* SDLSetGlobalPropertiesResponse.m in Sources */, - 854A588B639BD42CC33822B7AEE5AEC3 /* SDLSetInteriorVehicleData.m in Sources */, - FFCADB158DBD81417BDF149A09C7C861 /* SDLSetInteriorVehicleDataResponse.m in Sources */, - 00CB17531475454F299A0A8C2D46C476 /* SDLSetMediaClockTimer.m in Sources */, - E45157D8F36A97F44996C299AFC261BF /* SDLSetMediaClockTimerResponse.m in Sources */, - 529E1292ED8DB847A829F4DB43CA5167 /* SDLShow.m in Sources */, - EEF6E7F741B89CE1B74279CDDD578B68 /* SDLShowAppMenu.m in Sources */, - 52A4C2B016A6EC2EFBB52FE9D6D75591 /* SDLShowAppMenuResponse.m in Sources */, - 77F8B1D0628B527B45BE658B3B293E2D /* SDLShowConstantTBT.m in Sources */, - F26364001CACD8039EE54E4E7BF8BEC8 /* SDLShowConstantTBTResponse.m in Sources */, - D2083CC54CCEC2FE484B31F105CEAA31 /* SDLShowResponse.m in Sources */, - 507614048885966692844A57CAB8F768 /* SDLSingleTireStatus.m in Sources */, - FC03DDA275EDF285D7C124C51A321A72 /* SDLSISData.m in Sources */, - ACC70E74E729688F72E6AD7FD4B43460 /* SDLSlider.m in Sources */, - 5384C2E17CD387967780AB2004FA1D02 /* SDLSliderResponse.m in Sources */, - 14C2FEF6C23E292C7F15E45015C72645 /* SDLSoftButton.m in Sources */, - 5F5C149F78091F0E90FDC1E306A9F0BB /* SDLSoftButtonCapabilities.m in Sources */, - FFE6AD5AE2B963DF76A98DD2119B858D /* SDLSoftButtonManager.m in Sources */, - A3D6E5343C5EBA76EB0F377AFA744A12 /* SDLSoftButtonObject.m in Sources */, - 1B5C00162799C6FCF2D19928932C85D5 /* SDLSoftButtonReplaceOperation.m in Sources */, - 2394A20ABF6920FF93BCE2BBA53462C5 /* SDLSoftButtonState.m in Sources */, - 497C10D19DE00429231009C559672879 /* SDLSoftButtonTransitionOperation.m in Sources */, - 801B9BEFA66C3145C817445D8AE5BA1F /* SDLSoftButtonType.m in Sources */, - 80E9854ADFCBD2E2B0D0C318C5896D89 /* SDLSpeak.m in Sources */, - 7BDB9F0C874B2B2DC0EDF0ACD35410DC /* SDLSpeakResponse.m in Sources */, - 1C89E481A5D7EF11BBBD00A7639D1CEE /* SDLSpeechCapabilities.m in Sources */, - 1782A870F0444CD170E723B94D9D9938 /* SDLStartTime.m in Sources */, - 95B5F07BEBB763878CE72E1B28008DA4 /* SDLStateMachine.m in Sources */, - 3A7F3063768B19D7796C73C2EA441D2C /* SDLStaticIconName.m in Sources */, - ACFF233B8E3A348018FF3E76F0D95FF4 /* SDLStationIDNumber.m in Sources */, - 17C52BC9B9BE5AA733DFC59948575010 /* SDLStreamingAudioLifecycleManager.m in Sources */, - F1BC8A93814012F7CDFB754643FA878B /* SDLStreamingMediaConfiguration.m in Sources */, - A00752000D6758411D62C24B0428BC3F /* SDLStreamingMediaManager.m in Sources */, - 348763461B039C50375433135292E6F8 /* SDLStreamingMediaManagerConstants.m in Sources */, - 016271ED126FCB8B88C223982FE04B7A /* SDLStreamingVideoLifecycleManager.m in Sources */, - 3B79D7FFB7B31333AB5B2EA58912DA0F /* SDLStreamingVideoScaleManager.m in Sources */, - C3897010E229BC2F8FAAA59CA978C9C3 /* SDLSubscribeButton.m in Sources */, - 0E3B22B9667D90B77024475A54B97B6A /* SDLSubscribeButtonManager.m in Sources */, - A72713FA7E24B3B7BD7207DCE5FD4446 /* SDLSubscribeButtonObserver.m in Sources */, - 3FF26779DAE684544CB75200EF942B03 /* SDLSubscribeButtonResponse.m in Sources */, - E66DB3C37E4973F7DDE47B53F4A1CED2 /* SDLSubscribeVehicleData.m in Sources */, - 817649F62E631491CB4D4AC78AD1F931 /* SDLSubscribeVehicleDataResponse.m in Sources */, - C1D98456C85367AA570A828DC98EFD8A /* SDLSubscribeWayPoints.m in Sources */, - 74DEDAE776C51EFDD5DB1136F7BEACE3 /* SDLSubscribeWayPointsResponse.m in Sources */, - CE0907AF29BE4C2529034A3529439E98 /* SDLSupportedSeat.m in Sources */, - BF50E3A299C323B4D578ED1A35281FB8 /* SDLSyncMsgVersion.m in Sources */, - 5387C9D45457C73F1FE2DEC29EA23BAC /* SDLSyncPData.m in Sources */, - F625647BF7E1785CD864DCDA9D21E7D6 /* SDLSyncPDataResponse.m in Sources */, - E0E6BA7F5D22191786EEF3537BC1616E /* SDLSystemAction.m in Sources */, - 0BBAEC4E7FDE7908CB2F92C7B294C4D8 /* SDLSystemCapability.m in Sources */, - 14696775CAFCCDDD4E89AF56DF5B4D81 /* SDLSystemCapabilityManager.m in Sources */, - 3B0D77042D0B05B201861684C71567FF /* SDLSystemCapabilityObserver.m in Sources */, - 96E61C55BA1EECD3A1E4775D8B3FD9B0 /* SDLSystemCapabilityType.m in Sources */, - 0BF4C3DD58C44DA1F4C0174DD975AA7F /* SDLSystemContext.m in Sources */, - FC5FE1F84697A3314FBD5A170442BC40 /* SDLSystemRequest.m in Sources */, - 286884B8ECBF5EBF98E40CDEA1432CBC /* SDLSystemRequestResponse.m in Sources */, - 3C7453895CF4AE78AFA1E2A6DB28F6B1 /* SDLTBTState.m in Sources */, - C08E8703CB3E2A985D9AF689F03A1E3A /* SDLTCPTransport.m in Sources */, - 61286289354C21684DCA0FB800FCB7E3 /* SDLTemperature.m in Sources */, - 1699B1DC3B210BB0EA3EC3477569179C /* SDLTemperatureUnit.m in Sources */, - 73AF02C61796BC9795EB99512699E5BA /* SDLTemplateColorScheme.m in Sources */, - 927C947F095CE2F08573FEBABE2EF00A /* SDLTemplateConfiguration.m in Sources */, - A1CB2DBE53FB15D96D2AEF47E2AA0B8F /* SDLTextAlignment.m in Sources */, - D80078A675B7A36DC01D242EFC0CD243 /* SDLTextAndGraphicManager.m in Sources */, - 3EB130E67D616532CECE546D5B9198F5 /* SDLTextField+ScreenManagerExtensions.m in Sources */, - 361298C811976BB148D53B2FD2C35863 /* SDLTextField.m in Sources */, - B90F0AC037A0C668401856BFB79D61C1 /* SDLTextFieldName.m in Sources */, - 851385917D7B75901BBEC54799544B16 /* SDLTimer.m in Sources */, - 51F564A4B2B0F3AD4D87627DC3996138 /* SDLTimerMode.m in Sources */, - 4118ED81086EC0AB6C067C913FF309EF /* SDLTireStatus.m in Sources */, - 6018282BC65CCED9D947B60ACB3549E6 /* SDLTouch.m in Sources */, - C56F66D9B8AD9294B028C7C5C2270AB0 /* SDLTouchCoord.m in Sources */, - F54ABA2F5DB667EFFD347157BB9FFD99 /* SDLTouchEvent.m in Sources */, - D5AFCC6EADD5C94029C13A88099C46E6 /* SDLTouchEventCapabilities.m in Sources */, - 5722E858FD960FDCE31C18D4FC174A03 /* SDLTouchManager.m in Sources */, - 704C9306EF48FE1BBAE20B7CAADE8FA8 /* SDLTouchType.m in Sources */, - 9CA1C5D540B6F8A9D15AE08E08F282A8 /* SDLTPMS.m in Sources */, - 68A1D017360BBBBC0074B9F8C38324D7 /* SDLTriggerSource.m in Sources */, - D0687F8DE9690C573C4C0446EE4F197C /* SDLTTSChunk.m in Sources */, - 5F34BFCB3F62497D394181D996499346 /* SDLTurn.m in Sources */, - 24529E6BF87EACE46A7B5EBD319B9CBE /* SDLTurnSignal.m in Sources */, - 7A10A582CE1C096717AD7336C1B7EBD4 /* SDLUnpublishAppService.m in Sources */, - F4007F4A5519CFDDF825860E24FBB59B /* SDLUnpublishAppServiceResponse.m in Sources */, - 361EA55F7977ACF8AFF73CCB49DD9002 /* SDLUnregisterAppInterface.m in Sources */, - 7B1E4523F92AFFECDEC08D8005987727 /* SDLUnregisterAppInterfaceResponse.m in Sources */, - 34DB843A171C44A34317D65BE3E173E8 /* SDLUnsubscribeButton.m in Sources */, - 31F84B21B506C0A0DE2AB3959E41F9EE /* SDLUnsubscribeButtonResponse.m in Sources */, - 3D4438E9B8C4651BAA6CEB5D5039C883 /* SDLUnsubscribeVehicleData.m in Sources */, - 78A8DD9987A5AD9F966EC563DE304315 /* SDLUnsubscribeVehicleDataResponse.m in Sources */, - 0F25929AD33907EB2347A3F23241C047 /* SDLUnsubscribeWayPoints.m in Sources */, - 810BB67A4F073E317DDCD354D46D5798 /* SDLUnsubscribeWayPointsResponse.m in Sources */, - DBE730A70BE64357EEB827CBEF8550A6 /* SDLUpdateMode.m in Sources */, - 1FD1613858BF4AF4DD707C31690E31F1 /* SDLUpdateTurnList.m in Sources */, - 6D06E07A53474A734004B5F848586E0A /* SDLUpdateTurnListResponse.m in Sources */, - 2B6C25B8C9B489B00C3ED80593792E99 /* SDLUploadFileOperation.m in Sources */, - B85EAD39E2090312474E012A26CC234A /* SDLV1ProtocolHeader.m in Sources */, - C37E0A7500862346CC0188EE615B9E52 /* SDLV1ProtocolMessage.m in Sources */, - 0567BA39C9D8F87D132349786EF77E51 /* SDLV2ProtocolHeader.m in Sources */, - 9C5BB601A65D77A59756F8DA0CA60A4C /* SDLV2ProtocolMessage.m in Sources */, - AD7801AB5E6D5F623B5063C6670D38C0 /* SDLVehicleDataActiveStatus.m in Sources */, - 53FB495454A995493CFBA59DA2A7186A /* SDLVehicleDataEventStatus.m in Sources */, - 9A4099CB0E977922DCD215920D51E6EF /* SDLVehicleDataNotificationStatus.m in Sources */, - 5018CBE8BD73A237A1D49B52DFDA4469 /* SDLVehicleDataResult.m in Sources */, - EC1F50828A025FA4F94B70385787ABBF /* SDLVehicleDataResultCode.m in Sources */, - E0FC41FEC6C7E4801B4394F3200D1F14 /* SDLVehicleDataStatus.m in Sources */, - 9D4F3D442A1E6B6D5616F9E28EEBCBCF /* SDLVehicleDataType.m in Sources */, - C92CD2430E581982358A1362D3C8AF85 /* SDLVehicleType.m in Sources */, - 9E6083DC34FA4DC0770B8119699D96A4 /* SDLVentilationMode.m in Sources */, - 04B18BE8079A29A81ACA01FED3181CED /* SDLVersion.m in Sources */, - 2D094A7342D5409693FB87A9130B7A5D /* SDLVideoStreamingCapability.m in Sources */, - B2E0C4DA0C2AEC5B2A7B6ACBF4220E09 /* SDLVideoStreamingCodec.m in Sources */, - 031495D4969E56B37EACAA1F70767994 /* SDLVideoStreamingFormat.m in Sources */, - 2F9DB498E2C28210E3DF3810C99CB74E /* SDLVideoStreamingProtocol.m in Sources */, - 16AB530744D2106B1F11B0430918DF43 /* SDLVideoStreamingState.m in Sources */, - 482E7DA3E17EA819958A6ADE561D4A6C /* SDLVoiceCommand.m in Sources */, - 9F30B639E559F0B7DD77042DE4A3304E /* SDLVoiceCommandManager.m in Sources */, - 477719EE4D3DE4F85F24E2648C5CEB6E /* SDLVrCapabilities.m in Sources */, - A73902712800A16C4859D7ADAF4C45CB /* SDLVrHelpItem.m in Sources */, - B8425BED5CAC2291C0479640AFAB2A22 /* SDLWarningLightStatus.m in Sources */, - 76FB8F453DF3B113045E68FC3BAEF526 /* SDLWayPointType.m in Sources */, - 1697CD08D2311669260F79B71E513B5F /* SDLWeatherAlert.m in Sources */, - 999FE86F3A5166111487B9F4C4519044 /* SDLWeatherData.m in Sources */, - 33AA2D5C6064086920C929390E25D49F /* SDLWeatherServiceData.m in Sources */, - 3754EAD930F3D40A42F3223321F899B0 /* SDLWeatherServiceManifest.m in Sources */, - 8E91351C40B6D32DD0C621B1E1F0ED58 /* SDLWindowCapability+ScreenManagerExtensions.m in Sources */, - FF9ABE4F036C6B902A2B802E6E2479B2 /* SDLWindowCapability.m in Sources */, - 6320CDF0BD3E03E4095435D5FF23AE05 /* SDLWindowType.m in Sources */, - 64561042D6D620D2EE28EBB734BF03EF /* SDLWindowTypeCapabilities.m in Sources */, - E5B88FE74B2EE51391E6F196C27429F4 /* SDLWiperStatus.m in Sources */, - 0640A84E3A042DC547293AA195F16D9E /* SmartDeviceLink-dummy.m in Sources */, - 942414A05FF809E21FB3DB012A624EF4 /* TestSubscribeButtonObserver.m in Sources */, + DCE0587A668CB5629A3922AEED72696D /* CGPoint_Util.m in Sources */, + 7E22622570D54BD1940684C8878AD8EE /* CVPixelBufferRef+SDLUtil.m in Sources */, + 958BA35B1D729FDEF31741435AE32D47 /* EAAccessory+SDLProtocols.m in Sources */, + 1BA6566C54CC331FD44B6D747A71413E /* EAAccessoryManager+SDLProtocols.m in Sources */, + C49085322E666749EF2BFEBE0B39A03D /* NSBundle+SDLBundle.m in Sources */, + 7797ACE4CA0ECF8E48783A0F0F48B613 /* NSMapTable+Subscripting.m in Sources */, + 2BCD9A7B3DD021361FFE8FB9B730AE60 /* NSMutableArray+Safe.m in Sources */, + 46CB9EA98028EF5643189A044EF55FA6 /* NSMutableDictionary+SafeRemove.m in Sources */, + E856AEBFEFC7D5F0578CD0BCF2E437A2 /* NSMutableDictionary+Store.m in Sources */, + C9A51A47B90DE8253FD3BC6440CFB71E /* SDLAddCommand.m in Sources */, + F9D4473988403B0D857F60E04AE1869C /* SDLAddCommandResponse.m in Sources */, + 2DFDC4AD6962C73978FDCB69788CB03A /* SDLAddSubMenu.m in Sources */, + 4AD88CBD9DFB871BC60464B1D464C126 /* SDLAddSubMenuResponse.m in Sources */, + 8791415B6BA285019F93446711CFB890 /* SDLAirbagStatus.m in Sources */, + C91879AA8DE05A71C2033F931AB5CCA3 /* SDLAlert.m in Sources */, + 70641AFF8F162D96E9A8D15A25ED7DEA /* SDLAlertManeuver.m in Sources */, + 8C5CBA98BA079CB5DB372F9795C00402 /* SDLAlertManeuverResponse.m in Sources */, + C2FE8CF94D832796F3EF72FB70D19BAE /* SDLAlertResponse.m in Sources */, + 7E254B51D45A6C9BA396DCADEFF5C2C0 /* SDLAmbientLightStatus.m in Sources */, + 79A1ED399F40324160E433A36A0E4DEE /* SDLAppHMIType.m in Sources */, + D3D759726795216F9424D189A841E710 /* SDLAppInfo.m in Sources */, + 80EE893775E39EB4C5AD60C59D973BAC /* SDLAppInterfaceUnregisteredReason.m in Sources */, + 034FD36A8B615166B2A55A320825E672 /* SDLAppServiceCapability.m in Sources */, + 4FA65B210DE99D64030605C9E769AC05 /* SDLAppServiceData.m in Sources */, + E0E1B3ACC985352FAE972CBA76E0181F /* SDLAppServiceManifest.m in Sources */, + 253CF5828543F3EBE5E6AD378905C642 /* SDLAppServiceRecord.m in Sources */, + F5FF108C0938117D95BEBD45B79C0983 /* SDLAppServicesCapabilities.m in Sources */, + CB78A3E864EA0A002502E8C3AD6C46D8 /* SDLAppServiceType.m in Sources */, + 61514DCF5A2A0366879CCFF8E1D53FCD /* SDLArtwork.m in Sources */, + AEE77C021573B8DD9C36742C872CC145 /* SDLAsynchronousOperation.m in Sources */, + CF0D78642CD57EA660A8067270AAAF75 /* SDLAsynchronousRPCOperation.m in Sources */, + 1833E6DCA530A450C5480467B637E31E /* SDLAsynchronousRPCRequestOperation.m in Sources */, + F6A3C792B488CB3D8AEEF40EBC595D0D /* SDLAudioControlCapabilities.m in Sources */, + 19FC5C8BF351FC3E95B20901E34AFDB4 /* SDLAudioControlData.m in Sources */, + FA4A926BE21F813482C1EEF8B5D3E8C1 /* SDLAudioFile.m in Sources */, + C8354B4FAA109B7F8E992FB959D0D7F3 /* SDLAudioPassThruCapabilities.m in Sources */, + 988688D3D697D96628D7083C22A6746B /* SDLAudioStreamingIndicator.m in Sources */, + 4F7B3FACDC968EEB28DBBDE1A4B118D2 /* SDLAudioStreamingState.m in Sources */, + DD0A1BEB5AEA8AABB567D0818319E6E2 /* SDLAudioStreamManager.m in Sources */, + A983A6276F3C7B7AC3587F036EE6E779 /* SDLAudioType.m in Sources */, + ED68CCC97FB702F10ED78C504F690D4C /* SDLBackgroundTaskManager.m in Sources */, + 4C7E24A221E96927418CE33F08F14A05 /* SDLBeltStatus.m in Sources */, + B0C6AD5C1F58F49D4F0EB9202EE6654B /* SDLBitsPerSample.m in Sources */, + FE4F97665C7F66149151763B5E251ED9 /* SDLBodyInformation.m in Sources */, + FC16833BB8606EE3ECBF22387E960652 /* SDLButtonCapabilities.m in Sources */, + BAC2CAAD8EF1B594AF2AACCC04E5C18D /* SDLButtonEventMode.m in Sources */, + C696CAE3A09EB97DC810FC07560EC69B /* SDLButtonName.m in Sources */, + 929ADD71B64CBA1ACDBA88FA86B27B5D /* SDLButtonPress.m in Sources */, + 73DE5C4E84CC11C41F29013A13AE6B49 /* SDLButtonPressMode.m in Sources */, + 0F80DC9D4D10F534C6F2B7CB23896C90 /* SDLButtonPressResponse.m in Sources */, + 2706135D6304AF804131C64201373241 /* SDLCacheFileManager.m in Sources */, + 9F6E93F678382583CB066DB5551B6328 /* SDLCancelInteraction.m in Sources */, + 07AD372A4D2EB711FF523E81E3E90BF1 /* SDLCancelInteractionResponse.m in Sources */, + BFADD0FED2798C307E340300A4A559CB /* SDLCarModeStatus.m in Sources */, + 4EEA7E1F5B0599432045D965A5F0F853 /* SDLCarWindow.m in Sources */, + 26D4C0D8E30774CFEE843FEF4743645B /* SDLCarWindowViewController.m in Sources */, + 715A7299FB24EDB0B8C8566CACF275EA /* SDLChangeRegistration.m in Sources */, + F2BE2F57B286B175FC62F1444430B1D4 /* SDLChangeRegistrationResponse.m in Sources */, + A93762770ACAEA4669A192AA1B24F74E /* SDLCharacterSet.m in Sources */, + AEA20BEDAED5BFD7E117618DE31A2294 /* SDLCheckChoiceVROptionalOperation.m in Sources */, + E6BA8D851540D188968B8544AF39F7C7 /* SDLChoice.m in Sources */, + 2357A232DE207AAE2411963C3617D7CE /* SDLChoiceCell.m in Sources */, + 572EA07632A1B4FD40F4BAF78A817413 /* SDLChoiceSet.m in Sources */, + A880069AB28A616308F535E09774FE5B /* SDLChoiceSetManager.m in Sources */, + 2DB08513DEEDEF75DC9B4E14E2472368 /* SDLClimateControlCapabilities.m in Sources */, + B9FBF724A55EE25820B80F367AC73C25 /* SDLClimateControlData.m in Sources */, + 1C92C671D8279E6FB7270A408214F9D3 /* SDLCloseApplication.m in Sources */, + 342C8E76BD027C866688E49E07922DC5 /* SDLCloseApplicationResponse.m in Sources */, + AE62522F9520AF29D75A29C4F52021DA /* SDLCloudAppProperties.m in Sources */, + FFE6F75D5CD21D5E45302E27C7330DDB /* SDLClusterModeStatus.m in Sources */, + 023FF5FF6AB8D92897C064F883E571BB /* SDLCompassDirection.m in Sources */, + 3EA94155B7EC5117E704B30EF66256D4 /* SDLComponentVolumeStatus.m in Sources */, + 21E4968504B9B9A36C22927525A27A22 /* SDLConfiguration.m in Sources */, + C0A71255BA42AABF49FC6BF20B7E6942 /* SDLControlFramePayloadAudioStartServiceAck.m in Sources */, + 010C3B63A6D23E6FFDCECFA3501FD245 /* SDLControlFramePayloadConstants.m in Sources */, + F5F3431D4E9DA8E993F74FBB8700C2D3 /* SDLControlFramePayloadEndService.m in Sources */, + E78A6E5549B103DFAE743AD12D3BB3C9 /* SDLControlFramePayloadNak.m in Sources */, + 8D4AB4E591716291BBAAF6ED6158C334 /* SDLControlFramePayloadRegisterSecondaryTransportNak.m in Sources */, + 88C588D8E3BA8DCFE6492D8A84C27955 /* SDLControlFramePayloadRPCStartService.m in Sources */, + 6A87625EF2166A613128D2C3B2CD0EDC /* SDLControlFramePayloadRPCStartServiceAck.m in Sources */, + A29DDF83D423EEF2B51B63527AE1EB53 /* SDLControlFramePayloadTransportEventUpdate.m in Sources */, + 836439614BB958B33C815F337891A1E4 /* SDLControlFramePayloadVideoStartService.m in Sources */, + 8F79C57B48BD48C9C5C9CBDDEE4FA12E /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */, + 23CD6E5D59B9816CB5B431D84A9B841C /* SDLCreateInteractionChoiceSet.m in Sources */, + B7690B374717F6654E1FB323F56CDAC5 /* SDLCreateInteractionChoiceSetResponse.m in Sources */, + 0E6E01DCAD73B2D0AA22BEEF99D6220F /* SDLCreateWindow.m in Sources */, + 7E1AB33ED4368698355849CC018E62B8 /* SDLCreateWindowResponse.m in Sources */, + 3F4AD047267732B8620595C92A211626 /* SDLDateTime.m in Sources */, + FB5187CAF6381587B2C09B586DCFD65E /* SDLDefrostZone.m in Sources */, + A1161753253DEFA30B66E27E94AFAFA8 /* SDLDeleteChoicesOperation.m in Sources */, + C927DC95742CBB01C497AFA4B78445B6 /* SDLDeleteCommand.m in Sources */, + 55FEF4FF43C2FC907DCB0ECC9AB94286 /* SDLDeleteCommandResponse.m in Sources */, + 252B5ED026A01C0D4C40814C966FED34 /* SDLDeleteFile.m in Sources */, + 303F0EB9B270569385EE922355BB7E3D /* SDLDeleteFileOperation.m in Sources */, + B4A61C8FC47F7E6EB2494CE3ECFEB4D9 /* SDLDeleteFileResponse.m in Sources */, + DDC9A6C3B028FAED1D590BB8FB455CFA /* SDLDeleteInteractionChoiceSet.m in Sources */, + 7363BD6E4C6F33855F2424FAF92C24C2 /* SDLDeleteInteractionChoiceSetResponse.m in Sources */, + FEBFDB67FEDBDF463E70EFD31350D707 /* SDLDeleteSubMenu.m in Sources */, + 10B60849CF1A0F57C155CF09B6CEF269 /* SDLDeleteSubMenuResponse.m in Sources */, + DFD1D56FCF90A9760B608B68C4B20D6C /* SDLDeleteWindow.m in Sources */, + 94B16494699CA8D318680A2E935156A9 /* SDLDeleteWindowResponse.m in Sources */, + 0DC17CC659095ACDA1DD4475EB6B61AE /* SDLDeliveryMode.m in Sources */, + 4076BFBF65A4A2046591AABC91A028F4 /* SDLDeviceInfo.m in Sources */, + 2DB78F6080F090A8961C26B799153455 /* SDLDeviceLevelStatus.m in Sources */, + 75EDAD156F18E1031B3797F58D04BE56 /* SDLDeviceStatus.m in Sources */, + E5979E7ED144130EDF229E940FDCEC6D /* SDLDiagnosticMessage.m in Sources */, + 137536F0DC6C6A1290F7C928335EE9EC /* SDLDiagnosticMessageResponse.m in Sources */, + 73AA14293006489564B10EE55DB803BE /* SDLDialNumber.m in Sources */, + 1FF10BE9E8007086210AA089BBD34F2B /* SDLDialNumberResponse.m in Sources */, + 60F5AE17A02DF80CEE6DBF6E6413020B /* SDLDIDResult.m in Sources */, + D234391D80E52A63CABA557E2648CB1D /* SDLDimension.m in Sources */, + 2F4E80B19F313DE275BF8A4C380F0F74 /* SDLDirection.m in Sources */, + AA342DA2EF3182E7DBBB4A113C12A4B4 /* SDLDisplayCapabilities.m in Sources */, + AB7861DE54C82B10AC22ACC4D25E1587 /* SDLDisplayCapability.m in Sources */, + 3B0ACE0BF82CAB30ED1ABC54F39CB5DB /* SDLDisplayMode.m in Sources */, + FC3444AE19593182B1B1D7256A3C3221 /* SDLDisplayType.m in Sources */, + F3F1C5B0BC58DC8D8FC6B259EB0932F1 /* SDLDistanceUnit.m in Sources */, + C2EA147B1E0EE749146AD91F1A361EB4 /* SDLDriverDistractionState.m in Sources */, + FFA33134510D6CC20094D31BA6C22AB4 /* SDLDynamicMenuUpdateAlgorithm.m in Sources */, + 8A0217E86ABB97C151485BEE6A05C9B3 /* SDLDynamicMenuUpdateRunScore.m in Sources */, + C283ED9B5B1EC7EC6868B78713450850 /* SDLECallConfirmationStatus.m in Sources */, + F58FAECE702EA7D92183F8760FD9A2FE /* SDLECallInfo.m in Sources */, + E77B6A7478F7762E6DF80267D1107F58 /* SDLElectronicParkBrakeStatus.m in Sources */, + 9F29AC1D8588B1909F44A2D2154B059E /* SDLEmergencyEvent.m in Sources */, + 41BD6912F45B73EA88F91D8FF36470F3 /* SDLEmergencyEventType.m in Sources */, + 7195E044FEC69FB050E2E51AAB636AFB /* SDLEncodedSyncPData.m in Sources */, + 89712DE1E205AF44BB30F36CBDB31118 /* SDLEncodedSyncPDataResponse.m in Sources */, + BD9AB81D2EB679A0ECAE3F85B412382F /* SDLEncryptionConfiguration.m in Sources */, + FACC0EB4D9967C04B9F4ED7A82ED4A80 /* SDLEncryptionLifecycleManager.m in Sources */, + 30A46A62B4A22B6AFE3B7369879FCB46 /* SDLEncryptionManagerConstants.m in Sources */, + 8D4F4377C8B41695F73334FA8DF62670 /* SDLEndAudioPassThru.m in Sources */, + 4BB3C3F4C43F262E62FC10A2B90C5509 /* SDLEndAudioPassThruResponse.m in Sources */, + AAC0DB5D3A430B05CC4019E7D477C302 /* SDLEnum.m in Sources */, + A90A906DCF7DCBCA8E836FA3E00A6282 /* SDLEqualizerSettings.m in Sources */, + 3E5E415918576021223E72FDEF0A3C9F /* SDLError.m in Sources */, + 20C79EED1BFD13B24B8119A104E92501 /* SDLFile.m in Sources */, + A00E882CF0FA04AC4318B555BA1B4A44 /* SDLFileManager.m in Sources */, + 06937EC8C50E58F95E3115B64BE7AA1F /* SDLFileManagerConfiguration.m in Sources */, + DC9AE1FE02EE4FA7CC1FC9B08CEBC606 /* SDLFileType.m in Sources */, + 5A7F0025D46821A9392DC4115B746DF1 /* SDLFileWrapper.m in Sources */, + 5B8C2645A7E114E40C5A2D8DB333C72B /* SDLFocusableItemLocator.m in Sources */, + 55BC0E64D4A51021A93FB2D763F3BF9C /* SDLFuelCutoffStatus.m in Sources */, + 581A00BAEB05979C1FA7426A48471335 /* SDLFuelRange.m in Sources */, + 41ACFBF95F2E17E58C237CE67A1D6C68 /* SDLFuelType.m in Sources */, + 41D0EF1CC1302A540C682C2BB821A8D6 /* SDLFunctionID.m in Sources */, + 0F3BE3D37B1583BC547B32930DC8BCE0 /* SDLGenericResponse.m in Sources */, + FA9FF61A369932D7A9F8CA98DE159A5A /* SDLGetAppServiceData.m in Sources */, + 31DF1B2C4244986AE7B049BB6B21B1BA /* SDLGetAppServiceDataResponse.m in Sources */, + 4F65E2C7B4EA078E55DEE34B47EEFFAA /* SDLGetCloudAppProperties.m in Sources */, + 8D96B70D023F440340BE44A4E7FEAD66 /* SDLGetCloudAppPropertiesResponse.m in Sources */, + E745F04FE498B11A62DAC56607C8F16C /* SDLGetDTCs.m in Sources */, + 66ED15B498C10845B6833F5B4A77C059 /* SDLGetDTCsResponse.m in Sources */, + 9F9DC8D007500904C401C5C7E8C89FFA /* SDLGetFile.m in Sources */, + ECB370882E699F878A5EE75B1851B368 /* SDLGetFileResponse.m in Sources */, + B9617E8EDB38BF24FD843947A207D4B2 /* SDLGetInteriorVehicleData.m in Sources */, + 70AEED633DCBAB9C33F9B4089A91EDB4 /* SDLGetInteriorVehicleDataConsent.m in Sources */, + CA828C268CD9EDA17EEB8F8B54EC580F /* SDLGetInteriorVehicleDataConsentResponse.m in Sources */, + 73B554D007A9561BFDB7FA5D9EC45AB3 /* SDLGetInteriorVehicleDataResponse.m in Sources */, + 41942EC4AE2AF408EC4FAB078ACBE980 /* SDLGetSystemCapability.m in Sources */, + 9C3E8E79D55F890640B50D7F4F74F081 /* SDLGetSystemCapabilityResponse.m in Sources */, + 680C81B640507A0A2695AC221C995EEA /* SDLGetVehicleData.m in Sources */, + 968D8990CE7A5931F68A82AFFAA76416 /* SDLGetVehicleDataResponse.m in Sources */, + 4913A753E7AE009D299D2B0C42BC49D2 /* SDLGetWayPoints.m in Sources */, + E056C153EAE20DCBD4C9346F351F7717 /* SDLGetWayPointsResponse.m in Sources */, + BE6575C305CDB643EFE2EEF7E6C18923 /* SDLGlobalProperty.m in Sources */, + 5CF48848187250BD2DEF080316CAC9DB /* SDLGlobals.m in Sources */, + FF500408E7F872622329864F819CB05C /* SDLGPSData.m in Sources */, + 925AF3168A7110110C9DAF79D5C00386 /* SDLGrid.m in Sources */, + 09E404E2F25004CA9B63E3A8740FBAA8 /* SDLH264VideoEncoder.m in Sources */, + 3135F7D1FD60C81070DDDE6DBB4B7427 /* SDLHapticRect.m in Sources */, + 0169E4DFEF372748DE00C9F39383DB6C /* SDLHeadLampStatus.m in Sources */, + B2419129FDB4A9CB41C203589CA22D4B /* SDLHexUtility.m in Sources */, + 8E4A9699872B71DECE53A3A947A70EFD /* SDLHMICapabilities.m in Sources */, + 75A47F369EB4C9E2307C69986DB81EB8 /* SDLHMILevel.m in Sources */, + CCE74EBBF92764FA7768E11556D54FD6 /* SDLHMIPermissions.m in Sources */, + 3CE9948E64E6E23127278086C3CE3D2F /* SDLHMISettingsControlCapabilities.m in Sources */, + 254F979EC45C46E927239748ED585AEA /* SDLHMISettingsControlData.m in Sources */, + 9250B505D81DEC59872413A95BEAB844 /* SDLHMIZoneCapabilities.m in Sources */, + E9863F20A70B2CC2E80FF2810B3C9D62 /* SDLHybridAppPreference.m in Sources */, + DEA9189597B1D402634C0FDC1F148A1E /* SDLIAPConstants.m in Sources */, + DDD1B26C9CF46F4824E82A0F9680CC69 /* SDLIAPControlSession.m in Sources */, + 9F8FE4EBAD620939494FAF4BD5B8E635 /* SDLIAPDataSession.m in Sources */, + 82BAE0EF80B27A362DDF3DC304D0F20A /* SDLIAPSession.m in Sources */, + 57675316F7DF755DB77B03DF5D82077D /* SDLIAPTransport.m in Sources */, + 02E85CFC1F2403195CE879996A331227 /* SDLIconArchiveFile.m in Sources */, + 4FD30C228C4C7D31C57D36865C45DDE1 /* SDLIgnitionStableStatus.m in Sources */, + 2DFED5B1E18F9EB68F6D688C9FF399EB /* SDLIgnitionStatus.m in Sources */, + EB66896A19F2C1294373CFB8E100750C /* SDLImage.m in Sources */, + B19FC81F57091EDF5B9AD8821F0B0A45 /* SDLImageField+ScreenManagerExtensions.m in Sources */, + A36ED8B7AA4C7BC318EE0E63EA70CE15 /* SDLImageField.m in Sources */, + 5924A69A69D0AF8A3DAF58868969E1A9 /* SDLImageFieldName.m in Sources */, + FF9B788C9EE45B9AD0D4112BEC4BC27E /* SDLImageResolution.m in Sources */, + C72845A179CF91D97BA28A95A08D1B5F /* SDLImageType.m in Sources */, + 2A8FE75D11339DAF0559381B487CE080 /* SDLInteractionMode.m in Sources */, + B65BC8F264AD280C4B608EC613C945F3 /* SDLKeyboardEvent.m in Sources */, + 25276E5A1E876F2DFC5094A769C6A7FE /* SDLKeyboardLayout.m in Sources */, + B4C64A6399943D451530DA5FD7209CAD /* SDLKeyboardProperties.m in Sources */, + 0C5FFABE03742C7D42D4C2CFFC50CADB /* SDLKeypressMode.m in Sources */, + 771AD16C3C75E73480731E53C6EE5AF4 /* SDLLanguage.m in Sources */, + EFCF4F776EC87D885ABAEAB6A6F008B0 /* SDLLayoutMode.m in Sources */, + F8C5750BFF965AB560AD9035ABBC92EB /* SDLLifecycleConfiguration.m in Sources */, + 329C6036FBDB55CFD9E1982FEDF0B431 /* SDLLifecycleConfigurationUpdate.m in Sources */, + 35CF57427874A819B9E1285661D32347 /* SDLLifecycleManager.m in Sources */, + 013DCC67B78583911AC21A27784A921F /* SDLLifecycleMobileHMIStateHandler.m in Sources */, + B2974FCBC9EC3C2830F9860E9C4243DD /* SDLLifecycleProtocolHandler.m in Sources */, + 70CF8E2FDDEF2C0826A194D233D72DF1 /* SDLLifecycleRPCAdapter.m in Sources */, + 665ABE2154820B9CEA1EF0EC5B0B2E1A /* SDLLifecycleSyncPDataHandler.m in Sources */, + 18F37C785F076E64EE279114F7AB40B6 /* SDLLifecycleSystemRequestHandler.m in Sources */, + CE49C253A850F521047B5640FB5E53D9 /* SDLLightCapabilities.m in Sources */, + C83608B2022EF502365295CEE3046EE9 /* SDLLightControlCapabilities.m in Sources */, + 2A8CCD7E7B1CC9315E04159E7FDDD738 /* SDLLightControlData.m in Sources */, + B94BF8ABCA51E7953AA57545718C7C13 /* SDLLightName.m in Sources */, + FB198942C45C672D222FC6E4211CFE28 /* SDLLightState.m in Sources */, + 3DF594F7EBAEC2D9B4C672D8E54BC8EE /* SDLLightStatus.m in Sources */, + 5870BC9B944DF757D12AF66ABCBD3708 /* SDLListFiles.m in Sources */, + 7F9DC4ABE8D601CA0A814F5C84BF0F71 /* SDLListFilesOperation.m in Sources */, + F775EFF321560177450BFF361F98946B /* SDLListFilesResponse.m in Sources */, + 181A55A6A8BFE664ADDFF50A12B11B66 /* SDLLocationCoordinate.m in Sources */, + 832E56B087986F80B9F00C2A58DE0AB8 /* SDLLocationDetails.m in Sources */, + 2CAB4C88313670F0F36281867EAD1019 /* SDLLockScreenConfiguration.m in Sources */, + 434437D79AF1D372D6D67496B72D1358 /* SDLLockScreenManager.m in Sources */, + C96541A29287F286A29CE2D41F837A8C /* SDLLockScreenPresenter.m in Sources */, + 1DDBAD92F469AFCE7DE53D43A7E3C2C4 /* SDLLockScreenRootViewController.m in Sources */, + EDDBA38A8B5F08CB9E558E24E13E0A6E /* SDLLockScreenStatus.m in Sources */, + 9ED85FAD2AF0198AADBFAD98BB11C799 /* SDLLockScreenStatusManager.m in Sources */, + B5F122A762987627F0C53217DD6B86B5 /* SDLLockScreenViewController.m in Sources */, + A1131A6BB01A094C26C80E68F70AA7E2 /* SDLLogConfiguration.m in Sources */, + 428B9550A0F15A2B8F5584900093F8C0 /* SDLLogFileModule.m in Sources */, + 1C674AC828EA23F8F36FC14512F17D3A /* SDLLogFileModuleMap.m in Sources */, + 704C315F529AF8A9C0D8A3956B143E30 /* SDLLogFilter.m in Sources */, + CC38CE4B649D9F3DD92503A289BE0CD3 /* SDLLogManager.m in Sources */, + 7D3C32CE5AFD4BF1EAA006DE944B11D9 /* SDLLogModel.m in Sources */, + 109CF6FCB76DF49872312F73F694589E /* SDLLogTargetAppleSystemLog.m in Sources */, + 9B62DF6B4229906E1D2ECDC12DDE06C7 /* SDLLogTargetFile.m in Sources */, + 1A5B4634AAA0EEFA5F44D5672FA96CD3 /* SDLLogTargetOSLog.m in Sources */, + FD1E5787AE17758017D394D82920962E /* SDLMaintenanceModeStatus.m in Sources */, + 0C612F491097584F468E5EA199DC519B /* SDLManager.m in Sources */, + 5850EF9B044637368E9F6B753DA1661D /* SDLMassageCushion.m in Sources */, + 930C00002E462F22EC9F0A811A3BC48A /* SDLMassageCushionFirmness.m in Sources */, + 67B909C564FDC20E3CC8440E232B7001 /* SDLMassageMode.m in Sources */, + 11FC0615BCD4D7C3D74F0E3A0AEA56D1 /* SDLMassageModeData.m in Sources */, + 07ACC12BF7F60B323CF56C98071F0BDA /* SDLMassageZone.m in Sources */, + EDE7F8A2D90DC7182E741D38768672F2 /* SDLMediaClockFormat.m in Sources */, + 9C119AD13DAE62F186B5AF78C8CCEFF1 /* SDLMediaServiceData.m in Sources */, + ABB493723C1C7433B4FFDD4C3F175B60 /* SDLMediaServiceManifest.m in Sources */, + 46F1D5E0135F13C261F3FA1128102B3C /* SDLMediaType.m in Sources */, + 8B423DDB671A45A561C24D5ADEBB8D17 /* SDLMenuCell.m in Sources */, + 78F0AE09FA57809FDA2B8119391DF058 /* SDLMenuConfiguration.m in Sources */, + 09723FAF4772B086F3936D5EE3201220 /* SDLMenuLayout.m in Sources */, + 6CBCD999A12041B09FA345EACCE7D67E /* SDLMenuManager.m in Sources */, + 07AFBEE85AAE2A4ECBE32262BB03746B /* SDLMenuParams.m in Sources */, + D029694A9ECA974051F09BD25C50A725 /* SDLMetadataTags.m in Sources */, + F11187AB47B27B53FE198D0BB45746B1 /* SDLMetadataType.m in Sources */, + 22677CAE5321A6CAA40B6D42378E953B /* SDLModuleData.m in Sources */, + 250CBB9751DBD8C706CEFFE1E3E8468B /* SDLModuleInfo.m in Sources */, + 1DDA4BF089765BFD15BEB62136419F67 /* SDLModuleType.m in Sources */, + 2C3074BE81DA26E6E3E62D45D05E71F0 /* SDLMsgVersion.m in Sources */, + 736B31E923657EA9F14B39C4D016E747 /* SDLMutableDataQueue.m in Sources */, + C9C038075883A4ACFC245F7BB0F5AAC7 /* SDLMyKey.m in Sources */, + FB6193D5C5C6C4AF6E15EA9EFA14908D /* SDLNavigationAction.m in Sources */, + C032FFE551DF10F2182A1D1345526748 /* SDLNavigationCapability.m in Sources */, + 4FAF9E8D38594CDAD8143CA6370F6EB8 /* SDLNavigationInstruction.m in Sources */, + 2D294C215F324510375F702DB4AF9F05 /* SDLNavigationJunction.m in Sources */, + EEE954637AC6DD4A372598EF3440574C /* SDLNavigationServiceData.m in Sources */, + 337A6486B41B81121017894953322C2D /* SDLNavigationServiceManifest.m in Sources */, + 79578E59AD64D8003939313FE749F474 /* SDLNotificationConstants.m in Sources */, + 6BD16DA220DACD38E212853FEF3CFC3F /* SDLNotificationDispatcher.m in Sources */, + 1632546B737E58E78653F73017E59695 /* SDLOasisAddress.m in Sources */, + 43C00FAF5B815417E2E4CA652CBD4221 /* SDLObjectWithPriority.m in Sources */, + 6A63E3C69D4A0BD81FB87B9C5E6B9E88 /* SDLOnAppInterfaceUnregistered.m in Sources */, + EDCCABE00468B31ECA26D0C9F8DDB32A /* SDLOnAppServiceData.m in Sources */, + ACA68CEF0DCC1C8B2658E9ABDEEBFB65 /* SDLOnAudioPassThru.m in Sources */, + 638357A247E8289D2E0CB7FB94483415 /* SDLOnButtonEvent.m in Sources */, + 4CB22235F686471AAAB40748D9D5A4A9 /* SDLOnButtonPress.m in Sources */, + A364DD5B4142117E4B4631E68A00FE45 /* SDLOnCommand.m in Sources */, + FABA89B3B6E0B6808D2CC7394744E608 /* SDLOnDriverDistraction.m in Sources */, + 6FA272F240EE747D4D5D69180A05B4A0 /* SDLOnEncodedSyncPData.m in Sources */, + 031E6C0A70724D15DF1B5A662470EDDF /* SDLOnHashChange.m in Sources */, + 2AEEBC756B4314A3C04256AFE546BBC4 /* SDLOnHMIStatus.m in Sources */, + 24054C486169603B5BA458F3CBF702EB /* SDLOnInteriorVehicleData.m in Sources */, + 37C103C2A55DB3911D4BCA00063446AD /* SDLOnKeyboardInput.m in Sources */, + 80B981D376B7AA3D80C491C8C6F4C465 /* SDLOnLanguageChange.m in Sources */, + 659DAF3396869C71FF9FF49AE8096CF6 /* SDLOnLockScreenStatus.m in Sources */, + 456E753731B63506DBE8906EE694AB5E /* SDLOnPermissionsChange.m in Sources */, + F1EFCA8C3F62223ADFD09C33D6AB282E /* SDLOnRCStatus.m in Sources */, + 01DD4A57171E44161D0BB154CC5D3848 /* SDLOnSyncPData.m in Sources */, + 01D2CAE59967EA1D70D78F423D414DBB /* SDLOnSystemCapabilityUpdated.m in Sources */, + 311D7778EBE0EF8015E83B8D32D389D0 /* SDLOnSystemRequest.m in Sources */, + C3A16DFCC7A71BF686D742882E0ABD44 /* SDLOnTBTClientState.m in Sources */, + 84AEEB5BB746FD70224E608230EFB8D1 /* SDLOnTouchEvent.m in Sources */, + 5D9A8E36A8A6FB375DDF1B0521EADD95 /* SDLOnVehicleData.m in Sources */, + 1F56FDE49764142BAAC3281184A0F44F /* SDLOnWayPointChange.m in Sources */, + 0656DA2E1EB814B1CDF91E68EB1D3F20 /* SDLParameterPermissions.m in Sources */, + 82C471FF3C4C36F6DED566A9F38DACC5 /* SDLPCMAudioConverter.m in Sources */, + D82D736B2C3DF45A7C4F9F8FD1C56517 /* SDLPerformAppServiceInteraction.m in Sources */, + 8012681A7A1329501CC0D2C6FB41522C /* SDLPerformAppServiceInteractionResponse.m in Sources */, + B343B9B9FD94A55F5C1DF63E3797BCD8 /* SDLPerformAudioPassThru.m in Sources */, + 58DB52B0C275C61237721E3D2AC4DAD1 /* SDLPerformAudioPassThruResponse.m in Sources */, + 014F6ABA74CD657439A0AB4B3BF1E28A /* SDLPerformInteraction.m in Sources */, + 53892E3772E852A7278E75A75D3CB2B2 /* SDLPerformInteractionResponse.m in Sources */, + 58CF8CA453B2AB8AA13CB2D31A23C62B /* SDLPermissionElement.m in Sources */, + E27BEE118C9765810483CB560ABD00CC /* SDLPermissionFilter.m in Sources */, + BF1E60E37BF4D60693B64925C7F73BC5 /* SDLPermissionItem.m in Sources */, + 98E22984D664414B333A2690BC267A50 /* SDLPermissionManager.m in Sources */, + D862DF3A1123E8B1E20F34D6FA127FA3 /* SDLPermissionStatus.m in Sources */, + 3E79998B5C40E4AC8D1794F26E7C453B /* SDLPhoneCapability.m in Sources */, + A744F3FBDD027EF8083D56235DD11762 /* SDLPinchGesture.m in Sources */, + BC887BD28B535FDED0EE08BE93F01CBD /* SDLPowerModeQualificationStatus.m in Sources */, + BA4D812C328C254955AB984DB383EF9C /* SDLPowerModeStatus.m in Sources */, + 355AD62388FCF6C80A11237D40D38F47 /* SDLPredefinedLayout.m in Sources */, + 31439E62B01AE8A36809C187E695C6E9 /* SDLPreloadChoicesOperation.m in Sources */, + 8508CB2E94573CDD48B6B69A6C865C21 /* SDLPrerecordedSpeech.m in Sources */, + 0B85145AE7451030C55559AE27AEA1A7 /* SDLPresentChoiceSetOperation.m in Sources */, + DF259E1489BF17C7A620368B26B8E6A8 /* SDLPresentKeyboardOperation.m in Sources */, + 6C2EF741FAF06B5B273480A4E83B71A3 /* SDLPresetBankCapabilities.m in Sources */, + 7FC9E3671626AC556EA615AF090EA1E0 /* SDLPrimaryAudioSource.m in Sources */, + EF44A701FBA04315711D250293E37709 /* SDLPrioritizedObjectCollection.m in Sources */, + F51C62C254D0309353E467F80FEFFE34 /* SDLPRNDL.m in Sources */, + 90F8E628A253894A60975451EFD100FC /* SDLProtocol.m in Sources */, + 55D5D0856115578A202D59702AEA852F /* SDLProtocolConstants.m in Sources */, + B11616E2030587DA492555777C6F1074 /* SDLProtocolHeader.m in Sources */, + 6014038CC3B4CF7B9F8914B391B7A37B /* SDLProtocolMessage.m in Sources */, + FE7919B6C34A51008AE0001CA25EB708 /* SDLProtocolMessageAssembler.m in Sources */, + 68A8266B19CDDD69DE77B14A45C13057 /* SDLProtocolMessageDisassembler.m in Sources */, + A5F4708B4FE2C25C993C970DAA270D63 /* SDLProtocolReceivedMessageRouter.m in Sources */, + 87A35022E373D35D80B39F53F6371307 /* SDLPublishAppService.m in Sources */, + 21902704F3A9A9F03579486E23620DE7 /* SDLPublishAppServiceResponse.m in Sources */, + DE5FE3482E96C8FBC5DCF4D0E5163EBE /* SDLPutFile.m in Sources */, + 63E91526EBD93C2EF19EA765829657BE /* SDLPutFileResponse.m in Sources */, + 8A5C8F87E4D7A32CC93B2DC1C6A322DC /* SDLRadioBand.m in Sources */, + A198B40DBA405B5DB3F5E3447BE94C9E /* SDLRadioControlCapabilities.m in Sources */, + D1369C0C9D556D158451FE97A301BFA7 /* SDLRadioControlData.m in Sources */, + 7F1BE10CD92530355AF15639B19E4C5B /* SDLRadioState.m in Sources */, + A1327BFC088CD8D368B15DED7246E077 /* SDLRAWH264Packetizer.m in Sources */, + 9C0456EBA174B29942498ED83DBBBFB7 /* SDLRDSData.m in Sources */, + 675A18616DA8321C848C329AEC19B160 /* SDLReadDID.m in Sources */, + C330281B036B07AEF8315BBA3F980286 /* SDLReadDIDResponse.m in Sources */, + 8924FC0582CB6B6236BB6905FE65176F /* SDLRectangle.m in Sources */, + 0E26ACDF875370E9FE2C72970C89A55A /* SDLRegisterAppInterface.m in Sources */, + C6B6887F8C6AD6C37EF48F20921312B6 /* SDLRegisterAppInterfaceResponse.m in Sources */, + 1D98A62E3D9E2303CC18BC70EED93D99 /* SDLReleaseInteriorVehicleDataModule.m in Sources */, + 5C37346184074495446F9DB33C56CE01 /* SDLReleaseInteriorVehicleDataModuleResponse.m in Sources */, + 82CFC44513CCB0B7C3DAB9499A777B37 /* SDLRemoteControlCapabilities.m in Sources */, + 8C5DEC040B352CB525F66B45CD5E8748 /* SDLRequestType.m in Sources */, + 4493C9382CEFE5A8B0545A7C08E6B87C /* SDLResetGlobalProperties.m in Sources */, + 46668785EC2A839C027BE887D6598241 /* SDLResetGlobalPropertiesResponse.m in Sources */, + 601CE9E6BD148366CDC9D03D30EEEC90 /* SDLResponseDispatcher.m in Sources */, + 9A06824727611E6DB64130AE34B5205B /* SDLResult.m in Sources */, + CB5175E540FEDA9D29FD99735A14E9CC /* SDLRGBColor.m in Sources */, + 1DE196C4FB473A8B9DBBFCE728FBAD97 /* SDLRPCFunctionNames.m in Sources */, + F915DB893F05D3A733468F86A065182C /* SDLRPCMessage.m in Sources */, + 8B0432997DC6DA829148948220731193 /* SDLRPCMessageType.m in Sources */, + D64E2353417610902CA55C5AF2070043 /* SDLRPCNotification.m in Sources */, + 1676673063B34A25A383627B95D940E3 /* SDLRPCNotificationNotification.m in Sources */, + C17F4F8AB2A43B0B4823D243F506F5E8 /* SDLRPCParameterNames.m in Sources */, + 2BF560ED93231DCAF6365DE031A17ADC /* SDLRPCPayload.m in Sources */, + EFE389E20849E812CB14B8BB26E3B3E4 /* SDLRPCPermissionStatus.m in Sources */, + 98A0D6893B9CEF42738012575D4B81ED /* SDLRPCRequest.m in Sources */, + FDC6CB7FA72121BBA4CA5D470068C345 /* SDLRPCRequestNotification.m in Sources */, + 919DFEBF8B0A1266AA42C4DB2B0735AA /* SDLRPCResponse.m in Sources */, + CB314D43C8D15A58318A5743F366449C /* SDLRPCResponseNotification.m in Sources */, + CFC7B8C1E1DC3CFE16D20AA62F278C69 /* SDLRPCStruct.m in Sources */, + 65552455476E98C94CACB3A15B8AC48E /* SDLRTPH264Packetizer.m in Sources */, + D5CC270CFF00D37990A5827DC91AFFAB /* SDLSamplingRate.m in Sources */, + 9CC99894D5AA75B1EC79ABB3CD9C2E2A /* SDLScreenManager.m in Sources */, + BADBE3327420053B18A5DC872A42BAEE /* SDLScreenParams.m in Sources */, + FEAE3D2D0A27CEFD66C33B263B0F34E3 /* SDLScrollableMessage.m in Sources */, + 29F621F3B007E7C389AC60BA73E62268 /* SDLScrollableMessageResponse.m in Sources */, + F739B4CC8B331017CA8BEEB40B20C0FE /* SDLSeatControlCapabilities.m in Sources */, + C765A62BC7D3BAF02422BDDC64022D28 /* SDLSeatControlData.m in Sources */, + CAC3A564C9FD78BB9295F9B6399CEA9C /* SDLSeatLocation.m in Sources */, + DDE358C2EE534C830E21C925CBFF1336 /* SDLSeatLocationCapability.m in Sources */, + 5FB32668254EF921D8C9D5C0625A6C1E /* SDLSeatMemoryAction.m in Sources */, + 6D1AF4472A7F9C1B0A8C9300D17B1212 /* SDLSeatMemoryActionType.m in Sources */, + F3ECB95B0031A65E9E7E7169914044C4 /* SDLSecondaryTransportManager.m in Sources */, + 224F1528A157FCD35BFF1EBA4D2C2872 /* SDLSendHapticData.m in Sources */, + 1E5B60D553AAD384F9F860E77298BB39 /* SDLSendHapticDataResponse.m in Sources */, + 8BCD8952EB9E93BCDCF52A6BBECB921A /* SDLSendLocation.m in Sources */, + F7FACF4C402CFC2A06E1F45A987CF1AC /* SDLSendLocationResponse.m in Sources */, + 5B288148F0AFA6AB22190A0E1024367F /* SDLSequentialRPCRequestOperation.m in Sources */, + 8757369831E7EF6DF27109FDDD773FD8 /* SDLServiceUpdateReason.m in Sources */, + 00F4491685B737A4DB17096FED751E6E /* SDLSetAppIcon.m in Sources */, + 1A862E5568966C1D6F18CC410B49D5B4 /* SDLSetAppIconResponse.m in Sources */, + BADDA940E23CE2325CC698BF0931F559 /* SDLSetCloudAppProperties.m in Sources */, + 0525CA12876C208985EACA58FC753CCB /* SDLSetCloudAppPropertiesResponse.m in Sources */, + 36CF5F6B96A767D0582D629A37F445D9 /* SDLSetDisplayLayout.m in Sources */, + 0755FA5543652B43F25B0B5700871AA3 /* SDLSetDisplayLayoutResponse.m in Sources */, + 480BCA1C16557CEEEB35054063CC6C07 /* SDLSetGlobalProperties.m in Sources */, + A4583BCEB2AC1DD17A778969E1176224 /* SDLSetGlobalPropertiesResponse.m in Sources */, + 28275C910F5B5C86487FF92DEDC9AFBE /* SDLSetInteriorVehicleData.m in Sources */, + 9865B7A5B80139F7E840ED07E1848F59 /* SDLSetInteriorVehicleDataResponse.m in Sources */, + C2D33B43AC2FD5798C2FAB02B8174AD0 /* SDLSetMediaClockTimer.m in Sources */, + 6D2A18A8F43141760C979EA5865D5905 /* SDLSetMediaClockTimerResponse.m in Sources */, + 0A3A907CBF1998EF1F9DF2A2DBFAFC53 /* SDLShow.m in Sources */, + 205D1C12AE6541D565AC31853F6D00B8 /* SDLShowAppMenu.m in Sources */, + 788BA682507FEAF11F09D62C9F14AC0F /* SDLShowAppMenuResponse.m in Sources */, + 6C55CF78347F53006F8826D260640D04 /* SDLShowConstantTBT.m in Sources */, + A004CE7345498F2955076679857302C9 /* SDLShowConstantTBTResponse.m in Sources */, + CB753DDB9FFC23A82636E11F3E8201E9 /* SDLShowResponse.m in Sources */, + EFBEEF8568380DEE11B6F08A8B78B4A8 /* SDLSingleTireStatus.m in Sources */, + A7E72AF0798FCBA961B605865BC0D940 /* SDLSISData.m in Sources */, + 020C50C71A8B336649F77B0855268D50 /* SDLSlider.m in Sources */, + 87B3F3A88241E01AB0FACBDFC3593F9A /* SDLSliderResponse.m in Sources */, + 17285ECD70560F7B126EF60F44F24FFA /* SDLSoftButton.m in Sources */, + 79DA7C2BA0454A250426F3F164EA4CBC /* SDLSoftButtonCapabilities.m in Sources */, + E4F533095901E422CA5FDE7ABA3D70F5 /* SDLSoftButtonManager.m in Sources */, + AFB8E1D1D3A726DC7722D55D4D6C512B /* SDLSoftButtonObject.m in Sources */, + 4A3B8C054EFCF528CBF4ABB1AC3DD93F /* SDLSoftButtonReplaceOperation.m in Sources */, + 458BF4D2B838994829BFBA9D69641434 /* SDLSoftButtonState.m in Sources */, + 45D24D3189F7695C51AAACC2A4171DC5 /* SDLSoftButtonTransitionOperation.m in Sources */, + 508DAE5023F694C4CD2E7867B3CE6F56 /* SDLSoftButtonType.m in Sources */, + 9D183E14A9513C11B72CDDF134760AEE /* SDLSpeak.m in Sources */, + 056296F8E42866A7507D690F4ABF87BB /* SDLSpeakResponse.m in Sources */, + A74F1CA5505DE503FFAA407AE3AB1129 /* SDLSpeechCapabilities.m in Sources */, + 66B27F474A7986812D213809F149E989 /* SDLStartTime.m in Sources */, + 58DE982C4E8188ECF4D6F251CBB29645 /* SDLStateMachine.m in Sources */, + C401770909E121E973EEC50C039FE781 /* SDLStaticIconName.m in Sources */, + FE7ECE8ED397E4084323336BCF2EA284 /* SDLStationIDNumber.m in Sources */, + 6BB44F106B80C0DB9846E5EFD1476F37 /* SDLStreamingAudioLifecycleManager.m in Sources */, + BC95947B2CA1B575357D685F78EE3250 /* SDLStreamingMediaConfiguration.m in Sources */, + ED90A63BB1EB1FFE8F728ECEBA936AAC /* SDLStreamingMediaManager.m in Sources */, + 8F1D97A10A4CD8C000AA88F803250671 /* SDLStreamingMediaManagerConstants.m in Sources */, + 4138B2ACFD9C35D69ECFF36B8D73988E /* SDLStreamingVideoLifecycleManager.m in Sources */, + FFD26297C611AF551A2738FBBB3E9C80 /* SDLStreamingVideoScaleManager.m in Sources */, + 9DA547A789D5556CB6C8E4CB38337256 /* SDLSubscribeButton.m in Sources */, + 646AD977FC1D69B37D5E99F3FC282DF2 /* SDLSubscribeButtonManager.m in Sources */, + 1F82BAB874DDB98D7FDFA3C70DC99E81 /* SDLSubscribeButtonObserver.m in Sources */, + 437AE1029BE7E84D5C77531F19999CAD /* SDLSubscribeButtonResponse.m in Sources */, + D354CACF9942538FCD7108F3AD25E2FF /* SDLSubscribeVehicleData.m in Sources */, + 9D0AC63359FA806DBD87D26C86A27892 /* SDLSubscribeVehicleDataResponse.m in Sources */, + 0C53EA9570A03E274435E76A870664CD /* SDLSubscribeWayPoints.m in Sources */, + 07EFC4CE82C6A11142BD4302D87A3239 /* SDLSubscribeWayPointsResponse.m in Sources */, + 1F39155F30D115B93B97782715C30C9B /* SDLSupportedSeat.m in Sources */, + 5B471B072C46766C6029792C0D91040D /* SDLSyncMsgVersion.m in Sources */, + 12DC40A3D198F7C3BE10BE221DCDB5C2 /* SDLSyncPData.m in Sources */, + DF7F7D30FAFA0F25842E683D7A400EE4 /* SDLSyncPDataResponse.m in Sources */, + A60900079A6C1F0B634C7268D10787FB /* SDLSystemAction.m in Sources */, + 4AB3A964E345CF3E0D5ACC1A63991290 /* SDLSystemCapability.m in Sources */, + 70496DDADFCF3EED7575045A94F3CE25 /* SDLSystemCapabilityManager.m in Sources */, + B2559CB3C0CD6DEC3D98F6AC227D10EE /* SDLSystemCapabilityObserver.m in Sources */, + 58A5861410B7BAB3BBD9D1A84DB8EB2E /* SDLSystemCapabilityType.m in Sources */, + D9A5E832734F7C100908FCC5E7F82B4E /* SDLSystemContext.m in Sources */, + D2E6FD57DC939224A0D55A6A73C8E32A /* SDLSystemRequest.m in Sources */, + 01141EC6215EB5322369A3B5F1811BD8 /* SDLSystemRequestResponse.m in Sources */, + 73E6D14C57A0B93C43FF9A9783852879 /* SDLTBTState.m in Sources */, + 09E452042624B13E52782502AF683E8C /* SDLTCPTransport.m in Sources */, + 4D2E68E344832556024E6BCCF039EF08 /* SDLTemperature.m in Sources */, + 0CEA11A5EB62E9F281219DD07A95D42B /* SDLTemperatureUnit.m in Sources */, + 28041814F66B4A71E8F63DD9B094EC21 /* SDLTemplateColorScheme.m in Sources */, + 07F8FBBF7DA3BD45DD48F55585CC2952 /* SDLTemplateConfiguration.m in Sources */, + 98BD10DED5BAA7E5ED957677B48616C0 /* SDLTextAlignment.m in Sources */, + 2CB2EC1505E6E5E792CB49D3F4403DAB /* SDLTextAndGraphicManager.m in Sources */, + E72E6D7C1BC53DD19935FABF258E5F28 /* SDLTextField+ScreenManagerExtensions.m in Sources */, + 574EFD25DFDD6AF16AF2031CFC0AAA81 /* SDLTextField.m in Sources */, + 7977925ECE55E6167F6B1C6355277218 /* SDLTextFieldName.m in Sources */, + 27355A0ACD2391F8BDF5C4F0C7C57C6F /* SDLTimer.m in Sources */, + C8B526917E4FCD8F00E01FAF201C6FF1 /* SDLTimerMode.m in Sources */, + 9320B7839548C10A540A2FF853A9DDF4 /* SDLTireStatus.m in Sources */, + 5785685CC981419E5FBE990997285980 /* SDLTouch.m in Sources */, + 2BCEB50F391F05504DA184137B9CC6CA /* SDLTouchCoord.m in Sources */, + 91C37B3813B051EFF69A023933848154 /* SDLTouchEvent.m in Sources */, + 7BEFE01A2A2147EFBD6480EC899125F8 /* SDLTouchEventCapabilities.m in Sources */, + FA3D73D6F771B4BFFE38E0FDF46BB2EA /* SDLTouchManager.m in Sources */, + 73149802150251AC42CFCD9B3CDA96CA /* SDLTouchType.m in Sources */, + BD43BAB75FF7A0D1A0E2296F239A2D84 /* SDLTPMS.m in Sources */, + DA960755FE2D4EDAC30E870462D1A91E /* SDLTriggerSource.m in Sources */, + 73E45E0082A8F8ED80CBD24FA3C77E09 /* SDLTTSChunk.m in Sources */, + 50B469336EC4B317FD37E4F3DBD146E5 /* SDLTurn.m in Sources */, + CCBECB250F1187B41A68914229588D8C /* SDLTurnSignal.m in Sources */, + 959EEEC7A5E91DF4108F9BE317930100 /* SDLUnpublishAppService.m in Sources */, + FB8C2C8AE52A78F6D7CB349AAAD996FA /* SDLUnpublishAppServiceResponse.m in Sources */, + C9F342135DE170D7298B6311F1F41FC0 /* SDLUnregisterAppInterface.m in Sources */, + 80B64B933A7AF5423CCD493385F73D9D /* SDLUnregisterAppInterfaceResponse.m in Sources */, + 0298561779A0AFB043DE0A9FAAAC19E7 /* SDLUnsubscribeButton.m in Sources */, + 8139D9D6698265090BCCD8938F16A9A1 /* SDLUnsubscribeButtonResponse.m in Sources */, + DFB5323BF440F714217F5A09633AC683 /* SDLUnsubscribeVehicleData.m in Sources */, + DC881BB2F2DFC11A47CD97DFA6AD0A35 /* SDLUnsubscribeVehicleDataResponse.m in Sources */, + B9EA100F0608AF1BD236FA70F8124F25 /* SDLUnsubscribeWayPoints.m in Sources */, + 73B7133D90D85100D75563A8466B0FC6 /* SDLUnsubscribeWayPointsResponse.m in Sources */, + 2409088233FBB4C2C35C088F7BD27B2C /* SDLUpdateMode.m in Sources */, + 0BB300C87144AD7B369E0430F1202E19 /* SDLUpdateTurnList.m in Sources */, + 48C57C43B0748423EFC4685C4907DEE7 /* SDLUpdateTurnListResponse.m in Sources */, + 9DD41205E9F9884198DE310BC34FB4A2 /* SDLUploadFileOperation.m in Sources */, + E6A2C645C61F2F9B43588404108BCE6A /* SDLV1ProtocolHeader.m in Sources */, + B132314B07C6A9CA6CD44F32E91AEAEB /* SDLV1ProtocolMessage.m in Sources */, + 1EE73C7B3A4FF142BDE9B2C656B53D3C /* SDLV2ProtocolHeader.m in Sources */, + 7BBDCA6FF69DCAB38A3475ED1949C260 /* SDLV2ProtocolMessage.m in Sources */, + F294BC925A822EDFBD0E5486EF65A9EC /* SDLVehicleDataActiveStatus.m in Sources */, + 236A9A5A39693FF2A879024D41698185 /* SDLVehicleDataEventStatus.m in Sources */, + 2885509A0C6D2186F50E993D93392E3B /* SDLVehicleDataNotificationStatus.m in Sources */, + 6C38405A146F50D74FC39F597AB204CB /* SDLVehicleDataResult.m in Sources */, + A0EA4A22CB0687C97EF3BC22D1735572 /* SDLVehicleDataResultCode.m in Sources */, + F56962B7761B2885ACAAA3F09C022199 /* SDLVehicleDataStatus.m in Sources */, + A6D8F9B1A7E7ED29A5BBC3F8D864A511 /* SDLVehicleDataType.m in Sources */, + 21FF6C36B0867373CDD2C28FC05147CF /* SDLVehicleType.m in Sources */, + 5C378A2D9ADBF6829478D771E6E57B2C /* SDLVentilationMode.m in Sources */, + BCFD1E3A30AB7AFC8538D94E6451EBCD /* SDLVersion.m in Sources */, + 3FDD76D86DA6E85561401E00FD5A9C75 /* SDLVideoStreamingCapability.m in Sources */, + 4ED3CA7455F452C244BFBB3489AE5429 /* SDLVideoStreamingCodec.m in Sources */, + 892798392921AA060D0A363863972910 /* SDLVideoStreamingFormat.m in Sources */, + 46E7DEEBB97AD7240942419DE6B6FBCC /* SDLVideoStreamingProtocol.m in Sources */, + BA96A1F8A67AA4B4EDF29EF9C9B80C1B /* SDLVideoStreamingState.m in Sources */, + 1DAD7BD3D1586E8C16F802E91D029869 /* SDLVoiceCommand.m in Sources */, + A820135ABA605F791A72BDF903F83D64 /* SDLVoiceCommandManager.m in Sources */, + 0E4DE85C863AAA4C47096A975DC50831 /* SDLVrCapabilities.m in Sources */, + A8703C5059F822E6DB8F4F390982EC70 /* SDLVrHelpItem.m in Sources */, + BD70C9EC645E6C987CF29025EA5A4423 /* SDLWarningLightStatus.m in Sources */, + 6B4E6D647A87B1240984B511FAE34F84 /* SDLWayPointType.m in Sources */, + C2AD5790A01FA909CB37927DA7F418BE /* SDLWeatherAlert.m in Sources */, + 02E7456C7087BCE794EB5F4BFDCD6B5E /* SDLWeatherData.m in Sources */, + AFD036FA927C58A0F33C0BAC98F1CDC7 /* SDLWeatherServiceData.m in Sources */, + 4A57A7C0739E81694973E20F0A5E6F86 /* SDLWeatherServiceManifest.m in Sources */, + E30B75E167E1051A94351A3237DD84B4 /* SDLWindowCapability+ScreenManagerExtensions.m in Sources */, + 31C87220F6131D5D232FF0238894771B /* SDLWindowCapability.m in Sources */, + D54A635809186EE3A7DE1A53F06521A6 /* SDLWindowType.m in Sources */, + 1AD0941AAD522DB92F9F9EF5D02F0C58 /* SDLWindowTypeCapabilities.m in Sources */, + 4CCED9A1BAF149906BF8742B1D33B3FB /* SDLWiperStatus.m in Sources */, + E15BEF011399A57453FA0051FDDB3602 /* SmartDeviceLink-dummy.m in Sources */, + E189829941785EB78EBB2334CF16DAEA /* TestSubscribeButtonObserver.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4821,13 +4816,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - FD48AF844ED7A4F116F59DA460F8FE50 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -4837,11 +4825,11 @@ target = D80456DDA93CD634453A682E14808519 /* SmartDeviceLink */; targetProxy = 605A77535A8FC7FC30C0D975BCB72186 /* PBXContainerItemProxy */; }; - 6A9400F0EC45681DD223AD35E9CDDC5D /* PBXTargetDependency */ = { + A706C0D266E37F9AEA47FAA65E9C50E7 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "SmartDeviceLink-SmartDeviceLink"; target = 3D5C8508F5D7F6E6DD86E88C9CF9F8F4 /* SmartDeviceLink-SmartDeviceLink */; - targetProxy = F7F1266388AA8BD3DD808CFAD47EADF5 /* PBXContainerItemProxy */; + targetProxy = 6AF19360149BA595F0706575B6CB6ACE /* PBXContainerItemProxy */; }; A9790C90E6F821B435B62092D612A7A5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -4849,25 +4837,25 @@ target = 3BAB8E4F4ED1E843F9C863ADE37B95B5 /* BiSON */; targetProxy = 4A02ED4C28844C389A4B072D1E10F4F6 /* PBXContainerItemProxy */; }; - F73743FB0482539B50C0127AAB9A6FC5 /* PBXTargetDependency */ = { + E7069BB5B10BAB04527EF405F8C1E644 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = BiSON; target = 3BAB8E4F4ED1E843F9C863ADE37B95B5 /* BiSON */; - targetProxy = A9D46AB6AB677FC4ABCB10C5F8081AC3 /* PBXContainerItemProxy */; + targetProxy = 658E9669E3F8265A6FE378935AC49E44 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 4F718CA865E4EBD8B3A40B5E3399596B /* SDLLockScreen.storyboard */ = { + F82D999CC1B451EA5E5D2B62490AA064 /* SDLLockScreen.storyboard */ = { isa = PBXVariantGroup; children = ( - 1333ABE7F346AAE4D08CC2F9393F2FBF /* SDLLockScreen.storyboard */, - E28AD265DA83A4A53DB9748E338D4E1E /* SDLLockScreen.strings */, - B1F0D12088396E98ECB82370C6025F0B /* SDLLockScreen.strings */, - 3B163DFB6631E803FE7DF33DF6D511D7 /* SDLLockScreen.strings */, - 21336DC8F1B0075CB0306847BECE7486 /* SDLLockScreen.strings */, - 84A87A780C05802FA7F395A3C3AFF5E4 /* SDLLockScreen.strings */, - F747E1141A8856C814D76672F68FF23A /* SDLLockScreen.strings */, + 16381A0EE20FA5C47430A5B402B7689B /* SDLLockScreen.storyboard */, + 7C839817F778FF0EB9B342A6F817167C /* SDLLockScreen.strings */, + 936CD2C8FA37089FF8BEBF38BBA57083 /* SDLLockScreen.strings */, + E46E14F3FFBE57DED951B698700F742D /* SDLLockScreen.strings */, + 0581CF5948F60C4C5CA59EC84679756E /* SDLLockScreen.strings */, + C4F6558A305336CC62BB5516E27A38C3 /* SDLLockScreen.strings */, + FD9450438A4321ABF2471012E8AB5C70 /* SDLLockScreen.strings */, ); name = SDLLockScreen.storyboard; path = SmartDeviceLink/Assets; @@ -4876,9 +4864,9 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 26EFD5231F594EABB797BFFA643CD11A /* Debug */ = { + 15C159BB8BCD64D86AE32C01666ED5B5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7F2C5F89F8B578C3FB94E3AF3276CD61 /* BiSON.debug.xcconfig */; + baseConfigurationReference = 15CC7A0BD292142B96199EFAB3E8D06C /* SmartDeviceLink.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4889,26 +4877,28 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/BiSON/BiSON-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/BiSON/BiSON-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/SmartDeviceLink/SmartDeviceLink-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/BiSON/BiSON.modulemap"; - PRODUCT_MODULE_NAME = BiSON; - PRODUCT_NAME = BiSON; + MODULEMAP_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink.modulemap"; + PRODUCT_MODULE_NAME = SmartDeviceLink; + PRODUCT_NAME = SmartDeviceLink; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 773B52F6B10233217994B6AD776F9856 /* Release */ = { + 26EFD5231F594EABB797BFFA643CD11A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BF3B79CB79DA4BF9796E3C06A34739EF /* BiSON.release.xcconfig */; + baseConfigurationReference = E0ABE76C5826D12B93EBF61BAAF52F60 /* BiSON.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4931,15 +4921,14 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 85761D12E93C4E0DE954B8F490D8DCDC /* Release */ = { + 2D0992F53869C0CA008FBC51D69A1A74 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 454C2F95ECB135A8B710295C27270E3C /* SmartDeviceLink.release.xcconfig */; + baseConfigurationReference = 6FF174A3130345B9E197CC1FC67E0BBE /* SmartDeviceLink.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SmartDeviceLink"; @@ -4952,6 +4941,37 @@ TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; + name = Debug; + }; + 773B52F6B10233217994B6AD776F9856 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C4CE7887593CC1FC33CAE5D179B39AC5 /* BiSON.release.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/BiSON/BiSON-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/BiSON/BiSON-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/BiSON/BiSON.modulemap"; + PRODUCT_MODULE_NAME = BiSON; + PRODUCT_NAME = BiSON; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; name = Release; }; 8A914B17F98B593DA99BC2E1D8F90524 /* Release */ = { @@ -5111,40 +5131,9 @@ }; name = Debug; }; - CFC22820B8A447AC0F8964290AF4AE78 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = ADD3A5E2AF56D8C4B191087DCC79274E /* SmartDeviceLink.debug.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SmartDeviceLink/SmartDeviceLink-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink.modulemap"; - PRODUCT_MODULE_NAME = SmartDeviceLink; - PRODUCT_NAME = SmartDeviceLink; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.1; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - E8B0CF6A46D90B17B1144734B96F70DA /* Debug */ = { + 94EB1E56C6EC79F7FCACD1438E57E89C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = ADD3A5E2AF56D8C4B191087DCC79274E /* SmartDeviceLink.debug.xcconfig */; + baseConfigurationReference = 15CC7A0BD292142B96199EFAB3E8D06C /* SmartDeviceLink.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SmartDeviceLink"; @@ -5157,11 +5146,11 @@ TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; - name = Debug; + name = Release; }; - EC6B6A47B57FD756A2B55473E625009F /* Release */ = { + A5CF8EDC08EA48AD5DDF4EBCAEEED838 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 454C2F95ECB135A8B710295C27270E3C /* SmartDeviceLink.release.xcconfig */; + baseConfigurationReference = 6FF174A3130345B9E197CC1FC67E0BBE /* SmartDeviceLink.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5185,11 +5174,10 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 5.1; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; F97EB3953FBCD102F1F2DBA2847A79CC /* Debug */ = { isa = XCBuildConfiguration; @@ -5236,15 +5224,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 582AB056CF0E2D5C1E680A386FADDA07 /* Build configuration list for PBXNativeTarget "SmartDeviceLink-SmartDeviceLink" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E8B0CF6A46D90B17B1144734B96F70DA /* Debug */, - 85761D12E93C4E0DE954B8F490D8DCDC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 6E72C1838712FC6ECD613377491FF02D /* Build configuration list for PBXNativeTarget "Pods-MobileWeather" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -5263,11 +5242,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7DD0E3264F81B11844214F608181EE18 /* Build configuration list for PBXNativeTarget "SmartDeviceLink" */ = { + CE293D9EFD2DEF0FF33713509CB18AC6 /* Build configuration list for PBXNativeTarget "SmartDeviceLink" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A5CF8EDC08EA48AD5DDF4EBCAEEED838 /* Debug */, + 15C159BB8BCD64D86AE32C01666ED5B5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + EE906D3B455A6A0B2FB28DBA11DF210D /* Build configuration list for PBXNativeTarget "SmartDeviceLink-SmartDeviceLink" */ = { isa = XCConfigurationList; buildConfigurations = ( - CFC22820B8A447AC0F8964290AF4AE78 /* Debug */, - EC6B6A47B57FD756A2B55473E625009F /* Release */, + 2D0992F53869C0CA008FBC51D69A1A74 /* Debug */, + 94EB1E56C6EC79F7FCACD1438E57E89C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/SmartDeviceLink/SmartDeviceLinkSwift/SDLLog.swift b/Pods/SmartDeviceLink/SmartDeviceLinkSwift/SDLLog.swift deleted file mode 100644 index c7bc4b0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLinkSwift/SDLLog.swift +++ /dev/null @@ -1,118 +0,0 @@ -// -// SDLLog.swift -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 3/2/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -import Foundation - -import SmartDeviceLink - - -/// You may use this class or the below functions for convenience logging in Swift 3 projects. -/// It would be used like so: -/// -/// ``` -/// let log = SDLLog.self -/// log.e("Test something \(NSDate())") -/// ``` -public class SDLLog { - /// Log a verbose message through SDL's custom logging framework. - /// - /// - Parameters: - /// - message: The message to be logged. - /// - file: The file the log is coming from, you should probably leave this as the default. - /// - function: The function the log is coming from, you should probably leave this as the default. - /// - line: The line the log is coming from, you should probably leave this as the default. - public class func v(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { - SDLLogManager.log(with: .verbose, timestamp: Date(), file: stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") - } - - /// Log a debug message through SDL's custom logging framework. - /// - /// - Parameters: - /// - message: The message to be logged. - /// - file: The file the log is coming from, you should probably leave this as the default. - /// - function: The function the log is coming from, you should probably leave this as the default. - /// - line: The line the log is coming from, you should probably leave this as the default. - public class func d(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { - SDLLogManager.log(with: .debug, timestamp: Date(), file: stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") - } - - /// Log a warning message through SDL's custom logging framework. - /// - /// - Parameters: - /// - message: The message to be logged. - /// - file: The file the log is coming from, you should probably leave this as the default. - /// - function: The function the log is coming from, you should probably leave this as the default. - /// - line: The line the log is coming from, you should probably leave this as the default. - public class func w(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { - SDLLogManager.log(with: .warning, timestamp: Date(), file: stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") - } - - /// Log an error message through SDL's custom logging framework. - /// - /// - Parameters: - /// - message: The message to be logged. - /// - file: The file the log is coming from, you should probably leave this as the default. - /// - function: The function the log is coming from, you should probably leave this as the default. - /// - line: The line the log is coming from, you should probably leave this as the default. - public class func e(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { - SDLLogManager.log(with: .error, timestamp: Date(), file: stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") - } - - class func stripFileName(_ file: String) -> String { - let url = URL(fileURLWithPath: file) - return url.deletingPathExtension().lastPathComponent - } -} - -/// Log a verbose message through SDL's custom logging framework. -/// -/// - Parameters: -/// - message: The message to be logged. -/// - file: The file the log is coming from, you should probably leave this as the default. -/// - function: The function the log is coming from, you should probably leave this as the default. -/// - line: The line the log is coming from, you should probably leave this as the default. -public func SDLV(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { - SDLLogManager.log(with: .verbose, timestamp: Date(), file: SDLLog.stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") -} - -/// Log a debug message through SDL's custom logging framework. -/// -/// - Parameters: -/// - message: The message to be logged. -/// - file: The file the log is coming from, you should probably leave this as the default. -/// - function: The function the log is coming from, you should probably leave this as the default. -/// - line: The line the log is coming from, you should probably leave this as the default. -public func SDLD(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { - SDLLogManager.log(with: .debug, timestamp: Date(), file: SDLLog.stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") -} - -/// Log a warning message through SDL's custom logging framework. -/// -/// - Parameters: -/// - message: The message to be logged. -/// - file: The file the log is coming from, you should probably leave this as the default. -/// - function: The function the log is coming from, you should probably leave this as the default. -/// - line: The line the log is coming from, you should probably leave this as the default. -public func SDLW(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { - SDLLogManager.log(with: .warning, timestamp: Date(), file: SDLLog.stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") -} - -/// Log an error message through SDL's custom logging framework. -/// -/// - Parameters: -/// - message: The message to be logged. -/// - file: The file the log is coming from, you should probably leave this as the default. -/// - function: The function the log is coming from, you should probably leave this as the default. -/// - line: The line the log is coming from, you should probably leave this as the default. -public func SDLE(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { - SDLLogManager.log(with: .error, timestamp: Date(), file: SDLLog.stripFileName(file), functionName: function, line: line, queue: logQueue(), message: "\(message())") -} - -private func logQueue() -> String { - return String(cString: __dispatch_queue_get_label(nil), encoding: .utf8) ?? "" -} diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.debug.xcconfig b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.debug.xcconfig index c360b93..c8751d9 100644 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.debug.xcconfig +++ b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.debug.xcconfig @@ -1,10 +1,8 @@ -EMBEDDED_CONTENT_CONTAINS_SWIFT = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON/BiSON.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink/SmartDeviceLink.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' OTHER_LDFLAGS = $(inherited) -framework "BiSON" -framework "SmartDeviceLink" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig index c360b93..c8751d9 100644 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig +++ b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig @@ -1,10 +1,8 @@ -EMBEDDED_CONTENT_CONTAINS_SWIFT = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON/BiSON.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink/SmartDeviceLink.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' OTHER_LDFLAGS = $(inherited) -framework "BiSON" -framework "SmartDeviceLink" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.debug.xcconfig b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.debug.xcconfig index 21276b7..e0667f8 100644 --- a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.debug.xcconfig +++ b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.debug.xcconfig @@ -1,7 +1,6 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.release.xcconfig b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.release.xcconfig index 21276b7..e0667f8 100644 --- a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.release.xcconfig +++ b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.release.xcconfig @@ -1,7 +1,6 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/SmartDeviceLinkService.m b/SmartDeviceLinkService.m index 96445be..7a00fd3 100644 --- a/SmartDeviceLinkService.m +++ b/SmartDeviceLinkService.m @@ -79,8 +79,8 @@ - (void)start { self.localization = [Localization defaultLocalization]; // Change which config you need based on if you want to connect to a TDK (default) or a wifi based emulator (debug) - SDLLifecycleConfiguration *lifecycleConfig = [SDLLifecycleConfiguration defaultConfigurationWithAppName:@"MobileWeather" fullAppId:@"330533107"]; -// SDLLifecycleConfiguration *lifecycleConfig = [SDLLifecycleConfiguration debugConfigurationWithAppName:@"MobileWeather" fullAppId:@"330533107" ipAddress:@"192.168.1.61" port:2776]; +// SDLLifecycleConfiguration *lifecycleConfig = [SDLLifecycleConfiguration defaultConfigurationWithAppName:@"MobileWeather" fullAppId:@"330533107"]; + SDLLifecycleConfiguration *lifecycleConfig = [SDLLifecycleConfiguration debugConfigurationWithAppName:@"MobileWeather" fullAppId:@"330533107" ipAddress:@"m.sdl.tools" port:11427]; lifecycleConfig.ttsName = [SDLTTSChunk textChunksFromString:NSLocalizedString(@"app.tts-name", nil)]; lifecycleConfig.voiceRecognitionCommandNames = @[NSLocalizedString(@"app.vr-synonym", nil)]; lifecycleConfig.appIcon = [SDLArtwork persistentArtworkWithImage:[UIImage imageNamed:@"sdl-appicon"] name:@"AppIcon" asImageFormat:SDLArtworkImageFormatPNG]; @@ -92,7 +92,7 @@ - (void)start { WeatherLanguage *wlanguage = [WeatherLanguage elementWithValue:languageString]; [[NSNotificationCenter defaultCenter] postNotificationName:MobileWeatherLanguageUpdateNotification object:self userInfo:@{ @"language" : wlanguage }]; - SDLConfiguration *config = [[SDLConfiguration alloc] initWithLifecycle:lifecycleConfig lockScreen:[SDLLockScreenConfiguration enabledConfiguration] logging:[SDLLogConfiguration debugConfiguration] fileManager:[SDLFileManagerConfiguration defaultConfiguration] encryption:[SDLEncryptionConfiguration defaultConfiguration]]; + SDLConfiguration *config = [[SDLConfiguration alloc] initWithLifecycle:lifecycleConfig lockScreen:[SDLLockScreenConfiguration enabledConfiguration] logging:self.mw_logConfig fileManager:[SDLFileManagerConfiguration defaultConfiguration] encryption:[SDLEncryptionConfiguration defaultConfiguration]]; self.manager = [[SDLManager alloc] initWithConfiguration:config delegate:self]; @@ -116,6 +116,17 @@ - (void)stop { [self.manager stop]; } +- (SDLLogConfiguration *)mw_logConfig { + SDLLogConfiguration *config = [SDLLogConfiguration debugConfiguration]; + config.disableAssertions = YES; + + SDLLogFileModule *sdlModule = [[SDLLogFileModule alloc] initWithName:@"MobileWeather/SDL" files:[NSSet setWithObject:@"SmartDeviceLinkService"]]; + SDLLogFileModule *weatherModule = [[SDLLogFileModule alloc] initWithName:@"MobileWeather/Weather" files:[NSSet setWithObjects:@"DarkSkyProcessor", @"DarkSkyService", nil]]; + [config.modules setByAddingObjectsFromSet:[NSSet setWithArray:@[sdlModule, weatherModule]]]; + + return config; +} + #pragma mark - SDLManagerDelegate @@ -601,7 +612,7 @@ - (void)repeatWeatherInformation { - (NSArray *)buildDefaultSoftButtons { __weak typeof(self) weakSelf = self; - SDLSoftButtonState *currentWeatherState = [[SDLSoftButtonState alloc] initWithStateName:@"state" text:self.localization[@"sb.current"] artwork:nil]; + SDLSoftButtonState *currentWeatherState = [[SDLSoftButtonState alloc] initWithStateName:@"state" text:self.localization[@"sb.current"] image:[[UIImage imageNamed:@"clear-day"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]]; SDLSoftButtonObject *currentWeatherObject = [[SDLSoftButtonObject alloc] initWithName:@"CurrentWeather" state:currentWeatherState handler:^(SDLOnButtonPress * _Nullable buttonPress, SDLOnButtonEvent * _Nullable buttonEvent) { if (!buttonPress) { return; @@ -610,7 +621,7 @@ - (void)repeatWeatherInformation { [weakSelf sendWeatherConditions:[WeatherDataManager sharedManager].weatherConditions withSpeak:YES]; }]; - SDLSoftButtonState *dailyForecastState = [[SDLSoftButtonState alloc] initWithStateName:@"state" text:self.localization[@"sb.daily"] image:nil]; + SDLSoftButtonState *dailyForecastState = [[SDLSoftButtonState alloc] initWithStateName:@"state" text:self.localization[@"sb.daily"] image:[[UIImage imageNamed:@"menu-day"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]]; SDLSoftButtonObject *dailyForecastObject = [[SDLSoftButtonObject alloc] initWithName:@"DailyForecast" state:dailyForecastState handler:^(SDLOnButtonPress * _Nullable buttonPress, SDLOnButtonEvent * _Nullable buttonEvent) { if (!buttonPress) { return; @@ -619,7 +630,7 @@ - (void)repeatWeatherInformation { [weakSelf sendForecastList:[WeatherDataManager sharedManager].dailyForecast infoType:MWInfoTypeDailyForecast withSpeak:YES]; }]; - SDLSoftButtonState *hourlyForecastState = [[SDLSoftButtonState alloc] initWithStateName:@"state" text:self.localization[@"sb.hourly"] image:nil]; + SDLSoftButtonState *hourlyForecastState = [[SDLSoftButtonState alloc] initWithStateName:@"state" text:self.localization[@"sb.hourly"] image:[[UIImage imageNamed:@"menu-time"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]]; SDLSoftButtonObject *hourlyForecastObject = [[SDLSoftButtonObject alloc] initWithName:@"HourlyForecast" state:hourlyForecastState handler:^(SDLOnButtonPress * _Nullable buttonPress, SDLOnButtonEvent * _Nullable buttonEvent) { if (!buttonPress) { return; @@ -628,7 +639,7 @@ - (void)repeatWeatherInformation { [weakSelf sendForecastList:[WeatherDataManager sharedManager].hourlyForecast infoType:MWInfoTypeHourlyForecast withSpeak:YES]; }]; - SDLSoftButtonState *alertsState = [[SDLSoftButtonState alloc] initWithStateName:@"state" text:self.localization[@"sb.alerts"] image:nil]; + SDLSoftButtonState *alertsState = [[SDLSoftButtonState alloc] initWithStateName:@"state" text:self.localization[@"sb.alerts"] image:[[UIImage imageNamed:@"menu-alert"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]]; SDLSoftButtonObject *alertsObject = [[SDLSoftButtonObject alloc] initWithName:@"Alerts" state:alertsState handler:^(SDLOnButtonPress * _Nullable buttonPress, SDLOnButtonEvent * _Nullable buttonEvent) { if (!buttonPress) { return; @@ -643,7 +654,7 @@ - (void)repeatWeatherInformation { - (NSArray *)buildListSoftButtons:(MWInfoType)infoType withIndex:(NSUInteger)index maxCount:(NSUInteger)count { __weak typeof(self) weakSelf = self; - SDLSoftButtonState *previousState = [[SDLSoftButtonState alloc] initWithStateName:@"state" text:@"<" image:nil]; + SDLSoftButtonState *previousState = [[SDLSoftButtonState alloc] initWithStateName:@"state" text:@"<- Previous" image:nil]; SDLSoftButtonState *previousUnavailableState = [[SDLSoftButtonState alloc] initWithStateName:@"blank" text:@"-" image:nil]; NSString *initialPreviousState = ((index != 0) ? @"state" : @"blank"); @@ -660,7 +671,7 @@ - (void)repeatWeatherInformation { } }]; - SDLSoftButtonState *nextState = [[SDLSoftButtonState alloc] initWithStateName:@"state" text:@">" image:nil]; + SDLSoftButtonState *nextState = [[SDLSoftButtonState alloc] initWithStateName:@"state" text:@"Next ->" image:nil]; SDLSoftButtonState *nextUnavailableState = [[SDLSoftButtonState alloc] initWithStateName:@"blank" text:@"-" image:nil]; NSString *initialNextState = ((index + 1 != count) ? @"state" : @"blank"); @@ -708,23 +719,23 @@ - (void)repeatWeatherInformation { - (NSArray *)weatherMenuCells { __weak typeof(self) weakSelf = self; - SDLMenuCell *showWeatherConditions = [[SDLMenuCell alloc] initWithTitle:self.localization[@"cmd.current-conditions"] icon:nil voiceCommands:@[self.localization[@"vr.current"],self.localization[@"vr.conditions"], self.localization[@"vr.current-conditions"], self.localization[@"vr.show-conditions"], self.localization[@"vr.show-current-conditions"]] handler:^(SDLTriggerSource _Nonnull triggerSource) { + SDLMenuCell *showWeatherConditions = [[SDLMenuCell alloc] initWithTitle:self.localization[@"cmd.current-conditions"] icon:[[SDLArtwork alloc] initWithImage:[[UIImage imageNamed:@"clear-day"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] persistent:YES asImageFormat:SDLArtworkImageFormatPNG] voiceCommands:@[self.localization[@"vr.current"],self.localization[@"vr.conditions"], self.localization[@"vr.current-conditions"], self.localization[@"vr.show-conditions"], self.localization[@"vr.show-current-conditions"]] handler:^(SDLTriggerSource _Nonnull triggerSource) { [weakSelf sendWeatherConditions:[WeatherDataManager sharedManager].weatherConditions withSpeak:YES]; }]; - SDLMenuCell *showDailyForecast = [[SDLMenuCell alloc] initWithTitle:self.localization[@"cmd.daily-forecast"] icon:nil voiceCommands:@[self.localization[@"vr.daily"], self.localization[@"vr.daily-forecast"], self.localization[@"vr.show-daily-forecast"]] handler:^(SDLTriggerSource _Nonnull triggerSource) { + SDLMenuCell *showDailyForecast = [[SDLMenuCell alloc] initWithTitle:self.localization[@"cmd.daily-forecast"] icon:[[SDLArtwork alloc] initWithImage:[[UIImage imageNamed:@"menu-day"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] persistent:YES asImageFormat:SDLArtworkImageFormatPNG] voiceCommands:@[self.localization[@"vr.daily"], self.localization[@"vr.daily-forecast"], self.localization[@"vr.show-daily-forecast"]] handler:^(SDLTriggerSource _Nonnull triggerSource) { [weakSelf sendForecastList:[WeatherDataManager sharedManager].dailyForecast infoType:MWInfoTypeDailyForecast withSpeak:YES]; }]; - SDLMenuCell *showHourlyForecast = [[SDLMenuCell alloc] initWithTitle:self.localization[@"cmd.hourly-forecast"] icon:nil voiceCommands:@[self.localization[@"vr.hourly"], self.localization[@"vr.hourly-forecast"], self.localization[@"vr.show-hourly-forecast"]] handler:^(SDLTriggerSource _Nonnull triggerSource) { + SDLMenuCell *showHourlyForecast = [[SDLMenuCell alloc] initWithTitle:self.localization[@"cmd.hourly-forecast"] icon:[[SDLArtwork alloc] initWithImage:[[UIImage imageNamed:@"menu-time"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] persistent:YES asImageFormat:SDLArtworkImageFormatPNG] voiceCommands:@[self.localization[@"vr.hourly"], self.localization[@"vr.hourly-forecast"], self.localization[@"vr.show-hourly-forecast"]] handler:^(SDLTriggerSource _Nonnull triggerSource) { [weakSelf sendForecastList:[WeatherDataManager sharedManager].hourlyForecast infoType:MWInfoTypeHourlyForecast withSpeak:YES]; }]; - SDLMenuCell *showAlerts = [[SDLMenuCell alloc] initWithTitle:self.localization[@"cmd.alerts"] icon:nil voiceCommands:@[self.localization[@"vr.alerts"], self.localization[@"vr.show-alerts"]] handler:^(SDLTriggerSource _Nonnull triggerSource) { + SDLMenuCell *showAlerts = [[SDLMenuCell alloc] initWithTitle:self.localization[@"cmd.alerts"] icon:[[SDLArtwork alloc] initWithImage:[[UIImage imageNamed:@"menu-alert"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] persistent:YES asImageFormat:SDLArtworkImageFormatPNG] voiceCommands:@[self.localization[@"vr.alerts"], self.localization[@"vr.show-alerts"]] handler:^(SDLTriggerSource _Nonnull triggerSource) { [weakSelf sendAlertList:[WeatherDataManager sharedManager].alerts withSpeak:YES]; }]; - SDLMenuCell *changeUnits = [[SDLMenuCell alloc] initWithTitle:self.localization[@"cmd.change-units"] icon:nil voiceCommands:@[self.localization[@"vr.units"], self.localization[@"vr.change-units"]] handler:^(SDLTriggerSource _Nonnull triggerSource) { + SDLMenuCell *changeUnits = [[SDLMenuCell alloc] initWithTitle:self.localization[@"cmd.change-units"] icon:[[SDLArtwork alloc] initWithImage:[[UIImage imageNamed:@"menu-units"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] persistent:YES asImageFormat:SDLArtworkImageFormatPNG] voiceCommands:@[self.localization[@"vr.units"], self.localization[@"vr.change-units"]] handler:^(SDLTriggerSource _Nonnull triggerSource) { SDLInteractionMode mode = [triggerSource isEqualToEnum:SDLTriggerSourceMenu] ? SDLInteractionModeManualOnly : SDLInteractionModeBoth; [weakSelf presentChangeUnitsInteraction:mode]; }]; From 8b19aeed821aaa56f9e793a88ec2942b2fbc08ac Mon Sep 17 00:00:00 2001 From: Joel Fischer Date: Tue, 21 Jul 2020 15:52:54 -0400 Subject: [PATCH 3/4] Update version to v5.3.0 --- .DS_Store | Bin 8196 -> 8196 bytes MobileWeather.xcodeproj/project.pbxproj | 2 ++ MobileWeather/Info.plist | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.DS_Store b/.DS_Store index e38682e2f0795d405dca099df989e90003599557..1b005a589679a6be0ff9e8642eda63eec365b3aa 100644 GIT binary patch delta 43 zcmV+`0M!44K!iZBbrAtkle`f$ld2I41*qCsfxnag5jB(U5t;(pK9e33HnYGIL=Ah5 B5efhR delta 43 zcmV+`0M!44K!iZBbrAs-le`f$ld2I41@H3#o3@kx5jB(U5t;(xdXpX#HnYGIL=AZU B5i9@z diff --git a/MobileWeather.xcodeproj/project.pbxproj b/MobileWeather.xcodeproj/project.pbxproj index 8dc7fce..79d92a5 100644 --- a/MobileWeather.xcodeproj/project.pbxproj +++ b/MobileWeather.xcodeproj/project.pbxproj @@ -674,6 +674,7 @@ INFOPLIST_FILE = MobileWeather/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MARKETING_VERSION = 5.3.0; PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.mobileweather; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; @@ -696,6 +697,7 @@ INFOPLIST_FILE = MobileWeather/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MARKETING_VERSION = 5.3.0; PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.mobileweather; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; diff --git a/MobileWeather/Info.plist b/MobileWeather/Info.plist index a15a1f2..3178a92 100755 --- a/MobileWeather/Info.plist +++ b/MobileWeather/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 5.2.0 + $(MARKETING_VERSION) CFBundleSignature ???? CFBundleVersion From 43adcf1b1a36938645f9030f4658a711504e21f1 Mon Sep 17 00:00:00 2001 From: Joel Fischer Date: Tue, 21 Jul 2020 15:57:07 -0400 Subject: [PATCH 4/4] Remove pods directory files --- .DS_Store | Bin 8196 -> 10244 bytes .gitignore | 2 +- 5.2 | 0 MobileWeather/.DS_Store | Bin 6148 -> 6148 bytes Pods/BiSON/LICENSE | 27 - Pods/BiSON/README.md | 93 - Pods/BiSON/src/bson_array.c | 481 -- Pods/BiSON/src/bson_array.h | 245 - Pods/BiSON/src/bson_object.c | 500 -- Pods/BiSON/src/bson_object.h | 306 - Pods/BiSON/src/bson_util.c | 157 - Pods/BiSON/src/bson_util.h | 201 - Pods/BiSON/src/emhashmap/LICENSE | 22 - Pods/BiSON/src/emhashmap/emhashmap.c | 156 - Pods/BiSON/src/emhashmap/emhashmap.h | 144 - .../SmartDeviceLink.podspec.json | 486 -- Pods/Manifest.lock | 32 - Pods/Pods.xcodeproj/project.pbxproj | 5266 ----------------- .../xcschemes/Pods-MobileWeather.xcscheme | 71 - .../xcschemes/xcschememanagement.plist | 31 - Pods/SmartDeviceLink/LICENSE | 28 - Pods/SmartDeviceLink/README.md | 180 - .../Base.lproj/SDLLockScreen.storyboard | 243 - .../Assets/SDLAssets.xcassets/Contents.json | 6 - .../Contents.json | 23 - .../lock_arrow_down_black.png | Bin 302 -> 0 bytes .../lock_arrow_down_black@2x.png | Bin 498 -> 0 bytes .../lock_arrow_down_black@3x.png | Bin 730 -> 0 bytes .../Contents.json | 23 - .../lock_arrow_left_black.png | Bin 282 -> 0 bytes .../lock_arrow_left_black@2x.png | Bin 452 -> 0 bytes .../lock_arrow_left_black@3x.png | Bin 702 -> 0 bytes .../Contents.json | 23 - .../lock_arrow_right_black.png | Bin 269 -> 0 bytes .../lock_arrow_right_black@2x.png | Bin 402 -> 0 bytes .../lock_arrow_right_black@3x.png | Bin 674 -> 0 bytes .../Contents.json | 23 - .../lock_arrow_up_black.png | Bin 312 -> 0 bytes .../lock_arrow_up_black@2x.png | Bin 498 -> 0 bytes .../lock_arrow_up_black@3x.png | Bin 724 -> 0 bytes .../sdl_logo_black.imageset/Contents.json | 23 - .../sdl_logo_black.png | Bin 2289 -> 0 bytes .../sdl_logo_black@2x.png | Bin 4889 -> 0 bytes .../sdl_logo_black@3x.png | Bin 7137 -> 0 bytes .../Assets/de.lproj/SDLLockScreen.strings | 3 - .../Assets/en.lproj/SDLLockScreen.strings | 3 - .../Assets/es.lproj/SDLLockScreen.strings | 3 - .../Assets/fr.lproj/SDLLockScreen.strings | 3 - .../Assets/ja.lproj/SDLLockScreen.strings | 3 - .../zh-Hans.lproj/SDLLockScreen.strings | 3 - .../SmartDeviceLink/CGPoint_Util.h | 39 - .../SmartDeviceLink/CGPoint_Util.m | 20 - .../CVPixelBufferRef+SDLUtil.h | 23 - .../CVPixelBufferRef+SDLUtil.m | 109 - .../EAAccessory+SDLProtocols.h | 15 - .../EAAccessory+SDLProtocols.m | 23 - .../EAAccessoryManager+SDLProtocols.h | 15 - .../EAAccessoryManager+SDLProtocols.m | 24 - .../SmartDeviceLink/NSBundle+SDLBundle.h | 19 - .../SmartDeviceLink/NSBundle+SDLBundle.m | 44 - .../SmartDeviceLink/NSMapTable+Subscripting.h | 23 - .../SmartDeviceLink/NSMapTable+Subscripting.m | 25 - .../SmartDeviceLink/NSMutableArray+Safe.h | 15 - .../SmartDeviceLink/NSMutableArray+Safe.m | 19 - .../NSMutableDictionary+SafeRemove.h | 35 - .../NSMutableDictionary+SafeRemove.m | 37 - .../NSMutableDictionary+Store.h | 41 - .../NSMutableDictionary+Store.m | 105 - .../SmartDeviceLink/NSNumber+NumberType.h | 38 - .../SmartDeviceLink/SDLAddCommand.h | 161 - .../SmartDeviceLink/SDLAddCommand.m | 150 - .../SmartDeviceLink/SDLAddCommandResponse.h | 19 - .../SmartDeviceLink/SDLAddCommandResponse.m | 24 - .../SmartDeviceLink/SDLAddSubMenu.h | 109 - .../SmartDeviceLink/SDLAddSubMenu.m | 98 - .../SmartDeviceLink/SDLAddSubMenuResponse.h | 18 - .../SmartDeviceLink/SDLAddSubMenuResponse.m | 24 - .../SmartDeviceLink/SDLAirbagStatus.h | 73 - .../SmartDeviceLink/SDLAirbagStatus.m | 85 - .../SmartDeviceLink/SDLAlert.h | 264 - .../SmartDeviceLink/SDLAlert.m | 179 - .../SmartDeviceLink/SDLAlertManeuver.h | 56 - .../SmartDeviceLink/SDLAlertManeuver.m | 62 - .../SDLAlertManeuverResponse.h | 19 - .../SDLAlertManeuverResponse.m | 25 - .../SmartDeviceLink/SDLAlertResponse.h | 24 - .../SmartDeviceLink/SDLAlertResponse.m | 32 - .../SmartDeviceLink/SDLAmbientLightStatus.h | 52 - .../SmartDeviceLink/SDLAmbientLightStatus.m | 13 - .../SmartDeviceLink/SDLAppHMIType.h | 71 - .../SmartDeviceLink/SDLAppHMIType.m | 18 - .../SmartDeviceLink/SDLAppInfo.h | 41 - .../SmartDeviceLink/SDLAppInfo.m | 58 - .../SDLAppInterfaceUnregisteredReason.h | 75 - .../SDLAppInterfaceUnregisteredReason.m | 18 - .../SmartDeviceLink/SDLAppServiceCapability.h | 56 - .../SmartDeviceLink/SDLAppServiceCapability.m | 61 - .../SmartDeviceLink/SDLAppServiceData.h | 112 - .../SmartDeviceLink/SDLAppServiceData.m | 124 - .../SmartDeviceLink/SDLAppServiceManifest.h | 219 - .../SmartDeviceLink/SDLAppServiceManifest.m | 205 - .../SmartDeviceLink/SDLAppServiceRecord.h | 64 - .../SmartDeviceLink/SDLAppServiceRecord.m | 71 - .../SmartDeviceLink/SDLAppServiceType.h | 29 - .../SmartDeviceLink/SDLAppServiceType.m | 13 - .../SDLAppServicesCapabilities.h | 39 - .../SDLAppServicesCapabilities.m | 40 - .../SmartDeviceLink/SDLArtwork.h | 154 - .../SmartDeviceLink/SDLArtwork.m | 186 - .../SDLAsynchronousOperation.h | 18 - .../SDLAsynchronousOperation.m | 60 - .../SDLAsynchronousRPCOperation.h | 39 - .../SDLAsynchronousRPCOperation.m | 84 - .../SDLAsynchronousRPCRequestOperation.h | 51 - .../SDLAsynchronousRPCRequestOperation.m | 177 - .../SDLAudioControlCapabilities.h | 111 - .../SDLAudioControlCapabilities.m | 126 - .../SmartDeviceLink/SDLAudioControlData.h | 67 - .../SmartDeviceLink/SDLAudioControlData.m | 62 - .../SmartDeviceLink/SDLAudioFile.h | 63 - .../SmartDeviceLink/SDLAudioFile.m | 71 - .../SDLAudioPassThruCapabilities.h | 44 - .../SDLAudioPassThruCapabilities.m | 43 - .../SmartDeviceLink/SDLAudioStreamManager.h | 95 - .../SmartDeviceLink/SDLAudioStreamManager.m | 181 - .../SDLAudioStreamManagerDelegate.h | 59 - .../SDLAudioStreamingIndicator.h | 36 - .../SDLAudioStreamingIndicator.m | 9 - .../SmartDeviceLink/SDLAudioStreamingState.h | 29 - .../SmartDeviceLink/SDLAudioStreamingState.m | 9 - .../SmartDeviceLink/SDLAudioType.h | 18 - .../SmartDeviceLink/SDLAudioType.m | 6 - .../SDLBackgroundTaskManager.h | 41 - .../SDLBackgroundTaskManager.m | 88 - .../SmartDeviceLink/SDLBeltStatus.h | 122 - .../SmartDeviceLink/SDLBeltStatus.m | 151 - .../SmartDeviceLink/SDLBitsPerSample.h | 22 - .../SmartDeviceLink/SDLBitsPerSample.m | 8 - .../SmartDeviceLink/SDLBodyInformation.h | 69 - .../SmartDeviceLink/SDLBodyInformation.m | 77 - .../SmartDeviceLink/SDLButtonCapabilities.h | 57 - .../SmartDeviceLink/SDLButtonCapabilities.m | 59 - .../SmartDeviceLink/SDLButtonEventMode.h | 22 - .../SmartDeviceLink/SDLButtonEventMode.m | 8 - .../SmartDeviceLink/SDLButtonName.h | 286 - .../SmartDeviceLink/SDLButtonName.m | 57 - .../SmartDeviceLink/SDLButtonPress.h | 79 - .../SmartDeviceLink/SDLButtonPress.m | 99 - .../SmartDeviceLink/SDLButtonPressMode.h | 22 - .../SmartDeviceLink/SDLButtonPressMode.m | 8 - .../SmartDeviceLink/SDLButtonPressResponse.h | 16 - .../SmartDeviceLink/SDLButtonPressResponse.m | 24 - .../SmartDeviceLink/SDLCacheFileManager.h | 29 - .../SmartDeviceLink/SDLCacheFileManager.m | 292 - .../SmartDeviceLink/SDLCancelInteraction.h | 115 - .../SmartDeviceLink/SDLCancelInteraction.m | 103 - .../SDLCancelInteractionResponse.h | 20 - .../SDLCancelInteractionResponse.m | 27 - .../SmartDeviceLink/SDLCarModeStatus.h | 32 - .../SmartDeviceLink/SDLCarModeStatus.m | 10 - .../SmartDeviceLink/SDLCarWindow.h | 40 - .../SmartDeviceLink/SDLCarWindow.m | 267 - .../SDLCarWindowViewController.h | 21 - .../SDLCarWindowViewController.m | 56 - .../SmartDeviceLink/SDLChangeRegistration.h | 86 - .../SmartDeviceLink/SDLChangeRegistration.m | 102 - .../SDLChangeRegistrationResponse.h | 19 - .../SDLChangeRegistrationResponse.m | 26 - .../SmartDeviceLink/SDLCharacterSet.h | 33 - .../SmartDeviceLink/SDLCharacterSet.m | 10 - .../SDLCheckChoiceVROptionalOperation.h | 24 - .../SDLCheckChoiceVROptionalOperation.m | 113 - .../SmartDeviceLink/SDLChoice.h | 97 - .../SmartDeviceLink/SDLChoice.m | 101 - .../SmartDeviceLink/SDLChoiceCell.h | 88 - .../SmartDeviceLink/SDLChoiceCell.m | 92 - .../SmartDeviceLink/SDLChoiceSet.h | 146 - .../SmartDeviceLink/SDLChoiceSet.m | 159 - .../SmartDeviceLink/SDLChoiceSetDelegate.h | 37 - .../SmartDeviceLink/SDLChoiceSetManager.h | 120 - .../SmartDeviceLink/SDLChoiceSetManager.m | 610 -- .../SDLClimateControlCapabilities.h | 239 - .../SDLClimateControlCapabilities.m | 197 - .../SmartDeviceLink/SDLClimateControlData.h | 176 - .../SmartDeviceLink/SDLClimateControlData.m | 187 - .../SmartDeviceLink/SDLCloseApplication.h | 20 - .../SmartDeviceLink/SDLCloseApplication.m | 27 - .../SDLCloseApplicationResponse.h | 20 - .../SDLCloseApplicationResponse.m | 27 - .../SmartDeviceLink/SDLCloudAppProperties.h | 94 - .../SmartDeviceLink/SDLCloudAppProperties.m | 105 - .../SmartDeviceLink/SDLClusterModeStatus.h | 47 - .../SmartDeviceLink/SDLClusterModeStatus.m | 51 - .../SmartDeviceLink/SDLCompassDirection.h | 52 - .../SmartDeviceLink/SDLCompassDirection.m | 14 - .../SDLComponentVolumeStatus.h | 42 - .../SDLComponentVolumeStatus.m | 12 - .../SmartDeviceLink/SDLConfiguration.h | 171 - .../SmartDeviceLink/SDLConfiguration.m | 116 - .../SDLConnectionManagerType.h | 75 - ...LControlFramePayloadAudioStartServiceAck.h | 24 - ...LControlFramePayloadAudioStartServiceAck.m | 85 - .../SDLControlFramePayloadConstants.h | 28 - .../SDLControlFramePayloadConstants.m | 28 - .../SDLControlFramePayloadEndService.h | 24 - .../SDLControlFramePayloadEndService.m | 85 - .../SDLControlFramePayloadNak.h | 25 - .../SDLControlFramePayloadNak.m | 105 - .../SDLControlFramePayloadRPCStartService.h | 24 - .../SDLControlFramePayloadRPCStartService.m | 87 - ...SDLControlFramePayloadRPCStartServiceAck.h | 42 - ...SDLControlFramePayloadRPCStartServiceAck.m | 201 - ...ramePayloadRegisterSecondaryTransportNak.h | 24 - ...ramePayloadRegisterSecondaryTransportNak.m | 87 - ...LControlFramePayloadTransportEventUpdate.h | 27 - ...LControlFramePayloadTransportEventUpdate.m | 104 - .../SDLControlFramePayloadType.h | 20 - .../SDLControlFramePayloadVideoStartService.h | 36 - .../SDLControlFramePayloadVideoStartService.m | 118 - ...LControlFramePayloadVideoStartServiceAck.h | 40 - ...LControlFramePayloadVideoStartServiceAck.m | 123 - .../SDLCreateInteractionChoiceSet.h | 49 - .../SDLCreateInteractionChoiceSet.m | 56 - .../SDLCreateInteractionChoiceSetResponse.h | 19 - .../SDLCreateInteractionChoiceSetResponse.m | 26 - .../SmartDeviceLink/SDLCreateWindow.h | 72 - .../SmartDeviceLink/SDLCreateWindow.m | 96 - .../SmartDeviceLink/SDLCreateWindowResponse.h | 16 - .../SmartDeviceLink/SDLCreateWindowResponse.m | 23 - .../SmartDeviceLink/SDLDIDResult.h | 38 - .../SmartDeviceLink/SDLDIDResult.m | 41 - .../SmartDeviceLink/SDLDateTime.h | 120 - .../SmartDeviceLink/SDLDateTime.m | 142 - .../SmartDeviceLink/SDLDefrostZone.h | 32 - .../SmartDeviceLink/SDLDefrostZone.m | 10 - .../SDLDeleteChoicesOperation.h | 25 - .../SDLDeleteChoicesOperation.m | 90 - .../SmartDeviceLink/SDLDeleteCommand.h | 40 - .../SmartDeviceLink/SDLDeleteCommand.m | 46 - .../SDLDeleteCommandResponse.h | 19 - .../SDLDeleteCommandResponse.m | 26 - .../SmartDeviceLink/SDLDeleteFile.h | 34 - .../SmartDeviceLink/SDLDeleteFile.m | 46 - .../SmartDeviceLink/SDLDeleteFileOperation.h | 49 - .../SmartDeviceLink/SDLDeleteFileOperation.m | 82 - .../SmartDeviceLink/SDLDeleteFileResponse.h | 24 - .../SmartDeviceLink/SDLDeleteFileResponse.m | 34 - .../SDLDeleteInteractionChoiceSet.h | 42 - .../SDLDeleteInteractionChoiceSet.m | 46 - .../SDLDeleteInteractionChoiceSetResponse.h | 19 - .../SDLDeleteInteractionChoiceSetResponse.m | 26 - .../SmartDeviceLink/SDLDeleteSubMenu.h | 38 - .../SmartDeviceLink/SDLDeleteSubMenu.m | 46 - .../SDLDeleteSubMenuResponse.h | 19 - .../SDLDeleteSubMenuResponse.m | 26 - .../SmartDeviceLink/SDLDeleteWindow.h | 32 - .../SmartDeviceLink/SDLDeleteWindow.m | 40 - .../SmartDeviceLink/SDLDeleteWindowResponse.h | 21 - .../SmartDeviceLink/SDLDeleteWindowResponse.m | 26 - .../SmartDeviceLink/SDLDeliveryMode.h | 24 - .../SmartDeviceLink/SDLDeliveryMode.m | 8 - .../SmartDeviceLink/SDLDeviceInfo.h | 64 - .../SmartDeviceLink/SDLDeviceInfo.m | 82 - .../SmartDeviceLink/SDLDeviceLevelStatus.h | 42 - .../SmartDeviceLink/SDLDeviceLevelStatus.m | 12 - .../SmartDeviceLink/SDLDeviceStatus.h | 105 - .../SmartDeviceLink/SDLDeviceStatus.m | 116 - .../SmartDeviceLink/SDLDiagnosticMessage.h | 48 - .../SmartDeviceLink/SDLDiagnosticMessage.m | 66 - .../SDLDiagnosticMessageResponse.h | 25 - .../SDLDiagnosticMessageResponse.m | 34 - .../SmartDeviceLink/SDLDialNumber.h | 30 - .../SmartDeviceLink/SDLDialNumber.m | 42 - .../SmartDeviceLink/SDLDialNumberResponse.h | 19 - .../SmartDeviceLink/SDLDialNumberResponse.m | 26 - .../SmartDeviceLink/SDLDimension.h | 27 - .../SmartDeviceLink/SDLDimension.m | 9 - .../SmartDeviceLink/SDLDirection.h | 26 - .../SmartDeviceLink/SDLDirection.m | 12 - .../SmartDeviceLink/SDLDisplayCapabilities.h | 102 - .../SmartDeviceLink/SDLDisplayCapabilities.m | 94 - .../SmartDeviceLink/SDLDisplayCapability.h | 66 - .../SmartDeviceLink/SDLDisplayCapability.m | 72 - .../SmartDeviceLink/SDLDisplayMode.h | 26 - .../SmartDeviceLink/SDLDisplayMode.m | 8 - .../SmartDeviceLink/SDLDisplayType.h | 69 - .../SmartDeviceLink/SDLDisplayType.m | 17 - .../SmartDeviceLink/SDLDistanceUnit.h | 19 - .../SmartDeviceLink/SDLDistanceUnit.m | 7 - .../SDLDriverDistractionState.h | 23 - .../SDLDriverDistractionState.m | 8 - .../SDLDynamicMenuUpdateAlgorithm.h | 28 - .../SDLDynamicMenuUpdateAlgorithm.m | 104 - .../SDLDynamicMenuUpdateRunScore.h | 34 - .../SDLDynamicMenuUpdateRunScore.m | 28 - .../SDLECallConfirmationStatus.h | 47 - .../SDLECallConfirmationStatus.m | 13 - .../SmartDeviceLink/SDLECallInfo.h | 39 - .../SmartDeviceLink/SDLECallInfo.m | 42 - .../SDLElectronicParkBrakeStatus.h | 35 - .../SDLElectronicParkBrakeStatus.m | 18 - .../SmartDeviceLink/SDLEmergencyEvent.h | 59 - .../SmartDeviceLink/SDLEmergencyEvent.m | 60 - .../SmartDeviceLink/SDLEmergencyEventType.h | 47 - .../SmartDeviceLink/SDLEmergencyEventType.m | 13 - .../SmartDeviceLink/SDLEncodedSyncPData.h | 29 - .../SmartDeviceLink/SDLEncodedSyncPData.m | 38 - .../SDLEncodedSyncPDataResponse.h | 19 - .../SDLEncodedSyncPDataResponse.m | 29 - .../SDLEncryptionConfiguration.h | 48 - .../SDLEncryptionConfiguration.m | 45 - .../SDLEncryptionLifecycleManager.h | 59 - .../SDLEncryptionLifecycleManager.m | 327 - .../SDLEncryptionManagerConstants.h | 18 - .../SDLEncryptionManagerConstants.m | 13 - .../SmartDeviceLink/SDLEndAudioPassThru.h | 24 - .../SmartDeviceLink/SDLEndAudioPassThru.m | 26 - .../SDLEndAudioPassThruResponse.h | 19 - .../SDLEndAudioPassThruResponse.m | 26 - .../SmartDeviceLink/SmartDeviceLink/SDLEnum.h | 26 - .../SmartDeviceLink/SmartDeviceLink/SDLEnum.m | 21 - .../SmartDeviceLink/SDLEqualizerSettings.h | 45 - .../SmartDeviceLink/SDLEqualizerSettings.m | 52 - .../SmartDeviceLink/SDLError.h | 124 - .../SmartDeviceLink/SDLError.m | 466 -- .../SmartDeviceLink/SDLErrorConstants.h | 217 - .../SmartDeviceLink/SmartDeviceLink/SDLFile.h | 154 - .../SmartDeviceLink/SmartDeviceLink/SDLFile.m | 197 - .../SmartDeviceLink/SDLFileManager.h | 186 - .../SmartDeviceLink/SDLFileManager.m | 606 -- .../SDLFileManagerConfiguration.h | 53 - .../SDLFileManagerConfiguration.m | 43 - .../SmartDeviceLink/SDLFileManagerConstants.h | 99 - .../SmartDeviceLink/SDLFileType.h | 52 - .../SmartDeviceLink/SDLFileType.m | 14 - .../SmartDeviceLink/SDLFileWrapper.h | 30 - .../SmartDeviceLink/SDLFileWrapper.m | 36 - .../SDLFocusableItemHitTester.h | 26 - .../SmartDeviceLink/SDLFocusableItemLocator.h | 31 - .../SmartDeviceLink/SDLFocusableItemLocator.m | 194 - .../SDLFocusableItemLocatorType.h | 52 - .../SmartDeviceLink/SDLFuelCutoffStatus.h | 27 - .../SmartDeviceLink/SDLFuelCutoffStatus.m | 9 - .../SmartDeviceLink/SDLFuelRange.h | 35 - .../SmartDeviceLink/SDLFuelRange.m | 37 - .../SmartDeviceLink/SDLFuelType.h | 52 - .../SmartDeviceLink/SDLFuelType.m | 16 - .../SmartDeviceLink/SDLFunctionID.h | 29 - .../SmartDeviceLink/SDLFunctionID.m | 140 - .../SmartDeviceLink/SDLGPSData.h | 165 - .../SmartDeviceLink/SDLGPSData.m | 169 - .../SmartDeviceLink/SDLGenericResponse.h | 17 - .../SmartDeviceLink/SDLGenericResponse.m | 26 - .../SmartDeviceLink/SDLGetAppServiceData.h | 61 - .../SmartDeviceLink/SDLGetAppServiceData.m | 77 - .../SDLGetAppServiceDataResponse.h | 37 - .../SDLGetAppServiceDataResponse.m | 50 - .../SDLGetCloudAppProperties.h | 35 - .../SDLGetCloudAppProperties.m | 50 - .../SDLGetCloudAppPropertiesResponse.h | 38 - .../SDLGetCloudAppPropertiesResponse.m | 51 - .../SmartDeviceLink/SDLGetDTCs.h | 48 - .../SmartDeviceLink/SDLGetDTCs.m | 65 - .../SmartDeviceLink/SDLGetDTCsResponse.h | 31 - .../SmartDeviceLink/SDLGetDTCsResponse.m | 44 - .../SmartDeviceLink/SDLGetFile.h | 86 - .../SmartDeviceLink/SDLGetFile.m | 107 - .../SmartDeviceLink/SDLGetFileResponse.h | 61 - .../SmartDeviceLink/SDLGetFileResponse.m | 76 - .../SDLGetInteriorVehicleData.h | 84 - .../SDLGetInteriorVehicleData.m | 124 - .../SDLGetInteriorVehicleDataConsent.h | 43 - .../SDLGetInteriorVehicleDataConsent.m | 55 - ...SDLGetInteriorVehicleDataConsentResponse.h | 29 - ...SDLGetInteriorVehicleDataConsentResponse.m | 34 - .../SDLGetInteriorVehicleDataResponse.h | 35 - .../SDLGetInteriorVehicleDataResponse.m | 45 - .../SmartDeviceLink/SDLGetSystemCapability.h | 56 - .../SmartDeviceLink/SDLGetSystemCapability.m | 70 - .../SDLGetSystemCapabilityResponse.h | 32 - .../SDLGetSystemCapabilityResponse.m | 44 - .../SmartDeviceLink/SDLGetVehicleData.h | 297 - .../SmartDeviceLink/SDLGetVehicleData.m | 322 - .../SDLGetVehicleDataResponse.h | 211 - .../SDLGetVehicleDataResponse.m | 286 - .../SmartDeviceLink/SDLGetWayPoints.h | 31 - .../SmartDeviceLink/SDLGetWayPoints.m | 45 - .../SmartDeviceLink/SDLGetWayPointsResponse.h | 24 - .../SmartDeviceLink/SDLGetWayPointsResponse.m | 34 - .../SmartDeviceLink/SDLGlobalProperty.h | 52 - .../SmartDeviceLink/SDLGlobalProperty.m | 14 - .../SmartDeviceLink/SDLGlobals.h | 48 - .../SmartDeviceLink/SDLGlobals.m | 129 - .../SmartDeviceLink/SmartDeviceLink/SDLGrid.h | 56 - .../SmartDeviceLink/SmartDeviceLink/SDLGrid.m | 70 - .../SmartDeviceLink/SDLH264Packetizer.h | 33 - .../SmartDeviceLink/SDLH264VideoEncoder.h | 76 - .../SmartDeviceLink/SDLH264VideoEncoder.m | 409 -- .../SmartDeviceLink/SDLHMICapabilities.h | 83 - .../SmartDeviceLink/SDLHMICapabilities.m | 72 - .../SmartDeviceLink/SDLHMILevel.h | 36 - .../SmartDeviceLink/SDLHMILevel.m | 10 - .../SmartDeviceLink/SDLHMIPermissions.h | 39 - .../SmartDeviceLink/SDLHMIPermissions.m | 34 - .../SDLHMISettingsControlCapabilities.h | 96 - .../SDLHMISettingsControlCapabilities.m | 104 - .../SDLHMISettingsControlData.h | 50 - .../SDLHMISettingsControlData.m | 50 - .../SmartDeviceLink/SDLHMIZoneCapabilities.h | 22 - .../SmartDeviceLink/SDLHMIZoneCapabilities.m | 8 - .../SmartDeviceLink/SDLHapticRect.h | 45 - .../SmartDeviceLink/SDLHapticRect.m | 49 - .../SmartDeviceLink/SDLHeadLampStatus.h | 38 - .../SmartDeviceLink/SDLHeadLampStatus.m | 42 - .../SmartDeviceLink/SDLHexUtility.h | 17 - .../SmartDeviceLink/SDLHexUtility.m | 64 - .../SmartDeviceLink/SDLHybridAppPreference.h | 29 - .../SmartDeviceLink/SDLHybridAppPreference.m | 13 - .../SmartDeviceLink/SDLIAPConstants.h | 14 - .../SmartDeviceLink/SDLIAPConstants.m | 14 - .../SmartDeviceLink/SDLIAPControlSession.h | 39 - .../SmartDeviceLink/SDLIAPControlSession.m | 261 - .../SDLIAPControlSessionDelegate.h | 23 - .../SmartDeviceLink/SDLIAPDataSession.h | 40 - .../SmartDeviceLink/SDLIAPDataSession.m | 375 -- .../SDLIAPDataSessionDelegate.h | 21 - .../SmartDeviceLink/SDLIAPSession.h | 101 - .../SmartDeviceLink/SDLIAPSession.m | 111 - .../SmartDeviceLink/SDLIAPTransport.h | 20 - .../SmartDeviceLink/SDLIAPTransport.m | 562 -- .../SmartDeviceLink/SDLIconArchiveFile.h | 29 - .../SmartDeviceLink/SDLIconArchiveFile.m | 75 - .../SmartDeviceLink/SDLIgnitionStableStatus.h | 27 - .../SmartDeviceLink/SDLIgnitionStableStatus.m | 9 - .../SmartDeviceLink/SDLIgnitionStatus.h | 42 - .../SmartDeviceLink/SDLIgnitionStatus.m | 12 - .../SmartDeviceLink/SDLImage.h | 92 - .../SmartDeviceLink/SDLImage.m | 87 - .../SDLImageField+ScreenManagerExtensions.h | 19 - .../SDLImageField+ScreenManagerExtensions.m | 30 - .../SmartDeviceLink/SDLImageField.h | 47 - .../SmartDeviceLink/SDLImageField.m | 54 - .../SmartDeviceLink/SDLImageFieldName.h | 84 - .../SmartDeviceLink/SDLImageFieldName.m | 20 - .../SmartDeviceLink/SDLImageResolution.h | 37 - .../SmartDeviceLink/SDLImageResolution.m | 44 - .../SmartDeviceLink/SDLImageType.h | 24 - .../SmartDeviceLink/SDLImageType.m | 8 - .../SmartDeviceLink/SDLInteractionMode.h | 37 - .../SmartDeviceLink/SDLInteractionMode.m | 9 - .../SmartDeviceLink/SDLKeyboardDelegate.h | 106 - .../SmartDeviceLink/SDLKeyboardEvent.h | 39 - .../SmartDeviceLink/SDLKeyboardEvent.m | 11 - .../SmartDeviceLink/SDLKeyboardLayout.h | 27 - .../SmartDeviceLink/SDLKeyboardLayout.m | 9 - .../SmartDeviceLink/SDLKeyboardProperties.h | 88 - .../SmartDeviceLink/SDLKeyboardProperties.m | 83 - .../SmartDeviceLink/SDLKeypressMode.h | 31 - .../SmartDeviceLink/SDLKeypressMode.m | 9 - .../SmartDeviceLink/SDLLanguage.h | 207 - .../SmartDeviceLink/SDLLanguage.m | 45 - .../SmartDeviceLink/SDLLayoutMode.h | 37 - .../SmartDeviceLink/SDLLayoutMode.m | 11 - .../SDLLifecycleConfiguration.h | 202 - .../SDLLifecycleConfiguration.m | 167 - .../SDLLifecycleConfigurationUpdate.h | 53 - .../SDLLifecycleConfigurationUpdate.m | 32 - .../SmartDeviceLink/SDLLifecycleManager.h | 160 - .../SmartDeviceLink/SDLLifecycleManager.m | 993 ---- .../SDLLifecycleMobileHMIStateHandler.h | 28 - .../SDLLifecycleMobileHMIStateHandler.m | 94 - .../SDLLifecycleProtocolHandler.h | 38 - .../SDLLifecycleProtocolHandler.m | 200 - .../SmartDeviceLink/SDLLifecycleRPCAdapter.h | 29 - .../SmartDeviceLink/SDLLifecycleRPCAdapter.m | 164 - .../SDLLifecycleSyncPDataHandler.h | 29 - .../SDLLifecycleSyncPDataHandler.m | 153 - .../SDLLifecycleSystemRequestHandler.h | 29 - .../SDLLifecycleSystemRequestHandler.m | 336 -- .../SmartDeviceLink/SDLLightCapabilities.h | 66 - .../SmartDeviceLink/SDLLightCapabilities.m | 70 - .../SDLLightControlCapabilities.h | 61 - .../SDLLightControlCapabilities.m | 66 - .../SmartDeviceLink/SDLLightControlData.h | 33 - .../SmartDeviceLink/SDLLightControlData.m | 34 - .../SmartDeviceLink/SDLLightName.h | 259 - .../SmartDeviceLink/SDLLightName.m | 54 - .../SmartDeviceLink/SDLLightState.h | 79 - .../SmartDeviceLink/SDLLightState.m | 86 - .../SmartDeviceLink/SDLLightStatus.h | 40 - .../SmartDeviceLink/SDLLightStatus.m | 11 - .../SmartDeviceLink/SDLListFiles.h | 21 - .../SmartDeviceLink/SDLListFiles.m | 26 - .../SmartDeviceLink/SDLListFilesOperation.h | 43 - .../SmartDeviceLink/SDLListFilesOperation.m | 89 - .../SmartDeviceLink/SDLListFilesResponse.h | 29 - .../SmartDeviceLink/SDLListFilesResponse.m | 42 - .../SmartDeviceLink/SDLLocationCoordinate.h | 38 - .../SmartDeviceLink/SDLLocationCoordinate.m | 45 - .../SmartDeviceLink/SDLLocationDetails.h | 97 - .../SmartDeviceLink/SDLLocationDetails.m | 101 - .../SDLLockScreenConfiguration.h | 124 - .../SDLLockScreenConfiguration.m | 101 - .../SmartDeviceLink/SDLLockScreenManager.h | 80 - .../SmartDeviceLink/SDLLockScreenManager.m | 272 - .../SmartDeviceLink/SDLLockScreenPresenter.h | 25 - .../SmartDeviceLink/SDLLockScreenPresenter.m | 245 - .../SDLLockScreenRootViewController.h | 18 - .../SDLLockScreenRootViewController.m | 59 - .../SmartDeviceLink/SDLLockScreenStatus.h | 29 - .../SmartDeviceLink/SDLLockScreenStatus.m | 10 - .../SDLLockScreenStatusManager.h | 32 - .../SDLLockScreenStatusManager.m | 169 - .../SDLLockScreenViewController.h | 51 - .../SDLLockScreenViewController.m | 248 - .../SmartDeviceLink/SDLLogConfiguration.h | 81 - .../SmartDeviceLink/SDLLogConfiguration.m | 92 - .../SmartDeviceLink/SDLLogConstants.h | 86 - .../SmartDeviceLink/SDLLogFileModule.h | 79 - .../SmartDeviceLink/SDLLogFileModule.m | 69 - .../SmartDeviceLink/SDLLogFileModuleMap.h | 17 - .../SmartDeviceLink/SDLLogFileModuleMap.m | 147 - .../SmartDeviceLink/SDLLogFilter.h | 104 - .../SmartDeviceLink/SDLLogFilter.m | 134 - .../SmartDeviceLink/SDLLogMacros.h | 109 - .../SmartDeviceLink/SDLLogManager.h | 254 - .../SmartDeviceLink/SDLLogManager.m | 355 -- .../SmartDeviceLink/SDLLogModel.h | 82 - .../SmartDeviceLink/SDLLogModel.m | 72 - .../SmartDeviceLink/SDLLogTarget.h | 50 - .../SDLLogTargetAppleSystemLog.h | 23 - .../SDLLogTargetAppleSystemLog.m | 77 - .../SmartDeviceLink/SDLLogTargetFile.h | 23 - .../SmartDeviceLink/SDLLogTargetFile.m | 145 - .../SmartDeviceLink/SDLLogTargetOSLog.h | 25 - .../SmartDeviceLink/SDLLogTargetOSLog.m | 88 - .../SmartDeviceLink/SDLMacros.h | 29 - .../SDLMaintenanceModeStatus.h | 30 - .../SDLMaintenanceModeStatus.m | 10 - .../SmartDeviceLink/SDLManager.h | 224 - .../SmartDeviceLink/SDLManager.m | 164 - .../SmartDeviceLink/SDLManagerDelegate.h | 80 - .../SmartDeviceLink/SDLMassageCushion.h | 35 - .../SmartDeviceLink/SDLMassageCushion.m | 10 - .../SDLMassageCushionFirmness.h | 40 - .../SDLMassageCushionFirmness.m | 44 - .../SmartDeviceLink/SDLMassageMode.h | 25 - .../SmartDeviceLink/SDLMassageMode.m | 9 - .../SmartDeviceLink/SDLMassageModeData.h | 39 - .../SmartDeviceLink/SDLMassageModeData.m | 43 - .../SmartDeviceLink/SDLMassageZone.h | 20 - .../SmartDeviceLink/SDLMassageZone.m | 7 - .../SmartDeviceLink/SDLMediaClockFormat.h | 115 - .../SmartDeviceLink/SDLMediaClockFormat.m | 13 - .../SmartDeviceLink/SDLMediaServiceData.h | 177 - .../SmartDeviceLink/SDLMediaServiceData.m | 153 - .../SmartDeviceLink/SDLMediaServiceManifest.h | 20 - .../SmartDeviceLink/SDLMediaServiceManifest.m | 17 - .../SmartDeviceLink/SDLMediaType.h | 35 - .../SmartDeviceLink/SDLMediaType.m | 14 - .../SmartDeviceLink/SDLMenuCell.h | 102 - .../SmartDeviceLink/SDLMenuCell.m | 96 - .../SmartDeviceLink/SDLMenuConfiguration.h | 37 - .../SmartDeviceLink/SDLMenuConfiguration.m | 31 - .../SmartDeviceLink/SDLMenuLayout.h | 25 - .../SmartDeviceLink/SDLMenuLayout.m | 12 - .../SmartDeviceLink/SDLMenuManager.h | 51 - .../SmartDeviceLink/SDLMenuManager.m | 738 --- .../SmartDeviceLink/SDLMenuManagerConstants.h | 39 - .../SmartDeviceLink/SDLMenuParams.h | 64 - .../SmartDeviceLink/SDLMenuParams.m | 63 - .../SmartDeviceLink/SDLMetadataTags.h | 63 - .../SmartDeviceLink/SDLMetadataTags.m | 78 - .../SmartDeviceLink/SDLMetadataType.h | 76 - .../SmartDeviceLink/SDLMetadataType.m | 22 - .../SmartDeviceLink/SDLModuleData.h | 131 - .../SmartDeviceLink/SDLModuleData.m | 159 - .../SmartDeviceLink/SDLModuleInfo.h | 50 - .../SmartDeviceLink/SDLModuleInfo.m | 52 - .../SmartDeviceLink/SDLModuleType.h | 41 - .../SmartDeviceLink/SDLModuleType.m | 12 - .../SmartDeviceLink/SDLMsgVersion.h | 52 - .../SmartDeviceLink/SDLMsgVersion.m | 58 - .../SmartDeviceLink/SDLMutableDataQueue.h | 60 - .../SmartDeviceLink/SDLMutableDataQueue.m | 76 - .../SmartDeviceLink/SDLMyKey.h | 21 - .../SmartDeviceLink/SDLMyKey.m | 25 - .../SmartDeviceLink/SDLNavigationAction.h | 49 - .../SmartDeviceLink/SDLNavigationAction.m | 17 - .../SmartDeviceLink/SDLNavigationCapability.h | 41 - .../SmartDeviceLink/SDLNavigationCapability.m | 48 - .../SDLNavigationInstruction.h | 109 - .../SDLNavigationInstruction.m | 116 - .../SmartDeviceLink/SDLNavigationJunction.h | 54 - .../SmartDeviceLink/SDLNavigationJunction.m | 19 - .../SDLNavigationServiceData.h | 111 - .../SDLNavigationServiceData.m | 124 - .../SDLNavigationServiceManifest.h | 35 - .../SDLNavigationServiceManifest.m | 39 - .../SDLNotificationConstants.h | 629 -- .../SDLNotificationConstants.m | 266 - .../SDLNotificationDispatcher.h | 57 - .../SDLNotificationDispatcher.m | 59 - .../SmartDeviceLink/SDLOasisAddress.h | 100 - .../SmartDeviceLink/SDLOasisAddress.m | 110 - .../SmartDeviceLink/SDLObjectWithPriority.h | 21 - .../SmartDeviceLink/SDLObjectWithPriority.m | 34 - .../SDLOnAppInterfaceUnregistered.h | 29 - .../SDLOnAppInterfaceUnregistered.m | 34 - .../SmartDeviceLink/SDLOnAppServiceData.h | 38 - .../SmartDeviceLink/SDLOnAppServiceData.m | 51 - .../SmartDeviceLink/SDLOnAudioPassThru.h | 20 - .../SmartDeviceLink/SDLOnAudioPassThru.m | 26 - .../SmartDeviceLink/SDLOnButtonEvent.h | 66 - .../SmartDeviceLink/SDLOnButtonEvent.m | 51 - .../SmartDeviceLink/SDLOnButtonPress.h | 62 - .../SmartDeviceLink/SDLOnButtonPress.m | 51 - .../SmartDeviceLink/SDLOnCommand.h | 33 - .../SmartDeviceLink/SDLOnCommand.m | 43 - .../SmartDeviceLink/SDLOnDriverDistraction.h | 47 - .../SmartDeviceLink/SDLOnDriverDistraction.m | 53 - .../SmartDeviceLink/SDLOnEncodedSyncPData.h | 31 - .../SmartDeviceLink/SDLOnEncodedSyncPData.m | 53 - .../SmartDeviceLink/SDLOnHMIStatus.h | 64 - .../SmartDeviceLink/SDLOnHMIStatus.m | 85 - .../SmartDeviceLink/SDLOnHashChange.h | 21 - .../SmartDeviceLink/SDLOnHashChange.m | 35 - .../SDLOnInteriorVehicleData.h | 24 - .../SDLOnInteriorVehicleData.m | 35 - .../SmartDeviceLink/SDLOnKeyboardInput.h | 27 - .../SmartDeviceLink/SDLOnKeyboardInput.m | 42 - .../SmartDeviceLink/SDLOnLanguageChange.h | 31 - .../SmartDeviceLink/SDLOnLanguageChange.m | 45 - .../SmartDeviceLink/SDLOnLockScreenStatus.h | 52 - .../SmartDeviceLink/SDLOnLockScreenStatus.m | 68 - .../SmartDeviceLink/SDLOnPermissionsChange.h | 34 - .../SmartDeviceLink/SDLOnPermissionsChange.m | 43 - .../SmartDeviceLink/SDLOnRCStatus.h | 49 - .../SmartDeviceLink/SDLOnRCStatus.m | 53 - .../SmartDeviceLink/SDLOnSyncPData.h | 27 - .../SmartDeviceLink/SDLOnSyncPData.m | 46 - .../SDLOnSystemCapabilityUpdated.h | 37 - .../SDLOnSystemCapabilityUpdated.m | 51 - .../SmartDeviceLink/SDLOnSystemRequest.h | 55 - .../SmartDeviceLink/SDLOnSystemRequest.m | 82 - .../SmartDeviceLink/SDLOnTBTClientState.h | 22 - .../SmartDeviceLink/SDLOnTBTClientState.m | 34 - .../SmartDeviceLink/SDLOnTouchEvent.h | 29 - .../SmartDeviceLink/SDLOnTouchEvent.m | 44 - .../SmartDeviceLink/SDLOnVehicleData.h | 211 - .../SmartDeviceLink/SDLOnVehicleData.m | 285 - .../SmartDeviceLink/SDLOnWayPointChange.h | 24 - .../SmartDeviceLink/SDLOnWayPointChange.m | 35 - .../SmartDeviceLink/SDLPCMAudioConverter.h | 31 - .../SmartDeviceLink/SDLPCMAudioConverter.m | 205 - .../SmartDeviceLink/SDLPRNDL.h | 92 - .../SmartDeviceLink/SDLPRNDL.m | 22 - .../SmartDeviceLink/SDLParameterPermissions.h | 31 - .../SmartDeviceLink/SDLParameterPermissions.m | 34 - .../SDLPerformAppServiceInteraction.h | 79 - .../SDLPerformAppServiceInteraction.m | 89 - .../SDLPerformAppServiceInteractionResponse.h | 36 - .../SDLPerformAppServiceInteractionResponse.m | 49 - .../SmartDeviceLink/SDLPerformAudioPassThru.h | 148 - .../SmartDeviceLink/SDLPerformAudioPassThru.m | 133 - .../SDLPerformAudioPassThruResponse.h | 19 - .../SDLPerformAudioPassThruResponse.m | 26 - .../SmartDeviceLink/SDLPerformInteraction.h | 251 - .../SmartDeviceLink/SDLPerformInteraction.m | 197 - .../SDLPerformInteractionResponse.h | 41 - .../SDLPerformInteractionResponse.m | 50 - .../SmartDeviceLink/SDLPermissionConstants.h | 80 - .../SmartDeviceLink/SDLPermissionElement.h | 41 - .../SmartDeviceLink/SDLPermissionElement.m | 41 - .../SmartDeviceLink/SDLPermissionFilter.h | 89 - .../SmartDeviceLink/SDLPermissionFilter.m | 94 - .../SmartDeviceLink/SDLPermissionItem.h | 46 - .../SmartDeviceLink/SDLPermissionItem.m | 53 - .../SmartDeviceLink/SDLPermissionManager.h | 158 - .../SmartDeviceLink/SDLPermissionManager.m | 493 -- .../SmartDeviceLink/SDLPermissionStatus.h | 32 - .../SmartDeviceLink/SDLPermissionStatus.m | 10 - .../SmartDeviceLink/SDLPhoneCapability.h | 33 - .../SmartDeviceLink/SDLPhoneCapability.m | 39 - .../SmartDeviceLink/SDLPinchGesture.h | 63 - .../SmartDeviceLink/SDLPinchGesture.m | 79 - .../SDLPowerModeQualificationStatus.h | 30 - .../SDLPowerModeQualificationStatus.m | 10 - .../SmartDeviceLink/SDLPowerModeStatus.h | 55 - .../SmartDeviceLink/SDLPowerModeStatus.m | 15 - .../SmartDeviceLink/SDLPredefinedLayout.h | 110 - .../SmartDeviceLink/SDLPredefinedLayout.m | 26 - .../SmartDeviceLink/SDLPredefinedWindows.h | 18 - .../SDLPreloadChoicesOperation.h | 38 - .../SDLPreloadChoicesOperation.m | 240 - .../SmartDeviceLink/SDLPrerecordedSpeech.h | 35 - .../SmartDeviceLink/SDLPrerecordedSpeech.m | 11 - .../SDLPresentChoiceSetOperation.h | 61 - .../SDLPresentChoiceSetOperation.m | 343 -- .../SDLPresentKeyboardOperation.h | 47 - .../SDLPresentKeyboardOperation.m | 252 - .../SDLPresetBankCapabilities.h | 25 - .../SDLPresetBankCapabilities.m | 25 - .../SmartDeviceLink/SDLPrimaryAudioSource.h | 72 - .../SmartDeviceLink/SDLPrimaryAudioSource.m | 19 - .../SDLPrioritizedObjectCollection.h | 31 - .../SDLPrioritizedObjectCollection.m | 69 - .../SmartDeviceLink/SDLProtocol.h | 156 - .../SmartDeviceLink/SDLProtocol.m | 784 --- .../SmartDeviceLink/SDLProtocolConstants.h | 98 - .../SmartDeviceLink/SDLProtocolConstants.m | 9 - .../SmartDeviceLink/SDLProtocolDelegate.h | 89 - .../SmartDeviceLink/SDLProtocolHeader.h | 105 - .../SmartDeviceLink/SDLProtocolHeader.m | 74 - .../SmartDeviceLink/SDLProtocolMessage.h | 59 - .../SmartDeviceLink/SDLProtocolMessage.m | 92 - .../SDLProtocolMessageAssembler.h | 24 - .../SDLProtocolMessageAssembler.m | 104 - .../SDLProtocolMessageDisassembler.h | 16 - .../SDLProtocolMessageDisassembler.m | 89 - .../SDLProtocolReceivedMessageRouter.h | 26 - .../SDLProtocolReceivedMessageRouter.m | 124 - .../SmartDeviceLink/SDLPublishAppService.h | 40 - .../SmartDeviceLink/SDLPublishAppService.m | 52 - .../SDLPublishAppServiceResponse.h | 38 - .../SDLPublishAppServiceResponse.m | 50 - .../SmartDeviceLink/SDLPutFile.h | 144 - .../SmartDeviceLink/SDLPutFile.m | 168 - .../SmartDeviceLink/SDLPutFileResponse.h | 24 - .../SmartDeviceLink/SDLPutFileResponse.m | 34 - .../SmartDeviceLink/SDLRAWH264Packetizer.h | 18 - .../SmartDeviceLink/SDLRAWH264Packetizer.m | 52 - .../SmartDeviceLink/SDLRDSData.h | 85 - .../SmartDeviceLink/SDLRDSData.m | 95 - .../SmartDeviceLink/SDLRGBColor.h | 61 - .../SmartDeviceLink/SDLRGBColor.m | 72 - .../SmartDeviceLink/SDLRPCFunctionNames.h | 280 - .../SmartDeviceLink/SDLRPCFunctionNames.m | 98 - .../SmartDeviceLink/SDLRPCMessage.h | 75 - .../SmartDeviceLink/SDLRPCMessage.m | 102 - .../SmartDeviceLink/SDLRPCMessageType.h | 26 - .../SmartDeviceLink/SDLRPCMessageType.m | 13 - .../SmartDeviceLink/SDLRPCNotification.h | 16 - .../SmartDeviceLink/SDLRPCNotification.m | 50 - .../SDLRPCNotificationNotification.h | 53 - .../SDLRPCNotificationNotification.m | 51 - .../SmartDeviceLink/SDLRPCParameterNames.h | 728 --- .../SmartDeviceLink/SDLRPCParameterNames.m | 723 --- .../SmartDeviceLink/SDLRPCPayload.h | 24 - .../SmartDeviceLink/SDLRPCPayload.m | 117 - .../SmartDeviceLink/SDLRPCPermissionStatus.h | 47 - .../SmartDeviceLink/SDLRPCPermissionStatus.m | 34 - .../SmartDeviceLink/SDLRPCRequest.h | 19 - .../SmartDeviceLink/SDLRPCRequest.m | 35 - .../SDLRPCRequestNotification.h | 51 - .../SDLRPCRequestNotification.m | 49 - .../SmartDeviceLink/SDLRPCResponse.h | 36 - .../SmartDeviceLink/SDLRPCResponse.m | 91 - .../SDLRPCResponseNotification.h | 52 - .../SDLRPCResponseNotification.m | 49 - .../SmartDeviceLink/SDLRPCStruct.h | 38 - .../SmartDeviceLink/SDLRPCStruct.m | 109 - .../SmartDeviceLink/SDLRTPH264Packetizer.h | 35 - .../SmartDeviceLink/SDLRTPH264Packetizer.m | 255 - .../SmartDeviceLink/SDLRadioBand.h | 25 - .../SmartDeviceLink/SDLRadioBand.m | 9 - .../SDLRadioControlCapabilities.h | 225 - .../SDLRadioControlCapabilities.m | 210 - .../SmartDeviceLink/SDLRadioControlData.h | 172 - .../SmartDeviceLink/SDLRadioControlData.m | 191 - .../SmartDeviceLink/SDLRadioState.h | 30 - .../SmartDeviceLink/SDLRadioState.m | 10 - .../SmartDeviceLink/SDLReadDID.h | 54 - .../SmartDeviceLink/SDLReadDID.m | 56 - .../SmartDeviceLink/SDLReadDIDResponse.h | 26 - .../SmartDeviceLink/SDLReadDIDResponse.m | 35 - .../SmartDeviceLink/SDLRectangle.h | 67 - .../SmartDeviceLink/SDLRectangle.m | 67 - .../SmartDeviceLink/SDLRegisterAppInterface.h | 276 - .../SmartDeviceLink/SDLRegisterAppInterface.m | 271 - .../SDLRegisterAppInterfaceResponse.h | 215 - .../SDLRegisterAppInterfaceResponse.m | 208 - .../SDLReleaseInteriorVehicleDataModule.h | 41 - .../SDLReleaseInteriorVehicleDataModule.m | 56 - ...ReleaseInteriorVehicleDataModuleResponse.h | 20 - ...ReleaseInteriorVehicleDataModuleResponse.m | 23 - .../SDLRemoteControlCapabilities.h | 97 - .../SDLRemoteControlCapabilities.m | 122 - .../SmartDeviceLink/SDLRequestType.h | 121 - .../SmartDeviceLink/SDLRequestType.m | 28 - .../SDLResetGlobalProperties.h | 44 - .../SDLResetGlobalProperties.m | 47 - .../SDLResetGlobalPropertiesResponse.h | 19 - .../SDLResetGlobalPropertiesResponse.m | 26 - .../SmartDeviceLink/SDLResponseDispatcher.h | 82 - .../SmartDeviceLink/SDLResponseDispatcher.m | 413 -- .../SmartDeviceLink/SDLResult.h | 215 - .../SmartDeviceLink/SDLResult.m | 43 - .../SmartDeviceLink/SDLSISData.h | 69 - .../SmartDeviceLink/SDLSISData.m | 72 - .../SmartDeviceLink/SDLSamplingRate.h | 32 - .../SmartDeviceLink/SDLSamplingRate.m | 10 - .../SmartDeviceLink/SDLScreenManager.h | 374 -- .../SmartDeviceLink/SDLScreenManager.m | 321 - .../SmartDeviceLink/SDLScreenParams.h | 32 - .../SmartDeviceLink/SDLScreenParams.m | 34 - .../SmartDeviceLink/SDLScrollableMessage.h | 88 - .../SmartDeviceLink/SDLScrollableMessage.m | 86 - .../SDLScrollableMessageResponse.h | 19 - .../SDLScrollableMessageResponse.m | 22 - .../SDLSeatControlCapabilities.h | 195 - .../SDLSeatControlCapabilities.m | 249 - .../SmartDeviceLink/SDLSeatControlData.h | 177 - .../SmartDeviceLink/SDLSeatControlData.m | 200 - .../SmartDeviceLink/SDLSeatLocation.h | 26 - .../SmartDeviceLink/SDLSeatLocation.m | 25 - .../SDLSeatLocationCapability.h | 55 - .../SDLSeatLocationCapability.m | 70 - .../SmartDeviceLink/SDLSeatMemoryAction.h | 61 - .../SmartDeviceLink/SDLSeatMemoryAction.m | 62 - .../SmartDeviceLink/SDLSeatMemoryActionType.h | 27 - .../SmartDeviceLink/SDLSeatMemoryActionType.m | 8 - .../SDLSecondaryTransportManager.h | 59 - .../SDLSecondaryTransportManager.m | 839 --- .../SmartDeviceLink/SDLSecurityType.h | 74 - .../SmartDeviceLink/SDLSendHapticData.h | 37 - .../SmartDeviceLink/SDLSendHapticData.m | 49 - .../SDLSendHapticDataResponse.h | 20 - .../SDLSendHapticDataResponse.m | 29 - .../SmartDeviceLink/SDLSendLocation.h | 139 - .../SmartDeviceLink/SDLSendLocation.m | 149 - .../SmartDeviceLink/SDLSendLocationResponse.h | 16 - .../SmartDeviceLink/SDLSendLocationResponse.m | 29 - .../SDLSequentialRPCRequestOperation.h | 36 - .../SDLSequentialRPCRequestOperation.m | 125 - .../SDLServiceEncryptionDelegate.h | 29 - .../SmartDeviceLink/SDLServiceUpdateReason.h | 39 - .../SmartDeviceLink/SDLServiceUpdateReason.m | 15 - .../SmartDeviceLink/SDLSetAppIcon.h | 35 - .../SmartDeviceLink/SDLSetAppIcon.m | 42 - .../SmartDeviceLink/SDLSetAppIconResponse.h | 18 - .../SmartDeviceLink/SDLSetAppIconResponse.m | 26 - .../SDLSetCloudAppProperties.h | 38 - .../SDLSetCloudAppProperties.m | 52 - .../SDLSetCloudAppPropertiesResponse.h | 20 - .../SDLSetCloudAppPropertiesResponse.m | 28 - .../SmartDeviceLink/SDLSetDisplayLayout.h | 66 - .../SmartDeviceLink/SDLSetDisplayLayout.m | 77 - .../SDLSetDisplayLayoutResponse.h | 43 - .../SDLSetDisplayLayoutResponse.m | 62 - .../SmartDeviceLink/SDLSetGlobalProperties.h | 139 - .../SmartDeviceLink/SDLSetGlobalProperties.m | 133 - .../SDLSetGlobalPropertiesResponse.h | 18 - .../SDLSetGlobalPropertiesResponse.m | 26 - .../SDLSetInteriorVehicleData.h | 32 - .../SDLSetInteriorVehicleData.m | 46 - .../SDLSetInteriorVehicleDataResponse.h | 24 - .../SDLSetInteriorVehicleDataResponse.m | 35 - .../SmartDeviceLink/SDLSetMediaClockTimer.h | 199 - .../SmartDeviceLink/SDLSetMediaClockTimer.m | 150 - .../SDLSetMediaClockTimerResponse.h | 18 - .../SDLSetMediaClockTimerResponse.m | 26 - .../SmartDeviceLink/SmartDeviceLink/SDLShow.h | 334 -- .../SmartDeviceLink/SmartDeviceLink/SDLShow.m | 235 - .../SmartDeviceLink/SDLShowAppMenu.h | 35 - .../SmartDeviceLink/SDLShowAppMenu.m | 48 - .../SmartDeviceLink/SDLShowAppMenuResponse.h | 20 - .../SmartDeviceLink/SDLShowAppMenuResponse.m | 23 - .../SmartDeviceLink/SDLShowConstantTBT.h | 120 - .../SmartDeviceLink/SDLShowConstantTBT.m | 137 - .../SDLShowConstantTBTResponse.h | 18 - .../SDLShowConstantTBTResponse.m | 26 - .../SmartDeviceLink/SDLShowResponse.h | 18 - .../SmartDeviceLink/SDLShowResponse.m | 26 - .../SmartDeviceLink/SDLSingleTireStatus.h | 41 - .../SmartDeviceLink/SDLSingleTireStatus.m | 41 - .../SmartDeviceLink/SDLSlider.h | 126 - .../SmartDeviceLink/SDLSlider.m | 127 - .../SmartDeviceLink/SDLSliderResponse.h | 23 - .../SmartDeviceLink/SDLSliderResponse.m | 34 - .../SmartDeviceLink/SDLSoftButton.h | 82 - .../SmartDeviceLink/SDLSoftButton.m | 101 - .../SDLSoftButtonCapabilities.h | 61 - .../SDLSoftButtonCapabilities.m | 61 - .../SmartDeviceLink/SDLSoftButtonManager.h | 74 - .../SmartDeviceLink/SDLSoftButtonManager.m | 257 - .../SmartDeviceLink/SDLSoftButtonObject.h | 104 - .../SmartDeviceLink/SDLSoftButtonObject.m | 152 - .../SDLSoftButtonReplaceOperation.h | 45 - .../SDLSoftButtonReplaceOperation.m | 273 - .../SmartDeviceLink/SDLSoftButtonState.h | 76 - .../SmartDeviceLink/SDLSoftButtonState.m | 86 - .../SDLSoftButtonTransitionOperation.h | 43 - .../SDLSoftButtonTransitionOperation.m | 92 - .../SmartDeviceLink/SDLSoftButtonType.h | 25 - .../SmartDeviceLink/SDLSoftButtonType.m | 9 - .../SmartDeviceLink/SDLSpeak.h | 71 - .../SmartDeviceLink/SDLSpeak.m | 52 - .../SmartDeviceLink/SDLSpeakResponse.h | 18 - .../SmartDeviceLink/SDLSpeakResponse.m | 26 - .../SmartDeviceLink/SDLSpeechCapabilities.h | 42 - .../SmartDeviceLink/SDLSpeechCapabilities.m | 12 - .../SmartDeviceLink/SDLStartTime.h | 59 - .../SmartDeviceLink/SDLStartTime.m | 69 - .../SmartDeviceLink/SDLStateMachine.h | 102 - .../SmartDeviceLink/SDLStateMachine.m | 162 - .../SmartDeviceLink/SDLStaticIconName.h | 900 --- .../SmartDeviceLink/SDLStaticIconName.m | 188 - .../SmartDeviceLink/SDLStationIDNumber.h | 40 - .../SmartDeviceLink/SDLStationIDNumber.m | 43 - .../SDLStreamingAudioLifecycleManager.h | 98 - .../SDLStreamingAudioLifecycleManager.m | 315 - .../SDLStreamingAudioManagerType.h | 27 - .../SDLStreamingMediaConfiguration.h | 175 - .../SDLStreamingMediaConfiguration.m | 114 - .../SDLStreamingMediaManager.h | 204 - .../SDLStreamingMediaManager.m | 310 - .../SDLStreamingMediaManagerConstants.h | 96 - .../SDLStreamingMediaManagerConstants.m | 36 - .../SDLStreamingMediaManagerDataSource.h | 41 - .../SDLStreamingProtocolDelegate.h | 34 - .../SDLStreamingVideoLifecycleManager.h | 186 - .../SDLStreamingVideoLifecycleManager.m | 866 --- .../SDLStreamingVideoScaleManager.h | 78 - .../SDLStreamingVideoScaleManager.m | 98 - .../SmartDeviceLink/SDLSubscribeButton.h | 94 - .../SmartDeviceLink/SDLSubscribeButton.m | 65 - .../SDLSubscribeButtonManager.h | 75 - .../SDLSubscribeButtonManager.m | 311 - .../SDLSubscribeButtonObserver.h | 42 - .../SDLSubscribeButtonObserver.m | 45 - .../SDLSubscribeButtonResponse.h | 18 - .../SDLSubscribeButtonResponse.m | 26 - .../SmartDeviceLink/SDLSubscribeVehicleData.h | 293 - .../SmartDeviceLink/SDLSubscribeVehicleData.m | 313 - .../SDLSubscribeVehicleDataResponse.h | 244 - .../SDLSubscribeVehicleDataResponse.m | 267 - .../SmartDeviceLink/SDLSubscribeWayPoints.h | 20 - .../SmartDeviceLink/SDLSubscribeWayPoints.m | 25 - .../SDLSubscribeWayPointsResponse.h | 15 - .../SDLSubscribeWayPointsResponse.m | 26 - .../SmartDeviceLink/SDLSupportedSeat.h | 26 - .../SmartDeviceLink/SDLSupportedSeat.m | 10 - .../SmartDeviceLink/SDLSyncMsgVersion.h | 47 - .../SmartDeviceLink/SDLSyncMsgVersion.m | 61 - .../SmartDeviceLink/SDLSyncPData.h | 19 - .../SmartDeviceLink/SDLSyncPData.m | 29 - .../SmartDeviceLink/SDLSyncPDataResponse.h | 19 - .../SmartDeviceLink/SDLSyncPDataResponse.m | 29 - .../SmartDeviceLink/SDLSystemAction.h | 25 - .../SmartDeviceLink/SDLSystemAction.m | 9 - .../SmartDeviceLink/SDLSystemCapability.h | 143 - .../SmartDeviceLink/SDLSystemCapability.m | 177 - .../SDLSystemCapabilityManager.h | 334 -- .../SDLSystemCapabilityManager.m | 838 --- .../SDLSystemCapabilityObserver.h | 71 - .../SDLSystemCapabilityObserver.m | 55 - .../SmartDeviceLink/SDLSystemCapabilityType.h | 51 - .../SmartDeviceLink/SDLSystemCapabilityType.m | 17 - .../SmartDeviceLink/SDLSystemContext.h | 41 - .../SmartDeviceLink/SDLSystemContext.m | 11 - .../SmartDeviceLink/SDLSystemRequest.h | 59 - .../SmartDeviceLink/SDLSystemRequest.m | 74 - .../SDLSystemRequestResponse.h | 18 - .../SDLSystemRequestResponse.m | 26 - .../SmartDeviceLink/SDLTBTState.h | 60 - .../SmartDeviceLink/SDLTBTState.m | 16 - .../SmartDeviceLink/SDLTCPTransport.h | 36 - .../SmartDeviceLink/SDLTCPTransport.m | 378 -- .../SmartDeviceLink/SmartDeviceLink/SDLTPMS.h | 50 - .../SmartDeviceLink/SmartDeviceLink/SDLTPMS.m | 18 - .../SmartDeviceLink/SDLTTSChunk.h | 93 - .../SmartDeviceLink/SDLTTSChunk.m | 77 - .../SmartDeviceLink/SDLTemperature.h | 56 - .../SmartDeviceLink/SDLTemperature.m | 53 - .../SmartDeviceLink/SDLTemperatureUnit.h | 21 - .../SmartDeviceLink/SDLTemperatureUnit.m | 8 - .../SmartDeviceLink/SDLTemplateColorScheme.h | 54 - .../SmartDeviceLink/SDLTemplateColorScheme.m | 67 - .../SDLTemplateConfiguration.h | 86 - .../SDLTemplateConfiguration.m | 91 - .../SmartDeviceLink/SDLTextAlignment.h | 27 - .../SmartDeviceLink/SDLTextAlignment.m | 9 - .../SDLTextAndGraphicManager.h | 97 - .../SDLTextAndGraphicManager.m | 748 --- .../SDLTextField+ScreenManagerExtensions.h | 19 - .../SDLTextField+ScreenManagerExtensions.m | 26 - .../SmartDeviceLink/SDLTextField.h | 60 - .../SmartDeviceLink/SDLTextField.m | 65 - .../SmartDeviceLink/SDLTextFieldName.h | 201 - .../SmartDeviceLink/SDLTextFieldName.m | 35 - .../SmartDeviceLink/SDLTimer.h | 49 - .../SmartDeviceLink/SDLTimer.m | 114 - .../SmartDeviceLink/SDLTimerMode.h | 25 - .../SmartDeviceLink/SDLTimerMode.m | 9 - .../SmartDeviceLink/SDLTireStatus.h | 68 - .../SmartDeviceLink/SDLTireStatus.m | 79 - .../SmartDeviceLink/SDLTouch.h | 70 - .../SmartDeviceLink/SDLTouch.m | 66 - .../SmartDeviceLink/SDLTouchCoord.h | 30 - .../SmartDeviceLink/SDLTouchCoord.m | 34 - .../SmartDeviceLink/SDLTouchEvent.h | 49 - .../SmartDeviceLink/SDLTouchEvent.m | 44 - .../SDLTouchEventCapabilities.h | 31 - .../SDLTouchEventCapabilities.m | 43 - .../SmartDeviceLink/SDLTouchManager.h | 114 - .../SmartDeviceLink/SDLTouchManager.m | 511 -- .../SmartDeviceLink/SDLTouchManagerDelegate.h | 123 - .../SmartDeviceLink/SDLTouchType.h | 30 - .../SmartDeviceLink/SDLTouchType.m | 10 - .../SmartDeviceLink/SDLTransportDelegate.h | 28 - .../SmartDeviceLink/SDLTransportType.h | 19 - .../SmartDeviceLink/SDLTriggerSource.h | 27 - .../SmartDeviceLink/SDLTriggerSource.m | 9 - .../SmartDeviceLink/SmartDeviceLink/SDLTurn.h | 34 - .../SmartDeviceLink/SmartDeviceLink/SDLTurn.m | 44 - .../SmartDeviceLink/SDLTurnSignal.h | 34 - .../SmartDeviceLink/SDLTurnSignal.m | 14 - .../SmartDeviceLink/SDLUnpublishAppService.h | 34 - .../SmartDeviceLink/SDLUnpublishAppService.m | 49 - .../SDLUnpublishAppServiceResponse.h | 20 - .../SDLUnpublishAppServiceResponse.m | 27 - .../SDLUnregisterAppInterface.h | 29 - .../SDLUnregisterAppInterface.m | 26 - .../SDLUnregisterAppInterfaceResponse.h | 18 - .../SDLUnregisterAppInterfaceResponse.m | 26 - .../SmartDeviceLink/SDLUnsubscribeButton.h | 42 - .../SmartDeviceLink/SDLUnsubscribeButton.m | 47 - .../SDLUnsubscribeButtonResponse.h | 18 - .../SDLUnsubscribeButtonResponse.m | 26 - .../SDLUnsubscribeVehicleData.h | 293 - .../SDLUnsubscribeVehicleData.m | 313 - .../SDLUnsubscribeVehicleDataResponse.h | 243 - .../SDLUnsubscribeVehicleDataResponse.m | 267 - .../SmartDeviceLink/SDLUnsubscribeWayPoints.h | 15 - .../SmartDeviceLink/SDLUnsubscribeWayPoints.m | 25 - .../SDLUnsubscribeWayPointsResponse.h | 15 - .../SDLUnsubscribeWayPointsResponse.m | 25 - .../SmartDeviceLink/SDLUpdateMode.h | 37 - .../SmartDeviceLink/SDLUpdateMode.m | 11 - .../SmartDeviceLink/SDLUpdateTurnList.h | 38 - .../SmartDeviceLink/SDLUpdateTurnList.m | 56 - .../SDLUpdateTurnListResponse.h | 17 - .../SDLUpdateTurnListResponse.m | 26 - .../SmartDeviceLink/SDLUploadFileOperation.h | 38 - .../SmartDeviceLink/SDLUploadFileOperation.m | 277 - .../SmartDeviceLink/SDLV1ProtocolHeader.h | 18 - .../SmartDeviceLink/SDLV1ProtocolHeader.m | 88 - .../SmartDeviceLink/SDLV1ProtocolMessage.h | 17 - .../SmartDeviceLink/SDLV1ProtocolMessage.m | 39 - .../SmartDeviceLink/SDLV2ProtocolHeader.h | 21 - .../SmartDeviceLink/SDLV2ProtocolHeader.m | 126 - .../SmartDeviceLink/SDLV2ProtocolMessage.h | 18 - .../SmartDeviceLink/SDLV2ProtocolMessage.m | 68 - .../SDLVehicleDataActiveStatus.h | 35 - .../SDLVehicleDataActiveStatus.m | 11 - .../SDLVehicleDataEventStatus.h | 37 - .../SDLVehicleDataEventStatus.m | 11 - .../SDLVehicleDataNotificationStatus.h | 32 - .../SDLVehicleDataNotificationStatus.m | 10 - .../SmartDeviceLink/SDLVehicleDataResult.h | 51 - .../SmartDeviceLink/SDLVehicleDataResult.m | 66 - .../SDLVehicleDataResultCode.h | 55 - .../SDLVehicleDataResultCode.m | 15 - .../SmartDeviceLink/SDLVehicleDataStatus.h | 27 - .../SmartDeviceLink/SDLVehicleDataStatus.m | 9 - .../SmartDeviceLink/SDLVehicleDataType.h | 172 - .../SmartDeviceLink/SDLVehicleDataType.m | 39 - .../SmartDeviceLink/SDLVehicleType.h | 54 - .../SmartDeviceLink/SDLVehicleType.m | 48 - .../SmartDeviceLink/SDLVentilationMode.h | 31 - .../SmartDeviceLink/SDLVentilationMode.m | 11 - .../SmartDeviceLink/SDLVersion.h | 121 - .../SmartDeviceLink/SDLVersion.m | 160 - .../SmartDeviceLink/SDLVideoEncoderDelegate.h | 17 - .../SDLVideoStreamingCapability.h | 100 - .../SDLVideoStreamingCapability.m | 103 - .../SmartDeviceLink/SDLVideoStreamingCodec.h | 36 - .../SmartDeviceLink/SDLVideoStreamingCodec.m | 13 - .../SmartDeviceLink/SDLVideoStreamingFormat.h | 40 - .../SmartDeviceLink/SDLVideoStreamingFormat.m | 47 - .../SDLVideoStreamingProtocol.h | 36 - .../SDLVideoStreamingProtocol.m | 11 - .../SmartDeviceLink/SDLVideoStreamingState.h | 24 - .../SmartDeviceLink/SDLVideoStreamingState.m | 12 - .../SDLViewControllerPresentable.h | 33 - .../SmartDeviceLink/SDLVoiceCommand.h | 40 - .../SmartDeviceLink/SDLVoiceCommand.m | 37 - .../SmartDeviceLink/SDLVoiceCommandManager.h | 38 - .../SmartDeviceLink/SDLVoiceCommandManager.m | 266 - .../SmartDeviceLink/SDLVrCapabilities.h | 17 - .../SmartDeviceLink/SDLVrCapabilities.m | 7 - .../SmartDeviceLink/SDLVrHelpItem.h | 53 - .../SmartDeviceLink/SDLVrHelpItem.m | 66 - .../SmartDeviceLink/SDLWarningLightStatus.h | 32 - .../SmartDeviceLink/SDLWarningLightStatus.m | 10 - .../SmartDeviceLink/SDLWayPointType.h | 19 - .../SmartDeviceLink/SDLWayPointType.m | 7 - .../SmartDeviceLink/SDLWeatherAlert.h | 76 - .../SmartDeviceLink/SDLWeatherAlert.m | 84 - .../SmartDeviceLink/SDLWeatherData.h | 208 - .../SmartDeviceLink/SDLWeatherData.m | 231 - .../SmartDeviceLink/SDLWeatherServiceData.h | 87 - .../SmartDeviceLink/SDLWeatherServiceData.m | 95 - .../SDLWeatherServiceManifest.h | 67 - .../SDLWeatherServiceManifest.m | 75 - ...WindowCapability+ScreenManagerExtensions.h | 26 - ...WindowCapability+ScreenManagerExtensions.m | 55 - .../SmartDeviceLink/SDLWindowCapability.h | 89 - .../SmartDeviceLink/SDLWindowCapability.m | 89 - .../SmartDeviceLink/SDLWindowType.h | 21 - .../SmartDeviceLink/SDLWindowType.m | 8 - .../SDLWindowTypeCapabilities.h | 41 - .../SDLWindowTypeCapabilities.m | 58 - .../SmartDeviceLink/SDLWiperStatus.h | 85 - .../SmartDeviceLink/SDLWiperStatus.m | 21 - .../SmartDeviceLink/SmartDeviceLink.h | 487 -- .../TestSubscribeButtonObserver.h | 34 - .../TestSubscribeButtonObserver.m | 70 - .../BiSON/BiSON-Info.plist | 26 - Pods/Target Support Files/BiSON/BiSON-dummy.m | 5 - .../BiSON/BiSON-prefix.pch | 12 - .../BiSON/BiSON-umbrella.h | 20 - .../BiSON/BiSON.debug.xcconfig | 9 - .../BiSON/BiSON.modulemap | 6 - .../BiSON/BiSON.release.xcconfig | 9 - .../Target Support Files/BiSON/BiSON.xcconfig | 8 - Pods/Target Support Files/BiSON/Info.plist | 26 - .../Pods-MobileWeather/Info.plist | 26 - .../Pods-MobileWeather-Info.plist | 26 - ...ds-MobileWeather-acknowledgements.markdown | 66 - .../Pods-MobileWeather-acknowledgements.plist | 104 - .../Pods-MobileWeather-dummy.m | 5 - .../Pods-MobileWeather-frameworks.sh | 209 - .../Pods-MobileWeather-resources.sh | 118 - .../Pods-MobileWeather-umbrella.h | 16 - .../Pods-MobileWeather.debug.xcconfig | 10 - .../Pods-MobileWeather.modulemap | 6 - .../Pods-MobileWeather.release.xcconfig | 10 - .../SmartDeviceLink/Info.plist | 26 - .../ResourceBundle-SmartDeviceLink-Info.plist | 24 - ...SmartDeviceLink-SmartDeviceLink-Info.plist | 24 - .../SmartDeviceLink-Info.plist | 26 - .../SmartDeviceLink/SmartDeviceLink-dummy.m | 5 - .../SmartDeviceLink-prefix.pch | 12 - .../SmartDeviceLink-umbrella.h | 450 -- .../SmartDeviceLink.debug.xcconfig | 10 - .../SmartDeviceLink/SmartDeviceLink.modulemap | 6 - .../SmartDeviceLink.release.xcconfig | 10 - .../SmartDeviceLink/SmartDeviceLink.xcconfig | 9 - 1150 files changed, 1 insertion(+), 95173 deletions(-) delete mode 100644 5.2 delete mode 100644 Pods/BiSON/LICENSE delete mode 100644 Pods/BiSON/README.md delete mode 100644 Pods/BiSON/src/bson_array.c delete mode 100644 Pods/BiSON/src/bson_array.h delete mode 100644 Pods/BiSON/src/bson_object.c delete mode 100644 Pods/BiSON/src/bson_object.h delete mode 100644 Pods/BiSON/src/bson_util.c delete mode 100644 Pods/BiSON/src/bson_util.h delete mode 100755 Pods/BiSON/src/emhashmap/LICENSE delete mode 100755 Pods/BiSON/src/emhashmap/emhashmap.c delete mode 100755 Pods/BiSON/src/emhashmap/emhashmap.h delete mode 100644 Pods/Local Podspecs/SmartDeviceLink.podspec.json delete mode 100644 Pods/Manifest.lock delete mode 100644 Pods/Pods.xcodeproj/project.pbxproj delete mode 100644 Pods/Pods.xcodeproj/xcuserdata/joel.xcuserdatad/xcschemes/Pods-MobileWeather.xcscheme delete mode 100644 Pods/Pods.xcodeproj/xcuserdata/joel.xcuserdatad/xcschemes/xcschememanagement.plist delete mode 100644 Pods/SmartDeviceLink/LICENSE delete mode 100644 Pods/SmartDeviceLink/README.md delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/Contents.json delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_black.imageset/Contents.json delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_black.imageset/lock_arrow_down_black.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_black.imageset/lock_arrow_down_black@2x.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_black.imageset/lock_arrow_down_black@3x.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/Contents.json delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/lock_arrow_left_black.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/lock_arrow_left_black@2x.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/lock_arrow_left_black@3x.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/Contents.json delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/lock_arrow_right_black.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/lock_arrow_right_black@2x.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/lock_arrow_right_black@3x.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_black.imageset/Contents.json delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_black.imageset/lock_arrow_up_black.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_black.imageset/lock_arrow_up_black@2x.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_black.imageset/lock_arrow_up_black@3x.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_black.imageset/Contents.json delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_black.imageset/sdl_logo_black.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_black.imageset/sdl_logo_black@2x.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_black.imageset/sdl_logo_black@3x.png delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/de.lproj/SDLLockScreen.strings delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/en.lproj/SDLLockScreen.strings delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/es.lproj/SDLLockScreen.strings delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/fr.lproj/SDLLockScreen.strings delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/ja.lproj/SDLLockScreen.strings delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/Assets/zh-Hans.lproj/SDLLockScreen.strings delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/CGPoint_Util.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/CGPoint_Util.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/CVPixelBufferRef+SDLUtil.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/CVPixelBufferRef+SDLUtil.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/EAAccessory+SDLProtocols.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/EAAccessory+SDLProtocols.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/EAAccessoryManager+SDLProtocols.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/EAAccessoryManager+SDLProtocols.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/NSBundle+SDLBundle.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/NSBundle+SDLBundle.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/NSMapTable+Subscripting.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/NSMapTable+Subscripting.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/NSMutableArray+Safe.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/NSMutableArray+Safe.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+SafeRemove.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+SafeRemove.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/NSNumber+NumberType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommand.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommand.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommandResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommandResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenuResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenuResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAirbagStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAirbagStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuverResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuverResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAmbientLightStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAmbientLightStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppHMIType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppHMIType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.m delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.h delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioPassThruCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioPassThruCapabilities.m delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.h delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.m delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManagerDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingIndicator.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingIndicator.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingState.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingState.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLBeltStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLBeltStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLBitsPerSample.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLBitsPerSample.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLBodyInformation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLBodyInformation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonEventMode.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonEventMode.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressMode.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressMode.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCarModeStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCarModeStatus.m delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindowViewController.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindowViewController.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistrationResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistrationResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCharacterSet.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCharacterSet.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceCell.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceCell.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLClusterModeStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLClusterModeStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCompassDirection.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCompassDirection.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLComponentVolumeStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLComponentVolumeStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLConnectionManagerType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadEndService.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadEndService.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadNak.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadNak.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartService.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartService.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartService.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartService.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDIDResult.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDIDResult.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDefrostZone.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDefrostZone.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteChoicesOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteChoicesOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommandResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommandResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenuResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenuResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeliveryMode.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeliveryMode.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceLevelStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceLevelStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumberResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumberResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDimension.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDimension.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayMode.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayMode.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDistanceUnit.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDistanceUnit.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDriverDistractionState.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDriverDistractionState.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLECallConfirmationStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLECallConfirmationStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLECallInfo.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLECallInfo.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLElectronicParkBrakeStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLElectronicParkBrakeStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEvent.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEvent.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEventType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEventType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThru.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThru.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThruResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThruResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEnum.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEnum.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLError.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLError.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLErrorConstants.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConfiguration.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConfiguration.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConstants.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFileType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFileType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFileWrapper.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFileWrapper.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemHitTester.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocatorType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelCutoffStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelCutoffStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelRange.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelRange.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGenericResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGenericResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.h delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPointsResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPointsResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLH264Packetizer.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHMILevel.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHMILevel.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIPermissions.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIPermissions.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIZoneCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIZoneCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHeadLampStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHeadLampStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHexUtility.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHexUtility.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSessionDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSessionDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStableStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStableStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImage.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImage.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImageType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLImageType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLInteractionMode.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLInteractionMode.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardEvent.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardEvent.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardLayout.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardLayout.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLKeypressMode.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLKeypressMode.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLanguage.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLanguage.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLayoutMode.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLayoutMode.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfigurationUpdate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfigurationUpdate.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLightName.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLightName.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLightStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLightStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLListFiles.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLListFiles.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConstants.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModule.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModule.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModuleMap.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModuleMap.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFilter.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFilter.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogMacros.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogModel.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogModel.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTarget.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetAppleSystemLog.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetAppleSystemLog.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetFile.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetFile.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetOSLog.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetOSLog.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMacros.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMaintenanceModeStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMaintenanceModeStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLManagerDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushion.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushion.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushionFirmness.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushionFirmness.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageMode.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageMode.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageModeData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageModeData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageZone.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageZone.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaClockFormat.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaClockFormat.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManagerConstants.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMutableDataQueue.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMutableDataQueue.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMyKey.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLMyKey.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLObjectWithPriority.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLObjectWithPriority.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppInterfaceUnregistered.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAudioPassThru.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAudioPassThru.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonEvent.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonEvent.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonPress.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonPress.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnCommand.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnCommand.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHashChange.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHashChange.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnInteriorVehicleData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnInteriorVehicleData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnKeyboardInput.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnKeyboardInput.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLanguageChange.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLanguageChange.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnRCStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnRCStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemRequest.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemRequest.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTBTClientState.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTBTClientState.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTouchEvent.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTouchEvent.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnWayPointChange.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLOnWayPointChange.m delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLPCMAudioConverter.h delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLPCMAudioConverter.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPRNDL.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPRNDL.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLParameterPermissions.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLParameterPermissions.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThruResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThruResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteractionResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteractionResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionConstants.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPinchGesture.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPinchGesture.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeQualificationStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeQualificationStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedLayout.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedLayout.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedWindows.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPrerecordedSpeech.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPrerecordedSpeech.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPresetBankCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPresetBankCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPrimaryAudioSource.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPrimaryAudioSource.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPrioritizedObjectCollection.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPrioritizedObjectCollection.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolConstants.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolConstants.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolHeader.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolHeader.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessage.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessage.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageAssembler.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageAssembler.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageDisassembler.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageDisassembler.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolReceivedMessageRouter.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolReceivedMessageRouter.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFileResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFileResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRAWH264Packetizer.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRAWH264Packetizer.m delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.h delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotification.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotification.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotificationNotification.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotificationNotification.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPayload.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPayload.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponseNotification.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponseNotification.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioBand.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioBand.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioState.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioState.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDIDResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDIDResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRectangle.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRectangle.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalPropertiesResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLResponseDispatcher.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLResponseDispatcher.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSamplingRate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSamplingRate.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenParams.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenParams.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessageResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessageResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryAction.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryAction.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryActionType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryActionType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSecurityType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticDataResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticDataResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocationResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocationResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceEncryptionDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIconResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIconResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayoutResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayoutResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalPropertiesResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimerResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimerResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBTResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBTResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLShowResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSingleTireStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSingleTireStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSliderResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSliderResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeakResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeakResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeechCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeechCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStateMachine.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStateMachine.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStaticIconName.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStaticIconName.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioManagerType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerDataSource.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingProtocolDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPoints.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPoints.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPointsResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPointsResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemAction.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemAction.m delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.h delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.m delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.h delete mode 100755 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemContext.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemContext.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequestResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequestResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTBTState.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTBTState.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTCPTransport.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTCPTransport.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTPMS.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTPMS.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTTSChunk.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTTSChunk.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperatureUnit.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperatureUnit.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAlignment.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAlignment.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTimerMode.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTimerMode.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTireStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTireStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchCoord.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchCoord.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEventCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEventCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManagerDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTransportDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTransportType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTriggerSource.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTriggerSource.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTurnSignal.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLTurnSignal.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterface.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterface.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButtonResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButtonResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPoints.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPoints.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateMode.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateMode.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnListResponse.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnListResponse.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolHeader.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolHeader.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolMessage.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolMessage.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolHeader.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolHeader.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolMessage.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolMessage.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataActiveStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataActiveStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataEventStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataEventStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataNotificationStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataNotificationStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResultCode.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResultCode.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVentilationMode.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVentilationMode.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoEncoderDelegate.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCodec.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCodec.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingProtocol.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingProtocol.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingState.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingState.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLViewControllerPresentable.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommand.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommand.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommandManager.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommandManager.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVrCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVrCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWarningLightStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWarningLightStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWayPointType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWayPointType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWiperStatus.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SDLWiperStatus.m delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/SmartDeviceLink.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.h delete mode 100644 Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.m delete mode 100644 Pods/Target Support Files/BiSON/BiSON-Info.plist delete mode 100644 Pods/Target Support Files/BiSON/BiSON-dummy.m delete mode 100644 Pods/Target Support Files/BiSON/BiSON-prefix.pch delete mode 100644 Pods/Target Support Files/BiSON/BiSON-umbrella.h delete mode 100644 Pods/Target Support Files/BiSON/BiSON.debug.xcconfig delete mode 100644 Pods/Target Support Files/BiSON/BiSON.modulemap delete mode 100644 Pods/Target Support Files/BiSON/BiSON.release.xcconfig delete mode 100644 Pods/Target Support Files/BiSON/BiSON.xcconfig delete mode 100644 Pods/Target Support Files/BiSON/Info.plist delete mode 100644 Pods/Target Support Files/Pods-MobileWeather/Info.plist delete mode 100644 Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-Info.plist delete mode 100644 Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.markdown delete mode 100644 Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.plist delete mode 100644 Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-dummy.m delete mode 100755 Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-frameworks.sh delete mode 100755 Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-resources.sh delete mode 100644 Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-umbrella.h delete mode 100644 Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.debug.xcconfig delete mode 100644 Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.modulemap delete mode 100644 Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig delete mode 100644 Pods/Target Support Files/SmartDeviceLink/Info.plist delete mode 100644 Pods/Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-Info.plist delete mode 100644 Pods/Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist delete mode 100644 Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist delete mode 100644 Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-dummy.m delete mode 100644 Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-prefix.pch delete mode 100644 Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-umbrella.h delete mode 100644 Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.debug.xcconfig delete mode 100644 Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.modulemap delete mode 100644 Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.release.xcconfig delete mode 100644 Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.xcconfig diff --git a/.DS_Store b/.DS_Store index 1b005a589679a6be0ff9e8642eda63eec365b3aa..84d7bf4b1be2cd44749da1cfc6ee83fd01da9383 100644 GIT binary patch literal 10244 zcmeHMU2GIZ9RL4If!%9?ZTTvkwI`*@XIo08mhf@C9++x@%C)r6!m)R|vYUl+GoV@dU#nyczbty9%RWeQz;PUY`ZEm1pzm%zrsY~~bxD$x% zWsWmo3z(3g9(7QmlO7oy=p$(*a&|hQn+dY|Ig!>i+o`R+iUm^&r%szLh=HP_qM1eF z?pU9hi#f8Bu_Lk-m+pvZikgtEPEB$8+Ertdu4YwZo7E~is@2Vm+f7p^174OBJ2W*H zm*zB^h9hf+YPs=vjGj)-P|RG!%ovL8+Izv>a+~b*Q5>N%OgOM4ieg+U8yIL!lc!!iedgjN?uOo53`%%?IRB7JwjZ3p^f~tk8ZI+rPh&q#|o=F*YTq;S* zdNQLEo=v*WjO{K*?RQvdmu*^3vuhZaq>Qa@SIJJxs!_5g*HRW~TiVe~!``7ws>y&qPv&Z-n({V^vaBxv!p<2U`}UNv$ce-cI4Q4?v(AMYABk~yNg!HaI}4z zYKbLyPHZ>ilzK&)H@|Gb!eDT;^-z?qOhS7&qd5nqNJ{bhoqK z+n`|2tq5Gc`TjuUKPB+D#f-HjrL*VEy|Z%3%DRSiO~VU2YAr|7%4HI#ic6s(int4! z&r444KzRo-P3<3x<msy10s}1;lq=UAnA1AWb1Qi>`5XO`u$w zO2p;b)%AgZR7lL`+WQ(wJB>KZwd*&K7T9l(t0Pqu3k7jBBgf?9>+lwQ0G|^Ruflcs z0dBxA2*kl+oQHQ311oVcR$(>PVjZr=dR&hiiHi|pV=HdOHhhQ}*^Rp~j(btY{iqWk zO-$oK;^Sd_1RupG@hM{EQG5oE6E9EVi}(^T^Xw=dwhS?lOMGK|9*)@ij-7hV^%;k? zBX+~TV4b%=O6OVdabjm_YNl(?p^u!%-IYOjplOC`ul3@D&Y%-hyL(S$KHl2nP!efK8algpZn! z$+Zm=i!u_I8}Fnqy~$@Zf$=c*3?cmYBIV(OA(|MJK@3tfZ;QUSqQr|VeS;AO&`Q!E zRATHKY`C==`qECKHDfy#`L2ZyLXGKdsGA z^N;Vn9K{&^-Xom@8Q0#TG03j9M%FfjppGI;Y|LA|G2ixlC(vJN5@N*0JW-5Ngpr?o z1bhT0I|5Vq1VZfof796i|4;U5`s4Qz@DUgX0W6Hhq7gC}I;M}dWq0i%diK)860;lR z(siNCy^bg8UdK~~UB|n(6x8P3_PBmwYG?j~TvCbBzy4>yKX!rTpa1>yKb>dt?yx7v G`TuvJWTKG( delta 132 zcmZn(XmOBWU|?W$DortDU;r^WfEYvza8FDWo2aMAD6%nNH$S7uWFCRO$vXx0CL4(7 zPY#sOpZr6dpD}QiV1!t~Fgc!Q>gIlFc4h#J+8s&& diff --git a/.gitignore b/.gitignore index be41311..064dce3 100644 --- a/.gitignore +++ b/.gitignore @@ -33,7 +33,7 @@ xcuserdata/ # you should judge for yourself, the pros and cons are mentioned at: # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control # -# Pods/ +Pods/ # Carthage # diff --git a/5.2 b/5.2 deleted file mode 100644 index e69de29..0000000 diff --git a/MobileWeather/.DS_Store b/MobileWeather/.DS_Store index cff48c4dabac46fec19677f1eb8a205b7ffae5a5..1d35ec293f1d648ac07334c9f46fbcacca5f4782 100644 GIT binary patch delta 278 zcmZoMXfc=|#>B!ku~2NHo+2aL#(>?7iwl^U7}+N4Gb?S@V=`i_=Vu6JNM$Gi!c2xd zhIEEv20ex(hEgCqg&~I_H7DILI5|JJfB_6x-vTKDI&$+}T#|C~lYlBYmKhcwUY~r( z5w|X1m_@nyDI{ov=_<%TcAmoKMCRL!o7p+|Ie@+fa=tT9<`;3~U}Rum0=a*4gvc6Z E0OVIcJpcdz delta 73 zcmZoMXfc=|#>B)qu~2NHo+2aD#(>?7lMO^zCL6KJZ`NZmV%#jkAcount = 0; - array->maxCount = initialCapacity; - array->elements = malloc(sizeof(BsonElement *) * initialCapacity); - return true; -} - -void bson_array_deinitialize(BsonArray *array) { - size_t i = 0; - for (i = 0; i < array->count; i++) { - BsonElement *element = array->elements[i]; - if (element->type == TYPE_DOCUMENT) { - bson_object_deinitialize((BsonObject *)element->value); - } - else if (element->type == TYPE_ARRAY) { - bson_array_deinitialize((BsonArray *)element->value); - } - free(element->value); - free(element); - } - - free(array->elements); -} - -size_t bson_array_size(BsonArray *array) { - size_t arraySize = ARRAY_OVERHEAD_BYTES; - size_t i = 0; - for (i = 0; i < array->count; i++) { - BsonElement *element = array->elements[i]; - arraySize += array_key_size(i) + ELEMENT_OVERHEAD_BYTES; - if (element->type == TYPE_DOCUMENT) { - arraySize += bson_object_size((BsonObject *)element->value); - } - else if (element->type == TYPE_ARRAY) { - arraySize += bson_array_size((BsonArray *)element->value); - } - else { - arraySize += element->size; - } - } - return arraySize; -} - -uint8_t *bson_array_to_bytes(BsonArray *array) { - size_t arraySize = bson_array_size(array); - uint8_t *bytes = malloc(arraySize); - size_t position = 0; - write_int32_le(bytes, (int32_t)arraySize, &position); - size_t i = 0; - for (i = 0; i < array->count; i++) { - BsonElement *element = array->elements[i]; - - bytes[position++] = element->type; - - uint8_t *keyBytes = index_to_key(i); - memcpy(&bytes[position], keyBytes, digits(i)); - free(keyBytes); - position += digits(i); - - //Null-terminate - bytes[position++] = 0x00; - - switch (element->type) { - case TYPE_DOCUMENT: { - BsonObject *obj = (BsonObject *)element->value; - uint8_t *objBytes = bson_object_to_bytes(obj); - if (objBytes == NULL) { - printf("An error occured while parsing the object with index \"%i\"\n", (int)i); - free(bytes); - return NULL; - } - size_t objSize = bson_object_size(obj); - memcpy(&bytes[position], objBytes, objSize); - free(objBytes); - position += objSize; - break; - } - case TYPE_ARRAY: { - BsonArray *subArray = (BsonArray *)element->value; - uint8_t *subArrayBytes = bson_array_to_bytes(subArray); - if (subArrayBytes == NULL) { - printf("An error occured while parsing the object with index \"%i\"\n", (int)i); - free(bytes); - return NULL; - } - size_t subArraySize = bson_array_size(subArray); - memset(&bytes[position], 0, subArraySize); - memcpy(&bytes[position], subArrayBytes, subArraySize); - free(subArrayBytes); - position += subArraySize; - break; - } - case TYPE_INT32: { - write_int32_le(bytes, *(int32_t *)element->value, &position); - break; - } - case TYPE_INT64: { - write_int64_le(bytes, *(int64_t *)element->value, &position); - break; - } - case TYPE_STRING: { - char *stringVal = (char *)element->value; - //String length is written first - write_int32_le(bytes, (int32_t)(strlen(stringVal) + 1), &position); - - uint8_t *stringBytes = string_to_byte_array(stringVal); - memcpy(&bytes[position], stringBytes, strlen(stringVal)); - free(stringBytes); - position += strlen(stringVal); - - //Null-terminate - bytes[position++] = 0x00; - break; - } - case TYPE_DOUBLE: { - write_double_le(bytes, *(double *)element->value, &position); - break; - } - case TYPE_BOOLEAN: { - bytes[position++] = (uint8_t)(*(bson_boolean *)element->value); - break; - } - default: { - printf("Unrecognized BSON type: %i\n", element->type); - position += sizeof(*element->value); - } - } - } - - bytes[position++] = DOCUMENT_END; - if (position != arraySize) { - printf("Something went horribly wrong. Unexpected size of array in bytes: %i, expected size: %i\n", (int)position, (int)arraySize); - free(bytes); - return NULL; - } - return bytes; -} - -// DEPRECATED: use bson_array_from_bytes_len() instead -BsonArray bson_array_from_bytes(uint8_t *data) { - uint8_t *p = data; - int32_t size = read_int32_le(&p); - - BsonArray array; - bson_array_from_bytes_len(&array, data, size); - return array; -} - -size_t bson_array_from_bytes_len(BsonArray *output, const uint8_t *data, size_t dataSize) { - const uint8_t *current = data; - size_t remainBytes = dataSize; - int32_t size = 0; - bool parseError = false; - size_t ret; - - if (output == NULL || data == NULL || dataSize < SIZE_INT32) { - return 0; - } - size = read_int32_le((uint8_t **)¤t); - remainBytes -= SIZE_INT32; - if (size > dataSize) { - printf("Unexpected array length %i, data is only %i bytes\n", (int)size, (int)dataSize); - return 0; - } - - if (remainBytes < 1) { - return 0; - } - uint8_t type = *current; - current += 1; - remainBytes -= 1; - - BsonArray array; - bson_array_initialize(&array, 10); - - while (type != DOCUMENT_END) { - char *key = NULL; - ret = read_string_len(&key, ¤t, &remainBytes); - if (ret == 0) { - parseError = true; - break; - } - - switch ((element_type)type) { - case TYPE_DOCUMENT: { - BsonObject obj; - ret = bson_object_from_bytes_len(&obj, current, remainBytes); - if (ret > 0) { - bson_array_add_object(&array, &obj); - current += ret; - remainBytes -= ret; - } else { - parseError = true; - } - break; - } - case TYPE_ARRAY: { - BsonArray subArray; - ret = bson_array_from_bytes_len(&subArray, current, remainBytes); - if (ret > 0) { - bson_array_add_array(&array, &subArray); - current += ret; - remainBytes -= ret; - } else { - parseError = true; - } - break; - } - case TYPE_INT32: - if (remainBytes >= SIZE_INT32) { - int32_t value = read_int32_le((uint8_t **)¤t); - bson_array_add_int32(&array, value); - remainBytes -= SIZE_INT32; - } else { - parseError = true; - } - break; - case TYPE_INT64: - if (remainBytes >= SIZE_INT64) { - int64_t value = read_int64_le((uint8_t **)¤t); - bson_array_add_int64(&array, value); - remainBytes -= SIZE_INT64; - } else { - parseError = true; - } - break; - case TYPE_STRING: - // Buffer length is read first - if (remainBytes >= SIZE_INT32) { - int32_t bufferLength = read_int32_le((uint8_t **)¤t); - remainBytes -= SIZE_INT32; - - if (bufferLength <= remainBytes) { - char *stringVal = byte_array_to_bson_string((uint8_t*)current, (size_t)bufferLength - 1); - bson_array_add_string(&array, stringVal); - free(stringVal); - current += bufferLength; - remainBytes -= bufferLength; - } else { - parseError = true; - } - } else { - parseError = true; - } - break; - case TYPE_DOUBLE: - if (remainBytes >= SIZE_DOUBLE) { - double value = read_double_le((uint8_t **)¤t); - bson_array_add_double(&array, value); - remainBytes -= SIZE_DOUBLE; - } else { - parseError = true; - } - break; - case TYPE_BOOLEAN: - if (remainBytes >= 1) { - uint8_t value = *current; - bson_array_add_bool(&array, value); - current += 1; - remainBytes -= 1; - } else { - parseError = true; - } - break; - default: { - printf("Unrecognized BSON type: %i\n", type); - parseError = true; - } - } - free(key); - - if (parseError) { - break; - } - - if (remainBytes >= 1) { - type = *current; - current += 1; - remainBytes -= 1; - } else { - parseError = true; - break; - } - } - - if (parseError) { - bson_array_deinitialize(&array); - return 0; - } - - if (data + size != current) { - printf("Unexpected parsed array size. Expected %i, got %i\n", (int)size, (int)(current - data)); - } - *output = array; - return dataSize - remainBytes; -} - -char *bson_array_to_string(BsonArray *array, char *out) { - //TODO just move the pointer rather than keep a position variable - int position = 0; - position += sprintf(out, "[ "); - size_t i = 0; - for (i = 0; i < array->count; i++) { - BsonElement *element = array->elements[i]; - switch (element->type) { - case TYPE_DOCUMENT: { - char docString[512]; - position += sprintf(&out[position], "%s", bson_object_to_string(bson_array_get_object(array, i), docString)); - break; - } - case TYPE_ARRAY: { - char docString[512]; - position += sprintf(&out[position], "%s", bson_array_to_string(bson_array_get_array(array, i), docString)); - break; - } - case TYPE_INT32: { - position += sprintf(&out[position], "%i", (int)bson_array_get_int32(array, i)); - break; - } - case TYPE_INT64: { - position += sprintf(&out[position], "%li", (long)bson_array_get_int64(array, i)); - break; - } - case TYPE_STRING: { - position += sprintf(&out[position], "\"%s\"", bson_array_get_string(array, i)); - break; - } - case TYPE_DOUBLE: { - position += sprintf(&out[position], "%f", bson_array_get_double(array, i)); - break; - } - case TYPE_BOOLEAN: { - position += sprintf(&out[position], "%s", (bson_array_get_bool(array, i) == BOOLEAN_TRUE) ? "true" : "false"); - break; - } - default: { - printf("Unrecognized BSON type: %i\n", element->type); - position += sprintf(&out[position], "UNKNOWN_TYPE"); - } - } - if (i != (array->count - 1)) { - position += sprintf(&out[position], ", "); - } - } - sprintf(&out[position], " ]"); - - return out; -} - -bool bson_array_resize(BsonArray *array, size_t newSize) { - if (array->count > newSize) { - printf("Attempted to resize an array smaller than the number of elements it contains\n"); - return false; - } - int i = 0; - BsonElement **newArray = malloc(sizeof(BsonElement *) * newSize); - BsonElement **oldArray = array->elements; - for (i = 0; i < array->maxCount; i++) { - newArray[i] = oldArray[i]; - } - free(oldArray); - array->elements = newArray; - array->maxCount = newSize; - return true; -} - -bool bson_array_add_element(BsonArray *array, BsonElement *element, size_t allocSize) { - if (array->count == array->maxCount) { - if (!bson_array_resize(array, array->maxCount * 2)) { - return false; - } - } - BsonElement *allocElement = malloc(sizeof(BsonElement)); - allocElement->type = element->type; - allocElement->size = element->size; - allocElement->value = malloc(allocSize); - memcpy(allocElement->value, element->value, allocSize); - array->elements[array->count] = allocElement; - array->count++; - return true; -} - -/* - @brief Add a new element to the end of a given array - - @param array - The array to be modified - @param type - The type of the element to be added - @param value - The value of the element to be added - @param allocSize - The size, in bytes, to be allocated for the element - @param elementSize - The size, in bytes, of the element when converted to BSON format - - @return - true if the addition was successful, false if not -*/ -bool bson_array_add(BsonArray *array, element_type type, void *value, size_t allocSize, size_t elementSize) { - BsonElement element; - element.type = type; - element.value = value; - element.size = elementSize; - return bson_array_add_element(array, &element, allocSize); -} - -bool bson_array_add_object(BsonArray *array, BsonObject *value) { - return bson_array_add(array, TYPE_DOCUMENT, value, sizeof(BsonObject), 0); -} - -bool bson_array_add_array(BsonArray *array, BsonArray *value) { - return bson_array_add(array, TYPE_ARRAY, value, sizeof(BsonArray), 0); -} - -bool bson_array_add_int32(BsonArray *array, int32_t value) { - return bson_array_add(array, TYPE_INT32, &value, sizeof(int32_t), - SIZE_INT32); -} - -bool bson_array_add_int64(BsonArray *array, int64_t value) { - return bson_array_add(array, TYPE_INT64, &value, sizeof(int64_t), - SIZE_INT64); -} - -bool bson_array_add_string(BsonArray *array, char *value) { - return bson_array_add(array, TYPE_STRING, value, (strlen(value) + 1) * sizeof(char), - strlen(value) + STRING_OVERHEAD_BYTES); -} - -bool bson_array_add_bool(BsonArray *array, bson_boolean value) { - return bson_array_add(array, TYPE_BOOLEAN, &value, sizeof(bson_boolean), - SIZE_BOOLEAN); -} - -bool bson_array_add_double(BsonArray *array, double value) { - return bson_array_add(array, TYPE_DOUBLE, &value, sizeof(double), - SIZE_DOUBLE); -} - -BsonElement *bson_array_get(BsonArray *array, size_t index) { - return (index >= array->count) ? NULL : array->elements[index]; -} - -BsonObject *bson_array_get_object(BsonArray *array, size_t index) { - BsonElement *element = bson_array_get(array, index); - return (element == NULL || element->type != TYPE_DOCUMENT) ? - NULL : (BsonObject *)element->value; -} - -BsonArray *bson_array_get_array(BsonArray *array, size_t index) { - BsonElement *element = bson_array_get(array, index); - return (element == NULL || element->type != TYPE_ARRAY) ? - NULL : (BsonArray *)element->value; -} - -int32_t bson_array_get_int32(BsonArray *array, size_t index) { - BsonElement *element = bson_array_get(array, index); - return (element == NULL || element->type != TYPE_INT32) ? - -1 : *(int32_t *)element->value; -} - -int64_t bson_array_get_int64(BsonArray *array, size_t index) { - BsonElement *element = bson_array_get(array, index); - return (element == NULL || element->type != TYPE_INT64) ? - -1 : *(int64_t *)element->value; -} - -char *bson_array_get_string(BsonArray *array, size_t index) { - BsonElement *element = bson_array_get(array, index); - return (element == NULL || element->type != TYPE_STRING) ? - NULL : (char *)element->value; -} - -bson_boolean bson_array_get_bool(BsonArray *array, size_t index) { - BsonElement *element = bson_array_get(array, index); - return (element == NULL || element->type != TYPE_BOOLEAN) ? - BOOLEAN_INVALID : *(bson_boolean *)element->value; -} - -double bson_array_get_double(BsonArray *array, size_t index) { - BsonElement *element = bson_array_get(array, index); - return (element == NULL || element->type != TYPE_DOUBLE) ? - -1 : *(double *)element->value; -} diff --git a/Pods/BiSON/src/bson_array.h b/Pods/BiSON/src/bson_array.h deleted file mode 100644 index 581447c..0000000 --- a/Pods/BiSON/src/bson_array.h +++ /dev/null @@ -1,245 +0,0 @@ -#ifndef BSON_ARRAY_H -#define BSON_ARRAY_H - -#include "bson_object.h" - -typedef struct BsonElement BsonElement; -typedef struct BsonObject BsonObject; - -typedef enum bson_boolean bson_boolean; -typedef enum element_type element_type; - -//Object representing a BSON array -struct BsonArray { - //Array of BSON elements - BsonElement **elements; - //Number of elements currently in the array - size_t count; - //The current maximum number of elements in the array - size_t maxCount; -}; -typedef struct BsonArray BsonArray; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - @brief Initalize BSON Array - - @param array - The uninitialized BSON Array - @param initialSize - The initial maximum size of the array - - @return - true if the array was initialized successfully, false if not -*/ -bool bson_array_initialize(BsonArray *array, size_t initialCapacity); -/* - @brief Deinitalize BSON Array, free all associated memory, - and recursively clean up all sub-objects - - @param array - The BSON Array to be deinitalized -*/ -void bson_array_deinitialize(BsonArray *array); - -/* - @brief Calculate the size, in bytes, of a given array when converted to a BSON document - - @param obj - The BSON array from which the size is calculated - - @return - The calculated size -*/ -size_t bson_array_size(BsonArray *array); - -/* - @brief Get the BSON represention of an array - - @param array - The array to be converted to BSON - - @return - A byte array containing the BSON representation of the array, - this data must be freed by the caller after use -*/ -uint8_t *bson_array_to_bytes(BsonArray *array); -/* - @brief Parse BSON data into an array - - @param data - The BSON data to be parsed - - @return - The BSON array created from the BSON data - - @note DEPRECATED: use bson_array_from_bytes_len() instead -*/ -BsonArray bson_array_from_bytes(uint8_t *data); - -/* - @brief Parse BSON data into an array - - @param output - Pointer to an uninitialized BsonArray. On success, it is - initialized and stores converted data. - @param data - Byte buffer that contains BSON data to be parsed - @param dataSize - Number of bytes of the data stored in the byte buffer - - @return - On success, a positive number indicating number of bytes consumed - is returned. On error, 0 is returned. -*/ -size_t bson_array_from_bytes_len(BsonArray *output, const uint8_t *data, size_t dataSize); - -/* - @brief Get a JSON string representation of a BSON array - - @param array - The array to be converted to a JSON string - @param out - The output string of the function - - @return - The value of out -*/ -char *bson_array_to_string(BsonArray *array, char *out); - -/* - @brief Add a BSON object to the end of a given array - - @param array - The array to be modified - @param value - The pointer to the BSON object to be added - - @return - true if the addition was successful, false if not -*/ -bool bson_array_add_object(BsonArray *array, BsonObject *value); -/* - @brief Add a BSON array to the end of a given array - - @param array - The array to be modified - @param value - The pointer to the BSON array to be added - - @return - true if the addition was successful, false if not -*/ -bool bson_array_add_array(BsonArray *array, BsonArray *value); -/* - @brief Add a 32-bit integer value to the end of a given array - - @param array - The array to be modified - @param value - The integer value to be added - - @return - true if the addition was successful, false if not -*/ -bool bson_array_add_int32(BsonArray *array, int32_t value); -/* - @brief Add a 64-bit integer value to the end of a given array - - @param array - The array to be modified - @param value - The integer value to be added - - @return - true if the addition was successful, false if not -*/ -bool bson_array_add_int64(BsonArray *array, int64_t value); -/* - @brief Add a string value to the end of a given array - - @param array - The array to be modified - @param value - The string value to be added - - @return - true if the addition was successful, false if not -*/ -bool bson_array_add_string(BsonArray *array, char *value); -/* - @brief Add a boolean value to the end of a given array - - @param array - The array to be modified - @param value - The boolean value to be added - - @return - true if the addition was successful, false if not -*/ -bool bson_array_add_bool(BsonArray *array, bson_boolean value); -/* - @brief Add a floating-point value to the end of a given array - - @param array - The array to be modified - @param value - The floating-point value to be added - - @return - true if the addition was successful, false if not -*/ -bool bson_array_add_double(BsonArray *array, double value); - -/* - @brief Retrieve the object at a specified index - - @param array - The array to be accessed - @param index - The index of the object within the array - - @return - The BSON element at the given index if it exists, - NULL if the index is out of bounds -*/ -BsonElement *bson_array_get(BsonArray *array, size_t index); -/* - @brief Retrieve the BSON object at a specified index in an array - - @param array - The array to be accessed - @param index - The index of the BSON object within the array - - @return - The pointer to the BSON object at the given index if it exists, - NULL if the index is out of bounds or the value is not a BSON object -*/ -BsonObject *bson_array_get_object(BsonArray *array, size_t index); -/* - @brief Retrieve the BSON array at a specified index in an array - - @param array - The array to be accessed - @param index - The index of the BSON array within the array - - @return - The pointer to the BSON array at the given index if it exists, - NULL if the index is out of bounds or the value is not a BSON array -*/ -BsonArray *bson_array_get_array(BsonArray *array, size_t index); -/* - @brief Retrieve the 32-bit integer value at a specified index in an array - - @param array - The array to be accessed - @param index - The index of the integer value within the array - - @return - The integer value at the given index if it exists, - NULL if the index is out of bounds or the value is not a 32-bit integer -*/ -int32_t bson_array_get_int32(BsonArray *array, size_t index); -/* - @brief Retrieve the 64-bit integer value at a specified index in an array - - @param array - The array to be accessed - @param index - The index of the integer value within the array - - @return - The integer value at the given index if it exists, - NULL if the index is out of bounds or the value is not a 64-bit integer -*/ -int64_t bson_array_get_int64(BsonArray *array, size_t index); -/* - @brief Retrieve the string value at a specified index in an array - - @param array - The array to be accessed - @param index - The index of the string value within the array - - @return - The string value at the given index if it exists, - NULL if the index is out of bounds or the value is not a string -*/ -char *bson_array_get_string(BsonArray *array, size_t index); -/* - @brief Retrieve the boolean value at a specified index in an array - - @param array - The array to be accessed - @param index - The index of the string value within the array - - @return - The boolean value at the given index if it exists, - NULL if the index is out of bounds or the value is not a boolean -*/ -bson_boolean bson_array_get_bool(BsonArray *array, size_t index); -/* - @brief Retrieve the floating-point value at a specified index in an array - - @param array - The array to be accessed - @param index - The index of the floating-point value within the array - - @return - The floating-point value at the given index if it exists, - NULL if the index is out of bounds or the value is not a floating-point number -*/ -double bson_array_get_double(BsonArray *array, size_t index); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/Pods/BiSON/src/bson_object.c b/Pods/BiSON/src/bson_object.c deleted file mode 100644 index d1fa21d..0000000 --- a/Pods/BiSON/src/bson_object.c +++ /dev/null @@ -1,500 +0,0 @@ -#include "bson_object.h" -#define DEFAULT_MAP_SIZE 32 - -size_t hash_function(const char* key, size_t maxValue) { - size_t keyLength = strlen(key); - size_t hash = 0; - int i; - for (i = 0; i < keyLength; i++) { - hash += (size_t)key[i]; - hash %= maxValue; - } - return hash; -} - -bool bson_object_initialize(BsonObject *obj, size_t capacity, float loadFactor) { - return emhashmap_initialize(&obj->data, (int)capacity, loadFactor, &hash_function); -} - -bool bson_object_initialize_default(BsonObject *obj) { - return bson_object_initialize(obj, DEFAULT_MAP_SIZE, 0.5f); -} - -void bson_object_deinitialize(BsonObject *obj) { - MapIterator iterator = emhashmap_iterator(&obj->data); - MapEntry *current = emhashmap_iterator_next(&iterator); - while (current != NULL) { - BsonElement *element = (BsonElement *)current->value; - if (element->type == TYPE_DOCUMENT) { - bson_object_deinitialize((BsonObject *)element->value); - } - else if (element->type == TYPE_ARRAY) { - bson_array_deinitialize((BsonArray *)element->value); - } - free(element->value); - free(element); - current = emhashmap_iterator_next(&iterator); - } - - emhashmap_deinitialize(&obj->data); -} - -size_t bson_object_size(BsonObject *obj) { - size_t objSize = OBJECT_OVERHEAD_BYTES; - MapIterator iterator = emhashmap_iterator(&obj->data); - MapEntry *current = emhashmap_iterator_next(&iterator); - while (current != NULL) { - BsonElement *element = (BsonElement *)current->value; - objSize += object_key_size(current->key) + ELEMENT_OVERHEAD_BYTES; - if (element->type == TYPE_DOCUMENT) { - objSize += bson_object_size((BsonObject *)element->value); - } - else if (element->type == TYPE_ARRAY) { - objSize += bson_array_size((BsonArray *)element->value); - } - else { - objSize += element->size; - } - current = emhashmap_iterator_next(&iterator); - } - return objSize; -} - -uint8_t *bson_object_to_bytes(BsonObject *obj) { - //TODO just move the pointer rather than keep a position variable - MapIterator iterator = emhashmap_iterator(&obj->data); - MapEntry *current = emhashmap_iterator_next(&iterator); - size_t objSize = bson_object_size(obj); - uint8_t *bytes = malloc(objSize); - size_t position = 0; - write_int32_le(bytes, (int32_t)objSize, &position); - - while (current != NULL) { - BsonElement *element = (BsonElement *)current->value; - - bytes[position++] = element->type; - - uint8_t *keyBytes = string_to_byte_array(current->key); - memcpy(&bytes[position], keyBytes, strlen(current->key)); - free(keyBytes); - position += strlen(current->key); - - //Null-terminate - bytes[position++] = 0x00; - - switch (element->type) { - case TYPE_DOCUMENT: { - BsonObject *subObject = (BsonObject *)element->value; - uint8_t *subObjectBytes = bson_object_to_bytes(subObject); - if (subObjectBytes == NULL) { - printf("An error occured while parsing the object with key \"%s\"\n", current->key); - free(bytes); - return NULL; - } - size_t subObjectSize = bson_object_size(subObject); - memcpy(&bytes[position], subObjectBytes, subObjectSize); - free(subObjectBytes); - position += subObjectSize; - break; - } - case TYPE_ARRAY: { - BsonArray *array = (BsonArray *)element->value; - uint8_t *arrayBytes = bson_array_to_bytes(array); - if (arrayBytes == NULL) { - printf("An error occured while parsing the object with key \"%s\"\n", current->key); - free(bytes); - return NULL; - } - size_t arraySize = bson_array_size(array); - memset(&bytes[position], 0, arraySize); - memcpy(&bytes[position], arrayBytes, arraySize); - free(arrayBytes); - position += arraySize; - break; - } - case TYPE_INT32: { - write_int32_le(bytes, *(int32_t *)element->value, &position); - break; - } - case TYPE_INT64: { - write_int64_le(bytes, *(int64_t *)element->value, &position); - break; - } - case TYPE_STRING: { - char *stringVal = (char *)element->value; - //String length is written first - write_int32_le(bytes, (int32_t)(strlen(stringVal) + 1), &position); - - uint8_t *stringBytes = string_to_byte_array(stringVal); - memcpy(&bytes[position], stringBytes, strlen(stringVal)); - free(stringBytes); - position += strlen(stringVal); - - //Null-terminate - bytes[position++] = 0x00; - break; - } - case TYPE_DOUBLE: { - write_double_le(bytes, *(double *)element->value, &position); - break; - } - case TYPE_BOOLEAN: { - bytes[position++] = (uint8_t)(*(bson_boolean *)element->value); - break; - } - default: { - printf("Unrecognized BSON type: %i\n", element->type); - position += sizeof(element->value); - } - } - current = emhashmap_iterator_next(&iterator); - } - - bytes[position++] = DOCUMENT_END; - if (position != objSize) { - printf("Something went horribly wrong. Unexpected size of map in bytes: %i, expected size: %i\n", (int)position, (int)objSize); - free(bytes); - return NULL; - } - return bytes; -} - -// DEPRECATED: use bson_object_from_bytes_len() instead -BsonObject bson_object_from_bytes(uint8_t *data) { - uint8_t *p = data; - int32_t size = read_int32_le(&p); - - BsonObject obj; - bson_object_from_bytes_len(&obj, data, size); - return obj; -} - -size_t bson_object_from_bytes_len(BsonObject *output, const uint8_t *data, size_t dataSize) { - const uint8_t *current = data; - size_t remainBytes = dataSize; - int32_t size = 0; - bool parseError = false; - size_t ret; - - if (output == NULL || data == NULL || dataSize < SIZE_INT32) { - return 0; - } - size = read_int32_le((uint8_t **)¤t); - remainBytes -= SIZE_INT32; - if (size > dataSize) { - printf("Unexpected object length %i, data is only %i bytes\n", (int)size, (int)dataSize); - return 0; - } - - if (remainBytes < 1) { - return 0; - } - uint8_t type = *current; - current += 1; - remainBytes -= 1; - - BsonObject obj; - bson_object_initialize_default(&obj); - - while (type != DOCUMENT_END) { - char *key = NULL; - ret = read_string_len(&key, ¤t, &remainBytes); - if (ret == 0) { - parseError = true; - break; - } - - switch ((element_type)type) { - case TYPE_DOCUMENT: { - BsonObject subObject; - ret = bson_object_from_bytes_len(&subObject, current, remainBytes); - if (ret > 0) { - bson_object_put_object(&obj, key, &subObject); - current += ret; - remainBytes -= ret; - } else { - parseError = true; - } - break; - } - case TYPE_ARRAY: { - BsonArray array; - ret = bson_array_from_bytes_len(&array, current, remainBytes); - if (ret > 0) { - bson_object_put_array(&obj, key, &array); - current += ret; - remainBytes -= ret; - } else { - parseError = true; - } - break; - } - case TYPE_INT32: - if (remainBytes >= SIZE_INT32) { - int32_t value = read_int32_le((uint8_t **)¤t); - bson_object_put_int32(&obj, key, value); - remainBytes -= SIZE_INT32; - } else { - parseError = true; - } - break; - case TYPE_INT64: - if (remainBytes >= SIZE_INT64) { - int64_t value = read_int64_le((uint8_t **)¤t); - bson_object_put_int64(&obj, key, value); - remainBytes -= SIZE_INT64; - } else { - parseError = true; - } - break; - case TYPE_STRING: - // Buffer length is read first - if (remainBytes >= SIZE_INT32) { - int32_t bufferLength = read_int32_le((uint8_t **)¤t); - remainBytes -= SIZE_INT32; - - if (bufferLength <= remainBytes) { - char *stringVal = byte_array_to_bson_string((uint8_t*)current, (size_t)bufferLength - 1); - bson_object_put_string(&obj, key, stringVal); - free(stringVal); - current += bufferLength; - remainBytes -= bufferLength; - } else { - parseError = true; - } - } else { - parseError = true; - } - break; - case TYPE_DOUBLE: - if (remainBytes >= SIZE_DOUBLE) { - double value = read_double_le((uint8_t **)¤t); - bson_object_put_double(&obj, key, value); - remainBytes -= SIZE_DOUBLE; - } else { - parseError = true; - } - break; - case TYPE_BOOLEAN: - if (remainBytes >= 1) { - uint8_t value = *current; - bson_object_put_bool(&obj, key, value); - current += 1; - remainBytes -= 1; - } else { - parseError = true; - } - break; - default: { - printf("Unrecognized BSON type: %i\n", type); - parseError = true; - } - } - free(key); - - if (parseError) { - break; - } - - if (remainBytes >= 1) { - type = *current; - current += 1; - remainBytes -= 1; - } else { - parseError = true; - break; - } - } - - if (parseError) { - bson_object_deinitialize(&obj); - return 0; - } - - if (data + size != current) { - printf("Unexpected parsed object size. Expected %i, got %i\n", (int)size, (int)(current - data)); - } - *output = obj; - return dataSize - remainBytes; -} - -char *bson_object_to_string(BsonObject *obj, char *out) { - //TODO just move the pointer rather than keep a position variable - int position = 0; - MapIterator iterator = emhashmap_iterator(&obj->data); - MapEntry *current = emhashmap_iterator_next(&iterator); - position += sprintf(out, "{ "); - while (current != NULL) { - BsonElement *element = (BsonElement *)current->value; - position += sprintf(&out[position], "\"%s\":", current->key); - switch (element->type) { - case TYPE_DOCUMENT: { - char docString[512]; - position += sprintf(&out[position], "%s", bson_object_to_string(bson_object_get_object(obj, current->key), docString)); - break; - } - case TYPE_ARRAY: { - char docString[512]; - position += sprintf(&out[position], "%s", bson_array_to_string(bson_object_get_array(obj, current->key), docString)); - break; - } - case TYPE_INT32: { - position += sprintf(&out[position], "%i", (int)bson_object_get_int32(obj, current->key)); - break; - } - case TYPE_INT64: { - position += sprintf(&out[position], "%li", (long)bson_object_get_int64(obj, current->key)); - break; - } - case TYPE_STRING: { - position += sprintf(&out[position], "\"%s\"", bson_object_get_string(obj, current->key)); - break; - } - case TYPE_DOUBLE: { - position += sprintf(&out[position], "%f", bson_object_get_double(obj, current->key)); - break; - } - case TYPE_BOOLEAN: { - position += sprintf(&out[position], "%s", (bson_object_get_bool(obj, current->key) == BOOLEAN_TRUE) ? "true" : "false"); - break; - } - default: { - printf("Unrecognized BSON type: %i\n", element->type); - position += sprintf(&out[position], "UNKNOWN_TYPE"); - } - } - current = emhashmap_iterator_next(&iterator); - if (current != NULL) { - position += sprintf(&out[position], ", "); - } - } - sprintf(&out[position], " }"); - - return out; -} - -bool bson_object_put_element(BsonObject *obj, const char *key, BsonElement *element, size_t allocSize) { - BsonElement *allocElement = malloc(sizeof(BsonElement)); - allocElement->type = element->type; - allocElement->size = element->size; - allocElement->value = malloc(allocSize); - memcpy(allocElement->value, element->value, allocSize); - BsonElement *existingElement = emhashmap_remove(&obj->data, key); - if (existingElement != NULL) { - if (existingElement->type == TYPE_DOCUMENT) { - bson_object_deinitialize((BsonObject *)existingElement->value); - } - else if (existingElement->type == TYPE_ARRAY) { - bson_array_deinitialize((BsonArray *)existingElement->value); - } - free(existingElement->value); - free(existingElement); - } - return emhashmap_put(&obj->data, key, (void *)allocElement); -} - -bool bson_object_put(BsonObject *obj, const char *key, element_type type, void *value, size_t allocSize, size_t elementSize) { - BsonElement element; - element.type = type; - element.value = value; - element.size = elementSize; - return bson_object_put_element(obj, key, &element, allocSize); -} - -bool bson_object_put_object(BsonObject *obj, const char *key, BsonObject *value) { - return bson_object_put(obj, key, TYPE_DOCUMENT, value, sizeof(BsonObject), 0); -} - -bool bson_object_put_array(BsonObject *obj, const char *key, BsonArray *value) { - return bson_object_put(obj, key, TYPE_ARRAY, value, sizeof(BsonArray), 0); -} - -bool bson_object_put_int32(BsonObject *obj, const char *key, int32_t value) { - return bson_object_put(obj, key, TYPE_INT32, &value, sizeof(int32_t), - SIZE_INT32); -} - -bool bson_object_put_int64(BsonObject *obj, const char *key, int64_t value) { - return bson_object_put(obj, key, TYPE_INT64, &value, sizeof(int64_t), - SIZE_INT64); -} - -bool bson_object_put_string(BsonObject *obj, const char *key, char *value) { - return bson_object_put(obj, key, TYPE_STRING, value, (strlen(value) + 1) * sizeof(char), - strlen(value) + STRING_OVERHEAD_BYTES); -} - -bool bson_object_put_bool(BsonObject *obj, const char *key, bson_boolean value) { - return bson_object_put(obj, key, TYPE_BOOLEAN, &value, sizeof(bson_boolean), - SIZE_BOOLEAN); -} - -bool bson_object_put_double(BsonObject *obj, const char *key, double value) { - return bson_object_put(obj, key, TYPE_DOUBLE, &value, sizeof(double), - SIZE_DOUBLE); -} - -BsonElement *bson_object_get(BsonObject *obj, const char *key) { - MapEntry *entry = emhashmap_get(&obj->data, key); - return (entry == NULL) ? NULL : entry->value; -} - -BsonObject *bson_object_get_object(BsonObject *obj, const char *key) { - BsonElement *element = bson_object_get(obj, key); - return (element == NULL || element->type != TYPE_DOCUMENT) ? - NULL : (BsonObject *)element->value; -} - -BsonArray *bson_object_get_array(BsonObject *obj, const char *key) { - BsonElement *element = bson_object_get(obj, key); - return (element == NULL || element->type != TYPE_ARRAY) ? - NULL : (BsonArray *)element->value; -} - -int32_t bson_object_get_int32(BsonObject *obj, const char *key) { - BsonElement *element = bson_object_get(obj, key); - return (element == NULL || element->type != TYPE_INT32) ? - -1 : *(int32_t *)element->value; -} - -int64_t bson_object_get_int64(BsonObject *obj, const char *key) { - BsonElement *element = bson_object_get(obj, key); - return (element == NULL || element->type != TYPE_INT64) ? - -1 : *(int64_t *)element->value; -} - -char *bson_object_get_string(BsonObject *obj, const char *key) { - BsonElement *element = bson_object_get(obj, key); - return (element == NULL || element->type != TYPE_STRING) ? - NULL : (char *)element->value; -} - -bson_boolean bson_object_get_bool(BsonObject *obj, const char *key) { - BsonElement *element = bson_object_get(obj, key); - return (element == NULL || element->type != TYPE_BOOLEAN) ? - BOOLEAN_INVALID : *(bson_boolean *)element->value; -} - -double bson_object_get_double(BsonObject *obj, const char *key) { - BsonElement *element = bson_object_get(obj, key); - return (element == NULL || element->type != TYPE_DOUBLE) ? - -1 : *(double *)element->value; -} - -MapIterator bson_object_iterator(BsonObject *obj) { - return emhashmap_iterator(&obj->data); -} - -BsonObjectEntry bson_object_iterator_next(MapIterator *iterator) { - MapEntry *entry = emhashmap_iterator_next(iterator); - BsonObjectEntry bsonEntry; - if(entry == NULL) { - bsonEntry.key[0] = 0x00; //Assign empty string - bsonEntry.element = NULL; - } - else { - strncpy(bsonEntry.key, entry->key, 255); - bsonEntry.element = (BsonElement *)entry->value; - } - return bsonEntry; -} diff --git a/Pods/BiSON/src/bson_object.h b/Pods/BiSON/src/bson_object.h deleted file mode 100644 index 4a62528..0000000 --- a/Pods/BiSON/src/bson_object.h +++ /dev/null @@ -1,306 +0,0 @@ -#ifndef BSON_OBJECT_H -#define BSON_OBJECT_H - -#include -#include - -#include "bson_util.h" -#include "bson_array.h" -#include "emhashmap/emhashmap.h" - -typedef struct BsonArray BsonArray; - -typedef enum element_type element_type; -typedef enum bson_boolean bson_boolean; - -struct BsonObject { - //Internal map implementation - HashMap data; -}; -typedef struct BsonObject BsonObject; - -struct BsonElement { - //The value of this element - void *value; - //The data type of this element - element_type type; - //Size of the element in bytes when converted to BSON - //Unused for TYPE_DOCUMENT and TYPE_ARRAY - size_t size; -}; -typedef struct BsonElement BsonElement; - -struct BsonObjectEntry { - char key[255]; - BsonElement *element; -}; -typedef struct BsonObjectEntry BsonObjectEntry; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - @brief Initalize BSON Object - - @param obj - The uninitialized BSON Object - @param size - The maximum capacity of the map used to store object data - @param loadFactor - The load factor of the map used to store object data - - @return - true if the object was initialized successfully, false if not -*/ -bool bson_object_initialize(BsonObject *obj, size_t capacity, float loadFactor); -/* - @brief Initalize BSON object with default map size (64) and load factor (0.5) - - @param obj - The uninitialized BSON Object - - @return - true if the object was initialized successfully, false if not -*/ -bool bson_object_initialize_default(BsonObject *obj); -/* - @brief Deinitalize BSON object, free all associated memory, - and recursively clean up all sub-objects - - @param obj - The BSON object to be deinitalized -*/ -void bson_object_deinitialize(BsonObject *obj); - -/* - @brief Calculate the size, in bytes, of a given object when converted to a BSON document - - @param obj - The BSON object from which the size is calculated - - @return - The calculated size -*/ -size_t bson_object_size(BsonObject *obj); - -/* - @brief Get the BSON represention of an object - - @param obj - The array to be converted to BSON - - @return - A byte array containing the BSON representation of the object, - this data must be freed by the caller after use -*/ -uint8_t *bson_object_to_bytes(BsonObject *obj); -/* - @brief Parse BSON data into an object - - @param data - The BSON data to be parsed - - @return - The BSON object created from the BSON data - - @note DEPRECATED: use bson_object_from_bytes_len() instead -*/ -BsonObject bson_object_from_bytes(uint8_t *data); - -/* - @brief Parse BSON data into an object - - @param output - Pointer to an uninitialized BsonObject. On success, it is - initialized and stores converted data. - @param data - Byte buffer that contains BSON data to be parsed - @param dataSize - Number of bytes of the data stored in the byte buffer - - @return - On success, a positive number indicating number of bytes consumed - is returned. On error, 0 is returned. -*/ -size_t bson_object_from_bytes_len(BsonObject *output, const uint8_t *data, size_t dataSize); - -/* - @brief Get a JSON string representation of a BSON object - - @param obj - The object to be converted to a JSON string - @param out - The output string of the function - - @return - The value of out -*/ -char *bson_object_to_string(BsonObject *obj, char *out); - -/* - @brief Put a new BSON object into a given object - - @param obj - The object to be modified - @param key - The key used to reference the new object - (if it matches an existing key, - the associated value will be overwritten) - @param value - The pointer to the BSON object to be added to the object - - @return - true if the value was set successfully, false if not -*/ -bool bson_object_put_object(BsonObject *obj, const char *key, BsonObject *value); -/* - @brief Put a new BSON array into a given object - - @param obj - The object to be modified - @param key - The key used to reference the new array - (if it matches an existing key, - the associated value will be overwritten) - @param value - The pointer to the BSON array to be added to the object - - @return - true if the value was set successfully, false if not -*/ -bool bson_object_put_array(BsonObject *obj, const char *key, BsonArray *value); -/* - @brief Put a new 32-bit integer value into a given object - - @param obj - The object to be modified - @param key - The key used to reference the new integer value - (if it matches an existing key, - the associated value will be overwritten) - @param value - The integer value to be added to the object - - @return - true if the value was set successfully, false if not -*/ -bool bson_object_put_int32(BsonObject *obj, const char *key, int32_t value); -/* - @brief Put a new 64-bit integer value into a given object - - @param obj - The object to be modified - @param key - The key used to reference the new integer value - (if it matches an existing key, - the associated value will be overwritten) - @param value - The integer value to be added to the object - - @return - true if the value was set successfully, false if not -*/ -bool bson_object_put_int64(BsonObject *obj, const char *key, int64_t value); -/* - @brief Put a new string value into a given object - - @param obj - The object to be modified - @param key - The key used to reference the new string value - (if it matches an existing key, - the associated value will be overwritten) - @param value - The string value to be added to the object - - @return - true if the value was set successfully, false if not -*/ -bool bson_object_put_string(BsonObject *obj, const char *key, char *value); -/* - @brief Put a new boolean value into a given object - - @param obj - The object to be modified - @param key - The key used to reference the new boolean value - (if it matches an existing key, - the associated value will be overwritten) - @param value - The boolean value to be added to the object - - @return - true if the value was set successfully, false if not -*/ -bool bson_object_put_bool(BsonObject *obj, const char *key, bson_boolean value); -/* - @brief Put a new floating-point value into a given object - - @param obj - The object to be modified - @param key - The key used to reference the new floating-point value - (if it matches an existing key, - the associated value will be overwritten) - @param value - The floating-point value to be added to the object - - @return - true if the value was set successfully, false if not -*/ -bool bson_object_put_double(BsonObject *obj, const char *key, double value); - -/* - @brief Put a new element into a given object - - @param obj - The object to be modified - @param key - The key used to reference the new element - @param type - The type of the element to be added - @param value - The value of the element to be added - @param allocSize - The size, in bytes, to be allocated for the element - @param elementSize - The size, in bytes, of the element when converted to BSON format - - @return - true if the addition was successful, false if not -*/ -BsonElement *bson_object_get(BsonObject *obj, const char *key); -/* - @brief Retrieve the BSON object to which the specified key is mapped in an object - - @param obj - The object to be accessed - @param key - The key associated with the object to be retrieved - - @return - The pointer to the BSON object mapped to the given key if it exists, NULL otherwise -*/ -BsonObject *bson_object_get_object(BsonObject *obj, const char *key); -/* - @brief Retrieve the BSON array to which the specified key is mapped in an object - - @param obj - The object to be accessed - @param key - The key associated with the array to be retrieved - - @return - The pointer to the BSON array mapped to the given key if it exists, NULL otherwise -*/ -BsonArray *bson_object_get_array(BsonObject *obj, const char *key); -/* - @brief Retrieve the 32-bit integer value to which the specified key is mapped in an object - - @param obj - The object to be accessed - @param key - The key associated with the integer value to be retrieved - - @return - The 32-bit integer value mapped to the given key if it exists, NULL otherwise -*/ -int32_t bson_object_get_int32(BsonObject *obj, const char *key); -/* - @brief Retrieve the 64-bit integer value to which the specified key is mapped in an object - - @param obj - The object to be accessed - @param key - The key associated with the integer value to be retrieved - - @return - The 64-bit integer value mapped to the given key if it exists, NULL otherwise -*/ -int64_t bson_object_get_int64(BsonObject *obj, const char *key); -/* - @brief Retrieve the string value to which the specified key is mapped in an object - - @param obj - The object to be accessed - @param key - The key associated with the string value to be retrieved - - @return - The string value mapped to the given key if it exists, NULL otherwise -*/ -char *bson_object_get_string(BsonObject *obj, const char *key); -/* - @brief Retrieve the boolean value to which the specified key is mapped in an object - - @param obj - The object to be accessed - @param key - The key associated with the boolean value to be retrieved - - @return - The boolean value mapped to the given key if it exists, NULL otherwise -*/ -bson_boolean bson_object_get_bool(BsonObject *obj, const char *key); -/* - @brief Retrieve the floating-point value to which the specified key is mapped in an object - - @param obj - The object to be accessed - @param key - The key associated with the floating-point value to be retrieved - - @return - The floating-point value mapped to the given key if it exists, NULL otherwise -*/ -double bson_object_get_double(BsonObject *obj, const char *key); - -/* - @brief Get an iterator for a given BSON object - - @param obj - The object from which the iterator is created - - @return - The iterator -*/ -MapIterator bson_object_iterator(BsonObject *obj); -/* - @brief Get the next value from an object iterator - - @param iterator - The iterator to be advanced - - @return - The next BSON object entry in the object if it exists, - an entry with a NULL element if the iterator has moved past the end - of the entry list -*/ -BsonObjectEntry bson_object_iterator_next(MapIterator *iterator); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/Pods/BiSON/src/bson_util.c b/Pods/BiSON/src/bson_util.c deleted file mode 100644 index 6734b29..0000000 --- a/Pods/BiSON/src/bson_util.c +++ /dev/null @@ -1,157 +0,0 @@ -#include "bson_util.h" - -void write_int32_le(uint8_t *bytes, int32_t value, size_t *position) { - int i = 0; - for (i = 0; i < SIZE_INT32; i++) { - bytes[(*position)++] = (uint8_t)value & 0x000000FF; - value >>= 8; - } -} - -void write_int64_le(uint8_t *bytes, int64_t value, size_t *position) { - int i = 0; - for (i = 0; i < SIZE_INT64; i++) { - bytes[(*position)++] = (uint8_t)value & 0x000000FFull; - value >>= 8; - } -} - -void write_double_le(uint8_t *bytes, double value, size_t *position) { - union doubleUnion_t { - double value; - uint64_t intValue; - }; - union doubleUnion_t unionVal; - unionVal.value = value; - int i = 0; - for (i = 0; i < SIZE_DOUBLE; i++) { - bytes[(*position)++] = (uint8_t)unionVal.intValue & 0x000000FFull; - unionVal.intValue >>= 8; - } -} - -int32_t read_int32_le(uint8_t **bytes) { - int32_t value = 0; - int i = 0; - for (i = SIZE_INT32 - 1; i >= 0; i--) { - value <<= 8; - value += (*bytes)[i]; - } - (*bytes) += SIZE_INT32; - return value; -} - -int64_t read_int64_le(uint8_t **bytes) { - int64_t value = 0; - int i = 0; - for (i = SIZE_INT64 - 1; i >= 0; i--) { - value <<= 8; - value += (*bytes)[i]; - } - (*bytes) += SIZE_INT64; - return value; -} - -double read_double_le(uint8_t **bytes) { - union doubleUnion_t { - double value; - uint64_t intValue; - }; - union doubleUnion_t unionVal; - unionVal.intValue = 0; - int i = 0; - for (i = SIZE_DOUBLE - 1; i >= 0; i--) { - unionVal.intValue <<= 8; - unionVal.intValue += (*bytes)[i]; - } - (*bytes) += SIZE_DOUBLE; - return unionVal.value; -} - -size_t read_string_len(char **output, const uint8_t **data, size_t *dataSize) { - size_t i = 0; - for (i = 0; i < *dataSize; i++) { - if ((*data)[i] == 0x00) { - break; - } - } - if (i == *dataSize) { - // '\0' is not found - return 0; - } - - *output = byte_array_to_bson_string((uint8_t *)*data, i); - - // add 1 since we also consumed '\0' at the end - size_t bytesRead = i + 1; - (*data) += bytesRead; - *dataSize -= bytesRead; - return bytesRead; -} - -uint8_t *string_to_byte_array(char *stringVal) { - size_t length = strlen(stringVal); - uint8_t *bytes = malloc(length + 1); - int i = 0; - for (i = 0; i < length; i++) { - bytes[i] = (uint8_t)stringVal[i]; - } - bytes[length] = 0x00; - return bytes; -} - -size_t c_string_length(uint8_t *value) { - size_t length = 0; - while (value[length] != 0x00) { - length++; - } - return length; -} - -char *byte_array_to_string(uint8_t *bytes) { - size_t length = c_string_length(bytes); - return byte_array_to_bson_string(bytes, length); -} - -char *byte_array_to_bson_string(uint8_t *bytes, size_t length) { - char *stringVal = malloc(sizeof(char) * (length + 1)); - - int i = 0; - for (i = 0; i < length; i++) { - stringVal[i] = (char)(bytes[i] & 0xFF); - } - stringVal[length] = 0x00; - return stringVal; -} - -uint8_t *index_to_key(size_t index) { - size_t length = digits(index); - uint8_t *bytes = malloc(length); - size_t modValue = index; - int i = 0; - for (i = (int)length - 1; i >= 0; i--) { - //Convert digit to UTF-8 - bytes[i] = 0x30 + (modValue % 10); - modValue /= 10; - } - return bytes; -} - -size_t object_key_size(char *key) { - return strlen(key) + 1; -} - -size_t array_key_size(size_t index) { - //One byte for each decimal digit in index plus null character - return digits(index) + 1; -} - -size_t digits(size_t value) { - size_t modValue = value; - size_t numDigits = 1; - while (modValue >= 10) { - numDigits++; - modValue /= 10; - } - return numDigits; -} diff --git a/Pods/BiSON/src/bson_util.h b/Pods/BiSON/src/bson_util.h deleted file mode 100644 index 012898b..0000000 --- a/Pods/BiSON/src/bson_util.h +++ /dev/null @@ -1,201 +0,0 @@ -#ifndef BSON_UTIL_H -#define BSON_UTIL_H - -#include -#include -#include -#include - -//4 bytes for length, one for ending null character -#define OBJECT_OVERHEAD_BYTES 5 -//Same as object -#define ARRAY_OVERHEAD_BYTES 5 -//1 byte for element type -#define ELEMENT_OVERHEAD_BYTES 1 -//4 bytes for length, one for ending null character -#define STRING_OVERHEAD_BYTES 5 - -//Sizes in bytes of each primitive type, as defined by the BSON spec -#define SIZE_INT32 4 -#define SIZE_INT64 8 -#define SIZE_DOUBLE 8 -#define SIZE_BOOLEAN 1 - -//Last byte in a BSON document -#define DOCUMENT_END 0x00 - -//Byte which defines the type of a value as defined in the BSON spec -enum element_type { - TYPE_DOUBLE = 0x01, - TYPE_STRING = 0x02, - TYPE_DOCUMENT = 0x03, - TYPE_ARRAY = 0x04, - TYPE_BINARY = 0x05, //unused - TYPE_UNDEFINED = 0x06, //deprecated - TYPE_OBJECT_ID = 0x07, //unused - TYPE_BOOLEAN = 0x08, - TYPE_DATE_TIME = 0x09, //unused - TYPE_NULL = 0x0A, //unused - TYPE_REGEX = 0x0B, //unused - TYPE_DB_POINTER = 0x0C, //deprecated - TYPE_JS_CODE = 0x0D, //unused - TYPE_SYMBOL = 0x0E, //deprecated - TYPE_JS_CODE_WITH_SCOPE = 0x0F, //unused - TYPE_INT32 = 0x10, - TYPE_TIMESTAMP = 0x11, //unused - TYPE_INT64 = 0x12, - TYPE_DEC128 = 0x13, //unused - TYPE_MIN_KEY = 0xFF, //unused - TYPE_MAX_KEY = 0x7F //unused -}; -typedef enum element_type element_type; - -//Definition of each boolean value according to the BSON spec -enum bson_boolean { - BOOLEAN_INVALID = -1, - BOOLEAN_FALSE = 0x00, - BOOLEAN_TRUE = 0x01 -}; -typedef enum bson_boolean bson_boolean; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - @brief Write a little endian 32-bit integer value to a given buffer - - @param bytes - The byte buffer to be written to - @param value - The integer value to be written to the buffer - @param position - Pointer to the current position in the buffer, will be advanced past the written value -*/ -void write_int32_le(uint8_t *bytes, int32_t value, size_t *position); -/* - @brief Write a little endian 64-bit integer value to a given buffer - - @param bytes - The byte buffer to be written to - @param value - The integer value to be written to the buffer - @param position - Pointer to the current position in the buffer, will be advanced past the written value -*/ -void write_int64_le(uint8_t *bytes, int64_t value, size_t *position); -/* - @brief Write a little endian 64-bit floating-point value to a given buffer - - @param bytes - The byte buffer to be written to - @param value - The integer value to be written to the buffer - @param position - Pointer to the current position in the buffer, will be advanced past the written value -*/ -void write_double_le(uint8_t *bytes, double value, size_t *position); - -/* - @brief Read a little endian 32-bit integer value from a given buffer - - @param bytes - Pointer to the byte buffer from which to read, - this value will be advanced past the value that was read - - @return - The value that was read from the buffer -*/ -int32_t read_int32_le(uint8_t **bytes); -/* - @brief Read a little endian 64-bit integer value from a given buffer - - @param bytes - Pointer to the byte buffer from which to read, - this value will be advanced past the value that was read - - @return - The value that was read from the buffer -*/ -int64_t read_int64_le(uint8_t **bytes); -/* - @brief Read a little endian 64-bit floating point value from a given buffer - - @param bytes - Pointer to the byte buffer from which to read, - this value will be advanced past the value that was read - - @return - The value that was read from the buffer -*/ -double read_double_le(uint8_t **bytes); - -/* - @brief Read a string from given buffer and return number of bytes read. - Update "data" and "dataSize" parameters on success. - - @param output - Pointer to a char* value. On success, the value is updated to - point to a malloc()-ed buffer that stores the output. - Caller must call free() to release the buffer after use. - @param data - Pointer to the byte buffer from which to read. On success, this - value will be advanced past the value that was read. - @param dataSize - Pointer to a value that indicates the size of data in the - byte buffer. On success, this value will be decreased to - indicate the remaining data size in the buffer. - - @return - On success, a positive number of bytes read (including last '\0') - is returned. On failure, 0 is returned. -*/ -size_t read_string_len(char **output, const uint8_t **data, size_t *dataSize); - -/* - @brief Convert the give UTF-8 string into a byte array - - @param stringVal - the string value to be converted - - @return - The byte array representation of the string, must be freed by the caller after use -*/ -uint8_t *string_to_byte_array(char *stringVal); -/* - @brief Convert the given byte array to a UTF-8 string - - @param bytes - The byte array to be converted - - @return The converted string -*/ -char *byte_array_to_string(uint8_t *bytes); -/* - @brief Convert the given byte array to a UTF-8 BSON string - - @param bytes - The byte array to be converted - @param length - The length of the array to be converted - - @return The converted string (may include null characters) -*/ -char *byte_array_to_bson_string(uint8_t *bytes, size_t length); - -/* - @brief Convert the given a array index into a BSON key - - @param index - The index to be converted - - @return - A byte array containing the BSON key representation of index, must be freed by the caller after use -*/ -uint8_t *index_to_key(size_t index); - -/* - @brief Calculate the size, in bytes, of a BSON object key - - @param key - The object key used for calculations - - @return - The size of the BSON object key, in bytes -*/ -size_t object_key_size(char *key); -/* - @brief Calculate the size, in bytes, of a BSON array key - - @param index - The array key (index) used for calculations - - @return - The size of the BSON array key, in bytes -*/ -size_t array_key_size(size_t index); - -/* - @brief Calculate the number of decimal digits in a given integer value - - @param value - The value on which calculations are done - - @return The number of decimal digits in value -*/ -size_t digits(size_t value); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/Pods/BiSON/src/emhashmap/LICENSE b/Pods/BiSON/src/emhashmap/LICENSE deleted file mode 100755 index 6108def..0000000 --- a/Pods/BiSON/src/emhashmap/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2013, Ford Motor Company -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Pods/BiSON/src/emhashmap/emhashmap.c b/Pods/BiSON/src/emhashmap/emhashmap.c deleted file mode 100755 index 5c9a55d..0000000 --- a/Pods/BiSON/src/emhashmap/emhashmap.c +++ /dev/null @@ -1,156 +0,0 @@ -#include "emhashmap.h" - -#include -#include -#include -#include -#include - -static MapBucketList* find_bucket(HashMap* map, const char* key) { - MapBucketList* bucket = NULL; - - if(map != NULL && map->buckets != NULL) { - bucket = &map->buckets[(*map->hash)(key, (size_t)map->bucket_count)]; - } - return bucket; -} - -void emhashmap_deinitialize(HashMap* map) { - if(map->entries != NULL) { - free(map->entries); - map->entries = NULL; - } - - if(map->buckets != NULL) { - free(map->buckets); - map->buckets = NULL; - } -} - -bool emhashmap_initialize(HashMap* map, int capacity, float load_factor, size_t (*hash_function)(const char*, size_t)) { - map->bucket_count = ((int)(capacity / load_factor) + 1); - map->capacity = capacity; - map->entries = (MapEntry*) malloc(sizeof(MapEntry) * (uint32_t)map->capacity); - memset(map->entries, 0, sizeof(MapEntry) * (uint32_t)map->capacity); - map->buckets = (MapBucketList*) malloc(sizeof(MapBucketList) * (uint32_t)map->bucket_count); - memset(map->buckets, 0, sizeof(MapBucketList) * (uint32_t)map->bucket_count); - map->hash = hash_function; - int i; - for(i = 0; i < map->bucket_count; i++) { - LIST_INIT(&map->buckets[i]); - } - - LIST_INIT(&map->free_list); - for(i = 0; i < map->capacity; i++) { - LIST_INSERT_HEAD(&map->free_list, &map->entries[i], entries); - } - return map->buckets != NULL; -} - -MapEntry* emhashmap_get(HashMap* map, const char* key) { - MapBucketList* bucket = find_bucket(map, key); - - MapEntry* entry; - LIST_FOREACH(entry, bucket, entries) { - if(strcmp(entry->key, key) == 0) { - return entry; - } - } - return NULL; -} - -bool emhashmap_contains(HashMap* map, const char* key) { - return emhashmap_get(map, key) != NULL; -} - -bool emhashmap_put(HashMap* map, const char* key, void* value) { - MapBucketList* bucket = find_bucket(map, key); - - MapEntry* entry, *matching_entry = NULL; - LIST_FOREACH(entry, bucket, entries) { - if(strcmp(entry->key, key) == 0) { - matching_entry = entry; - } - } - - bool result = true; - if(matching_entry != NULL) { - matching_entry->value = value; - } else { - MapEntry* new_entry = LIST_FIRST(&map->free_list); - if(new_entry == NULL) { - result = false; - } else { - strncpy(new_entry->key, key, 255); - new_entry->value = value; - LIST_REMOVE(new_entry, entries); - LIST_INSERT_HEAD(bucket, new_entry, entries); - } - } - return result; -} - -void* emhashmap_remove(HashMap* map, const char* key) { - MapBucketList* bucket = find_bucket(map, key); - - MapEntry* entry, *matching_entry = NULL; - LIST_FOREACH(entry, bucket, entries) { - if(strcmp(entry->key, key) == 0) { - matching_entry = entry; - } - } - - void* value = NULL; - if(matching_entry != NULL) { - value = matching_entry->value; - LIST_REMOVE(matching_entry, entries); - } - return value; -} - -int emhashmap_size(HashMap* map) { - int size = 0; - int i; - for(i = 0; i < map->bucket_count; i++) { - MapEntry* entry = NULL; - LIST_FOREACH(entry, &map->buckets[i], entries) { - ++size; - } - } - return size; -} - -bool emhashmap_is_empty(HashMap* map) { - return emhashmap_size(map) == 0; -} - -float emhashmap_load_factor(HashMap* map) { - return emhashmap_size(map) / map->capacity; -} - -MapIterator emhashmap_iterator(HashMap* map) { - MapIterator iterator; - iterator.current_bucket = 0; - iterator.current_entry = NULL; - iterator.map = map; - return iterator; -} - -MapEntry* emhashmap_iterator_next(MapIterator* iterator) { - if(iterator != NULL) { - if(iterator->current_entry != NULL) { - iterator->current_entry = LIST_NEXT(iterator->current_entry, entries); - } - - if(iterator->current_entry == NULL) { - while (iterator->current_entry == NULL && - iterator->current_bucket < iterator->map->bucket_count) { - iterator->current_entry = LIST_FIRST(&iterator->map->buckets[iterator->current_bucket++]); - } - } - return iterator->current_entry; - } - else { - return NULL; - } -} diff --git a/Pods/BiSON/src/emhashmap/emhashmap.h b/Pods/BiSON/src/emhashmap/emhashmap.h deleted file mode 100755 index 7d7f287..0000000 --- a/Pods/BiSON/src/emhashmap/emhashmap.h +++ /dev/null @@ -1,144 +0,0 @@ -#ifndef _EMHASHMAP_H_ -#define _EMHASHMAP_H_ - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Public: An entry in the map. - * - * key - the entry key, currently supports only integers. - * value - a pointer to the value. this must be allocated with malloc or - * be in global scope, and the map entry does not take ownership of its - * memory. - */ -struct MapEntry { - char key[255]; - void* value; - LIST_ENTRY(MapEntry) entries; -}; -typedef struct MapEntry MapEntry; - -LIST_HEAD(MapBucketList, MapEntry); -typedef struct MapBucketList MapBucketList; - -/* Public: A struct encapsulating a map's state. All of the fields are private - * - use the emhashmap_ functions to interact with the map. - * - * bucket_count - The fixed count of buckets for elements in the map. - * capacity - The total, fixed capacity of the map. - * buckets - An array of MapBucketList lists, each a bucket in the map. - * entries - An array of all entry slots, to be used in each bucket. - * free_list - An array of all entries when not actively in a bucket. - */ -struct HashMap { - int bucket_count; - int capacity; - MapBucketList* buckets; - MapEntry* entries; - MapBucketList free_list; - size_t (*hash)(const char*, size_t); -}; -typedef struct HashMap HashMap; - -struct MapIterator { - HashMap* map; - int current_bucket; - MapEntry* current_entry; -}; -typedef struct MapIterator MapIterator; - -/* Public: Initialize a map with the given capacity and load factor (determines - * the number of buckets). - * - * This allocates memory for the buckets and entries, so make sure to call - * emhashmap_destroy(HashMap*) after done with this map. - * - * map - a pointer to the map to initialize. It must already be allocated on the - * stack or heap. - * capacity - the initial capacity for the map. - * load_factor - The desired load factor when the map is at capacity. - * - * Returns true if the map was initialized, successfully, false if space could - * not be allocated for the buckets or entries. - */ -bool emhashmap_initialize(HashMap* map, int capacity, float load_factor, size_t (*hash_function)(const char*, size_t)); - -/* Public: De-initialize a map, freeing memory for the buckets and entries. - * - * This will *not* free the memory associated with any values stored in the map - * - only the buckets and map entry objects. - * - * map - a pointer to the map to deinitialize. It must already be allocated on - * the stack or heap. - */ -void emhashmap_deinitialize(HashMap* map); - -/* Public: Retrive the entry for a given key from the map. - * - * map - the map to retrive the value. - * key - the key for this value. - * - * Returns the MapEntry if found, otherwise NULL. - */ -MapEntry* emhashmap_get(HashMap* map, const char* key); - -/* Public: Check if the given key is in the map. - * - * map - the map to query. - * key - the key to check for membership. - * - * Returns true if the key is in the map. - */ -bool emhashmap_contains(HashMap* map, const char* key); - -/* Public: Put the value in the map with the given key. - * - * If the key already exists in the map, its value will be overridden (so make - * sure you've freed the memory associated with the existing value). - * - * Returns true if there was space in the map and the key-value pair was added - * successfully. Returns false if the map is full. - */ -bool emhashmap_put(HashMap* map, const char* key, void* value); - -/* Public: Remove a value with the given key from the map. - * - * map - the map to query. - * key - the key to remove. - * - * Returns the value pointer if found in the map and removed - the map user is - * responsible for freeing any memory associated with that pointer. - * Returns NULL if the key was not in the map. - */ -void* emhashmap_remove(HashMap* map, const char* key); - -/* Public: Get the number of keys in the map. - * - * map - the map to query. - * - * Returns the total number of keys in the map. - */ -int emhashmap_size(HashMap* map); - -/* Public: Check if a map is empty. - * - * map - the map to query. - * - * Returns true if there are no entries in the map. - */ -bool emhashmap_is_empty(HashMap* map); - -MapIterator emhashmap_iterator(HashMap* map); - -MapEntry* emhashmap_iterator_next(MapIterator* iterator); - -#ifdef __cplusplus -} -#endif - -#endif // _EMHASHMAP_H_ diff --git a/Pods/Local Podspecs/SmartDeviceLink.podspec.json b/Pods/Local Podspecs/SmartDeviceLink.podspec.json deleted file mode 100644 index 8d40311..0000000 --- a/Pods/Local Podspecs/SmartDeviceLink.podspec.json +++ /dev/null @@ -1,486 +0,0 @@ -{ - "name": "SmartDeviceLink", - "version": "6.6.0", - "summary": "Connect your app with cars!", - "homepage": "https://github.com/smartdevicelink/SmartDeviceLink-iOS", - "license": { - "type": "New BSD", - "file": "LICENSE" - }, - "authors": { - "SmartDeviceLink Team": "developer@smartdevicelink.com" - }, - "platforms": { - "ios": "8.0" - }, - "dependencies": { - "BiSON": [ - "~> 1.2.0" - ] - }, - "source": { - "git": "https://github.com/smartdevicelink/sdl_ios.git", - "tag": "6.6.0" - }, - "requires_arc": true, - "swift_versions": "5.1", - "default_subspecs": "Default", - "subspecs": [ - { - "name": "Default", - "source_files": "SmartDeviceLink/*.{h,m}", - "resource_bundles": { - "SmartDeviceLink": [ - "SmartDeviceLink/Assets/**/*" - ] - }, - "public_header_files": [ - "SmartDeviceLink/NSNumber+NumberType.h", - "SmartDeviceLink/SDLAddCommand.h", - "SmartDeviceLink/SDLAddCommandResponse.h", - "SmartDeviceLink/SDLAddSubMenu.h", - "SmartDeviceLink/SDLAddSubMenuResponse.h", - "SmartDeviceLink/SDLAirbagStatus.h", - "SmartDeviceLink/SDLAlert.h", - "SmartDeviceLink/SDLAlertManeuver.h", - "SmartDeviceLink/SDLAlertManeuverResponse.h", - "SmartDeviceLink/SDLAlertResponse.h", - "SmartDeviceLink/SDLAppServiceCapability.h", - "SmartDeviceLink/SDLAppServiceData.h", - "SmartDeviceLink/SDLAppServiceManifest.h", - "SmartDeviceLink/SDLAppServiceRecord.h", - "SmartDeviceLink/SDLAppServicesCapabilities.h", - "SmartDeviceLink/SDLAppServiceType.h", - "SmartDeviceLink/SDLButtonPressResponse.h", - "SmartDeviceLink/SDLAmbientLightStatus.h", - "SmartDeviceLink/SDLAppHMIType.h", - "SmartDeviceLink/SDLAppInfo.h", - "SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h", - "SmartDeviceLink/SDLArtwork.h", - "SmartDeviceLink/SDLAudioControlData.h", - "SmartDeviceLink/SDLAudioControlCapabilities.h", - "SmartDeviceLink/SDLAudioPassThruCapabilities.h", - "SmartDeviceLink/SDLAudioFile.h", - "SmartDeviceLink/SDLAudioStreamingState.h", - "SmartDeviceLink/SDLAudioStreamingIndicator.h", - "SmartDeviceLink/SDLAudioStreamManager.h", - "SmartDeviceLink/SDLAudioStreamManagerDelegate.h", - "SmartDeviceLink/SDLStreamingAudioManagerType.h", - "SmartDeviceLink/SDLAudioType.h", - "SmartDeviceLink/SDLBeltStatus.h", - "SmartDeviceLink/SDLBitsPerSample.h", - "SmartDeviceLink/SDLBodyInformation.h", - "SmartDeviceLink/SDLButtonCapabilities.h", - "SmartDeviceLink/SDLButtonEventMode.h", - "SmartDeviceLink/SDLButtonName.h", - "SmartDeviceLink/SDLButtonPress.h", - "SmartDeviceLink/SDLButtonPressMode.h", - "SmartDeviceLink/SDLCancelInteraction.h", - "SmartDeviceLink/SDLCancelInteractionResponse.h", - "SmartDeviceLink/SDLCarModeStatus.h", - "SmartDeviceLink/SDLCarWindowViewController.h", - "SmartDeviceLink/SDLChangeRegistration.h", - "SmartDeviceLink/SDLChangeRegistrationResponse.h", - "SmartDeviceLink/SDLCharacterSet.h", - "SmartDeviceLink/SDLChoice.h", - "SmartDeviceLink/SDLChoiceCell.h", - "SmartDeviceLink/SDLChoiceSet.h", - "SmartDeviceLink/SDLChoiceSetDelegate.h", - "SmartDeviceLink/SDLClimateControlCapabilities.h", - "SmartDeviceLink/SDLClimateControlData.h", - "SmartDeviceLink/SDLCloseApplication.h", - "SmartDeviceLink/SDLCloseApplicationResponse.h", - "SmartDeviceLink/SDLCloudAppProperties.h", - "SmartDeviceLink/SDLClusterModeStatus.h", - "SmartDeviceLink/SDLCompassDirection.h", - "SmartDeviceLink/SDLComponentVolumeStatus.h", - "SmartDeviceLink/SDLConfiguration.h", - "SmartDeviceLink/SDLCreateInteractionChoiceSet.h", - "SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h", - "SmartDeviceLink/SDLCreateWindow.h", - "SmartDeviceLink/SDLCreateWindowResponse.h", - "SmartDeviceLink/SDLDateTime.h", - "SmartDeviceLink/SDLDefrostZone.h", - "SmartDeviceLink/SDLDeleteCommand.h", - "SmartDeviceLink/SDLDeleteCommandResponse.h", - "SmartDeviceLink/SDLDeleteFile.h", - "SmartDeviceLink/SDLDeleteFileResponse.h", - "SmartDeviceLink/SDLDeleteInteractionChoiceSet.h", - "SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h", - "SmartDeviceLink/SDLDeleteSubMenu.h", - "SmartDeviceLink/SDLDeleteSubMenuResponse.h", - "SmartDeviceLink/SDLDeleteWindow.h", - "SmartDeviceLink/SDLDeleteWindowResponse.h", - "SmartDeviceLink/SDLDeliveryMode.h", - "SmartDeviceLink/SDLDeviceInfo.h", - "SmartDeviceLink/SDLDeviceLevelStatus.h", - "SmartDeviceLink/SDLDeviceStatus.h", - "SmartDeviceLink/SDLDiagnosticMessage.h", - "SmartDeviceLink/SDLDiagnosticMessageResponse.h", - "SmartDeviceLink/SDLDialNumber.h", - "SmartDeviceLink/SDLDialNumberResponse.h", - "SmartDeviceLink/SDLDIDResult.h", - "SmartDeviceLink/SDLDimension.h", - "SmartDeviceLink/SDLDirection.h", - "SmartDeviceLink/SDLDisplayCapability.h", - "SmartDeviceLink/SDLDisplayCapabilities.h", - "SmartDeviceLink/SDLDisplayMode.h", - "SmartDeviceLink/SDLDisplayType.h", - "SmartDeviceLink/SDLDistanceUnit.h", - "SmartDeviceLink/SDLDriverDistractionState.h", - "SmartDeviceLink/SDLECallConfirmationStatus.h", - "SmartDeviceLink/SDLECallInfo.h", - "SmartDeviceLink/SDLElectronicParkBrakeStatus.h", - "SmartDeviceLink/SDLEncryptionConfiguration.h", - "SmartDeviceLink/SDLEmergencyEvent.h", - "SmartDeviceLink/SDLEmergencyEventType.h", - "SmartDeviceLink/SDLEncodedSyncPData.h", - "SmartDeviceLink/SDLEncodedSyncPDataResponse.h", - "SmartDeviceLink/SDLEndAudioPassThru.h", - "SmartDeviceLink/SDLEndAudioPassThruResponse.h", - "SmartDeviceLink/SDLEqualizerSettings.h", - "SmartDeviceLink/SDLEnum.h", - "SmartDeviceLink/SDLErrorConstants.h", - "SmartDeviceLink/SDLFile.h", - "SmartDeviceLink/SDLFileManager.h", - "SmartDeviceLink/SDLFileManagerConfiguration.h", - "SmartDeviceLink/SDLFileManagerConstants.h", - "SmartDeviceLink/SDLFileType.h", - "SmartDeviceLink/SDLFuelCutoffStatus.h", - "SmartDeviceLink/SDLFuelRange.h", - "SmartDeviceLink/SDLFuelType.h", - "SmartDeviceLink/SDLFunctionID.h", - "SmartDeviceLink/SDLGenericResponse.h", - "SmartDeviceLink/SDLGetAppServiceData.h", - "SmartDeviceLink/SDLGetAppServiceDataResponse.h", - "SmartDeviceLink/SDLGetDTCs.h", - "SmartDeviceLink/SDLGetCloudAppProperties.h", - "SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h", - "SmartDeviceLink/SDLGetDTCsResponse.h", - "SmartDeviceLink/SDLGetFile.h", - "SmartDeviceLink/SDLGetFileResponse.h", - "SmartDeviceLink/SDLGetInteriorVehicleData.h", - "SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h", - "SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h", - "SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h", - "SmartDeviceLink/SDLGetSystemCapability.h", - "SmartDeviceLink/SDLGetSystemCapabilityResponse.h", - "SmartDeviceLink/SDLGetVehicleData.h", - "SmartDeviceLink/SDLGetVehicleDataResponse.h", - "SmartDeviceLink/SDLGetWaypoints.h", - "SmartDeviceLink/SDLGetWaypointsResponse.h", - "SmartDeviceLink/SDLGlobalProperty.h", - "SmartDeviceLink/SDLGPSData.h", - "SmartDeviceLink/SDLGrid.h", - "SmartDeviceLink/SDLHapticRect.h", - "SmartDeviceLink/SDLHeadLampStatus.h", - "SmartDeviceLink/SDLHMICapabilities.h", - "SmartDeviceLink/SDLHMILevel.h", - "SmartDeviceLink/SDLHMIPermissions.h", - "SmartDeviceLink/SDLHMISettingsControlCapabilities.h", - "SmartDeviceLink/SDLHMISettingsControlData.h", - "SmartDeviceLink/SDLHMIZoneCapabilities.h", - "SmartDeviceLink/SDLHybridAppPreference.h", - "SmartDeviceLink/SDLIgnitionStableStatus.h", - "SmartDeviceLink/SDLIgnitionStatus.h", - "SmartDeviceLink/SDLImage.h", - "SmartDeviceLink/SDLImageField.h", - "SmartDeviceLink/SDLImageFieldName.h", - "SmartDeviceLink/SDLImageResolution.h", - "SmartDeviceLink/SDLImageType.h", - "SmartDeviceLink/SDLInteractionMode.h", - "SmartDeviceLink/SDLKeyboardDelegate.h", - "SmartDeviceLink/SDLKeyboardEvent.h", - "SmartDeviceLink/SDLKeyboardLayout.h", - "SmartDeviceLink/SDLKeyboardProperties.h", - "SmartDeviceLink/SDLKeypressMode.h", - "SmartDeviceLink/SDLLanguage.h", - "SmartDeviceLink/SDLLayoutMode.h", - "SmartDeviceLink/SDLLifecycleConfiguration.h", - "SmartDeviceLink/SDLLifecycleConfigurationUpdate.h", - "SmartDeviceLink/SDLLightCapabilities.h", - "SmartDeviceLink/SDLLightControlCapabilities.h", - "SmartDeviceLink/SDLLightControlData.h", - "SmartDeviceLink/SDLLightName.h", - "SmartDeviceLink/SDLLightState.h", - "SmartDeviceLink/SDLLightStatus.h", - "SmartDeviceLink/SDLListFiles.h", - "SmartDeviceLink/SDLListFilesResponse.h", - "SmartDeviceLink/SDLLocationCoordinate.h", - "SmartDeviceLink/SDLLocationDetails.h", - "SmartDeviceLink/SDLLockScreenConfiguration.h", - "SmartDeviceLink/SDLLockScreenStatus.h", - "SmartDeviceLink/SDLLockScreenViewController.h", - "SmartDeviceLink/SDLLogConfiguration.h", - "SmartDeviceLink/SDLLogConstants.h", - "SmartDeviceLink/SDLLogFileModule.h", - "SmartDeviceLink/SDLLogFilter.h", - "SmartDeviceLink/SDLLogMacros.h", - "SmartDeviceLink/SDLLogManager.h", - "SmartDeviceLink/SDLLogTarget.h", - "SmartDeviceLink/SDLLogTargetAppleSystemLog.h", - "SmartDeviceLink/SDLLogTargetFile.h", - "SmartDeviceLink/SDLLogTargetOSLog.h", - "SmartDeviceLink/SDLMacros.h", - "SmartDeviceLink/SDLMaintenanceModeStatus.h", - "SmartDeviceLink/SDLManager.h", - "SmartDeviceLink/SDLManagerDelegate.h", - "SmartDeviceLink/SDLMassageCushionFirmness.h", - "SmartDeviceLink/SDLMassageModeData.h", - "SmartDeviceLink/SDLMassageCushion.h", - "SmartDeviceLink/SDLMassageMode.h", - "SmartDeviceLink/SDLMassageZone.h", - "SmartDeviceLink/SDLMediaClockFormat.h", - "SmartDeviceLink/SDLMediaServiceData.h", - "SmartDeviceLink/SDLMediaServiceManifest.h", - "SmartDeviceLink/SDLMediaType.h", - "SmartDeviceLink/SDLMenuCell.h", - "SmartDeviceLink/SDLMenuConfiguration.h", - "SmartDeviceLink/SDLMenuLayout.h", - "SmartDeviceLink/SDLMenuManagerConstants.h", - "SmartDeviceLink/SDLMenuParams.h", - "SmartDeviceLink/SDLMetadataTags.h", - "SmartDeviceLink/SDLMetadataType.h", - "SmartDeviceLink/SDLModuleData.h", - "SmartDeviceLink/SDLModuleInfo.h", - "SmartDeviceLink/SDLModuleType.h", - "SmartDeviceLink/SDLMyKey.h", - "SmartDeviceLink/SDLNavigationAction.h", - "SmartDeviceLink/SDLNavigationCapability.h", - "SmartDeviceLink/SDLNavigationInstruction.h", - "SmartDeviceLink/SDLNavigationJunction.h", - "SmartDeviceLink/SDLNavigationServiceData.h", - "SmartDeviceLink/SDLNavigationServiceManifest.h", - "SmartDeviceLink/SDLNotificationConstants.h", - "SmartDeviceLink/SDLOasisAddress.h", - "SmartDeviceLink/SDLOnAppInterfaceUnregistered.h", - "SmartDeviceLink/SDLOnAppServiceData.h", - "SmartDeviceLink/SDLOnAudioPassThru.h", - "SmartDeviceLink/SDLOnButtonEvent.h", - "SmartDeviceLink/SDLOnButtonPress.h", - "SmartDeviceLink/SDLOnCommand.h", - "SmartDeviceLink/SDLOnDriverDistraction.h", - "SmartDeviceLink/SDLOnEncodedSyncPData.h", - "SmartDeviceLink/SDLOnHashChange.h", - "SmartDeviceLink/SDLOnInteriorVehicleData.h", - "SmartDeviceLink/SDLOnHMIStatus.h", - "SmartDeviceLink/SDLOnKeyboardInput.h", - "SmartDeviceLink/SDLOnLanguageChange.h", - "SmartDeviceLink/SDLOnLockScreenStatus.h", - "SmartDeviceLink/SDLOnPermissionsChange.h", - "SmartDeviceLink/SDLOnRCStatus.h", - "SmartDeviceLink/SDLOnSyncPData.h", - "SmartDeviceLink/SDLOnSystemCapabilityUpdated.h", - "SmartDeviceLink/SDLOnSystemRequest.h", - "SmartDeviceLink/SDLOnTBTClientState.h", - "SmartDeviceLink/SDLOnTouchEvent.h", - "SmartDeviceLink/SDLOnVehicleData.h", - "SmartDeviceLink/SDLOnWayPointChange.h", - "SmartDeviceLink/SDLParameterPermissions.h", - "SmartDeviceLink/SDLPerformAppServiceInteraction.h", - "SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h", - "SmartDeviceLink/SDLPerformAudioPassThru.h", - "SmartDeviceLink/SDLPerformAudioPassThruResponse.h", - "SmartDeviceLink/SDLPerformInteraction.h", - "SmartDeviceLink/SDLPerformInteractionResponse.h", - "SmartDeviceLink/SDLPermissionConstants.h", - "SmartDeviceLink/SDLPermissionElement.h", - "SmartDeviceLink/SDLPermissionItem.h", - "SmartDeviceLink/SDLPermissionManager.h", - "SmartDeviceLink/SDLPermissionStatus.h", - "SmartDeviceLink/SDLPhoneCapability.h", - "SmartDeviceLink/SDLPinchGesture.h", - "SmartDeviceLink/SDLPowerModeQualificationStatus.h", - "SmartDeviceLink/SDLPowerModeStatus.h", - "SmartDeviceLink/SDLPredefinedLayout.h", - "SmartDeviceLink/SDLPredefinedWindows.h", - "SmartDeviceLink/SDLPrerecordedSpeech.h", - "SmartDeviceLink/SDLPresetBankCapabilities.h", - "SmartDeviceLink/SDLPrimaryAudioSource.h", - "SmartDeviceLink/SDLPRNDL.h", - "SmartDeviceLink/SDLProtocolConstants.h", - "SmartDeviceLink/SDLPublishAppService.h", - "SmartDeviceLink/SDLPublishAppServiceResponse.h", - "SmartDeviceLink/SDLPutFile.h", - "SmartDeviceLink/SDLPutFileResponse.h", - "SmartDeviceLink/SDLRadioBand.h", - "SmartDeviceLink/SDLRadioControlCapabilities.h", - "SmartDeviceLink/SDLRadioControlData.h", - "SmartDeviceLink/SDLRadioState.h", - "SmartDeviceLink/SDLRDSData.h", - "SmartDeviceLink/SDLReadDID.h", - "SmartDeviceLink/SDLRectangle.h", - "SmartDeviceLink/SDLReadDIDResponse.h", - "SmartDeviceLink/SDLRectangle.h", - "SmartDeviceLink/SDLRegisterAppInterface.h", - "SmartDeviceLink/SDLRegisterAppInterfaceResponse.h", - "SmartDeviceLink/SDLRemoteControlCapabilities.h", - "SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h", - "SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h", - "SmartDeviceLink/SDLRequestType.h", - "SmartDeviceLink/SDLResetGlobalProperties.h", - "SmartDeviceLink/SDLResetGlobalPropertiesResponse.h", - "SmartDeviceLink/SDLResult.h", - "SmartDeviceLink/SDLRGBColor.h", - "SmartDeviceLink/SDLRPCFunctionNames.h", - "SmartDeviceLink/SDLRPCMessage.h", - "SmartDeviceLink/SDLRPCMessageType.h", - "SmartDeviceLink/SDLRPCNotification.h", - "SmartDeviceLink/SDLRPCNotificationNotification.h", - "SmartDeviceLink/SDLRPCPermissionStatus.h", - "SmartDeviceLink/SDLRPCRequest.h", - "SmartDeviceLink/SDLRPCRequestNotification.h", - "SmartDeviceLink/SDLRPCResponse.h", - "SmartDeviceLink/SDLRPCResponseNotification.h", - "SmartDeviceLink/SDLRPCStruct.h", - "SmartDeviceLink/SDLSamplingRate.h", - "SmartDeviceLink/SDLScreenParams.h", - "SmartDeviceLink/SDLScreenManager.h", - "SmartDeviceLink/SDLScrollableMessage.h", - "SmartDeviceLink/SDLScrollableMessageResponse.h", - "SmartDeviceLink/SDLSeatControlCapabilities.h", - "SmartDeviceLink/SDLSeatControlData.h", - "SmartDeviceLink/SDLSeatLocation.h", - "SmartDeviceLink/SDLSeatLocationCapability.h", - "SmartDeviceLink/SDLSeatMemoryAction.h", - "SmartDeviceLink/SDLSeatMemoryActionType.h", - "SmartDeviceLink/SDLSecurityType.h", - "SmartDeviceLink/SDLSendHapticData.h", - "SmartDeviceLink/SDLSendHapticDataResponse.h", - "SmartDeviceLink/SDLSendLocation.h", - "SmartDeviceLink/SDLSendLocationResponse.h", - "SmartDeviceLink/SDLServiceEncryptionDelegate.h", - "SmartDeviceLink/SDLServiceUpdateReason.h", - "SmartDeviceLink/SDLSetAppIcon.h", - "SmartDeviceLink/SDLSetAppIconResponse.h", - "SmartDeviceLink/SDLSetCloudAppProperties.h", - "SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h", - "SmartDeviceLink/SDLSetDisplayLayout.h", - "SmartDeviceLink/SDLSetDisplayLayoutResponse.h", - "SmartDeviceLink/SDLSetGlobalProperties.h", - "SmartDeviceLink/SDLSetInteriorVehicleData.h", - "SmartDeviceLink/SDLSetGlobalPropertiesResponse.h", - "SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h", - "SmartDeviceLink/SDLSetMediaClockTimer.h", - "SmartDeviceLink/SDLSetMediaClockTimerResponse.h", - "SmartDeviceLink/SDLShow.h", - "SmartDeviceLink/SDLShowAppMenu.h", - "SmartDeviceLink/SDLShowAppMenuResponse.h", - "SmartDeviceLink/SDLShowConstantTBT.h", - "SmartDeviceLink/SDLShowConstantTBTResponse.h", - "SmartDeviceLink/SDLShowResponse.h", - "SmartDeviceLink/SDLSingleTireStatus.h", - "SmartDeviceLink/SDLSISData.h", - "SmartDeviceLink/SDLSlider.h", - "SmartDeviceLink/SDLSliderResponse.h", - "SmartDeviceLink/SDLSoftButton.h", - "SmartDeviceLink/SDLSoftButtonCapabilities.h", - "SmartDeviceLink/SDLSoftButtonObject.h", - "SmartDeviceLink/SDLSoftButtonState.h", - "SmartDeviceLink/SDLSoftButtonType.h", - "SmartDeviceLink/SDLSpeak.h", - "SmartDeviceLink/SDLSpeakResponse.h", - "SmartDeviceLink/SDLSpeechCapabilities.h", - "SmartDeviceLink/SDLStartTime.h", - "SmartDeviceLink/SDLStaticIconName.h", - "SmartDeviceLink/SDLStationIDNumber.h", - "SmartDeviceLink/SDLStreamingMediaConfiguration.h", - "SmartDeviceLink/SDLStreamingMediaManager.h", - "SmartDeviceLink/SDLStreamingMediaManagerConstants.h", - "SmartDeviceLink/SDLStreamingMediaManagerDataSource.h", - "SmartDeviceLink/SDLStreamingVideoScaleManager.h", - "SmartDeviceLink/SDLSubscribeButton.h", - "SmartDeviceLink/SDLSubscribeButtonResponse.h", - "SmartDeviceLink/SDLSubscribeVehicleData.h", - "SmartDeviceLink/SDLSubscribeVehicleDataResponse.h", - "SmartDeviceLink/SDLSubscribeWaypoints.h", - "SmartDeviceLink/SDLSubscribeWaypointsResponse.h", - "SmartDeviceLink/SDLSupportedSeat.h", - "SmartDeviceLink/SDLSyncMsgVersion.h", - "SmartDeviceLink/SDLMsgVersion.h", - "SmartDeviceLink/SDLSyncPData.h", - "SmartDeviceLink/SDLSyncPDataResponse.h", - "SmartDeviceLink/SDLSystemAction.h", - "SmartDeviceLink/SDLSystemCapability.h", - "SmartDeviceLink/SDLSystemCapabilityManager.h", - "SmartDeviceLink/SDLSystemCapabilityType.h", - "SmartDeviceLink/SDLSystemContext.h", - "SmartDeviceLink/SDLSystemRequest.h", - "SmartDeviceLink/SDLTBTState.h", - "SmartDeviceLink/SDLTemperature.h", - "SmartDeviceLink/SDLTemperatureUnit.h", - "SmartDeviceLink/SDLTemplateConfiguration.h", - "SmartDeviceLink/SDLTemplateColorScheme.h", - "SmartDeviceLink/SDLTextAlignment.h", - "SmartDeviceLink/SDLTextField.h", - "SmartDeviceLink/SDLTextFieldName.h", - "SmartDeviceLink/SDLTimerMode.h", - "SmartDeviceLink/SDLTireStatus.h", - "SmartDeviceLink/SDLTouch.h", - "SmartDeviceLink/SDLTouchCoord.h", - "SmartDeviceLink/SDLTouchEvent.h", - "SmartDeviceLink/SDLTouchEventCapabilities.h", - "SmartDeviceLink/SDLTouchManager.h", - "SmartDeviceLink/SDLTouchManagerDelegate.h", - "SmartDeviceLink/SDLTouchType.h", - "SmartDeviceLink/SDLTPMS.h", - "SmartDeviceLink/SDLTriggerSource.h", - "SmartDeviceLink/SDLTTSChunk.h", - "SmartDeviceLink/SDLTurn.h", - "SmartDeviceLink/SDLTurnSignal.h", - "SmartDeviceLink/SDLUnpublishAppService.h", - "SmartDeviceLink/SDLUnpublishAppServiceResponse.h", - "SmartDeviceLink/SDLUnregisterAppInterface.h", - "SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h", - "SmartDeviceLink/SDLUnsubscribeButton.h", - "SmartDeviceLink/SDLUnsubscribeButtonResponse.h", - "SmartDeviceLink/SDLUnsubscribeVehicleData.h", - "SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h", - "SmartDeviceLink/SDLUnsubscribeWaypoints.h", - "SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h", - "SmartDeviceLink/SDLUpdateMode.h", - "SmartDeviceLink/SDLUpdateTurnList.h", - "SmartDeviceLink/SDLUpdateTurnListResponse.h", - "SmartDeviceLink/SDLVehicleDataActiveStatus.h", - "SmartDeviceLink/SDLVehicleDataEventStatus.h", - "SmartDeviceLink/SDLVehicleDataNotificationStatus.h", - "SmartDeviceLink/SDLVehicleDataResult.h", - "SmartDeviceLink/SDLVehicleDataResultCode.h", - "SmartDeviceLink/SDLVehicleDataStatus.h", - "SmartDeviceLink/SDLVehicleDataType.h", - "SmartDeviceLink/SDLVentilationMode.h", - "SmartDeviceLink/SDLVehicleType.h", - "SmartDeviceLink/SDLVersion.h", - "SmartDeviceLink/SDLVideoStreamingCapability.h", - "SmartDeviceLink/SDLVideoStreamingCodec.h", - "SmartDeviceLink/SDLVideoStreamingFormat.h", - "SmartDeviceLink/SDLVideoStreamingProtocol.h", - "SmartDeviceLink/SDLVideoStreamingState.h", - "SmartDeviceLink/SDLVoiceCommand.h", - "SmartDeviceLink/SDLVrCapabilities.h", - "SmartDeviceLink/SDLVrHelpItem.h", - "SmartDeviceLink/SDLWarningLightStatus.h", - "SmartDeviceLink/SDLWayPointType.h", - "SmartDeviceLink/SDLWeatherAlert.h", - "SmartDeviceLink/SDLWeatherData.h", - "SmartDeviceLink/SDLWeatherServiceData.h", - "SmartDeviceLink/SDLWeatherServiceManifest.h", - "SmartDeviceLink/SDLWiperStatus.h", - "SmartDeviceLink/SDLWindowCapability.h", - "SmartDeviceLink/SDLWindowType.h", - "SmartDeviceLink/SDLWindowTypeCapabilities.h", - "SmartDeviceLink/SmartDeviceLink.h" - ] - }, - { - "name": "Swift", - "dependencies": { - "SmartDeviceLink/Default": [ - - ] - }, - "source_files": "SmartDeviceLinkSwift/*.swift" - } - ], - "swift_version": "5.1" -} diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock deleted file mode 100644 index 33983dd..0000000 --- a/Pods/Manifest.lock +++ /dev/null @@ -1,32 +0,0 @@ -PODS: - - BiSON (1.2.0) - - SmartDeviceLink (6.6.0): - - BiSON (~> 1.2.0) - - SmartDeviceLink/Default (= 6.6.0) - - SmartDeviceLink/Default (6.6.0): - - BiSON (~> 1.2.0) - -DEPENDENCIES: - - SmartDeviceLink (from `https://github.com/smartdevicelink/sdl_ios.git`, branch `develop`) - -SPEC REPOS: - trunk: - - BiSON - -EXTERNAL SOURCES: - SmartDeviceLink: - :branch: develop - :git: https://github.com/smartdevicelink/sdl_ios.git - -CHECKOUT OPTIONS: - SmartDeviceLink: - :commit: 905175db124c1c80a7ae9611b98c48d7f9b2a2bd - :git: https://github.com/smartdevicelink/sdl_ios.git - -SPEC CHECKSUMS: - BiSON: 1165a5486ee9755400b096cf374e1f03cb73a980 - SmartDeviceLink: 7971e530adc02d0540c8dba7a049a0edbebf97a1 - -PODFILE CHECKSUM: 6ca963dcdb2e354f2dc698c9fadf910a0c5a71b9 - -COCOAPODS: 1.9.3 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj deleted file mode 100644 index 24ff469..0000000 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ /dev/null @@ -1,5266 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 000CDD8FCEDE9376F89AB3F42D96722A /* SDLTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 01FC030EB54C7FC64CE1140E0CF51EC2 /* SDLTimer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 003DA91DE9E5454518E11A54CEEED6D1 /* SDLMassageCushion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6295861AA5817049121A7E98779B04F0 /* SDLMassageCushion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 004F6EEBA9E62438D6A1599A6B90672C /* SDLSubscribeVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = E15094CEC1019E3193DC001F59191F6B /* SDLSubscribeVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 00879774B5433F93871F996ED7137C2F /* SDLNavigationCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B04572C7780D11E01CA5FC3B4CFFAD5 /* SDLNavigationCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 00B029951254F839641912D1E46ACE89 /* SDLSecondaryTransportManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 81DC4C775620B12380A4F90F2DAEB081 /* SDLSecondaryTransportManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 00F4491685B737A4DB17096FED751E6E /* SDLSetAppIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B8D629931815D5CAF7718BE57D7E744 /* SDLSetAppIcon.m */; }; - 010C3B63A6D23E6FFDCECFA3501FD245 /* SDLControlFramePayloadConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 91022FC9BD41CC0B9D0193EA80339523 /* SDLControlFramePayloadConstants.m */; }; - 01141EC6215EB5322369A3B5F1811BD8 /* SDLSystemRequestResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FC38C9FCF3E7343DF43B8368DC546B42 /* SDLSystemRequestResponse.m */; }; - 013DCC67B78583911AC21A27784A921F /* SDLLifecycleMobileHMIStateHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 53E02D4536535B419DF1F95513E1ECBA /* SDLLifecycleMobileHMIStateHandler.m */; }; - 014F6ABA74CD657439A0AB4B3BF1E28A /* SDLPerformInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = BC44973166E4FD5059074DCF268D17F8 /* SDLPerformInteraction.m */; }; - 0169E4DFEF372748DE00C9F39383DB6C /* SDLHeadLampStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F656263CA5DF65889FE6D8936080E02 /* SDLHeadLampStatus.m */; }; - 01D2CAE59967EA1D70D78F423D414DBB /* SDLOnSystemCapabilityUpdated.m in Sources */ = {isa = PBXBuildFile; fileRef = BC2DDF4C8D4FF0BB610F87922F9DC8C1 /* SDLOnSystemCapabilityUpdated.m */; }; - 01DD4A57171E44161D0BB154CC5D3848 /* SDLOnSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 77B17840CA60F5A16BED44DFBD406D00 /* SDLOnSyncPData.m */; }; - 020C50C71A8B336649F77B0855268D50 /* SDLSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = CA15ECE757FC373C85DCC38EC5858576 /* SDLSlider.m */; }; - 023FF5FF6AB8D92897C064F883E571BB /* SDLCompassDirection.m in Sources */ = {isa = PBXBuildFile; fileRef = 72456DACFF4B143FA90DC10239139E18 /* SDLCompassDirection.m */; }; - 0298561779A0AFB043DE0A9FAAAC19E7 /* SDLUnsubscribeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A5C983C7E972FDF63900044F87CBB3DC /* SDLUnsubscribeButton.m */; }; - 02B9BA59D1C0E22367D384281346B66F /* SDLLogModel.h in Headers */ = {isa = PBXBuildFile; fileRef = E27890CE8E8F1D7904C65EB29FB9ABD0 /* SDLLogModel.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 02E6E4F413A2B966E004A1031FFEDE61 /* SDLDIDResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 72270B3D9ECE1B81AC9E613184E61E23 /* SDLDIDResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 02E7456C7087BCE794EB5F4BFDCD6B5E /* SDLWeatherData.m in Sources */ = {isa = PBXBuildFile; fileRef = FC37CDD446A3599BE497DE78F8931C4F /* SDLWeatherData.m */; }; - 02E85CFC1F2403195CE879996A331227 /* SDLIconArchiveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = C5C00931EAB51480DCF119086CEF8E38 /* SDLIconArchiveFile.m */; }; - 030A31875F755108423BB4F15FBEAA83 /* SDLAudioStreamingIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 752C180C8E3193C1898AFD82D953B208 /* SDLAudioStreamingIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 031E6C0A70724D15DF1B5A662470EDDF /* SDLOnHashChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 65F149F667D01754A1E0645711F6D6EA /* SDLOnHashChange.m */; }; - 034FD36A8B615166B2A55A320825E672 /* SDLAppServiceCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 4946BD85165935E30EBDE5F0983445E0 /* SDLAppServiceCapability.m */; }; - 038A0C2C3BD5BB22B37280A56FAB5AB3 /* SDLOnLanguageChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD3A5AE962BF24F342B8F4DB73EC5BC /* SDLOnLanguageChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0449A73F6CEFDDAB155A322DC5602A53 /* SDLCloseApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = BD0A82F3B2EBBDF4D3C4FB965156E9D3 /* SDLCloseApplication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0464DC7F6803F80C656F554A937663A8 /* SDLImageField.h in Headers */ = {isa = PBXBuildFile; fileRef = B1CBAE6C6FCD662932F84593886D1FB9 /* SDLImageField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 04ABCD1D5500C77298DC8E61F181EE3F /* SDLScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F9AB9291462E3AB06586D1F3A200B6F3 /* SDLScreenManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0525CA12876C208985EACA58FC753CCB /* SDLSetCloudAppPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 89FF276588037654834B38572ADBF860 /* SDLSetCloudAppPropertiesResponse.m */; }; - 056296F8E42866A7507D690F4ABF87BB /* SDLSpeakResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 9718170DC522C4211FF7BFB86F042E6E /* SDLSpeakResponse.m */; }; - 05AA2C453D9E68208FCF493F216AE4BC /* SDLButtonPressResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AFD67A512B7797A6F916B27F9816BC6 /* SDLButtonPressResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0656DA2E1EB814B1CDF91E68EB1D3F20 /* SDLParameterPermissions.m in Sources */ = {isa = PBXBuildFile; fileRef = 7828CB789D2D3420C6618DE0D17264C3 /* SDLParameterPermissions.m */; }; - 06937EC8C50E58F95E3115B64BE7AA1F /* SDLFileManagerConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E7DF54F44C89CE28EC111C69CA41A80 /* SDLFileManagerConfiguration.m */; }; - 06BBEEDC729D9D948D944852399F2F05 /* SDLAddCommandResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = E65AB80689651E51BC67BD306B058C30 /* SDLAddCommandResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 06C4D583DBCDD900D42AF20BF4399C4B /* SDLCharacterSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 76060F5A6770E40F2895C5DEE9DBC9F7 /* SDLCharacterSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 06FB324D9C94F818A31A24576F78E93C /* SDLAppHMIType.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F46BF5B95E2FE244011A908FAA7404C /* SDLAppHMIType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0755FA5543652B43F25B0B5700871AA3 /* SDLSetDisplayLayoutResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FBAF5D2A296ECEE5B1BF22DD9C49B9D /* SDLSetDisplayLayoutResponse.m */; }; - 0764F62FE2EF9090EB233425C00A6A6C /* SDLSetGlobalPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 19E0135257858BD7168C64D56B8D7A75 /* SDLSetGlobalPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07737B0114944A0D3B652F3B43EF0509 /* SDLTCPTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = F47E1861039AE8C9169792FC3ADCA6F4 /* SDLTCPTransport.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 07975E5C3B4B93AAEB029FE3196E3E64 /* SDLOnWayPointChange.h in Headers */ = {isa = PBXBuildFile; fileRef = B9544257AFAAD1DB9C4EF3E6481FC4A6 /* SDLOnWayPointChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07ACC12BF7F60B323CF56C98071F0BDA /* SDLMassageZone.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF246B79DE4F55FA9C83D84B39DED75 /* SDLMassageZone.m */; }; - 07AD372A4D2EB711FF523E81E3E90BF1 /* SDLCancelInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D7B6671467E1F2AFF00152A3BB56DA00 /* SDLCancelInteractionResponse.m */; }; - 07AFBEE85AAE2A4ECBE32262BB03746B /* SDLMenuParams.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D744D294CB82BB107AB6ED0A3F46323 /* SDLMenuParams.m */; }; - 07D5575EC6154BD6A1DA7EFED6E844F3 /* SDLLockScreenRootViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A548B2F0B4F07864D70445C29686B09 /* SDLLockScreenRootViewController.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 07EA124701A0E2A13034C57CBFADCD56 /* SDLVideoStreamingState.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B7041C400969E9738627D46ED2889FF /* SDLVideoStreamingState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07EC897039F399022A881C2C79BC77F4 /* NSMapTable+Subscripting.h in Headers */ = {isa = PBXBuildFile; fileRef = E88D7898374900884A7E0C3274ACDD65 /* NSMapTable+Subscripting.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 07ED05FDEB6D1F1255386B7FBFBEC076 /* SDLOnSystemCapabilityUpdated.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A2921F1E5CA7555173077B04B2B228 /* SDLOnSystemCapabilityUpdated.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07EFC4CE82C6A11142BD4302D87A3239 /* SDLSubscribeWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3ED9AAC40D94011EA3DFB96F5394A88A /* SDLSubscribeWayPointsResponse.m */; }; - 07F8FBBF7DA3BD45DD48F55585CC2952 /* SDLTemplateConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A44C3037DEC000D177A8E94BECA4B95C /* SDLTemplateConfiguration.m */; }; - 084021FEEBDC121A01E76CD5D9D3A414 /* SDLOnKeyboardInput.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F73D712297E40F90B7E1A7D01DFEC67 /* SDLOnKeyboardInput.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 08844BF14B2337C1EE9AEAC757BE8180 /* SDLV1ProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 25A19CDDD7442D5D9F541CD6664CED80 /* SDLV1ProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0928674585F59E61E7A886E8DE6C14E7 /* SDLV2ProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = C4F791D12BE19DF77A3BCC8EEB641295 /* SDLV2ProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 09723FAF4772B086F3936D5EE3201220 /* SDLMenuLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = CAD566B149788CE2A5407D1274A17F00 /* SDLMenuLayout.m */; }; - 09AB9C5FF6058254B64C63123E971C10 /* SDLOnSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = C98E0A40D9302E06972A9D641D33736F /* SDLOnSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 09BBF1696D9DA2B01A476C7145E9197E /* SDLRTPH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = B2285BB6C866BBF444CF2BA47538A3F9 /* SDLRTPH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 09CD47E2B2DBAC5AAD45C21317330C84 /* SDLSetMediaClockTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = D139C1A1E0119ED0A73E0642B12675BD /* SDLSetMediaClockTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 09E404E2F25004CA9B63E3A8740FBAA8 /* SDLH264VideoEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BED0EB216A163B02E038B24BD163908 /* SDLH264VideoEncoder.m */; }; - 09E452042624B13E52782502AF683E8C /* SDLTCPTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C75420A65D82C21EDD26CEFF38A1BBA /* SDLTCPTransport.m */; }; - 0A3A907CBF1998EF1F9DF2A2DBFAFC53 /* SDLShow.m in Sources */ = {isa = PBXBuildFile; fileRef = 256D8960A3671CB91AB11F36D27BFE73 /* SDLShow.m */; }; - 0AC45935BAAC4EEC4B3AC41963ABDEAE /* SDLControlFramePayloadConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = A09A123F4100A6E0985F62A0D2C03B11 /* SDLControlFramePayloadConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0AEC8A1C117796DBCDF8B3438AFDA908 /* SDLRPCFunctionNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B6D168B1F9F66F44F3FCEE9FB5B9F89 /* SDLRPCFunctionNames.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B3A68B8A8DAE66BE0D40553A8E8F0F0 /* SDLDeleteCommandResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ED15A0AC24E44401A1D40DED75708E9 /* SDLDeleteCommandResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B68D3C320FE736582F954A1808256E2 /* SDLLanguage.h in Headers */ = {isa = PBXBuildFile; fileRef = 86257F6370BE9E41B823982B8B658DCD /* SDLLanguage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B85145AE7451030C55559AE27AEA1A7 /* SDLPresentChoiceSetOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = A719199D3EBFE5A3C4619D3DC80ED70B /* SDLPresentChoiceSetOperation.m */; }; - 0BB300C87144AD7B369E0430F1202E19 /* SDLUpdateTurnList.m in Sources */ = {isa = PBXBuildFile; fileRef = 78CCB2B40906D5C1D9AC673498D3D31D /* SDLUpdateTurnList.m */; }; - 0BE15734B37B15CACCB2040050832FA7 /* SDLCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = ABCC08D24761FA1AB3187DB24D8E870D /* SDLCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0C53EA9570A03E274435E76A870664CD /* SDLSubscribeWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C058FD535A44116F3B9EC5AAC90DB06 /* SDLSubscribeWayPoints.m */; }; - 0C5FFABE03742C7D42D4C2CFFC50CADB /* SDLKeypressMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 739CEE74F80EDD2726D485B052803409 /* SDLKeypressMode.m */; }; - 0C612F491097584F468E5EA199DC519B /* SDLManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 50519D317000C62928D0855FCBD05D94 /* SDLManager.m */; }; - 0CD8661CBFFE3EEC13E840FD788482CF /* SDLManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CB1A61D4933119EA30B60E11CB2A55E4 /* SDLManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0CEA11A5EB62E9F281219DD07A95D42B /* SDLTemperatureUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3DC9F22E4F546F8A133454410C7091 /* SDLTemperatureUnit.m */; }; - 0DC17CC659095ACDA1DD4475EB6B61AE /* SDLDeliveryMode.m in Sources */ = {isa = PBXBuildFile; fileRef = F96C3EF342C56B944AB2446197932888 /* SDLDeliveryMode.m */; }; - 0E0B9B7A4C8989D773E0D9852764BE23 /* SDLSoftButtonState.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FD2A7EAD3CEDFD045490467DAD18F18 /* SDLSoftButtonState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0E26ACDF875370E9FE2C72970C89A55A /* SDLRegisterAppInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = B648DB91A3098DA7B1E0A5FEE3FE23A6 /* SDLRegisterAppInterface.m */; }; - 0E28D0CF26FDE3DF127B22E91EC58828 /* SDLUnsubscribeVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = E5B5D96B206B481EDA794734FDF0120F /* SDLUnsubscribeVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0E35DAB1AB19E38627F023A110471CA1 /* SDLIAPDataSessionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 798BC3FB68D60AF937EFE55D6BBCE3FF /* SDLIAPDataSessionDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0E43D15AA5F1FD0B502ADB565D76215C /* SDLTurn.h in Headers */ = {isa = PBXBuildFile; fileRef = CB8CEF2E6739A98ACE9DB96F08CB2ED3 /* SDLTurn.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0E4DE85C863AAA4C47096A975DC50831 /* SDLVrCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = A1F84D97CDAFDB9F9F700BCF60FCA9B9 /* SDLVrCapabilities.m */; }; - 0E6E01DCAD73B2D0AA22BEEF99D6220F /* SDLCreateWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 17BD7329197D81447717DC7ADEB5750E /* SDLCreateWindow.m */; }; - 0E7F23534544BF8C03808A24131664A3 /* SDLShow.h in Headers */ = {isa = PBXBuildFile; fileRef = 23383B37C6DBACB1FDCDF86CE54C386A /* SDLShow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0F3BE3D37B1583BC547B32930DC8BCE0 /* SDLGenericResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C8817A9FA9D65B3370E04B0D63880BDF /* SDLGenericResponse.m */; }; - 0F80DC9D4D10F534C6F2B7CB23896C90 /* SDLButtonPressResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B4487AD673E64E1277940325C03E19A6 /* SDLButtonPressResponse.m */; }; - 0FEC36EC65956FCDE10B7AD3D03B3AA7 /* SDLTimerMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 931FA41FFCE73EAD4491E531A2BF3CE5 /* SDLTimerMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 10399FEFB6AE8D84D33269A2552FE260 /* SDLLifecycleConfigurationUpdate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A84F34CB374BEB91FE4C77E7F10F2FA /* SDLLifecycleConfigurationUpdate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 108D2F1476FD2D75A98286FCA2B4B36B /* SDLAlertManeuver.h in Headers */ = {isa = PBXBuildFile; fileRef = B0DF64B830CBF8A2D3A1F42792E5E927 /* SDLAlertManeuver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 109CF6FCB76DF49872312F73F694589E /* SDLLogTargetAppleSystemLog.m in Sources */ = {isa = PBXBuildFile; fileRef = E3CBEA1B6A63BBECF895DD4D924B8BE8 /* SDLLogTargetAppleSystemLog.m */; }; - 10B60849CF1A0F57C155CF09B6CEF269 /* SDLDeleteSubMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D30EA1923FA31DA9BE9ABCBAE3F7AC8 /* SDLDeleteSubMenuResponse.m */; }; - 11C99CB3B640F6A9B292B910BA3D6CB2 /* SDLSamplingRate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B9BAA4D99166BCE4C535F65CE463058 /* SDLSamplingRate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 11FC0615BCD4D7C3D74F0E3A0AEA56D1 /* SDLMassageModeData.m in Sources */ = {isa = PBXBuildFile; fileRef = BF050F8D21022CD0E6C2AD5A17E6B282 /* SDLMassageModeData.m */; }; - 121491DBAA381C791139D50B3F9EC85E /* SDLSendLocationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6316B004E69CA34EAA8ADB8A39D0E24C /* SDLSendLocationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1252F7AF021293B5517FCA6C9AF44A21 /* SDLAppServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 32BD65A04E2AD6AAF6ADC18E5A5DE4EB /* SDLAppServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 12DC40A3D198F7C3BE10BE221DCDB5C2 /* SDLSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 90BA4BFF5CAD58299D1A0CBC8CFA45FD /* SDLSyncPData.m */; }; - 137536F0DC6C6A1290F7C928335EE9EC /* SDLDiagnosticMessageResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 941C68CF789F85A7C11457585FAACEC6 /* SDLDiagnosticMessageResponse.m */; }; - 13FE73ABEC5272554491F31BA15FBE98 /* SDLAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = A0A6C0D7A199BCCE8F0FF9593EC73681 /* SDLAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 140AE13905D4AA976BBE7D32C20EC80D /* SDLFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 794968D771482D3B2B695A119EEFC610 /* SDLFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 146B618653FFA74052F2FB52092207F8 /* SDLMenuLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C28381778F9B6F73AE7045AFF50293B /* SDLMenuLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14FDAE2B365BF4599C349F9E4C49A436 /* SDLGetInteriorVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = ADB87610BB6428EAF7555538EE3E9CF5 /* SDLGetInteriorVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1535D3148D3604D2EBEE4EB5E3008417 /* SDLAsynchronousRPCOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 68D12D24E08593D40782A089F52040A9 /* SDLAsynchronousRPCOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 15790938EAFC293CD326D4F72ECA3B18 /* SDLRPCParameterNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 593ED256D9FF77FF4B35CE6871FAE25D /* SDLRPCParameterNames.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 15826D1DB258E41D27E6E3E5C6315F5A /* SDLSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3116BCED42B3229298A5A04AFEACEB97 /* SDLSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1632546B737E58E78653F73017E59695 /* SDLOasisAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E19B35BFCAF24D72CE74D4A958941BB /* SDLOasisAddress.m */; }; - 1676673063B34A25A383627B95D940E3 /* SDLRPCNotificationNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B19A0B5A3387852751CFDCB453B116 /* SDLRPCNotificationNotification.m */; }; - 16E4705974FE4C949F41C2E807EBEE18 /* SDLGrid.h in Headers */ = {isa = PBXBuildFile; fileRef = AEE5EB23993F004A5B8717B7811188D6 /* SDLGrid.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17285ECD70560F7B126EF60F44F24FFA /* SDLSoftButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 5103BF7ABB8FE6480004A5CA73CFE14C /* SDLSoftButton.m */; }; - 173519F7A886931450C9B847A2EBEB6C /* SDLGetWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = 43E6B7E8C5F8053C7D1CC36D63B661F6 /* SDLGetWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1740E8B2F60D77BFBC604D07BEE19B14 /* SDLChangeRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = C68E00EA0C35209A7F5D2308107243E6 /* SDLChangeRegistration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17CA7FE9B07526278051C7A56EB7963D /* SDLVoiceCommandManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 42661551A62CE606353EE0A3A1811CC7 /* SDLVoiceCommandManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 181A55A6A8BFE664ADDFF50A12B11B66 /* SDLLocationCoordinate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E4F804CFCE6EB5C7532E3E88A095743 /* SDLLocationCoordinate.m */; }; - 1833E6DCA530A450C5480467B637E31E /* SDLAsynchronousRPCRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E29BFBE9F6D962531E8241C660B4AB4 /* SDLAsynchronousRPCRequestOperation.m */; }; - 1848DB3F89B60722831C8A28961BC2E1 /* SDLDialNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 72D0738CE8E4BEA34432415457A21559 /* SDLDialNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 18F37C785F076E64EE279114F7AB40B6 /* SDLLifecycleSystemRequestHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 44F03874CFBDB12A46DAEDBEBC01EDED /* SDLLifecycleSystemRequestHandler.m */; }; - 190106E955FF3E05FEC02D5F58304C32 /* SmartDeviceLink-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EA703085F3146AFE22FBAD2AE662CAF2 /* SmartDeviceLink-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 195BDF65B263C2245DA85829BAB3235A /* SDLTouchEventCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 013F0FD57EDF8FF55737B083957CAE10 /* SDLTouchEventCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 19808A920357393815692F5AE549D63F /* SDLResult.h in Headers */ = {isa = PBXBuildFile; fileRef = B458E71A46CC3C10BFED1AE0A05A3530 /* SDLResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 19978E124F50D5A1E905B1DE029C3E96 /* SDLAppServicesCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = ADFFB6C5FDA442555BEF95532E12DEBC /* SDLAppServicesCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 19A6A6C5F102F44356A797E2F38E4443 /* SDLSyncMsgVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C720BC1768C931937E27B5512056F9D /* SDLSyncMsgVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 19FC5C8BF351FC3E95B20901E34AFDB4 /* SDLAudioControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F09D6CBF3B576AB4BCEE787D60E8A7 /* SDLAudioControlData.m */; }; - 1A5B4634AAA0EEFA5F44D5672FA96CD3 /* SDLLogTargetOSLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F47C488B08BF5122754BFE7BBEC9A14 /* SDLLogTargetOSLog.m */; }; - 1A862E5568966C1D6F18CC410B49D5B4 /* SDLSetAppIconResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE0BD4D689088D8A8B5DBD772D84AD5 /* SDLSetAppIconResponse.m */; }; - 1ABFE6BF37268AFD497C1C336F5F54EE /* SDLSystemCapabilityObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = CCFBCFEAE99E82FA228AFBDFA25BFE2A /* SDLSystemCapabilityObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1AD0941AAD522DB92F9F9EF5D02F0C58 /* SDLWindowTypeCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = AFE83FD04F32E338D78150E93D001309 /* SDLWindowTypeCapabilities.m */; }; - 1BA6566C54CC331FD44B6D747A71413E /* EAAccessoryManager+SDLProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = 46B479E9DE24EACDF8798380CCC4B19E /* EAAccessoryManager+SDLProtocols.m */; }; - 1C3779A1ED805EBA676412F23CD6E4F3 /* SDLLogFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CD4E213C5B2DB7E81A09C7CA35B69EC /* SDLLogFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C674AC828EA23F8F36FC14512F17D3A /* SDLLogFileModuleMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 306A96E272DDC349606149EEE10530B3 /* SDLLogFileModuleMap.m */; }; - 1C92C671D8279E6FB7270A408214F9D3 /* SDLCloseApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 513C5F441F1680E2DF08C9769B0F1261 /* SDLCloseApplication.m */; }; - 1D98A62E3D9E2303CC18BC70EED93D99 /* SDLReleaseInteriorVehicleDataModule.m in Sources */ = {isa = PBXBuildFile; fileRef = A7934C16A837F342002F2415BDE82793 /* SDLReleaseInteriorVehicleDataModule.m */; }; - 1DAD7BD3D1586E8C16F802E91D029869 /* SDLVoiceCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = C2AA680B3D37F013ECB5B16618A27EFA /* SDLVoiceCommand.m */; }; - 1DDA4BF089765BFD15BEB62136419F67 /* SDLModuleType.m in Sources */ = {isa = PBXBuildFile; fileRef = E744FAD3C000DB8C868581AA6D77DDE9 /* SDLModuleType.m */; }; - 1DDBAD92F469AFCE7DE53D43A7E3C2C4 /* SDLLockScreenRootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EB18E676157C3DBB7F7B0573085BC479 /* SDLLockScreenRootViewController.m */; }; - 1DE196C4FB473A8B9DBBFCE728FBAD97 /* SDLRPCFunctionNames.m in Sources */ = {isa = PBXBuildFile; fileRef = 9760ECDFB3D886D97C84848DB99676AB /* SDLRPCFunctionNames.m */; }; - 1E34EE1AE419A9801D49AABE3DE98B70 /* SDLProtocolDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6795D9E1B70C789604C444042F88585F /* SDLProtocolDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1E5B60D553AAD384F9F860E77298BB39 /* SDLSendHapticDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F99146EE0F08A756FF12683196D348C9 /* SDLSendHapticDataResponse.m */; }; - 1E860D58C4B4F4A01EB689D1B276DD2A /* SDLLightControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = EC8827628FE4A59FFDCFD4E3F3D7C4C2 /* SDLLightControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E92C1FBC46299C97494391A9A157F64 /* SDLHapticRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 85AE177498B404861704BE8D54AA5040 /* SDLHapticRect.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1EE73C7B3A4FF142BDE9B2C656B53D3C /* SDLV2ProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = C594D7D022ADDBB1CCA1C39D63737DD4 /* SDLV2ProtocolHeader.m */; }; - 1F39155F30D115B93B97782715C30C9B /* SDLSupportedSeat.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BB6B7C29FB74F9FC111836E3FDC00 /* SDLSupportedSeat.m */; }; - 1F56FDE49764142BAAC3281184A0F44F /* SDLOnWayPointChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E485F28BB0A7E258C9F739157505BA7 /* SDLOnWayPointChange.m */; }; - 1F82BAB874DDB98D7FDFA3C70DC99E81 /* SDLSubscribeButtonObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CDEED18FD1039629786CEEA57699019 /* SDLSubscribeButtonObserver.m */; }; - 1FA8E1D71FDA6FBA04439981618AA74E /* SDLClusterModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A874F4C09FE07D7EF94135D92A5A2D31 /* SDLClusterModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FAFBC495EB3F87999BDDCF1583AD696 /* SDLAudioPassThruCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = C10CCA1F0756004AD9418EF06446AD16 /* SDLAudioPassThruCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FC3717780F9C340D3CDA0E3B746A46E /* SDLWindowType.h in Headers */ = {isa = PBXBuildFile; fileRef = B3F2F3DE7B7885DE54384816E98EC71B /* SDLWindowType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FF10BE9E8007086210AA089BBD34F2B /* SDLDialNumberResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A8F68EFE966B4AE635B3514B21823DD /* SDLDialNumberResponse.m */; }; - 205D1C12AE6541D565AC31853F6D00B8 /* SDLShowAppMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E7464F993D6552704E1EAFCF1DF78D /* SDLShowAppMenu.m */; }; - 20C79EED1BFD13B24B8119A104E92501 /* SDLFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 606081890E34F1A52EA3621D5B06F45D /* SDLFile.m */; }; - 20E52603A144D5E23A91FC15FB220553 /* SDLPerformInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 23C50F80EECB17D50B91A723C4564B5B /* SDLPerformInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2143F4C92496739C1E9F659C76C34437 /* SDLEncryptionLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 90229AC6E8F0ECD254DB821584B0F830 /* SDLEncryptionLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 21902704F3A9A9F03579486E23620DE7 /* SDLPublishAppServiceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 40A630A6C0CC2E6947903DC5BA0B4A42 /* SDLPublishAppServiceResponse.m */; }; - 21E4968504B9B9A36C22927525A27A22 /* SDLConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B4D15588619AC4E8EE11A21A4FB48AD /* SDLConfiguration.m */; }; - 21FF6C36B0867373CDD2C28FC05147CF /* SDLVehicleType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E6C4ADE7103309719A9A2A77D95DFA0 /* SDLVehicleType.m */; }; - 224F1528A157FCD35BFF1EBA4D2C2872 /* SDLSendHapticData.m in Sources */ = {isa = PBXBuildFile; fileRef = AC69D3F94604F5AE723986975A84A9B9 /* SDLSendHapticData.m */; }; - 22677CAE5321A6CAA40B6D42378E953B /* SDLModuleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA353CD4341D5B1B5F4211679D6562 /* SDLModuleData.m */; }; - 22F3EF5746CA33D946F1C1EB781D5D14 /* SDLUnsubscribeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 13F5B04D46A1927416EB7B00EC10D588 /* SDLUnsubscribeButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2322726A5483D59A55C4EDC2AA0156F1 /* SDLDeleteSubMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = E7B8F3E8A6E8FEFDC6D3FFF9938E7219 /* SDLDeleteSubMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 232876DEA5EDCB623AC73A31EF06CEFE /* SDLSetAppIconResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C4526E09C6759AD25F54590F9002AE8 /* SDLSetAppIconResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2357A232DE207AAE2411963C3617D7CE /* SDLChoiceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CC74D66E26424A87C56B92B709CA407 /* SDLChoiceCell.m */; }; - 236A9A5A39693FF2A879024D41698185 /* SDLVehicleDataEventStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F20535D9DEA52BADB1B4063B4EAA92E /* SDLVehicleDataEventStatus.m */; }; - 23CD6E5D59B9816CB5B431D84A9B841C /* SDLCreateInteractionChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 45278E4B1599BA7B963172755EE7266C /* SDLCreateInteractionChoiceSet.m */; }; - 23DB5FB26B11BBD509563FD447334FF9 /* SDLScrollableMessageResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 35A95205B4A7E275F1EC800DF558C0EA /* SDLScrollableMessageResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 24054C486169603B5BA458F3CBF702EB /* SDLOnInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 680E830A922E9C7A8D1E5A3C3D4F580C /* SDLOnInteriorVehicleData.m */; }; - 2409088233FBB4C2C35C088F7BD27B2C /* SDLUpdateMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BC04274374151301839F46AAE270B2C /* SDLUpdateMode.m */; }; - 24F42C3E97FF7E9B0AA0358D00D9C3B2 /* SDLSetMediaClockTimerResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 058F4086A8EDDCFE4AED952B5F2F9052 /* SDLSetMediaClockTimerResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 250CBB9751DBD8C706CEFFE1E3E8468B /* SDLModuleInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A800C1FAD99D70B8B29AAE775776B9F /* SDLModuleInfo.m */; }; - 25276E5A1E876F2DFC5094A769C6A7FE /* SDLKeyboardLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 556489F7F882C1F45315798A6F7A1FCC /* SDLKeyboardLayout.m */; }; - 252B5ED026A01C0D4C40814C966FED34 /* SDLDeleteFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B8DB8AD97F13CD6B4CD990703A087B9 /* SDLDeleteFile.m */; }; - 253CF5828543F3EBE5E6AD378905C642 /* SDLAppServiceRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = FBA1886A6AB5675C30E45BE6BDC08ABD /* SDLAppServiceRecord.m */; }; - 254F979EC45C46E927239748ED585AEA /* SDLHMISettingsControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F5004CD6B82FEDEBE21181B317258D /* SDLHMISettingsControlData.m */; }; - 25BE8C8B4CECF880BE4335312ED8B717 /* SDLCarModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6A97EE0FBB026A0734AE80DF2F8572 /* SDLCarModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 26217B2CFE53FB77D314083C9F7D8455 /* SDLHMILevel.h in Headers */ = {isa = PBXBuildFile; fileRef = DEEB8CD3B1A76596EEC8B093838892F3 /* SDLHMILevel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 26353657D5D6B0F84D089E872827FDDE /* SDLEmergencyEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 1673D555128E7CE618DE3C3279E10278 /* SDLEmergencyEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 266AA31C12A9492F483B4AAEDD775FE3 /* SDLKeyboardEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 10210FEFC75394E3B2F578C082EA07D2 /* SDLKeyboardEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 26D4C0D8E30774CFEE843FEF4743645B /* SDLCarWindowViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F907665A4BB12E254E52BB764DBAB620 /* SDLCarWindowViewController.m */; }; - 26D505993874143E36649CCE262C63CE /* emhashmap.c in Sources */ = {isa = PBXBuildFile; fileRef = 0EFE9E833025F639CA949ECC8B8C90F0 /* emhashmap.c */; }; - 2706135D6304AF804131C64201373241 /* SDLCacheFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FBFE07B70439DC670284DEB1C34BA90D /* SDLCacheFileManager.m */; }; - 27355A0ACD2391F8BDF5C4F0C7C57C6F /* SDLTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = A77701E6DFFC3EB08EEC973A1F7D7190 /* SDLTimer.m */; }; - 28041814F66B4A71E8F63DD9B094EC21 /* SDLTemplateColorScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 802EC4A98FA4600B644BF8C09D41BA44 /* SDLTemplateColorScheme.m */; }; - 28275C910F5B5C86487FF92DEDC9AFBE /* SDLSetInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F5D4445E6E09F666DD97ABCAF27C4B1 /* SDLSetInteriorVehicleData.m */; }; - 282A9379A10F52BF5C5D49932CBC0B22 /* SDLSubscribeButtonResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CEAFEC8445F27E380E37DA46CE0FEE6 /* SDLSubscribeButtonResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2885509A0C6D2186F50E993D93392E3B /* SDLVehicleDataNotificationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC2979DED81E3F2C7CE44D570F2C83C /* SDLVehicleDataNotificationStatus.m */; }; - 288C523997A09EC027B619F7F3895078 /* SDLUpdateMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0719C780E196AC9980E531CF8FBD8088 /* SDLUpdateMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28BD38304ADA7FC85E743DEE7314C025 /* SDLLifecycleSystemRequestHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = ED7883C58B7DD059DDA8CACAC65B0774 /* SDLLifecycleSystemRequestHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 28CC084EC7D95AD5533A75860CA631DE /* SDLEmergencyEventType.h in Headers */ = {isa = PBXBuildFile; fileRef = 4975CFB97046B46A61DB1C5214F450B7 /* SDLEmergencyEventType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28E84A6A1F1BDD249D7EB18D110508F9 /* SDLStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 075F751ECFEC7836B3AC765DA2730721 /* SDLStateMachine.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 29333D0AA67B0FE2307D1B6C711CB6A5 /* SDLAmbientLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = AE1E83E5226544501924015F9D97A062 /* SDLAmbientLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 29343D75325A60F2F26ACB2E2A148BDD /* SDLPermissionFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B4095FC3652FF81F7C17BD02355E6C58 /* SDLPermissionFilter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 293C7367008EF74D0DD9DD9123AF01D8 /* SDLClimateControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 95569FF6FBE18E8D60E93393B780FC1A /* SDLClimateControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 29725FF38EFA8B496123C61DD592C84B /* SDLLockScreenStatusManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B3C88EDC28B4D78F4CF7643299FC87EE /* SDLLockScreenStatusManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 29F621F3B007E7C389AC60BA73E62268 /* SDLScrollableMessageResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 40A71807A649A656E2DA4942B6C7F861 /* SDLScrollableMessageResponse.m */; }; - 2A1683EB0706F6F8EAAFF5E6959B7B3D /* SDLStartTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 5784EB866AAB23C634D0887413828115 /* SDLStartTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2A313B1672E3B5388BB705FE11F3066D /* SDLTouchCoord.h in Headers */ = {isa = PBXBuildFile; fileRef = B692A71C44F049B8B83DDCF6B8927340 /* SDLTouchCoord.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2A7C7C18EC434E6BD10F0AC42D3C7241 /* SDLWeatherAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = DB8BAEF5BA6F28C6E8D303A40D4F9752 /* SDLWeatherAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2A8CCD7E7B1CC9315E04159E7FDDD738 /* SDLLightControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 330DE6702F86BC1CEC62353483DA8E09 /* SDLLightControlData.m */; }; - 2A8FE75D11339DAF0559381B487CE080 /* SDLInteractionMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 995A7E70BDA2C8AED3E00F4433D46835 /* SDLInteractionMode.m */; }; - 2AEEBC756B4314A3C04256AFE546BBC4 /* SDLOnHMIStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 51B7A6EEE9B94D329C7266DE4D081999 /* SDLOnHMIStatus.m */; }; - 2BCD9A7B3DD021361FFE8FB9B730AE60 /* NSMutableArray+Safe.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AEFB5FD4FD8D86E84F192A4E8DFCDC3 /* NSMutableArray+Safe.m */; }; - 2BCEB50F391F05504DA184137B9CC6CA /* SDLTouchCoord.m in Sources */ = {isa = PBXBuildFile; fileRef = F45E77EB88561822BCBB70591945A179 /* SDLTouchCoord.m */; }; - 2BD2B68D5F3E75CC7CFD753D59B5C645 /* SDLGetCloudAppPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D357CCADC7705B89FD66DEEE0E6DE86 /* SDLGetCloudAppPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2BF560ED93231DCAF6365DE031A17ADC /* SDLRPCPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = DB2DBF7A190C1B28F89A4CAA411A5074 /* SDLRPCPayload.m */; }; - 2C3074BE81DA26E6E3E62D45D05E71F0 /* SDLMsgVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = F3C46904E4C375379797C22AD77B4E79 /* SDLMsgVersion.m */; }; - 2CAB4C88313670F0F36281867EAD1019 /* SDLLockScreenConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 620CF46A0CCD4D50705CBD8D5628B133 /* SDLLockScreenConfiguration.m */; }; - 2CB2EC1505E6E5E792CB49D3F4403DAB /* SDLTextAndGraphicManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D2A524F1F2044F31A8BCD218FCCA1A9 /* SDLTextAndGraphicManager.m */; }; - 2D294C215F324510375F702DB4AF9F05 /* SDLNavigationJunction.m in Sources */ = {isa = PBXBuildFile; fileRef = 58F3751CB279F04FD7904D88ADC33AD9 /* SDLNavigationJunction.m */; }; - 2D8B55A1BFA18EB1E3CB14D6FCE09063 /* SDLAudioStreamManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 74E065CD49B4A598CACA6C88D69006AC /* SDLAudioStreamManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D8DCB5B9AF6C9F4FE1CB0366FCDFD7E /* SDLButtonEventMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 359E694B54914987D0F5C484CDD1B988 /* SDLButtonEventMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DB08513DEEDEF75DC9B4E14E2472368 /* SDLClimateControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = B1AFFBD09878FE64AE19E65AB5D0D9D0 /* SDLClimateControlCapabilities.m */; }; - 2DB78F6080F090A8961C26B799153455 /* SDLDeviceLevelStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = D39069B46FB5C4AA3C7B4F149BC3A9E8 /* SDLDeviceLevelStatus.m */; }; - 2DFDC4AD6962C73978FDCB69788CB03A /* SDLAddSubMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B5A4E5EEBEDE007C98C3E1449D1236B /* SDLAddSubMenu.m */; }; - 2DFED5B1E18F9EB68F6D688C9FF399EB /* SDLIgnitionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = D389BD4118B81FB0470D538239B59E34 /* SDLIgnitionStatus.m */; }; - 2E635C926F57C5CF8AC735F9DFC10B19 /* SDLAddSubMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D4BA9AEA9F55ABDD3453605BCA0C84B /* SDLAddSubMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2EBDB2DA3424BF2FD4965273F2F4CB13 /* SDLRPCRequestNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = C4DE74679FEA4D70BF5121E2F06EE9C6 /* SDLRPCRequestNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F4E80B19F313DE275BF8A4C380F0F74 /* SDLDirection.m in Sources */ = {isa = PBXBuildFile; fileRef = CFB9AA79201C2D9C76506FEDF237FF2A /* SDLDirection.m */; }; - 2F7BDF1B09192128D071307D6B0D96D3 /* SDLMenuManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = EF925E86FABB82836176E8B05534DE9F /* SDLMenuManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 301FBFDA0A54CC473E7A55F7174A1827 /* SDLSetInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 628B5DC307A9450A056D106EF2EABD94 /* SDLSetInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 303F0EB9B270569385EE922355BB7E3D /* SDLDeleteFileOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E8F3EE9F30783B26AA56961091BF72E /* SDLDeleteFileOperation.m */; }; - 3070702B8B93F00CC702230E08A81478 /* SDLIconArchiveFile.h in Headers */ = {isa = PBXBuildFile; fileRef = E958081595D9D09F94B5A4E61223D317 /* SDLIconArchiveFile.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 30A46A62B4A22B6AFE3B7369879FCB46 /* SDLEncryptionManagerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B2C77A2D099C8E8D0415A41140C39 /* SDLEncryptionManagerConstants.m */; }; - 30D65525229B09FA9CFEBD81B8763C7B /* BiSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B4B09C9B8D6AB14F61330FF6FB8E3257 /* BiSON-dummy.m */; }; - 30F56DD16FD5AC410C8EC40453FD8C34 /* SDLClimateControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 96ABA69015D9F51A879DB818FAE3605B /* SDLClimateControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 311D7778EBE0EF8015E83B8D32D389D0 /* SDLOnSystemRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 503A41DB589BA9EC2CCA4AB7017329EF /* SDLOnSystemRequest.m */; }; - 3135F7D1FD60C81070DDDE6DBB4B7427 /* SDLHapticRect.m in Sources */ = {isa = PBXBuildFile; fileRef = FE62CE2C7E1A9C2C2276D29ACDE4392B /* SDLHapticRect.m */; }; - 31439E62B01AE8A36809C187E695C6E9 /* SDLPreloadChoicesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = E0CE6739547F25EDD5501E95B62ABE3A /* SDLPreloadChoicesOperation.m */; }; - 31C87220F6131D5D232FF0238894771B /* SDLWindowCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EAD2E9892034B9E96D9C73757CC2DE /* SDLWindowCapability.m */; }; - 31DF1B2C4244986AE7B049BB6B21B1BA /* SDLGetAppServiceDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 378EBD7F1E0220A44E552335CBA83F26 /* SDLGetAppServiceDataResponse.m */; }; - 31FA9389F01B517A21968C079FB0F7AF /* SDLTemplateConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = DCFD55E0C6865C089002A13599E34D97 /* SDLTemplateConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3232318E389CA8A1E52BAFA5F2C1F6ED /* SDLStreamingMediaManagerDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = E6D5D0212AEA8F2CF6AEA8DAD32868E0 /* SDLStreamingMediaManagerDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 329C6036FBDB55CFD9E1982FEDF0B431 /* SDLLifecycleConfigurationUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C52C7F9DFB04519EEFA548FB3DAB2C /* SDLLifecycleConfigurationUpdate.m */; }; - 334D229652DFB8A0950B16CB079B9FC1 /* SDLStreamingAudioManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BC802E860BD6A7F3005C68FFE4ADE0 /* SDLStreamingAudioManagerType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 337A6486B41B81121017894953322C2D /* SDLNavigationServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = CB10D3679A8E589017A8F931A055A746 /* SDLNavigationServiceManifest.m */; }; - 33ADC9641FFA2C3C5D4C3CB29270E2CA /* SDLAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E836B2993410EB417C2123481A4E6CD /* SDLAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 34173D2DD70127DF62B75CE23A170982 /* SDLSubscribeVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = A10396D9F0A4682A819D005885FDA4D6 /* SDLSubscribeVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 342C8E76BD027C866688E49E07922DC5 /* SDLCloseApplicationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 71BBFBB7A0760A4443CBB21CA252E8CB /* SDLCloseApplicationResponse.m */; }; - 34B32B0474B72819A6A6C8C158645D81 /* SDLSetAppIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = EA623EBC3192894DD618538B8DE469FD /* SDLSetAppIcon.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3517FA25C26876DD57DDCCF67ECCDF39 /* SDLOnAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A97648721B27DE7C06C2FD5DEE52543 /* SDLOnAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 355AD62388FCF6C80A11237D40D38F47 /* SDLPredefinedLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 09462E66A2B03CC7B6CFB922D8AF3709 /* SDLPredefinedLayout.m */; }; - 356FBEDAFC9DE9CE10B94CCE35ABE585 /* SDLConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BC8BBD75E4ABF360800CAA3D4E00485 /* SDLConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 359DB004D8FFFCA81496A2589BF9C102 /* SDLSetDisplayLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B79F919E881908F7E25787F89119DDB /* SDLSetDisplayLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35CF57427874A819B9E1285661D32347 /* SDLLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 286D40C6D0DF1F4E4AAA22A91CA707E1 /* SDLLifecycleManager.m */; }; - 36CF5F6B96A767D0582D629A37F445D9 /* SDLSetDisplayLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BE98A3AA92E8E3B7CED340B5CCAE389 /* SDLSetDisplayLayout.m */; }; - 37C103C2A55DB3911D4BCA00063446AD /* SDLOnKeyboardInput.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DFCB575AA035436B66797EA08EFAB0C /* SDLOnKeyboardInput.m */; }; - 37D70E272826FAD2A7459E3052927215 /* SDLVehicleDataStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 406D36F0D5A4360A34D547F29DAEC507 /* SDLVehicleDataStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 37E2297CE2C16488DF70FACD9E4D9A42 /* SDLManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6390AF2F2F40CABD81E416ABBDB1DA38 /* SDLManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 38B84FE054DC605D69AC886B4BB4AFB1 /* SDLMassageModeData.h in Headers */ = {isa = PBXBuildFile; fileRef = E36CCB25374711839E0FBA532EF81EC0 /* SDLMassageModeData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 38DBBE38509CC185A4FFDF3FAB2EF403 /* NSBundle+SDLBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = 93636199EFDA841EF4C2CC4859CE2B6F /* NSBundle+SDLBundle.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3996BA8EF0729BA4914A1E52A157D86D /* SDLSoftButtonManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B773DF4090413C4A96873F27804F6FE8 /* SDLSoftButtonManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 39BA1E6BF24E49F7DF63A57C5D2F5F66 /* SDLDistanceUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = FBF8392198B21FE38EBE90F5DD79437F /* SDLDistanceUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 39F5E52B10B43B5EA8AE72BE10430DF3 /* SDLResetGlobalProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B25BFBB7743CC1BB55BB0A462DC320E /* SDLResetGlobalProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3A00ED6EAC8495E2A78104DC2DFB2C6B /* SDLMetadataTags.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AAE3DEF47FBE1D573CA3230BBD12E26 /* SDLMetadataTags.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3A72A19314E3CB64935731A4EFF2E8F2 /* SDLPerformAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = 56B207D8614F79DE603BFA47589AFFD6 /* SDLPerformAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3ACD9797CEF78B50A3D83645939DB07E /* SDLVrCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B8342EC5F8546285C0DB1E40C10C12E /* SDLVrCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B0ACE0BF82CAB30ED1ABC54F39CB5DB /* SDLDisplayMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 07643F069443483408E8DF939B35C281 /* SDLDisplayMode.m */; }; - 3B7033C9D6CE86470B95F2C51B9400EC /* SDLFocusableItemLocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EC447A9F44C626EE8F180C4FD1F774A /* SDLFocusableItemLocator.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3B72322E9621369EC860A18E67637976 /* SDLRPCMessageType.h in Headers */ = {isa = PBXBuildFile; fileRef = F8C42B1050E473F7203DF663AF91285E /* SDLRPCMessageType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BE2CD266829ABCD9AA01020133A08D3 /* bson_util.c in Sources */ = {isa = PBXBuildFile; fileRef = C1D81050F28D62B6EDECEBB7DF2391A0 /* bson_util.c */; }; - 3CA592C06FB203D552B3F6D89E1CA318 /* SDLPowerModeQualificationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AA9EBE70B104558299E530D51210C27 /* SDLPowerModeQualificationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3CE9948E64E6E23127278086C3CE3D2F /* SDLHMISettingsControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 94D396845FE301C9BD090468079F6BB7 /* SDLHMISettingsControlCapabilities.m */; }; - 3D3BEA2BEB9CFCE1B220AD7DC31B9A83 /* SDLMediaServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = F2294C32AA5333D43982A700A5D97711 /* SDLMediaServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D8726A061E96537E54E7276ABE0F8FB /* SDLControlFramePayloadType.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBFC65AAAB2DE0ED2B74F8CE3002306 /* SDLControlFramePayloadType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3DF594F7EBAEC2D9B4C672D8E54BC8EE /* SDLLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 434F7E258AA1DD104EC3CFB0E53CD4F5 /* SDLLightStatus.m */; }; - 3E5E415918576021223E72FDEF0A3C9F /* SDLError.m in Sources */ = {isa = PBXBuildFile; fileRef = B4979E6424D2B5B676846623A6C7D4ED /* SDLError.m */; }; - 3E79998B5C40E4AC8D1794F26E7C453B /* SDLPhoneCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B6F9761E83A66A7DFFB1E6866464197 /* SDLPhoneCapability.m */; }; - 3E84DCB02F0A0F92DEE9F035C7419B7C /* SDLUpdateTurnListResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7252AE8CFD85B98CF08E197488052DC1 /* SDLUpdateTurnListResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3EA94155B7EC5117E704B30EF66256D4 /* SDLComponentVolumeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B49CB8BCE22DD2B4CF1B57ACC983DCC /* SDLComponentVolumeStatus.m */; }; - 3EE109E86F504C8541C3781EAA536C33 /* SDLPresetBankCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 79ABFF6CAF3C11C17386F29E3C4F6561 /* SDLPresetBankCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F4AD047267732B8620595C92A211626 /* SDLDateTime.m in Sources */ = {isa = PBXBuildFile; fileRef = C318BCF5948BE73D137E480D096B323B /* SDLDateTime.m */; }; - 3FAD343C0F867C2097B12804C5907DB6 /* SDLOnButtonPress.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EC3AF92A0155AA2A2E679263C15CA4B /* SDLOnButtonPress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3FDD76D86DA6E85561401E00FD5A9C75 /* SDLVideoStreamingCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F549F3D9954F40A97B6921D59DBDCC /* SDLVideoStreamingCapability.m */; }; - 402FE8CEBCE2DB4FF9430C97EE3B5C7D /* SDLProtocolReceivedMessageRouter.h in Headers */ = {isa = PBXBuildFile; fileRef = 41001F8A8E38A09CC2782EDFC033C7A4 /* SDLProtocolReceivedMessageRouter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 40350EC1E0C7771E44C6BA8DB22C3666 /* SDLPerformAppServiceInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = A288A63276C3C43A527ACA059A0ABBA3 /* SDLPerformAppServiceInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 404425782FA399BBF0D7E2D3D4591B81 /* SDLGetVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A4A0AB3F4FBC747F8A9BF2C7F38F20B /* SDLGetVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4076BFBF65A4A2046591AABC91A028F4 /* SDLDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = F453F9BFB3B93AA2625EE2FBBB625D24 /* SDLDeviceInfo.m */; }; - 4138B2ACFD9C35D69ECFF36B8D73988E /* SDLStreamingVideoLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E7D643B6479CA671FCC68F8D9B079FE1 /* SDLStreamingVideoLifecycleManager.m */; }; - 418915792BBCF4558CC5AA1618DCBF3E /* SDLDeviceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = C8CB8529A9386D82BBB3D5191EF06A18 /* SDLDeviceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 41942EC4AE2AF408EC4FAB078ACBE980 /* SDLGetSystemCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F85105DF89C5A00C24011ADD2F11E33 /* SDLGetSystemCapability.m */; }; - 41A90106B4715AB967B0EC05FBDA2539 /* SDLMediaType.h in Headers */ = {isa = PBXBuildFile; fileRef = 99260C97979258B09198B8E093019FAD /* SDLMediaType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 41ACFBF95F2E17E58C237CE67A1D6C68 /* SDLFuelType.m in Sources */ = {isa = PBXBuildFile; fileRef = F7901CE8B0D66BE7D80603D36AC4C9F0 /* SDLFuelType.m */; }; - 41BD6912F45B73EA88F91D8FF36470F3 /* SDLEmergencyEventType.m in Sources */ = {isa = PBXBuildFile; fileRef = 56BD8841DFE8B3FBBC4A5C4D08264F39 /* SDLEmergencyEventType.m */; }; - 41D046D2EAD5760794D0459A8316D66B /* SDLDynamicMenuUpdateAlgorithm.h in Headers */ = {isa = PBXBuildFile; fileRef = 59E9E6DA852CDB3807D696B60E051419 /* SDLDynamicMenuUpdateAlgorithm.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 41D0EF1CC1302A540C682C2BB821A8D6 /* SDLFunctionID.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B8EFD1CF76083158407FC36B8E116EE /* SDLFunctionID.m */; }; - 41F229081EA3B2C8DD97C7847EA59C00 /* bson_object.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = CCF1E88FAC247087B1D04D8DC970BE73 /* bson_object.h */; }; - 4229C388D87E44653544F9B367D91B03 /* SDLGetAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A54A6815830D84DACA174DA5B066347 /* SDLGetAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 428B9550A0F15A2B8F5584900093F8C0 /* SDLLogFileModule.m in Sources */ = {isa = PBXBuildFile; fileRef = D7857EF566BA1394F763413B59EC6BC7 /* SDLLogFileModule.m */; }; - 4309DAF1A0EC9BBBFCB7FC4B2F73FBBA /* SDLDisplayCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A9E6530D498F353F0F09932DF6E0EAD /* SDLDisplayCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 43431BFF32039C6CFBAAB8C71D13EB79 /* SDLOnHashChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 812DC2376AB84B8D759BA7BDEBA1D186 /* SDLOnHashChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 434437D79AF1D372D6D67496B72D1358 /* SDLLockScreenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AE76BA22D74D21AAF31A4BC6C4C57F1 /* SDLLockScreenManager.m */; }; - 434BB6186E1C616AAF51687143FBDF2E /* BiSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C64A1B5B79B529141EBEF99FD0560328 /* BiSON.framework */; }; - 435A9A8FBEC0AD2E8B7B46BACE464E00 /* SDLIAPDataSession.h in Headers */ = {isa = PBXBuildFile; fileRef = B4CDAA4EB638051C5A0474B84B73471A /* SDLIAPDataSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 436DCF518BC654B893E3567925A97D24 /* SDLPRNDL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C2EDACE6ACD4C977F1501873B8C715C /* SDLPRNDL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 437AE1029BE7E84D5C77531F19999CAD /* SDLSubscribeButtonResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F8013668A1A4E9A3111D5B2E843FBA13 /* SDLSubscribeButtonResponse.m */; }; - 43963E4F4E8BD7A5A13BE8BC32F2D88B /* SDLWindowTypeCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = A70CB0DAFC9A084992447D811A756878 /* SDLWindowTypeCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 43BFE80CE7C858FF07FF9056216D5ABC /* SDLOnCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 51210DA0C1436DDB81E521EBA6EADBC8 /* SDLOnCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 43C00FAF5B815417E2E4CA652CBD4221 /* SDLObjectWithPriority.m in Sources */ = {isa = PBXBuildFile; fileRef = D70663478539E6AEC0CB55388F533D99 /* SDLObjectWithPriority.m */; }; - 43E6E27A903694B9A5668A5E2E3AE7C8 /* SDLProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 092B1D219F562512D83E15E5DA0F4859 /* SDLProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4420163C672AAF5B0F6472F0F13B41D5 /* SDLDisplayMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 05AC4D2805528F742A66D7477F43714E /* SDLDisplayMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4422E4ADFCEA142E06C698B954D88413 /* SDLSetCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = FF58817A16825E97C73749864272841A /* SDLSetCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 44688FDFE801EB640910E77BCD4676C1 /* SDLUnpublishAppServiceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 755EC40C9CDFD1F64E17F5F7B58C3FFB /* SDLUnpublishAppServiceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 448960757DCCD0251887598DD98C7721 /* SDLMassageCushionFirmness.h in Headers */ = {isa = PBXBuildFile; fileRef = EE3BD31D681144934CA751D4EBE59FBE /* SDLMassageCushionFirmness.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 448C6E33A3018444FFF0D83F5FAF4419 /* SDLInteractionMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 888125F9D139D66C74276506032B1A88 /* SDLInteractionMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4493C9382CEFE5A8B0545A7C08E6B87C /* SDLResetGlobalProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 74686EC68A889701EFD2843CB7AED2F1 /* SDLResetGlobalProperties.m */; }; - 456E753731B63506DBE8906EE694AB5E /* SDLOnPermissionsChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 64ABE3A5D90ED6ECBAC18ABA973D85CA /* SDLOnPermissionsChange.m */; }; - 458BF4D2B838994829BFBA9D69641434 /* SDLSoftButtonState.m in Sources */ = {isa = PBXBuildFile; fileRef = 91385E176713F556761B0AF1EB7AA94C /* SDLSoftButtonState.m */; }; - 45D24D3189F7695C51AAACC2A4171DC5 /* SDLSoftButtonTransitionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 84E5BF87FD6C342013333DB77ACA1E7C /* SDLSoftButtonTransitionOperation.m */; }; - 45E4823DCE75519D98AD45B17EF4144A /* SDLMyKey.h in Headers */ = {isa = PBXBuildFile; fileRef = A56BE725C12073F229AA3AF5449958A1 /* SDLMyKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 45F55718ACB758E98BA2735A380DC37F /* SDLUnsubscribeVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AB0ECB1844711AAB00BE85D75CDB9B8 /* SDLUnsubscribeVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 460A09BF2FFCEB9D00FFB58ECCF7F7C1 /* SDLSoftButtonReplaceOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 53B9D390255C9D726244342D1F11DB4E /* SDLSoftButtonReplaceOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 46300F41ECC56138DAE8F56FEF10E7B8 /* SDLCompassDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = CCF47A553221E3AD83C4363CB7B81894 /* SDLCompassDirection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 46460D60D382738558332EE5529E7BEF /* SDLSpeechCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = BEF6EAE77CAC2466EB562CFF77920BCC /* SDLSpeechCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 46668785EC2A839C027BE887D6598241 /* SDLResetGlobalPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AB4971438A6A699BC2C1C2BEDAA999E /* SDLResetGlobalPropertiesResponse.m */; }; - 46CB9EA98028EF5643189A044EF55FA6 /* NSMutableDictionary+SafeRemove.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FFF9A629644A4A7222767D6C63D7E24 /* NSMutableDictionary+SafeRemove.m */; }; - 46E72DA12639145BA10361DC9CB2EF60 /* SDLGetSystemCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 658B5E74262239EB89838E06BCDA0669 /* SDLGetSystemCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 46E7DEEBB97AD7240942419DE6B6FBCC /* SDLVideoStreamingProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = ACD66EC9F2852429481A7BADD06F50A5 /* SDLVideoStreamingProtocol.m */; }; - 46F1D5E0135F13C261F3FA1128102B3C /* SDLMediaType.m in Sources */ = {isa = PBXBuildFile; fileRef = 87B650D370D62BF0EC67E9AD42F6E22B /* SDLMediaType.m */; }; - 480BCA1C16557CEEEB35054063CC6C07 /* SDLSetGlobalProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FD900A135D822B0C46DB3FC2398B8BC /* SDLSetGlobalProperties.m */; }; - 485EB884477F1C792D748D9760C80F96 /* SDLPermissionElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 2398A5BA455B24EEA12F22248F56CB41 /* SDLPermissionElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48C57C43B0748423EFC4685C4907DEE7 /* SDLUpdateTurnListResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = CA4E2E2D6448CAAB671EE663AF8C9038 /* SDLUpdateTurnListResponse.m */; }; - 4913A753E7AE009D299D2B0C42BC49D2 /* SDLGetWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EE2D6F35E8ED91165271F62FB1A31AB /* SDLGetWayPoints.m */; }; - 494D14787586F8CF5AD27828DDAD1EC9 /* SDLRadioState.h in Headers */ = {isa = PBXBuildFile; fileRef = 1036AF4390ACFEC2CFCDA61FA0498E28 /* SDLRadioState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4955A39B2114E75169CEF9B9F85534C6 /* SDLRectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = D693943ACF1FD2282F38E0EAA87D03BE /* SDLRectangle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 498DE56DFEC17537625C394BB3B725B3 /* SDLGenericResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 96BEB464EEABED67F857FCAA31784297 /* SDLGenericResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 499C36B26E6CAB22A022386A12660DB8 /* SDLGetDTCs.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B7024D8FB7FFF140C2B02CD06A30621 /* SDLGetDTCs.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4A3B8C054EFCF528CBF4ABB1AC3DD93F /* SDLSoftButtonReplaceOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BF5D3B07CABB0353EF64221323FB214 /* SDLSoftButtonReplaceOperation.m */; }; - 4A57A7C0739E81694973E20F0A5E6F86 /* SDLWeatherServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = 95B6BE3E72235AC592C06AF8A4F665F9 /* SDLWeatherServiceManifest.m */; }; - 4AB3A964E345CF3E0D5ACC1A63991290 /* SDLSystemCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E42A8B49F8AA2A40213699E2A1C40BF /* SDLSystemCapability.m */; }; - 4AB72D0E36873D1317F92EEC019BDF58 /* SDLVehicleDataEventStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 17117CBD93690A080777FF3CCAB14EBF /* SDLVehicleDataEventStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4AD88CBD9DFB871BC60464B1D464C126 /* SDLAddSubMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ECFA9EC3D76BE7DB5AA4AD25DED7262 /* SDLAddSubMenuResponse.m */; }; - 4B0660F894928C9F214F03C6483D8351 /* SDLMenuCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D547BCC4DEAD1C428EDF45B037D5201A /* SDLMenuCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B75F9DA99F98B193944890144BD5988 /* SDLServiceEncryptionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E8EAF599769D42519D9B2A60644B86B /* SDLServiceEncryptionDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4BB3C3F4C43F262E62FC10A2B90C5509 /* SDLEndAudioPassThruResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C89447CA3A2D998A71484D9D7EEC0D6E /* SDLEndAudioPassThruResponse.m */; }; - 4C7E24A221E96927418CE33F08F14A05 /* SDLBeltStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A279D9C92C4169FF98A476AB715168EB /* SDLBeltStatus.m */; }; - 4C93079B440925D756A0573344DA4D96 /* SDLAddSubMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FBF01691FA6A64E8B91B258A087254D5 /* SDLAddSubMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4CB22235F686471AAAB40748D9D5A4A9 /* SDLOnButtonPress.m in Sources */ = {isa = PBXBuildFile; fileRef = 79B7A63E7628613EAA9F22EB4C339E89 /* SDLOnButtonPress.m */; }; - 4CB426F09D090C57A0C0D743F5A802B1 /* BiSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF2016A9D7AE38A97F83A8E40300735 /* BiSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4CCED9A1BAF149906BF8742B1D33B3FB /* SDLWiperStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 971F3693D99D4DF5AB6B162D6026730A /* SDLWiperStatus.m */; }; - 4D2E68E344832556024E6BCCF039EF08 /* SDLTemperature.m in Sources */ = {isa = PBXBuildFile; fileRef = CDCD325FB9D69CF0D80F1C46381EEED5 /* SDLTemperature.m */; }; - 4D33761F1DC2FBE91EDDDE215A1E6959 /* SDLDeleteCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 41D2FDD18C0EC502F3D54359F05AEA12 /* SDLDeleteCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4D56160493B136A03CE409F6C79B8A52 /* SDLSetDisplayLayoutResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 491D8037228A91B41497B86D86B203FA /* SDLSetDisplayLayoutResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4E7FE570BC489D0CD32A6D0E4CF82ADC /* SDLNavigationServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = E28D7727C696BB6A9A719269ED72550C /* SDLNavigationServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4ED3CA7455F452C244BFBB3489AE5429 /* SDLVideoStreamingCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = EB17B3E359DDDCA44BC834ABB8C6C3B8 /* SDLVideoStreamingCodec.m */; }; - 4EEA7E1F5B0599432045D965A5F0F853 /* SDLCarWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C7358A46E79FC0C9BC7001B0A76870E /* SDLCarWindow.m */; }; - 4F0E6A9D816AA18B7EDE637892AAB4EA /* SDLEnum.h in Headers */ = {isa = PBXBuildFile; fileRef = 719DCAF92882EA100E2C8795B42C2678 /* SDLEnum.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F106B6602723F06DE807FEC15B46F84 /* SDLViewControllerPresentable.h in Headers */ = {isa = PBXBuildFile; fileRef = E6D1FBD011D035D23562FC050633E575 /* SDLViewControllerPresentable.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4F25F4D7F19E1F2FC5B08AE99801DAE6 /* SDLVentilationMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A6B3017F1431C58D97751955A16C720 /* SDLVentilationMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F65E2C7B4EA078E55DEE34B47EEFFAA /* SDLGetCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = CC79D886FC0B1F4F59AC179912B3288C /* SDLGetCloudAppProperties.m */; }; - 4F7B3FACDC968EEB28DBBDE1A4B118D2 /* SDLAudioStreamingState.m in Sources */ = {isa = PBXBuildFile; fileRef = EC880BF5EFC8FBD9AB4F63EEC9191983 /* SDLAudioStreamingState.m */; }; - 4F7C9C4E30D040A4AB32FE05BBD9001D /* SDLAsynchronousOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = DDE558E5D0448F16F7A74A931431AA9C /* SDLAsynchronousOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4FA65B210DE99D64030605C9E769AC05 /* SDLAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 5307CCD102337C9C53D4EFE667B761F4 /* SDLAppServiceData.m */; }; - 4FAF9E8D38594CDAD8143CA6370F6EB8 /* SDLNavigationInstruction.m in Sources */ = {isa = PBXBuildFile; fileRef = BCACAA14FF60CF41338964A0B4EB8421 /* SDLNavigationInstruction.m */; }; - 4FD30C228C4C7D31C57D36865C45DDE1 /* SDLIgnitionStableStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 06303A86B1B729A73E63863D21AF2925 /* SDLIgnitionStableStatus.m */; }; - 4FD8B4B6CFA7CA9726828141B0A48F5D /* SDLOnRCStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AE9EC548FF21C32A33D465E73564DE4 /* SDLOnRCStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 500FD152C9497C38BE0B36C857027D6D /* SDLTransportType.h in Headers */ = {isa = PBXBuildFile; fileRef = 2559C479FF5977A46C191A0DF82F5A42 /* SDLTransportType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 50676B3E69F865A99F78CB8BF3C1FDE0 /* SDLSetInteriorVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C6706EFEDF66F1A0AD318CAF53CE694E /* SDLSetInteriorVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5074ED2355E751C3B61FB476B87B59C9 /* SDLFileManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BB6D4E91D8A0F98864787DB620D6AE0 /* SDLFileManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 508DAE5023F694C4CD2E7867B3CE6F56 /* SDLSoftButtonType.m in Sources */ = {isa = PBXBuildFile; fileRef = 248505262AF0D2F58A9D246BB6C6BD84 /* SDLSoftButtonType.m */; }; - 50B469336EC4B317FD37E4F3DBD146E5 /* SDLTurn.m in Sources */ = {isa = PBXBuildFile; fileRef = C7416C95E6F086E3A8112582FBA43F5B /* SDLTurn.m */; }; - 51DA975E13B256C4B5D1FE787629B5A3 /* SDLPredefinedLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EB901BBD8CDB6EBCBAE64DA451A00CC /* SDLPredefinedLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 51EF218E3562B0C1E47C1404A923C604 /* SDLPublishAppService.h in Headers */ = {isa = PBXBuildFile; fileRef = 34CAA3D2C0E052E3DBD4E08D86483AE3 /* SDLPublishAppService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 524FC58075C102402E54D6C9D2B7EFF5 /* SDLFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D2F8D638111E1E1C919E161F33554DCC /* SDLFileManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5302244179BF6A0021E20261F7B0C3DD /* SDLMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E264BEF6A4FED13F137E6FD85DE5CF5 /* SDLMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5308F5ED1B015EB8DB777A56AF97B611 /* SDLSendHapticData.h in Headers */ = {isa = PBXBuildFile; fileRef = 22F7A01AE367466B8917F5FEBC8F9D1D /* SDLSendHapticData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 53892E3772E852A7278E75A75D3CB2B2 /* SDLPerformInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DF843EEBBB30D7B7389D88A9A97026E /* SDLPerformInteractionResponse.m */; }; - 53BBA1FD281AA378016607203506D143 /* NSMutableArray+Safe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9470359FA084F4E00E48F9FCE83F58E1 /* NSMutableArray+Safe.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 53BC9C01093F61CF20D0CF465FA37E8F /* SDLWeatherData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CD719AC3C9050D19676E1840EB584D8 /* SDLWeatherData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 542276EFF16755D0D3022600FB995EB8 /* SDLRequestType.h in Headers */ = {isa = PBXBuildFile; fileRef = A775F59AD389385C91183BEAF59C659B /* SDLRequestType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 543478E1D2830917285505E70CC177C6 /* SDLLocationDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = 19B1A83A55BD6197AA3C2050EDA2EDB2 /* SDLLocationDetails.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 54E2E06940B5DF1F43FCCDB95FBC7852 /* SDLTouchType.h in Headers */ = {isa = PBXBuildFile; fileRef = 3364DED576C91F4B3E9543F8E3F1D22A /* SDLTouchType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55BC0E64D4A51021A93FB2D763F3BF9C /* SDLFuelCutoffStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 390D7DC13089AAF192CF47CA92343067 /* SDLFuelCutoffStatus.m */; }; - 55D5D0856115578A202D59702AEA852F /* SDLProtocolConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EAA73147795978ABCFD9E0261FFCAA6 /* SDLProtocolConstants.m */; }; - 55FEF4FF43C2FC907DCB0ECC9AB94286 /* SDLDeleteCommandResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AD71C120072B2C90332685ABC447D8B /* SDLDeleteCommandResponse.m */; }; - 5680D0D1D06F3D3B54396D398B8A417C /* SDLPerformAudioPassThruResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FBC39295240049B5FF46205827728BFE /* SDLPerformAudioPassThruResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 56E5FE374352C392DC8E51B09AF1BBA3 /* SDLDeleteWindowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = E6676C50EEF5E1C69FF7D27A9C87426A /* SDLDeleteWindowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 571CEBE5B6BC6AA08B580FE03D8C64F2 /* SDLVehicleDataNotificationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B006F22A5BF2027E0B3A10A8332C0AB1 /* SDLVehicleDataNotificationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 571DDD47BD1560C506A2C8CFF60B6F02 /* SDLChoiceSetDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7E2467D5DC2019F260BD475A53CA1F3 /* SDLChoiceSetDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 572EA07632A1B4FD40F4BAF78A817413 /* SDLChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 515C64D6ED07705316C7A0B26C4DD75E /* SDLChoiceSet.m */; }; - 573384DD9BADD8F3B332668BD49F2C29 /* SDLGlobals.h in Headers */ = {isa = PBXBuildFile; fileRef = 341C430BE22913BF9CA0B57997C20BE1 /* SDLGlobals.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 574EFD25DFDD6AF16AF2031CFC0AAA81 /* SDLTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = DC368A37A25AD64AC69F460E5EB32339 /* SDLTextField.m */; }; - 57675316F7DF755DB77B03DF5D82077D /* SDLIAPTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = AF87D39D8C17C6A34DCC703C68689E08 /* SDLIAPTransport.m */; }; - 5785685CC981419E5FBE990997285980 /* SDLTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = FCEAF8E21008989F4E1DE6BF04801187 /* SDLTouch.m */; }; - 57B2D46DB78B0D4D338E57C1D4D4D5CD /* SDLResetGlobalPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BB2A05D1451A32684E59CFF3328352 /* SDLResetGlobalPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 581A00BAEB05979C1FA7426A48471335 /* SDLFuelRange.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9731F0EEDD01B488AE412DDC732A15 /* SDLFuelRange.m */; }; - 5850EF9B044637368E9F6B753DA1661D /* SDLMassageCushion.m in Sources */ = {isa = PBXBuildFile; fileRef = 144A510FD012E8B3D68672FACAD74C3D /* SDLMassageCushion.m */; }; - 5870BC9B944DF757D12AF66ABCBD3708 /* SDLListFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 55E435B983612931D00E4E0BE0F83314 /* SDLListFiles.m */; }; - 58A5861410B7BAB3BBD9D1A84DB8EB2E /* SDLSystemCapabilityType.m in Sources */ = {isa = PBXBuildFile; fileRef = E98EB0FB9B881074126B6496AE6EE4A6 /* SDLSystemCapabilityType.m */; }; - 58C4CBE7BAAA82F67DBAC49F2E5788BC /* SDLAlertResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D4105D8C883FAEA6442789492798AA6 /* SDLAlertResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 58CF8CA453B2AB8AA13CB2D31A23C62B /* SDLPermissionElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 70BFC55E36D45F3E9FDDDA27271DB651 /* SDLPermissionElement.m */; }; - 58DB52B0C275C61237721E3D2AC4DAD1 /* SDLPerformAudioPassThruResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E18B248ABDE8B1FCC6F0DBC564ED42D /* SDLPerformAudioPassThruResponse.m */; }; - 58DE982C4E8188ECF4D6F251CBB29645 /* SDLStateMachine.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A7C79923DB7BE60A8C3C81172411692 /* SDLStateMachine.m */; }; - 5924A69A69D0AF8A3DAF58868969E1A9 /* SDLImageFieldName.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3100295E8CA323C777D8F2A6CC4D95 /* SDLImageFieldName.m */; }; - 5A05C8C3A39875B1AC0A46C18FAB7203 /* SDLUnregisterAppInterfaceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 95FEDB3A040A9AF27C4F297BB1D4B137 /* SDLUnregisterAppInterfaceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5A198FFEA19EF76603AB27CEB799AF79 /* SDLSystemCapabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 565B3BF287FB32FC25688D47A589EACC /* SDLSystemCapabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5A7F0025D46821A9392DC4115B746DF1 /* SDLFileWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 3108E6D3BDA3B4349EC02CCBB85B6307 /* SDLFileWrapper.m */; }; - 5AA6EC18B9143E9DC48FDBCCAF08EA1E /* SDLLightName.h in Headers */ = {isa = PBXBuildFile; fileRef = 0540D028CA350ED05CE0F5B10778ED6D /* SDLLightName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5AC2BBF2338C0E1AFFC9719B7F895930 /* SDLGlobalProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = AE6AE53069716EDC4D28271639B1ECF6 /* SDLGlobalProperty.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5B049E4888F5BCE4DC057D4E42C1F2D3 /* SDLBitsPerSample.h in Headers */ = {isa = PBXBuildFile; fileRef = C0150C2F6FCAEDCCE0078FFF6A5F9854 /* SDLBitsPerSample.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5B288148F0AFA6AB22190A0E1024367F /* SDLSequentialRPCRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = B1961973F2A5564B8E0FF5586067C528 /* SDLSequentialRPCRequestOperation.m */; }; - 5B471B072C46766C6029792C0D91040D /* SDLSyncMsgVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A60138A12628B558D512D97D89EE5B2 /* SDLSyncMsgVersion.m */; }; - 5B8C2645A7E114E40C5A2D8DB333C72B /* SDLFocusableItemLocator.m in Sources */ = {isa = PBXBuildFile; fileRef = 395C9056FCC2D6785467927C7C046C36 /* SDLFocusableItemLocator.m */; }; - 5BA9A54A41ED1A2C09132DD9EBD78C27 /* SDLDiagnosticMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 04612B443920F41D035644D3D5DCC4BD /* SDLDiagnosticMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5BC280DDA0CDAF30020BABBC7AC703E1 /* SDLIAPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = DE79CEA37357B6F9DD91B9559EEEFEBA /* SDLIAPSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5BC3AA186D38E4432C705AC60EB1E651 /* SDLOnDriverDistraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EF11FACEE1EFEF67EDBD239E3CFE981 /* SDLOnDriverDistraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C33B2CE1EF4650E175EF9E3AE1C7C72 /* SDLRPCPermissionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 09691EAC4A4C3B8C10A61F569A68E123 /* SDLRPCPermissionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C37346184074495446F9DB33C56CE01 /* SDLReleaseInteriorVehicleDataModuleResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BE4EE1D8BE9A2DCD428088444FCC1C8 /* SDLReleaseInteriorVehicleDataModuleResponse.m */; }; - 5C378A2D9ADBF6829478D771E6E57B2C /* SDLVentilationMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 810E44A8EB4510C42EDE2EDC43A78459 /* SDLVentilationMode.m */; }; - 5CF48848187250BD2DEF080316CAC9DB /* SDLGlobals.m in Sources */ = {isa = PBXBuildFile; fileRef = DE69A7B9DB57BFBF5BD9A2D76ED79B77 /* SDLGlobals.m */; }; - 5D9A8E36A8A6FB375DDF1B0521EADD95 /* SDLOnVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = B0B485F2DBCDC2B0D33BE35382C71715 /* SDLOnVehicleData.m */; }; - 5FB32668254EF921D8C9D5C0625A6C1E /* SDLSeatMemoryAction.m in Sources */ = {isa = PBXBuildFile; fileRef = C7F54D6509DB0FC7F6534EE13492D451 /* SDLSeatMemoryAction.m */; }; - 5FDAA1E19BCA3962C75A8383718C8C24 /* SDLProtocolMessageDisassembler.h in Headers */ = {isa = PBXBuildFile; fileRef = B1489C28FDE9BC04F3A6D6E52C5CCE68 /* SDLProtocolMessageDisassembler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6014038CC3B4CF7B9F8914B391B7A37B /* SDLProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 7513AD379CB357399CB9BF73BEF6E74C /* SDLProtocolMessage.m */; }; - 601CE9E6BD148366CDC9D03D30EEEC90 /* SDLResponseDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 64305656CE2B59145E9B70508EF743BC /* SDLResponseDispatcher.m */; }; - 60521D1FE88A1564BD108C0F62E69D9F /* SDLSendHapticDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EF82F8948A2C13108DB3E6BC79A6DA9 /* SDLSendHapticDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 608C377B709C7C5D8284B5331A22F2B4 /* SDLTTSChunk.h in Headers */ = {isa = PBXBuildFile; fileRef = A53632E3212C0B4683F082091768234F /* SDLTTSChunk.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 60F5AE17A02DF80CEE6DBF6E6413020B /* SDLDIDResult.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB1E250DE3E63DEB5019B86C69B0AF4 /* SDLDIDResult.m */; }; - 612C6E250B9D452F704EEE4B2A29F640 /* SDLReadDID.h in Headers */ = {isa = PBXBuildFile; fileRef = D976C60F80AF73BCF88057AFCC997BF2 /* SDLReadDID.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 61514DCF5A2A0366879CCFF8E1D53FCD /* SDLArtwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 78DB22A547F3877AFC6B9C4837827A62 /* SDLArtwork.m */; }; - 636D8C8EBB49829369E13843A86C0600 /* SDLPrioritizedObjectCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = EC6A18970938783F09F8FBF76216579B /* SDLPrioritizedObjectCollection.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 638357A247E8289D2E0CB7FB94483415 /* SDLOnButtonEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 121E4A108B2448717672CE50FEDE685A /* SDLOnButtonEvent.m */; }; - 6399449E25DF90657AF772C5241C419B /* SDLPerformAppServiceInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 267FA2C1E15499A2CD4854991CC471EA /* SDLPerformAppServiceInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 63A3F4D0CDCE1016D255C75D13EC7504 /* SDLSlider.h in Headers */ = {isa = PBXBuildFile; fileRef = F97131D44A7A2ED6C07482A31E5F6104 /* SDLSlider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 63C6BE616ADEE4D41DEDCC81327945AD /* SDLStaticIconName.h in Headers */ = {isa = PBXBuildFile; fileRef = A7AFAFFD39AE907E63F13217D5067A14 /* SDLStaticIconName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 63E91526EBD93C2EF19EA765829657BE /* SDLPutFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 73B13638D5FFEDDA542EB00CD057988B /* SDLPutFileResponse.m */; }; - 646AD977FC1D69B37D5E99F3FC282DF2 /* SDLSubscribeButtonManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 953643AF1E768FAB16D37AF6E1107ACC /* SDLSubscribeButtonManager.m */; }; - 64B4EB36C718264B16DFDF8D035A51AC /* SDLRDSData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E31ADF790B6CD458B58780AEEA2DC29 /* SDLRDSData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 64FD30538308F3AE59148DC736F72625 /* SDLPermissionConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A5780D6C351FCA2B9EBE2AD7E6BBFC5 /* SDLPermissionConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6536501943A353860D4FF7101CF32D06 /* SDLUnsubscribeWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 4722008FD5C647B6F89537D21F158386 /* SDLUnsubscribeWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65552455476E98C94CACB3A15B8AC48E /* SDLRTPH264Packetizer.m in Sources */ = {isa = PBXBuildFile; fileRef = D70AC7BCD19517CAE727871B85813F39 /* SDLRTPH264Packetizer.m */; }; - 659DAF3396869C71FF9FF49AE8096CF6 /* SDLOnLockScreenStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 84539D3623D9A251B4E5FA6AE4EFB0EE /* SDLOnLockScreenStatus.m */; }; - 65B80391203B29755940056CD7130299 /* SDLButtonName.h in Headers */ = {isa = PBXBuildFile; fileRef = 27C368EAA0D3AC1FA9ECDC2F63B9730F /* SDLButtonName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65D70E1DDF74B399D28ED6B4077F0FC6 /* SDLSystemCapabilityType.h in Headers */ = {isa = PBXBuildFile; fileRef = A256F032355513227EF3F0E7BC0D121D /* SDLSystemCapabilityType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 665ABE2154820B9CEA1EF0EC5B0B2E1A /* SDLLifecycleSyncPDataHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = D4DA5A5B16BCBD07008310F92C3960D1 /* SDLLifecycleSyncPDataHandler.m */; }; - 667DD157108EB7E1B946CE0B82C8876C /* SDLTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = B431E7802E17E1F281E75FF94AC70BB4 /* SDLTouch.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66932F4CC3CD23BFE1DFE816A405E5B9 /* SDLSISData.h in Headers */ = {isa = PBXBuildFile; fileRef = AB19EDDD4140C1BE93B38F0AAAD31A3D /* SDLSISData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66B27F474A7986812D213809F149E989 /* SDLStartTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F43B62FD5522EFA8F5EDEBE12238EC7 /* SDLStartTime.m */; }; - 66ED15B498C10845B6833F5B4A77C059 /* SDLGetDTCsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 36ABD04F09CB9E8C748573174EDFED6A /* SDLGetDTCsResponse.m */; }; - 66F5C089D30A9889D0F8BA63A8443041 /* SDLButtonCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E31DCCADEC394A9E791837B3BD64B501 /* SDLButtonCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 675A18616DA8321C848C329AEC19B160 /* SDLReadDID.m in Sources */ = {isa = PBXBuildFile; fileRef = 32F53530C42DC0CF82E40AB2BBA5E9CD /* SDLReadDID.m */; }; - 676C546E11B1621DE2BB157860876C84 /* emhashmap.h in Copy emhashmap Public Headers */ = {isa = PBXBuildFile; fileRef = D8937A5799CDE32614D2726C81F82818 /* emhashmap.h */; }; - 67B909C564FDC20E3CC8440E232B7001 /* SDLMassageMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B7301DAF575A72B748A49FDB3EB87C7 /* SDLMassageMode.m */; }; - 680C81B640507A0A2695AC221C995EEA /* SDLGetVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E238C3A14756784DF2389D96C274D46 /* SDLGetVehicleData.m */; }; - 6867184EB0DA4E64F43D2F30EB0488CB /* SDLEndAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = B1B7A6430BC02C0B52516656BA4B5DE6 /* SDLEndAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68A8266B19CDDD69DE77B14A45C13057 /* SDLProtocolMessageDisassembler.m in Sources */ = {isa = PBXBuildFile; fileRef = D8F4594E3083E428B64B683C182E3BB6 /* SDLProtocolMessageDisassembler.m */; }; - 68F509B411A9D21346004B2316F5E759 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */; }; - 6933E178872E557AFF58D48A5474FA58 /* SDLGetInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3088C13A654A2FE2C6AE29FAC85859A8 /* SDLGetInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69576725BB10F3D345CC93CF2BA3C019 /* SDLSetGlobalProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 894257BCE702D293AB8A34D2CFB19171 /* SDLSetGlobalProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69D9241B27BEE1A16D8E9C69304C610C /* SDLFuelCutoffStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DAA75FD4629A2D623ECDA3EE735764B /* SDLFuelCutoffStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6A63E3C69D4A0BD81FB87B9C5E6B9E88 /* SDLOnAppInterfaceUnregistered.m in Sources */ = {isa = PBXBuildFile; fileRef = B59517F7CBBA095EAF2897CDD2F95780 /* SDLOnAppInterfaceUnregistered.m */; }; - 6A87625EF2166A613128D2C3B2CD0EDC /* SDLControlFramePayloadRPCStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A11856FDCCC57B69B91D3F4F8AAAE92 /* SDLControlFramePayloadRPCStartServiceAck.m */; }; - 6AAE591F718CA3C4EEA021C92023D5EA /* SDLAirbagStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 57AFA95624C62EA40DCF7A4A52DA2D26 /* SDLAirbagStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6B0BACE25CB2A25AA900691BBAA33280 /* SDLPinchGesture.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C2B7CEA902C141170ED3DB6E93DDE34 /* SDLPinchGesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6B4E6D647A87B1240984B511FAE34F84 /* SDLWayPointType.m in Sources */ = {isa = PBXBuildFile; fileRef = F347411CD5DA8210885B978CC14AB768 /* SDLWayPointType.m */; }; - 6B7709E582D650713411B7209028BDE5 /* SDLNavigationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 720B6176093F9F84BF6916A0DC55B8C1 /* SDLNavigationAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6BB44F106B80C0DB9846E5EFD1476F37 /* SDLStreamingAudioLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 41304645E4705DE8828DD0B01D402863 /* SDLStreamingAudioLifecycleManager.m */; }; - 6BD16DA220DACD38E212853FEF3CFC3F /* SDLNotificationDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D7871125148142044AD48FDD6D7511C /* SDLNotificationDispatcher.m */; }; - 6C2EF741FAF06B5B273480A4E83B71A3 /* SDLPresetBankCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7529E322A5D70F236ACC18A43FC1DC0A /* SDLPresetBankCapabilities.m */; }; - 6C38405A146F50D74FC39F597AB204CB /* SDLVehicleDataResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 53C9FB09310F3715EB6A1F8329DEA635 /* SDLVehicleDataResult.m */; }; - 6C55CF78347F53006F8826D260640D04 /* SDLShowConstantTBT.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A10D8B7901189488B952CD3118CD658 /* SDLShowConstantTBT.m */; }; - 6C5B7C4935BC2EE9F988FBCB42082F22 /* bson_array.c in Sources */ = {isa = PBXBuildFile; fileRef = C34405251FE0562CCA9FEA6FC884A66E /* bson_array.c */; }; - 6C95A689B7F1C67945E65FF4D8A64113 /* SDLGetSystemCapabilityResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = F1474259B2634C2CA09FBC4E9EC0F197 /* SDLGetSystemCapabilityResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6CBCD999A12041B09FA345EACCE7D67E /* SDLMenuManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E75F183917254542C99CC42AA2CC3860 /* SDLMenuManager.m */; }; - 6D1AF4472A7F9C1B0A8C9300D17B1212 /* SDLSeatMemoryActionType.m in Sources */ = {isa = PBXBuildFile; fileRef = E56DF2253BB23B90018E5D9A59964BA2 /* SDLSeatMemoryActionType.m */; }; - 6D2A18A8F43141760C979EA5865D5905 /* SDLSetMediaClockTimerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C44CB14CFDBEDB6BE91BBEE9F2AEBFF5 /* SDLSetMediaClockTimerResponse.m */; }; - 6DBB70DED9927270DE107BB855A6561C /* SDLVehicleDataResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A6077950B867FA52904D60977A57F2BD /* SDLVehicleDataResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6E2D4B80A9BADA0A13B7E8FC6F25DB13 /* SDLWeatherServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 2338435A2FBDDD2CFAB4A28B846695F0 /* SDLWeatherServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6E3D28A6C67E2201C10090F45C743AC2 /* SDLShowConstantTBTResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = F618C99CCA734DA992DC8FF3AF0415BC /* SDLShowConstantTBTResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6E6860F1FC4E478A4EA8239F823DDB59 /* SDLOasisAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = ABC42E73E04AA89D2638CE5E086A0BAC /* SDLOasisAddress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6EE8571C87BCEC83176A0160B0235153 /* SDLKeypressMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 710DFC67FB36B6C8C38EE056D84223ED /* SDLKeypressMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6FA272F240EE747D4D5D69180A05B4A0 /* SDLOnEncodedSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = D2FECA407FF6E408DFFDA2B1B0C1992A /* SDLOnEncodedSyncPData.m */; }; - 6FCD89C21C9DABCA54C354123A05DA43 /* SDLPublishAppServiceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB2711FB405251BACF64A0A65EAE099 /* SDLPublishAppServiceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6FFBDADDDAF3EB0CAE0F592A4D57944A /* SmartDeviceLink.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C197364227C0998A9025317EAD699894 /* SmartDeviceLink.bundle */; }; - 703007E30FE5A04B2C59DE8467A15FD7 /* SDLDriverDistractionState.h in Headers */ = {isa = PBXBuildFile; fileRef = 60F046623D1338F618C008003CCE3C24 /* SDLDriverDistractionState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 703EDBB8AE959470D576A0D12F2108A7 /* SDLAudioStreamManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AFC9728863E515D3D032829F1D3C57F /* SDLAudioStreamManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 70496DDADFCF3EED7575045A94F3CE25 /* SDLSystemCapabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C320F686525DE123071E06FE38A4733 /* SDLSystemCapabilityManager.m */; }; - 704C315F529AF8A9C0D8A3956B143E30 /* SDLLogFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 034FAA8CE999DFA9139A4FF001EF3175 /* SDLLogFilter.m */; }; - 70641AFF8F162D96E9A8D15A25ED7DEA /* SDLAlertManeuver.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FC09BC7628BFAB7CD416C70D3F97726 /* SDLAlertManeuver.m */; }; - 70AEED633DCBAB9C33F9B4089A91EDB4 /* SDLGetInteriorVehicleDataConsent.m in Sources */ = {isa = PBXBuildFile; fileRef = BA017EDCE303A08B1FC07733F845ED45 /* SDLGetInteriorVehicleDataConsent.m */; }; - 70B31A172B881F2D7EC04BA2EC0D9440 /* SDLTextFieldName.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EE8C22DA5EFA161CCD704956C17C56D /* SDLTextFieldName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 70CF8E2FDDEF2C0826A194D233D72DF1 /* SDLLifecycleRPCAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 560110B981BC4B6770CCD1C3367DB69A /* SDLLifecycleRPCAdapter.m */; }; - 70E0209B95ABB6721B429C455413E1D1 /* SDLLogTargetFile.h in Headers */ = {isa = PBXBuildFile; fileRef = E395B89F16DB085EDAA307A77151A4E9 /* SDLLogTargetFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 70F0649750C5E9DBD1AFA36ACEF458C8 /* SDLAudioStreamingState.h in Headers */ = {isa = PBXBuildFile; fileRef = E06E125B93E154B8A67C00E35CF0FB9F /* SDLAudioStreamingState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 70FE1E9B6DDA7F6EB3CC5F29BF782158 /* SDLSoftButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AD7C4BC8864B7BD4E88BB4E14571991 /* SDLSoftButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 715A7299FB24EDB0B8C8566CACF275EA /* SDLChangeRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = B85B6A3BDFE2C9C0F9DE2E3DEDFAF475 /* SDLChangeRegistration.m */; }; - 7182F43C32ED6456BEBC1055352D96D4 /* SDLFileWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = E2FAAAE33D2528754A3DCB84CEBD7047 /* SDLFileWrapper.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7195E044FEC69FB050E2E51AAB636AFB /* SDLEncodedSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B7CFE27E7FD5DFEDF19B5BF803548D /* SDLEncodedSyncPData.m */; }; - 721C6905B171EEA60C69F896DBE66D5F /* SDLControlFramePayloadTransportEventUpdate.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F2375B625B97F66D8E12F064F7521C3 /* SDLControlFramePayloadTransportEventUpdate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 723B98063F796F3A205BBF4D69D397FF /* SDLPermissionItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E7FB3AF5EB94225C574B017EDB897BA /* SDLPermissionItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 72A5665F30946F50FF9A45AAE98D35BA /* SDLAppServiceCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 03156C93EE8442396869D907BBBF3E51 /* SDLAppServiceCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 73149802150251AC42CFCD9B3CDA96CA /* SDLTouchType.m in Sources */ = {isa = PBXBuildFile; fileRef = F15B9DBA698067E52DAF11F273D8C305 /* SDLTouchType.m */; }; - 733D59C10EE7B42B3E3775EE9945F3CB /* SDLHMISettingsControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = EDD01FD8321E8A489DCCF59E4DE051D9 /* SDLHMISettingsControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7363BD6E4C6F33855F2424FAF92C24C2 /* SDLDeleteInteractionChoiceSetResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 57F213F76C681791E8A6A44907FAD2A2 /* SDLDeleteInteractionChoiceSetResponse.m */; }; - 736B31E923657EA9F14B39C4D016E747 /* SDLMutableDataQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 0303F7A337A026665A7C2B1401481962 /* SDLMutableDataQueue.m */; }; - 73AA14293006489564B10EE55DB803BE /* SDLDialNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 03E209DD429BD45C838761E809185BB6 /* SDLDialNumber.m */; }; - 73B554D007A9561BFDB7FA5D9EC45AB3 /* SDLGetInteriorVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B33B4BD373DC2C35A7D1CB0AC87B3376 /* SDLGetInteriorVehicleDataResponse.m */; }; - 73B7133D90D85100D75563A8466B0FC6 /* SDLUnsubscribeWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D64070C063A2A910A459CAE2E7A4679D /* SDLUnsubscribeWayPointsResponse.m */; }; - 73DE5C4E84CC11C41F29013A13AE6B49 /* SDLButtonPressMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 042CAE65E8266BAAC2DA30FF0B6CED41 /* SDLButtonPressMode.m */; }; - 73E45E0082A8F8ED80CBD24FA3C77E09 /* SDLTTSChunk.m in Sources */ = {isa = PBXBuildFile; fileRef = A26B3309312952B2AED6A7ADA67DB6D9 /* SDLTTSChunk.m */; }; - 73E6D14C57A0B93C43FF9A9783852879 /* SDLTBTState.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BEA52EFF09F88D06D5BBDFE47ACB86A /* SDLTBTState.m */; }; - 73EE015CFC589C611F793F3F32B9EA6A /* SDLVehicleDataActiveStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E2B0AAB2CCBFBD6FAC8F2B04D2A0C31 /* SDLVehicleDataActiveStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 75A47F369EB4C9E2307C69986DB81EB8 /* SDLHMILevel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23817E0063BEAB1A48262BE111DF3256 /* SDLHMILevel.m */; }; - 75EDAD156F18E1031B3797F58D04BE56 /* SDLDeviceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = AE3A34EFCC4B7995EFC13CDFF7415942 /* SDLDeviceStatus.m */; }; - 7622141190322B2049CB7BFF23200BB7 /* SDLDeliveryMode.h in Headers */ = {isa = PBXBuildFile; fileRef = B054B7658B858C19F36D425B913FCA53 /* SDLDeliveryMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 76A0F62D7F2B3A10ED98DDD5FA7E0D73 /* SDLVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 3ED13A45BA2BAA69E7C1CE75280162A1 /* SDLVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 76F0CA06BFCC765F9E093AB4DAB81220 /* SDLChoiceCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 8223FE4A0640C2107CC1B1C83483D0F4 /* SDLChoiceCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 770CF2172153416F75DA8434CA9D0987 /* SDLMediaServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E17BE2717EB8E175D224175E94EF0C5 /* SDLMediaServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 771AD16C3C75E73480731E53C6EE5AF4 /* SDLLanguage.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AE79256F1FBD692C97BF6AF4A9AA8F5 /* SDLLanguage.m */; }; - 7771D6000CD81F2B8F910037ED770852 /* SDLLogFileModuleMap.h in Headers */ = {isa = PBXBuildFile; fileRef = E8FF631234AC949BCF5E7BA206039D09 /* SDLLogFileModuleMap.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 778128EA09DA2FB70F0756AF8C4DE0AA /* SDLSubscribeButtonManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F619DCBA443D3BF50D0B314A294B809 /* SDLSubscribeButtonManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7797ACE4CA0ECF8E48783A0F0F48B613 /* NSMapTable+Subscripting.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DEDB66DF7B774B967B556AA20105522 /* NSMapTable+Subscripting.m */; }; - 7797B6005DA53531D352BB960AE6EC19 /* SDLVrHelpItem.h in Headers */ = {isa = PBXBuildFile; fileRef = F0B8848BE9A446F837F0690DDED95563 /* SDLVrHelpItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 77E0636365C6ADFA34D3E1D40BD34575 /* SDLShowAppMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = CC0536F1740B2347A3FDD9BE3712BAC9 /* SDLShowAppMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 783DAB48EBF9DF33D24A813007A16BAF /* SDLFocusableItemHitTester.h in Headers */ = {isa = PBXBuildFile; fileRef = 121CC19826232F3072AFD1D83D158A42 /* SDLFocusableItemHitTester.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 788BA682507FEAF11F09D62C9F14AC0F /* SDLShowAppMenuResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B6A3BB418DC18D464B34AC1BAFE6451 /* SDLShowAppMenuResponse.m */; }; - 78F0AE09FA57809FDA2B8119391DF058 /* SDLMenuConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 299684AFB9A86A8651CE61038ED446F6 /* SDLMenuConfiguration.m */; }; - 790D4202C8608711D71DEFA479151C5F /* SDLTouchManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8558881F294FC3B3B55C638CC2708B36 /* SDLTouchManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 791627EAC8B4EEE54EAF063B35262F0F /* SDLRPCNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 797A684E702982C756DB5875D2568A32 /* SDLRPCNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79578E59AD64D8003939313FE749F474 /* SDLNotificationConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = A4D3B69BC21E62BA98351B1E601DBE97 /* SDLNotificationConstants.m */; }; - 797330768E845F89F1FEDDE14C055440 /* SDLPerformInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 885A0F6D020A6CA40C779378E47D90C5 /* SDLPerformInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7977925ECE55E6167F6B1C6355277218 /* SDLTextFieldName.m in Sources */ = {isa = PBXBuildFile; fileRef = 925B5C5D259A10BE034E8C3403363C5E /* SDLTextFieldName.m */; }; - 79A1ED399F40324160E433A36A0E4DEE /* SDLAppHMIType.m in Sources */ = {isa = PBXBuildFile; fileRef = E9AE0633C881E09921808B99336A33CD /* SDLAppHMIType.m */; }; - 79DA7C2BA0454A250426F3F164EA4CBC /* SDLSoftButtonCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E39C12C56DA2895956477F555CACEAC /* SDLSoftButtonCapabilities.m */; }; - 7A5A4CCE72E7384F52744B4D7699A5DC /* SDLLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A5988CF4E97C39E992F5F38B97769ED /* SDLLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7AC571FC74816A8F25ACD12D756449C5 /* SDLShowConstantTBT.h in Headers */ = {isa = PBXBuildFile; fileRef = B36217DF1D67CB1D77EF190BB99F29EE /* SDLShowConstantTBT.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7AF166CD4FFF2B0EB623D07AC3B40770 /* SDLLifecycleProtocolHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C6D93D8E80998CD66E39C448733F9C8 /* SDLLifecycleProtocolHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7B087CC97B2A19EA9BE23929DCB45523 /* SDLMsgVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 39D9C69734E237DD22253CC4F5D9F863 /* SDLMsgVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7B5E3919628E4763AF44CA7EBCF7139E /* SDLSeatControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 55370BA933CFB6684AC8D5FD1954BD37 /* SDLSeatControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7B9A5F389E2CEDE6D1E9EAA1B30C5659 /* SDLImageResolution.h in Headers */ = {isa = PBXBuildFile; fileRef = 86B8AD55F292718C4A52B693B3EA5F2D /* SDLImageResolution.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7BA72342DFEA2FD8D0230A7D1114B0D5 /* SDLMenuConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 91F7EE2A199046AFC07A4EE31FA290E0 /* SDLMenuConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7BBDCA6FF69DCAB38A3475ED1949C260 /* SDLV2ProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 07B6C54F0471CF191AA538E250A10A1C /* SDLV2ProtocolMessage.m */; }; - 7BEFE01A2A2147EFBD6480EC899125F8 /* SDLTouchEventCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EF11EC23640091B05621565D114E9F4 /* SDLTouchEventCapabilities.m */; }; - 7C078A8F5DE31C7A59EEBAFFAEEE1229 /* SDLSeatControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AEEE89A8645A94795F0CCCBD4A67D43 /* SDLSeatControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C2914E90E64A052CD25A0C06B28FCE3 /* SDLLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B325B54245A4E4E8C66F6A001CF9340 /* SDLLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7C9F95F79CF45BFC8E03B0954D18CBB6 /* SDLTemperature.h in Headers */ = {isa = PBXBuildFile; fileRef = 481E981C3D01379187FF066BD3C0DABA /* SDLTemperature.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D3C32CE5AFD4BF1EAA006DE944B11D9 /* SDLLogModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9712AC0C44D0ADF928AA7E06E0017867 /* SDLLogModel.m */; }; - 7D3FDCF280500CFA08D4FF079F23EE53 /* SDLDeleteFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DC5946B04F71B3AB896F1E96200F9AF8 /* SDLDeleteFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7DB2DCC05E106A77EFE0A9672A8F9373 /* SDLPredefinedWindows.h in Headers */ = {isa = PBXBuildFile; fileRef = A7E6588DB6AB90B5A4E955365321B36B /* SDLPredefinedWindows.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7E1AB33ED4368698355849CC018E62B8 /* SDLCreateWindowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 34E7BCC2915FB3B8486062ECCDC005B7 /* SDLCreateWindowResponse.m */; }; - 7E22622570D54BD1940684C8878AD8EE /* CVPixelBufferRef+SDLUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = B1737F018C1201A37BA9F403EA0E0019 /* CVPixelBufferRef+SDLUtil.m */; }; - 7E254B51D45A6C9BA396DCADEFF5C2C0 /* SDLAmbientLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 64D9FFCA2DD46CA3C4112C71901478D2 /* SDLAmbientLightStatus.m */; }; - 7EF1FD8D20751CB663DA5DF3A69A3AD8 /* SDLServiceUpdateReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E5DFA275C99DF550A09B4DC823C5CB4 /* SDLServiceUpdateReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F1BE10CD92530355AF15639B19E4C5B /* SDLRadioState.m in Sources */ = {isa = PBXBuildFile; fileRef = 12E2448D342B0C719508658356C62FD8 /* SDLRadioState.m */; }; - 7F580997F9720C55DD316BFD91C20488 /* SDLTurnSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 590C1C4982D954259C18E6BAF8EA15A0 /* SDLTurnSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F84AC5D276982D92B3A9F817B40899E /* SDLVehicleDataResultCode.h in Headers */ = {isa = PBXBuildFile; fileRef = C57EE820C482DB351A5D22661395FD35 /* SDLVehicleDataResultCode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F9DC4ABE8D601CA0A814F5C84BF0F71 /* SDLListFilesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D7B76D1D26F17C8DFCC609B03BB5F1FF /* SDLListFilesOperation.m */; }; - 7FC9E3671626AC556EA615AF090EA1E0 /* SDLPrimaryAudioSource.m in Sources */ = {isa = PBXBuildFile; fileRef = DC461630F2C6E45F81C3CC6B7D8BDD9E /* SDLPrimaryAudioSource.m */; }; - 8012681A7A1329501CC0D2C6FB41522C /* SDLPerformAppServiceInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 15626200BCC288FAB8202F84EAD600A5 /* SDLPerformAppServiceInteractionResponse.m */; }; - 8057D4C4047A1C456E6BFFA904469F2A /* SDLControlFramePayloadAudioStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = E75E53426BB1F8D06083AA6B092186F3 /* SDLControlFramePayloadAudioStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 80B64B933A7AF5423CCD493385F73D9D /* SDLUnregisterAppInterfaceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = AB95F07898AACB764288FB68551926A7 /* SDLUnregisterAppInterfaceResponse.m */; }; - 80B981D376B7AA3D80C491C8C6F4C465 /* SDLOnLanguageChange.m in Sources */ = {isa = PBXBuildFile; fileRef = CB073ABF5500F256EAF20D2D4DC6D70A /* SDLOnLanguageChange.m */; }; - 80C31DB7E8132BB5C12F3C7AEC99CE36 /* bson_array.h in Headers */ = {isa = PBXBuildFile; fileRef = C3C759E34418D5E3F059C76D2E9BD03F /* bson_array.h */; }; - 80EE893775E39EB4C5AD60C59D973BAC /* SDLAppInterfaceUnregisteredReason.m in Sources */ = {isa = PBXBuildFile; fileRef = D7C7F86F69CEA7AF2F36510A9E3ADF4F /* SDLAppInterfaceUnregisteredReason.m */; }; - 8139D9D6698265090BCCD8938F16A9A1 /* SDLUnsubscribeButtonResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 24EC57E64CE1C46DC722D87EDCCBE81F /* SDLUnsubscribeButtonResponse.m */; }; - 816906CF73001C8E4934FB8771610EDD /* SDLSyncPDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CCDAAE659DCA593607D4BF6558C25CE /* SDLSyncPDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 81C1D63EDAF3BD34054FF17FE620080B /* SDLPermissionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 63A7E80FD365C91A7303ABC5BE8B11F5 /* SDLPermissionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 81C464894078D0923CB734B498325E5C /* SDLLayoutMode.h in Headers */ = {isa = PBXBuildFile; fileRef = F0F72587391C1C5AB8C181F91DA3ABCF /* SDLLayoutMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 820EA879555877005F0F2585C7D91934 /* SDLLocationCoordinate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9401FE979F2F8AEAF58BE90F5FB0B075 /* SDLLocationCoordinate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 82244FCBDBC4DE2521484AA8076AD467 /* SDLPutFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 4525C34999BF5F6C1D46FE4471300796 /* SDLPutFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8282D5A46E55FB7731B772BC17EF7C48 /* SDLPresentChoiceSetOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D7BBACE033B0E506CA5830D0C9A67E30 /* SDLPresentChoiceSetOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 82BAE0EF80B27A362DDF3DC304D0F20A /* SDLIAPSession.m in Sources */ = {isa = PBXBuildFile; fileRef = ACE4B9AC146F03631EC52683B808D9D2 /* SDLIAPSession.m */; }; - 82C471FF3C4C36F6DED566A9F38DACC5 /* SDLPCMAudioConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = FF61F998914A5EB8F53759FEBD2416D2 /* SDLPCMAudioConverter.m */; }; - 82CFC44513CCB0B7C3DAB9499A777B37 /* SDLRemoteControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A5795C050E031087B37E6F0B8B99FE3 /* SDLRemoteControlCapabilities.m */; }; - 82DA35190CA47C0906DF3CF1F2275F9F /* bson_object.h in Headers */ = {isa = PBXBuildFile; fileRef = CCF1E88FAC247087B1D04D8DC970BE73 /* bson_object.h */; }; - 8328B9D04BFB65C0975608CCD290F129 /* SDLLightState.h in Headers */ = {isa = PBXBuildFile; fileRef = C57AA9193B116618556C40DAECF8CF3A /* SDLLightState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 832E56B087986F80B9F00C2A58DE0AB8 /* SDLLocationDetails.m in Sources */ = {isa = PBXBuildFile; fileRef = C1ABA54275646D92071529E1091B1333 /* SDLLocationDetails.m */; }; - 836439614BB958B33C815F337891A1E4 /* SDLControlFramePayloadVideoStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CD8B26768A85697E5937AC3887AFC5E /* SDLControlFramePayloadVideoStartService.m */; }; - 842A278FF6CA695AE140DE3C90FB6C09 /* SDLFuelRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BEAB10C4471AE448C7D5D75888C4D2D /* SDLFuelRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 84AEEB5BB746FD70224E608230EFB8D1 /* SDLOnTouchEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = DE194516542EC704AADE0A2FC32B63FD /* SDLOnTouchEvent.m */; }; - 8508CB2E94573CDD48B6B69A6C865C21 /* SDLPrerecordedSpeech.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ED5B47BF52A07A02D9AF9F3873C2C5D /* SDLPrerecordedSpeech.m */; }; - 85882347D6B6966362786872D21D1889 /* SDLPutFile.h in Headers */ = {isa = PBXBuildFile; fileRef = F62DC0A1FB87B2CE3F9928C0AC3BA403 /* SDLPutFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 87265B55E2D27269A551AB06B0D834E1 /* SDLOnAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = 565121A4F57AC7B9E0FFA044BC680BAB /* SDLOnAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8757369831E7EF6DF27109FDDD773FD8 /* SDLServiceUpdateReason.m in Sources */ = {isa = PBXBuildFile; fileRef = C23EE35725C46B65EF548339396EBAE4 /* SDLServiceUpdateReason.m */; }; - 8791415B6BA285019F93446711CFB890 /* SDLAirbagStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 12FB6C12FA7C56F07A058C648B52AA9A /* SDLAirbagStatus.m */; }; - 87A35022E373D35D80B39F53F6371307 /* SDLPublishAppService.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A91F9EA62F0075F9ACCFF6B6F7FA96E /* SDLPublishAppService.m */; }; - 87AC6CA51E70B12C479133AC047D6AD0 /* Pods-MobileWeather-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E7A92F6F5DF51067E86A63E8CD1EC5C /* Pods-MobileWeather-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 87B3F3A88241E01AB0FACBDFC3593F9A /* SDLSliderResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 62C0442C9E0D051B0310BB29437BC90B /* SDLSliderResponse.m */; }; - 88C588D8E3BA8DCFE6492D8A84C27955 /* SDLControlFramePayloadRPCStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = 4534A47F55F401B4F9461F6E133F8C1D /* SDLControlFramePayloadRPCStartService.m */; }; - 8924FC0582CB6B6236BB6905FE65176F /* SDLRectangle.m in Sources */ = {isa = PBXBuildFile; fileRef = 269BB207FFE8AA6F46208486DEE9BA3A /* SDLRectangle.m */; }; - 892798392921AA060D0A363863972910 /* SDLVideoStreamingFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = C9F308B39068D7126A74593F5FF3DEB4 /* SDLVideoStreamingFormat.m */; }; - 8940DF96E280A683D1AE6F0C516558CB /* SDLPrerecordedSpeech.h in Headers */ = {isa = PBXBuildFile; fileRef = EA74E73DE00325097C89E066596A17F9 /* SDLPrerecordedSpeech.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 896B434043508082AF277D789CFA2BBC /* SDLIgnitionStableStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A23C49669583356A1CE449D9EBC74DB /* SDLIgnitionStableStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89712DE1E205AF44BB30F36CBDB31118 /* SDLEncodedSyncPDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C7A37EAF43721950F29116483BA4DA7 /* SDLEncodedSyncPDataResponse.m */; }; - 897E5513A347BC1E367CA9F2C1F941CE /* SDLSubscribeWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = 63E7D4AB6E3E4F7AC84C60288E5D41D9 /* SDLSubscribeWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89CF0DFE01D957DA8527799ABE3B1FA8 /* SDLTPMS.h in Headers */ = {isa = PBXBuildFile; fileRef = 194A205E3D3AB6329814281A5F801855 /* SDLTPMS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89DE45CB97C1845FCAAF7B83E9D03F58 /* SDLParameterPermissions.h in Headers */ = {isa = PBXBuildFile; fileRef = E7ADE67ACC724F1B63A80B9A025AA67C /* SDLParameterPermissions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89EBC07A9931E19A0D7CE8CCFC9E196D /* EAAccessory+SDLProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = 583045D48F0608C0A7B71AE4D7666158 /* EAAccessory+SDLProtocols.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8A0217E86ABB97C151485BEE6A05C9B3 /* SDLDynamicMenuUpdateRunScore.m in Sources */ = {isa = PBXBuildFile; fileRef = 61826AE009D0EFACD0702CE842CA700D /* SDLDynamicMenuUpdateRunScore.m */; }; - 8A3EFA26C9A85C5A9BCF353A99C5AAC0 /* SDLLockScreenStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = E66A988442959BA4FF4EA6712EB679BA /* SDLLockScreenStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A5C8F87E4D7A32CC93B2DC1C6A322DC /* SDLRadioBand.m in Sources */ = {isa = PBXBuildFile; fileRef = 43D14531D9A7ED9C7FBFA6F900E02E1D /* SDLRadioBand.m */; }; - 8B0432997DC6DA829148948220731193 /* SDLRPCMessageType.m in Sources */ = {isa = PBXBuildFile; fileRef = 32F90AB5741CFF9D0E0907CE26FD7A62 /* SDLRPCMessageType.m */; }; - 8B423DDB671A45A561C24D5ADEBB8D17 /* SDLMenuCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 50189BAC7FFDD4590A653D15F6445710 /* SDLMenuCell.m */; }; - 8BCD8952EB9E93BCDCF52A6BBECB921A /* SDLSendLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = D9FE9E92F26E2D6ED7FF95DF199E8CE4 /* SDLSendLocation.m */; }; - 8C042DE95ACE95E73BDFB610B4E8E73C /* SDLMediaClockFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 755D72CFBEC566638C5F451190E126C8 /* SDLMediaClockFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8C5CBA98BA079CB5DB372F9795C00402 /* SDLAlertManeuverResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = AEB84A7714266B9D07AF0529C3361737 /* SDLAlertManeuverResponse.m */; }; - 8C5DEC040B352CB525F66B45CD5E8748 /* SDLRequestType.m in Sources */ = {isa = PBXBuildFile; fileRef = 4120946CE7AB246EF162C99558A3845D /* SDLRequestType.m */; }; - 8CF4F12468C7886C63A1ECDD6791C936 /* SDLListFilesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F72C939EDB942180ADF30F6AB0ADC7AA /* SDLListFilesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8CF98996F8D5ABE5A8593471D349367B /* SDLH264VideoEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A14F3582266D6F7B75BA4AA85218D3A /* SDLH264VideoEncoder.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8D0B79BE234C74A8E6FCEC2B7AC0C0EC /* SDLUploadFileOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2483492441C4BEB1F8A9B82BAC067681 /* SDLUploadFileOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8D4AB4E591716291BBAAF6ED6158C334 /* SDLControlFramePayloadRegisterSecondaryTransportNak.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EBE26A5E99C203ABB63EB5567F7464E /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */; }; - 8D4F4377C8B41695F73334FA8DF62670 /* SDLEndAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = F8EDD51E7C160D973CB9023C262ADF2E /* SDLEndAudioPassThru.m */; }; - 8D6461D76103F1285DA80188D7295EE9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */; }; - 8D96B70D023F440340BE44A4E7FEAD66 /* SDLGetCloudAppPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 78FE8C97F350096089415B007A7C9167 /* SDLGetCloudAppPropertiesResponse.m */; }; - 8E4A9699872B71DECE53A3A947A70EFD /* SDLHMICapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CE844466F3EDF16CC0981DA495566991 /* SDLHMICapabilities.m */; }; - 8F1D97A10A4CD8C000AA88F803250671 /* SDLStreamingMediaManagerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 9685342C1846C658E601FB8B352C69B5 /* SDLStreamingMediaManagerConstants.m */; }; - 8F79C57B48BD48C9C5C9CBDDEE4FA12E /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F36F6895EC63F83831A850E7A3837B9 /* SDLControlFramePayloadVideoStartServiceAck.m */; }; - 90AA1C0CCC283A6883424274A5289F60 /* SDLSeatMemoryAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1845BF083AE4ED65CD2A0C2493883D93 /* SDLSeatMemoryAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 90B132644819CDCFE3C4B8B316C0980B /* SDLBackgroundTaskManager.h in Headers */ = {isa = PBXBuildFile; fileRef = BEA81FC17FEEBB29EA50A437D78643CD /* SDLBackgroundTaskManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 90E54FF893D72AE14A79C43840493828 /* SDLListFilesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7744F0C66582742EF55FA411E81338 /* SDLListFilesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 90F8E628A253894A60975451EFD100FC /* SDLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = BFF07975F02BE7BDA5311F3AD80E5CDA /* SDLProtocol.m */; }; - 9108B6E2D3167C1881C88BA53125294E /* SDLHMIPermissions.h in Headers */ = {isa = PBXBuildFile; fileRef = F10B8AB7BDA6627AA906D8076EACAE16 /* SDLHMIPermissions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 919DFEBF8B0A1266AA42C4DB2B0735AA /* SDLRPCResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FA34FAF6769FF6E67146C25E3918D1BE /* SDLRPCResponse.m */; }; - 91C37B3813B051EFF69A023933848154 /* SDLTouchEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E046E87DA6D8162BC3CF15D53AF5F0C /* SDLTouchEvent.m */; }; - 9250B505D81DEC59872413A95BEAB844 /* SDLHMIZoneCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = BAE82B84E1601BFF59D0A736CDEFE053 /* SDLHMIZoneCapabilities.m */; }; - 925AF3168A7110110C9DAF79D5C00386 /* SDLGrid.m in Sources */ = {isa = PBXBuildFile; fileRef = FB292819C30F7CC71BE8B0A31B91068D /* SDLGrid.m */; }; - 928086E89A6C7D79AF499C3E12F411D3 /* SDLSoftButtonType.h in Headers */ = {isa = PBXBuildFile; fileRef = 98E0B47ADD51DA93F0FC18C094035A10 /* SDLSoftButtonType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 929ADD71B64CBA1ACDBA88FA86B27B5D /* SDLButtonPress.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A3CC4629A17A1D6F3FAEC259BA87C31 /* SDLButtonPress.m */; }; - 92B358063BF2D4E4FBA527CFF06F0060 /* SDLDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = A295FC118C7C689512C3EE0C5BEEA414 /* SDLDeviceInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 92E669ED90ECE510D2704648AEC3B87B /* SDLModuleData.h in Headers */ = {isa = PBXBuildFile; fileRef = BB3973D6F3986950AA95D58E21EA4849 /* SDLModuleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 92FCB943F695195618F753813F97E249 /* SDLRPCStruct.h in Headers */ = {isa = PBXBuildFile; fileRef = D59096499EC97E026ECAE9E71C7E6DE4 /* SDLRPCStruct.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 930C00002E462F22EC9F0A811A3BC48A /* SDLMassageCushionFirmness.m in Sources */ = {isa = PBXBuildFile; fileRef = 56348A384ADED81FB3086D9B75D54306 /* SDLMassageCushionFirmness.m */; }; - 9320B7839548C10A540A2FF853A9DDF4 /* SDLTireStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = BDC78482302FF8AC794EE8765A179282 /* SDLTireStatus.m */; }; - 938ED6E03E70AEFFE50F57C66AE7C77D /* SDLScreenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 13180087A895C1F6E63F9F01F333ECF1 /* SDLScreenParams.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 943BDF0A57AB9536CF0CC6D1E1C51D14 /* SDLCancelInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DAD96E48B6521B50D315831C92D08A4 /* SDLCancelInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 948E7F11C00F9CC8161C026A9EEC54C1 /* SDLIAPConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 1878E365B1431D16CB7D13B067382A01 /* SDLIAPConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 94B16494699CA8D318680A2E935156A9 /* SDLDeleteWindowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 09596899A697F08A6B73A7F8DD24700D /* SDLDeleteWindowResponse.m */; }; - 94FD5E6BE1C4A20B1C87E81487731621 /* SDLScrollableMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 2778C8EDF4959730B4DEF535ABC16675 /* SDLScrollableMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9572650EBB7B2B8D936F2844DECB03E6 /* SDLCarWindowViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EA76282753B31122B78D182BFFE41253 /* SDLCarWindowViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 958BA35B1D729FDEF31741435AE32D47 /* EAAccessory+SDLProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = A875209328BA108883DB60F79AA77ACF /* EAAccessory+SDLProtocols.m */; }; - 959EEEC7A5E91DF4108F9BE317930100 /* SDLUnpublishAppService.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BD7935852D12459264EA6168F97B4D /* SDLUnpublishAppService.m */; }; - 95B632680000864684FC326A77E81490 /* SDLAudioType.h in Headers */ = {isa = PBXBuildFile; fileRef = B0659086D16C101E4B3240900C7412B1 /* SDLAudioType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 968D8990CE7A5931F68A82AFFAA76416 /* SDLGetVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E0482F1FF68E1DE5D306B4F4B9D57CC8 /* SDLGetVehicleDataResponse.m */; }; - 96B3A64C13C755BF2344A019F3BD7564 /* SDLHMIZoneCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A352F773B0D24E76E0DDA51D741F4F4 /* SDLHMIZoneCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 96ECD4F7CB098FCFE884F32CB2CA407A /* SDLErrorConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 04C4ACFBE0F5E7AA0EB2EDC5D718F443 /* SDLErrorConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 97552846A61ABE9D89635D411CF6886A /* SDLEncodedSyncPDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = A47AC218EDD3DC3F3FF2978AEDCF2E78 /* SDLEncodedSyncPDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 975B822DBE1D9BBE04F01841DE7F9A50 /* NSNumber+NumberType.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C8AB9952510177705B3F01E462FE897 /* NSNumber+NumberType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 97987F32A35F3BFEE2A7EE14ED37B862 /* SDLEncryptionManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 55244989E8038AB58D5327F3F2477E52 /* SDLEncryptionManagerConstants.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9807627F3863B4F0B8478AC7810C3ED9 /* SDLComponentVolumeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = C0F9B31189558811D7A53ACF37EC44D9 /* SDLComponentVolumeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9823B5569DCFBA54362B5478B81102B5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */; }; - 984F9250442AD90516197769FB66AC3F /* SDLSetCloudAppPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = EB55A0D888F6AE9CCC809D50497AD040 /* SDLSetCloudAppPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9865B7A5B80139F7E840ED07E1848F59 /* SDLSetInteriorVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 21299607CA16E90A5C0710F2E2785242 /* SDLSetInteriorVehicleDataResponse.m */; }; - 988688D3D697D96628D7083C22A6746B /* SDLAudioStreamingIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = EB3F3F76167CA66B3B7C05138A413E0C /* SDLAudioStreamingIndicator.m */; }; - 98A0D6893B9CEF42738012575D4B81ED /* SDLRPCRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB970D4B1463F7A5435F594C50FE27F /* SDLRPCRequest.m */; }; - 98BD10DED5BAA7E5ED957677B48616C0 /* SDLTextAlignment.m in Sources */ = {isa = PBXBuildFile; fileRef = CBCE52F73B99C2EB241CED559CC155FA /* SDLTextAlignment.m */; }; - 98E22984D664414B333A2690BC267A50 /* SDLPermissionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AEB0447F840FA8B85356311591B1E92 /* SDLPermissionManager.m */; }; - 98EA3B80A0B1142E33F52CBC82E6D596 /* SDLTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = BE263957CF097F8038614F284D6503B2 /* SDLTextField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 99053937DFFC0E1B063400B22BCCD6C5 /* SDLEncryptionConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 51FFB00ABD6490160288E149838F9914 /* SDLEncryptionConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9A06824727611E6DB64130AE34B5205B /* SDLResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 141A750A4B7658D57C0EA1C5677AC485 /* SDLResult.m */; }; - 9AB381AEFEE5A61992ACD7F10F8A0BE1 /* SDLECallConfirmationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = AA978EFFF7802A57334EEC147C532F12 /* SDLECallConfirmationStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9AC1E68F168FC9BD70C6F53284C18A09 /* SDLV2ProtocolHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 972B7E177642FF7F73935ABD0DF3B924 /* SDLV2ProtocolHeader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9B1D0DC686CA127B3507C3BDBC7556C4 /* SDLKeyboardProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = D90CAAF858A78919418815026E93FE6C /* SDLKeyboardProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9B55F42A537180FC37A5A170B1FB6309 /* SDLPresentKeyboardOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 35872C6BFFC71956A1E4CA4786AF126F /* SDLPresentKeyboardOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9B62DF6B4229906E1D2ECDC12DDE06C7 /* SDLLogTargetFile.m in Sources */ = {isa = PBXBuildFile; fileRef = BC48020E05365643AE6EA8547CC8AD26 /* SDLLogTargetFile.m */; }; - 9B64057F42AB2ABE7AE945EBF1BE29A7 /* SDLGetWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EB9B954F1D1DCEB391A1D236360F644 /* SDLGetWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9BF5B7F3010DA88A9BF4F6F6B16227B4 /* SDLTextField+ScreenManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 030B9EFF025F2C40E4F44F1065406AC8 /* SDLTextField+ScreenManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9C0456EBA174B29942498ED83DBBBFB7 /* SDLRDSData.m in Sources */ = {isa = PBXBuildFile; fileRef = 922F65EF53B7070CDB774AA85CCDF664 /* SDLRDSData.m */; }; - 9C119AD13DAE62F186B5AF78C8CCEFF1 /* SDLMediaServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = FBD38969E857441AA3068AD8C9ED8B42 /* SDLMediaServiceData.m */; }; - 9C3E8E79D55F890640B50D7F4F74F081 /* SDLGetSystemCapabilityResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 789539F0D0B01F9B19A6F15A31E9B06F /* SDLGetSystemCapabilityResponse.m */; }; - 9C6F8EC6BB779E9ED31A4BE3D33D5A72 /* SDLPermissionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B10B875766B1C1B96DF356737056AB9A /* SDLPermissionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9C9ECEB77C7F6593C5816D6A6E08BF93 /* SDLRPCPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = E074E1828DBE20E4E333AF7D5CB7597C /* SDLRPCPayload.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9CC99894D5AA75B1EC79ABB3CD9C2E2A /* SDLScreenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E27B8D2C7EF19BFB8D2813DE94C44F5 /* SDLScreenManager.m */; }; - 9D0AC63359FA806DBD87D26C86A27892 /* SDLSubscribeVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C641082806A93BA26912DBABD29845FC /* SDLSubscribeVehicleDataResponse.m */; }; - 9D0E273B9D1C3CD49BC10C2157792DBC /* SDLSupportedSeat.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DCE4D9A1ECFC1B74D7B4C95CBDC5A0A /* SDLSupportedSeat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9D128154E213F2A044C61D9129B5BC56 /* SDLAddCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 05AF30F572533AFA58903B5BA40CC28B /* SDLAddCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9D183E14A9513C11B72CDDF134760AEE /* SDLSpeak.m in Sources */ = {isa = PBXBuildFile; fileRef = 9793856BCD714E4673B7C4D1120726F5 /* SDLSpeak.m */; }; - 9DA547A789D5556CB6C8E4CB38337256 /* SDLSubscribeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A41C2D42956A2BC9ED6622038B85ED8F /* SDLSubscribeButton.m */; }; - 9DA7510D35653DAB61574EAF7CD41A60 /* bson_object.c in Sources */ = {isa = PBXBuildFile; fileRef = 66E64A3674325E99630AB41079D65E52 /* bson_object.c */; }; - 9DA96D9D62C66E1387A426433D1D0180 /* SDLSingleTireStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 67857A032BAADE3614D213222C35BF8C /* SDLSingleTireStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9DD41205E9F9884198DE310BC34FB4A2 /* SDLUploadFileOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 32614CFD26D45B1414C5745CF0EFC3EC /* SDLUploadFileOperation.m */; }; - 9DF783D275D92A46DE02F25C3B837321 /* SDLLogTargetOSLog.h in Headers */ = {isa = PBXBuildFile; fileRef = B5D86F64C557ECB55D17B7F743CE14A3 /* SDLLogTargetOSLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9DFB1A6DB2598EDE3EE46E5C4CE0BCA9 /* SDLGetFile.h in Headers */ = {isa = PBXBuildFile; fileRef = C7A3524440606449BF1F506F67159172 /* SDLGetFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9E02638823EC1F1D11F02EFDE7FE15D9 /* SDLFuelType.h in Headers */ = {isa = PBXBuildFile; fileRef = A28A3EF650501C5F764BD9255379B913 /* SDLFuelType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9ED85FAD2AF0198AADBFAD98BB11C799 /* SDLLockScreenStatusManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 264466043512A19F32B8FD33808B100C /* SDLLockScreenStatusManager.m */; }; - 9EF3295D4B53DF53BE6353110DD2B85E /* SDLLightControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0623BF96606B58FD9FCC3861992A2F61 /* SDLLightControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F29AC1D8588B1909F44A2D2154B059E /* SDLEmergencyEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C68BF2CE6FE130CE0B0A970E9E4EB46 /* SDLEmergencyEvent.m */; }; - 9F6E93F678382583CB066DB5551B6328 /* SDLCancelInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE0F5BE889755CBF2EACC79F9B92C01 /* SDLCancelInteraction.m */; }; - 9F8232117DA710D03B7E6C7D59670979 /* SDLMaintenanceModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5219E50197D0F16E89EF7D41AA424C50 /* SDLMaintenanceModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F8FE4EBAD620939494FAF4BD5B8E635 /* SDLIAPDataSession.m in Sources */ = {isa = PBXBuildFile; fileRef = EC66B309EDD7459B38A3029CA12705EC /* SDLIAPDataSession.m */; }; - 9F9DC8D007500904C401C5C7E8C89FFA /* SDLGetFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EDBC18F6B463FA2C5159B39D11406A8 /* SDLGetFile.m */; }; - A004CE7345498F2955076679857302C9 /* SDLShowConstantTBTResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = BBA4A2A569A352F32B460D479A488FD1 /* SDLShowConstantTBTResponse.m */; }; - A00E882CF0FA04AC4318B555BA1B4A44 /* SDLFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FD269E190CA05DE20711325DB709DCA /* SDLFileManager.m */; }; - A037C3C3A83530301BEA2F881D8288BA /* SDLHexUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B65BB837429AB03BD36724BAA2EDB6 /* SDLHexUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A0EA4A22CB0687C97EF3BC22D1735572 /* SDLVehicleDataResultCode.m in Sources */ = {isa = PBXBuildFile; fileRef = 20B9DF79B0ED0674C8ED798A7D73B3F2 /* SDLVehicleDataResultCode.m */; }; - A0EA899E9A6772A0E111CAF3A5B4D692 /* SDLMetadataType.h in Headers */ = {isa = PBXBuildFile; fileRef = AF2EB782EEAA8529D44E257890E1E3A7 /* SDLMetadataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A1131A6BB01A094C26C80E68F70AA7E2 /* SDLLogConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = AAFA82C0BFDBC0D64BF1C7E2CF3ACF45 /* SDLLogConfiguration.m */; }; - A1161753253DEFA30B66E27E94AFAFA8 /* SDLDeleteChoicesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CDDE49677C1E817827B6E102A64583F /* SDLDeleteChoicesOperation.m */; }; - A11F26070BE925687139B0C109399C19 /* SDLCancelInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 186CF5CA656EF53E457CC74A91CED8BF /* SDLCancelInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A1275CC9FDC8F2175D1DC71D25332C6A /* SDLTemperatureUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 17B584482168B64D8A9B1D66FD274FB7 /* SDLTemperatureUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A1327BFC088CD8D368B15DED7246E077 /* SDLRAWH264Packetizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 70ED7008A3D1DC757EE6B277ACD920AE /* SDLRAWH264Packetizer.m */; }; - A13C0973729C96228DD864BEABC09B27 /* SDLCheckChoiceVROptionalOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0101AB6A004A001DF9E0F740590E99D1 /* SDLCheckChoiceVROptionalOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A198B40DBA405B5DB3F5E3447BE94C9E /* SDLRadioControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CBCB16E496EFD6B64945F52DA1861BB5 /* SDLRadioControlCapabilities.m */; }; - A1EB1E865A03EC4D69C80EB755A77CDD /* SDLVideoEncoderDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A3EDAEBB63DC81EB0D8197E941D92BA /* SDLVideoEncoderDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A26C078F292F94A82E10F7CF3CFF947A /* SDLRPCRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 2927EDEFBAA36BACD83602F7DA5F877E /* SDLRPCRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A29DDF83D423EEF2B51B63527AE1EB53 /* SDLControlFramePayloadTransportEventUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = 717DFB9BE8DC679E6C4758105253E4D5 /* SDLControlFramePayloadTransportEventUpdate.m */; }; - A2C335E45D5808348227BAED740FA4E8 /* SDLRPCResponseNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 73CA9166AE10B30401A01C7A47B3029E /* SDLRPCResponseNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A2CDEF188C1B5C93E25A3F7880080B74 /* SDLOnHMIStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = D3566C02B6DB84A4D90013751CD1071F /* SDLOnHMIStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A2F68F9AE4211CB31227C8790627D865 /* SDLControlFramePayloadVideoStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = 7356AD33DD279C8B715E26EA25CACD63 /* SDLControlFramePayloadVideoStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A364DD5B4142117E4B4631E68A00FE45 /* SDLOnCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = C4BE27470822649960E3E82D1CCE585F /* SDLOnCommand.m */; }; - A36ED8B7AA4C7BC318EE0E63EA70CE15 /* SDLImageField.m in Sources */ = {isa = PBXBuildFile; fileRef = AFF3854A1D8BC5DD5484E62759DB92A8 /* SDLImageField.m */; }; - A3B8C6795DDA83285BEFB831CB44827C /* SDLNotificationDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 19CCE221988FAB4BFF131C894F0920C4 /* SDLNotificationDispatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A4583BCEB2AC1DD17A778969E1176224 /* SDLSetGlobalPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 17B209E28D1DF58F13E9ED57702FBE24 /* SDLSetGlobalPropertiesResponse.m */; }; - A4E3B6C1B43783D1FAA4E1CC40625BFA /* SDLSoftButtonTransitionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B944A8411396B636FBDC617B69BA653 /* SDLSoftButtonTransitionOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A593A77AB1486F65ACE3B83D54B74BF3 /* SDLIAPTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C7DA6DFDBC398CAB62E0896412F9A2A /* SDLIAPTransport.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A5F4708B4FE2C25C993C970DAA270D63 /* SDLProtocolReceivedMessageRouter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C95A15F1ABB56F87595C248AF00C07F /* SDLProtocolReceivedMessageRouter.m */; }; - A60900079A6C1F0B634C7268D10787FB /* SDLSystemAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 6327F4CF9F830BB34651793AA66D1377 /* SDLSystemAction.m */; }; - A64D310CA13C5BAF7C23D66405E178C5 /* SDLSendLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 400D3E396C926D58653D9550ED9D959D /* SDLSendLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6BBC719536F101CB562CAB3FE06D5BA /* SDLNavigationJunction.h in Headers */ = {isa = PBXBuildFile; fileRef = B2B32C73887D39822D8BCF44DD62ADE0 /* SDLNavigationJunction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6D8F9B1A7E7ED29A5BBC3F8D864A511 /* SDLVehicleDataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 171E13E59404914970C3C1146AACEF54 /* SDLVehicleDataType.m */; }; - A6FD855ED3F925B400BD27B86ED4E5B8 /* SDLLifecycleConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 560F738DFD43F14B66D6575B0D922FF8 /* SDLLifecycleConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A744F3FBDD027EF8083D56235DD11762 /* SDLPinchGesture.m in Sources */ = {isa = PBXBuildFile; fileRef = E9BE11B50B61C825DEC533B7D69EB1FC /* SDLPinchGesture.m */; }; - A74F1CA5505DE503FFAA407AE3AB1129 /* SDLSpeechCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 29E4B47051A2CBE2B10DFE80E3D19287 /* SDLSpeechCapabilities.m */; }; - A7E72AF0798FCBA961B605865BC0D940 /* SDLSISData.m in Sources */ = {isa = PBXBuildFile; fileRef = 738A838988DDC4A7320C42B53C6763F9 /* SDLSISData.m */; }; - A81D5EC3B4B6F201C3603E3DAD6D8D60 /* SDLVoiceCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 760CA141DE64208FD9CF023B7FBA7EF4 /* SDLVoiceCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A820135ABA605F791A72BDF903F83D64 /* SDLVoiceCommandManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECC06D0A68E4B2D1C7C59006097D069 /* SDLVoiceCommandManager.m */; }; - A8703C5059F822E6DB8F4F390982EC70 /* SDLVrHelpItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F79001BEC04EAE768A2897A4D2F4684 /* SDLVrHelpItem.m */; }; - A880069AB28A616308F535E09774FE5B /* SDLChoiceSetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B85ED94C4814B0CC8AE4863BE9962AA3 /* SDLChoiceSetManager.m */; }; - A8BCEFDF545668B86C4B26D77F543012 /* SDLChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CFA9A9E1169A3206174FA90EF8EDB20 /* SDLChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A90A906DCF7DCBCA8E836FA3E00A6282 /* SDLEqualizerSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 6301C36A8C5A7DFCE5AE6E9C37BBE530 /* SDLEqualizerSettings.m */; }; - A93762770ACAEA4669A192AA1B24F74E /* SDLCharacterSet.m in Sources */ = {isa = PBXBuildFile; fileRef = CC96F7C7B44C145A8134DF1D1AA18116 /* SDLCharacterSet.m */; }; - A983A6276F3C7B7AC3587F036EE6E779 /* SDLAudioType.m in Sources */ = {isa = PBXBuildFile; fileRef = 74E48158DDD5FF132D47C5C3AB49717F /* SDLAudioType.m */; }; - AA090C3D5E165EF8E36C9AA113A53B96 /* SDLSecurityType.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BB6954C66C6C182131AA4914D6690E9 /* SDLSecurityType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AA342DA2EF3182E7DBBB4A113C12A4B4 /* SDLDisplayCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C449475F6E0CE07B003A60F21E17DFCC /* SDLDisplayCapabilities.m */; }; - AA47F6819C48293DD50ABABE42D59952 /* SDLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 416EEFA8DF9920B950D45A438B6CEB3B /* SDLProtocol.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AA756116198DB6B581A20CB3873E30E4 /* SDLPreloadChoicesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 180376AD38DA70C86CE6A85F04306440 /* SDLPreloadChoicesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AA873E6F9C27CEBDA0C183CAD68759EA /* SDLPrimaryAudioSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D3E8ACACCBAA2545A9291162519C02F /* SDLPrimaryAudioSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AAC0DB5D3A430B05CC4019E7D477C302 /* SDLEnum.m in Sources */ = {isa = PBXBuildFile; fileRef = 94170D786D38E92B4C692CF92C3ABD30 /* SDLEnum.m */; }; - AAD2C90D0EB813824B3D8A3AB0B383BF /* SDLCreateWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 867279F7956ED364FE2FF921B6C6E196 /* SDLCreateWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AB7861DE54C82B10AC22ACC4D25E1587 /* SDLDisplayCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7DCE417C4EE2395C2B60D1AFE92B0B /* SDLDisplayCapability.m */; }; - AB7F9CEBB797B1CE9C0A6369925F40D7 /* SDLDeleteInteractionChoiceSetResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C90C1D028D438622CABA6C39AD5A9BA /* SDLDeleteInteractionChoiceSetResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ABB493723C1C7433B4FFDD4C3F175B60 /* SDLMediaServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = AF122075C0B55246AB9E41B45037309F /* SDLMediaServiceManifest.m */; }; - ABF656C5E21AEC6D38F3E13417005688 /* SDLLockScreenPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B7C65426660FAD7B711561101E64251 /* SDLLockScreenPresenter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AC9ABA1E5756F8D06C41D5F12FAF5FCC /* SDLGetVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = C3F279ED37C2B8521FA6B95F37C61B6F /* SDLGetVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ACA68CEF0DCC1C8B2658E9ABDEEBFB65 /* SDLOnAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B58A20A29A45608DC88942D98FAD328 /* SDLOnAudioPassThru.m */; }; - AD5AF27742CC22CEC1D1C3DFC44F88D4 /* SDLReadDIDResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AB71279385780F65642903C30E49879 /* SDLReadDIDResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AD736001016B54573EABDD90DADE0E53 /* SDLDialNumberResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BE641F519C441DF7E48B7D3B6919934 /* SDLDialNumberResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ADB73BBB02E97BCF7038D35756317AD2 /* SDLStreamingAudioLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CED1E6D7D0EA2E9D6C83332611768557 /* SDLStreamingAudioLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - ADC074FCA5AE10C28D5026FF190EE446 /* SDLOnVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 02D5E907F468C148CBD8FD6B7AB586DF /* SDLOnVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ADC486DAB4AECF83CEF1528805F0D5DD /* SDLDiagnosticMessageResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FAA770CD2F0D719792C511D30970EE1 /* SDLDiagnosticMessageResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ADEC3628DFBEE6798F4B23763C1A92C7 /* SDLSystemAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 00FF637FC89DC702B5A3B6AA9D2D2039 /* SDLSystemAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE62522F9520AF29D75A29C4F52021DA /* SDLCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = B2C0261F3896CD81D17FC9889CD6080E /* SDLCloudAppProperties.m */; }; - AEA20BEDAED5BFD7E117618DE31A2294 /* SDLCheckChoiceVROptionalOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC1D764310276A1B4C8335898707354 /* SDLCheckChoiceVROptionalOperation.m */; }; - AEE77C021573B8DD9C36742C872CC145 /* SDLAsynchronousOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D56532D34DE9E68146CFDE8B079E3A04 /* SDLAsynchronousOperation.m */; }; - AF0378DD30CA9A0BA2190F015D33287A /* SDLDeleteFileOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA766A3B7A6071AF22334BC052F5D9 /* SDLDeleteFileOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AF723A4A4F7BAE013836CFA6EA0A96CC /* SDLGetDTCsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 873AD46682BA883CE3701B9759A685AF /* SDLGetDTCsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AFB8E1D1D3A726DC7722D55D4D6C512B /* SDLSoftButtonObject.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDAA6BCF5B1B476FC7FBE2731FD3B66 /* SDLSoftButtonObject.m */; }; - AFBA83A49C18D3400B678ED151AA501B /* TestSubscribeButtonObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = D10B31A393DEE18CB04EA2485ABD892B /* TestSubscribeButtonObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AFBCAA22FB24A405351A20E2B74558BB /* SDLDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = 7133F6AC9671200858B818B6C007DECF /* SDLDirection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AFD036FA927C58A0F33C0BAC98F1CDC7 /* SDLWeatherServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 803C2E9668B7B07DB2FF5F2B5A39CDC7 /* SDLWeatherServiceData.m */; }; - B0A97A8C76EFC9A82EEDC2D7929E1EEC /* SDLSoftButtonObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DCA91383086A7E683C2F22BCF6D2362 /* SDLSoftButtonObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0C6AD5C1F58F49D4F0EB9202EE6654B /* SDLBitsPerSample.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FF29143ABCD4BB3E7BEDE8C7CCAD067 /* SDLBitsPerSample.m */; }; - B11616E2030587DA492555777C6F1074 /* SDLProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 594AC4B2DF9D7E1F894764C0639282A4 /* SDLProtocolHeader.m */; }; - B132314B07C6A9CA6CD44F32E91AEAEB /* SDLV1ProtocolMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8078F5D8FD2E5AA8F5B8AD58492E41F8 /* SDLV1ProtocolMessage.m */; }; - B150E5DE7978C3481FD1EB1A61030C0E /* SDLAppInterfaceUnregisteredReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 5034B677DE11A819CC149521CC6E7720 /* SDLAppInterfaceUnregisteredReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B19FC81F57091EDF5B9AD8821F0B0A45 /* SDLImageField+ScreenManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 41D72B7B4ED48D2E8526C8AF6D0B9A7B /* SDLImageField+ScreenManagerExtensions.m */; }; - B1D4313BE976C18539749F477ED2A75B /* SDLUnsubscribeWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = E544DB7D1612FA15EF84618495E675FA /* SDLUnsubscribeWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B1FF65E7334126187569DEF9C0C33807 /* SDLCreateInteractionChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A117B857E94BF65B1F05AF4CDAB3A39 /* SDLCreateInteractionChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B22F7F10287D36689566D1A98DC3A8D5 /* SDLStreamingVideoScaleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EFC4194E558FB1558B3CB47C41F68BE1 /* SDLStreamingVideoScaleManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B2419129FDB4A9CB41C203589CA22D4B /* SDLHexUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 795E1BED3027BAEDD697E8A22A036324 /* SDLHexUtility.m */; }; - B2526A2E015B04742D776EE2820B521D /* SDLPowerModeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = C22DA0D19740BC3671D0F671BB54CCEC /* SDLPowerModeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B2559CB3C0CD6DEC3D98F6AC227D10EE /* SDLSystemCapabilityObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = B7A9DB758AF9D71ED356105B12453644 /* SDLSystemCapabilityObserver.m */; }; - B2912E54327248FAE3A3170E39F35F97 /* SDLH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1310B5C3A3FD8D5E490FB2B56E5AAC43 /* SDLH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B2974FCBC9EC3C2830F9860E9C4243DD /* SDLLifecycleProtocolHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 5712312473A00BB85C7BFFF2A9701AB2 /* SDLLifecycleProtocolHandler.m */; }; - B343B9B9FD94A55F5C1DF63E3797BCD8 /* SDLPerformAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA1D7A2FE7B1D749E12E48562AF0E9B /* SDLPerformAudioPassThru.m */; }; - B38195C88F92FEB489620CCBBC2020BB /* SDLLogTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = 61E9DF9DE239F356089DAA53E89279CA /* SDLLogTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B393614ECB8435C999A656EA5FF4DA9A /* SDLOnAppInterfaceUnregistered.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5DF3D138D81A3A587A931F4D1E6E9C /* SDLOnAppInterfaceUnregistered.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B3E5781080E9941D62D42336DB9B4AB3 /* SDLHeadLampStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BB5CC306F5A580E2DE14FF2E2AA1009 /* SDLHeadLampStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B4A61C8FC47F7E6EB2494CE3ECFEB4D9 /* SDLDeleteFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EC6E2E0ADD9BFC51D3ECF0FBFD7E9D0 /* SDLDeleteFileResponse.m */; }; - B4A68E8A12DB0394DFCDAC1D5C57270D /* SDLWiperStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = BAD2C195FC0F61B8AE3C568DAACD11A4 /* SDLWiperStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B4C64A6399943D451530DA5FD7209CAD /* SDLKeyboardProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 47CEE7254EB0F1FF12B377E55631510A /* SDLKeyboardProperties.m */; }; - B4F0E7BDC21F461F00D673334BBDF781 /* SDLControlFramePayloadRPCStartService.h in Headers */ = {isa = PBXBuildFile; fileRef = DADD98EB7761E07FAD05EA3DD3712E13 /* SDLControlFramePayloadRPCStartService.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B505E5278CDF2E21BACF15324A723BC1 /* SDLControlFramePayloadVideoStartService.h in Headers */ = {isa = PBXBuildFile; fileRef = AEF7CB1324D1DFFE0F15BCED4F422DE1 /* SDLControlFramePayloadVideoStartService.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B5D2886890D272E031FDDFBD5EE82D60 /* SDLOnTBTClientState.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D4D2EA95117DB980E905FBBAFCE239E /* SDLOnTBTClientState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B5DAAC1FAC61166246C28B0C670BA05F /* SDLStreamingMediaManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B2D91153D914C941AEEFE99436B0BBC /* SDLStreamingMediaManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B5F122A762987627F0C53217DD6B86B5 /* SDLLockScreenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A922B6EE1FBBD668DC4D132D27791DD /* SDLLockScreenViewController.m */; }; - B6211F586ECE845BDC52226B40D463CE /* SDLDefrostZone.h in Headers */ = {isa = PBXBuildFile; fileRef = 0393BBC2C9A85C3D9B9616139D4F4859 /* SDLDefrostZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B6226AFDF8EC2EF9AFB9A54E8746D4E2 /* SDLTBTState.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ADC53976D99CE2F85B0E80D35F54E94 /* SDLTBTState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B65BC8F264AD280C4B608EC613C945F3 /* SDLKeyboardEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B19D438E24EAAC5AB55CF4F1D7C0C34 /* SDLKeyboardEvent.m */; }; - B6CCE216B0EF2FB21C052AFBA47F8FF8 /* SDLAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2F51D8373F62E91462F357675AA277C6 /* SDLAssets.xcassets */; }; - B6E6C60209386BE1EA96C33B06677686 /* SDLProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = B4BA26A3F50E769204A2072B622513BE /* SDLProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B7690B374717F6654E1FB323F56CDAC5 /* SDLCreateInteractionChoiceSetResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C840BD5423689277D6E9D631A85F41E7 /* SDLCreateInteractionChoiceSetResponse.m */; }; - B79E708F7FE9CA288585EAD4F467C27C /* SDLNavigationInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 8027DAC33017EFA7299687C48733622B /* SDLNavigationInstruction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B81CAD6446F72990185C0B2499FBFACA /* SDLRadioControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 894048EEB0466180965743DBF850170F /* SDLRadioControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B863542C7C9CB768A3D04A69834CD9A2 /* SDLLogManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 70BE2640088F6CC3C663C6A47A6FF4EA /* SDLLogManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B877A9A1393EAA6899BBBA1B83912AA0 /* SDLStationIDNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FB0ECE1385A23AFF87B1D6E9848D84E /* SDLStationIDNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B891FD986004E64FAD5DBD9B5F711428 /* SDLStreamingMediaManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F447D50B76CF152BE05CADE1A36C2EF /* SDLStreamingMediaManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B8AD1E30EF9ABF9E7891A547006E7A70 /* bson_util.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 5ED1A1D0218C25583F5764B0E59FDC4E /* bson_util.h */; }; - B94BF8ABCA51E7953AA57545718C7C13 /* SDLLightName.m in Sources */ = {isa = PBXBuildFile; fileRef = 38C9A59422FFB04B66D9134E84B54F55 /* SDLLightName.m */; }; - B9617E8EDB38BF24FD843947A207D4B2 /* SDLGetInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 9396AC892DC0B21725B21B23AFA995D3 /* SDLGetInteriorVehicleData.m */; }; - B962D4BFCFE63DA66B345FEFD0543267 /* SDLResponseDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = F02F9007512F1E4FA4D094A117532E40 /* SDLResponseDispatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B9B40F9E3886D12F34F89C1991503195 /* SDLVideoStreamingProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = C9CA43544C48DA82A71EA58A4D291F62 /* SDLVideoStreamingProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B9EA100F0608AF1BD236FA70F8124F25 /* SDLUnsubscribeWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1172141E4430CBCB9C7B46FA2362F4 /* SDLUnsubscribeWayPoints.m */; }; - B9FBF724A55EE25820B80F367AC73C25 /* SDLClimateControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = A21A4B3EBE116F516BFBC74130C407B1 /* SDLClimateControlData.m */; }; - BA00DAA64D9E20E51594BE9DA61FB3B8 /* SDLLogTargetAppleSystemLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 7788E7C2DFC41AF4C6F9D275C716316E /* SDLLogTargetAppleSystemLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BA1BC253AFEB4606F25935208F851471 /* SDLEncodedSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6423F48220C9A8B6095DDC2BC8E85DE5 /* SDLEncodedSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BA3D8EF0CE88A9A0D9CD7AE6E2AA5FCA /* SDLGetInteriorVehicleDataConsent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C6C83F225EFD1EB3CF30CCBEC52C689 /* SDLGetInteriorVehicleDataConsent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BA45891E7B3D37994FF8A8939804C746 /* SDLNotificationConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 106CC8005ED9499CD5FD635CC6B264FD /* SDLNotificationConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BA4D812C328C254955AB984DB383EF9C /* SDLPowerModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = FC45F95EB06DB46BEF630E65F773DD1C /* SDLPowerModeStatus.m */; }; - BA96A1F8A67AA4B4EDF29EF9C9B80C1B /* SDLVideoStreamingState.m in Sources */ = {isa = PBXBuildFile; fileRef = 648FA1637D806CACB0CC9A6C444D1B77 /* SDLVideoStreamingState.m */; }; - BAC2CAAD8EF1B594AF2AACCC04E5C18D /* SDLButtonEventMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 1776C574198D8077B69B01D3AEDA34E6 /* SDLButtonEventMode.m */; }; - BADBE3327420053B18A5DC872A42BAEE /* SDLScreenParams.m in Sources */ = {isa = PBXBuildFile; fileRef = 66F45795ED9AEACF2E1E1767FF421BFF /* SDLScreenParams.m */; }; - BADDA940E23CE2325CC698BF0931F559 /* SDLSetCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C56E0DAFD813A6679773DEA90F319CD /* SDLSetCloudAppProperties.m */; }; - BB3AFD42421B78E509DDB0D3C3025F84 /* SDLLogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 99D249C8F6BCB49BC6DED24ABEACC7BB /* SDLLogMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BB601246A9167E4708E5B9D7B6E850F8 /* SDLModuleInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = C5CC066A137773D4739994E979CF375D /* SDLModuleInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC62D64FCA313B4D85D29F327B3A89E5 /* SDLSeatMemoryActionType.h in Headers */ = {isa = PBXBuildFile; fileRef = C5EFD2B1C3124A2AEC3850F1E0F152B5 /* SDLSeatMemoryActionType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC887BD28B535FDED0EE08BE93F01CBD /* SDLPowerModeQualificationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B8D419D41D4EBE7F427F3F1A6E8C791 /* SDLPowerModeQualificationStatus.m */; }; - BC95947B2CA1B575357D685F78EE3250 /* SDLStreamingMediaConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A0F610055C67181D6FFE3E0D8652FBC7 /* SDLStreamingMediaConfiguration.m */; }; - BC9735E85FD629EAA8E6D66A17FA922D /* SDLAudioControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 6076ED1F7C813186E772A1EFE55F1B2C /* SDLAudioControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BCA619430CF3590B6F43FA809D1629AD /* SDLOnPermissionsChange.h in Headers */ = {isa = PBXBuildFile; fileRef = BEEE2F7E9040BABB48B69701692886EF /* SDLOnPermissionsChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BCBEE0AE3ACC08FB525F661F1F7AC05B /* SDLBodyInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 264FB4E8863E17A2F5E34BECDA538F65 /* SDLBodyInformation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BCDDBC9A33D1F77E7522ECF8FC9A1926 /* SDLOnButtonEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 249F9CCBE006EBE28439076CEDF02C70 /* SDLOnButtonEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BCE0B77562870F561076138E433792E5 /* SDLLifecycleSyncPDataHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = DDD04A6F68474FB574C693B9CBD2C5A3 /* SDLLifecycleSyncPDataHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BCFD1E3A30AB7AFC8538D94E6451EBCD /* SDLVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = EF6117AA0363308CE09FE3E3A578564A /* SDLVersion.m */; }; - BD43BAB75FF7A0D1A0E2296F239A2D84 /* SDLTPMS.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B3CAB29D2B4B5E6B23F89F7C09B52EF /* SDLTPMS.m */; }; - BD70C9EC645E6C987CF29025EA5A4423 /* SDLWarningLightStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DCA0A5DCD6DD350EA1CF99B9837B512 /* SDLWarningLightStatus.m */; }; - BD9334E76F0C5A53139A91BD41F251C2 /* SDLRAWH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = D86564978231DBB8DE6638F518A092E9 /* SDLRAWH264Packetizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BD9AB81D2EB679A0ECAE3F85B412382F /* SDLEncryptionConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D42EAA6631F7F9BA8CADAC3A96CC64E /* SDLEncryptionConfiguration.m */; }; - BDD7F9A3576E6AB17083ADB2CB825B21 /* SDLVideoStreamingCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = AC550FFCFB8CA9B1B0C09C0E26595391 /* SDLVideoStreamingCodec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BE6575C305CDB643EFE2EEF7E6C18923 /* SDLGlobalProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D503EB0E143D4B5FF04B10A34BC6D16 /* SDLGlobalProperty.m */; }; - BE94382158A13556092EB443969BDAB1 /* SDLRPCMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 44DE2E913C1FFDEB763626983CED98D4 /* SDLRPCMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF1E60E37BF4D60693B64925C7F73BC5 /* SDLPermissionItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 694C894F8FA7F51AA620E23A7754B19E /* SDLPermissionItem.m */; }; - BF4207D49038AEDAE220D0EEE358DC4A /* SDLSeatLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = AC107A81E5890B57D66A4B85F2F5D37A /* SDLSeatLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF434044E8805B53F9C49572258A336C /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D35FA4BEEE3F908B03AEB2D32E4321 /* SDLGetInteriorVehicleDataConsentResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF741D4194863C9E087DA82D29EB42AC /* SDLError.h in Headers */ = {isa = PBXBuildFile; fileRef = 543FCEC5A85DD779ABF6ACE810B1AD64 /* SDLError.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BF82FC7181F586CF5EE1AEC6F08AFB8C /* SDLImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A5CB6D69CF7CCF3B825B42C91828400 /* SDLImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9446AB36AF25C269305E518A6FEF66 /* SDLWindowCapability+ScreenManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5DB4842C8200AA008032CB8399D93B /* SDLWindowCapability+ScreenManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BFADD0FED2798C307E340300A4A559CB /* SDLCarModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B9B1FC9F310952A5B90D5345964A38C2 /* SDLCarModeStatus.m */; }; - BFC83F4E11869F5C6CD87BC9F91E123A /* SDLTireStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = EB0698F6977CDCFDF81D79A0FDBCD2C9 /* SDLTireStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C00BA8764AB904D2A89E38A8F5D9B101 /* SDLLogConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 824E5F03CBD68420A86B160BD96E6742 /* SDLLogConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C013B4F3EDA532B100A72EAE5104948D /* SDLRegisterAppInterfaceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C1E045F73DED94B7C08D794BBB769E4B /* SDLRegisterAppInterfaceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C032FFE551DF10F2182A1D1345526748 /* SDLNavigationCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 87E0AF0EFF86DC936E595031B5F1260E /* SDLNavigationCapability.m */; }; - C072FE06DD0CAAA689963411B9C86019 /* SDLDeleteChoicesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C95F788EAED941BB5F58CA21C90D17D /* SDLDeleteChoicesOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C0A71255BA42AABF49FC6BF20B7E6942 /* SDLControlFramePayloadAudioStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = BF93E5FC62B485106482874C40C58DE6 /* SDLControlFramePayloadAudioStartServiceAck.m */; }; - C175A9B4A5DF2D064C455F649EA87DEE /* SDLButtonPressMode.h in Headers */ = {isa = PBXBuildFile; fileRef = FCEA708E983578ACFF71772E8EC543E2 /* SDLButtonPressMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C17F4F8AB2A43B0B4823D243F506F5E8 /* SDLRPCParameterNames.m in Sources */ = {isa = PBXBuildFile; fileRef = 2789675DE6523B265B03FC1FF6E6C922 /* SDLRPCParameterNames.m */; }; - C281C9947B10D00CE99D0A4880B05FA0 /* SDLTriggerSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 717B86B7C8D401095BF86C8890BEFADE /* SDLTriggerSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C283ED9B5B1EC7EC6868B78713450850 /* SDLECallConfirmationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = F5903A4BA6C59D4D52E4F8EDA87E0AD5 /* SDLECallConfirmationStatus.m */; }; - C29FD00E3FFA2E5D7C80F63B4E9E5EAB /* SDLImageField+ScreenManagerExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C02BCB7CC0146495C11C4741811815E /* SDLImageField+ScreenManagerExtensions.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C2AD5790A01FA909CB37927DA7F418BE /* SDLWeatherAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = FAFC34A107469B13834960D07A94FC42 /* SDLWeatherAlert.m */; }; - C2D33B43AC2FD5798C2FAB02B8174AD0 /* SDLSetMediaClockTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = BB22292F07E70E3D6FCDE83B18E1B929 /* SDLSetMediaClockTimer.m */; }; - C2EA147B1E0EE749146AD91F1A361EB4 /* SDLDriverDistractionState.m in Sources */ = {isa = PBXBuildFile; fileRef = F75444C19206F2D27C8E558236DD8652 /* SDLDriverDistractionState.m */; }; - C2F592A1499AB4B47912EDA24EFBF491 /* SDLSystemCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F91D4B24F4C2C59889390112438B1 /* SDLSystemCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2FE8CF94D832796F3EF72FB70D19BAE /* SDLAlertResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = CC9604E66648405ECCC5FEF1ED5DAF7D /* SDLAlertResponse.m */; }; - C330281B036B07AEF8315BBA3F980286 /* SDLReadDIDResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 276CAF8F9D6F163C8789B58614C8F995 /* SDLReadDIDResponse.m */; }; - C3A16DFCC7A71BF686D742882E0ABD44 /* SDLOnTBTClientState.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BB9CD0CFFBB9A34D5C1833A78E5C956 /* SDLOnTBTClientState.m */; }; - C401770909E121E973EEC50C039FE781 /* SDLStaticIconName.m in Sources */ = {isa = PBXBuildFile; fileRef = 7497259EDCC6CAC9BEF6D2D1E503EF68 /* SDLStaticIconName.m */; }; - C4378E5305D6B3EA5395DB20C54057E7 /* SDLEqualizerSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = E68B7D0A4A009DA0A9A0B94AB87A0D21 /* SDLEqualizerSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C49085322E666749EF2BFEBE0B39A03D /* NSBundle+SDLBundle.m in Sources */ = {isa = PBXBuildFile; fileRef = C60EA5909682DF758FBFC7F0114743A5 /* NSBundle+SDLBundle.m */; }; - C604E4365ACFDCA05168D748D10B6BAE /* SDLImageFieldName.h in Headers */ = {isa = PBXBuildFile; fileRef = A499748AF54AFC5230B135A169E0F5AE /* SDLImageFieldName.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C6882A2AA7E8DF44215463FBBD0A5844 /* SDLV1ProtocolMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B07D32813B19DEED174BB740E4AE97A /* SDLV1ProtocolMessage.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C696CAE3A09EB97DC810FC07560EC69B /* SDLButtonName.m in Sources */ = {isa = PBXBuildFile; fileRef = 67855906284D207F83522CBD12130F96 /* SDLButtonName.m */; }; - C6B6887F8C6AD6C37EF48F20921312B6 /* SDLRegisterAppInterfaceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 65DF9500E597CFDE3EF8716944FF3E34 /* SDLRegisterAppInterfaceResponse.m */; }; - C7031C39032964315A742AD31DA2DC03 /* SDLFunctionID.h in Headers */ = {isa = PBXBuildFile; fileRef = 6832CFBF1515389AC3364F399A91817E /* SDLFunctionID.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C72845A179CF91D97BA28A95A08D1B5F /* SDLImageType.m in Sources */ = {isa = PBXBuildFile; fileRef = 143137C3210A437C0540124CDBE42B86 /* SDLImageType.m */; }; - C765A62BC7D3BAF02422BDDC64022D28 /* SDLSeatControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 74933F6EA38779F0E6B6A5E647BFAF3A /* SDLSeatControlData.m */; }; - C8354B4FAA109B7F8E992FB959D0D7F3 /* SDLAudioPassThruCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 64A402A669311BB17E6D1A2C93B61EF8 /* SDLAudioPassThruCapabilities.m */; }; - C83608B2022EF502365295CEE3046EE9 /* SDLLightControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C48BC3D16BDEC962C895DAC4CD023C /* SDLLightControlCapabilities.m */; }; - C8B526917E4FCD8F00E01FAF201C6FF1 /* SDLTimerMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B6E8C1AF472B205BEEAA5ACDA1339A3 /* SDLTimerMode.m */; }; - C91879AA8DE05A71C2033F931AB5CCA3 /* SDLAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C4083DFA322D07EB69325A6B9D19535 /* SDLAlert.m */; }; - C927DC95742CBB01C497AFA4B78445B6 /* SDLDeleteCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = E704475B197CAEDFADBA46990776ABED /* SDLDeleteCommand.m */; }; - C93DE69DC8E81F3B919DC5041BE32DF5 /* SDLCreateWindowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FA15E0A79BCB48FD659C8724AE5E8D70 /* SDLCreateWindowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C96541A29287F286A29CE2D41F837A8C /* SDLLockScreenPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 756E3677484D98F236D0DEFED0A75FCB /* SDLLockScreenPresenter.m */; }; - C9A51A47B90DE8253FD3BC6440CFB71E /* SDLAddCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = EBEB8360055FF562885140AB8EDC891A /* SDLAddCommand.m */; }; - C9C038075883A4ACFC245F7BB0F5AAC7 /* SDLMyKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 20D7BE66EF79F8245CD53754C388C728 /* SDLMyKey.m */; }; - C9F342135DE170D7298B6311F1F41FC0 /* SDLUnregisterAppInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = 75C363A47DCF966B0F26AC9DF8623EFE /* SDLUnregisterAppInterface.m */; }; - C9FC2712FD59353F55017123EB379B15 /* SDLSoftButtonCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B6FD0DA2716669347AF1A445E85BE70 /* SDLSoftButtonCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA828C268CD9EDA17EEB8F8B54EC580F /* SDLGetInteriorVehicleDataConsentResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 64190B404D04BE52AA1D0DEE2805F556 /* SDLGetInteriorVehicleDataConsentResponse.m */; }; - CAC3A564C9FD78BB9295F9B6399CEA9C /* SDLSeatLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 679D66BB05750D3932558F28A7CAD469 /* SDLSeatLocation.m */; }; - CB314D43C8D15A58318A5743F366449C /* SDLRPCResponseNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = AE8A6C8CDEC1BDBFE21E0C20040FB131 /* SDLRPCResponseNotification.m */; }; - CB5175E540FEDA9D29FD99735A14E9CC /* SDLRGBColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 9218B97772D190A9BC1FBAC18A3BF6CE /* SDLRGBColor.m */; }; - CB753DDB9FFC23A82636E11F3E8201E9 /* SDLShowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3968E1FF70DAB6F1C5CCCDB5E938D6AB /* SDLShowResponse.m */; }; - CB78A3E864EA0A002502E8C3AD6C46D8 /* SDLAppServiceType.m in Sources */ = {isa = PBXBuildFile; fileRef = 48307D297D9F19863197DD3A5B8AFBD8 /* SDLAppServiceType.m */; }; - CB791B74CA451436BBDA8DBA49F32388 /* SDLWindowCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 17FE8D4DAAE70A4CF5E436290E17D17D /* SDLWindowCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CC38CE4B649D9F3DD92503A289BE0CD3 /* SDLLogManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FF74FFAAB89A4E89CD8576C7CCF13EB /* SDLLogManager.m */; }; - CC75C0FF02FCD0592B72443A8EF5A318 /* SDLECallInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D5380F0BCC170C113C3965CCB7AD31F /* SDLECallInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CC7B499C32833CC21989CB78BF57BD8D /* SDLVideoStreamingCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = C4FFC5C7A65B24AFC32457EF2DE79160 /* SDLVideoStreamingCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CCBECB250F1187B41A68914229588D8C /* SDLTurnSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 375F2398BB370B3CEDB269657E50A87D /* SDLTurnSignal.m */; }; - CCE74EBBF92764FA7768E11556D54FD6 /* SDLHMIPermissions.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A6CDBAD9F0E1DE4C224214867D802DE /* SDLHMIPermissions.m */; }; - CD55C89B732A94B7FCC7CC31DC96683E /* SDLOnTouchEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5755CA4656E4B0C76ED9F9F63356B985 /* SDLOnTouchEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CE49C253A850F521047B5640FB5E53D9 /* SDLLightCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 28171FB492C52974721D3E4837BA46EB /* SDLLightCapabilities.m */; }; - CE691148A9A35566ECB26399D679E7B2 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h in Headers */ = {isa = PBXBuildFile; fileRef = 371F5509AF08468749E6798199E0D549 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CE860D295614DCB059C534EDA0E64B39 /* SDLShowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 86689BFD78F7052E93F28B5BBE6A09E6 /* SDLShowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CEF0992BAA5B7F699F8DA9AD14CF30D7 /* SDLHMICapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CF3282DF31D7BD5C48812D01950DBA5 /* SDLHMICapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF0D78642CD57EA660A8067270AAAF75 /* SDLAsynchronousRPCOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C932CDEE9602EF8E18CDD087C0022D /* SDLAsynchronousRPCOperation.m */; }; - CFBCEFA39678BB8EFED556C4C4E393C8 /* SDLVehicleType.h in Headers */ = {isa = PBXBuildFile; fileRef = C65504710D6D14CB30F9BA892B1A289C /* SDLVehicleType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CFC7B8C1E1DC3CFE16D20AA62F278C69 /* SDLRPCStruct.m in Sources */ = {isa = PBXBuildFile; fileRef = CC30ACD3F6015F21547F9A433E6385B3 /* SDLRPCStruct.m */; }; - CFC9643FF9F27BE41FD8D8256171F71C /* SDLIAPControlSessionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E588D52092688278DFB1ABBD34198268 /* SDLIAPControlSessionDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CFD9812D61C603C043D630BB5F397E1D /* SDLSubscribeButtonObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = DBDB552AB8B94525743E433DEDF82011 /* SDLSubscribeButtonObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D0023E1F0600BF9CAAAA43E80FB6FEC7 /* SDLGetAppServiceDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 23F819C18E6C44ED74C4333AD5189778 /* SDLGetAppServiceDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D029694A9ECA974051F09BD25C50A725 /* SDLMetadataTags.m in Sources */ = {isa = PBXBuildFile; fileRef = A3ED9F7681E099143B800F40621D588E /* SDLMetadataTags.m */; }; - D03657B4B97135C1DCC9000C19C8BE79 /* SDLObjectWithPriority.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C0A8CFB3D9B165CAB3A25F6C5FE2553 /* SDLObjectWithPriority.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D066E3D20D52ACFC367678312426430F /* SDLSubscribeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B5139FCDAC1C84B8E10AB5D0D7E1E0E /* SDLSubscribeButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0F3FBDF8B599CEC7A632F06AC53403C /* SDLDeleteInteractionChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = AB15A2A894735B2E1F0B2159CA744E96 /* SDLDeleteInteractionChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D1369C0C9D556D158451FE97A301BFA7 /* SDLRadioControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 6974D1792F6599EC0D62B246B18D24E4 /* SDLRadioControlData.m */; }; - D14B926EFC1FDF906D5A57CF73D656A6 /* bson_array.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = C3C759E34418D5E3F059C76D2E9BD03F /* bson_array.h */; }; - D1DAA1AC9B11A5D2BDD511E04EB074B3 /* SDLPCMAudioConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A8CEE67C635CC8AF33D4597EDEF323E /* SDLPCMAudioConverter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D234391D80E52A63CABA557E2648CB1D /* SDLDimension.m in Sources */ = {isa = PBXBuildFile; fileRef = A65FAB1A1AE67773721FE07A100A3E83 /* SDLDimension.m */; }; - D2E6FD57DC939224A0D55A6A73C8E32A /* SDLSystemRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0692FFE8FAC6940F376FCEF685DDC7B1 /* SDLSystemRequest.m */; }; - D30AA824325A769A834200E9DD3F59C0 /* SDLElectronicParkBrakeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DBF14A9018FF0267ED5E2B71139B68D /* SDLElectronicParkBrakeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D3348A43DB6C171E887F1D9954A78844 /* SDLRemoteControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 2498D14A443BEA451B1C1E3F10FCAE0A /* SDLRemoteControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D354CACF9942538FCD7108F3AD25E2FF /* SDLSubscribeVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C42D7A37E6811A0891E4271E3B53A5 /* SDLSubscribeVehicleData.m */; }; - D3D759726795216F9424D189A841E710 /* SDLAppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0C5BDEA392C2632EF566C04D76A2D0 /* SDLAppInfo.m */; }; - D4A54E3C0D63E0D6C971F0FC5C75D9A2 /* SDLButtonPress.h in Headers */ = {isa = PBXBuildFile; fileRef = 5515A49433320321179C4B897753C324 /* SDLButtonPress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4C33A66E4B2EDDA130CF9F6A5F4867E /* SDLCreateInteractionChoiceSetResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5123591BCB0470FF6776714BBA79CF39 /* SDLCreateInteractionChoiceSetResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D53AA773DBCA4F6FBCEBA54EFB599F67 /* SDLControlFramePayloadRPCStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = C38C988FF2BC04E3BECCA8B8B2BBB7E1 /* SDLControlFramePayloadRPCStartServiceAck.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D53FD842288FA0D06416A49B6C1AFBE0 /* SDLGetFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 61F44CE148CA8C83F8C0A4C085412C87 /* SDLGetFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D54A635809186EE3A7DE1A53F06521A6 /* SDLWindowType.m in Sources */ = {isa = PBXBuildFile; fileRef = FC49D6A818044BC964C9DFC092C0A8DF /* SDLWindowType.m */; }; - D5CC270CFF00D37990A5827DC91AFFAB /* SDLSamplingRate.m in Sources */ = {isa = PBXBuildFile; fileRef = 547FC85E47390A2ECB343B5888FA5AD9 /* SDLSamplingRate.m */; }; - D64E2353417610902CA55C5AF2070043 /* SDLRPCNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CDFA658ED93C052C47B55E697EA5794 /* SDLRPCNotification.m */; }; - D6A04EACEFFB11EE78396AFCD301CFAD /* NSMutableDictionary+Store.h in Headers */ = {isa = PBXBuildFile; fileRef = 879A113E59D1AE7DFEBF6165CDA5A8D2 /* NSMutableDictionary+Store.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D71547F3652CA341C38A8D6F220F2120 /* SDLSliderResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A6FFDC23241F75DEE1A10FDC70F86EF /* SDLSliderResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D73ADEB3AC0387951C53E6960FA055E7 /* SDLWarningLightStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 6576A40CB2829D4CDEE4A81F7E0E7603 /* SDLWarningLightStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D795C46A692D0C8E9ED02F075AB7ACEB /* SDLLockScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F82D999CC1B451EA5E5D2B62490AA064 /* SDLLockScreen.storyboard */; }; - D82D736B2C3DF45A7C4F9F8FD1C56517 /* SDLPerformAppServiceInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A913DD8B429EFA97826EA9C49B3B92B /* SDLPerformAppServiceInteraction.m */; }; - D862DF3A1123E8B1E20F34D6FA127FA3 /* SDLPermissionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EFA8634E116455C1E294504A1C5622 /* SDLPermissionStatus.m */; }; - D945C7965067F2906108EDCC145A2E96 /* SDLImageType.h in Headers */ = {isa = PBXBuildFile; fileRef = 93C7430585EB46BE55AE0CB860148481 /* SDLImageType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D95A9D7BB42ACCBA3A63C34D01602A83 /* SDLHybridAppPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = BD5725BF0453F0E370C791AFFCA33AB0 /* SDLHybridAppPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D9A5E832734F7C100908FCC5E7F82B4E /* SDLSystemContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DDB64CACEBCF991EC3567F7211CF4D7 /* SDLSystemContext.m */; }; - DA392F7D8AEA6EE6F78C2FB9A4922637 /* SDLGetCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F2C244E4B55F098A0A0B3DB07E12A8C /* SDLGetCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA960755FE2D4EDAC30E870462D1A91E /* SDLTriggerSource.m in Sources */ = {isa = PBXBuildFile; fileRef = CBEE832F83BA93DFD8764142F6CBA3D6 /* SDLTriggerSource.m */; }; - DBA4C7F13AA39D73C5CC1DB14A0A6AB9 /* SDLSpeak.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F67F561A7D9BA5C6B5EFD140526D3F7 /* SDLSpeak.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DBDF33CC4BB41323D4184E33B9461898 /* SDLDisplayType.h in Headers */ = {isa = PBXBuildFile; fileRef = F15F88F1FB854998E6F08EFE580379A1 /* SDLDisplayType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DC881BB2F2DFC11A47CD97DFA6AD0A35 /* SDLUnsubscribeVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A3B1CF955FF3C570C55831E8B43B2068 /* SDLUnsubscribeVehicleDataResponse.m */; }; - DC9AE1FE02EE4FA7CC1FC9B08CEBC606 /* SDLFileType.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B563B100B41A14984E794CEF82D270E /* SDLFileType.m */; }; - DCCB73ABAEDCE1A79D4064B827A4A199 /* SDLShowAppMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 8853DFABCBBEFF6CC328439BFF8817C3 /* SDLShowAppMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DCE0587A668CB5629A3922AEED72696D /* CGPoint_Util.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A08ADB128C672DC69C4127E045F5070 /* CGPoint_Util.m */; }; - DD0A1BEB5AEA8AABB567D0818319E6E2 /* SDLAudioStreamManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 415932F30412FF10E539284D48E8C35D /* SDLAudioStreamManager.m */; }; - DD12156E50D744D040B9FEB30EA4953A /* SDLLockScreenConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB3BE56CAC7F62425D19C1C143A480E /* SDLLockScreenConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DD85346FE22FA8E930D3CB3A28796C18 /* SDLAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BB01A65CEF78E53E9E87B5A49249EF7 /* SDLAudioFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DDC9A6C3B028FAED1D590BB8FB455CFA /* SDLDeleteInteractionChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = CBEA9E8BA4BEAF80193321CF986F0A91 /* SDLDeleteInteractionChoiceSet.m */; }; - DDD1B26C9CF46F4824E82A0F9680CC69 /* SDLIAPControlSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E2182C9F77CC4097FBDD673E8C2836A /* SDLIAPControlSession.m */; }; - DDE358C2EE534C830E21C925CBFF1336 /* SDLSeatLocationCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = CBF1AE79CC723B76B9681FA0C5983591 /* SDLSeatLocationCapability.m */; }; - DDF86259DDD170BA0A4E196E4091693D /* SDLVideoStreamingFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = E11A499A146EB80F4A50C4AE2C91E1B7 /* SDLVideoStreamingFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE5FE3482E96C8FBC5DCF4D0E5163EBE /* SDLPutFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E86A7FA49FEA6AEC0D760D8965C3F6E /* SDLPutFile.m */; }; - DEA9189597B1D402634C0FDC1F148A1E /* SDLIAPConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D62134BBF189EA2FAE0F2B9924C1CEA /* SDLIAPConstants.m */; }; - DF0F464852D0677F40806289EC180D71 /* SDLTransportDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 813A808D60B18F9235194773796098F2 /* SDLTransportDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DF20DAAFCB4697B4CEEE7EBD7B0A4E3C /* SDLConnectionManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 31D638E1DE7C038192AB4E63575C1E34 /* SDLConnectionManagerType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DF259E1489BF17C7A620368B26B8E6A8 /* SDLPresentKeyboardOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7785AC3BC85CD23B07AA11423440A028 /* SDLPresentKeyboardOperation.m */; }; - DF389ED4CFCC4C49722FF32428C21F02 /* SDLTouchEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = E5BD5854C96BA4FE20BD941CF41A25F7 /* SDLTouchEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DF7F7D30FAFA0F25842E683D7A400EE4 /* SDLSyncPDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 20AA06A772B16D6AFF72CC6CA4ECBE20 /* SDLSyncPDataResponse.m */; }; - DFB5323BF440F714217F5A09633AC683 /* SDLUnsubscribeVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = D84CA7BBE7B7548D37D20852C77A974C /* SDLUnsubscribeVehicleData.m */; }; - DFD13BF6A7E6D738C7D1630542AF5872 /* SDLWayPointType.h in Headers */ = {isa = PBXBuildFile; fileRef = 28EB6163FCBF6FF4A874232363F1F693 /* SDLWayPointType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DFD1D56FCF90A9760B608B68C4B20D6C /* SDLDeleteWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ED1437EE8F2E16924B445E6758A4682 /* SDLDeleteWindow.m */; }; - DFF19085B6F82962C5F1F82038CCB5E2 /* EAAccessoryManager+SDLProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EFC8BC7FEE4107EC3E3E44D15D11048 /* EAAccessoryManager+SDLProtocols.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E056C153EAE20DCBD4C9346F351F7717 /* SDLGetWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F504801CD4380D506BB8BFFCF7087AAC /* SDLGetWayPointsResponse.m */; }; - E078403E7DFF3C8235326AF4AEC6EF77 /* SDLMassageZone.h in Headers */ = {isa = PBXBuildFile; fileRef = A71C484F36F765E076597940091AFBAE /* SDLMassageZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0A5E4C0E118E169E451821D5BF2E993 /* SDLAppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = F27A5F1AE23A8CC4875C2B9F720E0983 /* SDLAppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0A861742905E7E47078908A5C2A0AD3 /* SmartDeviceLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 87267A348F7A4B4D11EE9347E8677479 /* SmartDeviceLink.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0E1B3ACC985352FAE972CBA76E0181F /* SDLAppServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = CBC0300359DEB43A7C09E1D901FCA137 /* SDLAppServiceManifest.m */; }; - E11E514E7F0437EA78FF5E7634527A07 /* SDLSequentialRPCRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DD86F842662CDA74C3E46854A424F2C /* SDLSequentialRPCRequestOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E12CD1AD7EA335D3E545466678071A23 /* SDLModuleType.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D09D03FDBAC839C0B609D7085FE7612 /* SDLModuleType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E15BEF011399A57453FA0051FDDB3602 /* SmartDeviceLink-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C93D02DE99AD9CEDF69F718811048F8A /* SmartDeviceLink-dummy.m */; }; - E189829941785EB78EBB2334CF16DAEA /* TestSubscribeButtonObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 6748E54A60D5360EEF0582C7FD7CCF5D /* TestSubscribeButtonObserver.m */; }; - E19B88D7A8B3DD5BB44A6A8A020B25E6 /* SDLSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6802538CA9682265946D00C4029FA1AF /* SDLSystemRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E26CE02D51DACC443064BFB173681339 /* SDLControlFramePayloadEndService.h in Headers */ = {isa = PBXBuildFile; fileRef = 450FA67BD7C44184F88D81F8C399251F /* SDLControlFramePayloadEndService.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E27BEE118C9765810483CB560ABD00CC /* SDLPermissionFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = D46CF1A0CC78659C588255386F2C8286 /* SDLPermissionFilter.m */; }; - E30B75E167E1051A94351A3237DD84B4 /* SDLWindowCapability+ScreenManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 19123175F1282074060FF723AA346973 /* SDLWindowCapability+ScreenManagerExtensions.m */; }; - E3644BDDD294BE373BF8857CA9A0C87A /* SDLLockScreenViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = CEFD29CFFB2F5E8DB487421FE557262D /* SDLLockScreenViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E3DDE087EE819EC6A6C2B47398AD2778 /* SDLAsynchronousRPCRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 734B4EBB383604167B153F2C9772FB06 /* SDLAsynchronousRPCRequestOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E48843702E229647A8BEBA0EDFEAF5A5 /* SDLFileManagerConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 87FBD700D9DBA4D763D490E8394ECAAF /* SDLFileManagerConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4C8134393CD7860FE31F8B17DDF6F51 /* SDLLifecycleRPCAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 560968D114523D039B47918DE9FC2B26 /* SDLLifecycleRPCAdapter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E4DBBC95BD7911FD5036361AD92217E1 /* SDLLifecycleMobileHMIStateHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CDFC5B023598A90612B35331554854F /* SDLLifecycleMobileHMIStateHandler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E4E197C549F240B3BAAF1AC8DECE3A05 /* SDLUnregisterAppInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F13B63A4EAD46B06716304725A8B45C /* SDLUnregisterAppInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4F533095901E422CA5FDE7ABA3D70F5 /* SDLSoftButtonManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 76B79D31FD4EBE8EA253F726A2DFA50B /* SDLSoftButtonManager.m */; }; - E5979E7ED144130EDF229E940FDCEC6D /* SDLDiagnosticMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 534381EF77922C7C1FEB465E9A76C391 /* SDLDiagnosticMessage.m */; }; - E5B8877CA9E196869619D1FC0581AFFD /* SDLMassageMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DE90E5D2B3882F8873FABF50DA4CCA6 /* SDLMassageMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E60C31BCA01176861E329F22E3E0E7E0 /* SDLStreamingVideoLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 23459A7914F07050043EE0F27ED4F5AC /* SDLStreamingVideoLifecycleManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E64C863EE7F6A9280C3D958F9FAB6D75 /* SDLChoiceSetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 956C902E2F413D6BBFF38305B200A08F /* SDLChoiceSetManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E67FF2ADC53F5081B3B89A633B585ADB /* SDLFocusableItemLocatorType.h in Headers */ = {isa = PBXBuildFile; fileRef = AAD2B4E1C0F33BFEB252C2481A9032F2 /* SDLFocusableItemLocatorType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E6A2C645C61F2F9B43588404108BCE6A /* SDLV1ProtocolHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 697EB906700E028BBEB4A35248DC2B56 /* SDLV1ProtocolHeader.m */; }; - E6BA8D851540D188968B8544AF39F7C7 /* SDLChoice.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BAF278CD2A85FB40BB8CC980CAF9CE0 /* SDLChoice.m */; }; - E7223141AA526DE27508B110154D0FFF /* NSMutableDictionary+SafeRemove.h in Headers */ = {isa = PBXBuildFile; fileRef = 3267E75ED2305FABE31E4255A576BFF0 /* NSMutableDictionary+SafeRemove.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E72E6D7C1BC53DD19935FABF258E5F28 /* SDLTextField+ScreenManagerExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D385296CCF12F9A0B41C02B3DE307DF /* SDLTextField+ScreenManagerExtensions.m */; }; - E745F04FE498B11A62DAC56607C8F16C /* SDLGetDTCs.m in Sources */ = {isa = PBXBuildFile; fileRef = CCEDBA4CF5298ACECCDBB21E9EF83088 /* SDLGetDTCs.m */; }; - E770BD60F6BEE6EA0CC738E462297255 /* SDLDateTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE3643BA5E989C40224C3A030671F99 /* SDLDateTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E77B6A7478F7762E6DF80267D1107F58 /* SDLElectronicParkBrakeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CF68D31D1441A9B01A4855729375706 /* SDLElectronicParkBrakeStatus.m */; }; - E78A6E5549B103DFAE743AD12D3BB3C9 /* SDLControlFramePayloadNak.m in Sources */ = {isa = PBXBuildFile; fileRef = D08CB1A94F1B6EE63D943DD3D8D04CA0 /* SDLControlFramePayloadNak.m */; }; - E7C7BCA91C1B7925FF3236886B7C661C /* SDLStreamingMediaConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EFFAA583749B44A2BF65582EA151370 /* SDLStreamingMediaConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E810E9E75212B959F2CD0DF82CD36C73 /* SDLAppServiceRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 453036FA291BAD166B2A99B5B41BD415 /* SDLAppServiceRecord.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E84F68513747CEC8D204D0D889788925 /* SDLChangeRegistrationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 96D8D2CAC3C9D900AC00A8B3CC5C579F /* SDLChangeRegistrationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E856AEBFEFC7D5F0578CD0BCF2E437A2 /* NSMutableDictionary+Store.m in Sources */ = {isa = PBXBuildFile; fileRef = 9125F90EF6EEDE90B5699DE26ABE1AC6 /* NSMutableDictionary+Store.m */; }; - E879B34C758CF14640C5A627D0307261 /* SDLReleaseInteriorVehicleDataModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 80E39D52CFCFBFC32F5CB5C74DE3AAA0 /* SDLReleaseInteriorVehicleDataModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E8A50AE74D22C3B1C7383C7A66920E85 /* CGPoint_Util.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD6F467D5959B95D867103EEA1CA0D2 /* CGPoint_Util.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E8AAE041A57854E0F8D501E9E3069433 /* SDLAudioControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D35EEBE45318E549076542898349235 /* SDLAudioControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E8C544AFFA8924FF213F3F40FD60CB93 /* SDLLogFileModule.h in Headers */ = {isa = PBXBuildFile; fileRef = AFC91724BBDC797A1FBE9062D011BD62 /* SDLLogFileModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E8EC8F9D6034BB1DE7A080BE397C90F4 /* SDLRPCResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 12FA04857AC1900EEA2522D1D3101207 /* SDLRPCResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E9259CB039160D0244527AB61D400DC1 /* SDLProtocolMessageAssembler.h in Headers */ = {isa = PBXBuildFile; fileRef = FBC6B21F650C1A094011B17D5E921EE8 /* SDLProtocolMessageAssembler.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E931DA8F802C54BF86A5340D1A2B2137 /* SDLLightCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 47C1FDEBDE61E5805D49671442A7A863 /* SDLLightCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E976D4852A3C6F9FD8D41E3EDEE93C12 /* SDLArtwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D43F462BE01761031E4AFB3D2476A5F /* SDLArtwork.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E9863F20A70B2CC2E80FF2810B3C9D62 /* SDLHybridAppPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F676E8F3D670FF0D4C133C69B09A3DC /* SDLHybridAppPreference.m */; }; - EA3FCADC9D8E43CBCFC84DFE35BCFAD8 /* SDLKeyboardLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = C33288F60F5B286E2B4C53A09F9694A8 /* SDLKeyboardLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EA6E38C397BEA72FCE30006B71CA4BE6 /* SDLGPSData.h in Headers */ = {isa = PBXBuildFile; fileRef = CE702433D4927A3186F0C2ED53D7F27B /* SDLGPSData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EAD277CFE95CC66B1039E4D7FDB59286 /* SDLAlertManeuverResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DCE03B2B123ED8E259A090EA186A04C7 /* SDLAlertManeuverResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB06F65BAC152480E3E9C9F16199CB39 /* SDLUnpublishAppService.h in Headers */ = {isa = PBXBuildFile; fileRef = 93B08DECC2D7CA909B9CDA3141DB7B0E /* SDLUnpublishAppService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB14E5C92B2A258AAD60D0CACD27F65B /* SDLBeltStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = CE75998AC803F932D548A5CFAFE79632 /* SDLBeltStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB385DA834293AC271339D75AF78F3FE /* SDLStreamingProtocolDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F7A53F84A8696465E51EAF70199ABE9 /* SDLStreamingProtocolDelegate.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EB4732C359585CD72017A5D90B904EDA /* SDLDeleteFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8968D59CE9F5ACC5102A6047D3E64151 /* SDLDeleteFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB66896A19F2C1294373CFB8E100750C /* SDLImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 5607006D258938F74C9BF96F14B4D4DF /* SDLImage.m */; }; - EB82C497CFD63A7E991892F5B60D361D /* SDLOnEncodedSyncPData.h in Headers */ = {isa = PBXBuildFile; fileRef = BB36829AE73AF06B17E8AEA68D9D2473 /* SDLOnEncodedSyncPData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB96732B0C7E6402276EDDF4DE47A4CC /* Pods-MobileWeather-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FC419B6D5F4F5B911DB8B2F295E08532 /* Pods-MobileWeather-dummy.m */; }; - EC4C030E69EDB7ED01EAF333978D082C /* SDLSystemContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 74B94C300012972D84ADFCB8F8E1CF22 /* SDLSystemContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ECB370882E699F878A5EE75B1851B368 /* SDLGetFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CB6D2B700919E44F651FE5643F0D5AF /* SDLGetFileResponse.m */; }; - ECC87CADBAB0667E1CD7E637907B3FFB /* SDLOnInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = E47779D3822D6421717CCECB009326EF /* SDLOnInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ED68CCC97FB702F10ED78C504F690D4C /* SDLBackgroundTaskManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AFE831074AA07078B0E351971A9F0E26 /* SDLBackgroundTaskManager.m */; }; - ED90A63BB1EB1FFE8F728ECEBA936AAC /* SDLStreamingMediaManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 67F2B147BCDCFCAA281D2A08BC379214 /* SDLStreamingMediaManager.m */; }; - EDCCABE00468B31ECA26D0C9F8DDB32A /* SDLOnAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = E0693F2A953A77A17E75C29FAFD7F7BD /* SDLOnAppServiceData.m */; }; - EDDBA38A8B5F08CB9E558E24E13E0A6E /* SDLLockScreenStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 096D9EC5221B9D6B456EDA53A2E88F92 /* SDLLockScreenStatus.m */; }; - EDE7F8A2D90DC7182E741D38768672F2 /* SDLMediaClockFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 5229ED97F3A6D032C282A878D63A8092 /* SDLMediaClockFormat.m */; }; - EDEC92034597B5305FB581C52EC342C4 /* SDLUpdateTurnList.h in Headers */ = {isa = PBXBuildFile; fileRef = 85FF8FC6AE8E88BF0CA87D995EEEE5E7 /* SDLUpdateTurnList.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE121FDEC42443727301FA4327B5E85D /* SDLTextAndGraphicManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 42438A9D2F6D3292FF657E90823128D4 /* SDLTextAndGraphicManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EE1F6BB1177EE70D1169A40CCC7461B8 /* SDLProtocolConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = CCF9B35E59B89A18102BA35693887E8B /* SDLProtocolConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE461746C8941EDF411A4EA8A1171FB1 /* SDLRegisterAppInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = DFDCE97BBEEFF7D0876C6518B71FF257 /* SDLRegisterAppInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE5D946537A1DF4179774759EFFD6220 /* SDLUnsubscribeButtonResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = E8F6D5DF57737B1814A0C47D2D638B89 /* SDLUnsubscribeButtonResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE697B0B4995E7259B791BCC582D727B /* SDLOnLockScreenStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E271C1F0006C8746C76DB4C28A25B6C /* SDLOnLockScreenStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EEE954637AC6DD4A372598EF3440574C /* SDLNavigationServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F19ED2AEE6718C0915FC669935F35ED /* SDLNavigationServiceData.m */; }; - EEED8D96B2DECE2356CDBED6331960F9 /* SDLTextAlignment.h in Headers */ = {isa = PBXBuildFile; fileRef = 09E0B697D5D3515000987CB02ED7EF2A /* SDLTextAlignment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EF44A701FBA04315711D250293E37709 /* SDLPrioritizedObjectCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 198A0AA98C61E2A39539B9020C6185CB /* SDLPrioritizedObjectCollection.m */; }; - EF4DCF74785D8396D212AAE785137F90 /* SDLTemplateColorScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = E8AF7FA3A3B233DDB4F14996698E8FE0 /* SDLTemplateColorScheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EFBEEF8568380DEE11B6F08A8B78B4A8 /* SDLSingleTireStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = DFEC3B4824AB98BD46E19AA4744BB016 /* SDLSingleTireStatus.m */; }; - EFCF4F776EC87D885ABAEAB6A6F008B0 /* SDLLayoutMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 407C6AE6126DB991B09BB16445481048 /* SDLLayoutMode.m */; }; - EFE389E20849E812CB14B8BB26E3B3E4 /* SDLRPCPermissionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = D23AB515C337D48F2DCD15C942D9FF3D /* SDLRPCPermissionStatus.m */; }; - F02D84852A5EBD3B296F70F05E44B9F6 /* SDLControlFramePayloadNak.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A7CA326FC1A31FBED51465160C7D19 /* SDLControlFramePayloadNak.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F0E8376DAD107E666421E01CCEA55406 /* SDLPhoneCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = F498D01DC4282CD4E4C51C6511F9D57F /* SDLPhoneCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F11187AB47B27B53FE198D0BB45746B1 /* SDLMetadataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A7526B4C33F3597CF06B974E14148B3 /* SDLMetadataType.m */; }; - F19E92D00AF56884D8403180450C673D /* SDLDisplayCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 9227FC37C76C208644F400388ECD5C95 /* SDLDisplayCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1E0F92908B6D9838308E4BE87F9F35A /* SDLDeleteWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F84252F4C10EA659DE486850D8B391F /* SDLDeleteWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1EFCA8C3F62223ADFD09C33D6AB282E /* SDLOnRCStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 6243FFA5A3FBB349C133E1FC613BD6AD /* SDLOnRCStatus.m */; }; - F1FC1F415525E9BE1FB87674C21164B7 /* SDLKeyboardDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = FBB16D3DFAE9EF0F599A37586C34BCF7 /* SDLKeyboardDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F203E56DA3EE44EB9FFDDDC5C49825CC /* SDLSystemRequestResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A030F2B6E37938FF8043D0017F09F80 /* SDLSystemRequestResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F21FA12D42119F7BB39472B8AE1A52E0 /* SDLMutableDataQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CA5C324677346256F9E7AF067CA1CC /* SDLMutableDataQueue.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F294BC925A822EDFBD0E5486EF65A9EC /* SDLVehicleDataActiveStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BDE7214FFD1799A060E153912422D29 /* SDLVehicleDataActiveStatus.m */; }; - F2B384A9614E760CE466DFCCD80F5CEB /* SDLCarWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = E0BC4F6E6B159DB9BBF7B3971DE31957 /* SDLCarWindow.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F2BE2F57B286B175FC62F1444430B1D4 /* SDLChangeRegistrationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D1038E18768690DF540899139455789E /* SDLChangeRegistrationResponse.m */; }; - F2F0578FC5558A1FD4D42C94CC018FD6 /* SDLIgnitionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A5B485EB6672E131B13E69E253F738D6 /* SDLIgnitionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F325BB0AC6DDD888968309DBD7C206F4 /* SDLRGBColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 22D8E6FEF71BF3A66088118AA02F0841 /* SDLRGBColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F36307961DF70A8DFC73478E78F68284 /* emhashmap.h in Headers */ = {isa = PBXBuildFile; fileRef = D8937A5799CDE32614D2726C81F82818 /* emhashmap.h */; }; - F38051ED9D5A6D64BA22B6120F718E08 /* SDLDimension.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D5A06B422339F19A2053DF7AD2E64B0 /* SDLDimension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3ECB95B0031A65E9E7E7169914044C4 /* SDLSecondaryTransportManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F3EBD6B66041D66C2196112E820E644E /* SDLSecondaryTransportManager.m */; }; - F3F1C5B0BC58DC8D8FC6B259EB0932F1 /* SDLDistanceUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = D83C3F848B3100D62A9329AE8FD1E53A /* SDLDistanceUnit.m */; }; - F42A7657DCF0C0B769D05F922B972CE9 /* SDLOnSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 71CFF60AB38BB1284642C3A2EAE0D940 /* SDLOnSystemRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F434E151A675619FB6DE7B0CF3BB0AA7 /* SDLDeviceLevelStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 0014601A825D99EBC10BD35C7B771929 /* SDLDeviceLevelStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F46BEBD9A0AB03DE13E0B3F4D967DA73 /* SDLMenuManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 793212B2CF70C31043EA09E6CBA12BD0 /* SDLMenuManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F51C62C254D0309353E467F80FEFFE34 /* SDLPRNDL.m in Sources */ = {isa = PBXBuildFile; fileRef = 46ECC18D967806C249E479F3E3F6CB28 /* SDLPRNDL.m */; }; - F54ED240190830BC405F8A3F246EA0A2 /* SDLCloseApplicationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DD906B67A1DB81F1A4D78834D42F0C3C /* SDLCloseApplicationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F56962B7761B2885ACAAA3F09C022199 /* SDLVehicleDataStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = FAE209F3C74B1C886D2FEBB75394F38F /* SDLVehicleDataStatus.m */; }; - F58FAECE702EA7D92183F8760FD9A2FE /* SDLECallInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CEB2D97B78F3D03054621D61974E2CB /* SDLECallInfo.m */; }; - F5B39B468E865441CE2BB79219D8BDC1 /* SDLSeatLocationCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 41D1F2E020D4C94A54B41209DF6979D4 /* SDLSeatLocationCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F5D727D9EECDD13F365FBE86B3106EB0 /* SDLEndAudioPassThruResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 0006A2A7A7BDE53A1AACFDA8155F4F61 /* SDLEndAudioPassThruResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F5D9E586A90FEA617FCD63C38EFCA138 /* SDLLogConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 45C3A2C25877219916DC604237EE989A /* SDLLogConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F5F3431D4E9DA8E993F74FBB8700C2D3 /* SDLControlFramePayloadEndService.m in Sources */ = {isa = PBXBuildFile; fileRef = 26D0EBD3EEA72649EE8D2DF59814B8B1 /* SDLControlFramePayloadEndService.m */; }; - F5FF108C0938117D95BEBD45B79C0983 /* SDLAppServicesCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 756CD9B80439215BBA2D29D4ED43E094 /* SDLAppServicesCapabilities.m */; }; - F63A5F17974134AAE7F5EC1A2E61B5B1 /* SDLLockScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 736D1EB1BA3C095F2150065772354EC2 /* SDLLockScreenManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F66A68935B8E019A5A1FAE879ECA5384 /* bson_util.h in Headers */ = {isa = PBXBuildFile; fileRef = 5ED1A1D0218C25583F5764B0E59FDC4E /* bson_util.h */; }; - F67B5F6721755926DB4686901905A266 /* CVPixelBufferRef+SDLUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = B8C4AFF624FB42A6EEE527432AB9EAA9 /* CVPixelBufferRef+SDLUtil.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F6A3C792B488CB3D8AEEF40EBC595D0D /* SDLAudioControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 75470F9E88B2A0F0EE2F691B6EE20841 /* SDLAudioControlCapabilities.m */; }; - F7154784E2F5DB9E3C24FC2928C7D12B /* SDLHMISettingsControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A6546CC22413DE90D216F99190F62B4 /* SDLHMISettingsControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F739B4CC8B331017CA8BEEB40B20C0FE /* SDLSeatControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1E994C0CAD055C104B0306EC25F432 /* SDLSeatControlCapabilities.m */; }; - F775EFF321560177450BFF361F98946B /* SDLListFilesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 20FA6E8D363E92E2246382F8E4DFCF0E /* SDLListFilesResponse.m */; }; - F7B7828265E8A71460813E695FF12C5E /* SDLTouchManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 264B352A2E79FBBE53D7A84B3F98003A /* SDLTouchManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F7FACF4C402CFC2A06E1F45A987CF1AC /* SDLSendLocationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 65419DF568C66F604EF0738C1965D385 /* SDLSendLocationResponse.m */; }; - F84B04F6281DE18EAAE313588E28E966 /* SDLDeleteSubMenuResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BA0AF625F5738A2DFEC698A0E10DE96 /* SDLDeleteSubMenuResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F8925070BDD710E983CABAD7EBCD3DDD /* SDLCacheFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E56E1D0EA294149153FB6F83C9262C2 /* SDLCacheFileManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F8C5750BFF965AB560AD9035ABBC92EB /* SDLLifecycleConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A8431B0F75B502F5FE58F26285618A6D /* SDLLifecycleConfiguration.m */; }; - F8F099F4279F7D966A919E609C51C219 /* SDLRadioBand.h in Headers */ = {isa = PBXBuildFile; fileRef = 234C8B719DEDD260BA78077064A1C78D /* SDLRadioBand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F91095D6314BB3F6EDA3EB1D11DB5109 /* SDLListFiles.h in Headers */ = {isa = PBXBuildFile; fileRef = C857DA8AD51F0B0A8D7F9682E8435BC5 /* SDLListFiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F915DB893F05D3A733468F86A065182C /* SDLRPCMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F743A14A81CBDA132220AA28D5EB8D6 /* SDLRPCMessage.m */; }; - F9D4473988403B0D857F60E04AE1869C /* SDLAddCommandResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 223764A1541B9FABCBFF13489C0B8067 /* SDLAddCommandResponse.m */; }; - FA0E1BA770AC99ACCFA6FADD294E6AD5 /* SDLRPCNotificationNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE104BE89E6E1AFC8970A8566B31A02 /* SDLRPCNotificationNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA2F2356937995D9DA09307906E52A31 /* SDLSubscribeWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = AC01AEE997639AA2260C7CB7AF71C4C3 /* SDLSubscribeWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA3D73D6F771B4BFFE38E0FDF46BB2EA /* SDLTouchManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D4B5DE50493E322D022ECD4BE5E38481 /* SDLTouchManager.m */; }; - FA4A926BE21F813482C1EEF8B5D3E8C1 /* SDLAudioFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 942B330B46ACF300BF3CBDAECE4EC0C9 /* SDLAudioFile.m */; }; - FA4CC44F8F212A7F83890F85250C8D1F /* SDLFileType.h in Headers */ = {isa = PBXBuildFile; fileRef = 85C831243400E8D6A9F22B565CD3EE18 /* SDLFileType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA9FF61A369932D7A9F8CA98DE159A5A /* SDLGetAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 689B0C277D4D74417F0703BA219AF3EC /* SDLGetAppServiceData.m */; }; - FABA89B3B6E0B6808D2CC7394744E608 /* SDLOnDriverDistraction.m in Sources */ = {isa = PBXBuildFile; fileRef = D4E743BD5D9868B2B5008D089934B105 /* SDLOnDriverDistraction.m */; }; - FACC0EB4D9967C04B9F4ED7A82ED4A80 /* SDLEncryptionLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = CF679021B1F310A3DA1CCAD24947CE31 /* SDLEncryptionLifecycleManager.m */; }; - FB198942C45C672D222FC6E4211CFE28 /* SDLLightState.m in Sources */ = {isa = PBXBuildFile; fileRef = F297A1D12DA6A40D653E588BCFB5BE1F /* SDLLightState.m */; }; - FB5187CAF6381587B2C09B586DCFD65E /* SDLDefrostZone.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BDFD54AD0587D67A9F01BE35775FEFB /* SDLDefrostZone.m */; }; - FB5303D0D0879E80AB215DAFA1F8075D /* SDLVehicleDataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 337B14C8810BEC7C71631851E3F7C134 /* SDLVehicleDataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FB6193D5C5C6C4AF6E15EA9EFA14908D /* SDLNavigationAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 9385A8C466EFC5D2EECF88F1BB4D7E51 /* SDLNavigationAction.m */; }; - FB6CA35AE69A8225058E8E82E5960A56 /* SDLAppServiceType.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F909C05943A039E0097211A7DF01A9B /* SDLAppServiceType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FB7EFF49F20734D699CFB56494EC388A /* SDLChoice.h in Headers */ = {isa = PBXBuildFile; fileRef = 943DDBBF480DC8B8E38C092C2740CCBE /* SDLChoice.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FB8C2C8AE52A78F6D7CB349AAAD996FA /* SDLUnpublishAppServiceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A9E0567B3A13DFD90B87980D7B9C2A35 /* SDLUnpublishAppServiceResponse.m */; }; - FBEF565E8C984AABB64F19512D5ADE76 /* SDLSpeakResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 0338D36D87FF27EDD72CE81C13BCC65F /* SDLSpeakResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FC16833BB8606EE3ECBF22387E960652 /* SDLButtonCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = F486561AF5F904ABC8067B60C4EECF23 /* SDLButtonCapabilities.m */; }; - FC3444AE19593182B1B1D7256A3C3221 /* SDLDisplayType.m in Sources */ = {isa = PBXBuildFile; fileRef = A429FA0D271048EA825CC81CA78405F0 /* SDLDisplayType.m */; }; - FC73D4BF63D50DEE5A7168F8D9F1913D /* SDLWeatherServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D8C0BA72794AC638DB9DF5A48C945D0 /* SDLWeatherServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FCA506B6BF42A7A8FE6C1B55747B8ECB /* SDLDynamicMenuUpdateRunScore.h in Headers */ = {isa = PBXBuildFile; fileRef = DDC4519536BC211F5D35E00B5E2BB216 /* SDLDynamicMenuUpdateRunScore.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FD1E5787AE17758017D394D82920962E /* SDLMaintenanceModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 96F0D36E1F88AD285C4F2EDEFC6311FA /* SDLMaintenanceModeStatus.m */; }; - FD4C4028726EAF24D96022D4D1F0F0B4 /* SDLRadioControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 5489C9144952EA64BC69A2AFEA7D3E52 /* SDLRadioControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FD565C5B865F3F82F33B5C599542BB56 /* SDLNavigationServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = D1C31EB7EB2D9E54E40DF8F679512777 /* SDLNavigationServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FDA8CE14078E6C248AA850B366A863E5 /* SDLIAPControlSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 9699CEFAE8CC63EAF12D47952326F8E7 /* SDLIAPControlSession.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FDC6CB7FA72121BBA4CA5D470068C345 /* SDLRPCRequestNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 1179CCA11545B1607C32D9B258323DC9 /* SDLRPCRequestNotification.m */; }; - FE0532EB484B23FC43E5E8BCDE6E09EC /* SDLReleaseInteriorVehicleDataModuleResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B333958DAB7FA32DB021C89E59865776 /* SDLReleaseInteriorVehicleDataModuleResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE4F97665C7F66149151763B5E251ED9 /* SDLBodyInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C71161060166817E773FB5B022B4BF7 /* SDLBodyInformation.m */; }; - FE7919B6C34A51008AE0001CA25EB708 /* SDLProtocolMessageAssembler.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C1D9612F74CBE518438548A4CF314FF /* SDLProtocolMessageAssembler.m */; }; - FE7ECE8ED397E4084323336BCF2EA284 /* SDLStationIDNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = C0CE5DCD736E603F98EFA824D23FDADB /* SDLStationIDNumber.m */; }; - FEAE3D2D0A27CEFD66C33B263B0F34E3 /* SDLScrollableMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AC7F7B3D6371B00DBFF85FFF2F4E873 /* SDLScrollableMessage.m */; }; - FEBFDB67FEDBDF463E70EFD31350D707 /* SDLDeleteSubMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 12D744FC8FA6C20656E30908E2337246 /* SDLDeleteSubMenu.m */; }; - FF463F1426B7BF72BDD00DC5B128F2A1 /* SDLMenuParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 82421BB2792D77283F0C50BBB7B95D13 /* SDLMenuParams.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FF500408E7F872622329864F819CB05C /* SDLGPSData.m in Sources */ = {isa = PBXBuildFile; fileRef = 97AD120A3AD881B75046604C99B99B22 /* SDLGPSData.m */; }; - FF9B788C9EE45B9AD0D4112BEC4BC27E /* SDLImageResolution.m in Sources */ = {isa = PBXBuildFile; fileRef = EEBA83F076ACB48D5FAF0C28B9E04400 /* SDLImageResolution.m */; }; - FFA33134510D6CC20094D31BA6C22AB4 /* SDLDynamicMenuUpdateAlgorithm.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C314283909AA88717A78A8BAF8E331D /* SDLDynamicMenuUpdateAlgorithm.m */; }; - FFD26297C611AF551A2738FBBB3E9C80 /* SDLStreamingVideoScaleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D0581F57A3E133B297BFA59428ED20F9 /* SDLStreamingVideoScaleManager.m */; }; - FFE6F75D5CD21D5E45302E27C7330DDB /* SDLClusterModeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = E1FAE16882639A3A3090385712018D6F /* SDLClusterModeStatus.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 4A02ED4C28844C389A4B072D1E10F4F6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3BAB8E4F4ED1E843F9C863ADE37B95B5; - remoteInfo = BiSON; - }; - 605A77535A8FC7FC30C0D975BCB72186 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D80456DDA93CD634453A682E14808519; - remoteInfo = SmartDeviceLink; - }; - 658E9669E3F8265A6FE378935AC49E44 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3BAB8E4F4ED1E843F9C863ADE37B95B5; - remoteInfo = BiSON; - }; - 6AF19360149BA595F0706575B6CB6ACE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3D5C8508F5D7F6E6DD86E88C9CF9F8F4; - remoteInfo = "SmartDeviceLink-SmartDeviceLink"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 07AD40EC7D44C9B8D14224BFDB2DD77E /* Copy . Public Headers */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "$(PUBLIC_HEADERS_FOLDER_PATH)/."; - dstSubfolderSpec = 16; - files = ( - D14B926EFC1FDF906D5A57CF73D656A6 /* bson_array.h in Copy . Public Headers */, - 41F229081EA3B2C8DD97C7847EA59C00 /* bson_object.h in Copy . Public Headers */, - B8AD1E30EF9ABF9E7891A547006E7A70 /* bson_util.h in Copy . Public Headers */, - ); - name = "Copy . Public Headers"; - runOnlyForDeploymentPostprocessing = 0; - }; - 9A486A09638ADD3E6C8A7BDBBDBBF93A /* Copy emhashmap Public Headers */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "$(PUBLIC_HEADERS_FOLDER_PATH)/emhashmap"; - dstSubfolderSpec = 16; - files = ( - 676C546E11B1621DE2BB157860876C84 /* emhashmap.h in Copy emhashmap Public Headers */, - ); - name = "Copy emhashmap Public Headers"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 0006A2A7A7BDE53A1AACFDA8155F4F61 /* SDLEndAudioPassThruResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEndAudioPassThruResponse.h; path = SmartDeviceLink/SDLEndAudioPassThruResponse.h; sourceTree = ""; }; - 0014601A825D99EBC10BD35C7B771929 /* SDLDeviceLevelStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceLevelStatus.h; path = SmartDeviceLink/SDLDeviceLevelStatus.h; sourceTree = ""; }; - 00FF637FC89DC702B5A3B6AA9D2D2039 /* SDLSystemAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemAction.h; path = SmartDeviceLink/SDLSystemAction.h; sourceTree = ""; }; - 0101AB6A004A001DF9E0F740590E99D1 /* SDLCheckChoiceVROptionalOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCheckChoiceVROptionalOperation.h; path = SmartDeviceLink/SDLCheckChoiceVROptionalOperation.h; sourceTree = ""; }; - 012CE07CE00E36054DA038C75909F04A /* SmartDeviceLink.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SmartDeviceLink.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 013F0FD57EDF8FF55737B083957CAE10 /* SDLTouchEventCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchEventCapabilities.h; path = SmartDeviceLink/SDLTouchEventCapabilities.h; sourceTree = ""; }; - 01FC030EB54C7FC64CE1140E0CF51EC2 /* SDLTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTimer.h; path = SmartDeviceLink/SDLTimer.h; sourceTree = ""; }; - 02D5E907F468C148CBD8FD6B7AB586DF /* SDLOnVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnVehicleData.h; path = SmartDeviceLink/SDLOnVehicleData.h; sourceTree = ""; }; - 0303F7A337A026665A7C2B1401481962 /* SDLMutableDataQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMutableDataQueue.m; path = SmartDeviceLink/SDLMutableDataQueue.m; sourceTree = ""; }; - 030B9EFF025F2C40E4F44F1065406AC8 /* SDLTextField+ScreenManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLTextField+ScreenManagerExtensions.h"; path = "SmartDeviceLink/SDLTextField+ScreenManagerExtensions.h"; sourceTree = ""; }; - 03156C93EE8442396869D907BBBF3E51 /* SDLAppServiceCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceCapability.h; path = SmartDeviceLink/SDLAppServiceCapability.h; sourceTree = ""; }; - 0338D36D87FF27EDD72CE81C13BCC65F /* SDLSpeakResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeakResponse.h; path = SmartDeviceLink/SDLSpeakResponse.h; sourceTree = ""; }; - 034FAA8CE999DFA9139A4FF001EF3175 /* SDLLogFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFilter.m; path = SmartDeviceLink/SDLLogFilter.m; sourceTree = ""; }; - 0393BBC2C9A85C3D9B9616139D4F4859 /* SDLDefrostZone.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDefrostZone.h; path = SmartDeviceLink/SDLDefrostZone.h; sourceTree = ""; }; - 03E209DD429BD45C838761E809185BB6 /* SDLDialNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDialNumber.m; path = SmartDeviceLink/SDLDialNumber.m; sourceTree = ""; }; - 042CAE65E8266BAAC2DA30FF0B6CED41 /* SDLButtonPressMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPressMode.m; path = SmartDeviceLink/SDLButtonPressMode.m; sourceTree = ""; }; - 04612B443920F41D035644D3D5DCC4BD /* SDLDiagnosticMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDiagnosticMessage.h; path = SmartDeviceLink/SDLDiagnosticMessage.h; sourceTree = ""; }; - 04BC802E860BD6A7F3005C68FFE4ADE0 /* SDLStreamingAudioManagerType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingAudioManagerType.h; path = SmartDeviceLink/SDLStreamingAudioManagerType.h; sourceTree = ""; }; - 04C4ACFBE0F5E7AA0EB2EDC5D718F443 /* SDLErrorConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLErrorConstants.h; path = SmartDeviceLink/SDLErrorConstants.h; sourceTree = ""; }; - 04CA5C324677346256F9E7AF067CA1CC /* SDLMutableDataQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMutableDataQueue.h; path = SmartDeviceLink/SDLMutableDataQueue.h; sourceTree = ""; }; - 0540D028CA350ED05CE0F5B10778ED6D /* SDLLightName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightName.h; path = SmartDeviceLink/SDLLightName.h; sourceTree = ""; }; - 0581CF5948F60C4C5CA59EC84679756E /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = fr.lproj/SDLLockScreen.strings; sourceTree = ""; }; - 058F4086A8EDDCFE4AED952B5F2F9052 /* SDLSetMediaClockTimerResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetMediaClockTimerResponse.h; path = SmartDeviceLink/SDLSetMediaClockTimerResponse.h; sourceTree = ""; }; - 05AC4D2805528F742A66D7477F43714E /* SDLDisplayMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayMode.h; path = SmartDeviceLink/SDLDisplayMode.h; sourceTree = ""; }; - 05AF30F572533AFA58903B5BA40CC28B /* SDLAddCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddCommand.h; path = SmartDeviceLink/SDLAddCommand.h; sourceTree = ""; }; - 05B65BB837429AB03BD36724BAA2EDB6 /* SDLHexUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHexUtility.h; path = SmartDeviceLink/SDLHexUtility.h; sourceTree = ""; }; - 0623BF96606B58FD9FCC3861992A2F61 /* SDLLightControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightControlData.h; path = SmartDeviceLink/SDLLightControlData.h; sourceTree = ""; }; - 06303A86B1B729A73E63863D21AF2925 /* SDLIgnitionStableStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIgnitionStableStatus.m; path = SmartDeviceLink/SDLIgnitionStableStatus.m; sourceTree = ""; }; - 0692FFE8FAC6940F376FCEF685DDC7B1 /* SDLSystemRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemRequest.m; path = SmartDeviceLink/SDLSystemRequest.m; sourceTree = ""; }; - 0719C780E196AC9980E531CF8FBD8088 /* SDLUpdateMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateMode.h; path = SmartDeviceLink/SDLUpdateMode.h; sourceTree = ""; }; - 075F751ECFEC7836B3AC765DA2730721 /* SDLStateMachine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStateMachine.h; path = SmartDeviceLink/SDLStateMachine.h; sourceTree = ""; }; - 07643F069443483408E8DF939B35C281 /* SDLDisplayMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayMode.m; path = SmartDeviceLink/SDLDisplayMode.m; sourceTree = ""; }; - 07B6C54F0471CF191AA538E250A10A1C /* SDLV2ProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV2ProtocolMessage.m; path = SmartDeviceLink/SDLV2ProtocolMessage.m; sourceTree = ""; }; - 092B1D219F562512D83E15E5DA0F4859 /* SDLProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolHeader.h; path = SmartDeviceLink/SDLProtocolHeader.h; sourceTree = ""; }; - 09462E66A2B03CC7B6CFB922D8AF3709 /* SDLPredefinedLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPredefinedLayout.m; path = SmartDeviceLink/SDLPredefinedLayout.m; sourceTree = ""; }; - 09596899A697F08A6B73A7F8DD24700D /* SDLDeleteWindowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteWindowResponse.m; path = SmartDeviceLink/SDLDeleteWindowResponse.m; sourceTree = ""; }; - 09691EAC4A4C3B8C10A61F569A68E123 /* SDLRPCPermissionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCPermissionStatus.h; path = SmartDeviceLink/SDLRPCPermissionStatus.h; sourceTree = ""; }; - 096D9EC5221B9D6B456EDA53A2E88F92 /* SDLLockScreenStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenStatus.m; path = SmartDeviceLink/SDLLockScreenStatus.m; sourceTree = ""; }; - 09E0B697D5D3515000987CB02ED7EF2A /* SDLTextAlignment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextAlignment.h; path = SmartDeviceLink/SDLTextAlignment.h; sourceTree = ""; }; - 09E7464F993D6552704E1EAFCF1DF78D /* SDLShowAppMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowAppMenu.m; path = SmartDeviceLink/SDLShowAppMenu.m; sourceTree = ""; }; - 0A23C49669583356A1CE449D9EBC74DB /* SDLIgnitionStableStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIgnitionStableStatus.h; path = SmartDeviceLink/SDLIgnitionStableStatus.h; sourceTree = ""; }; - 0A3CC4629A17A1D6F3FAEC259BA87C31 /* SDLButtonPress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPress.m; path = SmartDeviceLink/SDLButtonPress.m; sourceTree = ""; }; - 0A3EDAEBB63DC81EB0D8197E941D92BA /* SDLVideoEncoderDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoEncoderDelegate.h; path = SmartDeviceLink/SDLVideoEncoderDelegate.h; sourceTree = ""; }; - 0A913DD8B429EFA97826EA9C49B3B92B /* SDLPerformAppServiceInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAppServiceInteraction.m; path = SmartDeviceLink/SDLPerformAppServiceInteraction.m; sourceTree = ""; }; - 0A922B6EE1FBBD668DC4D132D27791DD /* SDLLockScreenViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenViewController.m; path = SmartDeviceLink/SDLLockScreenViewController.m; sourceTree = ""; }; - 0AB4971438A6A699BC2C1C2BEDAA999E /* SDLResetGlobalPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResetGlobalPropertiesResponse.m; path = SmartDeviceLink/SDLResetGlobalPropertiesResponse.m; sourceTree = ""; }; - 0AD7C4BC8864B7BD4E88BB4E14571991 /* SDLSoftButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButton.h; path = SmartDeviceLink/SDLSoftButton.h; sourceTree = ""; }; - 0B25BFBB7743CC1BB55BB0A462DC320E /* SDLResetGlobalProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResetGlobalProperties.h; path = SmartDeviceLink/SDLResetGlobalProperties.h; sourceTree = ""; }; - 0B6E8C1AF472B205BEEAA5ACDA1339A3 /* SDLTimerMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTimerMode.m; path = SmartDeviceLink/SDLTimerMode.m; sourceTree = ""; }; - 0B7024D8FB7FFF140C2B02CD06A30621 /* SDLGetDTCs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetDTCs.h; path = SmartDeviceLink/SDLGetDTCs.h; sourceTree = ""; }; - 0BED0EB216A163B02E038B24BD163908 /* SDLH264VideoEncoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLH264VideoEncoder.m; path = SmartDeviceLink/SDLH264VideoEncoder.m; sourceTree = ""; }; - 0BF5D3B07CABB0353EF64221323FB214 /* SDLSoftButtonReplaceOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonReplaceOperation.m; path = SmartDeviceLink/SDLSoftButtonReplaceOperation.m; sourceTree = ""; }; - 0C68BF2CE6FE130CE0B0A970E9E4EB46 /* SDLEmergencyEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEmergencyEvent.m; path = SmartDeviceLink/SDLEmergencyEvent.m; sourceTree = ""; }; - 0C6D93D8E80998CD66E39C448733F9C8 /* SDLLifecycleProtocolHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleProtocolHandler.h; path = SmartDeviceLink/SDLLifecycleProtocolHandler.h; sourceTree = ""; }; - 0C75420A65D82C21EDD26CEFF38A1BBA /* SDLTCPTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTCPTransport.m; path = SmartDeviceLink/SDLTCPTransport.m; sourceTree = ""; }; - 0D3E8ACACCBAA2545A9291162519C02F /* SDLPrimaryAudioSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrimaryAudioSource.h; path = SmartDeviceLink/SDLPrimaryAudioSource.h; sourceTree = ""; }; - 0E17BE2717EB8E175D224175E94EF0C5 /* SDLMediaServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaServiceData.h; path = SmartDeviceLink/SDLMediaServiceData.h; sourceTree = ""; }; - 0E18B248ABDE8B1FCC6F0DBC564ED42D /* SDLPerformAudioPassThruResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAudioPassThruResponse.m; path = SmartDeviceLink/SDLPerformAudioPassThruResponse.m; sourceTree = ""; }; - 0E56E1D0EA294149153FB6F83C9262C2 /* SDLCacheFileManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCacheFileManager.h; path = SmartDeviceLink/SDLCacheFileManager.h; sourceTree = ""; }; - 0E836B2993410EB417C2123481A4E6CD /* SDLAppServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceData.h; path = SmartDeviceLink/SDLAppServiceData.h; sourceTree = ""; }; - 0ED1437EE8F2E16924B445E6758A4682 /* SDLDeleteWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteWindow.m; path = SmartDeviceLink/SDLDeleteWindow.m; sourceTree = ""; }; - 0EE8C22DA5EFA161CCD704956C17C56D /* SDLTextFieldName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextFieldName.h; path = SmartDeviceLink/SDLTextFieldName.h; sourceTree = ""; }; - 0EFE9E833025F639CA949ECC8B8C90F0 /* emhashmap.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = emhashmap.c; path = src/emhashmap/emhashmap.c; sourceTree = ""; }; - 0F19ED2AEE6718C0915FC669935F35ED /* SDLNavigationServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationServiceData.m; path = SmartDeviceLink/SDLNavigationServiceData.m; sourceTree = ""; }; - 0F5D4445E6E09F666DD97ABCAF27C4B1 /* SDLSetInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetInteriorVehicleData.m; path = SmartDeviceLink/SDLSetInteriorVehicleData.m; sourceTree = ""; }; - 0FD269E190CA05DE20711325DB709DCA /* SDLFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileManager.m; path = SmartDeviceLink/SDLFileManager.m; sourceTree = ""; }; - 10210FEFC75394E3B2F578C082EA07D2 /* SDLKeyboardEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardEvent.h; path = SmartDeviceLink/SDLKeyboardEvent.h; sourceTree = ""; }; - 1036AF4390ACFEC2CFCDA61FA0498E28 /* SDLRadioState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioState.h; path = SmartDeviceLink/SDLRadioState.h; sourceTree = ""; }; - 106CC8005ED9499CD5FD635CC6B264FD /* SDLNotificationConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNotificationConstants.h; path = SmartDeviceLink/SDLNotificationConstants.h; sourceTree = ""; }; - 1179CCA11545B1607C32D9B258323DC9 /* SDLRPCRequestNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCRequestNotification.m; path = SmartDeviceLink/SDLRPCRequestNotification.m; sourceTree = ""; }; - 121CC19826232F3072AFD1D83D158A42 /* SDLFocusableItemHitTester.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemHitTester.h; path = SmartDeviceLink/SDLFocusableItemHitTester.h; sourceTree = ""; }; - 121E4A108B2448717672CE50FEDE685A /* SDLOnButtonEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnButtonEvent.m; path = SmartDeviceLink/SDLOnButtonEvent.m; sourceTree = ""; }; - 12D744FC8FA6C20656E30908E2337246 /* SDLDeleteSubMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteSubMenu.m; path = SmartDeviceLink/SDLDeleteSubMenu.m; sourceTree = ""; }; - 12E2448D342B0C719508658356C62FD8 /* SDLRadioState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioState.m; path = SmartDeviceLink/SDLRadioState.m; sourceTree = ""; }; - 12FA04857AC1900EEA2522D1D3101207 /* SDLRPCResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCResponse.h; path = SmartDeviceLink/SDLRPCResponse.h; sourceTree = ""; }; - 12FB6C12FA7C56F07A058C648B52AA9A /* SDLAirbagStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAirbagStatus.m; path = SmartDeviceLink/SDLAirbagStatus.m; sourceTree = ""; }; - 1310B5C3A3FD8D5E490FB2B56E5AAC43 /* SDLH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLH264Packetizer.h; path = SmartDeviceLink/SDLH264Packetizer.h; sourceTree = ""; }; - 13180087A895C1F6E63F9F01F333ECF1 /* SDLScreenParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScreenParams.h; path = SmartDeviceLink/SDLScreenParams.h; sourceTree = ""; }; - 13F5B04D46A1927416EB7B00EC10D588 /* SDLUnsubscribeButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeButton.h; path = SmartDeviceLink/SDLUnsubscribeButton.h; sourceTree = ""; }; - 141A750A4B7658D57C0EA1C5677AC485 /* SDLResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResult.m; path = SmartDeviceLink/SDLResult.m; sourceTree = ""; }; - 143137C3210A437C0540124CDBE42B86 /* SDLImageType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageType.m; path = SmartDeviceLink/SDLImageType.m; sourceTree = ""; }; - 144A510FD012E8B3D68672FACAD74C3D /* SDLMassageCushion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageCushion.m; path = SmartDeviceLink/SDLMassageCushion.m; sourceTree = ""; }; - 15626200BCC288FAB8202F84EAD600A5 /* SDLPerformAppServiceInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAppServiceInteractionResponse.m; path = SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m; sourceTree = ""; }; - 15CC7A0BD292142B96199EFAB3E8D06C /* SmartDeviceLink.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartDeviceLink.release.xcconfig; sourceTree = ""; }; - 16381A0EE20FA5C47430A5B402B7689B /* SDLLockScreen.storyboard */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.storyboard; name = SDLLockScreen.storyboard; path = Base.lproj/SDLLockScreen.storyboard; sourceTree = ""; }; - 1673D555128E7CE618DE3C3279E10278 /* SDLEmergencyEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEmergencyEvent.h; path = SmartDeviceLink/SDLEmergencyEvent.h; sourceTree = ""; }; - 17117CBD93690A080777FF3CCAB14EBF /* SDLVehicleDataEventStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataEventStatus.h; path = SmartDeviceLink/SDLVehicleDataEventStatus.h; sourceTree = ""; }; - 171E13E59404914970C3C1146AACEF54 /* SDLVehicleDataType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataType.m; path = SmartDeviceLink/SDLVehicleDataType.m; sourceTree = ""; }; - 1776C574198D8077B69B01D3AEDA34E6 /* SDLButtonEventMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonEventMode.m; path = SmartDeviceLink/SDLButtonEventMode.m; sourceTree = ""; }; - 17B209E28D1DF58F13E9ED57702FBE24 /* SDLSetGlobalPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetGlobalPropertiesResponse.m; path = SmartDeviceLink/SDLSetGlobalPropertiesResponse.m; sourceTree = ""; }; - 17B584482168B64D8A9B1D66FD274FB7 /* SDLTemperatureUnit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemperatureUnit.h; path = SmartDeviceLink/SDLTemperatureUnit.h; sourceTree = ""; }; - 17BD7329197D81447717DC7ADEB5750E /* SDLCreateWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateWindow.m; path = SmartDeviceLink/SDLCreateWindow.m; sourceTree = ""; }; - 17FE8D4DAAE70A4CF5E436290E17D17D /* SDLWindowCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWindowCapability.h; path = SmartDeviceLink/SDLWindowCapability.h; sourceTree = ""; }; - 180376AD38DA70C86CE6A85F04306440 /* SDLPreloadChoicesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPreloadChoicesOperation.h; path = SmartDeviceLink/SDLPreloadChoicesOperation.h; sourceTree = ""; }; - 1845BF083AE4ED65CD2A0C2493883D93 /* SDLSeatMemoryAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatMemoryAction.h; path = SmartDeviceLink/SDLSeatMemoryAction.h; sourceTree = ""; }; - 186CF5CA656EF53E457CC74A91CED8BF /* SDLCancelInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCancelInteraction.h; path = SmartDeviceLink/SDLCancelInteraction.h; sourceTree = ""; }; - 1878E365B1431D16CB7D13B067382A01 /* SDLIAPConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPConstants.h; path = SmartDeviceLink/SDLIAPConstants.h; sourceTree = ""; }; - 19123175F1282074060FF723AA346973 /* SDLWindowCapability+ScreenManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLWindowCapability+ScreenManagerExtensions.m"; path = "SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.m"; sourceTree = ""; }; - 194A205E3D3AB6329814281A5F801855 /* SDLTPMS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTPMS.h; path = SmartDeviceLink/SDLTPMS.h; sourceTree = ""; }; - 198A0AA98C61E2A39539B9020C6185CB /* SDLPrioritizedObjectCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrioritizedObjectCollection.m; path = SmartDeviceLink/SDLPrioritizedObjectCollection.m; sourceTree = ""; }; - 19B1A83A55BD6197AA3C2050EDA2EDB2 /* SDLLocationDetails.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLocationDetails.h; path = SmartDeviceLink/SDLLocationDetails.h; sourceTree = ""; }; - 19CCE221988FAB4BFF131C894F0920C4 /* SDLNotificationDispatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNotificationDispatcher.h; path = SmartDeviceLink/SDLNotificationDispatcher.h; sourceTree = ""; }; - 19E0135257858BD7168C64D56B8D7A75 /* SDLSetGlobalPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetGlobalPropertiesResponse.h; path = SmartDeviceLink/SDLSetGlobalPropertiesResponse.h; sourceTree = ""; }; - 1A030F2B6E37938FF8043D0017F09F80 /* SDLSystemRequestResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemRequestResponse.h; path = SmartDeviceLink/SDLSystemRequestResponse.h; sourceTree = ""; }; - 1A08ADB128C672DC69C4127E045F5070 /* CGPoint_Util.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CGPoint_Util.m; path = SmartDeviceLink/CGPoint_Util.m; sourceTree = ""; }; - 1A54A6815830D84DACA174DA5B066347 /* SDLGetAppServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetAppServiceData.h; path = SmartDeviceLink/SDLGetAppServiceData.h; sourceTree = ""; }; - 1A5795C050E031087B37E6F0B8B99FE3 /* SDLRemoteControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRemoteControlCapabilities.m; path = SmartDeviceLink/SDLRemoteControlCapabilities.m; sourceTree = ""; }; - 1A6CDBAD9F0E1DE4C224214867D802DE /* SDLHMIPermissions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMIPermissions.m; path = SmartDeviceLink/SDLHMIPermissions.m; sourceTree = ""; }; - 1A91F9EA62F0075F9ACCFF6B6F7FA96E /* SDLPublishAppService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPublishAppService.m; path = SmartDeviceLink/SDLPublishAppService.m; sourceTree = ""; }; - 1ACA353CD4341D5B1B5F4211679D6562 /* SDLModuleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleData.m; path = SmartDeviceLink/SDLModuleData.m; sourceTree = ""; }; - 1ACA766A3B7A6071AF22334BC052F5D9 /* SDLDeleteFileOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFileOperation.h; path = SmartDeviceLink/SDLDeleteFileOperation.h; sourceTree = ""; }; - 1ADC53976D99CE2F85B0E80D35F54E94 /* SDLTBTState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTBTState.h; path = SmartDeviceLink/SDLTBTState.h; sourceTree = ""; }; - 1B04572C7780D11E01CA5FC3B4CFFAD5 /* SDLNavigationCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationCapability.h; path = SmartDeviceLink/SDLNavigationCapability.h; sourceTree = ""; }; - 1B07D32813B19DEED174BB740E4AE97A /* SDLV1ProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV1ProtocolMessage.h; path = SmartDeviceLink/SDLV1ProtocolMessage.h; sourceTree = ""; }; - 1BB6954C66C6C182131AA4914D6690E9 /* SDLSecurityType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSecurityType.h; path = SmartDeviceLink/SDLSecurityType.h; sourceTree = ""; }; - 1C02BCB7CC0146495C11C4741811815E /* SDLImageField+ScreenManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLImageField+ScreenManagerExtensions.h"; path = "SmartDeviceLink/SDLImageField+ScreenManagerExtensions.h"; sourceTree = ""; }; - 1C28381778F9B6F73AE7045AFF50293B /* SDLMenuLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuLayout.h; path = SmartDeviceLink/SDLMenuLayout.h; sourceTree = ""; }; - 1C320F686525DE123071E06FE38A4733 /* SDLSystemCapabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityManager.m; path = SmartDeviceLink/SDLSystemCapabilityManager.m; sourceTree = ""; }; - 1C4083DFA322D07EB69325A6B9D19535 /* SDLAlert.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlert.m; path = SmartDeviceLink/SDLAlert.m; sourceTree = ""; }; - 1C95F788EAED941BB5F58CA21C90D17D /* SDLDeleteChoicesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteChoicesOperation.h; path = SmartDeviceLink/SDLDeleteChoicesOperation.h; sourceTree = ""; }; - 1CCDAAE659DCA593607D4BF6558C25CE /* SDLSyncPDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncPDataResponse.h; path = SmartDeviceLink/SDLSyncPDataResponse.h; sourceTree = ""; }; - 1CFA9A9E1169A3206174FA90EF8EDB20 /* SDLChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSet.h; path = SmartDeviceLink/SDLChoiceSet.h; sourceTree = ""; }; - 1D09D03FDBAC839C0B609D7085FE7612 /* SDLModuleType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleType.h; path = SmartDeviceLink/SDLModuleType.h; sourceTree = ""; }; - 1D3100295E8CA323C777D8F2A6CC4D95 /* SDLImageFieldName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageFieldName.m; path = SmartDeviceLink/SDLImageFieldName.m; sourceTree = ""; }; - 1D35EEBE45318E549076542898349235 /* SDLAudioControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioControlData.h; path = SmartDeviceLink/SDLAudioControlData.h; sourceTree = ""; }; - 1D42EAA6631F7F9BA8CADAC3A96CC64E /* SDLEncryptionConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncryptionConfiguration.m; path = SmartDeviceLink/SDLEncryptionConfiguration.m; sourceTree = ""; }; - 1D503EB0E143D4B5FF04B10A34BC6D16 /* SDLGlobalProperty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGlobalProperty.m; path = SmartDeviceLink/SDLGlobalProperty.m; sourceTree = ""; }; - 1D5A06B422339F19A2053DF7AD2E64B0 /* SDLDimension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDimension.h; path = SmartDeviceLink/SDLDimension.h; sourceTree = ""; }; - 1D62134BBF189EA2FAE0F2B9924C1CEA /* SDLIAPConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPConstants.m; path = SmartDeviceLink/SDLIAPConstants.m; sourceTree = ""; }; - 1DF843EEBBB30D7B7389D88A9A97026E /* SDLPerformInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformInteractionResponse.m; path = SmartDeviceLink/SDLPerformInteractionResponse.m; sourceTree = ""; }; - 1E31ADF790B6CD458B58780AEEA2DC29 /* SDLRDSData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRDSData.h; path = SmartDeviceLink/SDLRDSData.h; sourceTree = ""; }; - 1E86A7FA49FEA6AEC0D760D8965C3F6E /* SDLPutFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPutFile.m; path = SmartDeviceLink/SDLPutFile.m; sourceTree = ""; }; - 1ECFA9EC3D76BE7DB5AA4AD25DED7262 /* SDLAddSubMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddSubMenuResponse.m; path = SmartDeviceLink/SDLAddSubMenuResponse.m; sourceTree = ""; }; - 1EF11FACEE1EFEF67EDBD239E3CFE981 /* SDLOnDriverDistraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnDriverDistraction.h; path = SmartDeviceLink/SDLOnDriverDistraction.h; sourceTree = ""; }; - 1F47C488B08BF5122754BFE7BBEC9A14 /* SDLLogTargetOSLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetOSLog.m; path = SmartDeviceLink/SDLLogTargetOSLog.m; sourceTree = ""; }; - 1F619DCBA443D3BF50D0B314A294B809 /* SDLSubscribeButtonManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonManager.h; path = SmartDeviceLink/SDLSubscribeButtonManager.h; sourceTree = ""; }; - 1FAA770CD2F0D719792C511D30970EE1 /* SDLDiagnosticMessageResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDiagnosticMessageResponse.h; path = SmartDeviceLink/SDLDiagnosticMessageResponse.h; sourceTree = ""; }; - 1FD2A7EAD3CEDFD045490467DAD18F18 /* SDLSoftButtonState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonState.h; path = SmartDeviceLink/SDLSoftButtonState.h; sourceTree = ""; }; - 1FD900A135D822B0C46DB3FC2398B8BC /* SDLSetGlobalProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetGlobalProperties.m; path = SmartDeviceLink/SDLSetGlobalProperties.m; sourceTree = ""; }; - 20AA06A772B16D6AFF72CC6CA4ECBE20 /* SDLSyncPDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncPDataResponse.m; path = SmartDeviceLink/SDLSyncPDataResponse.m; sourceTree = ""; }; - 20B9DF79B0ED0674C8ED798A7D73B3F2 /* SDLVehicleDataResultCode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataResultCode.m; path = SmartDeviceLink/SDLVehicleDataResultCode.m; sourceTree = ""; }; - 20D7BE66EF79F8245CD53754C388C728 /* SDLMyKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMyKey.m; path = SmartDeviceLink/SDLMyKey.m; sourceTree = ""; }; - 20FA6E8D363E92E2246382F8E4DFCF0E /* SDLListFilesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFilesResponse.m; path = SmartDeviceLink/SDLListFilesResponse.m; sourceTree = ""; }; - 21299607CA16E90A5C0710F2E2785242 /* SDLSetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetInteriorVehicleDataResponse.m; path = SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m; sourceTree = ""; }; - 223764A1541B9FABCBFF13489C0B8067 /* SDLAddCommandResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddCommandResponse.m; path = SmartDeviceLink/SDLAddCommandResponse.m; sourceTree = ""; }; - 22A7CA326FC1A31FBED51465160C7D19 /* SDLControlFramePayloadNak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadNak.h; path = SmartDeviceLink/SDLControlFramePayloadNak.h; sourceTree = ""; }; - 22D8E6FEF71BF3A66088118AA02F0841 /* SDLRGBColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRGBColor.h; path = SmartDeviceLink/SDLRGBColor.h; sourceTree = ""; }; - 22F7A01AE367466B8917F5FEBC8F9D1D /* SDLSendHapticData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendHapticData.h; path = SmartDeviceLink/SDLSendHapticData.h; sourceTree = ""; }; - 23383B37C6DBACB1FDCDF86CE54C386A /* SDLShow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShow.h; path = SmartDeviceLink/SDLShow.h; sourceTree = ""; }; - 2338435A2FBDDD2CFAB4A28B846695F0 /* SDLWeatherServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherServiceManifest.h; path = SmartDeviceLink/SDLWeatherServiceManifest.h; sourceTree = ""; }; - 23459A7914F07050043EE0F27ED4F5AC /* SDLStreamingVideoLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingVideoLifecycleManager.h; path = SmartDeviceLink/SDLStreamingVideoLifecycleManager.h; sourceTree = ""; }; - 234C8B719DEDD260BA78077064A1C78D /* SDLRadioBand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioBand.h; path = SmartDeviceLink/SDLRadioBand.h; sourceTree = ""; }; - 23817E0063BEAB1A48262BE111DF3256 /* SDLHMILevel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMILevel.m; path = SmartDeviceLink/SDLHMILevel.m; sourceTree = ""; }; - 2398A5BA455B24EEA12F22248F56CB41 /* SDLPermissionElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionElement.h; path = SmartDeviceLink/SDLPermissionElement.h; sourceTree = ""; }; - 23C50F80EECB17D50B91A723C4564B5B /* SDLPerformInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformInteraction.h; path = SmartDeviceLink/SDLPerformInteraction.h; sourceTree = ""; }; - 23C52C7F9DFB04519EEFA548FB3DAB2C /* SDLLifecycleConfigurationUpdate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleConfigurationUpdate.m; path = SmartDeviceLink/SDLLifecycleConfigurationUpdate.m; sourceTree = ""; }; - 23F819C18E6C44ED74C4333AD5189778 /* SDLGetAppServiceDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetAppServiceDataResponse.h; path = SmartDeviceLink/SDLGetAppServiceDataResponse.h; sourceTree = ""; }; - 2483492441C4BEB1F8A9B82BAC067681 /* SDLUploadFileOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUploadFileOperation.h; path = SmartDeviceLink/SDLUploadFileOperation.h; sourceTree = ""; }; - 248505262AF0D2F58A9D246BB6C6BD84 /* SDLSoftButtonType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonType.m; path = SmartDeviceLink/SDLSoftButtonType.m; sourceTree = ""; }; - 2498D14A443BEA451B1C1E3F10FCAE0A /* SDLRemoteControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRemoteControlCapabilities.h; path = SmartDeviceLink/SDLRemoteControlCapabilities.h; sourceTree = ""; }; - 249F9CCBE006EBE28439076CEDF02C70 /* SDLOnButtonEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnButtonEvent.h; path = SmartDeviceLink/SDLOnButtonEvent.h; sourceTree = ""; }; - 24EC57E64CE1C46DC722D87EDCCBE81F /* SDLUnsubscribeButtonResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeButtonResponse.m; path = SmartDeviceLink/SDLUnsubscribeButtonResponse.m; sourceTree = ""; }; - 2559C479FF5977A46C191A0DF82F5A42 /* SDLTransportType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTransportType.h; path = SmartDeviceLink/SDLTransportType.h; sourceTree = ""; }; - 256D8960A3671CB91AB11F36D27BFE73 /* SDLShow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShow.m; path = SmartDeviceLink/SDLShow.m; sourceTree = ""; }; - 25A19CDDD7442D5D9F541CD6664CED80 /* SDLV1ProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV1ProtocolHeader.h; path = SmartDeviceLink/SDLV1ProtocolHeader.h; sourceTree = ""; }; - 264466043512A19F32B8FD33808B100C /* SDLLockScreenStatusManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenStatusManager.m; path = SmartDeviceLink/SDLLockScreenStatusManager.m; sourceTree = ""; }; - 264B352A2E79FBBE53D7A84B3F98003A /* SDLTouchManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchManagerDelegate.h; path = SmartDeviceLink/SDLTouchManagerDelegate.h; sourceTree = ""; }; - 264FB4E8863E17A2F5E34BECDA538F65 /* SDLBodyInformation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBodyInformation.h; path = SmartDeviceLink/SDLBodyInformation.h; sourceTree = ""; }; - 267FA2C1E15499A2CD4854991CC471EA /* SDLPerformAppServiceInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAppServiceInteractionResponse.h; path = SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h; sourceTree = ""; }; - 269BB207FFE8AA6F46208486DEE9BA3A /* SDLRectangle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRectangle.m; path = SmartDeviceLink/SDLRectangle.m; sourceTree = ""; }; - 26D0EBD3EEA72649EE8D2DF59814B8B1 /* SDLControlFramePayloadEndService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadEndService.m; path = SmartDeviceLink/SDLControlFramePayloadEndService.m; sourceTree = ""; }; - 276CAF8F9D6F163C8789B58614C8F995 /* SDLReadDIDResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReadDIDResponse.m; path = SmartDeviceLink/SDLReadDIDResponse.m; sourceTree = ""; }; - 2778C8EDF4959730B4DEF535ABC16675 /* SDLScrollableMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScrollableMessage.h; path = SmartDeviceLink/SDLScrollableMessage.h; sourceTree = ""; }; - 2789675DE6523B265B03FC1FF6E6C922 /* SDLRPCParameterNames.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCParameterNames.m; path = SmartDeviceLink/SDLRPCParameterNames.m; sourceTree = ""; }; - 27C368EAA0D3AC1FA9ECDC2F63B9730F /* SDLButtonName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonName.h; path = SmartDeviceLink/SDLButtonName.h; sourceTree = ""; }; - 28171FB492C52974721D3E4837BA46EB /* SDLLightCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightCapabilities.m; path = SmartDeviceLink/SDLLightCapabilities.m; sourceTree = ""; }; - 286D40C6D0DF1F4E4AAA22A91CA707E1 /* SDLLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleManager.m; path = SmartDeviceLink/SDLLifecycleManager.m; sourceTree = ""; }; - 28EB6163FCBF6FF4A874232363F1F693 /* SDLWayPointType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWayPointType.h; path = SmartDeviceLink/SDLWayPointType.h; sourceTree = ""; }; - 2927EDEFBAA36BACD83602F7DA5F877E /* SDLRPCRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCRequest.h; path = SmartDeviceLink/SDLRPCRequest.h; sourceTree = ""; }; - 299684AFB9A86A8651CE61038ED446F6 /* SDLMenuConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuConfiguration.m; path = SmartDeviceLink/SDLMenuConfiguration.m; sourceTree = ""; }; - 29E4B47051A2CBE2B10DFE80E3D19287 /* SDLSpeechCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeechCapabilities.m; path = SmartDeviceLink/SDLSpeechCapabilities.m; sourceTree = ""; }; - 2A14F3582266D6F7B75BA4AA85218D3A /* SDLH264VideoEncoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLH264VideoEncoder.h; path = SmartDeviceLink/SDLH264VideoEncoder.h; sourceTree = ""; }; - 2A4A0AB3F4FBC747F8A9BF2C7F38F20B /* SDLGetVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetVehicleDataResponse.h; path = SmartDeviceLink/SDLGetVehicleDataResponse.h; sourceTree = ""; }; - 2A5988CF4E97C39E992F5F38B97769ED /* SDLLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightStatus.h; path = SmartDeviceLink/SDLLightStatus.h; sourceTree = ""; }; - 2A5CB6D69CF7CCF3B825B42C91828400 /* SDLImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImage.h; path = SmartDeviceLink/SDLImage.h; sourceTree = ""; }; - 2A97648721B27DE7C06C2FD5DEE52543 /* SDLOnAppServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAppServiceData.h; path = SmartDeviceLink/SDLOnAppServiceData.h; sourceTree = ""; }; - 2AAE3DEF47FBE1D573CA3230BBD12E26 /* SDLMetadataTags.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMetadataTags.h; path = SmartDeviceLink/SDLMetadataTags.h; sourceTree = ""; }; - 2AEFB5FD4FD8D86E84F192A4E8DFCDC3 /* NSMutableArray+Safe.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+Safe.m"; path = "SmartDeviceLink/NSMutableArray+Safe.m"; sourceTree = ""; }; - 2B6A3BB418DC18D464B34AC1BAFE6451 /* SDLShowAppMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowAppMenuResponse.m; path = SmartDeviceLink/SDLShowAppMenuResponse.m; sourceTree = ""; }; - 2B6D168B1F9F66F44F3FCEE9FB5B9F89 /* SDLRPCFunctionNames.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCFunctionNames.h; path = SmartDeviceLink/SDLRPCFunctionNames.h; sourceTree = ""; }; - 2B6F9761E83A66A7DFFB1E6866464197 /* SDLPhoneCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPhoneCapability.m; path = SmartDeviceLink/SDLPhoneCapability.m; sourceTree = ""; }; - 2B6FD0DA2716669347AF1A445E85BE70 /* SDLSoftButtonCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonCapabilities.h; path = SmartDeviceLink/SDLSoftButtonCapabilities.h; sourceTree = ""; }; - 2B7041C400969E9738627D46ED2889FF /* SDLVideoStreamingState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingState.h; path = SmartDeviceLink/SDLVideoStreamingState.h; sourceTree = ""; }; - 2BB01A65CEF78E53E9E87B5A49249EF7 /* SDLAudioFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioFile.h; path = SmartDeviceLink/SDLAudioFile.h; sourceTree = ""; }; - 2BE98A3AA92E8E3B7CED340B5CCAE389 /* SDLSetDisplayLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetDisplayLayout.m; path = SmartDeviceLink/SDLSetDisplayLayout.m; sourceTree = ""; }; - 2CDEED18FD1039629786CEEA57699019 /* SDLSubscribeButtonObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonObserver.m; path = SmartDeviceLink/SDLSubscribeButtonObserver.m; sourceTree = ""; }; - 2D43F462BE01761031E4AFB3D2476A5F /* SDLArtwork.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLArtwork.h; path = SmartDeviceLink/SDLArtwork.h; sourceTree = ""; }; - 2D4BA9AEA9F55ABDD3453605BCA0C84B /* SDLAddSubMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddSubMenu.h; path = SmartDeviceLink/SDLAddSubMenu.h; sourceTree = ""; }; - 2D744D294CB82BB107AB6ED0A3F46323 /* SDLMenuParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuParams.m; path = SmartDeviceLink/SDLMenuParams.m; sourceTree = ""; }; - 2DCA0A5DCD6DD350EA1CF99B9837B512 /* SDLWarningLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWarningLightStatus.m; path = SmartDeviceLink/SDLWarningLightStatus.m; sourceTree = ""; }; - 2E7DF54F44C89CE28EC111C69CA41A80 /* SDLFileManagerConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileManagerConfiguration.m; path = SmartDeviceLink/SDLFileManagerConfiguration.m; sourceTree = ""; }; - 2EC447A9F44C626EE8F180C4FD1F774A /* SDLFocusableItemLocator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemLocator.h; path = SmartDeviceLink/SDLFocusableItemLocator.h; sourceTree = ""; }; - 2ED5B47BF52A07A02D9AF9F3873C2C5D /* SDLPrerecordedSpeech.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrerecordedSpeech.m; path = SmartDeviceLink/SDLPrerecordedSpeech.m; sourceTree = ""; }; - 2EE2D6F35E8ED91165271F62FB1A31AB /* SDLGetWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetWayPoints.m; path = SmartDeviceLink/SDLGetWayPoints.m; sourceTree = ""; }; - 2F2375B625B97F66D8E12F064F7521C3 /* SDLControlFramePayloadTransportEventUpdate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadTransportEventUpdate.h; path = SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.h; sourceTree = ""; }; - 2F2C244E4B55F098A0A0B3DB07E12A8C /* SDLGetCloudAppProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetCloudAppProperties.h; path = SmartDeviceLink/SDLGetCloudAppProperties.h; sourceTree = ""; }; - 2F51D8373F62E91462F357675AA277C6 /* SDLAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = SDLAssets.xcassets; path = SmartDeviceLink/Assets/SDLAssets.xcassets; sourceTree = ""; }; - 2F79001BEC04EAE768A2897A4D2F4684 /* SDLVrHelpItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVrHelpItem.m; path = SmartDeviceLink/SDLVrHelpItem.m; sourceTree = ""; }; - 2F7A53F84A8696465E51EAF70199ABE9 /* SDLStreamingProtocolDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingProtocolDelegate.h; path = SmartDeviceLink/SDLStreamingProtocolDelegate.h; sourceTree = ""; }; - 2FBAF5D2A296ECEE5B1BF22DD9C49B9D /* SDLSetDisplayLayoutResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetDisplayLayoutResponse.m; path = SmartDeviceLink/SDLSetDisplayLayoutResponse.m; sourceTree = ""; }; - 306A96E272DDC349606149EEE10530B3 /* SDLLogFileModuleMap.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFileModuleMap.m; path = SmartDeviceLink/SDLLogFileModuleMap.m; sourceTree = ""; }; - 3088C13A654A2FE2C6AE29FAC85859A8 /* SDLGetInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleData.h; path = SmartDeviceLink/SDLGetInteriorVehicleData.h; sourceTree = ""; }; - 3108E6D3BDA3B4349EC02CCBB85B6307 /* SDLFileWrapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileWrapper.m; path = SmartDeviceLink/SDLFileWrapper.m; sourceTree = ""; }; - 3116BCED42B3229298A5A04AFEACEB97 /* SDLSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncPData.h; path = SmartDeviceLink/SDLSyncPData.h; sourceTree = ""; }; - 3146752598F98460737A0816F21D1DC0 /* BiSON-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "BiSON-Info.plist"; sourceTree = ""; }; - 31D638E1DE7C038192AB4E63575C1E34 /* SDLConnectionManagerType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLConnectionManagerType.h; path = SmartDeviceLink/SDLConnectionManagerType.h; sourceTree = ""; }; - 32614CFD26D45B1414C5745CF0EFC3EC /* SDLUploadFileOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUploadFileOperation.m; path = SmartDeviceLink/SDLUploadFileOperation.m; sourceTree = ""; }; - 3267E75ED2305FABE31E4255A576BFF0 /* NSMutableDictionary+SafeRemove.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+SafeRemove.h"; path = "SmartDeviceLink/NSMutableDictionary+SafeRemove.h"; sourceTree = ""; }; - 32B03FBB47DA786AAB86E6FE9445ECA8 /* SmartDeviceLink.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SmartDeviceLink.modulemap; sourceTree = ""; }; - 32BD65A04E2AD6AAF6ADC18E5A5DE4EB /* SDLAppServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceManifest.h; path = SmartDeviceLink/SDLAppServiceManifest.h; sourceTree = ""; }; - 32C42D7A37E6811A0891E4271E3B53A5 /* SDLSubscribeVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeVehicleData.m; path = SmartDeviceLink/SDLSubscribeVehicleData.m; sourceTree = ""; }; - 32F53530C42DC0CF82E40AB2BBA5E9CD /* SDLReadDID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReadDID.m; path = SmartDeviceLink/SDLReadDID.m; sourceTree = ""; }; - 32F90AB5741CFF9D0E0907CE26FD7A62 /* SDLRPCMessageType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCMessageType.m; path = SmartDeviceLink/SDLRPCMessageType.m; sourceTree = ""; }; - 330DE6702F86BC1CEC62353483DA8E09 /* SDLLightControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightControlData.m; path = SmartDeviceLink/SDLLightControlData.m; sourceTree = ""; }; - 3364DED576C91F4B3E9543F8E3F1D22A /* SDLTouchType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchType.h; path = SmartDeviceLink/SDLTouchType.h; sourceTree = ""; }; - 337B14C8810BEC7C71631851E3F7C134 /* SDLVehicleDataType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataType.h; path = SmartDeviceLink/SDLVehicleDataType.h; sourceTree = ""; }; - 341C430BE22913BF9CA0B57997C20BE1 /* SDLGlobals.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGlobals.h; path = SmartDeviceLink/SDLGlobals.h; sourceTree = ""; }; - 34CAA3D2C0E052E3DBD4E08D86483AE3 /* SDLPublishAppService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPublishAppService.h; path = SmartDeviceLink/SDLPublishAppService.h; sourceTree = ""; }; - 34E7BCC2915FB3B8486062ECCDC005B7 /* SDLCreateWindowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateWindowResponse.m; path = SmartDeviceLink/SDLCreateWindowResponse.m; sourceTree = ""; }; - 35872C6BFFC71956A1E4CA4786AF126F /* SDLPresentKeyboardOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresentKeyboardOperation.h; path = SmartDeviceLink/SDLPresentKeyboardOperation.h; sourceTree = ""; }; - 359E694B54914987D0F5C484CDD1B988 /* SDLButtonEventMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonEventMode.h; path = SmartDeviceLink/SDLButtonEventMode.h; sourceTree = ""; }; - 35A95205B4A7E275F1EC800DF558C0EA /* SDLScrollableMessageResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScrollableMessageResponse.h; path = SmartDeviceLink/SDLScrollableMessageResponse.h; sourceTree = ""; }; - 36ABD04F09CB9E8C748573174EDFED6A /* SDLGetDTCsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetDTCsResponse.m; path = SmartDeviceLink/SDLGetDTCsResponse.m; sourceTree = ""; }; - 371F5509AF08468749E6798199E0D549 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRegisterSecondaryTransportNak.h; path = SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.h; sourceTree = ""; }; - 375F2398BB370B3CEDB269657E50A87D /* SDLTurnSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTurnSignal.m; path = SmartDeviceLink/SDLTurnSignal.m; sourceTree = ""; }; - 378EBD7F1E0220A44E552335CBA83F26 /* SDLGetAppServiceDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetAppServiceDataResponse.m; path = SmartDeviceLink/SDLGetAppServiceDataResponse.m; sourceTree = ""; }; - 38C9A59422FFB04B66D9134E84B54F55 /* SDLLightName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightName.m; path = SmartDeviceLink/SDLLightName.m; sourceTree = ""; }; - 390D7DC13089AAF192CF47CA92343067 /* SDLFuelCutoffStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelCutoffStatus.m; path = SmartDeviceLink/SDLFuelCutoffStatus.m; sourceTree = ""; }; - 395C9056FCC2D6785467927C7C046C36 /* SDLFocusableItemLocator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFocusableItemLocator.m; path = SmartDeviceLink/SDLFocusableItemLocator.m; sourceTree = ""; }; - 3968E1FF70DAB6F1C5CCCDB5E938D6AB /* SDLShowResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowResponse.m; path = SmartDeviceLink/SDLShowResponse.m; sourceTree = ""; }; - 39D9C69734E237DD22253CC4F5D9F863 /* SDLMsgVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMsgVersion.h; path = SmartDeviceLink/SDLMsgVersion.h; sourceTree = ""; }; - 3A7C79923DB7BE60A8C3C81172411692 /* SDLStateMachine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStateMachine.m; path = SmartDeviceLink/SDLStateMachine.m; sourceTree = ""; }; - 3AC7F7B3D6371B00DBFF85FFF2F4E873 /* SDLScrollableMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScrollableMessage.m; path = SmartDeviceLink/SDLScrollableMessage.m; sourceTree = ""; }; - 3AEB0447F840FA8B85356311591B1E92 /* SDLPermissionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionManager.m; path = SmartDeviceLink/SDLPermissionManager.m; sourceTree = ""; }; - 3B4D15588619AC4E8EE11A21A4FB48AD /* SDLConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLConfiguration.m; path = SmartDeviceLink/SDLConfiguration.m; sourceTree = ""; }; - 3B79F919E881908F7E25787F89119DDB /* SDLSetDisplayLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetDisplayLayout.h; path = SmartDeviceLink/SDLSetDisplayLayout.h; sourceTree = ""; }; - 3B8D419D41D4EBE7F427F3F1A6E8C791 /* SDLPowerModeQualificationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPowerModeQualificationStatus.m; path = SmartDeviceLink/SDLPowerModeQualificationStatus.m; sourceTree = ""; }; - 3BEA52EFF09F88D06D5BBDFE47ACB86A /* SDLTBTState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTBTState.m; path = SmartDeviceLink/SDLTBTState.m; sourceTree = ""; }; - 3CDFC5B023598A90612B35331554854F /* SDLLifecycleMobileHMIStateHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleMobileHMIStateHandler.h; path = SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.h; sourceTree = ""; }; - 3D2A524F1F2044F31A8BCD218FCCA1A9 /* SDLTextAndGraphicManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextAndGraphicManager.m; path = SmartDeviceLink/SDLTextAndGraphicManager.m; sourceTree = ""; }; - 3D6A97EE0FBB026A0734AE80DF2F8572 /* SDLCarModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarModeStatus.h; path = SmartDeviceLink/SDLCarModeStatus.h; sourceTree = ""; }; - 3D7871125148142044AD48FDD6D7511C /* SDLNotificationDispatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNotificationDispatcher.m; path = SmartDeviceLink/SDLNotificationDispatcher.m; sourceTree = ""; }; - 3DD3A5AE962BF24F342B8F4DB73EC5BC /* SDLOnLanguageChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnLanguageChange.h; path = SmartDeviceLink/SDLOnLanguageChange.h; sourceTree = ""; }; - 3E046E87DA6D8162BC3CF15D53AF5F0C /* SDLTouchEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchEvent.m; path = SmartDeviceLink/SDLTouchEvent.m; sourceTree = ""; }; - 3E264BEF6A4FED13F137E6FD85DE5CF5 /* SDLMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMacros.h; path = SmartDeviceLink/SDLMacros.h; sourceTree = ""; }; - 3E485F28BB0A7E258C9F739157505BA7 /* SDLOnWayPointChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnWayPointChange.m; path = SmartDeviceLink/SDLOnWayPointChange.m; sourceTree = ""; }; - 3E4F804CFCE6EB5C7532E3E88A095743 /* SDLLocationCoordinate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLocationCoordinate.m; path = SmartDeviceLink/SDLLocationCoordinate.m; sourceTree = ""; }; - 3ED13A45BA2BAA69E7C1CE75280162A1 /* SDLVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVersion.h; path = SmartDeviceLink/SDLVersion.h; sourceTree = ""; }; - 3ED9AAC40D94011EA3DFB96F5394A88A /* SDLSubscribeWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeWayPointsResponse.m; path = SmartDeviceLink/SDLSubscribeWayPointsResponse.m; sourceTree = ""; }; - 3F46BF5B95E2FE244011A908FAA7404C /* SDLAppHMIType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppHMIType.h; path = SmartDeviceLink/SDLAppHMIType.h; sourceTree = ""; }; - 3F743A14A81CBDA132220AA28D5EB8D6 /* SDLRPCMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCMessage.m; path = SmartDeviceLink/SDLRPCMessage.m; sourceTree = ""; }; - 3FC09BC7628BFAB7CD416C70D3F97726 /* SDLAlertManeuver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertManeuver.m; path = SmartDeviceLink/SDLAlertManeuver.m; sourceTree = ""; }; - 400D3E396C926D58653D9550ED9D959D /* SDLSendLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendLocation.h; path = SmartDeviceLink/SDLSendLocation.h; sourceTree = ""; }; - 406D36F0D5A4360A34D547F29DAEC507 /* SDLVehicleDataStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataStatus.h; path = SmartDeviceLink/SDLVehicleDataStatus.h; sourceTree = ""; }; - 407C6AE6126DB991B09BB16445481048 /* SDLLayoutMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLayoutMode.m; path = SmartDeviceLink/SDLLayoutMode.m; sourceTree = ""; }; - 40A630A6C0CC2E6947903DC5BA0B4A42 /* SDLPublishAppServiceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPublishAppServiceResponse.m; path = SmartDeviceLink/SDLPublishAppServiceResponse.m; sourceTree = ""; }; - 40A71807A649A656E2DA4942B6C7F861 /* SDLScrollableMessageResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScrollableMessageResponse.m; path = SmartDeviceLink/SDLScrollableMessageResponse.m; sourceTree = ""; }; - 40F09D6CBF3B576AB4BCEE787D60E8A7 /* SDLAudioControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioControlData.m; path = SmartDeviceLink/SDLAudioControlData.m; sourceTree = ""; }; - 41001F8A8E38A09CC2782EDFC033C7A4 /* SDLProtocolReceivedMessageRouter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolReceivedMessageRouter.h; path = SmartDeviceLink/SDLProtocolReceivedMessageRouter.h; sourceTree = ""; }; - 4120946CE7AB246EF162C99558A3845D /* SDLRequestType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRequestType.m; path = SmartDeviceLink/SDLRequestType.m; sourceTree = ""; }; - 41304645E4705DE8828DD0B01D402863 /* SDLStreamingAudioLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingAudioLifecycleManager.m; path = SmartDeviceLink/SDLStreamingAudioLifecycleManager.m; sourceTree = ""; }; - 415932F30412FF10E539284D48E8C35D /* SDLAudioStreamManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamManager.m; path = SmartDeviceLink/SDLAudioStreamManager.m; sourceTree = ""; }; - 416EEFA8DF9920B950D45A438B6CEB3B /* SDLProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocol.h; path = SmartDeviceLink/SDLProtocol.h; sourceTree = ""; }; - 41D1F2E020D4C94A54B41209DF6979D4 /* SDLSeatLocationCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatLocationCapability.h; path = SmartDeviceLink/SDLSeatLocationCapability.h; sourceTree = ""; }; - 41D2FDD18C0EC502F3D54359F05AEA12 /* SDLDeleteCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteCommand.h; path = SmartDeviceLink/SDLDeleteCommand.h; sourceTree = ""; }; - 41D72B7B4ED48D2E8526C8AF6D0B9A7B /* SDLImageField+ScreenManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLImageField+ScreenManagerExtensions.m"; path = "SmartDeviceLink/SDLImageField+ScreenManagerExtensions.m"; sourceTree = ""; }; - 42438A9D2F6D3292FF657E90823128D4 /* SDLTextAndGraphicManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextAndGraphicManager.h; path = SmartDeviceLink/SDLTextAndGraphicManager.h; sourceTree = ""; }; - 42661551A62CE606353EE0A3A1811CC7 /* SDLVoiceCommandManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommandManager.h; path = SmartDeviceLink/SDLVoiceCommandManager.h; sourceTree = ""; }; - 434F7E258AA1DD104EC3CFB0E53CD4F5 /* SDLLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightStatus.m; path = SmartDeviceLink/SDLLightStatus.m; sourceTree = ""; }; - 43D14531D9A7ED9C7FBFA6F900E02E1D /* SDLRadioBand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioBand.m; path = SmartDeviceLink/SDLRadioBand.m; sourceTree = ""; }; - 43E6B7E8C5F8053C7D1CC36D63B661F6 /* SDLGetWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetWayPoints.h; path = SmartDeviceLink/SDLGetWayPoints.h; sourceTree = ""; }; - 44DE2E913C1FFDEB763626983CED98D4 /* SDLRPCMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCMessage.h; path = SmartDeviceLink/SDLRPCMessage.h; sourceTree = ""; }; - 44F03874CFBDB12A46DAEDBEBC01EDED /* SDLLifecycleSystemRequestHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleSystemRequestHandler.m; path = SmartDeviceLink/SDLLifecycleSystemRequestHandler.m; sourceTree = ""; }; - 450FA67BD7C44184F88D81F8C399251F /* SDLControlFramePayloadEndService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadEndService.h; path = SmartDeviceLink/SDLControlFramePayloadEndService.h; sourceTree = ""; }; - 4525C34999BF5F6C1D46FE4471300796 /* SDLPutFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPutFileResponse.h; path = SmartDeviceLink/SDLPutFileResponse.h; sourceTree = ""; }; - 45278E4B1599BA7B963172755EE7266C /* SDLCreateInteractionChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateInteractionChoiceSet.m; path = SmartDeviceLink/SDLCreateInteractionChoiceSet.m; sourceTree = ""; }; - 453036FA291BAD166B2A99B5B41BD415 /* SDLAppServiceRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceRecord.h; path = SmartDeviceLink/SDLAppServiceRecord.h; sourceTree = ""; }; - 4534A47F55F401B4F9461F6E133F8C1D /* SDLControlFramePayloadRPCStartService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRPCStartService.m; path = SmartDeviceLink/SDLControlFramePayloadRPCStartService.m; sourceTree = ""; }; - 45C3A2C25877219916DC604237EE989A /* SDLLogConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogConstants.h; path = SmartDeviceLink/SDLLogConstants.h; sourceTree = ""; }; - 46B479E9DE24EACDF8798380CCC4B19E /* EAAccessoryManager+SDLProtocols.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EAAccessoryManager+SDLProtocols.m"; path = "SmartDeviceLink/EAAccessoryManager+SDLProtocols.m"; sourceTree = ""; }; - 46ECC18D967806C249E479F3E3F6CB28 /* SDLPRNDL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPRNDL.m; path = SmartDeviceLink/SDLPRNDL.m; sourceTree = ""; }; - 4722008FD5C647B6F89537D21F158386 /* SDLUnsubscribeWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeWayPointsResponse.h; path = SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h; sourceTree = ""; }; - 47B19A0B5A3387852751CFDCB453B116 /* SDLRPCNotificationNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCNotificationNotification.m; path = SmartDeviceLink/SDLRPCNotificationNotification.m; sourceTree = ""; }; - 47C1FDEBDE61E5805D49671442A7A863 /* SDLLightCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightCapabilities.h; path = SmartDeviceLink/SDLLightCapabilities.h; sourceTree = ""; }; - 47CEE7254EB0F1FF12B377E55631510A /* SDLKeyboardProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardProperties.m; path = SmartDeviceLink/SDLKeyboardProperties.m; sourceTree = ""; }; - 481E981C3D01379187FF066BD3C0DABA /* SDLTemperature.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemperature.h; path = SmartDeviceLink/SDLTemperature.h; sourceTree = ""; }; - 48307D297D9F19863197DD3A5B8AFBD8 /* SDLAppServiceType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceType.m; path = SmartDeviceLink/SDLAppServiceType.m; sourceTree = ""; }; - 491D8037228A91B41497B86D86B203FA /* SDLSetDisplayLayoutResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetDisplayLayoutResponse.h; path = SmartDeviceLink/SDLSetDisplayLayoutResponse.h; sourceTree = ""; }; - 4946BD85165935E30EBDE5F0983445E0 /* SDLAppServiceCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceCapability.m; path = SmartDeviceLink/SDLAppServiceCapability.m; sourceTree = ""; }; - 4975CFB97046B46A61DB1C5214F450B7 /* SDLEmergencyEventType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEmergencyEventType.h; path = SmartDeviceLink/SDLEmergencyEventType.h; sourceTree = ""; }; - 4A10D8B7901189488B952CD3118CD658 /* SDLShowConstantTBT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowConstantTBT.m; path = SmartDeviceLink/SDLShowConstantTBT.m; sourceTree = ""; }; - 4A9E6530D498F353F0F09932DF6E0EAD /* SDLDisplayCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayCapability.h; path = SmartDeviceLink/SDLDisplayCapability.h; sourceTree = ""; }; - 4AE79256F1FBD692C97BF6AF4A9AA8F5 /* SDLLanguage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLanguage.m; path = SmartDeviceLink/SDLLanguage.m; sourceTree = ""; }; - 4B58A20A29A45608DC88942D98FAD328 /* SDLOnAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAudioPassThru.m; path = SmartDeviceLink/SDLOnAudioPassThru.m; sourceTree = ""; }; - 4B944A8411396B636FBDC617B69BA653 /* SDLSoftButtonTransitionOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonTransitionOperation.h; path = SmartDeviceLink/SDLSoftButtonTransitionOperation.h; sourceTree = ""; }; - 4C0A8CFB3D9B165CAB3A25F6C5FE2553 /* SDLObjectWithPriority.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLObjectWithPriority.h; path = SmartDeviceLink/SDLObjectWithPriority.h; sourceTree = ""; }; - 4C0C5BDEA392C2632EF566C04D76A2D0 /* SDLAppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppInfo.m; path = SmartDeviceLink/SDLAppInfo.m; sourceTree = ""; }; - 4C1E994C0CAD055C104B0306EC25F432 /* SDLSeatControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatControlCapabilities.m; path = SmartDeviceLink/SDLSeatControlCapabilities.m; sourceTree = ""; }; - 4C56E0DAFD813A6679773DEA90F319CD /* SDLSetCloudAppProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetCloudAppProperties.m; path = SmartDeviceLink/SDLSetCloudAppProperties.m; sourceTree = ""; }; - 4C7358A46E79FC0C9BC7001B0A76870E /* SDLCarWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarWindow.m; path = SmartDeviceLink/SDLCarWindow.m; sourceTree = ""; }; - 4C8AB9952510177705B3F01E462FE897 /* NSNumber+NumberType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+NumberType.h"; path = "SmartDeviceLink/NSNumber+NumberType.h"; sourceTree = ""; }; - 4CDDE49677C1E817827B6E102A64583F /* SDLDeleteChoicesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteChoicesOperation.m; path = SmartDeviceLink/SDLDeleteChoicesOperation.m; sourceTree = ""; }; - 4CF246B79DE4F55FA9C83D84B39DED75 /* SDLMassageZone.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageZone.m; path = SmartDeviceLink/SDLMassageZone.m; sourceTree = ""; }; - 4D30EA1923FA31DA9BE9ABCBAE3F7AC8 /* SDLDeleteSubMenuResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteSubMenuResponse.m; path = SmartDeviceLink/SDLDeleteSubMenuResponse.m; sourceTree = ""; }; - 4DBF14A9018FF0267ED5E2B71139B68D /* SDLElectronicParkBrakeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLElectronicParkBrakeStatus.h; path = SmartDeviceLink/SDLElectronicParkBrakeStatus.h; sourceTree = ""; }; - 4DDB64CACEBCF991EC3567F7211CF4D7 /* SDLSystemContext.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemContext.m; path = SmartDeviceLink/SDLSystemContext.m; sourceTree = ""; }; - 4EB9B954F1D1DCEB391A1D236360F644 /* SDLGetWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetWayPointsResponse.h; path = SmartDeviceLink/SDLGetWayPointsResponse.h; sourceTree = ""; }; - 4EDBC18F6B463FA2C5159B39D11406A8 /* SDLGetFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetFile.m; path = SmartDeviceLink/SDLGetFile.m; sourceTree = ""; }; - 4F447D50B76CF152BE05CADE1A36C2EF /* SDLStreamingMediaManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManagerConstants.h; path = SmartDeviceLink/SDLStreamingMediaManagerConstants.h; sourceTree = ""; }; - 4F84252F4C10EA659DE486850D8B391F /* SDLDeleteWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteWindow.h; path = SmartDeviceLink/SDLDeleteWindow.h; sourceTree = ""; }; - 4FD6F467D5959B95D867103EEA1CA0D2 /* CGPoint_Util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CGPoint_Util.h; path = SmartDeviceLink/CGPoint_Util.h; sourceTree = ""; }; - 50189BAC7FFDD4590A653D15F6445710 /* SDLMenuCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuCell.m; path = SmartDeviceLink/SDLMenuCell.m; sourceTree = ""; }; - 5034B677DE11A819CC149521CC6E7720 /* SDLAppInterfaceUnregisteredReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppInterfaceUnregisteredReason.h; path = SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h; sourceTree = ""; }; - 503A41DB589BA9EC2CCA4AB7017329EF /* SDLOnSystemRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSystemRequest.m; path = SmartDeviceLink/SDLOnSystemRequest.m; sourceTree = ""; }; - 50519D317000C62928D0855FCBD05D94 /* SDLManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLManager.m; path = SmartDeviceLink/SDLManager.m; sourceTree = ""; }; - 5103BF7ABB8FE6480004A5CA73CFE14C /* SDLSoftButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButton.m; path = SmartDeviceLink/SDLSoftButton.m; sourceTree = ""; }; - 51210DA0C1436DDB81E521EBA6EADBC8 /* SDLOnCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnCommand.h; path = SmartDeviceLink/SDLOnCommand.h; sourceTree = ""; }; - 5123591BCB0470FF6776714BBA79CF39 /* SDLCreateInteractionChoiceSetResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateInteractionChoiceSetResponse.h; path = SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h; sourceTree = ""; }; - 513C5F441F1680E2DF08C9769B0F1261 /* SDLCloseApplication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCloseApplication.m; path = SmartDeviceLink/SDLCloseApplication.m; sourceTree = ""; }; - 515C64D6ED07705316C7A0B26C4DD75E /* SDLChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceSet.m; path = SmartDeviceLink/SDLChoiceSet.m; sourceTree = ""; }; - 51B7A6EEE9B94D329C7266DE4D081999 /* SDLOnHMIStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnHMIStatus.m; path = SmartDeviceLink/SDLOnHMIStatus.m; sourceTree = ""; }; - 51FFB00ABD6490160288E149838F9914 /* SDLEncryptionConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncryptionConfiguration.h; path = SmartDeviceLink/SDLEncryptionConfiguration.h; sourceTree = ""; }; - 5219E50197D0F16E89EF7D41AA424C50 /* SDLMaintenanceModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMaintenanceModeStatus.h; path = SmartDeviceLink/SDLMaintenanceModeStatus.h; sourceTree = ""; }; - 5229ED97F3A6D032C282A878D63A8092 /* SDLMediaClockFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaClockFormat.m; path = SmartDeviceLink/SDLMediaClockFormat.m; sourceTree = ""; }; - 5307CCD102337C9C53D4EFE667B761F4 /* SDLAppServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceData.m; path = SmartDeviceLink/SDLAppServiceData.m; sourceTree = ""; }; - 534381EF77922C7C1FEB465E9A76C391 /* SDLDiagnosticMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDiagnosticMessage.m; path = SmartDeviceLink/SDLDiagnosticMessage.m; sourceTree = ""; }; - 53B9D390255C9D726244342D1F11DB4E /* SDLSoftButtonReplaceOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonReplaceOperation.h; path = SmartDeviceLink/SDLSoftButtonReplaceOperation.h; sourceTree = ""; }; - 53C9FB09310F3715EB6A1F8329DEA635 /* SDLVehicleDataResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataResult.m; path = SmartDeviceLink/SDLVehicleDataResult.m; sourceTree = ""; }; - 53E02D4536535B419DF1F95513E1ECBA /* SDLLifecycleMobileHMIStateHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleMobileHMIStateHandler.m; path = SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.m; sourceTree = ""; }; - 543FCEC5A85DD779ABF6ACE810B1AD64 /* SDLError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLError.h; path = SmartDeviceLink/SDLError.h; sourceTree = ""; }; - 547FC85E47390A2ECB343B5888FA5AD9 /* SDLSamplingRate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSamplingRate.m; path = SmartDeviceLink/SDLSamplingRate.m; sourceTree = ""; }; - 5489C9144952EA64BC69A2AFEA7D3E52 /* SDLRadioControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioControlCapabilities.h; path = SmartDeviceLink/SDLRadioControlCapabilities.h; sourceTree = ""; }; - 5515A49433320321179C4B897753C324 /* SDLButtonPress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPress.h; path = SmartDeviceLink/SDLButtonPress.h; sourceTree = ""; }; - 55244989E8038AB58D5327F3F2477E52 /* SDLEncryptionManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncryptionManagerConstants.h; path = SmartDeviceLink/SDLEncryptionManagerConstants.h; sourceTree = ""; }; - 55370BA933CFB6684AC8D5FD1954BD37 /* SDLSeatControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatControlData.h; path = SmartDeviceLink/SDLSeatControlData.h; sourceTree = ""; }; - 556489F7F882C1F45315798A6F7A1FCC /* SDLKeyboardLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardLayout.m; path = SmartDeviceLink/SDLKeyboardLayout.m; sourceTree = ""; }; - 55E435B983612931D00E4E0BE0F83314 /* SDLListFiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFiles.m; path = SmartDeviceLink/SDLListFiles.m; sourceTree = ""; }; - 560110B981BC4B6770CCD1C3367DB69A /* SDLLifecycleRPCAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleRPCAdapter.m; path = SmartDeviceLink/SDLLifecycleRPCAdapter.m; sourceTree = ""; }; - 5607006D258938F74C9BF96F14B4D4DF /* SDLImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImage.m; path = SmartDeviceLink/SDLImage.m; sourceTree = ""; }; - 560968D114523D039B47918DE9FC2B26 /* SDLLifecycleRPCAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleRPCAdapter.h; path = SmartDeviceLink/SDLLifecycleRPCAdapter.h; sourceTree = ""; }; - 560F738DFD43F14B66D6575B0D922FF8 /* SDLLifecycleConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleConfiguration.h; path = SmartDeviceLink/SDLLifecycleConfiguration.h; sourceTree = ""; }; - 56348A384ADED81FB3086D9B75D54306 /* SDLMassageCushionFirmness.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageCushionFirmness.m; path = SmartDeviceLink/SDLMassageCushionFirmness.m; sourceTree = ""; }; - 565121A4F57AC7B9E0FFA044BC680BAB /* SDLOnAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAudioPassThru.h; path = SmartDeviceLink/SDLOnAudioPassThru.h; sourceTree = ""; }; - 565B3BF287FB32FC25688D47A589EACC /* SDLSystemCapabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityManager.h; path = SmartDeviceLink/SDLSystemCapabilityManager.h; sourceTree = ""; }; - 56B207D8614F79DE603BFA47589AFFD6 /* SDLPerformAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAudioPassThru.h; path = SmartDeviceLink/SDLPerformAudioPassThru.h; sourceTree = ""; }; - 56BD8841DFE8B3FBBC4A5C4D08264F39 /* SDLEmergencyEventType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEmergencyEventType.m; path = SmartDeviceLink/SDLEmergencyEventType.m; sourceTree = ""; }; - 5712312473A00BB85C7BFFF2A9701AB2 /* SDLLifecycleProtocolHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleProtocolHandler.m; path = SmartDeviceLink/SDLLifecycleProtocolHandler.m; sourceTree = ""; }; - 5755CA4656E4B0C76ED9F9F63356B985 /* SDLOnTouchEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnTouchEvent.h; path = SmartDeviceLink/SDLOnTouchEvent.h; sourceTree = ""; }; - 5784EB866AAB23C634D0887413828115 /* SDLStartTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStartTime.h; path = SmartDeviceLink/SDLStartTime.h; sourceTree = ""; }; - 57AFA95624C62EA40DCF7A4A52DA2D26 /* SDLAirbagStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAirbagStatus.h; path = SmartDeviceLink/SDLAirbagStatus.h; sourceTree = ""; }; - 57B7CFE27E7FD5DFEDF19B5BF803548D /* SDLEncodedSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncodedSyncPData.m; path = SmartDeviceLink/SDLEncodedSyncPData.m; sourceTree = ""; }; - 57F213F76C681791E8A6A44907FAD2A2 /* SDLDeleteInteractionChoiceSetResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteInteractionChoiceSetResponse.m; path = SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m; sourceTree = ""; }; - 583045D48F0608C0A7B71AE4D7666158 /* EAAccessory+SDLProtocols.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EAAccessory+SDLProtocols.h"; path = "SmartDeviceLink/EAAccessory+SDLProtocols.h"; sourceTree = ""; }; - 58F3751CB279F04FD7904D88ADC33AD9 /* SDLNavigationJunction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationJunction.m; path = SmartDeviceLink/SDLNavigationJunction.m; sourceTree = ""; }; - 590C1C4982D954259C18E6BAF8EA15A0 /* SDLTurnSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTurnSignal.h; path = SmartDeviceLink/SDLTurnSignal.h; sourceTree = ""; }; - 593ED256D9FF77FF4B35CE6871FAE25D /* SDLRPCParameterNames.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCParameterNames.h; path = SmartDeviceLink/SDLRPCParameterNames.h; sourceTree = ""; }; - 594AC4B2DF9D7E1F894764C0639282A4 /* SDLProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolHeader.m; path = SmartDeviceLink/SDLProtocolHeader.m; sourceTree = ""; }; - 59D7FD29EEF5AC55F5624BD9B791ADD6 /* Pods-MobileWeather-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MobileWeather-Info.plist"; sourceTree = ""; }; - 59E9E6DA852CDB3807D696B60E051419 /* SDLDynamicMenuUpdateAlgorithm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDynamicMenuUpdateAlgorithm.h; path = SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.h; sourceTree = ""; }; - 5A11856FDCCC57B69B91D3F4F8AAAE92 /* SDLControlFramePayloadRPCStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRPCStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m; sourceTree = ""; }; - 5A352F773B0D24E76E0DDA51D741F4F4 /* SDLHMIZoneCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMIZoneCapabilities.h; path = SmartDeviceLink/SDLHMIZoneCapabilities.h; sourceTree = ""; }; - 5A548B2F0B4F07864D70445C29686B09 /* SDLLockScreenRootViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenRootViewController.h; path = SmartDeviceLink/SDLLockScreenRootViewController.h; sourceTree = ""; }; - 5A6B3017F1431C58D97751955A16C720 /* SDLVentilationMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVentilationMode.h; path = SmartDeviceLink/SDLVentilationMode.h; sourceTree = ""; }; - 5A7526B4C33F3597CF06B974E14148B3 /* SDLMetadataType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMetadataType.m; path = SmartDeviceLink/SDLMetadataType.m; sourceTree = ""; }; - 5B19D438E24EAAC5AB55CF4F1D7C0C34 /* SDLKeyboardEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardEvent.m; path = SmartDeviceLink/SDLKeyboardEvent.m; sourceTree = ""; }; - 5BC04274374151301839F46AAE270B2C /* SDLUpdateMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateMode.m; path = SmartDeviceLink/SDLUpdateMode.m; sourceTree = ""; }; - 5BDE7214FFD1799A060E153912422D29 /* SDLVehicleDataActiveStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataActiveStatus.m; path = SmartDeviceLink/SDLVehicleDataActiveStatus.m; sourceTree = ""; }; - 5C1D9612F74CBE518438548A4CF314FF /* SDLProtocolMessageAssembler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessageAssembler.m; path = SmartDeviceLink/SDLProtocolMessageAssembler.m; sourceTree = ""; }; - 5C71161060166817E773FB5B022B4BF7 /* SDLBodyInformation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBodyInformation.m; path = SmartDeviceLink/SDLBodyInformation.m; sourceTree = ""; }; - 5C7DA6DFDBC398CAB62E0896412F9A2A /* SDLIAPTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPTransport.h; path = SmartDeviceLink/SDLIAPTransport.h; sourceTree = ""; }; - 5CB2711FB405251BACF64A0A65EAE099 /* SDLPublishAppServiceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPublishAppServiceResponse.h; path = SmartDeviceLink/SDLPublishAppServiceResponse.h; sourceTree = ""; }; - 5CB3BE56CAC7F62425D19C1C143A480E /* SDLLockScreenConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenConfiguration.h; path = SmartDeviceLink/SDLLockScreenConfiguration.h; sourceTree = ""; }; - 5CC74D66E26424A87C56B92B709CA407 /* SDLChoiceCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceCell.m; path = SmartDeviceLink/SDLChoiceCell.m; sourceTree = ""; }; - 5CD8B26768A85697E5937AC3887AFC5E /* SDLControlFramePayloadVideoStartService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadVideoStartService.m; path = SmartDeviceLink/SDLControlFramePayloadVideoStartService.m; sourceTree = ""; }; - 5CF68D31D1441A9B01A4855729375706 /* SDLElectronicParkBrakeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLElectronicParkBrakeStatus.m; path = SmartDeviceLink/SDLElectronicParkBrakeStatus.m; sourceTree = ""; }; - 5D5380F0BCC170C113C3965CCB7AD31F /* SDLECallInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLECallInfo.h; path = SmartDeviceLink/SDLECallInfo.h; sourceTree = ""; }; - 5DFCB575AA035436B66797EA08EFAB0C /* SDLOnKeyboardInput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnKeyboardInput.m; path = SmartDeviceLink/SDLOnKeyboardInput.m; sourceTree = ""; }; - 5E2B0AAB2CCBFBD6FAC8F2B04D2A0C31 /* SDLVehicleDataActiveStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataActiveStatus.h; path = SmartDeviceLink/SDLVehicleDataActiveStatus.h; sourceTree = ""; }; - 5E7A92F6F5DF51067E86A63E8CD1EC5C /* Pods-MobileWeather-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MobileWeather-umbrella.h"; sourceTree = ""; }; - 5E8F3EE9F30783B26AA56961091BF72E /* SDLDeleteFileOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileOperation.m; path = SmartDeviceLink/SDLDeleteFileOperation.m; sourceTree = ""; }; - 5EB901BBD8CDB6EBCBAE64DA451A00CC /* SDLPredefinedLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPredefinedLayout.h; path = SmartDeviceLink/SDLPredefinedLayout.h; sourceTree = ""; }; - 5ED1A1D0218C25583F5764B0E59FDC4E /* bson_util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_util.h; path = src/bson_util.h; sourceTree = ""; }; - 5F13B63A4EAD46B06716304725A8B45C /* SDLUnregisterAppInterface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnregisterAppInterface.h; path = SmartDeviceLink/SDLUnregisterAppInterface.h; sourceTree = ""; }; - 5F656263CA5DF65889FE6D8936080E02 /* SDLHeadLampStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHeadLampStatus.m; path = SmartDeviceLink/SDLHeadLampStatus.m; sourceTree = ""; }; - 5FF29143ABCD4BB3E7BEDE8C7CCAD067 /* SDLBitsPerSample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBitsPerSample.m; path = SmartDeviceLink/SDLBitsPerSample.m; sourceTree = ""; }; - 606081890E34F1A52EA3621D5B06F45D /* SDLFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFile.m; path = SmartDeviceLink/SDLFile.m; sourceTree = ""; }; - 6076ED1F7C813186E772A1EFE55F1B2C /* SDLAudioControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioControlCapabilities.h; path = SmartDeviceLink/SDLAudioControlCapabilities.h; sourceTree = ""; }; - 60F046623D1338F618C008003CCE3C24 /* SDLDriverDistractionState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDriverDistractionState.h; path = SmartDeviceLink/SDLDriverDistractionState.h; sourceTree = ""; }; - 61826AE009D0EFACD0702CE842CA700D /* SDLDynamicMenuUpdateRunScore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDynamicMenuUpdateRunScore.m; path = SmartDeviceLink/SDLDynamicMenuUpdateRunScore.m; sourceTree = ""; }; - 61E9DF9DE239F356089DAA53E89279CA /* SDLLogTarget.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTarget.h; path = SmartDeviceLink/SDLLogTarget.h; sourceTree = ""; }; - 61F44CE148CA8C83F8C0A4C085412C87 /* SDLGetFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetFileResponse.h; path = SmartDeviceLink/SDLGetFileResponse.h; sourceTree = ""; }; - 620CF46A0CCD4D50705CBD8D5628B133 /* SDLLockScreenConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenConfiguration.m; path = SmartDeviceLink/SDLLockScreenConfiguration.m; sourceTree = ""; }; - 6243FFA5A3FBB349C133E1FC613BD6AD /* SDLOnRCStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnRCStatus.m; path = SmartDeviceLink/SDLOnRCStatus.m; sourceTree = ""; }; - 628B5DC307A9450A056D106EF2EABD94 /* SDLSetInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetInteriorVehicleData.h; path = SmartDeviceLink/SDLSetInteriorVehicleData.h; sourceTree = ""; }; - 6295861AA5817049121A7E98779B04F0 /* SDLMassageCushion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageCushion.h; path = SmartDeviceLink/SDLMassageCushion.h; sourceTree = ""; }; - 62C0442C9E0D051B0310BB29437BC90B /* SDLSliderResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSliderResponse.m; path = SmartDeviceLink/SDLSliderResponse.m; sourceTree = ""; }; - 6301C36A8C5A7DFCE5AE6E9C37BBE530 /* SDLEqualizerSettings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEqualizerSettings.m; path = SmartDeviceLink/SDLEqualizerSettings.m; sourceTree = ""; }; - 6316B004E69CA34EAA8ADB8A39D0E24C /* SDLSendLocationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendLocationResponse.h; path = SmartDeviceLink/SDLSendLocationResponse.h; sourceTree = ""; }; - 6327F4CF9F830BB34651793AA66D1377 /* SDLSystemAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemAction.m; path = SmartDeviceLink/SDLSystemAction.m; sourceTree = ""; }; - 6390AF2F2F40CABD81E416ABBDB1DA38 /* SDLManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLManagerDelegate.h; path = SmartDeviceLink/SDLManagerDelegate.h; sourceTree = ""; }; - 63A7E80FD365C91A7303ABC5BE8B11F5 /* SDLPermissionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionStatus.h; path = SmartDeviceLink/SDLPermissionStatus.h; sourceTree = ""; }; - 63E7D4AB6E3E4F7AC84C60288E5D41D9 /* SDLSubscribeWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeWayPoints.h; path = SmartDeviceLink/SDLSubscribeWayPoints.h; sourceTree = ""; }; - 64190B404D04BE52AA1D0DEE2805F556 /* SDLGetInteriorVehicleDataConsentResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataConsentResponse.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m; sourceTree = ""; }; - 6423F48220C9A8B6095DDC2BC8E85DE5 /* SDLEncodedSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncodedSyncPData.h; path = SmartDeviceLink/SDLEncodedSyncPData.h; sourceTree = ""; }; - 64305656CE2B59145E9B70508EF743BC /* SDLResponseDispatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResponseDispatcher.m; path = SmartDeviceLink/SDLResponseDispatcher.m; sourceTree = ""; }; - 648FA1637D806CACB0CC9A6C444D1B77 /* SDLVideoStreamingState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingState.m; path = SmartDeviceLink/SDLVideoStreamingState.m; sourceTree = ""; }; - 64A402A669311BB17E6D1A2C93B61EF8 /* SDLAudioPassThruCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioPassThruCapabilities.m; path = SmartDeviceLink/SDLAudioPassThruCapabilities.m; sourceTree = ""; }; - 64ABE3A5D90ED6ECBAC18ABA973D85CA /* SDLOnPermissionsChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnPermissionsChange.m; path = SmartDeviceLink/SDLOnPermissionsChange.m; sourceTree = ""; }; - 64D9FFCA2DD46CA3C4112C71901478D2 /* SDLAmbientLightStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAmbientLightStatus.m; path = SmartDeviceLink/SDLAmbientLightStatus.m; sourceTree = ""; }; - 65419DF568C66F604EF0738C1965D385 /* SDLSendLocationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendLocationResponse.m; path = SmartDeviceLink/SDLSendLocationResponse.m; sourceTree = ""; }; - 6576A40CB2829D4CDEE4A81F7E0E7603 /* SDLWarningLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWarningLightStatus.h; path = SmartDeviceLink/SDLWarningLightStatus.h; sourceTree = ""; }; - 658B5E74262239EB89838E06BCDA0669 /* SDLGetSystemCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetSystemCapability.h; path = SmartDeviceLink/SDLGetSystemCapability.h; sourceTree = ""; }; - 65DF9500E597CFDE3EF8716944FF3E34 /* SDLRegisterAppInterfaceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRegisterAppInterfaceResponse.m; path = SmartDeviceLink/SDLRegisterAppInterfaceResponse.m; sourceTree = ""; }; - 65F149F667D01754A1E0645711F6D6EA /* SDLOnHashChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnHashChange.m; path = SmartDeviceLink/SDLOnHashChange.m; sourceTree = ""; }; - 66BB2A05D1451A32684E59CFF3328352 /* SDLResetGlobalPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResetGlobalPropertiesResponse.h; path = SmartDeviceLink/SDLResetGlobalPropertiesResponse.h; sourceTree = ""; }; - 66E64A3674325E99630AB41079D65E52 /* bson_object.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = bson_object.c; path = src/bson_object.c; sourceTree = ""; }; - 66F45795ED9AEACF2E1E1767FF421BFF /* SDLScreenParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScreenParams.m; path = SmartDeviceLink/SDLScreenParams.m; sourceTree = ""; }; - 67293A61FAECED20B679AB1C5047B8DB /* SmartDeviceLink-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SmartDeviceLink-Info.plist"; sourceTree = ""; }; - 6748E54A60D5360EEF0582C7FD7CCF5D /* TestSubscribeButtonObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TestSubscribeButtonObserver.m; path = SmartDeviceLink/TestSubscribeButtonObserver.m; sourceTree = ""; }; - 67855906284D207F83522CBD12130F96 /* SDLButtonName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonName.m; path = SmartDeviceLink/SDLButtonName.m; sourceTree = ""; }; - 67857A032BAADE3614D213222C35BF8C /* SDLSingleTireStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSingleTireStatus.h; path = SmartDeviceLink/SDLSingleTireStatus.h; sourceTree = ""; }; - 6795D9E1B70C789604C444042F88585F /* SDLProtocolDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolDelegate.h; path = SmartDeviceLink/SDLProtocolDelegate.h; sourceTree = ""; }; - 679D66BB05750D3932558F28A7CAD469 /* SDLSeatLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatLocation.m; path = SmartDeviceLink/SDLSeatLocation.m; sourceTree = ""; }; - 67F2B147BCDCFCAA281D2A08BC379214 /* SDLStreamingMediaManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaManager.m; path = SmartDeviceLink/SDLStreamingMediaManager.m; sourceTree = ""; }; - 67F8B6234CDA01ABF6D0A2BB501FAF2D /* Pods-MobileWeather.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MobileWeather.debug.xcconfig"; sourceTree = ""; }; - 6802538CA9682265946D00C4029FA1AF /* SDLSystemRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemRequest.h; path = SmartDeviceLink/SDLSystemRequest.h; sourceTree = ""; }; - 680E830A922E9C7A8D1E5A3C3D4F580C /* SDLOnInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnInteriorVehicleData.m; path = SmartDeviceLink/SDLOnInteriorVehicleData.m; sourceTree = ""; }; - 6832CFBF1515389AC3364F399A91817E /* SDLFunctionID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFunctionID.h; path = SmartDeviceLink/SDLFunctionID.h; sourceTree = ""; }; - 689B0C277D4D74417F0703BA219AF3EC /* SDLGetAppServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetAppServiceData.m; path = SmartDeviceLink/SDLGetAppServiceData.m; sourceTree = ""; }; - 68D12D24E08593D40782A089F52040A9 /* SDLAsynchronousRPCOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousRPCOperation.h; path = SmartDeviceLink/SDLAsynchronousRPCOperation.h; sourceTree = ""; }; - 694C894F8FA7F51AA620E23A7754B19E /* SDLPermissionItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionItem.m; path = SmartDeviceLink/SDLPermissionItem.m; sourceTree = ""; }; - 6974D1792F6599EC0D62B246B18D24E4 /* SDLRadioControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioControlData.m; path = SmartDeviceLink/SDLRadioControlData.m; sourceTree = ""; }; - 697EB906700E028BBEB4A35248DC2B56 /* SDLV1ProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV1ProtocolHeader.m; path = SmartDeviceLink/SDLV1ProtocolHeader.m; sourceTree = ""; }; - 6A6546CC22413DE90D216F99190F62B4 /* SDLHMISettingsControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMISettingsControlCapabilities.h; path = SmartDeviceLink/SDLHMISettingsControlCapabilities.h; sourceTree = ""; }; - 6A6FFDC23241F75DEE1A10FDC70F86EF /* SDLSliderResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSliderResponse.h; path = SmartDeviceLink/SDLSliderResponse.h; sourceTree = ""; }; - 6A800C1FAD99D70B8B29AAE775776B9F /* SDLModuleInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleInfo.m; path = SmartDeviceLink/SDLModuleInfo.m; sourceTree = ""; }; - 6A84F34CB374BEB91FE4C77E7F10F2FA /* SDLLifecycleConfigurationUpdate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleConfigurationUpdate.h; path = SmartDeviceLink/SDLLifecycleConfigurationUpdate.h; sourceTree = ""; }; - 6AA9EBE70B104558299E530D51210C27 /* SDLPowerModeQualificationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPowerModeQualificationStatus.h; path = SmartDeviceLink/SDLPowerModeQualificationStatus.h; sourceTree = ""; }; - 6AE9EC548FF21C32A33D465E73564DE4 /* SDLOnRCStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnRCStatus.h; path = SmartDeviceLink/SDLOnRCStatus.h; sourceTree = ""; }; - 6B2D91153D914C941AEEFE99436B0BBC /* SDLStreamingMediaManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManager.h; path = SmartDeviceLink/SDLStreamingMediaManager.h; sourceTree = ""; }; - 6B563B100B41A14984E794CEF82D270E /* SDLFileType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFileType.m; path = SmartDeviceLink/SDLFileType.m; sourceTree = ""; }; - 6B8EFD1CF76083158407FC36B8E116EE /* SDLFunctionID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFunctionID.m; path = SmartDeviceLink/SDLFunctionID.m; sourceTree = ""; }; - 6B9BAA4D99166BCE4C535F65CE463058 /* SDLSamplingRate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSamplingRate.h; path = SmartDeviceLink/SDLSamplingRate.h; sourceTree = ""; }; - 6BB5CC306F5A580E2DE14FF2E2AA1009 /* SDLHeadLampStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHeadLampStatus.h; path = SmartDeviceLink/SDLHeadLampStatus.h; sourceTree = ""; }; - 6BB9CD0CFFBB9A34D5C1833A78E5C956 /* SDLOnTBTClientState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnTBTClientState.m; path = SmartDeviceLink/SDLOnTBTClientState.m; sourceTree = ""; }; - 6BDFD54AD0587D67A9F01BE35775FEFB /* SDLDefrostZone.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDefrostZone.m; path = SmartDeviceLink/SDLDefrostZone.m; sourceTree = ""; }; - 6BE4EE1D8BE9A2DCD428088444FCC1C8 /* SDLReleaseInteriorVehicleDataModuleResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReleaseInteriorVehicleDataModuleResponse.m; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m; sourceTree = ""; }; - 6BEAB10C4471AE448C7D5D75888C4D2D /* SDLFuelRange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelRange.h; path = SmartDeviceLink/SDLFuelRange.h; sourceTree = ""; }; - 6C058FD535A44116F3B9EC5AAC90DB06 /* SDLSubscribeWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeWayPoints.m; path = SmartDeviceLink/SDLSubscribeWayPoints.m; sourceTree = ""; }; - 6C720BC1768C931937E27B5512056F9D /* SDLSyncMsgVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSyncMsgVersion.h; path = SmartDeviceLink/SDLSyncMsgVersion.h; sourceTree = ""; }; - 6CB6D2B700919E44F651FE5643F0D5AF /* SDLGetFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetFileResponse.m; path = SmartDeviceLink/SDLGetFileResponse.m; sourceTree = ""; }; - 6CD719AC3C9050D19676E1840EB584D8 /* SDLWeatherData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherData.h; path = SmartDeviceLink/SDLWeatherData.h; sourceTree = ""; }; - 6DEDB66DF7B774B967B556AA20105522 /* NSMapTable+Subscripting.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMapTable+Subscripting.m"; path = "SmartDeviceLink/NSMapTable+Subscripting.m"; sourceTree = ""; }; - 6E238C3A14756784DF2389D96C274D46 /* SDLGetVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetVehicleData.m; path = SmartDeviceLink/SDLGetVehicleData.m; sourceTree = ""; }; - 6E27B8D2C7EF19BFB8D2813DE94C44F5 /* SDLScreenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLScreenManager.m; path = SmartDeviceLink/SDLScreenManager.m; sourceTree = ""; }; - 6E7DCE417C4EE2395C2B60D1AFE92B0B /* SDLDisplayCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayCapability.m; path = SmartDeviceLink/SDLDisplayCapability.m; sourceTree = ""; }; - 6ECC06D0A68E4B2D1C7C59006097D069 /* SDLVoiceCommandManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandManager.m; path = SmartDeviceLink/SDLVoiceCommandManager.m; sourceTree = ""; }; - 6F36F6895EC63F83831A850E7A3837B9 /* SDLControlFramePayloadVideoStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadVideoStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m; sourceTree = ""; }; - 6F85105DF89C5A00C24011ADD2F11E33 /* SDLGetSystemCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetSystemCapability.m; path = SmartDeviceLink/SDLGetSystemCapability.m; sourceTree = ""; }; - 6FF174A3130345B9E197CC1FC67E0BBE /* SmartDeviceLink.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartDeviceLink.debug.xcconfig; sourceTree = ""; }; - 70BE2640088F6CC3C663C6A47A6FF4EA /* SDLLogManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogManager.h; path = SmartDeviceLink/SDLLogManager.h; sourceTree = ""; }; - 70BFC55E36D45F3E9FDDDA27271DB651 /* SDLPermissionElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionElement.m; path = SmartDeviceLink/SDLPermissionElement.m; sourceTree = ""; }; - 70ED7008A3D1DC757EE6B277ACD920AE /* SDLRAWH264Packetizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRAWH264Packetizer.m; path = SmartDeviceLink/SDLRAWH264Packetizer.m; sourceTree = ""; }; - 710DFC67FB36B6C8C38EE056D84223ED /* SDLKeypressMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeypressMode.h; path = SmartDeviceLink/SDLKeypressMode.h; sourceTree = ""; }; - 7133F6AC9671200858B818B6C007DECF /* SDLDirection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDirection.h; path = SmartDeviceLink/SDLDirection.h; sourceTree = ""; }; - 717B86B7C8D401095BF86C8890BEFADE /* SDLTriggerSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTriggerSource.h; path = SmartDeviceLink/SDLTriggerSource.h; sourceTree = ""; }; - 717DFB9BE8DC679E6C4758105253E4D5 /* SDLControlFramePayloadTransportEventUpdate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadTransportEventUpdate.m; path = SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m; sourceTree = ""; }; - 719DCAF92882EA100E2C8795B42C2678 /* SDLEnum.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEnum.h; path = SmartDeviceLink/SDLEnum.h; sourceTree = ""; }; - 71BBFBB7A0760A4443CBB21CA252E8CB /* SDLCloseApplicationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCloseApplicationResponse.m; path = SmartDeviceLink/SDLCloseApplicationResponse.m; sourceTree = ""; }; - 71CFF60AB38BB1284642C3A2EAE0D940 /* SDLOnSystemRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSystemRequest.h; path = SmartDeviceLink/SDLOnSystemRequest.h; sourceTree = ""; }; - 720B6176093F9F84BF6916A0DC55B8C1 /* SDLNavigationAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationAction.h; path = SmartDeviceLink/SDLNavigationAction.h; sourceTree = ""; }; - 72270B3D9ECE1B81AC9E613184E61E23 /* SDLDIDResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDIDResult.h; path = SmartDeviceLink/SDLDIDResult.h; sourceTree = ""; }; - 72456DACFF4B143FA90DC10239139E18 /* SDLCompassDirection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCompassDirection.m; path = SmartDeviceLink/SDLCompassDirection.m; sourceTree = ""; }; - 7252AE8CFD85B98CF08E197488052DC1 /* SDLUpdateTurnListResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateTurnListResponse.h; path = SmartDeviceLink/SDLUpdateTurnListResponse.h; sourceTree = ""; }; - 72D0738CE8E4BEA34432415457A21559 /* SDLDialNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDialNumber.h; path = SmartDeviceLink/SDLDialNumber.h; sourceTree = ""; }; - 734B4EBB383604167B153F2C9772FB06 /* SDLAsynchronousRPCRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousRPCRequestOperation.h; path = SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h; sourceTree = ""; }; - 7356AD33DD279C8B715E26EA25CACD63 /* SDLControlFramePayloadVideoStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadVideoStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h; sourceTree = ""; }; - 736D1EB1BA3C095F2150065772354EC2 /* SDLLockScreenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenManager.h; path = SmartDeviceLink/SDLLockScreenManager.h; sourceTree = ""; }; - 738A838988DDC4A7320C42B53C6763F9 /* SDLSISData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSISData.m; path = SmartDeviceLink/SDLSISData.m; sourceTree = ""; }; - 739CEE74F80EDD2726D485B052803409 /* SDLKeypressMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLKeypressMode.m; path = SmartDeviceLink/SDLKeypressMode.m; sourceTree = ""; }; - 73B13638D5FFEDDA542EB00CD057988B /* SDLPutFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPutFileResponse.m; path = SmartDeviceLink/SDLPutFileResponse.m; sourceTree = ""; }; - 73CA9166AE10B30401A01C7A47B3029E /* SDLRPCResponseNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCResponseNotification.h; path = SmartDeviceLink/SDLRPCResponseNotification.h; sourceTree = ""; }; - 74686EC68A889701EFD2843CB7AED2F1 /* SDLResetGlobalProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLResetGlobalProperties.m; path = SmartDeviceLink/SDLResetGlobalProperties.m; sourceTree = ""; }; - 74933F6EA38779F0E6B6A5E647BFAF3A /* SDLSeatControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatControlData.m; path = SmartDeviceLink/SDLSeatControlData.m; sourceTree = ""; }; - 7497259EDCC6CAC9BEF6D2D1E503EF68 /* SDLStaticIconName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStaticIconName.m; path = SmartDeviceLink/SDLStaticIconName.m; sourceTree = ""; }; - 74B94C300012972D84ADFCB8F8E1CF22 /* SDLSystemContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemContext.h; path = SmartDeviceLink/SDLSystemContext.h; sourceTree = ""; }; - 74E065CD49B4A598CACA6C88D69006AC /* SDLAudioStreamManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamManagerDelegate.h; path = SmartDeviceLink/SDLAudioStreamManagerDelegate.h; sourceTree = ""; }; - 74E48158DDD5FF132D47C5C3AB49717F /* SDLAudioType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioType.m; path = SmartDeviceLink/SDLAudioType.m; sourceTree = ""; }; - 7513AD379CB357399CB9BF73BEF6E74C /* SDLProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessage.m; path = SmartDeviceLink/SDLProtocolMessage.m; sourceTree = ""; }; - 7529E322A5D70F236ACC18A43FC1DC0A /* SDLPresetBankCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresetBankCapabilities.m; path = SmartDeviceLink/SDLPresetBankCapabilities.m; sourceTree = ""; }; - 752C180C8E3193C1898AFD82D953B208 /* SDLAudioStreamingIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamingIndicator.h; path = SmartDeviceLink/SDLAudioStreamingIndicator.h; sourceTree = ""; }; - 75470F9E88B2A0F0EE2F691B6EE20841 /* SDLAudioControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioControlCapabilities.m; path = SmartDeviceLink/SDLAudioControlCapabilities.m; sourceTree = ""; }; - 755D72CFBEC566638C5F451190E126C8 /* SDLMediaClockFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaClockFormat.h; path = SmartDeviceLink/SDLMediaClockFormat.h; sourceTree = ""; }; - 755EC40C9CDFD1F64E17F5F7B58C3FFB /* SDLUnpublishAppServiceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnpublishAppServiceResponse.h; path = SmartDeviceLink/SDLUnpublishAppServiceResponse.h; sourceTree = ""; }; - 756CD9B80439215BBA2D29D4ED43E094 /* SDLAppServicesCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServicesCapabilities.m; path = SmartDeviceLink/SDLAppServicesCapabilities.m; sourceTree = ""; }; - 756E3677484D98F236D0DEFED0A75FCB /* SDLLockScreenPresenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenPresenter.m; path = SmartDeviceLink/SDLLockScreenPresenter.m; sourceTree = ""; }; - 75C363A47DCF966B0F26AC9DF8623EFE /* SDLUnregisterAppInterface.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnregisterAppInterface.m; path = SmartDeviceLink/SDLUnregisterAppInterface.m; sourceTree = ""; }; - 76060F5A6770E40F2895C5DEE9DBC9F7 /* SDLCharacterSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCharacterSet.h; path = SmartDeviceLink/SDLCharacterSet.h; sourceTree = ""; }; - 760CA141DE64208FD9CF023B7FBA7EF4 /* SDLVoiceCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommand.h; path = SmartDeviceLink/SDLVoiceCommand.h; sourceTree = ""; }; - 761CC69C3F5D1EFD734F628AEA4699D0 /* Pods-MobileWeather-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MobileWeather-frameworks.sh"; sourceTree = ""; }; - 76B79D31FD4EBE8EA253F726A2DFA50B /* SDLSoftButtonManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonManager.m; path = SmartDeviceLink/SDLSoftButtonManager.m; sourceTree = ""; }; - 7785AC3BC85CD23B07AA11423440A028 /* SDLPresentKeyboardOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresentKeyboardOperation.m; path = SmartDeviceLink/SDLPresentKeyboardOperation.m; sourceTree = ""; }; - 7788E7C2DFC41AF4C6F9D275C716316E /* SDLLogTargetAppleSystemLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetAppleSystemLog.h; path = SmartDeviceLink/SDLLogTargetAppleSystemLog.h; sourceTree = ""; }; - 77B17840CA60F5A16BED44DFBD406D00 /* SDLOnSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSyncPData.m; path = SmartDeviceLink/SDLOnSyncPData.m; sourceTree = ""; }; - 7828CB789D2D3420C6618DE0D17264C3 /* SDLParameterPermissions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLParameterPermissions.m; path = SmartDeviceLink/SDLParameterPermissions.m; sourceTree = ""; }; - 789539F0D0B01F9B19A6F15A31E9B06F /* SDLGetSystemCapabilityResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetSystemCapabilityResponse.m; path = SmartDeviceLink/SDLGetSystemCapabilityResponse.m; sourceTree = ""; }; - 78CCB2B40906D5C1D9AC673498D3D31D /* SDLUpdateTurnList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateTurnList.m; path = SmartDeviceLink/SDLUpdateTurnList.m; sourceTree = ""; }; - 78DB22A547F3877AFC6B9C4837827A62 /* SDLArtwork.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLArtwork.m; path = SmartDeviceLink/SDLArtwork.m; sourceTree = ""; }; - 78FE8C97F350096089415B007A7C9167 /* SDLGetCloudAppPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetCloudAppPropertiesResponse.m; path = SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m; sourceTree = ""; }; - 793212B2CF70C31043EA09E6CBA12BD0 /* SDLMenuManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuManager.h; path = SmartDeviceLink/SDLMenuManager.h; sourceTree = ""; }; - 794968D771482D3B2B695A119EEFC610 /* SDLFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFile.h; path = SmartDeviceLink/SDLFile.h; sourceTree = ""; }; - 795E1BED3027BAEDD697E8A22A036324 /* SDLHexUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHexUtility.m; path = SmartDeviceLink/SDLHexUtility.m; sourceTree = ""; }; - 797A684E702982C756DB5875D2568A32 /* SDLRPCNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCNotification.h; path = SmartDeviceLink/SDLRPCNotification.h; sourceTree = ""; }; - 798BC3FB68D60AF937EFE55D6BBCE3FF /* SDLIAPDataSessionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPDataSessionDelegate.h; path = SmartDeviceLink/SDLIAPDataSessionDelegate.h; sourceTree = ""; }; - 79ABFF6CAF3C11C17386F29E3C4F6561 /* SDLPresetBankCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresetBankCapabilities.h; path = SmartDeviceLink/SDLPresetBankCapabilities.h; sourceTree = ""; }; - 79B7A63E7628613EAA9F22EB4C339E89 /* SDLOnButtonPress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnButtonPress.m; path = SmartDeviceLink/SDLOnButtonPress.m; sourceTree = ""; }; - 7A117B857E94BF65B1F05AF4CDAB3A39 /* SDLCreateInteractionChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateInteractionChoiceSet.h; path = SmartDeviceLink/SDLCreateInteractionChoiceSet.h; sourceTree = ""; }; - 7A8F68EFE966B4AE635B3514B21823DD /* SDLDialNumberResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDialNumberResponse.m; path = SmartDeviceLink/SDLDialNumberResponse.m; sourceTree = ""; }; - 7AFD67A512B7797A6F916B27F9816BC6 /* SDLButtonPressResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPressResponse.h; path = SmartDeviceLink/SDLButtonPressResponse.h; sourceTree = ""; }; - 7B1F6B431A4C7D300274DCDBE2BC7043 /* BiSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BiSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B7301DAF575A72B748A49FDB3EB87C7 /* SDLMassageMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageMode.m; path = SmartDeviceLink/SDLMassageMode.m; sourceTree = ""; }; - 7B8342EC5F8546285C0DB1E40C10C12E /* SDLVrCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVrCapabilities.h; path = SmartDeviceLink/SDLVrCapabilities.h; sourceTree = ""; }; - 7BB6D4E91D8A0F98864787DB620D6AE0 /* SDLFileManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManagerConstants.h; path = SmartDeviceLink/SDLFileManagerConstants.h; sourceTree = ""; }; - 7C314283909AA88717A78A8BAF8E331D /* SDLDynamicMenuUpdateAlgorithm.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDynamicMenuUpdateAlgorithm.m; path = SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.m; sourceTree = ""; }; - 7C79ED7FCDBADAE3DAF6AD095392D371 /* ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist"; sourceTree = ""; }; - 7C839817F778FF0EB9B342A6F817167C /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = de.lproj/SDLLockScreen.strings; sourceTree = ""; }; - 7C90C1D028D438622CABA6C39AD5A9BA /* SDLDeleteInteractionChoiceSetResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteInteractionChoiceSetResponse.h; path = SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h; sourceTree = ""; }; - 7CDFA658ED93C052C47B55E697EA5794 /* SDLRPCNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCNotification.m; path = SmartDeviceLink/SDLRPCNotification.m; sourceTree = ""; }; - 7CEAFEC8445F27E380E37DA46CE0FEE6 /* SDLSubscribeButtonResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonResponse.h; path = SmartDeviceLink/SDLSubscribeButtonResponse.h; sourceTree = ""; }; - 7D357CCADC7705B89FD66DEEE0E6DE86 /* SDLGetCloudAppPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetCloudAppPropertiesResponse.h; path = SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h; sourceTree = ""; }; - 7D3DC9F22E4F546F8A133454410C7091 /* SDLTemperatureUnit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemperatureUnit.m; path = SmartDeviceLink/SDLTemperatureUnit.m; sourceTree = ""; }; - 7D4D2EA95117DB980E905FBBAFCE239E /* SDLOnTBTClientState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnTBTClientState.h; path = SmartDeviceLink/SDLOnTBTClientState.h; sourceTree = ""; }; - 7D8C0BA72794AC638DB9DF5A48C945D0 /* SDLWeatherServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherServiceData.h; path = SmartDeviceLink/SDLWeatherServiceData.h; sourceTree = ""; }; - 7DE90E5D2B3882F8873FABF50DA4CCA6 /* SDLMassageMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageMode.h; path = SmartDeviceLink/SDLMassageMode.h; sourceTree = ""; }; - 7E271C1F0006C8746C76DB4C28A25B6C /* SDLOnLockScreenStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnLockScreenStatus.h; path = SmartDeviceLink/SDLOnLockScreenStatus.h; sourceTree = ""; }; - 7E29BFBE9F6D962531E8241C660B4AB4 /* SDLAsynchronousRPCRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousRPCRequestOperation.m; path = SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m; sourceTree = ""; }; - 7E7FB3AF5EB94225C574B017EDB897BA /* SDLPermissionItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionItem.h; path = SmartDeviceLink/SDLPermissionItem.h; sourceTree = ""; }; - 7E8EAF599769D42519D9B2A60644B86B /* SDLServiceEncryptionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLServiceEncryptionDelegate.h; path = SmartDeviceLink/SDLServiceEncryptionDelegate.h; sourceTree = ""; }; - 7EBE26A5E99C203ABB63EB5567F7464E /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadRegisterSecondaryTransportNak.m; path = SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m; sourceTree = ""; }; - 7EC3AF92A0155AA2A2E679263C15CA4B /* SDLOnButtonPress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnButtonPress.h; path = SmartDeviceLink/SDLOnButtonPress.h; sourceTree = ""; }; - 7EF11EC23640091B05621565D114E9F4 /* SDLTouchEventCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchEventCapabilities.m; path = SmartDeviceLink/SDLTouchEventCapabilities.m; sourceTree = ""; }; - 7EFFAA583749B44A2BF65582EA151370 /* SDLStreamingMediaConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaConfiguration.h; path = SmartDeviceLink/SDLStreamingMediaConfiguration.h; sourceTree = ""; }; - 7F676E8F3D670FF0D4C133C69B09A3DC /* SDLHybridAppPreference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHybridAppPreference.m; path = SmartDeviceLink/SDLHybridAppPreference.m; sourceTree = ""; }; - 7F67F561A7D9BA5C6B5EFD140526D3F7 /* SDLSpeak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeak.h; path = SmartDeviceLink/SDLSpeak.h; sourceTree = ""; }; - 7FB0ECE1385A23AFF87B1D6E9848D84E /* SDLStationIDNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStationIDNumber.h; path = SmartDeviceLink/SDLStationIDNumber.h; sourceTree = ""; }; - 8027DAC33017EFA7299687C48733622B /* SDLNavigationInstruction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationInstruction.h; path = SmartDeviceLink/SDLNavigationInstruction.h; sourceTree = ""; }; - 802EC4A98FA4600B644BF8C09D41BA44 /* SDLTemplateColorScheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemplateColorScheme.m; path = SmartDeviceLink/SDLTemplateColorScheme.m; sourceTree = ""; }; - 803C2E9668B7B07DB2FF5F2B5A39CDC7 /* SDLWeatherServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherServiceData.m; path = SmartDeviceLink/SDLWeatherServiceData.m; sourceTree = ""; }; - 8078F5D8FD2E5AA8F5B8AD58492E41F8 /* SDLV1ProtocolMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV1ProtocolMessage.m; path = SmartDeviceLink/SDLV1ProtocolMessage.m; sourceTree = ""; }; - 80E39D52CFCFBFC32F5CB5C74DE3AAA0 /* SDLReleaseInteriorVehicleDataModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReleaseInteriorVehicleDataModule.h; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h; sourceTree = ""; }; - 810E44A8EB4510C42EDE2EDC43A78459 /* SDLVentilationMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVentilationMode.m; path = SmartDeviceLink/SDLVentilationMode.m; sourceTree = ""; }; - 812DC2376AB84B8D759BA7BDEBA1D186 /* SDLOnHashChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnHashChange.h; path = SmartDeviceLink/SDLOnHashChange.h; sourceTree = ""; }; - 813A808D60B18F9235194773796098F2 /* SDLTransportDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTransportDelegate.h; path = SmartDeviceLink/SDLTransportDelegate.h; sourceTree = ""; }; - 81DC4C775620B12380A4F90F2DAEB081 /* SDLSecondaryTransportManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSecondaryTransportManager.h; path = SmartDeviceLink/SDLSecondaryTransportManager.h; sourceTree = ""; }; - 8223FE4A0640C2107CC1B1C83483D0F4 /* SDLChoiceCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceCell.h; path = SmartDeviceLink/SDLChoiceCell.h; sourceTree = ""; }; - 82421BB2792D77283F0C50BBB7B95D13 /* SDLMenuParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuParams.h; path = SmartDeviceLink/SDLMenuParams.h; sourceTree = ""; }; - 824E5F03CBD68420A86B160BD96E6742 /* SDLLogConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogConfiguration.h; path = SmartDeviceLink/SDLLogConfiguration.h; sourceTree = ""; }; - 84539D3623D9A251B4E5FA6AE4EFB0EE /* SDLOnLockScreenStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnLockScreenStatus.m; path = SmartDeviceLink/SDLOnLockScreenStatus.m; sourceTree = ""; }; - 84E5BF87FD6C342013333DB77ACA1E7C /* SDLSoftButtonTransitionOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonTransitionOperation.m; path = SmartDeviceLink/SDLSoftButtonTransitionOperation.m; sourceTree = ""; }; - 8558881F294FC3B3B55C638CC2708B36 /* SDLTouchManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchManager.h; path = SmartDeviceLink/SDLTouchManager.h; sourceTree = ""; }; - 85AE177498B404861704BE8D54AA5040 /* SDLHapticRect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHapticRect.h; path = SmartDeviceLink/SDLHapticRect.h; sourceTree = ""; }; - 85C831243400E8D6A9F22B565CD3EE18 /* SDLFileType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileType.h; path = SmartDeviceLink/SDLFileType.h; sourceTree = ""; }; - 85FF8FC6AE8E88BF0CA87D995EEEE5E7 /* SDLUpdateTurnList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUpdateTurnList.h; path = SmartDeviceLink/SDLUpdateTurnList.h; sourceTree = ""; }; - 86257F6370BE9E41B823982B8B658DCD /* SDLLanguage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLanguage.h; path = SmartDeviceLink/SDLLanguage.h; sourceTree = ""; }; - 86689BFD78F7052E93F28B5BBE6A09E6 /* SDLShowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowResponse.h; path = SmartDeviceLink/SDLShowResponse.h; sourceTree = ""; }; - 867279F7956ED364FE2FF921B6C6E196 /* SDLCreateWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateWindow.h; path = SmartDeviceLink/SDLCreateWindow.h; sourceTree = ""; }; - 868E6709A9E8A540B5221E40E674E358 /* SmartDeviceLink-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartDeviceLink-prefix.pch"; sourceTree = ""; }; - 86B8AD55F292718C4A52B693B3EA5F2D /* SDLImageResolution.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageResolution.h; path = SmartDeviceLink/SDLImageResolution.h; sourceTree = ""; }; - 87267A348F7A4B4D11EE9347E8677479 /* SmartDeviceLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SmartDeviceLink.h; path = SmartDeviceLink/SmartDeviceLink.h; sourceTree = ""; }; - 873AD46682BA883CE3701B9759A685AF /* SDLGetDTCsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetDTCsResponse.h; path = SmartDeviceLink/SDLGetDTCsResponse.h; sourceTree = ""; }; - 879A113E59D1AE7DFEBF6165CDA5A8D2 /* NSMutableDictionary+Store.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+Store.h"; path = "SmartDeviceLink/NSMutableDictionary+Store.h"; sourceTree = ""; }; - 87B650D370D62BF0EC67E9AD42F6E22B /* SDLMediaType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaType.m; path = SmartDeviceLink/SDLMediaType.m; sourceTree = ""; }; - 87E0AF0EFF86DC936E595031B5F1260E /* SDLNavigationCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationCapability.m; path = SmartDeviceLink/SDLNavigationCapability.m; sourceTree = ""; }; - 87FBD700D9DBA4D763D490E8394ECAAF /* SDLFileManagerConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManagerConfiguration.h; path = SmartDeviceLink/SDLFileManagerConfiguration.h; sourceTree = ""; }; - 8853DFABCBBEFF6CC328439BFF8817C3 /* SDLShowAppMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowAppMenu.h; path = SmartDeviceLink/SDLShowAppMenu.h; sourceTree = ""; }; - 885A0F6D020A6CA40C779378E47D90C5 /* SDLPerformInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformInteractionResponse.h; path = SmartDeviceLink/SDLPerformInteractionResponse.h; sourceTree = ""; }; - 888125F9D139D66C74276506032B1A88 /* SDLInteractionMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLInteractionMode.h; path = SmartDeviceLink/SDLInteractionMode.h; sourceTree = ""; }; - 88C48BC3D16BDEC962C895DAC4CD023C /* SDLLightControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightControlCapabilities.m; path = SmartDeviceLink/SDLLightControlCapabilities.m; sourceTree = ""; }; - 894048EEB0466180965743DBF850170F /* SDLRadioControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRadioControlData.h; path = SmartDeviceLink/SDLRadioControlData.h; sourceTree = ""; }; - 894257BCE702D293AB8A34D2CFB19171 /* SDLSetGlobalProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetGlobalProperties.h; path = SmartDeviceLink/SDLSetGlobalProperties.h; sourceTree = ""; }; - 8968D59CE9F5ACC5102A6047D3E64151 /* SDLDeleteFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFile.h; path = SmartDeviceLink/SDLDeleteFile.h; sourceTree = ""; }; - 89FF276588037654834B38572ADBF860 /* SDLSetCloudAppPropertiesResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetCloudAppPropertiesResponse.m; path = SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m; sourceTree = ""; }; - 8A5780D6C351FCA2B9EBE2AD7E6BBFC5 /* SDLPermissionConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionConstants.h; path = SmartDeviceLink/SDLPermissionConstants.h; sourceTree = ""; }; - 8A60138A12628B558D512D97D89EE5B2 /* SDLSyncMsgVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncMsgVersion.m; path = SmartDeviceLink/SDLSyncMsgVersion.m; sourceTree = ""; }; - 8AB71279385780F65642903C30E49879 /* SDLReadDIDResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReadDIDResponse.h; path = SmartDeviceLink/SDLReadDIDResponse.h; sourceTree = ""; }; - 8AD71C120072B2C90332685ABC447D8B /* SDLDeleteCommandResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteCommandResponse.m; path = SmartDeviceLink/SDLDeleteCommandResponse.m; sourceTree = ""; }; - 8AFC9728863E515D3D032829F1D3C57F /* SDLAudioStreamManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamManager.h; path = SmartDeviceLink/SDLAudioStreamManager.h; sourceTree = ""; }; - 8B2BB6B7C29FB74F9FC111836E3FDC00 /* SDLSupportedSeat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSupportedSeat.m; path = SmartDeviceLink/SDLSupportedSeat.m; sourceTree = ""; }; - 8B325B54245A4E4E8C66F6A001CF9340 /* SDLLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleManager.h; path = SmartDeviceLink/SDLLifecycleManager.h; sourceTree = ""; }; - 8B3F91D4B24F4C2C59889390112438B1 /* SDLSystemCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapability.h; path = SmartDeviceLink/SDLSystemCapability.h; sourceTree = ""; }; - 8B49CB8BCE22DD2B4CF1B57ACC983DCC /* SDLComponentVolumeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLComponentVolumeStatus.m; path = SmartDeviceLink/SDLComponentVolumeStatus.m; sourceTree = ""; }; - 8B5DB4842C8200AA008032CB8399D93B /* SDLWindowCapability+ScreenManagerExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDLWindowCapability+ScreenManagerExtensions.h"; path = "SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.h"; sourceTree = ""; }; - 8B5DF3D138D81A3A587A931F4D1E6E9C /* SDLOnAppInterfaceUnregistered.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnAppInterfaceUnregistered.h; path = SmartDeviceLink/SDLOnAppInterfaceUnregistered.h; sourceTree = ""; }; - 8C2B7CEA902C141170ED3DB6E93DDE34 /* SDLPinchGesture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPinchGesture.h; path = SmartDeviceLink/SDLPinchGesture.h; sourceTree = ""; }; - 8C2EDACE6ACD4C977F1501873B8C715C /* SDLPRNDL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPRNDL.h; path = SmartDeviceLink/SDLPRNDL.h; sourceTree = ""; }; - 8C4526E09C6759AD25F54590F9002AE8 /* SDLSetAppIconResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetAppIconResponse.h; path = SmartDeviceLink/SDLSetAppIconResponse.h; sourceTree = ""; }; - 8C7A37EAF43721950F29116483BA4DA7 /* SDLEncodedSyncPDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncodedSyncPDataResponse.m; path = SmartDeviceLink/SDLEncodedSyncPDataResponse.m; sourceTree = ""; }; - 8C95A15F1ABB56F87595C248AF00C07F /* SDLProtocolReceivedMessageRouter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolReceivedMessageRouter.m; path = SmartDeviceLink/SDLProtocolReceivedMessageRouter.m; sourceTree = ""; }; - 8CEB2D97B78F3D03054621D61974E2CB /* SDLECallInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLECallInfo.m; path = SmartDeviceLink/SDLECallInfo.m; sourceTree = ""; }; - 8D4105D8C883FAEA6442789492798AA6 /* SDLAlertResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertResponse.h; path = SmartDeviceLink/SDLAlertResponse.h; sourceTree = ""; }; - 8DAD96E48B6521B50D315831C92D08A4 /* SDLCancelInteractionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCancelInteractionResponse.h; path = SmartDeviceLink/SDLCancelInteractionResponse.h; sourceTree = ""; }; - 8DCE4D9A1ECFC1B74D7B4C95CBDC5A0A /* SDLSupportedSeat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSupportedSeat.h; path = SmartDeviceLink/SDLSupportedSeat.h; sourceTree = ""; }; - 8DD86F842662CDA74C3E46854A424F2C /* SDLSequentialRPCRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSequentialRPCRequestOperation.h; path = SmartDeviceLink/SDLSequentialRPCRequestOperation.h; sourceTree = ""; }; - 8E39C12C56DA2895956477F555CACEAC /* SDLSoftButtonCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonCapabilities.m; path = SmartDeviceLink/SDLSoftButtonCapabilities.m; sourceTree = ""; }; - 8E42A8B49F8AA2A40213699E2A1C40BF /* SDLSystemCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapability.m; path = SmartDeviceLink/SDLSystemCapability.m; sourceTree = ""; }; - 8E6C4ADE7103309719A9A2A77D95DFA0 /* SDLVehicleType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleType.m; path = SmartDeviceLink/SDLVehicleType.m; sourceTree = ""; }; - 8EC6E2E0ADD9BFC51D3ECF0FBFD7E9D0 /* SDLDeleteFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileResponse.m; path = SmartDeviceLink/SDLDeleteFileResponse.m; sourceTree = ""; }; - 8EF82F8948A2C13108DB3E6BC79A6DA9 /* SDLSendHapticDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSendHapticDataResponse.h; path = SmartDeviceLink/SDLSendHapticDataResponse.h; sourceTree = ""; }; - 8F43B62FD5522EFA8F5EDEBE12238EC7 /* SDLStartTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStartTime.m; path = SmartDeviceLink/SDLStartTime.m; sourceTree = ""; }; - 8F73D712297E40F90B7E1A7D01DFEC67 /* SDLOnKeyboardInput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnKeyboardInput.h; path = SmartDeviceLink/SDLOnKeyboardInput.h; sourceTree = ""; }; - 8FE0F5BE889755CBF2EACC79F9B92C01 /* SDLCancelInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCancelInteraction.m; path = SmartDeviceLink/SDLCancelInteraction.m; sourceTree = ""; }; - 8FE3643BA5E989C40224C3A030671F99 /* SDLDateTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDateTime.h; path = SmartDeviceLink/SDLDateTime.h; sourceTree = ""; }; - 8FFF9A629644A4A7222767D6C63D7E24 /* NSMutableDictionary+SafeRemove.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+SafeRemove.m"; path = "SmartDeviceLink/NSMutableDictionary+SafeRemove.m"; sourceTree = ""; }; - 90229AC6E8F0ECD254DB821584B0F830 /* SDLEncryptionLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncryptionLifecycleManager.h; path = SmartDeviceLink/SDLEncryptionLifecycleManager.h; sourceTree = ""; }; - 90BA4BFF5CAD58299D1A0CBC8CFA45FD /* SDLSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSyncPData.m; path = SmartDeviceLink/SDLSyncPData.m; sourceTree = ""; }; - 91022FC9BD41CC0B9D0193EA80339523 /* SDLControlFramePayloadConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadConstants.m; path = SmartDeviceLink/SDLControlFramePayloadConstants.m; sourceTree = ""; }; - 9125F90EF6EEDE90B5699DE26ABE1AC6 /* NSMutableDictionary+Store.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+Store.m"; path = "SmartDeviceLink/NSMutableDictionary+Store.m"; sourceTree = ""; }; - 91385E176713F556761B0AF1EB7AA94C /* SDLSoftButtonState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonState.m; path = SmartDeviceLink/SDLSoftButtonState.m; sourceTree = ""; }; - 91F7EE2A199046AFC07A4EE31FA290E0 /* SDLMenuConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuConfiguration.h; path = SmartDeviceLink/SDLMenuConfiguration.h; sourceTree = ""; }; - 9218B97772D190A9BC1FBAC18A3BF6CE /* SDLRGBColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRGBColor.m; path = SmartDeviceLink/SDLRGBColor.m; sourceTree = ""; }; - 9227FC37C76C208644F400388ECD5C95 /* SDLDisplayCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayCapabilities.h; path = SmartDeviceLink/SDLDisplayCapabilities.h; sourceTree = ""; }; - 922F65EF53B7070CDB774AA85CCDF664 /* SDLRDSData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRDSData.m; path = SmartDeviceLink/SDLRDSData.m; sourceTree = ""; }; - 925B5C5D259A10BE034E8C3403363C5E /* SDLTextFieldName.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextFieldName.m; path = SmartDeviceLink/SDLTextFieldName.m; sourceTree = ""; }; - 931FA41FFCE73EAD4491E531A2BF3CE5 /* SDLTimerMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTimerMode.h; path = SmartDeviceLink/SDLTimerMode.h; sourceTree = ""; }; - 93636199EFDA841EF4C2CC4859CE2B6F /* NSBundle+SDLBundle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+SDLBundle.h"; path = "SmartDeviceLink/NSBundle+SDLBundle.h"; sourceTree = ""; }; - 936CD2C8FA37089FF8BEBF38BBA57083 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = en.lproj/SDLLockScreen.strings; sourceTree = ""; }; - 9385A8C466EFC5D2EECF88F1BB4D7E51 /* SDLNavigationAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationAction.m; path = SmartDeviceLink/SDLNavigationAction.m; sourceTree = ""; }; - 9396AC892DC0B21725B21B23AFA995D3 /* SDLGetInteriorVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleData.m; path = SmartDeviceLink/SDLGetInteriorVehicleData.m; sourceTree = ""; }; - 93B08DECC2D7CA909B9CDA3141DB7B0E /* SDLUnpublishAppService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnpublishAppService.h; path = SmartDeviceLink/SDLUnpublishAppService.h; sourceTree = ""; }; - 93C7430585EB46BE55AE0CB860148481 /* SDLImageType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageType.h; path = SmartDeviceLink/SDLImageType.h; sourceTree = ""; }; - 9401FE979F2F8AEAF58BE90F5FB0B075 /* SDLLocationCoordinate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLocationCoordinate.h; path = SmartDeviceLink/SDLLocationCoordinate.h; sourceTree = ""; }; - 94170D786D38E92B4C692CF92C3ABD30 /* SDLEnum.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEnum.m; path = SmartDeviceLink/SDLEnum.m; sourceTree = ""; }; - 941C68CF789F85A7C11457585FAACEC6 /* SDLDiagnosticMessageResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDiagnosticMessageResponse.m; path = SmartDeviceLink/SDLDiagnosticMessageResponse.m; sourceTree = ""; }; - 942B330B46ACF300BF3CBDAECE4EC0C9 /* SDLAudioFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioFile.m; path = SmartDeviceLink/SDLAudioFile.m; sourceTree = ""; }; - 943DDBBF480DC8B8E38C092C2740CCBE /* SDLChoice.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoice.h; path = SmartDeviceLink/SDLChoice.h; sourceTree = ""; }; - 9470359FA084F4E00E48F9FCE83F58E1 /* NSMutableArray+Safe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+Safe.h"; path = "SmartDeviceLink/NSMutableArray+Safe.h"; sourceTree = ""; }; - 94D396845FE301C9BD090468079F6BB7 /* SDLHMISettingsControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMISettingsControlCapabilities.m; path = SmartDeviceLink/SDLHMISettingsControlCapabilities.m; sourceTree = ""; }; - 953643AF1E768FAB16D37AF6E1107ACC /* SDLSubscribeButtonManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonManager.m; path = SmartDeviceLink/SDLSubscribeButtonManager.m; sourceTree = ""; }; - 95569FF6FBE18E8D60E93393B780FC1A /* SDLClimateControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClimateControlData.h; path = SmartDeviceLink/SDLClimateControlData.h; sourceTree = ""; }; - 956C902E2F413D6BBFF38305B200A08F /* SDLChoiceSetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSetManager.h; path = SmartDeviceLink/SDLChoiceSetManager.h; sourceTree = ""; }; - 95B6BE3E72235AC592C06AF8A4F665F9 /* SDLWeatherServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherServiceManifest.m; path = SmartDeviceLink/SDLWeatherServiceManifest.m; sourceTree = ""; }; - 95FEDB3A040A9AF27C4F297BB1D4B137 /* SDLUnregisterAppInterfaceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnregisterAppInterfaceResponse.h; path = SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h; sourceTree = ""; }; - 9685342C1846C658E601FB8B352C69B5 /* SDLStreamingMediaManagerConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaManagerConstants.m; path = SmartDeviceLink/SDLStreamingMediaManagerConstants.m; sourceTree = ""; }; - 9699CEFAE8CC63EAF12D47952326F8E7 /* SDLIAPControlSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPControlSession.h; path = SmartDeviceLink/SDLIAPControlSession.h; sourceTree = ""; }; - 96ABA69015D9F51A879DB818FAE3605B /* SDLClimateControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClimateControlCapabilities.h; path = SmartDeviceLink/SDLClimateControlCapabilities.h; sourceTree = ""; }; - 96BEB464EEABED67F857FCAA31784297 /* SDLGenericResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGenericResponse.h; path = SmartDeviceLink/SDLGenericResponse.h; sourceTree = ""; }; - 96D8D2CAC3C9D900AC00A8B3CC5C579F /* SDLChangeRegistrationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChangeRegistrationResponse.h; path = SmartDeviceLink/SDLChangeRegistrationResponse.h; sourceTree = ""; }; - 96F0D36E1F88AD285C4F2EDEFC6311FA /* SDLMaintenanceModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMaintenanceModeStatus.m; path = SmartDeviceLink/SDLMaintenanceModeStatus.m; sourceTree = ""; }; - 9712AC0C44D0ADF928AA7E06E0017867 /* SDLLogModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogModel.m; path = SmartDeviceLink/SDLLogModel.m; sourceTree = ""; }; - 9718170DC522C4211FF7BFB86F042E6E /* SDLSpeakResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeakResponse.m; path = SmartDeviceLink/SDLSpeakResponse.m; sourceTree = ""; }; - 971F3693D99D4DF5AB6B162D6026730A /* SDLWiperStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWiperStatus.m; path = SmartDeviceLink/SDLWiperStatus.m; sourceTree = ""; }; - 972B7E177642FF7F73935ABD0DF3B924 /* SDLV2ProtocolHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV2ProtocolHeader.h; path = SmartDeviceLink/SDLV2ProtocolHeader.h; sourceTree = ""; }; - 9760ECDFB3D886D97C84848DB99676AB /* SDLRPCFunctionNames.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCFunctionNames.m; path = SmartDeviceLink/SDLRPCFunctionNames.m; sourceTree = ""; }; - 9793856BCD714E4673B7C4D1120726F5 /* SDLSpeak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSpeak.m; path = SmartDeviceLink/SDLSpeak.m; sourceTree = ""; }; - 97AD120A3AD881B75046604C99B99B22 /* SDLGPSData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGPSData.m; path = SmartDeviceLink/SDLGPSData.m; sourceTree = ""; }; - 97C932CDEE9602EF8E18CDD087C0022D /* SDLAsynchronousRPCOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousRPCOperation.m; path = SmartDeviceLink/SDLAsynchronousRPCOperation.m; sourceTree = ""; }; - 98E0B47ADD51DA93F0FC18C094035A10 /* SDLSoftButtonType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonType.h; path = SmartDeviceLink/SDLSoftButtonType.h; sourceTree = ""; }; - 99260C97979258B09198B8E093019FAD /* SDLMediaType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaType.h; path = SmartDeviceLink/SDLMediaType.h; sourceTree = ""; }; - 995A7E70BDA2C8AED3E00F4433D46835 /* SDLInteractionMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLInteractionMode.m; path = SmartDeviceLink/SDLInteractionMode.m; sourceTree = ""; }; - 99D249C8F6BCB49BC6DED24ABEACC7BB /* SDLLogMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogMacros.h; path = SmartDeviceLink/SDLLogMacros.h; sourceTree = ""; }; - 9A8CEE67C635CC8AF33D4597EDEF323E /* SDLPCMAudioConverter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPCMAudioConverter.h; path = SmartDeviceLink/SDLPCMAudioConverter.h; sourceTree = ""; }; - 9AB0ECB1844711AAB00BE85D75CDB9B8 /* SDLUnsubscribeVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeVehicleData.h; path = SmartDeviceLink/SDLUnsubscribeVehicleData.h; sourceTree = ""; }; - 9AE76BA22D74D21AAF31A4BC6C4C57F1 /* SDLLockScreenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenManager.m; path = SmartDeviceLink/SDLLockScreenManager.m; sourceTree = ""; }; - 9AEEE89A8645A94795F0CCCBD4A67D43 /* SDLSeatControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatControlCapabilities.h; path = SmartDeviceLink/SDLSeatControlCapabilities.h; sourceTree = ""; }; - 9B3CAB29D2B4B5E6B23F89F7C09B52EF /* SDLTPMS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTPMS.m; path = SmartDeviceLink/SDLTPMS.m; sourceTree = ""; }; - 9B5139FCDAC1C84B8E10AB5D0D7E1E0E /* SDLSubscribeButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButton.h; path = SmartDeviceLink/SDLSubscribeButton.h; sourceTree = ""; }; - 9B5A4E5EEBEDE007C98C3E1449D1236B /* SDLAddSubMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddSubMenu.m; path = SmartDeviceLink/SDLAddSubMenu.m; sourceTree = ""; }; - 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 9B7C65426660FAD7B711561101E64251 /* SDLLockScreenPresenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenPresenter.h; path = SmartDeviceLink/SDLLockScreenPresenter.h; sourceTree = ""; }; - 9B8D629931815D5CAF7718BE57D7E744 /* SDLSetAppIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetAppIcon.m; path = SmartDeviceLink/SDLSetAppIcon.m; sourceTree = ""; }; - 9B8DB8AD97F13CD6B4CD990703A087B9 /* SDLDeleteFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFile.m; path = SmartDeviceLink/SDLDeleteFile.m; sourceTree = ""; }; - 9BA0AF625F5738A2DFEC698A0E10DE96 /* SDLDeleteSubMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteSubMenuResponse.h; path = SmartDeviceLink/SDLDeleteSubMenuResponse.h; sourceTree = ""; }; - 9BAF278CD2A85FB40BB8CC980CAF9CE0 /* SDLChoice.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoice.m; path = SmartDeviceLink/SDLChoice.m; sourceTree = ""; }; - 9BC8BBD75E4ABF360800CAA3D4E00485 /* SDLConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLConfiguration.h; path = SmartDeviceLink/SDLConfiguration.h; sourceTree = ""; }; - 9BE0BD4D689088D8A8B5DBD772D84AD5 /* SDLSetAppIconResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetAppIconResponse.m; path = SmartDeviceLink/SDLSetAppIconResponse.m; sourceTree = ""; }; - 9BE641F519C441DF7E48B7D3B6919934 /* SDLDialNumberResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDialNumberResponse.h; path = SmartDeviceLink/SDLDialNumberResponse.h; sourceTree = ""; }; - 9C6C83F225EFD1EB3CF30CCBEC52C689 /* SDLGetInteriorVehicleDataConsent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataConsent.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h; sourceTree = ""; }; - 9CD4E213C5B2DB7E81A09C7CA35B69EC /* SDLLogFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFilter.h; path = SmartDeviceLink/SDLLogFilter.h; sourceTree = ""; }; - 9CF3282DF31D7BD5C48812D01950DBA5 /* SDLHMICapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMICapabilities.h; path = SmartDeviceLink/SDLHMICapabilities.h; sourceTree = ""; }; - 9D385296CCF12F9A0B41C02B3DE307DF /* SDLTextField+ScreenManagerExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDLTextField+ScreenManagerExtensions.m"; path = "SmartDeviceLink/SDLTextField+ScreenManagerExtensions.m"; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9DAA75FD4629A2D623ECDA3EE735764B /* SDLFuelCutoffStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelCutoffStatus.h; path = SmartDeviceLink/SDLFuelCutoffStatus.h; sourceTree = ""; }; - 9DCA91383086A7E683C2F22BCF6D2362 /* SDLSoftButtonObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonObject.h; path = SmartDeviceLink/SDLSoftButtonObject.h; sourceTree = ""; }; - 9E19B35BFCAF24D72CE74D4A958941BB /* SDLOasisAddress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOasisAddress.m; path = SmartDeviceLink/SDLOasisAddress.m; sourceTree = ""; }; - 9E2182C9F77CC4097FBDD673E8C2836A /* SDLIAPControlSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPControlSession.m; path = SmartDeviceLink/SDLIAPControlSession.m; sourceTree = ""; }; - 9E5DFA275C99DF550A09B4DC823C5CB4 /* SDLServiceUpdateReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLServiceUpdateReason.h; path = SmartDeviceLink/SDLServiceUpdateReason.h; sourceTree = ""; }; - 9EAA73147795978ABCFD9E0261FFCAA6 /* SDLProtocolConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolConstants.m; path = SmartDeviceLink/SDLProtocolConstants.m; sourceTree = ""; }; - 9ED15A0AC24E44401A1D40DED75708E9 /* SDLDeleteCommandResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteCommandResponse.h; path = SmartDeviceLink/SDLDeleteCommandResponse.h; sourceTree = ""; }; - 9EFC8BC7FEE4107EC3E3E44D15D11048 /* EAAccessoryManager+SDLProtocols.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EAAccessoryManager+SDLProtocols.h"; path = "SmartDeviceLink/EAAccessoryManager+SDLProtocols.h"; sourceTree = ""; }; - 9F20535D9DEA52BADB1B4063B4EAA92E /* SDLVehicleDataEventStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataEventStatus.m; path = SmartDeviceLink/SDLVehicleDataEventStatus.m; sourceTree = ""; }; - 9F909C05943A039E0097211A7DF01A9B /* SDLAppServiceType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServiceType.h; path = SmartDeviceLink/SDLAppServiceType.h; sourceTree = ""; }; - 9FF74FFAAB89A4E89CD8576C7CCF13EB /* SDLLogManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogManager.m; path = SmartDeviceLink/SDLLogManager.m; sourceTree = ""; }; - A09A123F4100A6E0985F62A0D2C03B11 /* SDLControlFramePayloadConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadConstants.h; path = SmartDeviceLink/SDLControlFramePayloadConstants.h; sourceTree = ""; }; - A0A6C0D7A199BCCE8F0FF9593EC73681 /* SDLAlert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlert.h; path = SmartDeviceLink/SDLAlert.h; sourceTree = ""; }; - A0F610055C67181D6FFE3E0D8652FBC7 /* SDLStreamingMediaConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaConfiguration.m; path = SmartDeviceLink/SDLStreamingMediaConfiguration.m; sourceTree = ""; }; - A10396D9F0A4682A819D005885FDA4D6 /* SDLSubscribeVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeVehicleDataResponse.h; path = SmartDeviceLink/SDLSubscribeVehicleDataResponse.h; sourceTree = ""; }; - A1F84D97CDAFDB9F9F700BCF60FCA9B9 /* SDLVrCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVrCapabilities.m; path = SmartDeviceLink/SDLVrCapabilities.m; sourceTree = ""; }; - A21A4B3EBE116F516BFBC74130C407B1 /* SDLClimateControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClimateControlData.m; path = SmartDeviceLink/SDLClimateControlData.m; sourceTree = ""; }; - A256F032355513227EF3F0E7BC0D121D /* SDLSystemCapabilityType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityType.h; path = SmartDeviceLink/SDLSystemCapabilityType.h; sourceTree = ""; }; - A26B3309312952B2AED6A7ADA67DB6D9 /* SDLTTSChunk.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTTSChunk.m; path = SmartDeviceLink/SDLTTSChunk.m; sourceTree = ""; }; - A279D9C92C4169FF98A476AB715168EB /* SDLBeltStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBeltStatus.m; path = SmartDeviceLink/SDLBeltStatus.m; sourceTree = ""; }; - A288A63276C3C43A527ACA059A0ABBA3 /* SDLPerformAppServiceInteraction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAppServiceInteraction.h; path = SmartDeviceLink/SDLPerformAppServiceInteraction.h; sourceTree = ""; }; - A28A3EF650501C5F764BD9255379B913 /* SDLFuelType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFuelType.h; path = SmartDeviceLink/SDLFuelType.h; sourceTree = ""; }; - A295FC118C7C689512C3EE0C5BEEA414 /* SDLDeviceInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceInfo.h; path = SmartDeviceLink/SDLDeviceInfo.h; sourceTree = ""; }; - A3B1CF955FF3C570C55831E8B43B2068 /* SDLUnsubscribeVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeVehicleDataResponse.m; path = SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m; sourceTree = ""; }; - A3ED9F7681E099143B800F40621D588E /* SDLMetadataTags.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMetadataTags.m; path = SmartDeviceLink/SDLMetadataTags.m; sourceTree = ""; }; - A41C2D42956A2BC9ED6622038B85ED8F /* SDLSubscribeButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButton.m; path = SmartDeviceLink/SDLSubscribeButton.m; sourceTree = ""; }; - A429FA0D271048EA825CC81CA78405F0 /* SDLDisplayType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayType.m; path = SmartDeviceLink/SDLDisplayType.m; sourceTree = ""; }; - A44C3037DEC000D177A8E94BECA4B95C /* SDLTemplateConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemplateConfiguration.m; path = SmartDeviceLink/SDLTemplateConfiguration.m; sourceTree = ""; }; - A47AC218EDD3DC3F3FF2978AEDCF2E78 /* SDLEncodedSyncPDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEncodedSyncPDataResponse.h; path = SmartDeviceLink/SDLEncodedSyncPDataResponse.h; sourceTree = ""; }; - A499748AF54AFC5230B135A169E0F5AE /* SDLImageFieldName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageFieldName.h; path = SmartDeviceLink/SDLImageFieldName.h; sourceTree = ""; }; - A4D3B69BC21E62BA98351B1E601DBE97 /* SDLNotificationConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNotificationConstants.m; path = SmartDeviceLink/SDLNotificationConstants.m; sourceTree = ""; }; - A53632E3212C0B4683F082091768234F /* SDLTTSChunk.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTTSChunk.h; path = SmartDeviceLink/SDLTTSChunk.h; sourceTree = ""; }; - A56BE725C12073F229AA3AF5449958A1 /* SDLMyKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMyKey.h; path = SmartDeviceLink/SDLMyKey.h; sourceTree = ""; }; - A5B485EB6672E131B13E69E253F738D6 /* SDLIgnitionStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIgnitionStatus.h; path = SmartDeviceLink/SDLIgnitionStatus.h; sourceTree = ""; }; - A5C983C7E972FDF63900044F87CBB3DC /* SDLUnsubscribeButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeButton.m; path = SmartDeviceLink/SDLUnsubscribeButton.m; sourceTree = ""; }; - A6077950B867FA52904D60977A57F2BD /* SDLVehicleDataResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataResult.h; path = SmartDeviceLink/SDLVehicleDataResult.h; sourceTree = ""; }; - A65FAB1A1AE67773721FE07A100A3E83 /* SDLDimension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDimension.m; path = SmartDeviceLink/SDLDimension.m; sourceTree = ""; }; - A6EFA8634E116455C1E294504A1C5622 /* SDLPermissionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionStatus.m; path = SmartDeviceLink/SDLPermissionStatus.m; sourceTree = ""; }; - A70CB0DAFC9A084992447D811A756878 /* SDLWindowTypeCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWindowTypeCapabilities.h; path = SmartDeviceLink/SDLWindowTypeCapabilities.h; sourceTree = ""; }; - A719199D3EBFE5A3C4619D3DC80ED70B /* SDLPresentChoiceSetOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPresentChoiceSetOperation.m; path = SmartDeviceLink/SDLPresentChoiceSetOperation.m; sourceTree = ""; }; - A71C484F36F765E076597940091AFBAE /* SDLMassageZone.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageZone.h; path = SmartDeviceLink/SDLMassageZone.h; sourceTree = ""; }; - A775F59AD389385C91183BEAF59C659B /* SDLRequestType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRequestType.h; path = SmartDeviceLink/SDLRequestType.h; sourceTree = ""; }; - A77701E6DFFC3EB08EEC973A1F7D7190 /* SDLTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTimer.m; path = SmartDeviceLink/SDLTimer.m; sourceTree = ""; }; - A7934C16A837F342002F2415BDE82793 /* SDLReleaseInteriorVehicleDataModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLReleaseInteriorVehicleDataModule.m; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m; sourceTree = ""; }; - A7AFAFFD39AE907E63F13217D5067A14 /* SDLStaticIconName.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStaticIconName.h; path = SmartDeviceLink/SDLStaticIconName.h; sourceTree = ""; }; - A7E2467D5DC2019F260BD475A53CA1F3 /* SDLChoiceSetDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChoiceSetDelegate.h; path = SmartDeviceLink/SDLChoiceSetDelegate.h; sourceTree = ""; }; - A7E6588DB6AB90B5A4E955365321B36B /* SDLPredefinedWindows.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPredefinedWindows.h; path = SmartDeviceLink/SDLPredefinedWindows.h; sourceTree = ""; }; - A8431B0F75B502F5FE58F26285618A6D /* SDLLifecycleConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleConfiguration.m; path = SmartDeviceLink/SDLLifecycleConfiguration.m; sourceTree = ""; }; - A874F4C09FE07D7EF94135D92A5A2D31 /* SDLClusterModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLClusterModeStatus.h; path = SmartDeviceLink/SDLClusterModeStatus.h; sourceTree = ""; }; - A875209328BA108883DB60F79AA77ACF /* EAAccessory+SDLProtocols.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EAAccessory+SDLProtocols.m"; path = "SmartDeviceLink/EAAccessory+SDLProtocols.m"; sourceTree = ""; }; - A9E0567B3A13DFD90B87980D7B9C2A35 /* SDLUnpublishAppServiceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnpublishAppServiceResponse.m; path = SmartDeviceLink/SDLUnpublishAppServiceResponse.m; sourceTree = ""; }; - AA978EFFF7802A57334EEC147C532F12 /* SDLECallConfirmationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLECallConfirmationStatus.h; path = SmartDeviceLink/SDLECallConfirmationStatus.h; sourceTree = ""; }; - AAD2B4E1C0F33BFEB252C2481A9032F2 /* SDLFocusableItemLocatorType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFocusableItemLocatorType.h; path = SmartDeviceLink/SDLFocusableItemLocatorType.h; sourceTree = ""; }; - AAFA82C0BFDBC0D64BF1C7E2CF3ACF45 /* SDLLogConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogConfiguration.m; path = SmartDeviceLink/SDLLogConfiguration.m; sourceTree = ""; }; - AB15A2A894735B2E1F0B2159CA744E96 /* SDLDeleteInteractionChoiceSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteInteractionChoiceSet.h; path = SmartDeviceLink/SDLDeleteInteractionChoiceSet.h; sourceTree = ""; }; - AB19EDDD4140C1BE93B38F0AAAD31A3D /* SDLSISData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSISData.h; path = SmartDeviceLink/SDLSISData.h; sourceTree = ""; }; - AB95F07898AACB764288FB68551926A7 /* SDLUnregisterAppInterfaceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnregisterAppInterfaceResponse.m; path = SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m; sourceTree = ""; }; - ABC42E73E04AA89D2638CE5E086A0BAC /* SDLOasisAddress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOasisAddress.h; path = SmartDeviceLink/SDLOasisAddress.h; sourceTree = ""; }; - ABCC08D24761FA1AB3187DB24D8E870D /* SDLCloudAppProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCloudAppProperties.h; path = SmartDeviceLink/SDLCloudAppProperties.h; sourceTree = ""; }; - AC01AEE997639AA2260C7CB7AF71C4C3 /* SDLSubscribeWayPointsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeWayPointsResponse.h; path = SmartDeviceLink/SDLSubscribeWayPointsResponse.h; sourceTree = ""; }; - AC107A81E5890B57D66A4B85F2F5D37A /* SDLSeatLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatLocation.h; path = SmartDeviceLink/SDLSeatLocation.h; sourceTree = ""; }; - AC550FFCFB8CA9B1B0C09C0E26595391 /* SDLVideoStreamingCodec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingCodec.h; path = SmartDeviceLink/SDLVideoStreamingCodec.h; sourceTree = ""; }; - AC69D3F94604F5AE723986975A84A9B9 /* SDLSendHapticData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendHapticData.m; path = SmartDeviceLink/SDLSendHapticData.m; sourceTree = ""; }; - ACD66EC9F2852429481A7BADD06F50A5 /* SDLVideoStreamingProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingProtocol.m; path = SmartDeviceLink/SDLVideoStreamingProtocol.m; sourceTree = ""; }; - ACE4B9AC146F03631EC52683B808D9D2 /* SDLIAPSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPSession.m; path = SmartDeviceLink/SDLIAPSession.m; sourceTree = ""; }; - ADB87610BB6428EAF7555538EE3E9CF5 /* SDLGetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataResponse.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h; sourceTree = ""; }; - ADFFB6C5FDA442555BEF95532E12DEBC /* SDLAppServicesCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppServicesCapabilities.h; path = SmartDeviceLink/SDLAppServicesCapabilities.h; sourceTree = ""; }; - AE1E83E5226544501924015F9D97A062 /* SDLAmbientLightStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAmbientLightStatus.h; path = SmartDeviceLink/SDLAmbientLightStatus.h; sourceTree = ""; }; - AE3A34EFCC4B7995EFC13CDFF7415942 /* SDLDeviceStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceStatus.m; path = SmartDeviceLink/SDLDeviceStatus.m; sourceTree = ""; }; - AE6AE53069716EDC4D28271639B1ECF6 /* SDLGlobalProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGlobalProperty.h; path = SmartDeviceLink/SDLGlobalProperty.h; sourceTree = ""; }; - AE8A6C8CDEC1BDBFE21E0C20040FB131 /* SDLRPCResponseNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCResponseNotification.m; path = SmartDeviceLink/SDLRPCResponseNotification.m; sourceTree = ""; }; - AEB84A7714266B9D07AF0529C3361737 /* SDLAlertManeuverResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertManeuverResponse.m; path = SmartDeviceLink/SDLAlertManeuverResponse.m; sourceTree = ""; }; - AEE5EB23993F004A5B8717B7811188D6 /* SDLGrid.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGrid.h; path = SmartDeviceLink/SDLGrid.h; sourceTree = ""; }; - AEF7CB1324D1DFFE0F15BCED4F422DE1 /* SDLControlFramePayloadVideoStartService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadVideoStartService.h; path = SmartDeviceLink/SDLControlFramePayloadVideoStartService.h; sourceTree = ""; }; - AF122075C0B55246AB9E41B45037309F /* SDLMediaServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaServiceManifest.m; path = SmartDeviceLink/SDLMediaServiceManifest.m; sourceTree = ""; }; - AF2EB782EEAA8529D44E257890E1E3A7 /* SDLMetadataType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMetadataType.h; path = SmartDeviceLink/SDLMetadataType.h; sourceTree = ""; }; - AF87D39D8C17C6A34DCC703C68689E08 /* SDLIAPTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPTransport.m; path = SmartDeviceLink/SDLIAPTransport.m; sourceTree = ""; }; - AFC91724BBDC797A1FBE9062D011BD62 /* SDLLogFileModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFileModule.h; path = SmartDeviceLink/SDLLogFileModule.h; sourceTree = ""; }; - AFE831074AA07078B0E351971A9F0E26 /* SDLBackgroundTaskManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLBackgroundTaskManager.m; path = SmartDeviceLink/SDLBackgroundTaskManager.m; sourceTree = ""; }; - AFE83FD04F32E338D78150E93D001309 /* SDLWindowTypeCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWindowTypeCapabilities.m; path = SmartDeviceLink/SDLWindowTypeCapabilities.m; sourceTree = ""; }; - AFF3854A1D8BC5DD5484E62759DB92A8 /* SDLImageField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageField.m; path = SmartDeviceLink/SDLImageField.m; sourceTree = ""; }; - B006F22A5BF2027E0B3A10A8332C0AB1 /* SDLVehicleDataNotificationStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataNotificationStatus.h; path = SmartDeviceLink/SDLVehicleDataNotificationStatus.h; sourceTree = ""; }; - B054B7658B858C19F36D425B913FCA53 /* SDLDeliveryMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeliveryMode.h; path = SmartDeviceLink/SDLDeliveryMode.h; sourceTree = ""; }; - B0659086D16C101E4B3240900C7412B1 /* SDLAudioType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioType.h; path = SmartDeviceLink/SDLAudioType.h; sourceTree = ""; }; - B0B485F2DBCDC2B0D33BE35382C71715 /* SDLOnVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnVehicleData.m; path = SmartDeviceLink/SDLOnVehicleData.m; sourceTree = ""; }; - B0DF64B830CBF8A2D3A1F42792E5E927 /* SDLAlertManeuver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertManeuver.h; path = SmartDeviceLink/SDLAlertManeuver.h; sourceTree = ""; }; - B10B875766B1C1B96DF356737056AB9A /* SDLPermissionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionManager.h; path = SmartDeviceLink/SDLPermissionManager.h; sourceTree = ""; }; - B12B2C77A2D099C8E8D0415A41140C39 /* SDLEncryptionManagerConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncryptionManagerConstants.m; path = SmartDeviceLink/SDLEncryptionManagerConstants.m; sourceTree = ""; }; - B1489C28FDE9BC04F3A6D6E52C5CCE68 /* SDLProtocolMessageDisassembler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessageDisassembler.h; path = SmartDeviceLink/SDLProtocolMessageDisassembler.h; sourceTree = ""; }; - B1737F018C1201A37BA9F403EA0E0019 /* CVPixelBufferRef+SDLUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CVPixelBufferRef+SDLUtil.m"; path = "SmartDeviceLink/CVPixelBufferRef+SDLUtil.m"; sourceTree = ""; }; - B1961973F2A5564B8E0FF5586067C528 /* SDLSequentialRPCRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSequentialRPCRequestOperation.m; path = SmartDeviceLink/SDLSequentialRPCRequestOperation.m; sourceTree = ""; }; - B1AFFBD09878FE64AE19E65AB5D0D9D0 /* SDLClimateControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClimateControlCapabilities.m; path = SmartDeviceLink/SDLClimateControlCapabilities.m; sourceTree = ""; }; - B1B7A6430BC02C0B52516656BA4B5DE6 /* SDLEndAudioPassThru.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEndAudioPassThru.h; path = SmartDeviceLink/SDLEndAudioPassThru.h; sourceTree = ""; }; - B1CBAE6C6FCD662932F84593886D1FB9 /* SDLImageField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLImageField.h; path = SmartDeviceLink/SDLImageField.h; sourceTree = ""; }; - B2285BB6C866BBF444CF2BA47538A3F9 /* SDLRTPH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRTPH264Packetizer.h; path = SmartDeviceLink/SDLRTPH264Packetizer.h; sourceTree = ""; }; - B2A2921F1E5CA7555173077B04B2B228 /* SDLOnSystemCapabilityUpdated.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSystemCapabilityUpdated.h; path = SmartDeviceLink/SDLOnSystemCapabilityUpdated.h; sourceTree = ""; }; - B2B32C73887D39822D8BCF44DD62ADE0 /* SDLNavigationJunction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationJunction.h; path = SmartDeviceLink/SDLNavigationJunction.h; sourceTree = ""; }; - B2C0261F3896CD81D17FC9889CD6080E /* SDLCloudAppProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCloudAppProperties.m; path = SmartDeviceLink/SDLCloudAppProperties.m; sourceTree = ""; }; - B333958DAB7FA32DB021C89E59865776 /* SDLReleaseInteriorVehicleDataModuleResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReleaseInteriorVehicleDataModuleResponse.h; path = SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h; sourceTree = ""; }; - B33B4BD373DC2C35A7D1CB0AC87B3376 /* SDLGetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataResponse.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m; sourceTree = ""; }; - B36217DF1D67CB1D77EF190BB99F29EE /* SDLShowConstantTBT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowConstantTBT.h; path = SmartDeviceLink/SDLShowConstantTBT.h; sourceTree = ""; }; - B3C88EDC28B4D78F4CF7643299FC87EE /* SDLLockScreenStatusManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenStatusManager.h; path = SmartDeviceLink/SDLLockScreenStatusManager.h; sourceTree = ""; }; - B3F2F3DE7B7885DE54384816E98EC71B /* SDLWindowType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWindowType.h; path = SmartDeviceLink/SDLWindowType.h; sourceTree = ""; }; - B4095FC3652FF81F7C17BD02355E6C58 /* SDLPermissionFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPermissionFilter.h; path = SmartDeviceLink/SDLPermissionFilter.h; sourceTree = ""; }; - B431E7802E17E1F281E75FF94AC70BB4 /* SDLTouch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouch.h; path = SmartDeviceLink/SDLTouch.h; sourceTree = ""; }; - B4487AD673E64E1277940325C03E19A6 /* SDLButtonPressResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonPressResponse.m; path = SmartDeviceLink/SDLButtonPressResponse.m; sourceTree = ""; }; - B458E71A46CC3C10BFED1AE0A05A3530 /* SDLResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResult.h; path = SmartDeviceLink/SDLResult.h; sourceTree = ""; }; - B4979E6424D2B5B676846623A6C7D4ED /* SDLError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLError.m; path = SmartDeviceLink/SDLError.m; sourceTree = ""; }; - B4B09C9B8D6AB14F61330FF6FB8E3257 /* BiSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BiSON-dummy.m"; sourceTree = ""; }; - B4BA26A3F50E769204A2072B622513BE /* SDLProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessage.h; path = SmartDeviceLink/SDLProtocolMessage.h; sourceTree = ""; }; - B4CDAA4EB638051C5A0474B84B73471A /* SDLIAPDataSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPDataSession.h; path = SmartDeviceLink/SDLIAPDataSession.h; sourceTree = ""; }; - B59517F7CBBA095EAF2897CDD2F95780 /* SDLOnAppInterfaceUnregistered.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAppInterfaceUnregistered.m; path = SmartDeviceLink/SDLOnAppInterfaceUnregistered.m; sourceTree = ""; }; - B5D86F64C557ECB55D17B7F743CE14A3 /* SDLLogTargetOSLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetOSLog.h; path = SmartDeviceLink/SDLLogTargetOSLog.h; sourceTree = ""; }; - B648DB91A3098DA7B1E0A5FEE3FE23A6 /* SDLRegisterAppInterface.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRegisterAppInterface.m; path = SmartDeviceLink/SDLRegisterAppInterface.m; sourceTree = ""; }; - B658D9594E81D91F5F5FF21E8DD5044A /* Pods_MobileWeather.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MobileWeather.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B692A71C44F049B8B83DDCF6B8927340 /* SDLTouchCoord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchCoord.h; path = SmartDeviceLink/SDLTouchCoord.h; sourceTree = ""; }; - B773DF4090413C4A96873F27804F6FE8 /* SDLSoftButtonManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSoftButtonManager.h; path = SmartDeviceLink/SDLSoftButtonManager.h; sourceTree = ""; }; - B7A9DB758AF9D71ED356105B12453644 /* SDLSystemCapabilityObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityObserver.m; path = SmartDeviceLink/SDLSystemCapabilityObserver.m; sourceTree = ""; }; - B85B6A3BDFE2C9C0F9DE2E3DEDFAF475 /* SDLChangeRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChangeRegistration.m; path = SmartDeviceLink/SDLChangeRegistration.m; sourceTree = ""; }; - B85ED94C4814B0CC8AE4863BE9962AA3 /* SDLChoiceSetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChoiceSetManager.m; path = SmartDeviceLink/SDLChoiceSetManager.m; sourceTree = ""; }; - B8C4AFF624FB42A6EEE527432AB9EAA9 /* CVPixelBufferRef+SDLUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CVPixelBufferRef+SDLUtil.h"; path = "SmartDeviceLink/CVPixelBufferRef+SDLUtil.h"; sourceTree = ""; }; - B9544257AFAAD1DB9C4EF3E6481FC4A6 /* SDLOnWayPointChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnWayPointChange.h; path = SmartDeviceLink/SDLOnWayPointChange.h; sourceTree = ""; }; - B9B1FC9F310952A5B90D5345964A38C2 /* SDLCarModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarModeStatus.m; path = SmartDeviceLink/SDLCarModeStatus.m; sourceTree = ""; }; - BA017EDCE303A08B1FC07733F845ED45 /* SDLGetInteriorVehicleDataConsent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetInteriorVehicleDataConsent.m; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m; sourceTree = ""; }; - BAD2C195FC0F61B8AE3C568DAACD11A4 /* SDLWiperStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWiperStatus.h; path = SmartDeviceLink/SDLWiperStatus.h; sourceTree = ""; }; - BAE82B84E1601BFF59D0A736CDEFE053 /* SDLHMIZoneCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMIZoneCapabilities.m; path = SmartDeviceLink/SDLHMIZoneCapabilities.m; sourceTree = ""; }; - BB22292F07E70E3D6FCDE83B18E1B929 /* SDLSetMediaClockTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetMediaClockTimer.m; path = SmartDeviceLink/SDLSetMediaClockTimer.m; sourceTree = ""; }; - BB36829AE73AF06B17E8AEA68D9D2473 /* SDLOnEncodedSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnEncodedSyncPData.h; path = SmartDeviceLink/SDLOnEncodedSyncPData.h; sourceTree = ""; }; - BB3973D6F3986950AA95D58E21EA4849 /* SDLModuleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleData.h; path = SmartDeviceLink/SDLModuleData.h; sourceTree = ""; }; - BBA4A2A569A352F32B460D479A488FD1 /* SDLShowConstantTBTResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLShowConstantTBTResponse.m; path = SmartDeviceLink/SDLShowConstantTBTResponse.m; sourceTree = ""; }; - BC2DDF4C8D4FF0BB610F87922F9DC8C1 /* SDLOnSystemCapabilityUpdated.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnSystemCapabilityUpdated.m; path = SmartDeviceLink/SDLOnSystemCapabilityUpdated.m; sourceTree = ""; }; - BC44973166E4FD5059074DCF268D17F8 /* SDLPerformInteraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformInteraction.m; path = SmartDeviceLink/SDLPerformInteraction.m; sourceTree = ""; }; - BC48020E05365643AE6EA8547CC8AD26 /* SDLLogTargetFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetFile.m; path = SmartDeviceLink/SDLLogTargetFile.m; sourceTree = ""; }; - BCACAA14FF60CF41338964A0B4EB8421 /* SDLNavigationInstruction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationInstruction.m; path = SmartDeviceLink/SDLNavigationInstruction.m; sourceTree = ""; }; - BCBFC65AAAB2DE0ED2B74F8CE3002306 /* SDLControlFramePayloadType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadType.h; path = SmartDeviceLink/SDLControlFramePayloadType.h; sourceTree = ""; }; - BCDAA6BCF5B1B476FC7FBE2731FD3B66 /* SDLSoftButtonObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSoftButtonObject.m; path = SmartDeviceLink/SDLSoftButtonObject.m; sourceTree = ""; }; - BD0A82F3B2EBBDF4D3C4FB965156E9D3 /* SDLCloseApplication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCloseApplication.h; path = SmartDeviceLink/SDLCloseApplication.h; sourceTree = ""; }; - BD5725BF0453F0E370C791AFFCA33AB0 /* SDLHybridAppPreference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHybridAppPreference.h; path = SmartDeviceLink/SDLHybridAppPreference.h; sourceTree = ""; }; - BDC78482302FF8AC794EE8765A179282 /* SDLTireStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTireStatus.m; path = SmartDeviceLink/SDLTireStatus.m; sourceTree = ""; }; - BE263957CF097F8038614F284D6503B2 /* SDLTextField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTextField.h; path = SmartDeviceLink/SDLTextField.h; sourceTree = ""; }; - BEA81FC17FEEBB29EA50A437D78643CD /* SDLBackgroundTaskManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBackgroundTaskManager.h; path = SmartDeviceLink/SDLBackgroundTaskManager.h; sourceTree = ""; }; - BEEE2F7E9040BABB48B69701692886EF /* SDLOnPermissionsChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnPermissionsChange.h; path = SmartDeviceLink/SDLOnPermissionsChange.h; sourceTree = ""; }; - BEF6EAE77CAC2466EB562CFF77920BCC /* SDLSpeechCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSpeechCapabilities.h; path = SmartDeviceLink/SDLSpeechCapabilities.h; sourceTree = ""; }; - BF050F8D21022CD0E6C2AD5A17E6B282 /* SDLMassageModeData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMassageModeData.m; path = SmartDeviceLink/SDLMassageModeData.m; sourceTree = ""; }; - BF93E5FC62B485106482874C40C58DE6 /* SDLControlFramePayloadAudioStartServiceAck.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadAudioStartServiceAck.m; path = SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m; sourceTree = ""; }; - BFF07975F02BE7BDA5311F3AD80E5CDA /* SDLProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocol.m; path = SmartDeviceLink/SDLProtocol.m; sourceTree = ""; }; - C0150C2F6FCAEDCCE0078FFF6A5F9854 /* SDLBitsPerSample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBitsPerSample.h; path = SmartDeviceLink/SDLBitsPerSample.h; sourceTree = ""; }; - C0CE5DCD736E603F98EFA824D23FDADB /* SDLStationIDNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStationIDNumber.m; path = SmartDeviceLink/SDLStationIDNumber.m; sourceTree = ""; }; - C0F9B31189558811D7A53ACF37EC44D9 /* SDLComponentVolumeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLComponentVolumeStatus.h; path = SmartDeviceLink/SDLComponentVolumeStatus.h; sourceTree = ""; }; - C10CCA1F0756004AD9418EF06446AD16 /* SDLAudioPassThruCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioPassThruCapabilities.h; path = SmartDeviceLink/SDLAudioPassThruCapabilities.h; sourceTree = ""; }; - C197364227C0998A9025317EAD699894 /* SmartDeviceLink.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SmartDeviceLink.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - C1ABA54275646D92071529E1091B1333 /* SDLLocationDetails.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLocationDetails.m; path = SmartDeviceLink/SDLLocationDetails.m; sourceTree = ""; }; - C1D81050F28D62B6EDECEBB7DF2391A0 /* bson_util.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = bson_util.c; path = src/bson_util.c; sourceTree = ""; }; - C1E045F73DED94B7C08D794BBB769E4B /* SDLRegisterAppInterfaceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRegisterAppInterfaceResponse.h; path = SmartDeviceLink/SDLRegisterAppInterfaceResponse.h; sourceTree = ""; }; - C22DA0D19740BC3671D0F671BB54CCEC /* SDLPowerModeStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPowerModeStatus.h; path = SmartDeviceLink/SDLPowerModeStatus.h; sourceTree = ""; }; - C23EE35725C46B65EF548339396EBAE4 /* SDLServiceUpdateReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLServiceUpdateReason.m; path = SmartDeviceLink/SDLServiceUpdateReason.m; sourceTree = ""; }; - C2AA680B3D37F013ECB5B16618A27EFA /* SDLVoiceCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommand.m; path = SmartDeviceLink/SDLVoiceCommand.m; sourceTree = ""; }; - C318BCF5948BE73D137E480D096B323B /* SDLDateTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDateTime.m; path = SmartDeviceLink/SDLDateTime.m; sourceTree = ""; }; - C33288F60F5B286E2B4C53A09F9694A8 /* SDLKeyboardLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardLayout.h; path = SmartDeviceLink/SDLKeyboardLayout.h; sourceTree = ""; }; - C34405251FE0562CCA9FEA6FC884A66E /* bson_array.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = bson_array.c; path = src/bson_array.c; sourceTree = ""; }; - C38C988FF2BC04E3BECCA8B8B2BBB7E1 /* SDLControlFramePayloadRPCStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRPCStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h; sourceTree = ""; }; - C3C759E34418D5E3F059C76D2E9BD03F /* bson_array.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_array.h; path = src/bson_array.h; sourceTree = ""; }; - C3F279ED37C2B8521FA6B95F37C61B6F /* SDLGetVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetVehicleData.h; path = SmartDeviceLink/SDLGetVehicleData.h; sourceTree = ""; }; - C449475F6E0CE07B003A60F21E17DFCC /* SDLDisplayCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDisplayCapabilities.m; path = SmartDeviceLink/SDLDisplayCapabilities.m; sourceTree = ""; }; - C44CB14CFDBEDB6BE91BBEE9F2AEBFF5 /* SDLSetMediaClockTimerResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSetMediaClockTimerResponse.m; path = SmartDeviceLink/SDLSetMediaClockTimerResponse.m; sourceTree = ""; }; - C4BE27470822649960E3E82D1CCE585F /* SDLOnCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnCommand.m; path = SmartDeviceLink/SDLOnCommand.m; sourceTree = ""; }; - C4CE7887593CC1FC33CAE5D179B39AC5 /* BiSON.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BiSON.release.xcconfig; sourceTree = ""; }; - C4DE74679FEA4D70BF5121E2F06EE9C6 /* SDLRPCRequestNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCRequestNotification.h; path = SmartDeviceLink/SDLRPCRequestNotification.h; sourceTree = ""; }; - C4F6558A305336CC62BB5516E27A38C3 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = ja.lproj/SDLLockScreen.strings; sourceTree = ""; }; - C4F791D12BE19DF77A3BCC8EEB641295 /* SDLV2ProtocolMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLV2ProtocolMessage.h; path = SmartDeviceLink/SDLV2ProtocolMessage.h; sourceTree = ""; }; - C4FFC5C7A65B24AFC32457EF2DE79160 /* SDLVideoStreamingCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingCapability.h; path = SmartDeviceLink/SDLVideoStreamingCapability.h; sourceTree = ""; }; - C57AA9193B116618556C40DAECF8CF3A /* SDLLightState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightState.h; path = SmartDeviceLink/SDLLightState.h; sourceTree = ""; }; - C57EE820C482DB351A5D22661395FD35 /* SDLVehicleDataResultCode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleDataResultCode.h; path = SmartDeviceLink/SDLVehicleDataResultCode.h; sourceTree = ""; }; - C594D7D022ADDBB1CCA1C39D63737DD4 /* SDLV2ProtocolHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLV2ProtocolHeader.m; path = SmartDeviceLink/SDLV2ProtocolHeader.m; sourceTree = ""; }; - C5C00931EAB51480DCF119086CEF8E38 /* SDLIconArchiveFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIconArchiveFile.m; path = SmartDeviceLink/SDLIconArchiveFile.m; sourceTree = ""; }; - C5CC066A137773D4739994E979CF375D /* SDLModuleInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLModuleInfo.h; path = SmartDeviceLink/SDLModuleInfo.h; sourceTree = ""; }; - C5EFD2B1C3124A2AEC3850F1E0F152B5 /* SDLSeatMemoryActionType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSeatMemoryActionType.h; path = SmartDeviceLink/SDLSeatMemoryActionType.h; sourceTree = ""; }; - C60EA5909682DF758FBFC7F0114743A5 /* NSBundle+SDLBundle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+SDLBundle.m"; path = "SmartDeviceLink/NSBundle+SDLBundle.m"; sourceTree = ""; }; - C641082806A93BA26912DBABD29845FC /* SDLSubscribeVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeVehicleDataResponse.m; path = SmartDeviceLink/SDLSubscribeVehicleDataResponse.m; sourceTree = ""; }; - C64A1B5B79B529141EBEF99FD0560328 /* BiSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BiSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C65504710D6D14CB30F9BA892B1A289C /* SDLVehicleType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVehicleType.h; path = SmartDeviceLink/SDLVehicleType.h; sourceTree = ""; }; - C6706EFEDF66F1A0AD318CAF53CE694E /* SDLSetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetInteriorVehicleDataResponse.h; path = SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h; sourceTree = ""; }; - C68E00EA0C35209A7F5D2308107243E6 /* SDLChangeRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLChangeRegistration.h; path = SmartDeviceLink/SDLChangeRegistration.h; sourceTree = ""; }; - C7416C95E6F086E3A8112582FBA43F5B /* SDLTurn.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTurn.m; path = SmartDeviceLink/SDLTurn.m; sourceTree = ""; }; - C7A3524440606449BF1F506F67159172 /* SDLGetFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetFile.h; path = SmartDeviceLink/SDLGetFile.h; sourceTree = ""; }; - C7F54D6509DB0FC7F6534EE13492D451 /* SDLSeatMemoryAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatMemoryAction.m; path = SmartDeviceLink/SDLSeatMemoryAction.m; sourceTree = ""; }; - C840BD5423689277D6E9D631A85F41E7 /* SDLCreateInteractionChoiceSetResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCreateInteractionChoiceSetResponse.m; path = SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m; sourceTree = ""; }; - C857DA8AD51F0B0A8D7F9682E8435BC5 /* SDLListFiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFiles.h; path = SmartDeviceLink/SDLListFiles.h; sourceTree = ""; }; - C8817A9FA9D65B3370E04B0D63880BDF /* SDLGenericResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGenericResponse.m; path = SmartDeviceLink/SDLGenericResponse.m; sourceTree = ""; }; - C89447CA3A2D998A71484D9D7EEC0D6E /* SDLEndAudioPassThruResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEndAudioPassThruResponse.m; path = SmartDeviceLink/SDLEndAudioPassThruResponse.m; sourceTree = ""; }; - C8CB8529A9386D82BBB3D5191EF06A18 /* SDLDeviceStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeviceStatus.h; path = SmartDeviceLink/SDLDeviceStatus.h; sourceTree = ""; }; - C93D02DE99AD9CEDF69F718811048F8A /* SmartDeviceLink-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SmartDeviceLink-dummy.m"; sourceTree = ""; }; - C98E0A40D9302E06972A9D641D33736F /* SDLOnSyncPData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnSyncPData.h; path = SmartDeviceLink/SDLOnSyncPData.h; sourceTree = ""; }; - C9CA43544C48DA82A71EA58A4D291F62 /* SDLVideoStreamingProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingProtocol.h; path = SmartDeviceLink/SDLVideoStreamingProtocol.h; sourceTree = ""; }; - C9F308B39068D7126A74593F5FF3DEB4 /* SDLVideoStreamingFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingFormat.m; path = SmartDeviceLink/SDLVideoStreamingFormat.m; sourceTree = ""; }; - CA1172141E4430CBCB9C7B46FA2362F4 /* SDLUnsubscribeWayPoints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeWayPoints.m; path = SmartDeviceLink/SDLUnsubscribeWayPoints.m; sourceTree = ""; }; - CA15ECE757FC373C85DCC38EC5858576 /* SDLSlider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSlider.m; path = SmartDeviceLink/SDLSlider.m; sourceTree = ""; }; - CA4E2E2D6448CAAB671EE663AF8C9038 /* SDLUpdateTurnListResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUpdateTurnListResponse.m; path = SmartDeviceLink/SDLUpdateTurnListResponse.m; sourceTree = ""; }; - CAD566B149788CE2A5407D1274A17F00 /* SDLMenuLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuLayout.m; path = SmartDeviceLink/SDLMenuLayout.m; sourceTree = ""; }; - CADB648304E13078D32B3FD465D4550E /* Pods-MobileWeather.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MobileWeather.modulemap"; sourceTree = ""; }; - CB073ABF5500F256EAF20D2D4DC6D70A /* SDLOnLanguageChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnLanguageChange.m; path = SmartDeviceLink/SDLOnLanguageChange.m; sourceTree = ""; }; - CB10D3679A8E589017A8F931A055A746 /* SDLNavigationServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLNavigationServiceManifest.m; path = SmartDeviceLink/SDLNavigationServiceManifest.m; sourceTree = ""; }; - CB1A61D4933119EA30B60E11CB2A55E4 /* SDLManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLManager.h; path = SmartDeviceLink/SDLManager.h; sourceTree = ""; }; - CB8CEF2E6739A98ACE9DB96F08CB2ED3 /* SDLTurn.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTurn.h; path = SmartDeviceLink/SDLTurn.h; sourceTree = ""; }; - CBB1E250DE3E63DEB5019B86C69B0AF4 /* SDLDIDResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDIDResult.m; path = SmartDeviceLink/SDLDIDResult.m; sourceTree = ""; }; - CBC0300359DEB43A7C09E1D901FCA137 /* SDLAppServiceManifest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceManifest.m; path = SmartDeviceLink/SDLAppServiceManifest.m; sourceTree = ""; }; - CBCB16E496EFD6B64945F52DA1861BB5 /* SDLRadioControlCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRadioControlCapabilities.m; path = SmartDeviceLink/SDLRadioControlCapabilities.m; sourceTree = ""; }; - CBCE52F73B99C2EB241CED559CC155FA /* SDLTextAlignment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextAlignment.m; path = SmartDeviceLink/SDLTextAlignment.m; sourceTree = ""; }; - CBDFD38C9C935811D67494103D5F4E6C /* Pods-MobileWeather-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MobileWeather-acknowledgements.plist"; sourceTree = ""; }; - CBEA9E8BA4BEAF80193321CF986F0A91 /* SDLDeleteInteractionChoiceSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteInteractionChoiceSet.m; path = SmartDeviceLink/SDLDeleteInteractionChoiceSet.m; sourceTree = ""; }; - CBEE832F83BA93DFD8764142F6CBA3D6 /* SDLTriggerSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTriggerSource.m; path = SmartDeviceLink/SDLTriggerSource.m; sourceTree = ""; }; - CBF1AE79CC723B76B9681FA0C5983591 /* SDLSeatLocationCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatLocationCapability.m; path = SmartDeviceLink/SDLSeatLocationCapability.m; sourceTree = ""; }; - CC0536F1740B2347A3FDD9BE3712BAC9 /* SDLShowAppMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowAppMenuResponse.h; path = SmartDeviceLink/SDLShowAppMenuResponse.h; sourceTree = ""; }; - CC30ACD3F6015F21547F9A433E6385B3 /* SDLRPCStruct.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCStruct.m; path = SmartDeviceLink/SDLRPCStruct.m; sourceTree = ""; }; - CC79D886FC0B1F4F59AC179912B3288C /* SDLGetCloudAppProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetCloudAppProperties.m; path = SmartDeviceLink/SDLGetCloudAppProperties.m; sourceTree = ""; }; - CC9604E66648405ECCC5FEF1ED5DAF7D /* SDLAlertResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAlertResponse.m; path = SmartDeviceLink/SDLAlertResponse.m; sourceTree = ""; }; - CC96F7C7B44C145A8134DF1D1AA18116 /* SDLCharacterSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCharacterSet.m; path = SmartDeviceLink/SDLCharacterSet.m; sourceTree = ""; }; - CCC1D764310276A1B4C8335898707354 /* SDLCheckChoiceVROptionalOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCheckChoiceVROptionalOperation.m; path = SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m; sourceTree = ""; }; - CCEDBA4CF5298ACECCDBB21E9EF83088 /* SDLGetDTCs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetDTCs.m; path = SmartDeviceLink/SDLGetDTCs.m; sourceTree = ""; }; - CCF1E88FAC247087B1D04D8DC970BE73 /* bson_object.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bson_object.h; path = src/bson_object.h; sourceTree = ""; }; - CCF47A553221E3AD83C4363CB7B81894 /* SDLCompassDirection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCompassDirection.h; path = SmartDeviceLink/SDLCompassDirection.h; sourceTree = ""; }; - CCF9B35E59B89A18102BA35693887E8B /* SDLProtocolConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolConstants.h; path = SmartDeviceLink/SDLProtocolConstants.h; sourceTree = ""; }; - CCFBCFEAE99E82FA228AFBDFA25BFE2A /* SDLSystemCapabilityObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSystemCapabilityObserver.h; path = SmartDeviceLink/SDLSystemCapabilityObserver.h; sourceTree = ""; }; - CDCD325FB9D69CF0D80F1C46381EEED5 /* SDLTemperature.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTemperature.m; path = SmartDeviceLink/SDLTemperature.m; sourceTree = ""; }; - CE702433D4927A3186F0C2ED53D7F27B /* SDLGPSData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGPSData.h; path = SmartDeviceLink/SDLGPSData.h; sourceTree = ""; }; - CE75998AC803F932D548A5CFAFE79632 /* SDLBeltStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLBeltStatus.h; path = SmartDeviceLink/SDLBeltStatus.h; sourceTree = ""; }; - CE844466F3EDF16CC0981DA495566991 /* SDLHMICapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMICapabilities.m; path = SmartDeviceLink/SDLHMICapabilities.m; sourceTree = ""; }; - CEC2979DED81E3F2C7CE44D570F2C83C /* SDLVehicleDataNotificationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataNotificationStatus.m; path = SmartDeviceLink/SDLVehicleDataNotificationStatus.m; sourceTree = ""; }; - CED1E6D7D0EA2E9D6C83332611768557 /* SDLStreamingAudioLifecycleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingAudioLifecycleManager.h; path = SmartDeviceLink/SDLStreamingAudioLifecycleManager.h; sourceTree = ""; }; - CEFD29CFFB2F5E8DB487421FE557262D /* SDLLockScreenViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenViewController.h; path = SmartDeviceLink/SDLLockScreenViewController.h; sourceTree = ""; }; - CF679021B1F310A3DA1CCAD24947CE31 /* SDLEncryptionLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEncryptionLifecycleManager.m; path = SmartDeviceLink/SDLEncryptionLifecycleManager.m; sourceTree = ""; }; - CFB9AA79201C2D9C76506FEDF237FF2A /* SDLDirection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDirection.m; path = SmartDeviceLink/SDLDirection.m; sourceTree = ""; }; - D0581F57A3E133B297BFA59428ED20F9 /* SDLStreamingVideoScaleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingVideoScaleManager.m; path = SmartDeviceLink/SDLStreamingVideoScaleManager.m; sourceTree = ""; }; - D08CB1A94F1B6EE63D943DD3D8D04CA0 /* SDLControlFramePayloadNak.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadNak.m; path = SmartDeviceLink/SDLControlFramePayloadNak.m; sourceTree = ""; }; - D0D35FA4BEEE3F908B03AEB2D32E4321 /* SDLGetInteriorVehicleDataConsentResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetInteriorVehicleDataConsentResponse.h; path = SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h; sourceTree = ""; }; - D1038E18768690DF540899139455789E /* SDLChangeRegistrationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLChangeRegistrationResponse.m; path = SmartDeviceLink/SDLChangeRegistrationResponse.m; sourceTree = ""; }; - D10B31A393DEE18CB04EA2485ABD892B /* TestSubscribeButtonObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TestSubscribeButtonObserver.h; path = SmartDeviceLink/TestSubscribeButtonObserver.h; sourceTree = ""; }; - D139C1A1E0119ED0A73E0642B12675BD /* SDLSetMediaClockTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetMediaClockTimer.h; path = SmartDeviceLink/SDLSetMediaClockTimer.h; sourceTree = ""; }; - D1C31EB7EB2D9E54E40DF8F679512777 /* SDLNavigationServiceData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationServiceData.h; path = SmartDeviceLink/SDLNavigationServiceData.h; sourceTree = ""; }; - D23AB515C337D48F2DCD15C942D9FF3D /* SDLRPCPermissionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCPermissionStatus.m; path = SmartDeviceLink/SDLRPCPermissionStatus.m; sourceTree = ""; }; - D2F8D638111E1E1C919E161F33554DCC /* SDLFileManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileManager.h; path = SmartDeviceLink/SDLFileManager.h; sourceTree = ""; }; - D2FECA407FF6E408DFFDA2B1B0C1992A /* SDLOnEncodedSyncPData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnEncodedSyncPData.m; path = SmartDeviceLink/SDLOnEncodedSyncPData.m; sourceTree = ""; }; - D3566C02B6DB84A4D90013751CD1071F /* SDLOnHMIStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnHMIStatus.h; path = SmartDeviceLink/SDLOnHMIStatus.h; sourceTree = ""; }; - D389BD4118B81FB0470D538239B59E34 /* SDLIgnitionStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIgnitionStatus.m; path = SmartDeviceLink/SDLIgnitionStatus.m; sourceTree = ""; }; - D39069B46FB5C4AA3C7B4F149BC3A9E8 /* SDLDeviceLevelStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceLevelStatus.m; path = SmartDeviceLink/SDLDeviceLevelStatus.m; sourceTree = ""; }; - D46CF1A0CC78659C588255386F2C8286 /* SDLPermissionFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPermissionFilter.m; path = SmartDeviceLink/SDLPermissionFilter.m; sourceTree = ""; }; - D4B5DE50493E322D022ECD4BE5E38481 /* SDLTouchManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchManager.m; path = SmartDeviceLink/SDLTouchManager.m; sourceTree = ""; }; - D4DA5A5B16BCBD07008310F92C3960D1 /* SDLLifecycleSyncPDataHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleSyncPDataHandler.m; path = SmartDeviceLink/SDLLifecycleSyncPDataHandler.m; sourceTree = ""; }; - D4E743BD5D9868B2B5008D089934B105 /* SDLOnDriverDistraction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnDriverDistraction.m; path = SmartDeviceLink/SDLOnDriverDistraction.m; sourceTree = ""; }; - D547BCC4DEAD1C428EDF45B037D5201A /* SDLMenuCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuCell.h; path = SmartDeviceLink/SDLMenuCell.h; sourceTree = ""; }; - D56532D34DE9E68146CFDE8B079E3A04 /* SDLAsynchronousOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAsynchronousOperation.m; path = SmartDeviceLink/SDLAsynchronousOperation.m; sourceTree = ""; }; - D59096499EC97E026ECAE9E71C7E6DE4 /* SDLRPCStruct.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCStruct.h; path = SmartDeviceLink/SDLRPCStruct.h; sourceTree = ""; }; - D64070C063A2A910A459CAE2E7A4679D /* SDLUnsubscribeWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeWayPointsResponse.m; path = SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m; sourceTree = ""; }; - D693943ACF1FD2282F38E0EAA87D03BE /* SDLRectangle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRectangle.h; path = SmartDeviceLink/SDLRectangle.h; sourceTree = ""; }; - D70663478539E6AEC0CB55388F533D99 /* SDLObjectWithPriority.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLObjectWithPriority.m; path = SmartDeviceLink/SDLObjectWithPriority.m; sourceTree = ""; }; - D70AC7BCD19517CAE727871B85813F39 /* SDLRTPH264Packetizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRTPH264Packetizer.m; path = SmartDeviceLink/SDLRTPH264Packetizer.m; sourceTree = ""; }; - D7857EF566BA1394F763413B59EC6BC7 /* SDLLogFileModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogFileModule.m; path = SmartDeviceLink/SDLLogFileModule.m; sourceTree = ""; }; - D7B6671467E1F2AFF00152A3BB56DA00 /* SDLCancelInteractionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCancelInteractionResponse.m; path = SmartDeviceLink/SDLCancelInteractionResponse.m; sourceTree = ""; }; - D7B76D1D26F17C8DFCC609B03BB5F1FF /* SDLListFilesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLListFilesOperation.m; path = SmartDeviceLink/SDLListFilesOperation.m; sourceTree = ""; }; - D7BBACE033B0E506CA5830D0C9A67E30 /* SDLPresentChoiceSetOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPresentChoiceSetOperation.h; path = SmartDeviceLink/SDLPresentChoiceSetOperation.h; sourceTree = ""; }; - D7C7F86F69CEA7AF2F36510A9E3ADF4F /* SDLAppInterfaceUnregisteredReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppInterfaceUnregisteredReason.m; path = SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m; sourceTree = ""; }; - D83C3F848B3100D62A9329AE8FD1E53A /* SDLDistanceUnit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDistanceUnit.m; path = SmartDeviceLink/SDLDistanceUnit.m; sourceTree = ""; }; - D84CA7BBE7B7548D37D20852C77A974C /* SDLUnsubscribeVehicleData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnsubscribeVehicleData.m; path = SmartDeviceLink/SDLUnsubscribeVehicleData.m; sourceTree = ""; }; - D86564978231DBB8DE6638F518A092E9 /* SDLRAWH264Packetizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRAWH264Packetizer.h; path = SmartDeviceLink/SDLRAWH264Packetizer.h; sourceTree = ""; }; - D8937A5799CDE32614D2726C81F82818 /* emhashmap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = emhashmap.h; path = src/emhashmap/emhashmap.h; sourceTree = ""; }; - D8F4594E3083E428B64B683C182E3BB6 /* SDLProtocolMessageDisassembler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolMessageDisassembler.m; path = SmartDeviceLink/SDLProtocolMessageDisassembler.m; sourceTree = ""; }; - D90CAAF858A78919418815026E93FE6C /* SDLKeyboardProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardProperties.h; path = SmartDeviceLink/SDLKeyboardProperties.h; sourceTree = ""; }; - D976C60F80AF73BCF88057AFCC997BF2 /* SDLReadDID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLReadDID.h; path = SmartDeviceLink/SDLReadDID.h; sourceTree = ""; }; - D9FE9E92F26E2D6ED7FF95DF199E8CE4 /* SDLSendLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendLocation.m; path = SmartDeviceLink/SDLSendLocation.m; sourceTree = ""; }; - DADD98EB7761E07FAD05EA3DD3712E13 /* SDLControlFramePayloadRPCStartService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadRPCStartService.h; path = SmartDeviceLink/SDLControlFramePayloadRPCStartService.h; sourceTree = ""; }; - DB2DBF7A190C1B28F89A4CAA411A5074 /* SDLRPCPayload.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCPayload.m; path = SmartDeviceLink/SDLRPCPayload.m; sourceTree = ""; }; - DB8BAEF5BA6F28C6E8D303A40D4F9752 /* SDLWeatherAlert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLWeatherAlert.h; path = SmartDeviceLink/SDLWeatherAlert.h; sourceTree = ""; }; - DBDB552AB8B94525743E433DEDF82011 /* SDLSubscribeButtonObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeButtonObserver.h; path = SmartDeviceLink/SDLSubscribeButtonObserver.h; sourceTree = ""; }; - DC368A37A25AD64AC69F460E5EB32339 /* SDLTextField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTextField.m; path = SmartDeviceLink/SDLTextField.m; sourceTree = ""; }; - DC461630F2C6E45F81C3CC6B7D8BDD9E /* SDLPrimaryAudioSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPrimaryAudioSource.m; path = SmartDeviceLink/SDLPrimaryAudioSource.m; sourceTree = ""; }; - DC5946B04F71B3AB896F1E96200F9AF8 /* SDLDeleteFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteFileResponse.h; path = SmartDeviceLink/SDLDeleteFileResponse.h; sourceTree = ""; }; - DCE03B2B123ED8E259A090EA186A04C7 /* SDLAlertManeuverResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAlertManeuverResponse.h; path = SmartDeviceLink/SDLAlertManeuverResponse.h; sourceTree = ""; }; - DCFD55E0C6865C089002A13599E34D97 /* SDLTemplateConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemplateConfiguration.h; path = SmartDeviceLink/SDLTemplateConfiguration.h; sourceTree = ""; }; - DD906B67A1DB81F1A4D78834D42F0C3C /* SDLCloseApplicationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCloseApplicationResponse.h; path = SmartDeviceLink/SDLCloseApplicationResponse.h; sourceTree = ""; }; - DDC4519536BC211F5D35E00B5E2BB216 /* SDLDynamicMenuUpdateRunScore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDynamicMenuUpdateRunScore.h; path = SmartDeviceLink/SDLDynamicMenuUpdateRunScore.h; sourceTree = ""; }; - DDD04A6F68474FB574C693B9CBD2C5A3 /* SDLLifecycleSyncPDataHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleSyncPDataHandler.h; path = SmartDeviceLink/SDLLifecycleSyncPDataHandler.h; sourceTree = ""; }; - DDE35F83F21F26BF020C728950D6C990 /* BiSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BiSON.modulemap; sourceTree = ""; }; - DDE558E5D0448F16F7A74A931431AA9C /* SDLAsynchronousOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAsynchronousOperation.h; path = SmartDeviceLink/SDLAsynchronousOperation.h; sourceTree = ""; }; - DE194516542EC704AADE0A2FC32B63FD /* SDLOnTouchEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnTouchEvent.m; path = SmartDeviceLink/SDLOnTouchEvent.m; sourceTree = ""; }; - DE69A7B9DB57BFBF5BD9A2D76ED79B77 /* SDLGlobals.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGlobals.m; path = SmartDeviceLink/SDLGlobals.m; sourceTree = ""; }; - DE79CEA37357B6F9DD91B9559EEEFEBA /* SDLIAPSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPSession.h; path = SmartDeviceLink/SDLIAPSession.h; sourceTree = ""; }; - DEB970D4B1463F7A5435F594C50FE27F /* SDLRPCRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCRequest.m; path = SmartDeviceLink/SDLRPCRequest.m; sourceTree = ""; }; - DEEB8CD3B1A76596EEC8B093838892F3 /* SDLHMILevel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMILevel.h; path = SmartDeviceLink/SDLHMILevel.h; sourceTree = ""; }; - DF9731F0EEDD01B488AE412DDC732A15 /* SDLFuelRange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelRange.m; path = SmartDeviceLink/SDLFuelRange.m; sourceTree = ""; }; - DFDCE97BBEEFF7D0876C6518B71FF257 /* SDLRegisterAppInterface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRegisterAppInterface.h; path = SmartDeviceLink/SDLRegisterAppInterface.h; sourceTree = ""; }; - DFEC3B4824AB98BD46E19AA4744BB016 /* SDLSingleTireStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSingleTireStatus.m; path = SmartDeviceLink/SDLSingleTireStatus.m; sourceTree = ""; }; - E0482F1FF68E1DE5D306B4F4B9D57CC8 /* SDLGetVehicleDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetVehicleDataResponse.m; path = SmartDeviceLink/SDLGetVehicleDataResponse.m; sourceTree = ""; }; - E0693F2A953A77A17E75C29FAFD7F7BD /* SDLOnAppServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLOnAppServiceData.m; path = SmartDeviceLink/SDLOnAppServiceData.m; sourceTree = ""; }; - E06E125B93E154B8A67C00E35CF0FB9F /* SDLAudioStreamingState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAudioStreamingState.h; path = SmartDeviceLink/SDLAudioStreamingState.h; sourceTree = ""; }; - E074E1828DBE20E4E333AF7D5CB7597C /* SDLRPCPayload.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCPayload.h; path = SmartDeviceLink/SDLRPCPayload.h; sourceTree = ""; }; - E0ABE76C5826D12B93EBF61BAAF52F60 /* BiSON.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BiSON.debug.xcconfig; sourceTree = ""; }; - E0BC4F6E6B159DB9BBF7B3971DE31957 /* SDLCarWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarWindow.h; path = SmartDeviceLink/SDLCarWindow.h; sourceTree = ""; }; - E0CE6739547F25EDD5501E95B62ABE3A /* SDLPreloadChoicesOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPreloadChoicesOperation.m; path = SmartDeviceLink/SDLPreloadChoicesOperation.m; sourceTree = ""; }; - E11A499A146EB80F4A50C4AE2C91E1B7 /* SDLVideoStreamingFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVideoStreamingFormat.h; path = SmartDeviceLink/SDLVideoStreamingFormat.h; sourceTree = ""; }; - E15094CEC1019E3193DC001F59191F6B /* SDLSubscribeVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSubscribeVehicleData.h; path = SmartDeviceLink/SDLSubscribeVehicleData.h; sourceTree = ""; }; - E1FAE16882639A3A3090385712018D6F /* SDLClusterModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLClusterModeStatus.m; path = SmartDeviceLink/SDLClusterModeStatus.m; sourceTree = ""; }; - E27890CE8E8F1D7904C65EB29FB9ABD0 /* SDLLogModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogModel.h; path = SmartDeviceLink/SDLLogModel.h; sourceTree = ""; }; - E28D7727C696BB6A9A719269ED72550C /* SDLNavigationServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLNavigationServiceManifest.h; path = SmartDeviceLink/SDLNavigationServiceManifest.h; sourceTree = ""; }; - E2FAAAE33D2528754A3DCB84CEBD7047 /* SDLFileWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLFileWrapper.h; path = SmartDeviceLink/SDLFileWrapper.h; sourceTree = ""; }; - E31DCCADEC394A9E791837B3BD64B501 /* SDLButtonCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonCapabilities.h; path = SmartDeviceLink/SDLButtonCapabilities.h; sourceTree = ""; }; - E36CCB25374711839E0FBA532EF81EC0 /* SDLMassageModeData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageModeData.h; path = SmartDeviceLink/SDLMassageModeData.h; sourceTree = ""; }; - E395B89F16DB085EDAA307A77151A4E9 /* SDLLogTargetFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogTargetFile.h; path = SmartDeviceLink/SDLLogTargetFile.h; sourceTree = ""; }; - E3CBEA1B6A63BBECF895DD4D924B8BE8 /* SDLLogTargetAppleSystemLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLogTargetAppleSystemLog.m; path = SmartDeviceLink/SDLLogTargetAppleSystemLog.m; sourceTree = ""; }; - E4434753B7C23D766EC5A0D8B1EC7D24 /* Pods-MobileWeather-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MobileWeather-acknowledgements.markdown"; sourceTree = ""; }; - E46E14F3FFBE57DED951B698700F742D /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = es.lproj/SDLLockScreen.strings; sourceTree = ""; }; - E47779D3822D6421717CCECB009326EF /* SDLOnInteriorVehicleData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLOnInteriorVehicleData.h; path = SmartDeviceLink/SDLOnInteriorVehicleData.h; sourceTree = ""; }; - E4F5004CD6B82FEDEBE21181B317258D /* SDLHMISettingsControlData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHMISettingsControlData.m; path = SmartDeviceLink/SDLHMISettingsControlData.m; sourceTree = ""; }; - E535CD3255E256549582056BB430BAF5 /* BiSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BiSON-prefix.pch"; sourceTree = ""; }; - E544DB7D1612FA15EF84618495E675FA /* SDLUnsubscribeWayPoints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeWayPoints.h; path = SmartDeviceLink/SDLUnsubscribeWayPoints.h; sourceTree = ""; }; - E56DF2253BB23B90018E5D9A59964BA2 /* SDLSeatMemoryActionType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSeatMemoryActionType.m; path = SmartDeviceLink/SDLSeatMemoryActionType.m; sourceTree = ""; }; - E588D52092688278DFB1ABBD34198268 /* SDLIAPControlSessionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIAPControlSessionDelegate.h; path = SmartDeviceLink/SDLIAPControlSessionDelegate.h; sourceTree = ""; }; - E5B5D96B206B481EDA794734FDF0120F /* SDLUnsubscribeVehicleDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeVehicleDataResponse.h; path = SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h; sourceTree = ""; }; - E5BD5854C96BA4FE20BD941CF41A25F7 /* SDLTouchEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTouchEvent.h; path = SmartDeviceLink/SDLTouchEvent.h; sourceTree = ""; }; - E65AB80689651E51BC67BD306B058C30 /* SDLAddCommandResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddCommandResponse.h; path = SmartDeviceLink/SDLAddCommandResponse.h; sourceTree = ""; }; - E6676C50EEF5E1C69FF7D27A9C87426A /* SDLDeleteWindowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteWindowResponse.h; path = SmartDeviceLink/SDLDeleteWindowResponse.h; sourceTree = ""; }; - E66A988442959BA4FF4EA6712EB679BA /* SDLLockScreenStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLockScreenStatus.h; path = SmartDeviceLink/SDLLockScreenStatus.h; sourceTree = ""; }; - E68B7D0A4A009DA0A9A0B94AB87A0D21 /* SDLEqualizerSettings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLEqualizerSettings.h; path = SmartDeviceLink/SDLEqualizerSettings.h; sourceTree = ""; }; - E6D1FBD011D035D23562FC050633E575 /* SDLViewControllerPresentable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLViewControllerPresentable.h; path = SmartDeviceLink/SDLViewControllerPresentable.h; sourceTree = ""; }; - E6D5D0212AEA8F2CF6AEA8DAD32868E0 /* SDLStreamingMediaManagerDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingMediaManagerDataSource.h; path = SmartDeviceLink/SDLStreamingMediaManagerDataSource.h; sourceTree = ""; }; - E704475B197CAEDFADBA46990776ABED /* SDLDeleteCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteCommand.m; path = SmartDeviceLink/SDLDeleteCommand.m; sourceTree = ""; }; - E744FAD3C000DB8C868581AA6D77DDE9 /* SDLModuleType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLModuleType.m; path = SmartDeviceLink/SDLModuleType.m; sourceTree = ""; }; - E75E53426BB1F8D06083AA6B092186F3 /* SDLControlFramePayloadAudioStartServiceAck.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLControlFramePayloadAudioStartServiceAck.h; path = SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.h; sourceTree = ""; }; - E75F183917254542C99CC42AA2CC3860 /* SDLMenuManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMenuManager.m; path = SmartDeviceLink/SDLMenuManager.m; sourceTree = ""; }; - E7ADE67ACC724F1B63A80B9A025AA67C /* SDLParameterPermissions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLParameterPermissions.h; path = SmartDeviceLink/SDLParameterPermissions.h; sourceTree = ""; }; - E7B8F3E8A6E8FEFDC6D3FFF9938E7219 /* SDLDeleteSubMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDeleteSubMenu.h; path = SmartDeviceLink/SDLDeleteSubMenu.h; sourceTree = ""; }; - E7D643B6479CA671FCC68F8D9B079FE1 /* SDLStreamingVideoLifecycleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingVideoLifecycleManager.m; path = SmartDeviceLink/SDLStreamingVideoLifecycleManager.m; sourceTree = ""; }; - E88D7898374900884A7E0C3274ACDD65 /* NSMapTable+Subscripting.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMapTable+Subscripting.h"; path = "SmartDeviceLink/NSMapTable+Subscripting.h"; sourceTree = ""; }; - E8AF7FA3A3B233DDB4F14996698E8FE0 /* SDLTemplateColorScheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTemplateColorScheme.h; path = SmartDeviceLink/SDLTemplateColorScheme.h; sourceTree = ""; }; - E8EAD2E9892034B9E96D9C73757CC2DE /* SDLWindowCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWindowCapability.m; path = SmartDeviceLink/SDLWindowCapability.m; sourceTree = ""; }; - E8F549F3D9954F40A97B6921D59DBDCC /* SDLVideoStreamingCapability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingCapability.m; path = SmartDeviceLink/SDLVideoStreamingCapability.m; sourceTree = ""; }; - E8F6D5DF57737B1814A0C47D2D638B89 /* SDLUnsubscribeButtonResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLUnsubscribeButtonResponse.h; path = SmartDeviceLink/SDLUnsubscribeButtonResponse.h; sourceTree = ""; }; - E8FF631234AC949BCF5E7BA206039D09 /* SDLLogFileModuleMap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLogFileModuleMap.h; path = SmartDeviceLink/SDLLogFileModuleMap.h; sourceTree = ""; }; - E958081595D9D09F94B5A4E61223D317 /* SDLIconArchiveFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLIconArchiveFile.h; path = SmartDeviceLink/SDLIconArchiveFile.h; sourceTree = ""; }; - E98EB0FB9B881074126B6496AE6EE4A6 /* SDLSystemCapabilityType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemCapabilityType.m; path = SmartDeviceLink/SDLSystemCapabilityType.m; sourceTree = ""; }; - E9AE0633C881E09921808B99336A33CD /* SDLAppHMIType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppHMIType.m; path = SmartDeviceLink/SDLAppHMIType.m; sourceTree = ""; }; - E9BE11B50B61C825DEC533B7D69EB1FC /* SDLPinchGesture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPinchGesture.m; path = SmartDeviceLink/SDLPinchGesture.m; sourceTree = ""; }; - EA623EBC3192894DD618538B8DE469FD /* SDLSetAppIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetAppIcon.h; path = SmartDeviceLink/SDLSetAppIcon.h; sourceTree = ""; }; - EA703085F3146AFE22FBAD2AE662CAF2 /* SmartDeviceLink-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartDeviceLink-umbrella.h"; sourceTree = ""; }; - EA74E73DE00325097C89E066596A17F9 /* SDLPrerecordedSpeech.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrerecordedSpeech.h; path = SmartDeviceLink/SDLPrerecordedSpeech.h; sourceTree = ""; }; - EA76282753B31122B78D182BFFE41253 /* SDLCarWindowViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCarWindowViewController.h; path = SmartDeviceLink/SDLCarWindowViewController.h; sourceTree = ""; }; - EB0698F6977CDCFDF81D79A0FDBCD2C9 /* SDLTireStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTireStatus.h; path = SmartDeviceLink/SDLTireStatus.h; sourceTree = ""; }; - EB17B3E359DDDCA44BC834ABB8C6C3B8 /* SDLVideoStreamingCodec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVideoStreamingCodec.m; path = SmartDeviceLink/SDLVideoStreamingCodec.m; sourceTree = ""; }; - EB18E676157C3DBB7F7B0573085BC479 /* SDLLockScreenRootViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLockScreenRootViewController.m; path = SmartDeviceLink/SDLLockScreenRootViewController.m; sourceTree = ""; }; - EB3F3F76167CA66B3B7C05138A413E0C /* SDLAudioStreamingIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamingIndicator.m; path = SmartDeviceLink/SDLAudioStreamingIndicator.m; sourceTree = ""; }; - EB55A0D888F6AE9CCC809D50497AD040 /* SDLSetCloudAppPropertiesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetCloudAppPropertiesResponse.h; path = SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h; sourceTree = ""; }; - EBA1D7A2FE7B1D749E12E48562AF0E9B /* SDLPerformAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPerformAudioPassThru.m; path = SmartDeviceLink/SDLPerformAudioPassThru.m; sourceTree = ""; }; - EBEB8360055FF562885140AB8EDC891A /* SDLAddCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAddCommand.m; path = SmartDeviceLink/SDLAddCommand.m; sourceTree = ""; }; - EC66B309EDD7459B38A3029CA12705EC /* SDLIAPDataSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLIAPDataSession.m; path = SmartDeviceLink/SDLIAPDataSession.m; sourceTree = ""; }; - EC6A18970938783F09F8FBF76216579B /* SDLPrioritizedObjectCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPrioritizedObjectCollection.h; path = SmartDeviceLink/SDLPrioritizedObjectCollection.h; sourceTree = ""; }; - EC880BF5EFC8FBD9AB4F63EEC9191983 /* SDLAudioStreamingState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAudioStreamingState.m; path = SmartDeviceLink/SDLAudioStreamingState.m; sourceTree = ""; }; - EC8827628FE4A59FFDCFD4E3F3D7C4C2 /* SDLLightControlCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLightControlCapabilities.h; path = SmartDeviceLink/SDLLightControlCapabilities.h; sourceTree = ""; }; - ED7883C58B7DD059DDA8CACAC65B0774 /* SDLLifecycleSystemRequestHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLifecycleSystemRequestHandler.h; path = SmartDeviceLink/SDLLifecycleSystemRequestHandler.h; sourceTree = ""; }; - EDD01FD8321E8A489DCCF59E4DE051D9 /* SDLHMISettingsControlData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMISettingsControlData.h; path = SmartDeviceLink/SDLHMISettingsControlData.h; sourceTree = ""; }; - EE3BD31D681144934CA751D4EBE59FBE /* SDLMassageCushionFirmness.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMassageCushionFirmness.h; path = SmartDeviceLink/SDLMassageCushionFirmness.h; sourceTree = ""; }; - EEBA83F076ACB48D5FAF0C28B9E04400 /* SDLImageResolution.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLImageResolution.m; path = SmartDeviceLink/SDLImageResolution.m; sourceTree = ""; }; - EEEFAB8E3FFC61EA0D729CFCA1DF85F5 /* Pods-MobileWeather.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MobileWeather.release.xcconfig"; sourceTree = ""; }; - EF6117AA0363308CE09FE3E3A578564A /* SDLVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVersion.m; path = SmartDeviceLink/SDLVersion.m; sourceTree = ""; }; - EF925E86FABB82836176E8B05534DE9F /* SDLMenuManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMenuManagerConstants.h; path = SmartDeviceLink/SDLMenuManagerConstants.h; sourceTree = ""; }; - EFC4194E558FB1558B3CB47C41F68BE1 /* SDLStreamingVideoScaleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLStreamingVideoScaleManager.h; path = SmartDeviceLink/SDLStreamingVideoScaleManager.h; sourceTree = ""; }; - F02F9007512F1E4FA4D094A117532E40 /* SDLResponseDispatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLResponseDispatcher.h; path = SmartDeviceLink/SDLResponseDispatcher.h; sourceTree = ""; }; - F0B8848BE9A446F837F0690DDED95563 /* SDLVrHelpItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLVrHelpItem.h; path = SmartDeviceLink/SDLVrHelpItem.h; sourceTree = ""; }; - F0F72587391C1C5AB8C181F91DA3ABCF /* SDLLayoutMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLLayoutMode.h; path = SmartDeviceLink/SDLLayoutMode.h; sourceTree = ""; }; - F10B8AB7BDA6627AA906D8076EACAE16 /* SDLHMIPermissions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLHMIPermissions.h; path = SmartDeviceLink/SDLHMIPermissions.h; sourceTree = ""; }; - F1474259B2634C2CA09FBC4E9EC0F197 /* SDLGetSystemCapabilityResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLGetSystemCapabilityResponse.h; path = SmartDeviceLink/SDLGetSystemCapabilityResponse.h; sourceTree = ""; }; - F15B9DBA698067E52DAF11F273D8C305 /* SDLTouchType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchType.m; path = SmartDeviceLink/SDLTouchType.m; sourceTree = ""; }; - F15F88F1FB854998E6F08EFE580379A1 /* SDLDisplayType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDisplayType.h; path = SmartDeviceLink/SDLDisplayType.h; sourceTree = ""; }; - F2294C32AA5333D43982A700A5D97711 /* SDLMediaServiceManifest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLMediaServiceManifest.h; path = SmartDeviceLink/SDLMediaServiceManifest.h; sourceTree = ""; }; - F27A5F1AE23A8CC4875C2B9F720E0983 /* SDLAppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAppInfo.h; path = SmartDeviceLink/SDLAppInfo.h; sourceTree = ""; }; - F297A1D12DA6A40D653E588BCFB5BE1F /* SDLLightState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLLightState.m; path = SmartDeviceLink/SDLLightState.m; sourceTree = ""; }; - F347411CD5DA8210885B978CC14AB768 /* SDLWayPointType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWayPointType.m; path = SmartDeviceLink/SDLWayPointType.m; sourceTree = ""; }; - F3C46904E4C375379797C22AD77B4E79 /* SDLMsgVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMsgVersion.m; path = SmartDeviceLink/SDLMsgVersion.m; sourceTree = ""; }; - F3EBD6B66041D66C2196112E820E644E /* SDLSecondaryTransportManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSecondaryTransportManager.m; path = SmartDeviceLink/SDLSecondaryTransportManager.m; sourceTree = ""; }; - F453F9BFB3B93AA2625EE2FBBB625D24 /* SDLDeviceInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeviceInfo.m; path = SmartDeviceLink/SDLDeviceInfo.m; sourceTree = ""; }; - F45E77EB88561822BCBB70591945A179 /* SDLTouchCoord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouchCoord.m; path = SmartDeviceLink/SDLTouchCoord.m; sourceTree = ""; }; - F47E1861039AE8C9169792FC3ADCA6F4 /* SDLTCPTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLTCPTransport.h; path = SmartDeviceLink/SDLTCPTransport.h; sourceTree = ""; }; - F486561AF5F904ABC8067B60C4EECF23 /* SDLButtonCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLButtonCapabilities.m; path = SmartDeviceLink/SDLButtonCapabilities.m; sourceTree = ""; }; - F498D01DC4282CD4E4C51C6511F9D57F /* SDLPhoneCapability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPhoneCapability.h; path = SmartDeviceLink/SDLPhoneCapability.h; sourceTree = ""; }; - F504801CD4380D506BB8BFFCF7087AAC /* SDLGetWayPointsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGetWayPointsResponse.m; path = SmartDeviceLink/SDLGetWayPointsResponse.m; sourceTree = ""; }; - F5903A4BA6C59D4D52E4F8EDA87E0AD5 /* SDLECallConfirmationStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLECallConfirmationStatus.m; path = SmartDeviceLink/SDLECallConfirmationStatus.m; sourceTree = ""; }; - F618C99CCA734DA992DC8FF3AF0415BC /* SDLShowConstantTBTResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLShowConstantTBTResponse.h; path = SmartDeviceLink/SDLShowConstantTBTResponse.h; sourceTree = ""; }; - F62DC0A1FB87B2CE3F9928C0AC3BA403 /* SDLPutFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPutFile.h; path = SmartDeviceLink/SDLPutFile.h; sourceTree = ""; }; - F72C939EDB942180ADF30F6AB0ADC7AA /* SDLListFilesOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFilesOperation.h; path = SmartDeviceLink/SDLListFilesOperation.h; sourceTree = ""; }; - F75444C19206F2D27C8E558236DD8652 /* SDLDriverDistractionState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDriverDistractionState.m; path = SmartDeviceLink/SDLDriverDistractionState.m; sourceTree = ""; }; - F7901CE8B0D66BE7D80603D36AC4C9F0 /* SDLFuelType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLFuelType.m; path = SmartDeviceLink/SDLFuelType.m; sourceTree = ""; }; - F7BD7935852D12459264EA6168F97B4D /* SDLUnpublishAppService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLUnpublishAppService.m; path = SmartDeviceLink/SDLUnpublishAppService.m; sourceTree = ""; }; - F8013668A1A4E9A3111D5B2E843FBA13 /* SDLSubscribeButtonResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSubscribeButtonResponse.m; path = SmartDeviceLink/SDLSubscribeButtonResponse.m; sourceTree = ""; }; - F8C42B1050E473F7203DF663AF91285E /* SDLRPCMessageType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCMessageType.h; path = SmartDeviceLink/SDLRPCMessageType.h; sourceTree = ""; }; - F8EDD51E7C160D973CB9023C262ADF2E /* SDLEndAudioPassThru.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLEndAudioPassThru.m; path = SmartDeviceLink/SDLEndAudioPassThru.m; sourceTree = ""; }; - F907665A4BB12E254E52BB764DBAB620 /* SDLCarWindowViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCarWindowViewController.m; path = SmartDeviceLink/SDLCarWindowViewController.m; sourceTree = ""; }; - F96C3EF342C56B944AB2446197932888 /* SDLDeliveryMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLDeliveryMode.m; path = SmartDeviceLink/SDLDeliveryMode.m; sourceTree = ""; }; - F97131D44A7A2ED6C07482A31E5F6104 /* SDLSlider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSlider.h; path = SmartDeviceLink/SDLSlider.h; sourceTree = ""; }; - F99146EE0F08A756FF12683196D348C9 /* SDLSendHapticDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSendHapticDataResponse.m; path = SmartDeviceLink/SDLSendHapticDataResponse.m; sourceTree = ""; }; - F9AB9291462E3AB06586D1F3A200B6F3 /* SDLScreenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLScreenManager.h; path = SmartDeviceLink/SDLScreenManager.h; sourceTree = ""; }; - FA15E0A79BCB48FD659C8724AE5E8D70 /* SDLCreateWindowResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLCreateWindowResponse.h; path = SmartDeviceLink/SDLCreateWindowResponse.h; sourceTree = ""; }; - FA34FAF6769FF6E67146C25E3918D1BE /* SDLRPCResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLRPCResponse.m; path = SmartDeviceLink/SDLRPCResponse.m; sourceTree = ""; }; - FAE209F3C74B1C886D2FEBB75394F38F /* SDLVehicleDataStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLVehicleDataStatus.m; path = SmartDeviceLink/SDLVehicleDataStatus.m; sourceTree = ""; }; - FAFC34A107469B13834960D07A94FC42 /* SDLWeatherAlert.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherAlert.m; path = SmartDeviceLink/SDLWeatherAlert.m; sourceTree = ""; }; - FB292819C30F7CC71BE8B0A31B91068D /* SDLGrid.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLGrid.m; path = SmartDeviceLink/SDLGrid.m; sourceTree = ""; }; - FBA1886A6AB5675C30E45BE6BDC08ABD /* SDLAppServiceRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLAppServiceRecord.m; path = SmartDeviceLink/SDLAppServiceRecord.m; sourceTree = ""; }; - FBB16D3DFAE9EF0F599A37586C34BCF7 /* SDLKeyboardDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardDelegate.h; path = SmartDeviceLink/SDLKeyboardDelegate.h; sourceTree = ""; }; - FBC39295240049B5FF46205827728BFE /* SDLPerformAudioPassThruResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLPerformAudioPassThruResponse.h; path = SmartDeviceLink/SDLPerformAudioPassThruResponse.h; sourceTree = ""; }; - FBC6B21F650C1A094011B17D5E921EE8 /* SDLProtocolMessageAssembler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLProtocolMessageAssembler.h; path = SmartDeviceLink/SDLProtocolMessageAssembler.h; sourceTree = ""; }; - FBD38969E857441AA3068AD8C9ED8B42 /* SDLMediaServiceData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLMediaServiceData.m; path = SmartDeviceLink/SDLMediaServiceData.m; sourceTree = ""; }; - FBF01691FA6A64E8B91B258A087254D5 /* SDLAddSubMenuResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLAddSubMenuResponse.h; path = SmartDeviceLink/SDLAddSubMenuResponse.h; sourceTree = ""; }; - FBF8392198B21FE38EBE90F5DD79437F /* SDLDistanceUnit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLDistanceUnit.h; path = SmartDeviceLink/SDLDistanceUnit.h; sourceTree = ""; }; - FBFE07B70439DC670284DEB1C34BA90D /* SDLCacheFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLCacheFileManager.m; path = SmartDeviceLink/SDLCacheFileManager.m; sourceTree = ""; }; - FC37CDD446A3599BE497DE78F8931C4F /* SDLWeatherData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWeatherData.m; path = SmartDeviceLink/SDLWeatherData.m; sourceTree = ""; }; - FC38C9FCF3E7343DF43B8368DC546B42 /* SDLSystemRequestResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLSystemRequestResponse.m; path = SmartDeviceLink/SDLSystemRequestResponse.m; sourceTree = ""; }; - FC419B6D5F4F5B911DB8B2F295E08532 /* Pods-MobileWeather-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MobileWeather-dummy.m"; sourceTree = ""; }; - FC45F95EB06DB46BEF630E65F773DD1C /* SDLPowerModeStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPowerModeStatus.m; path = SmartDeviceLink/SDLPowerModeStatus.m; sourceTree = ""; }; - FC49D6A818044BC964C9DFC092C0A8DF /* SDLWindowType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLWindowType.m; path = SmartDeviceLink/SDLWindowType.m; sourceTree = ""; }; - FCEA708E983578ACFF71772E8EC543E2 /* SDLButtonPressMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLButtonPressMode.h; path = SmartDeviceLink/SDLButtonPressMode.h; sourceTree = ""; }; - FCEAF8E21008989F4E1DE6BF04801187 /* SDLTouch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLTouch.m; path = SmartDeviceLink/SDLTouch.m; sourceTree = ""; }; - FD9450438A4321ABF2471012E8AB5C70 /* SDLLockScreen.strings */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.strings; name = SDLLockScreen.strings; path = "zh-Hans.lproj/SDLLockScreen.strings"; sourceTree = ""; }; - FE62CE2C7E1A9C2C2276D29ACDE4392B /* SDLHapticRect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLHapticRect.m; path = SmartDeviceLink/SDLHapticRect.m; sourceTree = ""; }; - FE7744F0C66582742EF55FA411E81338 /* SDLListFilesResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLListFilesResponse.h; path = SmartDeviceLink/SDLListFilesResponse.h; sourceTree = ""; }; - FEE104BE89E6E1AFC8970A8566B31A02 /* SDLRPCNotificationNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLRPCNotificationNotification.h; path = SmartDeviceLink/SDLRPCNotificationNotification.h; sourceTree = ""; }; - FEF2016A9D7AE38A97F83A8E40300735 /* BiSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BiSON-umbrella.h"; sourceTree = ""; }; - FF58817A16825E97C73749864272841A /* SDLSetCloudAppProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDLSetCloudAppProperties.h; path = SmartDeviceLink/SDLSetCloudAppProperties.h; sourceTree = ""; }; - FF61F998914A5EB8F53759FEBD2416D2 /* SDLPCMAudioConverter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDLPCMAudioConverter.m; path = SmartDeviceLink/SDLPCMAudioConverter.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 072FE30B51DE3BD5A1AD793BB58D062D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 434BB6186E1C616AAF51687143FBDF2E /* BiSON.framework in Frameworks */, - 68F509B411A9D21346004B2316F5E759 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 59047D00004E0FC863A84D4A108701F4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D6461D76103F1285DA80188D7295EE9 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 6ECD2E914F56D3E2BE62A07561B18D03 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8DB01620F7C5C044421A8952D951B11D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9823B5569DCFBA54362B5478B81102B5 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 01A3524E412C84B88E48937114994213 /* Pods */ = { - isa = PBXGroup; - children = ( - F07FEB30CF9223AE0F038EDED31EEFA8 /* BiSON */, - 79190AE0E09AAB511AF11AD1CED0C631 /* SmartDeviceLink */, - ); - name = Pods; - sourceTree = ""; - }; - 42E3F06399806A758479239FE8C48DF5 /* Frameworks */ = { - isa = PBXGroup; - children = ( - C64A1B5B79B529141EBEF99FD0560328 /* BiSON.framework */, - F3F423CA06AF8F084BD2AF6D368BA938 /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - 47C7166BA760847A0AD362E48BB367E5 /* Support Files */ = { - isa = PBXGroup; - children = ( - DDE35F83F21F26BF020C728950D6C990 /* BiSON.modulemap */, - B4B09C9B8D6AB14F61330FF6FB8E3257 /* BiSON-dummy.m */, - 3146752598F98460737A0816F21D1DC0 /* BiSON-Info.plist */, - E535CD3255E256549582056BB430BAF5 /* BiSON-prefix.pch */, - FEF2016A9D7AE38A97F83A8E40300735 /* BiSON-umbrella.h */, - E0ABE76C5826D12B93EBF61BAAF52F60 /* BiSON.debug.xcconfig */, - C4CE7887593CC1FC33CAE5D179B39AC5 /* BiSON.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/BiSON"; - sourceTree = ""; - }; - 540154A38CD9903DE4406A1DDBCCB05F /* Pods-MobileWeather */ = { - isa = PBXGroup; - children = ( - CADB648304E13078D32B3FD465D4550E /* Pods-MobileWeather.modulemap */, - E4434753B7C23D766EC5A0D8B1EC7D24 /* Pods-MobileWeather-acknowledgements.markdown */, - CBDFD38C9C935811D67494103D5F4E6C /* Pods-MobileWeather-acknowledgements.plist */, - FC419B6D5F4F5B911DB8B2F295E08532 /* Pods-MobileWeather-dummy.m */, - 761CC69C3F5D1EFD734F628AEA4699D0 /* Pods-MobileWeather-frameworks.sh */, - 59D7FD29EEF5AC55F5624BD9B791ADD6 /* Pods-MobileWeather-Info.plist */, - 5E7A92F6F5DF51067E86A63E8CD1EC5C /* Pods-MobileWeather-umbrella.h */, - 67F8B6234CDA01ABF6D0A2BB501FAF2D /* Pods-MobileWeather.debug.xcconfig */, - EEEFAB8E3FFC61EA0D729CFCA1DF85F5 /* Pods-MobileWeather.release.xcconfig */, - ); - name = "Pods-MobileWeather"; - path = "Target Support Files/Pods-MobileWeather"; - sourceTree = ""; - }; - 79190AE0E09AAB511AF11AD1CED0C631 /* SmartDeviceLink */ = { - isa = PBXGroup; - children = ( - 7D9F729C9B351AD1305789B8B2A21936 /* Default */, - BA3A7450871FE17E9BFF7EABA6C36536 /* Support Files */, - ); - path = SmartDeviceLink; - sourceTree = ""; - }; - 7D9F729C9B351AD1305789B8B2A21936 /* Default */ = { - isa = PBXGroup; - children = ( - 4FD6F467D5959B95D867103EEA1CA0D2 /* CGPoint_Util.h */, - 1A08ADB128C672DC69C4127E045F5070 /* CGPoint_Util.m */, - B8C4AFF624FB42A6EEE527432AB9EAA9 /* CVPixelBufferRef+SDLUtil.h */, - B1737F018C1201A37BA9F403EA0E0019 /* CVPixelBufferRef+SDLUtil.m */, - 583045D48F0608C0A7B71AE4D7666158 /* EAAccessory+SDLProtocols.h */, - A875209328BA108883DB60F79AA77ACF /* EAAccessory+SDLProtocols.m */, - 9EFC8BC7FEE4107EC3E3E44D15D11048 /* EAAccessoryManager+SDLProtocols.h */, - 46B479E9DE24EACDF8798380CCC4B19E /* EAAccessoryManager+SDLProtocols.m */, - 93636199EFDA841EF4C2CC4859CE2B6F /* NSBundle+SDLBundle.h */, - C60EA5909682DF758FBFC7F0114743A5 /* NSBundle+SDLBundle.m */, - E88D7898374900884A7E0C3274ACDD65 /* NSMapTable+Subscripting.h */, - 6DEDB66DF7B774B967B556AA20105522 /* NSMapTable+Subscripting.m */, - 9470359FA084F4E00E48F9FCE83F58E1 /* NSMutableArray+Safe.h */, - 2AEFB5FD4FD8D86E84F192A4E8DFCDC3 /* NSMutableArray+Safe.m */, - 3267E75ED2305FABE31E4255A576BFF0 /* NSMutableDictionary+SafeRemove.h */, - 8FFF9A629644A4A7222767D6C63D7E24 /* NSMutableDictionary+SafeRemove.m */, - 879A113E59D1AE7DFEBF6165CDA5A8D2 /* NSMutableDictionary+Store.h */, - 9125F90EF6EEDE90B5699DE26ABE1AC6 /* NSMutableDictionary+Store.m */, - 4C8AB9952510177705B3F01E462FE897 /* NSNumber+NumberType.h */, - 05AF30F572533AFA58903B5BA40CC28B /* SDLAddCommand.h */, - EBEB8360055FF562885140AB8EDC891A /* SDLAddCommand.m */, - E65AB80689651E51BC67BD306B058C30 /* SDLAddCommandResponse.h */, - 223764A1541B9FABCBFF13489C0B8067 /* SDLAddCommandResponse.m */, - 2D4BA9AEA9F55ABDD3453605BCA0C84B /* SDLAddSubMenu.h */, - 9B5A4E5EEBEDE007C98C3E1449D1236B /* SDLAddSubMenu.m */, - FBF01691FA6A64E8B91B258A087254D5 /* SDLAddSubMenuResponse.h */, - 1ECFA9EC3D76BE7DB5AA4AD25DED7262 /* SDLAddSubMenuResponse.m */, - 57AFA95624C62EA40DCF7A4A52DA2D26 /* SDLAirbagStatus.h */, - 12FB6C12FA7C56F07A058C648B52AA9A /* SDLAirbagStatus.m */, - A0A6C0D7A199BCCE8F0FF9593EC73681 /* SDLAlert.h */, - 1C4083DFA322D07EB69325A6B9D19535 /* SDLAlert.m */, - B0DF64B830CBF8A2D3A1F42792E5E927 /* SDLAlertManeuver.h */, - 3FC09BC7628BFAB7CD416C70D3F97726 /* SDLAlertManeuver.m */, - DCE03B2B123ED8E259A090EA186A04C7 /* SDLAlertManeuverResponse.h */, - AEB84A7714266B9D07AF0529C3361737 /* SDLAlertManeuverResponse.m */, - 8D4105D8C883FAEA6442789492798AA6 /* SDLAlertResponse.h */, - CC9604E66648405ECCC5FEF1ED5DAF7D /* SDLAlertResponse.m */, - AE1E83E5226544501924015F9D97A062 /* SDLAmbientLightStatus.h */, - 64D9FFCA2DD46CA3C4112C71901478D2 /* SDLAmbientLightStatus.m */, - 3F46BF5B95E2FE244011A908FAA7404C /* SDLAppHMIType.h */, - E9AE0633C881E09921808B99336A33CD /* SDLAppHMIType.m */, - F27A5F1AE23A8CC4875C2B9F720E0983 /* SDLAppInfo.h */, - 4C0C5BDEA392C2632EF566C04D76A2D0 /* SDLAppInfo.m */, - 5034B677DE11A819CC149521CC6E7720 /* SDLAppInterfaceUnregisteredReason.h */, - D7C7F86F69CEA7AF2F36510A9E3ADF4F /* SDLAppInterfaceUnregisteredReason.m */, - 03156C93EE8442396869D907BBBF3E51 /* SDLAppServiceCapability.h */, - 4946BD85165935E30EBDE5F0983445E0 /* SDLAppServiceCapability.m */, - 0E836B2993410EB417C2123481A4E6CD /* SDLAppServiceData.h */, - 5307CCD102337C9C53D4EFE667B761F4 /* SDLAppServiceData.m */, - 32BD65A04E2AD6AAF6ADC18E5A5DE4EB /* SDLAppServiceManifest.h */, - CBC0300359DEB43A7C09E1D901FCA137 /* SDLAppServiceManifest.m */, - 453036FA291BAD166B2A99B5B41BD415 /* SDLAppServiceRecord.h */, - FBA1886A6AB5675C30E45BE6BDC08ABD /* SDLAppServiceRecord.m */, - ADFFB6C5FDA442555BEF95532E12DEBC /* SDLAppServicesCapabilities.h */, - 756CD9B80439215BBA2D29D4ED43E094 /* SDLAppServicesCapabilities.m */, - 9F909C05943A039E0097211A7DF01A9B /* SDLAppServiceType.h */, - 48307D297D9F19863197DD3A5B8AFBD8 /* SDLAppServiceType.m */, - 2D43F462BE01761031E4AFB3D2476A5F /* SDLArtwork.h */, - 78DB22A547F3877AFC6B9C4837827A62 /* SDLArtwork.m */, - DDE558E5D0448F16F7A74A931431AA9C /* SDLAsynchronousOperation.h */, - D56532D34DE9E68146CFDE8B079E3A04 /* SDLAsynchronousOperation.m */, - 68D12D24E08593D40782A089F52040A9 /* SDLAsynchronousRPCOperation.h */, - 97C932CDEE9602EF8E18CDD087C0022D /* SDLAsynchronousRPCOperation.m */, - 734B4EBB383604167B153F2C9772FB06 /* SDLAsynchronousRPCRequestOperation.h */, - 7E29BFBE9F6D962531E8241C660B4AB4 /* SDLAsynchronousRPCRequestOperation.m */, - 6076ED1F7C813186E772A1EFE55F1B2C /* SDLAudioControlCapabilities.h */, - 75470F9E88B2A0F0EE2F691B6EE20841 /* SDLAudioControlCapabilities.m */, - 1D35EEBE45318E549076542898349235 /* SDLAudioControlData.h */, - 40F09D6CBF3B576AB4BCEE787D60E8A7 /* SDLAudioControlData.m */, - 2BB01A65CEF78E53E9E87B5A49249EF7 /* SDLAudioFile.h */, - 942B330B46ACF300BF3CBDAECE4EC0C9 /* SDLAudioFile.m */, - C10CCA1F0756004AD9418EF06446AD16 /* SDLAudioPassThruCapabilities.h */, - 64A402A669311BB17E6D1A2C93B61EF8 /* SDLAudioPassThruCapabilities.m */, - 752C180C8E3193C1898AFD82D953B208 /* SDLAudioStreamingIndicator.h */, - EB3F3F76167CA66B3B7C05138A413E0C /* SDLAudioStreamingIndicator.m */, - E06E125B93E154B8A67C00E35CF0FB9F /* SDLAudioStreamingState.h */, - EC880BF5EFC8FBD9AB4F63EEC9191983 /* SDLAudioStreamingState.m */, - 8AFC9728863E515D3D032829F1D3C57F /* SDLAudioStreamManager.h */, - 415932F30412FF10E539284D48E8C35D /* SDLAudioStreamManager.m */, - 74E065CD49B4A598CACA6C88D69006AC /* SDLAudioStreamManagerDelegate.h */, - B0659086D16C101E4B3240900C7412B1 /* SDLAudioType.h */, - 74E48158DDD5FF132D47C5C3AB49717F /* SDLAudioType.m */, - BEA81FC17FEEBB29EA50A437D78643CD /* SDLBackgroundTaskManager.h */, - AFE831074AA07078B0E351971A9F0E26 /* SDLBackgroundTaskManager.m */, - CE75998AC803F932D548A5CFAFE79632 /* SDLBeltStatus.h */, - A279D9C92C4169FF98A476AB715168EB /* SDLBeltStatus.m */, - C0150C2F6FCAEDCCE0078FFF6A5F9854 /* SDLBitsPerSample.h */, - 5FF29143ABCD4BB3E7BEDE8C7CCAD067 /* SDLBitsPerSample.m */, - 264FB4E8863E17A2F5E34BECDA538F65 /* SDLBodyInformation.h */, - 5C71161060166817E773FB5B022B4BF7 /* SDLBodyInformation.m */, - E31DCCADEC394A9E791837B3BD64B501 /* SDLButtonCapabilities.h */, - F486561AF5F904ABC8067B60C4EECF23 /* SDLButtonCapabilities.m */, - 359E694B54914987D0F5C484CDD1B988 /* SDLButtonEventMode.h */, - 1776C574198D8077B69B01D3AEDA34E6 /* SDLButtonEventMode.m */, - 27C368EAA0D3AC1FA9ECDC2F63B9730F /* SDLButtonName.h */, - 67855906284D207F83522CBD12130F96 /* SDLButtonName.m */, - 5515A49433320321179C4B897753C324 /* SDLButtonPress.h */, - 0A3CC4629A17A1D6F3FAEC259BA87C31 /* SDLButtonPress.m */, - FCEA708E983578ACFF71772E8EC543E2 /* SDLButtonPressMode.h */, - 042CAE65E8266BAAC2DA30FF0B6CED41 /* SDLButtonPressMode.m */, - 7AFD67A512B7797A6F916B27F9816BC6 /* SDLButtonPressResponse.h */, - B4487AD673E64E1277940325C03E19A6 /* SDLButtonPressResponse.m */, - 0E56E1D0EA294149153FB6F83C9262C2 /* SDLCacheFileManager.h */, - FBFE07B70439DC670284DEB1C34BA90D /* SDLCacheFileManager.m */, - 186CF5CA656EF53E457CC74A91CED8BF /* SDLCancelInteraction.h */, - 8FE0F5BE889755CBF2EACC79F9B92C01 /* SDLCancelInteraction.m */, - 8DAD96E48B6521B50D315831C92D08A4 /* SDLCancelInteractionResponse.h */, - D7B6671467E1F2AFF00152A3BB56DA00 /* SDLCancelInteractionResponse.m */, - 3D6A97EE0FBB026A0734AE80DF2F8572 /* SDLCarModeStatus.h */, - B9B1FC9F310952A5B90D5345964A38C2 /* SDLCarModeStatus.m */, - E0BC4F6E6B159DB9BBF7B3971DE31957 /* SDLCarWindow.h */, - 4C7358A46E79FC0C9BC7001B0A76870E /* SDLCarWindow.m */, - EA76282753B31122B78D182BFFE41253 /* SDLCarWindowViewController.h */, - F907665A4BB12E254E52BB764DBAB620 /* SDLCarWindowViewController.m */, - C68E00EA0C35209A7F5D2308107243E6 /* SDLChangeRegistration.h */, - B85B6A3BDFE2C9C0F9DE2E3DEDFAF475 /* SDLChangeRegistration.m */, - 96D8D2CAC3C9D900AC00A8B3CC5C579F /* SDLChangeRegistrationResponse.h */, - D1038E18768690DF540899139455789E /* SDLChangeRegistrationResponse.m */, - 76060F5A6770E40F2895C5DEE9DBC9F7 /* SDLCharacterSet.h */, - CC96F7C7B44C145A8134DF1D1AA18116 /* SDLCharacterSet.m */, - 0101AB6A004A001DF9E0F740590E99D1 /* SDLCheckChoiceVROptionalOperation.h */, - CCC1D764310276A1B4C8335898707354 /* SDLCheckChoiceVROptionalOperation.m */, - 943DDBBF480DC8B8E38C092C2740CCBE /* SDLChoice.h */, - 9BAF278CD2A85FB40BB8CC980CAF9CE0 /* SDLChoice.m */, - 8223FE4A0640C2107CC1B1C83483D0F4 /* SDLChoiceCell.h */, - 5CC74D66E26424A87C56B92B709CA407 /* SDLChoiceCell.m */, - 1CFA9A9E1169A3206174FA90EF8EDB20 /* SDLChoiceSet.h */, - 515C64D6ED07705316C7A0B26C4DD75E /* SDLChoiceSet.m */, - A7E2467D5DC2019F260BD475A53CA1F3 /* SDLChoiceSetDelegate.h */, - 956C902E2F413D6BBFF38305B200A08F /* SDLChoiceSetManager.h */, - B85ED94C4814B0CC8AE4863BE9962AA3 /* SDLChoiceSetManager.m */, - 96ABA69015D9F51A879DB818FAE3605B /* SDLClimateControlCapabilities.h */, - B1AFFBD09878FE64AE19E65AB5D0D9D0 /* SDLClimateControlCapabilities.m */, - 95569FF6FBE18E8D60E93393B780FC1A /* SDLClimateControlData.h */, - A21A4B3EBE116F516BFBC74130C407B1 /* SDLClimateControlData.m */, - BD0A82F3B2EBBDF4D3C4FB965156E9D3 /* SDLCloseApplication.h */, - 513C5F441F1680E2DF08C9769B0F1261 /* SDLCloseApplication.m */, - DD906B67A1DB81F1A4D78834D42F0C3C /* SDLCloseApplicationResponse.h */, - 71BBFBB7A0760A4443CBB21CA252E8CB /* SDLCloseApplicationResponse.m */, - ABCC08D24761FA1AB3187DB24D8E870D /* SDLCloudAppProperties.h */, - B2C0261F3896CD81D17FC9889CD6080E /* SDLCloudAppProperties.m */, - A874F4C09FE07D7EF94135D92A5A2D31 /* SDLClusterModeStatus.h */, - E1FAE16882639A3A3090385712018D6F /* SDLClusterModeStatus.m */, - CCF47A553221E3AD83C4363CB7B81894 /* SDLCompassDirection.h */, - 72456DACFF4B143FA90DC10239139E18 /* SDLCompassDirection.m */, - C0F9B31189558811D7A53ACF37EC44D9 /* SDLComponentVolumeStatus.h */, - 8B49CB8BCE22DD2B4CF1B57ACC983DCC /* SDLComponentVolumeStatus.m */, - 9BC8BBD75E4ABF360800CAA3D4E00485 /* SDLConfiguration.h */, - 3B4D15588619AC4E8EE11A21A4FB48AD /* SDLConfiguration.m */, - 31D638E1DE7C038192AB4E63575C1E34 /* SDLConnectionManagerType.h */, - E75E53426BB1F8D06083AA6B092186F3 /* SDLControlFramePayloadAudioStartServiceAck.h */, - BF93E5FC62B485106482874C40C58DE6 /* SDLControlFramePayloadAudioStartServiceAck.m */, - A09A123F4100A6E0985F62A0D2C03B11 /* SDLControlFramePayloadConstants.h */, - 91022FC9BD41CC0B9D0193EA80339523 /* SDLControlFramePayloadConstants.m */, - 450FA67BD7C44184F88D81F8C399251F /* SDLControlFramePayloadEndService.h */, - 26D0EBD3EEA72649EE8D2DF59814B8B1 /* SDLControlFramePayloadEndService.m */, - 22A7CA326FC1A31FBED51465160C7D19 /* SDLControlFramePayloadNak.h */, - D08CB1A94F1B6EE63D943DD3D8D04CA0 /* SDLControlFramePayloadNak.m */, - 371F5509AF08468749E6798199E0D549 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h */, - 7EBE26A5E99C203ABB63EB5567F7464E /* SDLControlFramePayloadRegisterSecondaryTransportNak.m */, - DADD98EB7761E07FAD05EA3DD3712E13 /* SDLControlFramePayloadRPCStartService.h */, - 4534A47F55F401B4F9461F6E133F8C1D /* SDLControlFramePayloadRPCStartService.m */, - C38C988FF2BC04E3BECCA8B8B2BBB7E1 /* SDLControlFramePayloadRPCStartServiceAck.h */, - 5A11856FDCCC57B69B91D3F4F8AAAE92 /* SDLControlFramePayloadRPCStartServiceAck.m */, - 2F2375B625B97F66D8E12F064F7521C3 /* SDLControlFramePayloadTransportEventUpdate.h */, - 717DFB9BE8DC679E6C4758105253E4D5 /* SDLControlFramePayloadTransportEventUpdate.m */, - BCBFC65AAAB2DE0ED2B74F8CE3002306 /* SDLControlFramePayloadType.h */, - AEF7CB1324D1DFFE0F15BCED4F422DE1 /* SDLControlFramePayloadVideoStartService.h */, - 5CD8B26768A85697E5937AC3887AFC5E /* SDLControlFramePayloadVideoStartService.m */, - 7356AD33DD279C8B715E26EA25CACD63 /* SDLControlFramePayloadVideoStartServiceAck.h */, - 6F36F6895EC63F83831A850E7A3837B9 /* SDLControlFramePayloadVideoStartServiceAck.m */, - 7A117B857E94BF65B1F05AF4CDAB3A39 /* SDLCreateInteractionChoiceSet.h */, - 45278E4B1599BA7B963172755EE7266C /* SDLCreateInteractionChoiceSet.m */, - 5123591BCB0470FF6776714BBA79CF39 /* SDLCreateInteractionChoiceSetResponse.h */, - C840BD5423689277D6E9D631A85F41E7 /* SDLCreateInteractionChoiceSetResponse.m */, - 867279F7956ED364FE2FF921B6C6E196 /* SDLCreateWindow.h */, - 17BD7329197D81447717DC7ADEB5750E /* SDLCreateWindow.m */, - FA15E0A79BCB48FD659C8724AE5E8D70 /* SDLCreateWindowResponse.h */, - 34E7BCC2915FB3B8486062ECCDC005B7 /* SDLCreateWindowResponse.m */, - 8FE3643BA5E989C40224C3A030671F99 /* SDLDateTime.h */, - C318BCF5948BE73D137E480D096B323B /* SDLDateTime.m */, - 0393BBC2C9A85C3D9B9616139D4F4859 /* SDLDefrostZone.h */, - 6BDFD54AD0587D67A9F01BE35775FEFB /* SDLDefrostZone.m */, - 1C95F788EAED941BB5F58CA21C90D17D /* SDLDeleteChoicesOperation.h */, - 4CDDE49677C1E817827B6E102A64583F /* SDLDeleteChoicesOperation.m */, - 41D2FDD18C0EC502F3D54359F05AEA12 /* SDLDeleteCommand.h */, - E704475B197CAEDFADBA46990776ABED /* SDLDeleteCommand.m */, - 9ED15A0AC24E44401A1D40DED75708E9 /* SDLDeleteCommandResponse.h */, - 8AD71C120072B2C90332685ABC447D8B /* SDLDeleteCommandResponse.m */, - 8968D59CE9F5ACC5102A6047D3E64151 /* SDLDeleteFile.h */, - 9B8DB8AD97F13CD6B4CD990703A087B9 /* SDLDeleteFile.m */, - 1ACA766A3B7A6071AF22334BC052F5D9 /* SDLDeleteFileOperation.h */, - 5E8F3EE9F30783B26AA56961091BF72E /* SDLDeleteFileOperation.m */, - DC5946B04F71B3AB896F1E96200F9AF8 /* SDLDeleteFileResponse.h */, - 8EC6E2E0ADD9BFC51D3ECF0FBFD7E9D0 /* SDLDeleteFileResponse.m */, - AB15A2A894735B2E1F0B2159CA744E96 /* SDLDeleteInteractionChoiceSet.h */, - CBEA9E8BA4BEAF80193321CF986F0A91 /* SDLDeleteInteractionChoiceSet.m */, - 7C90C1D028D438622CABA6C39AD5A9BA /* SDLDeleteInteractionChoiceSetResponse.h */, - 57F213F76C681791E8A6A44907FAD2A2 /* SDLDeleteInteractionChoiceSetResponse.m */, - E7B8F3E8A6E8FEFDC6D3FFF9938E7219 /* SDLDeleteSubMenu.h */, - 12D744FC8FA6C20656E30908E2337246 /* SDLDeleteSubMenu.m */, - 9BA0AF625F5738A2DFEC698A0E10DE96 /* SDLDeleteSubMenuResponse.h */, - 4D30EA1923FA31DA9BE9ABCBAE3F7AC8 /* SDLDeleteSubMenuResponse.m */, - 4F84252F4C10EA659DE486850D8B391F /* SDLDeleteWindow.h */, - 0ED1437EE8F2E16924B445E6758A4682 /* SDLDeleteWindow.m */, - E6676C50EEF5E1C69FF7D27A9C87426A /* SDLDeleteWindowResponse.h */, - 09596899A697F08A6B73A7F8DD24700D /* SDLDeleteWindowResponse.m */, - B054B7658B858C19F36D425B913FCA53 /* SDLDeliveryMode.h */, - F96C3EF342C56B944AB2446197932888 /* SDLDeliveryMode.m */, - A295FC118C7C689512C3EE0C5BEEA414 /* SDLDeviceInfo.h */, - F453F9BFB3B93AA2625EE2FBBB625D24 /* SDLDeviceInfo.m */, - 0014601A825D99EBC10BD35C7B771929 /* SDLDeviceLevelStatus.h */, - D39069B46FB5C4AA3C7B4F149BC3A9E8 /* SDLDeviceLevelStatus.m */, - C8CB8529A9386D82BBB3D5191EF06A18 /* SDLDeviceStatus.h */, - AE3A34EFCC4B7995EFC13CDFF7415942 /* SDLDeviceStatus.m */, - 04612B443920F41D035644D3D5DCC4BD /* SDLDiagnosticMessage.h */, - 534381EF77922C7C1FEB465E9A76C391 /* SDLDiagnosticMessage.m */, - 1FAA770CD2F0D719792C511D30970EE1 /* SDLDiagnosticMessageResponse.h */, - 941C68CF789F85A7C11457585FAACEC6 /* SDLDiagnosticMessageResponse.m */, - 72D0738CE8E4BEA34432415457A21559 /* SDLDialNumber.h */, - 03E209DD429BD45C838761E809185BB6 /* SDLDialNumber.m */, - 9BE641F519C441DF7E48B7D3B6919934 /* SDLDialNumberResponse.h */, - 7A8F68EFE966B4AE635B3514B21823DD /* SDLDialNumberResponse.m */, - 72270B3D9ECE1B81AC9E613184E61E23 /* SDLDIDResult.h */, - CBB1E250DE3E63DEB5019B86C69B0AF4 /* SDLDIDResult.m */, - 1D5A06B422339F19A2053DF7AD2E64B0 /* SDLDimension.h */, - A65FAB1A1AE67773721FE07A100A3E83 /* SDLDimension.m */, - 7133F6AC9671200858B818B6C007DECF /* SDLDirection.h */, - CFB9AA79201C2D9C76506FEDF237FF2A /* SDLDirection.m */, - 9227FC37C76C208644F400388ECD5C95 /* SDLDisplayCapabilities.h */, - C449475F6E0CE07B003A60F21E17DFCC /* SDLDisplayCapabilities.m */, - 4A9E6530D498F353F0F09932DF6E0EAD /* SDLDisplayCapability.h */, - 6E7DCE417C4EE2395C2B60D1AFE92B0B /* SDLDisplayCapability.m */, - 05AC4D2805528F742A66D7477F43714E /* SDLDisplayMode.h */, - 07643F069443483408E8DF939B35C281 /* SDLDisplayMode.m */, - F15F88F1FB854998E6F08EFE580379A1 /* SDLDisplayType.h */, - A429FA0D271048EA825CC81CA78405F0 /* SDLDisplayType.m */, - FBF8392198B21FE38EBE90F5DD79437F /* SDLDistanceUnit.h */, - D83C3F848B3100D62A9329AE8FD1E53A /* SDLDistanceUnit.m */, - 60F046623D1338F618C008003CCE3C24 /* SDLDriverDistractionState.h */, - F75444C19206F2D27C8E558236DD8652 /* SDLDriverDistractionState.m */, - 59E9E6DA852CDB3807D696B60E051419 /* SDLDynamicMenuUpdateAlgorithm.h */, - 7C314283909AA88717A78A8BAF8E331D /* SDLDynamicMenuUpdateAlgorithm.m */, - DDC4519536BC211F5D35E00B5E2BB216 /* SDLDynamicMenuUpdateRunScore.h */, - 61826AE009D0EFACD0702CE842CA700D /* SDLDynamicMenuUpdateRunScore.m */, - AA978EFFF7802A57334EEC147C532F12 /* SDLECallConfirmationStatus.h */, - F5903A4BA6C59D4D52E4F8EDA87E0AD5 /* SDLECallConfirmationStatus.m */, - 5D5380F0BCC170C113C3965CCB7AD31F /* SDLECallInfo.h */, - 8CEB2D97B78F3D03054621D61974E2CB /* SDLECallInfo.m */, - 4DBF14A9018FF0267ED5E2B71139B68D /* SDLElectronicParkBrakeStatus.h */, - 5CF68D31D1441A9B01A4855729375706 /* SDLElectronicParkBrakeStatus.m */, - 1673D555128E7CE618DE3C3279E10278 /* SDLEmergencyEvent.h */, - 0C68BF2CE6FE130CE0B0A970E9E4EB46 /* SDLEmergencyEvent.m */, - 4975CFB97046B46A61DB1C5214F450B7 /* SDLEmergencyEventType.h */, - 56BD8841DFE8B3FBBC4A5C4D08264F39 /* SDLEmergencyEventType.m */, - 6423F48220C9A8B6095DDC2BC8E85DE5 /* SDLEncodedSyncPData.h */, - 57B7CFE27E7FD5DFEDF19B5BF803548D /* SDLEncodedSyncPData.m */, - A47AC218EDD3DC3F3FF2978AEDCF2E78 /* SDLEncodedSyncPDataResponse.h */, - 8C7A37EAF43721950F29116483BA4DA7 /* SDLEncodedSyncPDataResponse.m */, - 51FFB00ABD6490160288E149838F9914 /* SDLEncryptionConfiguration.h */, - 1D42EAA6631F7F9BA8CADAC3A96CC64E /* SDLEncryptionConfiguration.m */, - 90229AC6E8F0ECD254DB821584B0F830 /* SDLEncryptionLifecycleManager.h */, - CF679021B1F310A3DA1CCAD24947CE31 /* SDLEncryptionLifecycleManager.m */, - 55244989E8038AB58D5327F3F2477E52 /* SDLEncryptionManagerConstants.h */, - B12B2C77A2D099C8E8D0415A41140C39 /* SDLEncryptionManagerConstants.m */, - B1B7A6430BC02C0B52516656BA4B5DE6 /* SDLEndAudioPassThru.h */, - F8EDD51E7C160D973CB9023C262ADF2E /* SDLEndAudioPassThru.m */, - 0006A2A7A7BDE53A1AACFDA8155F4F61 /* SDLEndAudioPassThruResponse.h */, - C89447CA3A2D998A71484D9D7EEC0D6E /* SDLEndAudioPassThruResponse.m */, - 719DCAF92882EA100E2C8795B42C2678 /* SDLEnum.h */, - 94170D786D38E92B4C692CF92C3ABD30 /* SDLEnum.m */, - E68B7D0A4A009DA0A9A0B94AB87A0D21 /* SDLEqualizerSettings.h */, - 6301C36A8C5A7DFCE5AE6E9C37BBE530 /* SDLEqualizerSettings.m */, - 543FCEC5A85DD779ABF6ACE810B1AD64 /* SDLError.h */, - B4979E6424D2B5B676846623A6C7D4ED /* SDLError.m */, - 04C4ACFBE0F5E7AA0EB2EDC5D718F443 /* SDLErrorConstants.h */, - 794968D771482D3B2B695A119EEFC610 /* SDLFile.h */, - 606081890E34F1A52EA3621D5B06F45D /* SDLFile.m */, - D2F8D638111E1E1C919E161F33554DCC /* SDLFileManager.h */, - 0FD269E190CA05DE20711325DB709DCA /* SDLFileManager.m */, - 87FBD700D9DBA4D763D490E8394ECAAF /* SDLFileManagerConfiguration.h */, - 2E7DF54F44C89CE28EC111C69CA41A80 /* SDLFileManagerConfiguration.m */, - 7BB6D4E91D8A0F98864787DB620D6AE0 /* SDLFileManagerConstants.h */, - 85C831243400E8D6A9F22B565CD3EE18 /* SDLFileType.h */, - 6B563B100B41A14984E794CEF82D270E /* SDLFileType.m */, - E2FAAAE33D2528754A3DCB84CEBD7047 /* SDLFileWrapper.h */, - 3108E6D3BDA3B4349EC02CCBB85B6307 /* SDLFileWrapper.m */, - 121CC19826232F3072AFD1D83D158A42 /* SDLFocusableItemHitTester.h */, - 2EC447A9F44C626EE8F180C4FD1F774A /* SDLFocusableItemLocator.h */, - 395C9056FCC2D6785467927C7C046C36 /* SDLFocusableItemLocator.m */, - AAD2B4E1C0F33BFEB252C2481A9032F2 /* SDLFocusableItemLocatorType.h */, - 9DAA75FD4629A2D623ECDA3EE735764B /* SDLFuelCutoffStatus.h */, - 390D7DC13089AAF192CF47CA92343067 /* SDLFuelCutoffStatus.m */, - 6BEAB10C4471AE448C7D5D75888C4D2D /* SDLFuelRange.h */, - DF9731F0EEDD01B488AE412DDC732A15 /* SDLFuelRange.m */, - A28A3EF650501C5F764BD9255379B913 /* SDLFuelType.h */, - F7901CE8B0D66BE7D80603D36AC4C9F0 /* SDLFuelType.m */, - 6832CFBF1515389AC3364F399A91817E /* SDLFunctionID.h */, - 6B8EFD1CF76083158407FC36B8E116EE /* SDLFunctionID.m */, - 96BEB464EEABED67F857FCAA31784297 /* SDLGenericResponse.h */, - C8817A9FA9D65B3370E04B0D63880BDF /* SDLGenericResponse.m */, - 1A54A6815830D84DACA174DA5B066347 /* SDLGetAppServiceData.h */, - 689B0C277D4D74417F0703BA219AF3EC /* SDLGetAppServiceData.m */, - 23F819C18E6C44ED74C4333AD5189778 /* SDLGetAppServiceDataResponse.h */, - 378EBD7F1E0220A44E552335CBA83F26 /* SDLGetAppServiceDataResponse.m */, - 2F2C244E4B55F098A0A0B3DB07E12A8C /* SDLGetCloudAppProperties.h */, - CC79D886FC0B1F4F59AC179912B3288C /* SDLGetCloudAppProperties.m */, - 7D357CCADC7705B89FD66DEEE0E6DE86 /* SDLGetCloudAppPropertiesResponse.h */, - 78FE8C97F350096089415B007A7C9167 /* SDLGetCloudAppPropertiesResponse.m */, - 0B7024D8FB7FFF140C2B02CD06A30621 /* SDLGetDTCs.h */, - CCEDBA4CF5298ACECCDBB21E9EF83088 /* SDLGetDTCs.m */, - 873AD46682BA883CE3701B9759A685AF /* SDLGetDTCsResponse.h */, - 36ABD04F09CB9E8C748573174EDFED6A /* SDLGetDTCsResponse.m */, - C7A3524440606449BF1F506F67159172 /* SDLGetFile.h */, - 4EDBC18F6B463FA2C5159B39D11406A8 /* SDLGetFile.m */, - 61F44CE148CA8C83F8C0A4C085412C87 /* SDLGetFileResponse.h */, - 6CB6D2B700919E44F651FE5643F0D5AF /* SDLGetFileResponse.m */, - 3088C13A654A2FE2C6AE29FAC85859A8 /* SDLGetInteriorVehicleData.h */, - 9396AC892DC0B21725B21B23AFA995D3 /* SDLGetInteriorVehicleData.m */, - 9C6C83F225EFD1EB3CF30CCBEC52C689 /* SDLGetInteriorVehicleDataConsent.h */, - BA017EDCE303A08B1FC07733F845ED45 /* SDLGetInteriorVehicleDataConsent.m */, - D0D35FA4BEEE3F908B03AEB2D32E4321 /* SDLGetInteriorVehicleDataConsentResponse.h */, - 64190B404D04BE52AA1D0DEE2805F556 /* SDLGetInteriorVehicleDataConsentResponse.m */, - ADB87610BB6428EAF7555538EE3E9CF5 /* SDLGetInteriorVehicleDataResponse.h */, - B33B4BD373DC2C35A7D1CB0AC87B3376 /* SDLGetInteriorVehicleDataResponse.m */, - 658B5E74262239EB89838E06BCDA0669 /* SDLGetSystemCapability.h */, - 6F85105DF89C5A00C24011ADD2F11E33 /* SDLGetSystemCapability.m */, - F1474259B2634C2CA09FBC4E9EC0F197 /* SDLGetSystemCapabilityResponse.h */, - 789539F0D0B01F9B19A6F15A31E9B06F /* SDLGetSystemCapabilityResponse.m */, - C3F279ED37C2B8521FA6B95F37C61B6F /* SDLGetVehicleData.h */, - 6E238C3A14756784DF2389D96C274D46 /* SDLGetVehicleData.m */, - 2A4A0AB3F4FBC747F8A9BF2C7F38F20B /* SDLGetVehicleDataResponse.h */, - E0482F1FF68E1DE5D306B4F4B9D57CC8 /* SDLGetVehicleDataResponse.m */, - 43E6B7E8C5F8053C7D1CC36D63B661F6 /* SDLGetWayPoints.h */, - 2EE2D6F35E8ED91165271F62FB1A31AB /* SDLGetWayPoints.m */, - 4EB9B954F1D1DCEB391A1D236360F644 /* SDLGetWayPointsResponse.h */, - F504801CD4380D506BB8BFFCF7087AAC /* SDLGetWayPointsResponse.m */, - AE6AE53069716EDC4D28271639B1ECF6 /* SDLGlobalProperty.h */, - 1D503EB0E143D4B5FF04B10A34BC6D16 /* SDLGlobalProperty.m */, - 341C430BE22913BF9CA0B57997C20BE1 /* SDLGlobals.h */, - DE69A7B9DB57BFBF5BD9A2D76ED79B77 /* SDLGlobals.m */, - CE702433D4927A3186F0C2ED53D7F27B /* SDLGPSData.h */, - 97AD120A3AD881B75046604C99B99B22 /* SDLGPSData.m */, - AEE5EB23993F004A5B8717B7811188D6 /* SDLGrid.h */, - FB292819C30F7CC71BE8B0A31B91068D /* SDLGrid.m */, - 1310B5C3A3FD8D5E490FB2B56E5AAC43 /* SDLH264Packetizer.h */, - 2A14F3582266D6F7B75BA4AA85218D3A /* SDLH264VideoEncoder.h */, - 0BED0EB216A163B02E038B24BD163908 /* SDLH264VideoEncoder.m */, - 85AE177498B404861704BE8D54AA5040 /* SDLHapticRect.h */, - FE62CE2C7E1A9C2C2276D29ACDE4392B /* SDLHapticRect.m */, - 6BB5CC306F5A580E2DE14FF2E2AA1009 /* SDLHeadLampStatus.h */, - 5F656263CA5DF65889FE6D8936080E02 /* SDLHeadLampStatus.m */, - 05B65BB837429AB03BD36724BAA2EDB6 /* SDLHexUtility.h */, - 795E1BED3027BAEDD697E8A22A036324 /* SDLHexUtility.m */, - 9CF3282DF31D7BD5C48812D01950DBA5 /* SDLHMICapabilities.h */, - CE844466F3EDF16CC0981DA495566991 /* SDLHMICapabilities.m */, - DEEB8CD3B1A76596EEC8B093838892F3 /* SDLHMILevel.h */, - 23817E0063BEAB1A48262BE111DF3256 /* SDLHMILevel.m */, - F10B8AB7BDA6627AA906D8076EACAE16 /* SDLHMIPermissions.h */, - 1A6CDBAD9F0E1DE4C224214867D802DE /* SDLHMIPermissions.m */, - 6A6546CC22413DE90D216F99190F62B4 /* SDLHMISettingsControlCapabilities.h */, - 94D396845FE301C9BD090468079F6BB7 /* SDLHMISettingsControlCapabilities.m */, - EDD01FD8321E8A489DCCF59E4DE051D9 /* SDLHMISettingsControlData.h */, - E4F5004CD6B82FEDEBE21181B317258D /* SDLHMISettingsControlData.m */, - 5A352F773B0D24E76E0DDA51D741F4F4 /* SDLHMIZoneCapabilities.h */, - BAE82B84E1601BFF59D0A736CDEFE053 /* SDLHMIZoneCapabilities.m */, - BD5725BF0453F0E370C791AFFCA33AB0 /* SDLHybridAppPreference.h */, - 7F676E8F3D670FF0D4C133C69B09A3DC /* SDLHybridAppPreference.m */, - 1878E365B1431D16CB7D13B067382A01 /* SDLIAPConstants.h */, - 1D62134BBF189EA2FAE0F2B9924C1CEA /* SDLIAPConstants.m */, - 9699CEFAE8CC63EAF12D47952326F8E7 /* SDLIAPControlSession.h */, - 9E2182C9F77CC4097FBDD673E8C2836A /* SDLIAPControlSession.m */, - E588D52092688278DFB1ABBD34198268 /* SDLIAPControlSessionDelegate.h */, - B4CDAA4EB638051C5A0474B84B73471A /* SDLIAPDataSession.h */, - EC66B309EDD7459B38A3029CA12705EC /* SDLIAPDataSession.m */, - 798BC3FB68D60AF937EFE55D6BBCE3FF /* SDLIAPDataSessionDelegate.h */, - DE79CEA37357B6F9DD91B9559EEEFEBA /* SDLIAPSession.h */, - ACE4B9AC146F03631EC52683B808D9D2 /* SDLIAPSession.m */, - 5C7DA6DFDBC398CAB62E0896412F9A2A /* SDLIAPTransport.h */, - AF87D39D8C17C6A34DCC703C68689E08 /* SDLIAPTransport.m */, - E958081595D9D09F94B5A4E61223D317 /* SDLIconArchiveFile.h */, - C5C00931EAB51480DCF119086CEF8E38 /* SDLIconArchiveFile.m */, - 0A23C49669583356A1CE449D9EBC74DB /* SDLIgnitionStableStatus.h */, - 06303A86B1B729A73E63863D21AF2925 /* SDLIgnitionStableStatus.m */, - A5B485EB6672E131B13E69E253F738D6 /* SDLIgnitionStatus.h */, - D389BD4118B81FB0470D538239B59E34 /* SDLIgnitionStatus.m */, - 2A5CB6D69CF7CCF3B825B42C91828400 /* SDLImage.h */, - 5607006D258938F74C9BF96F14B4D4DF /* SDLImage.m */, - B1CBAE6C6FCD662932F84593886D1FB9 /* SDLImageField.h */, - AFF3854A1D8BC5DD5484E62759DB92A8 /* SDLImageField.m */, - 1C02BCB7CC0146495C11C4741811815E /* SDLImageField+ScreenManagerExtensions.h */, - 41D72B7B4ED48D2E8526C8AF6D0B9A7B /* SDLImageField+ScreenManagerExtensions.m */, - A499748AF54AFC5230B135A169E0F5AE /* SDLImageFieldName.h */, - 1D3100295E8CA323C777D8F2A6CC4D95 /* SDLImageFieldName.m */, - 86B8AD55F292718C4A52B693B3EA5F2D /* SDLImageResolution.h */, - EEBA83F076ACB48D5FAF0C28B9E04400 /* SDLImageResolution.m */, - 93C7430585EB46BE55AE0CB860148481 /* SDLImageType.h */, - 143137C3210A437C0540124CDBE42B86 /* SDLImageType.m */, - 888125F9D139D66C74276506032B1A88 /* SDLInteractionMode.h */, - 995A7E70BDA2C8AED3E00F4433D46835 /* SDLInteractionMode.m */, - FBB16D3DFAE9EF0F599A37586C34BCF7 /* SDLKeyboardDelegate.h */, - 10210FEFC75394E3B2F578C082EA07D2 /* SDLKeyboardEvent.h */, - 5B19D438E24EAAC5AB55CF4F1D7C0C34 /* SDLKeyboardEvent.m */, - C33288F60F5B286E2B4C53A09F9694A8 /* SDLKeyboardLayout.h */, - 556489F7F882C1F45315798A6F7A1FCC /* SDLKeyboardLayout.m */, - D90CAAF858A78919418815026E93FE6C /* SDLKeyboardProperties.h */, - 47CEE7254EB0F1FF12B377E55631510A /* SDLKeyboardProperties.m */, - 710DFC67FB36B6C8C38EE056D84223ED /* SDLKeypressMode.h */, - 739CEE74F80EDD2726D485B052803409 /* SDLKeypressMode.m */, - 86257F6370BE9E41B823982B8B658DCD /* SDLLanguage.h */, - 4AE79256F1FBD692C97BF6AF4A9AA8F5 /* SDLLanguage.m */, - F0F72587391C1C5AB8C181F91DA3ABCF /* SDLLayoutMode.h */, - 407C6AE6126DB991B09BB16445481048 /* SDLLayoutMode.m */, - 560F738DFD43F14B66D6575B0D922FF8 /* SDLLifecycleConfiguration.h */, - A8431B0F75B502F5FE58F26285618A6D /* SDLLifecycleConfiguration.m */, - 6A84F34CB374BEB91FE4C77E7F10F2FA /* SDLLifecycleConfigurationUpdate.h */, - 23C52C7F9DFB04519EEFA548FB3DAB2C /* SDLLifecycleConfigurationUpdate.m */, - 8B325B54245A4E4E8C66F6A001CF9340 /* SDLLifecycleManager.h */, - 286D40C6D0DF1F4E4AAA22A91CA707E1 /* SDLLifecycleManager.m */, - 3CDFC5B023598A90612B35331554854F /* SDLLifecycleMobileHMIStateHandler.h */, - 53E02D4536535B419DF1F95513E1ECBA /* SDLLifecycleMobileHMIStateHandler.m */, - 0C6D93D8E80998CD66E39C448733F9C8 /* SDLLifecycleProtocolHandler.h */, - 5712312473A00BB85C7BFFF2A9701AB2 /* SDLLifecycleProtocolHandler.m */, - 560968D114523D039B47918DE9FC2B26 /* SDLLifecycleRPCAdapter.h */, - 560110B981BC4B6770CCD1C3367DB69A /* SDLLifecycleRPCAdapter.m */, - DDD04A6F68474FB574C693B9CBD2C5A3 /* SDLLifecycleSyncPDataHandler.h */, - D4DA5A5B16BCBD07008310F92C3960D1 /* SDLLifecycleSyncPDataHandler.m */, - ED7883C58B7DD059DDA8CACAC65B0774 /* SDLLifecycleSystemRequestHandler.h */, - 44F03874CFBDB12A46DAEDBEBC01EDED /* SDLLifecycleSystemRequestHandler.m */, - 47C1FDEBDE61E5805D49671442A7A863 /* SDLLightCapabilities.h */, - 28171FB492C52974721D3E4837BA46EB /* SDLLightCapabilities.m */, - EC8827628FE4A59FFDCFD4E3F3D7C4C2 /* SDLLightControlCapabilities.h */, - 88C48BC3D16BDEC962C895DAC4CD023C /* SDLLightControlCapabilities.m */, - 0623BF96606B58FD9FCC3861992A2F61 /* SDLLightControlData.h */, - 330DE6702F86BC1CEC62353483DA8E09 /* SDLLightControlData.m */, - 0540D028CA350ED05CE0F5B10778ED6D /* SDLLightName.h */, - 38C9A59422FFB04B66D9134E84B54F55 /* SDLLightName.m */, - C57AA9193B116618556C40DAECF8CF3A /* SDLLightState.h */, - F297A1D12DA6A40D653E588BCFB5BE1F /* SDLLightState.m */, - 2A5988CF4E97C39E992F5F38B97769ED /* SDLLightStatus.h */, - 434F7E258AA1DD104EC3CFB0E53CD4F5 /* SDLLightStatus.m */, - C857DA8AD51F0B0A8D7F9682E8435BC5 /* SDLListFiles.h */, - 55E435B983612931D00E4E0BE0F83314 /* SDLListFiles.m */, - F72C939EDB942180ADF30F6AB0ADC7AA /* SDLListFilesOperation.h */, - D7B76D1D26F17C8DFCC609B03BB5F1FF /* SDLListFilesOperation.m */, - FE7744F0C66582742EF55FA411E81338 /* SDLListFilesResponse.h */, - 20FA6E8D363E92E2246382F8E4DFCF0E /* SDLListFilesResponse.m */, - 9401FE979F2F8AEAF58BE90F5FB0B075 /* SDLLocationCoordinate.h */, - 3E4F804CFCE6EB5C7532E3E88A095743 /* SDLLocationCoordinate.m */, - 19B1A83A55BD6197AA3C2050EDA2EDB2 /* SDLLocationDetails.h */, - C1ABA54275646D92071529E1091B1333 /* SDLLocationDetails.m */, - 5CB3BE56CAC7F62425D19C1C143A480E /* SDLLockScreenConfiguration.h */, - 620CF46A0CCD4D50705CBD8D5628B133 /* SDLLockScreenConfiguration.m */, - 736D1EB1BA3C095F2150065772354EC2 /* SDLLockScreenManager.h */, - 9AE76BA22D74D21AAF31A4BC6C4C57F1 /* SDLLockScreenManager.m */, - 9B7C65426660FAD7B711561101E64251 /* SDLLockScreenPresenter.h */, - 756E3677484D98F236D0DEFED0A75FCB /* SDLLockScreenPresenter.m */, - 5A548B2F0B4F07864D70445C29686B09 /* SDLLockScreenRootViewController.h */, - EB18E676157C3DBB7F7B0573085BC479 /* SDLLockScreenRootViewController.m */, - E66A988442959BA4FF4EA6712EB679BA /* SDLLockScreenStatus.h */, - 096D9EC5221B9D6B456EDA53A2E88F92 /* SDLLockScreenStatus.m */, - B3C88EDC28B4D78F4CF7643299FC87EE /* SDLLockScreenStatusManager.h */, - 264466043512A19F32B8FD33808B100C /* SDLLockScreenStatusManager.m */, - CEFD29CFFB2F5E8DB487421FE557262D /* SDLLockScreenViewController.h */, - 0A922B6EE1FBBD668DC4D132D27791DD /* SDLLockScreenViewController.m */, - 824E5F03CBD68420A86B160BD96E6742 /* SDLLogConfiguration.h */, - AAFA82C0BFDBC0D64BF1C7E2CF3ACF45 /* SDLLogConfiguration.m */, - 45C3A2C25877219916DC604237EE989A /* SDLLogConstants.h */, - AFC91724BBDC797A1FBE9062D011BD62 /* SDLLogFileModule.h */, - D7857EF566BA1394F763413B59EC6BC7 /* SDLLogFileModule.m */, - E8FF631234AC949BCF5E7BA206039D09 /* SDLLogFileModuleMap.h */, - 306A96E272DDC349606149EEE10530B3 /* SDLLogFileModuleMap.m */, - 9CD4E213C5B2DB7E81A09C7CA35B69EC /* SDLLogFilter.h */, - 034FAA8CE999DFA9139A4FF001EF3175 /* SDLLogFilter.m */, - 99D249C8F6BCB49BC6DED24ABEACC7BB /* SDLLogMacros.h */, - 70BE2640088F6CC3C663C6A47A6FF4EA /* SDLLogManager.h */, - 9FF74FFAAB89A4E89CD8576C7CCF13EB /* SDLLogManager.m */, - E27890CE8E8F1D7904C65EB29FB9ABD0 /* SDLLogModel.h */, - 9712AC0C44D0ADF928AA7E06E0017867 /* SDLLogModel.m */, - 61E9DF9DE239F356089DAA53E89279CA /* SDLLogTarget.h */, - 7788E7C2DFC41AF4C6F9D275C716316E /* SDLLogTargetAppleSystemLog.h */, - E3CBEA1B6A63BBECF895DD4D924B8BE8 /* SDLLogTargetAppleSystemLog.m */, - E395B89F16DB085EDAA307A77151A4E9 /* SDLLogTargetFile.h */, - BC48020E05365643AE6EA8547CC8AD26 /* SDLLogTargetFile.m */, - B5D86F64C557ECB55D17B7F743CE14A3 /* SDLLogTargetOSLog.h */, - 1F47C488B08BF5122754BFE7BBEC9A14 /* SDLLogTargetOSLog.m */, - 3E264BEF6A4FED13F137E6FD85DE5CF5 /* SDLMacros.h */, - 5219E50197D0F16E89EF7D41AA424C50 /* SDLMaintenanceModeStatus.h */, - 96F0D36E1F88AD285C4F2EDEFC6311FA /* SDLMaintenanceModeStatus.m */, - CB1A61D4933119EA30B60E11CB2A55E4 /* SDLManager.h */, - 50519D317000C62928D0855FCBD05D94 /* SDLManager.m */, - 6390AF2F2F40CABD81E416ABBDB1DA38 /* SDLManagerDelegate.h */, - 6295861AA5817049121A7E98779B04F0 /* SDLMassageCushion.h */, - 144A510FD012E8B3D68672FACAD74C3D /* SDLMassageCushion.m */, - EE3BD31D681144934CA751D4EBE59FBE /* SDLMassageCushionFirmness.h */, - 56348A384ADED81FB3086D9B75D54306 /* SDLMassageCushionFirmness.m */, - 7DE90E5D2B3882F8873FABF50DA4CCA6 /* SDLMassageMode.h */, - 7B7301DAF575A72B748A49FDB3EB87C7 /* SDLMassageMode.m */, - E36CCB25374711839E0FBA532EF81EC0 /* SDLMassageModeData.h */, - BF050F8D21022CD0E6C2AD5A17E6B282 /* SDLMassageModeData.m */, - A71C484F36F765E076597940091AFBAE /* SDLMassageZone.h */, - 4CF246B79DE4F55FA9C83D84B39DED75 /* SDLMassageZone.m */, - 755D72CFBEC566638C5F451190E126C8 /* SDLMediaClockFormat.h */, - 5229ED97F3A6D032C282A878D63A8092 /* SDLMediaClockFormat.m */, - 0E17BE2717EB8E175D224175E94EF0C5 /* SDLMediaServiceData.h */, - FBD38969E857441AA3068AD8C9ED8B42 /* SDLMediaServiceData.m */, - F2294C32AA5333D43982A700A5D97711 /* SDLMediaServiceManifest.h */, - AF122075C0B55246AB9E41B45037309F /* SDLMediaServiceManifest.m */, - 99260C97979258B09198B8E093019FAD /* SDLMediaType.h */, - 87B650D370D62BF0EC67E9AD42F6E22B /* SDLMediaType.m */, - D547BCC4DEAD1C428EDF45B037D5201A /* SDLMenuCell.h */, - 50189BAC7FFDD4590A653D15F6445710 /* SDLMenuCell.m */, - 91F7EE2A199046AFC07A4EE31FA290E0 /* SDLMenuConfiguration.h */, - 299684AFB9A86A8651CE61038ED446F6 /* SDLMenuConfiguration.m */, - 1C28381778F9B6F73AE7045AFF50293B /* SDLMenuLayout.h */, - CAD566B149788CE2A5407D1274A17F00 /* SDLMenuLayout.m */, - 793212B2CF70C31043EA09E6CBA12BD0 /* SDLMenuManager.h */, - E75F183917254542C99CC42AA2CC3860 /* SDLMenuManager.m */, - EF925E86FABB82836176E8B05534DE9F /* SDLMenuManagerConstants.h */, - 82421BB2792D77283F0C50BBB7B95D13 /* SDLMenuParams.h */, - 2D744D294CB82BB107AB6ED0A3F46323 /* SDLMenuParams.m */, - 2AAE3DEF47FBE1D573CA3230BBD12E26 /* SDLMetadataTags.h */, - A3ED9F7681E099143B800F40621D588E /* SDLMetadataTags.m */, - AF2EB782EEAA8529D44E257890E1E3A7 /* SDLMetadataType.h */, - 5A7526B4C33F3597CF06B974E14148B3 /* SDLMetadataType.m */, - BB3973D6F3986950AA95D58E21EA4849 /* SDLModuleData.h */, - 1ACA353CD4341D5B1B5F4211679D6562 /* SDLModuleData.m */, - C5CC066A137773D4739994E979CF375D /* SDLModuleInfo.h */, - 6A800C1FAD99D70B8B29AAE775776B9F /* SDLModuleInfo.m */, - 1D09D03FDBAC839C0B609D7085FE7612 /* SDLModuleType.h */, - E744FAD3C000DB8C868581AA6D77DDE9 /* SDLModuleType.m */, - 39D9C69734E237DD22253CC4F5D9F863 /* SDLMsgVersion.h */, - F3C46904E4C375379797C22AD77B4E79 /* SDLMsgVersion.m */, - 04CA5C324677346256F9E7AF067CA1CC /* SDLMutableDataQueue.h */, - 0303F7A337A026665A7C2B1401481962 /* SDLMutableDataQueue.m */, - A56BE725C12073F229AA3AF5449958A1 /* SDLMyKey.h */, - 20D7BE66EF79F8245CD53754C388C728 /* SDLMyKey.m */, - 720B6176093F9F84BF6916A0DC55B8C1 /* SDLNavigationAction.h */, - 9385A8C466EFC5D2EECF88F1BB4D7E51 /* SDLNavigationAction.m */, - 1B04572C7780D11E01CA5FC3B4CFFAD5 /* SDLNavigationCapability.h */, - 87E0AF0EFF86DC936E595031B5F1260E /* SDLNavigationCapability.m */, - 8027DAC33017EFA7299687C48733622B /* SDLNavigationInstruction.h */, - BCACAA14FF60CF41338964A0B4EB8421 /* SDLNavigationInstruction.m */, - B2B32C73887D39822D8BCF44DD62ADE0 /* SDLNavigationJunction.h */, - 58F3751CB279F04FD7904D88ADC33AD9 /* SDLNavigationJunction.m */, - D1C31EB7EB2D9E54E40DF8F679512777 /* SDLNavigationServiceData.h */, - 0F19ED2AEE6718C0915FC669935F35ED /* SDLNavigationServiceData.m */, - E28D7727C696BB6A9A719269ED72550C /* SDLNavigationServiceManifest.h */, - CB10D3679A8E589017A8F931A055A746 /* SDLNavigationServiceManifest.m */, - 106CC8005ED9499CD5FD635CC6B264FD /* SDLNotificationConstants.h */, - A4D3B69BC21E62BA98351B1E601DBE97 /* SDLNotificationConstants.m */, - 19CCE221988FAB4BFF131C894F0920C4 /* SDLNotificationDispatcher.h */, - 3D7871125148142044AD48FDD6D7511C /* SDLNotificationDispatcher.m */, - ABC42E73E04AA89D2638CE5E086A0BAC /* SDLOasisAddress.h */, - 9E19B35BFCAF24D72CE74D4A958941BB /* SDLOasisAddress.m */, - 4C0A8CFB3D9B165CAB3A25F6C5FE2553 /* SDLObjectWithPriority.h */, - D70663478539E6AEC0CB55388F533D99 /* SDLObjectWithPriority.m */, - 8B5DF3D138D81A3A587A931F4D1E6E9C /* SDLOnAppInterfaceUnregistered.h */, - B59517F7CBBA095EAF2897CDD2F95780 /* SDLOnAppInterfaceUnregistered.m */, - 2A97648721B27DE7C06C2FD5DEE52543 /* SDLOnAppServiceData.h */, - E0693F2A953A77A17E75C29FAFD7F7BD /* SDLOnAppServiceData.m */, - 565121A4F57AC7B9E0FFA044BC680BAB /* SDLOnAudioPassThru.h */, - 4B58A20A29A45608DC88942D98FAD328 /* SDLOnAudioPassThru.m */, - 249F9CCBE006EBE28439076CEDF02C70 /* SDLOnButtonEvent.h */, - 121E4A108B2448717672CE50FEDE685A /* SDLOnButtonEvent.m */, - 7EC3AF92A0155AA2A2E679263C15CA4B /* SDLOnButtonPress.h */, - 79B7A63E7628613EAA9F22EB4C339E89 /* SDLOnButtonPress.m */, - 51210DA0C1436DDB81E521EBA6EADBC8 /* SDLOnCommand.h */, - C4BE27470822649960E3E82D1CCE585F /* SDLOnCommand.m */, - 1EF11FACEE1EFEF67EDBD239E3CFE981 /* SDLOnDriverDistraction.h */, - D4E743BD5D9868B2B5008D089934B105 /* SDLOnDriverDistraction.m */, - BB36829AE73AF06B17E8AEA68D9D2473 /* SDLOnEncodedSyncPData.h */, - D2FECA407FF6E408DFFDA2B1B0C1992A /* SDLOnEncodedSyncPData.m */, - 812DC2376AB84B8D759BA7BDEBA1D186 /* SDLOnHashChange.h */, - 65F149F667D01754A1E0645711F6D6EA /* SDLOnHashChange.m */, - D3566C02B6DB84A4D90013751CD1071F /* SDLOnHMIStatus.h */, - 51B7A6EEE9B94D329C7266DE4D081999 /* SDLOnHMIStatus.m */, - E47779D3822D6421717CCECB009326EF /* SDLOnInteriorVehicleData.h */, - 680E830A922E9C7A8D1E5A3C3D4F580C /* SDLOnInteriorVehicleData.m */, - 8F73D712297E40F90B7E1A7D01DFEC67 /* SDLOnKeyboardInput.h */, - 5DFCB575AA035436B66797EA08EFAB0C /* SDLOnKeyboardInput.m */, - 3DD3A5AE962BF24F342B8F4DB73EC5BC /* SDLOnLanguageChange.h */, - CB073ABF5500F256EAF20D2D4DC6D70A /* SDLOnLanguageChange.m */, - 7E271C1F0006C8746C76DB4C28A25B6C /* SDLOnLockScreenStatus.h */, - 84539D3623D9A251B4E5FA6AE4EFB0EE /* SDLOnLockScreenStatus.m */, - BEEE2F7E9040BABB48B69701692886EF /* SDLOnPermissionsChange.h */, - 64ABE3A5D90ED6ECBAC18ABA973D85CA /* SDLOnPermissionsChange.m */, - 6AE9EC548FF21C32A33D465E73564DE4 /* SDLOnRCStatus.h */, - 6243FFA5A3FBB349C133E1FC613BD6AD /* SDLOnRCStatus.m */, - C98E0A40D9302E06972A9D641D33736F /* SDLOnSyncPData.h */, - 77B17840CA60F5A16BED44DFBD406D00 /* SDLOnSyncPData.m */, - B2A2921F1E5CA7555173077B04B2B228 /* SDLOnSystemCapabilityUpdated.h */, - BC2DDF4C8D4FF0BB610F87922F9DC8C1 /* SDLOnSystemCapabilityUpdated.m */, - 71CFF60AB38BB1284642C3A2EAE0D940 /* SDLOnSystemRequest.h */, - 503A41DB589BA9EC2CCA4AB7017329EF /* SDLOnSystemRequest.m */, - 7D4D2EA95117DB980E905FBBAFCE239E /* SDLOnTBTClientState.h */, - 6BB9CD0CFFBB9A34D5C1833A78E5C956 /* SDLOnTBTClientState.m */, - 5755CA4656E4B0C76ED9F9F63356B985 /* SDLOnTouchEvent.h */, - DE194516542EC704AADE0A2FC32B63FD /* SDLOnTouchEvent.m */, - 02D5E907F468C148CBD8FD6B7AB586DF /* SDLOnVehicleData.h */, - B0B485F2DBCDC2B0D33BE35382C71715 /* SDLOnVehicleData.m */, - B9544257AFAAD1DB9C4EF3E6481FC4A6 /* SDLOnWayPointChange.h */, - 3E485F28BB0A7E258C9F739157505BA7 /* SDLOnWayPointChange.m */, - E7ADE67ACC724F1B63A80B9A025AA67C /* SDLParameterPermissions.h */, - 7828CB789D2D3420C6618DE0D17264C3 /* SDLParameterPermissions.m */, - 9A8CEE67C635CC8AF33D4597EDEF323E /* SDLPCMAudioConverter.h */, - FF61F998914A5EB8F53759FEBD2416D2 /* SDLPCMAudioConverter.m */, - A288A63276C3C43A527ACA059A0ABBA3 /* SDLPerformAppServiceInteraction.h */, - 0A913DD8B429EFA97826EA9C49B3B92B /* SDLPerformAppServiceInteraction.m */, - 267FA2C1E15499A2CD4854991CC471EA /* SDLPerformAppServiceInteractionResponse.h */, - 15626200BCC288FAB8202F84EAD600A5 /* SDLPerformAppServiceInteractionResponse.m */, - 56B207D8614F79DE603BFA47589AFFD6 /* SDLPerformAudioPassThru.h */, - EBA1D7A2FE7B1D749E12E48562AF0E9B /* SDLPerformAudioPassThru.m */, - FBC39295240049B5FF46205827728BFE /* SDLPerformAudioPassThruResponse.h */, - 0E18B248ABDE8B1FCC6F0DBC564ED42D /* SDLPerformAudioPassThruResponse.m */, - 23C50F80EECB17D50B91A723C4564B5B /* SDLPerformInteraction.h */, - BC44973166E4FD5059074DCF268D17F8 /* SDLPerformInteraction.m */, - 885A0F6D020A6CA40C779378E47D90C5 /* SDLPerformInteractionResponse.h */, - 1DF843EEBBB30D7B7389D88A9A97026E /* SDLPerformInteractionResponse.m */, - 8A5780D6C351FCA2B9EBE2AD7E6BBFC5 /* SDLPermissionConstants.h */, - 2398A5BA455B24EEA12F22248F56CB41 /* SDLPermissionElement.h */, - 70BFC55E36D45F3E9FDDDA27271DB651 /* SDLPermissionElement.m */, - B4095FC3652FF81F7C17BD02355E6C58 /* SDLPermissionFilter.h */, - D46CF1A0CC78659C588255386F2C8286 /* SDLPermissionFilter.m */, - 7E7FB3AF5EB94225C574B017EDB897BA /* SDLPermissionItem.h */, - 694C894F8FA7F51AA620E23A7754B19E /* SDLPermissionItem.m */, - B10B875766B1C1B96DF356737056AB9A /* SDLPermissionManager.h */, - 3AEB0447F840FA8B85356311591B1E92 /* SDLPermissionManager.m */, - 63A7E80FD365C91A7303ABC5BE8B11F5 /* SDLPermissionStatus.h */, - A6EFA8634E116455C1E294504A1C5622 /* SDLPermissionStatus.m */, - F498D01DC4282CD4E4C51C6511F9D57F /* SDLPhoneCapability.h */, - 2B6F9761E83A66A7DFFB1E6866464197 /* SDLPhoneCapability.m */, - 8C2B7CEA902C141170ED3DB6E93DDE34 /* SDLPinchGesture.h */, - E9BE11B50B61C825DEC533B7D69EB1FC /* SDLPinchGesture.m */, - 6AA9EBE70B104558299E530D51210C27 /* SDLPowerModeQualificationStatus.h */, - 3B8D419D41D4EBE7F427F3F1A6E8C791 /* SDLPowerModeQualificationStatus.m */, - C22DA0D19740BC3671D0F671BB54CCEC /* SDLPowerModeStatus.h */, - FC45F95EB06DB46BEF630E65F773DD1C /* SDLPowerModeStatus.m */, - 5EB901BBD8CDB6EBCBAE64DA451A00CC /* SDLPredefinedLayout.h */, - 09462E66A2B03CC7B6CFB922D8AF3709 /* SDLPredefinedLayout.m */, - A7E6588DB6AB90B5A4E955365321B36B /* SDLPredefinedWindows.h */, - 180376AD38DA70C86CE6A85F04306440 /* SDLPreloadChoicesOperation.h */, - E0CE6739547F25EDD5501E95B62ABE3A /* SDLPreloadChoicesOperation.m */, - EA74E73DE00325097C89E066596A17F9 /* SDLPrerecordedSpeech.h */, - 2ED5B47BF52A07A02D9AF9F3873C2C5D /* SDLPrerecordedSpeech.m */, - D7BBACE033B0E506CA5830D0C9A67E30 /* SDLPresentChoiceSetOperation.h */, - A719199D3EBFE5A3C4619D3DC80ED70B /* SDLPresentChoiceSetOperation.m */, - 35872C6BFFC71956A1E4CA4786AF126F /* SDLPresentKeyboardOperation.h */, - 7785AC3BC85CD23B07AA11423440A028 /* SDLPresentKeyboardOperation.m */, - 79ABFF6CAF3C11C17386F29E3C4F6561 /* SDLPresetBankCapabilities.h */, - 7529E322A5D70F236ACC18A43FC1DC0A /* SDLPresetBankCapabilities.m */, - 0D3E8ACACCBAA2545A9291162519C02F /* SDLPrimaryAudioSource.h */, - DC461630F2C6E45F81C3CC6B7D8BDD9E /* SDLPrimaryAudioSource.m */, - EC6A18970938783F09F8FBF76216579B /* SDLPrioritizedObjectCollection.h */, - 198A0AA98C61E2A39539B9020C6185CB /* SDLPrioritizedObjectCollection.m */, - 8C2EDACE6ACD4C977F1501873B8C715C /* SDLPRNDL.h */, - 46ECC18D967806C249E479F3E3F6CB28 /* SDLPRNDL.m */, - 416EEFA8DF9920B950D45A438B6CEB3B /* SDLProtocol.h */, - BFF07975F02BE7BDA5311F3AD80E5CDA /* SDLProtocol.m */, - CCF9B35E59B89A18102BA35693887E8B /* SDLProtocolConstants.h */, - 9EAA73147795978ABCFD9E0261FFCAA6 /* SDLProtocolConstants.m */, - 6795D9E1B70C789604C444042F88585F /* SDLProtocolDelegate.h */, - 092B1D219F562512D83E15E5DA0F4859 /* SDLProtocolHeader.h */, - 594AC4B2DF9D7E1F894764C0639282A4 /* SDLProtocolHeader.m */, - B4BA26A3F50E769204A2072B622513BE /* SDLProtocolMessage.h */, - 7513AD379CB357399CB9BF73BEF6E74C /* SDLProtocolMessage.m */, - FBC6B21F650C1A094011B17D5E921EE8 /* SDLProtocolMessageAssembler.h */, - 5C1D9612F74CBE518438548A4CF314FF /* SDLProtocolMessageAssembler.m */, - B1489C28FDE9BC04F3A6D6E52C5CCE68 /* SDLProtocolMessageDisassembler.h */, - D8F4594E3083E428B64B683C182E3BB6 /* SDLProtocolMessageDisassembler.m */, - 41001F8A8E38A09CC2782EDFC033C7A4 /* SDLProtocolReceivedMessageRouter.h */, - 8C95A15F1ABB56F87595C248AF00C07F /* SDLProtocolReceivedMessageRouter.m */, - 34CAA3D2C0E052E3DBD4E08D86483AE3 /* SDLPublishAppService.h */, - 1A91F9EA62F0075F9ACCFF6B6F7FA96E /* SDLPublishAppService.m */, - 5CB2711FB405251BACF64A0A65EAE099 /* SDLPublishAppServiceResponse.h */, - 40A630A6C0CC2E6947903DC5BA0B4A42 /* SDLPublishAppServiceResponse.m */, - F62DC0A1FB87B2CE3F9928C0AC3BA403 /* SDLPutFile.h */, - 1E86A7FA49FEA6AEC0D760D8965C3F6E /* SDLPutFile.m */, - 4525C34999BF5F6C1D46FE4471300796 /* SDLPutFileResponse.h */, - 73B13638D5FFEDDA542EB00CD057988B /* SDLPutFileResponse.m */, - 234C8B719DEDD260BA78077064A1C78D /* SDLRadioBand.h */, - 43D14531D9A7ED9C7FBFA6F900E02E1D /* SDLRadioBand.m */, - 5489C9144952EA64BC69A2AFEA7D3E52 /* SDLRadioControlCapabilities.h */, - CBCB16E496EFD6B64945F52DA1861BB5 /* SDLRadioControlCapabilities.m */, - 894048EEB0466180965743DBF850170F /* SDLRadioControlData.h */, - 6974D1792F6599EC0D62B246B18D24E4 /* SDLRadioControlData.m */, - 1036AF4390ACFEC2CFCDA61FA0498E28 /* SDLRadioState.h */, - 12E2448D342B0C719508658356C62FD8 /* SDLRadioState.m */, - D86564978231DBB8DE6638F518A092E9 /* SDLRAWH264Packetizer.h */, - 70ED7008A3D1DC757EE6B277ACD920AE /* SDLRAWH264Packetizer.m */, - 1E31ADF790B6CD458B58780AEEA2DC29 /* SDLRDSData.h */, - 922F65EF53B7070CDB774AA85CCDF664 /* SDLRDSData.m */, - D976C60F80AF73BCF88057AFCC997BF2 /* SDLReadDID.h */, - 32F53530C42DC0CF82E40AB2BBA5E9CD /* SDLReadDID.m */, - 8AB71279385780F65642903C30E49879 /* SDLReadDIDResponse.h */, - 276CAF8F9D6F163C8789B58614C8F995 /* SDLReadDIDResponse.m */, - D693943ACF1FD2282F38E0EAA87D03BE /* SDLRectangle.h */, - 269BB207FFE8AA6F46208486DEE9BA3A /* SDLRectangle.m */, - DFDCE97BBEEFF7D0876C6518B71FF257 /* SDLRegisterAppInterface.h */, - B648DB91A3098DA7B1E0A5FEE3FE23A6 /* SDLRegisterAppInterface.m */, - C1E045F73DED94B7C08D794BBB769E4B /* SDLRegisterAppInterfaceResponse.h */, - 65DF9500E597CFDE3EF8716944FF3E34 /* SDLRegisterAppInterfaceResponse.m */, - 80E39D52CFCFBFC32F5CB5C74DE3AAA0 /* SDLReleaseInteriorVehicleDataModule.h */, - A7934C16A837F342002F2415BDE82793 /* SDLReleaseInteriorVehicleDataModule.m */, - B333958DAB7FA32DB021C89E59865776 /* SDLReleaseInteriorVehicleDataModuleResponse.h */, - 6BE4EE1D8BE9A2DCD428088444FCC1C8 /* SDLReleaseInteriorVehicleDataModuleResponse.m */, - 2498D14A443BEA451B1C1E3F10FCAE0A /* SDLRemoteControlCapabilities.h */, - 1A5795C050E031087B37E6F0B8B99FE3 /* SDLRemoteControlCapabilities.m */, - A775F59AD389385C91183BEAF59C659B /* SDLRequestType.h */, - 4120946CE7AB246EF162C99558A3845D /* SDLRequestType.m */, - 0B25BFBB7743CC1BB55BB0A462DC320E /* SDLResetGlobalProperties.h */, - 74686EC68A889701EFD2843CB7AED2F1 /* SDLResetGlobalProperties.m */, - 66BB2A05D1451A32684E59CFF3328352 /* SDLResetGlobalPropertiesResponse.h */, - 0AB4971438A6A699BC2C1C2BEDAA999E /* SDLResetGlobalPropertiesResponse.m */, - F02F9007512F1E4FA4D094A117532E40 /* SDLResponseDispatcher.h */, - 64305656CE2B59145E9B70508EF743BC /* SDLResponseDispatcher.m */, - B458E71A46CC3C10BFED1AE0A05A3530 /* SDLResult.h */, - 141A750A4B7658D57C0EA1C5677AC485 /* SDLResult.m */, - 22D8E6FEF71BF3A66088118AA02F0841 /* SDLRGBColor.h */, - 9218B97772D190A9BC1FBAC18A3BF6CE /* SDLRGBColor.m */, - 2B6D168B1F9F66F44F3FCEE9FB5B9F89 /* SDLRPCFunctionNames.h */, - 9760ECDFB3D886D97C84848DB99676AB /* SDLRPCFunctionNames.m */, - 44DE2E913C1FFDEB763626983CED98D4 /* SDLRPCMessage.h */, - 3F743A14A81CBDA132220AA28D5EB8D6 /* SDLRPCMessage.m */, - F8C42B1050E473F7203DF663AF91285E /* SDLRPCMessageType.h */, - 32F90AB5741CFF9D0E0907CE26FD7A62 /* SDLRPCMessageType.m */, - 797A684E702982C756DB5875D2568A32 /* SDLRPCNotification.h */, - 7CDFA658ED93C052C47B55E697EA5794 /* SDLRPCNotification.m */, - FEE104BE89E6E1AFC8970A8566B31A02 /* SDLRPCNotificationNotification.h */, - 47B19A0B5A3387852751CFDCB453B116 /* SDLRPCNotificationNotification.m */, - 593ED256D9FF77FF4B35CE6871FAE25D /* SDLRPCParameterNames.h */, - 2789675DE6523B265B03FC1FF6E6C922 /* SDLRPCParameterNames.m */, - E074E1828DBE20E4E333AF7D5CB7597C /* SDLRPCPayload.h */, - DB2DBF7A190C1B28F89A4CAA411A5074 /* SDLRPCPayload.m */, - 09691EAC4A4C3B8C10A61F569A68E123 /* SDLRPCPermissionStatus.h */, - D23AB515C337D48F2DCD15C942D9FF3D /* SDLRPCPermissionStatus.m */, - 2927EDEFBAA36BACD83602F7DA5F877E /* SDLRPCRequest.h */, - DEB970D4B1463F7A5435F594C50FE27F /* SDLRPCRequest.m */, - C4DE74679FEA4D70BF5121E2F06EE9C6 /* SDLRPCRequestNotification.h */, - 1179CCA11545B1607C32D9B258323DC9 /* SDLRPCRequestNotification.m */, - 12FA04857AC1900EEA2522D1D3101207 /* SDLRPCResponse.h */, - FA34FAF6769FF6E67146C25E3918D1BE /* SDLRPCResponse.m */, - 73CA9166AE10B30401A01C7A47B3029E /* SDLRPCResponseNotification.h */, - AE8A6C8CDEC1BDBFE21E0C20040FB131 /* SDLRPCResponseNotification.m */, - D59096499EC97E026ECAE9E71C7E6DE4 /* SDLRPCStruct.h */, - CC30ACD3F6015F21547F9A433E6385B3 /* SDLRPCStruct.m */, - B2285BB6C866BBF444CF2BA47538A3F9 /* SDLRTPH264Packetizer.h */, - D70AC7BCD19517CAE727871B85813F39 /* SDLRTPH264Packetizer.m */, - 6B9BAA4D99166BCE4C535F65CE463058 /* SDLSamplingRate.h */, - 547FC85E47390A2ECB343B5888FA5AD9 /* SDLSamplingRate.m */, - F9AB9291462E3AB06586D1F3A200B6F3 /* SDLScreenManager.h */, - 6E27B8D2C7EF19BFB8D2813DE94C44F5 /* SDLScreenManager.m */, - 13180087A895C1F6E63F9F01F333ECF1 /* SDLScreenParams.h */, - 66F45795ED9AEACF2E1E1767FF421BFF /* SDLScreenParams.m */, - 2778C8EDF4959730B4DEF535ABC16675 /* SDLScrollableMessage.h */, - 3AC7F7B3D6371B00DBFF85FFF2F4E873 /* SDLScrollableMessage.m */, - 35A95205B4A7E275F1EC800DF558C0EA /* SDLScrollableMessageResponse.h */, - 40A71807A649A656E2DA4942B6C7F861 /* SDLScrollableMessageResponse.m */, - 9AEEE89A8645A94795F0CCCBD4A67D43 /* SDLSeatControlCapabilities.h */, - 4C1E994C0CAD055C104B0306EC25F432 /* SDLSeatControlCapabilities.m */, - 55370BA933CFB6684AC8D5FD1954BD37 /* SDLSeatControlData.h */, - 74933F6EA38779F0E6B6A5E647BFAF3A /* SDLSeatControlData.m */, - AC107A81E5890B57D66A4B85F2F5D37A /* SDLSeatLocation.h */, - 679D66BB05750D3932558F28A7CAD469 /* SDLSeatLocation.m */, - 41D1F2E020D4C94A54B41209DF6979D4 /* SDLSeatLocationCapability.h */, - CBF1AE79CC723B76B9681FA0C5983591 /* SDLSeatLocationCapability.m */, - 1845BF083AE4ED65CD2A0C2493883D93 /* SDLSeatMemoryAction.h */, - C7F54D6509DB0FC7F6534EE13492D451 /* SDLSeatMemoryAction.m */, - C5EFD2B1C3124A2AEC3850F1E0F152B5 /* SDLSeatMemoryActionType.h */, - E56DF2253BB23B90018E5D9A59964BA2 /* SDLSeatMemoryActionType.m */, - 81DC4C775620B12380A4F90F2DAEB081 /* SDLSecondaryTransportManager.h */, - F3EBD6B66041D66C2196112E820E644E /* SDLSecondaryTransportManager.m */, - 1BB6954C66C6C182131AA4914D6690E9 /* SDLSecurityType.h */, - 22F7A01AE367466B8917F5FEBC8F9D1D /* SDLSendHapticData.h */, - AC69D3F94604F5AE723986975A84A9B9 /* SDLSendHapticData.m */, - 8EF82F8948A2C13108DB3E6BC79A6DA9 /* SDLSendHapticDataResponse.h */, - F99146EE0F08A756FF12683196D348C9 /* SDLSendHapticDataResponse.m */, - 400D3E396C926D58653D9550ED9D959D /* SDLSendLocation.h */, - D9FE9E92F26E2D6ED7FF95DF199E8CE4 /* SDLSendLocation.m */, - 6316B004E69CA34EAA8ADB8A39D0E24C /* SDLSendLocationResponse.h */, - 65419DF568C66F604EF0738C1965D385 /* SDLSendLocationResponse.m */, - 8DD86F842662CDA74C3E46854A424F2C /* SDLSequentialRPCRequestOperation.h */, - B1961973F2A5564B8E0FF5586067C528 /* SDLSequentialRPCRequestOperation.m */, - 7E8EAF599769D42519D9B2A60644B86B /* SDLServiceEncryptionDelegate.h */, - 9E5DFA275C99DF550A09B4DC823C5CB4 /* SDLServiceUpdateReason.h */, - C23EE35725C46B65EF548339396EBAE4 /* SDLServiceUpdateReason.m */, - EA623EBC3192894DD618538B8DE469FD /* SDLSetAppIcon.h */, - 9B8D629931815D5CAF7718BE57D7E744 /* SDLSetAppIcon.m */, - 8C4526E09C6759AD25F54590F9002AE8 /* SDLSetAppIconResponse.h */, - 9BE0BD4D689088D8A8B5DBD772D84AD5 /* SDLSetAppIconResponse.m */, - FF58817A16825E97C73749864272841A /* SDLSetCloudAppProperties.h */, - 4C56E0DAFD813A6679773DEA90F319CD /* SDLSetCloudAppProperties.m */, - EB55A0D888F6AE9CCC809D50497AD040 /* SDLSetCloudAppPropertiesResponse.h */, - 89FF276588037654834B38572ADBF860 /* SDLSetCloudAppPropertiesResponse.m */, - 3B79F919E881908F7E25787F89119DDB /* SDLSetDisplayLayout.h */, - 2BE98A3AA92E8E3B7CED340B5CCAE389 /* SDLSetDisplayLayout.m */, - 491D8037228A91B41497B86D86B203FA /* SDLSetDisplayLayoutResponse.h */, - 2FBAF5D2A296ECEE5B1BF22DD9C49B9D /* SDLSetDisplayLayoutResponse.m */, - 894257BCE702D293AB8A34D2CFB19171 /* SDLSetGlobalProperties.h */, - 1FD900A135D822B0C46DB3FC2398B8BC /* SDLSetGlobalProperties.m */, - 19E0135257858BD7168C64D56B8D7A75 /* SDLSetGlobalPropertiesResponse.h */, - 17B209E28D1DF58F13E9ED57702FBE24 /* SDLSetGlobalPropertiesResponse.m */, - 628B5DC307A9450A056D106EF2EABD94 /* SDLSetInteriorVehicleData.h */, - 0F5D4445E6E09F666DD97ABCAF27C4B1 /* SDLSetInteriorVehicleData.m */, - C6706EFEDF66F1A0AD318CAF53CE694E /* SDLSetInteriorVehicleDataResponse.h */, - 21299607CA16E90A5C0710F2E2785242 /* SDLSetInteriorVehicleDataResponse.m */, - D139C1A1E0119ED0A73E0642B12675BD /* SDLSetMediaClockTimer.h */, - BB22292F07E70E3D6FCDE83B18E1B929 /* SDLSetMediaClockTimer.m */, - 058F4086A8EDDCFE4AED952B5F2F9052 /* SDLSetMediaClockTimerResponse.h */, - C44CB14CFDBEDB6BE91BBEE9F2AEBFF5 /* SDLSetMediaClockTimerResponse.m */, - 23383B37C6DBACB1FDCDF86CE54C386A /* SDLShow.h */, - 256D8960A3671CB91AB11F36D27BFE73 /* SDLShow.m */, - 8853DFABCBBEFF6CC328439BFF8817C3 /* SDLShowAppMenu.h */, - 09E7464F993D6552704E1EAFCF1DF78D /* SDLShowAppMenu.m */, - CC0536F1740B2347A3FDD9BE3712BAC9 /* SDLShowAppMenuResponse.h */, - 2B6A3BB418DC18D464B34AC1BAFE6451 /* SDLShowAppMenuResponse.m */, - B36217DF1D67CB1D77EF190BB99F29EE /* SDLShowConstantTBT.h */, - 4A10D8B7901189488B952CD3118CD658 /* SDLShowConstantTBT.m */, - F618C99CCA734DA992DC8FF3AF0415BC /* SDLShowConstantTBTResponse.h */, - BBA4A2A569A352F32B460D479A488FD1 /* SDLShowConstantTBTResponse.m */, - 86689BFD78F7052E93F28B5BBE6A09E6 /* SDLShowResponse.h */, - 3968E1FF70DAB6F1C5CCCDB5E938D6AB /* SDLShowResponse.m */, - 67857A032BAADE3614D213222C35BF8C /* SDLSingleTireStatus.h */, - DFEC3B4824AB98BD46E19AA4744BB016 /* SDLSingleTireStatus.m */, - AB19EDDD4140C1BE93B38F0AAAD31A3D /* SDLSISData.h */, - 738A838988DDC4A7320C42B53C6763F9 /* SDLSISData.m */, - F97131D44A7A2ED6C07482A31E5F6104 /* SDLSlider.h */, - CA15ECE757FC373C85DCC38EC5858576 /* SDLSlider.m */, - 6A6FFDC23241F75DEE1A10FDC70F86EF /* SDLSliderResponse.h */, - 62C0442C9E0D051B0310BB29437BC90B /* SDLSliderResponse.m */, - 0AD7C4BC8864B7BD4E88BB4E14571991 /* SDLSoftButton.h */, - 5103BF7ABB8FE6480004A5CA73CFE14C /* SDLSoftButton.m */, - 2B6FD0DA2716669347AF1A445E85BE70 /* SDLSoftButtonCapabilities.h */, - 8E39C12C56DA2895956477F555CACEAC /* SDLSoftButtonCapabilities.m */, - B773DF4090413C4A96873F27804F6FE8 /* SDLSoftButtonManager.h */, - 76B79D31FD4EBE8EA253F726A2DFA50B /* SDLSoftButtonManager.m */, - 9DCA91383086A7E683C2F22BCF6D2362 /* SDLSoftButtonObject.h */, - BCDAA6BCF5B1B476FC7FBE2731FD3B66 /* SDLSoftButtonObject.m */, - 53B9D390255C9D726244342D1F11DB4E /* SDLSoftButtonReplaceOperation.h */, - 0BF5D3B07CABB0353EF64221323FB214 /* SDLSoftButtonReplaceOperation.m */, - 1FD2A7EAD3CEDFD045490467DAD18F18 /* SDLSoftButtonState.h */, - 91385E176713F556761B0AF1EB7AA94C /* SDLSoftButtonState.m */, - 4B944A8411396B636FBDC617B69BA653 /* SDLSoftButtonTransitionOperation.h */, - 84E5BF87FD6C342013333DB77ACA1E7C /* SDLSoftButtonTransitionOperation.m */, - 98E0B47ADD51DA93F0FC18C094035A10 /* SDLSoftButtonType.h */, - 248505262AF0D2F58A9D246BB6C6BD84 /* SDLSoftButtonType.m */, - 7F67F561A7D9BA5C6B5EFD140526D3F7 /* SDLSpeak.h */, - 9793856BCD714E4673B7C4D1120726F5 /* SDLSpeak.m */, - 0338D36D87FF27EDD72CE81C13BCC65F /* SDLSpeakResponse.h */, - 9718170DC522C4211FF7BFB86F042E6E /* SDLSpeakResponse.m */, - BEF6EAE77CAC2466EB562CFF77920BCC /* SDLSpeechCapabilities.h */, - 29E4B47051A2CBE2B10DFE80E3D19287 /* SDLSpeechCapabilities.m */, - 5784EB866AAB23C634D0887413828115 /* SDLStartTime.h */, - 8F43B62FD5522EFA8F5EDEBE12238EC7 /* SDLStartTime.m */, - 075F751ECFEC7836B3AC765DA2730721 /* SDLStateMachine.h */, - 3A7C79923DB7BE60A8C3C81172411692 /* SDLStateMachine.m */, - A7AFAFFD39AE907E63F13217D5067A14 /* SDLStaticIconName.h */, - 7497259EDCC6CAC9BEF6D2D1E503EF68 /* SDLStaticIconName.m */, - 7FB0ECE1385A23AFF87B1D6E9848D84E /* SDLStationIDNumber.h */, - C0CE5DCD736E603F98EFA824D23FDADB /* SDLStationIDNumber.m */, - CED1E6D7D0EA2E9D6C83332611768557 /* SDLStreamingAudioLifecycleManager.h */, - 41304645E4705DE8828DD0B01D402863 /* SDLStreamingAudioLifecycleManager.m */, - 04BC802E860BD6A7F3005C68FFE4ADE0 /* SDLStreamingAudioManagerType.h */, - 7EFFAA583749B44A2BF65582EA151370 /* SDLStreamingMediaConfiguration.h */, - A0F610055C67181D6FFE3E0D8652FBC7 /* SDLStreamingMediaConfiguration.m */, - 6B2D91153D914C941AEEFE99436B0BBC /* SDLStreamingMediaManager.h */, - 67F2B147BCDCFCAA281D2A08BC379214 /* SDLStreamingMediaManager.m */, - 4F447D50B76CF152BE05CADE1A36C2EF /* SDLStreamingMediaManagerConstants.h */, - 9685342C1846C658E601FB8B352C69B5 /* SDLStreamingMediaManagerConstants.m */, - E6D5D0212AEA8F2CF6AEA8DAD32868E0 /* SDLStreamingMediaManagerDataSource.h */, - 2F7A53F84A8696465E51EAF70199ABE9 /* SDLStreamingProtocolDelegate.h */, - 23459A7914F07050043EE0F27ED4F5AC /* SDLStreamingVideoLifecycleManager.h */, - E7D643B6479CA671FCC68F8D9B079FE1 /* SDLStreamingVideoLifecycleManager.m */, - EFC4194E558FB1558B3CB47C41F68BE1 /* SDLStreamingVideoScaleManager.h */, - D0581F57A3E133B297BFA59428ED20F9 /* SDLStreamingVideoScaleManager.m */, - 9B5139FCDAC1C84B8E10AB5D0D7E1E0E /* SDLSubscribeButton.h */, - A41C2D42956A2BC9ED6622038B85ED8F /* SDLSubscribeButton.m */, - 1F619DCBA443D3BF50D0B314A294B809 /* SDLSubscribeButtonManager.h */, - 953643AF1E768FAB16D37AF6E1107ACC /* SDLSubscribeButtonManager.m */, - DBDB552AB8B94525743E433DEDF82011 /* SDLSubscribeButtonObserver.h */, - 2CDEED18FD1039629786CEEA57699019 /* SDLSubscribeButtonObserver.m */, - 7CEAFEC8445F27E380E37DA46CE0FEE6 /* SDLSubscribeButtonResponse.h */, - F8013668A1A4E9A3111D5B2E843FBA13 /* SDLSubscribeButtonResponse.m */, - E15094CEC1019E3193DC001F59191F6B /* SDLSubscribeVehicleData.h */, - 32C42D7A37E6811A0891E4271E3B53A5 /* SDLSubscribeVehicleData.m */, - A10396D9F0A4682A819D005885FDA4D6 /* SDLSubscribeVehicleDataResponse.h */, - C641082806A93BA26912DBABD29845FC /* SDLSubscribeVehicleDataResponse.m */, - 63E7D4AB6E3E4F7AC84C60288E5D41D9 /* SDLSubscribeWayPoints.h */, - 6C058FD535A44116F3B9EC5AAC90DB06 /* SDLSubscribeWayPoints.m */, - AC01AEE997639AA2260C7CB7AF71C4C3 /* SDLSubscribeWayPointsResponse.h */, - 3ED9AAC40D94011EA3DFB96F5394A88A /* SDLSubscribeWayPointsResponse.m */, - 8DCE4D9A1ECFC1B74D7B4C95CBDC5A0A /* SDLSupportedSeat.h */, - 8B2BB6B7C29FB74F9FC111836E3FDC00 /* SDLSupportedSeat.m */, - 6C720BC1768C931937E27B5512056F9D /* SDLSyncMsgVersion.h */, - 8A60138A12628B558D512D97D89EE5B2 /* SDLSyncMsgVersion.m */, - 3116BCED42B3229298A5A04AFEACEB97 /* SDLSyncPData.h */, - 90BA4BFF5CAD58299D1A0CBC8CFA45FD /* SDLSyncPData.m */, - 1CCDAAE659DCA593607D4BF6558C25CE /* SDLSyncPDataResponse.h */, - 20AA06A772B16D6AFF72CC6CA4ECBE20 /* SDLSyncPDataResponse.m */, - 00FF637FC89DC702B5A3B6AA9D2D2039 /* SDLSystemAction.h */, - 6327F4CF9F830BB34651793AA66D1377 /* SDLSystemAction.m */, - 8B3F91D4B24F4C2C59889390112438B1 /* SDLSystemCapability.h */, - 8E42A8B49F8AA2A40213699E2A1C40BF /* SDLSystemCapability.m */, - 565B3BF287FB32FC25688D47A589EACC /* SDLSystemCapabilityManager.h */, - 1C320F686525DE123071E06FE38A4733 /* SDLSystemCapabilityManager.m */, - CCFBCFEAE99E82FA228AFBDFA25BFE2A /* SDLSystemCapabilityObserver.h */, - B7A9DB758AF9D71ED356105B12453644 /* SDLSystemCapabilityObserver.m */, - A256F032355513227EF3F0E7BC0D121D /* SDLSystemCapabilityType.h */, - E98EB0FB9B881074126B6496AE6EE4A6 /* SDLSystemCapabilityType.m */, - 74B94C300012972D84ADFCB8F8E1CF22 /* SDLSystemContext.h */, - 4DDB64CACEBCF991EC3567F7211CF4D7 /* SDLSystemContext.m */, - 6802538CA9682265946D00C4029FA1AF /* SDLSystemRequest.h */, - 0692FFE8FAC6940F376FCEF685DDC7B1 /* SDLSystemRequest.m */, - 1A030F2B6E37938FF8043D0017F09F80 /* SDLSystemRequestResponse.h */, - FC38C9FCF3E7343DF43B8368DC546B42 /* SDLSystemRequestResponse.m */, - 1ADC53976D99CE2F85B0E80D35F54E94 /* SDLTBTState.h */, - 3BEA52EFF09F88D06D5BBDFE47ACB86A /* SDLTBTState.m */, - F47E1861039AE8C9169792FC3ADCA6F4 /* SDLTCPTransport.h */, - 0C75420A65D82C21EDD26CEFF38A1BBA /* SDLTCPTransport.m */, - 481E981C3D01379187FF066BD3C0DABA /* SDLTemperature.h */, - CDCD325FB9D69CF0D80F1C46381EEED5 /* SDLTemperature.m */, - 17B584482168B64D8A9B1D66FD274FB7 /* SDLTemperatureUnit.h */, - 7D3DC9F22E4F546F8A133454410C7091 /* SDLTemperatureUnit.m */, - E8AF7FA3A3B233DDB4F14996698E8FE0 /* SDLTemplateColorScheme.h */, - 802EC4A98FA4600B644BF8C09D41BA44 /* SDLTemplateColorScheme.m */, - DCFD55E0C6865C089002A13599E34D97 /* SDLTemplateConfiguration.h */, - A44C3037DEC000D177A8E94BECA4B95C /* SDLTemplateConfiguration.m */, - 09E0B697D5D3515000987CB02ED7EF2A /* SDLTextAlignment.h */, - CBCE52F73B99C2EB241CED559CC155FA /* SDLTextAlignment.m */, - 42438A9D2F6D3292FF657E90823128D4 /* SDLTextAndGraphicManager.h */, - 3D2A524F1F2044F31A8BCD218FCCA1A9 /* SDLTextAndGraphicManager.m */, - BE263957CF097F8038614F284D6503B2 /* SDLTextField.h */, - DC368A37A25AD64AC69F460E5EB32339 /* SDLTextField.m */, - 030B9EFF025F2C40E4F44F1065406AC8 /* SDLTextField+ScreenManagerExtensions.h */, - 9D385296CCF12F9A0B41C02B3DE307DF /* SDLTextField+ScreenManagerExtensions.m */, - 0EE8C22DA5EFA161CCD704956C17C56D /* SDLTextFieldName.h */, - 925B5C5D259A10BE034E8C3403363C5E /* SDLTextFieldName.m */, - 01FC030EB54C7FC64CE1140E0CF51EC2 /* SDLTimer.h */, - A77701E6DFFC3EB08EEC973A1F7D7190 /* SDLTimer.m */, - 931FA41FFCE73EAD4491E531A2BF3CE5 /* SDLTimerMode.h */, - 0B6E8C1AF472B205BEEAA5ACDA1339A3 /* SDLTimerMode.m */, - EB0698F6977CDCFDF81D79A0FDBCD2C9 /* SDLTireStatus.h */, - BDC78482302FF8AC794EE8765A179282 /* SDLTireStatus.m */, - B431E7802E17E1F281E75FF94AC70BB4 /* SDLTouch.h */, - FCEAF8E21008989F4E1DE6BF04801187 /* SDLTouch.m */, - B692A71C44F049B8B83DDCF6B8927340 /* SDLTouchCoord.h */, - F45E77EB88561822BCBB70591945A179 /* SDLTouchCoord.m */, - E5BD5854C96BA4FE20BD941CF41A25F7 /* SDLTouchEvent.h */, - 3E046E87DA6D8162BC3CF15D53AF5F0C /* SDLTouchEvent.m */, - 013F0FD57EDF8FF55737B083957CAE10 /* SDLTouchEventCapabilities.h */, - 7EF11EC23640091B05621565D114E9F4 /* SDLTouchEventCapabilities.m */, - 8558881F294FC3B3B55C638CC2708B36 /* SDLTouchManager.h */, - D4B5DE50493E322D022ECD4BE5E38481 /* SDLTouchManager.m */, - 264B352A2E79FBBE53D7A84B3F98003A /* SDLTouchManagerDelegate.h */, - 3364DED576C91F4B3E9543F8E3F1D22A /* SDLTouchType.h */, - F15B9DBA698067E52DAF11F273D8C305 /* SDLTouchType.m */, - 194A205E3D3AB6329814281A5F801855 /* SDLTPMS.h */, - 9B3CAB29D2B4B5E6B23F89F7C09B52EF /* SDLTPMS.m */, - 813A808D60B18F9235194773796098F2 /* SDLTransportDelegate.h */, - 2559C479FF5977A46C191A0DF82F5A42 /* SDLTransportType.h */, - 717B86B7C8D401095BF86C8890BEFADE /* SDLTriggerSource.h */, - CBEE832F83BA93DFD8764142F6CBA3D6 /* SDLTriggerSource.m */, - A53632E3212C0B4683F082091768234F /* SDLTTSChunk.h */, - A26B3309312952B2AED6A7ADA67DB6D9 /* SDLTTSChunk.m */, - CB8CEF2E6739A98ACE9DB96F08CB2ED3 /* SDLTurn.h */, - C7416C95E6F086E3A8112582FBA43F5B /* SDLTurn.m */, - 590C1C4982D954259C18E6BAF8EA15A0 /* SDLTurnSignal.h */, - 375F2398BB370B3CEDB269657E50A87D /* SDLTurnSignal.m */, - 93B08DECC2D7CA909B9CDA3141DB7B0E /* SDLUnpublishAppService.h */, - F7BD7935852D12459264EA6168F97B4D /* SDLUnpublishAppService.m */, - 755EC40C9CDFD1F64E17F5F7B58C3FFB /* SDLUnpublishAppServiceResponse.h */, - A9E0567B3A13DFD90B87980D7B9C2A35 /* SDLUnpublishAppServiceResponse.m */, - 5F13B63A4EAD46B06716304725A8B45C /* SDLUnregisterAppInterface.h */, - 75C363A47DCF966B0F26AC9DF8623EFE /* SDLUnregisterAppInterface.m */, - 95FEDB3A040A9AF27C4F297BB1D4B137 /* SDLUnregisterAppInterfaceResponse.h */, - AB95F07898AACB764288FB68551926A7 /* SDLUnregisterAppInterfaceResponse.m */, - 13F5B04D46A1927416EB7B00EC10D588 /* SDLUnsubscribeButton.h */, - A5C983C7E972FDF63900044F87CBB3DC /* SDLUnsubscribeButton.m */, - E8F6D5DF57737B1814A0C47D2D638B89 /* SDLUnsubscribeButtonResponse.h */, - 24EC57E64CE1C46DC722D87EDCCBE81F /* SDLUnsubscribeButtonResponse.m */, - 9AB0ECB1844711AAB00BE85D75CDB9B8 /* SDLUnsubscribeVehicleData.h */, - D84CA7BBE7B7548D37D20852C77A974C /* SDLUnsubscribeVehicleData.m */, - E5B5D96B206B481EDA794734FDF0120F /* SDLUnsubscribeVehicleDataResponse.h */, - A3B1CF955FF3C570C55831E8B43B2068 /* SDLUnsubscribeVehicleDataResponse.m */, - E544DB7D1612FA15EF84618495E675FA /* SDLUnsubscribeWayPoints.h */, - CA1172141E4430CBCB9C7B46FA2362F4 /* SDLUnsubscribeWayPoints.m */, - 4722008FD5C647B6F89537D21F158386 /* SDLUnsubscribeWayPointsResponse.h */, - D64070C063A2A910A459CAE2E7A4679D /* SDLUnsubscribeWayPointsResponse.m */, - 0719C780E196AC9980E531CF8FBD8088 /* SDLUpdateMode.h */, - 5BC04274374151301839F46AAE270B2C /* SDLUpdateMode.m */, - 85FF8FC6AE8E88BF0CA87D995EEEE5E7 /* SDLUpdateTurnList.h */, - 78CCB2B40906D5C1D9AC673498D3D31D /* SDLUpdateTurnList.m */, - 7252AE8CFD85B98CF08E197488052DC1 /* SDLUpdateTurnListResponse.h */, - CA4E2E2D6448CAAB671EE663AF8C9038 /* SDLUpdateTurnListResponse.m */, - 2483492441C4BEB1F8A9B82BAC067681 /* SDLUploadFileOperation.h */, - 32614CFD26D45B1414C5745CF0EFC3EC /* SDLUploadFileOperation.m */, - 25A19CDDD7442D5D9F541CD6664CED80 /* SDLV1ProtocolHeader.h */, - 697EB906700E028BBEB4A35248DC2B56 /* SDLV1ProtocolHeader.m */, - 1B07D32813B19DEED174BB740E4AE97A /* SDLV1ProtocolMessage.h */, - 8078F5D8FD2E5AA8F5B8AD58492E41F8 /* SDLV1ProtocolMessage.m */, - 972B7E177642FF7F73935ABD0DF3B924 /* SDLV2ProtocolHeader.h */, - C594D7D022ADDBB1CCA1C39D63737DD4 /* SDLV2ProtocolHeader.m */, - C4F791D12BE19DF77A3BCC8EEB641295 /* SDLV2ProtocolMessage.h */, - 07B6C54F0471CF191AA538E250A10A1C /* SDLV2ProtocolMessage.m */, - 5E2B0AAB2CCBFBD6FAC8F2B04D2A0C31 /* SDLVehicleDataActiveStatus.h */, - 5BDE7214FFD1799A060E153912422D29 /* SDLVehicleDataActiveStatus.m */, - 17117CBD93690A080777FF3CCAB14EBF /* SDLVehicleDataEventStatus.h */, - 9F20535D9DEA52BADB1B4063B4EAA92E /* SDLVehicleDataEventStatus.m */, - B006F22A5BF2027E0B3A10A8332C0AB1 /* SDLVehicleDataNotificationStatus.h */, - CEC2979DED81E3F2C7CE44D570F2C83C /* SDLVehicleDataNotificationStatus.m */, - A6077950B867FA52904D60977A57F2BD /* SDLVehicleDataResult.h */, - 53C9FB09310F3715EB6A1F8329DEA635 /* SDLVehicleDataResult.m */, - C57EE820C482DB351A5D22661395FD35 /* SDLVehicleDataResultCode.h */, - 20B9DF79B0ED0674C8ED798A7D73B3F2 /* SDLVehicleDataResultCode.m */, - 406D36F0D5A4360A34D547F29DAEC507 /* SDLVehicleDataStatus.h */, - FAE209F3C74B1C886D2FEBB75394F38F /* SDLVehicleDataStatus.m */, - 337B14C8810BEC7C71631851E3F7C134 /* SDLVehicleDataType.h */, - 171E13E59404914970C3C1146AACEF54 /* SDLVehicleDataType.m */, - C65504710D6D14CB30F9BA892B1A289C /* SDLVehicleType.h */, - 8E6C4ADE7103309719A9A2A77D95DFA0 /* SDLVehicleType.m */, - 5A6B3017F1431C58D97751955A16C720 /* SDLVentilationMode.h */, - 810E44A8EB4510C42EDE2EDC43A78459 /* SDLVentilationMode.m */, - 3ED13A45BA2BAA69E7C1CE75280162A1 /* SDLVersion.h */, - EF6117AA0363308CE09FE3E3A578564A /* SDLVersion.m */, - 0A3EDAEBB63DC81EB0D8197E941D92BA /* SDLVideoEncoderDelegate.h */, - C4FFC5C7A65B24AFC32457EF2DE79160 /* SDLVideoStreamingCapability.h */, - E8F549F3D9954F40A97B6921D59DBDCC /* SDLVideoStreamingCapability.m */, - AC550FFCFB8CA9B1B0C09C0E26595391 /* SDLVideoStreamingCodec.h */, - EB17B3E359DDDCA44BC834ABB8C6C3B8 /* SDLVideoStreamingCodec.m */, - E11A499A146EB80F4A50C4AE2C91E1B7 /* SDLVideoStreamingFormat.h */, - C9F308B39068D7126A74593F5FF3DEB4 /* SDLVideoStreamingFormat.m */, - C9CA43544C48DA82A71EA58A4D291F62 /* SDLVideoStreamingProtocol.h */, - ACD66EC9F2852429481A7BADD06F50A5 /* SDLVideoStreamingProtocol.m */, - 2B7041C400969E9738627D46ED2889FF /* SDLVideoStreamingState.h */, - 648FA1637D806CACB0CC9A6C444D1B77 /* SDLVideoStreamingState.m */, - E6D1FBD011D035D23562FC050633E575 /* SDLViewControllerPresentable.h */, - 760CA141DE64208FD9CF023B7FBA7EF4 /* SDLVoiceCommand.h */, - C2AA680B3D37F013ECB5B16618A27EFA /* SDLVoiceCommand.m */, - 42661551A62CE606353EE0A3A1811CC7 /* SDLVoiceCommandManager.h */, - 6ECC06D0A68E4B2D1C7C59006097D069 /* SDLVoiceCommandManager.m */, - 7B8342EC5F8546285C0DB1E40C10C12E /* SDLVrCapabilities.h */, - A1F84D97CDAFDB9F9F700BCF60FCA9B9 /* SDLVrCapabilities.m */, - F0B8848BE9A446F837F0690DDED95563 /* SDLVrHelpItem.h */, - 2F79001BEC04EAE768A2897A4D2F4684 /* SDLVrHelpItem.m */, - 6576A40CB2829D4CDEE4A81F7E0E7603 /* SDLWarningLightStatus.h */, - 2DCA0A5DCD6DD350EA1CF99B9837B512 /* SDLWarningLightStatus.m */, - 28EB6163FCBF6FF4A874232363F1F693 /* SDLWayPointType.h */, - F347411CD5DA8210885B978CC14AB768 /* SDLWayPointType.m */, - DB8BAEF5BA6F28C6E8D303A40D4F9752 /* SDLWeatherAlert.h */, - FAFC34A107469B13834960D07A94FC42 /* SDLWeatherAlert.m */, - 6CD719AC3C9050D19676E1840EB584D8 /* SDLWeatherData.h */, - FC37CDD446A3599BE497DE78F8931C4F /* SDLWeatherData.m */, - 7D8C0BA72794AC638DB9DF5A48C945D0 /* SDLWeatherServiceData.h */, - 803C2E9668B7B07DB2FF5F2B5A39CDC7 /* SDLWeatherServiceData.m */, - 2338435A2FBDDD2CFAB4A28B846695F0 /* SDLWeatherServiceManifest.h */, - 95B6BE3E72235AC592C06AF8A4F665F9 /* SDLWeatherServiceManifest.m */, - 17FE8D4DAAE70A4CF5E436290E17D17D /* SDLWindowCapability.h */, - E8EAD2E9892034B9E96D9C73757CC2DE /* SDLWindowCapability.m */, - 8B5DB4842C8200AA008032CB8399D93B /* SDLWindowCapability+ScreenManagerExtensions.h */, - 19123175F1282074060FF723AA346973 /* SDLWindowCapability+ScreenManagerExtensions.m */, - B3F2F3DE7B7885DE54384816E98EC71B /* SDLWindowType.h */, - FC49D6A818044BC964C9DFC092C0A8DF /* SDLWindowType.m */, - A70CB0DAFC9A084992447D811A756878 /* SDLWindowTypeCapabilities.h */, - AFE83FD04F32E338D78150E93D001309 /* SDLWindowTypeCapabilities.m */, - BAD2C195FC0F61B8AE3C568DAACD11A4 /* SDLWiperStatus.h */, - 971F3693D99D4DF5AB6B162D6026730A /* SDLWiperStatus.m */, - 87267A348F7A4B4D11EE9347E8677479 /* SmartDeviceLink.h */, - D10B31A393DEE18CB04EA2485ABD892B /* TestSubscribeButtonObserver.h */, - 6748E54A60D5360EEF0582C7FD7CCF5D /* TestSubscribeButtonObserver.m */, - A695A5AFF7C3F88FDBB540D2E02EABA8 /* Resources */, - ); - name = Default; - sourceTree = ""; - }; - 86162AD35B5078217BAB16DE8DDBCA8F /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - 540154A38CD9903DE4406A1DDBCCB05F /* Pods-MobileWeather */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; - A695A5AFF7C3F88FDBB540D2E02EABA8 /* Resources */ = { - isa = PBXGroup; - children = ( - 2F51D8373F62E91462F357675AA277C6 /* SDLAssets.xcassets */, - F82D999CC1B451EA5E5D2B62490AA064 /* SDLLockScreen.storyboard */, - ); - name = Resources; - sourceTree = ""; - }; - BA3A7450871FE17E9BFF7EABA6C36536 /* Support Files */ = { - isa = PBXGroup; - children = ( - 7C79ED7FCDBADAE3DAF6AD095392D371 /* ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist */, - 32B03FBB47DA786AAB86E6FE9445ECA8 /* SmartDeviceLink.modulemap */, - C93D02DE99AD9CEDF69F718811048F8A /* SmartDeviceLink-dummy.m */, - 67293A61FAECED20B679AB1C5047B8DB /* SmartDeviceLink-Info.plist */, - 868E6709A9E8A540B5221E40E674E358 /* SmartDeviceLink-prefix.pch */, - EA703085F3146AFE22FBAD2AE662CAF2 /* SmartDeviceLink-umbrella.h */, - 6FF174A3130345B9E197CC1FC67E0BBE /* SmartDeviceLink.debug.xcconfig */, - 15CC7A0BD292142B96199EFAB3E8D06C /* SmartDeviceLink.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/SmartDeviceLink"; - sourceTree = ""; - }; - CF1408CF629C7361332E53B88F7BD30C = { - isa = PBXGroup; - children = ( - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - 42E3F06399806A758479239FE8C48DF5 /* Frameworks */, - 01A3524E412C84B88E48937114994213 /* Pods */, - DD304B7CA51DC6D1CDE0F21CD545A9F1 /* Products */, - 86162AD35B5078217BAB16DE8DDBCA8F /* Targets Support Files */, - ); - sourceTree = ""; - }; - DD304B7CA51DC6D1CDE0F21CD545A9F1 /* Products */ = { - isa = PBXGroup; - children = ( - 7B1F6B431A4C7D300274DCDBE2BC7043 /* BiSON.framework */, - B658D9594E81D91F5F5FF21E8DD5044A /* Pods_MobileWeather.framework */, - C197364227C0998A9025317EAD699894 /* SmartDeviceLink.bundle */, - 012CE07CE00E36054DA038C75909F04A /* SmartDeviceLink.framework */, - ); - name = Products; - sourceTree = ""; - }; - F07FEB30CF9223AE0F038EDED31EEFA8 /* BiSON */ = { - isa = PBXGroup; - children = ( - C34405251FE0562CCA9FEA6FC884A66E /* bson_array.c */, - C3C759E34418D5E3F059C76D2E9BD03F /* bson_array.h */, - 66E64A3674325E99630AB41079D65E52 /* bson_object.c */, - CCF1E88FAC247087B1D04D8DC970BE73 /* bson_object.h */, - C1D81050F28D62B6EDECEBB7DF2391A0 /* bson_util.c */, - 5ED1A1D0218C25583F5764B0E59FDC4E /* bson_util.h */, - 0EFE9E833025F639CA949ECC8B8C90F0 /* emhashmap.c */, - D8937A5799CDE32614D2726C81F82818 /* emhashmap.h */, - 47C7166BA760847A0AD362E48BB367E5 /* Support Files */, - ); - path = BiSON; - sourceTree = ""; - }; - F3F423CA06AF8F084BD2AF6D368BA938 /* iOS */ = { - isa = PBXGroup; - children = ( - 9B64844A39A1D62E031F6C45AA7A31AD /* Foundation.framework */, - ); - name = iOS; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 101A7953E27756AC6A0A7BB9E7CF35E7 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - E8A50AE74D22C3B1C7383C7A66920E85 /* CGPoint_Util.h in Headers */, - F67B5F6721755926DB4686901905A266 /* CVPixelBufferRef+SDLUtil.h in Headers */, - 89EBC07A9931E19A0D7CE8CCFC9E196D /* EAAccessory+SDLProtocols.h in Headers */, - DFF19085B6F82962C5F1F82038CCB5E2 /* EAAccessoryManager+SDLProtocols.h in Headers */, - 38DBBE38509CC185A4FFDF3FAB2EF403 /* NSBundle+SDLBundle.h in Headers */, - 07EC897039F399022A881C2C79BC77F4 /* NSMapTable+Subscripting.h in Headers */, - 53BBA1FD281AA378016607203506D143 /* NSMutableArray+Safe.h in Headers */, - E7223141AA526DE27508B110154D0FFF /* NSMutableDictionary+SafeRemove.h in Headers */, - D6A04EACEFFB11EE78396AFCD301CFAD /* NSMutableDictionary+Store.h in Headers */, - 975B822DBE1D9BBE04F01841DE7F9A50 /* NSNumber+NumberType.h in Headers */, - 9D128154E213F2A044C61D9129B5BC56 /* SDLAddCommand.h in Headers */, - 06BBEEDC729D9D948D944852399F2F05 /* SDLAddCommandResponse.h in Headers */, - 2E635C926F57C5CF8AC735F9DFC10B19 /* SDLAddSubMenu.h in Headers */, - 4C93079B440925D756A0573344DA4D96 /* SDLAddSubMenuResponse.h in Headers */, - 6AAE591F718CA3C4EEA021C92023D5EA /* SDLAirbagStatus.h in Headers */, - 13FE73ABEC5272554491F31BA15FBE98 /* SDLAlert.h in Headers */, - 108D2F1476FD2D75A98286FCA2B4B36B /* SDLAlertManeuver.h in Headers */, - EAD277CFE95CC66B1039E4D7FDB59286 /* SDLAlertManeuverResponse.h in Headers */, - 58C4CBE7BAAA82F67DBAC49F2E5788BC /* SDLAlertResponse.h in Headers */, - 29333D0AA67B0FE2307D1B6C711CB6A5 /* SDLAmbientLightStatus.h in Headers */, - 06FB324D9C94F818A31A24576F78E93C /* SDLAppHMIType.h in Headers */, - E0A5E4C0E118E169E451821D5BF2E993 /* SDLAppInfo.h in Headers */, - B150E5DE7978C3481FD1EB1A61030C0E /* SDLAppInterfaceUnregisteredReason.h in Headers */, - 72A5665F30946F50FF9A45AAE98D35BA /* SDLAppServiceCapability.h in Headers */, - 33ADC9641FFA2C3C5D4C3CB29270E2CA /* SDLAppServiceData.h in Headers */, - 1252F7AF021293B5517FCA6C9AF44A21 /* SDLAppServiceManifest.h in Headers */, - E810E9E75212B959F2CD0DF82CD36C73 /* SDLAppServiceRecord.h in Headers */, - 19978E124F50D5A1E905B1DE029C3E96 /* SDLAppServicesCapabilities.h in Headers */, - FB6CA35AE69A8225058E8E82E5960A56 /* SDLAppServiceType.h in Headers */, - E976D4852A3C6F9FD8D41E3EDEE93C12 /* SDLArtwork.h in Headers */, - 4F7C9C4E30D040A4AB32FE05BBD9001D /* SDLAsynchronousOperation.h in Headers */, - 1535D3148D3604D2EBEE4EB5E3008417 /* SDLAsynchronousRPCOperation.h in Headers */, - E3DDE087EE819EC6A6C2B47398AD2778 /* SDLAsynchronousRPCRequestOperation.h in Headers */, - BC9735E85FD629EAA8E6D66A17FA922D /* SDLAudioControlCapabilities.h in Headers */, - E8AAE041A57854E0F8D501E9E3069433 /* SDLAudioControlData.h in Headers */, - DD85346FE22FA8E930D3CB3A28796C18 /* SDLAudioFile.h in Headers */, - 1FAFBC495EB3F87999BDDCF1583AD696 /* SDLAudioPassThruCapabilities.h in Headers */, - 030A31875F755108423BB4F15FBEAA83 /* SDLAudioStreamingIndicator.h in Headers */, - 70F0649750C5E9DBD1AFA36ACEF458C8 /* SDLAudioStreamingState.h in Headers */, - 703EDBB8AE959470D576A0D12F2108A7 /* SDLAudioStreamManager.h in Headers */, - 2D8B55A1BFA18EB1E3CB14D6FCE09063 /* SDLAudioStreamManagerDelegate.h in Headers */, - 95B632680000864684FC326A77E81490 /* SDLAudioType.h in Headers */, - 90B132644819CDCFE3C4B8B316C0980B /* SDLBackgroundTaskManager.h in Headers */, - EB14E5C92B2A258AAD60D0CACD27F65B /* SDLBeltStatus.h in Headers */, - 5B049E4888F5BCE4DC057D4E42C1F2D3 /* SDLBitsPerSample.h in Headers */, - BCBEE0AE3ACC08FB525F661F1F7AC05B /* SDLBodyInformation.h in Headers */, - 66F5C089D30A9889D0F8BA63A8443041 /* SDLButtonCapabilities.h in Headers */, - 2D8DCB5B9AF6C9F4FE1CB0366FCDFD7E /* SDLButtonEventMode.h in Headers */, - 65B80391203B29755940056CD7130299 /* SDLButtonName.h in Headers */, - D4A54E3C0D63E0D6C971F0FC5C75D9A2 /* SDLButtonPress.h in Headers */, - C175A9B4A5DF2D064C455F649EA87DEE /* SDLButtonPressMode.h in Headers */, - 05AA2C453D9E68208FCF493F216AE4BC /* SDLButtonPressResponse.h in Headers */, - F8925070BDD710E983CABAD7EBCD3DDD /* SDLCacheFileManager.h in Headers */, - A11F26070BE925687139B0C109399C19 /* SDLCancelInteraction.h in Headers */, - 943BDF0A57AB9536CF0CC6D1E1C51D14 /* SDLCancelInteractionResponse.h in Headers */, - 25BE8C8B4CECF880BE4335312ED8B717 /* SDLCarModeStatus.h in Headers */, - F2B384A9614E760CE466DFCCD80F5CEB /* SDLCarWindow.h in Headers */, - 9572650EBB7B2B8D936F2844DECB03E6 /* SDLCarWindowViewController.h in Headers */, - 1740E8B2F60D77BFBC604D07BEE19B14 /* SDLChangeRegistration.h in Headers */, - E84F68513747CEC8D204D0D889788925 /* SDLChangeRegistrationResponse.h in Headers */, - 06C4D583DBCDD900D42AF20BF4399C4B /* SDLCharacterSet.h in Headers */, - A13C0973729C96228DD864BEABC09B27 /* SDLCheckChoiceVROptionalOperation.h in Headers */, - FB7EFF49F20734D699CFB56494EC388A /* SDLChoice.h in Headers */, - 76F0CA06BFCC765F9E093AB4DAB81220 /* SDLChoiceCell.h in Headers */, - A8BCEFDF545668B86C4B26D77F543012 /* SDLChoiceSet.h in Headers */, - 571DDD47BD1560C506A2C8CFF60B6F02 /* SDLChoiceSetDelegate.h in Headers */, - E64C863EE7F6A9280C3D958F9FAB6D75 /* SDLChoiceSetManager.h in Headers */, - 30F56DD16FD5AC410C8EC40453FD8C34 /* SDLClimateControlCapabilities.h in Headers */, - 293C7367008EF74D0DD9DD9123AF01D8 /* SDLClimateControlData.h in Headers */, - 0449A73F6CEFDDAB155A322DC5602A53 /* SDLCloseApplication.h in Headers */, - F54ED240190830BC405F8A3F246EA0A2 /* SDLCloseApplicationResponse.h in Headers */, - 0BE15734B37B15CACCB2040050832FA7 /* SDLCloudAppProperties.h in Headers */, - 1FA8E1D71FDA6FBA04439981618AA74E /* SDLClusterModeStatus.h in Headers */, - 46300F41ECC56138DAE8F56FEF10E7B8 /* SDLCompassDirection.h in Headers */, - 9807627F3863B4F0B8478AC7810C3ED9 /* SDLComponentVolumeStatus.h in Headers */, - 356FBEDAFC9DE9CE10B94CCE35ABE585 /* SDLConfiguration.h in Headers */, - DF20DAAFCB4697B4CEEE7EBD7B0A4E3C /* SDLConnectionManagerType.h in Headers */, - 8057D4C4047A1C456E6BFFA904469F2A /* SDLControlFramePayloadAudioStartServiceAck.h in Headers */, - 0AC45935BAAC4EEC4B3AC41963ABDEAE /* SDLControlFramePayloadConstants.h in Headers */, - E26CE02D51DACC443064BFB173681339 /* SDLControlFramePayloadEndService.h in Headers */, - F02D84852A5EBD3B296F70F05E44B9F6 /* SDLControlFramePayloadNak.h in Headers */, - CE691148A9A35566ECB26399D679E7B2 /* SDLControlFramePayloadRegisterSecondaryTransportNak.h in Headers */, - B4F0E7BDC21F461F00D673334BBDF781 /* SDLControlFramePayloadRPCStartService.h in Headers */, - D53AA773DBCA4F6FBCEBA54EFB599F67 /* SDLControlFramePayloadRPCStartServiceAck.h in Headers */, - 721C6905B171EEA60C69F896DBE66D5F /* SDLControlFramePayloadTransportEventUpdate.h in Headers */, - 3D8726A061E96537E54E7276ABE0F8FB /* SDLControlFramePayloadType.h in Headers */, - B505E5278CDF2E21BACF15324A723BC1 /* SDLControlFramePayloadVideoStartService.h in Headers */, - A2F68F9AE4211CB31227C8790627D865 /* SDLControlFramePayloadVideoStartServiceAck.h in Headers */, - B1FF65E7334126187569DEF9C0C33807 /* SDLCreateInteractionChoiceSet.h in Headers */, - D4C33A66E4B2EDDA130CF9F6A5F4867E /* SDLCreateInteractionChoiceSetResponse.h in Headers */, - AAD2C90D0EB813824B3D8A3AB0B383BF /* SDLCreateWindow.h in Headers */, - C93DE69DC8E81F3B919DC5041BE32DF5 /* SDLCreateWindowResponse.h in Headers */, - E770BD60F6BEE6EA0CC738E462297255 /* SDLDateTime.h in Headers */, - B6211F586ECE845BDC52226B40D463CE /* SDLDefrostZone.h in Headers */, - C072FE06DD0CAAA689963411B9C86019 /* SDLDeleteChoicesOperation.h in Headers */, - 4D33761F1DC2FBE91EDDDE215A1E6959 /* SDLDeleteCommand.h in Headers */, - 0B3A68B8A8DAE66BE0D40553A8E8F0F0 /* SDLDeleteCommandResponse.h in Headers */, - EB4732C359585CD72017A5D90B904EDA /* SDLDeleteFile.h in Headers */, - AF0378DD30CA9A0BA2190F015D33287A /* SDLDeleteFileOperation.h in Headers */, - 7D3FDCF280500CFA08D4FF079F23EE53 /* SDLDeleteFileResponse.h in Headers */, - D0F3FBDF8B599CEC7A632F06AC53403C /* SDLDeleteInteractionChoiceSet.h in Headers */, - AB7F9CEBB797B1CE9C0A6369925F40D7 /* SDLDeleteInteractionChoiceSetResponse.h in Headers */, - 2322726A5483D59A55C4EDC2AA0156F1 /* SDLDeleteSubMenu.h in Headers */, - F84B04F6281DE18EAAE313588E28E966 /* SDLDeleteSubMenuResponse.h in Headers */, - F1E0F92908B6D9838308E4BE87F9F35A /* SDLDeleteWindow.h in Headers */, - 56E5FE374352C392DC8E51B09AF1BBA3 /* SDLDeleteWindowResponse.h in Headers */, - 7622141190322B2049CB7BFF23200BB7 /* SDLDeliveryMode.h in Headers */, - 92B358063BF2D4E4FBA527CFF06F0060 /* SDLDeviceInfo.h in Headers */, - F434E151A675619FB6DE7B0CF3BB0AA7 /* SDLDeviceLevelStatus.h in Headers */, - 418915792BBCF4558CC5AA1618DCBF3E /* SDLDeviceStatus.h in Headers */, - 5BA9A54A41ED1A2C09132DD9EBD78C27 /* SDLDiagnosticMessage.h in Headers */, - ADC486DAB4AECF83CEF1528805F0D5DD /* SDLDiagnosticMessageResponse.h in Headers */, - 1848DB3F89B60722831C8A28961BC2E1 /* SDLDialNumber.h in Headers */, - AD736001016B54573EABDD90DADE0E53 /* SDLDialNumberResponse.h in Headers */, - 02E6E4F413A2B966E004A1031FFEDE61 /* SDLDIDResult.h in Headers */, - F38051ED9D5A6D64BA22B6120F718E08 /* SDLDimension.h in Headers */, - AFBCAA22FB24A405351A20E2B74558BB /* SDLDirection.h in Headers */, - F19E92D00AF56884D8403180450C673D /* SDLDisplayCapabilities.h in Headers */, - 4309DAF1A0EC9BBBFCB7FC4B2F73FBBA /* SDLDisplayCapability.h in Headers */, - 4420163C672AAF5B0F6472F0F13B41D5 /* SDLDisplayMode.h in Headers */, - DBDF33CC4BB41323D4184E33B9461898 /* SDLDisplayType.h in Headers */, - 39BA1E6BF24E49F7DF63A57C5D2F5F66 /* SDLDistanceUnit.h in Headers */, - 703007E30FE5A04B2C59DE8467A15FD7 /* SDLDriverDistractionState.h in Headers */, - 41D046D2EAD5760794D0459A8316D66B /* SDLDynamicMenuUpdateAlgorithm.h in Headers */, - FCA506B6BF42A7A8FE6C1B55747B8ECB /* SDLDynamicMenuUpdateRunScore.h in Headers */, - 9AB381AEFEE5A61992ACD7F10F8A0BE1 /* SDLECallConfirmationStatus.h in Headers */, - CC75C0FF02FCD0592B72443A8EF5A318 /* SDLECallInfo.h in Headers */, - D30AA824325A769A834200E9DD3F59C0 /* SDLElectronicParkBrakeStatus.h in Headers */, - 26353657D5D6B0F84D089E872827FDDE /* SDLEmergencyEvent.h in Headers */, - 28CC084EC7D95AD5533A75860CA631DE /* SDLEmergencyEventType.h in Headers */, - BA1BC253AFEB4606F25935208F851471 /* SDLEncodedSyncPData.h in Headers */, - 97552846A61ABE9D89635D411CF6886A /* SDLEncodedSyncPDataResponse.h in Headers */, - 99053937DFFC0E1B063400B22BCCD6C5 /* SDLEncryptionConfiguration.h in Headers */, - 2143F4C92496739C1E9F659C76C34437 /* SDLEncryptionLifecycleManager.h in Headers */, - 97987F32A35F3BFEE2A7EE14ED37B862 /* SDLEncryptionManagerConstants.h in Headers */, - 6867184EB0DA4E64F43D2F30EB0488CB /* SDLEndAudioPassThru.h in Headers */, - F5D727D9EECDD13F365FBE86B3106EB0 /* SDLEndAudioPassThruResponse.h in Headers */, - 4F0E6A9D816AA18B7EDE637892AAB4EA /* SDLEnum.h in Headers */, - C4378E5305D6B3EA5395DB20C54057E7 /* SDLEqualizerSettings.h in Headers */, - BF741D4194863C9E087DA82D29EB42AC /* SDLError.h in Headers */, - 96ECD4F7CB098FCFE884F32CB2CA407A /* SDLErrorConstants.h in Headers */, - 140AE13905D4AA976BBE7D32C20EC80D /* SDLFile.h in Headers */, - 524FC58075C102402E54D6C9D2B7EFF5 /* SDLFileManager.h in Headers */, - E48843702E229647A8BEBA0EDFEAF5A5 /* SDLFileManagerConfiguration.h in Headers */, - 5074ED2355E751C3B61FB476B87B59C9 /* SDLFileManagerConstants.h in Headers */, - FA4CC44F8F212A7F83890F85250C8D1F /* SDLFileType.h in Headers */, - 7182F43C32ED6456BEBC1055352D96D4 /* SDLFileWrapper.h in Headers */, - 783DAB48EBF9DF33D24A813007A16BAF /* SDLFocusableItemHitTester.h in Headers */, - 3B7033C9D6CE86470B95F2C51B9400EC /* SDLFocusableItemLocator.h in Headers */, - E67FF2ADC53F5081B3B89A633B585ADB /* SDLFocusableItemLocatorType.h in Headers */, - 69D9241B27BEE1A16D8E9C69304C610C /* SDLFuelCutoffStatus.h in Headers */, - 842A278FF6CA695AE140DE3C90FB6C09 /* SDLFuelRange.h in Headers */, - 9E02638823EC1F1D11F02EFDE7FE15D9 /* SDLFuelType.h in Headers */, - C7031C39032964315A742AD31DA2DC03 /* SDLFunctionID.h in Headers */, - 498DE56DFEC17537625C394BB3B725B3 /* SDLGenericResponse.h in Headers */, - 4229C388D87E44653544F9B367D91B03 /* SDLGetAppServiceData.h in Headers */, - D0023E1F0600BF9CAAAA43E80FB6FEC7 /* SDLGetAppServiceDataResponse.h in Headers */, - DA392F7D8AEA6EE6F78C2FB9A4922637 /* SDLGetCloudAppProperties.h in Headers */, - 2BD2B68D5F3E75CC7CFD753D59B5C645 /* SDLGetCloudAppPropertiesResponse.h in Headers */, - 499C36B26E6CAB22A022386A12660DB8 /* SDLGetDTCs.h in Headers */, - AF723A4A4F7BAE013836CFA6EA0A96CC /* SDLGetDTCsResponse.h in Headers */, - 9DFB1A6DB2598EDE3EE46E5C4CE0BCA9 /* SDLGetFile.h in Headers */, - D53FD842288FA0D06416A49B6C1AFBE0 /* SDLGetFileResponse.h in Headers */, - 6933E178872E557AFF58D48A5474FA58 /* SDLGetInteriorVehicleData.h in Headers */, - BA3D8EF0CE88A9A0D9CD7AE6E2AA5FCA /* SDLGetInteriorVehicleDataConsent.h in Headers */, - BF434044E8805B53F9C49572258A336C /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */, - 14FDAE2B365BF4599C349F9E4C49A436 /* SDLGetInteriorVehicleDataResponse.h in Headers */, - 46E72DA12639145BA10361DC9CB2EF60 /* SDLGetSystemCapability.h in Headers */, - 6C95A689B7F1C67945E65FF4D8A64113 /* SDLGetSystemCapabilityResponse.h in Headers */, - AC9ABA1E5756F8D06C41D5F12FAF5FCC /* SDLGetVehicleData.h in Headers */, - 404425782FA399BBF0D7E2D3D4591B81 /* SDLGetVehicleDataResponse.h in Headers */, - 173519F7A886931450C9B847A2EBEB6C /* SDLGetWayPoints.h in Headers */, - 9B64057F42AB2ABE7AE945EBF1BE29A7 /* SDLGetWayPointsResponse.h in Headers */, - 5AC2BBF2338C0E1AFFC9719B7F895930 /* SDLGlobalProperty.h in Headers */, - 573384DD9BADD8F3B332668BD49F2C29 /* SDLGlobals.h in Headers */, - EA6E38C397BEA72FCE30006B71CA4BE6 /* SDLGPSData.h in Headers */, - 16E4705974FE4C949F41C2E807EBEE18 /* SDLGrid.h in Headers */, - B2912E54327248FAE3A3170E39F35F97 /* SDLH264Packetizer.h in Headers */, - 8CF98996F8D5ABE5A8593471D349367B /* SDLH264VideoEncoder.h in Headers */, - 1E92C1FBC46299C97494391A9A157F64 /* SDLHapticRect.h in Headers */, - B3E5781080E9941D62D42336DB9B4AB3 /* SDLHeadLampStatus.h in Headers */, - A037C3C3A83530301BEA2F881D8288BA /* SDLHexUtility.h in Headers */, - CEF0992BAA5B7F699F8DA9AD14CF30D7 /* SDLHMICapabilities.h in Headers */, - 26217B2CFE53FB77D314083C9F7D8455 /* SDLHMILevel.h in Headers */, - 9108B6E2D3167C1881C88BA53125294E /* SDLHMIPermissions.h in Headers */, - F7154784E2F5DB9E3C24FC2928C7D12B /* SDLHMISettingsControlCapabilities.h in Headers */, - 733D59C10EE7B42B3E3775EE9945F3CB /* SDLHMISettingsControlData.h in Headers */, - 96B3A64C13C755BF2344A019F3BD7564 /* SDLHMIZoneCapabilities.h in Headers */, - D95A9D7BB42ACCBA3A63C34D01602A83 /* SDLHybridAppPreference.h in Headers */, - 948E7F11C00F9CC8161C026A9EEC54C1 /* SDLIAPConstants.h in Headers */, - FDA8CE14078E6C248AA850B366A863E5 /* SDLIAPControlSession.h in Headers */, - CFC9643FF9F27BE41FD8D8256171F71C /* SDLIAPControlSessionDelegate.h in Headers */, - 435A9A8FBEC0AD2E8B7B46BACE464E00 /* SDLIAPDataSession.h in Headers */, - 0E35DAB1AB19E38627F023A110471CA1 /* SDLIAPDataSessionDelegate.h in Headers */, - 5BC280DDA0CDAF30020BABBC7AC703E1 /* SDLIAPSession.h in Headers */, - A593A77AB1486F65ACE3B83D54B74BF3 /* SDLIAPTransport.h in Headers */, - 3070702B8B93F00CC702230E08A81478 /* SDLIconArchiveFile.h in Headers */, - 896B434043508082AF277D789CFA2BBC /* SDLIgnitionStableStatus.h in Headers */, - F2F0578FC5558A1FD4D42C94CC018FD6 /* SDLIgnitionStatus.h in Headers */, - BF82FC7181F586CF5EE1AEC6F08AFB8C /* SDLImage.h in Headers */, - C29FD00E3FFA2E5D7C80F63B4E9E5EAB /* SDLImageField+ScreenManagerExtensions.h in Headers */, - 0464DC7F6803F80C656F554A937663A8 /* SDLImageField.h in Headers */, - C604E4365ACFDCA05168D748D10B6BAE /* SDLImageFieldName.h in Headers */, - 7B9A5F389E2CEDE6D1E9EAA1B30C5659 /* SDLImageResolution.h in Headers */, - D945C7965067F2906108EDCC145A2E96 /* SDLImageType.h in Headers */, - 448C6E33A3018444FFF0D83F5FAF4419 /* SDLInteractionMode.h in Headers */, - F1FC1F415525E9BE1FB87674C21164B7 /* SDLKeyboardDelegate.h in Headers */, - 266AA31C12A9492F483B4AAEDD775FE3 /* SDLKeyboardEvent.h in Headers */, - EA3FCADC9D8E43CBCFC84DFE35BCFAD8 /* SDLKeyboardLayout.h in Headers */, - 9B1D0DC686CA127B3507C3BDBC7556C4 /* SDLKeyboardProperties.h in Headers */, - 6EE8571C87BCEC83176A0160B0235153 /* SDLKeypressMode.h in Headers */, - 0B68D3C320FE736582F954A1808256E2 /* SDLLanguage.h in Headers */, - 81C464894078D0923CB734B498325E5C /* SDLLayoutMode.h in Headers */, - A6FD855ED3F925B400BD27B86ED4E5B8 /* SDLLifecycleConfiguration.h in Headers */, - 10399FEFB6AE8D84D33269A2552FE260 /* SDLLifecycleConfigurationUpdate.h in Headers */, - 7C2914E90E64A052CD25A0C06B28FCE3 /* SDLLifecycleManager.h in Headers */, - E4DBBC95BD7911FD5036361AD92217E1 /* SDLLifecycleMobileHMIStateHandler.h in Headers */, - 7AF166CD4FFF2B0EB623D07AC3B40770 /* SDLLifecycleProtocolHandler.h in Headers */, - E4C8134393CD7860FE31F8B17DDF6F51 /* SDLLifecycleRPCAdapter.h in Headers */, - BCE0B77562870F561076138E433792E5 /* SDLLifecycleSyncPDataHandler.h in Headers */, - 28BD38304ADA7FC85E743DEE7314C025 /* SDLLifecycleSystemRequestHandler.h in Headers */, - E931DA8F802C54BF86A5340D1A2B2137 /* SDLLightCapabilities.h in Headers */, - 1E860D58C4B4F4A01EB689D1B276DD2A /* SDLLightControlCapabilities.h in Headers */, - 9EF3295D4B53DF53BE6353110DD2B85E /* SDLLightControlData.h in Headers */, - 5AA6EC18B9143E9DC48FDBCCAF08EA1E /* SDLLightName.h in Headers */, - 8328B9D04BFB65C0975608CCD290F129 /* SDLLightState.h in Headers */, - 7A5A4CCE72E7384F52744B4D7699A5DC /* SDLLightStatus.h in Headers */, - F91095D6314BB3F6EDA3EB1D11DB5109 /* SDLListFiles.h in Headers */, - 8CF4F12468C7886C63A1ECDD6791C936 /* SDLListFilesOperation.h in Headers */, - 90E54FF893D72AE14A79C43840493828 /* SDLListFilesResponse.h in Headers */, - 820EA879555877005F0F2585C7D91934 /* SDLLocationCoordinate.h in Headers */, - 543478E1D2830917285505E70CC177C6 /* SDLLocationDetails.h in Headers */, - DD12156E50D744D040B9FEB30EA4953A /* SDLLockScreenConfiguration.h in Headers */, - F63A5F17974134AAE7F5EC1A2E61B5B1 /* SDLLockScreenManager.h in Headers */, - ABF656C5E21AEC6D38F3E13417005688 /* SDLLockScreenPresenter.h in Headers */, - 07D5575EC6154BD6A1DA7EFED6E844F3 /* SDLLockScreenRootViewController.h in Headers */, - 8A3EFA26C9A85C5A9BCF353A99C5AAC0 /* SDLLockScreenStatus.h in Headers */, - 29725FF38EFA8B496123C61DD592C84B /* SDLLockScreenStatusManager.h in Headers */, - E3644BDDD294BE373BF8857CA9A0C87A /* SDLLockScreenViewController.h in Headers */, - C00BA8764AB904D2A89E38A8F5D9B101 /* SDLLogConfiguration.h in Headers */, - F5D9E586A90FEA617FCD63C38EFCA138 /* SDLLogConstants.h in Headers */, - E8C544AFFA8924FF213F3F40FD60CB93 /* SDLLogFileModule.h in Headers */, - 7771D6000CD81F2B8F910037ED770852 /* SDLLogFileModuleMap.h in Headers */, - 1C3779A1ED805EBA676412F23CD6E4F3 /* SDLLogFilter.h in Headers */, - BB3AFD42421B78E509DDB0D3C3025F84 /* SDLLogMacros.h in Headers */, - B863542C7C9CB768A3D04A69834CD9A2 /* SDLLogManager.h in Headers */, - 02B9BA59D1C0E22367D384281346B66F /* SDLLogModel.h in Headers */, - B38195C88F92FEB489620CCBBC2020BB /* SDLLogTarget.h in Headers */, - BA00DAA64D9E20E51594BE9DA61FB3B8 /* SDLLogTargetAppleSystemLog.h in Headers */, - 70E0209B95ABB6721B429C455413E1D1 /* SDLLogTargetFile.h in Headers */, - 9DF783D275D92A46DE02F25C3B837321 /* SDLLogTargetOSLog.h in Headers */, - 5302244179BF6A0021E20261F7B0C3DD /* SDLMacros.h in Headers */, - 9F8232117DA710D03B7E6C7D59670979 /* SDLMaintenanceModeStatus.h in Headers */, - 0CD8661CBFFE3EEC13E840FD788482CF /* SDLManager.h in Headers */, - 37E2297CE2C16488DF70FACD9E4D9A42 /* SDLManagerDelegate.h in Headers */, - 003DA91DE9E5454518E11A54CEEED6D1 /* SDLMassageCushion.h in Headers */, - 448960757DCCD0251887598DD98C7721 /* SDLMassageCushionFirmness.h in Headers */, - E5B8877CA9E196869619D1FC0581AFFD /* SDLMassageMode.h in Headers */, - 38B84FE054DC605D69AC886B4BB4AFB1 /* SDLMassageModeData.h in Headers */, - E078403E7DFF3C8235326AF4AEC6EF77 /* SDLMassageZone.h in Headers */, - 8C042DE95ACE95E73BDFB610B4E8E73C /* SDLMediaClockFormat.h in Headers */, - 770CF2172153416F75DA8434CA9D0987 /* SDLMediaServiceData.h in Headers */, - 3D3BEA2BEB9CFCE1B220AD7DC31B9A83 /* SDLMediaServiceManifest.h in Headers */, - 41A90106B4715AB967B0EC05FBDA2539 /* SDLMediaType.h in Headers */, - 4B0660F894928C9F214F03C6483D8351 /* SDLMenuCell.h in Headers */, - 7BA72342DFEA2FD8D0230A7D1114B0D5 /* SDLMenuConfiguration.h in Headers */, - 146B618653FFA74052F2FB52092207F8 /* SDLMenuLayout.h in Headers */, - F46BEBD9A0AB03DE13E0B3F4D967DA73 /* SDLMenuManager.h in Headers */, - 2F7BDF1B09192128D071307D6B0D96D3 /* SDLMenuManagerConstants.h in Headers */, - FF463F1426B7BF72BDD00DC5B128F2A1 /* SDLMenuParams.h in Headers */, - 3A00ED6EAC8495E2A78104DC2DFB2C6B /* SDLMetadataTags.h in Headers */, - A0EA899E9A6772A0E111CAF3A5B4D692 /* SDLMetadataType.h in Headers */, - 92E669ED90ECE510D2704648AEC3B87B /* SDLModuleData.h in Headers */, - BB601246A9167E4708E5B9D7B6E850F8 /* SDLModuleInfo.h in Headers */, - E12CD1AD7EA335D3E545466678071A23 /* SDLModuleType.h in Headers */, - 7B087CC97B2A19EA9BE23929DCB45523 /* SDLMsgVersion.h in Headers */, - F21FA12D42119F7BB39472B8AE1A52E0 /* SDLMutableDataQueue.h in Headers */, - 45E4823DCE75519D98AD45B17EF4144A /* SDLMyKey.h in Headers */, - 6B7709E582D650713411B7209028BDE5 /* SDLNavigationAction.h in Headers */, - 00879774B5433F93871F996ED7137C2F /* SDLNavigationCapability.h in Headers */, - B79E708F7FE9CA288585EAD4F467C27C /* SDLNavigationInstruction.h in Headers */, - A6BBC719536F101CB562CAB3FE06D5BA /* SDLNavigationJunction.h in Headers */, - FD565C5B865F3F82F33B5C599542BB56 /* SDLNavigationServiceData.h in Headers */, - 4E7FE570BC489D0CD32A6D0E4CF82ADC /* SDLNavigationServiceManifest.h in Headers */, - BA45891E7B3D37994FF8A8939804C746 /* SDLNotificationConstants.h in Headers */, - A3B8C6795DDA83285BEFB831CB44827C /* SDLNotificationDispatcher.h in Headers */, - 6E6860F1FC4E478A4EA8239F823DDB59 /* SDLOasisAddress.h in Headers */, - D03657B4B97135C1DCC9000C19C8BE79 /* SDLObjectWithPriority.h in Headers */, - B393614ECB8435C999A656EA5FF4DA9A /* SDLOnAppInterfaceUnregistered.h in Headers */, - 3517FA25C26876DD57DDCCF67ECCDF39 /* SDLOnAppServiceData.h in Headers */, - 87265B55E2D27269A551AB06B0D834E1 /* SDLOnAudioPassThru.h in Headers */, - BCDDBC9A33D1F77E7522ECF8FC9A1926 /* SDLOnButtonEvent.h in Headers */, - 3FAD343C0F867C2097B12804C5907DB6 /* SDLOnButtonPress.h in Headers */, - 43BFE80CE7C858FF07FF9056216D5ABC /* SDLOnCommand.h in Headers */, - 5BC3AA186D38E4432C705AC60EB1E651 /* SDLOnDriverDistraction.h in Headers */, - EB82C497CFD63A7E991892F5B60D361D /* SDLOnEncodedSyncPData.h in Headers */, - 43431BFF32039C6CFBAAB8C71D13EB79 /* SDLOnHashChange.h in Headers */, - A2CDEF188C1B5C93E25A3F7880080B74 /* SDLOnHMIStatus.h in Headers */, - ECC87CADBAB0667E1CD7E637907B3FFB /* SDLOnInteriorVehicleData.h in Headers */, - 084021FEEBDC121A01E76CD5D9D3A414 /* SDLOnKeyboardInput.h in Headers */, - 038A0C2C3BD5BB22B37280A56FAB5AB3 /* SDLOnLanguageChange.h in Headers */, - EE697B0B4995E7259B791BCC582D727B /* SDLOnLockScreenStatus.h in Headers */, - BCA619430CF3590B6F43FA809D1629AD /* SDLOnPermissionsChange.h in Headers */, - 4FD8B4B6CFA7CA9726828141B0A48F5D /* SDLOnRCStatus.h in Headers */, - 09AB9C5FF6058254B64C63123E971C10 /* SDLOnSyncPData.h in Headers */, - 07ED05FDEB6D1F1255386B7FBFBEC076 /* SDLOnSystemCapabilityUpdated.h in Headers */, - F42A7657DCF0C0B769D05F922B972CE9 /* SDLOnSystemRequest.h in Headers */, - B5D2886890D272E031FDDFBD5EE82D60 /* SDLOnTBTClientState.h in Headers */, - CD55C89B732A94B7FCC7CC31DC96683E /* SDLOnTouchEvent.h in Headers */, - ADC074FCA5AE10C28D5026FF190EE446 /* SDLOnVehicleData.h in Headers */, - 07975E5C3B4B93AAEB029FE3196E3E64 /* SDLOnWayPointChange.h in Headers */, - 89DE45CB97C1845FCAAF7B83E9D03F58 /* SDLParameterPermissions.h in Headers */, - D1DAA1AC9B11A5D2BDD511E04EB074B3 /* SDLPCMAudioConverter.h in Headers */, - 40350EC1E0C7771E44C6BA8DB22C3666 /* SDLPerformAppServiceInteraction.h in Headers */, - 6399449E25DF90657AF772C5241C419B /* SDLPerformAppServiceInteractionResponse.h in Headers */, - 3A72A19314E3CB64935731A4EFF2E8F2 /* SDLPerformAudioPassThru.h in Headers */, - 5680D0D1D06F3D3B54396D398B8A417C /* SDLPerformAudioPassThruResponse.h in Headers */, - 20E52603A144D5E23A91FC15FB220553 /* SDLPerformInteraction.h in Headers */, - 797330768E845F89F1FEDDE14C055440 /* SDLPerformInteractionResponse.h in Headers */, - 64FD30538308F3AE59148DC736F72625 /* SDLPermissionConstants.h in Headers */, - 485EB884477F1C792D748D9760C80F96 /* SDLPermissionElement.h in Headers */, - 29343D75325A60F2F26ACB2E2A148BDD /* SDLPermissionFilter.h in Headers */, - 723B98063F796F3A205BBF4D69D397FF /* SDLPermissionItem.h in Headers */, - 9C6F8EC6BB779E9ED31A4BE3D33D5A72 /* SDLPermissionManager.h in Headers */, - 81C1D63EDAF3BD34054FF17FE620080B /* SDLPermissionStatus.h in Headers */, - F0E8376DAD107E666421E01CCEA55406 /* SDLPhoneCapability.h in Headers */, - 6B0BACE25CB2A25AA900691BBAA33280 /* SDLPinchGesture.h in Headers */, - 3CA592C06FB203D552B3F6D89E1CA318 /* SDLPowerModeQualificationStatus.h in Headers */, - B2526A2E015B04742D776EE2820B521D /* SDLPowerModeStatus.h in Headers */, - 51DA975E13B256C4B5D1FE787629B5A3 /* SDLPredefinedLayout.h in Headers */, - 7DB2DCC05E106A77EFE0A9672A8F9373 /* SDLPredefinedWindows.h in Headers */, - AA756116198DB6B581A20CB3873E30E4 /* SDLPreloadChoicesOperation.h in Headers */, - 8940DF96E280A683D1AE6F0C516558CB /* SDLPrerecordedSpeech.h in Headers */, - 8282D5A46E55FB7731B772BC17EF7C48 /* SDLPresentChoiceSetOperation.h in Headers */, - 9B55F42A537180FC37A5A170B1FB6309 /* SDLPresentKeyboardOperation.h in Headers */, - 3EE109E86F504C8541C3781EAA536C33 /* SDLPresetBankCapabilities.h in Headers */, - AA873E6F9C27CEBDA0C183CAD68759EA /* SDLPrimaryAudioSource.h in Headers */, - 636D8C8EBB49829369E13843A86C0600 /* SDLPrioritizedObjectCollection.h in Headers */, - 436DCF518BC654B893E3567925A97D24 /* SDLPRNDL.h in Headers */, - AA47F6819C48293DD50ABABE42D59952 /* SDLProtocol.h in Headers */, - EE1F6BB1177EE70D1169A40CCC7461B8 /* SDLProtocolConstants.h in Headers */, - 1E34EE1AE419A9801D49AABE3DE98B70 /* SDLProtocolDelegate.h in Headers */, - 43E6E27A903694B9A5668A5E2E3AE7C8 /* SDLProtocolHeader.h in Headers */, - B6E6C60209386BE1EA96C33B06677686 /* SDLProtocolMessage.h in Headers */, - E9259CB039160D0244527AB61D400DC1 /* SDLProtocolMessageAssembler.h in Headers */, - 5FDAA1E19BCA3962C75A8383718C8C24 /* SDLProtocolMessageDisassembler.h in Headers */, - 402FE8CEBCE2DB4FF9430C97EE3B5C7D /* SDLProtocolReceivedMessageRouter.h in Headers */, - 51EF218E3562B0C1E47C1404A923C604 /* SDLPublishAppService.h in Headers */, - 6FCD89C21C9DABCA54C354123A05DA43 /* SDLPublishAppServiceResponse.h in Headers */, - 85882347D6B6966362786872D21D1889 /* SDLPutFile.h in Headers */, - 82244FCBDBC4DE2521484AA8076AD467 /* SDLPutFileResponse.h in Headers */, - F8F099F4279F7D966A919E609C51C219 /* SDLRadioBand.h in Headers */, - FD4C4028726EAF24D96022D4D1F0F0B4 /* SDLRadioControlCapabilities.h in Headers */, - B81CAD6446F72990185C0B2499FBFACA /* SDLRadioControlData.h in Headers */, - 494D14787586F8CF5AD27828DDAD1EC9 /* SDLRadioState.h in Headers */, - BD9334E76F0C5A53139A91BD41F251C2 /* SDLRAWH264Packetizer.h in Headers */, - 64B4EB36C718264B16DFDF8D035A51AC /* SDLRDSData.h in Headers */, - 612C6E250B9D452F704EEE4B2A29F640 /* SDLReadDID.h in Headers */, - AD5AF27742CC22CEC1D1C3DFC44F88D4 /* SDLReadDIDResponse.h in Headers */, - 4955A39B2114E75169CEF9B9F85534C6 /* SDLRectangle.h in Headers */, - EE461746C8941EDF411A4EA8A1171FB1 /* SDLRegisterAppInterface.h in Headers */, - C013B4F3EDA532B100A72EAE5104948D /* SDLRegisterAppInterfaceResponse.h in Headers */, - E879B34C758CF14640C5A627D0307261 /* SDLReleaseInteriorVehicleDataModule.h in Headers */, - FE0532EB484B23FC43E5E8BCDE6E09EC /* SDLReleaseInteriorVehicleDataModuleResponse.h in Headers */, - D3348A43DB6C171E887F1D9954A78844 /* SDLRemoteControlCapabilities.h in Headers */, - 542276EFF16755D0D3022600FB995EB8 /* SDLRequestType.h in Headers */, - 39F5E52B10B43B5EA8AE72BE10430DF3 /* SDLResetGlobalProperties.h in Headers */, - 57B2D46DB78B0D4D338E57C1D4D4D5CD /* SDLResetGlobalPropertiesResponse.h in Headers */, - B962D4BFCFE63DA66B345FEFD0543267 /* SDLResponseDispatcher.h in Headers */, - 19808A920357393815692F5AE549D63F /* SDLResult.h in Headers */, - F325BB0AC6DDD888968309DBD7C206F4 /* SDLRGBColor.h in Headers */, - 0AEC8A1C117796DBCDF8B3438AFDA908 /* SDLRPCFunctionNames.h in Headers */, - BE94382158A13556092EB443969BDAB1 /* SDLRPCMessage.h in Headers */, - 3B72322E9621369EC860A18E67637976 /* SDLRPCMessageType.h in Headers */, - 791627EAC8B4EEE54EAF063B35262F0F /* SDLRPCNotification.h in Headers */, - FA0E1BA770AC99ACCFA6FADD294E6AD5 /* SDLRPCNotificationNotification.h in Headers */, - 15790938EAFC293CD326D4F72ECA3B18 /* SDLRPCParameterNames.h in Headers */, - 9C9ECEB77C7F6593C5816D6A6E08BF93 /* SDLRPCPayload.h in Headers */, - 5C33B2CE1EF4650E175EF9E3AE1C7C72 /* SDLRPCPermissionStatus.h in Headers */, - A26C078F292F94A82E10F7CF3CFF947A /* SDLRPCRequest.h in Headers */, - 2EBDB2DA3424BF2FD4965273F2F4CB13 /* SDLRPCRequestNotification.h in Headers */, - E8EC8F9D6034BB1DE7A080BE397C90F4 /* SDLRPCResponse.h in Headers */, - A2C335E45D5808348227BAED740FA4E8 /* SDLRPCResponseNotification.h in Headers */, - 92FCB943F695195618F753813F97E249 /* SDLRPCStruct.h in Headers */, - 09BBF1696D9DA2B01A476C7145E9197E /* SDLRTPH264Packetizer.h in Headers */, - 11C99CB3B640F6A9B292B910BA3D6CB2 /* SDLSamplingRate.h in Headers */, - 04ABCD1D5500C77298DC8E61F181EE3F /* SDLScreenManager.h in Headers */, - 938ED6E03E70AEFFE50F57C66AE7C77D /* SDLScreenParams.h in Headers */, - 94FD5E6BE1C4A20B1C87E81487731621 /* SDLScrollableMessage.h in Headers */, - 23DB5FB26B11BBD509563FD447334FF9 /* SDLScrollableMessageResponse.h in Headers */, - 7C078A8F5DE31C7A59EEBAFFAEEE1229 /* SDLSeatControlCapabilities.h in Headers */, - 7B5E3919628E4763AF44CA7EBCF7139E /* SDLSeatControlData.h in Headers */, - BF4207D49038AEDAE220D0EEE358DC4A /* SDLSeatLocation.h in Headers */, - F5B39B468E865441CE2BB79219D8BDC1 /* SDLSeatLocationCapability.h in Headers */, - 90AA1C0CCC283A6883424274A5289F60 /* SDLSeatMemoryAction.h in Headers */, - BC62D64FCA313B4D85D29F327B3A89E5 /* SDLSeatMemoryActionType.h in Headers */, - 00B029951254F839641912D1E46ACE89 /* SDLSecondaryTransportManager.h in Headers */, - AA090C3D5E165EF8E36C9AA113A53B96 /* SDLSecurityType.h in Headers */, - 5308F5ED1B015EB8DB777A56AF97B611 /* SDLSendHapticData.h in Headers */, - 60521D1FE88A1564BD108C0F62E69D9F /* SDLSendHapticDataResponse.h in Headers */, - A64D310CA13C5BAF7C23D66405E178C5 /* SDLSendLocation.h in Headers */, - 121491DBAA381C791139D50B3F9EC85E /* SDLSendLocationResponse.h in Headers */, - E11E514E7F0437EA78FF5E7634527A07 /* SDLSequentialRPCRequestOperation.h in Headers */, - 4B75F9DA99F98B193944890144BD5988 /* SDLServiceEncryptionDelegate.h in Headers */, - 7EF1FD8D20751CB663DA5DF3A69A3AD8 /* SDLServiceUpdateReason.h in Headers */, - 34B32B0474B72819A6A6C8C158645D81 /* SDLSetAppIcon.h in Headers */, - 232876DEA5EDCB623AC73A31EF06CEFE /* SDLSetAppIconResponse.h in Headers */, - 4422E4ADFCEA142E06C698B954D88413 /* SDLSetCloudAppProperties.h in Headers */, - 984F9250442AD90516197769FB66AC3F /* SDLSetCloudAppPropertiesResponse.h in Headers */, - 359DB004D8FFFCA81496A2589BF9C102 /* SDLSetDisplayLayout.h in Headers */, - 4D56160493B136A03CE409F6C79B8A52 /* SDLSetDisplayLayoutResponse.h in Headers */, - 69576725BB10F3D345CC93CF2BA3C019 /* SDLSetGlobalProperties.h in Headers */, - 0764F62FE2EF9090EB233425C00A6A6C /* SDLSetGlobalPropertiesResponse.h in Headers */, - 301FBFDA0A54CC473E7A55F7174A1827 /* SDLSetInteriorVehicleData.h in Headers */, - 50676B3E69F865A99F78CB8BF3C1FDE0 /* SDLSetInteriorVehicleDataResponse.h in Headers */, - 09CD47E2B2DBAC5AAD45C21317330C84 /* SDLSetMediaClockTimer.h in Headers */, - 24F42C3E97FF7E9B0AA0358D00D9C3B2 /* SDLSetMediaClockTimerResponse.h in Headers */, - 0E7F23534544BF8C03808A24131664A3 /* SDLShow.h in Headers */, - DCCB73ABAEDCE1A79D4064B827A4A199 /* SDLShowAppMenu.h in Headers */, - 77E0636365C6ADFA34D3E1D40BD34575 /* SDLShowAppMenuResponse.h in Headers */, - 7AC571FC74816A8F25ACD12D756449C5 /* SDLShowConstantTBT.h in Headers */, - 6E3D28A6C67E2201C10090F45C743AC2 /* SDLShowConstantTBTResponse.h in Headers */, - CE860D295614DCB059C534EDA0E64B39 /* SDLShowResponse.h in Headers */, - 9DA96D9D62C66E1387A426433D1D0180 /* SDLSingleTireStatus.h in Headers */, - 66932F4CC3CD23BFE1DFE816A405E5B9 /* SDLSISData.h in Headers */, - 63A3F4D0CDCE1016D255C75D13EC7504 /* SDLSlider.h in Headers */, - D71547F3652CA341C38A8D6F220F2120 /* SDLSliderResponse.h in Headers */, - 70FE1E9B6DDA7F6EB3CC5F29BF782158 /* SDLSoftButton.h in Headers */, - C9FC2712FD59353F55017123EB379B15 /* SDLSoftButtonCapabilities.h in Headers */, - 3996BA8EF0729BA4914A1E52A157D86D /* SDLSoftButtonManager.h in Headers */, - B0A97A8C76EFC9A82EEDC2D7929E1EEC /* SDLSoftButtonObject.h in Headers */, - 460A09BF2FFCEB9D00FFB58ECCF7F7C1 /* SDLSoftButtonReplaceOperation.h in Headers */, - 0E0B9B7A4C8989D773E0D9852764BE23 /* SDLSoftButtonState.h in Headers */, - A4E3B6C1B43783D1FAA4E1CC40625BFA /* SDLSoftButtonTransitionOperation.h in Headers */, - 928086E89A6C7D79AF499C3E12F411D3 /* SDLSoftButtonType.h in Headers */, - DBA4C7F13AA39D73C5CC1DB14A0A6AB9 /* SDLSpeak.h in Headers */, - FBEF565E8C984AABB64F19512D5ADE76 /* SDLSpeakResponse.h in Headers */, - 46460D60D382738558332EE5529E7BEF /* SDLSpeechCapabilities.h in Headers */, - 2A1683EB0706F6F8EAAFF5E6959B7B3D /* SDLStartTime.h in Headers */, - 28E84A6A1F1BDD249D7EB18D110508F9 /* SDLStateMachine.h in Headers */, - 63C6BE616ADEE4D41DEDCC81327945AD /* SDLStaticIconName.h in Headers */, - B877A9A1393EAA6899BBBA1B83912AA0 /* SDLStationIDNumber.h in Headers */, - ADB73BBB02E97BCF7038D35756317AD2 /* SDLStreamingAudioLifecycleManager.h in Headers */, - 334D229652DFB8A0950B16CB079B9FC1 /* SDLStreamingAudioManagerType.h in Headers */, - E7C7BCA91C1B7925FF3236886B7C661C /* SDLStreamingMediaConfiguration.h in Headers */, - B5DAAC1FAC61166246C28B0C670BA05F /* SDLStreamingMediaManager.h in Headers */, - B891FD986004E64FAD5DBD9B5F711428 /* SDLStreamingMediaManagerConstants.h in Headers */, - 3232318E389CA8A1E52BAFA5F2C1F6ED /* SDLStreamingMediaManagerDataSource.h in Headers */, - EB385DA834293AC271339D75AF78F3FE /* SDLStreamingProtocolDelegate.h in Headers */, - E60C31BCA01176861E329F22E3E0E7E0 /* SDLStreamingVideoLifecycleManager.h in Headers */, - B22F7F10287D36689566D1A98DC3A8D5 /* SDLStreamingVideoScaleManager.h in Headers */, - D066E3D20D52ACFC367678312426430F /* SDLSubscribeButton.h in Headers */, - 778128EA09DA2FB70F0756AF8C4DE0AA /* SDLSubscribeButtonManager.h in Headers */, - CFD9812D61C603C043D630BB5F397E1D /* SDLSubscribeButtonObserver.h in Headers */, - 282A9379A10F52BF5C5D49932CBC0B22 /* SDLSubscribeButtonResponse.h in Headers */, - 004F6EEBA9E62438D6A1599A6B90672C /* SDLSubscribeVehicleData.h in Headers */, - 34173D2DD70127DF62B75CE23A170982 /* SDLSubscribeVehicleDataResponse.h in Headers */, - 897E5513A347BC1E367CA9F2C1F941CE /* SDLSubscribeWayPoints.h in Headers */, - FA2F2356937995D9DA09307906E52A31 /* SDLSubscribeWayPointsResponse.h in Headers */, - 9D0E273B9D1C3CD49BC10C2157792DBC /* SDLSupportedSeat.h in Headers */, - 19A6A6C5F102F44356A797E2F38E4443 /* SDLSyncMsgVersion.h in Headers */, - 15826D1DB258E41D27E6E3E5C6315F5A /* SDLSyncPData.h in Headers */, - 816906CF73001C8E4934FB8771610EDD /* SDLSyncPDataResponse.h in Headers */, - ADEC3628DFBEE6798F4B23763C1A92C7 /* SDLSystemAction.h in Headers */, - C2F592A1499AB4B47912EDA24EFBF491 /* SDLSystemCapability.h in Headers */, - 5A198FFEA19EF76603AB27CEB799AF79 /* SDLSystemCapabilityManager.h in Headers */, - 1ABFE6BF37268AFD497C1C336F5F54EE /* SDLSystemCapabilityObserver.h in Headers */, - 65D70E1DDF74B399D28ED6B4077F0FC6 /* SDLSystemCapabilityType.h in Headers */, - EC4C030E69EDB7ED01EAF333978D082C /* SDLSystemContext.h in Headers */, - E19B88D7A8B3DD5BB44A6A8A020B25E6 /* SDLSystemRequest.h in Headers */, - F203E56DA3EE44EB9FFDDDC5C49825CC /* SDLSystemRequestResponse.h in Headers */, - B6226AFDF8EC2EF9AFB9A54E8746D4E2 /* SDLTBTState.h in Headers */, - 07737B0114944A0D3B652F3B43EF0509 /* SDLTCPTransport.h in Headers */, - 7C9F95F79CF45BFC8E03B0954D18CBB6 /* SDLTemperature.h in Headers */, - A1275CC9FDC8F2175D1DC71D25332C6A /* SDLTemperatureUnit.h in Headers */, - EF4DCF74785D8396D212AAE785137F90 /* SDLTemplateColorScheme.h in Headers */, - 31FA9389F01B517A21968C079FB0F7AF /* SDLTemplateConfiguration.h in Headers */, - EEED8D96B2DECE2356CDBED6331960F9 /* SDLTextAlignment.h in Headers */, - EE121FDEC42443727301FA4327B5E85D /* SDLTextAndGraphicManager.h in Headers */, - 9BF5B7F3010DA88A9BF4F6F6B16227B4 /* SDLTextField+ScreenManagerExtensions.h in Headers */, - 98EA3B80A0B1142E33F52CBC82E6D596 /* SDLTextField.h in Headers */, - 70B31A172B881F2D7EC04BA2EC0D9440 /* SDLTextFieldName.h in Headers */, - 000CDD8FCEDE9376F89AB3F42D96722A /* SDLTimer.h in Headers */, - 0FEC36EC65956FCDE10B7AD3D03B3AA7 /* SDLTimerMode.h in Headers */, - BFC83F4E11869F5C6CD87BC9F91E123A /* SDLTireStatus.h in Headers */, - 667DD157108EB7E1B946CE0B82C8876C /* SDLTouch.h in Headers */, - 2A313B1672E3B5388BB705FE11F3066D /* SDLTouchCoord.h in Headers */, - DF389ED4CFCC4C49722FF32428C21F02 /* SDLTouchEvent.h in Headers */, - 195BDF65B263C2245DA85829BAB3235A /* SDLTouchEventCapabilities.h in Headers */, - 790D4202C8608711D71DEFA479151C5F /* SDLTouchManager.h in Headers */, - F7B7828265E8A71460813E695FF12C5E /* SDLTouchManagerDelegate.h in Headers */, - 54E2E06940B5DF1F43FCCDB95FBC7852 /* SDLTouchType.h in Headers */, - 89CF0DFE01D957DA8527799ABE3B1FA8 /* SDLTPMS.h in Headers */, - DF0F464852D0677F40806289EC180D71 /* SDLTransportDelegate.h in Headers */, - 500FD152C9497C38BE0B36C857027D6D /* SDLTransportType.h in Headers */, - C281C9947B10D00CE99D0A4880B05FA0 /* SDLTriggerSource.h in Headers */, - 608C377B709C7C5D8284B5331A22F2B4 /* SDLTTSChunk.h in Headers */, - 0E43D15AA5F1FD0B502ADB565D76215C /* SDLTurn.h in Headers */, - 7F580997F9720C55DD316BFD91C20488 /* SDLTurnSignal.h in Headers */, - EB06F65BAC152480E3E9C9F16199CB39 /* SDLUnpublishAppService.h in Headers */, - 44688FDFE801EB640910E77BCD4676C1 /* SDLUnpublishAppServiceResponse.h in Headers */, - E4E197C549F240B3BAAF1AC8DECE3A05 /* SDLUnregisterAppInterface.h in Headers */, - 5A05C8C3A39875B1AC0A46C18FAB7203 /* SDLUnregisterAppInterfaceResponse.h in Headers */, - 22F3EF5746CA33D946F1C1EB781D5D14 /* SDLUnsubscribeButton.h in Headers */, - EE5D946537A1DF4179774759EFFD6220 /* SDLUnsubscribeButtonResponse.h in Headers */, - 45F55718ACB758E98BA2735A380DC37F /* SDLUnsubscribeVehicleData.h in Headers */, - 0E28D0CF26FDE3DF127B22E91EC58828 /* SDLUnsubscribeVehicleDataResponse.h in Headers */, - B1D4313BE976C18539749F477ED2A75B /* SDLUnsubscribeWayPoints.h in Headers */, - 6536501943A353860D4FF7101CF32D06 /* SDLUnsubscribeWayPointsResponse.h in Headers */, - 288C523997A09EC027B619F7F3895078 /* SDLUpdateMode.h in Headers */, - EDEC92034597B5305FB581C52EC342C4 /* SDLUpdateTurnList.h in Headers */, - 3E84DCB02F0A0F92DEE9F035C7419B7C /* SDLUpdateTurnListResponse.h in Headers */, - 8D0B79BE234C74A8E6FCEC2B7AC0C0EC /* SDLUploadFileOperation.h in Headers */, - 08844BF14B2337C1EE9AEAC757BE8180 /* SDLV1ProtocolHeader.h in Headers */, - C6882A2AA7E8DF44215463FBBD0A5844 /* SDLV1ProtocolMessage.h in Headers */, - 9AC1E68F168FC9BD70C6F53284C18A09 /* SDLV2ProtocolHeader.h in Headers */, - 0928674585F59E61E7A886E8DE6C14E7 /* SDLV2ProtocolMessage.h in Headers */, - 73EE015CFC589C611F793F3F32B9EA6A /* SDLVehicleDataActiveStatus.h in Headers */, - 4AB72D0E36873D1317F92EEC019BDF58 /* SDLVehicleDataEventStatus.h in Headers */, - 571CEBE5B6BC6AA08B580FE03D8C64F2 /* SDLVehicleDataNotificationStatus.h in Headers */, - 6DBB70DED9927270DE107BB855A6561C /* SDLVehicleDataResult.h in Headers */, - 7F84AC5D276982D92B3A9F817B40899E /* SDLVehicleDataResultCode.h in Headers */, - 37D70E272826FAD2A7459E3052927215 /* SDLVehicleDataStatus.h in Headers */, - FB5303D0D0879E80AB215DAFA1F8075D /* SDLVehicleDataType.h in Headers */, - CFBCEFA39678BB8EFED556C4C4E393C8 /* SDLVehicleType.h in Headers */, - 4F25F4D7F19E1F2FC5B08AE99801DAE6 /* SDLVentilationMode.h in Headers */, - 76A0F62D7F2B3A10ED98DDD5FA7E0D73 /* SDLVersion.h in Headers */, - A1EB1E865A03EC4D69C80EB755A77CDD /* SDLVideoEncoderDelegate.h in Headers */, - CC7B499C32833CC21989CB78BF57BD8D /* SDLVideoStreamingCapability.h in Headers */, - BDD7F9A3576E6AB17083ADB2CB825B21 /* SDLVideoStreamingCodec.h in Headers */, - DDF86259DDD170BA0A4E196E4091693D /* SDLVideoStreamingFormat.h in Headers */, - B9B40F9E3886D12F34F89C1991503195 /* SDLVideoStreamingProtocol.h in Headers */, - 07EA124701A0E2A13034C57CBFADCD56 /* SDLVideoStreamingState.h in Headers */, - 4F106B6602723F06DE807FEC15B46F84 /* SDLViewControllerPresentable.h in Headers */, - A81D5EC3B4B6F201C3603E3DAD6D8D60 /* SDLVoiceCommand.h in Headers */, - 17CA7FE9B07526278051C7A56EB7963D /* SDLVoiceCommandManager.h in Headers */, - 3ACD9797CEF78B50A3D83645939DB07E /* SDLVrCapabilities.h in Headers */, - 7797B6005DA53531D352BB960AE6EC19 /* SDLVrHelpItem.h in Headers */, - D73ADEB3AC0387951C53E6960FA055E7 /* SDLWarningLightStatus.h in Headers */, - DFD13BF6A7E6D738C7D1630542AF5872 /* SDLWayPointType.h in Headers */, - 2A7C7C18EC434E6BD10F0AC42D3C7241 /* SDLWeatherAlert.h in Headers */, - 53BC9C01093F61CF20D0CF465FA37E8F /* SDLWeatherData.h in Headers */, - FC73D4BF63D50DEE5A7168F8D9F1913D /* SDLWeatherServiceData.h in Headers */, - 6E2D4B80A9BADA0A13B7E8FC6F25DB13 /* SDLWeatherServiceManifest.h in Headers */, - BF9446AB36AF25C269305E518A6FEF66 /* SDLWindowCapability+ScreenManagerExtensions.h in Headers */, - CB791B74CA451436BBDA8DBA49F32388 /* SDLWindowCapability.h in Headers */, - 1FC3717780F9C340D3CDA0E3B746A46E /* SDLWindowType.h in Headers */, - 43963E4F4E8BD7A5A13BE8BC32F2D88B /* SDLWindowTypeCapabilities.h in Headers */, - B4A68E8A12DB0394DFCDAC1D5C57270D /* SDLWiperStatus.h in Headers */, - 190106E955FF3E05FEC02D5F58304C32 /* SmartDeviceLink-umbrella.h in Headers */, - E0A861742905E7E47078908A5C2A0AD3 /* SmartDeviceLink.h in Headers */, - AFBA83A49C18D3400B678ED151AA501B /* TestSubscribeButtonObserver.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1901E553EF7960531A828B98ACF2AA7D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 87AC6CA51E70B12C479133AC047D6AD0 /* Pods-MobileWeather-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - B66CE0E28833C1ADF2E05A768FE24F69 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 4CB426F09D090C57A0C0D743F5A802B1 /* BiSON-umbrella.h in Headers */, - 80C31DB7E8132BB5C12F3C7AEC99CE36 /* bson_array.h in Headers */, - 82DA35190CA47C0906DF3CF1F2275F9F /* bson_object.h in Headers */, - F66A68935B8E019A5A1FAE879ECA5384 /* bson_util.h in Headers */, - F36307961DF70A8DFC73478E78F68284 /* emhashmap.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 3BAB8E4F4ED1E843F9C863ADE37B95B5 /* BiSON */ = { - isa = PBXNativeTarget; - buildConfigurationList = 76B36B34F146E145104894A1D2A3BA87 /* Build configuration list for PBXNativeTarget "BiSON" */; - buildPhases = ( - B66CE0E28833C1ADF2E05A768FE24F69 /* Headers */, - 9A486A09638ADD3E6C8A7BDBBDBBF93A /* Copy emhashmap Public Headers */, - 07AD40EC7D44C9B8D14224BFDB2DD77E /* Copy . Public Headers */, - BDACCF4256FF7D99C68707BD29EAAC54 /* Sources */, - 8DB01620F7C5C044421A8952D951B11D /* Frameworks */, - 74125B44A08712DA5C7E97D229D21B72 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = BiSON; - productName = BiSON; - productReference = 7B1F6B431A4C7D300274DCDBE2BC7043 /* BiSON.framework */; - productType = "com.apple.product-type.framework"; - }; - 3D5C8508F5D7F6E6DD86E88C9CF9F8F4 /* SmartDeviceLink-SmartDeviceLink */ = { - isa = PBXNativeTarget; - buildConfigurationList = EE906D3B455A6A0B2FB28DBA11DF210D /* Build configuration list for PBXNativeTarget "SmartDeviceLink-SmartDeviceLink" */; - buildPhases = ( - 0E3BE5DEB9D36281D2D607CBA088EBF1 /* Sources */, - 6ECD2E914F56D3E2BE62A07561B18D03 /* Frameworks */, - F7C94F1023AD45EB81A64337621B47A1 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "SmartDeviceLink-SmartDeviceLink"; - productName = "SmartDeviceLink-SmartDeviceLink"; - productReference = C197364227C0998A9025317EAD699894 /* SmartDeviceLink.bundle */; - productType = "com.apple.product-type.bundle"; - }; - 3E4681F4DA28159D4B2A602AFCC94AFF /* Pods-MobileWeather */ = { - isa = PBXNativeTarget; - buildConfigurationList = 6E72C1838712FC6ECD613377491FF02D /* Build configuration list for PBXNativeTarget "Pods-MobileWeather" */; - buildPhases = ( - 1901E553EF7960531A828B98ACF2AA7D /* Headers */, - E3D50D58A9FF2A6D484EB5EC0062F364 /* Sources */, - 59047D00004E0FC863A84D4A108701F4 /* Frameworks */, - 45A6443D7E3CE460FACBC4943AAA3286 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - A9790C90E6F821B435B62092D612A7A5 /* PBXTargetDependency */, - 1F7C56A3DE4502DD81BC6DE14A5370CA /* PBXTargetDependency */, - ); - name = "Pods-MobileWeather"; - productName = "Pods-MobileWeather"; - productReference = B658D9594E81D91F5F5FF21E8DD5044A /* Pods_MobileWeather.framework */; - productType = "com.apple.product-type.framework"; - }; - D80456DDA93CD634453A682E14808519 /* SmartDeviceLink */ = { - isa = PBXNativeTarget; - buildConfigurationList = CE293D9EFD2DEF0FF33713509CB18AC6 /* Build configuration list for PBXNativeTarget "SmartDeviceLink" */; - buildPhases = ( - 101A7953E27756AC6A0A7BB9E7CF35E7 /* Headers */, - 86262482C591891734DA2C278EDD81F5 /* Sources */, - 072FE30B51DE3BD5A1AD793BB58D062D /* Frameworks */, - 65226E71F89D09EFE42B07617D48EE8B /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - E7069BB5B10BAB04527EF405F8C1E644 /* PBXTargetDependency */, - A706C0D266E37F9AEA47FAA65E9C50E7 /* PBXTargetDependency */, - ); - name = SmartDeviceLink; - productName = SmartDeviceLink; - productReference = 012CE07CE00E36054DA038C75909F04A /* SmartDeviceLink.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - BFDFE7DC352907FC980B868725387E98 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1100; - LastUpgradeCheck = 1100; - }; - buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - de, - es, - fr, - ja, - "zh-Hans", - ); - mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = DD304B7CA51DC6D1CDE0F21CD545A9F1 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 3BAB8E4F4ED1E843F9C863ADE37B95B5 /* BiSON */, - 3E4681F4DA28159D4B2A602AFCC94AFF /* Pods-MobileWeather */, - D80456DDA93CD634453A682E14808519 /* SmartDeviceLink */, - 3D5C8508F5D7F6E6DD86E88C9CF9F8F4 /* SmartDeviceLink-SmartDeviceLink */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 45A6443D7E3CE460FACBC4943AAA3286 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 65226E71F89D09EFE42B07617D48EE8B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 6FFBDADDDAF3EB0CAE0F592A4D57944A /* SmartDeviceLink.bundle in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 74125B44A08712DA5C7E97D229D21B72 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F7C94F1023AD45EB81A64337621B47A1 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B6CCE216B0EF2FB21C052AFBA47F8FF8 /* SDLAssets.xcassets in Resources */, - D795C46A692D0C8E9ED02F075AB7ACEB /* SDLLockScreen.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 0E3BE5DEB9D36281D2D607CBA088EBF1 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 86262482C591891734DA2C278EDD81F5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DCE0587A668CB5629A3922AEED72696D /* CGPoint_Util.m in Sources */, - 7E22622570D54BD1940684C8878AD8EE /* CVPixelBufferRef+SDLUtil.m in Sources */, - 958BA35B1D729FDEF31741435AE32D47 /* EAAccessory+SDLProtocols.m in Sources */, - 1BA6566C54CC331FD44B6D747A71413E /* EAAccessoryManager+SDLProtocols.m in Sources */, - C49085322E666749EF2BFEBE0B39A03D /* NSBundle+SDLBundle.m in Sources */, - 7797ACE4CA0ECF8E48783A0F0F48B613 /* NSMapTable+Subscripting.m in Sources */, - 2BCD9A7B3DD021361FFE8FB9B730AE60 /* NSMutableArray+Safe.m in Sources */, - 46CB9EA98028EF5643189A044EF55FA6 /* NSMutableDictionary+SafeRemove.m in Sources */, - E856AEBFEFC7D5F0578CD0BCF2E437A2 /* NSMutableDictionary+Store.m in Sources */, - C9A51A47B90DE8253FD3BC6440CFB71E /* SDLAddCommand.m in Sources */, - F9D4473988403B0D857F60E04AE1869C /* SDLAddCommandResponse.m in Sources */, - 2DFDC4AD6962C73978FDCB69788CB03A /* SDLAddSubMenu.m in Sources */, - 4AD88CBD9DFB871BC60464B1D464C126 /* SDLAddSubMenuResponse.m in Sources */, - 8791415B6BA285019F93446711CFB890 /* SDLAirbagStatus.m in Sources */, - C91879AA8DE05A71C2033F931AB5CCA3 /* SDLAlert.m in Sources */, - 70641AFF8F162D96E9A8D15A25ED7DEA /* SDLAlertManeuver.m in Sources */, - 8C5CBA98BA079CB5DB372F9795C00402 /* SDLAlertManeuverResponse.m in Sources */, - C2FE8CF94D832796F3EF72FB70D19BAE /* SDLAlertResponse.m in Sources */, - 7E254B51D45A6C9BA396DCADEFF5C2C0 /* SDLAmbientLightStatus.m in Sources */, - 79A1ED399F40324160E433A36A0E4DEE /* SDLAppHMIType.m in Sources */, - D3D759726795216F9424D189A841E710 /* SDLAppInfo.m in Sources */, - 80EE893775E39EB4C5AD60C59D973BAC /* SDLAppInterfaceUnregisteredReason.m in Sources */, - 034FD36A8B615166B2A55A320825E672 /* SDLAppServiceCapability.m in Sources */, - 4FA65B210DE99D64030605C9E769AC05 /* SDLAppServiceData.m in Sources */, - E0E1B3ACC985352FAE972CBA76E0181F /* SDLAppServiceManifest.m in Sources */, - 253CF5828543F3EBE5E6AD378905C642 /* SDLAppServiceRecord.m in Sources */, - F5FF108C0938117D95BEBD45B79C0983 /* SDLAppServicesCapabilities.m in Sources */, - CB78A3E864EA0A002502E8C3AD6C46D8 /* SDLAppServiceType.m in Sources */, - 61514DCF5A2A0366879CCFF8E1D53FCD /* SDLArtwork.m in Sources */, - AEE77C021573B8DD9C36742C872CC145 /* SDLAsynchronousOperation.m in Sources */, - CF0D78642CD57EA660A8067270AAAF75 /* SDLAsynchronousRPCOperation.m in Sources */, - 1833E6DCA530A450C5480467B637E31E /* SDLAsynchronousRPCRequestOperation.m in Sources */, - F6A3C792B488CB3D8AEEF40EBC595D0D /* SDLAudioControlCapabilities.m in Sources */, - 19FC5C8BF351FC3E95B20901E34AFDB4 /* SDLAudioControlData.m in Sources */, - FA4A926BE21F813482C1EEF8B5D3E8C1 /* SDLAudioFile.m in Sources */, - C8354B4FAA109B7F8E992FB959D0D7F3 /* SDLAudioPassThruCapabilities.m in Sources */, - 988688D3D697D96628D7083C22A6746B /* SDLAudioStreamingIndicator.m in Sources */, - 4F7B3FACDC968EEB28DBBDE1A4B118D2 /* SDLAudioStreamingState.m in Sources */, - DD0A1BEB5AEA8AABB567D0818319E6E2 /* SDLAudioStreamManager.m in Sources */, - A983A6276F3C7B7AC3587F036EE6E779 /* SDLAudioType.m in Sources */, - ED68CCC97FB702F10ED78C504F690D4C /* SDLBackgroundTaskManager.m in Sources */, - 4C7E24A221E96927418CE33F08F14A05 /* SDLBeltStatus.m in Sources */, - B0C6AD5C1F58F49D4F0EB9202EE6654B /* SDLBitsPerSample.m in Sources */, - FE4F97665C7F66149151763B5E251ED9 /* SDLBodyInformation.m in Sources */, - FC16833BB8606EE3ECBF22387E960652 /* SDLButtonCapabilities.m in Sources */, - BAC2CAAD8EF1B594AF2AACCC04E5C18D /* SDLButtonEventMode.m in Sources */, - C696CAE3A09EB97DC810FC07560EC69B /* SDLButtonName.m in Sources */, - 929ADD71B64CBA1ACDBA88FA86B27B5D /* SDLButtonPress.m in Sources */, - 73DE5C4E84CC11C41F29013A13AE6B49 /* SDLButtonPressMode.m in Sources */, - 0F80DC9D4D10F534C6F2B7CB23896C90 /* SDLButtonPressResponse.m in Sources */, - 2706135D6304AF804131C64201373241 /* SDLCacheFileManager.m in Sources */, - 9F6E93F678382583CB066DB5551B6328 /* SDLCancelInteraction.m in Sources */, - 07AD372A4D2EB711FF523E81E3E90BF1 /* SDLCancelInteractionResponse.m in Sources */, - BFADD0FED2798C307E340300A4A559CB /* SDLCarModeStatus.m in Sources */, - 4EEA7E1F5B0599432045D965A5F0F853 /* SDLCarWindow.m in Sources */, - 26D4C0D8E30774CFEE843FEF4743645B /* SDLCarWindowViewController.m in Sources */, - 715A7299FB24EDB0B8C8566CACF275EA /* SDLChangeRegistration.m in Sources */, - F2BE2F57B286B175FC62F1444430B1D4 /* SDLChangeRegistrationResponse.m in Sources */, - A93762770ACAEA4669A192AA1B24F74E /* SDLCharacterSet.m in Sources */, - AEA20BEDAED5BFD7E117618DE31A2294 /* SDLCheckChoiceVROptionalOperation.m in Sources */, - E6BA8D851540D188968B8544AF39F7C7 /* SDLChoice.m in Sources */, - 2357A232DE207AAE2411963C3617D7CE /* SDLChoiceCell.m in Sources */, - 572EA07632A1B4FD40F4BAF78A817413 /* SDLChoiceSet.m in Sources */, - A880069AB28A616308F535E09774FE5B /* SDLChoiceSetManager.m in Sources */, - 2DB08513DEEDEF75DC9B4E14E2472368 /* SDLClimateControlCapabilities.m in Sources */, - B9FBF724A55EE25820B80F367AC73C25 /* SDLClimateControlData.m in Sources */, - 1C92C671D8279E6FB7270A408214F9D3 /* SDLCloseApplication.m in Sources */, - 342C8E76BD027C866688E49E07922DC5 /* SDLCloseApplicationResponse.m in Sources */, - AE62522F9520AF29D75A29C4F52021DA /* SDLCloudAppProperties.m in Sources */, - FFE6F75D5CD21D5E45302E27C7330DDB /* SDLClusterModeStatus.m in Sources */, - 023FF5FF6AB8D92897C064F883E571BB /* SDLCompassDirection.m in Sources */, - 3EA94155B7EC5117E704B30EF66256D4 /* SDLComponentVolumeStatus.m in Sources */, - 21E4968504B9B9A36C22927525A27A22 /* SDLConfiguration.m in Sources */, - C0A71255BA42AABF49FC6BF20B7E6942 /* SDLControlFramePayloadAudioStartServiceAck.m in Sources */, - 010C3B63A6D23E6FFDCECFA3501FD245 /* SDLControlFramePayloadConstants.m in Sources */, - F5F3431D4E9DA8E993F74FBB8700C2D3 /* SDLControlFramePayloadEndService.m in Sources */, - E78A6E5549B103DFAE743AD12D3BB3C9 /* SDLControlFramePayloadNak.m in Sources */, - 8D4AB4E591716291BBAAF6ED6158C334 /* SDLControlFramePayloadRegisterSecondaryTransportNak.m in Sources */, - 88C588D8E3BA8DCFE6492D8A84C27955 /* SDLControlFramePayloadRPCStartService.m in Sources */, - 6A87625EF2166A613128D2C3B2CD0EDC /* SDLControlFramePayloadRPCStartServiceAck.m in Sources */, - A29DDF83D423EEF2B51B63527AE1EB53 /* SDLControlFramePayloadTransportEventUpdate.m in Sources */, - 836439614BB958B33C815F337891A1E4 /* SDLControlFramePayloadVideoStartService.m in Sources */, - 8F79C57B48BD48C9C5C9CBDDEE4FA12E /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */, - 23CD6E5D59B9816CB5B431D84A9B841C /* SDLCreateInteractionChoiceSet.m in Sources */, - B7690B374717F6654E1FB323F56CDAC5 /* SDLCreateInteractionChoiceSetResponse.m in Sources */, - 0E6E01DCAD73B2D0AA22BEEF99D6220F /* SDLCreateWindow.m in Sources */, - 7E1AB33ED4368698355849CC018E62B8 /* SDLCreateWindowResponse.m in Sources */, - 3F4AD047267732B8620595C92A211626 /* SDLDateTime.m in Sources */, - FB5187CAF6381587B2C09B586DCFD65E /* SDLDefrostZone.m in Sources */, - A1161753253DEFA30B66E27E94AFAFA8 /* SDLDeleteChoicesOperation.m in Sources */, - C927DC95742CBB01C497AFA4B78445B6 /* SDLDeleteCommand.m in Sources */, - 55FEF4FF43C2FC907DCB0ECC9AB94286 /* SDLDeleteCommandResponse.m in Sources */, - 252B5ED026A01C0D4C40814C966FED34 /* SDLDeleteFile.m in Sources */, - 303F0EB9B270569385EE922355BB7E3D /* SDLDeleteFileOperation.m in Sources */, - B4A61C8FC47F7E6EB2494CE3ECFEB4D9 /* SDLDeleteFileResponse.m in Sources */, - DDC9A6C3B028FAED1D590BB8FB455CFA /* SDLDeleteInteractionChoiceSet.m in Sources */, - 7363BD6E4C6F33855F2424FAF92C24C2 /* SDLDeleteInteractionChoiceSetResponse.m in Sources */, - FEBFDB67FEDBDF463E70EFD31350D707 /* SDLDeleteSubMenu.m in Sources */, - 10B60849CF1A0F57C155CF09B6CEF269 /* SDLDeleteSubMenuResponse.m in Sources */, - DFD1D56FCF90A9760B608B68C4B20D6C /* SDLDeleteWindow.m in Sources */, - 94B16494699CA8D318680A2E935156A9 /* SDLDeleteWindowResponse.m in Sources */, - 0DC17CC659095ACDA1DD4475EB6B61AE /* SDLDeliveryMode.m in Sources */, - 4076BFBF65A4A2046591AABC91A028F4 /* SDLDeviceInfo.m in Sources */, - 2DB78F6080F090A8961C26B799153455 /* SDLDeviceLevelStatus.m in Sources */, - 75EDAD156F18E1031B3797F58D04BE56 /* SDLDeviceStatus.m in Sources */, - E5979E7ED144130EDF229E940FDCEC6D /* SDLDiagnosticMessage.m in Sources */, - 137536F0DC6C6A1290F7C928335EE9EC /* SDLDiagnosticMessageResponse.m in Sources */, - 73AA14293006489564B10EE55DB803BE /* SDLDialNumber.m in Sources */, - 1FF10BE9E8007086210AA089BBD34F2B /* SDLDialNumberResponse.m in Sources */, - 60F5AE17A02DF80CEE6DBF6E6413020B /* SDLDIDResult.m in Sources */, - D234391D80E52A63CABA557E2648CB1D /* SDLDimension.m in Sources */, - 2F4E80B19F313DE275BF8A4C380F0F74 /* SDLDirection.m in Sources */, - AA342DA2EF3182E7DBBB4A113C12A4B4 /* SDLDisplayCapabilities.m in Sources */, - AB7861DE54C82B10AC22ACC4D25E1587 /* SDLDisplayCapability.m in Sources */, - 3B0ACE0BF82CAB30ED1ABC54F39CB5DB /* SDLDisplayMode.m in Sources */, - FC3444AE19593182B1B1D7256A3C3221 /* SDLDisplayType.m in Sources */, - F3F1C5B0BC58DC8D8FC6B259EB0932F1 /* SDLDistanceUnit.m in Sources */, - C2EA147B1E0EE749146AD91F1A361EB4 /* SDLDriverDistractionState.m in Sources */, - FFA33134510D6CC20094D31BA6C22AB4 /* SDLDynamicMenuUpdateAlgorithm.m in Sources */, - 8A0217E86ABB97C151485BEE6A05C9B3 /* SDLDynamicMenuUpdateRunScore.m in Sources */, - C283ED9B5B1EC7EC6868B78713450850 /* SDLECallConfirmationStatus.m in Sources */, - F58FAECE702EA7D92183F8760FD9A2FE /* SDLECallInfo.m in Sources */, - E77B6A7478F7762E6DF80267D1107F58 /* SDLElectronicParkBrakeStatus.m in Sources */, - 9F29AC1D8588B1909F44A2D2154B059E /* SDLEmergencyEvent.m in Sources */, - 41BD6912F45B73EA88F91D8FF36470F3 /* SDLEmergencyEventType.m in Sources */, - 7195E044FEC69FB050E2E51AAB636AFB /* SDLEncodedSyncPData.m in Sources */, - 89712DE1E205AF44BB30F36CBDB31118 /* SDLEncodedSyncPDataResponse.m in Sources */, - BD9AB81D2EB679A0ECAE3F85B412382F /* SDLEncryptionConfiguration.m in Sources */, - FACC0EB4D9967C04B9F4ED7A82ED4A80 /* SDLEncryptionLifecycleManager.m in Sources */, - 30A46A62B4A22B6AFE3B7369879FCB46 /* SDLEncryptionManagerConstants.m in Sources */, - 8D4F4377C8B41695F73334FA8DF62670 /* SDLEndAudioPassThru.m in Sources */, - 4BB3C3F4C43F262E62FC10A2B90C5509 /* SDLEndAudioPassThruResponse.m in Sources */, - AAC0DB5D3A430B05CC4019E7D477C302 /* SDLEnum.m in Sources */, - A90A906DCF7DCBCA8E836FA3E00A6282 /* SDLEqualizerSettings.m in Sources */, - 3E5E415918576021223E72FDEF0A3C9F /* SDLError.m in Sources */, - 20C79EED1BFD13B24B8119A104E92501 /* SDLFile.m in Sources */, - A00E882CF0FA04AC4318B555BA1B4A44 /* SDLFileManager.m in Sources */, - 06937EC8C50E58F95E3115B64BE7AA1F /* SDLFileManagerConfiguration.m in Sources */, - DC9AE1FE02EE4FA7CC1FC9B08CEBC606 /* SDLFileType.m in Sources */, - 5A7F0025D46821A9392DC4115B746DF1 /* SDLFileWrapper.m in Sources */, - 5B8C2645A7E114E40C5A2D8DB333C72B /* SDLFocusableItemLocator.m in Sources */, - 55BC0E64D4A51021A93FB2D763F3BF9C /* SDLFuelCutoffStatus.m in Sources */, - 581A00BAEB05979C1FA7426A48471335 /* SDLFuelRange.m in Sources */, - 41ACFBF95F2E17E58C237CE67A1D6C68 /* SDLFuelType.m in Sources */, - 41D0EF1CC1302A540C682C2BB821A8D6 /* SDLFunctionID.m in Sources */, - 0F3BE3D37B1583BC547B32930DC8BCE0 /* SDLGenericResponse.m in Sources */, - FA9FF61A369932D7A9F8CA98DE159A5A /* SDLGetAppServiceData.m in Sources */, - 31DF1B2C4244986AE7B049BB6B21B1BA /* SDLGetAppServiceDataResponse.m in Sources */, - 4F65E2C7B4EA078E55DEE34B47EEFFAA /* SDLGetCloudAppProperties.m in Sources */, - 8D96B70D023F440340BE44A4E7FEAD66 /* SDLGetCloudAppPropertiesResponse.m in Sources */, - E745F04FE498B11A62DAC56607C8F16C /* SDLGetDTCs.m in Sources */, - 66ED15B498C10845B6833F5B4A77C059 /* SDLGetDTCsResponse.m in Sources */, - 9F9DC8D007500904C401C5C7E8C89FFA /* SDLGetFile.m in Sources */, - ECB370882E699F878A5EE75B1851B368 /* SDLGetFileResponse.m in Sources */, - B9617E8EDB38BF24FD843947A207D4B2 /* SDLGetInteriorVehicleData.m in Sources */, - 70AEED633DCBAB9C33F9B4089A91EDB4 /* SDLGetInteriorVehicleDataConsent.m in Sources */, - CA828C268CD9EDA17EEB8F8B54EC580F /* SDLGetInteriorVehicleDataConsentResponse.m in Sources */, - 73B554D007A9561BFDB7FA5D9EC45AB3 /* SDLGetInteriorVehicleDataResponse.m in Sources */, - 41942EC4AE2AF408EC4FAB078ACBE980 /* SDLGetSystemCapability.m in Sources */, - 9C3E8E79D55F890640B50D7F4F74F081 /* SDLGetSystemCapabilityResponse.m in Sources */, - 680C81B640507A0A2695AC221C995EEA /* SDLGetVehicleData.m in Sources */, - 968D8990CE7A5931F68A82AFFAA76416 /* SDLGetVehicleDataResponse.m in Sources */, - 4913A753E7AE009D299D2B0C42BC49D2 /* SDLGetWayPoints.m in Sources */, - E056C153EAE20DCBD4C9346F351F7717 /* SDLGetWayPointsResponse.m in Sources */, - BE6575C305CDB643EFE2EEF7E6C18923 /* SDLGlobalProperty.m in Sources */, - 5CF48848187250BD2DEF080316CAC9DB /* SDLGlobals.m in Sources */, - FF500408E7F872622329864F819CB05C /* SDLGPSData.m in Sources */, - 925AF3168A7110110C9DAF79D5C00386 /* SDLGrid.m in Sources */, - 09E404E2F25004CA9B63E3A8740FBAA8 /* SDLH264VideoEncoder.m in Sources */, - 3135F7D1FD60C81070DDDE6DBB4B7427 /* SDLHapticRect.m in Sources */, - 0169E4DFEF372748DE00C9F39383DB6C /* SDLHeadLampStatus.m in Sources */, - B2419129FDB4A9CB41C203589CA22D4B /* SDLHexUtility.m in Sources */, - 8E4A9699872B71DECE53A3A947A70EFD /* SDLHMICapabilities.m in Sources */, - 75A47F369EB4C9E2307C69986DB81EB8 /* SDLHMILevel.m in Sources */, - CCE74EBBF92764FA7768E11556D54FD6 /* SDLHMIPermissions.m in Sources */, - 3CE9948E64E6E23127278086C3CE3D2F /* SDLHMISettingsControlCapabilities.m in Sources */, - 254F979EC45C46E927239748ED585AEA /* SDLHMISettingsControlData.m in Sources */, - 9250B505D81DEC59872413A95BEAB844 /* SDLHMIZoneCapabilities.m in Sources */, - E9863F20A70B2CC2E80FF2810B3C9D62 /* SDLHybridAppPreference.m in Sources */, - DEA9189597B1D402634C0FDC1F148A1E /* SDLIAPConstants.m in Sources */, - DDD1B26C9CF46F4824E82A0F9680CC69 /* SDLIAPControlSession.m in Sources */, - 9F8FE4EBAD620939494FAF4BD5B8E635 /* SDLIAPDataSession.m in Sources */, - 82BAE0EF80B27A362DDF3DC304D0F20A /* SDLIAPSession.m in Sources */, - 57675316F7DF755DB77B03DF5D82077D /* SDLIAPTransport.m in Sources */, - 02E85CFC1F2403195CE879996A331227 /* SDLIconArchiveFile.m in Sources */, - 4FD30C228C4C7D31C57D36865C45DDE1 /* SDLIgnitionStableStatus.m in Sources */, - 2DFED5B1E18F9EB68F6D688C9FF399EB /* SDLIgnitionStatus.m in Sources */, - EB66896A19F2C1294373CFB8E100750C /* SDLImage.m in Sources */, - B19FC81F57091EDF5B9AD8821F0B0A45 /* SDLImageField+ScreenManagerExtensions.m in Sources */, - A36ED8B7AA4C7BC318EE0E63EA70CE15 /* SDLImageField.m in Sources */, - 5924A69A69D0AF8A3DAF58868969E1A9 /* SDLImageFieldName.m in Sources */, - FF9B788C9EE45B9AD0D4112BEC4BC27E /* SDLImageResolution.m in Sources */, - C72845A179CF91D97BA28A95A08D1B5F /* SDLImageType.m in Sources */, - 2A8FE75D11339DAF0559381B487CE080 /* SDLInteractionMode.m in Sources */, - B65BC8F264AD280C4B608EC613C945F3 /* SDLKeyboardEvent.m in Sources */, - 25276E5A1E876F2DFC5094A769C6A7FE /* SDLKeyboardLayout.m in Sources */, - B4C64A6399943D451530DA5FD7209CAD /* SDLKeyboardProperties.m in Sources */, - 0C5FFABE03742C7D42D4C2CFFC50CADB /* SDLKeypressMode.m in Sources */, - 771AD16C3C75E73480731E53C6EE5AF4 /* SDLLanguage.m in Sources */, - EFCF4F776EC87D885ABAEAB6A6F008B0 /* SDLLayoutMode.m in Sources */, - F8C5750BFF965AB560AD9035ABBC92EB /* SDLLifecycleConfiguration.m in Sources */, - 329C6036FBDB55CFD9E1982FEDF0B431 /* SDLLifecycleConfigurationUpdate.m in Sources */, - 35CF57427874A819B9E1285661D32347 /* SDLLifecycleManager.m in Sources */, - 013DCC67B78583911AC21A27784A921F /* SDLLifecycleMobileHMIStateHandler.m in Sources */, - B2974FCBC9EC3C2830F9860E9C4243DD /* SDLLifecycleProtocolHandler.m in Sources */, - 70CF8E2FDDEF2C0826A194D233D72DF1 /* SDLLifecycleRPCAdapter.m in Sources */, - 665ABE2154820B9CEA1EF0EC5B0B2E1A /* SDLLifecycleSyncPDataHandler.m in Sources */, - 18F37C785F076E64EE279114F7AB40B6 /* SDLLifecycleSystemRequestHandler.m in Sources */, - CE49C253A850F521047B5640FB5E53D9 /* SDLLightCapabilities.m in Sources */, - C83608B2022EF502365295CEE3046EE9 /* SDLLightControlCapabilities.m in Sources */, - 2A8CCD7E7B1CC9315E04159E7FDDD738 /* SDLLightControlData.m in Sources */, - B94BF8ABCA51E7953AA57545718C7C13 /* SDLLightName.m in Sources */, - FB198942C45C672D222FC6E4211CFE28 /* SDLLightState.m in Sources */, - 3DF594F7EBAEC2D9B4C672D8E54BC8EE /* SDLLightStatus.m in Sources */, - 5870BC9B944DF757D12AF66ABCBD3708 /* SDLListFiles.m in Sources */, - 7F9DC4ABE8D601CA0A814F5C84BF0F71 /* SDLListFilesOperation.m in Sources */, - F775EFF321560177450BFF361F98946B /* SDLListFilesResponse.m in Sources */, - 181A55A6A8BFE664ADDFF50A12B11B66 /* SDLLocationCoordinate.m in Sources */, - 832E56B087986F80B9F00C2A58DE0AB8 /* SDLLocationDetails.m in Sources */, - 2CAB4C88313670F0F36281867EAD1019 /* SDLLockScreenConfiguration.m in Sources */, - 434437D79AF1D372D6D67496B72D1358 /* SDLLockScreenManager.m in Sources */, - C96541A29287F286A29CE2D41F837A8C /* SDLLockScreenPresenter.m in Sources */, - 1DDBAD92F469AFCE7DE53D43A7E3C2C4 /* SDLLockScreenRootViewController.m in Sources */, - EDDBA38A8B5F08CB9E558E24E13E0A6E /* SDLLockScreenStatus.m in Sources */, - 9ED85FAD2AF0198AADBFAD98BB11C799 /* SDLLockScreenStatusManager.m in Sources */, - B5F122A762987627F0C53217DD6B86B5 /* SDLLockScreenViewController.m in Sources */, - A1131A6BB01A094C26C80E68F70AA7E2 /* SDLLogConfiguration.m in Sources */, - 428B9550A0F15A2B8F5584900093F8C0 /* SDLLogFileModule.m in Sources */, - 1C674AC828EA23F8F36FC14512F17D3A /* SDLLogFileModuleMap.m in Sources */, - 704C315F529AF8A9C0D8A3956B143E30 /* SDLLogFilter.m in Sources */, - CC38CE4B649D9F3DD92503A289BE0CD3 /* SDLLogManager.m in Sources */, - 7D3C32CE5AFD4BF1EAA006DE944B11D9 /* SDLLogModel.m in Sources */, - 109CF6FCB76DF49872312F73F694589E /* SDLLogTargetAppleSystemLog.m in Sources */, - 9B62DF6B4229906E1D2ECDC12DDE06C7 /* SDLLogTargetFile.m in Sources */, - 1A5B4634AAA0EEFA5F44D5672FA96CD3 /* SDLLogTargetOSLog.m in Sources */, - FD1E5787AE17758017D394D82920962E /* SDLMaintenanceModeStatus.m in Sources */, - 0C612F491097584F468E5EA199DC519B /* SDLManager.m in Sources */, - 5850EF9B044637368E9F6B753DA1661D /* SDLMassageCushion.m in Sources */, - 930C00002E462F22EC9F0A811A3BC48A /* SDLMassageCushionFirmness.m in Sources */, - 67B909C564FDC20E3CC8440E232B7001 /* SDLMassageMode.m in Sources */, - 11FC0615BCD4D7C3D74F0E3A0AEA56D1 /* SDLMassageModeData.m in Sources */, - 07ACC12BF7F60B323CF56C98071F0BDA /* SDLMassageZone.m in Sources */, - EDE7F8A2D90DC7182E741D38768672F2 /* SDLMediaClockFormat.m in Sources */, - 9C119AD13DAE62F186B5AF78C8CCEFF1 /* SDLMediaServiceData.m in Sources */, - ABB493723C1C7433B4FFDD4C3F175B60 /* SDLMediaServiceManifest.m in Sources */, - 46F1D5E0135F13C261F3FA1128102B3C /* SDLMediaType.m in Sources */, - 8B423DDB671A45A561C24D5ADEBB8D17 /* SDLMenuCell.m in Sources */, - 78F0AE09FA57809FDA2B8119391DF058 /* SDLMenuConfiguration.m in Sources */, - 09723FAF4772B086F3936D5EE3201220 /* SDLMenuLayout.m in Sources */, - 6CBCD999A12041B09FA345EACCE7D67E /* SDLMenuManager.m in Sources */, - 07AFBEE85AAE2A4ECBE32262BB03746B /* SDLMenuParams.m in Sources */, - D029694A9ECA974051F09BD25C50A725 /* SDLMetadataTags.m in Sources */, - F11187AB47B27B53FE198D0BB45746B1 /* SDLMetadataType.m in Sources */, - 22677CAE5321A6CAA40B6D42378E953B /* SDLModuleData.m in Sources */, - 250CBB9751DBD8C706CEFFE1E3E8468B /* SDLModuleInfo.m in Sources */, - 1DDA4BF089765BFD15BEB62136419F67 /* SDLModuleType.m in Sources */, - 2C3074BE81DA26E6E3E62D45D05E71F0 /* SDLMsgVersion.m in Sources */, - 736B31E923657EA9F14B39C4D016E747 /* SDLMutableDataQueue.m in Sources */, - C9C038075883A4ACFC245F7BB0F5AAC7 /* SDLMyKey.m in Sources */, - FB6193D5C5C6C4AF6E15EA9EFA14908D /* SDLNavigationAction.m in Sources */, - C032FFE551DF10F2182A1D1345526748 /* SDLNavigationCapability.m in Sources */, - 4FAF9E8D38594CDAD8143CA6370F6EB8 /* SDLNavigationInstruction.m in Sources */, - 2D294C215F324510375F702DB4AF9F05 /* SDLNavigationJunction.m in Sources */, - EEE954637AC6DD4A372598EF3440574C /* SDLNavigationServiceData.m in Sources */, - 337A6486B41B81121017894953322C2D /* SDLNavigationServiceManifest.m in Sources */, - 79578E59AD64D8003939313FE749F474 /* SDLNotificationConstants.m in Sources */, - 6BD16DA220DACD38E212853FEF3CFC3F /* SDLNotificationDispatcher.m in Sources */, - 1632546B737E58E78653F73017E59695 /* SDLOasisAddress.m in Sources */, - 43C00FAF5B815417E2E4CA652CBD4221 /* SDLObjectWithPriority.m in Sources */, - 6A63E3C69D4A0BD81FB87B9C5E6B9E88 /* SDLOnAppInterfaceUnregistered.m in Sources */, - EDCCABE00468B31ECA26D0C9F8DDB32A /* SDLOnAppServiceData.m in Sources */, - ACA68CEF0DCC1C8B2658E9ABDEEBFB65 /* SDLOnAudioPassThru.m in Sources */, - 638357A247E8289D2E0CB7FB94483415 /* SDLOnButtonEvent.m in Sources */, - 4CB22235F686471AAAB40748D9D5A4A9 /* SDLOnButtonPress.m in Sources */, - A364DD5B4142117E4B4631E68A00FE45 /* SDLOnCommand.m in Sources */, - FABA89B3B6E0B6808D2CC7394744E608 /* SDLOnDriverDistraction.m in Sources */, - 6FA272F240EE747D4D5D69180A05B4A0 /* SDLOnEncodedSyncPData.m in Sources */, - 031E6C0A70724D15DF1B5A662470EDDF /* SDLOnHashChange.m in Sources */, - 2AEEBC756B4314A3C04256AFE546BBC4 /* SDLOnHMIStatus.m in Sources */, - 24054C486169603B5BA458F3CBF702EB /* SDLOnInteriorVehicleData.m in Sources */, - 37C103C2A55DB3911D4BCA00063446AD /* SDLOnKeyboardInput.m in Sources */, - 80B981D376B7AA3D80C491C8C6F4C465 /* SDLOnLanguageChange.m in Sources */, - 659DAF3396869C71FF9FF49AE8096CF6 /* SDLOnLockScreenStatus.m in Sources */, - 456E753731B63506DBE8906EE694AB5E /* SDLOnPermissionsChange.m in Sources */, - F1EFCA8C3F62223ADFD09C33D6AB282E /* SDLOnRCStatus.m in Sources */, - 01DD4A57171E44161D0BB154CC5D3848 /* SDLOnSyncPData.m in Sources */, - 01D2CAE59967EA1D70D78F423D414DBB /* SDLOnSystemCapabilityUpdated.m in Sources */, - 311D7778EBE0EF8015E83B8D32D389D0 /* SDLOnSystemRequest.m in Sources */, - C3A16DFCC7A71BF686D742882E0ABD44 /* SDLOnTBTClientState.m in Sources */, - 84AEEB5BB746FD70224E608230EFB8D1 /* SDLOnTouchEvent.m in Sources */, - 5D9A8E36A8A6FB375DDF1B0521EADD95 /* SDLOnVehicleData.m in Sources */, - 1F56FDE49764142BAAC3281184A0F44F /* SDLOnWayPointChange.m in Sources */, - 0656DA2E1EB814B1CDF91E68EB1D3F20 /* SDLParameterPermissions.m in Sources */, - 82C471FF3C4C36F6DED566A9F38DACC5 /* SDLPCMAudioConverter.m in Sources */, - D82D736B2C3DF45A7C4F9F8FD1C56517 /* SDLPerformAppServiceInteraction.m in Sources */, - 8012681A7A1329501CC0D2C6FB41522C /* SDLPerformAppServiceInteractionResponse.m in Sources */, - B343B9B9FD94A55F5C1DF63E3797BCD8 /* SDLPerformAudioPassThru.m in Sources */, - 58DB52B0C275C61237721E3D2AC4DAD1 /* SDLPerformAudioPassThruResponse.m in Sources */, - 014F6ABA74CD657439A0AB4B3BF1E28A /* SDLPerformInteraction.m in Sources */, - 53892E3772E852A7278E75A75D3CB2B2 /* SDLPerformInteractionResponse.m in Sources */, - 58CF8CA453B2AB8AA13CB2D31A23C62B /* SDLPermissionElement.m in Sources */, - E27BEE118C9765810483CB560ABD00CC /* SDLPermissionFilter.m in Sources */, - BF1E60E37BF4D60693B64925C7F73BC5 /* SDLPermissionItem.m in Sources */, - 98E22984D664414B333A2690BC267A50 /* SDLPermissionManager.m in Sources */, - D862DF3A1123E8B1E20F34D6FA127FA3 /* SDLPermissionStatus.m in Sources */, - 3E79998B5C40E4AC8D1794F26E7C453B /* SDLPhoneCapability.m in Sources */, - A744F3FBDD027EF8083D56235DD11762 /* SDLPinchGesture.m in Sources */, - BC887BD28B535FDED0EE08BE93F01CBD /* SDLPowerModeQualificationStatus.m in Sources */, - BA4D812C328C254955AB984DB383EF9C /* SDLPowerModeStatus.m in Sources */, - 355AD62388FCF6C80A11237D40D38F47 /* SDLPredefinedLayout.m in Sources */, - 31439E62B01AE8A36809C187E695C6E9 /* SDLPreloadChoicesOperation.m in Sources */, - 8508CB2E94573CDD48B6B69A6C865C21 /* SDLPrerecordedSpeech.m in Sources */, - 0B85145AE7451030C55559AE27AEA1A7 /* SDLPresentChoiceSetOperation.m in Sources */, - DF259E1489BF17C7A620368B26B8E6A8 /* SDLPresentKeyboardOperation.m in Sources */, - 6C2EF741FAF06B5B273480A4E83B71A3 /* SDLPresetBankCapabilities.m in Sources */, - 7FC9E3671626AC556EA615AF090EA1E0 /* SDLPrimaryAudioSource.m in Sources */, - EF44A701FBA04315711D250293E37709 /* SDLPrioritizedObjectCollection.m in Sources */, - F51C62C254D0309353E467F80FEFFE34 /* SDLPRNDL.m in Sources */, - 90F8E628A253894A60975451EFD100FC /* SDLProtocol.m in Sources */, - 55D5D0856115578A202D59702AEA852F /* SDLProtocolConstants.m in Sources */, - B11616E2030587DA492555777C6F1074 /* SDLProtocolHeader.m in Sources */, - 6014038CC3B4CF7B9F8914B391B7A37B /* SDLProtocolMessage.m in Sources */, - FE7919B6C34A51008AE0001CA25EB708 /* SDLProtocolMessageAssembler.m in Sources */, - 68A8266B19CDDD69DE77B14A45C13057 /* SDLProtocolMessageDisassembler.m in Sources */, - A5F4708B4FE2C25C993C970DAA270D63 /* SDLProtocolReceivedMessageRouter.m in Sources */, - 87A35022E373D35D80B39F53F6371307 /* SDLPublishAppService.m in Sources */, - 21902704F3A9A9F03579486E23620DE7 /* SDLPublishAppServiceResponse.m in Sources */, - DE5FE3482E96C8FBC5DCF4D0E5163EBE /* SDLPutFile.m in Sources */, - 63E91526EBD93C2EF19EA765829657BE /* SDLPutFileResponse.m in Sources */, - 8A5C8F87E4D7A32CC93B2DC1C6A322DC /* SDLRadioBand.m in Sources */, - A198B40DBA405B5DB3F5E3447BE94C9E /* SDLRadioControlCapabilities.m in Sources */, - D1369C0C9D556D158451FE97A301BFA7 /* SDLRadioControlData.m in Sources */, - 7F1BE10CD92530355AF15639B19E4C5B /* SDLRadioState.m in Sources */, - A1327BFC088CD8D368B15DED7246E077 /* SDLRAWH264Packetizer.m in Sources */, - 9C0456EBA174B29942498ED83DBBBFB7 /* SDLRDSData.m in Sources */, - 675A18616DA8321C848C329AEC19B160 /* SDLReadDID.m in Sources */, - C330281B036B07AEF8315BBA3F980286 /* SDLReadDIDResponse.m in Sources */, - 8924FC0582CB6B6236BB6905FE65176F /* SDLRectangle.m in Sources */, - 0E26ACDF875370E9FE2C72970C89A55A /* SDLRegisterAppInterface.m in Sources */, - C6B6887F8C6AD6C37EF48F20921312B6 /* SDLRegisterAppInterfaceResponse.m in Sources */, - 1D98A62E3D9E2303CC18BC70EED93D99 /* SDLReleaseInteriorVehicleDataModule.m in Sources */, - 5C37346184074495446F9DB33C56CE01 /* SDLReleaseInteriorVehicleDataModuleResponse.m in Sources */, - 82CFC44513CCB0B7C3DAB9499A777B37 /* SDLRemoteControlCapabilities.m in Sources */, - 8C5DEC040B352CB525F66B45CD5E8748 /* SDLRequestType.m in Sources */, - 4493C9382CEFE5A8B0545A7C08E6B87C /* SDLResetGlobalProperties.m in Sources */, - 46668785EC2A839C027BE887D6598241 /* SDLResetGlobalPropertiesResponse.m in Sources */, - 601CE9E6BD148366CDC9D03D30EEEC90 /* SDLResponseDispatcher.m in Sources */, - 9A06824727611E6DB64130AE34B5205B /* SDLResult.m in Sources */, - CB5175E540FEDA9D29FD99735A14E9CC /* SDLRGBColor.m in Sources */, - 1DE196C4FB473A8B9DBBFCE728FBAD97 /* SDLRPCFunctionNames.m in Sources */, - F915DB893F05D3A733468F86A065182C /* SDLRPCMessage.m in Sources */, - 8B0432997DC6DA829148948220731193 /* SDLRPCMessageType.m in Sources */, - D64E2353417610902CA55C5AF2070043 /* SDLRPCNotification.m in Sources */, - 1676673063B34A25A383627B95D940E3 /* SDLRPCNotificationNotification.m in Sources */, - C17F4F8AB2A43B0B4823D243F506F5E8 /* SDLRPCParameterNames.m in Sources */, - 2BF560ED93231DCAF6365DE031A17ADC /* SDLRPCPayload.m in Sources */, - EFE389E20849E812CB14B8BB26E3B3E4 /* SDLRPCPermissionStatus.m in Sources */, - 98A0D6893B9CEF42738012575D4B81ED /* SDLRPCRequest.m in Sources */, - FDC6CB7FA72121BBA4CA5D470068C345 /* SDLRPCRequestNotification.m in Sources */, - 919DFEBF8B0A1266AA42C4DB2B0735AA /* SDLRPCResponse.m in Sources */, - CB314D43C8D15A58318A5743F366449C /* SDLRPCResponseNotification.m in Sources */, - CFC7B8C1E1DC3CFE16D20AA62F278C69 /* SDLRPCStruct.m in Sources */, - 65552455476E98C94CACB3A15B8AC48E /* SDLRTPH264Packetizer.m in Sources */, - D5CC270CFF00D37990A5827DC91AFFAB /* SDLSamplingRate.m in Sources */, - 9CC99894D5AA75B1EC79ABB3CD9C2E2A /* SDLScreenManager.m in Sources */, - BADBE3327420053B18A5DC872A42BAEE /* SDLScreenParams.m in Sources */, - FEAE3D2D0A27CEFD66C33B263B0F34E3 /* SDLScrollableMessage.m in Sources */, - 29F621F3B007E7C389AC60BA73E62268 /* SDLScrollableMessageResponse.m in Sources */, - F739B4CC8B331017CA8BEEB40B20C0FE /* SDLSeatControlCapabilities.m in Sources */, - C765A62BC7D3BAF02422BDDC64022D28 /* SDLSeatControlData.m in Sources */, - CAC3A564C9FD78BB9295F9B6399CEA9C /* SDLSeatLocation.m in Sources */, - DDE358C2EE534C830E21C925CBFF1336 /* SDLSeatLocationCapability.m in Sources */, - 5FB32668254EF921D8C9D5C0625A6C1E /* SDLSeatMemoryAction.m in Sources */, - 6D1AF4472A7F9C1B0A8C9300D17B1212 /* SDLSeatMemoryActionType.m in Sources */, - F3ECB95B0031A65E9E7E7169914044C4 /* SDLSecondaryTransportManager.m in Sources */, - 224F1528A157FCD35BFF1EBA4D2C2872 /* SDLSendHapticData.m in Sources */, - 1E5B60D553AAD384F9F860E77298BB39 /* SDLSendHapticDataResponse.m in Sources */, - 8BCD8952EB9E93BCDCF52A6BBECB921A /* SDLSendLocation.m in Sources */, - F7FACF4C402CFC2A06E1F45A987CF1AC /* SDLSendLocationResponse.m in Sources */, - 5B288148F0AFA6AB22190A0E1024367F /* SDLSequentialRPCRequestOperation.m in Sources */, - 8757369831E7EF6DF27109FDDD773FD8 /* SDLServiceUpdateReason.m in Sources */, - 00F4491685B737A4DB17096FED751E6E /* SDLSetAppIcon.m in Sources */, - 1A862E5568966C1D6F18CC410B49D5B4 /* SDLSetAppIconResponse.m in Sources */, - BADDA940E23CE2325CC698BF0931F559 /* SDLSetCloudAppProperties.m in Sources */, - 0525CA12876C208985EACA58FC753CCB /* SDLSetCloudAppPropertiesResponse.m in Sources */, - 36CF5F6B96A767D0582D629A37F445D9 /* SDLSetDisplayLayout.m in Sources */, - 0755FA5543652B43F25B0B5700871AA3 /* SDLSetDisplayLayoutResponse.m in Sources */, - 480BCA1C16557CEEEB35054063CC6C07 /* SDLSetGlobalProperties.m in Sources */, - A4583BCEB2AC1DD17A778969E1176224 /* SDLSetGlobalPropertiesResponse.m in Sources */, - 28275C910F5B5C86487FF92DEDC9AFBE /* SDLSetInteriorVehicleData.m in Sources */, - 9865B7A5B80139F7E840ED07E1848F59 /* SDLSetInteriorVehicleDataResponse.m in Sources */, - C2D33B43AC2FD5798C2FAB02B8174AD0 /* SDLSetMediaClockTimer.m in Sources */, - 6D2A18A8F43141760C979EA5865D5905 /* SDLSetMediaClockTimerResponse.m in Sources */, - 0A3A907CBF1998EF1F9DF2A2DBFAFC53 /* SDLShow.m in Sources */, - 205D1C12AE6541D565AC31853F6D00B8 /* SDLShowAppMenu.m in Sources */, - 788BA682507FEAF11F09D62C9F14AC0F /* SDLShowAppMenuResponse.m in Sources */, - 6C55CF78347F53006F8826D260640D04 /* SDLShowConstantTBT.m in Sources */, - A004CE7345498F2955076679857302C9 /* SDLShowConstantTBTResponse.m in Sources */, - CB753DDB9FFC23A82636E11F3E8201E9 /* SDLShowResponse.m in Sources */, - EFBEEF8568380DEE11B6F08A8B78B4A8 /* SDLSingleTireStatus.m in Sources */, - A7E72AF0798FCBA961B605865BC0D940 /* SDLSISData.m in Sources */, - 020C50C71A8B336649F77B0855268D50 /* SDLSlider.m in Sources */, - 87B3F3A88241E01AB0FACBDFC3593F9A /* SDLSliderResponse.m in Sources */, - 17285ECD70560F7B126EF60F44F24FFA /* SDLSoftButton.m in Sources */, - 79DA7C2BA0454A250426F3F164EA4CBC /* SDLSoftButtonCapabilities.m in Sources */, - E4F533095901E422CA5FDE7ABA3D70F5 /* SDLSoftButtonManager.m in Sources */, - AFB8E1D1D3A726DC7722D55D4D6C512B /* SDLSoftButtonObject.m in Sources */, - 4A3B8C054EFCF528CBF4ABB1AC3DD93F /* SDLSoftButtonReplaceOperation.m in Sources */, - 458BF4D2B838994829BFBA9D69641434 /* SDLSoftButtonState.m in Sources */, - 45D24D3189F7695C51AAACC2A4171DC5 /* SDLSoftButtonTransitionOperation.m in Sources */, - 508DAE5023F694C4CD2E7867B3CE6F56 /* SDLSoftButtonType.m in Sources */, - 9D183E14A9513C11B72CDDF134760AEE /* SDLSpeak.m in Sources */, - 056296F8E42866A7507D690F4ABF87BB /* SDLSpeakResponse.m in Sources */, - A74F1CA5505DE503FFAA407AE3AB1129 /* SDLSpeechCapabilities.m in Sources */, - 66B27F474A7986812D213809F149E989 /* SDLStartTime.m in Sources */, - 58DE982C4E8188ECF4D6F251CBB29645 /* SDLStateMachine.m in Sources */, - C401770909E121E973EEC50C039FE781 /* SDLStaticIconName.m in Sources */, - FE7ECE8ED397E4084323336BCF2EA284 /* SDLStationIDNumber.m in Sources */, - 6BB44F106B80C0DB9846E5EFD1476F37 /* SDLStreamingAudioLifecycleManager.m in Sources */, - BC95947B2CA1B575357D685F78EE3250 /* SDLStreamingMediaConfiguration.m in Sources */, - ED90A63BB1EB1FFE8F728ECEBA936AAC /* SDLStreamingMediaManager.m in Sources */, - 8F1D97A10A4CD8C000AA88F803250671 /* SDLStreamingMediaManagerConstants.m in Sources */, - 4138B2ACFD9C35D69ECFF36B8D73988E /* SDLStreamingVideoLifecycleManager.m in Sources */, - FFD26297C611AF551A2738FBBB3E9C80 /* SDLStreamingVideoScaleManager.m in Sources */, - 9DA547A789D5556CB6C8E4CB38337256 /* SDLSubscribeButton.m in Sources */, - 646AD977FC1D69B37D5E99F3FC282DF2 /* SDLSubscribeButtonManager.m in Sources */, - 1F82BAB874DDB98D7FDFA3C70DC99E81 /* SDLSubscribeButtonObserver.m in Sources */, - 437AE1029BE7E84D5C77531F19999CAD /* SDLSubscribeButtonResponse.m in Sources */, - D354CACF9942538FCD7108F3AD25E2FF /* SDLSubscribeVehicleData.m in Sources */, - 9D0AC63359FA806DBD87D26C86A27892 /* SDLSubscribeVehicleDataResponse.m in Sources */, - 0C53EA9570A03E274435E76A870664CD /* SDLSubscribeWayPoints.m in Sources */, - 07EFC4CE82C6A11142BD4302D87A3239 /* SDLSubscribeWayPointsResponse.m in Sources */, - 1F39155F30D115B93B97782715C30C9B /* SDLSupportedSeat.m in Sources */, - 5B471B072C46766C6029792C0D91040D /* SDLSyncMsgVersion.m in Sources */, - 12DC40A3D198F7C3BE10BE221DCDB5C2 /* SDLSyncPData.m in Sources */, - DF7F7D30FAFA0F25842E683D7A400EE4 /* SDLSyncPDataResponse.m in Sources */, - A60900079A6C1F0B634C7268D10787FB /* SDLSystemAction.m in Sources */, - 4AB3A964E345CF3E0D5ACC1A63991290 /* SDLSystemCapability.m in Sources */, - 70496DDADFCF3EED7575045A94F3CE25 /* SDLSystemCapabilityManager.m in Sources */, - B2559CB3C0CD6DEC3D98F6AC227D10EE /* SDLSystemCapabilityObserver.m in Sources */, - 58A5861410B7BAB3BBD9D1A84DB8EB2E /* SDLSystemCapabilityType.m in Sources */, - D9A5E832734F7C100908FCC5E7F82B4E /* SDLSystemContext.m in Sources */, - D2E6FD57DC939224A0D55A6A73C8E32A /* SDLSystemRequest.m in Sources */, - 01141EC6215EB5322369A3B5F1811BD8 /* SDLSystemRequestResponse.m in Sources */, - 73E6D14C57A0B93C43FF9A9783852879 /* SDLTBTState.m in Sources */, - 09E452042624B13E52782502AF683E8C /* SDLTCPTransport.m in Sources */, - 4D2E68E344832556024E6BCCF039EF08 /* SDLTemperature.m in Sources */, - 0CEA11A5EB62E9F281219DD07A95D42B /* SDLTemperatureUnit.m in Sources */, - 28041814F66B4A71E8F63DD9B094EC21 /* SDLTemplateColorScheme.m in Sources */, - 07F8FBBF7DA3BD45DD48F55585CC2952 /* SDLTemplateConfiguration.m in Sources */, - 98BD10DED5BAA7E5ED957677B48616C0 /* SDLTextAlignment.m in Sources */, - 2CB2EC1505E6E5E792CB49D3F4403DAB /* SDLTextAndGraphicManager.m in Sources */, - E72E6D7C1BC53DD19935FABF258E5F28 /* SDLTextField+ScreenManagerExtensions.m in Sources */, - 574EFD25DFDD6AF16AF2031CFC0AAA81 /* SDLTextField.m in Sources */, - 7977925ECE55E6167F6B1C6355277218 /* SDLTextFieldName.m in Sources */, - 27355A0ACD2391F8BDF5C4F0C7C57C6F /* SDLTimer.m in Sources */, - C8B526917E4FCD8F00E01FAF201C6FF1 /* SDLTimerMode.m in Sources */, - 9320B7839548C10A540A2FF853A9DDF4 /* SDLTireStatus.m in Sources */, - 5785685CC981419E5FBE990997285980 /* SDLTouch.m in Sources */, - 2BCEB50F391F05504DA184137B9CC6CA /* SDLTouchCoord.m in Sources */, - 91C37B3813B051EFF69A023933848154 /* SDLTouchEvent.m in Sources */, - 7BEFE01A2A2147EFBD6480EC899125F8 /* SDLTouchEventCapabilities.m in Sources */, - FA3D73D6F771B4BFFE38E0FDF46BB2EA /* SDLTouchManager.m in Sources */, - 73149802150251AC42CFCD9B3CDA96CA /* SDLTouchType.m in Sources */, - BD43BAB75FF7A0D1A0E2296F239A2D84 /* SDLTPMS.m in Sources */, - DA960755FE2D4EDAC30E870462D1A91E /* SDLTriggerSource.m in Sources */, - 73E45E0082A8F8ED80CBD24FA3C77E09 /* SDLTTSChunk.m in Sources */, - 50B469336EC4B317FD37E4F3DBD146E5 /* SDLTurn.m in Sources */, - CCBECB250F1187B41A68914229588D8C /* SDLTurnSignal.m in Sources */, - 959EEEC7A5E91DF4108F9BE317930100 /* SDLUnpublishAppService.m in Sources */, - FB8C2C8AE52A78F6D7CB349AAAD996FA /* SDLUnpublishAppServiceResponse.m in Sources */, - C9F342135DE170D7298B6311F1F41FC0 /* SDLUnregisterAppInterface.m in Sources */, - 80B64B933A7AF5423CCD493385F73D9D /* SDLUnregisterAppInterfaceResponse.m in Sources */, - 0298561779A0AFB043DE0A9FAAAC19E7 /* SDLUnsubscribeButton.m in Sources */, - 8139D9D6698265090BCCD8938F16A9A1 /* SDLUnsubscribeButtonResponse.m in Sources */, - DFB5323BF440F714217F5A09633AC683 /* SDLUnsubscribeVehicleData.m in Sources */, - DC881BB2F2DFC11A47CD97DFA6AD0A35 /* SDLUnsubscribeVehicleDataResponse.m in Sources */, - B9EA100F0608AF1BD236FA70F8124F25 /* SDLUnsubscribeWayPoints.m in Sources */, - 73B7133D90D85100D75563A8466B0FC6 /* SDLUnsubscribeWayPointsResponse.m in Sources */, - 2409088233FBB4C2C35C088F7BD27B2C /* SDLUpdateMode.m in Sources */, - 0BB300C87144AD7B369E0430F1202E19 /* SDLUpdateTurnList.m in Sources */, - 48C57C43B0748423EFC4685C4907DEE7 /* SDLUpdateTurnListResponse.m in Sources */, - 9DD41205E9F9884198DE310BC34FB4A2 /* SDLUploadFileOperation.m in Sources */, - E6A2C645C61F2F9B43588404108BCE6A /* SDLV1ProtocolHeader.m in Sources */, - B132314B07C6A9CA6CD44F32E91AEAEB /* SDLV1ProtocolMessage.m in Sources */, - 1EE73C7B3A4FF142BDE9B2C656B53D3C /* SDLV2ProtocolHeader.m in Sources */, - 7BBDCA6FF69DCAB38A3475ED1949C260 /* SDLV2ProtocolMessage.m in Sources */, - F294BC925A822EDFBD0E5486EF65A9EC /* SDLVehicleDataActiveStatus.m in Sources */, - 236A9A5A39693FF2A879024D41698185 /* SDLVehicleDataEventStatus.m in Sources */, - 2885509A0C6D2186F50E993D93392E3B /* SDLVehicleDataNotificationStatus.m in Sources */, - 6C38405A146F50D74FC39F597AB204CB /* SDLVehicleDataResult.m in Sources */, - A0EA4A22CB0687C97EF3BC22D1735572 /* SDLVehicleDataResultCode.m in Sources */, - F56962B7761B2885ACAAA3F09C022199 /* SDLVehicleDataStatus.m in Sources */, - A6D8F9B1A7E7ED29A5BBC3F8D864A511 /* SDLVehicleDataType.m in Sources */, - 21FF6C36B0867373CDD2C28FC05147CF /* SDLVehicleType.m in Sources */, - 5C378A2D9ADBF6829478D771E6E57B2C /* SDLVentilationMode.m in Sources */, - BCFD1E3A30AB7AFC8538D94E6451EBCD /* SDLVersion.m in Sources */, - 3FDD76D86DA6E85561401E00FD5A9C75 /* SDLVideoStreamingCapability.m in Sources */, - 4ED3CA7455F452C244BFBB3489AE5429 /* SDLVideoStreamingCodec.m in Sources */, - 892798392921AA060D0A363863972910 /* SDLVideoStreamingFormat.m in Sources */, - 46E7DEEBB97AD7240942419DE6B6FBCC /* SDLVideoStreamingProtocol.m in Sources */, - BA96A1F8A67AA4B4EDF29EF9C9B80C1B /* SDLVideoStreamingState.m in Sources */, - 1DAD7BD3D1586E8C16F802E91D029869 /* SDLVoiceCommand.m in Sources */, - A820135ABA605F791A72BDF903F83D64 /* SDLVoiceCommandManager.m in Sources */, - 0E4DE85C863AAA4C47096A975DC50831 /* SDLVrCapabilities.m in Sources */, - A8703C5059F822E6DB8F4F390982EC70 /* SDLVrHelpItem.m in Sources */, - BD70C9EC645E6C987CF29025EA5A4423 /* SDLWarningLightStatus.m in Sources */, - 6B4E6D647A87B1240984B511FAE34F84 /* SDLWayPointType.m in Sources */, - C2AD5790A01FA909CB37927DA7F418BE /* SDLWeatherAlert.m in Sources */, - 02E7456C7087BCE794EB5F4BFDCD6B5E /* SDLWeatherData.m in Sources */, - AFD036FA927C58A0F33C0BAC98F1CDC7 /* SDLWeatherServiceData.m in Sources */, - 4A57A7C0739E81694973E20F0A5E6F86 /* SDLWeatherServiceManifest.m in Sources */, - E30B75E167E1051A94351A3237DD84B4 /* SDLWindowCapability+ScreenManagerExtensions.m in Sources */, - 31C87220F6131D5D232FF0238894771B /* SDLWindowCapability.m in Sources */, - D54A635809186EE3A7DE1A53F06521A6 /* SDLWindowType.m in Sources */, - 1AD0941AAD522DB92F9F9EF5D02F0C58 /* SDLWindowTypeCapabilities.m in Sources */, - 4CCED9A1BAF149906BF8742B1D33B3FB /* SDLWiperStatus.m in Sources */, - E15BEF011399A57453FA0051FDDB3602 /* SmartDeviceLink-dummy.m in Sources */, - E189829941785EB78EBB2334CF16DAEA /* TestSubscribeButtonObserver.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BDACCF4256FF7D99C68707BD29EAAC54 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 30D65525229B09FA9CFEBD81B8763C7B /* BiSON-dummy.m in Sources */, - 6C5B7C4935BC2EE9F988FBCB42082F22 /* bson_array.c in Sources */, - 9DA7510D35653DAB61574EAF7CD41A60 /* bson_object.c in Sources */, - 3BE2CD266829ABCD9AA01020133A08D3 /* bson_util.c in Sources */, - 26D505993874143E36649CCE262C63CE /* emhashmap.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E3D50D58A9FF2A6D484EB5EC0062F364 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - EB96732B0C7E6402276EDDF4DE47A4CC /* Pods-MobileWeather-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 1F7C56A3DE4502DD81BC6DE14A5370CA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SmartDeviceLink; - target = D80456DDA93CD634453A682E14808519 /* SmartDeviceLink */; - targetProxy = 605A77535A8FC7FC30C0D975BCB72186 /* PBXContainerItemProxy */; - }; - A706C0D266E37F9AEA47FAA65E9C50E7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "SmartDeviceLink-SmartDeviceLink"; - target = 3D5C8508F5D7F6E6DD86E88C9CF9F8F4 /* SmartDeviceLink-SmartDeviceLink */; - targetProxy = 6AF19360149BA595F0706575B6CB6ACE /* PBXContainerItemProxy */; - }; - A9790C90E6F821B435B62092D612A7A5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = BiSON; - target = 3BAB8E4F4ED1E843F9C863ADE37B95B5 /* BiSON */; - targetProxy = 4A02ED4C28844C389A4B072D1E10F4F6 /* PBXContainerItemProxy */; - }; - E7069BB5B10BAB04527EF405F8C1E644 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = BiSON; - target = 3BAB8E4F4ED1E843F9C863ADE37B95B5 /* BiSON */; - targetProxy = 658E9669E3F8265A6FE378935AC49E44 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - F82D999CC1B451EA5E5D2B62490AA064 /* SDLLockScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 16381A0EE20FA5C47430A5B402B7689B /* SDLLockScreen.storyboard */, - 7C839817F778FF0EB9B342A6F817167C /* SDLLockScreen.strings */, - 936CD2C8FA37089FF8BEBF38BBA57083 /* SDLLockScreen.strings */, - E46E14F3FFBE57DED951B698700F742D /* SDLLockScreen.strings */, - 0581CF5948F60C4C5CA59EC84679756E /* SDLLockScreen.strings */, - C4F6558A305336CC62BB5516E27A38C3 /* SDLLockScreen.strings */, - FD9450438A4321ABF2471012E8AB5C70 /* SDLLockScreen.strings */, - ); - name = SDLLockScreen.storyboard; - path = SmartDeviceLink/Assets; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 15C159BB8BCD64D86AE32C01666ED5B5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 15CC7A0BD292142B96199EFAB3E8D06C /* SmartDeviceLink.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SmartDeviceLink/SmartDeviceLink-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink.modulemap"; - PRODUCT_MODULE_NAME = SmartDeviceLink; - PRODUCT_NAME = SmartDeviceLink; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.1; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 26EFD5231F594EABB797BFFA643CD11A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E0ABE76C5826D12B93EBF61BAAF52F60 /* BiSON.debug.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/BiSON/BiSON-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/BiSON/BiSON-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/BiSON/BiSON.modulemap"; - PRODUCT_MODULE_NAME = BiSON; - PRODUCT_NAME = BiSON; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 2D0992F53869C0CA008FBC51D69A1A74 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6FF174A3130345B9E197CC1FC67E0BBE /* SmartDeviceLink.debug.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SmartDeviceLink"; - IBSC_MODULE = SmartDeviceLink; - INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = SmartDeviceLink; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 773B52F6B10233217994B6AD776F9856 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C4CE7887593CC1FC33CAE5D179B39AC5 /* BiSON.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/BiSON/BiSON-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/BiSON/BiSON-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/BiSON/BiSON.modulemap"; - PRODUCT_MODULE_NAME = BiSON; - PRODUCT_NAME = BiSON; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 8A914B17F98B593DA99BC2E1D8F90524 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EEEFAB8E3FFC61EA0D729CFCA1DF85F5 /* Pods-MobileWeather.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-MobileWeather/Pods-MobileWeather-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-MobileWeather/Pods-MobileWeather.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 8F17DC3A99F99FBAD606CE6963886315 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Release; - }; - 916E0404255105F480DC4950B7625F7A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; - 94EB1E56C6EC79F7FCACD1438E57E89C /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 15CC7A0BD292142B96199EFAB3E8D06C /* SmartDeviceLink.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SmartDeviceLink"; - IBSC_MODULE = SmartDeviceLink; - INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = SmartDeviceLink; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - A5CF8EDC08EA48AD5DDF4EBCAEEED838 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6FF174A3130345B9E197CC1FC67E0BBE /* SmartDeviceLink.debug.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SmartDeviceLink/SmartDeviceLink-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SmartDeviceLink/SmartDeviceLink.modulemap"; - PRODUCT_MODULE_NAME = SmartDeviceLink; - PRODUCT_NAME = SmartDeviceLink; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.1; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - F97EB3953FBCD102F1F2DBA2847A79CC /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 67F8B6234CDA01ABF6D0A2BB501FAF2D /* Pods-MobileWeather.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-MobileWeather/Pods-MobileWeather-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-MobileWeather/Pods-MobileWeather.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 916E0404255105F480DC4950B7625F7A /* Debug */, - 8F17DC3A99F99FBAD606CE6963886315 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 6E72C1838712FC6ECD613377491FF02D /* Build configuration list for PBXNativeTarget "Pods-MobileWeather" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F97EB3953FBCD102F1F2DBA2847A79CC /* Debug */, - 8A914B17F98B593DA99BC2E1D8F90524 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 76B36B34F146E145104894A1D2A3BA87 /* Build configuration list for PBXNativeTarget "BiSON" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 26EFD5231F594EABB797BFFA643CD11A /* Debug */, - 773B52F6B10233217994B6AD776F9856 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - CE293D9EFD2DEF0FF33713509CB18AC6 /* Build configuration list for PBXNativeTarget "SmartDeviceLink" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A5CF8EDC08EA48AD5DDF4EBCAEEED838 /* Debug */, - 15C159BB8BCD64D86AE32C01666ED5B5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - EE906D3B455A6A0B2FB28DBA11DF210D /* Build configuration list for PBXNativeTarget "SmartDeviceLink-SmartDeviceLink" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D0992F53869C0CA008FBC51D69A1A74 /* Debug */, - 94EB1E56C6EC79F7FCACD1438E57E89C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; -} diff --git a/Pods/Pods.xcodeproj/xcuserdata/joel.xcuserdatad/xcschemes/Pods-MobileWeather.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/joel.xcuserdatad/xcschemes/Pods-MobileWeather.xcscheme deleted file mode 100644 index dcaf815..0000000 --- a/Pods/Pods.xcodeproj/xcuserdata/joel.xcuserdatad/xcschemes/Pods-MobileWeather.xcscheme +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Pods/Pods.xcodeproj/xcuserdata/joel.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/joel.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 6a1d954..0000000 --- a/Pods/Pods.xcodeproj/xcuserdata/joel.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,31 +0,0 @@ - - - - - SchemeUserState - - BiSON.xcscheme - - isShown - - - Pods-MobileWeather.xcscheme - - isShown - - - SmartDeviceLink-SmartDeviceLink.xcscheme - - isShown - - - SmartDeviceLink.xcscheme - - isShown - - - - SuppressBuildableAutocreation - - - diff --git a/Pods/SmartDeviceLink/LICENSE b/Pods/SmartDeviceLink/LICENSE deleted file mode 100644 index 817ee3c..0000000 --- a/Pods/SmartDeviceLink/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2017 - 2020 SmartDeviceLink Consortium, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of SmartDeviceLink Consortium, Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/Pods/SmartDeviceLink/README.md b/Pods/SmartDeviceLink/README.md deleted file mode 100644 index 55b24f4..0000000 --- a/Pods/SmartDeviceLink/README.md +++ /dev/null @@ -1,180 +0,0 @@ -[![Accio supported](https://img.shields.io/badge/Accio-supported-0A7CF5.svg?style=flat)](https://github.com/JamitLabs/Accio) -[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) -[![Version](https://img.shields.io/cocoapods/v/SmartDeviceLink-iOS.svg?style=flat)](https://cocoapods.org/pods/SmartDeviceLink-iOS) -[![License](https://img.shields.io/cocoapods/l/SmartDeviceLink-iOS.svg?style=flat)](https://cocoapods.org/pods/SmartDeviceLink-iOS) -![SmartDeviceLink Tests](https://github.com/smartdevicelink/sdl_ios/workflows/SmartDeviceLink%20Tests/badge.svg) -[![codecov](https://codecov.io/gh/smartdevicelink/sdl_ios/branch/master/graph/badge.svg)](https://codecov.io/gh/smartdevicelink/sdl_ios) -[![Documentation](docs/badge.svg)](https://smartdevicelink.com/en/guides/iOS/getting-started/installation/) -[![Slack Status](http://sdlslack.herokuapp.com/badge.svg)](http://slack.smartdevicelink.com) - -# SmartDeviceLink (SDL) - -[SmartDeviceLink (SDL)](https://www.smartdevicelink.com) is a standard set of protocols and messages that connect applications on a smartphone to a vehicle head unit. This messaging enables a consumer to interact with their application using common in-vehicle interfaces such as a touch screen display, embedded voice recognition, steering wheel controls and various vehicle knobs and buttons. There are three main components that make up the SDL ecosystem. - -* The [Core](https://github.com/smartdevicelink/sdl_core) component is the software which Vehicle Manufacturers (OEMs) implement in their vehicle head units. Integrating this component into their head unit and HMI based on a set of guidelines and templates enables access to various smartphone applications. -* The optional [SDL Server](https://github.com/smartdevicelink/sdl_server) can be used by Vehicle OEMs to update application policies and gather usage information for connected applications. -* The [iOS](https://github.com/smartdevicelink/sdl_ios) and [Android](https://github.com/smartdevicelink/sdl_android) libraries are implemented by app developers into their applications to enable command and control via the connected head unit. -* To suggest new features to SDL, including the iOS library, go to the [SDL Evolution](https://github.com/smartdevicelink/sdl_evolution) github project. -* To understand if a contribution should be entered as an iOS Pull Request or Issue, or an SDL Evolution Proposal, please reference [this document](https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals_versus_issues.md). - -SmartDeviceLink - - -## Mobile Proxy - -The mobile library component of SDL is meant to run on the end user’s smart-device from within SDL enabled apps. The library allows the apps to connect to SDL enabled head-units and hardware through bluetooth, USB, and TCP. Once the library establishes a connection between the smart device and head-unit through the preferred method of transport, the two components are able to communicate using the SDL defined protocol. The app integrating this library project is then able to expose its functionality to the head-unit through text, media, and other interactive elements. - - -## SDL iOS - -We're still working on creating documentation for each of these individual repositories, but in the meantime, you can find more information about SmartDeviceLink [on the website](https://www.smartdevicelink.com). - -See the [changelog](https://github.com/smartdevicelink/sdl_ios/blob/master/CHANGELOG.md) for release notes. This project uses [Semantic Versioning](http://semver.org/). - -### Installing - -#### Accio - -You can install this library using [Accio/SwiftPM](https://github.com/JamitLabs/Accio) documentation page. Please follow the steps to install and initialization Accio into a current or new application. - -In your Package.swift file , you want to add `.package(url: "https://github.com/smartdevicelink/sdl_ios.git", .from: "6.6.0"),` to the dependencies array. Then add `SmartDeviceLink` to the targets dependencies array. - -Please see [Mainifest format](https://github.com/apple/swift-package-manager/blob/master/Documentation/PackageDescriptionV4.md) to specify dependencies to a specific branch / version of SDL. - -###### Swift - -If you are building a Swift app, then add this instead `SmartDeviceLinkSwift` to the targets dependencies array. - -##### Cocoapods - -You can install this library using [Cocoapods](https://cocoapods.org/pods/SmartDeviceLink-iOS). You can get started with Cocoapods by [following their install guide](https://guides.cocoapods.org/using/getting-started.html#getting-started), and learn how to use Cocoapods to install dependencies [by following this guide](https://guides.cocoapods.org/using/using-cocoapods.html). - -In your podfile, you want to add `pod 'SmartDeviceLink', '~> 6.6'`. Then run `pod install` inside your terminal. With Cocoapods, we support iOS 8.0+. - -###### Swift -If you are building a Swift app, then add this instead `pod 'SmartDeviceLink/Swift', '~> 6.6'`. Then run `pod install` in your terminal. - -##### Carthage - -SDL iOS supports Carthage! Install using Carthage by following [this guide](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application). Carthage supports iOS 8+. - -###### Swift -If you are building a Swift app, then include both packaged frameworks for expanded logging support. - -##### Dynamic Framework - -Tagged to our releases is a dynamic framework file that can be drag-and-dropped into the application. Dynamic frameworks are supported on iOS 8+. **WARNING: You cannot submit your app to the app store with the framework as is. You MUST strip the simulator part of the framework first. Strip the x64 and i386 portions first like so:** - -``` -lipo -remove i386 -remove x86_64 -o SmartDeviceLink.framework/SmartDeviceLink SmartDeviceLink.framework/SmartDeviceLink` -``` - -You can check the current architectures like so: - -``` -lipo -info SmartDeviceLink.framework/SmartDeviceLink -``` - -### Reference Documentation - -You can find the latest reference documentation on [SmartDeviceLink.com Documentation](https://smartdevicelink.com/en/docs/iOS/master/), and view guides on [SmartDeviceLink.com Guides](https://smartdevicelink.com/en/guides/iOS/getting-started/installation/). - -### Getting Help - -First, view our guides on [SmartDeviceLink.com](https://smartdevicelink.com/en/guides/iOS/getting-started/installation/). - -If you see a bug, please post an issue on the appropriate repository. Please see the [contribution guidelines](https://github.com/smartdevicelink/sdl_ios/blob/master/CONTRIBUTING.md) before proceeding. If you need general assistance, or have other questions, you can [sign up](http://slack.smartdevicelink.org) for the [SDL Slack](https://smartdevicelink.slack.com) and chat with other developers and the maintainers of the project. - -### SDL iOS Getting Started - -#### Example Apps -To use the example apps, you can use `pod try SmartDeviceLink`, alternately, you can clone or download the project, but you must then also retrieve the submodules by running `git submodule init` and `git submodule update` in your terminal while in the main directory of the project. - -#### Other Installation Requirements -You can connect your application with [manticore](https://smartdevicelink.com/resources/manticore/) while running in TCP debug mode in order to test. For more information, [see the guildes](https://smartdevicelink.com/en/guides/iOS/getting-started/connecting-to-an-infotainment-system/). - -#### Enabling Background Capabilities -iOS 5 introduced the capability for an iOS application to maintain a connection to an external accessory while the application is in the background. This capability must be explicitly enabled for your application. - -To enable the feature for your application, select your application's build target, go to Capabilities, enable Background Modes, and select the External accessory communication mode. - -![Enable External Accessory Background Mode](http://i.imgur.com/zxn4lsb.png) - -#### SDL protocol strings -Your application must support a set of smartdevicelink protocol strings in order to be connected to smartdevicelink enabled head units. Go to your application's .plist, look at the source, and add the following code under the top level `dict`. Note: This is not required if you're only testing by connected to a wifi enabled head unit, but is required for USB and Bluetooth enabled head units. - -```xml -UISupportedExternalAccessoryProtocols - -com.smartdevicelink.prot29 -com.smartdevicelink.prot28 -com.smartdevicelink.prot27 -com.smartdevicelink.prot26 -com.smartdevicelink.prot25 -com.smartdevicelink.prot24 -com.smartdevicelink.prot23 -com.smartdevicelink.prot22 -com.smartdevicelink.prot21 -com.smartdevicelink.prot20 -com.smartdevicelink.prot19 -com.smartdevicelink.prot18 -com.smartdevicelink.prot17 -com.smartdevicelink.prot16 -com.smartdevicelink.prot15 -com.smartdevicelink.prot14 -com.smartdevicelink.prot13 -com.smartdevicelink.prot12 -com.smartdevicelink.prot11 -com.smartdevicelink.prot10 -com.smartdevicelink.prot9 -com.smartdevicelink.prot8 -com.smartdevicelink.prot7 -com.smartdevicelink.prot6 -com.smartdevicelink.prot5 -com.smartdevicelink.prot4 -com.smartdevicelink.prot3 -com.smartdevicelink.prot2 -com.smartdevicelink.prot1 -com.smartdevicelink.prot0 -com.ford.sync.prot0 -com.smartdevicelink.multisession - -``` - -#### Continue Integrating -Go through the [guide documentation](https://smartdevicelink.com/en/guides/iOS/getting-started/integration-basics/) to get started setting up your app to work with SDL! - -### Running Tests -To run tests, you will need to bootstrap the Carthage testing libraries. To do so, first [install Carthage](https://github.com/Carthage/Carthage#installing-carthage). - -Then, from the root project directory, run: -```bash -carthage bootstrap --platform ios -cd ../ -``` - -At this point, you can run tests from Xcode, or, if you wish to run the tests exactly as they will be run on the CI server, run: - -```bash -xcodebuild -project "SmartDeviceLink-iOS.xcodeproj" -scheme "SmartDeviceLink" -sdk "iphonesimulator10.0" -destination "OS=10.0,name=iPhone 7" -configuration Debug ONLY_ACTIVE_ARCH=NO RUN_CLANG_STATIC_ANALYZER=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES ENABLE_TESTABILITY=YES test -``` - -You can optionally pipe the result to [xcpretty](https://github.com/supermarin/xcpretty). - -#### Lock Screen Screenshot Tests -We run some additional tests using [FBSnapshotTestCase](https://github.com/uber/ios-snapshot-test-case). These tests generate the lock screen view controller and compare it to generated screenshots. By default, the generated screenshots use the iPhone 11 / iPhone XR simulator. If you run unit tests against those simulators, the tests should pass. - -##### Re-Generating Lock Screen Screenshots -If you need to change which simulator is used to generate the screenshots, or if you need to re-generate the screenshots for another reason, you can. Go to `SDLLockScreenViewControllerSnapshotTests.m` and take the following steps: - -1. Uncomment the following line: - -```objc -// self.recordMode = YES; -``` - -2. Run unit tests on the simulator that you want to use to generate the screenshots. Tests should fail because record mode is on. - -3. Re-comment out the line. - -4. Run unit tests again; they should pass this time. diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard deleted file mode 100644 index e18e4a9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/Contents.json b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/Contents.json deleted file mode 100644 index da4a164..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_black.imageset/Contents.json b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_black.imageset/Contents.json deleted file mode 100644 index 85553c2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_black.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "lock_arrow_down_black.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "lock_arrow_down_black@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "lock_arrow_down_black@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_black.imageset/lock_arrow_down_black.png b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_black.imageset/lock_arrow_down_black.png deleted file mode 100644 index 68f1c3ca7edf21e828e4b9a87f0666b478736d09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmV+}0nz@6P)Nkl9;6YuwcPTDW%+Z%3}IE2^K6^uwcQ01q&7|_}_tt zGCuXJ;PI(vR3=gqenzD%XM(e5jB08~PEa<-h@YAo5;oeG%5gpzd){c@)P&q1Y_5@h zXhsOwC_h!6OWxT_M)^g}$@9wQ86ib;yux!xS$VE{W3N)4G_@k%3!6_XGPJ-8ynu{V z;D&Sd1{H`<8w#AV1+*bzOPs<>h+IW(Ib&~8kr=h7&XRpzcWdzZ>2 zs53=YY!RJF*cvN%4T-D5gT(9us$fw!iV|MtZdkS<5xfEGs`4l{`-rMIs3*m-*kXF( zs4cPJEjX(>Pb0HWsgA??P#p0x_rY=7Bf;BoUJagSWS>(54-Lo&55QBq)3UqqRxMtn zWM5DVj}1-<55{x*f64C0d$oD>6Z?wV1ZenA@Nfck_&fG6!K%xfFYFuY60lKU;86tb oIELjo!K=?Zv-%Leab}4t1^ub!F0h0QjQ{`u07*qoM6N<$g1?91nE(I) diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_black.imageset/lock_arrow_down_black@3x.png b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_black.imageset/lock_arrow_down_black@3x.png deleted file mode 100644 index af14aa8bb72f9bcebac59d8f32f67c2b194de000..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730 zcmeAS@N?(olHy`uVBq!ia0vp^Q9yi#g9S)N&a1i3z`(T7)5S5Qg7M95OU4EV9@m5V znW{&){FK;mhQiY^v>a#a#Kw<$4I<7QV* z#svZAi_RC8c*Gd?)U_c(pahyDs4E`qLF9x?JU^>i1Q-tilDXeNUE&9BEL??wZ%5 z==yYD+LPZdM;CM@tmnKrPf6lNiSLEWhFf0PaGC!UylA*X$fBkDjRU7oM%j)Fn+=yr z*zg+v)HF0$dC8*XW9F1&N1nBF+R6uapZpv!dA_jlWbO9k6({l zufs)CfjhexPQDh1t+D%|T(4kvX!T?MSa#N1PrCPTs(PJJ*Z-t0w8-P@-V0v?SLE)P paI-B)^;!36p~VrsvCD$bo$Nlg_^f0J+1%% diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/Contents.json b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/Contents.json deleted file mode 100644 index b93cb64..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "lock_arrow_left_black.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "lock_arrow_left_black@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "lock_arrow_left_black@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/lock_arrow_left_black.png b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_left_black.imageset/lock_arrow_left_black.png deleted file mode 100644 index 3b98a89cde84fe5a20ca5743c4be2cc099727c0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmV+#0prlm_sPK& zUT^}}slyoz@H-%Rm_r2fJ|K;_gaLjBBp-{2VBQC$71uDp?|>9y74}6TMt&f`TdBv$ z8_E$+5k}rnkGB$F1o&Dya0^R-5N~A!_J&HtQvrL!2;NEv13pd>HerD80qMa#%=>_p zU>64X9*}-K!n_Yi84h89?*SRcGc1`jAlfoIRCVp@VWy|M21K7beg9P;QVCH-X0;*I gs8TC4K~b~&6~3nVsgFubbN~PV07*qoM6N<$g1cxV7-WRg0K+Xv8|%D8Ib4E_a+ZSO5Tu9cMoQn(?PCz=@;yojW1CR+WGh_VaDyQ7P9`>n}(eadPjtJ7lb{%u$ z--AqYl@mr2fONCNM~)oEL8iIR6~i=054$i%yL^GhcS>o z_6x-@1~SiG;T&c_`Z+LwVFqM@dm|hMKn6H8gJA$Y7m3Bv>;{PCO4~aw# uM3H%-7PBB~LJXod)kxIH9HePm-9G_!80Id_xsbB}0000p)ie9yhGz7!C-k0ax-}67;@7XWM`{B9jx##>J$)PSyi|iWF zyq0+zyz17BmRAlkYE%ndgU0lJ0~TOf+5z3! z5Cxc)c1|Du$pTD^I;gw?;EZP9sstil3J;T_Vwswlt|zE&>i)23K}DX_!3zeyBe z3Tvw_>T?Y&z!cIEJ*Wuq&cepc$Fr+##oZ`XsCWY zu|+8@%nn`EqBTn?VUFpkIZ6p(cIujzGGHkg%z&O{fl?}%UAnFx*|3xbW>C*FLMaK% zZjEQPR!RbMTyxo>gooLq3H{8HB{a+ly~q?LFw9;}X1i7b!<^L1tWiS3v}-DRlz=d& z^eO~PD3}i22!av{=Coc1VhIA%shgotg1`*xO*oe9VfN`(K$PrZ&ggAW7GQwkql{nv z!0_iXF#LnbB^hA2h{(&e~ ku8n9O7|*&i&6}{kUs62AqjvJ<_y7O^07*qoM6N<$f?Q}kAOHXW diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/Contents.json b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/Contents.json deleted file mode 100644 index b3c3a4a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "lock_arrow_right_black.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "lock_arrow_right_black@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "lock_arrow_right_black@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/lock_arrow_right_black.png b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_right_black.imageset/lock_arrow_right_black.png deleted file mode 100644 index fdd933091f641adeba6349e031dc97f08ee4b431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmV+o0rLKdP)GrIeCVQj#RUz_(-P z&U={Ln=Evn_u0-&Gf!t`&N=VNhFRKR7X)r z;*k|v6p{kR3@Ie?#A+jtldnP&i4%qu5_x8gR)s`P8Bs{&g>~8#5;TlPHnNxQccP{_kAaV=QO=i;&CaO$jHbAo5atI4%EU8k6MR%5ETDV(_5KFr){x1_^ wdx#B0WkPH*vk9?Gh;6Dth>gsJ_`_EB4=WYsE}Q`ptN;K207*qoM6N<$fXArKUYph0K|!J)yyp~0acXlS@YLqkJD(9qD(kduSZ z5CjcDAP7MOfdnEUBBDgn_s5AdW{@Af&~JFoGvAl@{+@f@d++<6^Z$e6_c1}IAta8% zGQ-A@D5f$=mr*2&DXcJJ7>QykQ*;|hqL{)emy9G)OyvW zVk*x$ZfJ>O3ZJ;jE`!SxQ<>(3(Itv0eC8UvjW173WrmXmm?)<3h3ieto7Or8Hhjgv zAFo-@sRoYG#CdFo^3S~3#QWdIC#1Crl^dPfXamP+;ynHrUum&NF`2yNv|=*(#trr= zCX-j3QA{S^xk;O1GI`Be#bok>TkKOzCbRS@CUxH2rd=_ayrEw)nf&Aq`xTSP9D|BU zoi}$mpqNbNIj5LZ?r~5tnY`t^Vp6%!A;n~}z>s26dB9=CWU|Nw#ia6(4#i}$#6`s@ zMloK>{PI_fKbQT3sTgm`D8`$Z-u73F56XPBtQZ$#xO_=5F8EW7OJrSCu9z*(6}Mpo z;>M*w-0ByJn_~lUJ9#7)Ukt# zim|+Jq!D_X6SE1t$K4(FGZpT#hskB!=SFbIciQ|-UIf*!KZi)}KO}Ez?fJhaB#4p#0000< KMNUMnLSTZdZ-`p} diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_black.imageset/lock_arrow_up_black@2x.png b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_black.imageset/lock_arrow_up_black@2x.png deleted file mode 100644 index fa38a077241dc571cf68e631fef5e647fc3b5aba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmVirg z^0A1K7|@JQ$mdTqBea7kz=MP|j5G=`%`ieJPr$CoTM)vfNB8nW2(g`4o+sN_TWWgfjK8s)~^P8v;=QnX`aeMVu03Z~_ zPz-B`z~ohl19*EtP6gz%$4fPENnkJ-3T@{n0pLJHO oDz^v*gTd{SBt^x%(;OIl0}5m2gPI|PB>(^b07*qoM6N<$f{RYo!2kdN diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_black.imageset/lock_arrow_up_black@3x.png b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_black.imageset/lock_arrow_up_black@3x.png deleted file mode 100644 index b59bda372791c8a24d08166e25691ca1ac79579b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmeAS@N?(olHy`uVBq!ia0vp^Q9yi#g9S)N&a1i3z`!)y)5S5Qg7M11=2BJ%iPnSf zEy~O{u3daZ^tPU+S@(_E>DK)J&jlEIH_m(c$b19$`WWRSrgD)k6T2%GHRp@`^kt9R z;lQc?;ed{pWq0A*nnhFQZ%MwzdFlhp;bj5Sf+en=vOe``ZkUgigQZ-;1&LF|Jjt^v z9V_=;=+U%Z(O@lM)Wc=dBj{_hkjegH3#aso4rvL424~k2o`7Utn*~bt7aV-oE)ZH5 z;B0FV;^fY68gyP)>!a@1dZ2p`$|N$h9eiHHdt}>NucX`C-iip_-nLdM>Gyf*+10-@ z(?2AMb`^@sl`P^p8sVlcqg^C?v}UrBpRO~T-ruN$Mfm~ylD zV+ZLt<>vUyY^OiPxV6Qr^@o0**!p?n3f1)!Ti0iHs#@wPc72L(ziP9}>SIDX}c{n8ulOgsBU{-<(qy%6~4Tq?J)!ETY&|1I3CW#a!07+5P9 z>I0{;YaHNTaY{bdz46{T`7e%)?+@pPJhS8aQLFX2`>e)?**`t`r!?69@N<2)h-Htr z>%LnJLPgB;OC33Hu`aOL9@unmnavtU&fRSu&lJ3$@5#QukBgxtNuw*)b83LLg`<_w z4eRA>pMIv5vGC#sf0;|tZ8EKnt9VXQIjMF)PEZO4ZuvF<1(&pjwoP7^vwgur7`V&g kF-gVqlR8B0FWwiNJByBI%dng`1Ey96Pgg&ebxsLQ0L&dRP5=M^ diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_black.imageset/Contents.json b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_black.imageset/Contents.json deleted file mode 100644 index 2ab4626..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_black.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "sdl_logo_black.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "sdl_logo_black@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "sdl_logo_black@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_black.imageset/sdl_logo_black.png b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_black.imageset/sdl_logo_black.png deleted file mode 100644 index 68cf3a52dd45428a09842dceb4b5e4d53b4093bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2289 zcmVC5InPgI$HGSxV>U1O_3yTs`UGQPA~9*tVSaUJ*BDMROu!;DpL3sI#rBe!6u~eo z0;s}Des!xIq75V~LoJ#nk1B(zE zv0WU^N9agQ03eVWtQC(uOE2PM;g*q);)eLxoJ$ED$;#I}5YBnR&*Z>DL2>5rQi$&c zqe+2GEIM;c9QRwC+r4Gv9XKL}ww=a=;2J+lF^_QJD%Ti6a{iyhqPb10j6HER`^&p$ z|LLLaFZ%T0yd7v=v)I?bopg*|U*_HT4$G;u%qB%1(vdw^{=Qt~T<+bRZ_i6G(N| zDD1vB2_kRoDHyFV@;Ma8T(a_&+U_G`?6Q$xXA~)XCSsj9DvtZDq=;;>OGe&^5PXXt zB}Kc>7ujQf$~bc3IawH~GI0HNANgZHM_=7WuC@JDh8TDhny~YAiG98oMjl3AE;uOX z=VZcj`WqU1R1%Y%*!X!>flW#rqhlY3XXIvrIQjXN6;$!?>uhC6?0NZ+^)^M0aE>sM z=DLJ9j4sUO`rlW$%T~G)>Q?M;nh|>x8nc66UAA-dAwdMhUQJ;~kNA?fxF)6WQs+5? z3H1GFPstc=sN+^Vs?Co*1`AyF=^7E z;^tr|kIaWI&)?{qn@lV^DE@G_{T=FG^>z7+8A)=JWB;CC-E5CYjdO;%b-wANJqus* zKpZu{kVD69=q0l$W?Jldb%nJYXB6Srh>ksgYOGQ}Fck*ALs4RDPfP=2m&f`=rtul$ zSj9sp{m70zfgEsh+$}aUnYCPzV>jw16G}hM>(@hBF$KFfGWJ_`|3Vd;B62L+J4F8( z_B3(m=l7)JKN2#6XXeG;gQtp7o?Vyws=mIJny=5h*yGw=yCC-D<(}q<)7Z0Evp<~L zIFg44=8g7(Oyju_)*U`1Eds*LYPI@iWkBrN)R6)(%I>vFbZm)fH`s>ZoVw=T+Y>W{ z%i^1$MU=x23H^`eoLPG%W+RRM1@EHZet&-enx^q$-sT-(Gkl{rJeI_&A$rbkT5fzDpJAA7-vo11kdmsBGT_dU- zi+Lr4beX{W0a8X#>_XeA_%qaR_ltGg{Q|FIhuD0?b2oy&Lh^`mC2r!VzFY0oC%(Qj*Cei0bE(88HZ2~Ee$wtM}tt4T&tTMJlS^m4eV3k6SPa^6NMZL) zly>h&85R;QI`dGH7<`lY#m>X(3x9vw6)@?r<+x_wL89YG7$o`CHN5AM*omo969-PUgzD_=M`@CM8)Y%wUICEL$Andg|mSp`9pB z9vU%%O>V9ni0g37Rd%vof4x0~hHO>ZeSB)NPCVi?J&0%Wbg2!$>TI2{XM`c^WDq84 zV(e;i@QY~oQhUWxD&X&v;=oc}Jv&2mC-?rNhQ$7pk+B0Lptr{ERqZYxlir6beiN|6 z?XX@5l9`M%u9xz;jQt&685=u50F_yxE;X^A*4okJqZPl4-CTTHS)slAl;=L9ksF3T z+|bxHcK;do1S2nujM+7r+FWqCV)t!S1T#V`9-pVUSPIk9lgD!GXKAXdzOJ_Ws|+J4 zYSgyB$?Mo5m}<=9u~VCx>gF4O#0=%4!&0hY#0FAx%ciYHB9!jTC zQ}j=}-%LG%@s!wf;e?^T)C=GZ8qteUe9jp9(uB7N(p|l5L_a=a1kK5hKVBjmxTnO# zbKc+^r?#JuNQSz;?gNDXT`ZEvo?T(!5BQ3#m`@@Ga!IuPWmLqUNJxB__4Po^A|I1@ zF53Plq$g72uQc!r^d}5siApneD{Q|F(RoeC$Y;v>dLE1+4exVHoHfp%Fp(Rk)(n$r#Bsb$wlzkv|mc??3Vm7MkgG z14VuP7@b_&eW1GjPEV=+ZjqgzJ+k{m4C0bE^>>T-^j1`$*HE26J0qXWb0g~S7XDOX zxx(%T5C%l0IeUz*zguMFQ-$3xRIZ3AgoRgj-&V4FVMWX^l3-zw-OuEO%g8rT*D`YB z?S2H;Jqz{*u00000 LNkvXXu0mjf`}u#t diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_black.imageset/sdl_logo_black@2x.png b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_black.imageset/sdl_logo_black@2x.png deleted file mode 100644 index 1427721a7c059db655ae4c177941e358c46f2407..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4889 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 diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/de.lproj/SDLLockScreen.strings b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/de.lproj/SDLLockScreen.strings deleted file mode 100644 index 67b3bf7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/de.lproj/SDLLockScreen.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "UILabel"; text = "Locked for your safety"; ObjectID = "2GC-iG-Bjq"; */ -"2GC-iG-Bjq.text" = "Für Ihre Sicherheit gesperrt"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/en.lproj/SDLLockScreen.strings b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/en.lproj/SDLLockScreen.strings deleted file mode 100644 index 97c0f77..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/en.lproj/SDLLockScreen.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "UILabel"; text = "Locked for your safety"; ObjectID = "2GC-iG-Bjq"; */ -"2GC-iG-Bjq.text" = "Locked for your safety"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/es.lproj/SDLLockScreen.strings b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/es.lproj/SDLLockScreen.strings deleted file mode 100644 index 67f1aaa..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/es.lproj/SDLLockScreen.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "UILabel"; text = "Locked for your safety"; ObjectID = "2GC-iG-Bjq"; */ -"2GC-iG-Bjq.text" = "Bloqueado para su seguridad"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/fr.lproj/SDLLockScreen.strings b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/fr.lproj/SDLLockScreen.strings deleted file mode 100644 index cdeb13b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/fr.lproj/SDLLockScreen.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "UILabel"; text = "Locked for your safety"; ObjectID = "2GC-iG-Bjq"; */ -"2GC-iG-Bjq.text" = "Verrouillé pour votre sécurité"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/ja.lproj/SDLLockScreen.strings b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/ja.lproj/SDLLockScreen.strings deleted file mode 100644 index c7e55c3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/ja.lproj/SDLLockScreen.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "UILabel"; text = "Locked for your safety"; ObjectID = "2GC-iG-Bjq"; */ -"2GC-iG-Bjq.text" = "安全上の理由からロックされています"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/zh-Hans.lproj/SDLLockScreen.strings b/Pods/SmartDeviceLink/SmartDeviceLink/Assets/zh-Hans.lproj/SDLLockScreen.strings deleted file mode 100644 index 18c00d5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/Assets/zh-Hans.lproj/SDLLockScreen.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "UILabel"; text = "Locked for your safety"; ObjectID = "2GC-iG-Bjq"; */ -"2GC-iG-Bjq.text" = "出于您的安全而锁屏"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/CGPoint_Util.h b/Pods/SmartDeviceLink/SmartDeviceLink/CGPoint_Util.h deleted file mode 100644 index a95c353..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/CGPoint_Util.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// CGPoint_Util.h -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 6/14/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#ifndef CGPoint_Util_h -#define CGPoint_Util_h - -#include -#include - -/** - * @abstract - * Calculate the center of two points. - * @param point1 - * First point. - * @param point2 - * Second point. - * @return CGPoint - * Center of the points. - */ -CGPoint CGPointCenterOfPoints(CGPoint point1, CGPoint point2); - -/** - * @abstract - * Calculate the distance between two points. - * @param point1 - * First point. - * @param point2 - * Second point. - * @return CGFloat - * Distance between the points. - */ -CGFloat CGPointDistanceBetweenPoints(CGPoint point1, CGPoint point2); - -#endif /* CGPoint_Util_h */ diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/CGPoint_Util.m b/Pods/SmartDeviceLink/SmartDeviceLink/CGPoint_Util.m deleted file mode 100644 index 91c7ce2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/CGPoint_Util.m +++ /dev/null @@ -1,20 +0,0 @@ -// -// CGPoint_Util.c -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 6/14/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#include "CGPoint_Util.h" -#include "math.h" - -CGPoint CGPointCenterOfPoints(CGPoint point1, CGPoint point2) { - CGFloat xCenter = (point1.x + point2.x) / 2.0f; - CGFloat yCenter = (point1.y + point2.y) / 2.0f; - return CGPointMake(xCenter, yCenter); -} - -CGFloat CGPointDistanceBetweenPoints(CGPoint point1, CGPoint point2) { - return hypot(point1.x - point2.x, point1.y - point2.y); -} diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/CVPixelBufferRef+SDLUtil.h b/Pods/SmartDeviceLink/SmartDeviceLink/CVPixelBufferRef+SDLUtil.h deleted file mode 100644 index 674c202..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/CVPixelBufferRef+SDLUtil.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// CVPixelBufferRef+SDLUtil.h -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 3/16/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - Take a CVPixelBuffer frame and append some text onto it, attempting to fit it to the rect. This is used for a "blank" screen when streaming navigation is pushed to the background or otherwise disabled in progress. - - @param pixelBuffer The pixel buffer to draw text over - @param text The text to draw - @return Whether or not it succeeded. - */ -Boolean CVPixelBufferAddText(CVPixelBufferRef CV_NONNULL pixelBuffer, NSString *text); - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/CVPixelBufferRef+SDLUtil.m b/Pods/SmartDeviceLink/SmartDeviceLink/CVPixelBufferRef+SDLUtil.m deleted file mode 100644 index 1a62ece..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/CVPixelBufferRef+SDLUtil.m +++ /dev/null @@ -1,109 +0,0 @@ -// -// CVPixelBufferRef+SDLUtil.m -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 3/16/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "CVPixelBufferRef+SDLUtil.h" -#import "SDLLogMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -// Video stream string message padding is 5% of the screen size. Padding is added to the message so the text is not flush with the edge of the screen. -CGFloat const SDLVideoStringMessagePadding = .05; - -UIFont * _Nullable sdl_findFontSizeToFitText(CGSize size, NSString *text) { - CGFloat fontSize = 300; - - do { - CGFloat padding = SDLVideoStringMessagePadding * size.width * 2; - CGSize textSize = [text boundingRectWithSize:CGSizeMake((size.width - padding), CGFLOAT_MAX) - options:NSStringDrawingUsesLineFragmentOrigin - attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:fontSize]} - context:nil].size; - - if (textSize.height <= (size.height - padding)) { - break; - } - - fontSize -= (CGFloat)1.0; - } while (fontSize > 0.0); - - return (fontSize > 0) ? [UIFont systemFontOfSize:fontSize] : nil; -} - -UIImage * _Nullable sdl_createTextImage(NSString *text, CGSize size) { - UIFont *font = sdl_findFontSizeToFitText(size, text); - - if (!font) { - SDLLogW(@"Text cannot fit inside frame"); - return nil; - } - - CGRect frame = CGRectMake(0, 0, size.width, size.height); - UIGraphicsBeginImageContextWithOptions(frame.size, NO, 1.0); - CGContextRef context = UIGraphicsGetCurrentContext(); - - CGContextSetFillColorWithColor(context, [UIColor blackColor].CGColor); - CGContextFillRect(context, frame); - CGContextSaveGState(context); - - NSMutableParagraphStyle* textStyle = NSMutableParagraphStyle.defaultParagraphStyle.mutableCopy; - textStyle.alignment = NSTextAlignmentLeft; - - NSDictionary* textAttributes = @{ - NSFontAttributeName: font, - NSForegroundColorAttributeName: [UIColor whiteColor], - NSParagraphStyleAttributeName: textStyle - }; - CGRect textFrame = [text boundingRectWithSize:size - options:NSStringDrawingUsesLineFragmentOrigin - attributes:textAttributes - context:nil]; - - CGFloat padding = SDLVideoStringMessagePadding * size.width; - CGRect textInset = CGRectMake(0 + padding, - (frame.size.height - CGRectGetHeight(textFrame)) / 2.0, - frame.size.width - (padding * 2), - frame.size.height - (padding * 2)); - - [text drawInRect:textInset - withAttributes:textAttributes]; - - CGContextRestoreGState(context); - UIImage* image = UIGraphicsGetImageFromCurrentImageContext(); - - return image; -} - -Boolean CVPixelBufferAddText(CVPixelBufferRef CV_NONNULL pixelBuffer, NSString *text) { - size_t width = CVPixelBufferGetWidth(pixelBuffer); - size_t height = CVPixelBufferGetHeight(pixelBuffer); - - UIImage *image = sdl_createTextImage(text, CGSizeMake(width, height)); - if (!image) { - SDLLogE(@"Could not create text image."); - return false; - } - - CVPixelBufferLockBaseAddress(pixelBuffer, 0); - void *data = CVPixelBufferGetBaseAddress(pixelBuffer); - - CGColorSpaceRef rgbColorSpace = CGColorSpaceCreateDeviceRGB(); - CGContextRef context = CGBitmapContextCreate(data, width, height, - 8, CVPixelBufferGetBytesPerRow(pixelBuffer), rgbColorSpace, - kCGBitmapByteOrder32Little | - kCGImageAlphaPremultipliedFirst); - CGContextDrawImage(context, CGRectMake(0, 0, width, height), image.CGImage); - CGColorSpaceRelease(rgbColorSpace); - - CGContextRelease(context); - - CVPixelBufferUnlockBaseAddress(pixelBuffer, 0); - - return true; -} - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/EAAccessory+SDLProtocols.h b/Pods/SmartDeviceLink/SmartDeviceLink/EAAccessory+SDLProtocols.h deleted file mode 100644 index 0c729b7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/EAAccessory+SDLProtocols.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// EAAccessory+SyncProtocols.h -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface EAAccessory (SDLProtocols) - -- (BOOL)supportsProtocol:(NSString *)protocol; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/EAAccessory+SDLProtocols.m b/Pods/SmartDeviceLink/SmartDeviceLink/EAAccessory+SDLProtocols.m deleted file mode 100644 index 881fea3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/EAAccessory+SDLProtocols.m +++ /dev/null @@ -1,23 +0,0 @@ -// -// EAAccessory+SyncProtocols.m -// - -#import "EAAccessory+SDLProtocols.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation EAAccessory (SDLProtocols) - -- (BOOL)supportsProtocol:(NSString *)protocol { - for (NSString *supportedProtocol in self.protocolStrings) { - if ([supportedProtocol isEqualToString:protocol]) { - return YES; - } - } - - return NO; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/EAAccessoryManager+SDLProtocols.h b/Pods/SmartDeviceLink/SmartDeviceLink/EAAccessoryManager+SDLProtocols.h deleted file mode 100644 index c2d45cb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/EAAccessoryManager+SDLProtocols.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// EAAccessoryManager+SyncProtocols.h -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface EAAccessoryManager (SDLProtocols) - -+ (nullable EAAccessory *)findAccessoryForProtocol:(NSString *)protocol; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/EAAccessoryManager+SDLProtocols.m b/Pods/SmartDeviceLink/SmartDeviceLink/EAAccessoryManager+SDLProtocols.m deleted file mode 100644 index 69d5f40..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/EAAccessoryManager+SDLProtocols.m +++ /dev/null @@ -1,24 +0,0 @@ -// -// EAAccessoryManager+SyncProtocols.m -// - -#import "EAAccessory+SDLProtocols.h" -#import "EAAccessoryManager+SDLProtocols.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation EAAccessoryManager (SDLProtocols) - -+ (nullable EAAccessory *)findAccessoryForProtocol:(NSString *)protocol { - for (EAAccessory *accessory in [[EAAccessoryManager sharedAccessoryManager] connectedAccessories]) { - if ([accessory supportsProtocol:protocol]) { - return accessory; - } - } - - return nil; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSBundle+SDLBundle.h b/Pods/SmartDeviceLink/SmartDeviceLink/NSBundle+SDLBundle.h deleted file mode 100644 index 6ca6146..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSBundle+SDLBundle.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// NSBundle+SDLBundle.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/31/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface NSBundle (SDLBundle) - -+ (nullable NSBundle *)sdlBundle; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSBundle+SDLBundle.m b/Pods/SmartDeviceLink/SmartDeviceLink/NSBundle+SDLBundle.m deleted file mode 100644 index 5880a59..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSBundle+SDLBundle.m +++ /dev/null @@ -1,44 +0,0 @@ -// -// NSBundle+SDLBundle.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/31/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "NSBundle+SDLBundle.h" - -#import "SDLManager.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation NSBundle (SDLBundle) - -+ (nullable NSBundle *)sdlBundle { - NSURL *sdlBundleURL = [[NSBundle mainBundle] URLForResource:@"SmartDeviceLink" withExtension:@"bundle"]; - NSBundle *sdlBundle = nil; - - if (sdlBundleURL != nil) { - sdlBundle = [NSBundle bundleWithURL:sdlBundleURL]; - } - if (sdlBundle == nil) { - NSBundle *frameworkBundle = [NSBundle bundleForClass:[SDLManager class]]; - - // HAX: Cocoapods will have the bundle as an inner bundle that we need to unpack...because reasons. Otherwise it's just the bundle we need - NSURL *innerBundleURL = [frameworkBundle URLForResource:@"SmartDeviceLink" withExtension:@"bundle"]; - if (innerBundleURL) { - sdlBundle = [NSBundle bundleWithURL:innerBundleURL]; - } else { - sdlBundle = frameworkBundle; - } - } - if (sdlBundle == nil) { - @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"SDL WARNING: The 'SmartDeviceLink.bundle' resources bundle was not found. If you are using cocoapods, try dragging the bundle from the SmartDeviceLink-iOS pod 'products' directory into your resources build phase. If this does not work, please go to the SDL slack at slack.smartdevicelink.com and explain your issue. You may disable the lockscreen in configuration to prevent this failure, for now." userInfo:nil]; - } - - return sdlBundle; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSMapTable+Subscripting.h b/Pods/SmartDeviceLink/SmartDeviceLink/NSMapTable+Subscripting.h deleted file mode 100644 index 313e25b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSMapTable+Subscripting.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// NSMapTable+Subscripting.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/5/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - * Implement subscripting methods for NSMapTable to allow for easily pushing and pulling objects. - */ -@interface NSMapTable (Subscripting) - -- (void)setObject:(nullable id)anObject forKeyedSubscript:(id)key; -- (nullable id)objectForKeyedSubscript:(id)key; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSMapTable+Subscripting.m b/Pods/SmartDeviceLink/SmartDeviceLink/NSMapTable+Subscripting.m deleted file mode 100644 index 3ac063f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSMapTable+Subscripting.m +++ /dev/null @@ -1,25 +0,0 @@ -// -// NSMapTable+Subscripting.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/5/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "NSMapTable+Subscripting.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation NSMapTable (Subscripting) - -- (void)setObject:(nullable id)anObject forKeyedSubscript:(id)key { - [self setObject:anObject forKey:key]; -} - -- (nullable id)objectForKeyedSubscript:(id)key { - return [self objectForKey:key]; -} - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableArray+Safe.h b/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableArray+Safe.h deleted file mode 100644 index 795b186..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableArray+Safe.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// NSMutableArray+NSMutableArray_Safe.h -// SmartDeviceLink -// -// Created by Joel Fischer on 9/12/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -@interface NSMutableArray (Safe) - -- (void)sdl_safeAddObject:(ObjectType)object; - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableArray+Safe.m b/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableArray+Safe.m deleted file mode 100644 index fb6665b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableArray+Safe.m +++ /dev/null @@ -1,19 +0,0 @@ -// -// NSMutableArray+NSMutableArray_Safe.m -// SmartDeviceLink -// -// Created by Joel Fischer on 9/12/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "NSMutableArray+Safe.h" - -@implementation NSMutableArray (Safe) - -- (void)sdl_safeAddObject:(id)object { - if (object == nil) { return; } - - [self addObject:object]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+SafeRemove.h b/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+SafeRemove.h deleted file mode 100644 index 4c238cd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+SafeRemove.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// NSDictionary+SafeRemove.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/21/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -@interface NSMutableDictionary (SafeRemove) - -/** - * Safely attempt to remove a key/object pair by no-oping if they don't exist in the Mutable Dictionary instead of throwing an exception - * - * @param aKey The key to attempt removal of - * - * @return Whether or not the key/object pair existed to remove. - */ -- (BOOL)safeRemoveObjectForKey : (KeyType)aKey; - -@end - -@interface NSMapTable (SafeRemove) - -/** - * Safely attempt to remove a key/object pair by no-oping if they don't exist in the MapTable instead of throwing an exception - * - * @param aKey The key to attempt removal of - * - * @return Whether or not the key/object pair existed to remove. - */ -- (BOOL)safeRemoveObjectForKey : (KeyType)aKey; - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+SafeRemove.m b/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+SafeRemove.m deleted file mode 100644 index 250c1a8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+SafeRemove.m +++ /dev/null @@ -1,37 +0,0 @@ -// -// NSDictionary+SafeRemove.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/21/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "NSMutableDictionary+SafeRemove.h" - -@implementation NSMutableDictionary (SafeRemove) - -- (BOOL)safeRemoveObjectForKey:(id)aKey { - if ([self objectForKey:aKey] != nil) { - [self removeObjectForKey:aKey]; - - return YES; - } - - return NO; -} - -@end - -@implementation NSMapTable (SafeRemove) - -- (BOOL)safeRemoveObjectForKey:(id)aKey { - if ([self objectForKey:aKey] != nil) { - [self removeObjectForKey:aKey]; - - return YES; - } - - return NO; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.h b/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.h deleted file mode 100644 index 26493a1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// NSMutableDictionary+Store.h -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 11/7/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import -#import "SDLMacros.h" -#import "SDLLogMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef NSString* SDLRPCParameterName SDL_SWIFT_ENUM; -typedef NSString* SDLEnum SDL_SWIFT_ENUM; - -@interface NSDictionary (Store) - -- (void)sdl_setObject:(nullable NSObject *)object forName:(SDLRPCParameterName)name; - -- (nullable SDLEnum)sdl_enumForName:(SDLRPCParameterName)name error:(NSError * _Nullable *)error; -- (nullable NSArray *)sdl_enumsForName:(SDLRPCParameterName)name error:(NSError * _Nullable *)error; - -/** - * @param classType expected class of returned object - * @param error if stored value isn't classType - * @return object of classType or nil -*/ -- (nullable id)sdl_objectForName:(SDLRPCParameterName)name ofClass:(Class)classType error:(NSError * _Nullable *)error; - -/** - * @param classType expected class of array objects - * @param error if array objects value isn't classType or stored objects aren't array - * @return return array of classType or nil -*/ -- (nullable NSArray *)sdl_objectsForName:(SDLRPCParameterName)name ofClass:(Class)classType error:(NSError * _Nullable *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.m b/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.m deleted file mode 100644 index c1a8136..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSMutableDictionary+Store.m +++ /dev/null @@ -1,105 +0,0 @@ -// -// NSMutableDictionary+Store.m -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 11/7/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCStruct.h" -#import "SDLError.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation NSMutableDictionary (Store) - -- (void)sdl_setObject:(nullable NSObject *)object forName:(SDLRPCParameterName)name { - if (object != nil) { - self[name] = object; - } else { - [self removeObjectForKey:name]; - } -} - -- (nullable id)sdl_objectForName:(SDLRPCParameterName)name { - return self[name]; -} - -#pragma mark - enum - -- (nullable SDLRPCParameterName)sdl_enumForName:(SDLRPCParameterName)name error:(NSError * _Nullable __autoreleasing * _Nullable)error { - return [self sdl_objectForName:name ofClass:NSString.class error:error]; -} - -#pragma mark - enums - -- (nullable NSArray *)sdl_enumsForName:(SDLRPCParameterName)name error:(NSError * _Nullable __autoreleasing * _Nullable)error { - return [self sdl_objectsForName:name ofClass:NSString.class error:error]; -} - -#pragma mark - object - -- (nullable id)sdl_objectForName:(SDLRPCParameterName)name ofClass:(Class)classType error:(NSError * _Nullable __autoreleasing * _Nullable)error { - id obj = [self sdl_objectForName:name]; - - if (obj == nil || [obj isKindOfClass:classType]) { - return obj; - // translate dictionaries to objects - } else if ([obj isKindOfClass:NSDictionary.class] && [classType instancesRespondToSelector:@selector(initWithDictionary:)]) { - obj = [[classType alloc] initWithDictionary:(NSDictionary *)obj]; - // update store so that the object isn't created multiple times - [self sdl_setObject:obj forName:name]; - return obj; - } else { - // The object in the store is not correct, we'll assert in debug and return an error and nil - NSError *wrongObjectError = [NSError sdl_rpcStore_invalidObjectErrorWithObject:obj expectedType:classType]; - - SDLLogAssert(@"Retrieving object from store error: %@, for object key: \"%@\", in dictionary: %@", wrongObjectError.localizedFailureReason, name, self); - - if (error) { - *error = wrongObjectError; - } - return nil; - } -} - -#pragma mark - objects - -- (nullable NSArray *)sdl_objectsForName:(SDLRPCParameterName)name ofClass:(Class)classType error:(NSError * _Nullable __autoreleasing * _Nullable)error { - NSArray *array = [self sdl_objectForName:name ofClass:NSArray.class error:error]; - if (array == nil || array.count < 1 || [array.firstObject isKindOfClass:classType]) { - // It's an array of the actual class type, just return - return array; - } else if ([classType instancesRespondToSelector:@selector(initWithDictionary:)]) { - // It's an array of dictionaries, make them into their class type - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:array.count]; - for (NSDictionary *dict in array) { - if ([dict isKindOfClass:NSDictionary.class]) { - [newList addObject:[[classType alloc] initWithDictionary:dict]]; - } - } - array = [newList copy]; - [self sdl_setObject:array forName:name]; - return array; - } else { - // The object in the store is not correct, we'll assert in debug and return an error and nil - NSError *wrongObjectError = nil; - - if ([array isKindOfClass:NSArray.class] && ![array.firstObject isKindOfClass:classType]) { - wrongObjectError = [NSError sdl_rpcStore_invalidObjectErrorWithObject:array.firstObject expectedType:classType]; - } else { - wrongObjectError = [NSError sdl_rpcStore_invalidObjectErrorWithObject:array expectedType:NSArray.class]; - } - - SDLLogAssert(@"Retrieving array from store error: %@", wrongObjectError.localizedFailureReason); - if (error) { - *error = wrongObjectError; - } - return nil; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/NSNumber+NumberType.h b/Pods/SmartDeviceLink/SmartDeviceLink/NSNumber+NumberType.h deleted file mode 100644 index f373d6d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/NSNumber+NumberType.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// NSNumber+NumberType.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 11/19/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -/** - * A declaration that this NSNumber contains an NSInteger. - */ -@protocol SDLInt -@end - -/** - * A declaration that this NSNumber contains an NSUInteger. - */ -@protocol SDLUInt -@end - -/** - * A declaration that this NSNumber contains a BOOL. - */ -@protocol SDLBool -@end - -/** - * A declaration that this NSNumber contains a float. - */ -@protocol SDLFloat -@end - -/// Extensions to NSNumber allowing for details on what kind of NSNumber is contained within. -@interface NSNumber (NumberType) - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommand.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommand.h deleted file mode 100644 index 8265395..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommand.h +++ /dev/null @@ -1,161 +0,0 @@ -// SDLAddCommand.h - - -#import "SDLRPCRequest.h" - -#import "SDLImageType.h" -#import "SDLNotificationConstants.h" - -@class SDLImage; -@class SDLMenuParams; - -/** - * This class will add a command to the application's Command Menu - * - * A command will be added to the end of the list of elements in the Command Menu under the following conditions: - * 1. When a SDLAddCommand is added with no SDLMenuParams value provided. - * 2. When a SDLMenuParams value is provided with a SDLMenuParam.position value greater than or equal to the number of menu items currently defined in the menu specified by the SDLMenuParam.parentID value. - * - * The set of choices which the application builds using SDLAddCommand can be a mixture of: - * 1. Choices having only VR synonym definitions, but no SDLMenuParams definitions - * 2. Choices having only SDLMenuParams definitions, but no VR synonym definitions - * 3. Choices having both SDLMenuParams and VR synonym definitions - * - * HMILevel needs to be FULL, LIMITED or BACKGROUD - * @since SDL 1.0 - * @see SDLDeleteCommand, SDLAddSubMenu, SDLDeleteSubMenu - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAddCommand : SDLRPCRequest - -/** - * Constructs a SDLAddCommand with a handler callback when an event occurs. - * - * @param handler A callback that is called when a button event occurs for the command. - * - * @return A SDLAddCommand object - */ -- (instancetype)initWithHandler:(nullable SDLRPCCommandNotificationHandler)handler; - -/** - * Convenience init for creating a voice command menu item. - * - * @discussion This menu item can only be triggered by the VR system and does not show up in the HMI application menu. - * - * @param commandId A unique id for the menu item. - * @param vrCommands One or more voice recognition phrases. If recognized by the VR system, the handler will be called. - * @param handler Called when the VR system recognizes a phrase in `vrCommands` - * @return A SDLAddCommand object - */ -- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands handler:(nullable SDLRPCCommandNotificationHandler)handler; - -/** - * Convenience init for creating a menu item with text. - * - * @param commandId A unique id for the menu item. - * @param vrCommands One or more voice recognition phrases. If recognized by the VR system, the handler will be called. - * @param menuName The text that will appear in the menu. - * @param handler Called when the menu item is selected and/or when the VR system recognizes a phrase in `vrCommands` - * @return A SDLAddCommand object - */ -- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands menuName:(NSString *)menuName handler:(nullable SDLRPCCommandNotificationHandler)handler; - -/** - * Convenience init for creating a menu item with text and a custom icon. - * - * @warning The icon must be uploaded to Core before being displayed in the menu. - * - * @param commandId A unique id for the menu item. - * @param vrCommands One or more voice recognition phrases. If recognized by the VR system, the handler will be called. - * @param menuName The text that will appear in the menu. - * @param parentId The command id of the parent menu if menu item is in a submenu. If not in a submenu, the parentId is 0. - * @param position The menu item's row number in the menu. - * @param iconValue The unique name used to upload the image to Core. - * @param iconType Whether the image is static or dynamic. - * @param handler Called when the menu item is selected and/or when the VR system recognizes a phrase in `vrCommands` - * @return A SDLAddCommand object - */ -- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands menuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position iconValue:(nullable NSString *)iconValue iconType:(nullable SDLImageType)iconType handler:(nullable SDLRPCCommandNotificationHandler)handler __deprecated_msg("Use initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:iconIsTemplate:handler: instead"); - -/** - * Convenience init for creating a menu item with text and a custom icon. - * - * @warning The icon must be uploaded to Core before being displayed in the menu. - * - * @param commandId A unique id for the menu item. - * @param vrCommands One or more voice recognition phrases. If recognized by the VR system, the handler will be called. - * @param menuName The text that will appear in the menu. - * @param parentId The command id of the parent menu if menu item is in a submenu. If not in a submenu, the parentId is 0. - * @param position The menu item's row number in the menu. - * @param iconValue The unique name used to upload the image to Core. - * @param iconType Whether the image is static or dynamic. - * @param iconIsTemplate Whether or not the image is a template that can be (re)colored by the SDL HMI - * @param handler Called when the menu item is selected and/or when the VR system recognizes a phrase in `vrCommands` - * @return A SDLAddCommand object - */ -- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands menuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position iconValue:(nullable NSString *)iconValue iconType:(nullable SDLImageType)iconType iconIsTemplate:(BOOL)iconIsTemplate handler:(nullable SDLRPCCommandNotificationHandler)handler; - -/** - * Convenience init for creating a menu item with text and a custom icon. - * - * @warning The icon must be uploaded to Core before being displayed in the menu. - * - * @param commandId A unique id for the menu item. - * @param vrCommands One or more voice recognition phrases. If recognized by the VR system, the handler will be called. - * @param menuName The text that will appear in the menu. - * @param parentId The command id of the parent menu if menu item is in a submenu. If not in a submenu, the parentId is 0. - * @param position The menu item's row number in the menu. - * @param icon A image that appears next to the `menuName` text. - * @param handler Called when the menu item is selected and/or when the VR system recognizes a phrase in `vrCommands` - * @return A SDLAddCommand object - */ -- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands menuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position icon:(nullable SDLImage *)icon handler:(nullable SDLRPCCommandNotificationHandler)handler; - -/** - * A handler that will let you know when the button you created is subscribed. - * - * @warning This will only work if you use `SDLManager`. - */ -@property (nullable, copy, nonatomic) SDLRPCCommandNotificationHandler handler; - -/** - * A unique id that identifies the command. - * - * @discussion Is returned in an `SDLOnCommand` notification to identify the command selected by the user - * - * Required, Integer, 0 - 2,000,000,000 - */ -@property (strong, nonatomic) NSNumber *cmdID; - -/** - * A `SDLMenuParams` pointer which defines the command and how it is added to the command menu. - * - * @discussion If provided, this will define the command and how it is added to the command menu. If null, commands will not be accessible through the HMI application menu. - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLMenuParams *menuParams; - -/** - * An array of strings to be used as VR synonyms for this command. - * - * @discussion If provided, defines one or more VR phrases the recognition of any of which triggers the `SDLOnCommand` notification with this cmdID. If null, commands will not be accessible by voice commands (when the user hits push-to-talk). - * - * Optional, Array of Strings, Max String length 99 chars, Array size 1 - 100 - */ -@property (nullable, strong, nonatomic) NSArray *vrCommands; - -/** - * Image struct containing a static or dynamic icon. - * - * @discussion If provided, defines the image to be be shown along with a command. If omitted on supported displays, no (or the default if applicable) icon will be displayed - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLImage *cmdIcon; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommand.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommand.m deleted file mode 100644 index 0613f31..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommand.m +++ /dev/null @@ -1,150 +0,0 @@ -// SDLAddCommand.m -// - - -#import "SDLAddCommand.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImage.h" -#import "SDLMenuParams.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAddCommand - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameAddCommand]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithHandler:(nullable SDLRPCCommandNotificationHandler)handler { - self = [self init]; - if (!self) { - return nil; - } - - _handler = handler; - - return self; -} - -- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands handler:(nullable SDLRPCCommandNotificationHandler)handler { - self = [self init]; - if (!self) { - return nil; - } - - self.cmdID = @(commandId); - self.vrCommands = [vrCommands mutableCopy]; - self.handler = handler; - - return self; -} - -- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands menuName:(NSString *)menuName handler:(nullable SDLRPCCommandNotificationHandler)handler { - self = [self initWithId:commandId vrCommands:vrCommands handler:handler]; - if (!self) { - return nil; - } - - self.menuParams = [[SDLMenuParams alloc] initWithMenuName:menuName]; - - return self; -} - -- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands menuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position iconValue:(nullable NSString *)iconValue iconType:(nullable SDLImageType)iconType handler:(nullable SDLRPCCommandNotificationHandler)handler { - self = [self initWithId:commandId vrCommands:vrCommands menuName:menuName handler:handler]; - if (!self) { - return nil; - } - - self.menuParams.parentID = @(parentId); - self.menuParams.position = @(position); - - if (iconValue != nil && iconType != nil) { - self.cmdIcon = [[SDLImage alloc] initWithName:iconValue ofType:iconType isTemplate:NO]; - } - - return self; -} - -- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands menuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position iconValue:(nullable NSString *)iconValue iconType:(nullable SDLImageType)iconType iconIsTemplate:(BOOL)iconIsTemplate handler:(nullable SDLRPCCommandNotificationHandler)handler { - self = [self initWithId:commandId vrCommands:vrCommands menuName:menuName handler:handler]; - if (!self) { - return nil; - } - - self.menuParams.parentID = @(parentId); - self.menuParams.position = @(position); - - if (iconValue != nil && iconType != nil) { - self.cmdIcon = [[SDLImage alloc] initWithName:iconValue ofType:iconType isTemplate:iconIsTemplate]; - } - - return self; -} - -- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands menuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position icon:(nullable SDLImage *)icon handler:(nullable SDLRPCCommandNotificationHandler)handler { - self = [self initWithId:commandId vrCommands:vrCommands menuName:menuName handler:handler]; - if (!self) { - return nil; - } - - self.menuParams.parentID = @(parentId); - self.menuParams.position = @(position); - self.cmdIcon = icon; - - return self; -} - -#pragma mark - Getters / Setters - -- (void)setCmdID:(NSNumber *)cmdID { - [self.parameters sdl_setObject:cmdID forName:SDLRPCParameterNameCommandId]; -} - -- (NSNumber *)cmdID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameCommandId ofClass:NSNumber.class error:&error]; -} - -- (void)setMenuParams:(nullable SDLMenuParams *)menuParams { - [self.parameters sdl_setObject:menuParams forName:SDLRPCParameterNameMenuParams]; -} - -- (nullable SDLMenuParams *)menuParams { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuParams ofClass:SDLMenuParams.class error:nil]; -} - -- (void)setVrCommands:(nullable NSArray *)vrCommands { - [self.parameters sdl_setObject:vrCommands forName:SDLRPCParameterNameVRCommands]; -} - -- (nullable NSArray *)vrCommands { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameVRCommands ofClass:NSString.class error:nil]; -} - -- (void)setCmdIcon:(nullable SDLImage *)cmdIcon { - [self.parameters sdl_setObject:cmdIcon forName:SDLRPCParameterNameCommandIcon]; -} - -- (nullable SDLImage *)cmdIcon { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCommandIcon ofClass:SDLImage.class error:nil]; -} - --(id)copyWithZone:(nullable NSZone *)zone { - SDLAddCommand *newCommand = [super copyWithZone:zone]; - newCommand->_handler = self.handler; - - return newCommand; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommandResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommandResponse.h deleted file mode 100644 index 29b305f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommandResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLAddCommandResponse.h - - -#import "SDLRPCResponse.h" - - -/** - Response to `SDLAddCommand` - - Since SmartDeviceLink 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAddCommandResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommandResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommandResponse.m deleted file mode 100644 index 1906f7f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddCommandResponse.m +++ /dev/null @@ -1,24 +0,0 @@ -// SDLAddCommandResponse.m - -#import "SDLAddCommandResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAddCommandResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameAddCommand]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.h deleted file mode 100644 index 6f289e8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.h +++ /dev/null @@ -1,109 +0,0 @@ -// SDLAddSubMenu.h - - -#import "SDLRPCRequest.h" - -#import "SDLMenuLayout.h" - -@class SDLImage; - -/** - * Add a SDLSubMenu to the Command Menu - *

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

      - *

      - * HMILevel needs to be FULL, LIMITED or BACKGROUD - *

      - * - * Since SmartDeviceLink 1.0
      - * see SDLDeleteSubMenu SDLAddCommand SDLDeleteCommand - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAddSubMenu : SDLRPCRequest - - -/// Convenience init for creating an add submenu -/// -/// @param menuId A menu id -/// @param menuName The menu name -/// @return An SDLAddSubMenu object -- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName; - -/// Convenience init for creating an add submenu -/// -/// @param menuId A menu id -/// @param menuName The menu name -/// @param position The position within the menu to add -/// @return An SDLAddSubMenu object -- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName position:(UInt8)position __deprecated_msg("Use initWithId:menuName:menuLayout:menuIcon:position: instead"); - -/// Convenience init for creating an add submenu -/// -/// @param menuId A menu id -/// @param menuName The menu name -/// @param icon The icon to show on the menu item -/// @param position The position within the menu to add -/// @return An SDLAddSubMenu object -- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName menuIcon:(nullable SDLImage *)icon position:(UInt8)position __deprecated_msg("Use initWithId:menuName:menuLayout:menuIcon:position: instead"); - -/// Convenience init for creating an add submenu with all properties. -/// -/// @param menuId A menu id -/// @param menuName The menu name -/// @param menuLayout The sub-menu layout -/// @param icon The icon to show on the menu item -/// @param position The position within the menu to add -/// @return An SDLAddSubMenu object -- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName menuLayout:(nullable SDLMenuLayout)menuLayout menuIcon:(nullable SDLImage *)icon position:(UInt8)position; - -/** - * a Menu ID that identifies a sub menu - * @discussion This value is used in - * SDLAddCommand to which SDLSubMenu is the parent of the command being added - *

      - */ -@property (strong, nonatomic) NSNumber *menuID; - -/** - * a position of menu - * @discussion An NSNumber pointer representing the position within the items - * of the top level Command Menu. 0 will insert at the front, 1 - * will insert after the first existing element, etc. Position of - * any submenu will always be located before the return and exit - * options - *

      - * Notes:
      - *

        - *
      • - * Min Value: 0; Max Value: 1000
      • - *
      • If position is greater or equal than the number of items - * on top level, the sub menu will be appended by the end
      • - *
      • If this parameter is omitted, the entry will be added at - * the end of the list
      • - *
      - */ -@property (strong, nonatomic, nullable) NSNumber *position; - -/** - * a menuName which is displayed representing this submenu item - * @discussion NSString which will be displayed representing this submenu item - */ -@property (strong, nonatomic) NSString *menuName; - -/** - An image that is displayed alongside this submenu item - */ -@property (strong, nonatomic, nullable) SDLImage *menuIcon; - -/** - The sub-menu layout. See available menu layouts on SDLWindowCapability.menuLayoutsAvailable. Defaults to LIST. - */ -@property (strong, nonatomic, nullable) SDLMenuLayout menuLayout; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.m deleted file mode 100644 index 649a10a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenu.m +++ /dev/null @@ -1,98 +0,0 @@ -// SDLAddSubMenu.m - -#import "SDLAddSubMenu.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImage.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAddSubMenu - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameAddSubMenu]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName { - self = [self init]; - if (!self) { - return nil; - } - - self.menuID = @(menuId); - self.menuName = menuName; - - return self; -} - -- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName position:(UInt8)position { - return [self initWithId:menuId menuName:menuName menuLayout:nil menuIcon:nil position:position]; -} - -- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName menuIcon:(nullable SDLImage *)icon position:(UInt8)position { - return [self initWithId:menuId menuName:menuName menuLayout:nil menuIcon:icon position:position]; -} - -- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName menuLayout:(nullable SDLMenuLayout)menuLayout menuIcon:(nullable SDLImage *)icon position:(UInt8)position { - self = [self initWithId:menuId menuName:menuName]; - if (!self) { return nil; } - - self.position = @(position); - self.menuIcon = icon; - self.menuLayout = menuLayout; - - return self; -} - -- (void)setMenuID:(NSNumber *)menuID { - [self.parameters sdl_setObject:menuID forName:SDLRPCParameterNameMenuId]; -} - -- (NSNumber *)menuID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuId ofClass:NSNumber.class error:&error]; -} - -- (void)setPosition:(nullable NSNumber *)position { - [self.parameters sdl_setObject:position forName:SDLRPCParameterNamePosition]; -} - -- (nullable NSNumber *)position { - return [self.parameters sdl_objectForName:SDLRPCParameterNamePosition ofClass:NSNumber.class error:nil]; -} - -- (void)setMenuName:(NSString *)menuName { - [self.parameters sdl_setObject:menuName forName:SDLRPCParameterNameMenuName]; -} - -- (NSString *)menuName { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuName ofClass:NSString.class error:&error]; -} - -- (void)setMenuIcon:(nullable SDLImage *)menuIcon { - [self.parameters sdl_setObject:menuIcon forName:SDLRPCParameterNameMenuIcon]; -} - -- (nullable SDLImage *)menuIcon { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuIcon ofClass:[SDLImage class] error:nil]; -} - -- (void)setMenuLayout:(nullable SDLMenuLayout)menuLayout { - [self.parameters sdl_setObject:menuLayout forName:SDLRPCParameterNameMenuLayout]; -} - -- (nullable SDLMenuLayout)menuLayout { - return [self.parameters sdl_enumForName:SDLRPCParameterNameMenuLayout error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenuResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenuResponse.h deleted file mode 100644 index 4f7db98..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenuResponse.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLAddSubMenuResponse.h - - -#import "SDLRPCResponse.h" - -/** - Response to `SDLAddSubMenu` - - Since SmartDeviceLink 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAddSubMenuResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenuResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenuResponse.m deleted file mode 100644 index e47fe72..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAddSubMenuResponse.m +++ /dev/null @@ -1,24 +0,0 @@ -// SDLAddSubMenuResponse.m - -#import "SDLAddSubMenuResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAddSubMenuResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameAddSubMenu]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAirbagStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAirbagStatus.h deleted file mode 100644 index 140b6af..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAirbagStatus.h +++ /dev/null @@ -1,73 +0,0 @@ -// SDLAirbagStatus.h -// - -#import "SDLRPCMessage.h" - -#import "SDLVehicleDataEventStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - A vehicle data status struct for airbags - */ -@interface SDLAirbagStatus : SDLRPCStruct - -/** - References signal "VedsDrvBag_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus driverAirbagDeployed; - -/** - References signal "VedsDrvSideBag_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus driverSideAirbagDeployed; - -/** - References signal "VedsDrvCrtnBag_D_Ltchd". See VehicleDataEventStatus - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus driverCurtainAirbagDeployed; - -/** - References signal "VedsPasBag_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus passengerAirbagDeployed; - -/** - References signal "VedsPasCrtnBag_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus passengerCurtainAirbagDeployed; - -/** - References signal "VedsKneeDrvBag_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus driverKneeAirbagDeployed; - -/** - References signal "VedsPasSideBag_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus passengerSideAirbagDeployed; - -/** - References signal "VedsKneePasBag_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus passengerKneeAirbagDeployed; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAirbagStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAirbagStatus.m deleted file mode 100644 index 650a2c5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAirbagStatus.m +++ /dev/null @@ -1,85 +0,0 @@ -// SDLAirbagStatus.m - -#import "SDLAirbagStatus.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAirbagStatus - -- (void)setDriverAirbagDeployed:(SDLVehicleDataEventStatus)driverAirbagDeployed { - [self.store sdl_setObject:driverAirbagDeployed forName:SDLRPCParameterNameDriverAirbagDeployed]; -} - -- (SDLVehicleDataEventStatus)driverAirbagDeployed { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameDriverAirbagDeployed error:&error]; -} - -- (void)setDriverSideAirbagDeployed:(SDLVehicleDataEventStatus)driverSideAirbagDeployed { - [self.store sdl_setObject:driverSideAirbagDeployed forName:SDLRPCParameterNameDriverSideAirbagDeployed]; -} - -- (SDLVehicleDataEventStatus)driverSideAirbagDeployed { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameDriverSideAirbagDeployed error:&error]; -} - -- (void)setDriverCurtainAirbagDeployed:(SDLVehicleDataEventStatus)driverCurtainAirbagDeployed { - [self.store sdl_setObject:driverCurtainAirbagDeployed forName:SDLRPCParameterNameDriverCurtainAirbagDeployed]; -} - -- (SDLVehicleDataEventStatus)driverCurtainAirbagDeployed { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameDriverCurtainAirbagDeployed error:&error]; -} - -- (void)setPassengerAirbagDeployed:(SDLVehicleDataEventStatus)passengerAirbagDeployed { - [self.store sdl_setObject:passengerAirbagDeployed forName:SDLRPCParameterNamePassengerAirbagDeployed];} - -- (SDLVehicleDataEventStatus)passengerAirbagDeployed { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNamePassengerAirbagDeployed error:&error]; -} - -- (void)setPassengerCurtainAirbagDeployed:(SDLVehicleDataEventStatus)passengerCurtainAirbagDeployed { - [self.store sdl_setObject:passengerCurtainAirbagDeployed forName:SDLRPCParameterNamePassengerCurtainAirbagDeployed]; -} - -- (SDLVehicleDataEventStatus)passengerCurtainAirbagDeployed { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNamePassengerCurtainAirbagDeployed error:&error]; -} - -- (void)setDriverKneeAirbagDeployed:(SDLVehicleDataEventStatus)driverKneeAirbagDeployed { - [self.store sdl_setObject:driverKneeAirbagDeployed forName:SDLRPCParameterNameDriverKneeAirbagDeployed]; -} - -- (SDLVehicleDataEventStatus)driverKneeAirbagDeployed { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameDriverKneeAirbagDeployed error:&error]; -} - -- (void)setPassengerSideAirbagDeployed:(SDLVehicleDataEventStatus)passengerSideAirbagDeployed { - [self.store sdl_setObject:passengerSideAirbagDeployed forName:SDLRPCParameterNamePassengerSideAirbagDeployed]; -} - -- (SDLVehicleDataEventStatus)passengerSideAirbagDeployed { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNamePassengerSideAirbagDeployed error:&error]; -} - -- (void)setPassengerKneeAirbagDeployed:(SDLVehicleDataEventStatus)passengerKneeAirbagDeployed { - [self.store sdl_setObject:passengerKneeAirbagDeployed forName:SDLRPCParameterNamePassengerKneeAirbagDeployed]; -} - -- (SDLVehicleDataEventStatus)passengerKneeAirbagDeployed { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNamePassengerKneeAirbagDeployed error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.h deleted file mode 100644 index 6a9a25e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.h +++ /dev/null @@ -1,264 +0,0 @@ -// SDLAlert.h -// - - -#import "SDLRPCRequest.h" - -@class SDLImage; -@class SDLSoftButton; -@class SDLTTSChunk; - -NS_ASSUME_NONNULL_BEGIN - -/** - Shows an alert which typically consists of text-to-speech message and text on the display. Either `alertText1`, `alertText2` or `TTSChunks` needs to be set or the request will be rejected. - - If connecting to SDL Core v.6.0+, the alert can be canceled programmatically using the `cancelID`. Canceling will not dismiss the alert's speech - only the modal view will be dismissed. On older versions of SDL Core, the alert will persist until the user has interacted with the alert or the specified timeout has elapsed. - - @since SDL 1.0 - */ -@interface SDLAlert : SDLRPCRequest - -/** - Convenience init for creating a modal view with text, buttons, and optional sound cues. - - @param alertText The string to be displayed in the first field of the display - @param softButtons Soft buttons to be displayed - @param playTone Whether the alert tone should be played before the TTS (if any) is spoken - @param ttsChunks Speech or a sound file to be played when the alert shows - @param cancelID An ID for this specific alert to allow cancellation through the `CancelInteraction` RPC - @param icon Image to be displayed in the alert - @return An SDLAlert object - */ -- (instancetype)initWithAlertText:(nullable NSString *)alertText softButtons:(nullable NSArray *)softButtons playTone:(BOOL)playTone ttsChunks:(nullable NSArray *)ttsChunks alertIcon:(nullable SDLImage *)icon cancelID:(UInt32)cancelID; - -/** - Convenience init for creating a sound-only alert. - - @param ttsChunks Speech or a sound file to be played when the alert shows - @param playTone Whether the alert tone should be played before the TTS is spoken - @return An SDLAlert object - */ -- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks playTone:(BOOL)playTone; - -/** - Convenience init for setting all alert parameters. - - @param alertText1 The first line of the alert - @param alertText2 The second line of the alert - @param alertText3 The third line of the alert - @param softButtons Buttons for the alert - @param playTone Whether the alert tone should be played before the TTS (if any) is spoken - @param ttsChunks An array of text chunks to be spoken or a prerecorded sound file - @param duration The duration of the displayed portion of the alert, in milliseconds - @param progressIndicator Whether an animation indicating that loading of a feature is progressing should be shown - @param cancelID An ID for this specific alert to allow cancellation through the `CancelInteraction` RPC - @param icon Image to be displayed in the alert - @return An SDLAlert object - */ -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 softButtons:(nullable NSArray *)softButtons playTone:(BOOL)playTone ttsChunks:(nullable NSArray *)ttsChunks duration:(UInt16)duration progressIndicator:(BOOL)progressIndicator alertIcon:(nullable SDLImage *)icon cancelID:(UInt32)cancelID; - -/** - Convenience init for creating an alert with two lines of text and a timeout. - - @param alertText1 The first line of the alert - @param alertText2 The second line of the alert - @param duration The duration of the displayed portion of the alert, in milliseconds - @return An SDLAlert object - */ -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 duration:(UInt16)duration __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); - -/** - Convenience init for creating an alert with three lines of text. - - @param alertText1 The first line of the alert - @param alertText2 The second line of the alert - @param alertText3 The third line of the alert - @return An SDLAlert object - */ -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); - -/** - Convenience init for creating an alert with three lines of text and a timeout. - - @param alertText1 The first line of the alert - @param alertText2 The second line of the alert - @param alertText3 The third line of the alert - @param duration The duration of the displayed portion of the alert, in milliseconds - @return An SDLAlert object - */ -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); - -/** - Convenience init for creating an alert with three lines of text and a timeout. - - @param alertText1 The first line of the alert - @param alertText2 The second line of the alert - @param alertText3 The third line of the alert - @param duration The duration of the displayed portion of the alert, in milliseconds - @param softButtons Buttons for the alert - @return An SDLAlert object - */ -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); - -/** - Convenience init for creating a speech-only alert. - - @param ttsText Speech to be played - @param playTone Whether the alert tone should be played before the TTS is spoken - @return An SDLAlert object - */ -- (instancetype)initWithTTS:(nullable NSString *)ttsText playTone:(BOOL)playTone __deprecated_msg("Use initWithTTS:playTone: instead"); - -/** - Convenience init for creating an alert with two lines of text, optional sound cues, and a timout. - - @param ttsText Speech to be played - @param alertText1 The first line of the alert - @param alertText2 The second line of the alert - @param playTone Whether the alert tone should be played before the TTS is spoken - @param duration The duration of the displayed portion of the alert, in milliseconds - @return An SDLAlert object - */ -- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 playTone:(BOOL)playTone duration:(UInt16)duration __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); - -/** - Convenience init for creating an alert with three lines of text, optional sound cues, and a timout. - - @param ttsText Speech to be played - @param alertText1 The first line of the alert - @param alertText2 The second line of the alert - @param alertText3 The third line of the alert - @param playTone Whether the alert tone should be played before the TTS is spoken - @param duration The duration of the displayed portion of the alert, in milliseconds - @return An SDLAlert object - */ -- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); - -/** - Convenience init for creating an alert with three lines of text, soft buttons, and optional sound cues. - - @param ttsChunks Speech or a sound file to be played when the alert shows - @param alertText1 The first line of the alert - @param alertText2 The second line of the alert - @param alertText3 The third line of the alert - @param playTone Whether the alert tone should be played before the TTS is spoken - @param softButtons Buttons for the alert - @return An SDLAlert object - */ -- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone softButtons:(nullable NSArray *)softButtons __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); - -/** - Convenience init for creating an alert with three lines of text, soft buttons, optional sound cues, and a timout. - - @param ttsChunks Speech or a sound file to be played when the alert shows - @param alertText1 The first line of the alert - @param alertText2 The second line of the alert - @param alertText3 The third line of the alert - @param playTone Whether the alert tone should be played before the TTS is spoken - @param duration The duration of the displayed portion of the alert, in milliseconds - @param softButtons Buttons for the alert - @return An SDLAlert object - */ -- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons __deprecated_msg("Use initWithAlertText1:alertText2:alertText3:softButtons:playTone:ttsChunks:duration:progressIndicator:alertIcon:cancelID: instead"); - -/** - The first line of the alert text field. - - @discussion At least either `alertText1`, `alertText2` or `ttsChunks` need to be provided. - @discussion If supported, the `displayCapabilities` will have a `TextField` with a `name` of `alertText1`. - - String, Optional, Max length 500 chars - @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSString *alertText1; - -/** - The second line of the alert text field. - - @discussion At least either `alertText1`, `alertText2` or `ttsChunks` need to be provided. - @discussion If supported, the `displayCapabilities` will have a `TextField` with a `name` of `alertText2` - - String, Optional, Max length 500 chars - @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSString *alertText2; - -/** - The optional third line of the alert text field. - - @discussion If supported, the `displayCapabilities` will have a `TextField` with a `name` of `alertText3` - - String, Optional, Max length 500 chars - @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) NSString *alertText3; - -/** - An array of text chunks to be spoken or a prerecorded sound file. - - @discussion At least either `alertText1`, `alertText2` or `ttsChunks` need to be provided. - - Array of SDLTTSChunk, Optional, Array length 1 - 100 - - @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSArray *ttsChunks; - -/** - The duration of the displayed portion of the alert, in milliseconds. Typical timeouts are 3 - 5 seconds. If omitted, the timeout is set to a default of 5 seconds. - - Integer, Optional, Min value: 3000, Max value: 10000 - - @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSNumber *duration; - -/** - Whether the alert tone should be played before the TTS (if any) is spoken. If omitted or set to false, no tone is played. - - Boolean, Optional - - @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSNumber *playTone; - -/** - If supported on the given platform, the alert GUI will include some sort of animation indicating that loading of a feature is progressing (e.g. a spinning wheel or hourglass, etc.). - - Boolean, Optional - - @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) NSNumber *progressIndicator; - -/** - Buttons for the displayed alert. If omitted on supported displays, the displayed alert shall not have any buttons. - - Array of SDLSoftButton, Optional, Array size 0 - 4 - - @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) NSArray *softButtons; - -/** - An ID for this specific alert to allow cancellation through the `CancelInteraction` RPC. - - Integer, Optional - - @see SDLCancelInteraction - @since SDL 6.0 - */ -@property (nullable, strong, nonatomic) NSNumber *cancelID; - -/** - Image to be displayed in the alert. If omitted on supported displays, no (or the default if applicable) icon should be displayed. - - SDLImage, Optional - @since SDL 6.0 - */ -@property (nullable, strong, nonatomic) SDLImage *alertIcon; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.m deleted file mode 100644 index 041943a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlert.m +++ /dev/null @@ -1,179 +0,0 @@ -// SDLAlert.m - -#import "SDLAlert.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImage.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSoftButton.h" -#import "SDLTTSChunk.h" - -static UInt16 const DefaultAlertDuration = 5000; - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAlert - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameAlert]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithAlertText:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 softButtons:(nullable NSArray *)softButtons playTone:(BOOL)playTone ttsChunks:(nullable NSArray *)ttsChunks duration:(nullable NSNumber *)duration progressIndicator:(BOOL)progressIndicator alertIcon:(nullable SDLImage *)icon cancelID:(nullable NSNumber *)cancelID { - self = [self init]; - if (!self) { - return nil; - } - self.alertText1 = alertText1; - self.alertText2 = alertText2; - self.alertText3 = alertText3; - self.ttsChunks = ttsChunks; - self.duration = duration; - self.playTone = @(playTone); - self.progressIndicator = @(progressIndicator); - self.softButtons = softButtons; - self.alertIcon = icon; - self.cancelID = cancelID; - - return self; -} - -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 softButtons:(nullable NSArray *)softButtons playTone:(BOOL)playTone ttsChunks:(nullable NSArray *)ttsChunks duration:(UInt16)duration progressIndicator:(BOOL)progressIndicator alertIcon:(nullable SDLImage *)icon cancelID:(UInt32)cancelID { - return [self initWithAlertText:alertText1 alertText2:alertText2 alertText3:alertText3 softButtons:softButtons playTone:playTone ttsChunks:ttsChunks duration:@(duration) progressIndicator:progressIndicator alertIcon:icon cancelID:@(cancelID)]; -} - -- (instancetype)initWithTTS:(nullable NSString *)ttsText playTone:(BOOL)playTone { - return [self initWithTTS:ttsText alertText1:nil alertText2:nil playTone:playTone duration:DefaultAlertDuration]; -} - -- (instancetype)initWithAlertText:(nullable NSString *)alertText softButtons:(nullable NSArray *)softButtons playTone:(BOOL)playTone ttsChunks:(nullable NSArray *)ttsChunks alertIcon:(nullable SDLImage *)icon cancelID:(UInt32)cancelID { - return [self initWithAlertText:alertText alertText2:nil alertText3:nil softButtons:softButtons playTone:playTone ttsChunks:ttsChunks duration:nil progressIndicator:false alertIcon:icon cancelID:@(cancelID)]; -} - -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 { - return [self initWithAlertText1:alertText1 alertText2:alertText2 alertText3:alertText3 duration:DefaultAlertDuration]; -} - -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 duration:(UInt16)duration { - return [self initWithAlertText1:alertText1 alertText2:alertText2 alertText3:nil duration:duration]; -} - -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration { - return [self initWithAlertText1:alertText1 alertText2:alertText2 alertText3:alertText3 duration:duration softButtons:nil]; -} - -- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons { - return [self initWithTTSChunks:nil alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:NO duration:duration softButtons:softButtons]; -} - -- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 playTone:(BOOL)playTone duration:(UInt16)duration { - return [self initWithTTS:ttsText alertText1:alertText1 alertText2:alertText2 alertText3:nil playTone:playTone duration:duration]; -} - -- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration { - NSArray *ttsChunks = [SDLTTSChunk textChunksFromString:ttsText]; - return [self initWithTTSChunks:ttsChunks alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:playTone duration:duration softButtons:nil]; -} - -- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks playTone:(BOOL)playTone { - return [self initWithAlertText:nil alertText2:nil alertText3:nil softButtons:nil playTone:playTone ttsChunks:ttsChunks duration:nil progressIndicator:false alertIcon:nil cancelID:nil]; -} - -- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone softButtons:(nullable NSArray *)softButtons { - return [self initWithTTSChunks:ttsChunks alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:playTone duration:DefaultAlertDuration softButtons:softButtons]; -} - -- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons { - return [self initWithAlertText:alertText1 alertText2:alertText2 alertText3:alertText3 softButtons:softButtons playTone:playTone ttsChunks:ttsChunks duration:@(duration) progressIndicator:false alertIcon:nil cancelID:nil]; -} - -#pragma mark - Getters and Setters - -- (void)setAlertText1:(nullable NSString *)alertText1 { - [self.parameters sdl_setObject:alertText1 forName:SDLRPCParameterNameAlertText1]; -} - -- (nullable NSString *)alertText1 { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAlertText1 ofClass:NSString.class error:nil]; -} - -- (void)setAlertText2:(nullable NSString *)alertText2 { - [self.parameters sdl_setObject:alertText2 forName:SDLRPCParameterNameAlertText2]; -} - -- (nullable NSString *)alertText2 { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAlertText2 ofClass:NSString.class error:nil]; -} - -- (void)setAlertText3:(nullable NSString *)alertText3 { - [self.parameters sdl_setObject:alertText3 forName:SDLRPCParameterNameAlertText3]; -} - -- (nullable NSString *)alertText3 { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAlertText3 ofClass:NSString.class error:nil]; -} - -- (void)setTtsChunks:(nullable NSArray *)ttsChunks { - [self.parameters sdl_setObject:ttsChunks forName:SDLRPCParameterNameTTSChunks]; -} - -- (nullable NSArray *)ttsChunks { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameTTSChunks ofClass:SDLTTSChunk.class error:nil]; -} - -- (void)setDuration:(nullable NSNumber *)duration { - [self.parameters sdl_setObject:duration forName:SDLRPCParameterNameDuration]; -} - -- (nullable NSNumber *)duration { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDuration ofClass:NSNumber.class error:nil]; -} - -- (void)setPlayTone:(nullable NSNumber *)playTone { - [self.parameters sdl_setObject:playTone forName:SDLRPCParameterNamePlayTone]; -} - -- (nullable NSNumber *)playTone { - return [self.parameters sdl_objectForName:SDLRPCParameterNamePlayTone ofClass:NSNumber.class error:nil]; -} - -- (void)setProgressIndicator:(nullable NSNumber *)progressIndicator { - [self.parameters sdl_setObject:progressIndicator forName:SDLRPCParameterNameProgressIndicator]; -} - -- (nullable NSNumber *)progressIndicator { - return [self.parameters sdl_objectForName:SDLRPCParameterNameProgressIndicator ofClass:NSNumber.class error:nil]; -} - -- (void)setSoftButtons:(nullable NSArray *)softButtons { - [self.parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; -} - -- (nullable NSArray *)softButtons { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; -} - -- (void)setAlertIcon:(nullable SDLImage *)alertIcon { - [self.parameters sdl_setObject:alertIcon forName:SDLRPCParameterNameAlertIcon]; -} - -- (nullable SDLImage *)alertIcon { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAlertIcon ofClass:SDLImage.class error:nil]; -} - -- (void)setCancelID:(nullable NSNumber *)cancelID { - [self.parameters sdl_setObject:cancelID forName:SDLRPCParameterNameCancelID]; -} - -- (nullable NSNumber *)cancelID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCancelID ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.h deleted file mode 100644 index 3da7e63..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.h +++ /dev/null @@ -1,56 +0,0 @@ -// SDLAlertManeuver.h -// - - -#import "SDLRPCRequest.h" - -@class SDLSoftButton; -@class SDLTTSChunk; - - -/** - * Shows a SDLShowConstantTBT message with an optional voice command. This message is shown as an overlay over the display's base screen. - * - * @since SmartDeviceLink 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAlertManeuver : SDLRPCRequest - -/// Convenience init to create an alert maneuver with required parameters -/// -/// @param ttsText The text to speak -/// @param softButtons An arry of soft buttons -/// -/// @return An SDLAlertManeuver object -- (instancetype)initWithTTS:(nullable NSString *)ttsText softButtons:(nullable NSArray *)softButtons; - -/// Convenience init to create an alert maneuver with all parameters -/// -/// @param ttsChunks An array of text chunks -/// @param softButtons An arry of soft buttons -/// @return An SDLAlertManeuver object -- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks softButtons:(nullable NSArray *)softButtons; - -/** - * An array of text chunks. - * - * Optional, Array of SDLTTSChunk, Array length 1 - 100 - * - * @see SDLTTSChunk - */ -@property (nullable, strong, nonatomic) NSArray *ttsChunks; - -/** - * An arry of soft buttons. If omitted on supported displays, only the system defined "Close" SoftButton shall be displayed. - * - * Optional, Array of SDLSoftButton, Array length 0 - 3 - * - * @see SDLSoftButton - */ -@property (nullable, strong, nonatomic) NSArray *softButtons; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.m deleted file mode 100644 index c92ee6b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuver.m +++ /dev/null @@ -1,62 +0,0 @@ -// SDLAlertManeuver.m -// - - -#import "SDLAlertManeuver.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSoftButton.h" -#import "SDLTTSChunk.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAlertManeuver - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameAlertManeuver]) { - } - return self; -} -#pragma clang diagnostic pop - - -- (instancetype)initWithTTS:(nullable NSString *)ttsText softButtons:(nullable NSArray *)softButtons { - NSArray *ttsChunks = [SDLTTSChunk textChunksFromString:ttsText]; - return [self initWithTTSChunks:ttsChunks softButtons:softButtons]; -} - -- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks softButtons:(nullable NSArray *)softButtons { - self = [self init]; - if (!self) { - return nil; - } - - self.ttsChunks = [ttsChunks mutableCopy]; - self.softButtons = [softButtons mutableCopy]; - - return self; -} - -- (void)setTtsChunks:(nullable NSArray *)ttsChunks { - [self.parameters sdl_setObject:ttsChunks forName:SDLRPCParameterNameTTSChunks]; -} - -- (nullable NSArray *)ttsChunks { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameTTSChunks ofClass:SDLTTSChunk.class error:nil]; -} - -- (void)setSoftButtons:(nullable NSArray *)softButtons { - [self.parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; -} - -- (nullable NSArray *)softButtons { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuverResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuverResponse.h deleted file mode 100644 index 39a5d53..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuverResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLAlertManeuverResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to SDLAlertManeuver - - @since SmartDeviceLink 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAlertManeuverResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuverResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuverResponse.m deleted file mode 100644 index 89c0f33..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertManeuverResponse.m +++ /dev/null @@ -1,25 +0,0 @@ -// SDLAlertManeuverResponse.m -// - -#import "SDLAlertManeuverResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAlertManeuverResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameAlertManeuver]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.h deleted file mode 100644 index db73310..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.h +++ /dev/null @@ -1,24 +0,0 @@ -// SDLAlertResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to SDLAlert - - @since SDL 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAlertResponse : SDLRPCResponse - -/// Amount of time (in seconds) that an app must wait before resending an alert. -/// -/// @since RPC 2.0 -@property (nullable, strong, nonatomic) NSNumber *tryAgainTime; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.m deleted file mode 100644 index 401b29e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAlertResponse.m +++ /dev/null @@ -1,32 +0,0 @@ -// SDLAlertResponse.m -// - -#import "SDLAlertResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAlertResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameAlert]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setTryAgainTime:(nullable NSNumber *)tryAgainTime { - [self.parameters sdl_setObject:tryAgainTime forName:SDLRPCParameterNameTryAgainTime];} - -- (nullable NSNumber *)tryAgainTime { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTryAgainTime ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAmbientLightStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAmbientLightStatus.h deleted file mode 100644 index f4663ec..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAmbientLightStatus.h +++ /dev/null @@ -1,52 +0,0 @@ -// SDLAmbientLightStatus.h -// - - -#import "SDLEnum.h" - -/** - * Reflects the status of the ambient light sensor for headlamps - * - * @since SDL 3.0 - */ -typedef SDLEnum SDLAmbientLightStatus SDL_SWIFT_ENUM; - -/** - * Represents a "night" ambient light status - */ -extern SDLAmbientLightStatus const SDLAmbientLightStatusNight; - -/** - * Represents a "twilight 1" ambient light status - */ -extern SDLAmbientLightStatus const SDLAmbientLightStatusTwilight1; - -/** - * Represents a "twilight 2" ambient light status - */ -extern SDLAmbientLightStatus const SDLAmbientLightStatusTwilight2; - -/** - * Represents a "twilight 3" ambient light status - */ -extern SDLAmbientLightStatus const SDLAmbientLightStatusTwilight3; - -/** - * Represents a "twilight 4" ambient light status - */ -extern SDLAmbientLightStatus const SDLAmbientLightStatusTwilight4; - -/** - * Represents a "day" ambient light status - */ -extern SDLAmbientLightStatus const SDLAmbientLightStatusDay; - -/** - * Represents an "unknown" ambient light status - */ -extern SDLAmbientLightStatus const SDLAmbientLightStatusUnknown; - -/** - * Represents a "invalid" ambient light status - */ -extern SDLAmbientLightStatus const SDLAmbientLightStatusInvalid; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAmbientLightStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAmbientLightStatus.m deleted file mode 100644 index 673b159..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAmbientLightStatus.m +++ /dev/null @@ -1,13 +0,0 @@ -// SDLAmbientLightStatus.m -// - -#import "SDLAmbientLightStatus.h" - -SDLAmbientLightStatus const SDLAmbientLightStatusNight = @"NIGHT"; -SDLAmbientLightStatus const SDLAmbientLightStatusTwilight1 = @"TWILIGHT_1"; -SDLAmbientLightStatus const SDLAmbientLightStatusTwilight2 = @"TWILIGHT_2"; -SDLAmbientLightStatus const SDLAmbientLightStatusTwilight3 = @"TWILIGHT_3"; -SDLAmbientLightStatus const SDLAmbientLightStatusTwilight4 = @"TWILIGHT_4"; -SDLAmbientLightStatus const SDLAmbientLightStatusDay = @"DAY"; -SDLAmbientLightStatus const SDLAmbientLightStatusUnknown = @"UNKNOWN"; -SDLAmbientLightStatus const SDLAmbientLightStatusInvalid = @"INVALID"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppHMIType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppHMIType.h deleted file mode 100644 index 21ff96e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppHMIType.h +++ /dev/null @@ -1,71 +0,0 @@ -// SDLAppHMIType.h -// - - -#import "SDLEnum.h" - -/** - * Enumeration listing possible app hmi types. - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLAppHMIType SDL_SWIFT_ENUM; - -/** - * The App will have default rights. - */ -extern SDLAppHMIType const SDLAppHMITypeDefault; - -/** - * Communication type of App - */ -extern SDLAppHMIType const SDLAppHMITypeCommunication; - -/** - * App dealing with Media - */ -extern SDLAppHMIType const SDLAppHMITypeMedia; - -/** - * Messaging App - */ -extern SDLAppHMIType const SDLAppHMITypeMessaging; - -/** - * Navigation App - */ -extern SDLAppHMIType const SDLAppHMITypeNavigation; - -/** - * Information App - */ -extern SDLAppHMIType const SDLAppHMITypeInformation; - -/** - * App dealing with social media - */ -extern SDLAppHMIType const SDLAppHMITypeSocial; - -/** - * App dealing with Mobile Projection applications - */ -extern SDLAppHMIType const SDLAppHMITypeProjection; - -/** - * App designed for use in the background - */ -extern SDLAppHMIType const SDLAppHMITypeBackgroundProcess; - -/** - * App only for Testing purposes - */ -extern SDLAppHMIType const SDLAppHMITypeTesting; - -/** - * System App - */ -extern SDLAppHMIType const SDLAppHMITypeSystem; - -/** - * Remote control */ -extern SDLAppHMIType const SDLAppHMITypeRemoteControl; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppHMIType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppHMIType.m deleted file mode 100644 index 070ad08..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppHMIType.m +++ /dev/null @@ -1,18 +0,0 @@ -// SDLAppHMIType.m -// - - -#import "SDLAppHMIType.h" - -SDLAppHMIType const SDLAppHMITypeDefault = @"DEFAULT"; -SDLAppHMIType const SDLAppHMITypeCommunication = @"COMMUNICATION"; -SDLAppHMIType const SDLAppHMITypeMedia = @"MEDIA"; -SDLAppHMIType const SDLAppHMITypeMessaging = @"MESSAGING"; -SDLAppHMIType const SDLAppHMITypeNavigation = @"NAVIGATION"; -SDLAppHMIType const SDLAppHMITypeInformation = @"INFORMATION"; -SDLAppHMIType const SDLAppHMITypeSocial = @"SOCIAL"; -SDLAppHMIType const SDLAppHMITypeProjection = @"PROJECTION"; -SDLAppHMIType const SDLAppHMITypeBackgroundProcess = @"BACKGROUND_PROCESS"; -SDLAppHMIType const SDLAppHMITypeTesting = @"TESTING"; -SDLAppHMIType const SDLAppHMITypeSystem = @"SYSTEM"; -SDLAppHMIType const SDLAppHMITypeRemoteControl = @"REMOTE_CONTROL"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.h deleted file mode 100644 index 2aaff16..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.h +++ /dev/null @@ -1,41 +0,0 @@ -// SDLAppInfo.h -// - -#import "SDLRPCStruct.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - A struct used in register app interface. Contains detailed information about the registered application. - */ -@interface SDLAppInfo : SDLRPCStruct - -/// Convenience init with no parameters -/// -/// @return An SDLAppInfo object -+ (instancetype)currentAppInfo; - -/** - The name displayed for the mobile application on the mobile device (can differ from the app name set in the initial RAI request). - - Required - */ -@property (strong, nonatomic) NSString *appDisplayName; - -/** - The AppBundleID of an iOS application or package name of the Android application. This supports App Launch strategies for each platform. - - Required - */ -@property (strong, nonatomic) NSString *appBundleID; - -/** - Represents the build version number of this particular mobile app. - - Required - */ -@property (strong, nonatomic) NSString *appVersion; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.m deleted file mode 100644 index 1b7ec01..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInfo.m +++ /dev/null @@ -1,58 +0,0 @@ -// SDLAppInfo.m -// - -#import "SDLAppInfo.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -static NSString *const SDLBundleShortVersionStringKey = @"CFBundleShortVersionString"; -static NSString *const SDLBundleAppNameKey = @"CFBundleName"; - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAppInfo - -+ (instancetype)currentAppInfo { - static SDLAppInfo *appInfo = nil; - if (appInfo == nil) { - appInfo = [[SDLAppInfo alloc] init]; - NSBundle *mainBundle = [NSBundle mainBundle]; - NSDictionary *bundleDictionary = mainBundle.infoDictionary; - appInfo.appDisplayName = bundleDictionary[SDLBundleAppNameKey]; - appInfo.appVersion = bundleDictionary[SDLBundleShortVersionStringKey]; - appInfo.appBundleID = mainBundle.bundleIdentifier; - } - return appInfo; -} - -- (void)setAppDisplayName:(NSString *)appDisplayName { - [self.store sdl_setObject:appDisplayName forName:SDLRPCParameterNameAppDisplayName]; -} - -- (NSString *)appDisplayName { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameAppDisplayName ofClass:NSString.class error:&error]; -} - -- (void)setAppBundleID:(NSString *)appBundleID { - [self.store sdl_setObject:appBundleID forName:SDLRPCParameterNameAppBundleId]; -} - -- (NSString *)appBundleID { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameAppBundleId ofClass:NSString.class error:&error]; -} - -- (void)setAppVersion:(NSString *)appVersion { - [self.store sdl_setObject:appVersion forName:SDLRPCParameterNameAppVersion]; -} - -- (NSString *)appVersion { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameAppVersion ofClass:NSString.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h deleted file mode 100644 index 8b30c64..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h +++ /dev/null @@ -1,75 +0,0 @@ -// SDLAppInterfaceUnregisteredReason.h -// - - -#import "SDLEnum.h" - -/** - * Indicates reason why app interface was unregistered. The application is being disconnected by SDL. - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLAppInterfaceUnregisteredReason SDL_SWIFT_ENUM; - - -/** - * Vehicle ignition turned off. - */ -extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonIgnitionOff; - -/** - * Bluetooth was turned off, causing termination of a necessary Bluetooth connection. - */ -extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonBluetoothOff; - -/** - * USB was disconnected, causing termination of a necessary iAP connection. - */ -extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonUSBDisconnected; - -/** - * Application attempted SmartDeviceLink RPC request while HMILevel = NONE. App must have HMILevel other than NONE to issue RPC requests or get notifications or RPC responses. - */ -extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel; - -/** - * Either too many -- or too many per unit of time -- requests were made by the application. - */ -extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonTooManyRequests; - -/** - * The application has issued requests which cause driver distraction rules to be violated. - */ -extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonDriverDistractionViolation; - -/** - * The user performed a language change on the SDL platform, causing the application to need to be reregistered for the new language. - */ -extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonLanguageChange; - -/** - * The user performed a MASTER RESET on the SDL platform, causing removal of a necessary Bluetooth pairing. - */ -extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonMasterReset; - -/** - * The user restored settings to FACTORY DEFAULTS on the SDL platform. - */ -extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonFactoryDefaults; - -/** - * The app is not being authorized to be connected to SDL. - * - * @since SDL 2.0 - */ -extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonAppUnauthorized; - -/// The app could not register due to a protocol violation -/// -/// @since RPC 4.0 -extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonProtocolViolation; - -/// The HMI resource is unsupported -/// -/// @since RPC 4.1 -extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m deleted file mode 100644 index 8bc3231..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m +++ /dev/null @@ -1,18 +0,0 @@ -// SDLAppInterfaceUnregisteredReason.m -// - -#import "SDLAppInterfaceUnregisteredReason.h" - - -SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonIgnitionOff = @"IGNITION_OFF"; -SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonBluetoothOff = @"BLUETOOTH_OFF"; -SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonUSBDisconnected = @"USB_DISCONNECTED"; -SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel = @"REQUEST_WHILE_IN_NONE_HMI_LEVEL"; -SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonTooManyRequests = @"TOO_MANY_REQUESTS"; -SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonDriverDistractionViolation = @"DRIVER_DISTRACTION_VIOLATION"; -SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonLanguageChange = @"LANGUAGE_CHANGE"; -SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonMasterReset = @"MASTER_RESET"; -SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonFactoryDefaults = @"FACTORY_DEFAULTS"; -SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonAppUnauthorized = @"APP_UNAUTHORIZED"; -SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonProtocolViolation = @"PROTOCOL_VIOLATION"; -SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource = @"UNSUPPORTED_HMI_RESOURCE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.h deleted file mode 100644 index 803f82c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.h +++ /dev/null @@ -1,56 +0,0 @@ -// -// SDLAppServiceCapability.h -// SmartDeviceLink -// -// Created by Nicole on 1/30/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" -#import "SDLServiceUpdateReason.h" - -@class SDLAppServiceRecord; - -NS_ASSUME_NONNULL_BEGIN - -/** - * A currently available service. - * - * @since RPC 5.1 - */ -@interface SDLAppServiceCapability : SDLRPCStruct - -/** - * Convenience init for required parameters. - * - * @param updatedAppServiceRecord Service record for a specific app service provider - * @return A SDLAppServiceCapability object - */ -- (instancetype)initWithUpdatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord NS_DESIGNATED_INITIALIZER; - -/** - * Convenience init for all parameters. - * - * @param updateReason Update reason for this service record - * @param updatedAppServiceRecord Service record for a specific app service provider - * @return A SDLAppServiceCapability object - */ -- (instancetype)initWithUpdateReason:(nullable SDLServiceUpdateReason)updateReason updatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord; - -/** - * Only included in `OnSystemCapbilityUpdated`. Update reason for this service record. - * - * SDLServiceUpdateReason, Optional - */ -@property (nullable, strong, nonatomic) SDLServiceUpdateReason updateReason; - -/** - * Service record for a specific app service provider. - * - * SDLAppServiceRecord, Required - */ -@property (strong, nonatomic) SDLAppServiceRecord *updatedAppServiceRecord; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.m deleted file mode 100644 index 595540c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceCapability.m +++ /dev/null @@ -1,61 +0,0 @@ -// -// SDLAppServiceCapability.m -// SmartDeviceLink -// -// Created by Nicole on 1/30/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLAppServiceCapability.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLAppServiceRecord.h" -#import "SDLRPCParameterNames.h" -#import "SDLServiceUpdateReason.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAppServiceCapability - -- (instancetype)initWithUpdatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord { - self = [super init]; - if (!self) { - return self; - } - - self.updatedAppServiceRecord = updatedAppServiceRecord; - - return self; -} - -- (instancetype)initWithUpdateReason:(nullable SDLServiceUpdateReason)updateReason updatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord { - self = [self initWithUpdatedAppServiceRecord:updatedAppServiceRecord]; - if (!self) { - return self; - } - - self.updateReason = updateReason; - - return self; -} - -- (void)setUpdateReason:(nullable SDLServiceUpdateReason)updateReason { - [self.store sdl_setObject:updateReason forName:SDLRPCParameterNameUpdateReason]; -} - -- (nullable SDLServiceUpdateReason)updateReason { - return [self.store sdl_enumForName:SDLRPCParameterNameUpdateReason error:nil]; -} - -- (void)setUpdatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord { - [self.store sdl_setObject:updatedAppServiceRecord forName:SDLRPCParameterNameUpdatedAppServiceRecord]; -} - -- (SDLAppServiceRecord *)updatedAppServiceRecord { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameUpdatedAppServiceRecord ofClass:SDLAppServiceRecord.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.h deleted file mode 100644 index 28a6121..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.h +++ /dev/null @@ -1,112 +0,0 @@ -// -// SDLAppServiceData.h -// SmartDeviceLink -// -// Created by Nicole on 2/1/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -#import "SDLAppServiceType.h" - -@class SDLMediaServiceData; -@class SDLNavigationServiceData; -@class SDLWeatherServiceData; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * Contains all the current data of the app service. The serviceType will link to which of the service data objects are included in this object (e.g. if the service type is MEDIA, the mediaServiceData param should be included). - * - * @since RPC 5.1 - */ -@interface SDLAppServiceData : SDLRPCStruct - -/** - * Convenience init for service type and service id. - * - * @param serviceType The type of service that is to be offered by this app. - * @param serviceId A unique ID tied to this specific service record. - * @return A SDLAppServiceData object - */ -- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType serviceId:(NSString *)serviceId NS_DESIGNATED_INITIALIZER; - -/** - * Convenience init for media service data. - * - * @param mediaServiceData The media service data - * @param serviceId A unique ID tied to this specific service record. - * @return A SDLAppServiceData object - */ -- (instancetype)initWithMediaServiceData:(SDLMediaServiceData *)mediaServiceData serviceId:(NSString *)serviceId; - -/** - * Convenience init for weather service data. - * - * @param weatherServiceData The weather service data - * @param serviceId A unique ID tied to this specific service record. - * @return A SDLAppServiceData object - */ -- (instancetype)initWithWeatherServiceData:(SDLWeatherServiceData *)weatherServiceData serviceId:(NSString *)serviceId; - -/** - * Convenience init for navigation service data. - * - * @param navigationServiceData The navigation service data - * @param serviceId A unique ID tied to this specific service record. - * @return A SDLAppServiceData object - */ -- (instancetype)initWithNavigationServiceData:(SDLNavigationServiceData *)navigationServiceData serviceId:(NSString *)serviceId; - -/** - * Convenience init for all parameters. - * - * @param serviceType The type of service that is to be offered by this app. - * @param serviceId A unique ID tied to this specific service record. - * @param mediaServiceData The media service data - * @param weatherServiceData The weather service data - * @param navigationServiceData The navigation service data - * @return A SDLAppServiceData object - */ -- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType serviceId:(NSString *)serviceId mediaServiceData:(nullable SDLMediaServiceData *)mediaServiceData weatherServiceData:(nullable SDLWeatherServiceData *)weatherServiceData navigationServiceData:(nullable SDLNavigationServiceData *)navigationServiceData; - -/** - * The type of service that is to be offered by this app. See `AppServiceType` for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core. - * - * String, See `SDLAppServiceType`, Required - */ -@property (strong, nonatomic) NSString *serviceType; - -/** - * A unique ID tied to this specific service record. The ID is supplied by the module that services publish themselves. - * - * String, Required - */ -@property (strong, nonatomic) NSString *serviceId; - -/** - * The media service data. - * - * SDLMediaServiceData, Optional - */ -@property (nullable, strong, nonatomic) SDLMediaServiceData *mediaServiceData; - -/** - * The weather service data. - * - * SDLWeatherServiceData, Optional - */ -@property (nullable, strong, nonatomic) SDLWeatherServiceData *weatherServiceData; - -/** - * The navigation service data. - * - * SDLNavigationServiceData, Optional - */ -@property (nullable, strong, nonatomic) SDLNavigationServiceData *navigationServiceData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.m deleted file mode 100644 index 13565a7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceData.m +++ /dev/null @@ -1,124 +0,0 @@ -// -// SDLAppServiceData.m -// SmartDeviceLink -// -// Created by Nicole on 2/1/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLAppServiceData.h" -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -#import "SDLAppServiceType.h" -#import "SDLMediaServiceData.h" -#import "SDLNavigationServiceData.h" -#import "SDLWeatherServiceData.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAppServiceData - -- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType serviceId:(NSString *)serviceId { - self = [super init]; - if (!self) { - return nil; - } - - self.serviceType = serviceType; - self.serviceId = serviceId; - - return self; -} - -- (instancetype)initWithMediaServiceData:(SDLMediaServiceData *)mediaServiceData serviceId:(NSString *)serviceId { - self = [self initWithAppServiceType:SDLAppServiceTypeMedia serviceId:serviceId]; - if (!self) { - return nil; - } - - self.mediaServiceData = mediaServiceData; - - return self; -} - -- (instancetype)initWithWeatherServiceData:(SDLWeatherServiceData *)weatherServiceData serviceId:(NSString *)serviceId { - self = [self initWithAppServiceType:SDLAppServiceTypeWeather serviceId:serviceId]; - if (!self) { - return nil; - } - - self.weatherServiceData = weatherServiceData; - - return self; -} - -- (instancetype)initWithNavigationServiceData:(SDLNavigationServiceData *)navigationServiceData serviceId:(NSString *)serviceId { - self = [self initWithAppServiceType:SDLAppServiceTypeNavigation serviceId:serviceId]; - if (!self) { - return nil; - } - - self.navigationServiceData = navigationServiceData; - - return self; -} - -- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType serviceId:(NSString *)serviceId mediaServiceData:(nullable SDLMediaServiceData *)mediaServiceData weatherServiceData:(nullable SDLWeatherServiceData *)weatherServiceData navigationServiceData:(nullable SDLNavigationServiceData *)navigationServiceData { - self = [self initWithAppServiceType:serviceType serviceId:serviceId]; - if (!self) { - return nil; - } - - self.mediaServiceData = mediaServiceData; - self.weatherServiceData = weatherServiceData; - self.navigationServiceData = navigationServiceData; - - return self; -} - -- (void)setServiceType:(NSString *)serviceType { - [self.store sdl_setObject:serviceType forName:SDLRPCParameterNameServiceType]; -} - -- (NSString *)serviceType { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameServiceType ofClass:NSString.class error:&error]; -} - -- (void)setServiceId:(NSString *)serviceId { - [self.store sdl_setObject:serviceId forName:SDLRPCParameterNameServiceID]; -} - -- (NSString *)serviceId { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameServiceID ofClass:NSString.class error:&error]; -} - -- (void)setWeatherServiceData:(nullable SDLWeatherServiceData *)weatherServiceData { - [self.store sdl_setObject:weatherServiceData forName:SDLRPCParameterNameWeatherServiceData]; -} - -- (nullable SDLWeatherServiceData *)weatherServiceData { - return [self.store sdl_objectForName:SDLRPCParameterNameWeatherServiceData ofClass:SDLWeatherServiceData.class error:nil]; -} - -- (void)setMediaServiceData:(nullable SDLMediaServiceData *)mediaServiceData { - [self.store sdl_setObject:mediaServiceData forName:SDLRPCParameterNameMediaServiceData]; -} - -- (nullable SDLMediaServiceData *)mediaServiceData { - return [self.store sdl_objectForName:SDLRPCParameterNameMediaServiceData ofClass:SDLMediaServiceData.class error:nil]; -} - -- (void)setNavigationServiceData:(nullable SDLNavigationServiceData *)navigationServiceData { - [self.store sdl_setObject:navigationServiceData forName:SDLRPCParameterNameNavigationServiceData]; -} - -- (nullable SDLNavigationServiceData *)navigationServiceData { - return [self.store sdl_objectForName:SDLRPCParameterNameNavigationServiceData ofClass:SDLNavigationServiceData.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.h deleted file mode 100644 index 1548181..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.h +++ /dev/null @@ -1,219 +0,0 @@ -// -// SDLAppServiceManifest.h -// SmartDeviceLink -// -// Created by Nicole on 1/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -#import "SDLAppServiceType.h" - -@class SDLFunctionID; -@class SDLImage; -@class SDLMediaServiceManifest; -@class SDLNavigationServiceManifest; -@class SDLSyncMsgVersion; -@class SDLMsgVersion; -@class SDLWeatherServiceManifest; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * This manifest contains all the information necessary for the service to be published, activated, and allow consumers to interact with it - */ -@interface SDLAppServiceManifest : SDLRPCStruct - -/** - * Convenience init for serviceType. - * - * @param serviceType The type of service that is to be offered by this app - * @return A SDLAppServiceManifest object - */ -- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType NS_DESIGNATED_INITIALIZER; - -/** - * Convenience init for a media service manifest. - * - * @param serviceName Unique name of this service - * @param serviceIcon The file name of the icon to be associated with this service - * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false - * @param rpcSpecVersion This is the max RPC Spec version the app service understands - * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly - * @param mediaServiceManifest A media service manifest - * @return A SDLAppServiceManifest object - */ -- (instancetype)initWithMediaServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest __deprecated_msg(("Use initWithMediaServiceName:serviceIcon:allowAppConsumers:maxRPCSpecVersion:handledRPCs:mediaServiceManifest instead")); - -/** - * Convenience init for a media service manifest. - * - * @param serviceName Unique name of this service - * @param serviceIcon The file name of the icon to be associated with this service - * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false - * @param maxRPCSpecVersion This is the max RPC Spec version the app service understands - * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly - * @param mediaServiceManifest A media service manifest - * @return A SDLAppServiceManifest object - */ -- (instancetype)initWithMediaServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest; - -/** - * Convenience init for a weather service manifest. - * - * @param serviceName Unique name of this service - * @param serviceIcon The file name of the icon to be associated with this service - * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false - * @param rpcSpecVersion This is the max RPC Spec version the app service understands - * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly - * @param weatherServiceManifest A weather service manifest - * @return A SDLAppServiceManifest object - */ -- (instancetype)initWithWeatherServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest __deprecated_msg(("Use initWithWeatherServiceName:serviceIcon:allowAppConsumers::maxRPCSpecVersion:handledRPCs:weatherServiceManifest instead")); - -/** - * Convenience init for a weather service manifest. - * - * @param serviceName Unique name of this service - * @param serviceIcon The file name of the icon to be associated with this service - * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false - * @param maxRPCSpecVersion This is the max RPC Spec version the app service understands - * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly - * @param weatherServiceManifest A weather service manifest - * @return A SDLAppServiceManifest object - */ -- (instancetype)initWithWeatherServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest; - -/** - * Convenience init for a navigation service manifest. - * - * @param serviceName Unique name of this service - * @param serviceIcon The file name of the icon to be associated with this service - * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false - * @param rpcSpecVersion This is the max RPC Spec version the app service understands - * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly - * @param navigationServiceManifest A navigation service manifest - * @return A SDLAppServiceManifest object - */ -- (instancetype)initWithNavigationServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest __deprecated_msg(("Use initWithNavigationServiceName:serviceIcon:allowAppConsumers:macRPCSpecVersion:handledRPCs:navigationServiceManifest instead")); - -/** - * Convenience init for a navigation service manifest. - * - * @param serviceName Unique name of this service - * @param serviceIcon The file name of the icon to be associated with this service - * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false - * @param maxRPCSpecVersion This is the max RPC Spec version the app service understands - * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly - * @param navigationServiceManifest A navigation service manifest - * @return A SDLAppServiceManifest object - */ -- (instancetype)initWithNavigationServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest; - -/** - * Convenience init for all parameters. - * - * @param serviceName Unique name of this service - * @param serviceType The type of service that is to be offered by this app - * @param serviceIcon The file name of the icon to be associated with this service - * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false - * @param rpcSpecVersion This is the max RPC Spec version the app service understands - * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly - * @param mediaServiceManifest A media service manifest - * @param weatherServiceManifest A weather service manifest - * @param navigationServiceManifest A navigation service manifest - * @return A SDLAppServiceManifest object - */ -- (instancetype)initWithServiceName:(nullable NSString *)serviceName serviceType:(SDLAppServiceType)serviceType serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest __deprecated_msg(("Use initWithServiceName:serviceType:serviceIcon:allowAppConsumers:maxRPCSpecVersion:handledRPCs:mediaServiceManifest:weatherServiceManifest:navigationServiceManifest instead")); - -/** - * Convenience init for all parameters. - * - * @param serviceName Unique name of this service - * @param serviceType The type of service that is to be offered by this app - * @param serviceIcon The file name of the icon to be associated with this service - * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false - * @param maxRPCSpecVersion This is the max RPC Spec version the app service understands - * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly - * @param mediaServiceManifest A media service manifest - * @param weatherServiceManifest A weather service manifest - * @param navigationServiceManifest A navigation service manifest - * @return A SDLAppServiceManifest object - */ -- (instancetype)initWithServiceName:(nullable NSString *)serviceName serviceType:(SDLAppServiceType)serviceType serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest; - -/** - * Unique name of this service. - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *serviceName; - -/** - * The type of service that is to be offered by this app. See AppServiceType for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core. - * - * String, See `SDLAppServiceType`, Required - */ -@property (strong, nonatomic) NSString *serviceType; - -/** - * The file name of the icon to be associated with this service. Most likely the same as the appIcon. - * - * String, Optional - */ -@property (nullable, strong, nonatomic) SDLImage *serviceIcon; - -/** - * If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false. - * - * Boolean, Optional, default = NO - */ -@property (nullable, strong, nonatomic) NSNumber *allowAppConsumers; - -/** - * This is the max RPC Spec version the app service understands. This is important during the RPC passthrough functionality. If not included, it is assumed the max version of the module is acceptable. - * - * SyncMsgVersion, Optional - */ -@property (nullable, strong, nonatomic) SDLSyncMsgVersion *rpcSpecVersion __deprecated_msg(("Use maxRPCSpecVersion instead")); - -/** - * This is the max RPC Spec version the app service understands. This is important during the RPC passthrough functionality. If not included, it is assumed the max version of the module is acceptable. - * - * SDLMsgVersion, Optional - */ -@property (nullable, strong, nonatomic) SDLMsgVersion *maxRPCSpecVersion; - -/** - * This field contains the Function IDs for the RPCs that this service intends to handle correctly. This means the service will provide meaningful responses. See FunctionID for enum equivalent values. This parameter is an integer to allow for new function IDs to be used by apps on older versions of SDL Core. - * - * Array of Integers, See `SDLFunctionID`, Optional - */ -@property (nullable, strong, nonatomic) NSArray *handledRPCs; - -/** - * A media service manifest. - * - * SDLMediaServiceManifest, Optional - */ -@property (nullable, strong, nonatomic) SDLMediaServiceManifest *mediaServiceManifest; - -/** - * A weather service manifest. - * - * SDLWeatherServiceManifest, Optional - */ -@property (nullable, strong, nonatomic) SDLWeatherServiceManifest *weatherServiceManifest; - -/** - * A navigation service manifest. - * - * SDLNavigationServiceManifest, Optional - */ -@property (nullable, strong, nonatomic) SDLNavigationServiceManifest *navigationServiceManifest; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.m deleted file mode 100644 index fe58491..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceManifest.m +++ /dev/null @@ -1,205 +0,0 @@ -// -// SDLAppServiceManifest.m -// SmartDeviceLink -// -// Created by Nicole on 1/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLAppServiceManifest.h" -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -#import "SDLFunctionID.h" -#import "SDLImage.h" -#import "SDLMediaServiceManifest.h" -#import "SDLNavigationServiceManifest.h" -#import "SDLSyncMsgVersion.h" -#import "SDLMsgVersion.h" -#import "SDLWeatherServiceManifest.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAppServiceManifest - -- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType { - self = [super init]; - if (!self) { - return self; - } - - self.serviceType = serviceType; - - return self; -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)initWithMediaServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest { - return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeMedia serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers rpcSpecVersion:rpcSpecVersion handledRPCs:handledRPCs mediaServiceManifest:mediaServiceManifest weatherServiceManifest:nil navigationServiceManifest:nil]; -} -#pragma clang diagnostic pop - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)initWithWeatherServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest { - return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeWeather serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers rpcSpecVersion:rpcSpecVersion handledRPCs:handledRPCs mediaServiceManifest:nil weatherServiceManifest:weatherServiceManifest navigationServiceManifest:nil]; -} -#pragma clang diagnostic pop - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)initWithNavigationServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { - return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeNavigation serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers rpcSpecVersion:rpcSpecVersion handledRPCs:handledRPCs mediaServiceManifest:nil weatherServiceManifest:nil navigationServiceManifest:navigationServiceManifest]; -} -#pragma clang diagnostic pop - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)initWithServiceName:(nullable NSString *)serviceName serviceType:(SDLAppServiceType)serviceType serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { - self = [self initWithAppServiceType:serviceType]; - if (!self) { - return self; - } - - self.serviceName = serviceName; - self.serviceIcon = serviceIcon; - self.allowAppConsumers = @(allowAppConsumers); - self.rpcSpecVersion = rpcSpecVersion; - self.handledRPCs = handledRPCs; - self.mediaServiceManifest = mediaServiceManifest; - self.weatherServiceManifest = weatherServiceManifest; - self.navigationServiceManifest = navigationServiceManifest; - - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithMediaServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest { - return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeMedia serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers maxRPCSpecVersion:maxRPCSpecVersion handledRPCs:handledRPCs mediaServiceManifest:mediaServiceManifest weatherServiceManifest:nil navigationServiceManifest:nil]; -} - -- (instancetype)initWithWeatherServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest { - return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeWeather serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers maxRPCSpecVersion:maxRPCSpecVersion handledRPCs:handledRPCs mediaServiceManifest:nil weatherServiceManifest:weatherServiceManifest navigationServiceManifest:nil]; -} - -- (instancetype)initWithNavigationServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { - return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeNavigation serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers maxRPCSpecVersion:maxRPCSpecVersion handledRPCs:handledRPCs mediaServiceManifest:nil weatherServiceManifest:nil navigationServiceManifest:navigationServiceManifest]; -} - -- (instancetype)initWithServiceName:(nullable NSString *)serviceName serviceType:(SDLAppServiceType)serviceType serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers maxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion handledRPCs:(nullable NSArray *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { - self = [self initWithAppServiceType:serviceType]; - if (!self) { - return self; - } - - self.serviceName = serviceName; - self.serviceIcon = serviceIcon; - self.allowAppConsumers = @(allowAppConsumers); - self.maxRPCSpecVersion = maxRPCSpecVersion; - self.handledRPCs = handledRPCs; - self.mediaServiceManifest = mediaServiceManifest; - self.weatherServiceManifest = weatherServiceManifest; - self.navigationServiceManifest = navigationServiceManifest; - - return self; -} - -- (void)setServiceName:(nullable NSString *)serviceName { - [self.store sdl_setObject:serviceName forName:SDLRPCParameterNameServiceName]; -} - -- (nullable NSString *)serviceName { - return [self.store sdl_objectForName:SDLRPCParameterNameServiceName ofClass:NSString.class error:nil]; -} - -- (void)setServiceType:(NSString *)serviceType { - [self.store sdl_setObject:serviceType forName:SDLRPCParameterNameServiceType]; -} - -- (NSString *)serviceType { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameServiceType ofClass:NSString.class error:&error]; -} - -- (void)setServiceIcon:(nullable SDLImage *)serviceIcon { - [self.store sdl_setObject:serviceIcon forName:SDLRPCParameterNameServiceIcon]; -} - -- (nullable SDLImage *)serviceIcon { - return [self.store sdl_objectForName:SDLRPCParameterNameServiceIcon ofClass:SDLImage.class error:nil]; -} - -- (void)setAllowAppConsumers:(nullable NSNumber *)allowAppConsumers { - [self.store sdl_setObject:allowAppConsumers forName:SDLRPCParameterNameAllowAppConsumers]; -} - -- (nullable NSNumber *)allowAppConsumers { - return [self.store sdl_objectForName:SDLRPCParameterNameAllowAppConsumers ofClass:NSNumber.class error:nil]; -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (void)setRpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion { - if (rpcSpecVersion == nil) { - [self.store sdl_setObject:nil forName:SDLRPCParameterNameRPCSpecVersion]; - return; - } - SDLMsgVersion *maxRPCSpecVersion = [[SDLMsgVersion alloc] initWithMajorVersion:(uint8_t)rpcSpecVersion.majorVersion.unsignedIntValue minorVersion:(uint8_t)rpcSpecVersion.minorVersion.unsignedIntValue patchVersion:(uint8_t)rpcSpecVersion.patchVersion.unsignedIntValue]; - [self.store sdl_setObject:maxRPCSpecVersion forName:SDLRPCParameterNameRPCSpecVersion]; -} - -- (nullable SDLSyncMsgVersion *)rpcSpecVersion { - SDLMsgVersion *maxRPCSpecVersion = [self.store sdl_objectForName:SDLRPCParameterNameRPCSpecVersion ofClass:SDLMsgVersion.class error:nil]; - - if(maxRPCSpecVersion == nil) { - return [self.store sdl_objectForName:SDLRPCParameterNameRPCSpecVersion ofClass:SDLSyncMsgVersion.class error:nil]; - } - - return [[SDLSyncMsgVersion alloc] initWithMajorVersion:(uint8_t)maxRPCSpecVersion.majorVersion.unsignedIntValue minorVersion:(uint8_t)maxRPCSpecVersion.minorVersion.unsignedIntValue patchVersion:(uint8_t)maxRPCSpecVersion.patchVersion.unsignedIntValue]; -} -#pragma clang diagnostic pop - -- (void)setMaxRPCSpecVersion:(nullable SDLMsgVersion *)maxRPCSpecVersion { - [self.store sdl_setObject:maxRPCSpecVersion forName:SDLRPCParameterNameRPCSpecVersion]; -} - -- (nullable SDLMsgVersion *)maxRPCSpecVersion { - return [self.store sdl_objectForName:SDLRPCParameterNameRPCSpecVersion ofClass:SDLMsgVersion.class error:nil]; -} - -- (void)setHandledRPCs:(nullable NSArray *)handledRPCs { - [self.store sdl_setObject:handledRPCs forName:SDLRPCParameterNameHandledRPCs]; -} - -- (nullable NSArray *)handledRPCs { - return [self.store sdl_objectsForName:SDLRPCParameterNameHandledRPCs ofClass:NSNumber.class error:nil]; -} - -- (void)setWeatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest { - [self.store sdl_setObject:weatherServiceManifest forName:SDLRPCParameterNameWeatherServiceManifest]; -} - -- (nullable SDLWeatherServiceManifest *)weatherServiceManifest { - return [self.store sdl_objectForName:SDLRPCParameterNameWeatherServiceManifest ofClass:SDLWeatherServiceManifest.class error:nil]; -} - -- (void)setMediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest { - [self.store sdl_setObject:mediaServiceManifest forName:SDLRPCParameterNameMediaServiceManifest]; -} - -- (nullable SDLMediaServiceManifest *)mediaServiceManifest { - return [self.store sdl_objectForName:SDLRPCParameterNameMediaServiceManifest ofClass:SDLMediaServiceManifest.class error:nil]; -} - -- (void)setNavigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { - [self.store sdl_setObject:navigationServiceManifest forName:SDLRPCParameterNameNavigationServiceManifest]; -} - -- (nullable SDLNavigationServiceManifest *)navigationServiceManifest { - return [self.store sdl_objectForName:SDLRPCParameterNameNavigationServiceManifest ofClass:SDLNavigationServiceManifest.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.h deleted file mode 100644 index fd5a3bf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.h +++ /dev/null @@ -1,64 +0,0 @@ -// -// SDLAppServiceRecord.h -// SmartDeviceLink -// -// Created by Nicole on 1/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -@class SDLAppServiceManifest; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * This is the record of an app service publisher that the module has. It should contain the most up to date information including the service's active state. - * - * @since RPC 5.1 - */ -@interface SDLAppServiceRecord : SDLRPCStruct - -/** - * Convenience init for all parameters. - * - * @param serviceID A unique ID tied to this specific service record - * @param serviceManifest Manifest for the service that this record is for - * @param servicePublished If true, the service is published and available. If false, the service has likely just been unpublished, and should be considered unavailable - * @param serviceActive If true, the service is the active primary service of the supplied service type. - * @return A SDLAppServiceRecord object - */ -- (instancetype)initWithServiceID:(NSString *)serviceID serviceManifest:(SDLAppServiceManifest *)serviceManifest servicePublished:(BOOL)servicePublished serviceActive:(BOOL)serviceActive; - -/** - * A unique ID tied to this specific service record. The ID is supplied by the module that services publish themselves. - * - * String, Required - */ -@property (strong, nonatomic) NSString *serviceID; - -/** - * Manifest for the service that this record is for. - * - * SDLAppServiceManifest, Required - */ -@property (strong, nonatomic) SDLAppServiceManifest *serviceManifest; - -/** - * If true, the service is published and available. If false, the service has likely just been unpublished, and should be considered unavailable. - * - * Boolean, Required - */ -@property (strong, nonatomic) NSNumber *servicePublished; - -/** - * If true, the service is the active primary service of the supplied service type. It will receive all potential RPCs that are passed through to that service type. If false, it is not the primary service of the supplied type. See servicePublished for its availability. - * - * Boolean, Required - */ -@property (strong, nonatomic) NSNumber *serviceActive; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.m deleted file mode 100644 index 72711d0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceRecord.m +++ /dev/null @@ -1,71 +0,0 @@ -// -// SDLAppServiceRecord.m -// SmartDeviceLink -// -// Created by Nicole on 1/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLAppServiceRecord.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLAppServiceManifest.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAppServiceRecord - -- (instancetype)initWithServiceID:(NSString *)serviceID serviceManifest:(SDLAppServiceManifest *)serviceManifest servicePublished:(BOOL)servicePublished serviceActive:(BOOL)serviceActive { - self = [self init]; - if (!self) { - return self; - } - - self.serviceID = serviceID; - self.serviceManifest = serviceManifest; - self.servicePublished = @(servicePublished); - self.serviceActive = @(serviceActive); - - return self; -} - -- (void)setServiceID:(NSString *)serviceID { - [self.store sdl_setObject:serviceID forName:SDLRPCParameterNameServiceID]; -} - -- (NSString *)serviceID { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameServiceID ofClass:NSString.class error:&error]; -} - -- (void)setServiceManifest:(SDLAppServiceManifest *)serviceManifest { - [self.store sdl_setObject:serviceManifest forName:SDLRPCParameterNameServiceManifest]; -} - -- (SDLAppServiceManifest *)serviceManifest { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameServiceManifest ofClass:SDLAppServiceManifest.class error:&error]; -} - -- (void)setServicePublished:(NSNumber *)servicePublished { - [self.store sdl_setObject:servicePublished forName:SDLRPCParameterNameServicePublished]; -} - -- (NSNumber *)servicePublished { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameServicePublished ofClass:NSNumber.class error:&error]; -} - -- (void)setServiceActive:(NSNumber *)serviceActive { - [self.store sdl_setObject:serviceActive forName:SDLRPCParameterNameServiceActive]; -} - -- (NSNumber *)serviceActive { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameServiceActive ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.h deleted file mode 100644 index 920f510..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLAppServiceType.h -// SmartDeviceLink -// -// Created by Nicole on 1/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * Enumeration listing possible app service types. - */ -typedef SDLEnum SDLAppServiceType SDL_SWIFT_ENUM; - -/** - * The app will have a service type of media. - */ -extern SDLAppServiceType const SDLAppServiceTypeMedia; - -/** - * The app will have a service type of weather. - */ -extern SDLAppServiceType const SDLAppServiceTypeWeather; - -/** - * The app will have a service type of navigation. - */ -extern SDLAppServiceType const SDLAppServiceTypeNavigation; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.m deleted file mode 100644 index 7309903..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServiceType.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// SDLAppServiceType.m -// SmartDeviceLink -// -// Created by Nicole on 1/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLAppServiceType.h" - -SDLAppServiceType const SDLAppServiceTypeMedia = @"MEDIA"; -SDLAppServiceType const SDLAppServiceTypeWeather = @"WEATHER"; -SDLAppServiceType const SDLAppServiceTypeNavigation = @"NAVIGATION"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.h deleted file mode 100644 index feb843c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// SDLAppServicesCapabilities.h -// SmartDeviceLink -// -// Created by Nicole on 1/30/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -@class SDLAppServiceCapability; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Capabilities of app services including what service types are supported and the current state of services. - * - * @since RPC 5.1 - */ -@interface SDLAppServicesCapabilities : SDLRPCStruct - -/** - * Convenience init. - * - * @param appServices An array of currently available services. - * @return A SDLAppServicesCapabilities object - */ -- (instancetype)initWithAppServices:(nullable NSArray *)appServices; - -/** - * An array of currently available services. If this is an update to the capability the affected services will include an update reason in that item. - * - * Array of SDLAppServiceCapability, Optional - */ -@property (nullable, strong, nonatomic) NSArray *appServices; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.m deleted file mode 100644 index a31b5d4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAppServicesCapabilities.m +++ /dev/null @@ -1,40 +0,0 @@ -// -// SDLAppServicesCapabilities.m -// SmartDeviceLink -// -// Created by Nicole on 1/30/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLAppServicesCapabilities.h" - -#import "SDLAppServiceCapability.h" -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAppServicesCapabilities - -- (instancetype)initWithAppServices:(nullable NSArray *)appServices { - self = [self init]; - if (!self) { - return self; - } - - self.appServices = appServices; - - return self; -} - -- (void)setAppServices:(nullable NSArray *)appServices { - [self.store sdl_setObject:appServices forName:SDLRPCParameterNameAppServices]; -} - -- (nullable NSArray *)appServices { - return [self.store sdl_objectsForName:SDLRPCParameterNameAppServices ofClass:SDLAppServiceCapability.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.h deleted file mode 100644 index 0e8bd61..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.h +++ /dev/null @@ -1,154 +0,0 @@ -// -// SDLArtwork.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/15/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLFile.h" -#import "SDLStaticIconName.h" - -@class SDLImage; - -/// Image format of an artwork file -typedef NS_ENUM(NSUInteger, SDLArtworkImageFormat) { - - /// Image format: PNG - SDLArtworkImageFormatPNG, - - /// Image format: JPG - SDLArtworkImageFormatJPG -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - An SDLFile subclass specifically designed for images - */ -@interface SDLArtwork : SDLFile - -/** - * Describes whether or not the image is a template that can be (re)colored by the SDL HMI. To make the artwork a template, set the `UIImage`s rendering mode to `UIImageRenderingModeAlwaysTemplate`. In order for templates to work successfully, the icon must be one solid color with a clear background. The artwork should be created using the PNG image format. - * - * @discussion An image should be templated if it is intended to be used as an icon in a button or menu. - */ -@property (assign, nonatomic, readonly) BOOL isTemplate; - -/** - The Image RPC representing this artwork. Generally for use internally, you should instead pass an artwork to a Screen Manager method. - */ -@property (strong, nonatomic, readonly) SDLImage *imageRPC; - -/** - * Convenience helper to create an ephemeral artwork from an image. - * - * This is an ephemeral file, it will not be persisted through sessions / ignition cycles. Any files that you do not *know* you will use in future sessions should be created through this method. For example, album / artist artwork should be ephemeral. - * - * Persistent files should be created using `persistentArtworkWithImage:name:asImageFormat:` - * - * @warning It is strongly recommended to pass the file url using an SDLFile initializer instead of the image. If you pass the UIImage, it is loaded into memory, and will be dumped to a temporary file. This will create a duplicate file. *Only pass a UIImage if the image is not stored on disk*. - * - * @param image The UIImage to be sent to the remote head unit - * @param name The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations. - * @param imageFormat Whether the image should be converted to a PNG or JPG before transmission. Images with transparency or few colors should be PNGs. Images with many colors should be JPGs. - * - * @return An instance of this class to be passed to the file manager. - */ -+ (instancetype)artworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to false"); - -/** - * Convenience helper to create an ephemeral artwork from an image. A unique name will be assigned to the image. This name is a string representation of the image's data which is created by hashing the data using the MD5 algorithm. - * - * This is an ephemeral file, it will not be persisted through sessions / ignition cycles. Any files that you do not *know* you will use in future sessions should be created through this method. For example, album / artist artwork should be ephemeral. - * - * Persistent files should be created using `persistentArtworkWithImage:name:asImageFormat:` - * - * @warning It is strongly recommended to pass the file url using an SDLFile initializer instead of the image. If you pass the UIImage, it is loaded into memory, and will be dumped to a temporary file. This will create a duplicate file. *Only pass a UIImage if the image is not stored on disk*. - * - * @param image The UIImage to be sent to the remote head unit - * @param imageFormat Whether the image should be converted to a PNG or JPG before transmission. Images with transparency or few colors should be PNGs. Images with many colors should be JPGs. - * - * @return An instance of this class to be passed to the file manager. - */ -+ (instancetype)artworkWithImage:(UIImage *)image asImageFormat:(SDLArtworkImageFormat)imageFormat NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to false"); - -/** - Create an SDLArtwork that represents a static icon. This can only be passed to the screen manager; passing this directly to the file manager will fail. - - @param staticIcon The static icon to be shown on the remote system. - - @return An instance of this class to be passed to a screen manager. - */ -+ (instancetype)artworkWithStaticIcon:(SDLStaticIconName)staticIcon NS_SWIFT_UNAVAILABLE("Use the standard initializer"); - -/** - * Convenience helper to create a persistent artwork from an image. - * - * This is a persistent file, it will be persisted through sessions / ignition cycles. You will only have a limited space for all files, so be sure to only persist files that are required for all or most sessions. For example, menu artwork should be persistent. - * - * Ephemeral files should be created using `ephemeralArtworkWithImage:name:asImageFormat:` - * - * @warning It is strongly recommended to pass the file url using an SDLFile initializer instead of the image. If you pass the UIImage, it is loaded into memory, and will be dumped to a temporary file. This will create a duplicate file. *Only pass a UIImage if the image is not stored on disk*. - * - * @param image The UIImage to be sent to the remote head unit - * @param name The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations. - * @param imageFormat Whether the image should be converted to a PNG or JPG before transmission. Images with transparency or few colors should be PNGs. Images with many colors should be JPGs. - * - * @return An instance of this class to be passed to the file manager. - */ -+ (instancetype)persistentArtworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to true"); - -/** - * Convenience helper to create a persistent artwork from an image. A unique name will be assigned to the image. This name is a string representation of the image's data which is created by hashing the data using the MD5 algorithm. - * - * This is a persistent file, it will be persisted through sessions / ignition cycles. You will only have a limited space for all files, so be sure to only persist files that are required for all or most sessions. For example, menu artwork should be persistent. - * - * Ephemeral files should be created using `ephemeralArtworkWithImage:name:asImageFormat:` - * - * @warning It is strongly recommended to pass the file url using an SDLFile initializer instead of the image. If you pass the UIImage, it is loaded into memory, and will be dumped to a temporary file. This will create a duplicate file. *Only pass a UIImage if the image is not stored on disk*. - * - * @param image The UIImage to be sent to the remote head unit - * @param imageFormat Whether the image should be converted to a PNG or JPG before transmission. Images with transparency or few colors should be PNGs. Images with many colors should be JPGs. - * - * @return An instance of this class to be passed to the file manager. - */ -+ (instancetype)persistentArtworkWithImage:(UIImage *)image asImageFormat:(SDLArtworkImageFormat)imageFormat NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to true"); - -/** - * Create a file for transmission to the remote system from a UIImage. - * - * @param image The UIImage to be sent to the remote head unit - * @param name The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations. - * @param persistent Whether or not the artwork should be persistent. - * @param imageFormat Whether the image should be converted to a PNG or JPG before transmission. Images with transparency or few colors should be PNGs. Images with many colors should be JPGs. - * - * @return An instance of this class to be passed to the file manager. - */ -- (instancetype)initWithImage:(UIImage *)image name:(NSString *)name persistent:(BOOL)persistent asImageFormat:(SDLArtworkImageFormat)imageFormat; - -/** - * Create a file for transmission to the remote system from a UIImage. A unique name will be assigned to the image. This name is a string representation of the image's data which is created by hashing the data using the MD5 algorithm. - - * @param image The UIImage to be sent to the remote head unit - * @param persistent Whether or not the artwork should be persistent. - * @param imageFormat Whether the image should be converted to a PNG or JPG before transmission. Images with transparency or few colors should be PNGs. Images with many colors should be JPGs. - * - * @return An instance of this class to be passed to the file manager. - */ -- (instancetype)initWithImage:(UIImage *)image persistent:(BOOL)persistent asImageFormat:(SDLArtworkImageFormat)imageFormat; - -/** - Create an SDLArtwork that represents a static icon. This can only be passed to the screen manager; passing this directly to the file manager will fail. - - @param staticIcon The static icon to be shown on the remote system. - - @return An instance of this class to be passed to a screen manager. - */ -- (instancetype)initWithStaticIcon:(SDLStaticIconName)staticIcon; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.m deleted file mode 100644 index adb3391..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLArtwork.m +++ /dev/null @@ -1,186 +0,0 @@ -// -// SDLArtwork.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/15/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLArtwork.h" -#import "SDLFileType.h" -#import "SDLImage.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLFile () - -@property (assign, nonatomic, readwrite) BOOL isStaticIcon; - -@end - -@interface SDLArtwork () - -@property (strong, nonatomic) UIImage *image; -@property (assign, nonatomic, readwrite) BOOL isTemplate; - -@end - - -@implementation SDLArtwork - -#pragma mark - Lifecycle - -+ (instancetype)artworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat { - return [[self alloc] initWithImage:image name:name persistent:NO asImageFormat:imageFormat]; -} - -+ (instancetype)artworkWithImage:(UIImage *)image asImageFormat:(SDLArtworkImageFormat)imageFormat { - return [[self alloc] initWithImage:image persistent:NO asImageFormat:imageFormat]; -} - -+ (instancetype)artworkWithStaticIcon:(SDLStaticIconName)staticIcon { - return [[self alloc] initWithStaticIcon:staticIcon]; -} - -+ (instancetype)persistentArtworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat { - return [[self alloc] initWithImage:image name:name persistent:YES asImageFormat:imageFormat]; -} - -+ (instancetype)persistentArtworkWithImage:(UIImage *)image asImageFormat:(SDLArtworkImageFormat)imageFormat { - return [[self alloc] initWithImage:image persistent:YES asImageFormat:imageFormat]; -} - - -#pragma mark Private Lifecycle - -- (instancetype)initWithImage:(UIImage *)image name:(NSString *)name persistent:(BOOL)persistent asImageFormat:(SDLArtworkImageFormat)imageFormat { - self.image = image; - return [super initWithData:[self.class sdl_dataForUIImage:image imageFormat:imageFormat] name:name fileExtension:[self.class sdl_fileExtensionForImageFormat:imageFormat] persistent:persistent]; -} - -- (instancetype)initWithImage:(UIImage *)image persistent:(BOOL)persistent asImageFormat:(SDLArtworkImageFormat)imageFormat { - self.image = image; - NSData *imageData = [self.class sdl_dataForUIImage:image imageFormat:imageFormat]; - NSString *imageName = [self.class sdl_md5HashFromNSData:imageData]; - return [super initWithData:[self.class sdl_dataForUIImage:image imageFormat:imageFormat] name:(imageName != nil ? imageName : @"") fileExtension:[self.class sdl_fileExtensionForImageFormat:imageFormat] persistent:persistent]; -} - -- (instancetype)initWithStaticIcon:(SDLStaticIconName)staticIcon { - self = [super initWithData:[staticIcon dataUsingEncoding:NSASCIIStringEncoding] name:staticIcon fileExtension:@"" persistent:NO]; - self.isStaticIcon = true; - - return self; -} - -#pragma mark - Setters and Getters - -- (void)setImage:(UIImage *)image { - _image = image; - _isTemplate = (image.renderingMode == UIImageRenderingModeAlwaysTemplate); -} - -- (SDLImage *)imageRPC { - if (self.isStaticIcon) { - return [[SDLImage alloc] initWithStaticIconName:self.name]; - } else { - return [[SDLImage alloc] initWithName:self.name isTemplate:self.isTemplate]; - } -} - -#pragma mark - Helper Methods - -/** - * Returns the JPG or PNG image data for a UIImage. - * - * @param image A UIImage - * @param imageFormat The image format to use when converting the UIImage to NSData - * @return The image data - */ -+ (NSData *)sdl_dataForUIImage:(UIImage *)image imageFormat:(SDLArtworkImageFormat)imageFormat { - NSData *imageData = nil; - switch (imageFormat) { - case SDLArtworkImageFormatPNG: { - imageData = UIImagePNGRepresentation(image); - } break; - case SDLArtworkImageFormatJPG: { - imageData = UIImageJPEGRepresentation(image, 0.85); - } break; - } - return imageData; -} - -/** - * Returns the file extension for the image format. - * - * @param imageFormat Whether the image is a PNG or JPG - * @return The file extension for the image format - */ -+ (NSString *)sdl_fileExtensionForImageFormat:(SDLArtworkImageFormat)imageFormat { - NSString *fileExtension = nil; - switch (imageFormat) { - case SDLArtworkImageFormatPNG: { - fileExtension = @"png"; - } break; - case SDLArtworkImageFormatJPG: { - fileExtension = @"jpg"; - } break; - } - return fileExtension; -} - -/** - * Creates a string representation of NSData by hashing the data using the MD5 hash function. This string is not guaranteed to be unique as collisions can occur, however collisions are extremely rare. - * - * HAX: A MD5 hash always creates a string with 32 characters (128-bits). Due to some implementations of Core not following the spec, file names that are too long are being rejected. To try to accommodate this setup, hashed file names are being truncated to 16 characters. - * - * Sourced from https://stackoverflow.com/questions/2018550/how-do-i-create-an-md5-hash-of-a-string-in-cocoa - * - * @param data The data to hash - * @return A MD5 hash of the data - */ -+ (NSString *)sdl_md5HashFromNSData:(NSData *)data { - if (data == nil) { return nil; } - - unsigned char hash[CC_MD5_DIGEST_LENGTH]; - CC_MD5([data bytes], (CC_LONG)[data length], hash); - NSMutableString *formattedHash = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH]; - // HAX: To shorten the string to 16 characters, the loop has been shortened to 8 fom 16. - for (int i = 0; i < CC_MD5_DIGEST_LENGTH / 2; i += 1) { - [formattedHash appendFormat:@"%02x", hash[i]]; - } - return formattedHash; -} - -#pragma mark - NSObject overrides - -- (NSUInteger)hash { - return self.name.hash ^ self.data.hash; -} - -- (BOOL)isEqual:(id)object { - if (self == object) { return YES; } - - if (![object isKindOfClass:[SDLArtwork class]]) { return NO; } - - return [self isEqualToArtwork:(SDLArtwork *)object]; -} - -- (BOOL)isEqualToArtwork:(SDLArtwork *)artwork { - if (!artwork) { return NO; } - - BOOL haveEqualNames = [self.name isEqualToString:artwork.name]; - BOOL haveEqualData = [self.data isEqualToData:artwork.data]; - BOOL haveEqualFormats = [self.fileType isEqualToEnum:artwork.fileType]; - - return haveEqualNames && haveEqualData && haveEqualFormats; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"SDLArtwork name: %@, image: %@, isTemplate: %@, isStaticIcon: %@", self.name, self.image, (self.isTemplate ? @"YES" : @"NO"), (self.isStaticIcon ? @"YES" : @"NO")]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.h deleted file mode 100644 index b7e0e06..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// SDLAsychronousOperation.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/25/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -@interface SDLAsynchronousOperation : NSOperation - -@property (copy, nonatomic, readonly, nullable) NSError *error; - -- (void)start; -- (void)finishOperation; - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.m deleted file mode 100644 index d2e1238..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousOperation.m +++ /dev/null @@ -1,60 +0,0 @@ -// -// SDLAsychronousOperation.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/25/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLAsynchronousOperation.h" - -#import "SDLLogMacros.h" - -@implementation SDLAsynchronousOperation { - BOOL executing; - BOOL finished; -} - -- (void)start { - SDLLogV(@"Starting operation: %@", self); - - if (self.isCancelled) { - [self willChangeValueForKey:@"isFinished"]; - finished = YES; - [self didChangeValueForKey:@"isFinished"]; - SDLLogV(@"Operation was cancelled: %@", self); - - return; - } - - [self willChangeValueForKey:@"isExecuting"]; - executing = YES; - [self didChangeValueForKey:@"isExecuting"]; -} - -- (void)finishOperation { - SDLLogV(@"Finishing Operation: %@", self); - [self willChangeValueForKey:@"isExecuting"]; - executing = NO; - [self didChangeValueForKey:@"isExecuting"]; - - [self willChangeValueForKey:@"isFinished"]; - finished = YES; - [self didChangeValueForKey:@"isFinished"]; -} - -#pragma mark - Property Overrides - -- (BOOL)isAsynchronous { - return YES; -} - -- (BOOL)isExecuting { - return executing; -} - -- (BOOL)isFinished { - return finished; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.h deleted file mode 100644 index 8bb27de..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// SDLAsynchronousRPCOperation.h -// SmartDeviceLink -// -// Created by Nicole on 2/20/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAsynchronousOperation.h" -#import "SDLLifecycleManager.h" - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Sends an RPC of type `Response` or `Notification`. Since these RPCs do not get a response from Core, the operation is considered finished as soon as the RPC is sent. RPCs of type `Request` can not be sent using this operation as `Request`s must get a response from Core before the operation is considered finished. To send `Requests` use the `SDLAsynchronousRPCRequestOperation` or the `SDLSequentialRPCRequestOperation` - */ -@interface SDLAsynchronousRPCOperation : SDLAsynchronousOperation - -/** - * An RPC of type `SDLRPCResponse` or `SDLRPCNotification`. - */ -@property (copy, nonatomic) __kindof SDLRPCMessage *rpc; - -/** - * Convenience init. - * - * @param connectionManager The connection manager used to send the RPC - * @param rpc An RPC of type `SDLRPCResponse` or `SDLRPCNotification` to be sent by the connection manager. - * @return A SDLAsynchronousRPCOperation object - */ -- (instancetype)initWithConnectionManager:(id)connectionManager rpc:(__kindof SDLRPCMessage *)rpc; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.m deleted file mode 100644 index ad169c8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCOperation.m +++ /dev/null @@ -1,84 +0,0 @@ -// -// SDLAsynchronousRPCOperation.m -// SmartDeviceLink -// -// Created by Nicole on 2/20/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLAsynchronousRPCOperation.h" - -#import "SDLConnectionManagerType.h" -#import "SDLError.h" -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAsynchronousRPCOperation () - -@property (weak, nonatomic) id connectionManager; -@property (strong, nonatomic) NSUUID *operationId; - -@end - -@implementation SDLAsynchronousRPCOperation - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - _operationId = [NSUUID UUID]; - - return self; -} - -- (instancetype)initWithConnectionManager:(id)connectionManager rpc:(__kindof SDLRPCMessage *)rpc { - self = [self init]; - - _rpc = rpc; - _connectionManager = connectionManager; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - [self sdl_sendRPC:self.rpc]; -} - -- (void)sdl_sendRPC:(__kindof SDLRPCMessage *)rpc { - if (self.isCancelled) { - [self sdl_abortOperation]; - return; - } - - [self.connectionManager sendConnectionRPC:rpc]; - [self finishOperation]; -} - -- (void)sdl_abortOperation { - [self finishOperation]; -} - -#pragma mark - Property Overrides -- (nullable NSString *)name { - return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityNormal; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"%@", self.name]; -} - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"%@, request type=%@", self.name, self.rpc.class]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h deleted file mode 100644 index 908d0d3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// SDLRPCRequestOperation.h -// SmartDeviceLink -// -// Created by Joel Fischer on 1/30/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAsynchronousOperation.h" -#import "SDLLifecycleManager.h" - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Sends an array RPCs of type `Request` asynchronously. Requests must get a response from Core before the operation is considered finished. - */ -@interface SDLAsynchronousRPCRequestOperation : SDLAsynchronousOperation - -/** - * An array of RPCs of type `Request`. - */ -@property (strong, nonatomic) NSArray *requests; - -/** - * Convenience init for sending an array of requests asynchronously. - * - * @param connectionManager The connection manager used to send the RPCs - * @param requests The requests to be sent to Core - * @param progressHandler Called as each request gets a response from Core - * @param completionHandler Called when all requests have a response from Core - * @return A SDLAsynchronousRPCRequestOperation object - */ -- (instancetype)initWithConnectionManager:(id)connectionManager requests:(NSArray *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; - -/** - * Convenience init for sending one request asynchronously. - * - * @param connectionManager The connection manager used to send the RPCs - * @param request The request to be sent to Core - * @param responseHandler Called when the request has a response from Core - * @return A SDLAsynchronousRPCRequestOperation object - */ -- (instancetype)initWithConnectionManager:(id)connectionManager request:(SDLRPCRequest *)request responseHandler:(nullable SDLResponseHandler)responseHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m deleted file mode 100644 index 92b157e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.m +++ /dev/null @@ -1,177 +0,0 @@ -// -// SDLRPCRequestOperation.m -// SmartDeviceLink -// -// Created by Joel Fischer on 1/30/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLAsynchronousRPCRequestOperation.h" - -#import "SDLConnectionManagerType.h" -#import "SDLError.h" -#import "SDLGlobals.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAsynchronousRPCRequestOperation () - -@property (weak, nonatomic) id connectionManager; -@property (copy, nonatomic, nullable) SDLMultipleAsyncRequestProgressHandler progressHandler; -@property (copy, nonatomic, nullable) SDLMultipleRequestCompletionHandler completionHandler; -@property (copy, nonatomic, nullable) SDLResponseHandler responseHandler; - -@property (strong, nonatomic) NSUUID *operationId; -@property (assign, nonatomic) NSUInteger requestsComplete; -@property (assign, nonatomic) NSUInteger requestsStarted; -@property (assign, nonatomic, readonly) float percentComplete; -@property (assign, nonatomic) BOOL requestFailed; - -@end - -@implementation SDLAsynchronousRPCRequestOperation { - BOOL executing; - BOOL finished; -} - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - executing = NO; - finished = NO; - - _operationId = [NSUUID UUID]; - _requestsComplete = 0; - _requestsStarted = 0; - _requestFailed = NO; - - return self; -} - -- (instancetype)initWithConnectionManager:(id)connectionManager requests:(NSArray *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler { - self = [self init]; - - _connectionManager = connectionManager; - _requests = requests; - _progressHandler = progressHandler; - _completionHandler = completionHandler; - - return self; -} - -- (instancetype)initWithConnectionManager:(id)connectionManager request:(SDLRPCRequest *)request responseHandler:(nullable SDLResponseHandler)responseHandler { - self = [self init]; - - _connectionManager = connectionManager; - _requests = @[request]; - _responseHandler = responseHandler; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - [self sdl_sendRequests]; -} - -- (void)sdl_sendRequests { - for (SDLRPCRequest *request in self.requests) { - if (self.isCancelled) { - [self sdl_abortOperationWithRequest:request]; - return; - } - - [self sdl_sendRequest:request]; - self.requestsStarted++; - } -} - -- (void)sdl_sendRequest:(SDLRPCRequest *)request { - __weak typeof(self) weakSelf = self; - [self.connectionManager sendConnectionRequest:request withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (weakSelf == nil) { return; } - - if (weakSelf.isCancelled) { - [weakSelf sdl_abortOperationWithRequest:request]; - BLOCK_RETURN; - } - - weakSelf.requestsComplete++; - - // If this request failed set our internal request failed to YES - if (error != nil) { - weakSelf.requestFailed = YES; - } - - if (weakSelf.progressHandler != NULL) { - float percentComplete = weakSelf.percentComplete; - weakSelf.progressHandler(request, response, error, percentComplete); - } else if (weakSelf.responseHandler != NULL) { - weakSelf.responseHandler(request, response, error); - } - - // If we've received responses for all requests, call the completion handler. - if (weakSelf.requestsComplete >= weakSelf.requests.count) { - [weakSelf finishOperation]; - } - }]; -} - -- (void)sdl_abortOperationWithRequest:(SDLRPCRequest *)request { - self.requestFailed = YES; - - for (NSUInteger i = self.requestsComplete; i < self.requests.count; i++) { - if (self.progressHandler != NULL) { - self.progressHandler(self.requests[i], nil, [NSError sdl_lifecycle_multipleRequestsCancelled], self.percentComplete); - } - - if (self.responseHandler != NULL) { - self.responseHandler(request, nil, [NSError sdl_lifecycle_multipleRequestsCancelled]); - } - - if (self.completionHandler != NULL) { - self.completionHandler(NO); - } - } - - [self finishOperation]; -} - -#pragma mark - Getters - -- (float)percentComplete { - return (float)self.requestsComplete / (float)self.requests.count; -} - -#pragma mark - Property Overrides - -- (void)finishOperation { - if (self.completionHandler != NULL) { - self.completionHandler(!self.requestFailed); - } - - [super finishOperation]; -} - -- (nullable NSString *)name { - return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityNormal; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"%@, request count=%lu, requests started=%lu, finished=%lu, failed=%@", self.name, (unsigned long)self.requests.count, (unsigned long)self.requestsStarted, (unsigned long)self.requestsComplete, (self.requestFailed ? @"YES": @"NO")]; -} - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"%@, request count=%lu, requests started=%lu, finished=%lu, failed=%@, requests=%@", self.name, (unsigned long)self.requests.count, (unsigned long)self.requestsStarted, (unsigned long)self.requestsComplete, (self.requestFailed ? @"YES": @"NO"), self.requests]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.h deleted file mode 100644 index 7c2d6bb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.h +++ /dev/null @@ -1,111 +0,0 @@ -// SDLAudioControlCapabilities.h -// - -#import "SDLRPCMessage.h" -#import "SDLModuleInfo.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Describes a head unit's audio control capabilities. - - @since RPC 5.0 - */ -@interface SDLAudioControlCapabilities : SDLRPCStruct - -/** - Constructs a newly allocated SDLAudioControlCapabilities object with audio control module name (max 100 chars) - - @param name The short friendly name of the audio control module. - @return An instance of the SDLAudioControlCapabilities class. - */ -- (instancetype)initWithModuleName:(NSString *)name __deprecated_msg("Use initWithModuleName:moduleInfo: instead"); - -/** - Constructs a newly allocated SDLAudioControlCapabilities object with audio control module name (max 100 chars) - - @param name The short friendly name of the audio control module. - @param moduleInfo Information about a RC module, including its id. - @return An instance of the SDLAudioControlCapabilities class. - */ -- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo; - -/** - Constructs a newly allocated SDLAudioControlCapabilities object with given parameters - - @param name The short friendly name of the audio control module. - @param sourceAvailable Availability of the control of audio source. - @param volumeAvailable Availability of the volume of audio source. - @param equalizerAvailable Availability of the equalizer of audio source. - @param equalizerMaxChannelID Equalizer channel ID (between 1-100). - @return An instance of the SDLAudioControlCapabilities class. - */ -- (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NSNumber *)sourceAvailable keepContextAvailable:(nullable NSNumber *)keepContextAvailable volumeAvailable:(nullable NSNumber *)volumeAvailable equalizerAvailable:(nullable NSNumber *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber *)equalizerMaxChannelID __deprecated_msg("Use initWithModuleName:moduleInfo:sourceAvailable:keepContextAvailable:volumeAvailable:equalizerAvailable:equalizerMaxChannelID: instead"); - -/** - Constructs a newly allocated SDLAudioControlCapabilities object with given parameters - - @param name The short friendly name of the audio control module. - @param moduleInfo Information about a RC module, including its id. - @param sourceAvailable Availability of the control of audio source. - @param volumeAvailable Availability of the volume of audio source. - @param equalizerAvailable Availability of the equalizer of audio source. - @param equalizerMaxChannelID Equalizer channel ID (between 1-100). - @return An instance of the SDLAudioControlCapabilities class. - */ -- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo sourceAvailable:(nullable NSNumber *)sourceAvailable keepContextAvailable:(nullable NSNumber *)keepContextAvailable volumeAvailable:(nullable NSNumber *)volumeAvailable equalizerAvailable:(nullable NSNumber *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber *)equalizerMaxChannelID; - -/** - * @abstract The short friendly name of the audio control module. - * It should not be used to identify a module by mobile application. - * - * Required, Max String length 100 chars - */ -@property (strong, nonatomic) NSString *moduleName; - -/** - * @abstract Availability of the control of audio source. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *sourceAvailable; - -/** - Availability of the keepContext parameter. - - Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *keepContextAvailable; - -/** - * @abstract Availability of the control of audio volume. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *volumeAvailable; - -/** - * @abstract Availability of the control of Equalizer Settings. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *equalizerAvailable; - -/** - * @abstract Must be included if equalizerAvailable=true, - * and assume all IDs starting from 1 to this value are valid - * - * Optional, Integer 1 - 100 - */ -@property (nullable, strong, nonatomic) NSNumber *equalizerMaxChannelId; - -/** - * Information about a RC module, including its id. - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.m deleted file mode 100644 index bc7ff56..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlCapabilities.m +++ /dev/null @@ -1,126 +0,0 @@ -// SDLAudioControlCapabilities.m -// - -#import "SDLAudioControlCapabilities.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAudioControlCapabilities - -- (instancetype)initWithModuleName:(NSString *)name { - self = [self init]; - if (!self) { - return nil; - } - self.moduleName = name; - - return self; -} - -- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo { - self = [self init]; - if (!self) { - return nil; - } - self.moduleName = name; - self.moduleInfo = moduleInfo; - - return self; -} - -- (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NSNumber *)sourceAvailable keepContextAvailable:(nullable NSNumber *)keepContextAvailable volumeAvailable:(nullable NSNumber *)volumeAvailable equalizerAvailable:(nullable NSNumber *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber *)equalizerMaxChannelID { - self = [self init]; - if (!self) { - return nil; - } - self.moduleName = name; - self.sourceAvailable = sourceAvailable; - self.keepContextAvailable = keepContextAvailable; - self.volumeAvailable = volumeAvailable; - self.equalizerAvailable = equalizerAvailable; - self.equalizerMaxChannelId = equalizerMaxChannelID; - - return self; -} - -- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo sourceAvailable:(nullable NSNumber *)sourceAvailable keepContextAvailable:(nullable NSNumber *)keepContextAvailable volumeAvailable:(nullable NSNumber *)volumeAvailable equalizerAvailable:(nullable NSNumber *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber *)equalizerMaxChannelID { - self = [self init]; - if (!self) { - return nil; - } - - self.moduleName = name; - self.moduleInfo = moduleInfo; - self.sourceAvailable = sourceAvailable; - self.keepContextAvailable = keepContextAvailable; - self.volumeAvailable = volumeAvailable; - self.equalizerAvailable = equalizerAvailable; - self.equalizerMaxChannelId = equalizerMaxChannelID; - - return self; - -} - - -- (void)setModuleName:(NSString *)moduleName { - [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; -} - -- (NSString *)moduleName { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; -} - -- (void)setSourceAvailable:(nullable NSNumber *)sourceAvailable { - [self.store sdl_setObject:sourceAvailable forName:SDLRPCParameterNameSourceAvailable]; -} - -- (nullable NSNumber *)sourceAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameSourceAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setKeepContextAvailable:(nullable NSNumber *)keepContextAvailable { - [self.store sdl_setObject:keepContextAvailable forName:SDLRPCParameterNameKeepContextAvailable]; -} - -- (nullable NSNumber *)keepContextAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameKeepContextAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setVolumeAvailable:(nullable NSNumber *)volumeAvailable { - [self.store sdl_setObject:volumeAvailable forName:SDLRPCParameterNameVolumeAvailable]; -} - -- (nullable NSNumber *)volumeAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameVolumeAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setEqualizerAvailable:(nullable NSNumber *)equalizerAvailable { - [self.store sdl_setObject:equalizerAvailable forName:SDLRPCParameterNameEqualizerAvailable]; -} - -- (nullable NSNumber *)equalizerAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameEqualizerAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setEqualizerMaxChannelId:(nullable NSNumber *)equalizerMaxChannelId { - [self.store sdl_setObject:equalizerMaxChannelId forName:SDLRPCParameterNameEqualizerMaxChannelId]; -} - -- (nullable NSNumber *)equalizerMaxChannelId { - return [self.store sdl_objectForName:SDLRPCParameterNameEqualizerMaxChannelId ofClass:NSNumber.class error:nil]; -} - -- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { - [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; -} - -- (nullable SDLModuleInfo *)moduleInfo { - return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.h deleted file mode 100644 index 2cd9963..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.h +++ /dev/null @@ -1,67 +0,0 @@ -// SDLAudioControlData.h -// - -#import "SDLRPCMessage.h" -#import "SDLPrimaryAudioSource.h" - -@class SDLEqualizerSettings; - -NS_ASSUME_NONNULL_BEGIN - -/** - The audio control data information. - - @since RPC 5.0 - */ -@interface SDLAudioControlData : SDLRPCStruct - - -/** - Constructs a newly allocated SDLAudioControlData object with given parameters - - @param source current primary audio source of the system. - @param keepContext Whether or not application's context is changed. - @param volume Reflects the volume of audio. - @param equalizerSettings list of supported Equalizer channels. - @return An instance of the SDLAudioControlData class. - */ -- (instancetype)initWithSource:(nullable SDLPrimaryAudioSource)source keepContext:(nullable NSNumber *)keepContext volume:(nullable NSNumber *)volume equalizerSettings:(nullable NSArray *)equalizerSettings; - -/** - * @abstract In a getter response or a notification, - * it is the current primary audio source of the system. - * In a setter request, it is the target audio source that the system shall switch to. - * If the value is MOBILE_APP, the system shall switch to the mobile media app that issues the setter RPC. - * - * Optional, SDLPrimaryAudioSource - */ -@property (nullable, strong, nonatomic) SDLPrimaryAudioSource source; - -/** - * @abstract This parameter shall not be present in any getter responses or notifications. - * This parameter is optional in a setter request. The default value is false. - * If it is true, the system not only changes the audio source but also brings the default - * infotainment system UI associated with the audio source to foreground and set the application to background. - * If it is false, the system changes the audio source, but keeps the current application's context. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *keepContext; - -/** - * @abstract Reflects the volume of audio, from 0%-100%. - * - * Required, Integer 1 - 100 - */ -@property (nullable, strong, nonatomic) NSNumber *volume; - -/** - * @abstract Defines the list of supported channels (band) and their current/desired settings on HMI - * - * Required, Array of SDLEqualizerSettings with minSize:1 maxSize:100 - */ -@property (nullable, strong, nonatomic) NSArray *equalizerSettings; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.m deleted file mode 100644 index 67296c9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioControlData.m +++ /dev/null @@ -1,62 +0,0 @@ -// SDLAudioControlData.m -// - -#import "SDLAudioControlData.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" -#import "SDLEqualizerSettings.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAudioControlData - -- (instancetype)initWithSource:(nullable SDLPrimaryAudioSource)source keepContext:(nullable NSNumber *)keepContext volume:(nullable NSNumber *)volume equalizerSettings:(nullable NSArray *)equalizerSettings { - self = [self init]; - if (!self) { - return nil; - } - - self.source = source; - self.keepContext = keepContext; - self.volume = volume; - self.equalizerSettings = equalizerSettings; - - return self; -} - -- (void)setSource:(nullable SDLPrimaryAudioSource)source { - [self.store sdl_setObject:source forName:SDLRPCParameterNameSource]; - -} - -- (nullable SDLPrimaryAudioSource)source { - return [self.store sdl_enumForName:SDLRPCParameterNameSource error:nil]; -} - -- (void)setKeepContext:(nullable NSNumber *)keepContext { - [self.store sdl_setObject:keepContext forName:SDLRPCParameterNameKeepContext]; -} - -- (nullable NSNumber *)keepContext { - return [self.store sdl_objectForName:SDLRPCParameterNameKeepContext ofClass:NSNumber.class error:nil]; -} - -- (void)setVolume:(nullable NSNumber *)volume { - [self.store sdl_setObject:volume forName:SDLRPCParameterNameVolume]; -} - -- (nullable NSNumber *)volume { - return [self.store sdl_objectForName:SDLRPCParameterNameVolume ofClass:NSNumber.class error:nil]; -} - -- (void)setEqualizerSettings:(nullable NSArray *)equalizerSettings { - [self.store sdl_setObject:equalizerSettings forName:SDLRPCParameterNameEqualizerSettings]; -} - -- (nullable NSArray *)equalizerSettings { - return [self.store sdl_objectsForName:SDLRPCParameterNameEqualizerSettings ofClass:SDLEqualizerSettings.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.h deleted file mode 100755 index a930294..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.h +++ /dev/null @@ -1,63 +0,0 @@ -// -// SDLAudioFile.h -// SmartDeviceLink-Example -// -// Created by Joel Fischer on 10/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - Includes inforamtion about a given audio file - */ -@interface SDLAudioFile : NSObject - -/** - If initialized with a file URL, the file URL it came from - */ -@property (nullable, copy, nonatomic, readonly) NSURL *inputFileURL; - -/** - If initialized with a file URL, where the transcoder should produce the transcoded PCM audio file - */ -@property (nullable, copy, nonatomic, readonly) NSURL *outputFileURL; - -/** - In seconds. UINT32_MAX if unknown. - */ -@property (assign, nonatomic) UInt32 estimatedDuration; - -/** - The PCM audio data to be transferred and played - */ -@property (copy, nonatomic, readonly) NSData *data; - -/** - The size of the PCM audio data in bytes - */ -@property (assign, nonatomic, readonly) unsigned long long fileSize; - -/** - Initialize an audio file to be queued and played - - @param inputURL The file that exists on the device to be transcoded and queued - @param outputURL The target URL that the transcoded file will be output to - @param duration The duration of the file - @return The audio file object - */ -- (instancetype)initWithInputFileURL:(NSURL *)inputURL outputFileURL:(NSURL *)outputURL estimatedDuration:(UInt32)duration; - -/** - Initialize a buffer of PCM audio data to be queued and played - - @param data The PCM audio data buffer - @return The audio file object - */ -- (instancetype)initWithData:(NSData *)data; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.m deleted file mode 100755 index 46b50f5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioFile.m +++ /dev/null @@ -1,71 +0,0 @@ -// -// SDLAudioFile.m -// SmartDeviceLink-Example -// -// Created by Joel Fischer on 10/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLAudioFile.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAudioFile () - -@property (copy, nonatomic, readwrite) NSURL *inputFileURL; -@property (copy, nonatomic, readwrite) NSURL *outputFileURL; -@property (copy, nonatomic, readwrite) NSData *data; -@property (copy, nonatomic, readwrite) NSString *name; - -@end - -@implementation SDLAudioFile - -- (instancetype)initWithInputFileURL:(NSURL *)inputURL outputFileURL:(NSURL *)outputURL estimatedDuration:(UInt32)duration { - self = [super init]; - if (!self) { return nil; } - - _inputFileURL = inputURL; - _outputFileURL = outputURL; - _estimatedDuration = duration; - - return self; -} - -- (instancetype)initWithData:(NSData *)data { - self = [super init]; - if (!self) { return nil; } - - _data = data; - - return self; -} - -- (NSData *)data { - if (_data.length == 0) { - return [NSData dataWithContentsOfURL:_outputFileURL]; - } - - return _data; -} - -/** - Gets the size of the data. The data may be stored on disk or it may already be in the application's memory. - - @return The size of the data. - */ -- (unsigned long long)fileSize { - if (_outputFileURL != nil) { - // Data in file - NSString *path = [_outputFileURL path]; - return [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil].fileSize; - } else if (_data) { - // Data in memory - return _data.length; - } - return 0; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioPassThruCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioPassThruCapabilities.h deleted file mode 100644 index 67f2292..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioPassThruCapabilities.h +++ /dev/null @@ -1,44 +0,0 @@ -// SDLAudioPassThruCapabilities.h -// - -#import "SDLRPCMessage.h" - -#import "SDLAudioType.h" -#import "SDLBitsPerSample.h" -#import "SDLSamplingRate.h" - - -/** - * Describes different audio type configurations for SDLPerformAudioPassThru, e.g. {8kHz,8-bit,PCM} - - * Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAudioPassThruCapabilities : SDLRPCStruct - -/** - The sampling rate for AudioPassThru - - Required - */ -@property (strong, nonatomic) SDLSamplingRate samplingRate; - -/** - The sample depth in bit for AudioPassThru - - Required - */ -@property (strong, nonatomic) SDLBitsPerSample bitsPerSample; - -/** - The audiotype for AudioPassThru - - Required - */ -@property (strong, nonatomic) SDLAudioType audioType; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioPassThruCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioPassThruCapabilities.m deleted file mode 100644 index c84263a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioPassThruCapabilities.m +++ /dev/null @@ -1,43 +0,0 @@ -// SDLAudioPassThruCapabilities.m -// - - -#import "SDLAudioPassThruCapabilities.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAudioPassThruCapabilities - -- (void)setSamplingRate:(SDLSamplingRate)samplingRate { - [self.store sdl_setObject:samplingRate forName:SDLRPCParameterNameSamplingRate]; -} - -- (SDLSamplingRate)samplingRate { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameSamplingRate error:&error]; -} - -- (void)setBitsPerSample:(SDLBitsPerSample)bitsPerSample { - [self.store sdl_setObject:bitsPerSample forName:SDLRPCParameterNameBitsPerSample]; -} - -- (SDLBitsPerSample)bitsPerSample { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameBitsPerSample error:&error]; -} - -- (void)setAudioType:(SDLAudioType)audioType { - [self.store sdl_setObject:audioType forName:SDLRPCParameterNameAudioType]; -} - -- (SDLAudioType)audioType { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameAudioType error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.h deleted file mode 100755 index 7ec8a59..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.h +++ /dev/null @@ -1,95 +0,0 @@ -// -// SDLBinaryAudioManager.h -// SmartDeviceLink-Example -// -// Created by Joel Fischer on 10/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -@class SDLAudioFile; -@class SDLManager; -@class SDLStreamingMediaLifecycleManager; -@protocol SDLStreamingAudioManagerType; -@protocol SDLAudioStreamManagerDelegate; - -NS_ASSUME_NONNULL_BEGIN - -/** - The manager to control the audio stream - */ -@interface SDLAudioStreamManager : NSObject - -/** - The delegate describing when files are done playing or any errors that occur - */ -@property (weak, nonatomic) id delegate; - -/** - Whether or not we are currently playing audio - */ -@property (assign, nonatomic, readonly, getter=isPlaying) BOOL playing; - -/** - The queue of audio files that will be played in sequence - */ -@property (copy, nonatomic, readonly) NSArray *queue; - -/** - Init should only occur with dependencies. use `initWithManager:` - - @return A failure - */ -- (instancetype)init NS_UNAVAILABLE; - -/** - Create an audio stream manager with a reference to the parent stream manager. - - @warning For internal use - - @param streamManager The parent stream manager - @return The audio stream manager - */ -- (instancetype)initWithManager:(id)streamManager NS_DESIGNATED_INITIALIZER; - -/** - Push a new file URL onto the queue after converting it into the correct PCM format for streaming binary data. Call `playNextWhenReady` to start playing the next completed pushed file. - - @note This happens on a serial background thread and will provide an error callback using the delegate if the conversion fails. - - @param fileURL File URL to convert - */ -- (void)pushWithFileURL:(NSURL *)fileURL; - -/** - Push a new audio buffer onto the queue. Call `playNextWhenReady` to start playing the pushed audio buffer. - - This data must be of the required PCM format. See SDLSystemCapabilityManager.pcmStreamCapability and SDLAudioPassThruCapability.h. - - This is *an example* of a PCM format used by some head units: - - audioType: PCM - - samplingRate: 16kHZ - - bitsPerSample: 16 bits - - There is generally only one channel to the data. - - @param data The audio buffer to be pushed onto the queue - */ -- (void)pushWithData:(NSData *)data; - -/** - Play the next item in the queue. If an item is currently playing, it will continue playing and this item will begin playing after it is completed. - - When complete, this will callback on the delegate. - */ -- (void)playNextWhenReady; - -/** - Stop playing the queue after the current item completes and clear the queue. If nothing is playing, the queue will be cleared. - */ -- (void)stop; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.m deleted file mode 100755 index f848627..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManager.m +++ /dev/null @@ -1,181 +0,0 @@ -// -// SDLBinaryAudioManager.m -// SmartDeviceLink-Example -// -// Created by Joel Fischer on 10/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLAudioStreamManager.h" - -#import "SDLAudioFile.h" -#import "SDLAudioStreamManagerDelegate.h" -#import "SDLError.h" -#import "SDLFile.h" -#import "SDLGlobals.h" -#import "SDLLogMacros.h" -#import "SDLManager.h" -#import "SDLPCMAudioConverter.h" -#import "SDLStreamingAudioManagerType.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAudioStreamManager () - -@property (weak, nonatomic) id streamManager; -@property (strong, nonatomic) NSMutableArray *mutableQueue; -@property (strong, nonatomic) dispatch_queue_t audioQueue; -@property (assign, nonatomic, readwrite, getter=isPlaying) BOOL playing; - -@property (assign, nonatomic) BOOL shouldPlayWhenReady; - -@end - -@implementation SDLAudioStreamManager - -- (instancetype)initWithManager:(id)streamManager { - self = [super init]; - if (!self) { return nil; } - - _mutableQueue = [NSMutableArray array]; - _shouldPlayWhenReady = NO; - - if (@available(iOS 10.0, *)) { - _audioQueue = dispatch_queue_create_with_target("com.sdl.audiomanager.transcode", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); - } else { - _audioQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; - } - - _streamManager = streamManager; - - return self; -} - -- (void)stop { - dispatch_async(_audioQueue, ^{ - self.shouldPlayWhenReady = NO; - [self.mutableQueue removeAllObjects]; - }); -} - -#pragma mark - Getters - -- (NSArray *)queue { - return [_mutableQueue copy]; -} - -#pragma mark - Pushing to the Queue -#pragma mark Files - -- (void)pushWithFileURL:(NSURL *)fileURL { - dispatch_async(_audioQueue, ^{ - [self sdl_pushWithContentsOfURL:fileURL]; - }); -} - -- (void)sdl_pushWithContentsOfURL:(NSURL *)fileURL { - // Convert and store in the queue - NSError *error = nil; - SDLPCMAudioConverter *converter = [[SDLPCMAudioConverter alloc] initWithFileURL:fileURL]; - NSURL *_Nullable outputFileURL = [converter convertFileWithError:&error]; - UInt32 estimatedDuration = converter.estimatedDuration; - - if (outputFileURL == nil) { - SDLLogE(@"Error converting file to CAF / PCM: %@", error); - if (self.delegate != nil) { - [self.delegate audioStreamManager:self errorDidOccurForFile:fileURL error:error]; - } - return; - } - - SDLAudioFile *audioFile = [[SDLAudioFile alloc] initWithInputFileURL:fileURL outputFileURL:outputFileURL estimatedDuration:estimatedDuration]; - [self.mutableQueue addObject:audioFile]; - - if (self.shouldPlayWhenReady) { - [self sdl_playNextWhenReady]; - } -} - -#pragma mark Raw Data - -- (void)pushWithData:(NSData *)data { - dispatch_async(_audioQueue, ^{ - [self sdl_pushWithData:data]; - }); -} - -- (void)sdl_pushWithData:(NSData *)data { - SDLAudioFile *audioFile = [[SDLAudioFile alloc] initWithData:data]; - [self.mutableQueue addObject:audioFile]; -} - -#pragma mark Playing from the Queue - -- (void)playNextWhenReady { - dispatch_async(_audioQueue, ^{ - [self sdl_playNextWhenReady]; - }); -} - -- (void)sdl_playNextWhenReady { - if (self.mutableQueue.count == 0) { - self.shouldPlayWhenReady = YES; - return; - } - - if (!self.streamManager.isAudioConnected) { - if (self.delegate != nil) { - NSError *error = [NSError sdl_audioStreamManager_notConnected]; - [self.delegate audioStreamManager:self errorDidOccurForFile:self.mutableQueue.firstObject.inputFileURL error:error]; - } - return; - } - - self.shouldPlayWhenReady = NO; - __block SDLAudioFile *file = self.mutableQueue.firstObject; - [self.mutableQueue removeObjectAtIndex:0]; - - // Strip the first bunch of bytes (because of how Apple outputs the data) and send to the audio stream, if we don't do this, it will make a weird click sound - NSData *audioData = nil; - if (file.inputFileURL != nil) { - audioData = [file.data subdataWithRange:NSMakeRange(5760, (file.data.length - 5760))]; - } else { - audioData = file.data; - } - - // Send the audio file, which starts it playing immediately - SDLLogD(@"Playing audio file: %@", file); - __block BOOL success = [self.streamManager sendAudioData:audioData]; - self.playing = YES; - - // Determine the length of the audio PCM data and perform a few items once the audio has finished playing - float audioLengthSecs = (float)audioData.length / (float)32000.0; - __weak typeof(self) weakself = self; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(audioLengthSecs * NSEC_PER_SEC)), [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ - __strong typeof(weakself) strongSelf = weakself; - - strongSelf.playing = NO; - NSError *error = nil; - if (strongSelf.delegate != nil) { - if (file.inputFileURL != nil) { - [strongSelf.delegate audioStreamManager:strongSelf fileDidFinishPlaying:file.inputFileURL successfully:success]; - } else if ([strongSelf.delegate respondsToSelector:@selector(audioStreamManager:dataBufferDidFinishPlayingSuccessfully:)]) { - [strongSelf.delegate audioStreamManager:strongSelf dataBufferDidFinishPlayingSuccessfully:success]; - } - } - - SDLLogD(@"Ending Audio file: %@", file); - [[NSFileManager defaultManager] removeItemAtURL:file.outputFileURL error:&error]; - if (strongSelf.delegate != nil && error != nil) { - if (file.inputFileURL != nil) { - [strongSelf.delegate audioStreamManager:strongSelf errorDidOccurForFile:file.inputFileURL error:error]; - } else if ([strongSelf.delegate respondsToSelector:@selector(audioStreamManager:errorDidOccurForDataBuffer:)]) { - [strongSelf.delegate audioStreamManager:strongSelf errorDidOccurForDataBuffer:error]; - } - } - }); -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManagerDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManagerDelegate.h deleted file mode 100755 index 79948d6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamManagerDelegate.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// SDLBinaryAudioQueueDelegate.h -// SmartDeviceLink-Example -// -// Created by Joel Fischer on 10/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -@class SDLAudioFile; -@class SDLAudioStreamManager; - -NS_ASSUME_NONNULL_BEGIN - -/// Delegate for the AudioStreamManager -@protocol SDLAudioStreamManagerDelegate - -@required - -/** - Called when a file from the SDLAudioStreamManager finishes playing - - @param audioManager A reference to the audio stream manager - @param fileURL The URL that finished playing - @param successfully Whether or not it was played successfully - */ -- (void)audioStreamManager:(SDLAudioStreamManager *)audioManager fileDidFinishPlaying:(NSURL *)fileURL successfully:(BOOL)successfully; - -/** - Called when a file from the SDLAudioStreamManager could not play - - @param audioManager A reference to the audio stream manager - @param fileURL The URL that failed - @param error The error that occurred - */ -- (void)audioStreamManager:(SDLAudioStreamManager *)audioManager errorDidOccurForFile:(NSURL *)fileURL error:(NSError *)error; - -@optional - -/** - Called when a data buffer from the SDLAudioStreamManager finishes playing - - @param audioManager A reference to the audio stream manager - @param successfully Whether or not the data buffer played successfully - */ -- (void)audioStreamManager:(SDLAudioStreamManager *)audioManager dataBufferDidFinishPlayingSuccessfully:(BOOL)successfully; - -/** - Called when a data buffer from the SDLAudioStreamManager could not play - - @param audioManager A reference to the audio stream manager - @param error The error that occurred - */ -- (void)audioStreamManager:(SDLAudioStreamManager *)audioManager errorDidOccurForDataBuffer:(NSError *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingIndicator.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingIndicator.h deleted file mode 100644 index 6159000..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingIndicator.h +++ /dev/null @@ -1,36 +0,0 @@ -// SDLAudioStreamingIndicator.h -// - -#import "SDLEnum.h" - - -/** - * Enumeration listing possible indicators of audio streaming changes - * - * @since SDL 4.6 - */ -typedef SDLEnum SDLAudioStreamingIndicator SDL_SWIFT_ENUM; - -/** - * Default playback indicator. - * By default the playback indicator should be PLAY_PAUSE when: - * - the media app is newly registered on the head unit (after RegisterAppInterface) - * - the media app was closed by the user (App enteres HMI_NONE) - * - the app sends SetMediaClockTimer with audioStreamingIndicator not set to any value - */ -extern SDLAudioStreamingIndicator const SDLAudioStreamingIndicatorPlayPause; - -/** - * Indicates that a button press of the Play/Pause button starts the audio playback. - */ -extern SDLAudioStreamingIndicator const SDLAudioStreamingIndicatorPlay; - -/** - * Indicates that a button press of the Play/Pause button pauses the current audio playback. - */ -extern SDLAudioStreamingIndicator const SDLAudioStreamingIndicatorPause; - -/** - * Indicates that a button press of the Play/Pause button stops the current audio playback. - */ -extern SDLAudioStreamingIndicator const SDLAudioStreamingIndicatorStop; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingIndicator.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingIndicator.m deleted file mode 100644 index 5e4a328..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingIndicator.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLAudioStreamingIndicator.m -// - -#import "SDLAudioStreamingIndicator.h" - -SDLAudioStreamingIndicator const SDLAudioStreamingIndicatorPlayPause = @"PLAY_PAUSE"; -SDLAudioStreamingIndicator const SDLAudioStreamingIndicatorPlay = @"PLAY"; -SDLAudioStreamingIndicator const SDLAudioStreamingIndicatorPause = @"PAUSE"; -SDLAudioStreamingIndicator const SDLAudioStreamingIndicatorStop = @"STOP"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingState.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingState.h deleted file mode 100644 index 6aa7467..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingState.h +++ /dev/null @@ -1,29 +0,0 @@ -// SDLAudioStreamingState.h -// - - -#import "SDLEnum.h" - -/** - * Describes whether or not streaming audio is currently audible to the user. Though provided in every OnHMIStatus notification, this information is only relevant for applications that declare themselves as media apps in RegisterAppInterface - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLAudioStreamingState SDL_SWIFT_ENUM; - -/** - * Currently streaming audio, if any, is audible to user. - */ -extern SDLAudioStreamingState const SDLAudioStreamingStateAudible; - -/** - * Some kind of audio mixing is taking place. Currently streaming audio, if any, is audible to the user at a lowered volume. - * - * @since SDL 2.0 - */ -extern SDLAudioStreamingState const SDLAudioStreamingStateAttenuated; - -/** - * Currently streaming audio, if any, is not audible to user. made via VR session. - */ -extern SDLAudioStreamingState const SDLAudioStreamingStateNotAudible; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingState.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingState.m deleted file mode 100644 index 043c2fc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioStreamingState.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLAudioStreamingState.m -// - - -#import "SDLAudioStreamingState.h" - -SDLAudioStreamingState const SDLAudioStreamingStateAudible = @"AUDIBLE"; -SDLAudioStreamingState const SDLAudioStreamingStateAttenuated = @"ATTENUATED"; -SDLAudioStreamingState const SDLAudioStreamingStateNotAudible = @"NOT_AUDIBLE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioType.h deleted file mode 100644 index 283be1e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioType.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLAudioType.h -// - - -#import "SDLEnum.h" - -/** - Describes different audio type options for PerformAudioPassThru - */ -typedef SDLEnum SDLAudioType SDL_SWIFT_ENUM; - -/** - * PCM raw audio - * - * @since SDL 2.0 - */ -extern SDLAudioType const SDLAudioTypePCM; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioType.m deleted file mode 100644 index 495090e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLAudioType.m +++ /dev/null @@ -1,6 +0,0 @@ -// SDLAudioType.m -// - -#import "SDLAudioType.h" - -SDLAudioType const SDLAudioTypePCM = @"PCM"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.h deleted file mode 100644 index 8d9f18a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// SDLBackgroundTaskManager.h -// SmartDeviceLink -// -// Created by Nicole on 6/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - * Class for managing a background task. - */ -@interface SDLBackgroundTaskManager : NSObject - -/// Handler called when the background task is about to expire. Use this handler to perform some cleanup before the background task is destroyed. When you have finished cleanup, you must call the `endBackgroundTask` function so the background task can be destroyed. If you do not call `endBackgroundTask`, the system may kill the app. -/// @return Whether or not to wait for the subscriber to cleanup. If NO, the background task will be killed immediately. If YES, the background task will not be destroyed until the `endBackgroundTask` method is called by the subscriber. -@property (copy, nonatomic, nullable) BOOL (^taskExpiringHandler)(void); - -- (instancetype)init NS_UNAVAILABLE; - -/** - * Convenience init for starting a background task with a specific name. - * - * @param backgroundTaskName The name for the background task - * @return A SDLBackgroundTaskManager object - */ -- (instancetype)initWithBackgroundTaskName:(NSString *)backgroundTaskName; - -/// Starts a background task. If the app is not currently backgrounded, the background task will remain dormant until the app moves to the background. -- (void)startBackgroundTask; - -/// Destroys the background task. -- (void)endBackgroundTask; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.m deleted file mode 100644 index 7746008..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBackgroundTaskManager.m +++ /dev/null @@ -1,88 +0,0 @@ -// -// SDLBackgroundTaskManager.m -// SmartDeviceLink -// -// Created by Nicole on 6/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLBackgroundTaskManager.h" - -#import "SDLLogMacros.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLBackgroundTaskManager () -@property (copy, nonatomic) NSString *backgroundTaskName; -@property (assign, nonatomic) UIBackgroundTaskIdentifier currentBackgroundTaskId; - -@end - -@implementation SDLBackgroundTaskManager - -- (instancetype)initWithBackgroundTaskName:(NSString *)backgroundTaskName { - SDLLogV(@"Creating background task manager with name %@", backgroundTaskName); - self = [super init]; - if (!self) { - return nil; - } - - _backgroundTaskName = backgroundTaskName; - - return self; -} - -- (void)startBackgroundTask { - if (self.currentBackgroundTaskId != UIBackgroundTaskInvalid) { - SDLLogV(@"The %@ background task is already running.", self.backgroundTaskName); - return; - } - - __weak typeof(self) weakSelf = self; - self.currentBackgroundTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithName:self.backgroundTaskName expirationHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - SDLLogD(@"The background task %@ is expiring.", strongSelf.backgroundTaskName); - - // We have ~1 second to do cleanup before ending the background task. If we take too long, the system will kill the app. - if (strongSelf.taskExpiringHandler != nil) { - SDLLogD(@"Checking if subscriber wants to to perform some cleanup before ending the background task %@", strongSelf.backgroundTaskName); - BOOL waitForCleanupToFinish = strongSelf.taskExpiringHandler(); - if (waitForCleanupToFinish) { - SDLLogD(@"The subscriber will end background task itself %@. Waiting...", self.backgroundTaskName); - } else { - SDLLogV(@"Subscriber does not want to perform cleanup. Ending the background task %@", strongSelf.backgroundTaskName); - [strongSelf endBackgroundTask]; - } - } else { - // No subscriber. Just end the background task. - SDLLogV(@"Ending background task %@", strongSelf.backgroundTaskName); - [strongSelf endBackgroundTask]; - } - }]; - - SDLLogD(@"The %@ background task started with id: %lu", self.backgroundTaskName, (unsigned long)self.currentBackgroundTaskId); -} - -- (void)endBackgroundTask { - SDLLogV(@"Attempting to end background task %@", self.backgroundTaskName); - self.taskExpiringHandler = nil; - - if (self.currentBackgroundTaskId == UIBackgroundTaskInvalid) { - SDLLogV(@"Background task %@ with id %lu already ended. Returning...", self.backgroundTaskName, (unsigned long)self.currentBackgroundTaskId); - return; - } - - SDLLogD(@"Ending background task %@ with id: %lu", self.backgroundTaskName, (unsigned long)self.currentBackgroundTaskId); - [[UIApplication sharedApplication] endBackgroundTask:self.currentBackgroundTaskId]; - self.currentBackgroundTaskId = UIBackgroundTaskInvalid; -} - -- (void)dealloc { - SDLLogV(@"Destroying the manager"); - [self endBackgroundTask]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBeltStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBeltStatus.h deleted file mode 100644 index 4b71c37..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBeltStatus.h +++ /dev/null @@ -1,122 +0,0 @@ -// SDLBeltStatus.h -// - -#import "SDLRPCMessage.h" - -#import "SDLVehicleDataEventStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Vehicle data struct for the seat belt status - */ -@interface SDLBeltStatus : SDLRPCStruct - -/** - References signal "VedsDrvBelt_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus driverBeltDeployed; - -/** - References signal "VedsPasBelt_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus passengerBeltDeployed; - -/** - References signal "VedsRw1PasBckl_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus passengerBuckleBelted; - -/** - References signal "VedsRw1DrvBckl_D_Ltchd". See VehicleDataEventStatus - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus driverBuckleBelted; - -/** - References signal "VedsRw2lBckl_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus leftRow2BuckleBelted; - -/** - References signal "VedsRw1PasChld_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus passengerChildDetected; - -/** - References signal "VedsRw2rBckl_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus rightRow2BuckleBelted; - -/** - References signal "VedsRw2mBckl_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus middleRow2BuckleBelted; - -/** - References signal "VedsRw3mBckl_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus middleRow3BuckleBelted; - -/** - References signal "VedsRw3lBckl_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus leftRow3BuckleBelted; - -/** - References signal "VedsRw3rBckl_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus rightRow3BuckleBelted; - -/** - References signal "VedsRw2lRib_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus leftRearInflatableBelted; - -/** - References signal "VedsRw2rRib_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus rightRearInflatableBelted; - -/** - References signal "VedsRw1mBelt_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus middleRow1BeltDeployed; - -/** - References signal "VedsRw1mBckl_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus middleRow1BuckleBelted; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBeltStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBeltStatus.m deleted file mode 100644 index 89a5271..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBeltStatus.m +++ /dev/null @@ -1,151 +0,0 @@ -// SDLBeltStatus.m -// - -#import "SDLBeltStatus.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLVehicleDataEventStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLBeltStatus - -- (void)setDriverBeltDeployed:(SDLVehicleDataEventStatus)driverBeltDeployed { - [self.store sdl_setObject:driverBeltDeployed forName:SDLRPCParameterNameDriverBeltDeployed]; -} - -- (SDLVehicleDataEventStatus)driverBeltDeployed { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameDriverBeltDeployed error:&error]; -} - -- (void)setPassengerBeltDeployed:(SDLVehicleDataEventStatus)passengerBeltDeployed { - [self.store sdl_setObject:passengerBeltDeployed forName:SDLRPCParameterNamePassengerBeltDeployed]; -} - -- (SDLVehicleDataEventStatus)passengerBeltDeployed { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNamePassengerBeltDeployed error:&error]; -} - -- (void)setPassengerBuckleBelted:(SDLVehicleDataEventStatus)passengerBuckleBelted { - [self.store sdl_setObject:passengerBuckleBelted forName:SDLRPCParameterNamePassengerBuckleBelted]; -} - -- (SDLVehicleDataEventStatus)passengerBuckleBelted { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNamePassengerBuckleBelted error:&error]; -} - -- (void)setDriverBuckleBelted:(SDLVehicleDataEventStatus)driverBuckleBelted { - [self.store sdl_setObject:driverBuckleBelted forName:SDLRPCParameterNameDriverBuckleBelted]; -} - -- (SDLVehicleDataEventStatus)driverBuckleBelted { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameDriverBuckleBelted error:&error]; -} - -- (void)setLeftRow2BuckleBelted:(SDLVehicleDataEventStatus)leftRow2BuckleBelted { - [self.store sdl_setObject:leftRow2BuckleBelted forName:SDLRPCParameterNameLeftRow2BuckleBelted]; -} - -- (SDLVehicleDataEventStatus)leftRow2BuckleBelted { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameLeftRow2BuckleBelted error:&error]; -} - -- (void)setPassengerChildDetected:(SDLVehicleDataEventStatus)passengerChildDetected { - [self.store sdl_setObject:passengerChildDetected forName:SDLRPCParameterNamePassengerChildDetected]; -} - -- (SDLVehicleDataEventStatus)passengerChildDetected { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNamePassengerChildDetected error:&error]; -} - -- (void)setRightRow2BuckleBelted:(SDLVehicleDataEventStatus)rightRow2BuckleBelted { - [self.store sdl_setObject:rightRow2BuckleBelted forName:SDLRPCParameterNameRightRow2BuckleBelted]; -} - -- (SDLVehicleDataEventStatus)rightRow2BuckleBelted { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameRightRow2BuckleBelted error:&error]; -} - -- (void)setMiddleRow2BuckleBelted:(SDLVehicleDataEventStatus)middleRow2BuckleBelted { - [self.store sdl_setObject:middleRow2BuckleBelted forName:SDLRPCParameterNameMiddleRow2BuckleBelted]; -} - -- (SDLVehicleDataEventStatus)middleRow2BuckleBelted { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameMiddleRow2BuckleBelted error:&error]; -} - -- (void)setMiddleRow3BuckleBelted:(SDLVehicleDataEventStatus)middleRow3BuckleBelted { - [self.store sdl_setObject:middleRow3BuckleBelted forName:SDLRPCParameterNameMiddleRow3BuckleBelted]; -} - -- (SDLVehicleDataEventStatus)middleRow3BuckleBelted { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameMiddleRow3BuckleBelted error:&error]; -} - -- (void)setLeftRow3BuckleBelted:(SDLVehicleDataEventStatus)leftRow3BuckleBelted { - [self.store sdl_setObject:leftRow3BuckleBelted forName:SDLRPCParameterNameLeftRow3BuckleBelted]; -} - -- (SDLVehicleDataEventStatus)leftRow3BuckleBelted { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameLeftRow3BuckleBelted error:&error]; -} - -- (void)setRightRow3BuckleBelted:(SDLVehicleDataEventStatus)rightRow3BuckleBelted { - [self.store sdl_setObject:rightRow3BuckleBelted forName:SDLRPCParameterNameRightRow3BuckleBelted]; -} - -- (SDLVehicleDataEventStatus)rightRow3BuckleBelted { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameRightRow3BuckleBelted error:&error]; -} - -- (void)setLeftRearInflatableBelted:(SDLVehicleDataEventStatus)leftRearInflatableBelted { - [self.store sdl_setObject:leftRearInflatableBelted forName:SDLRPCParameterNameLeftRearInflatableBelted]; -} - -- (SDLVehicleDataEventStatus)leftRearInflatableBelted { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameLeftRearInflatableBelted error:&error]; -} - -- (void)setRightRearInflatableBelted:(SDLVehicleDataEventStatus)rightRearInflatableBelted { - [self.store sdl_setObject:rightRearInflatableBelted forName:SDLRPCParameterNameRightRearInflatableBelted]; -} - -- (SDLVehicleDataEventStatus)rightRearInflatableBelted { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameRightRearInflatableBelted error:&error]; -} - -- (void)setMiddleRow1BeltDeployed:(SDLVehicleDataEventStatus)middleRow1BeltDeployed { - [self.store sdl_setObject:middleRow1BeltDeployed forName:SDLRPCParameterNameMiddleRow1BeltDeployed]; -} - -- (SDLVehicleDataEventStatus)middleRow1BeltDeployed { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameMiddleRow1BeltDeployed error:&error]; -} - -- (void)setMiddleRow1BuckleBelted:(SDLVehicleDataEventStatus)middleRow1BuckleBelted { - [self.store sdl_setObject:middleRow1BuckleBelted forName:SDLRPCParameterNameMiddleRow1BuckleBelted]; -} - -- (SDLVehicleDataEventStatus)middleRow1BuckleBelted { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameMiddleRow1BuckleBelted error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBitsPerSample.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBitsPerSample.h deleted file mode 100644 index 366dab9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBitsPerSample.h +++ /dev/null @@ -1,22 +0,0 @@ -// SDLBitsPerSample.h -// - - -#import "SDLEnum.h" - -/** - * Describes different bit depth options for PerformAudioPassThru - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLBitsPerSample SDL_SWIFT_ENUM; - -/** - * 8 bits per sample - */ -extern SDLBitsPerSample const SDLBitsPerSample8Bit; - -/** - * 16 bits per sample - */ -extern SDLBitsPerSample const SDLBitsPerSample16Bit; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBitsPerSample.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBitsPerSample.m deleted file mode 100644 index 2532178..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBitsPerSample.m +++ /dev/null @@ -1,8 +0,0 @@ -// SDLBitsPerSample.m -// - - -#import "SDLBitsPerSample.h" - -SDLBitsPerSample const SDLBitsPerSample8Bit = @"8_BIT"; -SDLBitsPerSample const SDLBitsPerSample16Bit = @"16_BIT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBodyInformation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBodyInformation.h deleted file mode 100644 index bed3645..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBodyInformation.h +++ /dev/null @@ -1,69 +0,0 @@ -// SDLBodyInformation.h -// - -#import "SDLRPCMessage.h" - -#import "SDLIgnitionStableStatus.h" -#import "SDLIgnitionStatus.h" - - -/** - * The body information including power modes. - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLBodyInformation : SDLRPCStruct - -/** - * References signal "PrkBrkActv_B_Actl". - - Required - */ -@property (strong, nonatomic) NSNumber *parkBrakeActive; - -/** - * References signal "Ignition_Switch_Stable". See IgnitionStableStatus. - - Required - */ -@property (strong, nonatomic) SDLIgnitionStableStatus ignitionStableStatus; - -/** - * References signal "Ignition_status". See IgnitionStatus. - - Required - */ -@property (strong, nonatomic) SDLIgnitionStatus ignitionStatus; - -/** - * References signal "DrStatDrv_B_Actl". - - Optional - */ -@property (nullable, strong, nonatomic) NSNumber *driverDoorAjar; - -/** - * References signal "DrStatPsngr_B_Actl". - - Optional - */ -@property (nullable, strong, nonatomic) NSNumber *passengerDoorAjar; - -/** - * References signal "DrStatRl_B_Actl". - - Optional - */ -@property (nullable, strong, nonatomic) NSNumber *rearLeftDoorAjar; - -/** - * References signal "DrStatRr_B_Actl". - - Optional - */ -@property (nullable, strong, nonatomic) NSNumber *rearRightDoorAjar; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBodyInformation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLBodyInformation.m deleted file mode 100644 index fe8aa8b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLBodyInformation.m +++ /dev/null @@ -1,77 +0,0 @@ -// SDLBodyInformation.m -// - - -#import "SDLBodyInformation.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLIgnitionStableStatus.h" -#import "SDLIgnitionStatus.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLBodyInformation - -- (void)setParkBrakeActive:(NSNumber *)parkBrakeActive { - [self.store sdl_setObject:parkBrakeActive forName:SDLRPCParameterNameParkBrakeActive]; -} - -- (NSNumber *)parkBrakeActive { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameParkBrakeActive ofClass:NSNumber.class error:&error]; -} - -- (void)setIgnitionStableStatus:(SDLIgnitionStableStatus)ignitionStableStatus { - [self.store sdl_setObject:ignitionStableStatus forName:SDLRPCParameterNameIgnitionStableStatus]; -} - -- (SDLIgnitionStableStatus)ignitionStableStatus { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameIgnitionStableStatus error:&error]; -} - -- (void)setIgnitionStatus:(SDLIgnitionStatus)ignitionStatus { - [self.store sdl_setObject:ignitionStatus forName:SDLRPCParameterNameIgnitionStatus]; -} - -- (SDLIgnitionStatus)ignitionStatus { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameIgnitionStatus error:&error]; -} - -- (void)setDriverDoorAjar:(nullable NSNumber *)driverDoorAjar { - [self.store sdl_setObject:driverDoorAjar forName:SDLRPCParameterNameDriverDoorAjar]; -} - -- (nullable NSNumber *)driverDoorAjar { - return [self.store sdl_objectForName:SDLRPCParameterNameDriverDoorAjar ofClass:NSNumber.class error:nil]; -} - -- (void)setPassengerDoorAjar:(nullable NSNumber *)passengerDoorAjar { - [self.store sdl_setObject:passengerDoorAjar forName:SDLRPCParameterNamePassengerDoorAjar]; -} - -- (nullable NSNumber *)passengerDoorAjar { - return [self.store sdl_objectForName:SDLRPCParameterNamePassengerDoorAjar ofClass:NSNumber.class error:nil]; -} - -- (void)setRearLeftDoorAjar:(nullable NSNumber *)rearLeftDoorAjar { - [self.store sdl_setObject:rearLeftDoorAjar forName:SDLRPCParameterNameRearLeftDoorAjar]; -} - -- (nullable NSNumber *)rearLeftDoorAjar { - return [self.store sdl_objectForName:SDLRPCParameterNameRearLeftDoorAjar ofClass:NSNumber.class error:nil]; -} - -- (void)setRearRightDoorAjar:(nullable NSNumber *)rearRightDoorAjar { - [self.store sdl_setObject:rearRightDoorAjar forName:SDLRPCParameterNameRearRightDoorAjar]; -} - -- (nullable NSNumber *)rearRightDoorAjar { - return [self.store sdl_objectForName:SDLRPCParameterNameRearRightDoorAjar ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.h deleted file mode 100644 index 1333da2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.h +++ /dev/null @@ -1,57 +0,0 @@ -// SDLButtonCapabilities.h -// - -#import "SDLRPCMessage.h" - -#import "SDLButtonName.h" -#import "SDLModuleInfo.h" - - -/** - * Provides information about the capabilities of a SDL HMI button. - * - * @since SDL 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLButtonCapabilities : SDLRPCStruct - -/** - * The name of the SDL HMI button. - - Required - */ -@property (strong, nonatomic) SDLButtonName name; - -/** - * A NSNumber value indicates whether the button supports a SHORT press - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *shortPressAvailable; - -/** - * A NSNumber value indicates whether the button supports a LONG press - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *longPressAvailable; - -/** - * A NSNumber value indicates whether the button supports "button down" and "button up" - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *upDownAvailable; - -/** - * Information about a RC module, including its id. - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.m deleted file mode 100644 index 1685d09..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonCapabilities.m +++ /dev/null @@ -1,59 +0,0 @@ -// SDLButtonCapabilities.m -// - -#import "SDLButtonCapabilities.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLButtonCapabilities - -- (void)setName:(SDLButtonName)name { - [self.store sdl_setObject:name forName:SDLRPCParameterNameName]; -} - -- (SDLButtonName)name { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameName error:&error]; -} - -- (void)setShortPressAvailable:(NSNumber *)shortPressAvailable { - [self.store sdl_setObject:shortPressAvailable forName:SDLRPCParameterNameShortPressAvailable]; -} - -- (NSNumber *)shortPressAvailable { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameShortPressAvailable ofClass:NSNumber.class error:&error]; -} - -- (void)setLongPressAvailable:(NSNumber *)longPressAvailable { - [self.store sdl_setObject:longPressAvailable forName:SDLRPCParameterNameLongPressAvailable]; -} - -- (NSNumber *)longPressAvailable { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLongPressAvailable ofClass:NSNumber.class error:&error]; -} - -- (void)setUpDownAvailable:(NSNumber *)upDownAvailable { - [self.store sdl_setObject:upDownAvailable forName:SDLRPCParameterNameUpDownAvailable]; -} - -- (NSNumber *)upDownAvailable { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameUpDownAvailable ofClass:NSNumber.class error:&error]; -} - -- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { - [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; -} - -- (nullable SDLModuleInfo *)moduleInfo { - return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonEventMode.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonEventMode.h deleted file mode 100644 index 5facb9f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonEventMode.h +++ /dev/null @@ -1,22 +0,0 @@ -// SDLButtonEventMode.h -// - - -#import "SDLEnum.h" - -/** - * Indicates whether the button was depressed or released. A BUTTONUP event will always be preceded by a BUTTONDOWN event. - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLButtonEventMode SDL_SWIFT_ENUM; - -/** - * The button was released - */ -extern SDLButtonEventMode const SDLButtonEventModeButtonUp; - -/** - * The button was depressed - */ -extern SDLButtonEventMode const SDLButtonEventModeButtonDown; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonEventMode.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonEventMode.m deleted file mode 100644 index 71cb61c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonEventMode.m +++ /dev/null @@ -1,8 +0,0 @@ -// SDLButtonEventMode.m -// - - -#import "SDLButtonEventMode.h" - -SDLButtonEventMode const SDLButtonEventModeButtonUp = @"BUTTONUP"; -SDLButtonEventMode const SDLButtonEventModeButtonDown = @"BUTTONDOWN"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.h deleted file mode 100644 index 4f6007f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.h +++ /dev/null @@ -1,286 +0,0 @@ -// SDLButtonName.h -// - - -#import "SDLEnum.h" - -/** - * Defines logical buttons which, on a given SDL unit, would correspond to either physical or soft (touchscreen) buttons. These logical buttons present a standard functional abstraction which the developer can rely upon, independent of the SDL unit. For example, the developer can rely upon the OK button having the same meaning to the user across SDL platforms. - - * The preset buttons (0-9) can typically be interpreted by the application as corresponding to some user-configured choices, though the application is free to interpret these button presses as it sees fit. - * - * The application can discover which buttons a given SDL unit implements by interrogating the ButtonCapabilities parameter of the RegisterAppInterface response. - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLButtonName SDL_SWIFT_ENUM; - -/** - * Represents the button usually labeled "OK". A typical use of this button is for the user to press it to make a selection. Prior to SDL Core 5.0 (iOS Proxy v.6.1), Ok was used for both "OK" buttons *AND* PlayPause. In 5.0, PlayPause was introduced to reduce confusion, and you should use the one you intend for your use case (usually PlayPause). Until the next proxy breaking change, however, subscribing to this button name will continue to subscribe you to PlayPause so that your code does not break. That means that if you subscribe to both Ok and PlayPause, you will receive duplicate notifications. - */ -extern SDLButtonName const SDLButtonNameOk; - -/** - * Represents the play/pause button for media apps. Replaces "OK" on sub-5.0 head units, compliments it on 5.0 head units and later. - */ -extern SDLButtonName const SDLButtonNamePlayPause; - -/** - * Represents the seek-left button. A typical use of this button is for the user to scroll to the left through menu choices one menu item per press. - */ -extern SDLButtonName const SDLButtonNameSeekLeft; - -/** - * Represents the seek-right button. A typical use of this button is for the user to scroll to the right through menu choices one menu item per press. - */ -extern SDLButtonName const SDLButtonNameSeekRight; - -/** - * Represents a turn of the tuner knob in the clockwise direction one tick. - */ -extern SDLButtonName const SDLButtonNameTuneUp; - -/** - * Represents a turn of the tuner knob in the counter-clockwise direction one tick. - */ -extern SDLButtonName const SDLButtonNameTuneDown; - -/** - * Represents the preset 0 button. - */ -extern SDLButtonName const SDLButtonNamePreset0; - -/** - * Represents the preset 1 button. - */ -extern SDLButtonName const SDLButtonNamePreset1; - -/** - * Represents the preset 2 button. - */ -extern SDLButtonName const SDLButtonNamePreset2; - -/** - * Represents the preset 3 button. - */ -extern SDLButtonName const SDLButtonNamePreset3; - -/** - * Represents the preset 4 button. - */ -extern SDLButtonName const SDLButtonNamePreset4; - -/** - * Represents the preset 5 button. - */ -extern SDLButtonName const SDLButtonNamePreset5; - -/** - * Represents the preset 6 button. - */ -extern SDLButtonName const SDLButtonNamePreset6; - -/** - * Represents the preset 7 button. - */ -extern SDLButtonName const SDLButtonNamePreset7; - -/** - * Represents the preset 8 button. - */ -extern SDLButtonName const SDLButtonNamePreset8; - -/** - * Represents the preset 9 button. - */ -extern SDLButtonName const SDLButtonNamePreset9; - -/** - * Represents the Custom button. - * - */ -extern SDLButtonName const SDLButtonNameCustomButton; - -/** - * Represents the SEARCH button. - * - */ -extern SDLButtonName const SDLButtonNameSearch; - -#pragma mark - Climate Buttons - -/** - * Represents AC max button * - */ -extern SDLButtonName const SDLButtonNameACMax; - -/** - * Represents AC button * - */ -extern SDLButtonName const SDLButtonNameAC; - -/** - * Represents a Recirculate button - */ -extern SDLButtonName const SDLButtonNameRecirculate; - -/** - * Represents a Fan up button - */ -extern SDLButtonName const SDLButtonNameFanUp; - -/** - * Represents a fan down button - */ -extern SDLButtonName const SDLButtonNameFanDown; - -/** - * Represents a temperature up button - */ -extern SDLButtonName const SDLButtonNameTempUp; - -/** - * Represents a temperature down button - */ -extern SDLButtonName const SDLButtonNameTempDown; - -/** - * Represents a Defrost max button. - * - */ -extern SDLButtonName const SDLButtonNameDefrostMax; - -/** - * Represents a Defrost button. - * - */ -extern SDLButtonName const SDLButtonNameDefrost; - -/** - * Represents a Defrost rear button. - * - */ -extern SDLButtonName const SDLButtonNameDefrostRear; - -/** - * Represents a Upper Vent button. - * - */ -extern SDLButtonName const SDLButtonNameUpperVent; - -/** - * Represents a Lower vent button. - * - */ -extern SDLButtonName const SDLButtonNameLowerVent; - -#pragma mark - Radio Buttons -/** - * Represents a volume up button. - */ -extern SDLButtonName const SDLButtonNameVolumeUp; - -/** - * Represents a volume down button. - * - */ -extern SDLButtonName const SDLButtonNameVolumeDown; - -/** - * Represents a Eject Button. - * - */ -extern SDLButtonName const SDLButtonNameEject; - -/** - * Represents a Source button. - * - */ -extern SDLButtonName const SDLButtonNameSource; - -/** - * Represents a SHUFFLE button. - * - */ -extern SDLButtonName const SDLButtonNameShuffle; - -/** - * Represents a Repeat button. - */ -extern SDLButtonName const SDLButtonNameRepeat; - -#pragma mark - Navigation Buttons -/** - * Represents a Navigate to center button. - */ -extern SDLButtonName const SDLButtonNameNavCenterLocation; - -/** - * Represents a Zoom in button. - */ -extern SDLButtonName const SDLButtonNameNavZoomIn; - -/** - * Represents a Zoom out button. - */ -extern SDLButtonName const SDLButtonNameNavZoomOut; - -/** - * Represents a Pan up button - */ -extern SDLButtonName const SDLButtonNameNavPanUp; - -/** - * Represents a Pan up/right button - */ -extern SDLButtonName const SDLButtonNameNavPanUpRight; - -/** - * Represents a Pan right button - */ -extern SDLButtonName const SDLButtonNameNavPanRight; - -/** - * Represents a Pan down/right button - */ -extern SDLButtonName const SDLButtonNameNavPanDownRight; - -/** - * Represents a Pan down button - */ -extern SDLButtonName const SDLButtonNameNavPanDown; - -/** - * Represents a Pan down left button - */ -extern SDLButtonName const SDLButtonNameNavPanDownLeft; - -/** - * Represents a Pan left button - */ -extern SDLButtonName const SDLButtonNameNavPanLeft; - -/** - * Represents a Pan up left button - */ -extern SDLButtonName const SDLButtonNameNavPanUpLeft; - -/** - * Represents a Tilt button. If supported, this toggles between a top-down view and an angled/3D view. If your app supports different, but substantially similar options, then you may implement those. If you don't implement these or similar options, do not subscribe to this button. - */ -extern SDLButtonName const SDLButtonNameNavTiltToggle; - -/** - * Represents a Rotate clockwise button - */ -extern SDLButtonName const SDLButtonNameNavRotateClockwise; - -/** - * Represents a Rotate counterclockwise button - */ -extern SDLButtonName const SDLButtonNameNavRotateCounterClockwise; - -/** - * Represents a Heading toggle button. If supported, this toggles between locking the orientation to north or to the vehicle's heading. If your app supports different, but substantially similar options, then you may implement those. If you don't implement these or similar options, do not subscribe to this button. - */ -extern SDLButtonName const SDLButtonNameNavHeadingToggle; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.m deleted file mode 100644 index c0979df..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonName.m +++ /dev/null @@ -1,57 +0,0 @@ -// SDLButtonName.m -// - - -#import "SDLButtonName.h" - -SDLButtonName const SDLButtonNameOk = @"OK"; -SDLButtonName const SDLButtonNamePlayPause = @"PLAY_PAUSE"; -SDLButtonName const SDLButtonNameSeekLeft = @"SEEKLEFT"; -SDLButtonName const SDLButtonNameSeekRight = @"SEEKRIGHT"; -SDLButtonName const SDLButtonNameTuneUp = @"TUNEUP"; -SDLButtonName const SDLButtonNameTuneDown = @"TUNEDOWN"; -SDLButtonName const SDLButtonNamePreset0 = @"PRESET_0"; -SDLButtonName const SDLButtonNamePreset1 = @"PRESET_1"; -SDLButtonName const SDLButtonNamePreset2 = @"PRESET_2"; -SDLButtonName const SDLButtonNamePreset3 = @"PRESET_3"; -SDLButtonName const SDLButtonNamePreset4 = @"PRESET_4"; -SDLButtonName const SDLButtonNamePreset5 = @"PRESET_5"; -SDLButtonName const SDLButtonNamePreset6 = @"PRESET_6"; -SDLButtonName const SDLButtonNamePreset7 = @"PRESET_7"; -SDLButtonName const SDLButtonNamePreset8 = @"PRESET_8"; -SDLButtonName const SDLButtonNamePreset9 = @"PRESET_9"; -SDLButtonName const SDLButtonNameCustomButton = @"CUSTOM_BUTTON"; -SDLButtonName const SDLButtonNameSearch = @"SEARCH"; -SDLButtonName const SDLButtonNameACMax = @"AC_MAX"; -SDLButtonName const SDLButtonNameAC = @"AC"; -SDLButtonName const SDLButtonNameRecirculate = @"RECIRCULATE"; -SDLButtonName const SDLButtonNameFanUp = @"FAN_UP"; -SDLButtonName const SDLButtonNameFanDown = @"FAN_DOWN"; -SDLButtonName const SDLButtonNameTempUp = @"TEMP_UP"; -SDLButtonName const SDLButtonNameTempDown = @"TEMP_DOWN"; -SDLButtonName const SDLButtonNameDefrostMax = @"DEFROST_MAX"; -SDLButtonName const SDLButtonNameDefrostRear = @"DEFROST_REAR"; -SDLButtonName const SDLButtonNameDefrost = @"DEFROST"; -SDLButtonName const SDLButtonNameUpperVent = @"UPPER_VENT"; -SDLButtonName const SDLButtonNameLowerVent = @"LOWER_VENT"; -SDLButtonName const SDLButtonNameVolumeUp = @"VOLUME_UP"; -SDLButtonName const SDLButtonNameVolumeDown = @"VOLUME_DOWN"; -SDLButtonName const SDLButtonNameEject = @"EJECT"; -SDLButtonName const SDLButtonNameSource = @"SOURCE"; -SDLButtonName const SDLButtonNameShuffle = @"SHUFFLE"; -SDLButtonName const SDLButtonNameRepeat = @"REPEAT"; -SDLButtonName const SDLButtonNameNavCenterLocation = @"NAV_CENTER_LOCATION"; -SDLButtonName const SDLButtonNameNavZoomIn = @"NAV_ZOOM_IN"; -SDLButtonName const SDLButtonNameNavZoomOut = @"NAV_ZOOM_OUT"; -SDLButtonName const SDLButtonNameNavPanUp = @"NAV_PAN_UP"; -SDLButtonName const SDLButtonNameNavPanUpRight = @"NAV_PAN_UP_RIGHT"; -SDLButtonName const SDLButtonNameNavPanRight = @"NAV_PAN_RIGHT"; -SDLButtonName const SDLButtonNameNavPanDownRight = @"NAV_PAN_DOWN_RIGHT"; -SDLButtonName const SDLButtonNameNavPanDown = @"NAV_PAN_DOWN"; -SDLButtonName const SDLButtonNameNavPanDownLeft = @"NAV_PAN_DOWN_LEFT"; -SDLButtonName const SDLButtonNameNavPanLeft = @"NAV_PAN_LEFT"; -SDLButtonName const SDLButtonNameNavPanUpLeft = @"NAV_PAN_UP_LEFT"; -SDLButtonName const SDLButtonNameNavTiltToggle = @"NAV_TILT_TOGGLE"; -SDLButtonName const SDLButtonNameNavRotateClockwise = @"NAV_ROTATE_CLOCKWISE"; -SDLButtonName const SDLButtonNameNavRotateCounterClockwise = @"NAV_ROTATE_COUNTERCLOCKWISE"; -SDLButtonName const SDLButtonNameNavHeadingToggle = @"NAV_HEADING_TOGGLE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.h deleted file mode 100644 index c5769ca..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// SDLButtonPress.h -// - -#import "SDLRPCRequest.h" -#import "SDLModuleType.h" -#import "SDLButtonName.h" -#import "SDLButtonPressMode.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - This RPC allows a remote control type mobile application to simulate a hardware button press event. - - @since RPC 4.5 -*/ -@interface SDLButtonPress : SDLRPCRequest - -/** -Constructs a newly allocated SDLButtonPress object with the given parameters - -@param buttonName the name of the button -@param moduleType the module where the button should be pressed - -@return An instance of the SDLButtonPress class. -*/ -- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType __deprecated_msg(("Use initWithButtonName:moduleType:moduleId:buttonPressMode: instead"));; - -/** -Constructs a newly allocated SDLButtonPress object with the given parameters - -@param buttonName the name of the button -@param moduleType the module where the button should be pressed -@param moduleId the id of the module - -@return An instance of the SDLButtonPress class. -*/ -- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType moduleId:(nullable NSString *)moduleId __deprecated_msg(("Use initWithButtonName:moduleType:moduleId:buttonPressMode: instead"));; - -/** -Constructs a newly allocated SDLButtonPress object with the given parameters - -@param buttonName the name of the button -@param moduleType the module where the button should be pressed -@param moduleId the id of the module -@param buttonPressMode indicates LONG or SHORT button press event - -@return An instance of the SDLButtonPress class. -*/ -- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType moduleId:(nullable NSString *)moduleId buttonPressMode:(SDLButtonPressMode)buttonPressMode; - -/** - * The module where the button should be pressed. - * - */ -@property (strong, nonatomic) SDLModuleType moduleType; - -/** - * Id of a module, published by System Capability. - * - * Optional - */ -@property (nullable, strong, nonatomic) NSString *moduleId; - -/** - * The name of supported RC climate or radio button. - * - */ -@property (strong, nonatomic) SDLButtonName buttonName; - -/** - * Indicates whether this is a LONG or SHORT button press event. - * - */ -@property (strong, nonatomic) SDLButtonPressMode buttonPressMode; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.m deleted file mode 100644 index 419f0d7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPress.m +++ /dev/null @@ -1,99 +0,0 @@ -// -// SDLButtonPress.m -// - -#import "SDLButtonPress.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLButtonPress - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameButtonPress]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithButtonName:(SDLButtonName) buttonName moduleType:(SDLModuleType)moduleType { - self = [self init]; - if (!self) { - return nil; - } - - self.buttonName = buttonName; - self.moduleType = moduleType; - - return self; -} - -- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType moduleId:(nullable NSString *)moduleId { - self = [self init]; - if (!self) { - return nil; - } - - self.buttonName = buttonName; - self.moduleType = moduleType; - self.moduleId = moduleId; - - return self; -} - -- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType moduleId:(nullable NSString *)moduleId buttonPressMode:(SDLButtonPressMode)buttonPressMode { - self = [self init]; - if (!self) { - return nil; - } - - self.buttonName = buttonName; - self.moduleType = moduleType; - self.moduleId = moduleId; - self.buttonPressMode = buttonPressMode; - - return self; -} - -- (void)setModuleType:(SDLModuleType)moduleType { - [self.parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; -} - -- (SDLModuleType)moduleType { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; -} - -- (void)setButtonName:(SDLButtonName)buttonName { - [self.parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; -} - -- (SDLButtonName)buttonName { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; -} - -- (void)setButtonPressMode:(SDLButtonPressMode)buttonPressMode { - [self.parameters sdl_setObject:buttonPressMode forName:SDLRPCParameterNameButtonPressMode]; -} - -- (SDLButtonPressMode)buttonPressMode { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonPressMode error:&error]; -} - -- (void)setModuleId:(nullable NSString *)moduleId { - [self.parameters sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId]; -} - -- (nullable NSString *)moduleId { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error]; -} - -@end -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressMode.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressMode.h deleted file mode 100644 index 0272e0e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressMode.h +++ /dev/null @@ -1,22 +0,0 @@ -// SDLButtonPressMode.h -// - - -#import "SDLEnum.h" - -/** - * Indicates whether this is a LONG or SHORT button press - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLButtonPressMode SDL_SWIFT_ENUM; - -/** - * A button was released, after it was pressed for a long time. Actual timing is defined by the head unit and may vary. - */ -extern SDLButtonPressMode const SDLButtonPressModeLong; - -/** - * A button was released, after it was pressed for a short time. Actual timing is defined by the head unit and may vary. - */ -extern SDLButtonPressMode const SDLButtonPressModeShort; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressMode.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressMode.m deleted file mode 100644 index 48d3652..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressMode.m +++ /dev/null @@ -1,8 +0,0 @@ -// SDLButtonPressMode.m -// - - -#import "SDLButtonPressMode.h" - -SDLButtonPressMode const SDLButtonPressModeLong = @"LONG"; -SDLButtonPressMode const SDLButtonPressModeShort = @"SHORT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressResponse.h deleted file mode 100644 index fe23ec0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressResponse.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// SDLButtonPressResponse.h -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLButtonPress - */ -@interface SDLButtonPressResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressResponse.m deleted file mode 100644 index 0dde4c5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLButtonPressResponse.m +++ /dev/null @@ -1,24 +0,0 @@ -// -// SDLButtonPressResponse.m -// - -#import "SDLButtonPressResponse.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLButtonPressResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameButtonPress]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.h deleted file mode 100644 index abdd957..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLCacheFileManager.h -// SmartDeviceLink -// -// Created by James Lapinski on 3/10/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -@class SDLOnSystemRequest; - -NS_ASSUME_NONNULL_BEGIN - -typedef void (^ImageRetrievalCompletionHandler)(UIImage * _Nullable image, NSError * _Nullable error); - -@interface SDLCacheFileManager : NSObject - -/** - * Handles a system request from the head unit to use a lock screen icon from a URL. - * - * @param request The system request from the head unit for the icon specified in its URL. - * @param completion The handler called when the manager retrieves the icon or fails to do so with an error. -*/ -- (void)retrieveImageForRequest:(SDLOnSystemRequest *)request withCompletionHandler:(ImageRetrievalCompletionHandler)completion; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.m deleted file mode 100644 index e5b1e23..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCacheFileManager.m +++ /dev/null @@ -1,292 +0,0 @@ -// -// SDLCacheFileManager.m -// SmartDeviceLink -// -// Created by James Lapinski on 3/10/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLCacheFileManager.h" -#import "SDLError.h" -#import "SDLIconArchiveFile.h" -#import "SDLLogMacros.h" -#import "SDLOnSystemRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -static float DefaultConnectionTimeout = 45.0; -NSString *const SDLErrorDomainCacheManager = @"com.sdl.cacheManager"; - -@interface SDLCacheFileManager() - -@property (nonatomic, strong) NSURLSession *urlSession; -@property (strong, nonatomic, readonly) NSString *cacheFileBaseDirectory; -@property (strong, nonatomic, readonly) NSString *archiveFilePath; -@property (strong, nonatomic, nullable) NSURLSessionDataTask *dataTask; -@property (strong, nonatomic) NSFileManager *fileManager; - -@end - -@implementation SDLCacheFileManager - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; - configuration.timeoutIntervalForRequest = DefaultConnectionTimeout; - configuration.timeoutIntervalForResource = DefaultConnectionTimeout; - configuration.requestCachePolicy = NSURLRequestUseProtocolCachePolicy; - - _urlSession = [NSURLSession sessionWithConfiguration:configuration]; - _fileManager = [NSFileManager defaultManager]; - - return self; -} - -- (void)retrieveImageForRequest:(SDLOnSystemRequest *)request withCompletionHandler:(ImageRetrievalCompletionHandler)completion { - NSError *error = nil; - UIImage *icon = nil; - - // Check if the directory already exists; if it does not, create it - if (![self.fileManager fileExistsAtPath:self.cacheFileBaseDirectory]) { - [self.fileManager createDirectoryAtPath:self.cacheFileBaseDirectory withIntermediateDirectories:YES attributes:nil error:&error]; - - if (error != nil) { - SDLLogE(@"Could not create directory at specified path: %@; we will attempt to download and return image anyway", error); - } - } - - // Attempt to retrieve archive file from directory cache - SDLIconArchiveFile *iconArchiveFile = nil; - @try { - iconArchiveFile = [NSKeyedUnarchiver unarchiveObjectWithFile:self.archiveFilePath]; - } @catch (NSException *exception) { - SDLLogE(@"Unable to retrieve archive file from file path: %@", exception); - } - - // Check if there's no archive file in the directory. If there isn't clear the entire directory - if (iconArchiveFile == nil || iconArchiveFile.lockScreenIconCaches.count == 0) { - [self.class sdl_clearDirectoryWithPath:self.cacheFileBaseDirectory fileManager:self.fileManager]; - iconArchiveFile = [[SDLIconArchiveFile alloc] init]; - } - - // Loop through the icons in the cache file copy and check if it's the file we're looking for - NSArray *iconCachesCopy = [iconArchiveFile.lockScreenIconCaches copy]; - for (SDLLockScreenIconCache *iconCache in iconCachesCopy) { - // The icon isn't the one we're looking for - if (![iconCache.iconUrl isEqualToString:request.url]) { continue; } - - // The icon we're looking for has expired - if ([self.class numberOfDaysFromDateCreated:iconCache.lastModifiedDate] >= 30) { break; } - - // Create the file path for the image by hashing the URL which creates a guaranteed unique path name - NSString *imageFilePath = [self.cacheFileBaseDirectory stringByAppendingPathComponent:[self.class sdl_md5HashFromString:request.url]]; - icon = [UIImage imageWithContentsOfFile:imageFilePath]; - - // If we fail to get icon at path, break loop early to download new icon - if (icon == nil) { - SDLLogW(@"No icon was found at the path, we need to download a new icon"); - [self.class sdl_clearDirectoryWithPath:self.cacheFileBaseDirectory fileManager:self.fileManager]; - iconArchiveFile = [[SDLIconArchiveFile alloc] init]; - break; - } - - return completion(icon, nil); - } - - // If we got to this point, retrieving the icon failed for some reason. We will download the image and try to store it instead. - [self sdl_downloadIconFromRequestURL:request.url withCompletionHandler:^(UIImage * _Nullable image, NSError * _Nullable error) { - if (error != nil) { - SDLLogE(@"Downloading the lock screen icon failed with error: %@", error); - return completion(nil, error); - } - - // Save lock screen icon to file path - NSString *iconFilePath = [self.class sdl_writeImage:image toFilePath:self.cacheFileBaseDirectory imageURL:request.url]; - if (iconFilePath == nil) { - SDLLogE(@"Could not save lock screen icon to path with error: %@; we will return the image anyway", error); - return completion(image, nil); - } - - // Update archive file with icon - BOOL writeSuccess = [self updateArchiveFileWithIconURL:request.url iconFilePath:iconFilePath archiveFile:iconArchiveFile error:&error]; - if (error != nil || !writeSuccess) { - SDLLogE(@"Could not update archive file with error: %@; we will return the image anyway", error); - } - - return completion(image, nil); - }]; -} - - -#pragma mark - Cache Directory and Files - -/** - * Handles the request to clear all files from lock screen icon directory in cache. -*/ -+ (void)sdl_clearDirectoryWithPath:(NSString *)path fileManager:(NSFileManager *)fileManager { - NSError *error = nil; - for (NSString *file in [fileManager contentsOfDirectoryAtPath:path error:&error]) { - if (error != nil) { - SDLLogE(@"Cannot clear directory; failed retrieving contents of directory: %@ with error: %@", path, error); - break; - } - - BOOL success = [fileManager removeItemAtPath:[path stringByAppendingPathComponent:file] error:&error]; - if (!success || error != nil) { - SDLLogE(@"Could not clear directory at path: %@; Could not delete file: %@", path, error); - break; - } - } -} - -/** - * Handles request to save icon image to cache. - * - * @param icon The icon to be saved to the cache - * @param filePath The directory location to save the icon at - * @param urlString The url of the icon to be hashed and used as file name - * @return A string representation of the directory the icon was saved to -*/ -+ (nullable NSString *)sdl_writeImage:(UIImage *)icon toFilePath:(NSString *)filePath imageURL:(NSString *)urlString { - NSError *error = nil; - - NSData *iconPNGData = UIImagePNGRepresentation(icon); - NSString *iconStorageName = [self.class sdl_md5HashFromString:urlString]; - NSString *imageFilePath = [filePath stringByAppendingPathComponent:[iconStorageName stringByAppendingString:@".png"]]; - - BOOL writeSuccess = [iconPNGData writeToFile:imageFilePath atomically:YES]; - if (!writeSuccess) { - SDLLogE(@"Could not write image file to specified path: %@", error); - return nil; - } - - return imageFilePath; -} - -/** - * Handles request to update archive file. Will create a new archive file if one is not present. - * - * @param iconURL The System request URL used to retrieve the icon - * @param iconFilePath The directory path where the icon file is held - * @param archiveFile Current archive file to update - * @param error An error that occurs if the archiver fails to archive the object to file -*/ -- (BOOL)updateArchiveFileWithIconURL:(NSString *)iconURL - iconFilePath:(NSString *)iconFilePath - archiveFile:(SDLIconArchiveFile *)archiveFile - error:(NSError **)error { - NSMutableArray *archiveArray = [archiveFile.lockScreenIconCaches mutableCopy]; - - // Need to remove duplicate SDLLockScreenIconCache object if handling expired icon - for (SDLLockScreenIconCache *iconCacheCopy in archiveArray) { - if ([iconCacheCopy.iconUrl isEqualToString:iconURL]) { - [archiveArray removeObject:iconCacheCopy]; - break; - } - } - - // Add the new file to the archive - [archiveArray addObject:[[SDLLockScreenIconCache alloc] initWithIconUrl:iconURL iconFilePath:iconFilePath]]; - archiveFile.lockScreenIconCaches = archiveArray; - - // HAX: Update this when we are iOS 11.0+. You will need to create a data object using 'archivedDataWithRootObject:requiringSecureCoding:error:', and write it to file using 'writeToFile:options:error:' - // Write the new archive to disk - BOOL writeSuccess = [NSKeyedArchiver archiveRootObject:archiveFile toFile:self.archiveFilePath]; - if (!writeSuccess) { - if (!*error) { - *error = [NSError errorWithDomain:SDLErrorDomainCacheFileManager code:SDLCacheManagerErrorUpdateIconArchiveFileFailure userInfo:nil]; - SDLLogE(@"Error attempting to write archive file to cache: %@", *error); - } - - return NO; - } - - return YES; -} - - -#pragma mark - Directory Getters - -- (NSString *)cacheFileBaseDirectory { - NSString *cacheDirectory = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject; - return [cacheDirectory stringByAppendingPathComponent:@"/sdl/lockScreenIcon/"]; -} - -- (NSString *)archiveFilePath { - return [self.cacheFileBaseDirectory stringByAppendingPathComponent:@"archiveCacheFile.plist"]; -} - - -#pragma mark - Download Image - -/** - * Handles request to download icon from request - * - * @param requestURL The System request URL used to download icon - * @param completion The completion handler is called when the icon download succeeds or fails with error -*/ -- (void)sdl_downloadIconFromRequestURL:(NSString *)requestURL withCompletionHandler:(ImageRetrievalCompletionHandler)completion { - NSURL *url = [NSURL URLWithString:requestURL]; - if ([url.scheme isEqualToString:@"http"]) { - url = [NSURL URLWithString:[requestURL stringByReplacingCharactersInRange:NSMakeRange(0, 4) withString:@"https"]]; - } - - self.dataTask = [self.urlSession dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { - if (error != nil) { - SDLLogW(@"Lock screen icon download task failed: %@", error); - return completion(nil, error); - } - - UIImage *icon = [UIImage imageWithData:data]; - if (icon == nil) { - SDLLogW(@"Returned data conversion to image failed: %@", error); - return completion(nil, error); - } - - return completion(icon, nil); - }]; - - [self.dataTask resume]; -} - - -#pragma mark - Helper Methods - -/** - * Creates a directory friendly string representation of a URL string by hashing the URL using the MD5 hash function. - * - * HAX: A MD5 hash always creates a string with 32 characters (128-bits). Due to some implementations of Core not following the spec, file names that are too long are being rejected. To try to accommodate this setup, hashed file names are being truncated to 16 characters. - * - * @param string The string to hash - * @return A MD5 hash of the string - */ -+ (NSString *)sdl_md5HashFromString:(NSString *)string { - const char* str = [string UTF8String]; - unsigned char hash[CC_MD5_DIGEST_LENGTH]; - CC_MD5(str, (CC_LONG)strlen(str), hash); - NSMutableString *formattedHash = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH]; - // HAX: To shorten the string to 16 characters, the loop has been shortened to 8 fom 16. - for (int i = 0; i < CC_MD5_DIGEST_LENGTH / 2; i += 1) { - [formattedHash appendFormat:@"%02x", hash[i]]; - } - return formattedHash; -} - -/** - * Determines the number of days from a spicified date. - * - * @param date The date to be compared against - * @return Integer representing number of days - */ -+ (NSInteger)numberOfDaysFromDateCreated:(NSDate *)date { - NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay fromDate:date toDate:[NSDate date] options:kNilOptions]; - return components.day; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.h deleted file mode 100644 index 20b0976..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.h +++ /dev/null @@ -1,115 +0,0 @@ -// -// SDLCancelInteraction.h -// SmartDeviceLink -// -// Created by Nicole on 7/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Used to dismiss a modal view programmatically without needing to wait for the timeout to complete. Can be used to dismiss alerts, scrollable messages, sliders, and perform interactions (i.e. pop-up menus). - - @see SDLAlert, SDLScrollableMessage, SDLSlider, SDLPerformInteraction - */ -@interface SDLCancelInteraction : SDLRPCRequest - -/** - Convenience init for dismissing the currently presented modal view (either an alert, slider, scrollable message, or perform interation). - - @param functionID The ID of the type of modal view to dismiss - @return A SDLCancelInteraction object - */ -- (instancetype)initWithFunctionID:(UInt32)functionID; - -/** - Convenience init for dismissing a specific view. - - @param functionID The ID of the type of interaction to dismiss - @param cancelID The ID of the specific interaction to dismiss - @return A SDLCancelInteraction object - */ -- (instancetype)initWithFunctionID:(UInt32)functionID cancelID:(UInt32)cancelID; - -/** - Convenience init for dismissing an alert. - - @param cancelID The ID of the specific interaction to dismiss - @return A SDLCancelInteraction object - */ -- (instancetype)initWithAlertCancelID:(UInt32)cancelID; - -/** - Convenience init for dismissing a slider. - - @param cancelID The ID of the specific interaction to dismiss - @return A SDLCancelInteraction object - */ -- (instancetype)initWithSliderCancelID:(UInt32)cancelID; - -/** - Convenience init for dismissing a scrollable message. - - @param cancelID The ID of the specific interaction to dismiss - @return A SDLCancelInteraction object - */ -- (instancetype)initWithScrollableMessageCancelID:(UInt32)cancelID; - -/** - Convenience init for dismissing a perform interaction. - - @param cancelID The ID of the specific interaction to dismiss - @return A SDLCancelInteraction object - */ -- (instancetype)initWithPerformInteractionCancelID:(UInt32)cancelID; - -/** - Convenience init for dismissing the currently presented alert. - - @return A SDLCancelInteraction object - */ -+ (instancetype)alert; - -/** - Convenience init for dismissing the currently presented slider. - - @return A SDLCancelInteraction object - */ -+ (instancetype)slider; - -/** - Convenience init for dismissing the currently presented scrollable message. - - @return A SDLCancelInteraction object - */ -+ (instancetype)scrollableMessage; - -/** - Convenience init for dismissing the currently presented perform interaction. - - @return A SDLCancelInteraction object - */ -+ (instancetype)performInteraction NS_SWIFT_NAME(performInteraction()); - -/** - The ID of the specific interaction to dismiss. If not set, the most recent of the RPC type set in functionID will be dismissed. - - Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *cancelID; - -/** - The ID of the type of interaction to dismiss. - - Only values 10 (PerformInteractionID), 12 (AlertID), 25 (ScrollableMessageID), and 26 (SliderID) are permitted. - - Integer, Required - */ -@property (strong, nonatomic) NSNumber *functionID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.m deleted file mode 100644 index 40de4fb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteraction.m +++ /dev/null @@ -1,103 +0,0 @@ -// -// SDLCancelInteraction.m -// SmartDeviceLink -// -// Created by Nicole on 7/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLCancelInteraction.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLFunctionID.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLCancelInteraction - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameCancelInteraction]) { - } - return self; -} -#pragma clang diagnostic pop - - -- (instancetype)initWithFunctionID:(UInt32)functionID { - self = [self init]; - if (!self) { - return nil; - } - - self.functionID = @(functionID); - - return self; -} - -- (instancetype)initWithFunctionID:(UInt32)functionID cancelID:(UInt32)cancelID { - self = [self initWithFunctionID:functionID]; - if (!self) { - return nil; - } - - self.cancelID = @(cancelID); - - return self; -} - -- (instancetype)initWithAlertCancelID:(UInt32)cancelID { - return [self initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameAlert].unsignedIntValue cancelID:cancelID]; -} - -- (instancetype)initWithSliderCancelID:(UInt32)cancelID { - return [self initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameSlider].unsignedIntValue cancelID:cancelID]; -} - -- (instancetype)initWithScrollableMessageCancelID:(UInt32)cancelID { - return [self initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameScrollableMessage].unsignedIntValue cancelID:cancelID]; -} - -- (instancetype)initWithPerformInteractionCancelID:(UInt32)cancelID { - return [self initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNamePerformInteraction].unsignedIntValue cancelID:cancelID]; -} - -+ (instancetype)alert { - return [[self alloc] initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameAlert].unsignedIntValue]; -} - -+ (instancetype)slider { - return [[self alloc] initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameSlider].unsignedIntValue]; -} - -+ (instancetype)scrollableMessage { - return [[self alloc] initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameScrollableMessage].unsignedIntValue]; -} - -+ (instancetype)performInteraction { - return [[self alloc] initWithFunctionID:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNamePerformInteraction].unsignedIntValue]; -} - -- (void)setCancelID:(nullable NSNumber *)cancelID { - [self.parameters sdl_setObject:cancelID forName:SDLRPCParameterNameCancelID]; -} - -- (nullable NSNumber *)cancelID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCancelID ofClass:NSNumber.class error:nil]; -} - -- (void)setFunctionID:(NSNumber *)functionID { - [self.parameters sdl_setObject:functionID forName:SDLRPCParameterNameFunctionID]; -} - -- (NSNumber *)functionID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameFunctionID ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.h deleted file mode 100644 index 9a2ba5c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// SDLCancelInteractionResponse.h -// SmartDeviceLink -// -// Created by Nicole on 7/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to the request to dismiss a modal view. If no applicable request can be dismissed, the `resultCode` will be `IGNORED`. - */ -@interface SDLCancelInteractionResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.m deleted file mode 100644 index 325fa96..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCancelInteractionResponse.m +++ /dev/null @@ -1,27 +0,0 @@ -// -// SDLCancelInteractionResponse.m -// SmartDeviceLink -// -// Created by Nicole on 7/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLCancelInteractionResponse.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLCancelInteractionResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameCancelInteraction]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarModeStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarModeStatus.h deleted file mode 100644 index e98ada7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarModeStatus.h +++ /dev/null @@ -1,32 +0,0 @@ -// SDLCarModeStatus.h -// - - -#import "SDLEnum.h" - -/** - Describes the carmode the vehicle is in. Used in ClusterModeStatus - - * Since SmartDeviceLink 2.0 - */ -typedef SDLEnum SDLCarModeStatus SDL_SWIFT_ENUM; - -/** - Provides carmode NORMAL to each module. - */ -extern SDLCarModeStatus const SDLCarModeStatusNormal; - -/** - Provides carmode FACTORY to each module. - */ -extern SDLCarModeStatus const SDLCarModeStatusFactory; - -/** - Provides carmode TRANSPORT to each module. - */ -extern SDLCarModeStatus const SDLCarModeStatusTransport; - -/** - Provides carmode CRASH to each module. - */ -extern SDLCarModeStatus const SDLCarModeStatusCrash; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarModeStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarModeStatus.m deleted file mode 100644 index b93293d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarModeStatus.m +++ /dev/null @@ -1,10 +0,0 @@ -// SDLCarModeStatus.m -// - - -#import "SDLCarModeStatus.h" - -SDLCarModeStatus const SDLCarModeStatusNormal = @"NORMAL"; -SDLCarModeStatus const SDLCarModeStatusFactory = @"FACTORY"; -SDLCarModeStatus const SDLCarModeStatusTransport = @"TRANSPORT"; -SDLCarModeStatus const SDLCarModeStatusCrash = @"CRASH"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.h deleted file mode 100755 index 45d2f0a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// SDLCarWindow.h -// -// Created by Muller, Alexander (A.) on 10/6/16. -// Copyright © 2016 Ford Motor Company. All rights reserved. -// - -#import - -@class SDLStreamingMediaConfiguration; -@class SDLStreamingVideoLifecycleManager; - -NS_ASSUME_NONNULL_BEGIN - -/** - SDLCarWindow is a class somewhat mimicking a `UIWindow` in that it has a `UIViewController` root, but it takes that ViewController, listens for a start to Video Streaming, and streams whatever is on that view controller to the head unit. - */ -@interface SDLCarWindow : NSObject - -/** - Initialize the CarWindow automatic streamer. - @param streamManager The stream manager to use for retrieving head unit dimension details and forwarding video frame data - @param configuration The streaming media configuration - @return An instance of this class - */ -- (instancetype)initWithStreamManager:(SDLStreamingVideoLifecycleManager *)streamManager configuration:(SDLStreamingMediaConfiguration *)configuration; - -/** - View controller that will be streamed. - */ -@property (strong, nonatomic, nullable) UIViewController *rootViewController; - -/** - Called by SDLStreamingMediaManager in sync with the streaming framerate. Captures a screenshot of the view controller and sends the data to Core. - */ -- (void)syncFrame; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.m deleted file mode 100644 index 12f2e83..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindow.m +++ /dev/null @@ -1,267 +0,0 @@ -// -// SDLCarWindow.m -// Projection -// -// Originally created by Muller, Alexander (A.) on 10/6/16. -// Copyright © 2016 Ford Motor Company. All rights reserved. -// -// Updated by Joel Fischer, Livio Inc., on 11/27/17. - -#import -#import -#import - -#import "SDLCarWindow.h" -#import "SDLGlobals.h" -#import "SDLImageResolution.h" -#import "SDLLogMacros.h" -#import "SDLNotificationConstants.h" -#import "SDLError.h" -#import "SDLStateMachine.h" -#import "SDLStreamingMediaConfiguration.h" -#import "SDLStreamingVideoLifecycleManager.h" -#import "SDLStreamingVideoScaleManager.h" -#import "SDLStreamingMediaManagerConstants.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLCarWindow () - -@property (weak, nonatomic, nullable) SDLStreamingVideoLifecycleManager *streamManager; - -@property (assign, nonatomic) SDLCarWindowRenderingType renderingType; -@property (assign, nonatomic) BOOL drawsAfterScreenUpdates; -@property (assign, nonatomic) BOOL allowMultipleOrientations; - -@property (assign, nonatomic, getter=isLockScreenPresenting) BOOL lockScreenPresenting; -@property (assign, nonatomic, getter=isLockScreenDismissing) BOOL lockScreenBeingDismissed; - -@property (assign, nonatomic, getter=isVideoStreamStarted) BOOL videoStreamStarted; - -@end - -@implementation SDLCarWindow - -- (instancetype)initWithStreamManager:(SDLStreamingVideoLifecycleManager *)streamManager configuration:(SDLStreamingMediaConfiguration *)configuration { - self = [super init]; - if (!self) { return nil; } - - _streamManager = streamManager; - _renderingType = configuration.carWindowRenderingType; - _allowMultipleOrientations = configuration.allowMultipleViewControllerOrientations; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_didReceiveVideoStreamStarted:) name:SDLVideoStreamDidStartNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_didReceiveVideoStreamStopped:) name:SDLVideoStreamDidStopNotification object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_willPresentLockScreenViewController:) name:SDLLockScreenManagerWillPresentLockScreenViewController object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_willDismissLockScreenViewController:) name:SDLLockScreenManagerWillDismissLockScreenViewController object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_didPresentLockScreenViewController:) name:SDLLockScreenManagerDidPresentLockScreenViewController object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_didDismissLockScreenViewController:) name:SDLLockScreenManagerDidDismissLockScreenViewController object:nil]; - - return self; -} - -- (void)syncFrame { - if (!self.streamManager.isVideoConnected || self.streamManager.isVideoStreamingPaused) { - return; - } - - if (self.isLockScreenPresenting || self.isLockScreenDismissing) { - SDLLogD(@"Paused CarWindow, lock screen moving"); - return; - } - - CGRect bounds = self.rootViewController.view.bounds; - UIGraphicsBeginImageContextWithOptions(bounds.size, YES, 1.0f); - switch (self.renderingType) { - case SDLCarWindowRenderingTypeLayer: { - [self.rootViewController.view.layer renderInContext:UIGraphicsGetCurrentContext()]; - } break; - case SDLCarWindowRenderingTypeViewAfterScreenUpdates: { - [self.rootViewController.view drawViewHierarchyInRect:bounds afterScreenUpdates:YES]; - } break; - case SDLCarWindowRenderingTypeViewBeforeScreenUpdates: { - [self.rootViewController.view drawViewHierarchyInRect:bounds afterScreenUpdates:NO]; - } break; - } - - UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - - CGImageRef imageRef = screenshot.CGImage; - CVPixelBufferRef pixelBuffer = [self.class sdl_pixelBufferForImageRef:imageRef usingPool:self.streamManager.pixelBufferPool]; - if (pixelBuffer != nil) { - BOOL success = [self.streamManager sendVideoData:pixelBuffer]; - if (!success) { - SDLLogE(@"Video frame will not be sent because the video frame encoding failed"); - return; - } - CVPixelBufferRelease(pixelBuffer); - } else { - SDLLogE(@"Video frame will not be sent because the pixelBuffer is nil"); - } -} - -#pragma mark - SDLNavigationLockScreenManager Notifications -- (void)sdl_willPresentLockScreenViewController:(NSNotification *)notification { - self.lockScreenPresenting = YES; -} - -- (void)sdl_didPresentLockScreenViewController:(NSNotification *)notification { - self.lockScreenPresenting = NO; -} - -- (void)sdl_willDismissLockScreenViewController:(NSNotification *)notification { - self.lockScreenBeingDismissed = YES; -} - -- (void)sdl_didDismissLockScreenViewController:(NSNotification *)notification { - self.lockScreenBeingDismissed = NO; -} - -#pragma mark - SDLNavigationLifecycleManager Notifications -- (void)sdl_didReceiveVideoStreamStarted:(NSNotification *)notification { - self.videoStreamStarted = true; - - SDLLogD(@"Video stream started"); - - dispatch_async(dispatch_get_main_queue(), ^{ - [self sdl_applyDisplayDimensionsToRootViewController:self.rootViewController]; - }); -} - -- (void)sdl_didReceiveVideoStreamStopped:(NSNotification *)notification { - self.videoStreamStarted = false; - - dispatch_async(dispatch_get_main_queue(), ^{ - // And also reset the streamingViewController's frame, because we are about to show it. - self.rootViewController.view.frame = [UIScreen mainScreen].bounds; - SDLLogD(@"Video stream ended, setting view controller frame back: %@", NSStringFromCGRect(self.rootViewController.view.frame)); - }); -} - -#pragma mark - Custom Accessors -- (void)setRootViewController:(nullable UIViewController *)rootViewController { - dispatch_async(dispatch_get_main_queue(), ^{ - if (rootViewController == nil || !self.isVideoStreamStarted) { - self->_rootViewController = rootViewController; - return; - } - - if (!self.allowMultipleOrientations - && !(rootViewController.supportedInterfaceOrientations == UIInterfaceOrientationMaskPortrait || - rootViewController.supportedInterfaceOrientations == UIInterfaceOrientationMaskLandscapeLeft || - rootViewController.supportedInterfaceOrientations == UIInterfaceOrientationMaskLandscapeRight)) { - @throw [NSException sdl_carWindowOrientationException]; - } - - [self sdl_applyDisplayDimensionsToRootViewController:rootViewController]; - self->_rootViewController = rootViewController; - }); -} - -#pragma mark - Private Helpers -+ (nullable CVPixelBufferRef)sdl_pixelBufferForImageRef:(CGImageRef)imageRef usingPool:(CVPixelBufferPoolRef)pool { - size_t imageWidth = CGImageGetWidth(imageRef); - size_t imageHeight = CGImageGetHeight(imageRef); - - CVPixelBufferRef pixelBuffer; - CVReturn result = CVPixelBufferPoolCreatePixelBuffer(kCFAllocatorDefault, pool, &pixelBuffer); - if (result != kCVReturnSuccess) { - return nil; - } - - CVPixelBufferLockBaseAddress(pixelBuffer, 0); - void *data = CVPixelBufferGetBaseAddress(pixelBuffer); - CGColorSpaceRef rgbColorSpace = CGColorSpaceCreateDeviceRGB(); - CGContextRef context = CGBitmapContextCreate(data, imageWidth, imageHeight, 8, CVPixelBufferGetBytesPerRow(pixelBuffer), rgbColorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst); - CGContextDrawImage(context, CGRectMake(0, 0, imageWidth, imageHeight), imageRef); - CGColorSpaceRelease(rgbColorSpace); - - CGContextRelease(context); - - CVPixelBufferUnlockBaseAddress(pixelBuffer, 0); - - return pixelBuffer; -} -/** - Sets the rootViewController's frame to the display's viewport dimensions. - - @param rootViewController The view controller to resize - */ -- (void)sdl_applyDisplayDimensionsToRootViewController:(UIViewController *)rootViewController { - if (self.streamManager.videoScaleManager.appViewportFrame.size.width == 0) { - // The dimensions of the display screen is unknown because the connected head unit did not provide a screen resolution in the `RegisterAppInterfaceResponse` or in the video start service ACK. - SDLLogW(@"The dimensions of the display's screen are unknown. The CarWindow frame will not be resized."); - return; - } - - if (CGRectEqualToRect(rootViewController.view.frame, self.streamManager.videoScaleManager.appViewportFrame)) { - SDLLogV(@"The rootViewController frame is already the correct size: %@", NSStringFromCGRect(rootViewController.view.frame)); - return; - } - - rootViewController.view.frame = self.streamManager.videoScaleManager.appViewportFrame; - rootViewController.view.bounds = rootViewController.view.frame; - - SDLLogD(@"Setting CarWindow frame to: %@", NSStringFromCGRect(rootViewController.view.frame)); -} - -#pragma mark Backgrounded Screen / Text - -+ (UIImage*)sdl_imageWithText:(NSString*)text size:(CGSize)size { - CGRect frame = CGRectMake(0, 0, size.width, size.height); - UIGraphicsBeginImageContextWithOptions(frame.size, NO, 1.0); - CGContextRef context = UIGraphicsGetCurrentContext(); - - CGContextSetFillColorWithColor(context, [UIColor blackColor].CGColor); - CGContextFillRect(context, frame); - CGContextSaveGState(context); - - NSMutableParagraphStyle* textStyle = NSMutableParagraphStyle.defaultParagraphStyle.mutableCopy; - textStyle.alignment = NSTextAlignmentCenter; - - NSDictionary* textAttributes = @{ - NSFontAttributeName: [self sdl_fontFittingSize:frame.size forText:text], - NSForegroundColorAttributeName: [UIColor whiteColor], - NSParagraphStyleAttributeName: textStyle - }; - CGRect textFrame = [text boundingRectWithSize:size - options:NSStringDrawingUsesLineFragmentOrigin - attributes:textAttributes - context:nil]; - - CGRect textInset = CGRectMake(0, - (frame.size.height - CGRectGetHeight(textFrame)) / 2.0, - frame.size.width, - frame.size.height); - - [text drawInRect:textInset - withAttributes:textAttributes]; - - CGContextRestoreGState(context); - UIImage* image = UIGraphicsGetImageFromCurrentImageContext(); - - return image; -} - -+ (UIFont*)sdl_fontFittingSize:(CGSize)size forText:(NSString*)text { - CGFloat fontSize = 100; - while (fontSize > 0.0) { - CGSize textSize = [text boundingRectWithSize:CGSizeMake(size.width, CGFLOAT_MAX) - options:NSStringDrawingUsesLineFragmentOrigin - attributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:fontSize]} - context:nil].size; - - if (textSize.height <= size.height) { break; } - - fontSize -= 10.0; - } - - return [UIFont boldSystemFontOfSize:fontSize]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindowViewController.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindowViewController.h deleted file mode 100644 index ef46095..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindowViewController.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// SDLCarWindowViewController.h -// SmartDeviceLink -// -// Created by Joel Fischer on 12/12/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -/** - Note that if this is embedded in a UINavigationController and UITabBarController, it will not lock orientation. You must lock your container controller to a specific orientation. - */ -@interface SDLCarWindowViewController : UIViewController - -/** - The supported interface orientation you wish to use. Defaults to MaskPortrait. - */ -@property (nonatomic, assign) UIInterfaceOrientation supportedOrientation; - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindowViewController.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindowViewController.m deleted file mode 100644 index 5f6cbdb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCarWindowViewController.m +++ /dev/null @@ -1,56 +0,0 @@ -// -// SDLCarWindowViewController.m -// SmartDeviceLink -// -// Created by Joel Fischer on 12/12/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLCarWindowViewController.h" - -@implementation SDLCarWindowViewController - -- (instancetype)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (!self) { return nil; } - - [self commonInit]; - - return self; -} - -- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (!self) { return nil; } - - [self commonInit]; - - return self; -} - -- (void)commonInit { - _supportedOrientation = 0; -} - -- (void)viewDidLoad { - [super viewDidLoad]; -} - -- (void)didReceiveMemoryWarning { - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -- (BOOL)shouldAutorotate { - return NO; -} - -- (UIInterfaceOrientationMask)supportedInterfaceOrientations { - if (self.supportedOrientation == 0) { - return UIInterfaceOrientationMaskPortrait; - } else { - return (1 << self.supportedOrientation); - } -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.h deleted file mode 100644 index 5e16d16..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.h +++ /dev/null @@ -1,86 +0,0 @@ -// SDLChangeRegistration.h -// - - -#import "SDLRPCRequest.h" -#import "SDLLanguage.h" - -@class SDLTTSChunk; - -/** - * If the app recognizes during the app registration that the SDL HMI language (voice/TTS and/or display) does not match the app language, the app will be able (but does not need) to change this registration with changeRegistration prior to app being brought into focus. - * - * Any HMILevel allowed - * - * @since SDL 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLChangeRegistration : SDLRPCRequest - -/** -Constructs a newly allocated SDLChangeRegistration object with required parameters - -@param language the name of the button -@param hmiDisplayLanguage the module where the button should be pressed - -@return An instance of the SDLChangeRegistration class. -*/ -- (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage; - -/** -Constructs a newly allocated SDLChangeRegistration object with all parameters - -@param language the language the app wants to change to -@param hmiDisplayLanguage HMI display language -@param appName request a new app name registration -@param ttsName request a new TTSName registration -@param ngnMediaScreenAppName request a new app short name registration -@param vrSynonyms request a new VR synonyms registration - -@return An instance of the SDLChangeRegistration class. -*/ -- (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage appName:(nullable NSString *)appName ttsName:(nullable NSArray *)ttsName ngnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName vrSynonyms:(nullable NSArray *)vrSynonyms; - -/** - * The language the app wants to change to - */ -@property (strong, nonatomic) SDLLanguage language; - -/** - * HMI display language - */ -@property (strong, nonatomic) SDLLanguage hmiDisplayLanguage; - -/** - * Request a new app name registration - * - * Optional, Max string length 100 chars - */ -@property (nullable, copy, nonatomic) NSString *appName; - -/** - * Request a new TTSName registration. - * - * Optional, Array of SDLTTSChunk, 1 - 100 elements - */ -@property (nullable, copy, nonatomic) NSArray *ttsName; - -/** - * Request a new app short name registration - * - * Optional, Max string length 100 chars - */ -@property (nullable, copy, nonatomic) NSString *ngnMediaScreenAppName; - -/** - * Request a new VR synonyms registration - * - * Optional, Array of NSString, 1 - 100 elements, max string length 40 chars - */ -@property (nullable, copy, nonatomic) NSArray *vrSynonyms; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.m deleted file mode 100644 index 87a14cb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistration.m +++ /dev/null @@ -1,102 +0,0 @@ -// SDLChangeRegistration.m -// - - -#import "SDLChangeRegistration.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLTTSChunk.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLChangeRegistration - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameChangeRegistration]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage { - self = [self initWithLanguage:language hmiDisplayLanguage:hmiDisplayLanguage appName:nil ttsName:nil ngnMediaScreenAppName:nil vrSynonyms:nil]; - if (!self) { - return nil; - } - - return self; -} - -- (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage appName:(nullable NSString *)appName ttsName:(nullable NSArray *)ttsName ngnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName vrSynonyms:(nullable NSArray *)vrSynonyms { - self = [self init]; - if (!self) { - return nil; - } - - self.language = language; - self.hmiDisplayLanguage = hmiDisplayLanguage; - self.appName = appName; - self.ttsName = ttsName; - self.ngnMediaScreenAppName = ngnMediaScreenAppName; - self.vrSynonyms = vrSynonyms; - - return self; -} - -- (void)setLanguage:(SDLLanguage)language { - [self.parameters sdl_setObject:language forName:SDLRPCParameterNameLanguage]; -} - -- (SDLLanguage)language { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameLanguage error:&error]; -} - -- (void)setHmiDisplayLanguage:(SDLLanguage )hmiDisplayLanguage { - [self.parameters sdl_setObject:hmiDisplayLanguage forName:SDLRPCParameterNameHMIDisplayLanguage]; -} - -- (SDLLanguage)hmiDisplayLanguage { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameHMIDisplayLanguage error:&error]; -} - -- (void)setAppName:(nullable NSString *)appName { - [self.parameters sdl_setObject:appName forName:SDLRPCParameterNameAppName]; -} - -- (nullable NSString *)appName { - return [[self.parameters sdl_objectForName:SDLRPCParameterNameAppName ofClass:NSString.class error:nil] copy]; -} - -- (void)setTtsName:(nullable NSArray *)ttsName { - [self.parameters sdl_setObject:ttsName forName:SDLRPCParameterNameTTSName]; -} - -- (nullable NSArray *)ttsName { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameTTSName ofClass:SDLTTSChunk.class error:nil]; -} - -- (void)setNgnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName { - [self.parameters sdl_setObject:ngnMediaScreenAppName forName:SDLRPCParameterNameNGNMediaScreenAppName]; -} - -- (nullable NSString *)ngnMediaScreenAppName { - return [self.parameters sdl_objectForName:SDLRPCParameterNameNGNMediaScreenAppName ofClass:NSString.class error:nil]; -} - -- (void)setVrSynonyms:(nullable NSArray *)vrSynonyms { - [self.parameters sdl_setObject:vrSynonyms forName:SDLRPCParameterNameVRSynonyms]; -} - -- (nullable NSArray *)vrSynonyms { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameVRSynonyms ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistrationResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistrationResponse.h deleted file mode 100644 index 55f733f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistrationResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLChangeRegistrationResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to SDLChangeRegistrations - - @since SDL 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLChangeRegistrationResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistrationResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistrationResponse.m deleted file mode 100644 index a404935..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChangeRegistrationResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLChangeRegistrationResponse.m -// - - -#import "SDLChangeRegistrationResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLChangeRegistrationResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameChangeRegistration]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCharacterSet.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCharacterSet.h deleted file mode 100644 index 51771fe..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCharacterSet.h +++ /dev/null @@ -1,33 +0,0 @@ -// SDLCharacterSet.h -// - - -#import "SDLEnum.h" - -/** - * Character sets supported by SDL. Used to describe text field capabilities. - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLCharacterSet SDL_SWIFT_ENUM; - -/** - Character Set Type 2 - */ -extern SDLCharacterSet const SDLCharacterSetType2; - -/** - Character Set Type 5 - */ -extern SDLCharacterSet const SDLCharacterSetType5; - -/** - Character Set CID1 - */ -extern SDLCharacterSet const SDLCharacterSetCID1; - -/** - Character Set CID2 - */ -extern SDLCharacterSet const SDLCharacterSetCID2; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCharacterSet.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCharacterSet.m deleted file mode 100644 index 64733c0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCharacterSet.m +++ /dev/null @@ -1,10 +0,0 @@ -// SDLCharacterSet.m -// - - -#import "SDLCharacterSet.h" - -SDLCharacterSet const SDLCharacterSetType2 = @"TYPE2SET"; -SDLCharacterSet const SDLCharacterSetType5 = @"TYPE5SET"; -SDLCharacterSet const SDLCharacterSetCID1 = @"CID1SET"; -SDLCharacterSet const SDLCharacterSetCID2 = @"CID2SET"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.h deleted file mode 100644 index a7a9f14..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// SDLCheckChoiceVROptionalOperation.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/24/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLAsynchronousOperation.h" - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - - -@interface SDLCheckChoiceVROptionalOperation : SDLAsynchronousOperation - -@property (assign, nonatomic, getter=isVROptional) BOOL vrOptional; - -- (instancetype)initWithConnectionManager:(id)connectionManager; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m deleted file mode 100644 index 0615cb0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m +++ /dev/null @@ -1,113 +0,0 @@ -// -// SDLCheckChoiceVROptionalOperation.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/24/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLCheckChoiceVROptionalOperation.h" - -#import "SDLChoice.h" -#import "SDLCreateInteractionChoiceSet.h" -#import "SDLConnectionManagerType.h" -#import "SDLDeleteInteractionChoiceSet.h" -#import "SDLLogMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLCheckChoiceVROptionalOperation() - -@property (strong, nonatomic) NSUUID *operationId; -@property (weak, nonatomic) id connectionManager; -@property (copy, nonatomic, nullable) NSError *internalError; - -@end - -@implementation SDLCheckChoiceVROptionalOperation - -- (instancetype)initWithConnectionManager:(id)connectionManager { - self = [super init]; - if (!self) { return nil; } - - _connectionManager = connectionManager; - _operationId = [NSUUID UUID]; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - [self sdl_sendTestChoices]; -} - -- (void)sdl_sendTestChoices { - __weak typeof(self) weakself = self; - [self.connectionManager sendConnectionManagerRequest:[self.class sdl_testCellWithVR:NO] withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error == nil) { - SDLLogD(@"Connected head unit supports choice cells without voice commands. Cells without voice will be sent without voice from now on (no placeholder voice)."); - - weakself.vrOptional = YES; - weakself.internalError = nil; - [weakself sdl_deleteTestChoices]; - return; - } - - // Check for choice sets with VR - [self.connectionManager sendConnectionManagerRequest:[self.class sdl_testCellWithVR:YES] withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error == nil) { - SDLLogW(@"Connected head unit does not support choice cells without voice commands. Cells without voice will be sent with placeholder voices from now on."); - - weakself.vrOptional = NO; - weakself.internalError = nil; - [weakself sdl_deleteTestChoices]; - return; - } - - SDLLogE(@"Connected head unit has rejected all choice cells, choice manager disabled. Error: %@, Response: %@", error, response); - weakself.vrOptional = NO; - weakself.internalError = error; - [weakself finishOperation]; - }]; - }]; -} - -- (void)sdl_deleteTestChoices { - SDLDeleteInteractionChoiceSet *deleteChoiceSet = [[SDLDeleteInteractionChoiceSet alloc] initWithId:0]; - - __weak typeof(self) weakself = self; - [self.connectionManager sendConnectionManagerRequest:deleteChoiceSet withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - [weakself finishOperation]; - }]; -} - -+ (SDLCreateInteractionChoiceSet *)sdl_testCellWithVR:(BOOL)hasVR { - SDLChoice *choice = [[SDLChoice alloc] init]; - choice.choiceID = @0; - choice.menuName = @"Test Cell"; - choice.vrCommands = hasVR ? @[@"Test VR"] : nil; - - SDLCreateInteractionChoiceSet *choiceSet = [[SDLCreateInteractionChoiceSet alloc] initWithId:0 choiceSet:@[choice]]; - - return choiceSet; -} - -#pragma mark - Property Overrides - -- (nullable NSString *)name { - return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityVeryHigh; -} - -- (nullable NSError *)error { - return self.internalError; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.h deleted file mode 100644 index 9651159..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.h +++ /dev/null @@ -1,97 +0,0 @@ -// SDLChoice.h -// - -#import "SDLRPCMessage.h" - -@class SDLImage; - - -/** - * A choice is an option which a user can select either via the menu or via voice recognition (VR) during an application initiated interaction. - * - * Since RPC 1.0 - */ -NS_ASSUME_NONNULL_BEGIN - -@interface SDLChoice : SDLRPCStruct - -/** -Constructs a newly allocated SDLChangeRegistration object with the required parameters - -@param choiceId the application-scoped identifier that uniquely identifies this choice -@param menuName text which appears in menu, representing this choice -@param vrCommands vr synonyms for this choice - -@return An instance of the SDLChangeRegistration class. -*/ -- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(nullable NSArray *)vrCommands; - -/** -Constructs a newly allocated SDLChangeRegistration object with all parameters - -@param choiceId the application-scoped identifier that uniquely identifies this choice -@param menuName text which appears in menu, representing this choice -@param vrCommands vr synonyms for this choice -@param image the image of the choice -@param secondaryText secondary text to display; e.g. address of POI in a search result entry -@param secondaryImage secondary image for choice -@param tertiaryText tertiary text to display; e.g. distance to POI for a search result entry - -@return An instance of the SDLChangeRegistration class. -*/ -- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(nullable NSArray *)vrCommands image:(nullable SDLImage *)image secondaryText:(nullable NSString *)secondaryText secondaryImage:(nullable SDLImage *)secondaryImage tertiaryText:(nullable NSString *)tertiaryText; - -/** - * The application-scoped identifier that uniquely identifies this choice - * - * Required, Integer 0 - 65535 - */ -@property (strong, nonatomic) NSNumber *choiceID; - -/** - * Text which appears in menu, representing this choice - * - * Required, Max string length 500 chars - */ -@property (strong, nonatomic) NSString *menuName; - -/** - * VR synonyms for this choice - * - * Optional, Array of Strings, Array length 1 - 100, Max String length 99 chars - * - * @discussion, VR commands are optional beginning with SDL Core v.5.0. They are required for previous versions. - */ -@property (nullable, strong, nonatomic) NSArray *vrCommands; - -/** - * The image of the choice - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLImage *image; - -/** - * Secondary text to display; e.g. address of POI in a search result entry - * - * Optional, Max String length 500 chars - */ -@property (nullable, strong, nonatomic) NSString *secondaryText; - -/** - * Tertiary text to display; e.g. distance to POI for a search result entry - * - * Optional, Max String length 500 chars - */ -@property (nullable, strong, nonatomic) NSString *tertiaryText; - -/** - * Secondary image for choice - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLImage *secondaryImage; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.m deleted file mode 100644 index e384ddf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoice.m +++ /dev/null @@ -1,101 +0,0 @@ -// SDLChoice.m -// - -#import "SDLChoice.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImage.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLChoice - -- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(nullable NSArray *)vrCommands image:(nullable SDLImage *)image secondaryText:(nullable NSString *)secondaryText secondaryImage:(nullable SDLImage *)secondaryImage tertiaryText:(nullable NSString *)tertiaryText { - self = [self initWithId:choiceId menuName:menuName vrCommands:vrCommands]; - if (!self) { - return nil; - } - - self.image = image; - self.secondaryText = secondaryText; - self.secondaryImage = secondaryImage; - self.tertiaryText = tertiaryText; - - return self; -} - -- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(nullable NSArray *)vrCommands { - self = [self init]; - if (!self) { - return nil; - } - - self.choiceID = @(choiceId); - self.menuName = menuName; - self.vrCommands = [vrCommands mutableCopy]; - - return self; -} - -- (void)setChoiceID:(NSNumber *)choiceID { - [self.store sdl_setObject:choiceID forName:SDLRPCParameterNameChoiceId]; -} - -- (NSNumber *)choiceID { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameChoiceId ofClass:NSNumber.class error:&error]; -} - -- (void)setMenuName:(NSString *)menuName { - [self.store sdl_setObject:menuName forName:SDLRPCParameterNameMenuName]; -} - -- (NSString *)menuName { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMenuName ofClass:NSString.class error:&error]; -} - -- (void)setVrCommands:(nullable NSArray *)vrCommands { - [self.store sdl_setObject:vrCommands forName:SDLRPCParameterNameVRCommands]; -} - -- (nullable NSArray *)vrCommands { - return [self.store sdl_objectsForName:SDLRPCParameterNameVRCommands ofClass:NSString.class error:nil]; -} - -- (void)setImage:(nullable SDLImage *)image { - [self.store sdl_setObject:image forName:SDLRPCParameterNameImage]; -} - -- (nullable SDLImage *)image { - return [self.store sdl_objectForName:SDLRPCParameterNameImage ofClass:SDLImage.class error:nil]; -} - -- (void)setSecondaryText:(nullable NSString *)secondaryText { - [self.store sdl_setObject:secondaryText forName:SDLRPCParameterNameSecondaryText]; -} - -- (nullable NSString *)secondaryText { - return [self.store sdl_objectForName:SDLRPCParameterNameSecondaryText ofClass:NSString.class error:nil]; -} - -- (void)setTertiaryText:(nullable NSString *)tertiaryText { - [self.store sdl_setObject:tertiaryText forName:SDLRPCParameterNameTertiaryText]; -} - -- (nullable NSString *)tertiaryText { - return [self.store sdl_objectForName:SDLRPCParameterNameTertiaryText ofClass:NSString.class error:nil]; -} - -- (void)setSecondaryImage:(nullable SDLImage *)secondaryImage { - [self.store sdl_setObject:secondaryImage forName:SDLRPCParameterNameSecondaryImage]; -} - -- (nullable SDLImage *)secondaryImage { - return [self.store sdl_objectForName:SDLRPCParameterNameSecondaryImage ofClass:SDLImage.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceCell.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceCell.h deleted file mode 100644 index 197f019..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceCell.h +++ /dev/null @@ -1,88 +0,0 @@ -// -// SDLChoiceCell.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/21/18. -// Copyright © 2018 Livio. All rights reserved. -// - -#import - -@class SDLArtwork; - -NS_ASSUME_NONNULL_BEGIN - -/// A selectable item within an SDLChoiceSet -@interface SDLChoiceCell: NSObject - -/** - Maps to Choice.menuName. The primary text of the cell. Duplicates within an `SDLChoiceSet` are not permitted and will result in the `SDLChoiceSet` failing to initialize. - */ -@property (copy, nonatomic, readonly) NSString *text; - -/** - Maps to Choice.secondaryText. Optional secondary text of the cell, if available. Duplicates within an `SDLChoiceSet` are permitted. - */ -@property (copy, nonatomic, readonly, nullable) NSString *secondaryText; - -/** - Maps to Choice.tertiaryText. Optional tertitary text of the cell, if available. Duplicates within an `SDLChoiceSet` are permitted. - */ -@property (copy, nonatomic, readonly, nullable) NSString *tertiaryText; - -/** - Maps to Choice.vrCommands. Optional voice commands the user can speak to activate the cell. If not set and the head unit requires it, this will be set to the number in the list that this item appears. However, this would be a very poor experience for a user if the choice set is presented as a voice only interaction or both interaction mode. Therefore, consider not setting this only when you know the choice set will be presented as a touch only interaction. - */ -@property (copy, nonatomic, readonly, nullable) NSArray *voiceCommands; - -/** - Maps to Choice.image. Optional image for the cell. This will be uploaded before the cell is used when the cell is preloaded or presented for the first time. - */ -@property (strong, nonatomic, readonly, nullable) SDLArtwork *artwork; - -/** - Maps to Choice.secondaryImage. Optional secondary image for the cell. This will be uploaded before the cell is used when the cell is preloaded or presented for the first time. - */ -@property (strong, nonatomic, readonly, nullable) SDLArtwork *secondaryArtwork; - -/** - Initialize the cell with nothing. This is unavailable - - @return A crash, probably - */ -- (instancetype)init NS_UNAVAILABLE; - -/** - Initialize the cell with text and nothing else. - - @param text The primary text of the cell. - @return The cell - */ -- (instancetype)initWithText:(NSString *)text; - -/** - Initialize the cell with text, optional artwork, and optional voice commands - - @param text The primary text of the cell - @param artwork The primary artwork of the cell - @param voiceCommands Strings that can be spoken by the user to activate this cell in a voice or both interaction mode - @return The cell - */ -- (instancetype)initWithText:(NSString *)text artwork:(nullable SDLArtwork *)artwork voiceCommands:(nullable NSArray *)voiceCommands; - -/** - Initialize the cell with all optional items - - @param text The primary text - @param secondaryText The secondary text - @param tertiaryText The tertiary text - @param voiceCommands Strings that can be spoken by the user to activate this cell in a voice or both interaction mode - @param artwork The primary artwork - @param secondaryArtwork The secondary artwork - @return The cell - */ -- (instancetype)initWithText:(NSString *)text secondaryText:(nullable NSString *)secondaryText tertiaryText:(nullable NSString *)tertiaryText voiceCommands:(nullable NSArray *)voiceCommands artwork:(nullable SDLArtwork *)artwork secondaryArtwork:(nullable SDLArtwork *)secondaryArtwork; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceCell.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceCell.m deleted file mode 100644 index 05ceb4d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceCell.m +++ /dev/null @@ -1,92 +0,0 @@ -// -// SDLChoiceCell.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/21/18. -// Copyright © 2018 Livio. All rights reserved. -// - -#import "SDLChoiceCell.h" - -#import "SDLArtwork.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLChoiceCell() - -@property (assign, nonatomic) UInt16 choiceId; - -@end - -@implementation SDLChoiceCell - -#pragma mark - Object Lifecycle - -- (instancetype)initWithText:(NSString *)text { - return [self initWithText:text secondaryText:nil tertiaryText:nil voiceCommands:nil artwork:nil secondaryArtwork:nil]; -} - -- (instancetype)initWithText:(NSString *)text artwork:(nullable SDLArtwork *)artwork voiceCommands:(nullable NSArray *)voiceCommands { - return [self initWithText:text secondaryText:nil tertiaryText:nil voiceCommands:voiceCommands artwork:artwork secondaryArtwork:nil]; -} - -- (instancetype)initWithText:(NSString *)text secondaryText:(nullable NSString *)secondaryText tertiaryText:(nullable NSString *)tertiaryText voiceCommands:(nullable NSArray *)voiceCommands artwork:(nullable SDLArtwork *)artwork secondaryArtwork:(nullable SDLArtwork *)secondaryArtwork { - self = [super init]; - if (!self) { return nil; } - - _text = text; - _secondaryText = secondaryText; - _tertiaryText = tertiaryText; - _voiceCommands = voiceCommands; - _artwork = artwork; - _secondaryArtwork = secondaryArtwork; - - _choiceId = UINT16_MAX; - - return self; -} - - -#pragma mark - Object Equality - -// Based on preprocessor defines in https://www.mikeash.com/pyblog/friday-qa-2010-06-18-implementing-equality-and-hashing.html It is necessary to rotate each of our properties because a simple bitwise OR will produce equivalent results if, for example: -// Object 1: self.text = "Hi", self.secondaryText = "Hello" -// Object 2: self.text = "Hello", self.secondaryText = "Hi" -// To avoid this, we need to rotate our hashes - -NSUInteger const NSUIntBit = (CHAR_BIT * sizeof(NSUInteger)); -NSUInteger NSUIntRotate(NSUInteger val, NSUInteger howMuch) { - return ((((NSUInteger)val) << howMuch) | (((NSUInteger)val) >> (NSUIntBit - howMuch))); -} - -- (NSUInteger)hash { - return NSUIntRotate(self.text.hash, NSUIntBit / 2) - ^ NSUIntRotate(self.secondaryText.hash, NSUIntBit / 3) - ^ NSUIntRotate(self.tertiaryText.hash, NSUIntBit / 4) - ^ NSUIntRotate(self.artwork.name.hash, NSUIntBit / 5) - ^ NSUIntRotate(self.secondaryArtwork.name.hash, NSUIntBit / 6) - ^ NSUIntRotate(self.voiceCommands.hash, NSUIntBit / 7); -} - -- (BOOL)isEqual:(id)object { - if (self == object) { return YES; } - if (![object isMemberOfClass:[self class]]) { return NO; } - - return [self isEqualToChoice:(SDLChoiceCell *)object]; -} - -- (BOOL)isEqualToChoice:(SDLChoiceCell *)choice { - if (choice == nil) { return NO; } - - return (self.hash == choice.hash); -} - -#pragma mark - Etc. - -- (NSString *)description { - return [NSString stringWithFormat:@"SDLChoiceCell: %u-\"%@ - %@ - %@\", artworkNames: %@ - %@, voice commands: %lu", _choiceId, _text, _secondaryText, _tertiaryText, _artwork.name, _secondaryArtwork.name, (unsigned long)_voiceCommands.count]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.h deleted file mode 100644 index 6740335..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.h +++ /dev/null @@ -1,146 +0,0 @@ -// -// SDLChoiceSet.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/21/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -@protocol SDLChoiceSetDelegate; -@class SDLChoiceCell; -@class SDLTTSChunk; -@class SDLVRHelpItem; - -NS_ASSUME_NONNULL_BEGIN - -/** - Notifies the subscriber that the choice set should be cancelled. - */ -typedef void (^SDLChoiceSetCanceledHandler)(void); - -/// The layout to use when a choice set is displayed -typedef NS_ENUM(NSUInteger, SDLChoiceSetLayout) { - /// Menu items will be displayed in a list - SDLChoiceSetLayoutList, - - /// Menu items will be displayed as a tiled list - SDLChoiceSetLayoutTiles, -}; - -/** - The choice set to be displayed to the user. Contains a list of selectable options. - */ -@interface SDLChoiceSet: NSObject - -/** - Set this to change the default timeout for all choice sets. If a timeout is not set on an individual choice set object (or if it is set to 0.0), then it will use this timeout instead. See `timeout` for more details. If this is not set by you, it will default to 10 seconds. - */ -@property (class, assign, nonatomic) NSTimeInterval defaultTimeout; - -/** - Set this to change the default layout for all choice sets. If a layout is not set on an individual choice set object, then it will use this layout instead. See `layout` for more details. If this is not set by you, it will default to `SDLChoiceSetLayoutList`. - */ -@property (class, assign, nonatomic) SDLChoiceSetLayout defaultLayout; - -/** - Maps to PerformInteraction.initialText. The title of the choice set, and/or the initial text on a keyboard prompt. - */ -@property (copy, nonatomic) NSString *title; - -/** - Maps to PerformInteraction.initialPrompt. The initial prompt spoken to the user at the start of an interaction. - */ -@property (copy, nonatomic, nullable) NSArray *initialPrompt; - -/** - Maps to PerformInteraction.interactionLayout. Whether the presented choices are arranged as a set of tiles or a list. - */ -@property (assign, nonatomic) SDLChoiceSetLayout layout; - -/** - Maps to PerformInteraction.timeout. This applies only to a manual selection (not a voice selection, which has its timeout handled by the system). Defaults to `defaultTimeout`. - */ -@property (assign, nonatomic) NSTimeInterval timeout; - -/** - Maps to PerformInteraction.timeoutPrompt. This text is spoken when a VR interaction times out. If this set is presented in a manual (non-voice) only interaction, this will be ignored. - */ -@property (copy, nonatomic, nullable) NSArray *timeoutPrompt; - -/** - Maps to PerformInteraction.helpPrompt. This is the spoken string when a user speaks "help" when the interaction is occurring. - */ -@property (copy, nonatomic, nullable) NSArray *helpPrompt; - -/** - Maps to PerformInteraction.vrHelp. This is a list of help text presented to the user when they are in a voice recognition interaction from your choice set of options. If this set is presented in a touch only interaction, this will be ignored. - - @note that while SDLVRHelpItem's position will be automatically set based on position in the array, the image will need to uploaded by you before use using SDLFileManager. - */ -@property (copy, nonatomic, nullable) NSArray *helpList; - -/** - The delegate of this choice set, called when the user interacts with it. - */ -@property (weak, nonatomic) id delegate; - -/** - The choices to be displayed to the user within this choice set. These choices could match those already preloaded via `SDLScreenManager preloadChoices:withCompletionHandler:`. - - This is limited to 100 items. If you attempt to set more than 100 items, the set will not have any items (this array will be empty). - */ -@property (copy, nonatomic) NSArray *choices; - -/** - Initialize with a title, delegate, and choices. It will use the default timeout and layout, all other properties (such as prompts) will be `nil`. - - @param title The choice set's title - @param delegate The choice set delegate called after the user has interacted with your choice set - @param choices The choices to be displayed to the user for interaction - @return The choice set - */ -- (instancetype)initWithTitle:(NSString *)title delegate:(id)delegate choices:(NSArray *)choices; - -/** - Initializer with all possible properties. - - @param title The choice set's title - @param delegate The choice set delegate called after the user has interacted with your choice set - @param layout The layout of choice options (Manual/touch only) - @param timeout The timeout of a touch interaction (Manual/touch only) - @param initialPrompt A voice prompt spoken to the user when this set is displayed - @param timeoutPrompt A voice prompt spoken to the user when the set times out (Voice only) - @param helpPrompt A voice prompt spoken to the user when the user asks for "help" - @param helpList A table list of text and images shown to the user during a voice recognition session for this choice set (Voice only) - @param choices The list of choices presented to the user either as a manual/touch interaction or via the user's voice - @return The choice set - */ -- (instancetype)initWithTitle:(NSString *)title delegate:(id)delegate layout:(SDLChoiceSetLayout)layout timeout:(NSTimeInterval)timeout initialPromptString:(nullable NSString *)initialPrompt timeoutPromptString:(nullable NSString *)timeoutPrompt helpPromptString:(nullable NSString *)helpPrompt vrHelpList:(nullable NSArray *)helpList choices:(NSArray *)choices; - -/** - Initializer with all possible properties. - - @param title The choice set's title - @param delegate The choice set delegate called after the user has interacted with your choice set - @param layout The layout of choice options (Manual/touch only) - @param timeout The timeout of a touch interaction (Manual/touch only) - @param initialPrompt A voice prompt spoken to the user when this set is displayed - @param timeoutPrompt A voice prompt spoken to the user when the set times out (Voice only) - @param helpPrompt A voice prompt spoken to the user when the user asks for "help" - @param helpList A table list of text and images shown to the user during a voice recognition session for this choice set (Voice only) - @param choices The list of choices presented to the user either as a manual/touch interaction or via the user's voice - @return The choice set - */ -- (instancetype)initWithTitle:(NSString *)title delegate:(id)delegate layout:(SDLChoiceSetLayout)layout timeout:(NSTimeInterval)timeout initialPrompt:(nullable NSArray *)initialPrompt timeoutPrompt:(nullable NSArray *)timeoutPrompt helpPrompt:(nullable NSArray *)helpPrompt vrHelpList:(nullable NSArray *)helpList choices:(NSArray *)choices; - - -/** - Cancels the choice set. If the choice set has not yet been sent to Core, it will not be sent. If the choice set is already presented on Core, the choice set will be immediately dismissed. Canceling an already presented choice set will only work if connected to Core versions 6.0+. On older versions of Core, the choice set will not be dismissed. - */ -- (void)cancel; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.m deleted file mode 100644 index 45a830b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSet.m +++ /dev/null @@ -1,159 +0,0 @@ -// -// SDLChoiceSet.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/21/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLChoiceSet.h" - -#import "SDLChoiceCell.h" -#import "SDLLogMacros.h" -#import "SDLTTSChunk.h" -#import "SDLVrHelpItem.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLChoiceSet() - -@property (nullable, copy, nonatomic) SDLChoiceSetCanceledHandler canceledHandler; - -@end - -@implementation SDLChoiceSet - -static NSTimeInterval _defaultTimeout = 10.0; -static SDLChoiceSetLayout _defaultLayout = SDLChoiceSetLayoutList; - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - _timeout = self.class.defaultTimeout; - _layout = self.class.defaultLayout; - - return self; -} - -- (instancetype)initWithTitle:(NSString *)title delegate:(id)delegate choices:(NSArray *)choices { - return [self initWithTitle:title delegate:delegate layout:SDLChoiceSet.defaultLayout timeout:SDLChoiceSet.defaultTimeout initialPrompt:nil timeoutPrompt:nil helpPrompt:nil vrHelpList:nil choices:choices]; -} - -- (instancetype)initWithTitle:(NSString *)title delegate:(id)delegate layout:(SDLChoiceSetLayout)layout timeout:(NSTimeInterval)timeout initialPromptString:(nullable NSString *)initialPrompt timeoutPromptString:(nullable NSString *)timeoutPrompt helpPromptString:(nullable NSString *)helpPrompt vrHelpList:(nullable NSArray *)helpList choices:(NSArray *)choices { - NSArray *initialTTS = [SDLTTSChunk textChunksFromString:initialPrompt]; - NSArray *timeoutTTS = [SDLTTSChunk textChunksFromString:timeoutPrompt]; - NSArray *helpTTS = [SDLTTSChunk textChunksFromString:helpPrompt]; - - return [self initWithTitle:title delegate:delegate layout:layout timeout:timeout initialPrompt:initialTTS timeoutPrompt:timeoutTTS helpPrompt:helpTTS vrHelpList:helpList choices:choices]; -} - -- (instancetype)initWithTitle:(NSString *)title delegate:(id)delegate layout:(SDLChoiceSetLayout)layout timeout:(NSTimeInterval)timeout initialPrompt:(nullable NSArray *)initialPrompt timeoutPrompt:(nullable NSArray *)timeoutPrompt helpPrompt:(nullable NSArray *)helpPrompt vrHelpList:(nullable NSArray *)helpList choices:(NSArray *)choices { - self = [self init]; - if (!self) { return nil; } - - if (choices.count == 0 || choices.count > 100) { - SDLLogW(@"Attempted to create a choice set with %lu choices; Only 1 - 100 choices are valid", (unsigned long)choices.count); - return nil; - } - - if (timeout < 5 || timeout > 100) { - SDLLogW(@"Attempted to create a choice set with a %f second timeout; Only 5 - 100 seconds is valid", timeout); - return nil; - } - - if (title.length == 0 || title.length > 500) { - SDLLogW(@"Attempted to create a choice set title with a %lu length. Only 500 characters are supported", (unsigned long)title.length); - return nil; - } - - NSMutableSet *choiceTextSet = [NSMutableSet setWithCapacity:choices.count]; - NSMutableSet *uniqueVoiceCommands = [NSMutableSet set]; - NSUInteger allVoiceCommandsCount = 0; - NSUInteger choiceCellWithVoiceCommandCount = 0; - for (SDLChoiceCell *cell in choices) { - [choiceTextSet addObject:cell.text]; - if (cell.voiceCommands == nil) { continue; } - [uniqueVoiceCommands addObjectsFromArray:cell.voiceCommands]; - choiceCellWithVoiceCommandCount += 1; - allVoiceCommandsCount += cell.voiceCommands.count; - } - if (choiceTextSet.count < choices.count) { - SDLLogE(@"Attempted to create a choice set with duplicate cell text. Cell text must be unique. The choice set will not be set."); - return nil; - } - - // All or none of the choices must have VR commands - if ((choiceCellWithVoiceCommandCount > 0 && choiceCellWithVoiceCommandCount < choices.count)) { - SDLLogE(@"If using voice recognition commands, all of the choice set cells must have unique VR commands. There are %lu cells with unique voice commands and %lu total cells. The choice set will not be set.", (unsigned long)choiceCellWithVoiceCommandCount, (unsigned long)choices.count); - return nil; - } - // All the VR commands must be unique - if (uniqueVoiceCommands.count < allVoiceCommandsCount) { - SDLLogE(@"If using voice recognition commands, all VR commands must be unique. There are %lu unique VR commands and %lu VR commands. The choice set will not be set.", (unsigned long)uniqueVoiceCommands.count, (unsigned long)allVoiceCommandsCount); - return nil; - } - - for (NSUInteger i = 0; i < helpList.count; i++) { - helpList[i].position = @(i + 1); - } - - _title = title; - _delegate = delegate; - _layout = layout; - _timeout = timeout; - _initialPrompt = initialPrompt; - _timeoutPrompt = timeoutPrompt; - _helpPrompt = helpPrompt; - _helpList = helpList; - _choices = choices; - - return self; -} - -#pragma mark - Cancel - -- (void)cancel { - if (self.canceledHandler == nil) { return; } - self.canceledHandler(); -} - -#pragma mark - Getters / Setters - -+ (NSTimeInterval)defaultTimeout { - return _defaultTimeout; -} - -+ (void)setDefaultTimeout:(NSTimeInterval)defaultTimeout { - _defaultTimeout = defaultTimeout; -} - -+ (SDLChoiceSetLayout)defaultLayout { - return _defaultLayout; -} - -+ (void)setDefaultLayout:(SDLChoiceSetLayout)defaultLayout { - _defaultLayout = defaultLayout; -} - -- (void)setHelpList:(nullable NSArray *)helpList { - _helpList = helpList; - - for (NSUInteger i = 0; i < _helpList.count; i++) { - _helpList[i].position = @(i + 1); - } -} - -#pragma mark - Etc. - -- (NSString *)description { - return [NSString stringWithFormat:@"SDLChoiceSet: \"%@\", layout: %@", _title, (_layout == SDLChoiceSetLayoutList ? @"List" : @"Tiles")]; -} - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"SDLChoiceSet: Title: \"%@\", layout: %@, timeout: %@, initial prompt: \"%@\", timeout prompt: \"%@\", help prompt: \"%@\", help list: %@, choices: %@", _title, (_layout == SDLChoiceSetLayoutList ? @"List" : @"Tiles"), @(_timeout), _initialPrompt, _timeoutPrompt, _helpPrompt, _helpList, _choices]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetDelegate.h deleted file mode 100644 index de7573e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetDelegate.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// SDLChoiceSetDelegate.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/21/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLTriggerSource.h" - -@class SDLChoiceCell; -@class SDLChoiceSet; - -NS_ASSUME_NONNULL_BEGIN - -/// Delegate for the the SDLChoiceSet. Contains methods that get called when an action is taken on a choice cell. -@protocol SDLChoiceSetDelegate - -/// Delegate method called after a choice set item is selected -/// -/// @param choiceSet The choice set displayed -/// @param choice The item selected -/// @param source The trigger source -/// @param rowIndex The row of the selected choice -- (void)choiceSet:(SDLChoiceSet *)choiceSet didSelectChoice:(SDLChoiceCell *)choice withSource:(SDLTriggerSource)source atRowIndex:(NSUInteger)rowIndex; - -/// Delegate method called on an error -/// -/// @param choiceSet The choice set -/// @param error The error -- (void)choiceSet:(SDLChoiceSet *)choiceSet didReceiveError:(NSError *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.h deleted file mode 100644 index e0c11ac..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.h +++ /dev/null @@ -1,120 +0,0 @@ -// -// SDLChoiceSetManager.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/21/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLInteractionMode.h" -#import "NSNumber+NumberType.h" - -@class SDLChoiceCell; -@class SDLChoiceSet; -@class SDLFileManager; -@class SDLKeyboardProperties; -@class SDLSystemCapabilityManager; - -@protocol SDLConnectionManagerType; -@protocol SDLKeyboardDelegate; - -NS_ASSUME_NONNULL_BEGIN - -typedef void(^SDLPreloadChoiceCompletionHandler)(NSError *__nullable error); - -typedef NSString SDLChoiceManagerState; -extern SDLChoiceManagerState *const SDLChoiceManagerStateShutdown; -extern SDLChoiceManagerState *const SDLChoiceManagerStateCheckingVoiceOptional; -extern SDLChoiceManagerState *const SDLChoiceManagerStateReady; -extern SDLChoiceManagerState *const SDLChoiceManagerStateStartupError; - -@interface SDLChoiceSetManager : NSObject - -/** - * The state of the choice set manager. - */ -@property (copy, nonatomic, readonly) NSString *currentState; - -/** - The default keyboard configuration, this can be additionally customized by each SDLKeyboardDelegate. - */ -@property (strong, nonatomic, null_resettable) SDLKeyboardProperties *keyboardConfiguration; - -/** - Cells will be hashed by their text, image names, and VR command text. When assembling an SDLChoiceSet, you can pull objects from here, or recreate them. The preloaded versions will be used so long as their text, image names, and VR commands are the same. - */ -@property (copy, nonatomic, readonly) NSSet *preloadedChoices; - -/** - Initialize the manager with required dependencies - - @param connectionManager The connection manager object for sending RPCs - @param fileManager The file manager object for uploading files - @param systemCapabilityManager The system capability manager object for reading window capabilities - @return The choice set manager - */ -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager; - -/** - Start the manager and prepare to manage choice sets - */ -- (void)start; - -/** - Stop the manager and reset all properties - */ -- (void)stop; - -/** - Preload cells to the head unit. This will *greatly* reduce the time taken to present a choice set. Any already matching a choice already on the head unit will be ignored. You *do not* need to wait until the completion handler is called to present a choice set containing choices being loaded. The choice set will wait until the preload completes and then immediately present. - - @param choices The choices to be preloaded. - @param handler The handler to be called when complete. - */ -- (void)preloadChoices:(NSArray *)choices withCompletionHandler:(nullable SDLPreloadChoiceCompletionHandler)handler; - -/** - Delete loaded cells from the head unit. If the cells don't exist on the head unit they will be ignored. - - @param choices The choices to be deleted. These will be matched via a hash of the text, image name(s), and VR commands. - */ -- (void)deleteChoices:(NSArray *)choices; - -/** - Present a choice set on the head unit with a certain interaction mode. You should present in VR only if the user reached this choice set by using their voice, in Manual only if the user used touch to reach this choice set. Use Both if you're lazy...for real though, it's kind of confusing to the user and isn't recommended. - - This presents the choice set as searchable when in a touch interaction. The user, when not in a distracted state, will have a keyboard available for searching this set. The user's input in the keyboard will be available in the SDLKeyboardDelegate. - - If the cells in the set are not already preloaded, they will be preloaded before the presentation occurs; this could take a while depending on the contents of the cells. - - If the cells have voice commands and images attached, this could take upwards of 10 seconds. If there are no cells on the set, this will fail, calling `choiceSet:didReceiveError:` on the choice set delegate. - - @param choiceSet The set to be displayed - @param mode If the set should be presented for the user to interact via voice, touch, or both - @param delegate The keyboard delegate called when the user interacts with the search field of the choice set, if not set, a non-searchable choice set will be used - */ -- (void)presentChoiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode withKeyboardDelegate:(nullable id)delegate; - -/** - Present a keyboard-only interface to the user and receive input. The user will be able to input text in the keyboard when in a non-driver distraction situation. - - @param initialText The initial text within the keyboard input field. It will disappear once the user selects the field in order to enter text - @param delegate The keyboard delegate called when the user interacts with the keyboard - @return A unique id that can be used to cancel this keyboard. If `null`, no keyboard was created. - */ -- (nullable NSNumber *)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id)delegate; - -/** - Cancels the keyboard-only interface if it is currently showing. If the keyboard has not yet been sent to Core, it will not be sent. - - This will only dismiss an already presented keyboard if connected to head units running SDL 6.0+. - - @param cancelID The unique ID assigned to the keyboard, passed as the return value from `presentKeyboardWithInitialText:keyboardDelegate:` - */ -- (void)dismissKeyboardWithCancelID:(NSNumber *)cancelID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.m deleted file mode 100644 index a8d3468..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLChoiceSetManager.m +++ /dev/null @@ -1,610 +0,0 @@ -// -// SDLChoiceSetManager.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/21/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLChoiceSetManager.h" - -#import "SDLCheckChoiceVROptionalOperation.h" -#import "SDLChoice.h" -#import "SDLChoiceCell.h" -#import "SDLChoiceSet.h" -#import "SDLChoiceSetDelegate.h" -#import "SDLConnectionManagerType.h" -#import "SDLCreateInteractionChoiceSet.h" -#import "SDLCreateInteractionChoiceSetResponse.h" -#import "SDLDeleteChoicesOperation.h" -#import "SDLDisplayCapability.h" -#import "SDLError.h" -#import "SDLFileManager.h" -#import "SDLGlobals.h" -#import "SDLHMILevel.h" -#import "SDLKeyboardProperties.h" -#import "SDLLogMacros.h" -#import "SDLOnHMIStatus.h" -#import "SDLPerformInteraction.h" -#import "SDLPerformInteractionResponse.h" -#import "SDLPredefinedWindows.h" -#import "SDLPreloadChoicesOperation.h" -#import "SDLPresentChoiceSetOperation.h" -#import "SDLPresentKeyboardOperation.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCResponseNotification.h" -#import "SDLSetDisplayLayoutResponse.h" -#import "SDLStateMachine.h" -#import "SDLSystemCapability.h" -#import "SDLSystemCapabilityManager.h" -#import "SDLWindowCapability.h" -#import "SDLWindowCapability+ScreenManagerExtensions.h" - -NS_ASSUME_NONNULL_BEGIN - -SDLChoiceManagerState *const SDLChoiceManagerStateShutdown = @"Shutdown"; -SDLChoiceManagerState *const SDLChoiceManagerStateCheckingVoiceOptional = @"CheckingVoiceOptional"; -SDLChoiceManagerState *const SDLChoiceManagerStateReady = @"Ready"; -SDLChoiceManagerState *const SDLChoiceManagerStateStartupError = @"StartupError"; - -typedef NSNumber * SDLChoiceId; - -@interface SDLChoiceCell() - -@property (assign, nonatomic) UInt16 choiceId; - -@end - -@interface SDLChoiceSetManager() - -@property (weak, nonatomic) id connectionManager; -@property (weak, nonatomic) SDLFileManager *fileManager; -@property (weak, nonatomic) SDLSystemCapabilityManager *systemCapabilityManager; - -@property (strong, nonatomic, readonly) SDLStateMachine *stateMachine; -@property (strong, nonatomic) NSOperationQueue *transactionQueue; -@property (copy, nonatomic) dispatch_queue_t readWriteQueue; - -@property (copy, nonatomic, nullable) SDLHMILevel currentHMILevel; -@property (copy, nonatomic, nullable) SDLWindowCapability *currentWindowCapability; - -@property (strong, nonatomic) NSMutableSet *preloadedMutableChoices; -@property (strong, nonatomic, readonly) NSSet *pendingPreloadChoices; -@property (strong, nonatomic) NSMutableSet *pendingMutablePreloadChoices; -@property (strong, nonatomic, nullable) SDLChoiceSet *pendingPresentationSet; -@property (strong, nonatomic, nullable) SDLAsynchronousOperation *pendingPresentOperation; - -@property (assign, nonatomic) UInt16 nextChoiceId; -@property (assign, nonatomic) UInt16 nextCancelId; -@property (assign, nonatomic, getter=isVROptional) BOOL vrOptional; - -@end - -UInt16 const ChoiceCellIdMin = 1; -UInt16 const ChoiceCellCancelIdMin = 1; - -@implementation SDLChoiceSetManager - -#pragma mark - Lifecycle - -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager { - self = [super init]; - if (!self) { return nil; } - - _connectionManager = connectionManager; - _fileManager = fileManager; - _systemCapabilityManager = systemCapabilityManager; - _stateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLChoiceManagerStateShutdown states:[self.class sdl_stateTransitionDictionary]]; - _transactionQueue = [self sdl_newTransactionQueue]; - - if (@available(iOS 10.0, *)) { - _readWriteQueue = dispatch_queue_create_with_target("com.sdl.screenManager.choiceSetManager.readWriteQueue", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); - } else { - _readWriteQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; - } - - _preloadedMutableChoices = [NSMutableSet set]; - _pendingMutablePreloadChoices = [NSMutableSet set]; - - _nextChoiceId = ChoiceCellIdMin; - _nextCancelId = ChoiceCellCancelIdMin; - _vrOptional = YES; - _keyboardConfiguration = [self sdl_defaultKeyboardConfiguration]; - _currentHMILevel = SDLHMILevelNone; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusNotification:) name:SDLDidChangeHMIStatusNotification object:nil]; - - return self; -} - -- (void)start { - SDLLogD(@"Starting manager"); - - [self.systemCapabilityManager subscribeToCapabilityType:SDLSystemCapabilityTypeDisplays withObserver:self selector:@selector(sdl_displayCapabilityDidUpdate:)]; - - if ([self.currentState isEqualToString:SDLChoiceManagerStateShutdown]) { - [self.stateMachine transitionToState:SDLChoiceManagerStateCheckingVoiceOptional]; - } - - // Else, we're already started -} - -- (void)stop { - SDLLogD(@"Stopping manager"); - - [self sdl_runSyncOnQueue:^{ - [self.stateMachine transitionToState:SDLChoiceManagerStateShutdown]; - }]; -} - -+ (NSDictionary *)sdl_stateTransitionDictionary { - return @{ - SDLChoiceManagerStateShutdown: @[SDLChoiceManagerStateCheckingVoiceOptional], - SDLChoiceManagerStateCheckingVoiceOptional: @[SDLChoiceManagerStateShutdown, SDLChoiceManagerStateReady, SDLChoiceManagerStateStartupError], - SDLChoiceManagerStateReady: @[SDLChoiceManagerStateShutdown], - SDLChoiceManagerStateStartupError: @[SDLChoiceManagerStateShutdown] - }; -} - -- (NSOperationQueue *)sdl_newTransactionQueue { - NSOperationQueue *queue = [[NSOperationQueue alloc] init]; - queue.name = @"com.sdl.screenManager.choiceSetManager.transactionQueue"; - queue.maxConcurrentOperationCount = 1; - queue.underlyingQueue = [SDLGlobals sharedGlobals].sdlConcurrentQueue; - queue.suspended = YES; - - return queue; -} - -/// Suspend the transaction queue if we are in HMI NONE -/// OR if the text field name "menu name" (i.e. is the primary choice text) cannot be used, we assume we cannot present a PI. -- (void)sdl_updateTransactionQueueSuspended { - if ([self.currentHMILevel isEqualToEnum:SDLHMILevelNone] - || (![self.currentWindowCapability hasTextFieldOfName:SDLTextFieldNameMenuName])) { - SDLLogD(@"Suspending the transaction queue. Current HMI level is: %@, window capability has MenuName (choice primary text): %@", self.currentHMILevel, ([self.currentWindowCapability hasTextFieldOfName:SDLTextFieldNameMenuName] ? @"YES" : @"NO")); - self.transactionQueue.suspended = YES; - } else { - SDLLogD(@"Starting the transaction queue"); - self.transactionQueue.suspended = NO; - } -} - -#pragma mark - State Management - -- (void)didEnterStateShutdown { - SDLLogV(@"Manager shutting down"); - - NSAssert(dispatch_get_specific(SDLProcessingQueueName) != nil, @"%@ must only be called on the SDL serial queue", NSStringFromSelector(_cmd)); - - _currentHMILevel = SDLHMILevelNone; - - [self.transactionQueue cancelAllOperations]; - self.transactionQueue = [self sdl_newTransactionQueue]; - _preloadedMutableChoices = [NSMutableSet set]; - _pendingMutablePreloadChoices = [NSMutableSet set]; - _pendingPresentationSet = nil; - - _vrOptional = YES; - _nextChoiceId = ChoiceCellIdMin; - _nextCancelId = ChoiceCellCancelIdMin; -} - -- (void)didEnterStateCheckingVoiceOptional { - // Setup by sending a Choice Set without VR, seeing if there's an error. If there is, send one with VR. This choice set will be used for `presentKeyboard` interactions. - SDLCheckChoiceVROptionalOperation *checkOp = [[SDLCheckChoiceVROptionalOperation alloc] initWithConnectionManager:self.connectionManager]; - - __weak typeof(self) weakSelf = self; - __weak typeof(checkOp) weakOp = checkOp; - checkOp.completionBlock = ^{ - if ([self.currentState isEqualToString:SDLChoiceManagerStateShutdown]) { return; } - - weakSelf.vrOptional = weakOp.isVROptional; - if (weakOp.error != nil) { - [weakSelf.stateMachine transitionToState:SDLChoiceManagerStateStartupError]; - } else { - [weakSelf.stateMachine transitionToState:SDLChoiceManagerStateReady]; - } - }; - - [self.transactionQueue addOperation:checkOp]; -} - -- (void)didEnterStateStartupError { - // TODO -} - -#pragma mark - Choice Management - -#pragma mark Upload / Delete - -- (void)preloadChoices:(NSArray *)choices withCompletionHandler:(nullable SDLPreloadChoiceCompletionHandler)handler { - SDLLogV(@"Request to preload choices: %@", choices); - if ([self.currentState isEqualToString:SDLChoiceManagerStateShutdown]) { - NSError *error = [NSError sdl_choiceSetManager_incorrectState:self.currentState]; - SDLLogE(@"Attempted to preload choices but the choice set manager is shut down: %@", error); - if (handler != nil) { - handler(error); - } - return; - } - - NSMutableSet *choicesToUpload = [[self sdl_choicesToBeUploadedWithArray:choices] mutableCopy]; - - [self sdl_runSyncOnQueue:^{ - [choicesToUpload minusSet:self.preloadedMutableChoices]; - [choicesToUpload minusSet:self.pendingMutablePreloadChoices]; - }]; - - if (choicesToUpload.count == 0) { - SDLLogD(@"All choices already preloaded. No need to perform a preload"); - if (handler != nil) { - handler(nil); - } - - return; - } - - [self sdl_updateIdsOnChoices:choicesToUpload]; - - // Add the preload cells to the pending preloads - [self sdl_runSyncOnQueue:^{ - [self.pendingMutablePreloadChoices unionSet:choicesToUpload]; - }]; - - // Upload pending preloads - // For backward compatibility with Gen38Inch display type head units - SDLLogD(@"Preloading choices"); - SDLLogV(@"Choices to be uploaded: %@", choicesToUpload); - NSString *displayName = self.systemCapabilityManager.displays.firstObject.displayName; - SDLPreloadChoicesOperation *preloadOp = [[SDLPreloadChoicesOperation alloc] initWithConnectionManager:self.connectionManager fileManager:self.fileManager displayName:displayName windowCapability:self.systemCapabilityManager.defaultMainWindowCapability isVROptional:self.isVROptional cellsToPreload:choicesToUpload]; - - __weak typeof(self) weakSelf = self; - __weak typeof(preloadOp) weakPreloadOp = preloadOp; - preloadOp.completionBlock = ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - SDLLogD(@"Choices finished preloading"); - - if (handler != nil) { - handler(weakPreloadOp.error); - } - - // Check if the manager has shutdown because the list of uploaded and pending choices should not be updated - if ([strongSelf.currentState isEqualToString:SDLChoiceManagerStateShutdown]) { - SDLLogD(@"Cancelling preloading choices because the manager is shut down"); - return; - } - - [strongSelf sdl_runSyncOnQueue:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - [strongSelf.preloadedMutableChoices unionSet:choicesToUpload]; - [strongSelf.pendingMutablePreloadChoices minusSet:choicesToUpload]; - }]; - }; - [self.transactionQueue addOperation:preloadOp]; -} - -- (void)deleteChoices:(NSArray *)choices { - SDLLogV(@"Request to delete choices: %@", choices); - if (![self.currentState isEqualToString:SDLChoiceManagerStateReady]) { - SDLLogE(@"Attempted to delete choices in an incorrect state: %@, they will not be deleted", self.currentState); - return; - } - - // Find cells to be deleted that are already uploaded or are pending upload - NSSet *cellsToBeDeleted = [self sdl_choicesToBeDeletedWithArray:choices]; - NSSet *cellsToBeRemovedFromPending = [self sdl_choicesToBeRemovedFromPendingWithArray:choices]; - - // If choices are deleted that are already uploaded or pending and are used by a pending presentation, cancel it and send an error - NSSet *pendingPresentationChoices = [NSSet setWithArray:self.pendingPresentationSet.choices]; - if ((!self.pendingPresentOperation.isCancelled && !self.pendingPresentOperation.isFinished) - && ([cellsToBeDeleted intersectsSet:pendingPresentationChoices] || [cellsToBeRemovedFromPending intersectsSet:pendingPresentationChoices])) { - [self.pendingPresentOperation cancel]; - if (self.pendingPresentationSet.delegate != nil) { - [self.pendingPresentationSet.delegate choiceSet:self.pendingPresentationSet didReceiveError:[NSError sdl_choiceSetManager_choicesDeletedBeforePresentation:@{@"deletedChoices": choices}]]; - } - self.pendingPresentationSet = nil; - } - - // Remove the cells from pending and delete choices - [self sdl_runSyncOnQueue:^{ - [self.pendingMutablePreloadChoices minusSet:cellsToBeRemovedFromPending]; - }]; - - for (SDLAsynchronousOperation *op in self.transactionQueue.operations) { - if (![op isMemberOfClass:[SDLPreloadChoicesOperation class]]) { continue; } - - SDLPreloadChoicesOperation *preloadOp = (SDLPreloadChoicesOperation *)op; - [preloadOp removeChoicesFromUpload:cellsToBeRemovedFromPending]; - } - - // Find choices to delete - if (cellsToBeDeleted.count == 0) { return; } - - [self sdl_findIdsOnChoices:cellsToBeDeleted]; - SDLDeleteChoicesOperation *deleteOp = [[SDLDeleteChoicesOperation alloc] initWithConnectionManager:self.connectionManager cellsToDelete:cellsToBeDeleted]; - - __weak typeof(self) weakSelf = self; - __weak typeof(deleteOp) weakOp = deleteOp; - deleteOp.completionBlock = ^{ - SDLLogD(@"Finished deleting choices"); - - __strong typeof(weakSelf) strongSelf = weakSelf; - if (weakOp.error != nil) { - SDLLogE(@"Failed to delete choices: %@", weakOp.error); - return; - } - - // Check if the manager has shutdown because the list of uploaded choices should not be updated - if ([strongSelf.currentState isEqualToString:SDLChoiceManagerStateShutdown]) { - SDLLogD(@"Cancelling deleting choices because manager is shut down"); - return; - } - - [strongSelf sdl_runSyncOnQueue:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - [strongSelf.preloadedMutableChoices minusSet:cellsToBeDeleted]; - }]; - }; - [self.transactionQueue addOperation:deleteOp]; -} - -#pragma mark Present - -- (void)presentChoiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode withKeyboardDelegate:(nullable id)delegate { - if (![self.currentState isEqualToString:SDLChoiceManagerStateReady]) { - SDLLogE(@"Attempted to present choices in an incorrect state: %@, it will not be presented", self.currentState); - return; - } - - if (choiceSet == nil) { - SDLLogW(@"Attempted to present a nil choice set, ignoring."); - return; - } - - if (self.pendingPresentationSet != nil && !self.pendingPresentOperation.isFinished) { - SDLLogW(@"A choice set is pending: %@. We will try to cancel it in favor of presenting a different choice set: %@. If it's already on screen it cannot be cancelled", self.pendingPresentationSet, choiceSet); - [self.pendingPresentOperation cancel]; - } - - SDLLogD(@"Preloading and presenting choice set: %@", choiceSet); - self.pendingPresentationSet = choiceSet; - - [self preloadChoices:self.pendingPresentationSet.choices withCompletionHandler:^(NSError * _Nullable error) { - if (error != nil) { - [choiceSet.delegate choiceSet:choiceSet didReceiveError:error]; - return; - } - }]; - - [self sdl_findIdsOnChoiceSet:self.pendingPresentationSet]; - - SDLPresentChoiceSetOperation *presentOp = nil; - if (delegate == nil) { - // Non-searchable choice set - presentOp = [[SDLPresentChoiceSetOperation alloc] initWithConnectionManager:self.connectionManager choiceSet:self.pendingPresentationSet mode:mode keyboardProperties:nil keyboardDelegate:nil cancelID:self.nextCancelId]; - } else { - // Searchable choice set - presentOp = [[SDLPresentChoiceSetOperation alloc] initWithConnectionManager:self.connectionManager choiceSet:self.pendingPresentationSet mode:mode keyboardProperties:self.keyboardConfiguration keyboardDelegate:delegate cancelID:self.nextCancelId]; - } - self.pendingPresentOperation = presentOp; - - __weak typeof(self) weakSelf = self; - __weak typeof(presentOp) weakOp = presentOp; - self.pendingPresentOperation.completionBlock = ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - __strong typeof(weakOp) strongOp = weakOp; - - SDLLogD(@"Finished presenting choice set: %@", strongOp.choiceSet); - if (strongOp.error != nil && strongOp.choiceSet.delegate != nil) { - [strongOp.choiceSet.delegate choiceSet:strongOp.choiceSet didReceiveError:strongOp.error]; - } else if (strongOp.selectedCell != nil && strongOp.choiceSet.delegate != nil) { - [strongOp.choiceSet.delegate choiceSet:strongOp.choiceSet didSelectChoice:strongOp.selectedCell withSource:strongOp.selectedTriggerSource atRowIndex:strongOp.selectedCellRow]; - } - - strongSelf.pendingPresentOperation = nil; - strongSelf.pendingPresentationSet = nil; - }; - - [self.transactionQueue addOperation:presentOp]; -} - -- (nullable NSNumber *)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id)delegate { - if (![self.currentState isEqualToString:SDLChoiceManagerStateReady]) { - SDLLogE(@"Attempted to present keyboard in an incorrect state: %@, it will not be presented", self.currentState); - return nil; - } - - if (self.pendingPresentationSet != nil) { - SDLLogW(@"There's already a pending presentation set, cancelling it in favor of a keyboard"); - [self.pendingPresentOperation cancel]; - self.pendingPresentationSet = nil; - } - - SDLLogD(@"Presenting keyboard with initial text: %@", initialText); - // Present a keyboard with the choice set that we used to test VR's optional state - UInt16 keyboardCancelId = self.nextCancelId; - self.pendingPresentOperation = [[SDLPresentKeyboardOperation alloc] initWithConnectionManager:self.connectionManager keyboardProperties:self.keyboardConfiguration initialText:initialText keyboardDelegate:delegate cancelID:keyboardCancelId]; - [self.transactionQueue addOperation:self.pendingPresentOperation]; - return @(keyboardCancelId); -} - -- (void)dismissKeyboardWithCancelID:(NSNumber *)cancelID { - for (SDLAsynchronousOperation *op in self.transactionQueue.operations) { - if (![op isKindOfClass:SDLPresentKeyboardOperation.class]) { continue; } - - SDLPresentKeyboardOperation *keyboardOperation = (SDLPresentKeyboardOperation *)op; - if (keyboardOperation.cancelId != cancelID.unsignedShortValue) { continue; } - - SDLLogD(@"Dismissing keyboard with cancel ID: %@", cancelID); - [keyboardOperation dismissKeyboard]; - break; - } -} - -#pragma mark - Choice Management Helpers - -/// Checks the passed list of choices to be uploaded and returns the items that have not yet been uploaded to the module. -/// @param choices The choices to be uploaded -/// @return The choices that have not yet been uploaded to the module -- (NSSet *)sdl_choicesToBeUploadedWithArray:(NSArray *)choices { - NSMutableSet *choicesSet = [NSMutableSet setWithArray:choices]; - [choicesSet minusSet:self.preloadedChoices]; - - return [choicesSet copy]; -} - -/// Checks the passed list of choices to be deleted and returns the items that have been uploaded to the module. -/// @param choices The choices to be deleted -/// @return The choices that have been uploaded to the module -- (NSSet *)sdl_choicesToBeDeletedWithArray:(NSArray *)choices { - NSMutableSet *choicesSet = [NSMutableSet setWithArray:choices]; - [choicesSet intersectSet:self.preloadedChoices]; - - return [choicesSet copy]; -} - -/// Checks the passed list of choices to be deleted and returns the items that are waiting to be uploaded to the module. -/// @param choices The choices to be deleted -/// @return The choices that are waiting to be uploaded to the module -- (NSSet *)sdl_choicesToBeRemovedFromPendingWithArray:(NSArray *)choices { - NSMutableSet *choicesSet = [NSMutableSet setWithArray:choices]; - [choicesSet intersectSet:self.pendingPreloadChoices]; - - return [choicesSet copy]; -} - -/// Assigns a unique id to each choice item. -/// @param choices An array of choices -- (void)sdl_updateIdsOnChoices:(NSSet *)choices { - for (SDLChoiceCell *cell in choices) { - cell.choiceId = self.nextChoiceId; - } -} - -/// Checks each choice item to find out if it has already been uploaded or if it is the the process of being uploaded. If so, the choice item is assigned the unique id of the uploaded item. -/// @param choiceSet A set of choice items -- (void)sdl_findIdsOnChoiceSet:(SDLChoiceSet *)choiceSet { - [self sdl_findIdsOnChoices:[NSSet setWithArray:choiceSet.choices]]; -} - -/// Checks each choice item to find out if it has already been uploaded or if it is the the process of being uploaded. If so, the choice item is assigned the unique id of the uploaded item. -/// @param choices An array of choice items -- (void)sdl_findIdsOnChoices:(NSSet *)choices { - for (SDLChoiceCell *cell in choices) { - SDLChoiceCell *uploadCell = [self.pendingPreloadChoices member:cell] ?: [self.preloadedChoices member:cell]; - if (uploadCell == nil) { continue; } - cell.choiceId = uploadCell.choiceId; - } -} - -#pragma mark - Keyboard Configuration - -- (void)setKeyboardConfiguration:(nullable SDLKeyboardProperties *)keyboardConfiguration { - if (keyboardConfiguration == nil) { - SDLLogD(@"Updating keyboard configuration to the default"); - _keyboardConfiguration = [self sdl_defaultKeyboardConfiguration]; - } else { - SDLLogD(@"Updating keyboard configuration to a new configuration: %@", keyboardConfiguration); - _keyboardConfiguration = [[SDLKeyboardProperties alloc] initWithLanguage:keyboardConfiguration.language layout:keyboardConfiguration.keyboardLayout keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:keyboardConfiguration.limitedCharacterList autoCompleteText:keyboardConfiguration.autoCompleteText autoCompleteList:keyboardConfiguration.autoCompleteList]; - - if (keyboardConfiguration.keypressMode != SDLKeypressModeResendCurrentEntry) { - SDLLogW(@"Attempted to set a keyboard configuration with an invalid keypress mode; only .resentCurrentEntry is valid. This value will be ignored, the rest of the properties will be set."); - } - } -} - -- (SDLKeyboardProperties *)sdl_defaultKeyboardConfiguration { - return [[SDLKeyboardProperties alloc] initWithLanguage:SDLLanguageEnUs layout:SDLKeyboardLayoutQWERTY keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:nil autoCompleteText:nil autoCompleteList:nil]; -} - -#pragma mark - Getters - -- (NSSet *)preloadedChoices { - __block NSSet *set = nil; - [self sdl_runSyncOnQueue:^{ - set = [self->_preloadedMutableChoices copy]; - }]; - - return set; -} - -- (NSSet *)pendingPreloadChoices { - __block NSSet *set = nil; - [self sdl_runSyncOnQueue:^{ - set = [self->_pendingMutablePreloadChoices copy]; - }]; - - return set; -} - -- (UInt16)nextChoiceId { - __block UInt16 choiceId = 0; - [self sdl_runSyncOnQueue:^{ - choiceId = self->_nextChoiceId; - self->_nextChoiceId = choiceId + 1; - }]; - - return choiceId; -} - -- (UInt16)nextCancelId { - __block UInt16 cancelId = 0; - [self sdl_runSyncOnQueue:^{ - cancelId = self->_nextCancelId; - self->_nextCancelId = cancelId + 1; - }]; - - return cancelId; -} - -- (NSString *)currentState { - return self.stateMachine.currentState; -} - -#pragma mark Utilities - -/// Checks if we are already on a serial queue. If so, the block is added to the queue; if not, the block is dispatched to the serial `readWrite` queue. -/// @discussion Used to synchronize access to class properties. -/// @param block The block to be executed. -- (void)sdl_runSyncOnQueue:(void (^)(void))block { - if (dispatch_get_specific(SDLProcessingQueueName) != nil) { - block(); - } else { - dispatch_sync(self.readWriteQueue, block); - } -} - -#pragma mark - RPC Responses / Notifications - -- (void)sdl_displayCapabilityDidUpdate:(SDLSystemCapability *)systemCapability { - NSArray *capabilities = systemCapability.displayCapabilities; - if (capabilities == nil || capabilities.count == 0) { - self.currentWindowCapability = nil; - } else { - SDLDisplayCapability *mainDisplay = capabilities[0]; - for (SDLWindowCapability *windowCapability in mainDisplay.windowCapabilities) { - NSUInteger currentWindowID = windowCapability.windowID != nil ? windowCapability.windowID.unsignedIntegerValue : SDLPredefinedWindowsDefaultWindow; - if (currentWindowID != SDLPredefinedWindowsDefaultWindow) { continue; } - - self.currentWindowCapability = windowCapability; - break; - } - } - - [self sdl_updateTransactionQueueSuspended]; -} - -- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { - // We can only present a choice set if we're in FULL - SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; - if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { return; } - - self.currentHMILevel = hmiStatus.hmiLevel; - - [self sdl_updateTransactionQueueSuspended]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.h deleted file mode 100644 index 351b8dd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.h +++ /dev/null @@ -1,239 +0,0 @@ -// -// SDLClimateControlCapabilities.h -// - -#import "SDLRPCMessage.h" -#import "SDLDefrostZone.h" -#import "SDLVentilationMode.h" -#import "SDLModuleInfo.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Contains information about a climate control module's capabilities. - */ -@interface SDLClimateControlCapabilities : SDLRPCStruct - -/// Convenience init to describe the climate control capabilities. -/// -/// @param moduleName The short friendly name of the climate control module -/// @param fanSpeedAvailable Availability of the control of fan speed -/// @param desiredTemperatureAvailable Availability of the control of desired temperature -/// @param acEnableAvailable Availability of the control of turn on/off AC -/// @param acMaxEnableAvailable Availability of the control of enable/disable air conditioning is ON on the maximum level -/// @param circulateAirEnableAvailable Availability of the control of enable/disable circulate Air mode -/// @param autoModeEnableAvailable Availability of the control of enable/disable auto mode -/// @param dualModeEnableAvailable Availability of the control of enable/disable dual mode -/// @param defrostZoneAvailable Availability of the control of defrost zones -/// @param ventilationModeAvailable Availability of the control of air ventilation mode -/// @return An SDLClimateControlCapabilities object -- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable __deprecated_msg("Use initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: climateEnableAvailable: instead"); - - -/// Convenience init to describe the climate control capabilities. -/// -/// @param moduleName The short friendly name of the climate control module -/// @param fanSpeedAvailable Availability of the control of fan speed -/// @param desiredTemperatureAvailable Availability of the control of desired temperature -/// @param acEnableAvailable Availability of the control of turn on/off AC -/// @param acMaxEnableAvailable Availability of the control of enable/disable air conditioning is ON on the maximum level -/// @param circulateAirEnableAvailable Availability of the control of enable/disable circulate Air mode -/// @param autoModeEnableAvailable Availability of the control of enable/disable auto mode -/// @param dualModeEnableAvailable Availability of the control of enable/disable dual mode -/// @param defrostZoneAvailable Availability of the control of defrost zones -/// @param ventilationModeAvailable Availability of the control of air ventilation mode -/// @param heatedSteeringWheelAvailable Availability of the control (enable/disable) of heated Steering Wheel -/// @param heatedWindshieldAvailable Availability of the control (enable/disable) of heated Windshield -/// @param heatedRearWindowAvailable Availability of the control (enable/disable) of heated Rear Window -/// @param heatedMirrorsAvailable Availability of the control (enable/disable) of heated Mirrors -/// @return An SDLClimateControlCapabilities object -- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable __deprecated_msg("Use initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: climateEnableAvailable: instead"); - -/// Convenience init to describe the climate control capabilities. -/// -/// @param moduleName The short friendly name of the climate control module -/// @param fanSpeedAvailable Availability of the control of fan speed -/// @param desiredTemperatureAvailable Availability of the control of desired temperature -/// @param acEnableAvailable Availability of the control of turn on/off AC -/// @param acMaxEnableAvailable Availability of the control of enable/disable air conditioning is ON on the maximum level -/// @param circulateAirEnableAvailable Availability of the control of enable/disable circulate Air mode -/// @param autoModeEnableAvailable Availability of the control of enable/disable auto mode -/// @param dualModeEnableAvailable Availability of the control of enable/disable dual mode -/// @param defrostZoneAvailable Availability of the control of defrost zones -/// @param ventilationModeAvailable Availability of the control of air ventilation mode -/// @param heatedSteeringWheelAvailable Availability of the control (enable/disable) of heated Steering Wheel -/// @param heatedWindshieldAvailable Availability of the control (enable/disable) of heated Windshield -/// @param heatedRearWindowAvailable Availability of the control (enable/disable) of heated Rear Window -/// @param heatedMirrorsAvailable Availability of the control (enable/disable) of heated Mirrors -/// @param climateEnableAvailable Availability of the control of enable/disable climate control -/// @return An SDLClimateControlCapabilities object -- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable __deprecated_msg("Use initWithModuleName: moduleId:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: climateEnableAvailable: instead"); - -/// Convenience init to describe the climate control capabilities with all properities. -/// -/// @param moduleName The short friendly name of the climate control module. -/// @param moduleInfo Information about a RC module, including its id -/// @param fanSpeedAvailable Availability of the control of fan speed -/// @param desiredTemperatureAvailable Availability of the control of desired temperature -/// @param acEnableAvailable Availability of the control of turn on/off AC -/// @param acMaxEnableAvailable Availability of the control of enable/disable air conditioning is ON on the maximum level -/// @param circulateAirEnableAvailable Availability of the control of enable/disable circulate Air mode. -/// @param autoModeEnableAvailable Availability of the control of enable/disable auto mode -/// @param dualModeEnableAvailable Availability of the control of enable/disable dual mode -/// @param defrostZoneAvailable Availability of the control of defrost zones -/// @param ventilationModeAvailable Availability of the control of air ventilation mode -/// @param heatedSteeringWheelAvailable Availability of the control (enable/disable) of heated Steering Wheel -/// @param heatedWindshieldAvailable Availability of the control (enable/disable) of heated Windshield -/// @param heatedRearWindowAvailable Availability of the control (enable/disable) of heated Rear Window -/// @param heatedMirrorsAvailable Availability of the control (enable/disable) of heated Mirrors -/// @param climateEnableAvailable Availability of the control of enable/disable climate control -/// @return An SDLClimateControlCapabilities object -- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable; - -/** - * The short friendly name of the climate control module. - * It should not be used to identify a module by mobile application. - * - * Max string length 100 chars - - Required - */ -@property (strong, nonatomic) NSString *moduleName; - -/** - * Availability of the control of fan speed. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *fanSpeedAvailable; - -/** - * Availability of the control of desired temperature. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *desiredTemperatureAvailable; - -/** - * Availability of the control of turn on/off AC. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *acEnableAvailable; - -/** - * Availability of the control of enable/disable air conditioning is ON on the maximum level. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *acMaxEnableAvailable; - -/** - * Availability of the control of enable/disable circulate Air mode. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *circulateAirEnableAvailable; - -/** - * Availability of the control of enable/disable auto mode. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *autoModeEnableAvailable; - -/** - * Availability of the control of enable/disable dual mode. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *dualModeEnableAvailable; - -/** - * Availability of the control of defrost zones. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *defrostZoneAvailable; - -/** - * A set of all defrost zones that are controllable. - * - * Optional, NSArray of type SDLDefrostZone minsize="1" maxsize="100" - */ -@property (nullable, strong, nonatomic) NSArray *defrostZone; - -/** - * Availability of the control of air ventilation mode. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *ventilationModeAvailable; - -/** - * A set of all ventilation modes that are controllable. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, NSArray of type SDLVentilationMode minsize="1" maxsize="100" - */ -@property (nullable, strong, nonatomic) NSArray *ventilationMode; - -/** - * @abstract Availability of the control (enable/disable) of heated Steering Wheel. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *heatedSteeringWheelAvailable; - -/** - * @abstract Availability of the control (enable/disable) of heated Windshield. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *heatedWindshieldAvailable; - -/** - * @abstract Availability of the control (enable/disable) of heated Rear Window. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *heatedRearWindowAvailable; - -/** - * @abstract Availability of the control (enable/disable) of heated Mirrors. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *heatedMirrorsAvailable; - -/** - * @abstract Availability of the control of enable/disable climate control. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *climateEnableAvailable; - -/** - * Information about a RC module, including its id. - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.m deleted file mode 100644 index 5742cb8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlCapabilities.m +++ /dev/null @@ -1,197 +0,0 @@ -// -// SDLClimateControlCapabilities.m -// - -#import "SDLClimateControlCapabilities.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLClimateControlCapabilities - -- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable { - return [self initWithModuleName:moduleName fanSpeedAvailable:fanSpeedAvailable desiredTemperatureAvailable:desiredTemperatureAvailable acEnableAvailable:acEnableAvailable acMaxEnableAvailable:acMaxEnableAvailable circulateAirAvailable:circulateAirEnableAvailable autoModeEnableAvailable:autoModeEnableAvailable dualModeEnableAvailable:dualModeEnableAvailable defrostZoneAvailable:defrostZoneAvailable ventilationModeAvailable:ventilationModeAvailable heatedSteeringWheelAvailable:NO heatedWindshieldAvailable:NO heatedRearWindowAvailable:NO heatedMirrorsAvailable:NO]; -} - -- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)steeringWheelAvailable heatedWindshieldAvailable:(BOOL)windshieldAvailable heatedRearWindowAvailable:(BOOL)rearWindowAvailable heatedMirrorsAvailable:(BOOL)mirrorsAvailable { - return [self initWithModuleName:moduleName fanSpeedAvailable:fanSpeedAvailable desiredTemperatureAvailable:desiredTemperatureAvailable acEnableAvailable:acEnableAvailable acMaxEnableAvailable:acMaxEnableAvailable circulateAirAvailable:circulateAirEnableAvailable autoModeEnableAvailable:autoModeEnableAvailable dualModeEnableAvailable:dualModeEnableAvailable defrostZoneAvailable:defrostZoneAvailable ventilationModeAvailable:ventilationModeAvailable heatedSteeringWheelAvailable:steeringWheelAvailable heatedWindshieldAvailable:windshieldAvailable heatedRearWindowAvailable:rearWindowAvailable heatedMirrorsAvailable:mirrorsAvailable climateEnableAvailable:NO]; -} - -- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)steeringWheelAvailable heatedWindshieldAvailable:(BOOL)windshieldAvailable heatedRearWindowAvailable:(BOOL)rearWindowAvailable heatedMirrorsAvailable:(BOOL)mirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable{ - return [self initWithModuleName:moduleName moduleInfo:nil fanSpeedAvailable:fanSpeedAvailable desiredTemperatureAvailable:desiredTemperatureAvailable acEnableAvailable:acEnableAvailable acMaxEnableAvailable:acMaxEnableAvailable circulateAirAvailable:circulateAirEnableAvailable autoModeEnableAvailable:autoModeEnableAvailable dualModeEnableAvailable:dualModeEnableAvailable defrostZoneAvailable:defrostZoneAvailable ventilationModeAvailable:ventilationModeAvailable heatedSteeringWheelAvailable:steeringWheelAvailable heatedWindshieldAvailable:windshieldAvailable heatedRearWindowAvailable:rearWindowAvailable heatedMirrorsAvailable:mirrorsAvailable climateEnableAvailable:NO]; -} - -- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)steeringWheelAvailable heatedWindshieldAvailable:(BOOL)windshieldAvailable heatedRearWindowAvailable:(BOOL)rearWindowAvailable heatedMirrorsAvailable:(BOOL)mirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable{ - self = [self init]; - if (!self) { - return nil; - } - - self.moduleName = moduleName; - self.moduleInfo = moduleInfo; - self.fanSpeedAvailable = @(fanSpeedAvailable); - self.desiredTemperatureAvailable = @(desiredTemperatureAvailable); - self.acEnableAvailable = @(acEnableAvailable); - self.acMaxEnableAvailable = @(acMaxEnableAvailable); - self.circulateAirEnableAvailable = @(circulateAirEnableAvailable); - self.autoModeEnableAvailable = @(autoModeEnableAvailable); - self.dualModeEnableAvailable = @(dualModeEnableAvailable); - self.defrostZoneAvailable = @(defrostZoneAvailable); - self.ventilationModeAvailable = @(ventilationModeAvailable); - self.heatedSteeringWheelAvailable = @(steeringWheelAvailable); - self.heatedWindshieldAvailable = @(windshieldAvailable); - self.heatedRearWindowAvailable = @(rearWindowAvailable); - self.heatedMirrorsAvailable = @(mirrorsAvailable); - self.climateEnableAvailable = @(climateEnableAvailable); - return self; -} - -- (void)setModuleName:(NSString *)moduleName { - [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; -} - -- (NSString *)moduleName { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; -} - -- (void)setFanSpeedAvailable:(nullable NSNumber *)fanSpeedAvailable { - [self.store sdl_setObject:fanSpeedAvailable forName:SDLRPCParameterNameFanSpeedAvailable]; -} - -- (nullable NSNumber *)fanSpeedAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameFanSpeedAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setDesiredTemperatureAvailable:(nullable NSNumber *)desiredTemperatureAvailable { - [self.store sdl_setObject:desiredTemperatureAvailable forName:SDLRPCParameterNameDesiredTemperatureAvailable]; -} - -- (nullable NSNumber *)desiredTemperatureAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameDesiredTemperatureAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setAcEnableAvailable:(nullable NSNumber *)acEnableAvailable { - [self.store sdl_setObject:acEnableAvailable forName:SDLRPCParameterNameACEnableAvailable]; -} - -- (nullable NSNumber *)acEnableAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameACEnableAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setAcMaxEnableAvailable:(nullable NSNumber *)acMaxEnableAvailable { - [self.store sdl_setObject:acMaxEnableAvailable forName:SDLRPCParameterNameACMaxEnableAvailable]; -} - -- (nullable NSNumber *)acMaxEnableAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameACMaxEnableAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setCirculateAirEnableAvailable:(nullable NSNumber *)circulateAirEnableAvailable { - [self.store sdl_setObject:circulateAirEnableAvailable forName:SDLRPCParameterNameCirculateAirEnableAvailable]; -} - -- (nullable NSNumber *)circulateAirEnableAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameCirculateAirEnableAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setAutoModeEnableAvailable:(nullable NSNumber *)autoModeEnableAvailable { - [self.store sdl_setObject:autoModeEnableAvailable forName:SDLRPCParameterNameAutoModeEnableAvailable]; -} - -- (nullable NSNumber *)autoModeEnableAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameAutoModeEnableAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setDualModeEnableAvailable:(nullable NSNumber *)dualModeEnableAvailable { - [self.store sdl_setObject:dualModeEnableAvailable forName:SDLRPCParameterNameDualModeEnableAvailable]; -} - -- (nullable NSNumber *)dualModeEnableAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameDualModeEnableAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setDefrostZoneAvailable:(nullable NSNumber *)defrostZoneAvailable { - [self.store sdl_setObject:defrostZoneAvailable forName:SDLRPCParameterNameDefrostZoneAvailable]; -} - -- (nullable NSNumber *)defrostZoneAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameDefrostZoneAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setDefrostZone:(nullable NSArray *)defrostZone { - [self.store sdl_setObject:defrostZone forName:SDLRPCParameterNameDefrostZone]; -} - -- (nullable NSArray *)defrostZone { - return [self.store sdl_enumsForName:SDLRPCParameterNameDefrostZone error:nil]; -} - -- (void)setVentilationModeAvailable:(nullable NSNumber *)ventilationModeAvailable { - [self.store sdl_setObject:ventilationModeAvailable forName:SDLRPCParameterNameVentilationModeAvailable]; -} - -- (nullable NSNumber *)ventilationModeAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameVentilationModeAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setVentilationMode:(nullable NSArray *)ventilationMode { - [self.store sdl_setObject:ventilationMode forName:SDLRPCParameterNameVentilationMode]; -} - -- (nullable NSArray *)ventilationMode { - return [self.store sdl_enumsForName:SDLRPCParameterNameVentilationMode error:nil]; -} - -- (void)setHeatedSteeringWheelAvailable:(nullable NSNumber *)heatedSteeringWheelAvailable { - [self.store sdl_setObject:heatedSteeringWheelAvailable forName:SDLRPCParameterNameHeatedSteeringWheelAvailable]; -} - -- (nullable NSNumber *)heatedSteeringWheelAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameHeatedSteeringWheelAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setHeatedWindshieldAvailable:(nullable NSNumber *)heatedWindshieldAvailable { - [self.store sdl_setObject:heatedWindshieldAvailable forName:SDLRPCParameterNameHeatedWindshieldAvailable]; -} - -- (nullable NSNumber *)heatedWindshieldAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameHeatedWindshieldAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setHeatedRearWindowAvailable:(nullable NSNumber *)heatedRearWindowAvailable { - [self.store sdl_setObject:heatedRearWindowAvailable forName:SDLRPCParameterNameHeatedRearWindowAvailable]; -} - -- (nullable NSNumber *)heatedRearWindowAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameHeatedRearWindowAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setHeatedMirrorsAvailable:(nullable NSNumber *)heatedMirrorsAvailable { - [self.store sdl_setObject:heatedMirrorsAvailable forName:SDLRPCParameterNameHeatedMirrorsAvailable]; -} - -- (nullable NSNumber *)heatedMirrorsAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameHeatedMirrorsAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setClimateEnableAvailable:(nullable NSNumber *)climateEnableAvailable { - [self.store sdl_setObject:climateEnableAvailable forName:SDLRPCParameterNameClimateEnableAvailable]; -} - -- (nullable NSNumber *)climateEnableAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameClimateEnableAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { - [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; -} - -- (nullable SDLModuleInfo *)moduleInfo { - return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.h deleted file mode 100644 index f811967..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.h +++ /dev/null @@ -1,176 +0,0 @@ -// -// SDLClimateControlData.h -// - -#import "SDLRPCMessage.h" -#import "SDLDefrostZone.h" -#import "SDLVentilationMode.h" - -NS_ASSUME_NONNULL_BEGIN - -@class SDLTemperature; - - -/** - The current information for the Climate Remote Control Module - */ -@interface SDLClimateControlData : SDLRPCStruct - -/// Convenience init for climate control data. -/// @param fanSpeed Speed of Fan in integer -/// @param desiredTemperature Desired Temperature in SDLTemperature -/// @param acEnable Represents if AC is enabled -/// @param circulateAirEnable Represents if circulation of air is enabled -/// @param autoModeEnable Represents if auto mode is enabled -/// @param defrostZone Represents the kind of defrost zone -/// @param dualModeEnable Represents if dual mode is enabled -/// @param acMaxEnable Represents if ac max is enabled -/// @param ventilationMode Represents the kind of ventilation zone -/// @return An SDLClimateControlData object -- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode __deprecated_msg("Use initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone: dualModeEnable:acMaxEnable:ventilationMode:heatedSteeringWheelEnable: heatedWindshieldEnable:heatedRearWindowEnable:heatedMirrorsEnable:climateEnable instead"); - -/// Convenience init for climate control data. -/// @param fanSpeed Speed of Fan in integer -/// @param desiredTemperature Desired Temperature in SDLTemperature -/// @param acEnable Represents if AC is enabled -/// @param circulateAirEnable Represents if circulation of air is enabled -/// @param autoModeEnable Represents if auto mode is enabled -/// @param defrostZone Represents the kind of defrost zone -/// @param dualModeEnable Represents if dual mode is enabled -/// @param acMaxEnable Represents if ac max is enabled -/// @param ventilationMode Represents the kind of ventilation zone -/// @param heatedSteeringWheelEnable Represents if heated steering wheel is enabled -/// @param heatedWindshieldEnable Represents if heated windshield is enabled -/// @param heatedRearWindowEnable Represents if heated rear window is enabled -/// @param heatedMirrorsEnable Represents if heated mirrors are enabled -/// @return An SDLClimateControlData object -- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode heatedSteeringWheelEnable:(nullable NSNumber *)heatedSteeringWheelEnable heatedWindshieldEnable:(nullable NSNumber *)heatedWindshieldEnable heatedRearWindowEnable:(nullable NSNumber *)heatedRearWindowEnable heatedMirrorsEnable:(nullable NSNumber *)heatedMirrorsEnable __deprecated_msg("Use initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone: dualModeEnable:acMaxEnable:ventilationMode:heatedSteeringWheelEnable: heatedWindshieldEnable:heatedRearWindowEnable:heatedMirrorsEnable:climateEnable instead"); - -/// Convenience init for climate control data with all properties. -/// @param fanSpeed Speed of Fan in integer -/// @param desiredTemperature Desired Temperature in SDLTemperature -/// @param acEnable Represents if AC is enabled -/// @param circulateAirEnable Represents if circulation of air is enabled -/// @param autoModeEnable Represents if auto mode is enabled -/// @param defrostZone Represents the kind of defrost zone -/// @param dualModeEnable Represents if dual mode is enabled -/// @param acMaxEnable Represents if ac max is enabled -/// @param ventilationMode Represents the kind of ventilation zone -/// @param heatedSteeringWheelEnable Represents if heated steering wheel is enabled -/// @param heatedWindshieldEnable Represents if heated windshield is enabled -/// @param heatedRearWindowEnable Represents if heated rear window is enabled -/// @param heatedMirrorsEnable Represents if heated mirrors are enabled -/// @param climateEnable Represents if climate is enabled -/// @return An SDLClimateControlData object -- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode heatedSteeringWheelEnable:(nullable NSNumber *)heatedSteeringWheelEnable heatedWindshieldEnable:(nullable NSNumber *)heatedWindshieldEnable heatedRearWindowEnable:(nullable NSNumber *)heatedRearWindowEnable heatedMirrorsEnable:(nullable NSNumber *)heatedMirrorsEnable climateEnable:(nullable NSNumber *)climateEnable; - -/** - * Speed of Fan in integer - * - * Optional, MinValue- 0 MaxValue= 100 - */ -@property (nullable, strong, nonatomic) NSNumber *fanSpeed; - -/** - * The Current Temperature in SDLTemperature - * - * @warning This property is readonly and cannot be set on the module. - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLTemperature *currentTemperature; - -/** - * Desired Temperature in SDLTemperature - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLTemperature *desiredTemperature; - -/** - * Represents if AC is enabled. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *acEnable; - -/** - * Represents if circulation of air is enabled. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *circulateAirEnable; - -/** - * Represents if auto mode is enabled. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *autoModeEnable; - -/** - * Represents the kind of defrost zone. - * - * Optional, SDLDefrostZone - */ -@property (nullable, strong, nonatomic) SDLDefrostZone defrostZone; - -/** - * Represents if dual mode is enabled. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *dualModeEnable; - -/** - * Represents if ac max is enabled. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *acMaxEnable; - -/** - * Represents the kind of Ventilation zone. - * - * Optional, SDLVentilationMode - */ -@property (nullable, strong, nonatomic) SDLVentilationMode ventilationMode; - -/** - * @abstract value false means disabled/turn off, value true means enabled/turn on. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *heatedSteeringWheelEnable; - -/** - * @abstract value false means disabled, value true means enabled. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *heatedWindshieldEnable; - -/** - * @abstract value false means disabled, value true means enabled. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *heatedRearWindowEnable; - -/** - * @abstract Value false means disabled, value true means enabled. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *heatedMirrorsEnable; - -/** - * @abstract Value false means disabled, value true means enabled. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *climateEnable; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.m deleted file mode 100644 index bed8ba3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClimateControlData.m +++ /dev/null @@ -1,187 +0,0 @@ -// -// SDLClimateControlData.m -// - -#import "SDLClimateControlData.h" -#import "SDLRPCParameterNames.h" -#import "SDLTemperature.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLClimateControlData - -- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode { - return [self initWithFanSpeed:fanSpeed desiredTemperature:desiredTemperature acEnable:acEnable circulateAirEnable:circulateAirEnable autoModeEnable:autoModeEnable defrostZone:defrostZone dualModeEnable:dualModeEnable acMaxEnable:acMaxEnable ventilationMode:ventilationMode heatedSteeringWheelEnable:@NO heatedWindshieldEnable:@NO heatedRearWindowEnable:@NO heatedMirrorsEnable:@NO]; -} - -- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode heatedSteeringWheelEnable:(nullable NSNumber *)heatedSteeringWheelEnable heatedWindshieldEnable:(nullable NSNumber *)heatedWindshieldEnable heatedRearWindowEnable:(nullable NSNumber *)heatedRearWindowEnable heatedMirrorsEnable:(nullable NSNumber *)heatedMirrorsEnable { - self = [self init]; - if (!self) { - return nil; - } - - self.fanSpeed = fanSpeed; - self.desiredTemperature = desiredTemperature; - self.acEnable = acEnable; - self.circulateAirEnable = circulateAirEnable; - self.autoModeEnable = autoModeEnable; - self.defrostZone = defrostZone; - self.dualModeEnable = dualModeEnable; - self.acMaxEnable = acMaxEnable; - self.ventilationMode = ventilationMode; - self.heatedSteeringWheelEnable = heatedSteeringWheelEnable; - self.heatedWindshieldEnable = heatedWindshieldEnable; - self.heatedRearWindowEnable = heatedRearWindowEnable; - self.heatedMirrorsEnable = heatedMirrorsEnable; - - return self; -} - -- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode heatedSteeringWheelEnable:(nullable NSNumber *)heatedSteeringWheelEnable heatedWindshieldEnable:(nullable NSNumber *)heatedWindshieldEnable heatedRearWindowEnable:(nullable NSNumber *)heatedRearWindowEnable heatedMirrorsEnable:(nullable NSNumber *)heatedMirrorsEnable climateEnable:(nullable NSNumber *)climateEnable { - self = [self init]; - if (!self) { - return nil; - } - - self.fanSpeed = fanSpeed; - self.desiredTemperature = desiredTemperature; - self.acEnable = acEnable; - self.circulateAirEnable = circulateAirEnable; - self.autoModeEnable = autoModeEnable; - self.defrostZone = defrostZone; - self.dualModeEnable = dualModeEnable; - self.acMaxEnable = acMaxEnable; - self.ventilationMode = ventilationMode; - self.heatedSteeringWheelEnable = heatedSteeringWheelEnable; - self.heatedWindshieldEnable = heatedWindshieldEnable; - self.heatedRearWindowEnable = heatedRearWindowEnable; - self.heatedMirrorsEnable = heatedMirrorsEnable; - self.climateEnable = climateEnable; - - return self; -} - -- (void)setFanSpeed:(nullable NSNumber *)fanSpeed { - [self.store sdl_setObject:fanSpeed forName:SDLRPCParameterNameFanSpeed]; -} - -- (nullable NSNumber *)fanSpeed { - return [self.store sdl_objectForName:SDLRPCParameterNameFanSpeed ofClass:NSNumber.class error:nil]; -} - -- (void)setCurrentTemperature:(nullable SDLTemperature *)currentTemperature { - [self.store sdl_setObject:currentTemperature forName:SDLRPCParameterNameCurrentTemperature]; -} - -- (nullable SDLTemperature *)currentTemperature { - return [self.store sdl_objectForName:SDLRPCParameterNameCurrentTemperature ofClass:SDLTemperature.class error:nil]; -} - -- (void)setDesiredTemperature:(nullable SDLTemperature *)desiredTemperature { - [self.store sdl_setObject:desiredTemperature forName:SDLRPCParameterNameDesiredTemperature]; -} - -- (nullable SDLTemperature *)desiredTemperature { - return [self.store sdl_objectForName:SDLRPCParameterNameDesiredTemperature ofClass:SDLTemperature.class error:nil]; -} - -- (void)setAcEnable:(nullable NSNumber *)acEnable { - [self.store sdl_setObject:acEnable forName:SDLRPCParameterNameACEnable]; -} - -- (nullable NSNumber *)acEnable { - return [self.store sdl_objectForName:SDLRPCParameterNameACEnable ofClass:NSNumber.class error:nil]; -} - -- (void)setCirculateAirEnable:(nullable NSNumber *)circulateAirEnable { - [self.store sdl_setObject:circulateAirEnable forName:SDLRPCParameterNameCirculateAirEnable]; -} - -- (nullable NSNumber *)circulateAirEnable { - return [self.store sdl_objectForName:SDLRPCParameterNameCirculateAirEnable ofClass:NSNumber.class error:nil]; -} - -- (void)setAutoModeEnable:(nullable NSNumber *)autoModeEnable { - [self.store sdl_setObject:autoModeEnable forName:SDLRPCParameterNameAutoModeEnable]; -} - -- (nullable NSNumber *)autoModeEnable { - return [self.store sdl_objectForName:SDLRPCParameterNameAutoModeEnable ofClass:NSNumber.class error:nil]; -} - -- (void)setDefrostZone:(nullable SDLDefrostZone)defrostZone { - [self.store sdl_setObject:defrostZone forName:SDLRPCParameterNameDefrostZone]; -} - -- (nullable SDLDefrostZone)defrostZone { - return [self.store sdl_enumForName:SDLRPCParameterNameDefrostZone error:nil]; -} - -- (void)setDualModeEnable:(nullable NSNumber *)dualModeEnable { - [self.store sdl_setObject:dualModeEnable forName:SDLRPCParameterNameDualModeEnable]; -} - -- (nullable NSNumber *)dualModeEnable { - return [self.store sdl_objectForName:SDLRPCParameterNameDualModeEnable ofClass:NSNumber.class error:nil]; -} - -- (void)setAcMaxEnable:(nullable NSNumber *)acMaxEnable { - [self.store sdl_setObject:acMaxEnable forName:SDLRPCParameterNameACMaxEnable]; -} - -- (nullable NSNumber *)acMaxEnable { - return [self.store sdl_objectForName:SDLRPCParameterNameACMaxEnable ofClass:NSNumber.class error:nil]; -} - -- (void)setVentilationMode:(nullable SDLVentilationMode)ventilationMode { - [self.store sdl_setObject:ventilationMode forName:SDLRPCParameterNameVentilationMode]; -} - -- (nullable SDLVentilationMode)ventilationMode { - return [self.store sdl_enumForName:SDLRPCParameterNameVentilationMode error:nil]; -} - -- (void)setHeatedSteeringWheelEnable:(nullable NSNumber *)heatedSteeringWheelEnable { - [self.store sdl_setObject:heatedSteeringWheelEnable forName:SDLRPCParameterNameHeatedSteeringWheelEnable]; -} - -- (nullable NSNumber *)heatedSteeringWheelEnable { - return [self.store sdl_objectForName:SDLRPCParameterNameHeatedSteeringWheelEnable ofClass:NSNumber.class error:nil]; -} - -- (void)setHeatedWindshieldEnable:(nullable NSNumber *)heatedWindshieldEnable { - [self.store sdl_setObject:heatedWindshieldEnable forName:SDLRPCParameterNameHeatedWindshieldEnable]; -} - -- (nullable NSNumber *)heatedWindshieldEnable { - return [self.store sdl_objectForName:SDLRPCParameterNameHeatedWindshieldEnable ofClass:NSNumber.class error:nil]; -} - -- (void)setHeatedRearWindowEnable:(nullable NSNumber *)heatedRearWindowEnable { - [self.store sdl_setObject:heatedRearWindowEnable forName:SDLRPCParameterNameHeatedRearWindowEnable]; -} - -- (nullable NSNumber *)heatedRearWindowEnable { - return [self.store sdl_objectForName:SDLRPCParameterNameHeatedRearWindowEnable ofClass:NSNumber.class error:nil]; -} - -- (void)setHeatedMirrorsEnable:(nullable NSNumber *)heatedMirrorsEnable { - [self.store sdl_setObject:heatedMirrorsEnable forName:SDLRPCParameterNameHeatedMirrorsEnable]; -} - -- (nullable NSNumber *)heatedMirrorsEnable { - return [self.store sdl_objectForName:SDLRPCParameterNameHeatedMirrorsEnable ofClass:NSNumber.class error:nil]; -} - -- (void)setClimateEnable:(nullable NSNumber *)climateEnable { - [self.store sdl_setObject:climateEnable forName:SDLRPCParameterNameClimateEnable]; -} - -- (nullable NSNumber *)climateEnable { - return [self.store sdl_objectForName:SDLRPCParameterNameClimateEnable ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.h deleted file mode 100644 index 38418e9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// SDLCloseApplication.h -// SmartDeviceLink -// -// Created by Nicole on 7/9/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Used by an app to set itself to a `HMILevel` of `NONE`. The app will close but will still be registered. If the app is a navigation app it will no longer be used as the preferred mobile-navigation application by the module. - */ -@interface SDLCloseApplication : SDLRPCRequest - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.m deleted file mode 100644 index 743a707..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplication.m +++ /dev/null @@ -1,27 +0,0 @@ -// -// SDLCloseApplication.m -// SmartDeviceLink -// -// Created by Nicole on 7/9/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLCloseApplication.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLCloseApplication - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameCloseApplication]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.h deleted file mode 100644 index a789293..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// SDLCloseApplicationResponse.h -// SmartDeviceLink -// -// Created by Nicole on 7/9/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Response to the request to close this app on the module. - */ -@interface SDLCloseApplicationResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.m deleted file mode 100644 index 3c77431..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloseApplicationResponse.m +++ /dev/null @@ -1,27 +0,0 @@ -// -// SDLCloseApplicationResponse.m -// SmartDeviceLink -// -// Created by Nicole on 7/9/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLCloseApplicationResponse.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLCloseApplicationResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameCloseApplication]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.h deleted file mode 100644 index 6f64956..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.h +++ /dev/null @@ -1,94 +0,0 @@ -// -// SDLCloudAppProperties.h -// SmartDeviceLink -// -// Created by Nicole on 2/26/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCStruct.h" - -#import "SDLHybridAppPreference.h" - - -NS_ASSUME_NONNULL_BEGIN - -/** - * The cloud application properties. - */ -@interface SDLCloudAppProperties : SDLRPCStruct - -/** - * Convenience init for required parameters. - * - * @param appID The id of the cloud app - * @return A SDLCloudAppProperties object - */ -- (instancetype)initWithAppID:(NSString *)appID NS_DESIGNATED_INITIALIZER; - -/** - * Convenience init for all parameters. - * - * @param appID The id of the cloud app - * @param nicknames An array of app names a cloud app is allowed to register with - * @param enabled If true, the cloud app will appear in the HMI's app list; if false, the cloud app will not appear in the HMI's app list - * @param authToken Used to authenticate websocket connection on app activation - * @param cloudTransportType Specifies the connection type Core should use - * @param hybridAppPreference Specifies the user preference to use the cloud app version or mobile app version when both are available - * @param endpoint The websocket endpoint - * @return A SDLCloudAppProperties object - */ -- (instancetype)initWithAppID:(NSString *)appID nicknames:(nullable NSArray *)nicknames enabled:(BOOL)enabled authToken:(nullable NSString *)authToken cloudTransportType:(nullable NSString *)cloudTransportType hybridAppPreference:(nullable SDLHybridAppPreference)hybridAppPreference endpoint:(nullable NSString *)endpoint; - -/** - * An array of app names a cloud app is allowed to register with. If included in a `SetCloudAppProperties` request, this value will overwrite the existing "nicknames" field in the app policies section of the policy table. - * - * Array of Strings, Optional, String length: minlength="0" maxlength="100", Array size: minsize="0" maxsize="100" - */ -@property (nullable, strong, nonatomic) NSArray *nicknames; - -/** - * The id of the cloud app. - * - * String, Required, maxlength="100" - */ -@property (strong, nonatomic) NSString *appID; - -/** - * If true, the cloud app will appear in the HMI's app list; if false, the cloud app will not appear in the HMI's app list. - * - * Boolean, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *enabled; - -/** - * Used to authenticate websocket connection on app activation. - * - * String, Optional, maxlength="65535" - */ -@property (nullable, strong, nonatomic) NSString *authToken; - -/** - * Specifies the connection type Core should use. Currently the ones that work in SDL Core are `WS` or `WSS`, but an OEM can implement their own transport adapter to handle different values. - * - * String, Optional, maxlength="100" - */ -@property (nullable, strong, nonatomic) NSString *cloudTransportType; - -/** - * Specifies the user preference to use the cloud app version or mobile app version when both are available. - * - * SDLHybridAppPreference, Optional - */ -@property (nullable, strong, nonatomic) SDLHybridAppPreference hybridAppPreference; - -/** - * The websocket endpoint. - * - * String, Optional, maxlength="65535" - */ -@property (nullable, strong, nonatomic) NSString *endpoint; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.m deleted file mode 100644 index 3a2ad32..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCloudAppProperties.m +++ /dev/null @@ -1,105 +0,0 @@ -// -// SDLCloudAppProperties.m -// SmartDeviceLink -// -// Created by Nicole on 2/26/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLCloudAppProperties.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLCloudAppProperties - -- (instancetype)initWithAppID:(NSString *)appID { - self = [super init]; - if (!self) { - return nil; - } - - self.appID = appID; - - return self; -} - -- (instancetype)initWithAppID:(NSString *)appID nicknames:(nullable NSArray *)nicknames enabled:(BOOL)enabled authToken:(nullable NSString *)authToken cloudTransportType:(nullable NSString *)cloudTransportType hybridAppPreference:(nullable SDLHybridAppPreference)hybridAppPreference endpoint:(nullable NSString *)endpoint { - self = [self initWithAppID:appID]; - if (!self) { - return nil; - } - - self.nicknames = nicknames; - self.enabled = @(enabled); - self.authToken = authToken; - self.cloudTransportType = cloudTransportType; - self.hybridAppPreference = hybridAppPreference; - self.endpoint = endpoint; - - return self; -} - -- (void)setNicknames:(nullable NSArray *)nicknames { - [self.store sdl_setObject:nicknames forName:SDLRPCParameterNameNicknames]; -} - -- (nullable NSArray *)nicknames { - return [self.store sdl_objectsForName:SDLRPCParameterNameNicknames ofClass:NSString.class error:nil]; -} - -- (void)setAppID:(NSString *)appID { - [self.store sdl_setObject:appID forName:SDLRPCParameterNameAppId]; -} - -- (NSString *)appID { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameAppId ofClass:NSString.class error:&error]; -} - -- (void)setEnabled:(nullable NSNumber *)enabled { - [self.store sdl_setObject:enabled forName:SDLRPCParameterNameEnabled]; -} - -- (nullable NSNumber *)enabled { - return [self.store sdl_objectForName:SDLRPCParameterNameEnabled ofClass:NSNumber.class error:nil]; -} - -- (void)setAuthToken:(nullable NSString *)authToken { - [self.store sdl_setObject:authToken forName:SDLRPCParameterNameAuthToken]; -} - -- (nullable NSString *)authToken { - return [self.store sdl_objectForName:SDLRPCParameterNameAuthToken ofClass:NSString.class error:nil]; -} - -- (void)setCloudTransportType:(nullable NSString *)cloudTransportType { - [self.store sdl_setObject:cloudTransportType forName:SDLRPCParameterNameCloudTransportType]; -} - -- (nullable NSString *)cloudTransportType { - return [self.store sdl_objectForName:SDLRPCParameterNameCloudTransportType ofClass:NSString.class error:nil]; -} - -- (void)setHybridAppPreference:(nullable SDLHybridAppPreference)hybridAppPreference { - [self.store sdl_setObject:hybridAppPreference forName:SDLRPCParameterNameHybridAppPreference]; -} - -- (nullable SDLHybridAppPreference)hybridAppPreference { - return [self.store sdl_enumForName:SDLRPCParameterNameHybridAppPreference error:nil]; -} - -- (void)setEndpoint:(nullable NSString *)endpoint { - [self.store sdl_setObject:endpoint forName:SDLRPCParameterNameEndpoint]; -} - -- (nullable NSString *)endpoint { - return [self.store sdl_objectForName:SDLRPCParameterNameEndpoint ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClusterModeStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClusterModeStatus.h deleted file mode 100644 index 2a3fa59..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClusterModeStatus.h +++ /dev/null @@ -1,47 +0,0 @@ -// SDLClusterModeStatus.h -// - -#import "SDLRPCMessage.h" - -#import "SDLCarModeStatus.h" -#import "SDLPowerModeQualificationStatus.h" -#import "SDLPowerModeStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - A vehicle data struct for the cluster mode and power status - */ -@interface SDLClusterModeStatus : SDLRPCStruct - -/** - References signal "PowerMode_UB". - - Required - */ -@property (strong, nonatomic) NSNumber *powerModeActive; - -/** - References signal "PowerModeQF". See PowerModeQualificationStatus. - - Required - */ -@property (strong, nonatomic) SDLPowerModeQualificationStatus powerModeQualificationStatus; - -/** - References signal "CarMode". See CarMode. - - Required - */ -@property (strong, nonatomic) SDLCarModeStatus carModeStatus; - -/** - References signal "PowerMode". See PowerMode. - - Required - */ -@property (strong, nonatomic) SDLPowerModeStatus powerModeStatus; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClusterModeStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLClusterModeStatus.m deleted file mode 100644 index 1558c05..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLClusterModeStatus.m +++ /dev/null @@ -1,51 +0,0 @@ -// SDLClusterModeStatus.m -// - -#import "SDLClusterModeStatus.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLClusterModeStatus - -- (void)setPowerModeActive:(NSNumber *)powerModeActive { - [self.store sdl_setObject:powerModeActive forName:SDLRPCParameterNamePowerModeActive]; -} - -- (NSNumber *)powerModeActive { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNamePowerModeActive ofClass:NSNumber.class error:&error]; -} - -- (void)setPowerModeQualificationStatus:(SDLPowerModeQualificationStatus)powerModeQualificationStatus { - [self.store sdl_setObject:powerModeQualificationStatus forName:SDLRPCParameterNamePowerModeQualificationStatus]; -} - -- (SDLPowerModeQualificationStatus)powerModeQualificationStatus { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNamePowerModeQualificationStatus error:&error]; -} - -- (void)setCarModeStatus:(SDLCarModeStatus)carModeStatus { - [self.store sdl_setObject:carModeStatus forName:SDLRPCParameterNameCarModeStatus]; -} - -- (SDLCarModeStatus)carModeStatus { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameCarModeStatus error:&error]; -} - -- (void)setPowerModeStatus:(SDLPowerModeStatus)powerModeStatus { - [self.store sdl_setObject:powerModeStatus forName:SDLRPCParameterNamePowerModeStatus]; -} - -- (SDLPowerModeStatus)powerModeStatus { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNamePowerModeStatus error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCompassDirection.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCompassDirection.h deleted file mode 100644 index ed11f03..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCompassDirection.h +++ /dev/null @@ -1,52 +0,0 @@ -// SDLCompassDirection.h -// - - -#import "SDLEnum.h" - -/** - * The list of potential compass directions. Used in GPS data - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLCompassDirection SDL_SWIFT_ENUM; - -/** - * Direction North - */ -extern SDLCompassDirection const SDLCompassDirectionNorth; - -/** - * Direction Northwest - */ -extern SDLCompassDirection const SDLCompassDirectionNorthwest; - -/** - * Direction West - */ -extern SDLCompassDirection const SDLCompassDirectionWest; - -/** - * Direction Southwest - */ -extern SDLCompassDirection const SDLCompassDirectionSouthwest; - -/** - * Direction South - */ -extern SDLCompassDirection const SDLCompassDirectionSouth; - -/** - * Direction Southeast - */ -extern SDLCompassDirection const SDLCompassDirectionSoutheast; - -/** - * Direction East - */ -extern SDLCompassDirection const SDLCompassDirectionEast; - -/** - * Direction Northeast - */ -extern SDLCompassDirection const SDLCompassDirectionNortheast; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCompassDirection.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCompassDirection.m deleted file mode 100644 index 14d41a1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCompassDirection.m +++ /dev/null @@ -1,14 +0,0 @@ -// SDLCompassDirection.m -// - - -#import "SDLCompassDirection.h" - -SDLCompassDirection const SDLCompassDirectionNorth = @"NORTH"; -SDLCompassDirection const SDLCompassDirectionNorthwest = @"NORTHWEST"; -SDLCompassDirection const SDLCompassDirectionWest = @"WEST"; -SDLCompassDirection const SDLCompassDirectionSouthwest = @"SOUTHWEST"; -SDLCompassDirection const SDLCompassDirectionSouth = @"SOUTH"; -SDLCompassDirection const SDLCompassDirectionSoutheast = @"SOUTHEAST"; -SDLCompassDirection const SDLCompassDirectionEast = @"EAST"; -SDLCompassDirection const SDLCompassDirectionNortheast = @"NORTHEAST"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLComponentVolumeStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLComponentVolumeStatus.h deleted file mode 100644 index dc710a5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLComponentVolumeStatus.h +++ /dev/null @@ -1,42 +0,0 @@ -// SDLComponentVolumeStatus.h -// - - -#import "SDLEnum.h" - -/** - * The volume status of a vehicle component. Used in SingleTireStatus and VehicleData Fuel Level - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLComponentVolumeStatus SDL_SWIFT_ENUM; - -/** - * Unknown SDLComponentVolumeStatus - */ -extern SDLComponentVolumeStatus const SDLComponentVolumeStatusUnknown; - -/** - * Normal SDLComponentVolumeStatus - */ -extern SDLComponentVolumeStatus const SDLComponentVolumeStatusNormal; - -/** - * Low SDLComponentVolumeStatus - */ -extern SDLComponentVolumeStatus const SDLComponentVolumeStatusLow; - -/** - * Fault SDLComponentVolumeStatus - */ -extern SDLComponentVolumeStatus const SDLComponentVolumeStatusFault; - -/** - * Alert SDLComponentVolumeStatus - */ -extern SDLComponentVolumeStatus const SDLComponentVolumeStatusAlert; - -/** - * Not supported SDLComponentVolumeStatus - */ -extern SDLComponentVolumeStatus const SDLComponentVolumeStatusNotSupported; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLComponentVolumeStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLComponentVolumeStatus.m deleted file mode 100644 index e688b9f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLComponentVolumeStatus.m +++ /dev/null @@ -1,12 +0,0 @@ -// SDLComponentVolumeStatus.m -// - - -#import "SDLComponentVolumeStatus.h" - -SDLComponentVolumeStatus const SDLComponentVolumeStatusUnknown = @"UNKNOWN"; -SDLComponentVolumeStatus const SDLComponentVolumeStatusNormal = @"NORMAL"; -SDLComponentVolumeStatus const SDLComponentVolumeStatusLow = @"LOW"; -SDLComponentVolumeStatus const SDLComponentVolumeStatusFault = @"FAULT"; -SDLComponentVolumeStatus const SDLComponentVolumeStatusAlert = @"ALERT"; -SDLComponentVolumeStatus const SDLComponentVolumeStatusNotSupported = @"NOT_SUPPORTED"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.h deleted file mode 100644 index 17c7dc6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.h +++ /dev/null @@ -1,171 +0,0 @@ -// -// SDLConfiguration.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/13/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -@class SDLFileManagerConfiguration; -@class SDLLifecycleConfiguration; -@class SDLLockScreenConfiguration; -@class SDLLogConfiguration; -@class SDLStreamingMediaConfiguration; -@class SDLEncryptionConfiguration; - -NS_ASSUME_NONNULL_BEGIN - -/// Contains information about the app's configurtion, such as lifecycle, lockscreen, encryption, etc. -@interface SDLConfiguration : NSObject - -/** - * The lifecycle configuration. - */ -@property (copy, nonatomic, readonly) SDLLifecycleConfiguration *lifecycleConfig; - -/** - * The lock screen configuration. - */ -@property (copy, nonatomic, readonly) SDLLockScreenConfiguration *lockScreenConfig; - -/** - * The log configuration. - */ -@property (copy, nonatomic, readonly) SDLLogConfiguration *loggingConfig; - -/** - * The streaming media configuration. - */ -@property (copy, nonatomic, readonly, nullable) SDLStreamingMediaConfiguration *streamingMediaConfig; - -/** - * The file manager configuration. - */ -@property (copy, nonatomic, readonly) SDLFileManagerConfiguration *fileManagerConfig; - -/** - * The encryption configuration. - */ -@property (copy, nonatomic, readonly) SDLEncryptionConfiguration *encryptionConfig; - -/** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging, file manager and encryption configurations. - * - * @param lifecycleConfig The lifecycle configuration to be used. - * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. - * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. - * @param fileManagerConfig The file manager configuration to be used or `defaultConfiguration` if nil. - * @param encryptionConfig The encryption configuration to be used. If nil, the `defaultConfiguration` will be used. - * @return The configuration - */ -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig encryption:(nullable SDLEncryptionConfiguration *)encryptionConfig; - -/** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging, streaming media, file manager and encryption configurations. - * - * @param lifecycleConfig The lifecycle configuration to be used. - * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. - * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. - * @param streamingMediaConfig The streaming media configuration to be used or nil if not used. - * @param fileManagerConfig The file manager configuration to be used or `defaultConfiguration` if nil. - * @param encryptionConfig The encryption configuration to be used. If nil, the `defaultConfiguration` will be used. - * @return The configuration - */ -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig encryption:(nullable SDLEncryptionConfiguration *)encryptionConfig; - - -#pragma mark - Deprecated Initializers - -/** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen and logging configurations. - * - * @param lifecycleConfig The lifecycle configuration to be used. - * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. - * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. - * @return The configuration - */ -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:fileManager:encryption: instead"); - -/** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and file manager configurations. - * - * @param lifecycleConfig The lifecycle configuration to be used. - * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. - * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. - * @param fileManagerConfig The file manager configuration to be used or `defaultConfiguration` if nil. - * @return The configuration - */ -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:fileManager:encryption: instead"); - -/** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and streaming media configurations. - * - * @param lifecycleConfig The lifecycle configuration to be used. - * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. - * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. - * @param streamingMediaConfig The streaming media configuration to be used or nil if not used. - * @return The configuration - */ -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:streamingMedia:fileManager:encryption: instead"); - -/** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging, streaming media and file manager configurations. - * - * @param lifecycleConfig The lifecycle configuration to be used. - * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. - * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. - * @param streamingMediaConfig The streaming media configuration to be used or nil if not used. - * @param fileManagerConfig The file manager configuration to be used or `defaultConfiguration` if nil. - * @return The configuration - */ -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:streamingMedia:fileManager:encryption: instead"); - -/** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and file manager configurations. - * - * @param lifecycleConfig The lifecycle configuration to be used. - * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. - * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. - * @param fileManagerConfig The file manager configuration to be used or `defaultConfiguration` if nil. - * @return The configuration - */ -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:fileManager:encryption: instead") NS_SWIFT_UNAVAILABLE("Use an initializer instead"); - -/** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging, streaming media and file manager configurations. - * - * @param lifecycleConfig The lifecycle configuration to be used. - * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. - * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. - * @param streamingMediaConfig The streaming media configuration to be used or nil if not used. - * @param fileManagerConfig The file manager configuration to be used or `defaultConfiguration` if nil. - * @return The configuration - */ -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:streamingMedia:fileManager:encryption: instead") NS_SWIFT_UNAVAILABLE("Use an initializer instead"); - -/** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and streaming media configurations. - * - * @param lifecycleConfig The lifecycle configuration to be used. - * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. - * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. - * @param streamingMediaConfig The streaming media configuration to be used or nil if not used. - * @return The configuration - */ -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:streamingMedia:fileManager:encryption: instead") NS_SWIFT_UNAVAILABLE("Use an initializer instead"); - -/** - * Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen and logging configurations. - * - * @param lifecycleConfig The lifecycle configuration to be used. - * @param lockScreenConfig The lockscreen configuration to be used. If nil, the `enabledConfiguration` will be used. - * @param logConfig The logging configuration to be used. If nil, the `defaultConfiguration` will be used. - * @return The configuration - */ -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig __deprecated_msg("Use initWithLifecycle:lockScreen:logging:fileManager:encryption: instead") NS_SWIFT_UNAVAILABLE("Use an initializer instead"); - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.m deleted file mode 100644 index bd1e85f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLConfiguration.m +++ /dev/null @@ -1,116 +0,0 @@ -// -// SDLConfiguration.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/13/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "SDLConfiguration.h" - -#import "SDLFileManagerConfiguration.h" -#import "SDLLifecycleConfiguration.h" -#import "SDLLockScreenConfiguration.h" -#import "SDLLogConfiguration.h" -#import "SDLStreamingMediaConfiguration.h" -#import "SDLEncryptionConfiguration.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLConfiguration - -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfiguration { - return [self initWithLifecycle:lifecycleConfiguration lockScreen:nil]; -} - -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig { - return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:nil fileManager:nil encryption:nil]; -} - -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig { - return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig fileManager:nil encryption:nil]; -} - -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig { - return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig fileManager:fileManagerConfig encryption:nil]; -} - -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig encryption:(nullable SDLEncryptionConfiguration *)encryptionConfig { - return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig streamingMedia:nil fileManager:fileManagerConfig encryption:encryptionConfig]; -} - -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfiguration { - return [self configurationWithLifecycle:lifecycleConfiguration lockScreen:nil]; -} - -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig { - return [[self alloc] initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:nil fileManager:nil encryption:nil]; -} - -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig { - return [self configurationWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig fileManager:nil]; -} - -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig { - return [[self alloc] initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig fileManager:fileManagerConfig encryption:nil]; -} - -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig { - return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig streamingMedia:streamingMediaConfig fileManager:nil encryption:nil]; -} - -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig { - return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig streamingMedia:streamingMediaConfig fileManager:fileManagerConfig encryption:nil]; -} - -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig encryption:(nullable SDLEncryptionConfiguration *)encryptionConfig { - self = [super init]; - if (!self) { - return nil; - } - - _lifecycleConfig = lifecycleConfig; - _lockScreenConfig = lockScreenConfig ?: [SDLLockScreenConfiguration enabledConfiguration]; - _loggingConfig = logConfig ?: [SDLLogConfiguration defaultConfiguration]; - - _streamingMediaConfig = streamingMediaConfig; - if (_streamingMediaConfig != nil) { - // If we have a streaming config, the apptype MUST be navigation or projection - NSAssert(([_lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeNavigation] || [_lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeProjection] || [_lifecycleConfig.additionalAppTypes containsObject:SDLAppHMITypeNavigation] || [_lifecycleConfig.additionalAppTypes containsObject:SDLAppHMITypeProjection]), @"You should only set a streaming media configuration if your app is a NAVIGATION or PROJECTION HMI type"); - _streamingMediaConfig = streamingMediaConfig; - } else { - // If we don't have a streaming config, we MUST NOT be navigation or projection - NSAssert(!([_lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeNavigation] || [_lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeProjection] || [_lifecycleConfig.additionalAppTypes containsObject:SDLAppHMITypeNavigation] || [_lifecycleConfig.additionalAppTypes containsObject:SDLAppHMITypeProjection]), @"If your app is a NAVIGATION or PROJECTION HMI type, you must set a streaming media configuration on SDLConfiguration"); - } - - _fileManagerConfig = fileManagerConfig ?: [SDLFileManagerConfiguration defaultConfiguration]; - _encryptionConfig = encryptionConfig ?: [SDLEncryptionConfiguration defaultConfiguration]; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if (_encryptionConfig.securityManagers == nil && _streamingMediaConfig.securityManagers != nil) { - _encryptionConfig.securityManagers = _streamingMediaConfig.securityManagers; - } -#pragma clang diagnostic pop - - return self; -} - -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig { - return [self configurationWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig streamingMedia:streamingMediaConfig fileManager:nil]; -} - -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig fileManager:(nullable SDLFileManagerConfiguration *)fileManagerConfig { - return [[self alloc] initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig streamingMedia:streamingMediaConfig fileManager:fileManagerConfig encryption:nil]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(nullable NSZone *)zone { - SDLConfiguration *new = [[SDLConfiguration allocWithZone:zone] initWithLifecycle:_lifecycleConfig lockScreen:_lockScreenConfig logging:_loggingConfig streamingMedia:_streamingMediaConfig fileManager:_fileManagerConfig encryption:_encryptionConfig]; - return new; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLConnectionManagerType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLConnectionManagerType.h deleted file mode 100644 index 2602a73..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLConnectionManagerType.h +++ /dev/null @@ -1,75 +0,0 @@ -// -// SDLConnectionManagerType.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/21/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "SDLNotificationConstants.h" -#import - -@class SDLRPCRequest; -@class SDLRPCMessage; -@class SDLRegisterAppInterfaceResponse; - - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLConnectionManagerType - -/** - * A special method on the connection manager which is used by managers that must bypass the default block on RPC sends before managers complete setup. - * - * @param request The RPC request to be sent to the remote head unit. - * @param handler A completion block called when the response is received. - */ -- (void)sendConnectionManagerRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler; - -/** - * Sends an RPC of type `SDLRPCRequest` without bypassing the block on RPC sends before managers complete setup. - * - * @param request An RPC of type `SDLRPCRequest` be sent to Core. - * @param handler Called when the response is received by Core - */ -- (void)sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler; - -/** - * Sends an RPC of type `SDLRPCResponse` or `SDLRPCNotification` without bypassing the block on RPC sends before managers complete setup. Unlike requests, responses and notifications sent to Core do not get a response from Core, so no handler is needed. - * - * Do not use to send an RPC of type `SDLRPCRequest`. Instead use `sendConnectionRequest:withResponseHandler:` to send a request. - * - * @param rpc An RPC of type `SDLRPCResponse` or `SDLRPCNotification` to be sent to Core. - */ -- (void)sendConnectionRPC:(__kindof SDLRPCMessage *)rpc; - -/** -* Sends an RPC of type `SDLRPCResponse` or `SDLRPCNotification` and bypasses the block on RPC sends before managers complete setup. Unlike requests, responses and notifications sent to Core do not get a response from Core, so no handler is needed. -* -* Do not use to send an RPC of type `SDLRPCRequest`. Instead use `sendConnectionRequest:withResponseHandler:` to send a request. -* -* @param rpc An RPC of type `SDLRPCResponse` or `SDLRPCNotification` to be sent to Core. -*/ -- (void)sendConnectionManagerRPC:(__kindof SDLRPCMessage *)rpc; - -/** - * Sends an array of RPCs of type `Request` asynchronously. The requests are sent without bypassing the block on RPC sends before managers complete setup. - * - * @param requests An array of RPCs of type `Request` - * @param progressHandler The progress handler is called as each request gets a response from Core. - * @param completionHandler The completion handler is called when all requests have a response from Core. - */ -- (void)sendRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; - -/** - * Sends an array of RPCs of type `Request` sequentially. The requests are sent without bypassing the block on RPC sends before managers complete setup. - * - * @param requests An array of RPCs of type `Request` - * @param progressHandler The progress handler is called as each request gets a response from Core. - * @param completionHandler The completion handler is called when all requests have a response from Core. - */ -- (void)sendSequentialRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.h deleted file mode 100644 index 9a9dc95..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// SDLControlFramePayloadAudioStartServiceAck.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLControlFramePayloadType.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadAudioStartServiceAck : NSObject - -/// Max transport unit to be used for this service. If not included the client should use the one set via the RPC service or protocol version default. -@property (assign, nonatomic, readonly) int64_t mtu; - -- (instancetype)initWithMTU:(int64_t)mtu; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m deleted file mode 100644 index 2dd186b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadAudioStartServiceAck.m +++ /dev/null @@ -1,85 +0,0 @@ -// -// SDLControlFramePayloadAudioStartServiceAck.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLControlFramePayloadAudioStartServiceAck.h" - -#import "bson_object.h" -#import "SDLControlFramePayloadConstants.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadAudioStartServiceAck () - -@property (assign, nonatomic, readwrite) int64_t mtu; - -@end - -@implementation SDLControlFramePayloadAudioStartServiceAck - -- (instancetype)initWithMTU:(int64_t)mtu { - self = [super init]; - if (!self) return nil; - - _mtu = mtu; - - return self; -} - -- (instancetype)initWithData:(nullable NSData *)data { - self = [super init]; - if (!self) return nil; - - _mtu = SDLControlFrameInt64NotFound; - - if (data.length > 0) { - [self sdl_parse:data]; - } - - return self; -} - -- (nullable NSData *)data { - if (self.mtu == SDLControlFrameInt64NotFound) { - return nil; - } - - BsonObject payloadObject; - bson_object_initialize_default(&payloadObject); - - if (self.mtu != SDLControlFrameInt64NotFound) { - bson_object_put_int64(&payloadObject, SDLControlFrameMTUKey, self.mtu); - } - - BytePtr bsonData = bson_object_to_bytes(&payloadObject); - NSUInteger length = bson_object_size(&payloadObject); - - bson_object_deinitialize(&payloadObject); - - return [[NSData alloc] initWithBytes:bsonData length:length]; -} - -- (void)sdl_parse:(NSData *)data { - BsonObject payloadObject; - size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); - if (retval <= 0) { - return; - } - - self.mtu = bson_object_get_int64(&payloadObject, SDLControlFrameMTUKey); - - bson_object_deinitialize(&payloadObject); -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@>: MTU: %lld", NSStringFromClass(self.class), self.mtu]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.h deleted file mode 100644 index e0bd1d5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// SDLControlFramePayloadConstants.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/20/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -extern int32_t const SDLControlFrameInt32NotFound; -extern int64_t const SDLControlFrameInt64NotFound; - -extern char *const SDLControlFrameProtocolVersionKey; -extern char *const SDLControlFrameHashIdKey; -extern char *const SDLControlFrameMTUKey; -extern char *const SDLControlFrameReasonKey; -extern char *const SDLControlFrameRejectedParams; -extern char *const SDLControlFrameVideoProtocolKey; -extern char *const SDLControlFrameVideoCodecKey; -extern char *const SDLControlFrameHeightKey; -extern char *const SDLControlFrameWidthKey; -extern char *const SDLControlFrameSecondaryTransportsKey; -extern char *const SDLControlFrameAudioServiceTransportsKey; -extern char *const SDLControlFrameVideoServiceTransportsKey; -extern char *const SDLControlFrameTCPIPAddressKey; -extern char *const SDLControlFrameTCPPortKey; -extern char *const SDLControlFrameAuthTokenKey; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.m deleted file mode 100644 index c365c78..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadConstants.m +++ /dev/null @@ -1,28 +0,0 @@ -// -// SDLControlFramePayloadConstants.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/20/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLControlFramePayloadConstants.h" - -int32_t const SDLControlFrameInt32NotFound = -1; -int64_t const SDLControlFrameInt64NotFound = -1; - -char *const SDLControlFrameProtocolVersionKey = "protocolVersion"; -char *const SDLControlFrameHashIdKey = "hashId"; -char *const SDLControlFrameMTUKey = "mtu"; -char *const SDLControlFrameSecondaryTransportsKey = "secondaryTransports"; -char *const SDLControlFrameAudioServiceTransportsKey = "audioServiceTransports"; -char *const SDLControlFrameVideoServiceTransportsKey = "videoServiceTransports"; -char *const SDLControlFrameAuthTokenKey = "authToken"; -char *const SDLControlFrameRejectedParams = "rejectedParams"; -char *const SDLControlFrameReasonKey = "reason"; -char *const SDLControlFrameVideoProtocolKey = "videoProtocol"; -char *const SDLControlFrameVideoCodecKey = "videoCodec"; -char *const SDLControlFrameHeightKey = "height"; -char *const SDLControlFrameWidthKey = "width"; -char *const SDLControlFrameTCPIPAddressKey = "tcpIpAddress"; -char *const SDLControlFrameTCPPortKey = "tcpPort"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadEndService.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadEndService.h deleted file mode 100644 index 17790ab..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadEndService.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// SDLControlFramePayloadEndService.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLControlFramePayloadType.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadEndService : NSObject - -/// Hash ID supplied in the StartServiceACK for this service type -@property (assign, nonatomic, readonly) int32_t hashId; - -- (instancetype)initWithHashId:(int32_t)hashId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadEndService.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadEndService.m deleted file mode 100644 index cabfb09..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadEndService.m +++ /dev/null @@ -1,85 +0,0 @@ -// -// SDLControlFramePayloadEndService.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLControlFramePayloadEndService.h" - -#import "bson_object.h" -#import "SDLControlFramePayloadConstants.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadEndService () - -@property (assign, nonatomic, readwrite) int32_t hashId; - -@end - -@implementation SDLControlFramePayloadEndService - -- (instancetype)initWithHashId:(int32_t)hashId { - self = [super init]; - if (!self) return nil; - - _hashId = hashId; - - return self; -} - -- (instancetype)initWithData:(nullable NSData *)data { - self = [super init]; - if (!self) return nil; - - _hashId = SDLControlFrameInt32NotFound; - - if (data.length > 0) { - [self sdl_parse:data]; - } - - return self; -} - -- (nullable NSData *)data { - if (self.hashId == SDLControlFrameInt32NotFound) { - return nil; - } - - BsonObject payloadObject; - bson_object_initialize_default(&payloadObject); - - if (self.hashId != SDLControlFrameInt32NotFound) { - bson_object_put_int32(&payloadObject, SDLControlFrameHashIdKey, self.hashId); - } - - BytePtr bsonData = bson_object_to_bytes(&payloadObject); - NSUInteger length = bson_object_size(&payloadObject); - - bson_object_deinitialize(&payloadObject); - - return [[NSData alloc] initWithBytes:bsonData length:length]; -} - -- (void)sdl_parse:(NSData *)data { - BsonObject payloadObject; - size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); - if (retval <= 0) { - return; - } - - self.hashId = bson_object_get_int32(&payloadObject, SDLControlFrameHashIdKey); - - bson_object_deinitialize(&payloadObject); -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@>: hash id: %d", NSStringFromClass(self.class), self.hashId]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadNak.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadNak.h deleted file mode 100644 index 41781cb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadNak.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// SDLControlFramePayloadNak.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/20/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLControlFramePayloadType.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadNak : NSObject - -/// An array of rejected parameters such as: [`hashId`] -@property (copy, nonatomic, readonly, nullable) NSArray *rejectedParams; - -- (instancetype)initWithRejectedParams:(nullable NSArray *)rejectedParams; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadNak.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadNak.m deleted file mode 100644 index 55b9a6d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadNak.m +++ /dev/null @@ -1,105 +0,0 @@ -// -// SDLControlFramePayloadNak.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/20/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLControlFramePayloadNak.h" - -#import "bson_object.h" -#import "SDLControlFramePayloadConstants.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadNak () - -@property (copy, nonatomic, readwrite, nullable) NSArray *rejectedParams; - -@end - -@implementation SDLControlFramePayloadNak - -- (instancetype)initWithRejectedParams:(nullable NSArray *)rejectedParams { - self = [super init]; - if (!self) return nil; - - _rejectedParams = rejectedParams; - - return self; -} - -- (instancetype)initWithData:(nullable NSData *)data { - self = [super init]; - if (!self) return nil; - - if (data.length > 0) { - [self sdl_parse:data]; - } - - return self; -} - -- (nullable NSData *)data { - if (self.rejectedParams == nil) { - return nil; - } - - BsonObject payloadObject; - bson_object_initialize_default(&payloadObject); - - if (self.rejectedParams != nil) { - BsonArray arrayObject; - bson_array_initialize(&arrayObject, 512); - - for (NSString *param in self.rejectedParams) { - bson_array_add_string(&arrayObject, (char *)param.UTF8String); - } - - bson_object_put_array(&payloadObject, SDLControlFrameRejectedParams, &arrayObject); - } - - BytePtr bsonData = bson_object_to_bytes(&payloadObject); - NSUInteger length = bson_object_size(&payloadObject); - - bson_object_deinitialize(&payloadObject); - - return [[NSData alloc] initWithBytes:bsonData length:length]; -} - -- (void)sdl_parse:(NSData *)data { - BsonObject payloadObject; - size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); - if (retval <= 0) { - return; - } - - BsonArray *arrayObject = bson_object_get_array(&payloadObject, SDLControlFrameRejectedParams); - if (arrayObject == NULL) { - return; - } - - NSMutableArray *rejectedParams = [NSMutableArray array]; - char *paramString; - size_t index = 0; - - paramString = bson_array_get_string(arrayObject, index); - while (paramString != NULL) { - [rejectedParams addObject:[NSString stringWithUTF8String:paramString]]; - index++; - paramString = bson_array_get_string(arrayObject, index); - } - - self.rejectedParams = [rejectedParams copy]; - bson_object_deinitialize(&payloadObject); -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@>: Rejected params: %@", NSStringFromClass(self.class), self.rejectedParams]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartService.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartService.h deleted file mode 100644 index 2a1f7d6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartService.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// SDLControlFrameStartService.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/18/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLControlFramePayloadType.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadRPCStartService : NSObject - -/// The max version of protocol version supported by client requesting service to start. Must be in the format "Major.Minor.Patch" -@property (copy, nonatomic, readonly, nullable) NSString *protocolVersion; - -- (instancetype)initWithVersion:(nullable NSString *)stringVersion; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartService.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartService.m deleted file mode 100644 index 6409884..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartService.m +++ /dev/null @@ -1,87 +0,0 @@ -// -// SDLControlFrameStartService.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/18/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLControlFramePayloadRPCStartService.h" - -#import "bson_object.h" -#import "SDLControlFramePayloadConstants.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadRPCStartService () - -@property (copy, nonatomic, readwrite, nullable) NSString *protocolVersion; - -@end - - -@implementation SDLControlFramePayloadRPCStartService - -- (instancetype)initWithVersion:(nullable NSString *)stringVersion { - self = [super init]; - if (!self) return nil; - - _protocolVersion = stringVersion; - - return self; -} - -- (instancetype)initWithData:(nullable NSData *)data { - self = [super init]; - if (!self) return nil; - - if (data.length > 0) { - [self sdl_parse:data]; - } - - return self; -} - -- (nullable NSData *)data { - if (self.protocolVersion == nil) { - return nil; - } - - BsonObject payloadObject; - bson_object_initialize_default(&payloadObject); - - if (self.protocolVersion != nil) { - bson_object_put_string(&payloadObject, SDLControlFrameProtocolVersionKey, (char *)self.protocolVersion.UTF8String); - } - - BytePtr bsonData = bson_object_to_bytes(&payloadObject); - NSUInteger length = bson_object_size(&payloadObject); - - bson_object_deinitialize(&payloadObject); - - return [[NSData alloc] initWithBytes:bsonData length:length]; -} - -- (void)sdl_parse:(NSData *)data { - BsonObject payloadObject; - size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); - if (retval <= 0) { - return; - } - - char *utf8String = bson_object_get_string(&payloadObject, SDLControlFrameProtocolVersionKey); - if (utf8String != NULL) { - self.protocolVersion = [NSString stringWithUTF8String:utf8String]; - } - - bson_object_deinitialize(&payloadObject); -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@>: Protocol Version: %@", NSStringFromClass(self.class), self.protocolVersion]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h deleted file mode 100644 index 295204a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// SDLControlFramePayloadStartServiceAck.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/20/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLControlFramePayloadType.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadRPCStartServiceAck : NSObject - -/// Hash ID to identify this service and used when sending an EndService control frame -@property (assign, nonatomic, readonly) int32_t hashId; - -/// Max transport unit to be used for this service -@property (assign, nonatomic, readonly) int64_t mtu; - -/// A token used to authenticate a websocket connection on app activation. -@property (copy, nonatomic, readonly, nullable) NSString *authToken; - -/// The negotiated version of the protocol. Must be in the format "Major.Minor.Patch" -@property (copy, nonatomic, readonly, nullable) NSString *protocolVersion; - -/** The transport types for Secondary Transport */ -@property (copy, nonatomic, readonly, nullable) NSArray *secondaryTransports; - -/** List of transports that are allowed to carry audio service. The values can be either 1 (primary transport) or 2 (secondary transport) and are listed in preferred order. */ -@property (copy, nonatomic, readonly, nullable) NSArray *audioServiceTransports; - -/** List of transports that are allowed to carry video service. The values can be either 1 (primary transport) or 2 (secondary transport) and are listed in preferred order. */ -@property (copy, nonatomic, readonly, nullable) NSArray *videoServiceTransports; - -- (instancetype)initWithHashId:(int32_t)hashId mtu:(int64_t)mtu authToken:(nullable NSString *)authToken protocolVersion:(nullable NSString *)protocolVersion secondaryTransports:(nullable NSArray *)secondaryTransports audioServiceTransports:(nullable NSArray *)audioServiceTransports videoServiceTransports:(nullable NSArray *)videoServiceTransports; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m deleted file mode 100644 index e6afae6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m +++ /dev/null @@ -1,201 +0,0 @@ -// -// SDLControlFramePayloadStartServiceAck.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/20/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLControlFramePayloadRPCStartServiceAck.h" - -#import "bson_object.h" -#import "SDLControlFramePayloadConstants.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadRPCStartServiceAck () - -@property (assign, nonatomic, readwrite) int32_t hashId; -@property (assign, nonatomic, readwrite) int64_t mtu; -@property (copy, nonatomic, readwrite, nullable) NSString *authToken; -@property (copy, nonatomic, readwrite, nullable) NSString *protocolVersion; -@property (copy, nonatomic, readwrite, nullable) NSArray *secondaryTransports; -@property (copy, nonatomic, readwrite, nullable) NSArray *audioServiceTransports; -@property (copy, nonatomic, readwrite, nullable) NSArray *videoServiceTransports; - -@end - - -@implementation SDLControlFramePayloadRPCStartServiceAck - -- (instancetype)initWithHashId:(int32_t)hashId - mtu:(int64_t)mtu - authToken:(nullable NSString *)authToken - protocolVersion:(nullable NSString *)protocolVersion - secondaryTransports:(nullable NSArray *)secondaryTransports - audioServiceTransports:(nullable NSArray *)audioServiceTransports - videoServiceTransports:(nullable NSArray *)videoServiceTransports { - self = [super init]; - if (!self) return nil; - - _hashId = hashId; - _mtu = mtu; - _authToken = authToken; - _protocolVersion = protocolVersion; - _secondaryTransports = secondaryTransports; - _audioServiceTransports = audioServiceTransports; - _videoServiceTransports = videoServiceTransports; - - return self; -} - -- (instancetype)initWithData:(nullable NSData *)data { - self = [super init]; - if (!self) return nil; - - _hashId = SDLControlFrameInt32NotFound; - _mtu = SDLControlFrameInt64NotFound; - - if (data.length > 0) { - [self sdl_parse:data]; - } - - return self; -} - -- (nullable NSData *)data { - if (self.hashId == SDLControlFrameInt32NotFound - && self.mtu == SDLControlFrameInt64NotFound - && self.protocolVersion == nil) { - return nil; - } - - BsonObject payloadObject; - bson_object_initialize_default(&payloadObject); - - if (self.hashId != SDLControlFrameInt32NotFound) { - bson_object_put_int32(&payloadObject, SDLControlFrameHashIdKey, self.hashId); - } - - if (self.mtu != SDLControlFrameInt64NotFound) { - bson_object_put_int64(&payloadObject, SDLControlFrameMTUKey, self.mtu); - } - - if (self.authToken != nil) { - bson_object_put_string(&payloadObject, SDLControlFrameAuthTokenKey, (char *)self.authToken.UTF8String); - } - - if (self.protocolVersion != nil) { - bson_object_put_string(&payloadObject, SDLControlFrameProtocolVersionKey, (char *)self.protocolVersion.UTF8String); - } - - if (self.secondaryTransports != nil) { - BsonArray arrayObject; - // Currently there are 8 transport types defined. So initial value of 8 should be sufficient. - bson_array_initialize(&arrayObject, 8); - - for (NSString *transport in self.secondaryTransports) { - bson_array_add_string(&arrayObject, (char *)transport.UTF8String); - } - - bson_object_put_array(&payloadObject, SDLControlFrameSecondaryTransportsKey, &arrayObject); - } - - [self sdl_addServiceTransports:&payloadObject fromArray:self.audioServiceTransports forKey:SDLControlFrameAudioServiceTransportsKey]; - [self sdl_addServiceTransports:&payloadObject fromArray:self.videoServiceTransports forKey:SDLControlFrameVideoServiceTransportsKey]; - - BytePtr bsonData = bson_object_to_bytes(&payloadObject); - NSUInteger length = bson_object_size(&payloadObject); - - bson_object_deinitialize(&payloadObject); - - return [[NSData alloc] initWithBytes:bsonData length:length]; -} - -- (void)sdl_parse:(NSData *)data { - BsonObject payloadObject; - size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); - if (retval <= 0) { - return; - } - - self.hashId = bson_object_get_int32(&payloadObject, SDLControlFrameHashIdKey); - self.mtu = bson_object_get_int64(&payloadObject, SDLControlFrameMTUKey); - - char *protocolVersionUTF8String = bson_object_get_string(&payloadObject, SDLControlFrameProtocolVersionKey); - if (protocolVersionUTF8String != NULL) { - self.protocolVersion = [NSString stringWithUTF8String:protocolVersionUTF8String]; - } - - char *authTokenUTF8String = bson_object_get_string(&payloadObject, SDLControlFrameAuthTokenKey); - if (authTokenUTF8String != NULL) { - self.authToken = [NSString stringWithUTF8String:authTokenUTF8String]; - } - - BsonArray *arrayObject = bson_object_get_array(&payloadObject, SDLControlFrameSecondaryTransportsKey); - if (arrayObject != NULL) { - NSMutableArray *secondaryTransports = [NSMutableArray array]; - size_t index = 0; - - while ((protocolVersionUTF8String = bson_array_get_string(arrayObject, index)) != NULL) { - [secondaryTransports addObject:[NSString stringWithUTF8String:protocolVersionUTF8String]]; - index++; - } - self.secondaryTransports = [secondaryTransports copy]; - } - - self.audioServiceTransports = [self sdl_getServiceTransports:&payloadObject forKey:SDLControlFrameAudioServiceTransportsKey]; - self.videoServiceTransports = [self sdl_getServiceTransports:&payloadObject forKey:SDLControlFrameVideoServiceTransportsKey]; - - bson_object_deinitialize(&payloadObject); -} - -- (nullable NSArray *)sdl_getServiceTransports:(BsonObject *)payloadObject forKey:(const char * const)key { - if (payloadObject == NULL || key == NULL) { - return nil; - } - - BsonArray *arrayObject = bson_object_get_array(payloadObject, key); - if (arrayObject == NULL) { - return nil; - } - - NSMutableArray *transports = [NSMutableArray array]; - int32_t num; - size_t index = 0; - - while ((num = bson_array_get_int32(arrayObject, index)) != -1) { - [transports addObject:@(num)]; - index++; - } - - return [transports copy]; -} - -- (void)sdl_addServiceTransports:(BsonObject *)payloadObject fromArray:(NSArray *)array forKey:(const char * const)key { - if (payloadObject == NULL || array == nil || key == NULL) { - return; - } - - BsonArray arrayObject; - // currently there are 2 transports defined (primary and secondary) - bson_array_initialize(&arrayObject, 2); - - for (NSNumber *num in array) { - int32_t transport = [num intValue]; - if (transport != -1) { - bson_array_add_int32(&arrayObject, transport); - } - } - - bson_object_put_array(payloadObject, key, &arrayObject); -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@>: Protocol Version: %@, hash id: %d, MTU: %lld, auth token: %@, secondary transports: %@, transports for audio service: %@, transports for video service: %@", NSStringFromClass(self.class), self.protocolVersion, self.hashId, self.mtu, self.authToken, self.secondaryTransports, self.audioServiceTransports, self.videoServiceTransports]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.h deleted file mode 100644 index 1435ba4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// SDLControlFramePayloadRegisterSecondaryTransportNak.h -// SmartDeviceLink-iOS -// -// Created by Sho Amano on 2018/03/16. -// Copyright © 2018 Xevo Inc. All rights reserved. -// - -#import - -#import "SDLControlFramePayloadType.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadRegisterSecondaryTransportNak : NSObject - -@property (copy, nonatomic, readonly, nullable) NSString *reason; - -- (instancetype)initWithReason:(nullable NSString *)reason; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m deleted file mode 100644 index 600fd1b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadRegisterSecondaryTransportNak.m +++ /dev/null @@ -1,87 +0,0 @@ -// -// SDLControlFramePayloadRegisterSecondaryTransportNak.m -// SmartDeviceLink -// -// Created by Sho Amano on 2018/03/16. -// Copyright © 2018 Xevo Inc. All rights reserved. -// - -#import "SDLControlFramePayloadRegisterSecondaryTransportNak.h" - -#import "bson_object.h" -#import "SDLControlFramePayloadConstants.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadRegisterSecondaryTransportNak () - -@property (copy, nonatomic, readwrite, nullable) NSString *reason; - -@end - -@implementation SDLControlFramePayloadRegisterSecondaryTransportNak - -- (instancetype)initWithReason:(nullable NSString *)reason { - self = [super init]; - if (!self) { - return nil; - } - - _reason = reason; - - return self; -} - -- (instancetype)initWithData:(nullable NSData *)data { - self = [super init]; - if (!self) { - return nil; - } - - if (data.length > 0) { - [self sdl_parse:data]; - } - - return self; -} - -- (nullable NSData *)data { - if (self.reason == nil) { - return nil; - } - - BsonObject payloadObject; - bson_object_initialize_default(&payloadObject); - bson_object_put_string(&payloadObject, SDLControlFrameReasonKey, (char *)self.reason.UTF8String); - - BytePtr bsonData = bson_object_to_bytes(&payloadObject); - NSUInteger length = bson_object_size(&payloadObject); - - bson_object_deinitialize(&payloadObject); - - return [[NSData alloc] initWithBytes:bsonData length:length]; -} - -- (void)sdl_parse:(NSData *)data { - BsonObject payloadObject; - size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); - if (retval <= 0) { - return; - } - - char *reasonString = bson_object_get_string(&payloadObject, SDLControlFrameReasonKey); - if (reasonString != NULL) { - self.reason = [NSString stringWithUTF8String:reasonString]; - } - - bson_object_deinitialize(&payloadObject); -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@>: reason: %@", NSStringFromClass(self.class), self.reason]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.h deleted file mode 100644 index 7479347..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// SDLControlFramePayloadTransportEventUpdate.h -// SmartDeviceLink-iOS -// -// Created by Sho Amano on 2018/03/05. -// Copyright © 2018 Xevo Inc. All rights reserved. -// - -#import - -#import "SDLControlFramePayloadType.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadTransportEventUpdate : NSObject - -/** A string representing IP address of Core's TCP transport. It can be either IPv4 or IPv6 address. */ -@property (copy, nonatomic, readonly, nullable) NSString *tcpIpAddress; -/** TCP port number that Core is listening on */ -@property (assign, nonatomic, readonly) int32_t tcpPort; - - -- (instancetype)initWithTcpIpAddress:(nullable NSString *)tcpIpAddress tcpPort:(int32_t)tcpPort; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m deleted file mode 100644 index 24b49cc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadTransportEventUpdate.m +++ /dev/null @@ -1,104 +0,0 @@ -// -// SDLControlFramePayloadTransportEventUpdate.m -// SmartDeviceLink-iOS -// -// Created by Sho Amano on 2018/03/05. -// Copyright © 2018 Xevo Inc. All rights reserved. -// - -#import "SDLControlFramePayloadTransportEventUpdate.h" - -#import "bson_object.h" -#import "SDLControlFramePayloadConstants.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadTransportEventUpdate () - -// A string representing IP address of Core's TCP transport. It can be either IPv4 or IPv6 address. -@property (copy, nonatomic, readwrite, nullable) NSString *tcpIpAddress; -// TCP port number that Core is listening on -@property (assign, nonatomic, readwrite) int32_t tcpPort; - -@end - -@implementation SDLControlFramePayloadTransportEventUpdate - -- (instancetype)initWithTcpIpAddress:(nullable NSString *)tcpIpAddress tcpPort:(int32_t)tcpPort { - self = [super init]; - if (!self) { - return nil; - } - - _tcpIpAddress = tcpIpAddress; - if (tcpPort >= 0 && tcpPort <= 65535) { - _tcpPort = tcpPort; - } else { - _tcpPort = SDLControlFrameInt32NotFound; - } - - return self; -} - -- (instancetype)initWithData:(nullable NSData *)data { - self = [super init]; - if (!self) { - return nil; - } - - _tcpPort = SDLControlFrameInt32NotFound; - - if (data.length > 0) { - [self sdl_parse:data]; - } - - return self; -} - -- (nullable NSData *)data { - if (self.tcpIpAddress == nil && self.tcpPort == SDLControlFrameInt32NotFound) { - return nil; - } - - BsonObject payloadObject; - bson_object_initialize_default(&payloadObject); - - if (self.tcpIpAddress != nil) { - bson_object_put_string(&payloadObject, SDLControlFrameTCPIPAddressKey, (char *)self.tcpIpAddress.UTF8String); - } - if (self.tcpPort != SDLControlFrameInt32NotFound) { - bson_object_put_int32(&payloadObject, SDLControlFrameTCPPortKey, self.tcpPort); - } - - BytePtr bsonData = bson_object_to_bytes(&payloadObject); - NSUInteger length = bson_object_size(&payloadObject); - - bson_object_deinitialize(&payloadObject); - - return [[NSData alloc] initWithBytes:bsonData length:length]; -} - -- (void)sdl_parse:(NSData *)data { - BsonObject payloadObject; - size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); - if (retval <= 0) { - return; - } - - char *utf8String = bson_object_get_string(&payloadObject, SDLControlFrameTCPIPAddressKey); - if (utf8String != NULL) { - self.tcpIpAddress = [NSString stringWithUTF8String:utf8String]; - } - self.tcpPort = bson_object_get_int32(&payloadObject, SDLControlFrameTCPPortKey); - - bson_object_deinitialize(&payloadObject); -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@>: TCP IP address: %@, TCP port: %d", NSStringFromClass(self.class), self.tcpIpAddress, self.tcpPort]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadType.h deleted file mode 100644 index 2c9673c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadType.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// SDLControlFramePayload.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/20/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLControlFramePayloadType - -- (nullable NSData *)data; -- (instancetype)initWithData:(nullable NSData *)data;; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartService.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartService.h deleted file mode 100644 index 63274f3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartService.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// SDLControlFramePayloadVideoStartService.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLControlFramePayloadType.h" - -#import "SDLVideoStreamingCodec.h" -#import "SDLVideoStreamingProtocol.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadVideoStartService : NSObject - -/// Desired height in pixels from the client requesting the video service to start -@property (assign, nonatomic, readonly) int32_t height; - -/// Desired width in pixels from the client requesting the video service to start -@property (assign, nonatomic, readonly) int32_t width; - -/// Desired video protocol to be used. See VideoStreamingProtocol RPC -@property (copy, nonatomic, readonly, nullable) SDLVideoStreamingCodec videoCodec; - -/// Desired video codec to be used. See VideoStreamingCodec RPC -@property (copy, nonatomic, readonly, nullable) SDLVideoStreamingProtocol videoProtocol; - -- (instancetype)initWithVideoHeight:(int32_t)height width:(int32_t)width protocol:(nullable SDLVideoStreamingProtocol)protocol codec:(nullable SDLVideoStreamingCodec)codec; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartService.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartService.m deleted file mode 100644 index d8dc841..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartService.m +++ /dev/null @@ -1,118 +0,0 @@ -// -// SDLControlFramePayloadVideoStartService.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLControlFramePayloadVideoStartService.h" - -#import "bson_object.h" -#import "SDLControlFramePayloadConstants.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadVideoStartService () - -@property (assign, nonatomic, readwrite) int32_t height; -@property (assign, nonatomic, readwrite) int32_t width; -@property (copy, nonatomic, readwrite, nullable) SDLVideoStreamingCodec videoCodec; -@property (copy, nonatomic, readwrite, nullable) SDLVideoStreamingProtocol videoProtocol; - -@end - -@implementation SDLControlFramePayloadVideoStartService - -- (instancetype)initWithVideoHeight:(int32_t)height width:(int32_t)width protocol:(nullable SDLVideoStreamingProtocol)protocol codec:(nullable SDLVideoStreamingCodec)codec { - self = [super init]; - if (!self) return nil; - - _height = height; - _width = width; - _videoProtocol = protocol; - _videoCodec = codec; - - return self; -} - -- (instancetype)initWithData:(nullable NSData *)data { - self = [super init]; - if (!self) return nil; - - _height = SDLControlFrameInt32NotFound; - _width = SDLControlFrameInt32NotFound; - - if (data.length > 0) { - [self sdl_parse:data]; - } - - return self; -} - -- (nullable NSData *)data { - if (self.height == SDLControlFrameInt32NotFound - && self.width == SDLControlFrameInt32NotFound - && self.videoProtocol == nil - && self.videoCodec == nil) { - return nil; - } - - BsonObject payloadObject; - bson_object_initialize_default(&payloadObject); - - if (self.height != SDLControlFrameInt32NotFound) { - bson_object_put_int32(&payloadObject, SDLControlFrameHeightKey, self.height); - } - - if (self.width != SDLControlFrameInt32NotFound) { - bson_object_put_int32(&payloadObject, SDLControlFrameWidthKey, self.width); - } - - if (self.videoProtocol != nil) { - bson_object_put_string(&payloadObject, SDLControlFrameVideoProtocolKey, (char *)self.videoProtocol.UTF8String); - } - - if (self.videoCodec != nil) { - bson_object_put_string(&payloadObject, SDLControlFrameVideoCodecKey, (char *)self.videoCodec.UTF8String); - } - - BytePtr bsonData = bson_object_to_bytes(&payloadObject); - NSUInteger length = bson_object_size(&payloadObject); - - bson_object_deinitialize(&payloadObject); - - return [[NSData alloc] initWithBytes:bsonData length:length]; -} - -- (void)sdl_parse:(NSData *)data { - BsonObject payloadObject; - size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); - if (retval <= 0) { - return; - } - - self.height = bson_object_get_int32(&payloadObject, SDLControlFrameHeightKey); - self.width = bson_object_get_int32(&payloadObject, SDLControlFrameWidthKey); - - char *utf8String = bson_object_get_string(&payloadObject, SDLControlFrameVideoProtocolKey); - if (utf8String != NULL) { - self.videoProtocol = [NSString stringWithUTF8String:utf8String]; - } - - utf8String = bson_object_get_string(&payloadObject, SDLControlFrameVideoCodecKey); - if (utf8String != NULL) { - self.videoCodec = [NSString stringWithUTF8String:utf8String]; - } - - bson_object_deinitialize(&payloadObject); -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@>: Width: %d, Height: %d, Protocol: %@, Codec: %@", NSStringFromClass(self.class), self.width, self.height, self.videoProtocol, self.videoCodec]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h deleted file mode 100644 index 58b6887..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// SDLControlFramePayloadVideoStartServiceAck.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/26/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLControlFramePayloadType.h" - -#import "SDLVideoStreamingCodec.h" -#import "SDLVideoStreamingProtocol.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLControlFramePayloadVideoStartServiceAck : NSObject - -/// Max transport unit to be used for this service -@property (assign, nonatomic, readonly) int64_t mtu; - -/// Accepted height in pixels from the client requesting the video service to start -@property (assign, nonatomic, readonly) int32_t height; - -/// Accepted width in pixels from the client requesting the video service to start -@property (assign, nonatomic, readonly) int32_t width; - -/// Accepted video protocol to be used. See VideoStreamingProtocol RPC -@property (copy, nonatomic, readonly, nullable) SDLVideoStreamingProtocol videoProtocol; - -/// Accepted video codec to be used. See VideoStreamingCodec RPC -@property (copy, nonatomic, readonly, nullable) SDLVideoStreamingCodec videoCodec; - -- (instancetype)initWithMTU:(int64_t)mtu height:(int32_t)height width:(int32_t)width protocol:(nullable SDLVideoStreamingProtocol)protocol codec:(nullable SDLVideoStreamingCodec)codec; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m deleted file mode 100644 index 7f071df..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m +++ /dev/null @@ -1,123 +0,0 @@ -// -// SDLControlFramePayloadVideoStartServiceAck.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/26/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLControlFramePayloadVideoStartServiceAck.h" - -#import "bson_object.h" -#import "SDLControlFramePayloadConstants.h" - - -@interface SDLControlFramePayloadVideoStartServiceAck () - -@property (assign, nonatomic, readwrite) int64_t mtu; -@property (assign, nonatomic, readwrite) int32_t height; -@property (assign, nonatomic, readwrite) int32_t width; -@property (copy, nonatomic, readwrite) SDLVideoStreamingProtocol videoProtocol; -@property (copy, nonatomic, readwrite) SDLVideoStreamingCodec videoCodec; - -@end - -@implementation SDLControlFramePayloadVideoStartServiceAck - -- (instancetype)initWithMTU:(int64_t)mtu height:(int32_t)height width:(int32_t)width protocol:(nullable SDLVideoStreamingProtocol)protocol codec:(nullable SDLVideoStreamingCodec)codec { - self = [super init]; - if (!self) return nil; - - _mtu = mtu; - _height = height; - _width = width; - _videoProtocol = protocol; - _videoCodec = codec; - - return self; -} - -- (instancetype)initWithData:(nullable NSData *)data { - self = [super init]; - if (!self) return nil; - - _mtu = SDLControlFrameInt64NotFound; - _height = SDLControlFrameInt32NotFound; - _width = SDLControlFrameInt32NotFound; - - if (data.length > 0) { - [self sdl_parse:data]; - } - - return self; -} - -- (nullable NSData *)data { - if (self.mtu == SDLControlFrameInt64NotFound - && self.height == SDLControlFrameInt32NotFound - && self.width == SDLControlFrameInt32NotFound - && self.videoProtocol == nil - && self.videoCodec == nil) { - return nil; - } - - BsonObject payloadObject; - bson_object_initialize_default(&payloadObject); - - if (self.mtu != SDLControlFrameInt64NotFound) { - bson_object_put_int64(&payloadObject, SDLControlFrameMTUKey, self.mtu); - } - - if (self.height != SDLControlFrameInt32NotFound) { - bson_object_put_int32(&payloadObject, SDLControlFrameHeightKey, self.height); - } - - if (self.width != SDLControlFrameInt32NotFound) { - bson_object_put_int32(&payloadObject, SDLControlFrameWidthKey, self.width); - } - - if (self.videoProtocol != nil) { - bson_object_put_string(&payloadObject, SDLControlFrameVideoProtocolKey, (char *)self.videoProtocol.UTF8String); - } - - if (self.videoCodec != nil) { - bson_object_put_string(&payloadObject, SDLControlFrameVideoCodecKey, (char *)self.videoCodec.UTF8String); - } - - BytePtr bsonData = bson_object_to_bytes(&payloadObject); - NSUInteger length = bson_object_size(&payloadObject); - - bson_object_deinitialize(&payloadObject); - - return [[NSData alloc] initWithBytes:bsonData length:length]; -} - -- (void)sdl_parse:(NSData *)data { - BsonObject payloadObject; - size_t retval = bson_object_from_bytes_len(&payloadObject, (BytePtr)data.bytes, data.length); - if (retval <= 0) { - return; - } - - self.mtu = bson_object_get_int64(&payloadObject, SDLControlFrameMTUKey); - self.height = bson_object_get_int32(&payloadObject, SDLControlFrameHeightKey); - self.width = bson_object_get_int32(&payloadObject, SDLControlFrameWidthKey); - - char *utf8String = bson_object_get_string(&payloadObject, SDLControlFrameVideoProtocolKey); - if (utf8String != NULL) { - self.videoProtocol = [NSString stringWithUTF8String:utf8String]; - } - - utf8String = bson_object_get_string(&payloadObject, SDLControlFrameVideoCodecKey); - if (utf8String != NULL) { - self.videoCodec = [NSString stringWithUTF8String:utf8String]; - } - - bson_object_deinitialize(&payloadObject); -} - -- (NSString *)description { - return [NSString stringWithFormat:@"<%@>: MTU: %lld, Width: %d, Height: %d, Protocol: %@, Codec: %@", NSStringFromClass(self.class), self.mtu, self.width, self.height, self.videoProtocol, self.videoCodec]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.h deleted file mode 100644 index da54d58..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.h +++ /dev/null @@ -1,49 +0,0 @@ -// SDLCreateInteractionChoiceSet.h -// - - -#import "SDLRPCRequest.h" - -@class SDLChoice; - -/** - * Creates a Choice Set which can be used in subsequent *SDLPerformInteraction* Operations. - * - * HMILevel needs to be FULL, LIMITED or BACKGROUND - * - * Before a perform interaction is sent you MUST wait for the success from the CreateInteractionChoiceSet RPC. - * - * If you do not wait the system may not recognize the first utterance from the user. - * - * @since SDL 1.0 - * - * @see SDLDeleteInteractionChoiceSet SDLPerformInteraction - */ -NS_ASSUME_NONNULL_BEGIN - -@interface SDLCreateInteractionChoiceSet : SDLRPCRequest - -/// Convenience init for creating a choice set RPC -/// -/// @param choiceId A unique ID that identifies the Choice Set -/// @param choiceSet Array of choices, which the user can select by menu or voice recognition -/// @return An SDLCreateInteractionChoiceSet object -- (instancetype)initWithId:(UInt32)choiceId choiceSet:(NSArray *)choiceSet; - -/** - * A unique ID that identifies the Choice Set - * - * Required, Integer, 0 - 2,000,000,000 - */ -@property (strong, nonatomic) NSNumber *interactionChoiceSetID; - -/** - * Array of choices, which the user can select by menu or voice recognition - * - * Required, SDLChoice, Array size 1 - 100 - */ -@property (strong, nonatomic) NSArray *choiceSet; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.m deleted file mode 100644 index 00ee170..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSet.m +++ /dev/null @@ -1,56 +0,0 @@ -// SDLCreateInteractionChoiceSet.m -// - - -#import "SDLCreateInteractionChoiceSet.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLChoice.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLCreateInteractionChoiceSet - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameCreateInteractionChoiceSet]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithId:(UInt32)choiceId choiceSet:(NSArray *)choiceSet { - self = [self init]; - if (!self) { - return nil; - } - - self.interactionChoiceSetID = @(choiceId); - self.choiceSet = [choiceSet mutableCopy]; - return self; -} - -- (void)setInteractionChoiceSetID:(NSNumber *)interactionChoiceSetID { - [self.parameters sdl_setObject:interactionChoiceSetID forName:SDLRPCParameterNameInteractionChoiceSetId]; -} - -- (NSNumber *)interactionChoiceSetID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameInteractionChoiceSetId ofClass:NSNumber.class error:&error]; -} - -- (void)setChoiceSet:(NSArray *)choiceSet { - [self.parameters sdl_setObject:choiceSet forName:SDLRPCParameterNameChoiceSet]; -} - -- (NSArray *)choiceSet { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameChoiceSet ofClass:SDLChoice.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h deleted file mode 100644 index c208cd8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLCreateInteractionChoiceSetResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to SDLCreateInteractionChoiceSet has been called - - Since SmartDeviceLink 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLCreateInteractionChoiceSetResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m deleted file mode 100644 index 37b8bad..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLCreateInteractionChoiceSetResponse.m -// - - -#import "SDLCreateInteractionChoiceSetResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLCreateInteractionChoiceSetResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameCreateInteractionChoiceSet]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.h deleted file mode 100644 index ad4475e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.h +++ /dev/null @@ -1,72 +0,0 @@ -// -// SDLCreateWindow.h -// SmartDeviceLink -// - -#import "SDLRPCRequest.h" -#import "SDLWindowType.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Create a new window on the display with the specified window type. - @discussion Windows of different types like MAIN or WIDGET windows can be created. Every application will have a pre-created MAIN window available. A widget is a small window that the app can create to provide information and soft buttons for quick app control. Widgets can be created depending on the capabilities of the system. Widgets can be associated with a specific App Service type such as `MEDIA` or `NAVIGATION`. As an example if a `MEDIA` app becomes active, this app becomes audible and is allowed to play audio. If the media app has created a widget with `MEDIA` type associated, this widget will automatically be activated together with the app. - - @since SDL 6.0 - */ -@interface SDLCreateWindow : SDLRPCRequest - - -/** - Constructor with the required parameters - - @param windowId The type of the window to be created. Main window or widget. - @param windowName The window name to be used by the HMI. @see windowName - @param windowType The type of the window to be created. Main window or widget. - */ -- (instancetype)initWithId:(NSUInteger)windowId windowName:(NSString *)windowName windowType:(SDLWindowType)windowType; - -/** - Convinience constructor with all the parameters. - - @param windowId The type of the window to be created. Main window or widget. - @param windowName The window name to be used by the HMI. @see windowName - @param windowType The type of the window to be created. Main window or widget. - @param associatedServiceType Allows an app to create a widget related to a specific service type. @see associatedServiceType - @param duplicateUpdatesFromWindowID Optional parameter. Specify whether the content sent to an existing window should be duplicated to the created window. If there isn't a window with the ID, the request will be rejected with `INVALID_DATA`. - */ -- (instancetype)initWithId:(NSUInteger)windowId windowName:(NSString *)windowName windowType:(SDLWindowType)windowType associatedServiceType:(nullable NSString *)associatedServiceType duplicateUpdatesFromWindowID:(NSUInteger)duplicateUpdatesFromWindowID; - - -/** - A unique ID to identify the window. - @discussion The value of '0' will always be the default main window on the main display and should not be used in this context as it will already be created for the app. See PredefinedWindows enum. Creating a window with an ID that is already in use will be rejected with `INVALID_ID`. - */ -@property (strong, nonatomic) NSNumber *windowID; - -/** - The window name to be used by the HMI. - @discussion The name of the pre-created default window will match the app name. Multiple apps can share the same window name except for the default main window. Creating a window with a name which is already in use by the app will result in `DUPLICATE_NAME`. MaxLength 100. - */ -@property (strong, nonatomic) NSString *windowName; - -/** - The type of the window to be created. Main window or widget. - */ -@property (strong, nonatomic) SDLWindowType type; - -/** - Allows an app to create a widget related to a specific service type. - @discussion As an example if a `MEDIA` app becomes active, this app becomes audible and is allowed to play audio. Actions such as skip or play/pause will be directed to this active media app. In case of widgets, the system can provide a single "media" widget which will act as a placeholder for the active media app. It is only allowed to have one window per service type. This means that a media app can only have a single MEDIA widget. Still the app can create widgets omitting this parameter. Those widgets would be available as app specific widgets that are permanently included in the HMI. This parameter is related to widgets only. The default main window, which is pre-created during app registration, will be created based on the HMI types specified in the app registration request. - */ -@property (strong, nonatomic, nullable) NSString *associatedServiceType; - - -/** - Optional parameter. Specify whether the content sent to an existing window should be duplicated to the created window. If there isn't a window with the ID, the request will be rejected with `INVALID_DATA`. - */ -@property (strong, nonatomic, nullable) NSNumber *duplicateUpdatesFromWindowID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.m deleted file mode 100644 index b6b55ec..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindow.m +++ /dev/null @@ -1,96 +0,0 @@ -// -// SDLCreateWindow.m -// SmartDeviceLink - -#import "SDLCreateWindow.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLCreateWindow - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameCreateWindow]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithId:(NSUInteger)windowId windowName:(NSString *)windowName windowType:(SDLWindowType)windowType { - self = [self init]; - if (!self) { - return nil; - } - self.windowID = @(windowId); - self.windowName = windowName; - self.type = windowType; - return self; -} - -- (instancetype)initWithId:(NSUInteger)windowId windowName:(NSString *)windowName windowType:(SDLWindowType)windowType associatedServiceType:(nullable NSString *)associatedServiceType duplicateUpdatesFromWindowID:(NSUInteger)duplicateUpdatesFromWindowID { - self = [self initWithId:windowId windowName:windowName windowType:windowType]; - if (!self) { - return nil; - } - self.associatedServiceType = associatedServiceType; - self.duplicateUpdatesFromWindowID = @(duplicateUpdatesFromWindowID); - return self; -} - - -#pragma mark - Getters / Setters - -- (void)setWindowID:(NSNumber *)windowID { - [self.parameters sdl_setObject:windowID forName:SDLRPCParameterNameWindowId]; -} - -- (NSNumber *)windowID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:&error]; -} - -- (void)setWindowName:(NSString *)windowName { - [self.parameters sdl_setObject:windowName forName:SDLRPCParameterNameWindowName]; -} - -- (NSString *)windowName { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowName ofClass:NSString.class error:&error]; -} - - -- (void)setType:(SDLWindowType)type { - [self.parameters sdl_setObject:type forName:SDLRPCParameterNameType]; -} - -- (SDLWindowType)type { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameType error:&error]; -} - -- (void)setAssociatedServiceType:(nullable NSString *)associatedServiceType { - [self.parameters sdl_setObject:associatedServiceType forName:SDLRPCParameterNameAssociatedServiceType]; -} - -- (nullable NSString *)associatedServiceType { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameAssociatedServiceType ofClass:NSString.class error:&error]; -} - -- (void)setDuplicateUpdatesFromWindowID:(nullable NSNumber *)duplicateUpdatesFromWindowID { - [self.parameters sdl_setObject:duplicateUpdatesFromWindowID forName:SDLRPCParameterNameDuplicateUpdatesFromWindowID]; -} - -- (nullable NSNumber *)duplicateUpdatesFromWindowID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameDuplicateUpdatesFromWindowID ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.h deleted file mode 100644 index 62684e1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// SDLCreateWindowResponse.h -// SmartDeviceLink - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Response to SDLCreateWindow -/// -/// @since RPC 6.0 -@interface SDLCreateWindowResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.m deleted file mode 100644 index a9f6a30..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLCreateWindowResponse.m +++ /dev/null @@ -1,23 +0,0 @@ -// -// SDLCreateWindowResponse.m -// SmartDeviceLink - -#import "SDLCreateWindowResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -@implementation SDLCreateWindowResponse - - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameCreateWindow]) { - } - return self; -} -#pragma clang diagnostic pop - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDIDResult.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDIDResult.h deleted file mode 100644 index 673ccaa..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDIDResult.h +++ /dev/null @@ -1,38 +0,0 @@ -// SDLDIDResult.h -// - -#import "SDLRPCMessage.h" - -#import "SDLVehicleDataResultCode.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - A vehicle data struct - */ -@interface SDLDIDResult : SDLRPCStruct - -/** - Individual DID result code. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataResultCode resultCode; - -/** - Location of raw data from vehicle data DID - - Required - */ -@property (strong, nonatomic) NSNumber *didLocation; - -/** - Raw DID-based data returned for requested element. - - Optional - */ -@property (nullable, strong, nonatomic) NSString *data; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDIDResult.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDIDResult.m deleted file mode 100644 index 4f661d8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDIDResult.m +++ /dev/null @@ -1,41 +0,0 @@ -// SDLDIDResult.m -// - -#import "SDLDIDResult.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDIDResult - -- (void)setResultCode:(SDLVehicleDataResultCode)resultCode { - [self.store sdl_setObject:resultCode forName:SDLRPCParameterNameResultCode]; -} - -- (SDLVehicleDataResultCode)resultCode { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameResultCode error:&error]; -} - -- (void)setDidLocation:(NSNumber *)didLocation { - [self.store sdl_setObject:didLocation forName:SDLRPCParameterNameDIDLocation]; -} - -- (NSNumber *)didLocation { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameDIDLocation ofClass:NSNumber.class error:&error]; -} - -- (void)setData:(nullable NSString *)data { - [self.store sdl_setObject:data forName:SDLRPCParameterNameData]; -} - -- (nullable NSString *)data { - return [self.store sdl_objectForName:SDLRPCParameterNameData ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.h deleted file mode 100644 index 905012f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.h +++ /dev/null @@ -1,120 +0,0 @@ -// SDLDateTime.h -// - -#import "SDLRPCStruct.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - A struct referenced in SendLocation for an absolute date - */ -@interface SDLDateTime : SDLRPCStruct - -/// Convenience init for creating a date -/// -/// @param hour Hour part of time -/// @param minute Minutes part of time -/// @return An SDLDateTime object -- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute; - -/// Convenience init for creating a date -/// -/// @param hour Hour part of time -/// @param minute Minutes part of time -/// @param second Seconds part of time -/// @param millisecond Milliseconds part of time -/// @return An SDLDateTime object -- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond; - -/// Convenience init for creating a date -/// -/// @param hour Hour part of time -/// @param minute Minutes part of time -/// @param second Seconds part of time -/// @param millisecond Milliseconds part of time -/// @param day Day of the month -/// @param month Month of the year -/// @param year The year in YYYY format -/// @return An SDLDateTime object -- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond day:(UInt8)day month:(UInt8)month year:(UInt16)year; - -/// Convenience init for creating a date with all properties -/// -/// @param hour Hour part of time -/// @param minute Minutes part of time -/// @param second Seconds part of time -/// @param millisecond Milliseconds part of time -/// @param day Day of the month -/// @param month Month of the year -/// @param year The year in YYYY format -/// @param timezoneMinuteOffset Time zone offset in Min with regard to UTC -/// @param timezoneHourOffset Time zone offset in Hours with regard to UTC -/// @return An SDLDateTime object -- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond day:(UInt8)day month:(UInt8)month year:(UInt16)year timezoneMinuteOffset:(UInt8)timezoneMinuteOffset timezoneHourOffset:(int)timezoneHourOffset; - -/** - * Milliseconds part of time - * - * Optional, Integer 0 - 999 - */ -@property (copy, nonatomic) NSNumber *millisecond; - -/** - * Seconds part of time - * - * Optional, Integer 0 - 59 - */ -@property (copy, nonatomic) NSNumber *second; - -/** - * Minutes part of time - * - * Optional, Integer 0 - 59 - */ -@property (copy, nonatomic) NSNumber *minute; - -/** - * Hour part of time - * - * Optional, Integer 0 - 23 - */ -@property (copy, nonatomic) NSNumber *hour; - -/** - * Day of the month - * - * Optional, Integer 1 - 31 - */ -@property (copy, nonatomic) NSNumber *day; - -/** - * Month of the year - * - * Optional, Integer 1 - 12 - */ -@property (copy, nonatomic) NSNumber *month; - -/** - * The year in YYYY format - * - * Optional, Max Value 4095 - */ -@property (copy, nonatomic) NSNumber *year; - -/** - * Time zone offset in Min with regard to UTC - * - * Optional, Integer 0 - 59 - */ -@property (copy, nonatomic) NSNumber *timezoneMinuteOffset; - -/** - * Time zone offset in Hours with regard to UTC - * - * Optional, Integer -12 - 14 - */ -@property (copy, nonatomic) NSNumber *timezoneHourOffset; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.m deleted file mode 100644 index c5a4521..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDateTime.m +++ /dev/null @@ -1,142 +0,0 @@ -// SDLDateTime.m -// - -#import "SDLDateTime.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -@implementation SDLDateTime - -- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute { - self = [self init]; - if (!self) { - return nil; - } - - self.hour = @(hour); - self.minute = @(minute); - - return self; -} - -- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond { - self = [self initWithHour:hour minute:minute]; - if (!self) { - return nil; - } - - self.second = @(second); - self.millisecond = @(millisecond); - - return self; -} - -- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond day:(UInt8)day month:(UInt8)month year:(UInt16)year { - self = [self initWithHour:hour minute:minute second:second millisecond:millisecond]; - if (!self) { - return nil; - } - - self.day = @(day); - self.month = @(month); - self.year = @(year); - - return self; -} - - -- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond day:(UInt8)day month:(UInt8)month year:(UInt16)year timezoneMinuteOffset:(UInt8)timezoneMinuteOffset timezoneHourOffset:(int)timezoneHourOffset { - self = [self initWithHour:hour minute:minute second:second millisecond:millisecond day:day month:month year:year]; - if (!self) { - return nil; - } - - self.timezoneMinuteOffset = @(timezoneMinuteOffset); - self.timezoneHourOffset = @(timezoneHourOffset); - - return self; -} - -- (void)setMillisecond:(NSNumber *)millisecond { - [self.store sdl_setObject:millisecond forName:SDLRPCParameterNameMillisecond]; -} - -- (NSNumber *)millisecond { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMillisecond ofClass:NSNumber.class error:&error]; -} - -- (void)setSecond:(NSNumber *)second { - [self.store sdl_setObject:second forName:SDLRPCParameterNameSecond]; -} - -- (NSNumber *)second { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameSecond ofClass:NSNumber.class error:&error]; -} - -- (void)setMinute:(NSNumber *)minute { - [self.store sdl_setObject:minute forName:SDLRPCParameterNameMinute]; -} - -- (NSNumber *)minute { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMinute ofClass:NSNumber.class error:&error]; -} - -- (void)setHour:(NSNumber *)hour { - [self.store sdl_setObject:hour forName:SDLRPCParameterNameHour]; -} - -- (NSNumber *)hour { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameHour ofClass:NSNumber.class error:&error]; -} - -- (void)setDay:(NSNumber *)day { - [self.store sdl_setObject:day forName:SDLRPCParameterNameDay]; -} - -- (NSNumber *)day { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameDay ofClass:NSNumber.class error:&error]; -} - -- (void)setMonth:(NSNumber *)month { - [self.store sdl_setObject:month forName:SDLRPCParameterNameMonth]; -} - -- (NSNumber *)month { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMonth ofClass:NSNumber.class error:&error]; -} - -- (void)setYear:(NSNumber *)year { - [self.store sdl_setObject:year forName:SDLRPCParameterNameYear]; -} - -- (NSNumber *)year { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameYear ofClass:NSNumber.class error:&error]; -} - -- (void)setTimezoneMinuteOffset:(NSNumber *)timezoneMinuteOffset { - [self.store sdl_setObject:timezoneMinuteOffset forName:SDLRPCParameterNameTimezoneMinuteOffset]; -} - -- (NSNumber *)timezoneMinuteOffset { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameTimezoneMinuteOffset ofClass:NSNumber.class error:&error]; -} - -- (void)setTimezoneHourOffset:(NSNumber *)timezoneHourOffset { - [self.store sdl_setObject:timezoneHourOffset forName:SDLRPCParameterNameTimezoneHourOffset]; -} - -- (NSNumber *)timezoneHourOffset { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameTimezoneHourOffset ofClass:NSNumber.class error:&error]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDefrostZone.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDefrostZone.h deleted file mode 100644 index 04519a6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDefrostZone.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// SDLDefrostZone.h -// - -#import "SDLEnum.h" - -/** - * Enumeration listing possible defrost zones. Used in ClimateControlCapabilities and Data. - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLDefrostZone SDL_SWIFT_ENUM; - -/** - * A SDLDefrostZone with the value of *FRONT* - */ -extern SDLDefrostZone const SDLDefrostZoneFront; - -/** - * A SDLDefrostZone with the value of *REAR* - */ -extern SDLDefrostZone const SDLDefrostZoneRear; - -/** - * A SDLDefrostZone with the value of *All* - */ -extern SDLDefrostZone const SDLDefrostZoneAll; - -/** - * A SDLDefrostZone with the value of *None* - */ -extern SDLDefrostZone const SDLDefrostZoneNone; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDefrostZone.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDefrostZone.m deleted file mode 100644 index f4f2862..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDefrostZone.m +++ /dev/null @@ -1,10 +0,0 @@ -// -// SDLDefrostZone.m -// - -#import "SDLDefrostZone.h" - -SDLDefrostZone const SDLDefrostZoneFront = @"FRONT"; -SDLDefrostZone const SDLDefrostZoneRear = @"REAR"; -SDLDefrostZone const SDLDefrostZoneAll = @"ALL"; -SDLDefrostZone const SDLDefrostZoneNone = @"NONE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteChoicesOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteChoicesOperation.h deleted file mode 100644 index b712759..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteChoicesOperation.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// SDLDeleteChoicesOperation.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/23/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAsynchronousOperation.h" - -@class SDLChoiceCell; - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDeleteChoicesOperation : SDLAsynchronousOperation - -- (instancetype)initWithConnectionManager:(id)connectionManager cellsToDelete:(NSSet *)cells; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteChoicesOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteChoicesOperation.m deleted file mode 100644 index 027c549..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteChoicesOperation.m +++ /dev/null @@ -1,90 +0,0 @@ -// -// SDLDeleteChoicesOperation.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/23/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLDeleteChoicesOperation.h" - -#import "SDLChoiceCell.h" -#import "SDLConnectionManagerType.h" -#import "SDLDeleteInteractionChoiceSet.h" -#import "SDLError.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLChoiceCell() - -@property (assign, nonatomic) UInt16 choiceId; - -@end - -@interface SDLDeleteChoicesOperation() - -@property (strong, nonatomic) NSUUID *operationId; -@property (strong, nonatomic) NSSet *cellsToDelete; -@property (weak, nonatomic) id connectionManager; -@property (copy, nonatomic, nullable) NSError *internalError; - -@end - -@implementation SDLDeleteChoicesOperation - -- (instancetype)initWithConnectionManager:(id)connectionManager cellsToDelete:(NSSet *)cells { - self = [super init]; - if (!self) { return nil; } - - _connectionManager = connectionManager; - _cellsToDelete = cells; - _operationId = [NSUUID UUID]; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - [self sdl_sendDeletions]; -} - -- (void)sdl_sendDeletions { - NSMutableArray *deleteChoices = [NSMutableArray arrayWithCapacity:self.cellsToDelete.count]; - for (SDLChoiceCell *cell in self.cellsToDelete) { - [deleteChoices addObject:[[SDLDeleteInteractionChoiceSet alloc] initWithId:cell.choiceId]]; - } - - __weak typeof(self) weakSelf = self; - __block NSMutableDictionary *errors = [NSMutableDictionary dictionary]; - [self.connectionManager sendRequests:deleteChoices progressHandler:^(__kindof SDLRPCRequest * _Nonnull request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error, float percentComplete) { - if (error != nil) { - errors[request] = error; - } - } completionHandler:^(BOOL success) { - if (!success) { - weakSelf.internalError = [NSError sdl_choiceSetManager_choiceDeletionFailed:errors]; - } - - [weakSelf finishOperation]; - }]; -} - -#pragma mark - Property Overrides - -- (nullable NSString *)name { - return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityNormal; -} - -- (nullable NSError *)error { - return self.internalError; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.h deleted file mode 100644 index f6b059c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.h +++ /dev/null @@ -1,40 +0,0 @@ -// SDLDeleteCommand.h -// - - -#import "SDLRPCRequest.h" - -/** - * Removes a command from the Command Menu - *

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

      - * - * Since SmartDeviceLink 1.0
      - * see SDLAddCommand SDLAddSubMenu SDLDeleteSubMenu - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDeleteCommand : SDLRPCRequest - -/// Convenience init to remove a command from the menu -/// -/// @param commandId The Command ID that identifies the Command to be deleted from Command Menu -/// @return An SDLDeleteCommand object -- (instancetype)initWithId:(UInt32)commandId; - -/** - * the Command ID that identifies the Command to be deleted from Command Menu - * @discussion an NSNumber value representing Command ID - *

      - * Notes: Min Value: 0; Max Value: 2000000000 - */ -@property (strong, nonatomic) NSNumber *cmdID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.m deleted file mode 100644 index 563cde4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommand.m +++ /dev/null @@ -1,46 +0,0 @@ -// SDLDeleteCommand.m -// - - -#import "SDLDeleteCommand.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDeleteCommand - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDeleteCommand]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithId:(UInt32)commandId { - self = [self init]; - if (!self) { - return nil; - } - - self.cmdID = @(commandId); - - return self; -} - -- (void)setCmdID:(NSNumber *)cmdID { - [self.parameters sdl_setObject:cmdID forName:SDLRPCParameterNameCommandId]; -} - -- (NSNumber *)cmdID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameCommandId ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommandResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommandResponse.h deleted file mode 100644 index 6237313..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommandResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLDeleteCommandResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to SDLDeleteCommand - - Since SmartDeviceLink 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDeleteCommandResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommandResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommandResponse.m deleted file mode 100644 index 57460a8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteCommandResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLDeleteCommandResponse.m -// - - -#import "SDLDeleteCommandResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDeleteCommandResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDeleteCommand]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.h deleted file mode 100644 index 04e1814..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.h +++ /dev/null @@ -1,34 +0,0 @@ -// SDLDeleteFile.h -// - - -#import "SDLRPCRequest.h" - -/** - * Used to delete a file resident on the SDL module in the app's local cache. - * Not supported on first generation SDL vehicles - *

      - * - * Since SmartDeviceLink 2.0
      - * see SDLPutFile SDLListFiles - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDeleteFile : SDLRPCRequest - -/// Convenience init to delete a file -/// -/// @param fileName A file reference name -/// @return An SDLDeleteFile object -- (instancetype)initWithFileName:(NSString *)fileName; - -/** - * a file reference name - * @discussion a String value representing a file reference name - */ -@property (strong, nonatomic) NSString *syncFileName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.m deleted file mode 100644 index 8c1a057..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFile.m +++ /dev/null @@ -1,46 +0,0 @@ -// SDLDeleteFile.m -// - - -#import "SDLDeleteFile.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDeleteFile - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDeleteFile]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithFileName:(NSString *)fileName { - self = [self init]; - if (!self) { - return nil; - } - - self.syncFileName = fileName; - - return self; -} - -- (void)setSyncFileName:(NSString *)syncFileName { - [self.parameters sdl_setObject:syncFileName forName:SDLRPCParameterNameSyncFileName]; -} - -- (NSString *)syncFileName { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncFileName ofClass:NSString.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.h deleted file mode 100644 index 9252ae7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// SDLDeleteFileOperation.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 5/11/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAsynchronousOperation.h" -#import "SDLFileManagerConstants.h" - -@protocol SDLConnectionManagerType; - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDeleteFileOperation : SDLAsynchronousOperation - -/** - * Create an instance of a delete files operation which will tell the remote system to remove a file form its storage. - * - * @param fileName The name of the file to be deleted on the remote system. - * @param connectionManager The connection manager which will handle transporting the request to the remote system. - * @param completionHandler A completion handler to be called when the delete finishes. - * - * @return An instance of SDLDeleteFilesOperation - */ -- (instancetype)initWithFileName:(NSString *)fileName connectionManager:(id)connectionManager completionHandler:(nullable SDLFileManagerDeleteCompletionHandler)completionHandler; - -/** - The name of the file to be deleted on the remote system. - */ -@property (copy, nonatomic, readonly) NSString *fileName; - -/** - The connection manager which will handle transporting the request to the remote system. - */ -@property (weak, nonatomic, readonly) id connectionManager; - -/** - A completion handler to be called when the delete finishes. - */ -@property (copy, nonatomic, nullable, readonly) SDLFileManagerDeleteCompletionHandler completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.m deleted file mode 100644 index e7ce7e2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileOperation.m +++ /dev/null @@ -1,82 +0,0 @@ -// -// SDLDeleteFileOperation.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 5/11/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLDeleteFileOperation.h" - -#import "SDLConnectionManagerType.h" -#import "SDLDeleteFile.h" -#import "SDLDeleteFileResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDeleteFileOperation () - -@property (copy, nonatomic) NSString *fileName; -@property (weak, nonatomic) id connectionManager; -@property (copy, nonatomic, nullable) SDLFileManagerDeleteCompletionHandler completionHandler; - -@end - - -@implementation SDLDeleteFileOperation - -- (instancetype)initWithFileName:(NSString *)fileName connectionManager:(id)connectionManager completionHandler:(nullable SDLFileManagerDeleteCompletionHandler)completionHandler { - self = [super init]; - if (!self) { - return nil; - } - - _fileName = fileName; - _connectionManager = connectionManager; - _completionHandler = completionHandler; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - [self sdl_deleteFile]; -} - -- (void)sdl_deleteFile { - SDLDeleteFile *deleteFile = [[SDLDeleteFile alloc] initWithFileName:self.fileName]; - - typeof(self) weakself = self; - [self.connectionManager sendConnectionManagerRequest:deleteFile withResponseHandler:^(__kindof SDLRPCRequest *request, __kindof SDLRPCResponse *response, NSError *error) { - // Pull out the parameters - SDLDeleteFileResponse *deleteFileResponse = (SDLDeleteFileResponse *)response; - BOOL success = [deleteFileResponse.success boolValue]; - - // If spaceAvailable is nil, set it to the max value - NSUInteger bytesAvailable = deleteFileResponse.spaceAvailable != nil ? deleteFileResponse.spaceAvailable.unsignedIntegerValue : 2000000000; - - // Callback - if (weakself.completionHandler != nil) { - weakself.completionHandler(success, bytesAvailable, error); - } - - [weakself finishOperation]; - }]; -} - - -#pragma mark Property Overrides - -- (nullable NSString *)name { - return [NSString stringWithFormat:@"%@ - %@", self.class, self.fileName]; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityVeryHigh; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileResponse.h deleted file mode 100644 index c639dcd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileResponse.h +++ /dev/null @@ -1,24 +0,0 @@ -// SDLDeleteFileResponse.h -// - - -#import "SDLRPCResponse.h" - - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLDeleteFile - - Since SmartDeviceLink 2.0 - */ -@interface SDLDeleteFileResponse : SDLRPCResponse - -/** - The remaining available space for your application to store data on the remote system. - */ -@property (nullable, strong, nonatomic) NSNumber *spaceAvailable; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileResponse.m deleted file mode 100644 index 17db0cb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteFileResponse.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLDeleteFileResponse.m -// - - -#import "SDLDeleteFileResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDeleteFileResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDeleteFile]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setSpaceAvailable:(nullable NSNumber *)spaceAvailable { - [self.parameters sdl_setObject:spaceAvailable forName:SDLRPCParameterNameSpaceAvailable]; -} - -- (nullable NSNumber *)spaceAvailable { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSpaceAvailable ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h deleted file mode 100644 index 19bbc06..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h +++ /dev/null @@ -1,42 +0,0 @@ -// SDLDeleteInteractionChoiceSet.h -// - - -#import "SDLRPCRequest.h" - -/** - * Deletes an existing Choice Set identified by the parameter - * interactionChoiceSetID. If the specified interactionChoiceSetID is currently - * in use by an active SDLPerformInteraction this call to - * delete the Choice Set will fail returning an IN_USE resultCode - *

      - * Function Group: Base - *

      - * HMILevel needs to be FULL, LIMITED or BACKGROUD
      - *

      - * - * Since SmartDeviceLink 1.0
      - * see SDLCreateInteractionChoiceSet SDLPerformInteraction - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDeleteInteractionChoiceSet : SDLRPCRequest - -/// Convenience init to delete a choice set -/// -/// @param choiceId A unique ID that identifies the Choice Set -/// @return An SDLDeleteInteractionChoiceSet object -- (instancetype)initWithId:(UInt32)choiceId; - -/** - * a unique ID that identifies the Choice Set - * @discussion a unique ID that identifies the Choice Set - *

      - * Notes: Min Value: 0; Max Value: 2000000000 - */ -@property (strong, nonatomic) NSNumber *interactionChoiceSetID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m deleted file mode 100644 index 2017414..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m +++ /dev/null @@ -1,46 +0,0 @@ -// SDLDeleteInteractionChoiceSet.m -// - - -#import "SDLDeleteInteractionChoiceSet.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDeleteInteractionChoiceSet - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDeleteInteractionChoiceSet]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithId:(UInt32)choiceId { - self = [self init]; - if (!self) { - return nil; - } - - self.interactionChoiceSetID = @(choiceId); - - return self; -} - -- (void)setInteractionChoiceSetID:(NSNumber *)interactionChoiceSetID { - [self.parameters sdl_setObject:interactionChoiceSetID forName:SDLRPCParameterNameInteractionChoiceSetId]; -} - -- (NSNumber *)interactionChoiceSetID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameInteractionChoiceSetId ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h deleted file mode 100644 index 55267a6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLDeleteInteractionChoiceSetResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - SDLDeleteInteractionChoiceSetResponse is sent, when SDLDeleteInteractionChoiceSet has been called - - Since SmartDeviceLink 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDeleteInteractionChoiceSetResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m deleted file mode 100644 index abc14d7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLDeleteInteractionChoiceSetResponse.m -// - - -#import "SDLDeleteInteractionChoiceSetResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDeleteInteractionChoiceSetResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDeleteInteractionChoiceSet]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.h deleted file mode 100644 index 5f9bf73..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.h +++ /dev/null @@ -1,38 +0,0 @@ -// SDLDeleteSubMenu.h -// - - -#import "SDLRPCRequest.h" - -/** - * Deletes a submenu from the Command Menu - *

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

      - * HMILevel needs to be FULL, LIMITED or BACKGROUND - *

      - * - * Since SmartDeviceLink 1.0
      - * see SDLAddCommand SDLAddSubMenu SDLDeleteCommand - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDeleteSubMenu : SDLRPCRequest - -/// Convenience init to delete a submenu -/// -/// @param menuId Identifies the SDLSubMenu to be delete -/// @return An SDLDeleteSubMenu object -- (instancetype)initWithId:(UInt32)menuId; - -/** - * the MenuID that identifies the SDLSubMenu to be delete - * @discussion Notes: Min Value: 0; Max Value: 2000000000 - */ -@property (strong, nonatomic) NSNumber *menuID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.m deleted file mode 100644 index 2fd2910..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenu.m +++ /dev/null @@ -1,46 +0,0 @@ -// SDLDeleteSubMenu.m -// - - -#import "SDLDeleteSubMenu.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDeleteSubMenu - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDeleteSubMenu]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithId:(UInt32)menuId { - self = [self init]; - if (!self) { - return nil; - } - - self.menuID = @(menuId); - - return self; -} - -- (void)setMenuID:(NSNumber *)menuID { - [self.parameters sdl_setObject:menuID forName:SDLRPCParameterNameMenuId]; -} - -- (NSNumber *)menuID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuId ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenuResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenuResponse.h deleted file mode 100644 index 7b3282e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenuResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLDeleteSubMenuResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to SDLDeleteSubMenu - - Since SmartDeviceLink 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDeleteSubMenuResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenuResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenuResponse.m deleted file mode 100644 index d9c3355..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteSubMenuResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLDeleteSubMenuResponse.m -// - - -#import "SDLDeleteSubMenuResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDeleteSubMenuResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDeleteSubMenu]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.h deleted file mode 100644 index 2561b45..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// SDLDeleteWindow.h -// SmartDeviceLink - -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Deletes previously created window of the SDL application. - - @since SDL 6.0 - */ -@interface SDLDeleteWindow : SDLRPCRequest - -/** - @param windowId A unique ID to identify the window. The value of '0' will always be the default main window on the main display and cannot be deleted. - */ -- (instancetype)initWithId:(NSUInteger)windowId; - -/** - A unique ID to identify the window. - - The value of '0' will always be the default main window on the main display and cannot be deleted. - - @see PredefinedWindows enum. - */ -@property (strong, nonatomic) NSNumber *windowID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.m deleted file mode 100644 index d4f6189..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindow.m +++ /dev/null @@ -1,40 +0,0 @@ -// -// SDLDeleteWindow.m -// SmartDeviceLink - -#import "SDLDeleteWindow.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -@implementation SDLDeleteWindow - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDeleteWindow]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithId:(NSUInteger)windowId { - self = [self init]; - if (!self) { - return nil; - } - self.windowID = @(windowId); - return self; -} - -- (void)setWindowID:(NSNumber *)windowID { - [self.parameters sdl_setObject:windowID forName:SDLRPCParameterNameWindowId]; -} - -- (NSNumber *)windowID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:&error]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.h deleted file mode 100644 index e2308bd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// SDLDeleteWindowResponse.h -// SmartDeviceLink -// -// Created by cssoeutest1 on 11.07.19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Response to DeleteWindow -/// -/// @since RPC 6.0 -@interface SDLDeleteWindowResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.m deleted file mode 100644 index c7cf300..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeleteWindowResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// -// SDLDeleteWindowResponse.m -// SmartDeviceLink -// -// Created by cssoeutest1 on 11.07.19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLDeleteWindowResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -@implementation SDLDeleteWindowResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDeleteWindow]) { - } - return self; -} -#pragma clang diagnostic pop - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeliveryMode.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeliveryMode.h deleted file mode 100644 index 61f9dcf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeliveryMode.h +++ /dev/null @@ -1,24 +0,0 @@ -// SDLDeliveryMode.h -// - -#import "SDLEnum.h" - -/** - * Specifies the mode in which the sendLocation request is sent. Used in SendLocation. - */ -typedef SDLEnum SDLDeliveryMode SDL_SWIFT_ENUM; - -/** - * User is prompted on HMI - */ -extern SDLDeliveryMode const SDLDeliveryModePrompt; - -/** - * Set the location as destination without prompting the user - */ -extern SDLDeliveryMode const SDLDeliveryModeDestination; - -/** - * Adds the current location to navigation queue - */ -extern SDLDeliveryMode const SDLDeliveryModeQueue; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeliveryMode.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeliveryMode.m deleted file mode 100644 index b97b7ae..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeliveryMode.m +++ /dev/null @@ -1,8 +0,0 @@ -// SDLDeliveryMode.h -// - -#import "SDLDeliveryMode.h" - -SDLDeliveryMode const SDLDeliveryModePrompt = @"PROMPT"; -SDLDeliveryMode const SDLDeliveryModeDestination = @"DESTINATION"; -SDLDeliveryMode const SDLDeliveryModeQueue = @"QUEUE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.h deleted file mode 100644 index f30e2d5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.h +++ /dev/null @@ -1,64 +0,0 @@ -// SDLDeviceInfo.h -// - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Various information about connecting device. Referenced in RegisterAppInterface - */ -@interface SDLDeviceInfo : SDLRPCStruct - -/// Convenience init. Object will contain all information about the connected device automatically. -/// -/// @return An SDLDeviceInfo object -+ (instancetype)currentDevice; - -/** - Device model - - Optional - */ -@property (nullable, strong, nonatomic) NSString *hardware; - -/** - Device firmware version - - Optional - */ -@property (nullable, strong, nonatomic) NSString *firmwareRev; - -/** - Device OS - - Optional - */ -@property (nullable, strong, nonatomic) NSString *os; - -/** - Device OS version - - Optional - */ -@property (nullable, strong, nonatomic) NSString *osVersion; - -/** - Device mobile carrier - - Optional - */ -@property (nullable, strong, nonatomic) NSString *carrier; - -/** - Number of bluetooth RFCOMM ports available. - - Omitted if not connected via BT or on iOS - - Optional - */ -@property (nullable, strong, nonatomic) NSNumber *maxNumberRFCOMMPorts; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.m deleted file mode 100644 index a28f275..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceInfo.m +++ /dev/null @@ -1,82 +0,0 @@ -// SDLDeviceInfo.m -// - -#import "SDLDeviceInfo.h" - -#import -#import -#import - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDeviceInfo - -+ (instancetype)currentDevice { - static SDLDeviceInfo *deviceInfo = nil; - if (deviceInfo == nil) { - deviceInfo = [[SDLDeviceInfo alloc] init]; - deviceInfo.hardware = [UIDevice currentDevice].model; - deviceInfo.os = [UIDevice currentDevice].systemName; - deviceInfo.osVersion = [UIDevice currentDevice].systemVersion; - CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init]; - CTCarrier *carrier = netinfo.subscriberCellularProvider; - NSString *carrierName = carrier.carrierName; - deviceInfo.carrier = carrierName; - } - return deviceInfo; -} - -- (void)setHardware:(nullable NSString *)hardware { - [self.store sdl_setObject:hardware forName:SDLRPCParameterNameHardware]; -} - -- (nullable NSString *)hardware { - return [self.store sdl_objectForName:SDLRPCParameterNameHardware ofClass:NSString.class error:nil]; -} - -- (void)setFirmwareRev:(nullable NSString *)firmwareRev { - [self.store sdl_setObject:firmwareRev forName:SDLRPCParameterNameFirmwareRevision]; -} - -- (nullable NSString *)firmwareRev { - return [self.store sdl_objectForName:SDLRPCParameterNameFirmwareRevision ofClass:NSString.class error:nil]; -} - -- (void)setOs:(nullable NSString *)os { - [self.store sdl_setObject:os forName:SDLRPCParameterNameOS]; -} - -- (nullable NSString *)os { - return [self.store sdl_objectForName:SDLRPCParameterNameOS ofClass:NSString.class error:nil]; -} - -- (void)setOsVersion:(nullable NSString *)osVersion { - [self.store sdl_setObject:osVersion forName:SDLRPCParameterNameOSVersion]; -} - -- (nullable NSString *)osVersion { - return [self.store sdl_objectForName:SDLRPCParameterNameOSVersion ofClass:NSString.class error:nil]; -} - -- (void)setCarrier:(nullable NSString *)carrier { - [self.store sdl_setObject:carrier forName:SDLRPCParameterNameCarrier]; -} - -- (nullable NSString *)carrier { - return [self.store sdl_objectForName:SDLRPCParameterNameCarrier ofClass:NSString.class error:nil]; -} - -- (void)setMaxNumberRFCOMMPorts:(nullable NSNumber *)maxNumberRFCOMMPorts { - [self.store sdl_setObject:maxNumberRFCOMMPorts forName:SDLRPCParameterNameMaxNumberRFCOMMPorts]; -} - -- (nullable NSNumber *)maxNumberRFCOMMPorts { - return [self.store sdl_objectForName:SDLRPCParameterNameMaxNumberRFCOMMPorts ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceLevelStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceLevelStatus.h deleted file mode 100644 index fb6a58d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceLevelStatus.h +++ /dev/null @@ -1,42 +0,0 @@ -// SDLDeviceLevelStatus.h -// - - -#import "SDLEnum.h" - -/** - * Reflects the reported battery status of the connected device, if reported. Used in DeviceStatus. - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLDeviceLevelStatus SDL_SWIFT_ENUM; - -/** - * Device battery level is zero bars - */ -extern SDLDeviceLevelStatus const SDLDeviceLevelStatusZeroBars; - -/** - * Device battery level is one bar - */ -extern SDLDeviceLevelStatus const SDLDeviceLevelStatusOneBar; - -/** - * Device battery level is two bars - */ -extern SDLDeviceLevelStatus const SDLDeviceLevelStatusTwoBars; - -/** - * Device battery level is three bars - */ -extern SDLDeviceLevelStatus const SDLDeviceLevelStatusThreeBars; - -/** - * Device battery level is four bars - */ -extern SDLDeviceLevelStatus const SDLDeviceLevelStatusFourBars; - -/** - * Device battery level is unknown - */ -extern SDLDeviceLevelStatus const SDLDeviceLevelStatusNotProvided; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceLevelStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceLevelStatus.m deleted file mode 100644 index 2c15db3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceLevelStatus.m +++ /dev/null @@ -1,12 +0,0 @@ -// SDLDeviceLevelStatus.m -// - - -#import "SDLDeviceLevelStatus.h" - -SDLDeviceLevelStatus const SDLDeviceLevelStatusZeroBars = @"ZERO_LEVEL_BARS"; -SDLDeviceLevelStatus const SDLDeviceLevelStatusOneBar = @"ONE_LEVEL_BARS"; -SDLDeviceLevelStatus const SDLDeviceLevelStatusTwoBars = @"TWO_LEVEL_BARS"; -SDLDeviceLevelStatus const SDLDeviceLevelStatusThreeBars = @"THREE_LEVEL_BARS"; -SDLDeviceLevelStatus const SDLDeviceLevelStatusFourBars = @"FOUR_LEVEL_BARS"; -SDLDeviceLevelStatus const SDLDeviceLevelStatusNotProvided = @"NOT_PROVIDED"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceStatus.h deleted file mode 100644 index 4764ca2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceStatus.h +++ /dev/null @@ -1,105 +0,0 @@ -// SDLDeviceStatus.h -// - -#import "SDLRPCMessage.h" - -#import "SDLDeviceLevelStatus.h" -#import "SDLPrimaryAudioSource.h" - - -/** - Describes the status related to a connected mobile device or SDL and if or how it is represented in the vehicle. - - @since SDL 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDeviceStatus : SDLRPCStruct - -/** - * Indicates whether the voice recognition is on or off - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *voiceRecOn; - -/** - * Indicates whether the bluetooth connection established - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *btIconOn; - -/** - * Indicates whether a call is being active - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *callActive; - -/** - * Indicates whether the phone is in roaming mode - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *phoneRoaming; - -/** - * Indicates whether a textmessage is available - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *textMsgAvailable; - -/** - * Battery level status - * - * @see SDLDeviceLevelStatus - * - * Required - */ -@property (strong, nonatomic) SDLDeviceLevelStatus battLevelStatus; - -/** - * The status of the stereo audio output channel - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *stereoAudioOutputMuted; - -/** - * The status of the mono audio output channel - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *monoAudioOutputMuted; - -/** - * Signal level status - * - * @see SDLDeviceLevelStatus - * - * Required - */ -@property (strong, nonatomic) SDLDeviceLevelStatus signalLevelStatus; - -/** - * The current primary audio source of SDL (if selected). - * - * @see SDLPrimaryAudioSource - * - * Required - */ -@property (strong, nonatomic) SDLPrimaryAudioSource primaryAudioSource; - -/** - * Indicates if an emergency call is active - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *eCallEventActive; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceStatus.m deleted file mode 100644 index 2b91012..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDeviceStatus.m +++ /dev/null @@ -1,116 +0,0 @@ -// SDLDeviceStatus.m -// - -#import "SDLDeviceStatus.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLDeviceLevelStatus.h" -#import "SDLRPCParameterNames.h" -#import "SDLPrimaryAudioSource.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDeviceStatus - -- (void)setVoiceRecOn:(NSNumber *)voiceRecOn { - [self.store sdl_setObject:voiceRecOn forName:SDLRPCParameterNameVoiceRecognitionOn]; -} - -- (NSNumber *)voiceRecOn { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameVoiceRecognitionOn ofClass:NSNumber.class error:&error]; -} - -- (void)setBtIconOn:(NSNumber *)btIconOn { - [self.store sdl_setObject:btIconOn forName:SDLRPCParameterNameBluetoothIconOn]; -} - -- (NSNumber *)btIconOn { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameBluetoothIconOn ofClass:NSNumber.class error:&error]; -} - -- (void)setCallActive:(NSNumber *)callActive { - [self.store sdl_setObject:callActive forName:SDLRPCParameterNameCallActive]; -} - -- (NSNumber *)callActive { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameCallActive ofClass:NSNumber.class error:&error]; -} - -- (void)setPhoneRoaming:(NSNumber *)phoneRoaming { - [self.store sdl_setObject:phoneRoaming forName:SDLRPCParameterNamePhoneRoaming]; -} - -- (NSNumber *)phoneRoaming { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNamePhoneRoaming ofClass:NSNumber.class error:&error]; -} - -- (void)setTextMsgAvailable:(NSNumber *)textMsgAvailable { - [self.store sdl_setObject:textMsgAvailable forName:SDLRPCParameterNameTextMessageAvailable]; -} - -- (NSNumber *)textMsgAvailable { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameTextMessageAvailable ofClass:NSNumber.class error:&error]; -} - -- (void)setBattLevelStatus:(SDLDeviceLevelStatus )battLevelStatus { - [self.store sdl_setObject:battLevelStatus forName:SDLRPCParameterNameBatteryLevelStatus]; -} - -- (SDLDeviceLevelStatus)battLevelStatus { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameBatteryLevelStatus error:&error]; -} - -- (void)setStereoAudioOutputMuted:(NSNumber *)stereoAudioOutputMuted { - [self.store sdl_setObject:stereoAudioOutputMuted forName:SDLRPCParameterNameStereoAudioOutputMuted]; -} - -- (NSNumber *)stereoAudioOutputMuted { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameStereoAudioOutputMuted ofClass:NSNumber.class error:&error]; -} - -- (void)setMonoAudioOutputMuted:(NSNumber *)monoAudioOutputMuted { - [self.store sdl_setObject:monoAudioOutputMuted forName:SDLRPCParameterNameMonoAudioOutputMuted]; -} - -- (NSNumber *)monoAudioOutputMuted { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMonoAudioOutputMuted ofClass:NSNumber.class error:&error]; -} - -- (void)setSignalLevelStatus:(SDLDeviceLevelStatus)signalLevelStatus { - [self.store sdl_setObject:signalLevelStatus forName:SDLRPCParameterNameSignalLevelStatus]; -} - -- (SDLDeviceLevelStatus)signalLevelStatus { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameSignalLevelStatus error:&error]; -} - -- (void)setPrimaryAudioSource:(SDLPrimaryAudioSource)primaryAudioSource { - [self.store sdl_setObject:primaryAudioSource forName:SDLRPCParameterNamePrimaryAudioSource]; -} - -- (SDLPrimaryAudioSource)primaryAudioSource { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNamePrimaryAudioSource error:&error]; -} - -- (void)setECallEventActive:(NSNumber *)eCallEventActive { - [self.store sdl_setObject:eCallEventActive forName:SDLRPCParameterNameECallEventActive]; -} - -- (NSNumber *)eCallEventActive { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameECallEventActive ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.h deleted file mode 100644 index 385c72b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.h +++ /dev/null @@ -1,48 +0,0 @@ -// SDLDiagnosticMessage.h -// - - -#import "SDLRPCRequest.h" - -/** - * Non periodic vehicle diagnostic request - * - * @since SDL 3.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDiagnosticMessage : SDLRPCRequest - -/// Convenience init -/// -/// @param targetId Name of target ECU -/// @param length Length of message (in bytes) -/// @param data Array of bytes comprising CAN message -/// @return An SDLDiagnosticMessage object -- (instancetype)initWithTargetId:(UInt16)targetId length:(UInt16)length data:(NSArray *> *)data; - -/** - * Name of target ECU - * - * Required, Integer, 0 - 65535 - */ -@property (strong, nonatomic) NSNumber *targetID; - -/** - * Length of message (in bytes) - * - * Required, Integer, 65535 - */ -@property (strong, nonatomic) NSNumber *messageLength; - -/** - * Array of bytes comprising CAN message. - * - * Required, Array of NSNumber (Integers), Array size 1 - 65535, Integer Size 0 - 255 - */ -@property (strong, nonatomic) NSArray *messageData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.m deleted file mode 100644 index adef6c9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessage.m +++ /dev/null @@ -1,66 +0,0 @@ -// SDLDiagnosticMessage.m -// - - -#import "SDLDiagnosticMessage.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDiagnosticMessage - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDiagnosticMessage]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithTargetId:(UInt16)targetId length:(UInt16)length data:(NSArray *)data { - self = [self init]; - if (!self) { - return nil; - } - - self.targetID = @(targetId); - self.messageLength = @(length); - self.messageData = [data mutableCopy]; - - return self; -} - -- (void)setTargetID:(NSNumber *)targetID { - [self.parameters sdl_setObject:targetID forName:SDLRPCParameterNameTargetId]; -} - -- (NSNumber *)targetID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameTargetId ofClass:NSNumber.class error:&error]; -} - -- (void)setMessageLength:(NSNumber *)messageLength { - [self.parameters sdl_setObject:messageLength forName:SDLRPCParameterNameMessageLength]; -} - -- (NSNumber *)messageLength { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameMessageLength ofClass:NSNumber.class error:&error]; -} - -- (void)setMessageData:(NSArray *)messageData { - [self.parameters sdl_setObject:messageData forName:SDLRPCParameterNameMessageData]; -} - -- (NSArray *)messageData { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameMessageData ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.h deleted file mode 100644 index 2912bea..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.h +++ /dev/null @@ -1,25 +0,0 @@ -// SDLDiagnosticMessageResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLDiagnosticMessage - - Since SmartDeviceLink 3.0 - */ -@interface SDLDiagnosticMessageResponse : SDLRPCResponse - -/** - Array of bytes comprising CAN message result. - - Optional - */ -@property (nullable, strong, nonatomic) NSArray *messageDataResult; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.m deleted file mode 100644 index dbfaa03..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDiagnosticMessageResponse.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLDiagnosticMessageResponse.m -// - -#import "SDLDiagnosticMessageResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDiagnosticMessageResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDiagnosticMessage]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setMessageDataResult:(nullable NSArray *)messageDataResult { - [self.parameters sdl_setObject:messageDataResult forName:SDLRPCParameterNameMessageDataResult]; -} - -- (nullable NSArray *)messageDataResult { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameMessageDataResult ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.h deleted file mode 100644 index 44c6b77..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// SDLDialNumber.h -// SmartDeviceLink-iOS - -#import "SDLRPCRequest.h" - -/** - This RPC is used to tell the head unit to use bluetooth to dial a phone number using the phone. - - @since SDL 4.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDialNumber : SDLRPCRequest - -/// Convenience init to initiate a dial number request -/// -/// @param number Up to 40 character string representing the phone number. All characters stripped except for '0'-'9', '*', '#', ',', ';', and '+'. -/// @return An SDLDialNumber object -- (instancetype)initWithNumber:(NSString *)number; - -/** - * Up to 40 character string representing the phone number. All characters stripped except for '0'-'9', '*', '#', ',', ';', and '+' - */ -@property (strong, nonatomic) NSString *number; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.m deleted file mode 100644 index eaed1eb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumber.m +++ /dev/null @@ -1,42 +0,0 @@ -// -// SDLDialNumber.m -// SmartDeviceLink-iOS - -#import "SDLDialNumber.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -@implementation SDLDialNumber - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDialNumber]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithNumber:(NSString *)number { - self = [self init]; - if (!self) { - return nil; - } - - self.number = number; - - return self; -} - -- (void)setNumber:(NSString *)number { - [self.parameters sdl_setObject:number forName:SDLRPCParameterNameNumber]; -} - -- (NSString *)number { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameNumber ofClass:NSString.class error:&error]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumberResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumberResponse.h deleted file mode 100644 index f1a9265..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumberResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// SDLDialNumberResponse.h -// SmartDeviceLink-iOS - -#import "SDLRPCResponse.h" - -/** - The response to SDLDialNumber - - @since SDL 4.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDialNumberResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumberResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumberResponse.m deleted file mode 100644 index b8073cf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDialNumberResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// -// SDLDialNumberResponse.m -// SmartDeviceLink-iOS - -#import "SDLDialNumberResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDialNumberResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameDialNumber]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDimension.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDimension.h deleted file mode 100644 index a1c5ab8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDimension.h +++ /dev/null @@ -1,27 +0,0 @@ -// SDLDimension.h -// - - -#import "SDLEnum.h" - -/** - * The supported dimensions of the GPS. Used in GPSData - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLDimension SDL_SWIFT_ENUM; - -/** - * No GPS at all - */ -extern SDLDimension const SDLDimensionNoFix; - -/** - * Longitude and latitude of the GPS - */ -extern SDLDimension const SDLDimension2D; - -/** - * Longitude and latitude and altitude of the GPS - */ -extern SDLDimension const SDLDimension3D; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDimension.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDimension.m deleted file mode 100644 index 0730fcf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDimension.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLDimension.m -// - - -#import "SDLDimension.h" - -SDLDimension const SDLDimensionNoFix = @"NO_FIX"; -SDLDimension const SDLDimension2D = @"2D"; -SDLDimension const SDLDimension3D = @"3D"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.h deleted file mode 100644 index 7f21ca3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// SDLDirection.h -// SmartDeviceLink -// -// Created by Nicole on 2/22/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * A navigation direction. - */ -typedef SDLEnum SDLDirection SDL_SWIFT_ENUM; - -/** - * Direction left - */ -extern SDLDirection const SDLDirectionLeft; - -/** - * Direction right - */ -extern SDLDirection const SDLDirectionRight; - - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.m deleted file mode 100644 index 1a11c77..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDirection.m +++ /dev/null @@ -1,12 +0,0 @@ -// -// SDLDirection.m -// SmartDeviceLink -// -// Created by Nicole on 2/22/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLDirection.h" - -SDLDirection const SDLDirectionLeft = @"LEFT"; -SDLDirection const SDLDirectionRight = @"RIGHT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.h deleted file mode 100644 index b564437..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.h +++ /dev/null @@ -1,102 +0,0 @@ -// SDLDisplayCapabilities.h -// - -#import "SDLRPCMessage.h" - -#import "SDLDisplayType.h" -#import "SDLMediaClockFormat.h" - -@class SDLImageField; -@class SDLScreenParams; -@class SDLTextField; - -/** - * Contains information about the display for the SDL system to which the application is currently connected. - * - * @since SDL 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDisplayCapabilities : SDLRPCStruct - -/** - * The type of display - * - * Required - */ -@property (strong, nonatomic) SDLDisplayType displayType __deprecated_msg("See `displayName` instead"); - -/** - The name of the connected display - - Optional - */ -@property (strong, nonatomic, nullable) NSString *displayName; - -/** - * An array of SDLTextField structures, each of which describes a field in the HMI which the application can write to using operations such as *SDLShow*, *SDLSetMediaClockTimer*, etc. - * - * @discussion This array of SDLTextField structures identify all the text fields to which the application can write on the current display (identified by SDLDisplayType). - * - * @see SDLTextField - * - * Required, Array of SDLTextField, 1 - 100 objects - */ -@property (strong, nonatomic) NSArray *textFields; - -/** - * An array of SDLImageField elements - * - * @discussion A set of all fields that support images. - * - * @see SDLImageField - * - * Optional, Array of SDLImageField, 1 - 100 objects - */ -@property (nullable, strong, nonatomic) NSArray *imageFields; - -/** - * An array of SDLMediaClockFormat elements, defining the valid string formats used in specifying the contents of the media clock field - * - * @see SDLMediaClockFormat - * - * Required, Array of SDLMediaClockFormats, 0 - 100 objects - */ -@property (strong, nonatomic) NSArray *mediaClockFormats; - -/** - * The display's persistent screen supports. - * - * @since SDL 2.0 - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *graphicSupported; - -/** - * An array of all predefined persistent display templates available on the head unit. - * - * Optional, Array of String, max string size 100, 0 - 100 objects, since SDL 3.0 - * - * See SDLPredefinedLayout - */ -@property (nullable, strong, nonatomic) NSArray *templatesAvailable; - -/** - * A set of all parameters related to a prescribed screen area (e.g. for video / touch input) - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLScreenParams *screenParams; - -/** - * The number of on-screen custom presets available (if any); otherwise omitted - * - * Optional, Integer 1 - 100 - */ -@property (nullable, strong, nonatomic) NSNumber *numCustomPresetsAvailable; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.m deleted file mode 100644 index b85208a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapabilities.m +++ /dev/null @@ -1,94 +0,0 @@ -// SDLDisplayCapabilities.m -// - -#import "SDLDisplayCapabilities.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLImageField.h" -#import "SDLScreenParams.h" -#import "SDLTextField.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDisplayCapabilities - -- (void)setDisplayType:(SDLDisplayType)displayType { - [self.store sdl_setObject:displayType forName:SDLRPCParameterNameDisplayType]; -} - -- (SDLDisplayType)displayType { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameDisplayType error:&error]; -} - -- (void)setDisplayName:(nullable NSString *)displayName { - [self.store sdl_setObject:displayName forName:SDLRPCParameterNameDisplayName]; -} - -- (nullable NSString *)displayName { - return [self.store sdl_objectForName:SDLRPCParameterNameDisplayName ofClass:NSString.class error:nil]; -} - -- (void)setTextFields:(NSArray *)textFields { - [self.store sdl_setObject:textFields forName:SDLRPCParameterNameTextFields]; -} - -- (NSArray *)textFields { - NSError *error = nil; - return [self.store sdl_objectsForName:SDLRPCParameterNameTextFields ofClass:SDLTextField.class error:&error]; -} - -- (void)setImageFields:(nullable NSArray *)imageFields { - [self.store sdl_setObject:imageFields forName:SDLRPCParameterNameImageFields]; -} - -- (nullable NSArray *)imageFields { - return [self.store sdl_objectsForName:SDLRPCParameterNameImageFields ofClass:SDLImageField.class error:nil]; -} - -- (void)setMediaClockFormats:(NSArray *)mediaClockFormats { - [self.store sdl_setObject:mediaClockFormats forName:SDLRPCParameterNameMediaClockFormats]; -} - -- (NSArray *)mediaClockFormats { - NSError *error = nil; - return [self.store sdl_enumsForName:SDLRPCParameterNameMediaClockFormats error:&error]; -} - -- (void)setGraphicSupported:(NSNumber *)graphicSupported { - [self.store sdl_setObject:graphicSupported forName:SDLRPCParameterNameGraphicSupported]; -} - -- (NSNumber *)graphicSupported { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameGraphicSupported ofClass:NSNumber.class error:&error]; -} - -- (void)setTemplatesAvailable:(nullable NSArray *)templatesAvailable { - [self.store sdl_setObject:templatesAvailable forName:SDLRPCParameterNameTemplatesAvailable]; -} - -- (nullable NSArray *)templatesAvailable { - return [self.store sdl_objectsForName:SDLRPCParameterNameTemplatesAvailable ofClass:NSString.class error:nil]; -} - -- (void)setScreenParams:(nullable SDLScreenParams *)screenParams { - [self.store sdl_setObject:screenParams forName:SDLRPCParameterNameScreenParams]; -} - -- (nullable SDLScreenParams *)screenParams { - return [self.store sdl_objectForName:SDLRPCParameterNameScreenParams ofClass:SDLScreenParams.class error:nil]; -} - -- (void)setNumCustomPresetsAvailable:(nullable NSNumber *)numCustomPresetsAvailable { - [self.store sdl_setObject:numCustomPresetsAvailable forName:SDLRPCParameterNameNumberCustomPresetsAvailable]; -} - -- (nullable NSNumber *)numCustomPresetsAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameNumberCustomPresetsAvailable ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.h deleted file mode 100644 index 7be6a58..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.h +++ /dev/null @@ -1,66 +0,0 @@ -// -// SDLDisplayCapability.h -// SmartDeviceLink - -#import "SDLRPCStruct.h" - -@class SDLWindowCapability; -@class SDLWindowTypeCapabilities; - -NS_ASSUME_NONNULL_BEGIN - -/** - Contain the display related information and all windows related to that display. - - @since SDL 6.0 - */ -@interface SDLDisplayCapability : SDLRPCStruct - -/** - Init with required properties - - @param displayName Name of the display. - */ -- (instancetype)initWithDisplayName:(NSString *)displayName; - -/// This method is broken (the types don't match the parameter names) and will always return nil. Use initWithDisplayName:windowCapabilities:windowTypeSupported: instead. -- (instancetype)initWithDisplayName:(NSString *)displayName windowTypeSupported:(nullable NSArray *)windowTypeSupported windowCapabilities:(nullable NSArray *)windowCapabilities __deprecated_msg("This method is broken and will return nil every time. Use initWithDisplayName:windowCapabilities:windowTypeSupported: instead"); - -/** - Init with all the properities - - @param displayName Name of the display. - @param windowCapabilities Contains a list of capabilities of all windows related to the app. @see windowCapabilities - @param windowTypeSupported Informs the application how many windows the app is allowed to create per type. - */ -- (instancetype)initWithDisplayName:(NSString *)displayName windowCapabilities:(nullable NSArray *)windowCapabilities windowTypeSupported:(nullable NSArray *)windowTypeSupported; - - -/** - Name of the display. - */ -@property (strong, nonatomic, nullable) NSString *displayName; - -/** - Informs the application how many windows the app is allowed to create per type. - - Min size 1 - Max size 100 - */ -@property (strong, nonatomic, nullable) NSArray *windowTypeSupported; - -/** - Contains a list of capabilities of all windows related to the app. Once the app has registered the capabilities of all windows will be provided, but GetSystemCapability still allows requesting window capabilities of all windows. - - After registration, only windows with capabilities changed will be included. Following cases will cause only affected windows to be included: - - 1. App creates a new window. After the window is created, a system capability notification will be sent related only to the created window. - 2. App sets a new template to the window. The new template changes window capabilties. The notification will reflect those changes to the single window. - - Min size 1, Max size 1000 - */ -@property (strong, nonatomic, nullable) NSArray *windowCapabilities; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.m deleted file mode 100644 index 04c23cc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayCapability.m +++ /dev/null @@ -1,72 +0,0 @@ -// -// SDLDisplayCapability.m -// SmartDeviceLink - -#import "SDLDisplayCapability.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLWindowTypeCapabilities.h" -#import "SDLWindowCapability.h" - -@implementation SDLDisplayCapability - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - return self; -} - -- (instancetype)initWithDisplayName:(NSString *)displayName { - self = [self init]; - if (!self) { - return nil; - } - self.displayName = displayName; - return self; -} - -- (instancetype)initWithDisplayName:(NSString *)displayName windowTypeSupported:(NSArray *)windowTypeSupported windowCapabilities:(NSArray *)windowCapabilities { - SDLLogE(@"This method is broken (the types don't match the parameter names) and will always return nil. Use initWithDisplayName:windowCapabilities:windowTypeSupported: instead."); - - return nil; -} - -- (instancetype)initWithDisplayName:(NSString *)displayName windowCapabilities:(nullable NSArray *)windowCapabilities windowTypeSupported:(nullable NSArray *)windowTypeSupported { - self = [self initWithDisplayName:displayName]; - if (!self) { - return nil; - } - self.windowTypeSupported = windowTypeSupported; - self.windowCapabilities = windowCapabilities; - return self; -} - -- (void)setDisplayName:(NSString *)displayName { - [self.store sdl_setObject:displayName forName:SDLRPCParameterNameDisplayName]; -} - -- (NSString *)displayName { - return [self.store sdl_objectForName:SDLRPCParameterNameDisplayName ofClass:NSString.class error:nil]; -} - -- (void)setWindowTypeSupported:(nullable NSArray *)windowTypeSupported { - [self.store sdl_setObject:windowTypeSupported forName:SDLRPCParameterNameWindowTypeSupported]; -} - -- (nullable NSArray *)windowTypeSupported { - return [self.store sdl_objectsForName:SDLRPCParameterNameWindowTypeSupported ofClass:SDLWindowTypeCapabilities.class error:nil]; -} - -- (void)setWindowCapabilities:(nullable NSArray *)windowCapabilities { - [self.store sdl_setObject:windowCapabilities forName:SDLRPCParameterNameWindowCapabilities]; -} - -- (nullable NSArray *)windowCapabilities { - return [self.store sdl_objectsForName:SDLRPCParameterNameWindowCapabilities ofClass:SDLWindowCapability.class error:nil]; -} - - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayMode.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayMode.h deleted file mode 100644 index e570243..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayMode.h +++ /dev/null @@ -1,26 +0,0 @@ -// SDLDisplayMode.h -// - -#import "SDLEnum.h" - -/** - * Identifies the various display types used by SDL. - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLDisplayMode SDL_SWIFT_ENUM; - -/** - * @abstract Display Mode : DAY - */ -extern SDLDisplayMode const SDLDisplayModeDay; - -/** - * @abstract Display Mode : NIGHT. - */ -extern SDLDisplayMode const SDLDisplayModeNight; - -/** - * @abstract Display Mode : AUTO. - */ -extern SDLDisplayMode const SDLDisplayModeAuto; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayMode.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayMode.m deleted file mode 100644 index fc5a5bb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayMode.m +++ /dev/null @@ -1,8 +0,0 @@ -// SDLDisplayMode.m -// - -#import "SDLDisplayMode.h" - -SDLDisplayMode const SDLDisplayModeDay = @"DAY"; -SDLDisplayMode const SDLDisplayModeNight = @"NIGHT"; -SDLDisplayMode const SDLDisplayModeAuto = @"AUTO"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayType.h deleted file mode 100644 index 14ee845..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayType.h +++ /dev/null @@ -1,69 +0,0 @@ -// SDLDisplayType.h -// - - -#import "SDLEnum.h" - -/** - Identifies the various display types used by SDL. Used in DisplayCapabilities. - - @warning This should not be used to identify features of a display, this is a deprecated parameter. - - @since SDL 1.0 - */ -typedef SDLEnum SDLDisplayType SDL_SWIFT_ENUM; - -/** - * This display type provides a 2-line x 20 character "dot matrix" display. - */ -extern SDLDisplayType const SDLDisplayTypeCID; - -/** - * Display type 2 - */ -extern SDLDisplayType const SDLDisplayTypeType2; - -/** - * Display type 5 - */ -extern SDLDisplayType const SDLDisplayTypeType5; - -/** - * This display type provides an 8 inch touchscreen display. - */ -extern SDLDisplayType const SDLDisplayTypeNGN; - -/** - * Display type Gen 28 DMA - */ -extern SDLDisplayType const SDLDisplayTypeGen28DMA; - -/** - * Display type Gen 26 DMA - */ -extern SDLDisplayType const SDLDisplayTypeGen26DMA; - -/** - * Display type MFD3 - */ -extern SDLDisplayType const SDLDisplayTypeMFD3; - -/** - * Display type MFD4 - */ -extern SDLDisplayType const SDLDisplayTypeMFD4; - -/** - * Display type MFD5 - */ -extern SDLDisplayType const SDLDisplayTypeMFD5; - -/** - * Display type Gen 3 8-inch - */ -extern SDLDisplayType const SDLDisplayTypeGen38Inch; - -/** - * Display type Generic - */ -extern SDLDisplayType const SDLDisplayTypeGeneric; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayType.m deleted file mode 100644 index be05735..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDisplayType.m +++ /dev/null @@ -1,17 +0,0 @@ -// SDLDisplayType.m -// - - -#import "SDLDisplayType.h" - -SDLDisplayType const SDLDisplayTypeCID = @"CID"; -SDLDisplayType const SDLDisplayTypeType2 = @"TYPE2"; -SDLDisplayType const SDLDisplayTypeType5 = @"TYPE5"; -SDLDisplayType const SDLDisplayTypeNGN = @"NGN"; -SDLDisplayType const SDLDisplayTypeGen28DMA = @"GEN2_8_DMA"; -SDLDisplayType const SDLDisplayTypeGen26DMA = @"GEN2_6_DMA"; -SDLDisplayType const SDLDisplayTypeMFD3 = @"MFD3"; -SDLDisplayType const SDLDisplayTypeMFD4 = @"MFD4"; -SDLDisplayType const SDLDisplayTypeMFD5 = @"MFD5"; -SDLDisplayType const SDLDisplayTypeGen38Inch = @"GEN3_8-INCH"; -SDLDisplayType const SDLDisplayTypeGeneric = @"SDL_GENERIC"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDistanceUnit.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDistanceUnit.h deleted file mode 100644 index 12092b9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDistanceUnit.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLDistanceUnit.h -// - -#import "SDLEnum.h" - -/** - * Wiper Status - */ -typedef SDLEnum SDLDistanceUnit SDL_SWIFT_ENUM; - -/** - * @abstract SDLDistanceUnit: *MILES* - */ -extern SDLDistanceUnit const SDLDistanceUnitMiles; - -/** - * @abstract SDLDistanceUnit: *KILOMETERS* - */ -extern SDLDistanceUnit const SDLDistanceUnitKilometers; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDistanceUnit.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDistanceUnit.m deleted file mode 100644 index 9b58810..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDistanceUnit.m +++ /dev/null @@ -1,7 +0,0 @@ -// SDLDistanceUnit.m -// - -#import "SDLDistanceUnit.h" - -SDLDistanceUnit const SDLDistanceUnitMiles = @"MILES"; -SDLDistanceUnit const SDLDistanceUnitKilometers = @"KILOMETERS"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDriverDistractionState.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDriverDistractionState.h deleted file mode 100644 index 88b26b3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDriverDistractionState.h +++ /dev/null @@ -1,23 +0,0 @@ -// SDLDriverDistractionState.h -// - - -#import "SDLEnum.h" - -/** - * Enumeration that describes possible states of driver distraction. Used in OnDriverDistraction. - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLDriverDistractionState SDL_SWIFT_ENUM; - -/** - * Driver distraction rules are in effect. - */ -extern SDLDriverDistractionState const SDLDriverDistractionStateOn; - -/** - * Driver distraction rules are NOT in effect. - */ -extern SDLDriverDistractionState const SDLDriverDistractionStateOff; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDriverDistractionState.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDriverDistractionState.m deleted file mode 100644 index 1729035..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDriverDistractionState.m +++ /dev/null @@ -1,8 +0,0 @@ -// SDLDriverDistractionState.m -// - - -#import "SDLDriverDistractionState.h" - -SDLDriverDistractionState const SDLDriverDistractionStateOn = @"DD_ON"; -SDLDriverDistractionState const SDLDriverDistractionStateOff = @"DD_OFF"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.h deleted file mode 100644 index 64d7d25..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// SDLMenuUpdateAlgorithm.h -// SmartDeviceLink -// -// Created by Justin Gluck on 5/14/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -@class SDLDynamicMenuUpdateRunScore; -@class SDLMenuCell; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDynamicMenuUpdateAlgorithm : NSObject - -/** - Compares the old and the new menus to find the best combination of add and delete commands - - @param oldMenuCells The old menu array - @param updatedMenuCells The new menu array - */ -+ (nullable SDLDynamicMenuUpdateRunScore *)compareOldMenuCells:(NSArray *)oldMenuCells updatedMenuCells:(NSArray *)updatedMenuCells; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.m deleted file mode 100644 index 51bfd14..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateAlgorithm.m +++ /dev/null @@ -1,104 +0,0 @@ -// -// SDLMenuUpdateAlgorithm.m -// SmartDeviceLink -// -// Created by Justin Gluck on 5/14/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLDynamicMenuUpdateAlgorithm.h" -#import "SDLDynamicMenuUpdateRunScore.h" -#import "SDLMenuCell.h" -#import "SDLLogMacros.h" -#import "SDLMenuManagerConstants.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDynamicMenuUpdateAlgorithm - -#pragma mark - Update Menu Cells -+ (nullable SDLDynamicMenuUpdateRunScore *)compareOldMenuCells:(NSArray *)oldMenuCells updatedMenuCells:(NSArray *)updatedMenuCells{ - if (oldMenuCells.count > 0 && updatedMenuCells.count == 0) { - return [[SDLDynamicMenuUpdateRunScore alloc] initWithOldStatus:[SDLDynamicMenuUpdateAlgorithm sdl_buildAllDeleteStatusesforMenu:oldMenuCells] updatedStatus:@[] score:0]; - }else if (oldMenuCells.count == 0 && updatedMenuCells.count > 0) { - return [[SDLDynamicMenuUpdateRunScore alloc] initWithOldStatus:@[] updatedStatus:[SDLDynamicMenuUpdateAlgorithm sdl_buildAllAddStatusesForMenu:updatedMenuCells] score:updatedMenuCells.count]; - } else if (oldMenuCells.count == 0 && updatedMenuCells.count == 0) { - return nil; - } - - return [SDLDynamicMenuUpdateAlgorithm sdl_startCompareAtRun:0 oldMenuCells:oldMenuCells updatedMenuCells:updatedMenuCells]; -} - -+ (nullable SDLDynamicMenuUpdateRunScore *)sdl_startCompareAtRun:(NSUInteger)startRun oldMenuCells:(NSArray *)oldMenuCells updatedMenuCells:(NSArray *)updatedMenuCells { - SDLDynamicMenuUpdateRunScore *bestScore = nil; - - for (NSUInteger run = startRun; run < oldMenuCells.count; run++) { - // Set the menu status as a 1-1 array, start off will oldMenus = all Deletes, newMenu = all Adds - NSMutableArray *oldMenuStatus = [SDLDynamicMenuUpdateAlgorithm sdl_buildAllDeleteStatusesforMenu:oldMenuCells]; - NSMutableArray *newMenuStatus = [SDLDynamicMenuUpdateAlgorithm sdl_buildAllAddStatusesForMenu:updatedMenuCells]; - - NSUInteger startIndex = 0; - for (NSUInteger oldCellIndex = run; oldCellIndex < oldMenuCells.count; oldCellIndex++) { //For each old item - // Create inner loop to compare old cells to new cells to find a match, if a match if found we mark the index at match for both the old and the new status to keep since we do not want to send RPCs for those cases - for (NSUInteger newCellIndex = startIndex; newCellIndex < updatedMenuCells.count; newCellIndex++) { - if ([oldMenuCells[oldCellIndex] isEqual:updatedMenuCells[newCellIndex]]) { - oldMenuStatus[oldCellIndex] = @(MenuCellStateKeep); - newMenuStatus[newCellIndex] = @(MenuCellStateKeep); - startIndex = newCellIndex + 1; - break; - } - } - } - - // Add RPC are the biggest operation so we need to find the run with the least amount of Adds. We will reset the run we use each time a runscore is less than the current score. - NSUInteger numberOfAdds = 0; - for (NSUInteger status = 0; status < newMenuStatus.count; status++) { - // 0 = Delete 1 = Add 2 = Keep - if (newMenuStatus[status].integerValue == MenuCellStateAdd) { - numberOfAdds++; - } - } - - // As soon as we a run that requires 0 Adds we will use it since we cant do better then 0 - if (numberOfAdds == 0) { - bestScore = [[SDLDynamicMenuUpdateRunScore alloc] initWithOldStatus:oldMenuStatus updatedStatus:newMenuStatus score:numberOfAdds]; - return bestScore; - } - // if we havent create the bestScore object or if the current score beats the old score then we will create a new bestScore - if (bestScore == nil || numberOfAdds < bestScore.score) { - bestScore = [[SDLDynamicMenuUpdateRunScore alloc] initWithOldStatus:oldMenuStatus updatedStatus:newMenuStatus score:numberOfAdds]; - } - } - - return bestScore; -} - -/** - Builds a 1-1 array of Deletes for every element in the array - - @param oldMenu The old menu array - */ -+ (NSMutableArray *)sdl_buildAllDeleteStatusesforMenu:(NSArray *)oldMenu { - NSMutableArray *oldMenuStatus = [[NSMutableArray alloc] init]; - for (NSUInteger index = 0; index < oldMenu.count; index++) { - [oldMenuStatus addObject:@(MenuCellStateDelete)]; - } - return [oldMenuStatus mutableCopy]; -} - -/** - Builds a 1-1 array of Adds for every element in the array - - @param newMenu The new menu array - */ -+ (NSMutableArray *)sdl_buildAllAddStatusesForMenu:(NSArray *)newMenu { - NSMutableArray *newMenuStatus = [[NSMutableArray alloc] init]; - for (NSUInteger index = 0; index < newMenu.count; index++) { - [newMenuStatus addObject:@(MenuCellStateAdd)]; - } - return [newMenuStatus mutableCopy]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.h deleted file mode 100644 index 12f2519..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// SDLMenuRunScore.h -// SmartDeviceLink -// -// Created by Justin Gluck on 5/13/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLDynamicMenuUpdateRunScore : NSObject - -/** - Will contain all the Deletes and Keeps - */ -@property (copy, nonatomic, readonly) NSArray *oldStatus; - -/** - Will contain all the Adds and Keeps - */ -@property (copy, nonatomic, readonly) NSArray *updatedStatus; - -/** - Will contain the score, number of total Adds that will need to be created - */ -@property (assign, nonatomic, readonly) NSUInteger score; - -- (instancetype)initWithOldStatus:(NSArray *)oldStatus updatedStatus:(NSArray *)updatedStatus score:(NSUInteger)score; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.m deleted file mode 100644 index 5066904..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLDynamicMenuUpdateRunScore.m +++ /dev/null @@ -1,28 +0,0 @@ -// -// SDLMenuRunScore.m -// SmartDeviceLink -// -// Created by Justin Gluck on 5/13/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLDynamicMenuUpdateRunScore.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLDynamicMenuUpdateRunScore - -- (instancetype)initWithOldStatus:(NSArray *)oldStatus updatedStatus:(NSArray *)updatedStatus score:(NSUInteger)score { - self = [super init]; - if (!self) { return nil; } - - _oldStatus = oldStatus; - _updatedStatus = updatedStatus; - _score = score; - - return self; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallConfirmationStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallConfirmationStatus.h deleted file mode 100644 index 763cf0e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallConfirmationStatus.h +++ /dev/null @@ -1,47 +0,0 @@ -// SDLECallConfirmationStatus.h -// - - -#import "SDLEnum.h" - -/** - Reflects the status of the eCall Notification. Used in ECallInfo - - Since SmartDeviceLink 2.0 - */ -typedef SDLEnum SDLECallConfirmationStatus SDL_SWIFT_ENUM; - -/** - No E-Call signal triggered. - */ -extern SDLECallConfirmationStatus const SDLECallConfirmationStatusNormal; - -/** - An E-Call is being in progress. - */ -extern SDLECallConfirmationStatus const SDLECallConfirmationStatusInProgress; - -/** - An E-Call was cancelled by the user. - */ -extern SDLECallConfirmationStatus const SDLECallConfirmationStatusCancelled; - -/** - The E-Call sequence is completed. - */ -extern SDLECallConfirmationStatus const SDLECallConfirmationStatusCompleted; - -/** - An E-Call could not be connected. - */ -extern SDLECallConfirmationStatus const SDLECallConfirmationStatusUnsuccessful; - -/** - E-Call is not configured on this vehicle. - */ -extern SDLECallConfirmationStatus const SDLECallConfirmationStatusConfiguredOff; - -/** - E-Call is considered to be complete without Emergency Operator contact. - */ -extern SDLECallConfirmationStatus const SDLECallConfirmationStatusCompleteDTMFTimeout; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallConfirmationStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallConfirmationStatus.m deleted file mode 100644 index a7ce2c8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallConfirmationStatus.m +++ /dev/null @@ -1,13 +0,0 @@ -// SDLECallConfirmationStatus.m -// - - -#import "SDLECallConfirmationStatus.h" - -SDLECallConfirmationStatus const SDLECallConfirmationStatusNormal = @"NORMAL"; -SDLECallConfirmationStatus const SDLECallConfirmationStatusInProgress = @"CALL_IN_PROGRESS"; -SDLECallConfirmationStatus const SDLECallConfirmationStatusCancelled = @"CALL_CANCELLED"; -SDLECallConfirmationStatus const SDLECallConfirmationStatusCompleted = @"CALL_COMPLETED"; -SDLECallConfirmationStatus const SDLECallConfirmationStatusUnsuccessful = @"CALL_UNSUCCESSFUL"; -SDLECallConfirmationStatus const SDLECallConfirmationStatusConfiguredOff = @"ECALL_CONFIGURED_OFF"; -SDLECallConfirmationStatus const SDLECallConfirmationStatusCompleteDTMFTimeout = @"CALL_COMPLETE_DTMF_TIMEOUT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallInfo.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallInfo.h deleted file mode 100644 index 4d7ccc4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallInfo.h +++ /dev/null @@ -1,39 +0,0 @@ -// SDLECallInfo.h -// - -#import "SDLRPCMessage.h" - -#import "SDLECallConfirmationStatus.h" -#import "SDLVehicleDataNotificationStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - A vehicle data struct for emergency call information - */ -@interface SDLECallInfo : SDLRPCStruct - -/** - References signal "eCallNotification_4A". See VehicleDataNotificationStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataNotificationStatus eCallNotificationStatus; - -/** - References signal "eCallNotification". See VehicleDataNotificationStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataNotificationStatus auxECallNotificationStatus; - -/** - References signal "eCallConfirmation". See ECallConfirmationStatus. - - Required - */ -@property (strong, nonatomic) SDLECallConfirmationStatus eCallConfirmationStatus; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallInfo.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallInfo.m deleted file mode 100644 index 61820ed..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLECallInfo.m +++ /dev/null @@ -1,42 +0,0 @@ -// SDLECallInfo.m -// - -#import "SDLECallInfo.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLECallInfo - -- (void)setECallNotificationStatus:(SDLVehicleDataNotificationStatus)eCallNotificationStatus { - [self.store sdl_setObject:eCallNotificationStatus forName:SDLRPCParameterNameECallNotificationStatus]; -} - -- (SDLVehicleDataNotificationStatus)eCallNotificationStatus { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameECallNotificationStatus error:&error]; -} - -- (void)setAuxECallNotificationStatus:(SDLVehicleDataNotificationStatus)auxECallNotificationStatus { - [self.store sdl_setObject:auxECallNotificationStatus forName:SDLRPCParameterNameAuxECallNotificationStatus]; -} - -- (SDLVehicleDataNotificationStatus)auxECallNotificationStatus { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameAuxECallNotificationStatus error:&error]; -} - -- (void)setECallConfirmationStatus:(SDLECallConfirmationStatus)eCallConfirmationStatus { - [self.store sdl_setObject:eCallConfirmationStatus forName:SDLRPCParameterNameECallConfirmationStatus]; -} - -- (SDLECallConfirmationStatus)eCallConfirmationStatus { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameECallConfirmationStatus error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLElectronicParkBrakeStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLElectronicParkBrakeStatus.h deleted file mode 100644 index c0faaad..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLElectronicParkBrakeStatus.h +++ /dev/null @@ -1,35 +0,0 @@ -// SDLElectronicParkBrakeStatus.h -// - - -#import "SDLEnum.h" - -/** - Reflects the status of the Electronic Parking Brake. A Vehicle Data Type. - */ -typedef SDLEnum SDLElectronicParkBrakeStatus SDL_SWIFT_ENUM; - -/** - Parking brake actuators have been fully applied. - */ -extern SDLElectronicParkBrakeStatus const SDLElectronicParkBrakeStatusClosed; - -/** - Parking brake actuators are transitioning to either Apply/Closed or Release/Open state. - */ -extern SDLElectronicParkBrakeStatus const SDLElectronicParkBrakeStatusTransition; - -/** - Parking brake actuators are released. - */ -extern SDLElectronicParkBrakeStatus const SDLElectronicParkBrakeStatusOpen; - -/** - When driver pulls the Electronic Parking Brake switch while driving "at speed". - */ -extern SDLElectronicParkBrakeStatus const SDLElectronicParkBrakeStatusDriveActive; - -/** - When system has a fault or is under maintenance. - */ -extern SDLElectronicParkBrakeStatus const SDLElectronicParkBrakeStatusFault; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLElectronicParkBrakeStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLElectronicParkBrakeStatus.m deleted file mode 100644 index 23b55ca..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLElectronicParkBrakeStatus.m +++ /dev/null @@ -1,18 +0,0 @@ -// -// SDLElectronicParkBrakeStatus.m -// SmartDeviceLink -// -// Created by Joel Fischer on 7/16/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLElectronicParkBrakeStatus.h" - -typedef SDLEnum SDLElectronicParkBrakeStatus SDL_SWIFT_ENUM; - - -SDLElectronicParkBrakeStatus const SDLElectronicParkBrakeStatusClosed = @"CLOSED"; -SDLElectronicParkBrakeStatus const SDLElectronicParkBrakeStatusTransition = @"TRANSITION"; -SDLElectronicParkBrakeStatus const SDLElectronicParkBrakeStatusOpen = @"OPEN"; -SDLElectronicParkBrakeStatus const SDLElectronicParkBrakeStatusDriveActive = @"DRIVE_ACTIVE"; -SDLElectronicParkBrakeStatus const SDLElectronicParkBrakeStatusFault = @"FAULT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEvent.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEvent.h deleted file mode 100644 index b4d8f4d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEvent.h +++ /dev/null @@ -1,59 +0,0 @@ -// SDLEmergencyEvent.h -// - -#import "SDLRPCMessage.h" - -#import "SDLEmergencyEventType.h" -#import "SDLFuelCutoffStatus.h" -#import "SDLVehicleDataEventStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - A vehicle data struct for an emergency event - */ -@interface SDLEmergencyEvent : SDLRPCStruct - -/** - References signal "VedsEvntType_D_Ltchd". See EmergencyEventType. - - Required - */ -@property (strong, nonatomic) SDLEmergencyEventType emergencyEventType; - -/** - References signal "RCM_FuelCutoff". See FuelCutoffStatus. - - Required - */ -@property (strong, nonatomic) SDLFuelCutoffStatus fuelCutoffStatus; - -/** - References signal "VedsEvntRoll_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus rolloverEvent; - -/** - References signal "VedsMaxDeltaV_D_Ltchd". Change in velocity in KPH. - - Additional reserved values: - 0x00 No event, - 0xFE Not supported, - 0xFF Fault - - Required - */ -@property (strong, nonatomic) NSNumber *maximumChangeVelocity; - -/** - References signal "VedsMultiEvnt_D_Ltchd". See VehicleDataEventStatus. - - Required - */ -@property (strong, nonatomic) SDLVehicleDataEventStatus multipleEvents; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEvent.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEvent.m deleted file mode 100644 index 0052ac0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEvent.m +++ /dev/null @@ -1,60 +0,0 @@ -// SDLEmergencyEvent.m -// - -#import "SDLEmergencyEvent.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLEmergencyEvent - -- (void)setEmergencyEventType:(SDLEmergencyEventType)emergencyEventType { - [self.store sdl_setObject:emergencyEventType forName:SDLRPCParameterNameEmergencyEventType]; -} - -- (SDLEmergencyEventType)emergencyEventType { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameEmergencyEventType error:&error]; -} - -- (void)setFuelCutoffStatus:(SDLFuelCutoffStatus)fuelCutoffStatus { - [self.store sdl_setObject:fuelCutoffStatus forName:SDLRPCParameterNameFuelCutoffStatus]; -} - -- (SDLFuelCutoffStatus)fuelCutoffStatus { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameFuelCutoffStatus error:&error]; -} - -- (void)setRolloverEvent:(SDLVehicleDataEventStatus)rolloverEvent { - [self.store sdl_setObject:rolloverEvent forName:SDLRPCParameterNameRolloverEvent]; -} - -- (SDLVehicleDataEventStatus)rolloverEvent { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameRolloverEvent error:&error]; -} - -- (void)setMaximumChangeVelocity:(NSNumber *)maximumChangeVelocity { - [self.store sdl_setObject:maximumChangeVelocity forName:SDLRPCParameterNameMaximumChangeVelocity]; -} - -- (NSNumber *)maximumChangeVelocity { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMaximumChangeVelocity ofClass:NSNumber.class error:&error]; -} - -- (void)setMultipleEvents:(SDLVehicleDataEventStatus)multipleEvents { - [self.store sdl_setObject:multipleEvents forName:SDLRPCParameterNameMultipleEvents]; -} - -- (SDLVehicleDataEventStatus)multipleEvents { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameMultipleEvents error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEventType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEventType.h deleted file mode 100644 index 4b93558..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEventType.h +++ /dev/null @@ -1,47 +0,0 @@ -// SDLEmergencyEventType.h -// - - -#import "SDLEnum.h" - -/** - Reflects the emergency event status of the vehicle. Used in EmergencyEvent - - Since SmartDeviceLink 2.0 - */ -typedef SDLEnum SDLEmergencyEventType SDL_SWIFT_ENUM; - -/** - No emergency event has happened. - */ -extern SDLEmergencyEventType const SDLEmergencyEventTypeNoEvent; - -/** - Frontal collision has happened. - */ -extern SDLEmergencyEventType const SDLEmergencyEventTypeFrontal; - -/** - Side collision has happened. - */ -extern SDLEmergencyEventType const SDLEmergencyEventTypeSide; - -/** - Rear collision has happened. - */ -extern SDLEmergencyEventType const SDLEmergencyEventTypeRear; - -/** - A rollover event has happened. - */ -extern SDLEmergencyEventType const SDLEmergencyEventTypeRollover; - -/** - The signal is not supported - */ -extern SDLEmergencyEventType const SDLEmergencyEventTypeNotSupported; - -/** - Emergency status cannot be determined - */ -extern SDLEmergencyEventType const SDLEmergencyEventTypeFault; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEventType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEventType.m deleted file mode 100644 index 47d0fed..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEmergencyEventType.m +++ /dev/null @@ -1,13 +0,0 @@ -// SDLEmergencyEventType.m -// - - -#import "SDLEmergencyEventType.h" - -SDLEmergencyEventType const SDLEmergencyEventTypeNoEvent = @"NO_EVENT"; -SDLEmergencyEventType const SDLEmergencyEventTypeFrontal = @"FRONTAL"; -SDLEmergencyEventType const SDLEmergencyEventTypeSide = @"SIDE"; -SDLEmergencyEventType const SDLEmergencyEventTypeRear = @"REAR"; -SDLEmergencyEventType const SDLEmergencyEventTypeRollover = @"ROLLOVER"; -SDLEmergencyEventType const SDLEmergencyEventTypeNotSupported = @"NOT_SUPPORTED"; -SDLEmergencyEventType const SDLEmergencyEventTypeFault = @"FAULT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.h deleted file mode 100644 index 8f81d00..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.h +++ /dev/null @@ -1,29 +0,0 @@ -// SDLEncodedSyncPData.h -// - - -#import "SDLRPCRequest.h" - -/** - * Allows encoded data in the form of SyncP packets to be sent to the SYNC module. Legacy / v1 Protocol implementation; use SyncPData instead. - * - * *** DEPRECATED *** - */ - -NS_ASSUME_NONNULL_BEGIN - -__deprecated -@interface SDLEncodedSyncPData : SDLRPCRequest - -/** - * Contains base64 encoded string of SyncP packets. - * - * Required, Array length 1 - 100, String length 1 - 1,000,000 - * - * @see SDLTTSChunk - */ -@property (strong, nonatomic) NSArray *data; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.m deleted file mode 100644 index 6db36b6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPData.m +++ /dev/null @@ -1,38 +0,0 @@ -// SDLEncodedSyncPData.m -// - - -#import "SDLEncodedSyncPData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" -@implementation SDLEncodedSyncPData -#pragma clang diagnostic pop - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameEncodedSyncPData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setData:(NSArray *)data { - [self.parameters sdl_setObject:data forName:SDLRPCParameterNameData]; -} - -- (NSArray *)data { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameData ofClass:NSString.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.h deleted file mode 100644 index 5313bbb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLEncodedSyncPDataResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - The response to SDLEncodedSyncPData - - **DEPRECATED** - */ -__deprecated -@interface SDLEncodedSyncPDataResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.m deleted file mode 100644 index 95c8cc6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncodedSyncPDataResponse.m +++ /dev/null @@ -1,29 +0,0 @@ -// SDLEncodedSyncPDataResponse.m -// - - -#import "SDLEncodedSyncPDataResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" -@implementation SDLEncodedSyncPDataResponse -#pragma clang diagnostic pop - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameEncodedSyncPData]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.h deleted file mode 100644 index 5918844..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// SDLEncryptionConfiguration.h -// SmartDeviceLink -// -// Created by standa1 on 6/17/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLServiceEncryptionDelegate.h" - -@protocol SDLSecurityType; - -NS_ASSUME_NONNULL_BEGIN - -/// The encryption configuration data -@interface SDLEncryptionConfiguration : NSObject - -/** - * A set of security managers used to encrypt traffic data. Each OEM has their own proprietary security manager. - */ -@property (copy, nonatomic, nullable) NSArray> *securityManagers; - -/** - * A delegate callback that will tell you when an acknowledgement has occurred for starting as secure service. - */ -@property (weak, nonatomic, nullable) id delegate; - -/** - * Creates a default encryption configuration. - * - * @return A default configuration that may be customized. - */ -+ (instancetype)defaultConfiguration; - -/** - Creates a secure configuration for each of the security managers provided. - - @param securityManagers The security managers to be used. - @param delegate The delegate callback. - @return The configuration - */ -- (instancetype)initWithSecurityManagers:(nullable NSArray> *)securityManagers delegate:(nullable id)delegate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.m deleted file mode 100644 index dbb26b6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionConfiguration.m +++ /dev/null @@ -1,45 +0,0 @@ -// -// SDLEncryptionConfiguration.m -// SmartDeviceLink -// -// Created by standa1 on 6/17/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLEncryptionConfiguration.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLEncryptionConfiguration - -+ (instancetype)defaultConfiguration { - return [[self.class alloc] initWithSecurityManagers:nil delegate:nil]; -} - -- (instancetype)initWithSecurityManagers:(nullable NSArray> *)securityManagers delegate:(nullable id)delegate { - self = [super init]; - if (!self) { - return nil; - } - - _securityManagers = securityManagers; - _delegate = delegate; - - return self; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(nullable NSZone *)zone { - SDLEncryptionConfiguration *newConfig = [[self.class allocWithZone:zone] init]; - - newConfig.securityManagers = self.securityManagers; - newConfig.delegate = self.delegate; - - return newConfig; -} - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.h deleted file mode 100644 index 33641fc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// SDLEncryptionLifecycleManager.h -// SmartDeviceLink -// -// Created by standa1 on 6/27/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import -#import "SDLConnectionManagerType.h" -#import "SDLProtocolDelegate.h" - -@class SDLConfiguration; -@class SDLProtocol; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLEncryptionLifecycleManager : NSObject - -/** - * Whether or not the encryption session is connected. - */ -@property (assign, nonatomic, readonly, getter=isEncryptionReady) BOOL encryptionReady; - - -- (instancetype)init NS_UNAVAILABLE; - -/** - Create a new encryption lifecycle manager for apps that need encryption. - - @param connectionManager The pass-through for RPCs - @param configuration This session's configuration - @return A new encryption lifecycle manager - */ -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration; - -/** - * Start the manager. This is used internally to get notified of the ACK message. - */ -- (void)startWithProtocol:(SDLProtocol *)protocol; - -/** - * Stop the manager. This method is used internally. - */ -- (void)stop; - -/** - * Check whether or not an RPC needs encryption. - */ -- (BOOL)rpcRequiresEncryption:(__kindof SDLRPCMessage *)rpc; - -/** - * Attempt to manually start a secure service. - */ -- (void)startEncryptionService; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.m deleted file mode 100644 index b6dbc73..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionLifecycleManager.m +++ /dev/null @@ -1,327 +0,0 @@ -// -// SDLEncryptionLifecycleManager.m -// SmartDeviceLink -// -// Created by standa1 on 6/27/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLAsynchronousRPCRequestOperation.h" -#import "SDLConfiguration.h" -#import "SDLEncryptionLifecycleManager.h" -#import "SDLEncryptionManagerConstants.h" -#import "SDLEncryptionConfiguration.h" -#import "SDLError.h" -#import "SDLLifecycleConfiguration.h" -#import "SDLLogMacros.h" -#import "SDLOnHMIStatus.h" -#import "SDLOnPermissionsChange.h" -#import "SDLPermissionItem.h" -#import "SDLPermissionConstants.h" -#import "SDLProtocol.h" -#import "SDLProtocolMessage.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCResponseNotification.h" -#import "SDLServiceEncryptionDelegate.h" -#import "SDLStateMachine.h" -#import "SDLVehicleType.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef NSString SDLVehicleMake; - -@interface SDLEncryptionLifecycleManager() - -@property (weak, nonatomic) id connectionManager; -@property (weak, nonatomic) SDLProtocol *protocol; - -@property (strong, nonatomic, readwrite) SDLStateMachine *encryptionStateMachine; -@property (copy, nonatomic, nullable) SDLHMILevel currentHMILevel; -@property (strong, nonatomic, nullable) NSMutableDictionary *permissions; -@property (assign, nonatomic) BOOL requiresEncryption; -@property (strong, nonatomic) SDLConfiguration *configuration; - -@property (nonatomic, strong) NSMutableDictionary *securityManagers; - -@end - -@implementation SDLEncryptionLifecycleManager - -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration { - self = [super init]; - if (!self) { - return nil; - } - - SDLLogV(@"Creating EncryptionLifecycleManager"); - _connectionManager = connectionManager; - _currentHMILevel = nil; - _requiresEncryption = NO; - _securityManagers = [NSMutableDictionary dictionary]; - _encryptionStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLEncryptionLifecycleManagerStateStopped states:[self.class sdl_encryptionStateTransitionDictionary]]; - _permissions = [NSMutableDictionary dictionary]; - _configuration = configuration; - - for (Class securityManagerClass in _configuration.encryptionConfig.securityManagers) { - if (![securityManagerClass conformsToProtocol:@protocol(SDLSecurityType)]) { - NSString *reason = [NSString stringWithFormat:@"Invalid security manager: Class %@ does not conform to SDLSecurityType protocol", NSStringFromClass(securityManagerClass)]; - @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:reason userInfo:nil]; - } - - NSSet *vehicleMakes = [securityManagerClass availableMakes]; - if (vehicleMakes == nil || vehicleMakes.count == 0) { - NSString *reason = [NSString stringWithFormat:@"Invalid security manager: Failed to retrieve makes for class %@", NSStringFromClass(securityManagerClass)]; - @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:reason userInfo:nil]; - } - - for (NSString *vehicleMake in vehicleMakes) { - self.securityManagers[vehicleMake] = securityManagerClass; - } - } - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_registerAppInterfaceResponseReceived:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_permissionsDidChange:) name:SDLDidChangePermissionsNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiLevelDidChange:) name:SDLDidChangeHMIStatusNotification object:nil]; - - return self; -} - -#pragma mark - Lifecycle - -- (void)startWithProtocol:(SDLProtocol *)protocol { - SDLLogD(@"Starting encryption manager"); - _protocol = protocol; - - @synchronized(self.protocol.protocolDelegateTable) { - if (![self.protocol.protocolDelegateTable containsObject:self]) { - [self.protocol.protocolDelegateTable addObject:self]; - } - } -} - -- (void)stop { - SDLLogD(@"Stopping encryption manager"); - - [_permissions removeAllObjects]; - _protocol = nil; - _currentHMILevel = nil; - _requiresEncryption = NO; - - [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStopped]; -} - -- (BOOL)isEncryptionReady { - return [self.encryptionStateMachine isCurrentState:SDLEncryptionLifecycleManagerStateReady]; -} - -- (void)startEncryptionService { - [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStarting]; -} - -- (void)sdl_startEncryptionService { - SDLLogV(@"Attempting to start Encryption Service"); - if (!self.protocol || !self.currentHMILevel) { - SDLLogV(@"Encryption manager is not yet started"); - [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:[NSError sdl_encryption_lifecycle_notReadyError]]; - return; - } - - if (![self.currentHMILevel isEqualToEnum:SDLHMILevelNone]) { - if ([self sdl_appRequiresEncryption]) { - [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStarting]; - } else { - SDLLogE(@"Encryption Manager is not ready to encrypt."); - [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:[NSError sdl_encryption_lifecycle_notReadyError]]; - } - } -} - -- (void)sdl_sendEncryptionStartService { - SDLLogD(@"Sending secure rpc start service"); - [self.protocol startSecureServiceWithType:SDLServiceTypeRPC payload:nil tlsInitializationHandler:^(BOOL success, NSError *error) { - if (error) { - SDLLogE(@"TLS setup error: %@", error); - [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStopped]; - [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:error]; - } - }]; -} - -#pragma mark - State Machine - -+ (NSDictionary *)sdl_encryptionStateTransitionDictionary { - return @{ - SDLEncryptionLifecycleManagerStateStopped : @[SDLEncryptionLifecycleManagerStateStarting], - SDLEncryptionLifecycleManagerStateStarting : @[SDLEncryptionLifecycleManagerStateStopped, SDLEncryptionLifecycleManagerStateReady], - SDLEncryptionLifecycleManagerStateReady : @[SDLEncryptionLifecycleManagerStateStopped] - }; -} - -- (void)didEnterStateEncryptionStarting { - SDLLogD(@"Encryption manager is starting"); - [self sdl_sendEncryptionStartService]; -} - -- (void)didEnterStateEncryptionReady { - SDLLogD(@"Encryption manager is ready"); -} - -- (void)didEnterStateEncryptionStopped { - SDLLogD(@"Encryption manager stopped"); -} - -#pragma mark - SDLProtocolListener -#pragma mark Encryption Start Service ACK - -- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { - switch (startServiceACK.header.serviceType) { - case SDLServiceTypeRPC: { - [self sdl_handleEncryptionStartServiceACK:startServiceACK]; - } break; - default: break; - } -} - -- (void)sdl_handleEncryptionStartServiceACK:(SDLProtocolMessage *)encryptionStartServiceAck { - if (encryptionStartServiceAck.header.encrypted) { - SDLLogD(@"Encryption service started"); - [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateReady]; - [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:YES error:nil]; - } else { - SDLLogD(@"Encryption service ACK received encryption = OFF"); - [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStopped]; - [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:[NSError sdl_encryption_lifecycle_encryption_off]]; - } -} - -#pragma mark Encryption Start Service NAK - -- (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceNAK { - switch (startServiceNAK.header.serviceType) { - case SDLServiceTypeRPC: { - [self sdl_handleEncryptionStartServiceNAK:startServiceNAK]; - } break; - default: break; - } -} - -- (void)sdl_handleEncryptionStartServiceNAK:(SDLProtocolMessage *)audioStartServiceNak { - SDLLogW(@"Encryption service failed to start due to NAK"); - [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStopped]; - [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:[NSError sdl_encryption_lifecycle_nak]]; -} - -#pragma mark Encryption End Service - -- (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { - switch (endServiceACK.header.serviceType) { - case SDLServiceTypeRPC: { - SDLLogW(@"Encryption RPC service ended with end service ACK"); - [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStopped]; - [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:[NSError sdl_encryption_lifecycle_notReadyError]]; - } break; - default: break; - } -} - -- (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { - switch (endServiceNAK.header.serviceType) { - case SDLServiceTypeRPC: { - SDLLogW(@"Encryption RPC service ended with end service NAK"); - [self.encryptionStateMachine transitionToState:SDLEncryptionLifecycleManagerStateStopped]; - [self.configuration.encryptionConfig.delegate serviceEncryptionUpdatedOnService:SDLServiceTypeRPC encrypted:NO error:[NSError sdl_encryption_lifecycle_notReadyError]]; - } break; - default: break; - } -} - -#pragma mark - Notifications - -- (void)sdl_registerAppInterfaceResponseReceived:(SDLRPCResponseNotification *)notification { - if (![notification isResponseMemberOfClass:[SDLRegisterAppInterfaceResponse class]]) { return; } - - SDLRegisterAppInterfaceResponse *registerResponse = notification.response; - self.protocol.securityManager = [self sdl_securityManagerForMake:registerResponse.vehicleType.make]; - if (self.protocol.securityManager && [self.protocol.securityManager respondsToSelector:@selector(setAppId:)]) { - self.protocol.securityManager.appId = self.configuration.lifecycleConfig.fullAppId ? self.configuration.lifecycleConfig.fullAppId : self.configuration.lifecycleConfig.appId; - } -} - -- (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { - if (![notification isNotificationMemberOfClass:[SDLOnHMIStatus class]]) { return; } - - SDLOnHMIStatus *hmiStatus = notification.notification; - self.currentHMILevel = hmiStatus.hmiLevel; - - // if startWithProtocol has not been called yet, abort here - if (!self.protocol) { return; } - - if ([self.encryptionStateMachine isCurrentState:SDLEncryptionLifecycleManagerStateStopped]) { - [self sdl_startEncryptionService]; - } -} - -- (void)sdl_permissionsDidChange:(SDLRPCNotificationNotification *)notification { - if (![notification isNotificationMemberOfClass:[SDLOnPermissionsChange class]]) { - return; - } - - SDLOnPermissionsChange *onPermissionChange = notification.notification; - NSArray *permissionItems = onPermissionChange.permissionItem; - [self.permissions removeAllObjects]; - - for (SDLPermissionItem *item in permissionItems) { - self.permissions[item.rpcName] = item; - } - - self.requiresEncryption = (onPermissionChange.requireEncryption != nil) ? onPermissionChange.requireEncryption.boolValue : [self sdl_containsAtLeastOneRPCThatRequiresEncryption]; - - // if startWithProtocol has not been called yet, abort here - if (!self.protocol) { return; } - - if ([self.encryptionStateMachine isCurrentState:SDLEncryptionLifecycleManagerStateStopped]) { - [self sdl_startEncryptionService]; - } -} - - -#pragma mark - Utilities - -- (nullable id)sdl_securityManagerForMake:(NSString *)make { - if ((make != nil) && (self.securityManagers[make] != nil)) { - Class securityManagerClass = self.securityManagers[make]; - return [[securityManagerClass alloc] init]; - } - - return nil; -} - -#pragma mark Encryption Status - -- (BOOL)sdl_appRequiresEncryption { - if (self.requiresEncryption && [self sdl_containsAtLeastOneRPCThatRequiresEncryption]) { - return YES; - } - return NO; -} - -- (BOOL)rpcRequiresEncryption:(__kindof SDLRPCMessage *)rpc { - if (self.permissions[rpc.name].requireEncryption != nil) { - return self.permissions[rpc.name].requireEncryption.boolValue; - } - return NO; -} - -- (BOOL)sdl_containsAtLeastOneRPCThatRequiresEncryption { - for (SDLPermissionItem *item in self.permissions.allValues) { - if (item.requireEncryption) { - return YES; - } - } - return NO; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.h deleted file mode 100644 index 43e00c3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// SDLEncryptionManagerConstants.h -// SmartDeviceLink -// -// Created by standa1 on 6/28/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -typedef NSString SDLEncryptionLifecycleManagerState; -extern SDLEncryptionLifecycleManagerState *const SDLEncryptionLifecycleManagerStateStopped; -extern SDLEncryptionLifecycleManagerState *const SDLEncryptionLifecycleManagerStateStarting; -extern SDLEncryptionLifecycleManagerState *const SDLEncryptionLifecycleManagerStateReady; - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.m deleted file mode 100644 index 80181d7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEncryptionManagerConstants.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// SDLEncryptionManagerConstants.m -// SmartDeviceLink -// -// Created by standa1 on 6/28/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLEncryptionManagerConstants.h" - -SDLEncryptionLifecycleManagerState *const SDLEncryptionLifecycleManagerStateStopped = @"EncryptionStopped"; -SDLEncryptionLifecycleManagerState *const SDLEncryptionLifecycleManagerStateStarting = @"EncryptionStarting"; -SDLEncryptionLifecycleManagerState *const SDLEncryptionLifecycleManagerStateReady = @"EncryptionReady"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThru.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThru.h deleted file mode 100644 index f3c87e0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThru.h +++ /dev/null @@ -1,24 +0,0 @@ -// SDLEndAudioPassThru.h -// - - -#import "SDLRPCRequest.h" - -/** - * When this request is invoked, the audio capture stops - *

      - * Function Group: AudioPassThru - *

      - * HMILevel needs to be FULL, LIMITED or BACKGROUND - *

      - * Since SmartDeviceLink 2.0
      - * see SDLPerformAudioPassThru - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLEndAudioPassThru : SDLRPCRequest - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThru.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThru.m deleted file mode 100644 index 3bc00b4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThru.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLEndAudioPassThru.m -// - - -#import "SDLEndAudioPassThru.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLEndAudioPassThru - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameEndAudioPassThru]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThruResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThruResponse.h deleted file mode 100644 index 9962750..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThruResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLEndAudioPassThruResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to SDLEndAudioPassThru - - Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLEndAudioPassThruResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThruResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThruResponse.m deleted file mode 100644 index e6a99a1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEndAudioPassThruResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLEndAudioPassThruResponse.m -// - - -#import "SDLEndAudioPassThruResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLEndAudioPassThruResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameEndAudioPassThru]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEnum.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEnum.h deleted file mode 100644 index c62a733..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEnum.h +++ /dev/null @@ -1,26 +0,0 @@ -// SDLEnum.h -// - - -#import -#import "SDLMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -/// NSString SDLEnum typedef -typedef NSString* SDLEnum SDL_SWIFT_ENUM; - -/// Extensions to NSString specifically for SDL string enums -@interface NSString (SDLEnum) - -/** - * Returns whether or not two enums are equal. - * - * @param enumObj A SDLEnum object - * @return YES if the two enums are equal. NO if not. - */ -- (BOOL)isEqualToEnum:(SDLEnum)enumObj; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEnum.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEnum.m deleted file mode 100644 index dae9c8f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEnum.m +++ /dev/null @@ -1,21 +0,0 @@ -// -// SDLEnum.m -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 3/13/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation NSString (SDLEnum) - -- (BOOL)isEqualToEnum:(SDLEnum)enumObj { - return [self isEqualToString:enumObj]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.h deleted file mode 100644 index c42db47..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.h +++ /dev/null @@ -1,45 +0,0 @@ -// SDLEqualizerSettings.h -// - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Defines the each Equalizer channel settings. - */ - -@interface SDLEqualizerSettings : SDLRPCStruct - -/// Convenience init -/// -/// @param channelId Read-only channel / frequency name -/// @param channelSetting Reflects the setting, from 0%-100%. -- (instancetype)initWithChannelId:(UInt8)channelId channelSetting:(UInt8)channelSetting; - -/** - * @abstract Read-only channel / frequency name - * (e.i. "Treble, Midrange, Bass" or "125 Hz") - * - * Optional, Max String length 50 chars - */ -@property (nullable, strong, nonatomic) NSString *channelName; - - -/** - * @abstract Reflects the setting, from 0%-100%. - * - * Required, Integer 1 - 100 - */ -@property (strong, nonatomic) NSNumber *channelSetting; - -/** - * @abstract id of the channel. - * - * Required, Integer 1 - 100 - */ -@property (strong, nonatomic) NSNumber *channelId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.m deleted file mode 100644 index 7db9a35..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLEqualizerSettings.m +++ /dev/null @@ -1,52 +0,0 @@ -// SDLEqualizerSettings.m -// - -#import "SDLEqualizerSettings.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLEqualizerSettings - -- (instancetype)initWithChannelId:(UInt8)channelId channelSetting:(UInt8)channelSetting { - self = [self init]; - if(!self) { - return nil; - } - - self.channelId = @(channelId); - self.channelSetting = @(channelSetting); - - return self; -} - -- (void)setChannelId:(NSNumber *)channelId { - [self.store sdl_setObject:channelId forName:SDLRPCParameterNameChannelId]; -} - -- (NSNumber *)channelId { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameChannelId ofClass:NSNumber.class error:&error]; -} - -- (void)setChannelName:(nullable NSString *)channelName { - [self.store sdl_setObject:channelName forName:SDLRPCParameterNameChannelName]; -} - -- (nullable NSString *)channelName { - return [self.store sdl_objectForName:SDLRPCParameterNameChannelName ofClass:NSString.class error:nil]; -} - -- (void)setChannelSetting:(NSNumber *)channelSetting { - [self.store sdl_setObject:channelSetting forName:SDLRPCParameterNameChannelSetting]; -} - -- (NSNumber *)channelSetting { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameChannelSetting ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.h deleted file mode 100644 index 622da44..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.h +++ /dev/null @@ -1,124 +0,0 @@ -// -// SDLErrorConstants.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/5/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLErrorConstants.h" - -#import "SDLResult.h" - - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark Error Domains -typedef NSString SDLErrorDomain; -extern SDLErrorDomain *const SDLErrorDomainLifecycleManager; -extern SDLErrorDomain *const SDLErrorDomainFileManager; -extern SDLErrorDomain *const SDLErrorDomainTextAndGraphicManager; -extern SDLErrorDomain *const SDLErrorDomainSoftButtonManager; -extern SDLErrorDomain *const SDLErrorDomainMenuManager; -extern SDLErrorDomain *const SDLErrorDomainChoiceSetManager; -extern SDLErrorDomain *const SDLErrorDomainSystemCapabilityManager; -extern SDLErrorDomain *const SDLErrorDomainTransport; -extern SDLErrorDomain *const SDLErrorDomainRPCStore; -extern SDLErrorDomain *const SDLErrorDomainCacheFileManager; -extern SDLErrorDomain *const SDLErrorDomainAudioStreamManager; - - -@interface NSError (SDLErrors) - -#pragma mark SDLEncryptionLifecycleManager -+ (NSError *)sdl_encryption_lifecycle_notReadyError; -+ (NSError *)sdl_encryption_lifecycle_encryption_off; -+ (NSError *)sdl_encryption_lifecycle_nak; - -#pragma mark SDLManager - -+ (NSError *)sdl_lifecycle_rpcErrorWithDescription:(nullable NSString *)description andReason:(nullable NSString *)reason; -+ (NSError *)sdl_lifecycle_notConnectedError; -+ (NSError *)sdl_lifecycle_notReadyError; -+ (NSError *)sdl_lifecycle_unknownRemoteErrorWithDescription:(nullable NSString *)description andReason:(nullable NSString *)reason; -+ (NSError *)sdl_lifecycle_managersFailedToStart; -+ (NSError *)sdl_lifecycle_startedWithBadResult:(nullable SDLResult)result info:(nullable NSString *)info; -+ (NSError *)sdl_lifecycle_startedWithWarning:(nullable SDLResult)result info:(nullable NSString *)info; -+ (NSError *)sdl_lifecycle_failedWithBadResult:(nullable SDLResult)result info:(nullable NSString *)info; -+ (NSError *)sdl_lifecycle_multipleRequestsCancelled; - -#pragma mark SDLFileManager - -+ (NSError *)sdl_fileManager_cannotOverwriteError; -+ (NSError *)sdl_fileManager_noKnownFileError; -+ (NSError *)sdl_fileManager_unableToStartError; -+ (NSError *)sdl_fileManager_unableToUploadError; -+ (NSError *)sdl_fileManager_unableToUpload_ErrorWithUserInfo:(NSDictionary *)userInfo; -+ (NSError *)sdl_fileManager_unableToDelete_ErrorWithUserInfo:(NSDictionary *)userInfo; -+ (NSError *)sdl_fileManager_fileDoesNotExistError; -+ (NSError *)sdl_fileManager_fileUploadCanceled; -+ (NSError *)sdl_fileManager_dataMissingError; -+ (NSError *)sdl_fileManager_staticIconError; - -#pragma mark Screen Managers - -+ (NSError *)sdl_softButtonManager_pendingUpdateSuperseded; -+ (NSError *)sdl_subscribeButtonManager_notSubscribed; -+ (NSError *)sdl_textAndGraphicManager_pendingUpdateSuperseded; - -#pragma mark Menu Manager - -+ (NSError *)sdl_menuManager_failedToUpdateWithDictionary:(NSDictionary *)userInfo; - -#pragma mark Choice Set Manager - -+ (NSError *)sdl_choiceSetManager_choicesDeletedBeforePresentation:(NSDictionary *)userInfo; -+ (NSError *)sdl_choiceSetManager_choiceDeletionFailed:(NSDictionary *)userInfo; -+ (NSError *)sdl_choiceSetManager_choiceUploadFailed:(NSDictionary *)userInfo; -+ (NSError *)sdl_choiceSetManager_failedToCreateMenuItems; -+ (NSError *)sdl_choiceSetManager_incorrectState:(NSString *)state; - - -#pragma mark System Capability Manager - -+ (NSError *)sdl_systemCapabilityManager_moduleDoesNotSupportSystemCapabilities; -+ (NSError *)sdl_systemCapabilityManager_cannotUpdateInHMINONE; -+ (NSError *)sdl_systemCapabilityManager_cannotUpdateTypeDISPLAYS; - -#pragma mark Transport - -+ (NSError *)sdl_transport_unknownError; -+ (NSError *)sdl_transport_connectionRefusedError; -+ (NSError *)sdl_transport_connectionTimedOutError; -+ (NSError *)sdl_transport_networkDownError; - -#pragma mark Store - -+ (NSError *)sdl_rpcStore_invalidObjectErrorWithObject:(id)wrongObject expectedType:(Class)type; - -#pragma mark Cache File Manager - -+ (NSError *)sdl_cacheFileManager_updateIconArchiveFileFailed; - -#pragma mark Audio Stream Manager - -+ (NSError *)sdl_audioStreamManager_notConnected; - -@end - -@interface NSException (SDLExceptions) - -+ (NSException *)sdl_missingHandlerException; -+ (NSException *)sdl_missingIdException; -+ (NSException *)sdl_missingFilesException; -+ (NSException *)sdl_invalidSoftButtonStateException; -+ (NSException *)sdl_carWindowOrientationException; -+ (NSException *)sdl_invalidLockscreenSetupException; -+ (NSException *)sdl_invalidSystemCapabilitySelectorExceptionWithSelector:(SEL)selector; -+ (NSException *)sdl_invalidSubscribeButtonSelectorExceptionWithSelector:(SEL)selector; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.m deleted file mode 100644 index 19e3795..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLError.m +++ /dev/null @@ -1,466 +0,0 @@ -// -// SDLErrorConstants.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/5/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "SDLError.h" - -#import "SDLChoiceSetManager.h" - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark Error Domains - -SDLErrorDomain *const SDLErrorDomainLifecycleManager = @"com.sdl.lifecyclemanager.error"; -SDLErrorDomain *const SDLErrorDomainEncryptionLifecycleManager = @"com.sdl.encryptionlifecyclemanager.error"; -SDLErrorDomain *const SDLErrorDomainFileManager = @"com.sdl.filemanager.error"; -SDLErrorDomain *const SDLErrorDomainTextAndGraphicManager = @"com.sdl.textandgraphicmanager.error"; -SDLErrorDomain *const SDLErrorDomainSoftButtonManager = @"com.sdl.softbuttonmanager.error"; -SDLErrorDomain *const SDLErrorDomainSubscribeButtonManager = @"com.sdl.subscribebuttonmanager.error"; -SDLErrorDomain *const SDLErrorDomainMenuManager = @"com.sdl.menumanager.error"; -SDLErrorDomain *const SDLErrorDomainChoiceSetManager = @"com.sdl.choicesetmanager.error"; -SDLErrorDomain *const SDLErrorDomainSystemCapabilityManager = @"com.sdl.systemcapabilitymanager.error"; -SDLErrorDomain *const SDLErrorDomainTransport = @"com.sdl.transport.error"; -SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error"; -SDLErrorDomain *const SDLErrorDomainCacheFileManager = @"com.sdl.cachefilemanager.error"; -SDLErrorDomain *const SDLErrorDomainAudioStreamManager = @"com.sdl.extension.pcmAudioStreamManager"; - -@implementation NSError (SDLErrors) - -#pragma mark - SDLEncryptionLifecycleManager -+ (NSError *)sdl_encryption_lifecycle_notReadyError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Encryption Lifecycle manager not ready", - NSLocalizedFailureReasonErrorKey: @"The SDL library is not finished setting up the connection, please wait until the encryption lifecycleState is SDLEncryptionLifecycleStateReady", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure HMI is not NONE and at least one RPC requires encryption in permissions?" - }; - - return [NSError errorWithDomain:SDLErrorDomainEncryptionLifecycleManager - code:SDLEncryptionLifecycleManagerErrorNotConnected - userInfo:userInfo]; -} - -+ (NSError *)sdl_encryption_lifecycle_encryption_off { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Encryption Lifecycle received a ACK with encryption bit = 0", - NSLocalizedFailureReasonErrorKey: @"The SDL library received ACK with encryption = OFF.", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure you are on a supported remote head unit with proper policies and your app id is approved." - }; - - return [NSError errorWithDomain:SDLErrorDomainEncryptionLifecycleManager - code:SDLEncryptionLifecycleManagerErrorEncryptionOff - userInfo:userInfo]; -} - -+ (NSError *)sdl_encryption_lifecycle_nak { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Encryption Lifecycle received a negative acknowledgement", - NSLocalizedFailureReasonErrorKey: @"The remote head unit sent a NAK. Encryption service failed to start due to NAK.", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure your certificates are valid." - }; - - return [NSError errorWithDomain:SDLErrorDomainEncryptionLifecycleManager - code:SDLEncryptionLifecycleManagerErrorNAK - userInfo:userInfo]; - -} - -#pragma mark - SDLManager - -+ (NSError *)sdl_lifecycle_rpcErrorWithDescription:(nullable NSString *)description andReason:(nullable NSString *)reason { - NSString *descriptionString = description ?: @""; - NSString *reasonString = reason ?: @""; - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: descriptionString, - NSLocalizedFailureReasonErrorKey: reasonString - }; - return [NSError errorWithDomain:SDLErrorDomainLifecycleManager - code:SDLManagerErrorRPCRequestFailed - userInfo:userInfo]; -} - -+ (NSError *)sdl_lifecycle_notConnectedError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Could not find a connection", - NSLocalizedFailureReasonErrorKey: @"The SDL library could not find a current connection to an SDL hardware device" - }; - - return [NSError errorWithDomain:SDLErrorDomainLifecycleManager - code:SDLManagerErrorNotConnected - userInfo:userInfo]; -} - -+ (NSError *)sdl_lifecycle_notReadyError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Lifecycle manager not ready", - NSLocalizedFailureReasonErrorKey: @"The SDL library is not finished setting up the connection, please wait until the lifecycleState is SDLLifecycleStateReady" - }; - - return [NSError errorWithDomain:SDLErrorDomainLifecycleManager - code:SDLManagerErrorNotConnected - userInfo:userInfo]; -} - -+ (NSError *)sdl_lifecycle_unknownRemoteErrorWithDescription:(nullable NSString *)description andReason:(nullable NSString *)reason { - NSString *descriptionString = description ?: @""; - NSString *reasonString = reason ?: @""; - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: descriptionString, - NSLocalizedFailureReasonErrorKey: reasonString - }; - return [NSError errorWithDomain:SDLErrorDomainLifecycleManager - code:SDLManagerErrorUnknownRemoteError - userInfo:userInfo]; -} - -+ (NSError *)sdl_lifecycle_managersFailedToStart { - return [NSError errorWithDomain:SDLErrorDomainLifecycleManager - code:SDLManagerErrorManagersFailedToStart - userInfo:nil]; -} - -+ (NSError *)sdl_lifecycle_startedWithBadResult:(nullable SDLResult)result info:(nullable NSString *)info { - NSString *resultString = result ?: @""; - NSString *infoString = info ?: @""; - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: resultString, - NSLocalizedFailureReasonErrorKey: infoString - }; - return [NSError errorWithDomain:SDLErrorDomainLifecycleManager - code:SDLManagerErrorRegistrationFailed - userInfo:userInfo]; -} - -+ (NSError *)sdl_lifecycle_startedWithWarning:(nullable SDLResult)result info:(nullable NSString *)info { - NSString *resultString = result ?: @""; - NSString *infoString = info ?: @""; - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: resultString, - NSLocalizedFailureReasonErrorKey: infoString - }; - return [NSError errorWithDomain:SDLErrorDomainLifecycleManager - code:SDLManagerErrorRegistrationSuccessWithWarning - userInfo:userInfo]; -} - -+ (NSError *)sdl_lifecycle_failedWithBadResult:(nullable SDLResult)result info:(nullable NSString *)info { - NSString *resultString = result ?: @""; - NSString *infoString = info ?: @""; - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: resultString, - NSLocalizedFailureReasonErrorKey: infoString - }; - return [NSError errorWithDomain:SDLErrorDomainLifecycleManager - code:SDLManagerErrorRegistrationFailed - userInfo:userInfo]; -} - -+ (NSError *)sdl_lifecycle_multipleRequestsCancelled { - return [NSError errorWithDomain:SDLErrorDomainLifecycleManager - code:SDLManagerErrorCancelled - userInfo:nil]; -} - - -#pragma mark SDLFileManager - -+ (NSError *)sdl_fileManager_cannotOverwriteError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Cannot overwrite remote file", - NSLocalizedFailureReasonErrorKey: @"The remote file system already has a file of this name, and the file manager is set to not automatically overwrite files", - NSLocalizedRecoverySuggestionErrorKey: @"Set SDLFileManager autoOverwrite to YES, or call forceUploadFile:completion:" - }; - return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorCannotOverwrite userInfo:userInfo]; -} - -+ (NSError *)sdl_fileManager_noKnownFileError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"No such remote file is currently known", - NSLocalizedFailureReasonErrorKey: @"The remote file is not currently known by the file manager. It could be that this file does not exist on the remote system or that the file manager has not completed its initialization and received a list of files from the remote system.", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure a file with this name is present on the remote system and that the file manager has finished its initialization." - }; - return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorNoKnownFile userInfo:userInfo]; -} - -+ (NSError *)sdl_fileManager_unableToStartError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"The file manager was unable to start", - NSLocalizedFailureReasonErrorKey: @"This may be because files are not supported on this unit and / or LISTFILES returned an error", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure that the system is sending back a proper LIST FILES response" - }; - return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorUnableToStart userInfo:userInfo]; -} - -+ (NSError *)sdl_fileManager_unableToUploadError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"The file manager was unable to send this file", - NSLocalizedFailureReasonErrorKey: @"This could be because the file manager has not started, or the head unit does not support files", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure that the system is sending back a proper LIST FILES response and check the file manager's state" - }; - return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorUnableToUpload userInfo:userInfo]; -} - -+ (NSError *)sdl_fileManager_unableToUpload_ErrorWithUserInfo:(NSDictionary *)userInfo { - return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerMultipleFileUploadTasksFailed userInfo:userInfo]; -} - -+ (NSError *)sdl_fileManager_unableToDelete_ErrorWithUserInfo:(NSDictionary *)userInfo { - return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerMultipleFileDeleteTasksFailed userInfo:userInfo]; -} - -+ (NSError *)sdl_fileManager_fileUploadCanceled { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"The file upload was canceled", - NSLocalizedFailureReasonErrorKey: @"The file upload transaction was canceled before it could be completed", - NSLocalizedRecoverySuggestionErrorKey: @"The file upload was canceled" - }; - return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerUploadCanceled userInfo:userInfo]; -} - -+ (NSError *)sdl_fileManager_dataMissingError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"The file upload was canceled", - NSLocalizedFailureReasonErrorKey: @"The data for the file is missing", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure the data used to create the file is valid" - }; - return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorFileDataMissing userInfo:userInfo]; -} - -+ (NSError *)sdl_fileManager_staticIconError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"The file upload was canceled", - NSLocalizedFailureReasonErrorKey: @"The file is a static icon, which cannot be uploaded", - NSLocalizedRecoverySuggestionErrorKey: @"Stop trying to upload a static icon, set it via the screen manager or create an SDLImage instead" - }; - return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorStaticIcon userInfo:userInfo]; -} - -#pragma mark SDLUploadFileOperation - -+ (NSError *)sdl_fileManager_fileDoesNotExistError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"The file manager was unable to send the file", - NSLocalizedFailureReasonErrorKey: @"This could be because the file does not exist at the specified file path or that passed data is invalid", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure that the the correct file path is being set and that the passed data is valid" - }; - return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorFileDoesNotExist userInfo:userInfo]; -} - -#pragma mark Screen Managers - -+ (NSError *)sdl_textAndGraphicManager_pendingUpdateSuperseded { - return [NSError errorWithDomain:SDLErrorDomainTextAndGraphicManager code:SDLTextAndGraphicManagerErrorPendingUpdateSuperseded userInfo:nil]; -} - -+ (NSError *)sdl_softButtonManager_pendingUpdateSuperseded { - return [NSError errorWithDomain:SDLErrorDomainSoftButtonManager code:SDLSoftButtonManagerErrorPendingUpdateSuperseded userInfo:nil]; -} - -+ (NSError *)sdl_subscribeButtonManager_notSubscribed { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Subscribe Button Manager error", - NSLocalizedFailureReasonErrorKey: @"The subscribe button manager has not yet subscribed to the button being unsubscribed.", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure you have used the Subscribe Button Manager to subscribe to the button name that you are attempting to unsubscribe." - }; - return [NSError errorWithDomain:SDLErrorDomainSubscribeButtonManager code:SDLSubscribeButtonManagerErrorNotSubscribed userInfo:userInfo]; -} - -#pragma mark Menu Manager - -+ (NSError *)sdl_menuManager_failedToUpdateWithDictionary:(NSDictionary *)userInfo { - return [NSError errorWithDomain:SDLErrorDomainMenuManager code:SDLMenuManagerErrorRPCsFailed userInfo:userInfo]; -} - -#pragma mark Choice Set Manager - -+ (NSError *)sdl_choiceSetManager_choicesDeletedBeforePresentation:(NSDictionary *)userInfo { - return [NSError errorWithDomain:SDLErrorDomainChoiceSetManager code:SDLChoiceSetManagerErrorPendingPresentationDeleted userInfo:userInfo]; -} - -+ (NSError *)sdl_choiceSetManager_choiceDeletionFailed:(NSDictionary *)userInfo { - return [NSError errorWithDomain:SDLErrorDomainChoiceSetManager code:SDLChoiceSetManagerErrorDeletionFailed userInfo:userInfo]; -} - -+ (NSError *)sdl_choiceSetManager_choiceUploadFailed:(NSDictionary *)userInfo { - return [NSError errorWithDomain:SDLErrorDomainChoiceSetManager code:SDLChoiceSetManagerErrorUploadFailed userInfo:userInfo]; -} - -+ (NSError *)sdl_choiceSetManager_failedToCreateMenuItems { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Choice Set Manager error", - NSLocalizedFailureReasonErrorKey: @"Choice set manager failed to create menu items due to menuName being empty.", - NSLocalizedRecoverySuggestionErrorKey: @"If you are setting the menuName, it is possible that the head unit is sending incorrect displayCapabilities." - }; - return [NSError errorWithDomain:SDLErrorDomainChoiceSetManager code:SDLChoiceSetManagerErrorFailedToCreateMenuItems userInfo:userInfo]; -} - -+ (NSError *)sdl_choiceSetManager_incorrectState:(SDLChoiceManagerState *)state { - NSString *errorString = [NSString stringWithFormat:@"Choice Set Manager error invalid state: %@", state]; - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: errorString, - NSLocalizedFailureReasonErrorKey: @"The choice set manager could be in an invalid state because the head unit doesn't support choice sets or the manager failed to set up correctly.", - NSLocalizedRecoverySuggestionErrorKey: @"If you are setting the menuName, it is possible that the head unit is sending incorrect displayCapabilities." - }; - return [NSError errorWithDomain:SDLErrorDomainChoiceSetManager code:SDLChoiceSetManagerErrorInvalidState userInfo:userInfo]; -} - -#pragma mark System Capability Manager - -+ (NSError *)sdl_systemCapabilityManager_moduleDoesNotSupportSystemCapabilities { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Module does not understand system capabilities", - NSLocalizedFailureReasonErrorKey: @"The connected module does not support system capabilities", - NSLocalizedRecoverySuggestionErrorKey: @"Use isCapabilitySupported to find out if the feature is supported on the head unit, but no more information about the feature is available on this module" - }; - return [NSError errorWithDomain:SDLErrorDomainSystemCapabilityManager code:SDLSystemCapabilityManagerErrorModuleDoesNotSupportSystemCapabilities userInfo:userInfo]; -} - -+ (NSError *)sdl_systemCapabilityManager_cannotUpdateInHMINONE { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"System capabilities cannot be updated in HMI NONE.", - NSLocalizedFailureReasonErrorKey: @"The system capability manager attempted to subscribe or update a system capability in HMI NONE, which is not allowed.", - NSLocalizedRecoverySuggestionErrorKey: @"Wait until you are in HMI BACKGROUND, LIMITED, OR FULL before subscribing or updating a capability." - }; - return [NSError errorWithDomain:SDLErrorDomainSystemCapabilityManager code:SDLSystemCapabilityManagerErrorHMINone userInfo:userInfo]; -} - -+ (NSError *)sdl_systemCapabilityManager_cannotUpdateTypeDISPLAYS { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"System capability type DISPLAYS cannot be updated.", - NSLocalizedFailureReasonErrorKey: @"The system capability manager attempted to update system capability type DISPLAYS, which is not allowed.", - NSLocalizedRecoverySuggestionErrorKey: @"Subscribe to DISPLAYS to automatically receive updates or retrieve a cached display capability value directly from the SystemCapabilityManager." - }; - return [NSError errorWithDomain:SDLErrorDomainSystemCapabilityManager code:SDLSystemCapabilityManagerErrorCannotUpdateTypeDisplays userInfo:userInfo]; -} - -#pragma mark Transport - -+ (NSError *)sdl_transport_unknownError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"TCP connection error", - NSLocalizedFailureReasonErrorKey: @"TCP connection cannot be established due to unknown error.", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure that correct IP address and TCP port number are specified, and the phone is connected to the correct Wi-Fi network." - }; - return [NSError errorWithDomain:SDLErrorDomainTransport code:SDLTransportErrorUnknown userInfo:userInfo]; -} - -+ (NSError *)sdl_transport_connectionRefusedError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"TCP connection cannot be established", - NSLocalizedFailureReasonErrorKey: @"The TCP connection is refused by head unit. Possible causes are that the specified TCP port number is not correct, or SDL Core is not running properly on the head unit.", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure that correct IP address and TCP port number are specified. Also, make sure that SDL Core on the head unit enables TCP transport." - }; - return [NSError errorWithDomain:SDLErrorDomainTransport code:SDLTransportErrorConnectionRefused userInfo:userInfo]; -} - -+ (NSError *)sdl_transport_connectionTimedOutError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"TCP connection timed out", - NSLocalizedFailureReasonErrorKey: @"The TCP connection cannot be established within a given time. Possible causes are that the specified IP address is not correct, or the connection is blocked by a firewall.", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure that correct IP address and TCP port number are specified. Also, make sure that the head unit's system configuration accepts TCP connections." - }; - return [NSError errorWithDomain:SDLErrorDomainTransport code:SDLTransportErrorConnectionTimedOut userInfo:userInfo]; -} - -+ (NSError *)sdl_transport_networkDownError { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Network is not available", - NSLocalizedFailureReasonErrorKey: @"TCP connection cannot be established because the phone is not connected to the network. Possible causes are: Wi-Fi being disabled on the phone or the phone is connected to a wrong Wi-Fi network.", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure that the phone is connected to the Wi-Fi network that has the head unit on it. Also, make sure that correct IP address and TCP port number are specified." - }; - return [NSError errorWithDomain:SDLErrorDomainTransport code:SDLTransportErrorNetworkDown userInfo:userInfo]; -} - -#pragma mark Store - -+ (NSError *)sdl_rpcStore_invalidObjectErrorWithObject:(id)wrongObject expectedType:(Class)type { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Type of stored value doesn't match with requested", - NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"Requested %@ but returned %@", NSStringFromClass(type), NSStringFromClass([wrongObject class])], - NSLocalizedRecoverySuggestionErrorKey: @"Check the object type returned from the head unit system" - }; - return [NSError errorWithDomain:SDLErrorDomainRPCStore code:SDLRPCStoreErrorGetInvalidObject userInfo:userInfo]; -} - -#pragma mark Cache File Manager - -+ (NSError *)sdl_cacheFileManager_updateIconArchiveFileFailed { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Failed to update the icon archive file", - NSLocalizedFailureReasonErrorKey: @"Unable to archive icon archive file to file path", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure that file path is valid" - }; - return [NSError errorWithDomain:SDLErrorDomainCacheFileManager code:SDLCacheManagerErrorUpdateIconArchiveFileFailure userInfo:userInfo]; -} - -#pragma mark Audio Stream Manager -+ (NSError *)sdl_audioStreamManager_notConnected { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: @"Couldn't send audio data, the audio service is not connected", - NSLocalizedFailureReasonErrorKey: @"The audio service must be connected before sending audio data", - NSLocalizedRecoverySuggestionErrorKey: @"Make sure that a connection has been established, you are a NAVIGATION app and have the NAVIGATION app type in your configuration, and you are the active NAVIGATION app" - }; - - return [NSError errorWithDomain:SDLErrorDomainAudioStreamManager code:SDLAudioStreamManagerErrorNotConnected userInfo:userInfo]; -} - -@end - - -@implementation NSException (SDLExceptions) - -+ (NSException *)sdl_missingHandlerException { - return [NSException - exceptionWithName:@"MissingHandlerException" - reason:@"This request requires a handler to be specified using the WithHandler class" - userInfo:nil]; -} - -+ (NSException *)sdl_missingIdException { - return [NSException - exceptionWithName:@"MissingIdException" - reason:@"This request requires an ID (command, softbutton, etc) to be specified" - userInfo:nil]; -} - -+ (NSException *)sdl_missingFilesException { - return [NSException - exceptionWithName:@"MissingFilesNames" - reason:@"This request requires that the array of files not be empty" - userInfo:nil]; -} - -+ (NSException *)sdl_invalidSoftButtonStateException { - return [NSException exceptionWithName:@"InvalidSoftButtonState" reason:@"Attempting to transition to a state that does not exist" userInfo:nil]; -} - -+ (NSException *)sdl_carWindowOrientationException { - return [NSException exceptionWithName:@"com.sdl.carwindow.orientationException" - reason:@"SDLCarWindow rootViewController must support only a single interface orientation" - userInfo:nil]; -} - -+ (NSException *)sdl_invalidLockscreenSetupException { - return [NSException exceptionWithName:@"com.sdl.lockscreen.setupException" - reason:@"SDL must be setup _after_ your app's window already exists" - userInfo:nil]; -} - -+ (NSException *)sdl_invalidSystemCapabilitySelectorExceptionWithSelector:(SEL)selector { - return [NSException exceptionWithName:@"com.sdl.systemCapabilityManager.selectorException" - reason:[NSString stringWithFormat:@"Capability observation selector: %@ does not match possible selectors, which must have between 0 and 3 parameters, or is not a selector on the observer object. Check that your selector is formatted correctly, and that your observer is not nil. You should unsubscribe an observer before it goes to nil.", NSStringFromSelector(selector)] - userInfo:nil]; -} - -+ (NSException *)sdl_invalidSubscribeButtonSelectorExceptionWithSelector:(SEL)selector { - return [NSException exceptionWithName:@"com.sdl.subscribeButtonManager.selectorException" - reason:[NSString stringWithFormat:@"Subscribe button observation selector: %@ does not match possible selectors, which must have between 0 and 4 parameters, or is not a selector on the observer object. Check that your selector is formatted correctly, and that your observer is not nil. You should unsubscribe an observer before it goes to nil.", NSStringFromSelector(selector)] - userInfo:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLErrorConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLErrorConstants.h deleted file mode 100644 index a668375..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLErrorConstants.h +++ /dev/null @@ -1,217 +0,0 @@ -// -// SDLErrorConstants.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/8/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -/** - * Errors associated with the SDLManager class. - */ -typedef NS_ENUM(NSInteger, SDLEncryptionLifecycleManagerError) { - /** - * Some action was attempted that requires a connection to the remote head unit. - */ - SDLEncryptionLifecycleManagerErrorNotConnected = -1, - /** - * Received ACK with encryption bit set to false from the remote head unit - */ - SDLEncryptionLifecycleManagerErrorEncryptionOff = -2, - /** - * Received NAK from the remote head unit. - */ - SDLEncryptionLifecycleManagerErrorNAK = -3 -}; - -/** - * Errors associated with the SDLManager class. - */ -typedef NS_ENUM(NSInteger, SDLManagerError) { - /** - * An RPC request failed to send. - */ - SDLManagerErrorRPCRequestFailed = -1, - /** - * Some action was attempted that requires a connection to the remote head unit. - */ - SDLManagerErrorNotConnected = -2, - /** - * Some action was attempted before the ready state was reached. - */ - SDLManagerErrorNotReady = -3, - /** - * The remote system encountered an unknown error. - */ - SDLManagerErrorUnknownRemoteError = -4, - /** - * One or more of the sub-managers failed to start. - */ - SDLManagerErrorManagersFailedToStart = -5, - /** - * Registering with the remote system failed. - */ - SDLManagerErrorRegistrationFailed = -6, - /** - * Registering with the remote system was successful, but had a warning. - */ - SDLManagerErrorRegistrationSuccessWithWarning = -7, - /** - * Request operations were cancelled before they could be sent - */ - SDLManagerErrorCancelled = -8 -}; - -/** - * Errors associated with the SDLFileManager class. - */ -typedef NS_ENUM(NSInteger, SDLFileManagerError) { - /** - * A file attempted to send, but a file with that name already exists on the remote head unit, and the file was not configured to overwrite. - */ - SDLFileManagerErrorCannotOverwrite = -1, - /** - * A file was attempted to be accessed but it does not exist. - */ - SDLFileManagerErrorNoKnownFile = -2, - /** - * The file manager attempted to start but encountered an error. - */ - SDLFileManagerErrorUnableToStart = -3, - /** - * The file manager was unable to send this file. - */ - SDLFileManagerErrorUnableToUpload = -4, - /** - * The file manager could not find the local file. - */ - SDLFileManagerErrorFileDoesNotExist = -5, - /** - * The file upload was canceled. - */ - SDLFileManagerUploadCanceled = -6, - /** - * One or more of multiple files being uploaded or deleted failed. - */ - SDLFileManagerMultipleFileUploadTasksFailed = -7, - /** - * One or more of multiple files being uploaded or deleted failed. - */ - SDLFileManagerMultipleFileDeleteTasksFailed = -8, - /** - * The file data is nil or empty. - */ - SDLFileManagerErrorFileDataMissing = -9, - /** - * The file is a static icon, which cannot be uploaded - */ - SDLFileManagerErrorStaticIcon = -10, -}; - -/** - Errors associated with the ScreenManager class - */ -typedef NS_ENUM(NSInteger, SDLTextAndGraphicManagerError) { - /// A pending update was superseded by a newer requested update. The old update will not be sent - SDLTextAndGraphicManagerErrorPendingUpdateSuperseded = -1 -}; - -/** - Errors associated with the Soft Button Manager class - */ -typedef NS_ENUM(NSInteger, SDLSoftButtonManagerError) { - /// A pending update was superseded by a newer requested update. The old update will not be sent - SDLSoftButtonManagerErrorPendingUpdateSuperseded = -1 -}; - -/** - Errors associated with the Subscribe Button Manager class - */ -typedef NS_ENUM(NSInteger, SDLSubscribeButtonManagerError) { - /// Attempting to unsubscribe to a subscribe button that has not yet been subscribed to yet. - SDLSubscribeButtonManagerErrorNotSubscribed = -1 -}; - -/** - Errors associated with the ScreenManager class - */ -typedef NS_ENUM(NSInteger, SDLMenuManagerError) { - /// Sending menu-related RPCs returned an error from the remote system - SDLMenuManagerErrorRPCsFailed = -1 -}; - -/// Errors associated with Choice Set class -typedef NS_ENUM(NSInteger, SDLChoiceSetManagerError) { - /// The choice set has been deleted before it was presented - SDLChoiceSetManagerErrorPendingPresentationDeleted = -1, - - /// The choice set failed to delete - SDLChoiceSetManagerErrorDeletionFailed = -2, - - /// The upload failed - SDLChoiceSetManagerErrorUploadFailed = -3, - - /// The menu items failed to be created - SDLChoiceSetManagerErrorFailedToCreateMenuItems = -4, - - /// Invalid state - SDLChoiceSetManagerErrorInvalidState = -5 -}; - -typedef NS_ENUM(NSInteger, SDLSystemCapabilityManagerError) { - SDLSystemCapabilityManagerErrorModuleDoesNotSupportSystemCapabilities = -1, - SDLSystemCapabilityManagerErrorHMINone = -2, - SDLSystemCapabilityManagerErrorCannotUpdateTypeDisplays = -3 -}; - -/** - * Errors associated with transport. - */ -typedef NS_ENUM(NSInteger, SDLTransportError) { - /** - * Connection cannot be established due to a reason not listed here. - */ - SDLTransportErrorUnknown = -1, - /** - * TCP connection is refused. - * Probably specified port number is invalid, or SDL Core is not running on the head unit. - */ - SDLTransportErrorConnectionRefused = -2, - /** - * TCP connection cannot be established within given time. - * Probably because of wrong IP address, or the connection may be blocked by a firewall. - */ - SDLTransportErrorConnectionTimedOut = -3, - /** - * TCP connection cannot be established since network is down. - * Probably the phone is not connected to the correct network. - */ - SDLTransportErrorNetworkDown = -4, -}; - -/** - * Errors associated with store. - */ -typedef NS_ENUM(NSInteger, SDLRPCStoreError) { - /** - * In dictionary stored value with unexpected type - */ - SDLRPCStoreErrorGetInvalidObject = -1, -}; - -typedef NS_ENUM(NSInteger, SDLCacheFileManagerError) { - /** - * Failed to update archive file - */ - SDLCacheManagerErrorUpdateIconArchiveFileFailure = -1, -}; - -typedef NS_ENUM(NSInteger, SDLAudioStreamManagerError) { - /// The audio stream is not currently connected - SDLAudioStreamManagerErrorNotConnected = -1, - - /// Attempted to play but there's no audio in the queue - SDLAudioStreamManagerErrorNoQueuedAudio = -2 -}; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.h deleted file mode 100644 index 4b2273d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.h +++ /dev/null @@ -1,154 +0,0 @@ -// -// SDLFile.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/14/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLFileType.h" - - -NS_ASSUME_NONNULL_BEGIN - -/// Crates an SDLFile from a file -@interface SDLFile : NSObject - -/** - * Whether or not the file should persist on disk between car ignition cycles. - */ -@property (assign, nonatomic, readonly, getter=isPersistent) BOOL persistent; - -/** - * Whether or not the file should overwrite an existing file on the remote disk with the same name. - */ -@property (assign, nonatomic) BOOL overwrite; - -/** - * The name the file should be stored under on the remote disk. This is how the file will be referenced in all later calls. - */ -@property (copy, nonatomic, readonly) NSString *name; - -/** - * The url the local file is stored at while waiting to push it to the remote system. If the data has not been passed to the file URL, this will be nil. - */ -@property (copy, nonatomic, readonly, nullable) NSURL *fileURL; - -/** - * The binary data of the SDLFile. If initialized with data, this will be a relatively quick call, but if initialized with a file URL, this is a rather expensive call the first time. The data will be cached in RAM after the first call. - */ -@property (copy, nonatomic, readonly) NSData *data; - -/** - * The size of the binary data of the SDLFile. - */ -@property (nonatomic, readonly) unsigned long long fileSize; - -/** - * The system will attempt to determine the type of file that you have passed in. It will default to BINARY if it does not recognize the file type or the file type is not supported by SDL. - */ -@property (strong, nonatomic, readonly) SDLFileType fileType; - -/** - * A stream to pull binary data from a SDLFile. The stream only pulls required data from the file on disk or in memory. This reduces memory usage while uploading a large file to the remote system as each chunk of data can be released immediately after it is uploaded. - */ -@property (nonatomic, readonly) NSInputStream *inputStream; - -/** - Describes whether or not this file is represented by static icon data. The head unit will present its representation of the static icon concept when sent this data. - - A file that represents a static icon may not be uploaded via the File Manager. It must be set using the Screen Manager. - - Support for this feature may vary by system, but it will generally be more supported in soft buttons and menus. - */ -@property (assign, nonatomic, readonly) BOOL isStaticIcon; - -/// Initializer unavailable -- (instancetype)init NS_UNAVAILABLE; - -/** - * The designated initializer for an SDL File. The only major property that is not set using this is "overwrite", which defaults to NO. - * - * @param url The file URL pointing to the local data that will be pushed to the remote system. - * @param name The name that the file will be stored under on the remote system and how it will be referenced from the local system. The max file name length may vary based on remote filesystem limitations. - * @param persistent Whether or not the file will persist between ignition cycles. - * - * @return An SDLFile object. - */ -- (instancetype)initWithFileURL:(NSURL *)url name:(NSString *)name persistent:(BOOL)persistent NS_DESIGNATED_INITIALIZER; - -/** - * Create an SDL file using a local file URL. - * - * This is a persistent file, it will be persisted through sessions / ignition cycles. You will only have a limited space for all files, so be sure to only persist files that are required for all or most sessions. For example, menu artwork should be persistent. - * - * Ephemeral files should be created using ephemeralFileAtURL:name: - * - * @warning If this is not a readable file, this will return nil - * - * @param url The url to the file that should be uploaded. - * @param name The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote filesystem limitations. - * - * @return An instance of this class, or nil if a readable file at the path could not be found. - */ -+ (instancetype)persistentFileAtFileURL:(NSURL *)url name:(NSString *)name NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to true"); - -/** - * Create an SDL file using a local file URL. - * - * This is an ephemeral file, it will not be persisted through sessions / ignition cycles. Any files that you do not *know* you will use in future sessions should be created through this method. For example, album / artist artwork should be ephemeral. - * - * Persistent files should be created using persistentFileAtURL:name: - * - * @warning If this is not a readable file, this will return nil - * - * @param url The url to the file on disk that will be uploaded - * @param name The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations. - * - * @return An instance of this class, or nil if a readable file at the url could not be found. - */ -+ (instancetype)fileAtFileURL:(NSURL *)url name:(NSString *)name; - -/** - * Create an SDL file using raw data. It is strongly preferred to pass a file URL instead of data, as it is currently held in memory until the file is sent. - * - * @param data The raw data to be used for the file - * @param name The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations. - * @param extension The file extension. For example "png". Currently supported file extensions are: "bmp", "jpg", "jpeg", "png", "wav", "mp3", "aac", "json". All others will be sent as binary files. - * @param persistent Whether or not the remote file with this data should be persistent - * - * @return An instance of this class - */ -- (instancetype)initWithData:(NSData *)data name:(NSString *)name fileExtension:(NSString *)extension persistent:(BOOL)persistent NS_DESIGNATED_INITIALIZER; - -/** - * Create an SDL file using raw data. It is strongly preferred to pass a file URL instead of data, as it is currently held in memory until the file is sent. - * - * This is a persistent file, it will be persisted through sessions / ignition cycles. You will only have a limited space for all files, so be sure to only persist files that are required for all or most sessions. For example, menu artwork should be persistent. - * - * @param data The raw data to be used for the file - * @param name The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations. - * @param extension The file extension. For example "png". Currently supported file extensions are: "bmp", "jpg", "jpeg", "png", "wav", "mp3", "aac", "json". All others will be sent as binary files. - * - * @return An instance of this class - */ -+ (instancetype)persistentFileWithData:(NSData *)data name:(NSString *)name fileExtension:(NSString *)extension NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to true"); - -/** - * Create an SDL file using raw data. It is strongly preferred to pass a file URL instead of data, as it is currently held in memory until the file is sent. - * - * This is an ephemeral file, it will not be persisted through sessions / ignition cycles. Any files that you do not *know* you will use in future sessions should be created through this method. For example, album / artist artwork should be ephemeral. - * - * @param data The raw data to be used for the file - * @param name The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations. - * @param extension The file extension. For example "png". Currently supported file extensions are: "bmp", "jpg", "jpeg", "png", "wav", "mp3", "aac", "json". All others will be sent as binary files. - * - * @return An instance of this class - */ -+ (instancetype)fileWithData:(NSData *)data name:(NSString *)name fileExtension:(NSString *)extension; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.m deleted file mode 100644 index 1efe745..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFile.m +++ /dev/null @@ -1,197 +0,0 @@ -// -// SDLFile.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/14/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "SDLFile.h" - -#import "SDLFileManager.h" -#import "SDLFileType.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLFile () - -@property (copy, nonatomic, readwrite, nullable) NSURL *fileURL; -@property (copy, nonatomic, readwrite) NSData *data; - -@property (strong, nonatomic, readwrite) SDLFileType fileType; -@property (assign, nonatomic, readwrite) BOOL persistent; -@property (copy, nonatomic, readwrite) NSString *name; - -@property (nonatomic, readwrite) NSInputStream *inputStream; - -@property (assign, nonatomic, readwrite) BOOL isStaticIcon; - -@end - - -@implementation SDLFile - -#pragma mark - Lifecycle - -- (instancetype)initWithFileURL:(NSURL *)url name:(NSString *)name persistent:(BOOL)persistent { - self = [super init]; - if (!self) { - return nil; - } - - BOOL exists = url.isFileURL && [url checkResourceIsReachableAndReturnError:nil]; - if (!exists) { - return nil; - } - - _fileURL = url; - _data = [NSData data]; - _name = name; - _persistent = persistent; - _fileType = [self.class sdl_fileTypeFromFileExtension:url.pathExtension]; - _overwrite = NO; - - return self; -} - -+ (instancetype)persistentFileAtFileURL:(NSURL *)url name:(NSString *)name { - return [[self alloc] initWithFileURL:url name:name persistent:YES]; -} - -+ (instancetype)fileAtFileURL:(NSURL *)url name:(NSString *)name { - return [[self alloc] initWithFileURL:url name:name persistent:NO]; -} - -- (instancetype)initWithData:(NSData *)data name:(NSString *)name fileExtension:(NSString *)extension persistent:(BOOL)persistent { - self = [super init]; - if (!self) { - return nil; - } - if (data.length == 0) { - return nil; - } - - _fileURL = nil; - _data = data; - _name = name; - _persistent = persistent; - _fileType = [self.class sdl_fileTypeFromFileExtension:extension]; - _overwrite = NO; - - return self; -} - -+ (instancetype)persistentFileWithData:(NSData *)data name:(NSString *)name fileExtension:(NSString *)extension { - return [[self alloc] initWithData:data name:name fileExtension:extension persistent:YES]; -} - -+ (instancetype)fileWithData:(NSData *)data name:(NSString *)name fileExtension:(NSString *)extension { - return [[self alloc] initWithData:data name:name fileExtension:extension persistent:NO]; -} - -#pragma mark - Getters - -- (NSData *)data { - if (_data.length == 0 && _fileURL != nil) { - return [NSData dataWithContentsOfURL:_fileURL]; - } - - return _data; -} - -/** - Initalizes a socket from which to read data. - - @discussion A new `NSInputStream` is created when requested instead of returning the already open `NSInputStream`. This is done because once a opened, a stream *cannot* be closed and reopened. If the same file is accessed multiple times (i.e. a non-persistant file is uploaded before and after a disconnect from Core during the same session) the file cannot be accessed after the first access because the stream is closed once the upload is completed. Apple `NSInputStream` doc: https://developer.apple.com/documentation/foundation/nsstream/1411963-open - - @return A socket - */ -- (NSInputStream *)inputStream { - if (_fileURL) { - // Data in file - _inputStream = [[NSInputStream alloc] initWithURL:_fileURL]; - } else if (_data.length != 0) { - // Data in memory - _inputStream = [[NSInputStream alloc] initWithData:_data]; - } - return _inputStream; -} - -/** - Gets the size of the data. The data may be stored on disk or it may already be in the application's memory. - - @return The size of the data. - */ -- (unsigned long long)fileSize { - if (_fileURL) { - // Data in file - NSString *path = [_fileURL path]; - return [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil].fileSize; - } else if (_data) { - // Data in memory - return _data.length; - } - return 0; -} - -#pragma mark - File Type - -+ (SDLFileType)sdl_fileTypeFromFileExtension:(NSString *)fileExtension { - if ([fileExtension caseInsensitiveCompare:@"bmp"] == NSOrderedSame) { - return SDLFileTypeBMP; - } else if (([fileExtension caseInsensitiveCompare:@"jpg"] == NSOrderedSame) || - ([fileExtension caseInsensitiveCompare:@"jpeg"] == NSOrderedSame)) { - return SDLFileTypeJPEG; - } else if ([fileExtension caseInsensitiveCompare:@"png"] == NSOrderedSame) { - return SDLFileTypePNG; - } else if ([fileExtension caseInsensitiveCompare:@"wav"] == NSOrderedSame) { - return SDLFileTypeWAV; - } else if ([fileExtension caseInsensitiveCompare:@"mp3"] == NSOrderedSame) { - return SDLFileTypeMP3; - } else if ([fileExtension caseInsensitiveCompare:@"aac"] == NSOrderedSame) { - return SDLFileTypeAAC; - } else if ([fileExtension caseInsensitiveCompare:@"json"] == NSOrderedSame) { - return SDLFileTypeJSON; - } else { - return SDLFileTypeBinary; - } -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(nullable NSZone *)zone { - return [[self.class allocWithZone:zone] initWithFileURL:_fileURL name:_name persistent:_persistent]; -} - -#pragma mark - NSObject overrides - -- (NSString *)description { - return [NSString stringWithFormat:@"SDLFile: %@", self.name]; -} - -- (NSUInteger)hash { - return self.name.hash ^ self.data.hash; -} - -- (BOOL)isEqual:(id)object { - if (self == object) { return YES; } - - if (![object isKindOfClass:[SDLFile class]]) { return NO; } - - return [self isEqualToFile:(SDLFile *)object]; -} - -- (BOOL)isEqualToFile:(SDLFile *)file { - if (!file) { return NO; } - - BOOL haveEqualNames = [self.name isEqualToString:file.name]; - BOOL haveEqualData = [self.data isEqualToData:file.data]; - BOOL haveEqualFormats = [self.fileType isEqualToEnum:file.fileType]; - - return haveEqualNames && haveEqualData && haveEqualFormats; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.h deleted file mode 100644 index 91a0201..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.h +++ /dev/null @@ -1,186 +0,0 @@ -// -// SDLFileManager.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/14/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLArtwork.h" -#import "SDLFileManagerConstants.h" - -@class SDLFile; -@class SDLFileManagerConfiguration; -@protocol SDLConnectionManagerType; - - -NS_ASSUME_NONNULL_BEGIN - -/// The handler that is called when the manager is set up or failed to set up with an error. -/// This is for internal use only. -/// -/// @param success True if every request succeeded, false if any failed. -/// @param error The error that occurred during the request if any occurred. -typedef void (^SDLFileManagerStartupCompletionHandler)(BOOL success, NSError *__nullable error); - - -/** - * The SDLFileManager is an RPC manager for the remote file system. After it starts, it will attempt to communicate with the remote file system to get the names of all files. Deleting and Uploading will them queue these changes as transactions. If a delete succeeds, the local list of remote files will remove that file name, and likewise, if an upload succeeds, the local list of remote files will now include that file name. - */ -@interface SDLFileManager : NSObject - -/** - * A set of all names of files known on the remote head unit. Known files can be used or deleted on the remote system. - */ -@property (copy, nonatomic, readonly) NSSet *remoteFileNames; - -/** - * The number of bytes still available for files for this app. - */ -@property (assign, nonatomic, readonly) NSUInteger bytesAvailable; - -/** - * The state of the file manager. - */ -@property (copy, nonatomic, readonly) NSString *currentState; - -/** - * The currently pending transactions (Upload, Delete, and List Files) in the file manager - */ -@property (copy, nonatomic, readonly) NSArray<__kindof NSOperation *> *pendingTransactions; - -/** - * Whether or not the file manager is suspended. If suspended, the file manager can continue to queue uploads and deletes, but will not actually perform any of those until it is no longer suspended. This can be used for throttling down the file manager if other, important operations are taking place over the accessory connection. - */ -@property (assign, nonatomic) BOOL suspended; - -/** - * Initialize the class...or not, since this method is unavailable. Dependencies must be injected using initWithConnectionManager: - * - * @return nil - */ -- (instancetype)init NS_UNAVAILABLE; - -/** - * Creates a new file manager with a specified connection manager - * - * @param manager A connection manager to use to forward on RPCs - * - * @return An instance of SDLFileManager - */ -- (instancetype)initWithConnectionManager:(id)manager __deprecated_msg("Use initWithConnectionManager:configuration: instead"); - -/** - * Creates a new file manager with a specified connection manager and configuration - * - * @param manager A connection manager to use to forward on RPCs - * @param configuration A configuration for this file manager session - * - * @return An instance of SDLFileManager - */ -- (instancetype)initWithConnectionManager:(id)manager configuration:(SDLFileManagerConfiguration *)configuration NS_DESIGNATED_INITIALIZER; - -/** - * The manager stars up and attempts to fetch its initial list and transfer initial files. - * - * @param completionHandler The handler called when the manager is set up or failed to set up with an error. Use weak self when accessing self from the completion handler. - */ -- (void)startWithCompletionHandler:(nullable SDLFileManagerStartupCompletionHandler)completionHandler; - -/** - * Cancels all file manager operations and deletes all associated data. - */ -- (void)stop; - -/** - Check if the remote system contains a file - - @param file The file to check - @return Whether or not the remote system has the file - */ -- (BOOL)hasUploadedFile:(SDLFile *)file; - -/** - * Delete a file stored on the remote system - * - * @param name The name of the remote file. It should be a name currently stored in remoteFileNames - * @param completion An optional completion handler that sends an error should one occur. - */ -- (void)deleteRemoteFileWithName:(SDLFileName *)name completionHandler:(nullable SDLFileManagerDeleteCompletionHandler)completion NS_SWIFT_NAME(delete(fileName:completionHandler:)); - -/** - * Deletes an array of files on the remote file system. The files are deleted in the order in which they are added to the array, with the first file to be deleted at index 0. The delete queue is sequential, meaning that once a delete request is sent to Core, the queue waits until a response is received from Core before the next the next delete request is sent. - * - * @param names The names of the files to be deleted - * @param completionHandler an optional SDLFileManagerMultiDeleteCompletionHandler - */ -- (void)deleteRemoteFilesWithNames:(NSArray *)names completionHandler:(nullable SDLFileManagerMultiDeleteCompletionHandler)completionHandler NS_SWIFT_NAME(delete(fileNames:completionHandler:)); - -/** - * Upload a file to the remote file system. If a file with the [SDLFile name] already exists, this will overwrite that file. If you do not want that to happen, check remoteFileNames before uploading, or change allowOverwrite to NO. - * - * @param file An SDLFile that contains metadata about the file to be sent - * @param completion An optional completion handler that sends an error should one occur. - */ -- (void)uploadFile:(SDLFile *)file completionHandler:(nullable SDLFileManagerUploadCompletionHandler)completion NS_SWIFT_NAME(upload(file:completionHandler:)); - -/** - * Uploads an array of files to the remote file system. The files will be uploaded in the order in which they are added to the array, with the first file to be uploaded at index 0. The upload queue is sequential, meaning that once a upload request is sent to Core, the queue waits until a response is received from Core before the next the next upload request is sent. - * - * The optional progress handler can be used to keep track of the upload progress. After each file upload, the progress handler returns the upload percentage and an error, if one occured during the upload process. The progress handler also includes an option to cancel the upload of all remaining files in queue. - * - * @param files An array of SDLFiles to be sent - * @param progressHandler an optional SDLFileManagerMultiUploadProgressHandler - * @param completionHandler an optional SDLFileManagerMultiUploadCompletionHandler - */ -- (void)uploadFiles:(NSArray *)files progressHandler:(nullable SDLFileManagerMultiUploadProgressHandler)progressHandler completionHandler:(nullable SDLFileManagerMultiUploadCompletionHandler)completionHandler NS_SWIFT_NAME(upload(files:progressHandler:completionHandler:)); - -/** - * Uploads an array of files to the remote file system. The files will be uploaded in the order in which they are added to the array, with the first file to be uploaded at index 0. The upload queue is sequential, meaning that once a upload request is sent to Core, the queue waits until a response is received from Core before the next the next upload request is sent. - * - * @param files An array of SDLFiles to be sent - * @param completionHandler An optional SDLFileManagerMultiUploadCompletionHandler - */ -- (void)uploadFiles:(NSArray *)files completionHandler:(nullable SDLFileManagerMultiUploadCompletionHandler)completionHandler NS_SWIFT_NAME(upload(files:completionHandler:)); - -/** - * Uploads an artwork file to the remote file system and returns the name of the uploaded artwork once completed. If an artwork with the same name is already on the remote system, the artwork is not uploaded and the artwork name is simply returned. - * - * @param artwork A SDLArwork containing an image to be sent - * @param completion An optional completion handler that returns the name of the uploaded artwork. It also returns an error if the upload fails. - */ -- (void)uploadArtwork:(SDLArtwork *)artwork completionHandler:(nullable SDLFileManagerUploadArtworkCompletionHandler)completion NS_SWIFT_NAME(upload(artwork:completionHandler:)); - -/** - * Uploads an array of artworks to the remote file system. The artworks will be uploaded in the order in which they are added to the array, with the first file to be uploaded at index 0. The upload queue is sequential, meaning that once a upload request is sent to Core, the queue waits until a response is received from Core before the next the next upload request is sent. - * - * @param artworks An array of SDLArtworks to be sent - * @param completion An optional SDLFileManagerMultiUploadArtworkCompletionHandler - */ -- (void)uploadArtworks:(NSArray *)artworks completionHandler:(nullable SDLFileManagerMultiUploadArtworkCompletionHandler)completion NS_SWIFT_NAME(upload(artworks:completionHandler:)); - -/** - * Uploads an array of artworks to the remote file system. The artworks will be uploaded in the order in which they are added to the array, with the first file to be uploaded at index 0. The upload queue is sequential, meaning that once a upload request is sent to Core, the queue waits until a response is received from Core before the next the next upload request is sent. - * - * The optional progress handler can be used to keep track of the upload progress. After each artwork upload, the progress handler returns the artwork name, the upload percentage and an error, if one occured during the upload process. The progress handler also includes an option to cancel the upload of all remaining files in queue. - * - * @param artworks An array of SDLArtworks to be sent - * @param progressHandler An optional SDLFileManagerMultiUploadArtworkProgressHandler - * @param completion An optional SDLFileManagerMultiUploadArtworkCompletionHandler - */ -- (void)uploadArtworks:(NSArray *)artworks progressHandler:(nullable SDLFileManagerMultiUploadArtworkProgressHandler)progressHandler completionHandler:(nullable SDLFileManagerMultiUploadArtworkCompletionHandler)completion NS_SWIFT_NAME(upload(artworks:progressHandler:completionHandler:)); - -/** - * A URL to the directory where temporary files are stored. When an SDLFile is created with NSData, it writes to a temporary file until the file manager finishes uploading it. - * - * The SDL library manages the creation and deletion of these files and you should not have to touch this directory at all. - * - * @return An NSURL pointing to the location on disk where SDL's temporary files are stored. - */ -+ (NSURL *)temporaryFileDirectory; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.m deleted file mode 100644 index 0e34ab3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManager.m +++ /dev/null @@ -1,606 +0,0 @@ -// -// SDLFileManager.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/14/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "SDLFileManager.h" - -#import "SDLConnectionManagerType.h" -#import "SDLLogMacros.h" -#import "SDLDeleteFileOperation.h" -#import "SDLError.h" -#import "SDLFile.h" -#import "SDLFileManagerConfiguration.h" -#import "SDLFileWrapper.h" -#import "SDLGlobals.h" -#import "SDLListFilesOperation.h" -#import "SDLManager.h" -#import "SDLNotificationConstants.h" -#import "SDLPutFile.h" -#import "SDLStateMachine.h" -#import "SDLUploadFileOperation.h" - - -NS_ASSUME_NONNULL_BEGIN - -typedef NSString SDLFileManagerState; -SDLFileManagerState *const SDLFileManagerStateShutdown = @"Shutdown"; -SDLFileManagerState *const SDLFileManagerStateFetchingInitialList = @"FetchingInitialList"; -SDLFileManagerState *const SDLFileManagerStateReady = @"Ready"; -SDLFileManagerState *const SDLFileManagerStateStartupError = @"StartupError"; - - -#pragma mark - SDLFileManager class - -@interface SDLFileManager () - -@property (weak, nonatomic) id connectionManager; - -// Remote state -@property (strong, nonatomic) NSMutableSet *mutableRemoteFileNames; -@property (assign, nonatomic, readwrite) NSUInteger bytesAvailable; - -// Local state -@property (strong, nonatomic) NSOperationQueue *transactionQueue; -@property (strong, nonatomic) NSMutableSet *uploadedEphemeralFileNames; -@property (strong, nonatomic) SDLStateMachine *stateMachine; -@property (copy, nonatomic, nullable) SDLFileManagerStartupCompletionHandler startupCompletionHandler; - -@property (strong, nonatomic) NSMutableDictionary *> *failedFileUploadsCount; -@property (assign, nonatomic) NSUInteger maxFileUploadAttempts; -@property (assign, nonatomic) NSUInteger maxArtworkUploadAttempts; - -@end - -#pragma mark Constants - -@implementation SDLFileManager - -#pragma mark - Lifecycle - -- (instancetype)initWithConnectionManager:(id)manager { - return [self initWithConnectionManager:manager configuration:[SDLFileManagerConfiguration defaultConfiguration]]; -} - -- (instancetype)initWithConnectionManager:(id)manager configuration:(SDLFileManagerConfiguration *)configuration { - self = [super init]; - if (!self) { - return nil; - } - - _connectionManager = manager; - _bytesAvailable = 0; - - _mutableRemoteFileNames = [NSMutableSet set]; - _transactionQueue = [[NSOperationQueue alloc] init]; - _transactionQueue.name = @"com.sdl.fileManager.transactionQueue"; - _transactionQueue.underlyingQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; - _transactionQueue.maxConcurrentOperationCount = 1; - _uploadedEphemeralFileNames = [[NSMutableSet alloc] init]; - - _stateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLFileManagerStateShutdown states:[self.class sdl_stateTransitionDictionary]]; - - _failedFileUploadsCount = [NSMutableDictionary dictionary]; - _maxFileUploadAttempts = configuration.fileRetryCount + 1; - _maxArtworkUploadAttempts = configuration.artworkRetryCount + 1; - - return self; -} - -#pragma mark - Setup / Shutdown - -- (void)startWithCompletionHandler:(nullable SDLFileManagerStartupCompletionHandler)handler { - if ([self.currentState isEqualToString:SDLFileManagerStateShutdown]) { - self.startupCompletionHandler = handler; - [self.stateMachine transitionToState:SDLFileManagerStateFetchingInitialList]; - } else { - // If we already started, just tell the handler we're started. - handler(YES, nil); - } -} - -- (void)stop { - [self.stateMachine transitionToState:SDLFileManagerStateShutdown]; -} - -- (void)dealloc { - if (self.currentState != SDLFileManagerStateShutdown) { - [self.stateMachine transitionToState:SDLFileManagerStateShutdown]; - } -} - -#pragma mark - Getters - -- (NSSet *)remoteFileNames { - return [NSSet setWithSet:self.mutableRemoteFileNames]; -} - -- (NSString *)currentState { - return self.stateMachine.currentState; -} - -- (NSArray<__kindof NSOperation *> *)pendingTransactions { - return self.transactionQueue.operations; -} - -- (BOOL)suspended { - return self.transactionQueue.suspended; -} - - -#pragma mark Setters - -- (void)setSuspended:(BOOL)suspended { - self.transactionQueue.suspended = suspended; -} - - -#pragma mark - State - -+ (NSDictionary *)sdl_stateTransitionDictionary { - return @{ - SDLFileManagerStateShutdown: @[SDLFileManagerStateFetchingInitialList], - SDLFileManagerStateFetchingInitialList: @[SDLFileManagerStateShutdown, SDLFileManagerStateReady, SDLFileManagerStateStartupError], - SDLFileManagerStateReady: @[SDLFileManagerStateShutdown], - SDLFileManagerStateStartupError: @[SDLFileManagerStateShutdown] - }; -} - -- (void)didEnterStateStartupError { - if (self.startupCompletionHandler != nil) { - self.startupCompletionHandler(NO, [NSError sdl_fileManager_unableToStartError]); - self.startupCompletionHandler = nil; - } -} - -- (void)didEnterStateShutdown { - [self.transactionQueue cancelAllOperations]; - [self.mutableRemoteFileNames removeAllObjects]; - [self.class sdl_clearTemporaryFileDirectory]; - self.bytesAvailable = 0; - - // Clear the failed uploads tracking so failed files can be uploaded again when a new connection has been established with Core - _failedFileUploadsCount = [NSMutableDictionary dictionary]; - - if (self.startupCompletionHandler != nil) { - self.startupCompletionHandler(NO, [NSError sdl_fileManager_unableToStartError]); - self.startupCompletionHandler = nil; - } -} - -- (void)didEnterStateFetchingInitialList { - __weak typeof(self) weakSelf = self; - [self sdl_listRemoteFilesWithCompletionHandler:^(BOOL success, NSUInteger bytesAvailable, NSArray *_Nonnull fileNames, NSError *_Nullable error) { - // If we've already shut down by this point, just stay in the shutdown state - if ([weakSelf.stateMachine.currentState isEqualToString:SDLFileManagerStateShutdown]) { - BLOCK_RETURN; - } - - // If there was an error, we'll pass the error to the startup handler and cancel out - if (error != nil) { - // HAX: In the case we are DISALLOWED we still want to transition to a ready state. Some head units return DISALLOWED for this RPC but otherwise work. - if([error.userInfo[@"resultCode"] isEqualToEnum:SDLResultDisallowed]) { - SDLLogW(@"ListFiles is disallowed. Certain file manager APIs may not work properly."); - [weakSelf.stateMachine transitionToState:SDLFileManagerStateReady]; - BLOCK_RETURN; - } - [weakSelf.stateMachine transitionToState:SDLFileManagerStateStartupError]; - BLOCK_RETURN; - } - - // If no error, make sure we're in the ready state - [weakSelf.stateMachine transitionToState:SDLFileManagerStateReady]; - }]; -} - -- (void)didEnterStateReady { - if (self.startupCompletionHandler != nil) { - self.startupCompletionHandler(YES, nil); - self.startupCompletionHandler = nil; - } -} - - -#pragma mark - Private Listing Remote Files - -- (void)sdl_listRemoteFilesWithCompletionHandler:(SDLFileManagerListFilesCompletionHandler)handler { - __weak typeof(self) weakSelf = self; - SDLListFilesOperation *listOperation = [[SDLListFilesOperation alloc] initWithConnectionManager:self.connectionManager completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSArray *_Nonnull fileNames, NSError *_Nullable error) { - if (error != nil || !success) { - handler(success, bytesAvailable, fileNames, error); - BLOCK_RETURN; - } - - // If there was no error, set our properties and call back to the startup completion handler - [weakSelf.mutableRemoteFileNames addObjectsFromArray:fileNames]; - weakSelf.bytesAvailable = bytesAvailable; - - handler(success, bytesAvailable, fileNames, error); - }]; - - [self.transactionQueue addOperation:listOperation]; -} - - -#pragma mark - Deleting - -- (void)deleteRemoteFileWithName:(SDLFileName *)name completionHandler:(nullable SDLFileManagerDeleteCompletionHandler)handler { - if ((![self.remoteFileNames containsObject:name]) && (handler != nil)) { - handler(NO, self.bytesAvailable, [NSError sdl_fileManager_noKnownFileError]); - return; - } - - __weak typeof(self) weakSelf = self; - SDLDeleteFileOperation *deleteOperation = [[SDLDeleteFileOperation alloc] initWithFileName:name connectionManager:self.connectionManager completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError *_Nullable error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - - // Mutate self based on the changes - if (success) { - strongSelf.bytesAvailable = bytesAvailable; - [strongSelf.mutableRemoteFileNames removeObject:name]; - } - - if (handler != nil) { - handler(success, bytesAvailable, error); - } - }]; - - [self.transactionQueue addOperation:deleteOperation]; -} - -- (void)deleteRemoteFilesWithNames:(NSArray *)names completionHandler:(nullable SDLFileManagerMultiDeleteCompletionHandler)completionHandler { - if (names.count == 0) { - @throw [NSException sdl_missingFilesException]; - } - - NSMutableDictionary *failedDeletes = [[NSMutableDictionary alloc] init]; - - dispatch_group_t deleteFilesTask = dispatch_group_create(); - dispatch_group_enter(deleteFilesTask); - for(NSString *name in names) { - dispatch_group_enter(deleteFilesTask); - [self deleteRemoteFileWithName:name completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { - if(!success) { - failedDeletes[name] = error; - } - dispatch_group_leave(deleteFilesTask); - }]; - } - dispatch_group_leave(deleteFilesTask); - - // Wait for all files to be deleted - dispatch_group_notify(deleteFilesTask, [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ - if (completionHandler == nil) { return; } - if (failedDeletes.count > 0) { - return completionHandler([NSError sdl_fileManager_unableToDelete_ErrorWithUserInfo:failedDeletes]); - } - return completionHandler(nil); - }); -} - -#pragma mark - Uploading -#pragma mark Files - -- (BOOL)hasUploadedFile:(SDLFile *)file { - // HAX: [#827](https://github.com/smartdevicelink/sdl_ios/issues/827) Older versions of Core had a bug where list files would cache incorrectly. - if (file.persistent && [self.remoteFileNames containsObject:file.name]) { - // If it's a persistant file, the bug won't present itself; just check if it's on the remote system - return true; - } else if (!file.persistent && [self.remoteFileNames containsObject:file.name] && [self.uploadedEphemeralFileNames containsObject:file.name]) { - // If it's an ephemeral file, the bug will present itself; check that it's a remote file AND that we've uploaded it this session - return true; - } - - return false; -} - -- (void)uploadFiles:(NSArray *)files completionHandler:(nullable SDLFileManagerMultiUploadCompletionHandler)completionHandler { - [self uploadFiles:files progressHandler:nil completionHandler:completionHandler]; -} - -- (void)uploadFiles:(NSArray *)files progressHandler:(nullable SDLFileManagerMultiUploadProgressHandler)progressHandler completionHandler:(nullable SDLFileManagerMultiUploadCompletionHandler)completionHandler { - if (files.count == 0) { - @throw [NSException sdl_missingFilesException]; - } - - NSMutableDictionary *failedUploads = [[NSMutableDictionary alloc] init]; - float totalBytesToUpload = (progressHandler == nil ? 0.0 : [self sdl_totalBytesToUpload:files]); - __block float totalBytesUploaded = 0.0; - - dispatch_group_t uploadFilesTask = dispatch_group_create(); - dispatch_group_enter(uploadFilesTask); - - // Wait for all files to be uploaded - dispatch_group_notify(uploadFilesTask, [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ - if (completionHandler == nil) { return; } - if (failedUploads.count > 0) { - return completionHandler([NSError sdl_fileManager_unableToUpload_ErrorWithUserInfo:failedUploads]); - } - return completionHandler(nil); - }); - - for(NSUInteger i = 0; i < files.count; i++) { - SDLFile *file = files[i]; - dispatch_group_enter(uploadFilesTask); - __weak typeof(self) weakself = self; - [self uploadFile:file completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { - if(!success) { - failedUploads[file.name] = error; - } - - // Send an update for each file sent to the remote - if (progressHandler != nil) { - totalBytesUploaded += file.fileSize; - float uploadPercentage = [weakself sdl_uploadPercentage:totalBytesToUpload uploadedBytes:totalBytesUploaded]; - BOOL continueWithRemainingUploads = progressHandler(file.name, uploadPercentage, error); - if (!continueWithRemainingUploads) { - // Cancel any remaining files waiting to be uploaded - for(NSUInteger j = i + 1; j < files.count; j++) { - SDLFile *cancelFile = files[j]; - for (SDLUploadFileOperation *op in weakself.transactionQueue.operations) { - if ([op.fileWrapper.file isEqual:cancelFile]) { - [op cancel]; - break; - } - } - } - - dispatch_group_leave(uploadFilesTask); - BLOCK_RETURN; - } - } - dispatch_group_leave(uploadFilesTask); - }]; - } - dispatch_group_leave(uploadFilesTask); -} - -- (void)uploadFile:(SDLFile *)file completionHandler:(nullable SDLFileManagerUploadCompletionHandler)handler { - if (file == nil || file.data.length == 0) { - if (handler != nil) { - handler(NO, self.bytesAvailable, [NSError sdl_fileManager_dataMissingError]); - } - return; - } - - if (file.isStaticIcon) { - if (handler != nil) { - handler(NO, self.bytesAvailable, [NSError sdl_fileManager_staticIconError]); - } - return; - } - - // Make sure we are able to send files - if (![self.currentState isEqualToString:SDLFileManagerStateReady]) { - if (handler != nil) { - handler(NO, self.bytesAvailable, [NSError sdl_fileManager_unableToUploadError]); - } - return; - } - - // HAX: [#827](https://github.com/smartdevicelink/sdl_ios/issues/827) Older versions of Core had a bug where list files would cache incorrectly. This led to attempted uploads failing due to the system thinking they were already there when they were not. - if (!file.persistent && ![self hasUploadedFile:file]) { - file.overwrite = true; - } - - // Check our overwrite settings and error out if it would overwrite - if (!file.overwrite && [self.remoteFileNames containsObject:file.name]) { - if (handler != nil) { - handler(NO, self.bytesAvailable, [NSError sdl_fileManager_cannotOverwriteError]); - } - return; - } - - // If we didn't error out over the overwrite, then continue on - [self sdl_uploadFile:file completionHandler:handler]; -} - -- (void)sdl_uploadFile:(SDLFile *)file completionHandler:(nullable SDLFileManagerUploadCompletionHandler)handler { - __block NSString *fileName = file.name; - __block SDLFileManagerUploadCompletionHandler uploadCompletion = [handler copy]; - - __weak typeof(self) weakSelf = self; - SDLFileWrapper *fileWrapper = [SDLFileWrapper wrapperWithFile:file completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError *_Nullable error) { - if (success) { - weakSelf.bytesAvailable = bytesAvailable; - [weakSelf.mutableRemoteFileNames addObject:fileName]; - [weakSelf.uploadedEphemeralFileNames addObject:fileName]; - } else { - weakSelf.failedFileUploadsCount = [weakSelf.class sdl_incrementFailedUploadCountForFileName:file.name failedFileUploadsCount:weakSelf.failedFileUploadsCount]; - - NSUInteger maxUploadCount = [file isMemberOfClass:[SDLArtwork class]] ? weakSelf.maxArtworkUploadAttempts : self.maxFileUploadAttempts; - if ([weakSelf sdl_canFileBeUploadedAgain:file maxUploadCount:maxUploadCount failedFileUploadsCount:weakSelf.failedFileUploadsCount]) { - SDLLogD(@"Attempting to resend file with name %@ after a failed upload attempt", file.name); - return [weakSelf sdl_uploadFile:file completionHandler:handler]; - } - } - - if (uploadCompletion != nil) { - uploadCompletion(success, bytesAvailable, error); - } - }]; - - SDLUploadFileOperation *uploadOperation = [[SDLUploadFileOperation alloc] initWithFile:fileWrapper connectionManager:self.connectionManager]; - - [self.transactionQueue addOperation:uploadOperation]; -} - -#pragma mark Artworks - -- (void)uploadArtwork:(SDLArtwork *)artwork completionHandler:(nullable SDLFileManagerUploadArtworkCompletionHandler)completion { - __weak typeof(self) weakself = self; - [self uploadFile:artwork completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { - if (completion == nil) { return; } - if ([weakself sdl_isErrorCannotOverwriteError:error]) { - // Artwork with same name already uploaded to remote - return completion(YES, artwork.name, bytesAvailable, nil); - } - completion(success, artwork.name, bytesAvailable, error); - }]; -} - -- (void)uploadArtworks:(NSArray *)artworks completionHandler:(nullable SDLFileManagerMultiUploadArtworkCompletionHandler)completion { - [self uploadArtworks:artworks progressHandler:nil completionHandler:completion]; -} - -- (void)uploadArtworks:(NSArray *)artworks progressHandler:(nullable SDLFileManagerMultiUploadArtworkProgressHandler)progressHandler completionHandler:(nullable SDLFileManagerMultiUploadArtworkCompletionHandler)completion { - if (artworks.count == 0) { - @throw [NSException sdl_missingFilesException]; - } - - __weak typeof(self) weakself = self; - [self uploadFiles:artworks progressHandler:^BOOL(SDLFileName * _Nonnull fileName, float uploadPercentage, NSError * _Nullable error) { - if (progressHandler == nil) { return YES; } - if ([weakself sdl_isErrorCannotOverwriteError:error]) { - return progressHandler(fileName, uploadPercentage, nil); - } - return progressHandler(fileName, uploadPercentage, error); - } completionHandler:^(NSError * _Nullable error) { - if (completion == nil) { return; } - - NSMutableSet *successfulArtworkUploadNames = [NSMutableSet set]; - for (SDLArtwork *artwork in artworks) { - [successfulArtworkUploadNames addObject:artwork.name]; - } - NSMutableDictionary *unsuccessfulArtworkUploadErrorUserInfo = [[NSMutableDictionary alloc] initWithDictionary:error.userInfo]; - - if (error != nil) { - for (NSString *erroredArtworkName in error.userInfo) { - if (![weakself sdl_isErrorCannotOverwriteError:error.userInfo[erroredArtworkName]]) { - [successfulArtworkUploadNames removeObject:erroredArtworkName]; - } else { - // An overwrite error means that an artwork with the same name is already uploaded to the remote - [unsuccessfulArtworkUploadErrorUserInfo removeObjectForKey:erroredArtworkName]; - } - } - } - - return completion([NSArray arrayWithArray:[successfulArtworkUploadNames allObjects]], unsuccessfulArtworkUploadErrorUserInfo.count == 0 ? nil : [[NSError alloc] initWithDomain:error.domain code:error.code userInfo:unsuccessfulArtworkUploadErrorUserInfo]); - }]; -} - -#pragma mark Helpers - -/** - * Checks an error returned by Core to see if it is a "can not overwrite" error. - * - * @param error The error returned by SDL Core - * @return True if the error is an overwrite error; false if not - */ -- (BOOL)sdl_isErrorCannotOverwriteError:(NSError * _Nullable)error { - if (error != nil && error.domain == SDLErrorDomainFileManager && error.code == SDLFileManagerErrorCannotOverwrite) { - return YES; - } - return NO; -} - -/** - * Computes the total amount of bytes to be uploaded to the remote. This total is computed by summing up the file size of all files to be uploaded to the remote - * - * @param files All the files being uploaded to the remote - * @return The total byte count - */ -- (float)sdl_totalBytesToUpload:(NSArray *)files { - float totalBytes = 0.0; - for(SDLFile *file in files) { - totalBytes += file.fileSize; - } - - return totalBytes; -} - -/** - * Computes the percentage of files uploaded to the remote. This percentage is a decimal number between 0.0 - 1.0. It is calculated by dividing the total number of bytes in files successfully or unsuccessfully uploaded by the total number of bytes in all files to be uploaded. - * - * @param totalBytes The total number of bytes in all files to be uploaded - * @param uploadedBytes The total number of bytes in files successfully or unsuccessfully uploaded - * @return The upload percentage - */ -- (float)sdl_uploadPercentage:(float)totalBytes uploadedBytes:(float)uploadedBytes { - if (totalBytes == 0 || uploadedBytes == 0) { - return 0.0; - } - return uploadedBytes / totalBytes; -} - -#pragma mark Reuploads - -/** - * Checks if an artwork needs to be uploaded to Core. The arwork should not be sent to Core if the artwork is already on Core or if the artwork is not on Core after the maximum number of repeated upload attempts has been reached. - * - * @param file The file to be uploaded to Core - * @param maxUploadCount The max number of times the file is allowed to be uploaded to Core - * @return True if the file still needs to be (re)sent to Core; false if not. - */ -- (BOOL)sdl_canFileBeUploadedAgain:(nullable SDLFile *)file maxUploadCount:(NSUInteger)maxUploadCount failedFileUploadsCount:(NSMutableDictionary *> *)failedFileUploadsCount { - if (![self.currentState isEqualToString:SDLFileManagerStateReady]) { - SDLLogW(@"File named %@ failed to upload. The file manager has shutdown so the file upload will not retry.", file.name); - return NO; - } - - if (!file) { - SDLLogE(@"File can not be uploaded because it is not a valid file."); - return NO; - } - - if ([self hasUploadedFile:file]) { - SDLLogD(@"File named %@ has already been uploaded.", file.name); - return NO; - } - - NSNumber *failedUploadCount = failedFileUploadsCount[file.name]; - BOOL canFileBeUploadedAgain = (failedUploadCount == nil) ? YES : (failedUploadCount.unsignedIntegerValue < maxUploadCount); - if (!canFileBeUploadedAgain) { - SDLLogE(@"File named %@ failed to upload. Max number of upload attempts reached.", file.name); - } - - return canFileBeUploadedAgain; -} - -/** - * Increments the number of upload attempts for a file name by 1. - * - * @param fileName The name used to upload the file to Core - */ -+ (NSMutableDictionary *> *)sdl_incrementFailedUploadCountForFileName:(SDLFileName *)fileName failedFileUploadsCount:(NSMutableDictionary *> *)failedFileUploadsCount { - NSNumber *currentFailedUploadCount = failedFileUploadsCount[fileName]; - NSNumber *newFailedUploadCount = (currentFailedUploadCount != nil) ? @(currentFailedUploadCount.integerValue + 1) : @1; - failedFileUploadsCount[fileName] = newFailedUploadCount; - SDLLogW(@"File with name %@ failed to upload %@ times", fileName, newFailedUploadCount); - return failedFileUploadsCount; -} - -#pragma mark - Temporary Files - -+ (NSURL *)temporaryFileDirectory { - NSURL *directoryURL = [self.class sdl_temporaryFileDirectoryName]; - if (![[NSFileManager defaultManager] fileExistsAtPath:[directoryURL path]]) { - [[NSFileManager defaultManager] createDirectoryAtURL:directoryURL withIntermediateDirectories:NO attributes:nil error:nil]; - } - - return directoryURL; -} - -+ (NSURL *)sdl_temporaryFileDirectoryName { - return [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"SDL"]]; -} - -+ (void)sdl_clearTemporaryFileDirectory { - NSError *error = nil; - if (![[NSFileManager defaultManager] fileExistsAtPath:[self.class sdl_temporaryFileDirectoryName].absoluteString]) { - [[NSFileManager defaultManager] removeItemAtURL:[self.class sdl_temporaryFileDirectoryName] error:&error]; - } - - if (error != nil) { - SDLLogW(@"[Error clearing temporary file directory] %@", error); - } -} - - -@end - - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConfiguration.h deleted file mode 100644 index 7bf61df..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConfiguration.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// SDLFileManagerConfiguration.h -// SmartDeviceLink -// -// Created by Nicole on 7/12/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "NSNumber+NumberType.h" - -NS_ASSUME_NONNULL_BEGIN - -/// File manager configuration information -@interface SDLFileManagerConfiguration : NSObject - -/** - * Defines the number of times the file manager will attempt to reupload `SDLArtwork` files in the event of a failed upload to Core. - * - * Defaults to 1. To disable reuploads, set to 0. - */ -@property (assign, nonatomic) UInt8 artworkRetryCount; - -/** - * Defines the number of times the file manager will attempt to reupload general `SDLFile`s in the event of a failed upload to Core. - * - * Defaults to 1. To disable reuploads, set to 0. - */ -@property (assign, nonatomic) UInt8 fileRetryCount; - -/** - * Creates a default file manager configuration. - * - * @return A default configuration that may be customized. - */ -+ (instancetype)defaultConfiguration; - -/** - Use `defaultConfiguration` instead - */ -- (instancetype)init NS_UNAVAILABLE; - -/** - * Creates a file manager configuration with customized upload retry counts. - * - * @return The configuration - */ -- (instancetype)initWithArtworkRetryCount:(UInt8)artworkRetryCount fileRetryCount:(UInt8)fileRetryCount; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConfiguration.m deleted file mode 100644 index 781fdac..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConfiguration.m +++ /dev/null @@ -1,43 +0,0 @@ -// -// SDLFileManagerConfiguration.m -// SmartDeviceLink -// -// Created by Nicole on 7/12/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLFileManagerConfiguration.h" - -NS_ASSUME_NONNULL_BEGIN - -static NSUInteger const DefaultRetryCount = 1; - -@implementation SDLFileManagerConfiguration - -+ (instancetype)defaultConfiguration { - return [[self.class alloc] initWithArtworkRetryCount:DefaultRetryCount fileRetryCount:DefaultRetryCount]; -} - -- (instancetype)initWithArtworkRetryCount:(UInt8)artworkRetryCount fileRetryCount:(UInt8)fileRetryCount { - self = [super init]; - if (!self) { - return nil; - } - - _artworkRetryCount = artworkRetryCount; - _fileRetryCount = fileRetryCount; - - return self; -} - - -#pragma mark - NSCopying - -- (id)copyWithZone:(nullable NSZone *)zone { - SDLFileManagerConfiguration *new = [[SDLFileManagerConfiguration allocWithZone:zone] initWithArtworkRetryCount:_artworkRetryCount fileRetryCount:_fileRetryCount]; - return new; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConstants.h deleted file mode 100644 index d6733f8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileManagerConstants.h +++ /dev/null @@ -1,99 +0,0 @@ -// -// SDLFileManagerConstants.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 5/11/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import -#import "SDLRPCRequest.h" -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Typedef SDLFileName -typedef NSString SDLFileName; - -/** - * A completion handler called after a response from Core to a upload request. - * - * @param success Whether or not the upload was successful - * @param bytesAvailable The amount of space left for files on Core - * @param error The error that occurred during the request if one occurred, nil if no error occured - */ -typedef void (^SDLFileManagerUploadCompletionHandler)(BOOL success, NSUInteger bytesAvailable, NSError *__nullable error); - -/** - * A completion handler called after a set of upload requests has completed. - * - * @param error The userInfo dictionary property, of type , contains information on all failed uploads. The key is the name of the file that did not upload properly, the value is an error describing what went wrong on that particular upload attempt. If all files are uploaded successfully, nil is returned - */ -typedef void(^SDLFileManagerMultiUploadCompletionHandler)(NSError *__nullable error); - -/** - * In a multiple request send, a handler called after each response from Core to a upload request. - * - * @param fileName The name of the file that received a response from SDL Core - * @param uploadPercentage The percentage of uploaded data. The upload percentage is calculated as the total file size of all attempted file uploads (regardless of the successfulness of the upload) divided by the sum of the data in all the files - * @param error The error that occurred during the request if one occurred, nil if no error occured - * @return Return NO to cancel any requests that have not yet been sent. Return YES to continue sending requests - */ -typedef BOOL (^SDLFileManagerMultiUploadProgressHandler)(SDLFileName *fileName, float uploadPercentage, NSError *__nullable error); - -/** - * A completion handler called after a response from Core to a delete request. - * - * @param success Whether or not the delete was successful - * @param bytesAvailable The amount of space left for files on Core - * @param error The error that occurred during the request if one occurred, nil if no error occured - */ -typedef void (^SDLFileManagerDeleteCompletionHandler)(BOOL success, NSUInteger bytesAvailable, NSError *__nullable error); - -/** - * A completion handler called after a set of delete requests has completed. - * - * @param error The userInfo dictionary property, of type , will return information on all failed deletes. The key is the name of the file that did not delete properly, the value is an error describing what went wrong on that particular delete attempt. If all files are deleted successfully, nil is returned - */ -typedef void(^SDLFileManagerMultiDeleteCompletionHandler)(NSError *__nullable error); - -/** - * A completion handler called after response from Core to a list files request. - * - * @param success Whether or not the list files request was successful - * @param bytesAvailable The amount of space available for files on Core - * @param fileNames The names of the files stored on SDL Core - * @param error The error that occurred during the request if one occurred, nil if no error occured - */ -typedef void (^SDLFileManagerListFilesCompletionHandler)(BOOL success, NSUInteger bytesAvailable, NSArray *fileNames, NSError *__nullable error); - -/** - * A completion handler called after a response from Core to a artwork upload request. - * - * @param success Whether or not the upload was successful - * @param artworkName The unique identifier for the uploaded file. - * @param bytesAvailable The amount of space left for files on Core - * @param error The error that occurred during the request if one occurred, nil if not - */ -typedef void (^SDLFileManagerUploadArtworkCompletionHandler)(BOOL success, NSString *artworkName, NSUInteger bytesAvailable, NSError *__nullable error); - -/** - * A completion handler called after a set of upload artwork requests has completed. - * - * @param artworkNames The names of the artwork files successfully uploaded to the remote - * @param error The userInfo dictionary property, of type , contains information on all failed uploads. The key is the name of the artwork that did not upload properly, the value is an error describing what went wrong on that particular upload attempt. If all artworks are uploaded successfully, nil is returned - */ -typedef void (^SDLFileManagerMultiUploadArtworkCompletionHandler)(NSArray *artworkNames, NSError *__nullable error); - -/** - * In a multiple request send, a handler called after each response from Core to an artwork upload request. - * - * @param artworkName The unique identifier for the uploaded file - * @param uploadPercentage The percentage of uploaded data. The upload percentage is calculated as the total file size of all attempted artwork uploads (regardless of the successfulness of the upload) divided by the sum of the data in all the files - * @param error The error that occurred during the upload request if one occurred, nil if no error occured - * - * @return Return NO to cancel any artworks that have not yet been sent. Return YES to continue sending artworks - */ -typedef BOOL (^SDLFileManagerMultiUploadArtworkProgressHandler)(NSString *artworkName, float uploadPercentage, NSError *__nullable error); - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileType.h deleted file mode 100644 index 00612e1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileType.h +++ /dev/null @@ -1,52 +0,0 @@ -// SDLFileType.h -// - - -#import "SDLEnum.h" - -/** - * Enumeration listing possible file types. Used in SDLFile, PutFile, ImageField, OnSystemRequest - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLFileType SDL_SWIFT_ENUM; - -/** - * file type: Bitmap (BMP) - */ -extern SDLFileType const SDLFileTypeBMP; - -/** - * file type: JPEG - */ -extern SDLFileType const SDLFileTypeJPEG; - -/** - * file type: PNG - */ -extern SDLFileType const SDLFileTypePNG; - -/** - * file type: WAVE (WAV) - */ -extern SDLFileType const SDLFileTypeWAV; - -/** - * file type: MP3 - */ -extern SDLFileType const SDLFileTypeMP3; - -/** - * file type: AAC - */ -extern SDLFileType const SDLFileTypeAAC; - -/** - * file type: BINARY - */ -extern SDLFileType const SDLFileTypeBinary; - -/** - * file type: JSON - */ -extern SDLFileType const SDLFileTypeJSON; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileType.m deleted file mode 100644 index b86dc35..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileType.m +++ /dev/null @@ -1,14 +0,0 @@ -// SDLFileType.m -// - - -#import "SDLFileType.h" - -SDLFileType const SDLFileTypeBMP = @"GRAPHIC_BMP"; -SDLFileType const SDLFileTypeJPEG = @"GRAPHIC_JPEG"; -SDLFileType const SDLFileTypePNG = @"GRAPHIC_PNG"; -SDLFileType const SDLFileTypeWAV = @"AUDIO_WAVE"; -SDLFileType const SDLFileTypeMP3 = @"AUDIO_MP3"; -SDLFileType const SDLFileTypeAAC = @"AUDIO_AAC"; -SDLFileType const SDLFileTypeBinary = @"BINARY"; -SDLFileType const SDLFileTypeJSON = @"JSON"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileWrapper.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileWrapper.h deleted file mode 100644 index 212e4c8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileWrapper.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// SDLFileWrapper.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 5/11/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLFileManagerConstants.h" - - -@class SDLFile; - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLFileWrapper : NSObject - -@property (strong, nonatomic, readonly) SDLFile *file; -@property (copy, nonatomic, readonly) SDLFileManagerUploadCompletionHandler completionHandler; - -- (instancetype)initWithFile:(SDLFile *)file completionHandler:(SDLFileManagerUploadCompletionHandler)completionHandler; - -+ (instancetype)wrapperWithFile:(SDLFile *)file completionHandler:(SDLFileManagerUploadCompletionHandler)completionHandler; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileWrapper.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileWrapper.m deleted file mode 100644 index fac2b65..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFileWrapper.m +++ /dev/null @@ -1,36 +0,0 @@ -// -// SDLFileWrapper.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 5/11/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLFileWrapper.h" - -#import "SDLFile.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLFileWrapper - -- (instancetype)initWithFile:(SDLFile *)file completionHandler:(SDLFileManagerUploadCompletionHandler)completionHandler { - self = [super init]; - if (!self) { - return nil; - } - - _file = file; - _completionHandler = completionHandler; - - return self; -} - -+ (instancetype)wrapperWithFile:(SDLFile *)file completionHandler:(SDLFileManagerUploadCompletionHandler)completionHandler { - return [[self alloc] initWithFile:file completionHandler:completionHandler]; -} - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemHitTester.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemHitTester.h deleted file mode 100644 index 7dd7662..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemHitTester.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// SDLFocusableItemHitTester.h -// SmartDeviceLink-iOS -// -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -@class SDLTouch; - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLFocusableItemHitTester - -/** - Determines which view was selected based on SDLTouch object. If no view gets matched null value will be returned. - - @param point Point to check for a view - @return point UIView object or nil - */ -- (nullable UIView *)viewForPoint:(CGPoint)point; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.h deleted file mode 100644 index 02afcb5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// SDLHapticManager.h -// SmartDeviceLink-iOS -// -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLFocusableItemLocatorType.h" -#import "SDLFocusableItemHitTester.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLFocusableItemLocator : NSObject - -/** - Whether or not this will attempt to send haptic RPCs. - - @note Defaults to NO. - */ -@property (nonatomic, assign) BOOL enableHapticDataRequests; - -/** - The projection view controller associated with the Haptic Manager - */ -@property (nonatomic, strong) UIViewController *viewController; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.m deleted file mode 100644 index e416c2a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocator.m +++ /dev/null @@ -1,194 +0,0 @@ -// -// SDLHapticManager.m -// SmartDeviceLink-iOS -// -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLFocusableItemLocator.h" -#import "SDLLogMacros.h" -#import "SDLNotificationConstants.h" -#import "SDLRectangle.h" -#import "SDLHapticRect.h" -#import "SDLSendHapticData.h" -#import "SDLStreamingVideoScaleManager.h" -#import "SDLTouch.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLFocusableItemLocator() - -/** - Array of focusable view objects extracted from the projection window - */ -@property (nonatomic, strong) NSMutableArray *focusableViews; -@property (nonatomic, weak) id connectionManager; - -/** - The scale manager that scales from the display screen coordinate system to the app's viewport coordinate system -*/ -@property (strong, nonatomic) SDLStreamingVideoScaleManager *videoScaleManager; - -@end - -@implementation SDLFocusableItemLocator - -- (instancetype)initWithViewController:(UIViewController *)viewController connectionManager:(id)connectionManager videoScaleManager:(SDLStreamingVideoScaleManager *)videoScaleManager { - self = [super init]; - if(!self) { - return nil; - } - - _viewController = viewController; - _connectionManager = connectionManager; - _videoScaleManager = videoScaleManager; - _focusableViews = [NSMutableArray array]; - - _enableHapticDataRequests = NO; - - return self; -} - -- (void)start { - SDLLogD(@"Starting"); - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_projectionViewUpdated:) name:SDLDidUpdateProjectionView object:nil]; -} - -- (void)stop { - SDLLogD(@"Stopping"); - [[NSNotificationCenter defaultCenter] removeObserver:self]; - [self.focusableViews removeAllObjects]; -} - -- (void)updateInterfaceLayout { - if (@available(iOS 9.0, *)) { - [self.focusableViews removeAllObjects]; - [self sdl_parseViewHierarchy:self.viewController.view]; - - // If there is a preferred view, move it to the front of the array - NSUInteger preferredViewIndex = [self.focusableViews indexOfObject:self.viewController.view.subviews.lastObject.preferredFocusedView]; - if (preferredViewIndex != NSNotFound && self.focusableViews.count > 1) { - [self.focusableViews exchangeObjectAtIndex:preferredViewIndex withObjectAtIndex:0]; - } - - SDLLogD(@"Updated VC layout, sending new haptic rects"); - SDLLogV(@"For focusable views: %@", self.focusableViews); - [self sdl_sendHapticRPC]; - } else { - SDLLogE(@"Attempted to update user interface layout, but it only works on iOS 9.0+"); - } -} - -/** - Crawls through the views recursively and adds focusable view into the member array - - @param currentView is the view hierarchy to be processed - */ -- (void)sdl_parseViewHierarchy:(UIView *)currentView { - if (currentView == nil) { - SDLLogW(@"Error: Cannot parse nil view"); - return; - } - - SDLLogD(@"Parsing UIView heirarchy"); - SDLLogV(@"UIView: %@", currentView); - if (@available(iOS 9.0, *)) { - // Finding focusable subviews - NSArray *focusableSubviews = [currentView.subviews filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(UIView * _Nullable evaluatedObject, NSDictionary * _Nullable bindings) { - return (evaluatedObject.canBecomeFocused || [evaluatedObject isKindOfClass:[UIButton class]]); - }]]; - SDLLogV(@"Found focusable subviews: %@", focusableSubviews); - - BOOL isButton = [currentView isKindOfClass:[UIButton class]]; - if ((currentView.canBecomeFocused || isButton) && focusableSubviews.count == 0) { - //if current view is focusable and it doesn't have any focusable sub views then add the current view and return - [self.focusableViews addObject:currentView]; - return; - } else if (currentView.subviews.count > 0) { - // if current view has focusable sub views parse them recursively - NSArray *subviews = currentView.subviews; - - for (UIView *childView in subviews) { - [self sdl_parseViewHierarchy:childView]; - } - } else { - return; - } - } -} - -/** - Iterates through the focusable views, extracts rectangular parameters, creates Haptic RPC request and sends it - */ -- (void)sdl_sendHapticRPC { - if (!self.enableHapticDataRequests) { - SDLLogV(@"Attempting to send haptic data to a head unit that does not support haptic data. Haptic data will not be sent."); - return; - } - - if (self.focusableViews.count == 0) { - SDLLogV(@"No haptic data to send for this view."); - return; - } - - NSMutableArray *hapticRects = [[NSMutableArray alloc] init]; - for (UIView *view in self.focusableViews) { - CGPoint originOnScreen = [self.viewController.view convertPoint:view.frame.origin toView:nil]; - CGRect convertedRect = {originOnScreen, view.bounds.size}; - SDLRectangle *rect = [[SDLRectangle alloc] initWithCGRect:convertedRect]; - // using the view index as the id field in SendHapticData request (should be guaranteed unique) - NSUInteger rectId = [self.focusableViews indexOfObject:view]; - SDLHapticRect *hapticRect = [[SDLHapticRect alloc] initWithId:(UInt32)rectId rect:rect]; - hapticRect = [self.videoScaleManager scaleHapticRect:hapticRect]; - - [hapticRects addObject:hapticRect]; - } - - SDLLogV(@"Sending haptic data: %@", hapticRects); - SDLSendHapticData *hapticRPC = [[SDLSendHapticData alloc] initWithHapticRectData:hapticRects]; - [self.connectionManager sendConnectionManagerRequest:hapticRPC withResponseHandler:nil]; -} - -#pragma mark SDLFocusableItemHitTester functions -- (nullable UIView *)viewForPoint:(CGPoint)point { - UIView *selectedView = nil; - - for (UIView *view in self.focusableViews) { - //Convert the absolute location to local location and check if that falls within view boundary - CGPoint localPoint = [view convertPoint:point fromView:self.viewController.view]; - if ([view pointInside:localPoint withEvent:nil]) { - if (selectedView != nil) { - selectedView = nil; - break; - //the point has been indentified in two views. We cannot identify which with confidence. - } else { - selectedView = view; - } - } - } - - SDLLogD(@"Found a focusable view: %@, for point: %@", selectedView, NSStringFromCGPoint(point)); - return selectedView; -} - -#pragma mark notifications -/** - Function that gets called when projection view updated notification occurs. - - @param notification object with notification data - */ -- (void)sdl_projectionViewUpdated:(NSNotification *)notification { - if ([NSThread isMainThread]) { - [self updateInterfaceLayout]; - } else { - dispatch_async(dispatch_get_main_queue(), ^{ - [self updateInterfaceLayout]; - }); - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocatorType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocatorType.h deleted file mode 100644 index cc43ad2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFocusableItemLocatorType.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// SDLHapticInterface.h -// SmartDeviceLink-iOS -// -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import -#import "SDLConnectionManagerType.h" - -@class SDLManager; -@class SDLStreamingVideoScaleManager; - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLFocusableItemLocatorType - -/** - Whether or not this will attempt to send haptic RPCs. - - @note Defaults to NO. - */ -@property (nonatomic, assign) BOOL enableHapticDataRequests; - -/** - The projection view controller associated with the Haptic Manager - */ -@property (nonatomic, strong) UIViewController *viewController; - -/** - Initializes the haptic interface. After initializing the application must call updateInterfaceLayout to process the view controller. Application must update later view changes in the view controller (or a change in the view controller itself) by sending the SDLDidUpdateProjectionView notification. - - @param viewController UIViewController to be checked for focusable views - @param connectionManager Object of a class that implements ConnectionManagerType. This is used for RPC communication. - @param videoScaleManager The scale manager that scales from the display screen coordinate system to the app's viewport coordinate system - */ -- (instancetype)initWithViewController:(UIViewController *)viewController connectionManager:(id)connectionManager videoScaleManager:(SDLStreamingVideoScaleManager *)videoScaleManager; - -/// Start observing updates -- (void)start; - -/// Stop observing updates and clear data -- (void)stop; - -/** - updateInterfaceLayout crawls through the view hierarchy, updates and keep tracks of views to be reported through Haptic RPC. This function is automatically called when SDLDidUpdateProjectionView notification is sent by the application. - */ -- (void)updateInterfaceLayout; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelCutoffStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelCutoffStatus.h deleted file mode 100644 index 22adb18..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelCutoffStatus.h +++ /dev/null @@ -1,27 +0,0 @@ -// SDLFuelCutoffStatus.h -// - - -#import "SDLEnum.h" - -/** - * Reflects the status of the Restraints Control Module fuel pump cutoff. The fuel pump is cut off typically after the vehicle has had a collision. Used in EmergencyEvent. - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLFuelCutoffStatus SDL_SWIFT_ENUM; - -/** - * Fuel is cut off - */ -extern SDLFuelCutoffStatus const SDLFuelCutoffStatusTerminateFuel; - -/** - * Fuel is not cut off - */ -extern SDLFuelCutoffStatus const SDLFuelCutoffStatusNormalOperation; - -/** - * Status of the fuel pump cannot be determined - */ -extern SDLFuelCutoffStatus const SDLFuelCutoffStatusFault; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelCutoffStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelCutoffStatus.m deleted file mode 100644 index 2ed2feb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelCutoffStatus.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLFuelCutoffStatus.m -// - - -#import "SDLFuelCutoffStatus.h" - -SDLFuelCutoffStatus const SDLFuelCutoffStatusTerminateFuel = @"TERMINATE_FUEL"; -SDLFuelCutoffStatus const SDLFuelCutoffStatusNormalOperation = @"NORMAL_OPERATION"; -SDLFuelCutoffStatus const SDLFuelCutoffStatusFault = @"FAULT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelRange.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelRange.h deleted file mode 100644 index 3220256..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelRange.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// SDLFuelRange.h -// SmartDeviceLink -// -// Created by Nicole on 6/20/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLRPCMessage.h" -#import "SDLFuelType.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Describes the distance a vehicle can travel with the current level of fuel. - */ -@interface SDLFuelRange : SDLRPCStruct - -/** - * The vehicle's fuel type - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLFuelType type; - -/** - * The estimate range in KM the vehicle can travel based on fuel level and consumption. - * - * Optional, Float, 0 - 10,000 - */ -@property (nullable, strong, nonatomic) NSNumber *range; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelRange.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelRange.m deleted file mode 100644 index 1512a09..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelRange.m +++ /dev/null @@ -1,37 +0,0 @@ -// -// SDLFuelRange.m -// SmartDeviceLink -// -// Created by Nicole on 6/20/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLFuelRange.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLFuelRange - -- (void)setType:(nullable SDLFuelType)type { - [self.store sdl_setObject:type forName:SDLRPCParameterNameType]; -} - -- (nullable SDLFuelType)type { - return [self.store sdl_enumForName:SDLRPCParameterNameType error:nil]; -} - -- (void)setRange:(nullable NSNumber *)range { - [self.store sdl_setObject:range forName:SDLRPCParameterNameRange]; -} - -- (nullable NSNumber *)range { - return [self.store sdl_objectForName:SDLRPCParameterNameRange ofClass:NSNumber.class error:nil]; -} - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelType.h deleted file mode 100644 index a87c1f3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelType.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// SDLFuelType.h -// SmartDeviceLink -// -// Created by Nicole on 6/20/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * Enumeration listing possible fuel types. - */ -typedef SDLEnum SDLFuelType SDL_SWIFT_ENUM; - -/** - * Fuel type: Gasoline - */ -extern SDLFuelType const SDLFuelTypeGasoline; - -/** - * Fuel type: Diesel - */ -extern SDLFuelType const SDLFuelTypeDiesel; - -/** - * Fuel type: CNG - * - * @discussion For vehicles using compressed natural gas - */ -extern SDLFuelType const SDLFuelTypeCNG; - -/** - * Fuel type: LPG - * - * @discussion For vehicles using liquefied petroleum gas - */ -extern SDLFuelType const SDLFuelTypeLPG; - -/** - * Fuel type: Hydrogen - * - * @discussion For FCEV (fuel cell electric vehicle) - */ -extern SDLFuelType const SDLFuelTypeHydrogen; - -/** - * Fuel type: Battery - * - * @discussion For BEV (Battery Electric Vehicle), PHEV (Plug-in Hybrid Electric Vehicle), solar vehicles and other vehicles which run on a battery. - */ -extern SDLFuelType const SDLFuelTypeBattery; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelType.m deleted file mode 100644 index 32e2b96..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFuelType.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// SDLFuelType.m -// SmartDeviceLink -// -// Created by Nicole on 6/20/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLFuelType.h" - -SDLFuelType const SDLFuelTypeGasoline = @"GASOLINE"; -SDLFuelType const SDLFuelTypeDiesel = @"DIESEL"; -SDLFuelType const SDLFuelTypeCNG = @"CNG"; -SDLFuelType const SDLFuelTypeLPG = @"LPG"; -SDLFuelType const SDLFuelTypeHydrogen = @"HYDROGEN"; -SDLFuelType const SDLFuelTypeBattery = @"BATTERY"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.h deleted file mode 100644 index 575d176..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.h +++ /dev/null @@ -1,29 +0,0 @@ -// SDLFunctionID.h -// - -#import -#import "NSNumber+NumberType.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -/// A function ID for an SDL RPC -@interface SDLFunctionID : NSObject - -/// The shared object for pulling function id information -+ (instancetype)sharedInstance; - -/// Gets the function name for a given SDL RPC function ID -/// -/// @param functionID A function ID -/// @returns An SDLRPCFunctionName -- (nullable SDLRPCFunctionName)functionNameForId:(UInt32)functionID; - -/// Gets the function ID for a given SDL RPC function name -/// -/// @param functionName The RPC function name -- (nullable NSNumber *)functionIdForName:(SDLRPCFunctionName)functionName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.m deleted file mode 100644 index 1a3b93b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLFunctionID.m +++ /dev/null @@ -1,140 +0,0 @@ -// SDLFunctionID.m -// - - -#import "SDLFunctionID.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLFunctionID () - -@property (nonatomic, strong, nonnull) NSDictionary* functionIds; - -@end - -@implementation SDLFunctionID - -+ (instancetype)sharedInstance { - static SDLFunctionID* functionId = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - functionId = [[SDLFunctionID alloc] init]; - }); - return functionId; -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - self.functionIds = @{ - @0: SDLRPCFunctionNameReserved, - @1: SDLRPCFunctionNameRegisterAppInterface, - @2: SDLRPCFunctionNameUnregisterAppInterface, - @3: SDLRPCFunctionNameSetGlobalProperties, - @4: SDLRPCFunctionNameResetGlobalProperties, - @5: SDLRPCFunctionNameAddCommand, - @6: SDLRPCFunctionNameDeleteCommand, - @7: SDLRPCFunctionNameAddSubMenu, - @8: SDLRPCFunctionNameDeleteSubMenu, - @9: SDLRPCFunctionNameCreateInteractionChoiceSet, - @10: SDLRPCFunctionNamePerformInteraction, - @11: SDLRPCFunctionNameDeleteInteractionChoiceSet, - @12: SDLRPCFunctionNameAlert, - @13: SDLRPCFunctionNameShow, - @14: SDLRPCFunctionNameSpeak, - @15: SDLRPCFunctionNameSetMediaClockTimer, - @16: SDLRPCFunctionNamePerformAudioPassThru, - @17: SDLRPCFunctionNameEndAudioPassThru, - @18: SDLRPCFunctionNameSubscribeButton, - @19: SDLRPCFunctionNameUnsubscribeButton, - @20: SDLRPCFunctionNameSubscribeVehicleData, - @21: SDLRPCFunctionNameUnsubscribeVehicleData, - @22: SDLRPCFunctionNameGetVehicleData, - @23: SDLRPCFunctionNameReadDID, - @24: SDLRPCFunctionNameGetDTCs, - @25: SDLRPCFunctionNameScrollableMessage, - @26: SDLRPCFunctionNameSlider, - @27: SDLRPCFunctionNameShowConstantTBT, - @28: SDLRPCFunctionNameAlertManeuver, - @29: SDLRPCFunctionNameUpdateTurnList, - @30: SDLRPCFunctionNameChangeRegistration, - @31: SDLRPCFunctionNameGenericResponse, - @32: SDLRPCFunctionNamePutFile, - @33: SDLRPCFunctionNameDeleteFile, - @34: SDLRPCFunctionNameListFiles, - @35: SDLRPCFunctionNameSetAppIcon, - @36: SDLRPCFunctionNameSetDisplayLayout, - @37: SDLRPCFunctionNameDiagnosticMessage, - @38: SDLRPCFunctionNameSystemRequest, - @39: SDLRPCFunctionNameSendLocation, - @40: SDLRPCFunctionNameDialNumber, - @41: SDLRPCFunctionNameButtonPress, - @43: SDLRPCFunctionNameGetInteriorVehicleData, - @44: SDLRPCFunctionNameSetInteriorVehicleData, - @45: SDLRPCFunctionNameGetWayPoints, - @46: SDLRPCFunctionNameSubscribeWayPoints, - @47: SDLRPCFunctionNameUnsubscribeWayPoints, - @48: SDLRPCFunctionNameGetSystemCapability, - @49: SDLRPCFunctionNameSendHapticData, - @50: SDLRPCFunctionNameSetCloudAppProperties, - @51: SDLRPCFunctionNameGetCloudAppProperties, - @52: SDLRPCFunctionNamePublishAppService, - @53: SDLRPCFunctionNameGetAppServiceData, - @54: SDLRPCFunctionNameGetFile, - @55: SDLRPCFunctionNamePerformAppServiceInteraction, - @56: SDLRPCFunctionNameUnpublishAppService, - @57: SDLRPCFunctionNameCancelInteraction, - @58: SDLRPCFunctionNameCloseApplication, - @59: SDLRPCFunctionNameShowAppMenu, - @60: SDLRPCFunctionNameCreateWindow, - @61: SDLRPCFunctionNameDeleteWindow, - @62: SDLRPCFunctionNameGetInteriorVehicleDataConsent, - @63: SDLRPCFunctionNameReleaseInteriorVehicleDataModule, - @32768: SDLRPCFunctionNameOnHMIStatus, - @32769: SDLRPCFunctionNameOnAppInterfaceUnregistered, - @32770: SDLRPCFunctionNameOnButtonEvent, - @32771: SDLRPCFunctionNameOnButtonPress, - @32772: SDLRPCFunctionNameOnVehicleData, - @32773: SDLRPCFunctionNameOnCommand, - @32774: SDLRPCFunctionNameOnTBTClientState, - @32775: SDLRPCFunctionNameOnDriverDistraction, - @32776: SDLRPCFunctionNameOnPermissionsChange, - @32777: SDLRPCFunctionNameOnAudioPassThru, - @32778: SDLRPCFunctionNameOnLanguageChange, - @32779: SDLRPCFunctionNameOnKeyboardInput, - @32780: SDLRPCFunctionNameOnTouchEvent, - @32781: SDLRPCFunctionNameOnSystemRequest, - @32782: SDLRPCFunctionNameOnHashChange, - @32783: SDLRPCFunctionNameOnInteriorVehicleData, - @32784: SDLRPCFunctionNameOnWayPointChange, - @32785: SDLRPCFunctionNameOnRCStatus, - @32786: SDLRPCFunctionNameOnAppServiceData, - @32787: SDLRPCFunctionNameOnSystemCapabilityUpdated, -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - @65536: SDLRPCFunctionNameEncodedSyncPData, - @65537: SDLRPCFunctionNameSyncPData, - @98304: SDLRPCFunctionNameOnEncodedSyncPData, - @98305: SDLRPCFunctionNameOnSyncPData -#pragma clang diagnostic pop - }; - return self; -} - -- (nullable SDLRPCFunctionName)functionNameForId:(UInt32)functionID { - return self.functionIds[@(functionID)]; -} - -- (nullable NSNumber *)functionIdForName:(SDLRPCFunctionName)functionName { - return [[self.functionIds allKeysForObject:functionName] firstObject]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.h deleted file mode 100644 index 417a99a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.h +++ /dev/null @@ -1,165 +0,0 @@ -// SDLGPSData.h -// - -#import "SDLRPCMessage.h" - -#import "SDLCompassDirection.h" -#import "SDLDimension.h" - - -/** - * Describes the GPS data. Not all data will be available on all carlines. - * - * @since SDL 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLGPSData : SDLRPCStruct - -/** - * longitude degrees - * - * Required, Float, -180 - 180 - */ -@property (strong, nonatomic) NSNumber *longitudeDegrees; - -/** - * latitude degrees - * - * Required, Float, -90 - 90 - */ -@property (strong, nonatomic) NSNumber *latitudeDegrees; - -/** - * utc year - * - * Optional, Integer, 2010 - 2100 - */ -@property (nullable, strong, nonatomic) NSNumber *utcYear; - -/** - * utc month - * - * Optional, Integer, 1 - 12 - */ -@property (nullable, strong, nonatomic) NSNumber *utcMonth; - -/** - * utc day - * - * Optional, Integer, 1 - 31 - */ -@property (nullable, strong, nonatomic) NSNumber *utcDay; - -/** - * utc hours - * - * Optional, Integer, 0 - 23 - */ -@property (nullable, strong, nonatomic) NSNumber *utcHours; - -/** - * utc minutes - * - * Optional, Integer, 0 - 59 - */ -@property (nullable, strong, nonatomic) NSNumber *utcMinutes; - -/** - * utc seconds - * - * Optional, Integer, 0 - 59 - */ -@property (nullable, strong, nonatomic) NSNumber *utcSeconds; - -/** - * Optional, Potential Compass Directions - */ -@property (nullable, strong, nonatomic) SDLCompassDirection compassDirection; - -/** - * The 3D positional dilution of precision. - * - * @discussion If undefined or unavailable, then value shall be set to 0 - * - * Required, Float, 0.0 - 1000.0 - */ -@property (nullable, strong, nonatomic) NSNumber *pdop; - -/** - * The horizontal dilution of precision - * - * @discussion If undefined or unavailable, then value shall be set to 0 - * - * Required, Float, 0.0 - 1000.0 - */ -@property (nullable, strong, nonatomic) NSNumber *hdop; - -/** - * the vertical dilution of precision - * - * @discussion If undefined or unavailable, then value shall be set to 0 - * - * Required, Float, 0.0 - 1000.0 - */ -@property (nullable, strong, nonatomic) NSNumber *vdop; - -/** - * What the coordinates are based on - * - * @discussion YES, if coordinates are based on satellites. NO, if based on dead reckoning. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *actual; - -/** - * The number of satellites in view - * - * Optional, Integer, 0 - 31 - */ -@property (nullable, strong, nonatomic) NSNumber *satellites; - -/** - * The supported dimensions of the GPS - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLDimension dimension; - -/** - * Altitude in meters - * - * Optional, Float, -10000.0 - 10000.0 - */ -@property (nullable, strong, nonatomic) NSNumber *altitude; - -/** - * Heading based on the GPS data. - * - * @discussion North is 0, East is 90, etc. Resolution is 0.01 - * - * Optional, Float, 0.0 - 359.99 - */ -@property (nullable, strong, nonatomic) NSNumber *heading; - -/** - * Speed in KPH - * - * Optional, Float, 0.0 - 500.0 - */ -@property (nullable, strong, nonatomic) NSNumber *speed; - -/** - * True, if GPS lat/long, time, and altitude have been purposefully shifted (requires a proprietary algorithm to unshift). - * False, if the GPS data is raw and un-shifted. - * If not provided, then value is assumed False. - * - * Optional, BOOL - */ -@property (nullable, strong, nonatomic) NSNumber *shifted; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.m deleted file mode 100644 index e70c6ff..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGPSData.m +++ /dev/null @@ -1,169 +0,0 @@ -// SDLGPSData.m -// - -#import "SDLGPSData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGPSData - -- (void)setLongitudeDegrees:(NSNumber *)longitudeDegrees { - [self.store sdl_setObject:longitudeDegrees forName:SDLRPCParameterNameLongitudeDegrees]; -} - -- (NSNumber *)longitudeDegrees { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLongitudeDegrees ofClass:NSNumber.class error:&error]; -} - -- (void)setLatitudeDegrees:(NSNumber *)latitudeDegrees { - [self.store sdl_setObject:latitudeDegrees forName:SDLRPCParameterNameLatitudeDegrees]; -} - -- (NSNumber *)latitudeDegrees { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLatitudeDegrees ofClass:NSNumber.class error:&error]; -} - -- (void)setUtcYear:(nullable NSNumber *)utcYear { - [self.store sdl_setObject:utcYear forName:SDLRPCParameterNameUTCYear]; -} - -- (nullable NSNumber *)utcYear { - return [self.store sdl_objectForName:SDLRPCParameterNameUTCYear ofClass:NSNumber.class error:nil]; -} - -- (void)setUtcMonth:(nullable NSNumber *)utcMonth { - [self.store sdl_setObject:utcMonth forName:SDLRPCParameterNameUTCMonth]; -} - -- (nullable NSNumber *)utcMonth { - return [self.store sdl_objectForName:SDLRPCParameterNameUTCMonth ofClass:NSNumber.class error:nil]; -} - -- (void)setUtcDay:(nullable NSNumber *)utcDay { - [self.store sdl_setObject:utcDay forName:SDLRPCParameterNameUTCDay]; -} - -- (nullable NSNumber *)utcDay { - return [self.store sdl_objectForName:SDLRPCParameterNameUTCDay ofClass:NSNumber.class error:nil]; -} - -- (void)setUtcHours:(nullable NSNumber *)utcHours { - [self.store sdl_setObject:utcHours forName:SDLRPCParameterNameUTCHours]; -} - -- (nullable NSNumber *)utcHours { - return [self.store sdl_objectForName:SDLRPCParameterNameUTCHours ofClass:NSNumber.class error:nil]; -} - -- (void)setUtcMinutes:(nullable NSNumber *)utcMinutes { - [self.store sdl_setObject:utcMinutes forName:SDLRPCParameterNameUTCMinutes]; -} - -- (nullable NSNumber *)utcMinutes { - return [self.store sdl_objectForName:SDLRPCParameterNameUTCMinutes ofClass:NSNumber.class error:nil]; -} - -- (void)setUtcSeconds:(nullable NSNumber *)utcSeconds { - [self.store sdl_setObject:utcSeconds forName:SDLRPCParameterNameUTCSeconds]; -} - -- (nullable NSNumber *)utcSeconds { - return [self.store sdl_objectForName:SDLRPCParameterNameUTCSeconds ofClass:NSNumber.class error:nil]; -} - -- (void)setCompassDirection:(nullable SDLCompassDirection)compassDirection { - [self.store sdl_setObject:compassDirection forName:SDLRPCParameterNameCompassDirection]; -} - -- (nullable SDLCompassDirection)compassDirection { - return [self.store sdl_enumForName:SDLRPCParameterNameCompassDirection error:nil]; -} - -- (void)setPdop:(nullable NSNumber *)pdop { - [self.store sdl_setObject:pdop forName:SDLRPCParameterNamePDOP]; -} - -- (nullable NSNumber *)pdop { - return [self.store sdl_objectForName:SDLRPCParameterNamePDOP ofClass:NSNumber.class error:nil]; -} - -- (void)setHdop:(nullable NSNumber *)hdop { - [self.store sdl_setObject:hdop forName:SDLRPCParameterNameHDOP]; -} - -- (nullable NSNumber *)hdop { - return [self.store sdl_objectForName:SDLRPCParameterNameHDOP ofClass:NSNumber.class error:nil]; -} - -- (void)setVdop:(nullable NSNumber *)vdop { - [self.store sdl_setObject:vdop forName:SDLRPCParameterNameVDOP]; -} - -- (nullable NSNumber *)vdop { - return [self.store sdl_objectForName:SDLRPCParameterNameVDOP ofClass:NSNumber.class error:nil]; -} - -- (void)setActual:(nullable NSNumber *)actual { - [self.store sdl_setObject:actual forName:SDLRPCParameterNameActual]; -} - -- (nullable NSNumber *)actual { - return [self.store sdl_objectForName:SDLRPCParameterNameActual ofClass:NSNumber.class error:nil]; -} - -- (void)setSatellites:(nullable NSNumber *)satellites { - [self.store sdl_setObject:satellites forName:SDLRPCParameterNameSatellites]; -} - -- (nullable NSNumber *)satellites { - return [self.store sdl_objectForName:SDLRPCParameterNameSatellites ofClass:NSNumber.class error:nil]; -} - -- (void)setDimension:(nullable SDLDimension)dimension { - [self.store sdl_setObject:dimension forName:SDLRPCParameterNameDimension]; -} - -- (nullable SDLDimension)dimension { - return [self.store sdl_enumForName:SDLRPCParameterNameDimension error:nil]; -} - -- (void)setAltitude:(nullable NSNumber *)altitude { - [self.store sdl_setObject:altitude forName:SDLRPCParameterNameAltitude]; -} - -- (nullable NSNumber *)altitude { - return [self.store sdl_objectForName:SDLRPCParameterNameAltitude ofClass:NSNumber.class error:nil]; -} - -- (void)setHeading:(nullable NSNumber *)heading { - [self.store sdl_setObject:heading forName:SDLRPCParameterNameHeading]; -} - -- (nullable NSNumber *)heading { - return [self.store sdl_objectForName:SDLRPCParameterNameHeading ofClass:NSNumber.class error:nil]; -} - -- (void)setSpeed:(nullable NSNumber *)speed { - [self.store sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; -} - -- (nullable NSNumber *)speed { - return [self.store sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; -} - -- (void)setShifted:(nullable NSNumber *)shifted { - [self.store sdl_setObject:shifted forName:SDLRPCParameterNameShifted]; -} - -- (nullable NSNumber *)shifted { - return [self.store sdl_objectForName:SDLRPCParameterNameShifted ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGenericResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGenericResponse.h deleted file mode 100644 index 953d249..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGenericResponse.h +++ /dev/null @@ -1,17 +0,0 @@ -// SDLGenericResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Generic Response is sent when the name of a received request is unknown. It is only used in case of an error. It will have an INVALID_DATA result code. - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLGenericResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGenericResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGenericResponse.m deleted file mode 100644 index 59cca10..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGenericResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLGenericResponse.m -// - - -#import "SDLGenericResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGenericResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGenericResponse]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.h deleted file mode 100644 index e1882a3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// SDLGetAppServiceData.h -// SmartDeviceLink -// -// Created by Nicole on 2/6/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -#import "SDLAppServiceType.h" - - -NS_ASSUME_NONNULL_BEGIN - -/** - * This request asks the module for current data related to the specific service. It also includes an option to subscribe to that service for future updates. - */ -@interface SDLGetAppServiceData : SDLRPCRequest - -/** - * Convenience init for service type. - * - * @param serviceType The app service type - * @return A SDLGetAppServiceData object - */ -- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType; - -/** - * Convenience init for subscribing to a service type. - * - * @param serviceType The app service type - * @return A SDLGetAppServiceData object - */ -- (instancetype)initAndSubscribeToAppServiceType:(SDLAppServiceType)serviceType; - -/** - Convenience init for unsubscribing to a service type - - @param serviceType The app service type - @return A SDLGetAppServiceData object - */ -- (instancetype)initAndUnsubscribeToAppServiceType:(SDLAppServiceType)serviceType; - -/** - * The type of service that is to be offered by this app. See `AppServiceType` for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core. - * - * String, See `SDLAppServiceType`, Required - */ -@property (strong, nonatomic) NSString *serviceType; - -/** - * If true, the consumer is requesting to subscribe to all future updates from the service publisher. If false, the consumer doesn't wish to subscribe and should be unsubscribed if it was previously subscribed. - * - * Boolean, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *subscribe; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.m deleted file mode 100644 index 55efbbd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceData.m +++ /dev/null @@ -1,77 +0,0 @@ -// -// SDLGetAppServiceData.m -// SmartDeviceLink -// -// Created by Nicole on 2/6/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLGetAppServiceData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetAppServiceData - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetAppServiceData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType { - self = [self init]; - if (!self) { - return nil; - } - - self.serviceType = serviceType; - - return self; -} - -- (instancetype)initAndSubscribeToAppServiceType:(SDLAppServiceType)serviceType { - return [self initWithServiceType:serviceType subscribe:YES]; -} - -- (instancetype)initAndUnsubscribeToAppServiceType:(SDLAppServiceType)serviceType { - return [self initWithServiceType:serviceType subscribe:NO]; -} - -- (instancetype)initWithServiceType:(SDLAppServiceType)serviceType subscribe:(BOOL)subscribe { - self = [self initWithAppServiceType:serviceType]; - if (!self) { - return nil; - } - - self.subscribe = @(subscribe); - - return self; -} - -- (void)setServiceType:(NSString *)serviceType { - [self.parameters sdl_setObject:serviceType forName:SDLRPCParameterNameServiceType]; -} - -- (NSString *)serviceType { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceType ofClass:NSString.class error:&error]; -} - -- (void)setSubscribe:(nullable NSNumber *)subscribe { - [self.parameters sdl_setObject:subscribe forName:SDLRPCParameterNameSubscribe]; -} - -- (nullable NSNumber *)subscribe { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSubscribe ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.h deleted file mode 100644 index 30b2c6c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// SDLGetAppServiceDataResponse.h -// SmartDeviceLink -// -// Created by Nicole on 2/6/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -@class SDLAppServiceData; - -NS_ASSUME_NONNULL_BEGIN - -/** - * This response includes the data that was requested from the specific service. - */ -@interface SDLGetAppServiceDataResponse : SDLRPCResponse - -/** - * Convenience init. - * - * @param serviceData Contains all the current data of the app service - * @return A SDLGetAppServiceDataResponse object - */ -- (instancetype)initWithAppServiceData:(SDLAppServiceData *)serviceData; - -/** - * Contains all the current data of the app service. - * - * SDLAppServiceData, Optional - */ -@property (nullable, strong, nonatomic) SDLAppServiceData *serviceData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.m deleted file mode 100644 index 110d673..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetAppServiceDataResponse.m +++ /dev/null @@ -1,50 +0,0 @@ -// -// SDLGetAppServiceDataResponse.m -// SmartDeviceLink -// -// Created by Nicole on 2/6/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLGetAppServiceDataResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLAppServiceData.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetAppServiceDataResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetAppServiceData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithAppServiceData:(SDLAppServiceData *)serviceData { - self = [self init]; - if (!self) { - return nil; - } - - self.serviceData = serviceData; - - return self; -} - -- (void)setServiceData:(nullable SDLAppServiceData *)serviceData { - [self.parameters sdl_setObject:serviceData forName:SDLRPCParameterNameServiceData]; -} - -- (nullable SDLAppServiceData *)serviceData { - return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceData ofClass:SDLAppServiceData.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.h deleted file mode 100644 index 9103b3a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// SDLGetCloudAppProperties.h -// SmartDeviceLink -// -// Created by Nicole on 2/26/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * RPC used to get the current properties of a cloud application. - */ -@interface SDLGetCloudAppProperties : SDLRPCRequest - -/** - * Convenience init. - * - * @param appID The id of the cloud app - * @return A SDLGetCloudAppProperties object - */ -- (instancetype)initWithAppID:(NSString *)appID; - -/** - * The id of the cloud app. - * - * String, Required, maxlength="100" - */ -@property (strong, nonatomic) NSString *appID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.m deleted file mode 100644 index 030c2bd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppProperties.m +++ /dev/null @@ -1,50 +0,0 @@ -// -// SDLGetCloudAppProperties.m -// SmartDeviceLink -// -// Created by Nicole on 2/26/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLGetCloudAppProperties.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetCloudAppProperties - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetCloudAppProperties]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithAppID:(NSString *)appID { - self = [self init]; - if (!self) { - return nil; - } - - self.appID = appID; - - return self; -} - -- (void)setAppID:(NSString *)appID { - [self.parameters sdl_setObject:appID forName:SDLRPCParameterNameAppId]; -} - -- (NSString *)appID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameAppId ofClass:NSString.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h deleted file mode 100644 index 356bd32..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// SDLGetCloudAppPropertiesResponse.h -// SmartDeviceLink -// -// Created by Nicole on 2/26/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -@class SDLCloudAppProperties; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * The response to GetCloudAppProperties - */ -@interface SDLGetCloudAppPropertiesResponse : SDLRPCResponse - -/** - * Convenience init. - * - * @param properties The requested cloud application properties - * @return A SDLGetCloudAppPropertiesResponse object - */ -- (instancetype)initWithProperties:(SDLCloudAppProperties *)properties; - -/** - * The requested cloud application properties. - * - * SDLCloudAppProperties, Optional - */ -@property (nullable, strong, nonatomic) SDLCloudAppProperties *properties; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m deleted file mode 100644 index 6114c46..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m +++ /dev/null @@ -1,51 +0,0 @@ -// -// SDLGetCloudAppPropertiesResponse.m -// SmartDeviceLink -// -// Created by Nicole on 2/26/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLGetCloudAppPropertiesResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLCloudAppProperties.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetCloudAppPropertiesResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetCloudAppProperties]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithProperties:(SDLCloudAppProperties *)properties { - self = [self init]; - if (!self) { - return nil; - } - - self.properties = properties; - - return self; -} - -- (void)setProperties:(nullable SDLCloudAppProperties *)properties { - [self.parameters sdl_setObject:properties forName:SDLRPCParameterNameProperties]; -} - -- (nullable SDLCloudAppProperties *)properties { - return [self.parameters sdl_objectForName:SDLRPCParameterNameProperties ofClass:SDLCloudAppProperties.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.h deleted file mode 100644 index 2ba8339..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.h +++ /dev/null @@ -1,48 +0,0 @@ -// SDLGetDTCs.h -// - - -#import "SDLRPCRequest.h" - -/** - * This RPC allows to request diagnostic module trouble codes from a certain - * vehicle module - *

      - * Function Group: ProprietaryData - *

      - * HMILevel needs to be FULL, LIMITED or BACKGROUND - *

      - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLGetDTCs : SDLRPCRequest - -/// Convenience init -/// -/// @param name Name of the module to receive the DTC form -/// @return An SDLGetDTCs object -- (instancetype)initWithECUName:(UInt16)name; - -/// Convenience init with all properties -/// -/// @param name Name of the module to receive the DTC form -/// @param mask DTC Mask Byte to be sent in diagnostic request to module -/// @return An SDLGetDTCs object -- (instancetype)initWithECUName:(UInt16)name mask:(UInt8)mask; - -/** - * a name of the module to receive the DTC form - * @discussion an NSNumber value representing a name of the module to receive - * the DTC form - *

      - * Notes: Minvalue:0; Maxvalue:65535 - */ -@property (strong, nonatomic) NSNumber *ecuName; -/** - * DTC Mask Byte to be sent in diagnostic request to module. NSNumber* dtcMask Minvalue:0; Maxvalue:255 - */ -@property (nullable, strong, nonatomic) NSNumber *dtcMask; -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.m deleted file mode 100644 index 95fcff1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCs.m +++ /dev/null @@ -1,65 +0,0 @@ -// SDLGetDTCs.m -// - - -#import "SDLGetDTCs.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetDTCs - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetDTCs]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithECUName:(UInt16)name mask:(UInt8)mask { - self = [self initWithECUName:name]; - if (!self) { - return nil; - } - - self.dtcMask = @(mask); - - return self; -} - -- (instancetype)initWithECUName:(UInt16)name { - self = [self init]; - if (!self) { - return nil; - } - - self.ecuName = @(name); - - return self; -} - -- (void)setEcuName:(NSNumber *)ecuName { - [self.parameters sdl_setObject:ecuName forName:SDLRPCParameterNameECUName]; -} - -- (NSNumber *)ecuName { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameECUName ofClass:NSNumber.class error:&error]; -} - -- (void)setDtcMask:(nullable NSNumber *)dtcMask { - [self.parameters sdl_setObject:dtcMask forName:SDLRPCParameterNameDTCMask]; -} - -- (nullable NSNumber *)dtcMask { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDTCMask ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.h deleted file mode 100644 index fd05f41..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.h +++ /dev/null @@ -1,31 +0,0 @@ -// SDLGetDTCsResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to SDLGetDTCs - - Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLGetDTCsResponse : SDLRPCResponse - -/** - 2 byte ECU Header for DTC response (as defined in VHR_Layout_Specification_DTCs.pdf) - - Optional - */ -@property (nullable, strong, nonatomic) NSNumber *ecuHeader; - -/** - Array of all reported DTCs on module (ecuHeader contains information if list is truncated). Each DTC is represented by 4 bytes (3 bytes of data and 1 byte status as defined in VHR_Layout_Specification_DTCs.pdf). - */ -@property (strong, nonatomic) NSArray *dtc; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.m deleted file mode 100644 index 3d141c9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetDTCsResponse.m +++ /dev/null @@ -1,44 +0,0 @@ -// SDLGetDTCsResponse.m -// - - -#import "SDLGetDTCsResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetDTCsResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetDTCs]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setEcuHeader:(nullable NSNumber *)ecuHeader { - [self.parameters sdl_setObject:ecuHeader forName:SDLRPCParameterNameECUHeader]; -} - -- (nullable NSNumber *)ecuHeader { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameECUHeader ofClass:NSNumber.class error:&error]; -} - -- (void)setDtc:(NSArray *)dtc { - [self.parameters sdl_setObject:dtc forName:SDLRPCParameterNameDTC]; -} - -- (NSArray *)dtc { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameDTC ofClass:NSString.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.h deleted file mode 100644 index bdc7936..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.h +++ /dev/null @@ -1,86 +0,0 @@ -// -// SDLGetFile.h -// SmartDeviceLink -// -// Created by Nicole on 2/7/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" -#import "SDLFileType.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * This request is sent to the module to retrieve a file. - */ -@interface SDLGetFile : SDLRPCRequest - -/** - * Convenience init for required parameters. - * - * @param fileName File name that should be retrieved. - * @return A SDLGetFile object - */ -- (instancetype)initWithFileName:(NSString *)fileName; - -/** - * Convenience init for sending a small file. - * - * @param fileName File name that should be retrieved. - * @param appServiceId ID of the service that should have uploaded the requested file - * @param fileType Selected file type - * @return A SDLGetFile object - */ -- (instancetype)initWithFileName:(NSString *)fileName appServiceId:(nullable NSString *)appServiceId fileType:(nullable SDLFileType)fileType; - -/** - * Convenience init for sending a large file in multiple data chunks. - * - * @param fileName File name that should be retrieved. - * @param appServiceId ID of the service that should have uploaded the requested file - * @param fileType Selected file type - * @param offset Offset in bytes for resuming partial data chunks - * @param length Length in bytes for resuming partial data chunks - * @return A SDLGetFile object - */ -- (instancetype)initWithFileName:(NSString *)fileName appServiceId:(nullable NSString *)appServiceId fileType:(nullable SDLFileType)fileType offset:(UInt32)offset length:(UInt32)length; - -/** - * File name that should be retrieved. - * - * String, Required, Max string length 255 chars - */ -@property (strong, nonatomic) NSString *fileName; - -/** - * ID of the service that should have uploaded the requested file. - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *appServiceId; - -/** - * Selected file type. - * - * SDLFileType, Optional - */ -@property (nullable, strong, nonatomic) SDLFileType fileType; - -/** - * Optional offset in bytes for resuming partial data chunks. - * - * Integer, Optional, minvalue="0" maxvalue="2000000000" - */ -@property (nullable, strong, nonatomic) NSNumber *offset; - -/** - * Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded. - * - * Integer, Optional, minvalue="0" maxvalue="2000000000" - */ -@property (nullable, strong, nonatomic) NSNumber *length; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.m deleted file mode 100644 index 239a034..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFile.m +++ /dev/null @@ -1,107 +0,0 @@ -// -// SDLGetFile.m -// SmartDeviceLink -// -// Created by Nicole on 2/7/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLGetFile.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetFile - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetFile]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithFileName:(NSString *)fileName { - self = [self init]; - if (!self) { - return nil; - } - - self.fileName = fileName; - - return self; -} - -- (instancetype)initWithFileName:(NSString *)fileName appServiceId:(nullable NSString *)appServiceId fileType:(nullable SDLFileType)fileType { - self = [self initWithFileName:fileName]; - if (!self) { - return nil; - } - - self.appServiceId = appServiceId; - self.fileType = fileType; - - return self; -} - -- (instancetype)initWithFileName:(NSString *)fileName appServiceId:(nullable NSString *)appServiceId fileType:(nullable SDLFileType)fileType offset:(UInt32)offset length:(UInt32)length { - self = [self initWithFileName:fileName appServiceId:appServiceId fileType:fileType]; - if (!self) { - return nil; - } - - self.offset = @(offset); - self.length = @(length); - - return self; -} - -- (void)setFileName:(NSString *)fileName { - [self.parameters sdl_setObject:fileName forName:SDLRPCParameterNameFilename]; -} - -- (NSString *)fileName { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameFilename ofClass:NSString.class error:&error]; -} - -- (void)setAppServiceId:(nullable NSString *)appServiceId { - [self.parameters sdl_setObject:appServiceId forName:SDLRPCParameterNameAppServiceId]; -} - -- (nullable NSString *)appServiceId { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAppServiceId ofClass:NSString.class error:nil]; -} - -- (void)setFileType:(nullable SDLFileType)fileType { - [self.parameters sdl_setObject:fileType forName:SDLRPCParameterNameFileType]; -} - -- (nullable SDLFileType)fileType { - return [self.parameters sdl_enumForName:SDLRPCParameterNameFileType error:nil]; -} - -- (void)setOffset:(nullable NSNumber *)offset { - [self.parameters sdl_setObject:offset forName:SDLRPCParameterNameOffset]; -} - -- (nullable NSNumber *)offset { - return [self.parameters sdl_objectForName:SDLRPCParameterNameOffset ofClass:NSNumber.class error:nil]; -} - -- (void)setLength:(nullable NSNumber *)length { - [self.parameters sdl_setObject:length forName:SDLRPCParameterNameLength]; -} - -- (nullable NSNumber *)length { - return [self.parameters sdl_objectForName:SDLRPCParameterNameLength ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.h deleted file mode 100644 index 52a2fb5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// SDLGetFileResponse.h -// SmartDeviceLink -// -// Created by Nicole on 2/7/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -#import "SDLFileType.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Response to GetFiles -/// -/// @since RPC 5.1 -@interface SDLGetFileResponse : SDLRPCResponse - -/** - * Convenience init for all parameters. - * - * @param offset Optional offset in bytes for resuming partial data chunks - * @param length Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded - * @param fileType File type that is being sent in response - * @param crc Additional CRC32 checksum to protect data integrity up to 512 Mbits - * @return A SDLGetFileResponse object - */ -- (instancetype)initWithOffset:(UInt32)offset length:(UInt32)length fileType:(nullable SDLFileType)fileType crc:(UInt32)crc; - -/** - * Optional offset in bytes for resuming partial data chunks. - * - * Integer, Optional, minvalue="0" maxvalue="2000000000" - */ -@property (nullable, strong, nonatomic) NSNumber *offset; - -/** - * Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded. - * - * Integer, Optional, minvalue="0" maxvalue="2000000000" - */ -@property (nullable, strong, nonatomic) NSNumber *length; - -/** - * File type that is being sent in response. - * - * SDLFileType, Optional - */ -@property (nullable, strong, nonatomic) SDLFileType fileType; - -/** - * Additional CRC32 checksum to protect data integrity up to 512 Mbits. - * - * Integer, Optional, minvalue="0" maxvalue="4294967295" - */ -@property (nullable, strong, nonatomic) NSNumber *crc; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.m deleted file mode 100644 index 57a2b3f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetFileResponse.m +++ /dev/null @@ -1,76 +0,0 @@ -// -// SDLGetFileResponse.m -// SmartDeviceLink -// -// Created by Nicole on 2/7/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLGetFileResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetFileResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetFile]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithOffset:(UInt32)offset length:(UInt32)length fileType:(nullable SDLFileType)fileType crc:(UInt32)crc { - self = [self init]; - if (!self) { - return nil; - } - - self.offset = @(offset); - self.length = @(length); - self.fileType = fileType; - self.crc = @(crc); - - return self; -} - -- (void)setOffset:(nullable NSNumber *)offset { - [self.parameters sdl_setObject:offset forName:SDLRPCParameterNameOffset]; -} - -- (nullable NSNumber *)offset { - return [self.parameters sdl_objectForName:SDLRPCParameterNameOffset ofClass:NSNumber.class error:nil]; -} - -- (void)setLength:(nullable NSNumber *)length { - [self.parameters sdl_setObject:length forName:SDLRPCParameterNameLength]; -} - -- (nullable NSNumber *)length { - return [self.parameters sdl_objectForName:SDLRPCParameterNameLength ofClass:NSNumber.class error:nil]; -} - -- (void)setFileType:(nullable SDLFileType)fileType { - [self.parameters sdl_setObject:fileType forName:SDLRPCParameterNameFileType]; -} - -- (nullable SDLFileType)fileType { - return [self.parameters sdl_enumForName:SDLRPCParameterNameFileType error:nil]; -} - -- (void)setCrc:(nullable NSNumber *)crc { - [self.parameters sdl_setObject:crc forName:SDLRPCParameterNameCRC]; -} - -- (nullable NSNumber *)crc { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCRC ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.h deleted file mode 100644 index baddec9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.h +++ /dev/null @@ -1,84 +0,0 @@ -// -// SDLGetInteriorVehicleData.h -// - -#import "SDLRPCRequest.h" -#import "SDLModuleType.h" -#import "SDLModuleInfo.h" - -/** - * Reads the current status value of specified remote control module (type). - * When subscribe is true, subscribes for specific remote control module data items. - * When subscribe is false, unsubscribes for specific remote control module data items. - * Once subscribed, the application will be notified by the onInteriorVehicleData RPC notification - * whenever new data is available for the module. - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLGetInteriorVehicleData : SDLRPCRequest - -/// Convenience init to get information of a particular module type with a module ID. -/// -/// @param moduleType The type of a RC module to retrieve module data from the vehicle -/// @param moduleId Id of a module, published by System Capability -/// @return An SDLGetInteriorVehicleData object -- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId; - -/// Convenience init to get information and subscribe to a particular module type with a module ID. -/// -/// @param moduleType The type of a RC module to retrieve module data from the vehicle -/// @param moduleId Id of a module, published by System Capability -/// @return An SDLGetInteriorVehicleData object -- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId; - -/// Convenience init to unsubscribe from particular module with a module ID. -/// -/// @param moduleType The type of a RC module to retrieve module data from the vehicle -/// @param moduleId Id of a module, published by System Capability -/// @return An SDLGetInteriorVehicleData object -- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId; - -/// Convenience init to get information of a particular module type. -/// -/// @param moduleType The type of a RC module to retrieve module data from the vehicle -/// @return An SDLGetInteriorVehicleData object -- (instancetype)initWithModuleType:(SDLModuleType)moduleType __deprecated_msg("Use initWithModuleType:moduleId: instead"); - -/// Convenience init to get information and subscribe to a particular module type. -/// -/// @param moduleType The type of a RC module to retrieve module data from the vehicle -/// @return An SDLGetInteriorVehicleData object -- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType __deprecated_msg("Use initAndSubscribeToModuleType:moduleId: instead"); - -/// Convenience init to unsubscribe from particular module type. -/// -/// @param moduleType The type of a RC module to retrieve module data from the vehicle -/// @return An SDLGetInteriorVehicleData object -- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType __deprecated_msg("Use initAndUnsubscribeToModuleType:moduleId:"); - -/** - * The type of a RC module to retrieve module data from the vehicle. - * - */ -@property (strong, nonatomic) SDLModuleType moduleType; - -/** - * Id of a module, published by System Capability. - * - * Optional - */ -@property (nullable, strong, nonatomic) NSString *moduleId; - -/** - * If subscribe is true, the head unit will register OnInteriorVehicleData notifications for the requested module (moduleId and moduleType). - * If subscribe is false, the head unit will unregister OnInteriorVehicleData notifications for the requested module (moduleId and moduleType). - * If subscribe is not included, the subscription status of the app for the requested module (moduleId and moduleType) will remain unchanged. - * - * optional, Boolean, default Value = false - */ -@property (nullable, strong, nonatomic) NSNumber *subscribe; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.m deleted file mode 100755 index 57f0aa8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleData.m +++ /dev/null @@ -1,124 +0,0 @@ -// -// SDLGetInteriorVehicleData.m -// - -#import "SDLGetInteriorVehicleData.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetInteriorVehicleData - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetInteriorVehicleData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId { - self = [self init]; - if (!self) { - return nil; - } - - self.moduleType = moduleType; - self.moduleId = moduleId; - - return self; -} - -- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId { - self = [self init]; - if (!self) { - return nil; - } - - self.moduleType = moduleType; - self.moduleId = moduleId; - self.subscribe = @(YES); - - return self; -} - -- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId { - self = [self init]; - if (!self) { - return nil; - } - - self.moduleType = moduleType; - self.moduleId = moduleId; - self.subscribe = @(NO); - - return self; -} - -- (instancetype)initWithModuleType:(SDLModuleType)moduleType; { - self = [self init]; - if (!self) { - return nil; - } - - self.moduleType = moduleType; - - return self; -} - -- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType { - self = [self init]; - if (!self) { - return nil; - } - - self.moduleType = moduleType; - self.subscribe = @(YES); - - return self; -} - -- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType { - self = [self init]; - if (!self) { - return nil; - } - - self.moduleType = moduleType; - self.subscribe = @(NO); - - return self; -} - -- (void)setModuleType:(SDLModuleType)moduleType { - [self.parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; -} - -- (SDLModuleType)moduleType { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; -} - -- (void)setSubscribe:(nullable NSNumber *)subscribe { - [self.parameters sdl_setObject:subscribe forName:SDLRPCParameterNameSubscribe]; -} - -- (nullable NSNumber *)subscribe { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSubscribe ofClass:NSNumber.class error:nil]; -} - -- (void)setModuleId:(nullable NSString *)moduleId { - [self.parameters sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId]; -} - -- (nullable NSString *)moduleId { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h deleted file mode 100644 index b3ab234..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// SDLGetInteriorVehicleDataConsent.h -// SmartDeviceLink -// -// Created by standa1 on 7/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" -#import "SDLModuleType.h" - -NS_ASSUME_NONNULL_BEGIN - - -/// This RPC allows you to get consent to control a certian module -/// -/// @since RPC 6.0 -@interface SDLGetInteriorVehicleDataConsent : SDLRPCRequest - -/// Convenience init to get consent to control a module -/// -/// @param moduleType The module type that the app requests to control -/// @param moduleIds Ids of a module of same type, published by System Capability -/// @return An SDLGetInteriorVehicleDataConsent object -- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleIds:(NSArray *)moduleIds; - -/** - * The module type that the app requests to control. - * - * Required - */ -@property (strong, nonatomic) SDLModuleType moduleType; - -/** - * Ids of a module of same type, published by System Capability. - * - * Required - */ -@property (strong, nonatomic) NSArray *moduleIds; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m deleted file mode 100644 index 88ed0d8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m +++ /dev/null @@ -1,55 +0,0 @@ -// -// SDLGetInteriorVehicleDataConsent.m -// SmartDeviceLink -// -// Created by standa1 on 7/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLGetInteriorVehicleDataConsent.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "NSMutableDictionary+Store.h" - -@implementation SDLGetInteriorVehicleDataConsent - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetInteriorVehicleDataConsent]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleIds:(NSArray *)moduleIds { - self = [self init]; - if (!self) { - return nil; - } - - self.moduleType = moduleType; - self.moduleIds = moduleIds; - - return self; -} - -- (void)setModuleType:(SDLModuleType)moduleType { - [self.parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; -} - -- (SDLModuleType)moduleType { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; -} - -- (void)setModuleIds:(NSArray *)moduleIds { - [self.parameters sdl_setObject:moduleIds forName:SDLRPCParameterNameModuleIds]; -} - -- (NSArray *)moduleIds { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameModuleIds ofClass:NSString.class error:&error]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h deleted file mode 100644 index cbe315d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLGetInteriorVehicleDataConsentResponse.h -// SmartDeviceLink -// -// Created by standa1 on 7/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Response to GetInteriorVehicleDataConsent -/// -/// @since RPC 6.0 -@interface SDLGetInteriorVehicleDataConsentResponse : SDLRPCResponse - -/** - This array has the same size as "moduleIds" in the request; each element corresponding to one moduleId - "true" - if SDL grants the permission for the requested module - "false" - SDL denies the permission for the requested module. - - Optional, contains a boolean - */ -@property (strong, nonatomic, nullable) NSArray *allowed; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m deleted file mode 100644 index 369b636..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m +++ /dev/null @@ -1,34 +0,0 @@ -// -// SDLGetInteriorVehicleDataConsentResponse.m -// SmartDeviceLink -// -// Created by standa1 on 7/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLGetInteriorVehicleDataConsentResponse.h" -#import "NSMutableDictionary+Store.h" -#import "SDLRPCFunctionNames.h" -#import "SDLRPCParameterNames.h" - -@implementation SDLGetInteriorVehicleDataConsentResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetInteriorVehicleDataConsent]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setAllowed:(nullable NSArray *)allowed { - [self.parameters sdl_setObject:allowed forName:SDLRPCParameterNameAllowed]; -} - -- (nullable NSArray *)allowed { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameAllowed ofClass:NSNumber.class error:&error]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h deleted file mode 100644 index 5ab234e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// SDLGetInteriorVehicleDataResponse.h -// - -#import "SDLRPCResponse.h" -@class SDLModuleData; - -NS_ASSUME_NONNULL_BEGIN - -/** - A response to SDLGetInteriorVehicleData - */ -@interface SDLGetInteriorVehicleDataResponse : SDLRPCResponse - -/** - The requested data - - Optional - */ -@property (nullable, strong, nonatomic) SDLModuleData *moduleData; - -/** - It is a conditional-mandatory parameter: must be returned in case "subscribe" parameter was present in the related request. - - If "true" - the "moduleType" from request is successfully subscribed and the head unit will send onInteriorVehicleData notifications for the moduleType. - - If "false" - the "moduleType" from request is either unsubscribed or failed to subscribe. - - Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *isSubscribed; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m deleted file mode 100644 index c729e66..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m +++ /dev/null @@ -1,45 +0,0 @@ -// -// SDLGetInteriorVehicleDataResponse.m -// - -#import "SDLGetInteriorVehicleDataResponse.h" -#import "SDLModuleData.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - - -@implementation SDLGetInteriorVehicleDataResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetInteriorVehicleData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setModuleData:(nullable SDLModuleData *)moduleData { - [self.parameters sdl_setObject:moduleData forName:SDLRPCParameterNameModuleData]; -} - -- (nullable SDLModuleData *)moduleData { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleData ofClass:SDLModuleData.class error:&error]; -} - -- (void)setIsSubscribed:(nullable NSNumber *)isSubscribed { - [self.parameters sdl_setObject:isSubscribed forName:SDLRPCParameterNameIsSubscribed]; -} - -- (nullable NSNumber *)isSubscribed { - return [self.parameters sdl_objectForName:SDLRPCParameterNameIsSubscribed ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.h deleted file mode 100644 index 004074e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.h +++ /dev/null @@ -1,56 +0,0 @@ -// -// SDLGetSystemCapability.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/11/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLRPCRequest.h" -#import "SDLSystemCapabilityType.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * SDL RPC Request for expanded information about a supported system/HMI capability - * - * @since SDL 4.5 - */ -@interface SDLGetSystemCapability : SDLRPCRequest - -/** - * Convenience init - * - * @param type The type of system capability - * @return A SDLSystemCapabilityType object - */ -- (instancetype)initWithType:(SDLSystemCapabilityType)type; - -/** - * Convenience init - * - * @param type The type of system capability - * @param subscribe Whether or not to subscribe to updates of the supplied service capability type - * @return A SDLSystemCapabilityType object - */ -- (instancetype)initWithType:(SDLSystemCapabilityType)type subscribe:(BOOL)subscribe; - -/** - * The type of system capability to get more information on - * - * SDLSystemCapabilityType, Required - */ -@property (strong, nonatomic) SDLSystemCapabilityType systemCapabilityType; - -/** - * Flag to subscribe to updates of the supplied service capability type. If true, the requester will be subscribed. If false, the requester will not be subscribed and be removed as a subscriber if it was previously subscribed. - * - * Boolean, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *subscribe; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.m deleted file mode 100644 index 0e966de..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapability.m +++ /dev/null @@ -1,70 +0,0 @@ -// -// SDLGetSystemCapability.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/11/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLGetSystemCapability.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSystemCapabilityType.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetSystemCapability - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetSystemCapability]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithType:(SDLSystemCapabilityType)type { - self = [self init]; - if (!self) { - return nil; - } - - self.systemCapabilityType = type; - - return self; -} - -- (instancetype)initWithType:(SDLSystemCapabilityType)type subscribe:(BOOL)subscribe { - self = [self initWithType:type]; - if (!self) { - return nil; - } - - self.subscribe = @(subscribe); - - return self; -} - -- (void)setSystemCapabilityType:(SDLSystemCapabilityType)type { - [self.parameters sdl_setObject:type forName:SDLRPCParameterNameSystemCapabilityType]; -} - -- (SDLSystemCapabilityType)systemCapabilityType { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameSystemCapabilityType error:&error]; -} - -- (void)setSubscribe:(nullable NSNumber *)subscribe { - [self.parameters sdl_setObject:subscribe forName:SDLRPCParameterNameSubscribe]; -} - -- (nullable NSNumber *)subscribe { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSubscribe ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.h deleted file mode 100644 index 215a4c4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// SDLGetSystemCapabilityResponse.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/11/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLRPCResponse.h" - -@class SDLSystemCapability; - - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLGetSystemCapability - */ -@interface SDLGetSystemCapabilityResponse : SDLRPCResponse - -/** - The requested system capability, of the type that was sent in the request - - Optional - */ -@property (nullable, strong, nonatomic) SDLSystemCapability *systemCapability; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.m deleted file mode 100644 index 730f74c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetSystemCapabilityResponse.m +++ /dev/null @@ -1,44 +0,0 @@ -// -// SDLGetSystemCapabilityResponse.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/11/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLGetSystemCapabilityResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSystemCapability.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetSystemCapabilityResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - self = [super initWithName:SDLRPCFunctionNameGetSystemCapability]; - if (!self) { - return nil; - } - - return self; -} -#pragma clang diagnostic pop - -- (void)setSystemCapability:(nullable SDLSystemCapability *)systemCapability { - [self.parameters sdl_setObject:systemCapability forName:SDLRPCParameterNameSystemCapability]; -} - -- (nullable SDLSystemCapability *)systemCapability { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameSystemCapability ofClass:SDLSystemCapability.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.h deleted file mode 100644 index 8e70820..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.h +++ /dev/null @@ -1,297 +0,0 @@ -// SDLGetVehicleData.h -// - - -#import "SDLRPCRequest.h" - -/** - * Requests current values of specific published vehicle data items. - * - * Function Group: Location, VehicleInfo and DrivingChara - * HMILevel needs to be FULL, LIMITED or BACKGROUND - * Since SmartDeviceLink 2.0 - * See SDLSubscribeVehicleData, SDLUnsubscribeVehicleData - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLGetVehicleData : SDLRPCRequest - -/** - * Convenience init for getting data for all possible vehicle data items. - * - * @param accelerationPedalPosition Get accelerationPedalPosition data - * @param airbagStatus Get airbagStatus data - * @param beltStatus Get beltStatus data - * @param bodyInformation Get bodyInformation data - * @param clusterModeStatus Get clusterModeStatus data - * @param deviceStatus Get deviceStatus data - * @param driverBraking Get driverBraking data - * @param eCallInfo Get eCallInfo data - * @param emergencyEvent Get emergencyEvent data - * @param engineTorque Get engineTorque data - * @param externalTemperature Get externalTemperature data - * @param fuelLevel Get fuelLevel data - * @param fuelLevelState Get fuelLevelState data - * @param gps Get gps data - * @param headLampStatus Get headLampStatus data - * @param instantFuelConsumption Get instantFuelConsumption data - * @param myKey Get myKey data - * @param odometer Get odometer data - * @param prndl Get prndl data - * @param rpm Get rpm data - * @param speed Get speed data - * @param steeringWheelAngle Get steeringWheelAngle data - * @param tirePressure Get tirePressure data - * @param vin Get vin data - * @param wiperStatus Get wiperStatus data - * @return A SDLGetVehicleData object - */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); - -/** - * Convenience init for getting data for all possible vehicle data items. - * - * @param accelerationPedalPosition Get accelerationPedalPosition data - * @param airbagStatus Get airbagStatus data - * @param beltStatus Get beltStatus data - * @param bodyInformation Get bodyInformation data - * @param clusterModeStatus Get clusterModeStatus data - * @param deviceStatus Get deviceStatus data - * @param driverBraking Get driverBraking data - * @param eCallInfo Get eCallInfo data - * @param electronicParkBrakeStatus Get electronicParkBrakeStatus data - * @param emergencyEvent Get emergencyEvent data - * @param engineOilLife Get engineOilLife data - * @param engineTorque Get engineTorque data - * @param externalTemperature Get externalTemperature data - * @param fuelLevel Get fuelLevel data - * @param fuelLevelState Get fuelLevelState data - * @param fuelRange Get fuelRange data - * @param gps Get gps data - * @param headLampStatus Get headLampStatus data - * @param instantFuelConsumption Get instantFuelConsumption data - * @param myKey Get myKey data - * @param odometer Get odometer data - * @param prndl Get prndl data - * @param rpm Get rpm data - * @param speed Get speed data - * @param steeringWheelAngle Get steeringWheelAngle data - * @param tirePressure Get tirePressure data - * @param turnSignal Get turnSignal data - * @param vin Get vin data - * @param wiperStatus Get wiperStatus data - * @return A SDLGetVehicleData object - */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); - -/** - * Convenience init for getting data for all possible vehicle data items. - * - * @param accelerationPedalPosition Get accelerationPedalPosition data - * @param airbagStatus Get airbagStatus data - * @param beltStatus Get beltStatus data - * @param bodyInformation Get bodyInformation data - * @param cloudAppVehicleID Get cloudAppVehicleID data - * @param clusterModeStatus Get clusterModeStatus data - * @param deviceStatus Get deviceStatus data - * @param driverBraking Get driverBraking data - * @param eCallInfo Get eCallInfo data - * @param electronicParkBrakeStatus Get electronicParkBrakeStatus data - * @param emergencyEvent Get emergencyEvent data - * @param engineOilLife Get engineOilLife data - * @param engineTorque Get engineTorque data - * @param externalTemperature Get externalTemperature data - * @param fuelLevel Get fuelLevel data - * @param fuelLevelState Get fuelLevelState data - * @param fuelRange Get fuelRange data - * @param gps Get gps data - * @param headLampStatus Get headLampStatus data - * @param instantFuelConsumption Get instantFuelConsumption data - * @param myKey Get myKey data - * @param odometer Get odometer data - * @param prndl Get prndl data - * @param rpm Get rpm data - * @param speed Get speed data - * @param steeringWheelAngle Get steeringWheelAngle data - * @param tirePressure Get tirePressure data - * @param turnSignal Get turnSignal data - * @param vin Get vin data - * @param wiperStatus Get wiperStatus data - * @return A SDLGetVehicleData object - */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus; - -/** - * A boolean value. If true, requests GPS data. - */ -@property (nullable, strong, nonatomic) NSNumber *gps; - -/** - * A boolean value. If true, requests Speed data. - */ -@property (nullable, strong, nonatomic) NSNumber *speed; - -/** - * A boolean value. If true, requests RPM data. - */ -@property (nullable, strong, nonatomic) NSNumber *rpm; - -/** - * A boolean value. If true, requests Fuel Level data. - */ -@property (nullable, strong, nonatomic) NSNumber *fuelLevel; - -/** - * A boolean value. If true, requests Fuel Level State data. - */ -@property (nullable, strong, nonatomic) NSNumber *fuelLevel_State; - -/** - * A boolean value. If true, requests Fuel Range data. - */ -@property (nullable, strong, nonatomic) NSNumber *fuelRange; - -/** - * A boolean value. If true, requests Instant Fuel Consumption data. - */ -@property (nullable, strong, nonatomic) NSNumber *instantFuelConsumption; - -/** - * A boolean value. If true, requests External Temperature data. - */ -@property (nullable, strong, nonatomic) NSNumber *externalTemperature; - -/** - * A boolean value. If true, requests the Vehicle Identification Number. - */ -@property (nullable, strong, nonatomic) NSNumber *vin; - -/** - * A boolean value. If true, requests PRNDL data. - */ -@property (nullable, strong, nonatomic) NSNumber *prndl; - -/** - * A boolean value. If true, requests Tire Pressure data. - */ -@property (nullable, strong, nonatomic) NSNumber *tirePressure; - -/** - * A boolean value. If true, requests Odometer data. - */ -@property (nullable, strong, nonatomic) NSNumber *odometer; - -/** - * A boolean value. If true, requests Belt Status data. - */ -@property (nullable, strong, nonatomic) NSNumber *beltStatus; - -/** - * A boolean value. If true, requests Body Information data. - */ -@property (nullable, strong, nonatomic) NSNumber *bodyInformation; - -/** - * A boolean value. If true, requests Device Status data. - */ -@property (nullable, strong, nonatomic) NSNumber *deviceStatus; - -/** - * A boolean value. If true, requests Driver Braking data. - */ -@property (nullable, strong, nonatomic) NSNumber *driverBraking; - -/** - * A boolean value. If true, requests Wiper Status data. - */ -@property (nullable, strong, nonatomic) NSNumber *wiperStatus; - -/** - * A boolean value. If true, requests Head Lamp Status data. - */ -@property (nullable, strong, nonatomic) NSNumber *headLampStatus; - -/** - * A boolean value. If true, requests Engine Oil Life data. - */ -@property (strong, nonatomic, nullable) NSNumber *engineOilLife; - -/** - * A boolean value. If true, requests Engine Torque data. - */ -@property (nullable, strong, nonatomic) NSNumber *engineTorque; - -/** - * A boolean value. If true, requests Acc Pedal Position data. - */ -@property (nullable, strong, nonatomic) NSNumber *accPedalPosition; - -/** - * A boolean value. If true, requests Steering Wheel Angle data. - */ -@property (nullable, strong, nonatomic) NSNumber *steeringWheelAngle; - -/** - * A boolean value. If true, requests Emergency Call Info data. - */ -@property (nullable, strong, nonatomic) NSNumber *eCallInfo; - -/** - * A boolean value. If true, requests Air Bag Status data. - */ -@property (nullable, strong, nonatomic) NSNumber *airbagStatus; - -/** - * A boolean value. If true, requests Emergency Event (if it occurred) data. - */ -@property (nullable, strong, nonatomic) NSNumber *emergencyEvent; - -/** - * A boolean value. If true, requests Cluster Mode Status data. - */ -@property (nullable, strong, nonatomic) NSNumber *clusterModeStatus; - -/** - * A boolean value. If true, requests MyKey data. - */ -@property (nullable, strong, nonatomic) NSNumber *myKey; - -/** - A boolean value. If true, requests Electronic Parking Brake status data. - */ -@property (nullable, strong, nonatomic) NSNumber *electronicParkBrakeStatus; - -/** - A boolean value. If true, requests Turn Signal data. - */ -@property (nullable, strong, nonatomic) NSNumber *turnSignal; - -/** - A boolean value. If true, requests the Cloud App Vehicle ID. - */ -@property (nullable, strong, nonatomic) NSNumber *cloudAppVehicleID; - -/** - Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @param vehicleDataState A boolean value. If true, requests the OEM custom vehicle data item. - - Added in SmartDeviceLink 6.0 - */ -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); - -/** - Gets the OEM custom vehicle data value for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @return The state of an OEM custom vehicle data item for the given vehicle data name. - - Added in SmartDeviceLink 6.0 - */ -- (nullable NSNumber *)getOEMCustomVehicleData:(NSString *)vehicleDataName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.m deleted file mode 100644 index 30b8dfe..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleData.m +++ /dev/null @@ -1,322 +0,0 @@ -// SDLGetVehicleData.m -// - - -#import "SDLGetVehicleData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetVehicleData - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetVehicleData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus { - return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:NO emergencyEvent:emergencyEvent engineOilLife:NO engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:NO gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:NO vin:vin wiperStatus:wiperStatus]; -} - -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus { - return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation cloudAppVehicleID:NO clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:electronicParkBrakeStatus emergencyEvent:emergencyEvent engineOilLife:engineOilLife engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:fuelRange gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:turnSignal vin:vin wiperStatus:wiperStatus]; -} - -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus { - self = [self init]; - if (!self) { - return nil; - } - - self.accPedalPosition = @(accelerationPedalPosition); - self.airbagStatus = @(airbagStatus); - self.beltStatus = @(beltStatus); - self.bodyInformation = @(bodyInformation); - self.cloudAppVehicleID = @(cloudAppVehicleID); - self.clusterModeStatus = @(clusterModeStatus); - self.deviceStatus = @(deviceStatus); - self.driverBraking = @(driverBraking); - self.eCallInfo = @(eCallInfo); - self.electronicParkBrakeStatus = @(electronicParkBrakeStatus); - self.emergencyEvent = @(emergencyEvent); - self.engineOilLife = @(engineOilLife); - self.engineTorque = @(engineTorque); - self.externalTemperature = @(externalTemperature); - self.fuelLevel = @(fuelLevel); - self.fuelLevel_State = @(fuelLevelState); - self.fuelRange = @(fuelRange); - self.myKey = @(myKey); - self.odometer = @(odometer); - self.gps = @(gps); - self.headLampStatus = @(headLampStatus); - self.instantFuelConsumption = @(instantFuelConsumption); - self.prndl = @(prndl); - self.rpm = @(rpm); - self.speed = @(speed); - self.steeringWheelAngle = @(steeringWheelAngle); - self.tirePressure = @(tirePressure); - self.turnSignal = @(turnSignal); - self.vin = @(vin); - self.wiperStatus = @(wiperStatus); - - return self; -} - -- (void)setGps:(nullable NSNumber *)gps { - [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; -} - -- (nullable NSNumber *)gps { - return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:NSNumber.class error:nil]; -} - -- (void)setSpeed:(nullable NSNumber *)speed { - [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; -} - -- (nullable NSNumber *)speed { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; -} - -- (void)setRpm:(nullable NSNumber *)rpm { - [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; -} - -- (nullable NSNumber *)rpm { - return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelLevel:(nullable NSNumber *)fuelLevel { - [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; -} - -- (nullable NSNumber *)fuelLevel { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelLevel_State:(nullable NSNumber *)fuelLevel_State { - [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; -} - -- (nullable NSNumber *)fuelLevel_State { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelRange:(nullable NSNumber *)fuelRange { - [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; -} - -- (nullable NSNumber *)fuelRange { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:NSNumber.class error:nil]; -} - -- (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { - [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; -} - -- (nullable NSNumber *)instantFuelConsumption { - return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; -} - -- (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { - [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; -} - -- (nullable NSNumber *)externalTemperature { - return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; -} - -- (void)setVin:(nullable NSNumber *)vin { - [self.parameters sdl_setObject:vin forName:SDLRPCParameterNameVIN]; -} - -- (nullable NSNumber *)vin { - return [self.parameters sdl_objectForName:SDLRPCParameterNameVIN ofClass:NSNumber.class error:nil]; -} - -- (void)setPrndl:(nullable NSNumber *)prndl { - [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; -} - -- (nullable NSNumber *)prndl { - return [self.parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:NSNumber.class error:nil]; -} - -- (void)setTirePressure:(nullable NSNumber *)tirePressure { - [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; -} - -- (nullable NSNumber *)tirePressure { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:NSNumber.class error:nil]; -} - -- (void)setOdometer:(nullable NSNumber *)odometer { - [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; -} - -- (nullable NSNumber *)odometer { - return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; -} - -- (void)setBeltStatus:(nullable NSNumber *)beltStatus { - [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; -} - -- (nullable NSNumber *)beltStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setBodyInformation:(nullable NSNumber *)bodyInformation { - [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; -} - -- (nullable NSNumber *)bodyInformation { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:NSNumber.class error:nil]; -} - -- (void)setDeviceStatus:(nullable NSNumber *)deviceStatus { - [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; -} - -- (nullable NSNumber *)deviceStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setDriverBraking:(nullable NSNumber *)driverBraking { - [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; -} - -- (nullable NSNumber *)driverBraking { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:NSNumber.class error:nil]; -} - -- (void)setWiperStatus:(nullable NSNumber *)wiperStatus { - [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; -} - -- (nullable NSNumber *)wiperStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setHeadLampStatus:(nullable NSNumber *)headLampStatus { - [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; -} - -- (nullable NSNumber *)headLampStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setEngineOilLife:(nullable NSNumber *)engineOilLife { - [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; -} - -- (nullable NSNumber *)engineOilLife { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; -} - -- (void)setEngineTorque:(nullable NSNumber *)engineTorque { - [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; -} - -- (nullable NSNumber *)engineTorque { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; -} - -- (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { - [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; -} - -- (nullable NSNumber *)accPedalPosition { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; -} - -- (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { - [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; -} - -- (nullable NSNumber *)steeringWheelAngle { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; -} - -- (void)setECallInfo:(nullable NSNumber *)eCallInfo { - [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; -} - -- (nullable NSNumber *)eCallInfo { - return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:NSNumber.class error:nil]; -} - -- (void)setAirbagStatus:(nullable NSNumber *)airbagStatus { - [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; -} - -- (nullable NSNumber *)airbagStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setEmergencyEvent:(nullable NSNumber *)emergencyEvent { - [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; -} - -- (nullable NSNumber *)emergencyEvent { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:NSNumber.class error:nil]; -} - -- (void)setClusterModeStatus:(nullable NSNumber *)clusterModeStatus { - [self.parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; -} - -- (nullable NSNumber *)clusterModeStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setMyKey:(nullable NSNumber *)myKey { - [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; -} - -- (nullable NSNumber *)myKey { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:NSNumber.class error:nil]; -} - -- (void)setElectronicParkBrakeStatus:(nullable NSNumber *)electronicParkBrakeStatus { - [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; -} - -- (nullable NSNumber *)electronicParkBrakeStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setTurnSignal:(nullable NSNumber *)turnSignal { - [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; -} - -- (nullable NSNumber *)turnSignal { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:NSNumber.class error:nil]; -} - -- (void)setCloudAppVehicleID:(nullable NSNumber *)cloudAppVehicleID { - [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; -} - -- (nullable NSNumber *)cloudAppVehicleID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSNumber.class error:nil]; -} - -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState { - [self.parameters sdl_setObject:@(vehicleDataState) forName:vehicleDataName]; -} - -- (nullable NSNumber *)getOEMCustomVehicleData:(NSString *)vehicleDataName { - return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.h deleted file mode 100644 index 7e727ae..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.h +++ /dev/null @@ -1,211 +0,0 @@ -// SDLGetVehicleDataResponse.h -// - -#import "SDLRPCResponse.h" - -#import "SDLComponentVolumeStatus.h" -#import "SDLElectronicParkBrakeStatus.h" -#import "SDLPRNDL.h" -#import "SDLTurnSignal.h" -#import "SDLVehicleDataEventStatus.h" -#import "SDLWiperStatus.h" - -@class SDLAirbagStatus; -@class SDLBeltStatus; -@class SDLBodyInformation; -@class SDLClusterModeStatus; -@class SDLDeviceStatus; -@class SDLECallInfo; -@class SDLEmergencyEvent; -@class SDLFuelRange; -@class SDLGPSData; -@class SDLHeadLampStatus; -@class SDLMyKey; -@class SDLTireStatus; - - -/** - * Response to SDLGetVehicleData - * - * Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLGetVehicleDataResponse : SDLRPCResponse - -/** - The car current GPS coordinates - */ -@property (nullable, strong, nonatomic) SDLGPSData *gps; - -/** - The vehicle speed in kilometers per hour - */ -@property (nullable, strong, nonatomic) NSNumber *speed; - -/** - The number of revolutions per minute of the engine. - */ -@property (nullable, strong, nonatomic) NSNumber *rpm; - -/** - The fuel level in the tank (percentage) - */ -@property (nullable, strong, nonatomic) NSNumber *fuelLevel; - -/** - The fuel level state - */ -@property (nullable, strong, nonatomic) SDLComponentVolumeStatus fuelLevel_State; - -/** - The estimate range in KM the vehicle can travel based on fuel level and consumption - - Optional, Array of length 0 - 100, of SDLFuelRange - */ -@property (nullable, strong, nonatomic) NSArray *fuelRange; - -/** - The instantaneous fuel consumption in microlitres - */ -@property (nullable, strong, nonatomic) NSNumber *instantFuelConsumption; - -/** - The external temperature in degrees celsius. - */ -@property (nullable, strong, nonatomic) NSNumber *externalTemperature; - -/** - The Vehicle Identification Number - */ -@property (nullable, strong, nonatomic) NSString *vin; - -/** - The current gear shift state of the user's vehicle - */ -@property (nullable, strong, nonatomic) SDLPRNDL prndl; - -/** - The current pressure warnings for the user's vehicle - */ -@property (nullable, strong, nonatomic) SDLTireStatus *tirePressure; - -/** - Odometer reading in km - */ -@property (nullable, strong, nonatomic) NSNumber *odometer; - -/** - The status of the seat belts - */ -@property (nullable, strong, nonatomic) SDLBeltStatus *beltStatus; - -/** - The body information including power modes - */ -@property (nullable, strong, nonatomic) SDLBodyInformation *bodyInformation; - -/** - The IVI system status including signal and battery strength - */ -@property (nullable, strong, nonatomic) SDLDeviceStatus *deviceStatus; - -/** - The status of the brake pedal - */ -@property (nullable, strong, nonatomic) SDLVehicleDataEventStatus driverBraking; - -/** - The status of the wipers - */ -@property (nullable, strong, nonatomic) SDLWiperStatus wiperStatus; - -/** - Status of the head lamps - */ -@property (nullable, strong, nonatomic) SDLHeadLampStatus *headLampStatus; - -/** - The estimated percentage (0% - 100%) of remaining oil life of the engine - */ -@property (strong, nonatomic, nullable) NSNumber *engineOilLife; - -/** - Torque value for engine (in Nm) on non-diesel variants - */ -@property (nullable, strong, nonatomic) NSNumber *engineTorque; - -/** - Accelerator pedal position (percentage depressed) - */ -@property (nullable, strong, nonatomic) NSNumber *accPedalPosition; - -/** - Current angle of the steering wheel (in deg) - */ -@property (nullable, strong, nonatomic) NSNumber *steeringWheelAngle; - -/** - Emergency Call notification and confirmation data - */ -@property (nullable, strong, nonatomic) SDLECallInfo *eCallInfo; - -/** - The status of the air bags - */ -@property (nullable, strong, nonatomic) SDLAirbagStatus *airbagStatus; - -/** - Information related to an emergency event (and if it occurred) - */ -@property (nullable, strong, nonatomic) SDLEmergencyEvent *emergencyEvent; - -/** - The status modes of the cluster - */ -@property (nullable, strong, nonatomic) SDLClusterModeStatus *clusterModeStatus; - -/** - Information related to the MyKey feature - */ -@property (nullable, strong, nonatomic) SDLMyKey *myKey; - -/** - The status of the electronic parking brake - */ -@property (nullable, strong, nonatomic) SDLElectronicParkBrakeStatus electronicParkBrakeStatus; - -/** - The status of the turn signal - */ -@property (nullable, strong, nonatomic) SDLTurnSignal turnSignal; - -/** - The cloud app vehicle ID - */ -@property (nullable, strong, nonatomic) NSString *cloudAppVehicleID; - -/** - Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @param vehicleDataState An object containing the OEM custom vehicle data item. - - Added in SmartDeviceLink 6.0 - */ -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); - -/** - Gets the OEM custom vehicle data item for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @return An OEM custom vehicle data object for the given vehicle data name. - - Added in SmartDeviceLink 6.0 - */ -- (nullable NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.m deleted file mode 100644 index 25ddde3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetVehicleDataResponse.m +++ /dev/null @@ -1,286 +0,0 @@ -// SDLGetVehicleDataResponse.m -// - - -#import "SDLGetVehicleDataResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLAirbagStatus.h" -#import "SDLBeltStatus.h" -#import "SDLBodyInformation.h" -#import "SDLClusterModeStatus.h" -#import "SDLDeviceStatus.h" -#import "SDLECallInfo.h" -#import "SDLEmergencyEvent.h" -#import "SDLFuelRange.h" -#import "SDLGPSData.h" -#import "SDLHeadLampStatus.h" -#import "SDLMyKey.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLTireStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetVehicleDataResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetVehicleData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setGps:(nullable SDLGPSData *)gps { - [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; -} - -- (nullable SDLGPSData *)gps { - return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLGPSData.class error:nil]; -} - -- (void)setSpeed:(nullable NSNumber *)speed { - [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; -} - -- (nullable NSNumber *)speed { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; -} - -- (void)setRpm:(nullable NSNumber *)rpm { - [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; -} - -- (nullable NSNumber *)rpm { - return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelLevel:(nullable NSNumber *)fuelLevel { - [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; -} - -- (nullable NSNumber *)fuelLevel { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelLevel_State:(nullable SDLComponentVolumeStatus)fuelLevel_State { - [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; -} - -- (nullable SDLComponentVolumeStatus)fuelLevel_State { - return [self.parameters sdl_enumForName:SDLRPCParameterNameFuelLevelState error:nil]; -} - -- (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { - [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; -} - -- (void)setFuelRange:(nullable NSArray *)fuelRange { - [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; -} - -- (nullable NSArray *)fuelRange { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameFuelRange ofClass:SDLFuelRange.class error:nil]; -} - -- (nullable NSNumber *)instantFuelConsumption { - return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; -} - -- (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { - [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; -} - -- (nullable NSNumber *)externalTemperature { - return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; -} - -- (void)setVin:(nullable NSString *)vin { - [self.parameters sdl_setObject:vin forName:SDLRPCParameterNameVIN]; -} - -- (nullable NSString *)vin { - return [self.parameters sdl_objectForName:SDLRPCParameterNameVIN ofClass:NSString.class error:nil]; -} - -- (void)setPrndl:(nullable SDLPRNDL)prndl { - [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; -} - -- (nullable SDLPRNDL)prndl { - return [self.parameters sdl_enumForName:SDLRPCParameterNamePRNDL error:nil]; -} - -- (void)setTirePressure:(nullable SDLTireStatus *)tirePressure { - [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; -} - -- (nullable SDLTireStatus *)tirePressure { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLTireStatus.class error:nil]; -} - -- (void)setOdometer:(nullable NSNumber *)odometer { - [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; -} - -- (nullable NSNumber *)odometer { - return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; -} - -- (void)setBeltStatus:(nullable SDLBeltStatus *)beltStatus { - [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; -} - -- (nullable SDLBeltStatus *)beltStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLBeltStatus.class error:nil]; -} - -- (void)setBodyInformation:(nullable SDLBodyInformation *)bodyInformation { - [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; -} - -- (nullable SDLBodyInformation *)bodyInformation { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLBodyInformation.class error:nil]; -} - -- (void)setDeviceStatus:(nullable SDLDeviceStatus *)deviceStatus { - [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; -} - -- (nullable SDLDeviceStatus *)deviceStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLDeviceStatus.class error:nil]; -} - -- (void)setDriverBraking:(nullable SDLVehicleDataEventStatus)driverBraking { - [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; -} - -- (nullable SDLVehicleDataEventStatus)driverBraking { - return [self.parameters sdl_enumForName:SDLRPCParameterNameDriverBraking error:nil]; -} - -- (void)setWiperStatus:(nullable SDLWiperStatus)wiperStatus { - [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; -} - -- (nullable SDLWiperStatus)wiperStatus { - return [self.parameters sdl_enumForName:SDLRPCParameterNameWiperStatus error:nil]; -} - -- (void)setHeadLampStatus:(nullable SDLHeadLampStatus *)headLampStatus { - [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; -} - -- (nullable SDLHeadLampStatus *)headLampStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLHeadLampStatus.class error:nil]; -} - -- (void)setEngineOilLife:(nullable NSNumber *)engineOilLife { - [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; -} - -- (nullable NSNumber *)engineOilLife { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; -} - -- (void)setEngineTorque:(nullable NSNumber *)engineTorque { - [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; -} - -- (nullable NSNumber *)engineTorque { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; -} - -- (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { - [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; -} - -- (nullable NSNumber *)accPedalPosition { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; -} - -- (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { - [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; -} - -- (nullable NSNumber *)steeringWheelAngle { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; -} - -- (void)setECallInfo:(nullable SDLECallInfo *)eCallInfo { - [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; -} - -- (nullable SDLECallInfo *)eCallInfo { - return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLECallInfo.class error:nil]; -} - -- (void)setAirbagStatus:(nullable SDLAirbagStatus *)airbagStatus { - [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; -} - -- (nullable SDLAirbagStatus *)airbagStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLAirbagStatus.class error:nil]; -} - -- (void)setEmergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent { - [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; -} - -- (nullable SDLEmergencyEvent *)emergencyEvent { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLEmergencyEvent.class error:nil]; -} - -- (void)setClusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus { - [self.parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; -} - -- (nullable SDLClusterModeStatus *)clusterModeStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:SDLClusterModeStatus.class error:nil]; -} - -- (void)setMyKey:(nullable SDLMyKey *)myKey { - [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; -} - -- (nullable SDLMyKey *)myKey { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLMyKey.class error:nil]; -} - -- (void)setElectronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { - [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; -} - -- (nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { - return [self.parameters sdl_enumForName:SDLRPCParameterNameElectronicParkBrakeStatus error:nil]; -} - -- (void)setTurnSignal:(nullable SDLTurnSignal)turnSignal { - [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; -} - -- (nullable SDLTurnSignal)turnSignal { - return [self.parameters sdl_enumForName:SDLRPCParameterNameTurnSignal error:nil]; -} - -- (void)setCloudAppVehicleID:(nullable NSString *)cloudAppVehicleID { - [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; -} - -- (nullable NSString *)cloudAppVehicleID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSString.class error:nil]; -} - -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState { - [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName]; -} - -- (nullable NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName { - return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSObject.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.h deleted file mode 100644 index 331acc3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.h +++ /dev/null @@ -1,31 +0,0 @@ -// SDLGetWaypoints.h -// - -#import "SDLRPCRequest.h" - -#import "SDLWayPointType.h" - -NS_ASSUME_NONNULL_BEGIN - -/// This RPC allows you to get navigation waypoint data -/// -/// @since RPC 4.1 -@interface SDLGetWayPoints : SDLRPCRequest - -/// Convenience init to get waypoints. -/// -/// @param type To request for either the destination only or for all waypoints including destination -/// @return An SDLGetWayPoints object -- (instancetype)initWithType:(SDLWayPointType)type; - -/** - * To request for either the destination - * only or for all waypoints including destination - * - * Required - */ -@property (nullable, strong, nonatomic) SDLWayPointType waypointType; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.m deleted file mode 100644 index 6e7f7a4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPoints.m +++ /dev/null @@ -1,45 +0,0 @@ -// SDLGetWaypoints.m -// - -#import "SDLGetWayPoints.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetWayPoints - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetWayPoints]) { - } - return self; -} -#pragma clang diagnostic pop - - -- (instancetype)initWithType:(SDLWayPointType)type { - self = [self init]; - if (!self) { - return nil; - } - - self.waypointType = type; - - return self; -} - -- (void)setWaypointType:(nullable SDLWayPointType)waypointType { - [self.parameters sdl_setObject:waypointType forName:SDLRPCParameterNameWayPointType]; -} - -- (nullable SDLWayPointType)waypointType { - return [self.parameters sdl_enumForName:SDLRPCParameterNameWayPointType error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPointsResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPointsResponse.h deleted file mode 100644 index 3a22fce..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPointsResponse.h +++ /dev/null @@ -1,24 +0,0 @@ -// SDLGetWaypointsResponse.h -// - -#import "SDLRPCResponse.h" - -@class SDLLocationDetails; - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLGetWayPoints - */ -@interface SDLGetWayPointsResponse : SDLRPCResponse - -/** - Provides additional human readable info regarding the result. - - Optional, Array size 1 - 10 - */ -@property (nullable, strong, nonatomic) NSArray *waypoints; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPointsResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPointsResponse.m deleted file mode 100644 index fec1128..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGetWayPointsResponse.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLGetWaypointsResponse.m -// - -#import "SDLGetWayPointsResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLLocationDetails.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLGetWayPointsResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameGetWayPoints]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setWaypoints:(nullable NSArray *)waypoints { - [self.parameters sdl_setObject:waypoints forName:SDLRPCParameterNameWayPoints]; -} - -- (nullable NSArray *)waypoints { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameWayPoints ofClass:SDLLocationDetails.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.h deleted file mode 100644 index 9175288..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.h +++ /dev/null @@ -1,52 +0,0 @@ -// SDLGlobalProperty.h -// - - -#import "SDLEnum.h" - -/** - * Properties of a user-initiated VR interaction (i.e. interactions started by the user pressing the PTT button). Used in RPCs related to ResetGlobalProperties - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLGlobalProperty SDL_SWIFT_ENUM; - -/** - * The help prompt to be spoken if the user needs assistance during a user-initiated interaction. - */ -extern SDLGlobalProperty const SDLGlobalPropertyHelpPrompt; - -/** - * The prompt to be spoken if the user-initiated interaction times out waiting for the user's verbal input. - */ -extern SDLGlobalProperty const SDLGlobalPropertyTimeoutPrompt; - -/** - * The title of the menu displayed when the user requests help via voice recognition. - */ -extern SDLGlobalProperty const SDLGlobalPropertyVoiceRecognitionHelpTitle; - -/** - * Items of the menu displayed when the user requests help via voice recognition. - */ -extern SDLGlobalProperty const SDLGlobalPropertyVoiceRecognitionHelpItems; - -/** - * The name of the menu button displayed in templates - */ -extern SDLGlobalProperty const SDLGlobalPropertyMenuName; - -/** - * An icon on the menu button displayed in templates - */ -extern SDLGlobalProperty const SDLGlobalPropertyMenuIcon; - -/** - * Property related to the keyboard - */ -extern SDLGlobalProperty const SDLGlobalPropertyKeyboard; - -/** - * Location of the user's seat of setGlobalProperties - */ -extern SDLGlobalProperty const SDLGlobalPropertyUserLocation; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.m deleted file mode 100644 index 410af91..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobalProperty.m +++ /dev/null @@ -1,14 +0,0 @@ -// SDLGlobalProperty.m -// - - -#import "SDLGlobalProperty.h" - -SDLGlobalProperty const SDLGlobalPropertyHelpPrompt = @"HELPPROMPT"; -SDLGlobalProperty const SDLGlobalPropertyTimeoutPrompt = @"TIMEOUTPROMPT"; -SDLGlobalProperty const SDLGlobalPropertyVoiceRecognitionHelpTitle = @"VRHELPTITLE"; -SDLGlobalProperty const SDLGlobalPropertyVoiceRecognitionHelpItems = @"VRHELPITEMS"; -SDLGlobalProperty const SDLGlobalPropertyMenuName = @"MENUNAME"; -SDLGlobalProperty const SDLGlobalPropertyMenuIcon = @"MENUICON"; -SDLGlobalProperty const SDLGlobalPropertyKeyboard = @"KEYBOARDPROPERTIES"; -SDLGlobalProperty const SDLGlobalPropertyUserLocation = @"USER_LOCATION"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.h deleted file mode 100644 index 004a0e8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// SDLGlobals.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/5/15. -// Copyright (c) 2015 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLProtocolConstants.h" - -@class SDLProtocolHeader; -@class SDLVersion; - -NS_ASSUME_NONNULL_BEGIN - -#define SDL_SYSTEM_VERSION_LESS_THAN(version) ([[[UIDevice currentDevice] systemVersion] compare:version options:NSNumericSearch] == NSOrderedAscending) -#define SDL_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(version) ([[[UIDevice currentDevice] systemVersion] compare:version options:NSNumericSearch] != NSOrderedAscending) -#define BLOCK_RETURN return - -extern NSString *const SDLMaxProxyProtocolVersion; -extern NSString *const SDLMaxProxyRPCVersion; - -extern NSUInteger const SDLDefaultMTUSize; -extern NSUInteger const SDLV1MTUSize; -extern NSUInteger const SDLV3MTUSize; - -extern void *const SDLProcessingQueueName; -extern void *const SDLConcurrentQueueName; - -@interface SDLGlobals : NSObject - -@property (copy, nonatomic, readonly) SDLVersion *protocolVersion; -@property (strong, nonatomic) SDLVersion *rpcVersion; -@property (copy, nonatomic) SDLVersion *maxHeadUnitProtocolVersion; - -@property (copy, nonatomic) dispatch_queue_t sdlProcessingQueue; -@property (copy, nonatomic) dispatch_queue_t sdlConcurrentQueue; - -+ (instancetype)sharedGlobals; - -- (void)setDynamicMTUSize:(NSUInteger)maxMTUSize forServiceType:(SDLServiceType)serviceType; -- (NSUInteger)mtuSizeForServiceType:(SDLServiceType)serviceType; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.m deleted file mode 100644 index dc78e7a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGlobals.m +++ /dev/null @@ -1,129 +0,0 @@ -// -// SDLGlobals.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/5/15. -// Copyright (c) 2015 smartdevicelink. All rights reserved. -// - -#import "SDLGlobals.h" - -#import "SDLLogMacros.h" -#import "SDLProtocolHeader.h" -#import "SDLVersion.h" - -NS_ASSUME_NONNULL_BEGIN - -// VERSION DEPENDENT CODE -NSString *const SDLMaxProxyProtocolVersion = @"5.2.0"; -NSString *const SDLMaxProxyRPCVersion = @"6.0.0"; - -NSUInteger const SDLDefaultMTUSize = UINT32_MAX; -NSUInteger const SDLV1MTUSize = 1024; -NSUInteger const SDLV3MTUSize = 131024; - -void *const SDLProcessingQueueName = "com.sdl.serialProcessing"; -void *const SDLConcurrentQueueName = "com.sdl.concurrentProcessing"; - -typedef NSNumber *ServiceTypeBox; -typedef NSNumber *MTUBox; - - -@interface SDLGlobals () - -@property (strong, nonatomic) NSMutableDictionary *dynamicMTUDict; -@property (copy, nonatomic, readwrite) SDLVersion *protocolVersion; - -@end - - -@implementation SDLGlobals - -+ (instancetype)sharedGlobals { - static SDLGlobals *sharedGlobals = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedGlobals = [[SDLGlobals alloc] init]; - }); - - return sharedGlobals; -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - _protocolVersion = [[SDLVersion alloc] initWithString:@"1.0.0"]; - _maxHeadUnitProtocolVersion = [[SDLVersion alloc] initWithString:@"0.0.0"]; - _rpcVersion = [[SDLVersion alloc] initWithString:@"1.0.0"]; - _dynamicMTUDict = [NSMutableDictionary dictionary]; - - dispatch_queue_attr_t qosSerial = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL, QOS_CLASS_USER_INITIATED, 0); - dispatch_queue_attr_t qosConcurrent = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_CONCURRENT, QOS_CLASS_USER_INITIATED, 0); - - _sdlProcessingQueue = dispatch_queue_create(SDLProcessingQueueName, qosSerial); - dispatch_queue_set_specific(_sdlProcessingQueue, SDLProcessingQueueName, SDLProcessingQueueName, NULL); - _sdlConcurrentQueue = dispatch_queue_create(SDLConcurrentQueueName, qosConcurrent); - dispatch_queue_set_specific(_sdlConcurrentQueue, SDLConcurrentQueueName, SDLConcurrentQueueName, NULL); - - return self; -} - - -#pragma mark - Custom Getters / Setters - -- (void)setMaxHeadUnitProtocolVersion:(SDLVersion *)maxHeadUnitVersion { - SDLVersion *maxProxyProtocolVersion = [SDLVersion versionWithString:SDLMaxProxyProtocolVersion]; - self.protocolVersion = [maxHeadUnitVersion isGreaterThanVersion:maxProxyProtocolVersion] ? maxProxyProtocolVersion : maxHeadUnitVersion; - - _maxHeadUnitProtocolVersion = maxHeadUnitVersion; -} - -- (void)setDynamicMTUSize:(NSUInteger)maxMTUSize forServiceType:(SDLServiceType)serviceType { - SDLLogV(@"Setting dynamic MTU size: %lu for service %u", (unsigned long)maxMTUSize, serviceType); - self.dynamicMTUDict[@(serviceType)] = @(maxMTUSize); -} - -- (NSUInteger)mtuSizeForServiceType:(SDLServiceType)serviceType { - if (self.dynamicMTUDict[@(serviceType)] != nil) { - return self.dynamicMTUDict[@(serviceType)].unsignedIntegerValue; - } else if (self.dynamicMTUDict[@(SDLServiceTypeRPC)]) { - return self.dynamicMTUDict[@(SDLServiceTypeRPC)].unsignedIntegerValue; - } else { - return [self sdl_defaultMaxMTUSize]; - } -} - - -#pragma mark - Helpers - -- (NSUInteger)sdl_defaultMaxMTUSize { - // VERSION DEPENDENT CODE - switch (self.protocolVersion.major) { - case 1: // fallthrough - case 2: { - // HAX: This was set to 1024 at some point, for an unknown reason. We can't change it because of backward compatibility & validation concerns. The actual MTU for v1/2 is 1500 bytes. - return SDLV1MTUSize; - } break; - case 3: // fallthrough - case 4: // fallthrough - case 5: { - // If the head unit isn't running v3/4, but that's the connection scheme we're using, then we have to know that they could be running an MTU that's not 128k, so we default back to the v1/2 MTU for safety. - if ([self.maxHeadUnitProtocolVersion isGreaterThanVersion:[SDLVersion versionWithString:SDLMaxProxyProtocolVersion]]) { - return SDLV1MTUSize; - } else { - return SDLV3MTUSize; - } - } break; - default: { - NSAssert(NO, @"Unknown MTU size for protocol version: %@", self.protocolVersion); - return 0; - } - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.h deleted file mode 100644 index 64ad01e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.h +++ /dev/null @@ -1,56 +0,0 @@ -// -// SDLGrid.h -// SmartDeviceLink -// -// Created by standa1 on 7/10/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Describes a location (origin coordinates and span) of a vehicle component. - */ -@interface SDLGrid : SDLRPCStruct - -/** - * - * Required, Integer, -1 - 100 - */ -@property (strong, nonatomic) NSNumber *col; - -/** - * - * Required, Integer, -1 - 100 - */ -@property (strong, nonatomic) NSNumber *row; - -/** - * - * Optional, Integer, -1 - 100 - */ -@property (strong, nonatomic, nullable) NSNumber *level; - -/** - * - * Optional, Integer, 1 - 100 - */ -@property (strong, nonatomic, nullable) NSNumber *colspan; - -/** - * - * Optional, Integer, 1 - 100 - */ -@property (strong, nonatomic, nullable) NSNumber *rowspan; - -/** - * - * Optional, Integer, 1 - 100 - */ -@property (strong, nonatomic, nullable) NSNumber *levelspan; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.m deleted file mode 100644 index f0e5d33..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLGrid.m +++ /dev/null @@ -1,70 +0,0 @@ -// -// SDLGrid.m -// SmartDeviceLink -// -// Created by standa1 on 7/10/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLGrid.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -@implementation SDLGrid - -- (void)setCol:(NSNumber *)col { - [self.store sdl_setObject:col forName:SDLRPCParameterNameCol]; -} - -- (NSNumber *)col { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameCol ofClass:NSNumber.class error:&error]; -} - -- (void)setRow:(NSNumber *)row { - [self.store sdl_setObject:row forName:SDLRPCParameterNameRow]; -} - -- (NSNumber *)row { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameRow ofClass:NSNumber.class error:&error]; -} - -- (void)setLevel:(nullable NSNumber *)level { - [self.store sdl_setObject:level forName:SDLRPCParameterNameLevel]; -} - -- (nullable NSNumber *)level { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLevel ofClass:NSNumber.class error:&error]; -} - -- (void)setColspan:(nullable NSNumber *)colspan { - [self.store sdl_setObject:colspan forName:SDLRPCParameterNameColSpan]; -} - -- (nullable NSNumber *)colspan { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameColSpan ofClass:NSNumber.class error:&error]; -} - -- (void)setRowspan:(nullable NSNumber *)rowspan { - [self.store sdl_setObject:rowspan forName:SDLRPCParameterNameRowSpan]; -} - -- (nullable NSNumber *)rowspan { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameRowSpan ofClass:NSNumber.class error:&error]; -} - -- (void)setLevelspan:(nullable NSNumber *)levelspan { - [self.store sdl_setObject:levelspan forName:SDLRPCParameterNameLevelSpan]; -} - -- (nullable NSNumber *)levelspan { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLevelSpan ofClass:NSNumber.class error:&error]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264Packetizer.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264Packetizer.h deleted file mode 100644 index 45c5e8d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264Packetizer.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// SDLH264Packetizer.h -// SmartDeviceLink-iOS -// -// Created by Sho Amano on 4/11/17. -// Copyright © 2017 Xevo Inc. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLH264Packetizer - -/** - * Creates packets from given H.264 NAL units and presentation timestamp. - * - * @param nalUnits List of NAL units to create packets. - * @param presentationTimestamp Presentation timestamp associated to - * the NAL units, in seconds. - * - * @return List of NSData. Each NSData holds a packet. - * - * @warning This method cannot be called more than once with same pts value. - * All NAL units that belongs to a frame should be included in - * nalUnits array. - */ -- (nullable NSArray *)createPackets:(NSArray *)nalUnits - presentationTimestamp:(double)presentationTimestamp; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.h deleted file mode 100644 index 58bde05..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.h +++ /dev/null @@ -1,76 +0,0 @@ -// -// SDLH264VideoEncoder -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 12/5/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import -#import - -#import "SDLMacros.h" -#import "SDLVideoStreamingProtocol.h" -#import "SDLVideoEncoderDelegate.h" - -@protocol SDLH264Packetizer; - -NS_ASSUME_NONNULL_BEGIN - -typedef NS_ENUM(NSInteger, SDLVideoEncoderError) { - SDLVideoEncoderErrorConfigurationCompressionSessionCreationFailure = 0, - SDLVideoEncoderErrorConfigurationAllocationFailure = 1, - SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure = 2, - SDLVideoEncoderErrorProtocolUnknown = 3 -}; - -extern NSString *const SDLErrorDomainVideoEncoder; - - -@interface SDLH264VideoEncoder : NSObject - -@property (nonatomic, weak, nullable) id delegate; - -/** - * The settings used in a VTCompressionSessionRef encoder. These will be verified when the video stream is started. Acceptable properties for this are located in VTCompressionProperties. - * - */ -@property (strong, nonatomic, readonly) NSDictionary *videoEncoderSettings; - -@property (strong, nonatomic) id packetizer; - -/** - * Provides default video encoder settings used. - */ -#if SDL_SUPPORTS_CLASS_PROPERTIES -@property (class, strong, nonatomic, readonly) NSDictionary *defaultVideoEncoderSettings; -#else -+ (NSDictionary*)defaultVideoEncoderSettings; -#endif - -/** - * The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder. - * - * @warning This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). - * @discussion Clients may call this once and retain the resulting pool, this call is cheap enough that it's OK to call it once per frame. - */ -@property (assign, nonatomic, readonly) CVPixelBufferPoolRef CV_NULLABLE pixelBufferPool; - -- (instancetype)init NS_UNAVAILABLE; - -- (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions:(CGSize)dimensions ssrc:(UInt32)ssrc properties:(NSDictionary *)properties delegate:(id __nullable)delegate error:(NSError **)error NS_DESIGNATED_INITIALIZER; - -- (void)stop; - -- (BOOL)encodeFrame:(CVImageBufferRef)imageBuffer; - -- (BOOL)encodeFrame:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp; - -/** - * Creates a new pixel buffer using the pixelBufferPool property. - */ -- (CVPixelBufferRef CV_NULLABLE)newPixelBuffer; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.m deleted file mode 100644 index 2d58a12..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLH264VideoEncoder.m +++ /dev/null @@ -1,409 +0,0 @@ -// -// SDLH264VideoEncoder -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 12/5/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLH264VideoEncoder.h" - -#import "SDLLogMacros.h" -#import "SDLRAWH264Packetizer.h" -#import "SDLRTPH264Packetizer.h" - - -NS_ASSUME_NONNULL_BEGIN - -NSString *const SDLErrorDomainVideoEncoder = @"com.sdl.videoEncoder"; -static NSDictionary* _defaultVideoEncoderSettings; - - -@interface SDLH264VideoEncoder () - -@property (assign, nonatomic, nullable) VTCompressionSessionRef compressionSession; -@property (assign, nonatomic, nullable) CFDictionaryRef pixelBufferOptions; -@property (assign, nonatomic) NSUInteger currentFrameNumber; -@property (assign, nonatomic) double timestampOffset; - -@property (assign, nonatomic, readwrite) CVPixelBufferPoolRef CV_NULLABLE pixelBufferPool; - -/// Width and height of the video frame. -@property (assign, nonatomic) CGSize dimensions; - -@end - - -@implementation SDLH264VideoEncoder - -+ (void)initialize { - if (self != [SDLH264VideoEncoder class]) { - return; - } - - // https://support.google.com/youtube/answer/1722171?hl=en - _defaultVideoEncoderSettings = @{ - (__bridge NSString *)kVTCompressionPropertyKey_ProfileLevel: (__bridge NSString *)kVTProfileLevel_H264_Baseline_AutoLevel, - (__bridge NSString *)kVTCompressionPropertyKey_RealTime: @YES, - (__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate: @15, - (__bridge NSString *)kVTCompressionPropertyKey_AverageBitRate: @600000, - }; -} - -- (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions:(CGSize)dimensions ssrc:(UInt32)ssrc properties:(NSDictionary *)properties delegate:(id __nullable)delegate error:(NSError **)error { - self = [super init]; - if (!self) { - return nil; - } - - _compressionSession = NULL; - _currentFrameNumber = 0; - _videoEncoderSettings = properties; - _dimensions = dimensions; - _delegate = delegate; - - BOOL compressionSessionCreated = [self sdl_createCompressionSessionWithError:error]; - if (!compressionSessionCreated) { - return nil; - } - - BOOL videoEncoderPropertiesValid = [self sdl_validateVideoEncoderPropertiesOnCompressionSession:self.compressionSession withError:error]; - if (!videoEncoderPropertiesValid) { - return nil; - } - - BOOL propertiesSetOnCompressionSession = [self sdl_setPropertiesOnCompressionSession:self.compressionSession withError:error]; - if (!propertiesSetOnCompressionSession) { - return nil; - } - - if ([protocol isEqualToEnum:SDLVideoStreamingProtocolRAW]) { - _packetizer = [[SDLRAWH264Packetizer alloc] init]; - } else if ([protocol isEqualToEnum:SDLVideoStreamingProtocolRTP]) { - _packetizer = [[SDLRTPH264Packetizer alloc] initWithSSRC:ssrc]; - } else { - if (error != NULL) { - *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorProtocolUnknown userInfo:@{@"encoder": protocol}]; - } - return nil; - } - - return self; -} - -- (void)stop { - _currentFrameNumber = 0; - _timestampOffset = 0.0; - - CFRelease(_pixelBufferOptions); - _pixelBufferOptions = nil; - - [self sdl_invalidateCompressionSession]; -} - -- (BOOL)encodeFrame:(CVImageBufferRef)imageBuffer { - return [self encodeFrame:imageBuffer presentationTimestamp:kCMTimeInvalid]; -} - -- (BOOL)encodeFrame:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp { - if (!CMTIME_IS_VALID(presentationTimestamp)) { - int32_t timeRate = 30; - if (self.videoEncoderSettings[(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate] != nil) { - timeRate = ((NSNumber *)self.videoEncoderSettings[(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate]).intValue; - } - - presentationTimestamp = CMTimeMake((int64_t)self.currentFrameNumber, timeRate); - } - self.currentFrameNumber++; - - OSStatus status = VTCompressionSessionEncodeFrame(_compressionSession, imageBuffer, presentationTimestamp, kCMTimeInvalid, NULL, (__bridge void *)self, NULL); - - // HAX: [#1620](https://github.com/smartdevicelink/sdl_ios/issues/1620) On some older iPhones VTCompressionSessionEncodeFrame fails with a kVTInvalidSessionErr when the device is locked. Attempt to fix this by recreating the compression session. - if (status == kVTInvalidSessionErr) { - [self sdl_resetCompressionSession]; - } - - return (status == noErr); -} - -- (CVPixelBufferRef CV_NULLABLE)newPixelBuffer { - if (self.pixelBufferPool == NULL) { - return NULL; - } - - CVPixelBufferRef pixelBuffer; - CVPixelBufferPoolCreatePixelBuffer(kCFAllocatorDefault, - self.pixelBufferPool, - &pixelBuffer); - - return pixelBuffer; -} - -#pragma mark - Public -#pragma mark Getters -+ (NSDictionary *)defaultVideoEncoderSettings { - return _defaultVideoEncoderSettings; -} - -- (CVPixelBufferPoolRef CV_NULLABLE)pixelBufferPool { - // HAX: When the app is backgrounded, sometimes the compression session gets invalidated (this can happen the first time the app is backgrounded or the tenth). This causes the pool and/or the compression session to fail when the app is foregrounded and video frames are sent again. Attempt to fix this by recreating the compression session. - if (_pixelBufferPool == NULL) { - BOOL success = [self sdl_resetCompressionSession]; - if (!success) { - return NULL; - } - - _pixelBufferPool = VTCompressionSessionGetPixelBufferPool(self.compressionSession); - } - - return _pixelBufferPool; -} - -#pragma mark - Private -#pragma mark Callback - -/// Callback function that VideoToolbox calls when encoding is complete. -/// @param outputCallbackRefCon The callback's reference value -/// @param sourceFrameRefCon The frame's reference value -/// @param status Returns `noErr` if compression was successful, or an error if not successful -/// @param infoFlags Information about the encode operation (frame dropped or if encode ran asynchronously) -/// @param sampleBuffer Contains the compressed frame if compression was successful and the frame was not dropped; null otherwise -void sdl_videoEncoderOutputCallback(void * CM_NULLABLE outputCallbackRefCon, void * CM_NULLABLE sourceFrameRefCon, OSStatus status, VTEncodeInfoFlags infoFlags, CM_NULLABLE CMSampleBufferRef sampleBuffer) { - // If there was an error in the encoding, drop the frame - if (status != noErr) { - SDLLogW(@"Error encoding video frame: %d", (int)status); - return; - } - - if (outputCallbackRefCon == NULL || sourceFrameRefCon == NULL || sampleBuffer == NULL) { - return; - } - - SDLH264VideoEncoder *encoder = (__bridge SDLH264VideoEncoder *)sourceFrameRefCon; - NSArray *nalUnits = [encoder.class sdl_extractNalUnitsFromSampleBuffer:sampleBuffer]; - - const CMTime presentationTimestampInCMTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer); - double presentationTimestamp = 0.0; - if (CMTIME_IS_VALID(presentationTimestampInCMTime)) { - presentationTimestamp = CMTimeGetSeconds(presentationTimestampInCMTime); - } - if (encoder.timestampOffset == 0.0) { - // remember this first timestamp as the offset - encoder.timestampOffset = presentationTimestamp; - } - - NSArray *packets = [encoder.packetizer createPackets:nalUnits - presentationTimestamp:(presentationTimestamp - encoder.timestampOffset)]; - - if ([encoder.delegate respondsToSelector:@selector(videoEncoder:hasEncodedFrame:)]) { - for (NSData *packet in packets) { - [encoder.delegate videoEncoder:encoder hasEncodedFrame:packet]; - } - } -} - -#pragma mark Getters -- (CFDictionaryRef _Nullable)pixelBufferOptions { - if (_pixelBufferOptions == nil) { - CFMutableDictionaryRef pixelBufferOptions = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - - OSType pixelFormatType = kCVPixelFormatType_32BGRA; - - CFNumberRef pixelFormatNumberRef = CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &pixelFormatType); - - CFDictionarySetValue(pixelBufferOptions, kCVPixelBufferCGImageCompatibilityKey, kCFBooleanFalse); - CFDictionarySetValue(pixelBufferOptions, kCVPixelBufferCGBitmapContextCompatibilityKey, kCFBooleanFalse); - CFDictionarySetValue(pixelBufferOptions, kCVPixelBufferPixelFormatTypeKey, pixelFormatNumberRef); - - CFRelease(pixelFormatNumberRef); - - _pixelBufferOptions = pixelBufferOptions; - } - - return _pixelBufferOptions; -} - -#pragma mark Helpers -+ (NSArray *)sdl_extractNalUnitsFromSampleBuffer:(CMSampleBufferRef)sampleBuffer { - // Creating an elementaryStream: http://stackoverflow.com/questions/28396622/extracting-h264-from-cmblockbuffer - NSMutableArray *nalUnits = [NSMutableArray array]; - BOOL isIFrame = NO; - CFArrayRef attachmentsArray = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, 0); - - if (CFArrayGetCount(attachmentsArray)) { - CFBooleanRef notSync; - CFDictionaryRef dict = CFArrayGetValueAtIndex(attachmentsArray, 0); - BOOL keyExists = CFDictionaryGetValueIfPresent(dict, kCMSampleAttachmentKey_NotSync, (const void **)¬Sync); - - // Find out if the sample buffer contains an I-Frame (sync frame). If so we will write the SPS and PPS NAL units to the elementary stream. - isIFrame = !keyExists || !CFBooleanGetValue(notSync); - } - - // Write the SPS and PPS NAL units to the elementary stream before every I-Frame - if (isIFrame) { - CMFormatDescriptionRef description = CMSampleBufferGetFormatDescription(sampleBuffer); - - // Find out how many parameter sets there are - size_t numberOfParameterSets; - CMVideoFormatDescriptionGetH264ParameterSetAtIndex(description, - 0, - NULL, - NULL, - &numberOfParameterSets, - NULL); - - // Write each parameter set to the elementary stream - for (int i = 0; i < numberOfParameterSets; i++) { - const uint8_t *parameterSetPointer; - size_t parameterSetLength; - CMVideoFormatDescriptionGetH264ParameterSetAtIndex(description, - (size_t)i, - ¶meterSetPointer, - ¶meterSetLength, - NULL, - NULL); - - // Output the parameter set - NSData *nalUnit = [NSData dataWithBytesNoCopy:(uint8_t *)parameterSetPointer length:parameterSetLength freeWhenDone:NO]; - [nalUnits addObject:nalUnit]; - } - } - - // Get a pointer to the raw AVCC NAL unit data in the sample buffer - size_t blockBufferLength = 0; - char *bufferDataPointer = NULL; - CMBlockBufferRef blockBufferRef = CMSampleBufferGetDataBuffer(sampleBuffer); - - CMBlockBufferGetDataPointer(blockBufferRef, 0, NULL, &blockBufferLength, &bufferDataPointer); - - // Loop through all the NAL units in the block buffer and write them to the elementary stream with start codes instead of AVCC length headers - size_t bufferOffset = 0; - static const int AVCCHeaderLength = 4; - while (bufferOffset < blockBufferLength - AVCCHeaderLength) { - // Read the NAL unit length - uint32_t NALUnitLength = 0; - memcpy(&NALUnitLength, bufferDataPointer + bufferOffset, AVCCHeaderLength); - - // Convert the length value from Big-endian to Little-endian - NALUnitLength = CFSwapInt32BigToHost(NALUnitLength); - - // Write the NAL unit without the AVCC length header to the elementary stream - NSData *nalUnit = [NSData dataWithBytesNoCopy:bufferDataPointer + bufferOffset + AVCCHeaderLength length:NALUnitLength freeWhenDone:NO]; - [nalUnits addObject:nalUnit]; - - // Move to the next NAL unit in the block buffer - bufferOffset += AVCCHeaderLength + NALUnitLength; - } - - return nalUnits; -} - -/// Forces the completion of any pending frames and invalidates the current VTCompressionSession -- (void)sdl_invalidateCompressionSession { - if (self.compressionSession == NULL) { return; } - - VTCompressionSessionCompleteFrames(self.compressionSession, kCMTimeInvalid); - VTCompressionSessionInvalidate(self.compressionSession); - CFRelease(self.compressionSession); - self.compressionSession = NULL; -} - -/// Recreates a compression session and sets the video encoder properties on the session after an error occurs. -/// @return True if the compression session was created successfully; false if not -- (BOOL)sdl_resetCompressionSession { - // Destroy the current compression session before attempting to create a new one. Otherwise the attempt to create a new compression session sometimes fails. - [self sdl_invalidateCompressionSession]; - - NSError *error = nil; - BOOL compressionSessionCreated = [self sdl_createCompressionSessionWithError:&error]; - if (!compressionSessionCreated) { - SDLLogE(@"Error creating the compression session: %@", error.localizedDescription); - return NO; - } - - BOOL propertiesSetOnCompressionSession = [self sdl_setPropertiesOnCompressionSession:self.compressionSession withError:&error]; - if (!propertiesSetOnCompressionSession) { - SDLLogE(@"Error setting the properties on the compression session: %@", error.localizedDescription); - return NO; - } - - return YES; -} - -/// Creates a compression session using the dimensions passed when the video encoder was created. -/// @param error Error set if the compression session was not created successfully -/// @return True if the compression session was created successfully; false if not -- (BOOL)sdl_createCompressionSessionWithError:(NSError **)error { - OSStatus status = VTCompressionSessionCreate(NULL, (int32_t)self.dimensions.width, (int32_t)self.dimensions.height, kCMVideoCodecType_H264, NULL, self.pixelBufferOptions, NULL, &sdl_videoEncoderOutputCallback, (__bridge void *)self, &_compressionSession); - - if (status != noErr) { - if (error != NULL) { - *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionCreationFailure userInfo:@{@"OSStatus":@(status), NSLocalizedDescriptionKey:@"Compression session could not be created"}]; - } - - return NO; - } - - return (status == noErr); -} - -/// Validates the properties set by the developer into the encoder settings dictionary. If any are not available for use, the session will be cancelled. -/// @param compressionSession The compression session on which the video encoder properties will be set -/// @param error Error set if the video encoder properties are not valid -/// @return True if the video encoder properties are valid; false if not -- (BOOL)sdl_validateVideoEncoderPropertiesOnCompressionSession:(VTCompressionSessionRef)compressionSession withError:(NSError **)error { - OSStatus status; - - // Validate that the video encoder properties are valid. - CFDictionaryRef supportedProperties; - status = VTSessionCopySupportedPropertyDictionary(compressionSession, &supportedProperties); - if (status != noErr) { - if (error != NULL) { - *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{@"OSStatus":@(status), NSLocalizedDescriptionKey:[NSString stringWithFormat:@"\"%@\" are not supported properties.", supportedProperties]}]; - } - return NO; - } - - NSArray *videoEncoderKeys = self.videoEncoderSettings.allKeys; - for (NSString *key in videoEncoderKeys) { - if (CFDictionaryContainsKey(supportedProperties, (__bridge CFStringRef)key) == false) { - if (error != NULL) { - *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{NSLocalizedDescriptionKey:[NSString stringWithFormat:@"\"%@\" is not a supported key.", key]}]; - } - CFRelease(supportedProperties); - return NO; - } - } - CFRelease(supportedProperties); - - return YES; -} - -/// Sets the video encoding properties on the compression session. -/// @param compressionSession The compression session on which to set the video encoding properties -/// @param error Error set if the properties were not successfully set on the video toolbox session -/// @return True if the video encoding properties were set successfully; false if not -- (BOOL)sdl_setPropertiesOnCompressionSession:(VTCompressionSessionRef)compressionSession withError:(NSError **)error { - OSStatus status; - - NSArray* videoEncoderKeys = self.videoEncoderSettings.allKeys; - for (NSString *key in videoEncoderKeys) { - id value = self.videoEncoderSettings[key]; - status = VTSessionSetProperty(compressionSession, (__bridge CFStringRef)key, (__bridge CFTypeRef)value); - if (status != noErr) { - if (error != NULL) { - *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{@"OSStatus": @(status), NSLocalizedDescriptionKey:[NSString stringWithFormat:@"Setting key failed \"%@\"", key]}]; - } - return NO; - } - } - - self.currentFrameNumber = 0; - self.timestampOffset = 0.0; - - return YES; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.h deleted file mode 100644 index 84a2eec..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.h +++ /dev/null @@ -1,83 +0,0 @@ -// -// SDLHMICapabilities.h -// SmartDeviceLink-iOS - -#import "SDLRPCStruct.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Contains information about the HMI capabilities. - - Since SDL 3.0 -**/ -@interface SDLHMICapabilities : SDLRPCStruct - -/** - Availability of built in Nav. True: Available, False: Not Available - - Boolean value. Optional. - - Since SDL 3.0 - */ -@property (nullable, copy, nonatomic) NSNumber *navigation; - -/** - Availability of built in phone. True: Available, False: Not Available - - Boolean value. Optional. - - Since SDL 3.0 - */ -@property (nullable, copy, nonatomic) NSNumber *phoneCall; - -/** - Availability of built in video streaming. True: Available, False: Not Available - - Boolean value. Optional. - - Since SDL 4.5 - */ -@property (nullable, copy, nonatomic) NSNumber *videoStreaming; - -/** - Availability of built in remote control. True: Available, False: Not Available - - Boolean value. Optional. - - Since SDL 4.5 -**/ -@property (nullable, copy, nonatomic) NSNumber *remoteControl; - -/** - Availability of app services. True: Available, False: Not Available - - App services is supported since SDL 5.1. If your connection is 5.1+, you can assume that app services is available even though between v5.1 and v6.0 this parameter is `nil`. - - Boolean value. Optional. - - Since SDL 6.0 -**/ -@property (nullable, copy, nonatomic) NSNumber *appServices; - -/** - Availability of displays. True: Available, False: Not Available - - Boolean value. Optional. - - Since SDL 6.0 -**/ -@property (nullable, copy, nonatomic) NSNumber *displays; - -/** - Availability of seatLocation. True: Available, False: Not Available - - Boolean value. Optional. - - Since SDL 6.0 - **/ -@property (nullable, copy, nonatomic) NSNumber *seatLocation; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.m deleted file mode 100644 index fd0104e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMICapabilities.m +++ /dev/null @@ -1,72 +0,0 @@ -// -// SDLHMICapabilities.m -// SmartDeviceLink-iOS - -#import "SDLHMICapabilities.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLHMICapabilities - -- (void)setNavigation:(nullable NSNumber *)navigation { - [self.store sdl_setObject:navigation forName:SDLRPCParameterNameNavigation]; -} - -- (nullable NSNumber *)navigation { - return [self.store sdl_objectForName:SDLRPCParameterNameNavigation ofClass:NSNumber.class error:nil]; -} - -- (void)setPhoneCall:(nullable NSNumber *)phoneCall { - [self.store sdl_setObject:phoneCall forName:SDLRPCParameterNamePhoneCall]; -} - -- (nullable NSNumber *)phoneCall { - return [self.store sdl_objectForName:SDLRPCParameterNamePhoneCall ofClass:NSNumber.class error:nil]; -} - -- (void)setVideoStreaming:(nullable NSNumber *)videoStreaming { - [self.store sdl_setObject:videoStreaming forName:SDLRPCParameterNameVideoStreaming]; -} - -- (nullable NSNumber *)videoStreaming { - return [self.store sdl_objectForName:SDLRPCParameterNameVideoStreaming ofClass:NSNumber.class error:nil]; -} - -- (void)setRemoteControl:(nullable NSNumber *)remoteControl { - [self.store sdl_setObject:remoteControl forName:SDLRPCParameterNameRemoteControl]; -} - -- (nullable NSNumber *)remoteControl { - return [self.store sdl_objectForName:SDLRPCParameterNameRemoteControl ofClass:NSNumber.class error:nil]; -} - -- (void)setAppServices:(nullable NSNumber *)appServices { - [self.store sdl_setObject:appServices forName:SDLRPCParameterNameAppServices]; -} - -- (nullable NSNumber *)appServices { - return [self.store sdl_objectForName:SDLRPCParameterNameAppServices ofClass:NSNumber.class error:nil]; -} - -- (void)setDisplays:(nullable NSNumber *)displays { - [self.store sdl_setObject:displays forName:SDLRPCParameterNameDisplays]; -} - -- (nullable NSNumber *)displays { - return [self.store sdl_objectForName:SDLRPCParameterNameDisplays ofClass:NSNumber.class error:nil]; -} - -- (void)setSeatLocation:(nullable NSNumber *)seatLocation { - [self.store sdl_setObject:seatLocation forName:SDLRPCParameterNameSeatLocation]; -} - -- (nullable NSNumber *)seatLocation { - return [self.store sdl_objectForName:SDLRPCParameterNameSeatLocation ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMILevel.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMILevel.h deleted file mode 100644 index ff45751..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMILevel.h +++ /dev/null @@ -1,36 +0,0 @@ -// SDLHMILevel.h -// - - -#import "SDLEnum.h" - -/** - * Specifies current level of the HMI. An HMI level indicates the degree of user interaction possible through the HMI (e.g. TTS only, display only, VR, etc.). The HMI level varies for an application based on the type of display (i.e. Nav or non-Nav) and the user directing "focus" to other applications (e.g. phone, other mobile applications, etc.). Used in OnHMIStatus - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLHMILevel SDL_SWIFT_ENUM; - -/** - * The application has full use of the SDL HMI. The app may output via TTS, display, or streaming audio and may gather input via VR, Menu, and button presses - */ -extern SDLHMILevel const SDLHMILevelFull; - -/** - * This HMI Level is only defined for a media application using an HMI with an 8 inch touchscreen (Nav) system. The application's Show text is displayed and it receives button presses from media-oriented buttons (SEEKRIGHT, SEEKLEFT, TUNEUP, TUNEDOWN, PRESET_0-9) - */ -extern SDLHMILevel const SDLHMILevelLimited; - -/** - * App cannot interact with user via TTS, VR, Display or Button Presses. App can perform the following operations: - * - * AddCommand, DeleteCommand, AddSubMenu, DeleteSubMenu, CreateInteractionChoiceSet, DeleteInteractionChoiceSet, SubscribeButton, UnsubscribeButton, Show, UnregisterAppInterface, ResetGlobalProperties, SetGlobalProperties - */ -extern SDLHMILevel const SDLHMILevelBackground; - -/** - * Application has been discovered by SDL, but it cannot send any requests or receive any notifications - * - * An HMILevel of NONE can also mean that the user has exited the application by saying "exit appname" or selecting "exit" from the application's menu. When this happens, the application still has an active interface registration with SDL and all SDL resources the application has created (e.g. Choice Sets, subscriptions, etc.) still exist. But while the HMILevel is NONE, the application cannot send any messages to SYNC, except UnregisterAppInterface - */ -extern SDLHMILevel const SDLHMILevelNone; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMILevel.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMILevel.m deleted file mode 100644 index dab5a86..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMILevel.m +++ /dev/null @@ -1,10 +0,0 @@ -// SDLHMILevel.m -// - - -#import "SDLHMILevel.h" - -SDLHMILevel const SDLHMILevelFull = @"FULL"; -SDLHMILevel const SDLHMILevelLimited = @"LIMITED"; -SDLHMILevel const SDLHMILevelBackground = @"BACKGROUND"; -SDLHMILevel const SDLHMILevelNone = @"NONE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIPermissions.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIPermissions.h deleted file mode 100644 index fa91517..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIPermissions.h +++ /dev/null @@ -1,39 +0,0 @@ -// SDLHMIPermissions.h -// - - -#import "SDLRPCMessage.h" - -#import "SDLHMILevel.h" - -/** - * Defining sets of HMI levels, which are permitted or prohibited for a given RPC. - * - * @since SDL 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLHMIPermissions : SDLRPCStruct - -/** - * A set of all HMI levels that are permitted for this given RPC - * - * @see SDLHMILevel - * - * Required, Array of SDLHMILevel, Array size 0 - 100 - */ -@property (strong, nonatomic) NSArray *allowed; - -/** - * A set of all HMI levels that are prohibited for this given RPC - * - * @see SDLHMILevel - * - * Required, Array of SDLHMILevel, Array size 0 - 100 - */ -@property (strong, nonatomic) NSArray *userDisallowed; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIPermissions.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIPermissions.m deleted file mode 100644 index 5cd8bb8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIPermissions.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLHMIPermissions.m -// - - -#import "SDLHMIPermissions.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLHMIPermissions - -- (void)setAllowed:(NSArray *)allowed { - [self.store sdl_setObject:allowed forName:SDLRPCParameterNameAllowed]; -} - -- (NSArray *)allowed { - NSError *error = nil; - return [self.store sdl_enumsForName:SDLRPCParameterNameAllowed error:&error]; -} - -- (void)setUserDisallowed:(NSArray *)userDisallowed { - [self.store sdl_setObject:userDisallowed forName:SDLRPCParameterNameUserDisallowed]; -} - -- (NSArray *)userDisallowed { - NSError *error = nil; - return [self.store sdl_enumsForName:SDLRPCParameterNameUserDisallowed error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.h deleted file mode 100644 index b79ec60..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.h +++ /dev/null @@ -1,96 +0,0 @@ -// SDLHMISettingsControlCapabilities.h -// - -#import "SDLRPCMessage.h" -#import "SDLModuleInfo.h" - -NS_ASSUME_NONNULL_BEGIN - -/// HMI data struct for HMI control settings -/// -/// @since 5.0 -@interface SDLHMISettingsControlCapabilities : SDLRPCStruct - -/** - Constructs a newly allocated SDLHMISettingsControlCapabilities object with moduleName - - @param moduleName The short friendly name of the hmi setting module - - @return An instance of the SDLHMISettingsControlCapabilities class - */ -- (instancetype)initWithModuleName:(NSString *)moduleName __deprecated_msg("Use initWithModuleName:moduleInfo:"); - -/** - Constructs a newly allocated SDLHMISettingsControlCapabilities object with moduleName - - @param moduleName The short friendly name of the hmi setting module - @param moduleInfo Information about a RC module, including its id. - - @return An instance of the SDLHMISettingsControlCapabilities class - */ -- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo; - -/** - Constructs a newly allocated SDLHMISettingsControlCapabilities object with given parameters - - @param moduleName The short friendly name of the hmi setting module - @param distanceUnitAvailable Availability of the control of distance unit. - @param temperatureUnitAvailable Availability of the control of temperature unit. - @param displayModeUnitAvailable Availability of the control of displayMode unit. - - @return An instance of the SDLHMISettingsControlCapabilities class - */ -- (instancetype)initWithModuleName:(NSString *)moduleName distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable __deprecated_msg("Use initWithModuleName:moduleInfo:distanceUnitAvailable:distanceUnitAvailable:temperatureUnitAvailable:displayModeUnitAvailable:"); - -/** - Constructs a newly allocated SDLHMISettingsControlCapabilities object with given parameters - - @param moduleName The short friendly name of the hmi setting module. - @param moduleInfo Information about a RC module, including its id. - @param distanceUnitAvailable Availability of the control of distance unit. - @param temperatureUnitAvailable Availability of the control of temperature unit. - @param displayModeUnitAvailable Availability of the control of displayMode unit. - - @return An instance of the SDLHMISettingsControlCapabilities class - */ -- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable; - -/** - * @abstract The short friendly name of the hmi setting module. - * It should not be used to identify a module by mobile application. - * - * Required, Max String length 100 chars - */ -@property (strong, nonatomic) NSString *moduleName; - -/** - * @abstract Availability of the control of distance unit. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *distanceUnitAvailable; - -/** - * @abstract Availability of the control of temperature unit. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *temperatureUnitAvailable; - -/** - * @abstract Availability of the control of HMI display mode. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *displayModeUnitAvailable; - -/** - * Information about a RC module, including its id. - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.m deleted file mode 100644 index d7dab5f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlCapabilities.m +++ /dev/null @@ -1,104 +0,0 @@ -// SDLHMISettingsControlCapabilities.m -// - -#import "SDLHMISettingsControlCapabilities.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLHMISettingsControlCapabilities - -- (instancetype)initWithModuleName:(NSString *)moduleName { - self = [self init]; - if(!self) { - return nil; - } - self.moduleName = moduleName; - - return self; -} - -- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo { - self = [self init]; - if(!self) { - return nil; - } - self.moduleName = moduleName; - self.moduleInfo = moduleInfo; - - return self; -} - -- (instancetype)initWithModuleName:(NSString *)moduleName distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable { - self = [self init]; - if(!self) { - return nil; - } - self.moduleName = moduleName; - self.distanceUnitAvailable = @(distanceUnitAvailable); - self.temperatureUnitAvailable = @(temperatureUnitAvailable); - self.displayModeUnitAvailable = @(displayModeUnitAvailable); - - return self; -} - -- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable { - self = [self init]; - if(!self) { - return nil; - } - self.moduleName = moduleName; - self.moduleInfo = moduleInfo; - self.distanceUnitAvailable = @(distanceUnitAvailable); - self.temperatureUnitAvailable = @(temperatureUnitAvailable); - self.displayModeUnitAvailable = @(displayModeUnitAvailable); - - return self; -} - -- (void)setModuleName:(NSString *)moduleName { - [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; -} - -- (NSString *)moduleName { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; -} - - -- (void)setDistanceUnitAvailable:(nullable NSNumber *)distanceUnitAvailable { - [self.store sdl_setObject:distanceUnitAvailable forName:SDLRPCParameterNameDistanceUnitAvailable]; -} - -- (nullable NSNumber *)distanceUnitAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameDistanceUnitAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setTemperatureUnitAvailable:(nullable NSNumber *)temperatureUnitAvailable { - [self.store sdl_setObject:temperatureUnitAvailable forName:SDLRPCParameterNameTemperatureUnitAvailable]; -} - -- (nullable NSNumber *)temperatureUnitAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameTemperatureUnitAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setDisplayModeUnitAvailable:(nullable NSNumber *)displayModeUnitAvailable { - [self.store sdl_setObject:displayModeUnitAvailable forName:SDLRPCParameterNameDisplayModeUnitAvailable]; -} - -- (nullable NSNumber *)displayModeUnitAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameDisplayModeUnitAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { - [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; -} - -- (nullable SDLModuleInfo *)moduleInfo { - return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlData.h deleted file mode 100644 index c16afb7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlData.h +++ /dev/null @@ -1,50 +0,0 @@ -// SDLHMISettingsControlData.h -// - -#import "SDLRPCMessage.h" -#import "SDLDisplayMode.h" -#import "SDLTemperatureUnit.h" -#import "SDLDistanceUnit.h" - -/** - * Corresponds to "HMI_SETTINGS" ModuleType - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLHMISettingsControlData : SDLRPCStruct - -/** - Constructs a newly allocated SDLHMISettingsControlCapabilities object with given parameters - - @param displayMode Display Mode used in HMI setting - @param temperatureUnit temperature unit used in HMI setting - @param distanceUnit distance unit used in HMI setting - @return An instance of the SDLHMISettingsControlCapabilities class - */ -- (instancetype)initWithDisplaymode:(SDLDisplayMode)displayMode temperatureUnit:(SDLTemperatureUnit)temperatureUnit distanceUnit:(SDLDistanceUnit)distanceUnit; - -/** - * @abstract Display the Display Mode used HMI setting - * - * Optional, SDLDisplayMode - */ -@property (nullable, strong, nonatomic) SDLDisplayMode displayMode; - -/** - * @abstract Display the temperature unit used HMI setting - * - * Optional, SDLTemperatureUnit - */ -@property (nullable, strong, nonatomic) SDLTemperatureUnit temperatureUnit; - -/** - * @abstract Display the distance unit used HMI setting - * - * Optional, SDLDistanceUnit - */ -@property (nullable, strong, nonatomic) SDLDistanceUnit distanceUnit; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlData.m deleted file mode 100644 index df7982e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMISettingsControlData.m +++ /dev/null @@ -1,50 +0,0 @@ -// SDLHMISettingsControlData.m -// - -#import "SDLHMISettingsControlData.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLHMISettingsControlData - -- (instancetype)initWithDisplaymode:(SDLDisplayMode)displayMode temperatureUnit:(SDLTemperatureUnit)temperatureUnit distanceUnit:(SDLDistanceUnit)distanceUnit { - self = [self init]; - if(!self) { - return nil; - } - self.displayMode = displayMode; - self.distanceUnit = distanceUnit; - self.temperatureUnit = temperatureUnit; - - return self; -} - -- (void)setDisplayMode:(nullable SDLDisplayMode)displayMode { - [self.store sdl_setObject:displayMode forName:SDLRPCParameterNameDisplayMode]; -} - -- (nullable SDLDisplayMode)displayMode { - return [self.store sdl_enumForName:SDLRPCParameterNameDisplayMode error:nil]; -} - -- (void)setDistanceUnit:(nullable SDLDistanceUnit)distanceUnit { - [self.store sdl_setObject:distanceUnit forName:SDLRPCParameterNameDistanceUnit]; -} - -- (nullable SDLDistanceUnit)distanceUnit { - return [self.store sdl_enumForName:SDLRPCParameterNameDistanceUnit error:nil]; -} - -- (void)setTemperatureUnit:(nullable SDLTemperatureUnit)temperatureUnit { - [self.store sdl_setObject:temperatureUnit forName:SDLRPCParameterNameTemperatureUnit]; -} - -- (nullable SDLTemperatureUnit)temperatureUnit { - return [self.store sdl_enumForName:SDLRPCParameterNameTemperatureUnit error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIZoneCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIZoneCapabilities.h deleted file mode 100644 index b4b023f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIZoneCapabilities.h +++ /dev/null @@ -1,22 +0,0 @@ -// SDLHmiZoneCapabilities.h -// - - -#import "SDLEnum.h" - -/** - * Specifies HMI Zones in the vehicle. Used in RegisterAppInterfaceResponse - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLHMIZoneCapabilities SDL_SWIFT_ENUM; - -/** - * Indicates HMI available for front seat passengers. - */ -extern SDLHMIZoneCapabilities const SDLHMIZoneCapabilitiesFront; - -/** - * Indicates HMI available for rear seat passengers. - */ -extern SDLHMIZoneCapabilities const SDLHMIZoneCapabilitiesBack; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIZoneCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIZoneCapabilities.m deleted file mode 100644 index 9b9bed2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHMIZoneCapabilities.m +++ /dev/null @@ -1,8 +0,0 @@ -// SDLHMIZoneCapabilities.m -// - - -#import "SDLHMIZoneCapabilities.h" - -SDLHMIZoneCapabilities const SDLHMIZoneCapabilitiesFront = @"FRONT"; -SDLHMIZoneCapabilities const SDLHMIZoneCapabilitiesBack = @"BACK"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.h deleted file mode 100644 index ca7182a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// SDLHapticRect.h -// SmartDeviceLink-iOS -// -// Created by Nicole on 8/3/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLRPCStruct.h" - -@class SDLRectangle; - -NS_ASSUME_NONNULL_BEGIN - -/** - Defines spatial for each user control object for video streaming application - */ -@interface SDLHapticRect : SDLRPCStruct - -/// Convenience init with all parameters -/// -/// @param id A user control spatial identifier -/// @param rect The position of the haptic rectangle to be highlighted. The center of this rectangle will be "touched" when a press occurs -/// @return An SDLHapticRect object -- (instancetype)initWithId:(UInt32)id rect:(SDLRectangle *)rect; - -/** - A user control spatial identifier - - Required, Integer, 0 - 2,000,000,000 - */ -@property (strong, nonatomic) NSNumber *id; - -/** - The position of the haptic rectangle to be highlighted. The center of this rectangle will be "touched" when a press occurs. - - Required - */ -@property (strong, nonatomic) SDLRectangle *rect; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.m deleted file mode 100644 index 6641f52..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHapticRect.m +++ /dev/null @@ -1,49 +0,0 @@ -// -// SDLHapticRect.m -// SmartDeviceLink-iOS -// -// Created by Nicole on 8/3/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "NSMutableDictionary+Store.h" -#import "SDLHapticRect.h" -#import "SDLRPCParameterNames.h" -#import "SDLRectangle.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLHapticRect - -- (instancetype)initWithId:(UInt32)id rect:(nonnull SDLRectangle *)rect { - self = [self init]; - if (!self) { - return nil; - } - - self.id = @(id); - self.rect = rect; - - return self; -} - -- (void)setId:(NSNumber *)id { - [self.store sdl_setObject:id forName:SDLRPCParameterNameId]; -} - -- (NSNumber *)id { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameId ofClass:NSNumber.class error:&error]; -} - -- (void)setRect:(SDLRectangle *)rect { - [self.store sdl_setObject:rect forName:SDLRPCParameterNameRect]; -} - -- (SDLRectangle *)rect { - return [self.store sdl_objectForName:SDLRPCParameterNameRect ofClass:SDLRectangle.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHeadLampStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHeadLampStatus.h deleted file mode 100644 index 8fff2ed..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHeadLampStatus.h +++ /dev/null @@ -1,38 +0,0 @@ -// SDLHeadLampStatus.h -// - -#import "SDLRPCMessage.h" - -#import "SDLAmbientLightStatus.h" - - -NS_ASSUME_NONNULL_BEGIN - -/** - Vehicle data struct for status of head lamps - */ -@interface SDLHeadLampStatus : SDLRPCStruct - -/** - Low beams are on or off. - - Required, boolean - */ -@property (strong, nonatomic) NSNumber *lowBeamsOn; -/** - High beams are on or off - - Required, boolean - */ -@property (strong, nonatomic) NSNumber *highBeamsOn; - -/** - Status of the ambient light senser - - Optional - */ -@property (nullable, strong, nonatomic) SDLAmbientLightStatus ambientLightSensorStatus; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHeadLampStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHeadLampStatus.m deleted file mode 100644 index e9f018f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHeadLampStatus.m +++ /dev/null @@ -1,42 +0,0 @@ -// SDLHeadLampStatus.m -// - -#import "SDLHeadLampStatus.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLAmbientLightStatus.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLHeadLampStatus - -- (void)setLowBeamsOn:(NSNumber *)lowBeamsOn { - [self.store sdl_setObject:lowBeamsOn forName:SDLRPCParameterNameLowBeamsOn]; -} - -- (NSNumber *)lowBeamsOn { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLowBeamsOn ofClass:NSNumber.class error:&error]; -} - -- (void)setHighBeamsOn:(NSNumber *)highBeamsOn { - [self.store sdl_setObject:highBeamsOn forName:SDLRPCParameterNameHighBeamsOn]; -} - -- (NSNumber *)highBeamsOn { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameHighBeamsOn ofClass:NSNumber.class error:&error]; -} - -- (void)setAmbientLightSensorStatus:(nullable SDLAmbientLightStatus)ambientLightSensorStatus { - [self.store sdl_setObject:ambientLightSensorStatus forName:SDLRPCParameterNameAmbientLightSensorStatus]; -} - -- (nullable SDLAmbientLightStatus)ambientLightSensorStatus { - return [self.store sdl_enumForName:SDLRPCParameterNameAmbientLightSensorStatus error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHexUtility.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHexUtility.h deleted file mode 100644 index 95b564b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHexUtility.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// SDLHexUtility.h -// SmartDeviceLink -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLHexUtility : NSObject - -+ (NSString *)getHexString:(UInt8 *)bytes length:(NSUInteger)length; -+ (NSString *)getHexString:(NSData *)data; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHexUtility.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHexUtility.m deleted file mode 100644 index c052836..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHexUtility.m +++ /dev/null @@ -1,64 +0,0 @@ -// -// SDLHexUtility.m -// SmartDeviceLink -// - -#import "SDLHexUtility.h" - -@implementation SDLHexUtility - -NS_ASSUME_NONNULL_BEGIN - -// Using this function as a fail-safe, because we know this is successful. -+ (NSString *)getHexString:(UInt8 *)bytes length:(NSUInteger)length { - NSMutableString *ret = [NSMutableString stringWithCapacity:(length * 2)]; - for (int i = 0; i < length; i++) { - [ret appendFormat:@"%02X", ((Byte *)bytes)[i]]; - } - - return ret; -} - -static inline char itoh(char i) { - if (i > 9) { - return 'A' + (i - 10); - } - - return '0' + i; -} - -NSString *getHexString(NSData *data) { - NSUInteger length; - unsigned char *buffer, *bytes; - - length = data.length; - bytes = (unsigned char *)data.bytes; - buffer = malloc(length * 2); - - for (NSUInteger i = 0; i < length; i++) { - buffer[i * 2] = (Byte)itoh((bytes[i] >> 4) & 0xF); - buffer[(i * 2) + 1] = (Byte)itoh(bytes[i] & 0xF); - } - - NSString *hexString = [[NSString alloc] initWithBytesNoCopy:buffer - length:length * 2 - encoding:NSASCIIStringEncoding - freeWhenDone:YES]; - // HAX: https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/#//apple_ref/occ/instm/NSString/initWithBytesNoCopy:length:encoding:freeWhenDone: - // If there is an error allocating the string, we must free the buffer and fall back to the less performant method. - if (!hexString) { - free(buffer); - hexString = [SDLHexUtility getHexString:bytes length:length]; - } - - return hexString; -} - -+ (NSString *)getHexString:(NSData *)data { - return getHexString(data); -} - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.h deleted file mode 100644 index 171edba..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLHybridAppPreference.h -// SmartDeviceLink -// -// Created by Nicole on 2/26/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * Enumeration for the user's preference of which app type to use when both are available. - */ -typedef SDLEnum SDLHybridAppPreference SDL_SWIFT_ENUM; - -/** - * App preference of mobile. - */ -extern SDLHybridAppPreference const SDLHybridAppPreferenceMobile; - -/** - * App preference of cloud. - */ -extern SDLHybridAppPreference const SDLHybridAppPreferenceCloud; - -/** - * App preference of both. Allows both the mobile and the cloud versions of the app to attempt to connect at the same time, however the first app that is registered is the one that is allowed to stay registered. - */ -extern SDLHybridAppPreference const SDLHybridAppPreferenceBoth; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.m deleted file mode 100644 index 963bc41..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLHybridAppPreference.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// SDLHybridAppPreference.m -// SmartDeviceLink -// -// Created by Nicole on 2/26/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLHybridAppPreference.h" - -SDLHybridAppPreference const SDLHybridAppPreferenceMobile = @"MOBILE"; -SDLHybridAppPreference const SDLHybridAppPreferenceCloud = @"CLOUD"; -SDLHybridAppPreference const SDLHybridAppPreferenceBoth = @"BOTH"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.h deleted file mode 100644 index 0f72f93..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// SDLIAPConstants.h -// SmartDeviceLink -// -// Created by Nicole on 4/17/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -extern NSString *const ControlProtocolString; -extern NSString *const IndexedProtocolStringPrefix; -extern NSString *const LegacyProtocolString; -extern NSString *const MultiSessionProtocolString; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.m deleted file mode 100644 index 3990d76..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPConstants.m +++ /dev/null @@ -1,14 +0,0 @@ -// -// SDLIAPConstants.m -// SmartDeviceLink -// -// Created by Nicole on 4/17/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLIAPConstants.h" - -NSString *const ControlProtocolString = @"com.smartdevicelink.prot0"; -NSString *const IndexedProtocolStringPrefix = @"com.smartdevicelink.prot"; -NSString *const LegacyProtocolString = @"com.ford.sync.prot0"; -NSString *const MultiSessionProtocolString = @"com.smartdevicelink.multisession"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.h deleted file mode 100644 index 03940ef..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// SDLIAPControlSession.h -// SmartDeviceLink -// -// Created by Nicole on 4/16/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLIAPSession.h" - -@class EAAccessory; - -@protocol SDLIAPControlSessionDelegate; - -NS_ASSUME_NONNULL_BEGIN - -/** - * The communications channel between the app and the SDL enabled accessory. The control session is used to get the unique protocol string needed to create a session with Core. The control session is only used with legacy head units that do not support the multisession protocol (the multisession protocol allows multiple apps to connect over the same protocol string). A control session is needed because each SDL enabled app needs to connect to the accessory using a unique protocol string. - * - * When the protocol string is received from Core, the control session is closed as a new session with Core must be established with the received protocol string. Core has ~10 seconds to send the protocol string, otherwise the control session is closed and new attempt is made to establish a control session with Core. - */ -@interface SDLIAPControlSession : SDLIAPSession - -- (instancetype)init NS_UNAVAILABLE; - -/** - * Creates a new control session. - * - * @param accessory The accessory to connect to. - * @param delegate The control session delegate - * @return A SDLIAPControlSession object - */ -- (instancetype)initWithAccessory:(nullable EAAccessory *)accessory delegate:(id)delegate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.m deleted file mode 100644 index 50d7a98..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSession.m +++ /dev/null @@ -1,261 +0,0 @@ -// -// SDLIAPControlSession.m -// SmartDeviceLink -// -// Created by Nicole on 4/16/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLIAPControlSession.h" - -#import "EAAccessory+SDLProtocols.h" -#import "EAAccessoryManager+SDLProtocols.h" -#import "SDLIAPConstants.h" -#import "SDLIAPControlSessionDelegate.h" -#import "SDLIAPSession.h" -#import "SDLLogMacros.h" -#import "SDLTimer.h" - - -NS_ASSUME_NONNULL_BEGIN - -int const ProtocolIndexTimeoutSeconds = 10; - -@interface SDLIAPControlSession () - -@property (nullable, strong, nonatomic) SDLTimer *protocolIndexTimer; -@property (weak, nonatomic) id delegate; - -@end - -@implementation SDLIAPControlSession - -#pragma mark - Session lifecycle - -- (instancetype)initWithAccessory:(nullable EAAccessory *)accessory delegate:(id)delegate { - SDLLogV(@"SDLIAPControlSession init"); - - self = [super initWithAccessory:accessory forProtocol:ControlProtocolString]; - if (!self) { return nil; } - - _protocolIndexTimer = nil; - _delegate = delegate; - - return self; -} - -#pragma mark Start - -- (void)startSession { - if (self.accessory == nil) { - SDLLogW(@"There is no control session in progress, attempting to create a new control session."); - [self.delegate controlSessionShouldRetry]; - } else { - SDLLogD(@"Starting a control session with accessory (%@)", self.accessory.name); - __weak typeof(self) weakSelf = self; - [self sdl_startStreamsWithCompletionHandler:^(BOOL success) { - __strong typeof(weakSelf) strongSelf = weakSelf; - if (!success) { - SDLLogW(@"Control session failed to setup with accessory: %@. Attempting to create a new control session", strongSelf.accessory); - [strongSelf destroySessionWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - [strongSelf.delegate controlSessionShouldRetry]; - }]; - } else { - SDLLogD(@"Waiting for the protocol string from Core, setting timeout timer for %d seconds", ProtocolIndexTimeoutSeconds); - strongSelf.protocolIndexTimer = [strongSelf sdl_createControlSessionProtocolIndexStringDataTimeoutTimer]; - } - }]; - } -} - -/// Opens the input and output streams for the session on the main thread. -/// @discussion We must close the input/output streams from the same thread that owns the streams' run loop, otherwise if the streams are closed from another thread a random crash may occur. Since only a small amount of data will be transmitted on this stream before it is closed, we will open and close the streams on the main thread instead of creating a separate thread. -- (void)sdl_startStreamsWithCompletionHandler:(void (^)(BOOL success))completionHandler { - if (![super createSession]) { - return completionHandler(NO); - } - - __weak typeof(self) weakSelf = self; - dispatch_async(dispatch_get_main_queue(), ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - - SDLLogD(@"Created the control session successfully"); - [super startStream:strongSelf.eaSession.outputStream]; - [super startStream:strongSelf.eaSession.inputStream]; - - return completionHandler(YES); - }); -} - -#pragma mark Stop - -/// Makes sure the session is closed and destroyed on the main thread. -/// @param disconnectCompletionHandler Handler called when the session has disconnected -- (void)destroySessionWithCompletionHandler:(void (^)(void))disconnectCompletionHandler { - SDLLogD(@"Destroying the control session"); - dispatch_async(dispatch_get_main_queue(), ^{ - [self sdl_stopAndDestroySession]; - return disconnectCompletionHandler(); - }); -} - -/// Closes the session streams and then destroys the session. -- (void)sdl_stopAndDestroySession { - NSAssert(NSThread.isMainThread, @"%@ must only be called on the main thread", NSStringFromSelector(_cmd)); - - [super stopStream:self.eaSession.outputStream]; - [super stopStream:self.eaSession.inputStream]; - [super cleanupClosedSession]; -} - - -#pragma mark - NSStreamDelegate - -/** - * Handles events on the input/output streams of the open session. - * - * @param stream The stream (either input or output) that the event occured on - * @param eventCode The stream event code - */ -- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { - switch (eventCode) { - case NSStreamEventOpenCompleted: { - [self sdl_streamDidOpen:stream]; - break; - } - case NSStreamEventHasBytesAvailable: { - [self sdl_streamHasBytesAvailable:(NSInputStream *)stream]; - break; - } - case NSStreamEventErrorOccurred: { - [self sdl_streamDidError:stream]; - break; - } - case NSStreamEventEndEncountered: { - [self sdl_streamDidEnd:stream]; - break; - } - case NSStreamEventNone: - case NSStreamEventHasSpaceAvailable: - default: { - break; - } - } -} - -/** - * Called when the session gets a `NSStreamEventOpenCompleted`. When both the input and output streams open, start a timer to get data from Core within a certain timeframe. - * - * @param stream The stream that got the event code. - */ -- (void)sdl_streamDidOpen:(NSStream *)stream { - if (stream == [self.eaSession outputStream]) { - SDLLogD(@"Control session output stream opened"); - self.isOutputStreamOpen = YES; - } else if (stream == [self.eaSession inputStream]) { - SDLLogD(@"Control session input stream opened"); - self.isInputStreamOpen = YES; - } - - // When both streams are open, session initialization is complete. Let the delegate know. - if (self.isInputStreamOpen && self.isOutputStreamOpen) { - SDLLogV(@"Control session I/O streams opened for protocol: %@", self.protocolString); - [self sdl_startControlSessionProtocolIndexStringDataTimeoutTimer]; - } -} - -/** - * Called when the session gets a `NSStreamEventEndEncountered` event code. The current session is closed and a new session is attempted. - */ -- (void)sdl_streamDidEnd:(NSStream *)stream { - SDLLogD(@"Control stream ended"); - - // End events come in pairs, only perform this once per set. - [self.protocolIndexTimer cancel]; - - __weak typeof(self) weakSelf = self; - [self destroySessionWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - [strongSelf.delegate controlSessionShouldRetry]; - }]; -} - -/** - * Called when the session gets a `NSStreamEventHasBytesAvailable` event code. A protocol string is created from the received data. Since a new session needs to be established with the protocol string, the current session is closed and a new session is created. - */ -- (void)sdl_streamHasBytesAvailable:(NSInputStream *)inputStream { - SDLLogV(@"Control stream received data"); - - // Read in the stream a single byte at a time - uint8_t buf[1]; - NSInteger len = [inputStream read:buf maxLength:1]; - if (len <= 0) { - SDLLogV(@"No data in the control stream"); - return; - } - - // If we have data from the control stream, use the data to create the protocol string needed to establish the data session. - NSString *indexedProtocolString = [NSString stringWithFormat:@"%@%@", IndexedProtocolStringPrefix, @(buf[0])]; - SDLLogD(@"Control Stream will switch to protocol %@", indexedProtocolString); - - // Destroy the control session as it is no longer needed, and then create the data session. - __weak typeof(self) weakSelf = self; - [self destroySessionWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - if (strongSelf.accessory.isConnected) { - [strongSelf.protocolIndexTimer cancel]; - [strongSelf.delegate controlSession:strongSelf didReceiveProtocolString:indexedProtocolString]; - } - }]; -} - -/** - * Called when the session gets a `NSStreamEventErrorOccurred` event code. The current session is closed and a new session is attempted. - */ -- (void)sdl_streamDidError:(NSStream *)stream { - SDLLogE(@"Control stream error"); - - [self.protocolIndexTimer cancel]; - __weak typeof(self) weakSelf = self; - [self destroySessionWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - [strongSelf.delegate controlSessionShouldRetry]; - }]; -} - -#pragma mark - Timer - -/** - * Creates a timer for the session. Core has ~10 seconds to send the protocol string, otherwise when the timer's elapsed block is called, the current session is closed and a new session is attempted. - * - * @return A timer - */ -- (SDLTimer *)sdl_createControlSessionProtocolIndexStringDataTimeoutTimer { - SDLTimer *protocolIndexTimer = [[SDLTimer alloc] initWithDuration:ProtocolIndexTimeoutSeconds repeat:NO]; - - __weak typeof(self) weakSelf = self; - void (^elapsedBlock)(void) = ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - SDLLogW(@"Control session failed to get the protocol string from Core after %d seconds, retrying.", ProtocolIndexTimeoutSeconds); - [strongSelf destroySessionWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - [strongSelf.delegate controlSessionShouldRetry]; - }]; - }; - - protocolIndexTimer.elapsedBlock = elapsedBlock; - return protocolIndexTimer; -} - -/** - * Starts a timer for the session. Core has ~10 seconds to send the protocol string, otherwise the control session is closed and the delegate will be notified that it should attempt to establish a new control session. - */ -- (void)sdl_startControlSessionProtocolIndexStringDataTimeoutTimer { - if (self.protocolIndexTimer == nil) { return; } - [self.protocolIndexTimer start]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSessionDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSessionDelegate.h deleted file mode 100644 index 67ba2b0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPControlSessionDelegate.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// SDLIAPControlSessionDelegate.h -// SmartDeviceLink-iOS -// -// Created by Nicole on 5/13/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -@class SDLIAPControlSession; - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLIAPControlSessionDelegate - -- (void)controlSessionShouldRetry; -- (void)controlSession:(SDLIAPControlSession *)controlSession didReceiveProtocolString:(NSString *)protocolString; - -@end - -NS_ASSUME_NONNULL_END - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.h deleted file mode 100644 index 463af6e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// SDLIAPDataSession.h -// SmartDeviceLink -// -// Created by Nicole on 4/17/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLIAPSession.h" - -@protocol SDLIAPDataSessionDelegate; - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLIAPDataSession : SDLIAPSession - -- (instancetype)init NS_UNAVAILABLE; - -/** - * Creates a new data session. - * - * @param accessory The new connected accessory. - * @param delegate The data session delegate - * @return A SDLIAPSession object - */ -- (instancetype)initWithAccessory:(nullable EAAccessory *)accessory delegate:(id)delegate forProtocol:(NSString *)protocol; - -/** - * Sends data to Core via the data session. - * - * @param data The data to send to Core - */ -- (void)sendData:(NSData *)data; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.m deleted file mode 100644 index 785573f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSession.m +++ /dev/null @@ -1,375 +0,0 @@ -// -// SDLIAPDataSession.m -// SmartDeviceLink -// -// Created by Nicole on 4/17/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLIAPDataSession.h" - -#import "SDLGlobals.h" -#import "SDLIAPConstants.h" -#import "SDLIAPDataSessionDelegate.h" -#import "SDLIAPSession.h" -#import "SDLLogMacros.h" -#import "SDLMutableDataQueue.h" - -NSString *const IOStreamThreadName = @"com.smartdevicelink.iostream"; -NSTimeInterval const IOStreamThreadCanceledSemaphoreWaitSecs = 1.0; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLIAPDataSession () - -@property (nullable, nonatomic, strong) NSThread *ioStreamThread; -@property (nonatomic, strong) SDLMutableDataQueue *sendDataQueue; -@property (weak, nonatomic) id delegate; -/// A semaphore used to block the current thread until we know that the I/O streams have been shutdown on the ioStreamThread -@property (nonatomic, strong) dispatch_semaphore_t ioStreamThreadCancelledSemaphore; - -@end - -@implementation SDLIAPDataSession - -#pragma mark - Lifecycle - -- (instancetype)initWithAccessory:(nullable EAAccessory *)accessory delegate:(id)delegate forProtocol:(NSString *)protocol; { - SDLLogV(@"iAP data session init for accessory: %@", accessory); - - self = [super initWithAccessory:accessory forProtocol:protocol]; - if (!self) { return nil; } - - _delegate = delegate; - _sendDataQueue = [[SDLMutableDataQueue alloc] init]; - _ioStreamThreadCancelledSemaphore = dispatch_semaphore_create(0); - - return self; -} - - -#pragma mark Start - -- (void)startSession { - if (self.accessory == nil) { - SDLLogW(@"Failed to setup data session"); - if (self.delegate == nil) { return; } - [self.delegate dataSessionShouldRetry]; - } else { - SDLLogD(@"Starting data session with accessory: %@, using protocol: %@", self.accessory.name, self.protocolString); - - if (![super createSession]) { - SDLLogW(@"Data session failed to setup with accessory: %@. Retrying...", self.accessory); - __weak typeof(self) weakSelf = self; - [self destroySessionWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - if (strongSelf.delegate == nil) { return; } - [strongSelf.delegate dataSessionShouldRetry]; - }]; - } - - if (self.eaSession != nil) { - self.ioStreamThread = [[NSThread alloc] initWithTarget:self selector:@selector(sdl_accessoryEventLoop) object:nil]; - [self.ioStreamThread setName:IOStreamThreadName]; - [self.ioStreamThread start]; - } - } -} - -#pragma mark Stop - -/// Waits for the ioStreamThread to close and destroy the I/O streams. -/// @param disconnectCompletionHandler Handler called when the session has disconnected -- (void)destroySessionWithCompletionHandler:(void (^)(void))disconnectCompletionHandler { - SDLLogD(@"Destroying the data session"); - - if (self.ioStreamThread == nil) { - SDLLogV(@"No data session established"); - [super cleanupClosedSession]; - return disconnectCompletionHandler(); - } - - // Tell the ioStreamThread to shutdown the I/O streams. The I/O streams must be opened and closed on the same thread; if they are not, random crashes can occur. Dispatch this task to the main queue to ensure that this task is performed on the Main Thread. We are using the Main Thread for ease since we don't want to create a separate thread just to wait on closing the I/O streams. Using the Main Thread ensures that semaphore wait is not called from ioStreamThread, which would block the ioStreamThread and prevent shutdown. - __weak typeof(self) weakSelf = self; - dispatch_async(dispatch_get_main_queue(), ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - - // Attempt to cancel the ioStreamThread. Once the thread realizes it has been cancelled, it will cleanup the I/O streams. Make sure to wake up the run loop in case there is no current I/O event running on the ioThread. - [strongSelf.ioStreamThread cancel]; - [strongSelf performSelector:@selector(sdl_doNothing) onThread:self.ioStreamThread withObject:nil waitUntilDone:NO]; - - // Block the thread until the semaphore has been released by the ioStreamThread (or a timeout has occured). - BOOL cancelledSuccessfully = [strongSelf sdl_isIOThreadCancelled]; - if (!cancelledSuccessfully) { - SDLLogE(@"The I/O streams were not shut down successfully. We might not be able to create a new session with an accessory during the same app session. If this happens, only force quitting and restarting the app will allow new sessions."); - } - - [strongSelf.sendDataQueue removeAllObjects]; - - disconnectCompletionHandler(); - }); -} - -/// Wait for the ioStreamThread to destroy the I/O streams. Make sure this method is not called on the ioStreamThread, as it will block the thread until the timeout occurs. -/// @return Whether or not the session's I/O streams were closed successfully. -- (BOOL)sdl_isIOThreadCancelled { - NSAssert(![NSThread.currentThread.name isEqualToString:IOStreamThreadName], @"%@ must not be called from the ioStreamThread!", NSStringFromSelector(_cmd)); - - long lWait = dispatch_semaphore_wait(self.ioStreamThreadCancelledSemaphore, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(IOStreamThreadCanceledSemaphoreWaitSecs * NSEC_PER_SEC))); - if (lWait == 0) { - SDLLogD(@"ioStreamThread cancelled successfully"); - return YES; - } - - SDLLogE(@"Failed to cancel ioStreamThread within %.1f seconds", IOStreamThreadCanceledSemaphoreWaitSecs); - return NO; -} - -/// Helper method for waking up the ioStreamThread. -- (void)sdl_doNothing {} - -#pragma mark - Sending data - -- (void)sendData:(NSData *)data { - // Enqueue the data for transmission on the IO thread - [self.sendDataQueue enqueueBuffer:data.mutableCopy]; - - [self performSelector:@selector(sdl_dequeueAndWriteToOutputStream) onThread:self.ioStreamThread withObject:nil waitUntilDone:NO]; -} - -/** - * Sends any queued data to Core on the output stream for the session. - */ -- (void)sdl_dequeueAndWriteToOutputStream { - if ([self.ioStreamThread isCancelled]) { - SDLLogW(@"Attempted to send data on I/O thread but the thread is cancelled."); - return; - } - - NSOutputStream *ostream = self.eaSession.outputStream; - if (!ostream.hasSpaceAvailable) { - SDLLogV(@"Attempted to send data with output stream but there is no space available."); - return; - } - - NSMutableData *remainder = [self.sendDataQueue frontBuffer]; - if (remainder == nil) { - SDLLogV(@"No more data to write to data session's output stream. Returning"); - return; - } - - NSUInteger bytesRemaining = remainder.length; - NSInteger bytesWritten = [ostream write:remainder.bytes maxLength:bytesRemaining]; - - if (bytesWritten < 0) { - if (ostream.streamError != nil) { - // Once a stream has reported an error, it cannot be re-used for read or write operations. Shut down the stream and attempt to create a new session. - [self sdl_streamDidError:ostream]; - } else { - // The write operation failed but there is no further information about the error. This can occur when disconnecting from an external accessory. - SDLLogE(@"Output stream write operation failed"); - } - } else if (bytesWritten == bytesRemaining) { - // Remove the data from the queue - [self.sendDataQueue popBuffer]; - } else { - // Cleave the sent bytes from the data, the remainder will sit at the head of the queue - [remainder replaceBytesInRange:NSMakeRange(0, (NSUInteger)bytesWritten) withBytes:NULL length:0]; - } -} - -#pragma mark - NSStreamDelegate - -/** - * Handles events on the input/output streams of the open session. - * - * @param stream The stream (either input or output) that the event occured on - * @param eventCode The stream event code - */ -- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { - switch (eventCode) { - case NSStreamEventOpenCompleted: { - [self sdl_streamDidOpen:stream]; - break; - } - case NSStreamEventHasBytesAvailable: { - [self sdl_streamHasBytesAvailable:(NSInputStream *)stream]; - break; - } - case NSStreamEventHasSpaceAvailable: { - [self sdl_streamHasSpaceToWrite]; - break; - } - case NSStreamEventErrorOccurred: { - [self sdl_streamDidError:stream]; - break; - } - case NSStreamEventEndEncountered: { - [self sdl_streamDidEnd:stream]; - break; - } - case NSStreamEventNone: - default: { - break; - } - } -} - -/** - * Called when the session gets a `NSStreamEventOpenCompleted`. When both the input and output streams open, notify the lifecycle manager that a connection has been established with the accessory. - * - * @param stream The stream that got the event code. - */ -- (void)sdl_streamDidOpen:(NSStream *)stream { - if (stream == [self.eaSession outputStream]) { - SDLLogD(@"Data session output stream opened"); - self.isOutputStreamOpen = YES; - } else if (stream == [self.eaSession inputStream]) { - SDLLogD(@"Data session input stream opened"); - self.isInputStreamOpen = YES; - } - - // When both streams are open, session initialization is complete. Let the delegate know. - if (self.isInputStreamOpen && self.isOutputStreamOpen) { - SDLLogV(@"Data session I/O streams opened for protocol: %@", self.protocolString); - if (self.delegate == nil) { return; } - [self.delegate dataSessionDidConnect]; - } -} - -/** - * Called when the session gets a `NSStreamEventEndEncountered` event code. The current session is closed and a new session is attempted. - */ -- (void)sdl_streamDidEnd:(NSStream *)stream { - NSAssert(!NSThread.isMainThread, @"%@ should only be called on the IO thread", NSStringFromSelector(_cmd)); - - SDLLogD(@"Data stream ended"); - if (self.accessory == nil) { - SDLLogD(@"Data session is nil"); - return; - } - - // The handler will be called on the I/O thread, but the session stop method must be called on the main thread - dispatch_async(dispatch_get_main_queue(), ^{ - __weak typeof(self) weakSelf = self; - [self destroySessionWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - if (strongSelf.delegate == nil) { return; } - [strongSelf.delegate dataSessionShouldRetry]; - }]; - }); - - // To prevent deadlocks the handler must return to the runloop and not block the thread -} - -/** - * Called when the session gets a `NSStreamEventHasBytesAvailable` event code. The data is passed to the listener. - */ -- (void)sdl_streamHasBytesAvailable:(NSInputStream *)inputStream { - NSAssert(!NSThread.isMainThread, @"%@ should only be called on the IO thread", NSStringFromSelector(_cmd)); - uint8_t buf[[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]]; - while (inputStream.streamStatus == NSStreamStatusOpen && inputStream.hasBytesAvailable) { - // It is necessary to check the stream status and whether there are bytes available because the dataStreamHasBytesHandler is executed on the IO thread and the accessory disconnect notification arrives on the main thread, causing data to be passed to the delegate while the main thread is tearing down the transport. - NSInteger bytesRead = [inputStream read:buf maxLength:[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]]; - if (bytesRead < 0) { - SDLLogE(@"Failed to read from data stream"); - break; - } - - NSData *dataIn = [NSData dataWithBytes:buf length:(NSUInteger)bytesRead]; - SDLLogBytes(dataIn, SDLLogBytesDirectionReceive); - - if (bytesRead > 0) { - if (self.delegate == nil) { return; } - [self.delegate dataSessionDidReceiveData:dataIn]; - } else { - break; - } - } -} - -/** - * Called when the session gets a `NSStreamEventHasSpaceAvailable` event code. Send any queued data to Core. - */ -- (void)sdl_streamHasSpaceToWrite { - [self sdl_dequeueAndWriteToOutputStream]; -} - -/** - * Called when the session gets a `NSStreamEventErrorOccurred` event code. The current session is closed and a new session is attempted. - */ -- (void)sdl_streamDidError:(NSStream *)stream { - NSAssert(!NSThread.isMainThread, @"%@ should only be called on the IO thread", NSStringFromSelector(_cmd)); - - SDLLogE(@"Data session %s stream errored", stream == self.eaSession.inputStream ? "input" : "output"); - - // To prevent deadlocks the handler must return to the runloop and not block the thread - dispatch_async(dispatch_get_main_queue(), ^{ - __weak typeof(self) weakSelf = self; - [self destroySessionWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - if (![strongSelf.protocolString isEqualToString:LegacyProtocolString]) { - if (strongSelf.delegate == nil) { return; } - [strongSelf.delegate dataSessionShouldRetry]; - } - }]; - }); -} - -#pragma mark - Stream lifecycle - -// Data session I/O thread -- (void)sdl_accessoryEventLoop { - @autoreleasepool { - NSAssert(self.eaSession != nil, @"Session must be assigned before calling"); - if (!self.eaSession) { - return; - } - - [self startStream:self.eaSession.inputStream]; - [self startStream:self.eaSession.outputStream]; - - SDLLogD(@"Starting the accessory event loop on thread: %@", NSThread.currentThread.name); - - while (self.ioStreamThread != nil && !self.ioStreamThread.cancelled) { - // Enqueued data will be written to and read from the streams in the runloop - [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.25f]]; - } - - SDLLogD(@"Closing the accessory event loop on thread: %@", NSThread.currentThread.name); - - // Close I/O streams - [self sdl_closeSession]; - [super cleanupClosedSession]; - - // If a thread is blocked waiting on the I/O streams to shutdown, let the thread know that shutdown has completed. - dispatch_semaphore_signal(self.ioStreamThreadCancelledSemaphore); - } -} - -// Must be called on accessoryEventLoop. -- (void)sdl_closeSession { - if (self.eaSession == nil) { - return; - } - - SDLLogD(@"Closing EASession for accessory connection id: %tu, name: %@", self.connectionID, self.eaSession.accessory.name); - - [self stopStream:[self.eaSession inputStream]]; - [self stopStream:[self.eaSession outputStream]]; -} - -- (void)startStream:(NSStream *)stream { - NSAssert([[NSThread currentThread] isEqual:self.ioStreamThread] || [NSThread isMainThread], @"startStream is being called on the wrong thread!!!"); - [super startStream:stream]; -} - -- (void)stopStream:(NSStream *)stream { - NSAssert([[NSThread currentThread] isEqual:self.ioStreamThread] || [NSThread isMainThread], @"stopStream is being called on the wrong thread!!!"); - [super stopStream:stream]; -} - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSessionDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSessionDelegate.h deleted file mode 100644 index 687da5f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPDataSessionDelegate.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// SDLIAPDataSessionDelegate.h -// SmartDeviceLink-iOS -// -// Created by Nicole on 5/13/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLIAPDataSessionDelegate - -- (void)dataSessionShouldRetry; -- (void)dataSessionDidReceiveData:(NSData *)data; -- (void)dataSessionDidConnect; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.h deleted file mode 100644 index 6bc62ed..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.h +++ /dev/null @@ -1,101 +0,0 @@ -// -// SDLIAPSession.h -// - -#import -#import - - -NS_ASSUME_NONNULL_BEGIN - - -@interface SDLIAPSession : NSObject - -/** - * The accessory with which to open a session. - */ -@property (nullable, strong, nonatomic, readonly) EAAccessory *accessory; - -/** - * The session created between the app and the accessory. - */ -@property (nullable, strong, nonatomic, readonly) EASession *eaSession; - -/** - * The unique protocol string used to create the session with the accessory. - */ -@property (nullable, strong, nonatomic, readonly) NSString *protocolString; - -/** - * Returns whether or not both the input and output streams for the session are closed. - */ -@property (assign, readonly, getter=isStopped) BOOL stopped; - -/** - * The input stream for the session is open when a `NSStreamEventOpenCompleted` event is received for the input stream. The input stream is closed when the stream status is `NSStreamStatusClosed`. - */ -@property (nonatomic, assign) BOOL isInputStreamOpen; - -/** - * The output stream for the session is open when a `NSStreamEventOpenCompleted` event is received for the output stream. The output stream has been closed when the stream status is `NSStreamStatusClosed`. - */ -@property (nonatomic, assign) BOOL isOutputStreamOpen; - -/** - * The unique ID assigned to the session between the app and accessory. If no session exists the value will be 0. - */ -@property (assign, nonatomic, readonly) NSUInteger connectionID; - -/** - * Returns whether the session has open I/O streams. - */ -@property (assign, nonatomic, readonly, getter=isSessionInProgress) BOOL sessionInProgress; - -/** - * Convenience initializer for setting an accessory and protocol string. - * - * @param accessory The accessory with which to open a session - * @param protocol The unique protocol string used to create the session with the accessory - * @return A SDLIAPSession object - */ -- (instancetype)initWithAccessory:(nullable EAAccessory *)accessory forProtocol:(NSString *)protocol; - -/** - * Starts a session. - */ -- (void)startSession; - -/// Stops the current session. -/// @param disconnectCompletionHandler Handler called when the session has been closed -- (void)destroySessionWithCompletionHandler:(void (^)(void))disconnectCompletionHandler; - -/** - * Creates a session with the accessory. - * - * @return Whether or not the session was created successfully - */ -- (BOOL)createSession; - -/** - * Starts a session input or output stream. - * - * @param stream The stream to be started. - */ -- (void)startStream:(NSStream *)stream; - -/** - * Stops a session input or output stream. - * - * @param stream The stream to be stopped. - */ -- (void)stopStream:(NSStream *)stream; - -/** - * Cleans up a closed session - */ -- (void)cleanupClosedSession; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.m deleted file mode 100644 index eaf7972..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPSession.m +++ /dev/null @@ -1,111 +0,0 @@ -// -// SDLIAPSession.m -// - -#import "SDLIAPSession.h" -#import "SDLLogMacros.h" -#import "SDLMutableDataQueue.h" -#import "SDLTimer.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLIAPSession () - -@property (nullable, strong, nonatomic, readwrite) EASession *eaSession; -@property (nullable, strong, nonatomic, readwrite) EAAccessory *accessory; -@property (nullable, strong, nonatomic, readwrite) NSString *protocolString; - -@end - -@implementation SDLIAPSession - -#pragma mark - Lifecycle - -- (instancetype)initWithAccessory:(nullable EAAccessory *)accessory forProtocol:(NSString *)protocol { - SDLLogD(@"SDLIAPSession init with accessory:%@ for protocol:%@", accessory.name, protocol); - - self = [super init]; - if (!self) { return nil; } - - _accessory = accessory; - _protocolString = protocol; - _isInputStreamOpen = NO; - _isOutputStreamOpen = NO; - - return self; -} - -#pragma mark - Abstract Methods - -- (void)startSession {} - -- (void)destroySessionWithCompletionHandler:(void (^)(void))disconnectCompletionHandler {} - -#pragma mark - Private Stream Lifecycle Helpers - -- (BOOL)createSession { - SDLLogD(@"Opening EASession with accessory: %@", self.accessory.name); - self.eaSession = [[EASession alloc] initWithAccessory:self.accessory forProtocol:self.protocolString]; - return (self.eaSession != nil); -} - -- (void)startStream:(NSStream *)stream { - stream.delegate = self; - [stream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; - [stream open]; -} - -- (void)stopStream:(NSStream *)stream { - // Verify stream is in a state that can be closed. Closing a stream that has not been opened has very bad effects. - NSUInteger status1 = stream.streamStatus; - if (status1 != NSStreamStatusNotOpen && - status1 != NSStreamStatusClosed) { - [stream close]; - } else if (status1 == NSStreamStatusNotOpen) { - // It's implicitly removed from the stream when it's closed, but not if it was never opened. - // When the USB cable is disconnected, the app will will call this method after the `NSStreamEventEndEncountered` event. The stream will already be in the closed state but it still needs to be removed from the run loop. - [stream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; - } - - [stream setDelegate:nil]; - - NSUInteger status2 = stream.streamStatus; - if (status2 == NSStreamStatusClosed) { - if (stream == [self.eaSession inputStream]) { - SDLLogD(@"Input stream closed"); - self.isInputStreamOpen = NO; - } else if (stream == [self.eaSession outputStream]) { - SDLLogD(@"Output stream closed"); - self.isOutputStreamOpen = NO; - } - } -} - -- (void)cleanupClosedSession { - if (self.eaSession == nil) { - SDLLogD(@"Attempting to close session with accessory: %@, but it is already closed", self.accessory.name); - return; - } - - self.eaSession = nil; - SDLLogD(@"Session closed with: %@", self.accessory.name); - self.accessory.delegate = nil; -} - -#pragma mark - Getters - -- (BOOL)isStopped { - return !self.isOutputStreamOpen && !self.isInputStreamOpen; -} - -- (NSUInteger)connectionID { - return self.eaSession.accessory.connectionID; -} - -- (BOOL)isSessionInProgress { - return !self.isStopped; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.h deleted file mode 100644 index 5b76878..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.h +++ /dev/null @@ -1,20 +0,0 @@ -// SDLIAPTransport.h -// - -#import - -#import "SDLTransportType.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLIAPTransport : NSObject - -/** - * The subscribed listener. - */ -@property (nullable, weak, nonatomic) id delegate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.m deleted file mode 100644 index 11da3a1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIAPTransport.m +++ /dev/null @@ -1,562 +0,0 @@ -// SDLIAPTransport.h - - -#import -#import - -#import "SDLIAPTransport.h" - -#import "EAAccessory+SDLProtocols.h" -#import "EAAccessoryManager+SDLProtocols.h" -#import "SDLGlobals.h" -#import "SDLIAPConstants.h" -#import "SDLIAPControlSession.h" -#import "SDLIAPControlSessionDelegate.h" -#import "SDLIAPDataSession.h" -#import "SDLIAPDataSessionDelegate.h" -#import "SDLLogMacros.h" -#import - -NS_ASSUME_NONNULL_BEGIN - -int const CreateSessionRetries = 3; - -@interface SDLIAPTransport () - -@property (nullable, strong, nonatomic) SDLIAPControlSession *controlSession; -@property (nullable, strong, nonatomic) SDLIAPDataSession *dataSession; -@property (assign, nonatomic) int retryCounter; -@property (assign, nonatomic) BOOL sessionSetupInProgress; -@property (assign, nonatomic) BOOL transportDestroyed; -@property (assign, nonatomic) BOOL accessoryConnectDuringActiveSession; - -@end - - -@implementation SDLIAPTransport - -- (instancetype)init { - SDLLogV(@"SDLIAPTransport init"); - self = [super init]; - if (!self) { - return nil; - } - - _sessionSetupInProgress = NO; - _transportDestroyed = NO; - _dataSession = nil; - _controlSession = nil; - _retryCounter = 0; - _accessoryConnectDuringActiveSession = NO; - - // Get notifications if an accessory connects in future - [self sdl_startEventListening]; - - // Wait for setup to complete before scanning for accessories - - return self; -} - -#pragma mark - Notifications - -/** - * Registers for system notifications about connected accessories and the app life cycle. - */ -- (void)sdl_startEventListening { - SDLLogV(@"SDLIAPTransport started listening for events"); - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(sdl_accessoryConnected:) - name:EAAccessoryDidConnectNotification - object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(sdl_accessoryDisconnected:) - name:EAAccessoryDidDisconnectNotification - object:nil]; - [[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications]; -} - -/** - * Unsubscribes to notifications. - */ -- (void)sdl_stopEventListening { - SDLLogV(@"SDLIAPTransport stopped listening for events"); - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -#pragma mark EAAccessory Notifications - -/** - * Handles a notification sent by the system when a new accessory has been detected by attempting to connect to the new accessory. - * - * @param notification Contains information about the connected accessory - */ -- (void)sdl_accessoryConnected:(NSNotification *)notification { - EAAccessory *newAccessory = notification.userInfo[EAAccessoryKey]; - - if ([self sdl_isDataSessionActive:self.dataSession newAccessory:newAccessory]) { - self.accessoryConnectDuringActiveSession = YES; - return; - } - - double retryDelay = self.sdl_retryDelay; - SDLLogD(@"Accessory Connected (%@), Opening in %0.03fs", notification.userInfo[EAAccessoryKey], retryDelay); - - self.retryCounter = 0; - [self performSelector:@selector(sdl_connect:) withObject:nil afterDelay:retryDelay]; -} - -/** - * Checks if the newly connected accessory connected while a data session is already opened. This can happen when a session is established over bluetooth and then the user connects to the same head unit with a USB cord. - * - * @param dataSession The current data session - * @param newAccessory The newly connected accessory - * @return True if the accessory connected while a data session is already in progress; false if not - */ -- (BOOL)sdl_isDataSessionActive:(nullable SDLIAPDataSession *)dataSession newAccessory:(EAAccessory *)newAccessory { - if (dataSession == nil || !dataSession.isSessionInProgress) { - return NO; - } - - if (dataSession.isSessionInProgress && (dataSession.connectionID != newAccessory.connectionID)) { - SDLLogD(@"Switching transports from Bluetooth to USB. Waiting for disconnect notification."); - return YES; - } - - return NO; -} - -/** - * Handles a notification sent by the system when an accessory has been disconnected by cleaning up after the disconnected device. - * - * @param notification Contains information about the connected accessory - */ -- (void)sdl_accessoryDisconnected:(NSNotification *)notification { - EAAccessory *accessory = [notification.userInfo objectForKey:EAAccessoryKey]; - SDLLogD(@"Accessory with serial number: %@, and connectionID: %lu disconnecting.", accessory.serialNumber, (unsigned long)accessory.connectionID); - - if (self.accessoryConnectDuringActiveSession == YES) { - SDLLogD(@"Switching transports from Bluetooth to USB. Will reconnect over Bluetooth after disconnecting the USB session."); - self.accessoryConnectDuringActiveSession = NO; - } - - if (!self.controlSession.isSessionInProgress && !self.dataSession.isSessionInProgress) { - SDLLogV(@"Accessory (%@, %@), disconnected, but no session is in progress.", accessory.name, accessory.serialNumber); - [self sdl_closeSessions]; - } else if (self.dataSession.isSessionInProgress) { - if (self.dataSession.connectionID != accessory.connectionID) { - SDLLogD(@"Accessory's connectionID, %lu, does not match the connectionID of the current data session, %lu. Another phone disconnected from the head unit. The session will not be closed.", accessory.connectionID, self.dataSession.connectionID); - return; - } - // The data session has been established. Tell the delegate that the transport has disconnected. The lifecycle manager will destroy and create a new transport object. - SDLLogV(@"Accessory (%@, %@) disconnected during a data session", accessory.name, accessory.serialNumber); - [self sdl_destroyTransport]; - } else if (self.controlSession.isSessionInProgress) { - if (self.controlSession.connectionID != accessory.connectionID) { - SDLLogD(@"Accessory's connectionID, %lu, does not match the connectionID of the current control session, %lu. Another phone disconnected from the head unit. The session will not be closed.", accessory.connectionID, self.controlSession.connectionID); - return; - } - // The data session has yet to be established so the transport has not yet connected. DO NOT unregister for notifications from the accessory. - SDLLogV(@"Accessory (%@, %@) disconnected during a control session", accessory.name, accessory.serialNumber); - [self sdl_closeSessions]; - } else { - SDLLogV(@"Accessory (%@, %@) disconnecting during an unknown session", accessory.name, accessory.serialNumber); - [self sdl_closeSessions]; - } -} - -/** - * Closes and cleans up the sessions after a control session has been closed. Since a data session has not been established, the lifecycle manager has not transitioned to state started. Do not unregister for notifications from accessory connections/disconnections otherwise the library will not be able to connect to an accessory again. - */ -- (void)sdl_closeSessions { - self.retryCounter = 0; - self.sessionSetupInProgress = NO; - - [self sdl_closeSessionsWithCompletionHandler:nil]; -} - -/** - * Tells the lifecycle manager that the data session has been closed. The lifecycle manager will destroy it's `SDLIAPTransport` object and then create a new one to listen for a new connection to the accessory. - */ -- (void)sdl_destroyTransport { - self.retryCounter = 0; - self.sessionSetupInProgress = NO; - self.transportDestroyed = YES; - __weak typeof(self) weakSelf = self; - [self disconnectWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - [strongSelf.delegate onTransportDisconnected]; - }]; -} - -#pragma mark - Stream Lifecycle - -#pragma mark SDLTransportTypeProtocol - -/** - * Sends data to Core - * - * @param data The data to be sent to Core - */ -- (void)sendData:(NSData *)data { - if (!self.dataSession.sessionInProgress) { - SDLLogW(@"Attempting to send data to Core but there is no data session in progress"); - return; - } - [self.dataSession sendData:data]; -} - -/** - * Attempts to connect to an accessory. - */ -- (void)connect { - [self sdl_connect:nil]; -} - -/** - * Cleans up after a disconnected accessory by closing any open I/O streams. - */ -- (void)disconnectWithCompletionHandler:(void (^)(void))disconnectCompletionHandler { - SDLLogD(@"Disconnecting IAP transport"); - // Stop event listening here so that even if the transport is disconnected by `SDLProxy` when there is a start session timeout, the class unregisters for accessory notifications - [self sdl_stopEventListening]; - - self.retryCounter = 0; - self.sessionSetupInProgress = NO; - self.transportDestroyed = YES; - - [self sdl_closeSessionsWithCompletionHandler:disconnectCompletionHandler]; -} - - -#pragma mark Helpers - -/** - * Starts the process to connect to an accessory. If no accessory specified, scans for a valid accessory. - * - * @param accessory The accessory to attempt connection with or nil to scan for accessories. - */ -- (void)sdl_connect:(nullable EAAccessory *)accessory { - if (self.transportDestroyed) { - SDLLogV(@"Will not attempt to connect to an accessory because the data session disconnected. Waiting for lifecycle manager to create a new transport object."); - return; - } - - if ((self.dataSession == nil || !self.dataSession.isSessionInProgress) && !self.sessionSetupInProgress) { - // No data session has been established are not attempting to set one up, attempt to connect - SDLLogV(@"No data session in progress. Starting setup."); - self.sessionSetupInProgress = YES; - [self sdl_establishSessionWithAccessory:accessory]; - } else if (self.dataSession.isSessionInProgress) { - SDLLogW(@"Data session I/O streams already opened. Ignoring attempt to create session."); - } else { - SDLLogW(@"Data session I/O streams are currently being opened. Ignoring attempt to create session."); - } -} - -/** - * Attempts to establish a session with the passed accessory. If nil is passed the accessory manager is checked for connected SDL enabled accessories. - * - * @param accessory The accessory to try to establish a session with, or nil to scan all connected accessories. - */ -- (void)sdl_establishSessionWithAccessory:(nullable EAAccessory *)accessory { - SDLLogD(@"Attempting to connect accessory named: %@, with connectionID: %lu", accessory.name, (unsigned long)accessory.connectionID); - if (self.retryCounter < CreateSessionRetries) { - self.retryCounter++; - - // If the accessory is not `nil` attempt to create a session with the accessory. - if (accessory != nil && [self sdl_establishSessionWithConnectedAccessory:accessory]) { - // Session was created successfully with the accessory - return; - } - - // Search through the EAAccessoryManager's connected accessory list for an SDL enabled accessory and attempt to create a session with the accessory. - BOOL sessionEstablished = [self sdl_establishSessionWithAccessory]; - if (!sessionEstablished) { - SDLLogV(@"No accessory supporting SDL was found, dismissing setup. Available connected accessories: %@", EAAccessoryManager.sharedAccessoryManager.connectedAccessories); - self.sessionSetupInProgress = NO; - } - } else { - // We have surpassed the number of retries allowed - SDLLogW(@"Surpassed allowed retry attempts (%d), dismissing setup", CreateSessionRetries); - self.sessionSetupInProgress = NO; - } -} - -/** - * Stops any ongoing sessions if necessary and tries to find an accessory which which to create a session. - */ -- (void)sdl_retryEstablishSession { - // Current strategy disallows automatic retries. - self.sessionSetupInProgress = NO; - - __weak typeof(self) weakSelf = self; - [self sdl_closeSessionsWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - // Search connected accessories - [strongSelf sdl_connect:nil]; - }]; -} - -/// Helper method for closing both the data and control sessions. -/// @param disconnectCompletionHandler Handler called when both the data and control sessions have been disconnected successfully -- (void)sdl_closeSessionsWithCompletionHandler:(nullable void (^)(void))disconnectCompletionHandler { - dispatch_group_t endSessionsTask = dispatch_group_create(); - dispatch_group_enter(endSessionsTask); - - if (self.controlSession != nil) { - dispatch_group_enter(endSessionsTask); - [self.controlSession destroySessionWithCompletionHandler:^{ - SDLLogV(@"Control session destroyed"); - dispatch_group_leave(endSessionsTask); - }]; - } - - if (self.dataSession != nil) { - dispatch_group_enter(endSessionsTask); - [self.dataSession destroySessionWithCompletionHandler:^{ - SDLLogV(@"Data session destroyed"); - dispatch_group_leave(endSessionsTask); - }]; - } - - dispatch_group_leave(endSessionsTask); - - // This will always run after all `leave` calls - dispatch_group_notify(endSessionsTask, [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ - SDLLogV(@"Both the data and control sessions are closed"); - if (disconnectCompletionHandler != nil) { - disconnectCompletionHandler(); - } - }); -} - - -#pragma mark - Session Delegates - -#pragma mark Control Session - -/** - * Called when the control session should be retried. - */ -- (void)controlSessionShouldRetry { - SDLLogV(@"Retrying the control session"); - [self sdl_retryEstablishSession]; -} - -/** - * Called when the control session got the protocol string successfully and the data session can be opened with the protocol string. - * - * @param controlSession The control session - * @param protocolString The protocol string to be used to open the data session - */ -- (void)controlSession:(nonnull SDLIAPControlSession *)controlSession didReceiveProtocolString:(nonnull NSString *)protocolString { - SDLLogD(@"Control transport session received data session number: %@", protocolString); - self.dataSession = [[SDLIAPDataSession alloc] initWithAccessory:controlSession.accessory delegate:self forProtocol:protocolString]; - [self.dataSession startSession]; -} - - -#pragma mark Data Session - -/** - * Called when the data session receives data from Core - * - * @param data The received data - */ -- (void)dataSessionDidReceiveData:(nonnull NSData *)data { - [self.delegate onDataReceived:data]; -} - -/** - * Called when the data session should be retried. - */ -- (void)dataSessionShouldRetry { - SDLLogV(@"Retrying the data session"); - [self sdl_retryEstablishSession]; -} - -/** - * Called when the data session has been established. Notify the delegate that the transport has been connected. - */ -- (void)dataSessionDidConnect { - self.sessionSetupInProgress = NO; - [self.delegate onTransportConnected]; -} - - -#pragma mark - Helpers - -#pragma mark Protocol Strings - -/** - * Checks if the app's info.plist contains all the required protocol strings. - * - * @return True if the app's info.plist has all required protocol strings; false if not. - */ -+ (BOOL)sdl_plistContainsAllSupportedProtocolStrings { - if ([self.class sdl_supportsRequiredProtocolStrings] != nil) { - NSString *failedString = [self.class sdl_supportsRequiredProtocolStrings]; - SDLLogE(@"A required External Accessory protocol string is missing from the info.plist: %@", failedString); - NSAssert(NO, @"Some SDL protocol strings are not supported, check the README for all strings that must be included in your info.plist file. Missing string: %@", failedString); - return NO; - } - return YES; -} - -/** - * Compares all required protocol strings against the protocol strings in the info.plist dictionary. - * - * @return A missing protocol string or nil if all strings are supported. - */ -+ (nullable NSString *)sdl_supportsRequiredProtocolStrings { - NSArray *protocolStrings = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UISupportedExternalAccessoryProtocols"]; - - if (![protocolStrings containsObject:MultiSessionProtocolString]) { - return MultiSessionProtocolString; - } - - if (![protocolStrings containsObject:LegacyProtocolString]) { - return LegacyProtocolString; - } - - for (int i = 0; i < 30; i++) { - NSString *indexedProtocolString = [NSString stringWithFormat:@"%@%i", IndexedProtocolStringPrefix, i]; - if (![protocolStrings containsObject:indexedProtocolString]) { - return indexedProtocolString; - } - } - - return nil; -} - -#pragma mark Retry Delay - -/** - * Generates a random number of seconds between 1.5 and 9.5 used to delay the retry control and data session attempts. - * - * @return A random number of seconds. - */ -- (double)sdl_retryDelay { - const double MinRetrySeconds = 1.5; - const double MaxRetrySeconds = 9.5; - double RetryRangeSeconds = MaxRetrySeconds - MinRetrySeconds; - - static double appDelaySeconds = 0; - - // HAX: This pull the app name and hashes it in an attempt to provide a more even distribution of retry delays. The evidence that this does so is anecdotal. A more ideal solution would be to use a list of known, installed SDL apps on the phone to try and deterministically generate an even delay. - if (appDelaySeconds == 0) { - NSString *appName = [[NSProcessInfo processInfo] processName]; - if (appName == nil) { - appName = @"noname"; - } - - // Run the app name through an md5 hasher - const char *ptr = [appName UTF8String]; - unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH]; - CC_MD5(ptr, (unsigned int)strlen(ptr), md5Buffer); - - // Generate a string of the hex hash - NSMutableString *output = [NSMutableString stringWithString:@"0x"]; - for (int i = 0; i < 8; i++) { - [output appendFormat:@"%02X", md5Buffer[i]]; - } - - // Transform the string into a number between 0 and 1 - unsigned long long firstHalf; - NSScanner *pScanner = [NSScanner scannerWithString:output]; - [pScanner scanHexLongLong:&firstHalf]; - double hashBasedValueInRange0to1 = ((double)firstHalf) / 0xffffffffffffffff; - - // Transform the number into a number between min and max - appDelaySeconds = ((RetryRangeSeconds * hashBasedValueInRange0to1) + MinRetrySeconds); - } - - return appDelaySeconds; -} - -#pragma mark Create Sessions - -/** - * List of protocol strings supported by SDL enabled head units. Newer head units use the multisession protocol string which allows multiple apps to connect over 1 protocol string. Legacy head units use the control or legacy protocol string which only allows 1 app to connect over 1 protocol string. - * - * @return A list of SDL accessory supported protocol strings ordered from most recently supported to least preferred. - */ -+ (NSArray *)protocolStrings { - // Order of the protocol strings is important!! - return @[MultiSessionProtocolString, ControlProtocolString, LegacyProtocolString]; -} - -/** - * Attempts to create a session with a connected accessory. - * - * @param connectedAccessory The connected accessory - * @return True if a session was started with the connected accessory, false if not - */ -- (BOOL)sdl_establishSessionWithConnectedAccessory:(EAAccessory *)connectedAccessory { - for (NSString *protocolString in [self.class protocolStrings]) { - if (![connectedAccessory supportsProtocol:protocolString]) { - continue; - } - - BOOL connecting = [self createSessionWithAccessory:connectedAccessory protocolString:protocolString]; - if (connecting) { - return connecting; - } - } - - return NO; -} - -/** - * Searches through the EAAccessoryManager's list of connected accessories for an SDL enabled accessory. If an accessory is found a session is attempted with the accessory. - * - * @return True if a session was started with the connected accessory, false if no session could be created or if no SDL enabled accessory was found. - */ -- (BOOL)sdl_establishSessionWithAccessory { - for (NSString *protocolString in [self.class protocolStrings]) { - EAAccessory *sdlAccessory = [EAAccessoryManager findAccessoryForProtocol:protocolString]; - if (sdlAccessory == nil) { - continue; - } - - BOOL connecting = [self createSessionWithAccessory:sdlAccessory protocolString:protocolString]; - if (connecting) { - return connecting; - } - } - - return NO; -} - -/** - * Creates a session with a passed accessory and protocol string. If the accessory supports the multisession protocol string, a data session can be created right away with the accessory. If the accessory does not support the multisession protocol string, but does support the control protocol string, two sessions must be created. First, a control session is created to get the new protocol string needed to create a data session with the accessory. Then, the control session is destroyed and the data session created with the new protocol string. - * - * @param accessory The connected accessory - * @param protocolString The unique protocol string used to create the session with the accessory - * @return True if a session was started with the connected accessory, false if no session could be created or if no SDL enabled accessory was found. - */ -- (BOOL)createSessionWithAccessory:(EAAccessory *)accessory protocolString:(NSString *)protocolString { - if (![self.class sdl_plistContainsAllSupportedProtocolStrings]) { - return NO; - } - - if ([protocolString isEqualToString:MultiSessionProtocolString] && SDL_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9")) { - self.dataSession = [[SDLIAPDataSession alloc] initWithAccessory:accessory delegate:self forProtocol:protocolString]; - [self.dataSession startSession]; - return YES; - } else if ([protocolString isEqualToString:ControlProtocolString]) { - self.controlSession = [[SDLIAPControlSession alloc] initWithAccessory:accessory delegate:self]; - [self.controlSession startSession]; - return YES; - } else if ([protocolString isEqualToString:LegacyProtocolString]) { - self.dataSession = [[SDLIAPDataSession alloc] initWithAccessory:accessory delegate:self forProtocol:protocolString]; - [self.dataSession startSession]; - return YES; - } - - return NO; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.h deleted file mode 100644 index 9d50ade..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLIconArchiveFile.h -// SmartDeviceLink -// -// Created by James Lapinski on 3/10/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLIconArchiveFile : NSObject - -@property (nonatomic, copy) NSArray *lockScreenIconCaches; - -@end - -@interface SDLLockScreenIconCache : NSObject - -@property (nonatomic, copy) NSString *iconUrl; -@property (nonatomic, copy) NSString *iconFilePath; -@property (nonatomic, copy) NSDate *lastModifiedDate; - -- (instancetype)initWithIconUrl:(NSString *)iconUrl iconFilePath:(NSString *)iconFilePath; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.m deleted file mode 100644 index d4bb70d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIconArchiveFile.m +++ /dev/null @@ -1,75 +0,0 @@ -// -// SDLIconArchiveFile.m -// SmartDeviceLink -// -// Created by James Lapinski on 3/10/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLIconArchiveFile.h" - -@implementation SDLIconArchiveFile - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - self.lockScreenIconCaches = [[NSArray alloc] init]; - - return self; -} - -- (instancetype)initWithCoder:(NSCoder *)decoder { - self = [super init]; - if (!self) { return nil; } - - self.lockScreenIconCaches = [decoder decodeObjectOfClass:[NSArray self] forKey:@"lockScreenIconCaches"]; - - return self; -} - -+ (BOOL)supportsSecureCoding { - return YES; -} - -- (void)encodeWithCoder:(NSCoder *)encoder { - [encoder encodeObject:self.lockScreenIconCaches forKey:@"lockScreenIconCaches"]; -} - -@end - -@implementation SDLLockScreenIconCache - -- (instancetype)initWithIconUrl:(NSString *)iconUrl iconFilePath:(NSString *)iconFilePath { - self = [super init]; - if (!self) { return nil; } - - self.iconUrl = iconUrl; - self.iconFilePath = iconFilePath; - self.lastModifiedDate = [NSDate date]; - - return self; -} - -- (instancetype)initWithCoder:(NSCoder *)decoder { - self = [super init]; - if (!self) { return nil; } - - self.iconUrl = [decoder decodeObjectOfClass:[NSString self] forKey:@"iconUrl"]; - self.iconFilePath = [decoder decodeObjectOfClass:[NSString self] forKey:@"iconFilePath"]; - self.lastModifiedDate = [decoder decodeObjectOfClass:[NSDate self] forKey:@"lastModifiedDate"]; - - return self; -} - -+ (BOOL)supportsSecureCoding { - return YES; -} - -- (void)encodeWithCoder:(NSCoder *)encoder { - [encoder encodeObject:self.iconUrl forKey:@"iconUrl"]; - [encoder encodeObject:self.iconFilePath forKey:@"iconFilePath"]; - [encoder encodeObject:self.lastModifiedDate forKey:@"lastModifiedDate"]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStableStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStableStatus.h deleted file mode 100644 index 4dc750e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStableStatus.h +++ /dev/null @@ -1,27 +0,0 @@ -// SDLIgnitionStableStatus.h -// - - -#import "SDLEnum.h" - -/** - * Reflects the ignition switch stability. Used in BodyInformation - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLIgnitionStableStatus SDL_SWIFT_ENUM; - -/** - * The current ignition switch status is considered not to be stable. - */ -extern SDLIgnitionStableStatus const SDLIgnitionStableStatusNotStable; - -/** - * The current ignition switch status is considered to be stable. - */ -extern SDLIgnitionStableStatus const SDLIgnitionStableStatusStable; - -/** - * The current ignition switch status is considered to be missing from the transmitter - */ -extern SDLIgnitionStableStatus const SDLIgnitionStableStatusMissingFromTransmitter; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStableStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStableStatus.m deleted file mode 100644 index 8572adc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStableStatus.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLIgnitionStableStatus.m -// - - -#import "SDLIgnitionStableStatus.h" - -SDLIgnitionStableStatus const SDLIgnitionStableStatusNotStable = @"IGNITION_SWITCH_NOT_STABLE"; -SDLIgnitionStableStatus const SDLIgnitionStableStatusStable = @"IGNITION_SWITCH_STABLE"; -SDLIgnitionStableStatus const SDLIgnitionStableStatusMissingFromTransmitter = @"MISSING_FROM_TRANSMITTER"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStatus.h deleted file mode 100644 index 5190312..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStatus.h +++ /dev/null @@ -1,42 +0,0 @@ -// SDLIgnitionStatus.h -// - - -#import "SDLEnum.h" - -/** - * Reflects the status of ignition. Used in BodyInformation. - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLIgnitionStatus SDL_SWIFT_ENUM; - -/** - * Ignition status currently unknown - */ -extern SDLIgnitionStatus const SDLIgnitionStatusUnknown; - -/** - * Ignition is off - */ -extern SDLIgnitionStatus const SDLIgnitionStatusOff; - -/** - * Ignition is in mode accessory - */ -extern SDLIgnitionStatus const SDLIgnitionStatusAccessory; - -/** - * Ignition is in mode run - */ -extern SDLIgnitionStatus const SDLIgnitionStatusRun; - -/** - * Ignition is in mode start - */ -extern SDLIgnitionStatus const SDLIgnitionStatusStart; - -/** - * Signal is invalid - */ -extern SDLIgnitionStatus const SDLIgnitionStatusInvalid; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStatus.m deleted file mode 100644 index b2ccf98..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLIgnitionStatus.m +++ /dev/null @@ -1,12 +0,0 @@ -// SDLIgnitionStatus.m -// - - -#import "SDLIgnitionStatus.h" - -SDLIgnitionStatus const SDLIgnitionStatusUnknown = @"UNKNOWN"; -SDLIgnitionStatus const SDLIgnitionStatusOff = @"OFF"; -SDLIgnitionStatus const SDLIgnitionStatusAccessory = @"ACCESSORY"; -SDLIgnitionStatus const SDLIgnitionStatusRun = @"RUN"; -SDLIgnitionStatus const SDLIgnitionStatusStart = @"START"; -SDLIgnitionStatus const SDLIgnitionStatusInvalid = @"INVALID"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImage.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImage.h deleted file mode 100644 index 83a05b6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImage.h +++ /dev/null @@ -1,92 +0,0 @@ -// SDLImage.h -// - -#import "SDLRPCMessage.h" - -#import "SDLImageType.h" -#import "SDLStaticIconName.h" - -/** - * Specifies which image shall be used e.g. in SDLAlerts or on SDLSoftbuttons provided the display supports it. - * - * @since SDL 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLImage : SDLRPCStruct - -/** - * Convenience init for displaying a dynamic image. The image must be uploaded to SDL Core before being displayed. - * - * @param name The unique name used to upload the image to SDL Core - * @param imageType Describes whether the image is static or dynamic - * @return A SDLImage object - */ -- (instancetype)initWithName:(NSString *)name ofType:(SDLImageType)imageType __deprecated_msg("Use initWithName:ofType:isTemplate: instead"); - -/** - * Convenience init for displaying a dynamic image. The image must be uploaded to SDL Core before being displayed. - * - * @param name The unique name used to upload the image to SDL Core - * @param imageType Describes whether the image is static or dynamic - * @param isTemplate Whether or not the image is a template that can be (re)colored by the SDL HMI. Static images are templates by default. - * @return A SDLImage object - */ -- (instancetype)initWithName:(NSString *)name ofType:(SDLImageType)imageType isTemplate:(BOOL)isTemplate; - -/** - * Convenience init for displaying a dynamic image. The image must be uploaded to SDL Core before being displayed. - * - * @param name The unique name used to upload the image to SDL Core - * @return A SDLImage object - */ -- (instancetype)initWithName:(NSString *)name __deprecated_msg("Use initWithName:isTemplate: instead"); - -/** - * Convenience init for displaying a dynamic image. The image must be uploaded to SDL Core before being displayed. - * - * @param name The unique name used to upload the image to SDL Core - * @param isTemplate Whether or not the image is a template that can be (re)colored by the SDL HMI - * @return A SDLImage object - */ -- (instancetype)initWithName:(NSString *)name isTemplate:(BOOL)isTemplate; - -/** - * Convenience init for displaying a static image. Static images are already on-board SDL Core and can be used by providing the image's value. - * - * @param staticImageValue The image value assigned to the static image - * @return A SDLImage object - */ -- (instancetype)initWithStaticImageValue:(UInt16)staticImageValue; - -/** - * Convenience init for displaying a static image. Static images are already on-board SDL Core and can be used by providing the image's value. - * - * @param staticIconName A SDLStaticIconName value - * @return A SDLImage object - */ -- (instancetype)initWithStaticIconName:(SDLStaticIconName)staticIconName; - -/** - * The static hex icon value or the binary image file name identifier (sent by SDLPutFile) - * - * Required, max length = 65535 - */ -@property (strong, nonatomic) NSString *value; - -/** - * Describes whether the image is static or dynamic - * - * Required - */ -@property (strong, nonatomic) SDLImageType imageType; - -/** - * Indicates that this image can be (re)colored by the HMI to best fit the current color scheme. - */ -@property (assign, nonatomic) NSNumber *isTemplate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImage.m deleted file mode 100644 index 740cb45..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImage.m +++ /dev/null @@ -1,87 +0,0 @@ -// SDLImage.m -// - -#import "SDLImage.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLImage - -- (instancetype)initWithName:(NSString *)name ofType:(SDLImageType)imageType { - self = [self init]; - if (!self) { - return nil; - } - - self.value = name; - self.imageType = imageType; - self.isTemplate = @NO; - - return self; -} - -- (instancetype)initWithName:(NSString *)name ofType:(SDLImageType)imageType isTemplate:(BOOL)isTemplate { - self = [self init]; - if (!self) { - return nil; - } - - self.value = name; - self.imageType = imageType; - self.isTemplate = @(isTemplate); - - return self; -} - -- (instancetype)initWithName:(NSString *)name { - return [self initWithName:name ofType:SDLImageTypeDynamic]; -} - -- (instancetype)initWithName:(NSString *)name isTemplate:(BOOL)isTemplate { - return [self initWithName:name ofType:SDLImageTypeDynamic isTemplate:isTemplate]; -} - -- (instancetype)initWithStaticImageValue:(UInt16)staticImageValue { - NSString *value = [NSString stringWithFormat:@"%hu", staticImageValue]; - // All static images are templated by default - return [self initWithName:value ofType:SDLImageTypeStatic isTemplate:YES]; -} - -- (instancetype)initWithStaticIconName:(SDLStaticIconName)staticIconName { - return [self initWithName:staticIconName ofType:SDLImageTypeStatic isTemplate:YES]; -} - -#pragma mark - Getters / Setters - -- (void)setValue:(NSString *)value { - [self.store sdl_setObject:value forName:SDLRPCParameterNameValue]; -} - -- (NSString *)value { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameValue ofClass:NSString.class error:&error]; -} - -- (void)setImageType:(SDLImageType)imageType { - [self.store sdl_setObject:imageType forName:SDLRPCParameterNameImageType]; -} - -- (SDLImageType)imageType { - return [self.store sdl_enumForName:SDLRPCParameterNameImageType error:nil]; -} - -- (void)setIsTemplate:(NSNumber *)isTemplate { - [self.store sdl_setObject:isTemplate forName:SDLRPCParameterNameImageTemplate]; -} - -- (NSNumber *)isTemplate { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameImageTemplate ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.h deleted file mode 100644 index 6c21266..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// SDLImageField+ScreenManagerExtensions.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/20/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLImageField (ScreenManagerExtensions) - -+ (NSArray *)allImageFields; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.m deleted file mode 100644 index 1c7cc09..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField+ScreenManagerExtensions.m +++ /dev/null @@ -1,30 +0,0 @@ -// -// SDLImageField+ScreenManagerExtensions.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/20/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLImageField+ScreenManagerExtensions.h" - -@implementation SDLImageField (ScreenManagerExtensions) - -+ (NSArray *)sdl_allImageFieldNames { - return @[SDLImageFieldNameAppIcon, SDLImageFieldNameGraphic, SDLImageFieldNameMenuIcon, SDLImageFieldNameTurnIcon, SDLImageFieldNameAlertIcon, SDLImageFieldNameChoiceImage, SDLImageFieldNameCommandIcon, SDLImageFieldNameLocationImage, SDLImageFieldNameSoftButtonImage, SDLImageFieldNameSecondaryGraphic, SDLImageFieldNameShowConstantTBTIcon, SDLImageFieldNameChoiceSecondaryImage, SDLImageFieldNameVoiceRecognitionHelpItem, SDLImageFieldNameShowConstantTBTNextTurnIcon]; -} - -+ (NSArray *)sdl_allImageFileTypes { - return @[SDLFileTypeBMP, SDLFileTypePNG, SDLFileTypeJPEG]; -} - -+ (NSArray *)allImageFields { - NSMutableArray *tempImageFields = [NSMutableArray array]; - for (SDLImageFieldName fieldName in [self sdl_allImageFieldNames]) { - [tempImageFields addObject:[[SDLImageField alloc] initWithName:fieldName imageTypeSupported:[self sdl_allImageFileTypes] imageResolution:nil]]; - } - - return tempImageFields; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.h deleted file mode 100644 index 610b1a5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.h +++ /dev/null @@ -1,47 +0,0 @@ -// SDLImageField.h -// - -#import "SDLRPCMessage.h" - -#import "SDLFileType.h" -#import "SDLImageFieldName.h" - -@class SDLImageResolution; - -NS_ASSUME_NONNULL_BEGIN - -/** - A struct used in DisplayCapabilities describing the capability of an image field - */ -@interface SDLImageField : SDLRPCStruct - -/** - The name that identifies the field. - - Required - */ -@property (strong, nonatomic) SDLImageFieldName name; - -/** - The image types that are supported in this field. - - Required - */ -@property (strong, nonatomic) NSArray *imageTypeSupported; - -/** - The image resolution of this field - - Optional - */ -@property (nullable, strong, nonatomic) SDLImageResolution *imageResolution; - -/// Convenience initalizer for the ImageField RPC struct -/// @param name The name identifying this image field -/// @param imageTypeSupported The image data types this field supports -/// @param imageResolution The native resolution of this image field -- (instancetype)initWithName:(SDLImageFieldName)name imageTypeSupported:(NSArray *)imageTypeSupported imageResolution:(nullable SDLImageResolution *)imageResolution; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.m deleted file mode 100644 index 85532ff..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageField.m +++ /dev/null @@ -1,54 +0,0 @@ -// SDLImageField.m -// - -#import "SDLImageField.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImageFieldName.h" -#import "SDLImageResolution.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLImageField - -- (void)setName:(SDLImageFieldName)name { - [self.store sdl_setObject:name forName:SDLRPCParameterNameName]; -} - -- (SDLImageFieldName)name { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameName error:&error]; -} - -- (void)setImageTypeSupported:(NSArray *)imageTypeSupported { - [self.store sdl_setObject:imageTypeSupported forName:SDLRPCParameterNameImageTypeSupported]; -} - -- (NSArray *)imageTypeSupported { - NSError *error = nil; - return [self.store sdl_enumsForName:SDLRPCParameterNameImageTypeSupported error:&error]; -} - -- (void)setImageResolution:(nullable SDLImageResolution *)imageResolution { - [self.store sdl_setObject:imageResolution forName:SDLRPCParameterNameImageResolution]; -} - -- (nullable SDLImageResolution *)imageResolution { - return [self.store sdl_objectForName:SDLRPCParameterNameImageResolution ofClass:SDLImageResolution.class error:nil]; -} - -- (instancetype)initWithName:(SDLImageFieldName)name imageTypeSupported:(NSArray *)imageTypeSupported imageResolution:(nullable SDLImageResolution *)imageResolution { - self = [self init]; - if (!self) { return nil; } - - self.name = name; - self.imageTypeSupported = imageTypeSupported; - self.imageResolution = imageResolution; - - return self; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.h deleted file mode 100644 index cd3e101..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.h +++ /dev/null @@ -1,84 +0,0 @@ -// SDLImageFieldName.h -// - - -#import "SDLEnum.h" - -/** - The name that identifies the filed. Used in DisplayCapabilities. - - @since SmartDeviceLink 3.0 - */ -typedef SDLEnum SDLImageFieldName SDL_SWIFT_ENUM; - -/** - The image field for Alert - */ -extern SDLImageFieldName const SDLImageFieldNameAlertIcon; - -/** - The image field for SoftButton - */ -extern SDLImageFieldName const SDLImageFieldNameSoftButtonImage; - -/** - The first image field for Choice. - */ -extern SDLImageFieldName const SDLImageFieldNameChoiceImage; - -/** - The scondary image field for Choice. - */ -extern SDLImageFieldName const SDLImageFieldNameChoiceSecondaryImage; - -/** - The image field for vrHelpItem. - */ -extern SDLImageFieldName const SDLImageFieldNameVoiceRecognitionHelpItem; - -/** - The image field for Turn. - */ -extern SDLImageFieldName const SDLImageFieldNameTurnIcon; - -/** - The image field for the menu icon in SetGlobalProperties. - */ -extern SDLImageFieldName const SDLImageFieldNameMenuIcon; - -/** The image field for AddCommand. - * - */ -extern SDLImageFieldName const SDLImageFieldNameCommandIcon; - -/** - The image field for the app icon (set by setAppIcon). - */ -extern SDLImageFieldName const SDLImageFieldNameAppIcon; - -/** The primary image field for Show. - * - */ -extern SDLImageFieldName const SDLImageFieldNameGraphic; - -/** The secondary image field for Show. - * - */ -extern SDLImageFieldName const SDLImageFieldNameSecondaryGraphic; - -/** The primary image field for ShowConstant TBT. - * - */ -extern SDLImageFieldName const SDLImageFieldNameShowConstantTBTIcon; - -/** - The secondary image field for ShowConstant TBT. - */ -extern SDLImageFieldName const SDLImageFieldNameShowConstantTBTNextTurnIcon; - -/** - The optional image of a destination / location - - @since SDL 4.0 - */ -extern SDLImageFieldName const SDLImageFieldNameLocationImage; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.m deleted file mode 100644 index 0282f25..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageFieldName.m +++ /dev/null @@ -1,20 +0,0 @@ -// SDLImageFieldName.m -// - - -#import "SDLImageFieldName.h" - -SDLImageFieldName const SDLImageFieldNameAlertIcon = @"alertIcon"; -SDLImageFieldName const SDLImageFieldNameSoftButtonImage = @"softButtonImage"; -SDLImageFieldName const SDLImageFieldNameChoiceImage = @"choiceImage"; -SDLImageFieldName const SDLImageFieldNameChoiceSecondaryImage = @"choiceSecondaryImage"; -SDLImageFieldName const SDLImageFieldNameVoiceRecognitionHelpItem = @"vrHelpItem"; -SDLImageFieldName const SDLImageFieldNameTurnIcon = @"turnIcon"; -SDLImageFieldName const SDLImageFieldNameMenuIcon = @"menuIcon"; -SDLImageFieldName const SDLImageFieldNameCommandIcon = @"cmdIcon"; -SDLImageFieldName const SDLImageFieldNameAppIcon = @"appIcon"; -SDLImageFieldName const SDLImageFieldNameGraphic = @"graphic"; -SDLImageFieldName const SDLImageFieldNameSecondaryGraphic = @"secondaryGraphic"; -SDLImageFieldName const SDLImageFieldNameShowConstantTBTIcon = @"showConstantTBTIcon"; -SDLImageFieldName const SDLImageFieldNameShowConstantTBTNextTurnIcon = @"showConstantTBTNextTurnIcon"; -SDLImageFieldName const SDLImageFieldNameLocationImage = @"locationImage"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.h deleted file mode 100644 index bd9a82a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.h +++ /dev/null @@ -1,37 +0,0 @@ -// SDLImageResolution.h -// - - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - The resolution of an image - */ -@interface SDLImageResolution : SDLRPCStruct - -/** - Resolution width - - Required - */ -@property (strong, nonatomic) NSNumber *resolutionWidth; - -/** - Resolution height - - Required - */ -@property (strong, nonatomic) NSNumber *resolutionHeight; - -/// Convenience init with all parameters -/// -/// @param width Resolution width -/// @param height Resolution height -/// @return An SDLImageResolution object -- (instancetype)initWithWidth:(uint16_t)width height:(uint16_t)height; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.m deleted file mode 100644 index b94e819..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageResolution.m +++ /dev/null @@ -1,44 +0,0 @@ -// SDLImageResolution.m -// - - -#import "SDLImageResolution.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLImageResolution - -- (instancetype)initWithWidth:(uint16_t)width height:(uint16_t)height { - self = [self init]; - if (!self) { return nil; } - - self.resolutionWidth = @(width); - self.resolutionHeight = @(height); - - return self; -} - -- (void)setResolutionWidth:(NSNumber *)resolutionWidth { - [self.store sdl_setObject:resolutionWidth forName:SDLRPCParameterNameResolutionWidth]; -} - -- (NSNumber *)resolutionWidth { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameResolutionWidth ofClass:NSNumber.class error:&error]; -} - -- (void)setResolutionHeight:(NSNumber *)resolutionHeight { - [self.store sdl_setObject:resolutionHeight forName:SDLRPCParameterNameResolutionHeight]; -} - -- (NSNumber *)resolutionHeight { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameResolutionHeight ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageType.h deleted file mode 100644 index f06245e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageType.h +++ /dev/null @@ -1,24 +0,0 @@ -// SDLImageType.h -// - - -#import "SDLEnum.h" - -/** - Contains information about the type of image. Used in Image. - - @since SDL 2.0 - */ -typedef SDLEnum SDLImageType SDL_SWIFT_ENUM; - -/** - Activate an icon that shipped with the IVI system by passing a hex value. - */ -extern SDLImageType const SDLImageTypeStatic; - -/** - An icon referencing an image uploaded by the app (identifier to be sent by SDLPutFile) - - @see SDLPutFile - */ -extern SDLImageType const SDLImageTypeDynamic; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageType.m deleted file mode 100644 index ef0d390..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLImageType.m +++ /dev/null @@ -1,8 +0,0 @@ -// SDLImageType.m -// - - -#import "SDLImageType.h" - -SDLImageType const SDLImageTypeStatic = @"STATIC"; -SDLImageType const SDLImageTypeDynamic = @"DYNAMIC"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLInteractionMode.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLInteractionMode.h deleted file mode 100644 index f0ff203..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLInteractionMode.h +++ /dev/null @@ -1,37 +0,0 @@ -// SDLInteractionMode.h -// - - -#import "SDLEnum.h" - -/** - For application-initiated interactions (SDLPerformInteraction), this specifies the mode by which the user is prompted and by which the user's selection is indicated. Used in PerformInteraction. - - @since SDL 1.0 - */ -typedef SDLEnum SDLInteractionMode SDL_SWIFT_ENUM; - -/** - Interaction Mode : Manual Only - - This mode causes the interaction to occur only on the display, meaning the choices are presented and selected only via the display. Selections are viewed with the SEEKRIGHT, SEEKLEFT, TUNEUP, TUNEDOWN buttons. User's selection is indicated with the OK button - */ -extern SDLInteractionMode const SDLInteractionModeManualOnly; - -/** - Interaction Mode : VR Only - - This mode causes the interaction to occur only through TTS and VR. The user is prompted via TTS to select a choice by saying one of the choice's synonyms - */ -extern SDLInteractionMode const SDLInteractionModeVoiceRecognitionOnly; - -/** - Interaction Mode : Manual & VR - - @discussion This mode is a combination of MANUAL_ONLY and VR_ONLY, meaning the user is prompted both visually and audibly. The user can make a selection either using the mode described in MANUAL_ONLY or using the mode described in VR_ONLY. - - If the user views selections as described in MANUAL_ONLY mode, the interaction becomes strictly, and irreversibly, a MANUAL_ONLY interaction (i.e. the VR session is cancelled, although the interaction itself is still in progress). If the user interacts with the VR session in any way (e.g. speaks a phrase, even if it is not a recognized choice), the interaction becomes strictly, and irreversibly, a VR_ONLY interaction (i.e. the MANUAL_ONLY mode forms of interaction will no longer be honored) - - The TriggerSource parameter of the *PerformInteraction* response will indicate which interaction mode the user finally chose to attempt the selection (even if the interaction did not end with a selection being made) - */ -extern SDLInteractionMode const SDLInteractionModeBoth; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLInteractionMode.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLInteractionMode.m deleted file mode 100644 index 7bf24a3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLInteractionMode.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLInteractionMode.m -// - - -#import "SDLInteractionMode.h" - -SDLInteractionMode const SDLInteractionModeManualOnly = @"MANUAL_ONLY"; -SDLInteractionMode const SDLInteractionModeVoiceRecognitionOnly = @"VR_ONLY"; -SDLInteractionMode const SDLInteractionModeBoth = @"BOTH"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardDelegate.h deleted file mode 100644 index 5637a2a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardDelegate.h +++ /dev/null @@ -1,106 +0,0 @@ -// -// SDLKeyboardDelegate.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/21/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLKeyboardEvent.h" - -@class SDLKeyboardProperties; - -NS_ASSUME_NONNULL_BEGIN - -/** - This handler is called when you wish to update your autocomplete text in response to the user's input - - @param updatedAutocompleteText The autocomplete results to use - */ -typedef void(^SDLKeyboardAutocompleteCompletionHandler)(NSString *_Nullable updatedAutocompleteText); - -/** - This handler is called when you wish to update your autocomplete text in response to the user's input. - - @param updatedAutoCompleteList The list of autocomplete results to use, a max of 100 items are allowed - */ -typedef void(^SDLKeyboardAutoCompleteResultsHandler)(NSArray *_Nullable updatedAutoCompleteList); - -/** - This handler is called when you wish to update your keyboard's limitedCharacterSet in response to the user's input - - @param updatedCharacterSet The new set of characters to use - */ -typedef void(^SDLKeyboardCharacterSetCompletionHandler)(NSArray *_Nullable updatedCharacterSet); - -/// They delegate of a keyboard popup allowing customization at runtime of the keyboard. -@protocol SDLKeyboardDelegate - -/** - The keyboard session completed with some input. - - This will be sent upon ENTRY_SUBMITTED or ENTRY_VOICE. If the event is ENTRY_VOICE, the user requested to start a voice session in order to submit input to this keyboard. This MUST be handled by you. Start an Audio Pass Thru session if supported. - - @param inputText The submitted input text on the keyboard - @param source ENTRY_SUBMITTED if the user pressed the submit button on the keyboard, ENTRY_VOICE if the user requested that a voice session begin - */ -- (void)userDidSubmitInput:(NSString *)inputText withEvent:(SDLKeyboardEvent)source; - -/** - The keyboard session aborted. - - This will be sent if the keyboard event ENTRY_CANCELLED or ENTRY_ABORTED is sent - - @param event ENTRY_CANCELLED if the user cancelled the keyboard input, or ENTRY_ABORTED if the system aborted the input due to a higher priority event - */ -- (void)keyboardDidAbortWithReason:(SDLKeyboardEvent)event; - -@optional -/** - Implement this in order to provide a custom keyboard configuration to just this keyboard. To apply default settings to all keyboards, see SDLScreenManager.keyboardConfiguration - - @return The custom keyboard configuration to use. - */ -- (SDLKeyboardProperties *)customKeyboardConfiguration; - -/** - Implement this if you wish to update the KeyboardProperties.autoCompleteText as the user updates their input. This is called upon a KEYPRESS event. - - @param currentInputText The user's full current input text - @param completionHandler A completion handler to update the autoCompleteText - */ -- (void)updateAutocompleteWithInput:(NSString *)currentInputText completionHandler:(SDLKeyboardAutocompleteCompletionHandler)completionHandler __deprecated_msg("Use updateAutocompleteWithInput:autoCompleteResultsHandler:"); - -/** - Implement this if you wish to updated the KeyboardProperties.autoCompleteList as the user updates their input. This is called upon a KEYPRESS event. - - This allows you to present a list of options that the user can use to fill in the search / text box with suggestions you provide. - - @param currentInputText The user's full current input text - @param resultsHandler A completion handler to update the autoCompleteList - */ -- (void)updateAutocompleteWithInput:(NSString *)currentInputText autoCompleteResultsHandler:(SDLKeyboardAutoCompleteResultsHandler)resultsHandler; - -/** - Implement this if you wish to update the limitedCharacterSet as the user updates their input. This is called upon a KEYPRESS event. - - @param currentInputText The user's full current input text - @param completionHandler A completion handler to update the limitedCharacterSet - */ --(void)updateCharacterSetWithInput:(NSString *)currentInputText completionHandler:(SDLKeyboardCharacterSetCompletionHandler)completionHandler; - -// This will be sent for any event that occurs with the event and the current input text - -/** - Implement this to be notified of all events occurring on the keyboard - - @param event The event that occurred - @param currentInputText The user's full current input text - */ -- (void)keyboardDidSendEvent:(SDLKeyboardEvent)event text:(NSString *)currentInputText; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardEvent.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardEvent.h deleted file mode 100644 index 02fbf75..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardEvent.h +++ /dev/null @@ -1,39 +0,0 @@ -// SDLKeyboardEvent.h -// - - -#import "SDLEnum.h" - -/** - Enumeration listing possible keyboard events. Used in OnKeyboardInput. - - @since SmartDeviceLink 3.0 - */ -typedef SDLEnum SDLKeyboardEvent SDL_SWIFT_ENUM; - -/** - The use has pressed the keyboard key (applies to both SINGLE_KEYPRESS and RESEND_CURRENT_ENTRY modes). - */ -extern SDLKeyboardEvent const SDLKeyboardEventKeypress; - -/** - The User has finished entering text from the keyboard and submitted the entry. - */ -extern SDLKeyboardEvent const SDLKeyboardEventSubmitted; - -/** - The User has pressed the HMI-defined "Cancel" button. - */ -extern SDLKeyboardEvent const SDLKeyboardEventCancelled; - -/** - The User has not finished entering text and the keyboard is aborted with the event of higher priority. - */ -extern SDLKeyboardEvent const SDLKeyboardEventAborted; - -/** - The user used voice as input for the keyboard - - @since SDL 4.0 - */ -extern SDLKeyboardEvent const SDLKeyboardEventVoice; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardEvent.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardEvent.m deleted file mode 100644 index 67f4e60..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardEvent.m +++ /dev/null @@ -1,11 +0,0 @@ -// SDLKeyboardEvent.m -// - - -#import "SDLKeyboardEvent.h" - -SDLKeyboardEvent const SDLKeyboardEventKeypress = @"KEYPRESS"; -SDLKeyboardEvent const SDLKeyboardEventSubmitted = @"ENTRY_SUBMITTED"; -SDLKeyboardEvent const SDLKeyboardEventCancelled = @"ENTRY_CANCELLED"; -SDLKeyboardEvent const SDLKeyboardEventAborted = @"ENTRY_ABORTED"; -SDLKeyboardEvent const SDLKeyboardEventVoice = @"ENTRY_VOICE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardLayout.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardLayout.h deleted file mode 100644 index ea36434..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardLayout.h +++ /dev/null @@ -1,27 +0,0 @@ -// SDLKeyboardLayout.h -// - - -#import "SDLEnum.h" - -/** - Enumeration listing possible keyboard layouts. Used in KeyboardProperties. - - Since SmartDeviceLink 3.0 - */ -typedef SDLEnum SDLKeyboardLayout SDL_SWIFT_ENUM; - -/** - QWERTY layout (the name comes from the first six keys
      appearing on the top left letter row of the keyboard and read from left to right) - */ -extern SDLKeyboardLayout const SDLKeyboardLayoutQWERTY; - -/** - QWERTZ layout (the name comes from the first six keys
      appearing on the top left letter row of the keyboard and read from left to right) - */ -extern SDLKeyboardLayout const SDLKeyboardLayoutQWERTZ; - -/** - AZERTY layout (the name comes from the first six keys
      appearing on the top left letter row of the keyboard and read from left to right) - */ -extern SDLKeyboardLayout const SDLKeyboardLayoutAZERTY; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardLayout.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardLayout.m deleted file mode 100644 index 7fa8e19..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardLayout.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLKeyboardLayout.m -// - - -#import "SDLKeyboardLayout.h" - -SDLKeyboardLayout const SDLKeyboardLayoutQWERTY = @"QWERTY"; -SDLKeyboardLayout const SDLKeyboardLayoutQWERTZ = @"QWERTZ"; -SDLKeyboardLayout const SDLKeyboardLayoutAZERTY = @"AZERTY"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.h deleted file mode 100644 index 19b494e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.h +++ /dev/null @@ -1,88 +0,0 @@ -// SDLKeyboardProperties.h -// - -#import "SDLRPCMessage.h" - -#import "SDLKeyboardLayout.h" -#import "SDLKeypressMode.h" -#import "SDLLanguage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Configuration of on-screen keyboard (if available) - */ -@interface SDLKeyboardProperties : SDLRPCStruct - -/** - Create a Keyboard Properties RPC object - - @param language The language to set the keyboard to - @param layout The layout of the keyboard - @param keypressMode The mode of keypresses to use - @param limitedCharacterList A list of characters restricting what the user is allowed to press - @param autoCompleteText A string to show the user to complete what they are typing - @return The RPC object - */ -- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText __deprecated_msg(("use initWithLanguagelayout:keypressMode:limitedCharacterList:autoCompleteText:autoCompleteList: instead")); - -/** - Create a Keyboard Properties RPC object - - @param language The language to set the keyboard to - @param layout The layout of the keyboard - @param keypressMode The mode of keypresses to use - @param limitedCharacterList A list of characters restricting what the user is allowed to press - @param autoCompleteText A string to show to user to complete what they are typing - @param autoCompleteList A list of strings to show the user to complete what they are typing. - @return The RPC object - */ -- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText autoCompleteList:(nullable NSArray *)autoCompleteList; - -/** - The keyboard language - - Optional - */ -@property (nullable, strong, nonatomic) SDLLanguage language; - -/** - Desired keyboard layout - - Optional - */ -@property (nullable, strong, nonatomic) SDLKeyboardLayout keyboardLayout; - -/** - Desired keypress mode. - - If omitted, this value will be set to RESEND_CURRENT_ENTRY. - - Optional - */ -@property (nullable, strong, nonatomic) SDLKeypressMode keypressMode; - -/** - Array of keyboard characters to enable. All omitted characters will be greyed out (disabled) on the keyboard. If omitted, the entire keyboard will be enabled. - - Optional - */ -@property (nullable, strong, nonatomic) NSArray *limitedCharacterList; - -/** - Allows an app to prepopulate the text field with a suggested or completed entry as the user types - - Optional - */ -@property (nullable, strong, nonatomic) NSString *autoCompleteText; - -/** - Allows an app to show a list of possible autocomplete suggestions as the user types - - Optional, 1-100 items, max string length 1000 characters (note that these may not all be displayed on the screen) - */ -@property (nullable, strong, nonatomic) NSArray *autoCompleteList; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.m deleted file mode 100644 index 0adb701..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeyboardProperties.m +++ /dev/null @@ -1,83 +0,0 @@ -// SDLKeyboardProperties.m -// - -#import "SDLKeyboardProperties.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLKeyboardProperties - -- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText { - return [self initWithLanguage:language layout:layout keypressMode:keypressMode limitedCharacterList:limitedCharacterList autoCompleteText:autoCompleteText autoCompleteList:nil]; -} - -- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText autoCompleteList:(nullable NSArray *)autoCompleteList { - self = [self init]; - if (!self) { - return nil; - } - - self.language = language; - self.keyboardLayout = layout; - self.keypressMode = keypressMode; - self.limitedCharacterList = [limitedCharacterList mutableCopy]; - self.autoCompleteText = autoCompleteText; - self.autoCompleteList = autoCompleteList; - - return self; -} - -- (void)setLanguage:(nullable SDLLanguage)language { - [self.store sdl_setObject:language forName:SDLRPCParameterNameLanguage]; -} - -- (nullable SDLLanguage)language { - return [self.store sdl_enumForName:SDLRPCParameterNameLanguage error:nil]; -} - -- (void)setKeyboardLayout:(nullable SDLKeyboardLayout)keyboardLayout { - [self.store sdl_setObject:keyboardLayout forName:SDLRPCParameterNameKeyboardLayout]; -} - -- (nullable SDLKeyboardLayout)keyboardLayout { - return [self.store sdl_enumForName:SDLRPCParameterNameKeyboardLayout error:nil]; -} - -- (void)setKeypressMode:(nullable SDLKeypressMode)keypressMode { - [self.store sdl_setObject:keypressMode forName:SDLRPCParameterNameKeypressMode]; -} - -- (nullable SDLKeypressMode)keypressMode { - return [self.store sdl_enumForName:SDLRPCParameterNameKeypressMode error:nil]; -} - -- (void)setLimitedCharacterList:(nullable NSArray *)limitedCharacterList { - [self.store sdl_setObject:limitedCharacterList forName:SDLRPCParameterNameLimitedCharacterList]; -} - -- (nullable NSArray *)limitedCharacterList { - return [self.store sdl_objectsForName:SDLRPCParameterNameLimitedCharacterList ofClass:NSString.class error:nil]; -} - -- (void)setAutoCompleteText:(nullable NSString *)autoCompleteText { - [self.store sdl_setObject:autoCompleteText forName:SDLRPCParameterNameAutoCompleteText]; -} - -- (nullable NSString *)autoCompleteText { - return [self.store sdl_objectForName:SDLRPCParameterNameAutoCompleteText ofClass:NSString.class error:nil]; -} - -- (void)setAutoCompleteList:(nullable NSArray *)autoCompleteList { - [self.store sdl_setObject:autoCompleteList forName:SDLRPCParameterNameAutoCompleteList]; -} - -- (nullable NSArray *)autoCompleteList { - return [self.store sdl_objectsForName:SDLRPCParameterNameAutoCompleteList ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeypressMode.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeypressMode.h deleted file mode 100644 index 839926c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeypressMode.h +++ /dev/null @@ -1,31 +0,0 @@ -// SDLKeypressMode.h -// - - -#import "SDLEnum.h" - -/** - Enumeration listing possible keyboard events. - - Note: Depending on keypressMode value (from keyboardProperties structure of UI.SetGlobalProperties), HMI must send the onKeyboardInput notification with the following data: - - SINGLE_KEYPRESS,QUEUE_KEYPRESSES,RESEND_CURRENT_ENTRY. - - @since SmartDeviceLink 3.0 - */ -typedef SDLEnum SDLKeypressMode SDL_SWIFT_ENUM; - -/** - SINGLE_KEYPRESS:
      Each and every User`s keypress must be reported (new notification for every newly entered single symbol). - */ -extern SDLKeypressMode const SDLKeypressModeSingleKeypress; - -/** - QUEUE_KEYPRESSES:
      The whole entry is reported only after the User submits it (by ‘Search’ button click displayed on touchscreen keyboard) - */ -extern SDLKeypressMode const SDLKeypressModeQueueKeypresses; - -/** - RESEND_CURRENT_ENTRY:
      The whole entry must be reported each and every time the User makes a new keypress
      (new notification with all previously entered symbols and a newly entered one appended). - */ -extern SDLKeypressMode const SDLKeypressModeResendCurrentEntry; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeypressMode.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeypressMode.m deleted file mode 100644 index f4ba33d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLKeypressMode.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLKeypressMode.m -// - - -#import "SDLKeypressMode.h" - -SDLKeypressMode const SDLKeypressModeSingleKeypress = @"SINGLE_KEYPRESS"; -SDLKeypressMode const SDLKeypressModeQueueKeypresses = @"QUEUE_KEYPRESSES"; -SDLKeypressMode const SDLKeypressModeResendCurrentEntry = @"RESEND_CURRENT_ENTRY"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLanguage.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLanguage.h deleted file mode 100644 index 0224475..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLanguage.h +++ /dev/null @@ -1,207 +0,0 @@ -// SDLLanguage.h -// - - -#import "SDLEnum.h" - -/** - Specifies the language to be used for TTS, VR, displayed messages/menus. Used in ChangeRegistration and RegisterAppInterface. - - @since SDL 1.0 - */ -typedef SDLEnum SDLLanguage SDL_SWIFT_ENUM; - -/** - English_SA - */ -extern SDLLanguage const SDLLanguageEnSa; - -/** - Hebrew_IL - */ -extern SDLLanguage const SDLLanguageHeIl; - -/** - Romainian_RO - */ -extern SDLLanguage const SDLLanguageRoRo; - -/** - Ukrainian_UA - */ -extern SDLLanguage const SDLLanguageUkUa; - -/** - Indonesian_ID - */ -extern SDLLanguage const SDLLanguageIdId; - -/** - Vietnamese_VN - */ -extern SDLLanguage const SDLLanguageViVn; - -/** - Malay_MY - */ -extern SDLLanguage const SDLLanguageMsMy; - -/** - Hindi_IN - */ -extern SDLLanguage const SDLLanguageHiIn; - -/** - Dutch(Flemish)_BE - */ -extern SDLLanguage const SDLLanguageNlBe; - -/** - Greek_GR - */ -extern SDLLanguage const SDLLanguageElGr; - -/** - Hungarian_HU - */ -extern SDLLanguage const SDLLanguageHuHu; - -/** - Finnish_FI - */ -extern SDLLanguage const SDLLanguageFiFi; - -/** - Slovak_SK - */ -extern SDLLanguage const SDLLanguageSkSk; - -/** - English_US - */ -extern SDLLanguage const SDLLanguageEnUs; - -/** - English - India - */ -extern SDLLanguage const SDLLanguageEnIn; - -/** - Thai - Thailand - */ -extern SDLLanguage const SDLLanguageThTh; - -/** - Spanish - Mexico - */ -extern SDLLanguage const SDLLanguageEsMx; - -/** - French - Canada - */ -extern SDLLanguage const SDLLanguageFrCa; - -/** - German - Germany - */ -extern SDLLanguage const SDLLanguageDeDe; - -/** - * Spanish - Spain - */ -extern SDLLanguage const SDLLanguageEsEs; - -/** - English - Great Britain - */ -extern SDLLanguage const SDLLanguageEnGb; - -/** -Russian - Russia - */ -extern SDLLanguage const SDLLanguageRuRu; - -/** - Turkish - Turkey - */ -extern SDLLanguage const SDLLanguageTrTr; - -/** - Polish - Poland - */ -extern SDLLanguage const SDLLanguagePlPl; - -/** - French - France - */ -extern SDLLanguage const SDLLanguageFrFr; - -/** - Italian - Italy - */ -extern SDLLanguage const SDLLanguageItIt; - -/** - Swedish - Sweden - */ -extern SDLLanguage const SDLLanguageSvSe; - -/** - Portuguese - Portugal - */ -extern SDLLanguage const SDLLanguagePtPt; - -/** - Dutch (Standard) - Netherlands - */ -extern SDLLanguage const SDLLanguageNlNl; - -/** - English - Australia - */ -extern SDLLanguage const SDLLanguageEnAu; - -/** - Mandarin - China - */ -extern SDLLanguage const SDLLanguageZhCn; - -/** - Mandarin - Taiwan - */ -extern SDLLanguage const SDLLanguageZhTw; - -/** - Japanese - Japan - */ -extern SDLLanguage const SDLLanguageJaJp; - -/** - Arabic - Saudi Arabia - */ -extern SDLLanguage const SDLLanguageArSa; - -/** - Korean - South Korea - */ -extern SDLLanguage const SDLLanguageKoKr; - -/** - Portuguese - Brazil - */ -extern SDLLanguage const SDLLanguagePtBr; - -/** - Czech - Czech Republic - */ -extern SDLLanguage const SDLLanguageCsCz; - -/** - Danish - Denmark - */ -extern SDLLanguage const SDLLanguageDaDk; - -/** - Norwegian - Norway - */ -extern SDLLanguage const SDLLanguageNoNo; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLanguage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLanguage.m deleted file mode 100644 index 5995ed4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLanguage.m +++ /dev/null @@ -1,45 +0,0 @@ -// SDLLanguage.m -// - - -#import "SDLLanguage.h" - -SDLLanguage const SDLLanguageEnSa = @"EN-SA"; -SDLLanguage const SDLLanguageHeIl = @"HE-IL"; -SDLLanguage const SDLLanguageRoRo = @"RO-RO"; -SDLLanguage const SDLLanguageUkUa = @"UK-UA"; -SDLLanguage const SDLLanguageIdId = @"ID-ID"; -SDLLanguage const SDLLanguageViVn = @"VI-VN"; -SDLLanguage const SDLLanguageMsMy = @"MS-MY"; -SDLLanguage const SDLLanguageHiIn = @"HI-IN"; -SDLLanguage const SDLLanguageNlBe = @"NL-BE"; -SDLLanguage const SDLLanguageElGr = @"EL-GR"; -SDLLanguage const SDLLanguageHuHu = @"HU-HU"; -SDLLanguage const SDLLanguageFiFi = @"FI-FI"; -SDLLanguage const SDLLanguageSkSk = @"SK-SK"; -SDLLanguage const SDLLanguageEnUs = @"EN-US"; -SDLLanguage const SDLLanguageEnIn = @"EN-IN"; -SDLLanguage const SDLLanguageThTh = @"TH-TH"; -SDLLanguage const SDLLanguageEsMx = @"ES-MX"; -SDLLanguage const SDLLanguageFrCa = @"FR-CA"; -SDLLanguage const SDLLanguageDeDe = @"DE-DE"; -SDLLanguage const SDLLanguageEsEs = @"ES-ES"; -SDLLanguage const SDLLanguageEnGb = @"EN-GB"; -SDLLanguage const SDLLanguageRuRu = @"RU-RU"; -SDLLanguage const SDLLanguageTrTr = @"TR-TR"; -SDLLanguage const SDLLanguagePlPl = @"PL-PL"; -SDLLanguage const SDLLanguageFrFr = @"FR-FR"; -SDLLanguage const SDLLanguageItIt = @"IT-IT"; -SDLLanguage const SDLLanguageSvSe = @"SV-SE"; -SDLLanguage const SDLLanguagePtPt = @"PT-PT"; -SDLLanguage const SDLLanguageNlNl = @"NL-NL"; -SDLLanguage const SDLLanguageEnAu = @"EN-AU"; -SDLLanguage const SDLLanguageZhCn = @"ZH-CN"; -SDLLanguage const SDLLanguageZhTw = @"ZH-TW"; -SDLLanguage const SDLLanguageJaJp = @"JA-JP"; -SDLLanguage const SDLLanguageArSa = @"AR-SA"; -SDLLanguage const SDLLanguageKoKr = @"KO-KR"; -SDLLanguage const SDLLanguagePtBr = @"PT-BR"; -SDLLanguage const SDLLanguageCsCz = @"CS-CZ"; -SDLLanguage const SDLLanguageDaDk = @"DA-DK"; -SDLLanguage const SDLLanguageNoNo = @"NO-NO"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLayoutMode.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLayoutMode.h deleted file mode 100644 index 3cb7db7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLayoutMode.h +++ /dev/null @@ -1,37 +0,0 @@ -// SDLLayoutMode.h -// - - -#import "SDLEnum.h" - -/** - * For touchscreen interactions, the mode of how the choices are presented. Used in PerformInteraction. - * - * @since SDL 3.0 - */ -typedef SDLEnum SDLLayoutMode SDL_SWIFT_ENUM; - -/** - * This mode causes the interaction to display the previous set of choices as icons. - */ -extern SDLLayoutMode const SDLLayoutModeIconOnly; - -/** - * This mode causes the interaction to display the previous set of choices as icons along with a search field in the HMI. - */ -extern SDLLayoutMode const SDLLayoutModeIconWithSearch; - -/** - * This mode causes the interaction to display the previous set of choices as a list. - */ -extern SDLLayoutMode const SDLLayoutModeListOnly; - -/** - * This mode causes the interaction to display the previous set of choices as a list along with a search field in the HMI. - */ -extern SDLLayoutMode const SDLLayoutModeListWithSearch; - -/** - * This mode causes the interaction to immediately display a keyboard entry through the HMI. - */ -extern SDLLayoutMode const SDLLayoutModeKeyboard; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLayoutMode.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLayoutMode.m deleted file mode 100644 index 766b5cc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLayoutMode.m +++ /dev/null @@ -1,11 +0,0 @@ -// SDLLayoutMode.m -// - - -#import "SDLLayoutMode.h" - -SDLLayoutMode const SDLLayoutModeIconOnly = @"ICON_ONLY"; -SDLLayoutMode const SDLLayoutModeIconWithSearch = @"ICON_WITH_SEARCH"; -SDLLayoutMode const SDLLayoutModeListOnly = @"LIST_ONLY"; -SDLLayoutMode const SDLLayoutModeListWithSearch = @"LIST_WITH_SEARCH"; -SDLLayoutMode const SDLLayoutModeKeyboard = @"KEYBOARD"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.h deleted file mode 100644 index f2b5930..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.h +++ /dev/null @@ -1,202 +0,0 @@ -// -// SDLManagerConfiguration.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/7/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAppHMIType.h" -#import "SDLLanguage.h" - -@class SDLFile; -@class SDLTemplateColorScheme; -@class SDLTTSChunk; -@class SDLVersion; - - -NS_ASSUME_NONNULL_BEGIN - -/// List of secondary transports -typedef NS_OPTIONS(NSUInteger, SDLSecondaryTransports) { - /// No secondary transport - SDLSecondaryTransportsNone = 0, - - /// TCP as secondary transport - SDLSecondaryTransportsTCP = 1 << 0 -}; - -/** - * Configuration options for SDLManager - */ -@interface SDLLifecycleConfiguration : NSObject - -/// Initializer unavailable -- (instancetype)init NS_UNAVAILABLE; - -/** - * A production configuration that runs using IAP. Additional functionality should be customized on the properties. - * - * @param appName The name of the app. - * @param appId The app id to be used. This should be registered with the head unit's manufacturer. - * - * @return The lifecycle configuration - */ -+ (SDLLifecycleConfiguration *)defaultConfigurationWithAppName:(NSString *)appName appId:(NSString *)appId NS_SWIFT_NAME(init(appName:appId:)) __deprecated_msg("Use defaultConfigurationWithAppName:fullAppId: instead"); - -/** - * A production configuration that runs using IAP. Additional functionality should be customized on the properties. - * - * @param appName The name of the app. - * @param fullAppId The full app id to be used. This should be registered with the head unit's manufacturer. When set, the `appId` parameter will be set automatically to the first 10 non-dash characters of the `fullAppId`. - * - * @return The lifecycle configuration - */ -+ (SDLLifecycleConfiguration *)defaultConfigurationWithAppName:(NSString *)appName fullAppId:(NSString *)fullAppId NS_SWIFT_NAME(init(appName:fullAppId:)); - -/** - * A debug configuration that runs using TCP. Additional functionality should be customized on the properties. - * - * @param appName The name of the app. - * @param appId The app id to be used. This should be registered with the head unit's manufacturer. - * @param ipAddress The ip address of the server to connect to - * @param port The port of the server to connect to - * - * @return The lifecycle configuration - */ -+ (SDLLifecycleConfiguration *)debugConfigurationWithAppName:(NSString *)appName appId:(NSString *)appId ipAddress:(NSString *)ipAddress port:(UInt16)port NS_SWIFT_NAME(init(appName:appId:ipAddress:port:)) __deprecated_msg("Use debugConfigurationWithAppName:fullAppId:ipAddress:port: instead"); - -/** - * A debug configuration that runs using TCP. Additional functionality should be customized on the properties. - * - * @param appName The name of the app. - * @param fullAppId The full app id to be used. This should be registered with the head unit's manufacturer. When set, the `appId` parameter will be set automatically to the first 10 non-dash characters of the `fullAppId`. - * @param ipAddress The ip address of the server to connect to - * @param port The port of the server to connect to - * - * @return The lifecycle configuration - */ -+ (SDLLifecycleConfiguration *)debugConfigurationWithAppName:(NSString *)appName fullAppId:(NSString *)fullAppId ipAddress:(NSString *)ipAddress port:(UInt16)port NS_SWIFT_NAME(init(appName:fullAppId:ipAddress:port:)); - -/** - * Whether or not debug mode is enabled - */ -@property (assign, nonatomic, readonly) BOOL tcpDebugMode; - -/** - * The ip address at which the library will look for a server - */ -@property (copy, nonatomic, readonly, null_resettable) NSString *tcpDebugIPAddress; - -/** - * The port at which the library will look for a server - */ -@property (assign, nonatomic, readonly) UInt16 tcpDebugPort; - -/** - * The full name of the app - */ -@property (copy, nonatomic) NSString *appName; - -/** - * The app id. This must be the same as the app id received from the SDL developer portal. - * - * @see `fullAppId` - * - * Required - */ -@property (copy, nonatomic, readonly) NSString *appId; - -/** - * The full app id. This must be the same as the full app id received from the SDL developer portal. - * - * Optional - * - * @discussion The `fullAppId` is used to authenticate apps that connect with head units that implement SDL Core v.5.0 and newer. If connecting with older head units, the `fullAppId` can be truncated to create the required `appId` needed to register the app. The `appId` is the first 10 non-dash ("-") characters of the `fullAppId` (e.g. if you have a `fullAppId` of 123e4567-e89b-12d3-a456-426655440000, the `appId` will be 123e4567e8). - */ -@property (copy, nonatomic, nullable, readonly) NSString *fullAppId; - -/** - * A hash id which should be passed to the remote system in the RegisterAppInterface - */ -@property (copy, nonatomic, nullable) NSString *resumeHash; - -/** - * This is an automatically set based on the app type - */ -@property (assign, nonatomic, readonly) BOOL isMedia; - -/** - * The application type - */ -@property (strong, nonatomic, null_resettable) SDLAppHMIType appType; - -/** - * Additional application types beyond `appType` - */ -@property (copy, nonatomic, nullable) NSArray *additionalAppTypes; - -/** - * The default language to use - */ -@property (strong, nonatomic) SDLLanguage language; - -/** - * An array of all the supported languages - */ -@property (strong, nonatomic) NSArray *languagesSupported; - -/** - * The application icon to be used on an app launching screen - */ -@property (strong, nonatomic, nullable) SDLFile *appIcon; - -/** - * An abbrevited application name that will be used on the app launching screen if the full one would be truncated - */ -@property (copy, nonatomic, nullable) NSString *shortAppName; - -/** - * A Text to Speech String for voice recognition of the mobile application name. - */ -@property (copy, nonatomic, nullable) NSArray *ttsName; - -/** - * Additional voice recognition commands. May not interfere with any other app name or global commands. - */ -@property (copy, nonatomic, nullable) NSArray *voiceRecognitionCommandNames; - -/** - * The color scheme to use when the head unit is in a light / day situation. - */ -@property (copy, nonatomic, nullable) SDLTemplateColorScheme *dayColorScheme; - -/** - * The color scheme to use when the head unit is in a dark / night situation. - */ -@property (copy, nonatomic, nullable) SDLTemplateColorScheme *nightColorScheme; - -/** - The minimum protocol version that will be permitted to connect. This defaults to 1.0.0. If the protocol version of the head unit connected is below this version, the app will disconnect with an EndService protocol message and will not register. - */ -@property (strong, nonatomic) SDLVersion *minimumProtocolVersion; - -/** - The minimum RPC version that will be permitted to connect. This defaults to 1.0.0. If the RPC version of the head unit connected is below this version, an UnregisterAppInterface will be sent. - */ -@property (strong, nonatomic) SDLVersion *minimumRPCVersion; - -/** - Which transports are permitted to be used as secondary transports. A secondary transport is a transport that is connected as an alternate, higher bandwidth transport for situations when a low-bandwidth primary transport (such as Bluetooth) will restrict certain features (such as video streaming navigation). - - The only currently available secondary transport is TCP over WiFi. This is set to permit TCP by default, but it can be disabled by using SDLSecondaryTransportsNone instead. - - This will only affect apps that have high-bandwidth requirements; currently that is only video streaming navigation apps. - */ -@property (assign, nonatomic) SDLSecondaryTransports allowedSecondaryTransports; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.m deleted file mode 100644 index 0984712..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfiguration.m +++ /dev/null @@ -1,167 +0,0 @@ -// -// SDLManagerConfiguration.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/7/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "SDLLifecycleConfiguration.h" - -#import "SDLFile.h" -#import "SDLVersion.h" - -static NSString *const DefaultTCPIPAddress = @"192.168.0.1"; -static UInt16 const DefaultTCPIPPort = 12345; - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLifecycleConfiguration () - -@property (assign, nonatomic, readwrite) BOOL tcpDebugMode; -@property (copy, nonatomic, readwrite, null_resettable) NSString *tcpDebugIPAddress; -@property (assign, nonatomic, readwrite) UInt16 tcpDebugPort; - -@end - -static NSUInteger const AppIdCharacterCount = 10; - -@implementation SDLLifecycleConfiguration - -#pragma mark Lifecycle - -+ (SDLLifecycleConfiguration *)defaultConfigurationWithAppName:(NSString *)appName appId:(NSString *)appId { - return [[self alloc] initDefaultConfigurationWithAppName:appName fullAppId:nil appId:appId]; -} - -+ (SDLLifecycleConfiguration *)defaultConfigurationWithAppName:(NSString *)appName fullAppId:(NSString *)fullAppId { - return [[self alloc] initDefaultConfigurationWithAppName:appName fullAppId:fullAppId appId:fullAppId]; -} - -+ (SDLLifecycleConfiguration *)debugConfigurationWithAppName:(NSString *)appName appId:(NSString *)appId ipAddress:(NSString *)ipAddress port:(UInt16)port { - return [[self alloc] initDefaultConfigurationWithAppName:appName fullAppId:nil appId:appId ipAddress:ipAddress port:port]; -} - -+ (SDLLifecycleConfiguration *)debugConfigurationWithAppName:(NSString *)appName fullAppId:(NSString *)fullAppId ipAddress:(NSString *)ipAddress port:(UInt16)port { - return [[self alloc] initDefaultConfigurationWithAppName:appName fullAppId:fullAppId appId:fullAppId ipAddress:ipAddress port:port]; -} - -#pragma mark Initalization Helpers - -- (instancetype)initDefaultConfigurationWithAppName:(NSString *)appName fullAppId:(nullable NSString *)fullAppId appId:(NSString *)appId { - self = [super init]; - if (!self) { - return nil; - } - - _tcpDebugMode = NO; - _tcpDebugIPAddress = DefaultTCPIPAddress; - _tcpDebugPort = DefaultTCPIPPort; - - _appName = appName; - _appType = SDLAppHMITypeDefault; - _language = SDLLanguageEnUs; - _languagesSupported = @[_language]; - _appIcon = nil; - _shortAppName = nil; - _ttsName = nil; - _voiceRecognitionCommandNames = nil; - _minimumProtocolVersion = [SDLVersion versionWithString:@"1.0.0"]; - _minimumRPCVersion = [SDLVersion versionWithString:@"1.0.0"]; - _allowedSecondaryTransports = SDLSecondaryTransportsTCP; - - _fullAppId = fullAppId; - _appId = fullAppId != nil ? [self.class sdlex_shortAppIdFromFullAppId:fullAppId] : appId; - - return self; -} - -- (instancetype)initDefaultConfigurationWithAppName:(NSString *)appName fullAppId:(nullable NSString *)fullAppId appId:(nullable NSString *)appId ipAddress:(NSString *)ipAddress port:(UInt16)port { - SDLLifecycleConfiguration *config = [self initDefaultConfigurationWithAppName:appName fullAppId:fullAppId appId:appId]; - - config.tcpDebugMode = YES; - config.tcpDebugIPAddress = ipAddress; - config.tcpDebugPort = port; - - return config; -} - -#pragma mark - Computed Properties - -- (BOOL)isMedia { - if ([self.appType isEqualToEnum:SDLAppHMITypeMedia] || [self.additionalAppTypes containsObject:SDLAppHMITypeMedia]) { - return YES; - } - - return NO; -} - -- (void)setTcpDebugIPAddress:(nullable NSString *)tcpDebugIPAddress { - if (tcpDebugIPAddress == nil) { - _tcpDebugIPAddress = DefaultTCPIPAddress; - } else { - _tcpDebugIPAddress = tcpDebugIPAddress; - } -} - -- (void)setAppType:(nullable SDLAppHMIType)appType { - if (appType == nil) { - _appType = SDLAppHMITypeDefault; - return; - } - - _appType = appType; -} - -#pragma mark - Full App ID Helpers - -/** - * Generates the `appId` from the `fullAppId` - * - * @discussion When an app is registered with an OEM, it is assigned an `appID` and a `fullAppID`. The `fullAppID` is the full UUID appID. The `appID` is the first 10 non-dash (i.e. "-") characters of the `fullAppID`. - * - * @param fullAppId A `fullAppId` - * @return An `appID` made of the first 10 non-dash characters of the "fullAppID" - */ -+ (NSString *)sdlex_shortAppIdFromFullAppId:(NSString *)fullAppId { - NSString *filteredString = [self sdlex_filterDashesFromText:fullAppId]; - return [filteredString substringToIndex:MIN(AppIdCharacterCount, filteredString.length)]; -} - -/** - * Filters the dash characters from a string - * - * @param text The string - * @return The string with all dash characters removed - */ -+ (NSString *)sdlex_filterDashesFromText:(NSString *)text { - NSCharacterSet *supportedCharacters = [NSCharacterSet characterSetWithCharactersInString:@"-"]; - return [[text componentsSeparatedByCharactersInSet:supportedCharacters] componentsJoinedByString:@""]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(nullable NSZone *)zone { - SDLLifecycleConfiguration *newConfig = [[self.class allocWithZone:zone] initDefaultConfigurationWithAppName:_appName fullAppId:_fullAppId appId:_appId]; - newConfig->_tcpDebugMode = _tcpDebugMode; - newConfig->_tcpDebugIPAddress = _tcpDebugIPAddress; - newConfig->_tcpDebugPort = _tcpDebugPort; - newConfig->_appType = _appType; - newConfig->_additionalAppTypes = _additionalAppTypes; - newConfig->_language = _language; - newConfig->_languagesSupported = _languagesSupported; - newConfig->_appIcon = _appIcon; - newConfig->_shortAppName = _shortAppName; - newConfig->_ttsName = _ttsName; - newConfig->_voiceRecognitionCommandNames = _voiceRecognitionCommandNames; - newConfig->_dayColorScheme = _dayColorScheme; - newConfig->_nightColorScheme = _nightColorScheme; - newConfig->_allowedSecondaryTransports = _allowedSecondaryTransports; - - return newConfig; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfigurationUpdate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfigurationUpdate.h deleted file mode 100644 index d30ad3e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfigurationUpdate.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// SDLLifecycleConfigurationUpdate.h -// SmartDeviceLink-iOS -// -// Created by Kujtim Shala on 06.09.17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -@class SDLTTSChunk; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Configuration update options for SDLManager. This class can be used to update the lifecycle configuration in - * cases the language of the head unit changes or does not match the app language. - */ -@interface SDLLifecycleConfigurationUpdate : NSObject - -/** - * The full name of the app to that the configuration should be updated to. - */ -@property (copy, nonatomic, nullable) NSString *appName; - -/** - * An abbrevited application name that will be used on the app launching screen if the full one would be truncated. - */ -@property (copy, nonatomic, nullable) NSString *shortAppName; - -/** - * A Text to Speech String for voice recognition of the mobile application name. - */ -@property (copy, nonatomic, nullable) NSArray *ttsName; - -/** - * Additional voice recognition commands. May not interfere with any other app name or global commands. - */ -@property (copy, nonatomic, nullable) NSArray *voiceRecognitionCommandNames; - -/** - * Initializes and returns a newly allocated lifecycle configuration update object with the specified app data. - * This is a convenience initializer for -init. - * @param appName The full name of the app to that the configuration should be updated to. - * @param shortAppName An abbrevited application name that will be used on the app launching screen if the full one would be truncated. - * @param ttsName A Text to Speech String for voice recognition of the mobile application name. - * @param voiceRecognitionCommandNames Additional voice recognition commands. May not interfere with any other app name or global commands. - */ -- (instancetype)initWithAppName:(nullable NSString *)appName shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray *)ttsName voiceRecognitionCommandNames:(nullable NSArray *)voiceRecognitionCommandNames; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfigurationUpdate.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfigurationUpdate.m deleted file mode 100644 index b866884..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleConfigurationUpdate.m +++ /dev/null @@ -1,32 +0,0 @@ -// -// SDLLifecycleConfigurationUpdate.m -// SmartDeviceLink-iOS -// -// Created by Kujtim Shala on 06.09.17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLLifecycleConfigurationUpdate.h" - -@implementation SDLLifecycleConfigurationUpdate - -- (instancetype)init { - return [self initWithAppName:nil shortAppName:nil ttsName:nil voiceRecognitionCommandNames:nil]; -} - -- (instancetype)initWithAppName:(NSString *)appName shortAppName:(NSString *)shortAppName ttsName:(NSArray *)ttsName voiceRecognitionCommandNames:(NSArray *)voiceRecognitionCommandNames { - if (self = [super init]) { - self.appName = appName; - self.shortAppName = shortAppName; - self.ttsName = ttsName; - self.voiceRecognitionCommandNames = voiceRecognitionCommandNames; - } - - return self; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"Lifecycle Configuration Update: new app name: %@, new short app name: %@, new tts name: %@, new voice commands: %@", self.appName, self.shortAppName, self.ttsName, self.voiceRecognitionCommandNames]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.h deleted file mode 100644 index 1911c48..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.h +++ /dev/null @@ -1,160 +0,0 @@ -// -// SDLLifecycleManager.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/19/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLNotificationConstants.h" -#import - -#import "SDLAudioStreamingState.h" -#import "SDLHMILevel.h" -#import "SDLLanguage.h" -#import "SDLSystemContext.h" -#import "SDLVideoStreamingState.h" - -@class SDLConfiguration; -@class SDLFileManager; -@class SDLLifecycleConfiguration; -@class SDLLockScreenConfiguration; -@class SDLLockScreenManager; -@class SDLNotificationDispatcher; -@class SDLOnHashChange; -@class SDLPermissionManager; -@class SDLProxy; -@class SDLPutFile; -@class SDLRegisterAppInterfaceResponse; -@class SDLResponseDispatcher; -@class SDLRPCMessage; -@class SDLRPCNotification; -@class SDLRPCRequest; -@class SDLRPCResponse; -@class SDLScreenManager; -@class SDLStateMachine; -@class SDLStreamingMediaManager; -@class SDLSystemCapabilityManager; - -@protocol SDLManagerDelegate; - - -NS_ASSUME_NONNULL_BEGIN - -typedef NSString SDLLifecycleState; -extern SDLLifecycleState *const SDLLifecycleStateStopped; -extern SDLLifecycleState *const SDLLifecycleStateStarted; -extern SDLLifecycleState *const SDLLifecycleStateReconnecting; -extern SDLLifecycleState *const SDLLifecycleStateConnected; -extern SDLLifecycleState *const SDLLifecycleStateRegistered; -extern SDLLifecycleState *const SDLLifecycleStateUpdatingConfiguration; -extern SDLLifecycleState *const SDLLifecycleStateSettingUpManagers; -extern SDLLifecycleState *const SDLLifecycleStateSettingUpAppIcon; -extern SDLLifecycleState *const SDLLifecycleStateSettingUpHMI; -extern SDLLifecycleState *const SDLLifecycleStateUnregistering; -extern SDLLifecycleState *const SDLLifecycleStateReady; - -typedef void (^SDLMultipleRequestCompletionHandler)(BOOL success); -typedef BOOL (^SDLMultipleSequentialRequestProgressHandler)(__kindof SDLRPCRequest *request, __kindof SDLRPCResponse *__nullable response, NSError *__nullable error, float percentComplete); -typedef void (^SDLMultipleAsyncRequestProgressHandler)(__kindof SDLRPCRequest *request, __kindof SDLRPCResponse *__nullable response, NSError *__nullable error, float percentComplete); -typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); - - -@interface SDLLifecycleManager : NSObject - -@property (copy, nonatomic, readonly) SDLConfiguration *configuration; -@property (weak, nonatomic, nullable) id delegate; -@property (strong, nonatomic, readonly, nullable) NSString *authToken; - -@property (strong, nonatomic) SDLFileManager *fileManager; -@property (strong, nonatomic) SDLPermissionManager *permissionManager; -@property (strong, nonatomic, nullable) SDLStreamingMediaManager *streamManager; -@property (strong, nonatomic) SDLLockScreenManager *lockScreenManager; -@property (strong, nonatomic, readonly) SDLScreenManager *screenManager; -@property (strong, nonatomic) SDLSystemCapabilityManager *systemCapabilityManager; - -@property (strong, nonatomic, readonly) SDLNotificationDispatcher *notificationDispatcher; -@property (strong, nonatomic, readonly) SDLResponseDispatcher *responseDispatcher; -@property (strong, nonatomic, readonly) SDLStateMachine *lifecycleStateMachine; - -@property (copy, nonatomic, readonly) SDLLifecycleState *lifecycleState; -@property (copy, nonatomic, nullable) SDLHMILevel hmiLevel; -@property (copy, nonatomic, nullable) SDLAudioStreamingState audioStreamingState; -@property (copy, nonatomic, nullable) SDLVideoStreamingState videoStreamingState; -@property (copy, nonatomic, nullable) SDLSystemContext systemContext; -@property (strong, nonatomic, nullable) SDLRegisterAppInterfaceResponse *registerResponse; - -@property (strong, nonatomic) NSOperationQueue *rpcOperationQueue; - - -#pragma mark Lifecycle -/** - * Initialize the manager with a configuration. Call `startWithHandler` to begin waiting for a connection. - * - * @param configuration Your app's unique configuration for setup. - * @param delegate An optional delegate to be notified of hmi level changes and startup and shutdown. It is recommended that you implement this. - * - * @return An instance of SDLManager - */ -- (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate:(nullable id)delegate NS_DESIGNATED_INITIALIZER; - -/** - * Start the manager, which will tell it to start looking for a connection. Once one does, it will automatically run the setup process and call the readyBlock when done. - * - * @warning If you call this method from SDLManager's `startWithReadyHandler` be sure to wrap the `stop` call inside a dispatch_async and send it to the main queue or a global queue, otherwise calling `stop` may cause a deadlock. - * - * @param readyHandler The block called when the manager is ready to be used or an error occurs while attempting to become ready. - */ -- (void)startWithReadyHandler:(SDLManagerReadyBlock)readyHandler; - -/** - * Stop the manager, it will disconnect if needed and no longer look for a connection. You probably don't need to call this method ever. - * - * @warning If you call this method from SDLManager's `startWithReadyHandler` be sure to wrap the `stop` call inside a dispatch_async and send it to the main queue or a global queue, otherwise calling `stop` may cause a deadlock. - */ -- (void)stop; - -/** - * Start the encryption lifecycle manager, which will attempt to open a secure service. - * - */ -- (void)startRPCEncryption; - -#pragma mark Send RPC Requests - -/** - * Send an RPC of type `Response`, `Notification` or `Request`. Responses and notifications sent to Core do not a response back from Core. Each request sent to Core does get a response, so if you need the response and/or error, call sendRequest:withCompletionHandler: instead. - * - * @param rpc An RPC of type `SDLRPCRequest`, `SDLRPCResponse`, or `SDLRPCNotification` to send - */ -- (void)sendRPC:(__kindof SDLRPCMessage *)rpc; - -/** - * Send an RPC request and set a completion handler that will be called with the response when the response returns. - * - * @param request The RPC request to send - * @param handler The handler that will be called when the response returns - */ -- (void)sendRequest:(__kindof SDLRPCMessage *)request withResponseHandler:(nullable SDLResponseHandler)handler; - -/** - Send all of the requests given as quickly as possible, but in order. Call the completionHandler after all requests have either failed or given a response. - - @param requests The requests to be sent - @param progressHandler A handler called every time a response is received. - @param completionHandler A handler to call when all requests have been responded to - */ -- (void)sendRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; - -/** - Send all of the requests one at a time, with the next one going out only after the previous one has received a response. Call the completionHandler after all requests have either failed or given a response. - - @param requests The requests to be sent - @param progressHandler A handler called every time a response is received - @param completionHandler A handler to call when all requests have been responded to - */ -- (void)sendSequentialRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.m deleted file mode 100644 index f689613..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleManager.m +++ /dev/null @@ -1,993 +0,0 @@ -// -// SDLLifecycleManager.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/19/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLifecycleManager.h" - -#import "NSMapTable+Subscripting.h" -#import "SDLLifecycleRPCAdapter.h" -#import "SDLAsynchronousRPCOperation.h" -#import "SDLAsynchronousRPCRequestOperation.h" -#import "SDLBackgroundTaskManager.h" -#import "SDLChangeRegistration.h" -#import "SDLConfiguration.h" -#import "SDLConnectionManagerType.h" -#import "SDLEncryptionConfiguration.h" -#import "SDLLogMacros.h" -#import "SDLError.h" -#import "SDLEncryptionLifecycleManager.h" -#import "SDLFile.h" -#import "SDLFileManager.h" -#import "SDLFileManagerConfiguration.h" -#import "SDLGlobals.h" -#import "SDLIAPTransport.h" -#import "SDLLifecycleConfiguration.h" -#import "SDLLifecycleConfigurationUpdate.h" -#import "SDLLifecycleMobileHMIStateHandler.h" -#import "SDLLifecycleSyncPDataHandler.h" -#import "SDLLifecycleSystemRequestHandler.h" -#import "SDLLockScreenConfiguration.h" -#import "SDLLockScreenManager.h" -#import "SDLLockScreenPresenter.h" -#import "SDLLogConfiguration.h" -#import "SDLLogFileModuleMap.h" -#import "SDLLogManager.h" -#import "SDLManagerDelegate.h" -#import "SDLNotificationDispatcher.h" -#import "SDLOnAppInterfaceUnregistered.h" -#import "SDLOnHMIStatus.h" -#import "SDLOnHashChange.h" -#import "SDLPermissionManager.h" -#import "SDLPredefinedWindows.h" -#import "SDLProtocol.h" -#import "SDLLifecycleProtocolHandler.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRegisterAppInterface.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLResponseDispatcher.h" -#import "SDLResult.h" -#import "SDLScreenManager.h" -#import "SDLSecondaryTransportManager.h" -#import "SDLSequentialRPCRequestOperation.h" -#import "SDLSetAppIcon.h" -#import "SDLStateMachine.h" -#import "SDLStreamingMediaConfiguration.h" -#import "SDLStreamingMediaManager.h" -#import "SDLSystemCapabilityManager.h" -#import "SDLTCPTransport.h" -#import "SDLUnregisterAppInterface.h" -#import "SDLVersion.h" -#import "SDLWindowCapability.h" - -NS_ASSUME_NONNULL_BEGIN - -SDLLifecycleState *const SDLLifecycleStateStopped = @"Stopped"; -SDLLifecycleState *const SDLLifecycleStateStarted = @"Started"; -SDLLifecycleState *const SDLLifecycleStateReconnecting = @"Reconnecting"; -SDLLifecycleState *const SDLLifecycleStateConnected = @"Connected"; -SDLLifecycleState *const SDLLifecycleStateRegistered = @"Registered"; -SDLLifecycleState *const SDLLifecycleStateUpdatingConfiguration = @"UpdatingConfiguration"; -SDLLifecycleState *const SDLLifecycleStateSettingUpManagers = @"SettingUpManagers"; -SDLLifecycleState *const SDLLifecycleStateSettingUpAppIcon = @"SettingUpAppIcon"; -SDLLifecycleState *const SDLLifecycleStateSettingUpHMI = @"SettingUpHMI"; -SDLLifecycleState *const SDLLifecycleStateUnregistering = @"Unregistering"; -SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; - -NSString *const BackgroundTaskTransportName = @"com.sdl.transport.backgroundTask"; - -#pragma mark - Protected Class Interfaces -@interface SDLStreamingMediaManager () - -@property (strong, nonatomic, nullable) SDLSecondaryTransportManager *secondaryTransportManager; - -@end - -#pragma mark - SDLLifecycleManager Private Interface - -@interface SDLLifecycleManager () - -// Readonly public properties -@property (copy, nonatomic, readwrite) SDLConfiguration *configuration; -@property (strong, nonatomic, readwrite, nullable) NSString *authToken; -@property (strong, nonatomic, readwrite) SDLNotificationDispatcher *notificationDispatcher; -@property (strong, nonatomic, readwrite) SDLResponseDispatcher *responseDispatcher; -@property (strong, nonatomic, readwrite) SDLStateMachine *lifecycleStateMachine; - -// Private Managers -@property (strong, nonatomic, nullable) SDLSecondaryTransportManager *secondaryTransportManager; -@property (strong, nonatomic) SDLEncryptionLifecycleManager *encryptionLifecycleManager; - -// Private properties -@property (copy, nonatomic) SDLManagerReadyBlock readyHandler; -@property (copy, nonatomic) dispatch_queue_t lifecycleQueue; -@property (assign, nonatomic) int32_t lastCorrelationId; -@property (copy, nonatomic) SDLBackgroundTaskManager *backgroundTaskManager; -@property (strong, nonatomic) SDLLanguage currentVRLanguage; - -// RPC Handlers -@property (strong, nonatomic) SDLLifecycleSyncPDataHandler *syncPDataHandler; -@property (strong, nonatomic) SDLLifecycleSystemRequestHandler *systemRequestHandler; -@property (strong, nonatomic) SDLLifecycleMobileHMIStateHandler *mobileHMIStateHandler; - -// Protocol and Transport -@property (strong, nonatomic, nullable) SDLLifecycleProtocolHandler *protocolHandler; - -@end - - -@implementation SDLLifecycleManager - -#pragma mark Lifecycle - -- (instancetype)init { - return [self initWithConfiguration:[[SDLConfiguration alloc] initWithLifecycle:[SDLLifecycleConfiguration defaultConfigurationWithAppName:@"SDL APP" fullAppId:@"001"] lockScreen:[SDLLockScreenConfiguration enabledConfiguration] logging:[SDLLogConfiguration defaultConfiguration] fileManager:[SDLFileManagerConfiguration defaultConfiguration] encryption:nil] delegate:nil]; -} - -- (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate:(nullable id)delegate { - self = [super init]; - if (!self) { - return nil; - } - - // Dependencies - _configuration = [configuration copy]; - _delegate = delegate; - - // Logging - [SDLLogManager setConfiguration:_configuration.loggingConfig]; - - SDLLogD(@"Initializing Lifecycle Manager"); - SDLLogD(@"SDL iOS Library Version: %@", [NSBundle bundleForClass:self.class].infoDictionary[@"CFBundleShortVersionString"]); - SDLLogD(@"iOS Version: %@", [NSBundle bundleForClass:self.class].infoDictionary[@"DTPlatformVersion"]); - SDLLogD(@"SDK Version: %@", [NSBundle bundleForClass:self.class].infoDictionary[@"DTSDKName"]); - SDLLogD(@"Minimum OS Version: %@", [NSBundle bundleForClass:self.class].infoDictionary[@"MinimumOSVersion"]); - - // Private properties - _lifecycleStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLLifecycleStateStopped states:[self.class sdl_stateTransitionDictionary]]; - _lastCorrelationId = 0; - _notificationDispatcher = [[SDLNotificationDispatcher alloc] init]; - _responseDispatcher = [[SDLResponseDispatcher alloc] initWithNotificationDispatcher:_notificationDispatcher]; - _registerResponse = nil; - - _rpcOperationQueue = [[NSOperationQueue alloc] init]; - _rpcOperationQueue.name = @"com.sdl.lifecycle.rpcOperation.concurrent"; - _rpcOperationQueue.underlyingQueue = [SDLGlobals sharedGlobals].sdlConcurrentQueue; - - if (@available(iOS 10.0, *)) { - _lifecycleQueue = dispatch_queue_create_with_target("com.sdl.lifecycle", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); - } else { - _lifecycleQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; - } - - _currentVRLanguage = _configuration.lifecycleConfig.language; - - // Managers - _fileManager = [[SDLFileManager alloc] initWithConnectionManager:self configuration:_configuration.fileManagerConfig]; - _permissionManager = [[SDLPermissionManager alloc] init]; - _lockScreenManager = [[SDLLockScreenManager alloc] initWithConfiguration:_configuration.lockScreenConfig notificationDispatcher:_notificationDispatcher presenter:[[SDLLockScreenPresenter alloc] init]]; - _systemCapabilityManager = [[SDLSystemCapabilityManager alloc] initWithConnectionManager:self]; - _screenManager = [[SDLScreenManager alloc] initWithConnectionManager:self fileManager:_fileManager systemCapabilityManager:_systemCapabilityManager]; - - if ([self.class sdl_isStreamingConfiguration:self.configuration]) { - _streamManager = [[SDLStreamingMediaManager alloc] initWithConnectionManager:self configuration:configuration systemCapabilityManager:self.systemCapabilityManager]; - } else { - SDLLogV(@"Skipping StreamingMediaManager setup due to app type"); - } - - if (configuration.encryptionConfig.securityManagers != nil) { - _encryptionLifecycleManager = [[SDLEncryptionLifecycleManager alloc] initWithConnectionManager:self configuration:_configuration]; - } - - // RPC Handlers - _syncPDataHandler = [[SDLLifecycleSyncPDataHandler alloc] initWithConnectionManager:self]; - _systemRequestHandler = [[SDLLifecycleSystemRequestHandler alloc] initWithConnectionManager:self]; - _mobileHMIStateHandler = [[SDLLifecycleMobileHMIStateHandler alloc] initWithConnectionManager:self]; - - // Notifications - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_rpcServiceDidConnect) name:SDLRPCServiceDidConnect object:_notificationDispatcher]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_transportDidDisconnect) name:SDLTransportDidDisconnect object:_notificationDispatcher]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hmiStatusDidChange:) name:SDLDidChangeHMIStatusNotification object:_notificationDispatcher]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(remoteHardwareDidUnregister:) name:SDLDidReceiveAppUnregisteredNotification object:_notificationDispatcher]; - - _backgroundTaskManager = [[SDLBackgroundTaskManager alloc] initWithBackgroundTaskName:BackgroundTaskTransportName]; - - return self; -} - -- (void)startWithReadyHandler:(SDLManagerReadyBlock)readyHandler { - [self sdl_runOnProcessingQueue:^{ - [self sdl_startWithReadyHandler:readyHandler]; - }]; -} - -- (void)sdl_startWithReadyHandler:(SDLManagerReadyBlock)readyHandler { - if (![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateStopped]) { - SDLLogW(@"Warning: SDL has already been started, this attempt will be ignored"); - return; - } - - SDLLogD(@"Starting lifecycle manager"); - self.readyHandler = [readyHandler copy]; - - [self sdl_transitionToState:SDLLifecycleStateStarted]; -} - -- (void)stop { - [self sdl_runOnProcessingQueue:^{ - SDLLogD(@"Lifecycle manager stopped"); - if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady]) { - [self sdl_transitionToState:SDLLifecycleStateUnregistering]; - } else { - [self sdl_transitionToState:SDLLifecycleStateStopped]; - } - }]; -} - -- (void)startRPCEncryption { - [self.encryptionLifecycleManager startEncryptionService]; -} - -#pragma mark Getters - -- (SDLState *)lifecycleState { - return self.lifecycleStateMachine.currentState; -} - - -#pragma mark State Machine - -+ (NSDictionary *)sdl_stateTransitionDictionary { - return @{ - SDLLifecycleStateStopped: @[SDLLifecycleStateStarted], - SDLLifecycleStateStarted: @[SDLLifecycleStateConnected, SDLLifecycleStateStopped, SDLLifecycleStateReconnecting], - SDLLifecycleStateReconnecting: @[SDLLifecycleStateStarted, SDLLifecycleStateStopped], - SDLLifecycleStateConnected: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateRegistered], - SDLLifecycleStateRegistered: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateUnregistering, SDLLifecycleStateSettingUpManagers, SDLLifecycleStateUpdatingConfiguration], - SDLLifecycleStateUpdatingConfiguration: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateSettingUpManagers], - SDLLifecycleStateSettingUpManagers: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateSettingUpAppIcon], - SDLLifecycleStateSettingUpAppIcon: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateSettingUpHMI], - SDLLifecycleStateSettingUpHMI: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateReady], - SDLLifecycleStateUnregistering: @[SDLLifecycleStateStopped], - SDLLifecycleStateReady: @[SDLLifecycleStateUnregistering, SDLLifecycleStateStopped, SDLLifecycleStateReconnecting] - }; -} - -- (void)didEnterStateStarted { - // Start a background task so a session can be established even when the app is backgrounded. - [self.backgroundTaskManager startBackgroundTask]; - - // Start up the internal protocol, transport, and other internal managers - self.secondaryTransportManager = nil; - SDLLifecycleConfiguration *lifecycleConfig = self.configuration.lifecycleConfig; - id newTransport = nil; - - if (lifecycleConfig.tcpDebugMode) { - newTransport = [[SDLTCPTransport alloc] initWithHostName:lifecycleConfig.tcpDebugIPAddress portNumber:@(lifecycleConfig.tcpDebugPort).stringValue]; - } else { - newTransport = [[SDLIAPTransport alloc] init]; - - if (self.configuration.lifecycleConfig.allowedSecondaryTransports != SDLSecondaryTransportsNone - && [self.class sdl_isStreamingConfiguration:self.configuration]) { - // Reuse the queue to run the secondary transport manager's state machine - self.secondaryTransportManager = [[SDLSecondaryTransportManager alloc] initWithStreamingProtocolDelegate:(id)self.streamManager serialQueue:self.lifecycleQueue]; - self.streamManager.secondaryTransportManager = self.secondaryTransportManager; - } - } - - SDLProtocol *newProtocol = [[SDLProtocol alloc] initWithTransport:newTransport encryptionManager:self.encryptionLifecycleManager]; - self.protocolHandler = [[SDLLifecycleProtocolHandler alloc] initWithProtocol:newProtocol notificationDispatcher:self.notificationDispatcher configuration:self.configuration]; - [self.protocolHandler start]; - - [self.secondaryTransportManager startWithPrimaryProtocol:self.protocolHandler.protocol]; // Will not run if secondaryTransportManager is nil -} - -- (void)didEnterStateStopped { - [self sdl_stopManager:NO]; -} - -- (void)didEnterStateReconnecting { - [self sdl_stopManager:YES]; -} - -/// Shuts down the all the managers used to manage the lifecycle of the SDL app after the connection between the phone and SDL enabled accessory has closed. If a restart is desired, attempt to start looking for another SDL enabled accessory. If no restart is desired, another connection will not be made with a SDL enabled accessory during the current app session -/// @param shouldRestart Whether or not to start looking for another SDL enabled accessory. -- (void)sdl_stopManager:(BOOL)shouldRestart { - SDLLogV(@"Stopping manager, %@", (shouldRestart ? @"will restart" : @"will not restart")); - - dispatch_group_t stopManagersTask = dispatch_group_create(); - dispatch_group_enter(stopManagersTask); - - if (self.protocolHandler != nil) { - dispatch_group_enter(stopManagersTask); - [self.protocolHandler stopWithCompletionHandler:^{ - dispatch_group_leave(stopManagersTask); - }]; - } - if (self.secondaryTransportManager != nil) { - dispatch_group_enter(stopManagersTask); - [self.secondaryTransportManager stopWithCompletionHandler:^{ - dispatch_group_leave(stopManagersTask); - }]; - } - - dispatch_group_leave(stopManagersTask); - - // This will always run after all `leave`s - __weak typeof(self) weakSelf = self; - dispatch_group_notify(stopManagersTask, [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - [strongSelf sdl_stopManagersAndRestart:shouldRestart]; - }); -} - -/// Helper method for shutting down the remaining managers that do not need extra time to shutdown. Once all the managers have been shutdown, attempt to start looking for another SDL enabled accessory. -/// @param shouldRestart Whether or not to start looking for another SDL enabled accessory. -- (void)sdl_stopManagersAndRestart:(BOOL)shouldRestart { - [self.fileManager stop]; - [self.permissionManager stop]; - [self.lockScreenManager stop]; - [self.screenManager stop]; - [self.encryptionLifecycleManager stop]; - [self.streamManager stop]; - [self.systemCapabilityManager stop]; - [self.responseDispatcher clear]; - - [self.rpcOperationQueue cancelAllOperations]; - - [self.syncPDataHandler stop]; - [self.systemRequestHandler stop]; - [self.mobileHMIStateHandler stop]; - - self.registerResponse = nil; - self.lastCorrelationId = 0; - self.hmiLevel = nil; - self.audioStreamingState = nil; - self.videoStreamingState = nil; - self.systemContext = nil; - - // Due to a race condition internally with EAStream, we cannot immediately attempt to restart the proxy, as we will randomly crash. - // Apple Bug ID #30059457 - __weak typeof(self) weakSelf = self; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), self.lifecycleQueue, ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - if (!strongSelf) { return; } - - [strongSelf.delegate managerDidDisconnect]; - - if (shouldRestart) { - [strongSelf sdl_transitionToState:SDLLifecycleStateStarted]; - } else { - // End the background task because a session will not be established - [strongSelf.backgroundTaskManager endBackgroundTask]; - } - }); -} - -- (void)didEnterStateConnected { - // If the negotiated protocol version is greater than the minimum allowable version, we need to end service and disconnect - if ([self.configuration.lifecycleConfig.minimumProtocolVersion isGreaterThanVersion:[SDLGlobals sharedGlobals].protocolVersion]) { - SDLLogW(@"Disconnecting from head unit, protocol version %@ is less than configured minimum version %@", [SDLGlobals sharedGlobals].protocolVersion.stringVersion, self.configuration.lifecycleConfig.minimumProtocolVersion.stringVersion); - [self.protocolHandler.protocol endServiceWithType:SDLServiceTypeRPC]; - [self sdl_transitionToState:SDLLifecycleStateStopped]; - return; - } - - // Build a register app interface request with the configuration data - SDLRegisterAppInterface *regRequest = [[SDLRegisterAppInterface alloc] initWithLifecycleConfiguration:self.configuration.lifecycleConfig]; - - // Send the request and depending on the response, post the notification - __weak typeof(self) weakSelf = self; - [self sendConnectionManagerRequest:regRequest withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { - // If the success BOOL is NO or we received an error at this point, we failed. Call the ready handler and transition to the DISCONNECTED state. - if (error != nil || ![response.success boolValue]) { - SDLLogE(@"Failed to register the app. Error: %@, Response: %@", error, response); - if (weakSelf.readyHandler) { - weakSelf.readyHandler(NO, error); - } - - if (weakSelf.lifecycleState != SDLLifecycleStateReconnecting) { - [weakSelf sdl_transitionToState:SDLLifecycleStateStopped]; - } - - return; - } - - weakSelf.registerResponse = (SDLRegisterAppInterfaceResponse *)response; - [SDLGlobals sharedGlobals].rpcVersion = [SDLVersion versionWithSDLMsgVersion:weakSelf.registerResponse.sdlMsgVersion]; - [weakSelf sdl_transitionToState:SDLLifecycleStateRegistered]; - }]; -} - -- (void)didEnterStateRegistered { - // If the negotiated RPC version is greater than the minimum allowable version, we need to unregister and disconnect - if ([self.configuration.lifecycleConfig.minimumRPCVersion isGreaterThanVersion:[SDLGlobals sharedGlobals].rpcVersion]) { - SDLLogW(@"Disconnecting from head unit, RPC version %@ is less than configured minimum version %@", [SDLGlobals sharedGlobals].rpcVersion.stringVersion, self.configuration.lifecycleConfig.minimumRPCVersion.stringVersion); - [self sdl_transitionToState:SDLLifecycleStateUnregistering]; - return; - } - - NSArray *supportedLanguages = self.configuration.lifecycleConfig.languagesSupported; - SDLLanguage desiredHMILanguage = self.configuration.lifecycleConfig.language; - SDLLanguage desiredVRLanguage = self.currentVRLanguage; - - SDLLanguage actualHMILanguage = self.registerResponse.hmiDisplayLanguage; - SDLLanguage actualVRLanguage = self.registerResponse.language; - - BOOL oldDelegateCanUpdateLifecycle = [self.delegate respondsToSelector:@selector(managerShouldUpdateLifecycleToLanguage:)]; - BOOL delegateCanUpdateLifecycle = [self.delegate respondsToSelector:@selector(managerShouldUpdateLifecycleToLanguage:hmiLanguage:)]; - - // language mismatch? but actual language is a supported language? and delegate has implemented method? - if ((delegateCanUpdateLifecycle || oldDelegateCanUpdateLifecycle) - && ([supportedLanguages containsObject:actualHMILanguage] || [supportedLanguages containsObject:actualVRLanguage]) - && (![actualHMILanguage isEqualToEnum:desiredHMILanguage] || ![actualVRLanguage isEqualToEnum:desiredVRLanguage])) { - // If the delegate is implemented, AND the new HMI / VR language is a supported language, AND the new HMI / VR language is not the current language, THEN go to the updating configuration state and see if the dev wants to change the registration. - [self sdl_transitionToState:SDLLifecycleStateUpdatingConfiguration]; - } else { - [self sdl_transitionToState:SDLLifecycleStateSettingUpManagers]; - } -} - -- (void)didEnterStateUpdatingConfiguration { - // We can expect that the delegate has implemented the update method and the actual language is a supported language - SDLLanguage actualHMILanguage = self.registerResponse.hmiDisplayLanguage; - SDLLanguage actualLanguage = self.registerResponse.language; - SDLLogD(@"Updating configuration due to language mismatch. New language: %@, new hmiLanguage: %@", actualLanguage, actualHMILanguage); - - SDLLifecycleConfigurationUpdate *configUpdate = nil; - BOOL supportsNewDelegate = [self.delegate respondsToSelector:@selector(managerShouldUpdateLifecycleToLanguage:hmiLanguage:)]; - BOOL supportsOldDelegate = [self.delegate respondsToSelector:@selector(managerShouldUpdateLifecycleToLanguage:)]; - if (supportsNewDelegate) { - configUpdate = [self.delegate managerShouldUpdateLifecycleToLanguage:actualLanguage hmiLanguage:actualHMILanguage]; - } else if (supportsOldDelegate) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - configUpdate = [self.delegate managerShouldUpdateLifecycleToLanguage:actualLanguage]; -#pragma clang diagnostic pop - } - - if (configUpdate) { - self.configuration.lifecycleConfig.language = actualHMILanguage; - self.currentVRLanguage = actualLanguage; - if (configUpdate.appName) { - self.configuration.lifecycleConfig.appName = configUpdate.appName; - } - if (configUpdate.shortAppName) { - self.configuration.lifecycleConfig.shortAppName = configUpdate.shortAppName; - } - if (configUpdate.ttsName) { - self.configuration.lifecycleConfig.ttsName = configUpdate.ttsName; - } - if (configUpdate.voiceRecognitionCommandNames) { - self.configuration.lifecycleConfig.voiceRecognitionCommandNames = configUpdate.voiceRecognitionCommandNames; - } - - SDLChangeRegistration *changeRegistration = [[SDLChangeRegistration alloc] initWithLanguage:actualLanguage hmiDisplayLanguage:actualHMILanguage]; - changeRegistration.appName = configUpdate.appName; - changeRegistration.ngnMediaScreenAppName = configUpdate.shortAppName; - changeRegistration.ttsName = configUpdate.ttsName; - changeRegistration.vrSynonyms = configUpdate.voiceRecognitionCommandNames; - - [self sendConnectionManagerRequest:changeRegistration withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error != nil) { - SDLLogW(@"Failed to update language with change registration. Request: %@, Response: %@, error: %@", request, response, error); - return; - } - - SDLLogD(@"Successfully updated language with change registration. Request sent: %@", request); - }]; - } - - [self sdl_transitionToState:SDLLifecycleStateSettingUpManagers]; -} - -- (void)didEnterStateSettingUpManagers { - dispatch_group_t managerGroup = dispatch_group_create(); - - // Make sure there's at least one group_enter until we have synchronously run through all the startup calls - dispatch_group_enter(managerGroup); - SDLLogD(@"Setting up assistant managers"); - [self.lockScreenManager start]; - [self.systemCapabilityManager start]; - - dispatch_group_enter(managerGroup); - [self.fileManager startWithCompletionHandler:^(BOOL success, NSError *_Nullable error) { - if (!success) { - SDLLogW(@"File manager was unable to start; error: %@", error); - } - - dispatch_group_leave(managerGroup); - }]; - - dispatch_group_enter(managerGroup); - [self.permissionManager startWithCompletionHandler:^(BOOL success, NSError *_Nullable error) { - if (!success) { - SDLLogW(@"Permission manager was unable to start; error: %@", error); - } - - dispatch_group_leave(managerGroup); - }]; - - if (self.encryptionLifecycleManager != nil) { - [self.encryptionLifecycleManager startWithProtocol:self.protocolHandler.protocol]; - } - - // Starts the streaming media manager if only using the primary transport (i.e. secondary transports has been disabled in the lifecyle configuration). If using a secondary transport, setup is handled by the stream manager. - if (self.secondaryTransportManager == nil && self.streamManager != nil) { - [self.streamManager startWithProtocol:self.protocolHandler.protocol]; - } - - dispatch_group_enter(managerGroup); - [self.screenManager startWithCompletionHandler:^(NSError * _Nullable error) { - if (error != nil) { - SDLLogW(@"Screen Manager was unable to start; error: %@", error); - } - - dispatch_group_leave(managerGroup); - }]; - - // We're done synchronously calling all startup methods, so we can now wait. - dispatch_group_leave(managerGroup); - - // When done, we want to transition, even if there were errors. They may be expected, e.g. on head units that do not support files. - dispatch_group_notify(managerGroup, self.lifecycleQueue, ^{ - // We could have been shut down while waiting for the completion of starting file manager and permission manager. - if (self.lifecycleState == SDLLifecycleStateSettingUpManagers) { - [self sdl_transitionToState:SDLLifecycleStateSettingUpAppIcon]; - } - }); -} - -- (void)didEnterStateSettingUpAppIcon { - if (self.registerResponse.iconResumed.boolValue) { - [self sdl_transitionToState:SDLLifecycleStateSettingUpHMI]; - return; - } - - // We only want to send the app icon when the file manager is complete, and when that's done, wait for hmi status to be ready - __weak typeof(self) weakself = self; - [self sdl_sendAppIcon:self.configuration.lifecycleConfig.appIcon withCompletion:^() { - dispatch_async(weakself.lifecycleQueue, ^{ - // We could have been shut down while setting up the app icon, make sure we still want to continue or we could crash - if (weakself.lifecycleState == SDLLifecycleStateSettingUpAppIcon) { - [weakself sdl_transitionToState:SDLLifecycleStateSettingUpHMI]; - } - }); - }]; -} - -- (void)didEnterStateSettingUpHMI { - // We want to make sure we've gotten a SDLOnHMIStatus notification - if (self.hmiLevel == nil) { - // If nil, return and wait until we get a notification - return; - } - - // We are sure to have a HMIStatus, set state to ready - [self sdl_transitionToState:SDLLifecycleStateReady]; -} - -- (void)didEnterStateReady { - SDLResult registerResult = self.registerResponse.resultCode; - NSString *registerInfo = self.registerResponse.info; - NSError *startError = nil; - - // If the resultCode isn't success, we got a warning. Errors were handled in `didEnterStateConnected`. - if (![registerResult isEqualToEnum:SDLResultSuccess]) { - startError = [NSError sdl_lifecycle_startedWithWarning:registerResult info:registerInfo]; - } - - // If we got to this point, we succeeded, send the error if there was a warning. - self.readyHandler(YES, startError); - - [self.notificationDispatcher postNotificationName:SDLDidBecomeReady infoObject:nil]; - - // Send the hmi level going from NONE to whatever we're at now (could still be NONE) - [self.delegate hmiLevel:SDLHMILevelNone didChangeToLevel:self.hmiLevel]; - - // Send the audio streaming state going from NOT_AUDIBLE to whatever we're at now (could still be NOT_AUDIBLE) - if ([self.delegate respondsToSelector:@selector(audioStreamingState:didChangeToState:)]) { - [self.delegate audioStreamingState:SDLAudioStreamingStateNotAudible didChangeToState:self.audioStreamingState]; - } - - if ([self.delegate respondsToSelector:@selector(videoStreamingState:didChangetoState:)]) { - [self.delegate videoStreamingState:SDLVideoStreamingStateNotStreamable didChangetoState:self.videoStreamingState]; - } - - // Stop the background task now that setup has completed - [self.backgroundTaskManager endBackgroundTask]; -} - -- (void)didEnterStateUnregistering { - SDLUnregisterAppInterface *unregisterRequest = [[SDLUnregisterAppInterface alloc] init]; - - __weak typeof(self) weakSelf = self; - [self sdl_sendConnectionRequest:unregisterRequest - withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { - if (error != nil || ![response.success boolValue]) { - SDLLogE(@"SDL Error unregistering, we are going to hard disconnect: %@, response: %@", error, response); - } - - [weakSelf sdl_transitionToState:SDLLifecycleStateStopped]; - }]; -} - - -#pragma mark Post Manager Setup Processing - -- (void)sdl_sendAppIcon:(nullable SDLFile *)appIcon withCompletion:(void (^)(void))completion { - // If no app icon was set, just move on to ready -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated" - if (appIcon == nil || ![self.systemCapabilityManager.defaultMainWindowCapability.imageTypeSupported containsObject:SDLImageTypeDynamic]) { - completion(); - return; - } -#pragma clang diagnostic pop - - [self.fileManager uploadFile:appIcon completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError *_Nullable error) { - // These errors could be recoverable (particularly "cannot overwrite"), so we'll still attempt to set the app icon - if (error != nil) { - if (error.code == SDLFileManagerErrorCannotOverwrite) { - SDLLogW(@"Failed to upload app icon: A file with this name already exists on the system"); - } else { - SDLLogW(@"Unexpected error uploading app icon: %@", error); - completion(); - return; - } - } - - // Once we've tried to put the file on the remote system, try to set the app icon - SDLSetAppIcon *setAppIcon = [[SDLSetAppIcon alloc] init]; - setAppIcon.syncFileName = appIcon.name; - - [self sendConnectionManagerRequest:setAppIcon - withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { - if (error != nil) { - SDLLogW(@"Error setting up app icon: %@", error); - } - - // We've succeeded or failed - completion(); - }]; - }]; -} - - -#pragma mark Sending Requests - -- (void)sendRPC:(__kindof SDLRPCMessage *)rpc { - if ([rpc isKindOfClass:SDLRPCRequest.class]) { - SDLRPCRequest *requestRPC = (SDLRPCRequest *)rpc; - [self sendRequest:requestRPC withResponseHandler:nil]; - } else if ([rpc isKindOfClass:SDLRPCResponse.class] || [rpc isKindOfClass:SDLRPCNotification.class]) { - [self sdl_sendRPC:rpc]; - } else { - NSAssert(false, @"The request should be of type `Request`, `Response` or `Notification"); - } -} - -- (void)sdl_sendRPC:(__kindof SDLRPCMessage *)rpc { - SDLAsynchronousRPCOperation *op = [[SDLAsynchronousRPCOperation alloc] initWithConnectionManager:self rpc:rpc]; - [self.rpcOperationQueue addOperation:op]; -} - -- (void)sendRequest:(SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { - SDLAsynchronousRPCRequestOperation *op = [[SDLAsynchronousRPCRequestOperation alloc] initWithConnectionManager:self request:request responseHandler:handler]; - [self.rpcOperationQueue addOperation:op]; -} - -- (void)sendRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler { - if (requests.count == 0) { - completionHandler(YES); - return; - } - - SDLAsynchronousRPCRequestOperation *op = [[SDLAsynchronousRPCRequestOperation alloc] initWithConnectionManager:self requests:requests progressHandler:progressHandler completionHandler:completionHandler]; - [self.rpcOperationQueue addOperation:op]; -} - -- (void)sendSequentialRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler { - if (requests.count == 0) { - completionHandler(YES); - return; - } - - SDLSequentialRPCRequestOperation *op = [[SDLSequentialRPCRequestOperation alloc] initWithConnectionManager:self requests:requests progressHandler:progressHandler completionHandler:completionHandler]; - [self.rpcOperationQueue addOperation:op]; -} - -/// Send a request immediately without going through the RPC operation queue -/// @param rpc The RPC to send -- (void)sendConnectionRPC:(__kindof SDLRPCMessage *)rpc { - NSAssert(([rpc isKindOfClass:SDLRPCResponse.class] || [rpc isKindOfClass:SDLRPCNotification.class]), @"Only RPCs of type `Response` or `Notfication` can be sent using this method. To send RPCs of type `Request` use sendConnectionRequest:withResponseHandler:."); - - if (![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady]) { - SDLLogW(@"Manager not ready, message not sent (%@)", rpc); - return; - } - - [self sdl_runOnProcessingQueue:^{ - [self sdl_sendConnectionRequest:rpc withResponseHandler:nil]; - }]; -} - -/// Send a non-request RPC immediately without going through the RPC operation queue, and allow requests to be sent before the managers have completed setup. -/// @param rpc The RPC to send -- (void)sendConnectionManagerRPC:(__kindof SDLRPCMessage *)rpc { - NSAssert(([rpc isKindOfClass:SDLRPCResponse.class] || [rpc isKindOfClass:SDLRPCNotification.class]), @"Only RPCs of type `Response` or `Notfication` can be sent using this method. To send RPCs of type `Request` use sendConnectionRequest:withResponseHandler:."); - - [self sdl_runOnProcessingQueue:^{ - [self sdl_sendConnectionRequest:rpc withResponseHandler:nil]; - }]; -} - -/// Send a request immediately without going through the RPC operation queue -/// @param request The request to send -/// @param handler A callback handler for responses to the request -- (void)sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { - if (![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady]) { - SDLLogW(@"Manager not ready, request not sent (%@)", request); - if (handler) { - handler(request, nil, [NSError sdl_lifecycle_notReadyError]); - } - - return; - } - - if (!request.isPayloadProtected && [self.encryptionLifecycleManager rpcRequiresEncryption:request]) { - request.payloadProtected = YES; - } - - if (request.isPayloadProtected && !self.encryptionLifecycleManager.isEncryptionReady) { - SDLLogW(@"Encryption Manager not ready, request not sent (%@)", request); - if (handler) { - handler(request, nil, [NSError sdl_encryption_lifecycle_notReadyError]); - } - - return; - } - - [self sdl_runOnProcessingQueue:^{ - [self sdl_sendConnectionRequest:request withResponseHandler:handler]; - }]; -} - -/// Send a request immediately without going through the RPC operation queue, and allow requests to be sent before the managers have completed setup. -/// @param request The request to send -/// @param handler A callback handler for responses to the request -- (void)sendConnectionManagerRequest:(__kindof SDLRPCMessage *)request withResponseHandler:(nullable SDLResponseHandler)handler { - [self sdl_runOnProcessingQueue:^{ - [self sdl_sendConnectionRequest:request withResponseHandler:handler]; - }]; -} - -/// Send a request by sending it directly through the protocol, without going through the RPC operation queue -/// @param request The request to send -/// @param handler A callback handler for responses to the request -- (void)sdl_sendConnectionRequest:(__kindof SDLRPCMessage *)request withResponseHandler:(nullable SDLResponseHandler)handler { - // We will allow things to be sent in a "SDLLifecycleStateConnected" state in the private method, but block it in the public method sendRequest:withCompletionHandler: so that the lifecycle manager can complete its setup without being bothered by developer error - NSParameterAssert(request != nil); - - // If, for some reason, the request is nil we should error out. - if (request == nil) { - NSError *error = [NSError sdl_lifecycle_rpcErrorWithDescription:@"Nil Request Sent" andReason:@"A nil RPC request was passed and cannot be sent."]; - SDLLogW(@"%@", error); - if (handler) { - handler(nil, nil, error); - } - return; - } - - // Before we send a message, we have to check if we need to adapt the RPC. When adapting the RPC, there could be multiple RPCs that need to be sent. - NSArray *messages = [SDLLifecycleRPCAdapter adaptRPC:request direction:SDLRPCDirectionOutgoing]; - for (SDLRPCMessage *message in messages) { - if ([request isKindOfClass:SDLRPCRequest.class]) { - // Generate and add a correlation ID to the request. When a response for the request is returned from Core, it will have the same correlation ID - SDLRPCRequest *requestRPC = (SDLRPCRequest *)message; - NSNumber *corrID = [self sdl_getNextCorrelationId]; - requestRPC.correlationID = corrID; - [self.responseDispatcher storeRequest:requestRPC handler:handler]; - [self.protocolHandler.protocol sendRPC:requestRPC]; - } else if ([request isKindOfClass:SDLRPCResponse.class] || [request isKindOfClass:SDLRPCNotification.class]) { - [self.protocolHandler.protocol sendRPC:message]; - } else { - SDLLogE(@"Will not send an RPC with unknown type, %@. The request should be of type SDLRPCRequest, SDLRPCResponse, or SDLRPCNotification.", request.class); - } - } -} - -#pragma mark Helper Methods - -/// Returns true if the app type set in the configuration is `NAVIGATION` or `PROJECTION`; false for any other app type. -/// @param configuration This session's configuration -+ (BOOL)sdl_isStreamingConfiguration:(SDLConfiguration *)configuration { - if ([configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeNavigation] || - [configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeProjection] || - [configuration.lifecycleConfig.additionalAppTypes containsObject:SDLAppHMITypeNavigation] || - [configuration.lifecycleConfig.additionalAppTypes containsObject:SDLAppHMITypeProjection]) { - return YES; - } - - return NO; -} - -- (NSNumber *)sdl_getNextCorrelationId { - if (self.lastCorrelationId == INT32_MAX) { - self.lastCorrelationId = 0; - } - - return @(++self.lastCorrelationId); -} - -+ (BOOL)sdl_checkNotification:(NSNotification *)notification containsKindOfClass:(Class) class { - NSAssert([notification.userInfo[SDLNotificationUserInfoObject] isKindOfClass:class], @"A notification was sent with an unanticipated object"); - if (![notification.userInfo[SDLNotificationUserInfoObject] isKindOfClass:class]) { - return NO; - } - - return YES; -} - -// this is to make sure that the transition happens on the dedicated queue -- (void)sdl_runOnProcessingQueue:(void (^)(void))block { - if (dispatch_get_specific(SDLProcessingQueueName) != nil) { - block(); - } else { - dispatch_sync(self.lifecycleQueue, block); - } -} - -- (void)sdl_transitionToState:(SDLState *)state { - [self sdl_runOnProcessingQueue:^{ - [self.lifecycleStateMachine transitionToState:state]; - }]; -} - -/** - * Gets the authentication token returned by the `StartServiceACK` header - * - * @return An authentication token - */ -- (nullable NSString *)authToken { - return self.protocolHandler.protocol.authToken; -} - -#pragma mark SDL notification observers - -- (void)sdl_rpcServiceDidConnect { - // Ignore the connection while we are reconnecting. The proxy needs to be disposed and restarted in order to ensure correct state. https://github.com/smartdevicelink/sdl_ios/issues/1172 - if (![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady] - && ![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReconnecting]) { - SDLLogD(@"Transport connected"); - - dispatch_async(self.lifecycleQueue, ^{ - [self sdl_transitionToState:SDLLifecycleStateConnected]; - }); - } -} - -- (void)sdl_transportDidDisconnect { - SDLLogD(@"Transport Disconnected"); - - [self sdl_runOnProcessingQueue:^{ - if (self.lifecycleState == SDLLifecycleStateUnregistering || self.lifecycleState == SDLLifecycleStateStopped) { - [self sdl_transitionToState:SDLLifecycleStateStopped]; - } else { - [self sdl_transitionToState:SDLLifecycleStateReconnecting]; - } - }]; -} - -- (void)hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { - [self sdl_runOnProcessingQueue:^{ - [self sdl_hmiStatusDidChange:notification]; - }]; -} - -- (void)sdl_hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { - if (![notification isNotificationMemberOfClass:[SDLOnHMIStatus class]]) { - return; - } - - SDLOnHMIStatus *hmiStatusNotification = notification.notification; - - if (hmiStatusNotification.windowID != nil && hmiStatusNotification.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { - return; - } - - SDLHMILevel oldHMILevel = self.hmiLevel; - self.hmiLevel = hmiStatusNotification.hmiLevel; - - SDLAudioStreamingState oldAudioStreamingState = self.audioStreamingState; - self.audioStreamingState = hmiStatusNotification.audioStreamingState; - - SDLVideoStreamingState oldVideoStreamingState = self.videoStreamingState; - self.videoStreamingState = hmiStatusNotification.videoStreamingState; - - SDLSystemContext oldSystemContext = self.systemContext; - self.systemContext = hmiStatusNotification.systemContext; - - if (![oldHMILevel isEqualToEnum:self.hmiLevel]) { - SDLLogD(@"HMI level changed from %@ to %@", oldHMILevel, self.hmiLevel); - } - - if (![oldAudioStreamingState isEqualToEnum:self.audioStreamingState]) { - SDLLogD(@"Audio streaming state changed from %@ to %@", oldAudioStreamingState, self.audioStreamingState); - } - - if (![oldVideoStreamingState isEqualToEnum:self.videoStreamingState]) { - SDLLogD(@"Video streaming state changed from %@ to %@", oldVideoStreamingState, self.videoStreamingState); - } - - if (![oldSystemContext isEqualToEnum:self.systemContext]) { - SDLLogD(@"System context changed from %@ to %@", oldSystemContext, self.systemContext); - } - - if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateSettingUpHMI]) { - [self sdl_transitionToState:SDLLifecycleStateReady]; - } - - if (![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady]) { - return; - } - - if (![oldHMILevel isEqualToEnum:self.hmiLevel] - && !(oldHMILevel == nil && self.hmiLevel == nil)) { - [self.delegate hmiLevel:oldHMILevel didChangeToLevel:self.hmiLevel]; - } - - if (![oldAudioStreamingState isEqualToEnum:self.audioStreamingState] - && !(oldAudioStreamingState == nil && self.audioStreamingState == nil) - && [self.delegate respondsToSelector:@selector(audioStreamingState:didChangeToState:)]) { - [self.delegate audioStreamingState:oldAudioStreamingState didChangeToState:self.audioStreamingState]; - } - - if (![oldVideoStreamingState isEqualToEnum:self.videoStreamingState] - && !(oldVideoStreamingState == nil && self.videoStreamingState == nil) - && [self.delegate respondsToSelector:@selector(videoStreamingState:didChangetoState:)]) { - [self.delegate videoStreamingState:oldVideoStreamingState didChangetoState:self.videoStreamingState]; - } - - if (![oldSystemContext isEqualToEnum:self.systemContext] - && !(oldSystemContext == nil && self.systemContext == nil) - && [self.delegate respondsToSelector:@selector(systemContext:didChangeToContext:)]) { - [self.delegate systemContext:oldSystemContext didChangeToContext:self.systemContext]; - } -} - -- (void)remoteHardwareDidUnregister:(SDLRPCNotificationNotification *)notification { - [self sdl_runOnProcessingQueue:^{ - [self sdl_remoteHardwareDidUnregister:notification]; - }]; -} - -- (void)sdl_remoteHardwareDidUnregister:(SDLRPCNotificationNotification *)notification { - if (![notification isNotificationMemberOfClass:[SDLOnAppInterfaceUnregistered class]]) { - return; - } - - SDLOnAppInterfaceUnregistered *appUnregisteredNotification = notification.notification; - SDLLogE(@"Remote Device forced unregistration for reason: %@", appUnregisteredNotification.reason); - - if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateUnregistering]) { - [self sdl_transitionToState:SDLLifecycleStateStopped]; - } else if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateStopped]) { - return; - } else if (appUnregisteredNotification.reason != nil - && ([appUnregisteredNotification.reason isEqualToEnum:SDLAppInterfaceUnregisteredReasonAppUnauthorized] - || [appUnregisteredNotification.reason isEqualToEnum:SDLAppInterfaceUnregisteredReasonProtocolViolation])) { - [self sdl_transitionToState:SDLLifecycleStateStopped]; - } else { - [self sdl_transitionToState:SDLLifecycleStateReconnecting]; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.h deleted file mode 100644 index 0463995..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// SDLLifecycleMobileHMIStateHandler.h -// SmartDeviceLink -// -// Created by Joel Fischer on 6/9/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLifecycleMobileHMIStateHandler : NSObject - -- (instancetype)init NS_UNAVAILABLE; - -/// Initialize the object -/// @param connectionManager The connection manager to send RPCs -- (instancetype)initWithConnectionManager:(id)connectionManager; - -/// Stops the manager from checking for app background / foreground notifications. -- (void)stop; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.m deleted file mode 100644 index 5a9be25..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleMobileHMIStateHandler.m +++ /dev/null @@ -1,94 +0,0 @@ -// -// SDLLifecycleMobileHMIStateHandler.m -// SmartDeviceLink -// -// Created by Joel Fischer on 6/9/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLifecycleMobileHMIStateHandler.h" - -#import "SDLConnectionManagerType.h" -#import "SDLLogMacros.h" -#import "SDLNotificationConstants.h" -#import "SDLOnHMIStatus.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLRPCResponseNotification.h" -#import "SDLMsgVersion.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLifecycleMobileHMIStateHandler () - -@property (weak, nonatomic) id connectionManager; - -@end - -@implementation SDLLifecycleMobileHMIStateHandler - -- (instancetype)initWithConnectionManager:(id)connectionManager { - self = [super init]; - if (!self) { return nil; } - - _connectionManager = connectionManager; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(registerResponseReceived:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; - - return self; -} - -- (void)stop { - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil]; -} - -/// This method sends an OnHMIStatus with the Mobile's HMI level to the head unit. -/// This was originally designed to make sure that the head unit properly knew about the mobile app's ability to run timers in the background, which affected heartbeat. -/// It may still affect some features on the head unit and the ability for the head unit to know which app is in the foreground is useful. It should not be removed due to unknown backward compatibility issues. -- (void)sdl_sendMobileHMIState { - __block UIApplicationState appState = UIApplicationStateInactive; - if ([NSThread isMainThread]) { - appState = [UIApplication sharedApplication].applicationState; - } else { - dispatch_sync(dispatch_get_main_queue(), ^{ - appState = [UIApplication sharedApplication].applicationState; - }); - } - - SDLOnHMIStatus *hmiStatus = [[SDLOnHMIStatus alloc] init]; - hmiStatus.audioStreamingState = SDLAudioStreamingStateNotAudible; - hmiStatus.systemContext = SDLSystemContextMain; - - switch (appState) { - case UIApplicationStateActive: { - hmiStatus.hmiLevel = SDLHMILevelFull; - } break; - case UIApplicationStateBackground: // Fallthrough - case UIApplicationStateInactive: { - hmiStatus.hmiLevel = SDLHMILevelBackground; - } break; - default: break; - } - - SDLLogD(@"Mobile UIApplication state changed, sending to remote system: %@", hmiStatus.hmiLevel); - [self.connectionManager sendConnectionManagerRPC:hmiStatus]; -} - -#pragma mark - Actions - -- (void)registerResponseReceived:(SDLRPCResponseNotification *)notification { - SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response; - - if (response.sdlMsgVersion.majorVersion.unsignedIntegerValue >= 4) { - [self sdl_sendMobileHMIState]; - // Send SDL updates to application state - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_sendMobileHMIState) name:UIApplicationDidBecomeActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_sendMobileHMIState) name:UIApplicationDidEnterBackgroundNotification object:nil]; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.h deleted file mode 100644 index f39964e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// SDLProtocolDelegateHandler.h -// SmartDeviceLink -// -// Created by Joel Fischer on 6/10/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLProtocolDelegate.h" - -@class SDLConfiguration; -@class SDLNotificationDispatcher; -@class SDLProtocol; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLifecycleProtocolHandler : NSObject - -@property (strong, nonatomic) SDLProtocol *protocol; - -/// Initialize the object -/// @param protocol A protocol to receive protocol messages from and to send RPC data to -/// @param notificationDispatcher A notification dispatcher to send notifications through -/// @param configuration The configuration to use pass the app id to the protocol -- (instancetype)initWithProtocol:(SDLProtocol *)protocol notificationDispatcher:(SDLNotificationDispatcher *)notificationDispatcher configuration:(SDLConfiguration *)configuration; - -/// Starts the manager and the underlying protocol. -- (void)start; - -/// Stops the manager and the underlying protocol, which disconnects the underlying transport -/// @param disconnectCompletionHandler A handler called when the transport finishes its disconnection -- (void)stopWithCompletionHandler:(void (^)(void))disconnectCompletionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.m deleted file mode 100644 index d517e89..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleProtocolHandler.m +++ /dev/null @@ -1,200 +0,0 @@ -// -// SDLProtocolDelegateHandler.m -// SmartDeviceLink -// -// Created by Joel Fischer on 6/10/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLLifecycleProtocolHandler.h" - -#import "SDLConfiguration.h" -#import "SDLControlFramePayloadRPCStartService.h" -#import "SDLError.h" -#import "SDLGlobals.h" -#import "SDLLifecycleConfiguration.h" -#import "SDLLifecycleRPCAdapter.h" -#import "SDLLogMacros.h" -#import "SDLNotificationConstants.h" -#import "SDLNotificationDispatcher.h" -#import "SDLProtocol.h" -#import "SDLProtocolHeader.h" -#import "SDLProtocolMessage.h" -#import "SDLRPCFunctionNames.h" -#import "SDLRPCMessage.h" -#import "SDLRPCMessageType.h" -#import "SDLTimer.h" - -static const float StartSessionTime = 10.0; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLifecycleProtocolHandler () - -@property (weak, nonatomic) SDLNotificationDispatcher *notificationDispatcher; - -@property (strong, nonatomic) SDLTimer *rpcStartServiceTimeoutTimer; -@property (copy, nonatomic) NSString *appId; - -@end - -@implementation SDLLifecycleProtocolHandler - -- (instancetype)initWithProtocol:(SDLProtocol *)protocol notificationDispatcher:(SDLNotificationDispatcher *)notificationDispatcher configuration:(SDLConfiguration *)configuration { - self = [super init]; - if (!self) { return nil; } - - _protocol = protocol; - _notificationDispatcher = notificationDispatcher; - - _appId = configuration.lifecycleConfig.fullAppId ? configuration.lifecycleConfig.fullAppId : configuration.lifecycleConfig.appId; - _protocol.appId = _appId; - - [_protocol.protocolDelegateTable addObject:self]; - - return self; -} - -- (void)start { - [self.protocol start]; -} - -- (void)stopWithCompletionHandler:(void (^)(void))disconnectCompletionHandler { - [self.protocol stopWithCompletionHandler:^{ - disconnectCompletionHandler(); - }]; -} - - -#pragma mark - SDLProtocolDelegate - -/// Called when the transport is opened. We will send the RPC Start Service and wait for the RPC Start Service ACK -- (void)onProtocolOpened { - SDLLogD(@"Transport opened, sending an RPC Start Service, and starting timer for RPC Start Service ACK to be received."); - [self.notificationDispatcher postNotificationName:SDLTransportDidConnect infoObject:nil]; - - SDLControlFramePayloadRPCStartService *startServicePayload = [[SDLControlFramePayloadRPCStartService alloc] initWithVersion:SDLMaxProxyProtocolVersion]; - [self.protocol startServiceWithType:SDLServiceTypeRPC payload:startServicePayload.data]; - - if (self.rpcStartServiceTimeoutTimer == nil) { - self.rpcStartServiceTimeoutTimer = [[SDLTimer alloc] initWithDuration:StartSessionTime repeat:NO]; - __weak typeof(self) weakSelf = self; - self.rpcStartServiceTimeoutTimer.elapsedBlock = ^{ - SDLLogE(@"Start session timed out after %f seconds, closing the connection.", StartSessionTime); - [weakSelf performSelector:@selector(onProtocolClosed) withObject:nil afterDelay:0.1]; - }; - } - [self.rpcStartServiceTimeoutTimer start]; -} - -/// Called when the transport is closed. -- (void)onProtocolClosed { - SDLLogW(@"Transport disconnected"); - [self.notificationDispatcher postNotificationName:SDLTransportDidDisconnect infoObject:nil]; -} - -- (void)onTransportError:(NSError *)error { - SDLLogW(@"Transport error: %@", error); - - [self.notificationDispatcher postNotificationName:SDLTransportConnectError infoObject:error]; -} - -- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { - SDLLogD(@"Start Service (ACK) SessionId: %d for serviceType %d", startServiceACK.header.sessionID, startServiceACK.header.serviceType); - - if (startServiceACK.header.serviceType == SDLServiceTypeRPC) { - [self.rpcStartServiceTimeoutTimer cancel]; - [self.notificationDispatcher postNotificationName:SDLRPCServiceDidConnect infoObject:nil]; - } -} - -- (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceNAK { - SDLLogD(@"Start Service (NAK): SessionId: %d for serviceType %d", startServiceNAK.header.sessionID, startServiceNAK.header.serviceType); - - if (startServiceNAK.header.serviceType == SDLServiceTypeRPC) { - [self.rpcStartServiceTimeoutTimer cancel]; - [self.notificationDispatcher postNotificationName:SDLRPCServiceConnectionDidError infoObject:nil]; - } -} - -- (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { - SDLLogD(@"End Service (ACK): SessionId: %d for serviceType %d", endServiceACK.header.sessionID, endServiceACK.header.serviceType); - - if (endServiceACK.header.serviceType == SDLServiceTypeRPC) { - [self.rpcStartServiceTimeoutTimer cancel]; - [self.notificationDispatcher postNotificationName:SDLRPCServiceDidDisconnect infoObject:nil]; - } -} - -- (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { - if (endServiceNAK.header.serviceType == SDLServiceTypeRPC) { - NSError *error = [NSError sdl_lifecycle_unknownRemoteErrorWithDescription:@"RPC Service failed to stop" andReason:nil]; - [self.notificationDispatcher postNotificationName:SDLRPCServiceConnectionDidError infoObject:error]; - } -} - -- (void)onProtocolMessageReceived:(SDLProtocolMessage *)msg { - NSDictionary *rpcMessageAsDictionary = [msg rpcDictionary]; - SDLRPCMessage *receivedMessage = [[SDLRPCMessage alloc] initWithDictionary:rpcMessageAsDictionary]; - NSString *fullName = [self sdl_fullNameForMessage:receivedMessage]; - - // From the function name, create the corresponding RPCObject and initialize it - NSString *functionClassName = [NSString stringWithFormat:@"SDL%@", fullName]; - SDLRPCMessage *newMessage = [[NSClassFromString(functionClassName) alloc] initWithDictionary:rpcMessageAsDictionary]; - - // If we were unable to create the message, it's an unknown type; discard it - if (newMessage == nil) { return; } - - // Adapt the incoming message then call the callback - NSArray *adaptedMessages = [SDLLifecycleRPCAdapter adaptRPC:newMessage direction:SDLRPCDirectionIncoming]; - for (SDLRPCMessage *message in adaptedMessages) { - [self sdl_sendCallbackForMessage:message]; - } -} - -#pragma mark - Utilities - -- (void)sdl_sendCallbackForMessage:(SDLRPCMessage *)message { - // Log the RPC message - SDLLogV(@"Sending callback for RPC message: %@", message); - - SDLNotificationName notificationName = [self sdl_notificationNameForMessage:message]; - if ([message.messageType isEqualToEnum:SDLRPCMessageTypeNameResponse]) { - [self.notificationDispatcher postRPCResponseNotification:notificationName response:(SDLRPCResponse *)message]; - } else if ([message.messageType isEqualToEnum:SDLRPCMessageTypeNameRequest]) { - [self.notificationDispatcher postRPCRequestNotification:notificationName request:(SDLRPCRequest *)message]; - } else if ([message.messageType isEqualToEnum:SDLRPCMessageTypeNameNotification]) { - [self.notificationDispatcher postRPCNotificationNotification:notificationName notification:(SDLRPCNotification *)message]; - } -} - -- (SDLNotificationName)sdl_notificationNameForMessage:(SDLRPCMessage *)message { - NSString *messageName = message.name; - if ([message.messageType isEqualToEnum:SDLRPCMessageTypeNameResponse]) { - return [NSString stringWithFormat:@"com.sdl.response.%@", messageName]; - } else if ([message.messageType isEqualToEnum:SDLRPCMessageTypeNameRequest]) { - return [NSString stringWithFormat:@"com.sdl.request.%@", messageName]; - } else if ([message.messageType isEqualToEnum:SDLRPCMessageTypeNameNotification]) { - return [NSString stringWithFormat:@"com.sdl.notification.%@", messageName]; - } - - return messageName; -} - -- (NSString *)sdl_fullNameForMessage:(SDLRPCMessage *)message { - NSString *functionName = message.name; - NSString *messageType = message.messageType; - - // If it's a response, append "response" - if ([messageType isEqualToEnum:SDLRPCMessageTypeNameResponse]) { - if (![functionName isEqualToEnum:SDLRPCFunctionNameGenericResponse]) { - functionName = [NSString stringWithFormat:@"%@Response", functionName]; - } - } - - return functionName; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.h deleted file mode 100644 index 1eea483..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLLifecycleRPCAdapter.h -// SmartDeviceLink -// -// Created by Joel Fischer on 6/15/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -@class SDLRPCMessage; - -NS_ASSUME_NONNULL_BEGIN - -typedef NS_ENUM(NSUInteger, SDLRPCDirection) { - SDLRPCDirectionIncoming, - SDLRPCDirectionOutgoing -}; - -@interface SDLLifecycleRPCAdapter : NSObject - -/// Takes an RPC message (request, response, or notification) and adapts for the negotiated RPC spec version. This may need to happen before being sent or received. -/// @param message The message to be adapted -/// @return The message or messages to be sent or recieved -+ (NSArray *)adaptRPC:(SDLRPCMessage *)message direction:(SDLRPCDirection)direction; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.m deleted file mode 100644 index 3b96517..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleRPCAdapter.m +++ /dev/null @@ -1,164 +0,0 @@ -// -// SDLLifecycleRPCAdapter.m -// SmartDeviceLink -// -// Created by Joel Fischer on 6/15/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLLifecycleRPCAdapter.h" - -#import "SDLGlobals.h" -#import "SDLLogMacros.h" -#import "SDLOnButtonEvent.h" -#import "SDLOnButtonPress.h" -#import "SDLRPCFunctionNames.h" -#import "SDLRPCMessage.h" -#import "SDLSubscribeButton.h" -#import "SDLUnsubscribeButton.h" -#import "SDLVersion.h" - -@implementation SDLLifecycleRPCAdapter - -+ (NSArray *)adaptRPC:(SDLRPCMessage *)message direction:(SDLRPCDirection)direction { - switch (direction) { - case SDLRPCDirectionIncoming: - if ([message.name isEqualToEnum:SDLRPCFunctionNameOnButtonPress]) { - return [self adaptOnButtonPress:(SDLOnButtonPress *)message]; - } else if ([message.name isEqualToEnum:SDLRPCFunctionNameOnButtonEvent]) { - return [self adaptOnButtonEvent:(SDLOnButtonEvent *)message]; - } - break; - case SDLRPCDirectionOutgoing: - if ([message.name isEqualToEnum:SDLRPCFunctionNameSubscribeButton]) { - return [self adaptSubscribeButton:(SDLSubscribeButton *)message]; - } else if ([message.name isEqualToEnum:SDLRPCFunctionNameUnsubscribeButton]) { - return [self adaptUnsubscribeButton:(SDLUnsubscribeButton *)message]; - } - break; - } - - return @[message]; -} - -#pragma mark - Individual RPC Adaptations - -#pragma mark Incoming - -#pragma mark Notifications - -// https://github.com/smartdevicelink/sdl_java_suite/pull/864 -+ (NSArray *)adaptOnButtonPress:(SDLOnButtonPress *)message { - SDLLogD(@"Adapting onButtonPress message: %@", message); - if ([SDLGlobals sharedGlobals].rpcVersion.major >= 5) { - if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - // Force receive PlayPause & OK notifications - SDLOnButtonPress *okPress = [message copy]; - okPress.buttonName = SDLButtonNameOk; - - return @[message, okPress]; - } else if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - // Force receive PlayPause and OK notifications - SDLOnButtonPress *playPausePress = [message copy]; - playPausePress.buttonName = SDLButtonNamePlayPause; - - return @[message, playPausePress]; - } - } else { // Major version < 5 - if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - // Force receive Ok and Play/Pause notifications - SDLOnButtonPress *playPausePress = [message copy]; - playPausePress.buttonName = SDLButtonNamePlayPause; - - return @[message, playPausePress]; - } else if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - // Drop - return @[]; - } - } - - return @[message]; -} - -// https://github.com/smartdevicelink/sdl_java_suite/pull/864 -+ (NSArray *)adaptOnButtonEvent:(SDLOnButtonEvent *)message { - SDLLogD(@"Adapting onButtonEvent message: %@", message); - if ([SDLGlobals sharedGlobals].rpcVersion.major >= 5) { - if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - // Force receive PlayPause & OK notifications - SDLOnButtonEvent *okEvent = [message copy]; - okEvent.buttonName = SDLButtonNameOk; - - return @[message, okEvent]; - } else if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - // Force receive PlayPause and OK notifications - SDLOnButtonEvent *playPauseEvent = [message copy]; - playPauseEvent.buttonName = SDLButtonNamePlayPause; - - return @[message, playPauseEvent]; - } - } else { // Major version < 5 - if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - // Force receive Ok and Play/Pause notifications - SDLOnButtonEvent *playPauseEvent = [message copy]; - playPauseEvent.buttonName = SDLButtonNamePlayPause; - - return @[message, playPauseEvent]; - } else if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - // Drop - return @[]; - } - } - - return @[message]; -} - -#pragma mark Outgoing - -#pragma mark Requests - -// See table here https://github.com/smartdevicelink/sdl_java_suite/pull/864 -+ (NSArray *)adaptSubscribeButton:(SDLSubscribeButton *)message { - SDLLogD(@"Adapting SubscribeButton message: %@", message); - if ([SDLGlobals sharedGlobals].rpcVersion.major >= 5) { - if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - SDLSubscribeButton *playPauseMessage = [message copy]; - playPauseMessage.buttonName = SDLButtonNamePlayPause; - - return @[message, playPauseMessage]; - } - } else { // Major version < 5 - if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - SDLSubscribeButton *okMessage = [message copy]; - okMessage.buttonName = SDLButtonNameOk; - - return @[okMessage]; - } - } - - return @[message]; -} - -// https://github.com/smartdevicelink/sdl_java_suite/pull/864 -+ (NSArray *)adaptUnsubscribeButton:(SDLUnsubscribeButton *)message { - SDLLogD(@"Adapting UnsubscribeButton message: %@", message); - if ([SDLGlobals sharedGlobals].rpcVersion.major >= 5) { - if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { - SDLUnsubscribeButton *playPauseMessage = [message copy]; - playPauseMessage.buttonName = SDLButtonNamePlayPause; - - return @[message, playPauseMessage]; - } - } else { // Major version < 5 - if ([message.buttonName isEqualToEnum:SDLButtonNamePlayPause]) { - SDLUnsubscribeButton *okMessage = [message copy]; - okMessage.buttonName = SDLButtonNameOk; - - return @[okMessage]; - } - } - - return @[message]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.h deleted file mode 100644 index f80ca38..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLLifecycleSyncPDataHandler.h -// SmartDeviceLink -// -// Created by Joel Fischer on 6/8/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLConnectionManagerType; - -/// Handles decoding OnSyncPData RPCs, then performing network requests and creating a SyncPData RPC request for legacy head units. -@interface SDLLifecycleSyncPDataHandler : NSObject - -- (instancetype)init NS_UNAVAILABLE; - -/// Initialize the object -/// @param manager The connection manager to send RPCs through -- (instancetype)initWithConnectionManager:(id)manager; - -/// Stops the manager cancels all URL session tasks -- (void)stop; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.m deleted file mode 100644 index 58ef276..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSyncPDataHandler.m +++ /dev/null @@ -1,153 +0,0 @@ -// -// SDLLifecycleSyncPDataHandler.m -// SmartDeviceLink -// -// Created by Joel Fischer on 6/8/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLifecycleSyncPDataHandler.h" - -#import "SDLConnectionManagerType.h" -#import "SDLEncodedSyncPData.h" -#import "SDLLogMacros.h" -#import "SDLOnEncodedSyncPData.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCParameterNames.h" - -static const float DefaultConnectionTimeout = 45.0; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLifecycleSyncPDataHandler () - -@property (weak, nonatomic) id manager; -@property (strong, nonatomic) NSURLSession *urlSession; - -@end - -@implementation SDLLifecycleSyncPDataHandler - -- (instancetype)initWithConnectionManager:(id)manager { - self = [super init]; - if (!self) { return nil; } - - SDLLogV(@"Initializing SyncPData handler"); - _manager = manager; - - NSURLSessionConfiguration* configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; - configuration.timeoutIntervalForRequest = DefaultConnectionTimeout; - configuration.requestCachePolicy = NSURLRequestUseProtocolCachePolicy; - _urlSession = [NSURLSession sessionWithConfiguration:configuration]; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_encodedSyncPDataReceived:) name:SDLDidReceiveEncodedDataNotification object:nil]; -#pragma clang diagnostic pop - - return self; -} - -- (void)stop { - SDLLogV(@"Stopping SyncPData handler and stopping all URL session tasks"); - [self.urlSession getTasksWithCompletionHandler:^(NSArray * _Nonnull dataTasks, NSArray * _Nonnull uploadTasks, NSArray * _Nonnull downloadTasks) { - for (NSURLSessionTask *task in dataTasks) { - [task cancel]; - } - - for (NSURLSessionTask *task in uploadTasks) { - [task cancel]; - } - - for (NSURLSessionTask *task in downloadTasks) { - [task cancel]; - } - }]; -} - -#pragma mark - Utilities - -- (void)sdl_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"; - [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; - request.timeoutInterval = 60; - - // 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) { - SDLLogW(@"Error attempting to create SyncPData for HTTP request: %@", JSONSerializationError); - return; - } - - // Send the HTTP Request - __weak typeof(self) weakSelf = self; - [[self.urlSession uploadTaskWithRequest:request - fromData:data - completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { - [weakSelf sdl_syncPDataNetworkRequestCompleteWithData:data response:response error:error]; - }] resume]; - - SDLLogV(@"OnEncodedSyncPData (HTTP Request)"); -} - -// Handle the OnEncodedSyncPData HTTP Response -- (void)sdl_syncPDataNetworkRequestCompleteWithData:(NSData *)data response:(NSURLResponse *)response error:(NSError *)error { - // Sample of response: {"data":["SDLKGLSDKFJLKSjdslkfjslkJLKDSGLKSDJFLKSDJF"]} - SDLLogV(@"OnEncodedSyncPData (HTTP Response): %@", response); - - // Validate response data. - if (data == nil || data.length == 0) { - SDLLogW(@"OnEncodedSyncPData (HTTP Response): no data returned"); - return; - } - - // Convert data to RPCRequest - NSError *JSONConversionError = nil; - NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&JSONConversionError]; - if (JSONConversionError) { - SDLLogE(@"Error converting EncodedSyncPData response dictionary: %@", JSONConversionError); - return; - } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - SDLEncodedSyncPData *request = [[SDLEncodedSyncPData alloc] init]; -#pragma clang diagnostic pop - request.data = responseDictionary[@"data"]; - - [self.manager sendConnectionManagerRequest:request withResponseHandler:nil]; -} - - -#pragma mark - Notifications - -- (void)sdl_encodedSyncPDataReceived:(SDLRPCNotificationNotification *)notification { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - SDLOnEncodedSyncPData *message = notification.notification; -#pragma clang diagnostic pop - - // If URL != nil, perform HTTP Post and don't pass the notification to proxy listeners - SDLLogV(@"OnEncodedSyncPData: %@", message); - - NSString *urlString = (NSString *)message.parameters[SDLRPCParameterNameURLUppercase]; - NSDictionary *encodedSyncPData = (NSDictionary *)message.parameters[SDLRPCParameterNameData]; - NSNumber *encodedSyncPTimeout = (NSNumber *)message.parameters[SDLRPCParameterNameTimeoutCapitalized]; - - if (urlString && encodedSyncPData && encodedSyncPTimeout) { - [self sdl_sendEncodedSyncPData:encodedSyncPData toURL:urlString withTimeout:encodedSyncPTimeout]; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.h deleted file mode 100644 index 4086536..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLLifecycleSystemRequestHandler.h -// SmartDeviceLink -// -// Created by Joel Fischer on 6/8/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLConnectionManagerType; - -/// Handles decoding OnSystemRequest RPCs, then performing network requests and creating a SystemRequest RPC request for head units. -@interface SDLLifecycleSystemRequestHandler : NSObject - -- (instancetype)init NS_UNAVAILABLE; - -/// Initialize the object -/// @param manager A connection manager to send RPCs -- (instancetype)initWithConnectionManager:(id)manager; - -/// Stops the manager and clears all URL Session tasks -- (void)stop; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.m deleted file mode 100644 index 354dca8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLifecycleSystemRequestHandler.m +++ /dev/null @@ -1,336 +0,0 @@ -// -// SDLLifecycleSystemRequestHandler.m -// SmartDeviceLink -// -// Created by Joel Fischer on 6/8/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLifecycleSystemRequestHandler.h" - -#import "SDLCacheFileManager.h" -#import "SDLConnectionManagerType.h" -#import "SDLGlobals.h" -#import "SDLLogMacros.h" -#import "SDLNotificationConstants.h" -#import "SDLOnSystemRequest.h" -#import "SDLPutFile.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLSystemRequest.h" - -static const float DefaultConnectionTimeout = 45.0; - -NS_ASSUME_NONNULL_BEGIN - -typedef void (^URLSessionTaskCompletionHandler)(NSData *data, NSURLResponse *response, NSError *error); -typedef void (^URLSessionDownloadTaskCompletionHandler)(NSURL *location, NSURLResponse *response, NSError *error); - -@interface SDLLifecycleSystemRequestHandler () - -@property (weak, nonatomic) id manager; -@property (strong, nonatomic) SDLCacheFileManager *cacheFileManager; -@property (strong, nonatomic) NSURLSession *urlSession; - -@end - -@implementation SDLLifecycleSystemRequestHandler - -- (instancetype)initWithConnectionManager:(id)manager { - self = [super init]; - if (!self) { return nil; } - - SDLLogV(@"Initializing SystemRequest handler"); - _manager = manager; - - _cacheFileManager = [[SDLCacheFileManager alloc] init]; - - NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; - configuration.timeoutIntervalForRequest = DefaultConnectionTimeout; - configuration.timeoutIntervalForResource = DefaultConnectionTimeout; - configuration.requestCachePolicy = NSURLRequestUseProtocolCachePolicy; - _urlSession = [NSURLSession sessionWithConfiguration:configuration]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(systemRequestReceived:) name:SDLDidReceiveSystemRequestNotification object:nil]; - - return self; -} - -- (void)stop { - SDLLogV(@"Stopping SystemRequest handler and stopping all URL session tasks"); - [self.urlSession getTasksWithCompletionHandler:^(NSArray * _Nonnull dataTasks, NSArray * _Nonnull uploadTasks, NSArray * _Nonnull downloadTasks) { - for (NSURLSessionTask *task in dataTasks) { - [task cancel]; - } - - for (NSURLSessionTask *task in uploadTasks) { - [task cancel]; - } - - for (NSURLSessionTask *task in downloadTasks) { - [task cancel]; - } - }]; -} - -#pragma mark - Handle OnSystemRequest -- (void)sdl_handleSystemRequestLaunchApp:(SDLOnSystemRequest *)request { - NSURL *urlScheme = [NSURL URLWithString:request.url]; - if (urlScheme == nil) { - SDLLogW(@"System request LaunchApp failed: invalid URL sent from module: %@", request.url); - return; - } - - // If system version is less than 9.0 http://stackoverflow.com/a/5337804/1370927 - if (SDL_SYSTEM_VERSION_LESS_THAN(@"9.0")) { - // Return early if we can't openURL because openURL will crash instead of fail silently in < 9.0 - if (![[UIApplication sharedApplication] canOpenURL:urlScheme]) { - return; - } - } - - [[UIApplication sharedApplication] openURL:urlScheme]; -} - -- (void)sdl_handleSystemRequestProprietary:(SDLOnSystemRequest *)request { - NSDictionary *jsonDict = [self sdl_validateAndParseProprietarySystemRequest:request]; - if (jsonDict == nil || request.url == nil) { - return; - } - - // Send the HTTP Request - __weak typeof(self) weakSelf = self; - [self sdl_uploadForBodyDataDictionary:jsonDict - urlString:request.url - completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - - if (error) { - SDLLogW(@"OnSystemRequest HTTP response error: %@", error); - return; - } - if (data == nil || data.length == 0) { - SDLLogW(@"OnSystemRequest HTTP response error: no data received"); - return; - } - - // Create the SystemRequest RPC to send to module. - SDLLogV(@"OnSystemRequest HTTP response"); - SDLSystemRequest *request = [[SDLSystemRequest alloc] init]; - request.requestType = SDLRequestTypeProprietary; - request.bulkData = data; - - // Send the RPC Request - [strongSelf.manager sendConnectionManagerRequest:request withResponseHandler:nil]; - }]; -} - -// TODO: Move to lock screen manager -- (void)sdl_handleSystemRequestLockScreenIconURL:(SDLOnSystemRequest *)request { - [self.cacheFileManager retrieveImageForRequest:request withCompletionHandler:^(UIImage * _Nullable image, NSError * _Nullable error) { - if (error != nil) { - SDLLogW(@"Failed to retrieve lock screen icon: %@", error.localizedDescription); - return; - } - - NSDictionary *userInfo = nil; - if (image != nil) { - userInfo = @{SDLNotificationUserInfoObject: image}; - } - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveLockScreenIcon object:nil userInfo:userInfo]; - }]; -} - -- (void)sdl_handleSystemRequestIconURL:(SDLOnSystemRequest *)request { - __weak typeof(self) weakSelf = self; - [self sdl_sendDataTaskWithURL:[NSURL URLWithString:request.url] - completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - if (error != nil) { - SDLLogW(@"OnSystemRequest (icon url) HTTP download task failed: %@", error.localizedDescription); - return; - } else if (data.length == 0) { - SDLLogW(@"OnSystemRequest (icon url) HTTP download task failed to get the cloud app icon image data"); - return; - } - - SDLSystemRequest *iconURLSystemRequest = [[SDLSystemRequest alloc] initWithType:SDLRequestTypeIconURL fileName:request.url]; - iconURLSystemRequest.bulkData = data; - - [strongSelf.manager sendConnectionManagerRequest:iconURLSystemRequest withResponseHandler:nil]; - }]; -} - -- (void)sdl_handleSystemRequestHTTP:(SDLOnSystemRequest *)request { - if (request.bulkData.length == 0) { - // TODO: not sure how we want to handle http requests that don't have bulk data (maybe as GET?) - return; - } - - __weak typeof(self) weakSelf = self; - [self sdl_uploadData:request.bulkData - toURLString:request.url - completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - if (error != nil) { - SDLLogW(@"OnSystemRequest (HTTP) error: %@", error.localizedDescription); - return; - } - - if (data.length == 0) { - SDLLogW(@"OnSystemRequest (HTTP) error: no data returned"); - return; - } - - // Show the HTTP response - SDLLogV(@"OnSystemRequest (HTTP) response: %@", response); - - // Create the PutFile RPC to send to module. - SDLPutFile *putFile = [[SDLPutFile alloc] init]; - putFile.fileType = SDLFileTypeJSON; - putFile.sdlFileName = @"response_data"; - putFile.bulkData = data; - - // Send RPC Request - [strongSelf.manager sendConnectionManagerRequest:putFile withResponseHandler:nil]; - }]; -} - -#pragma mark - HTTP - -/** - * Start an upload for some data to a web address specified - * - * @param data The data to be passed to the server - * @param urlString The URL the data should be POSTed to - * @param completionHandler A completion handler of what to do when the server responds - */ -- (void)sdl_uploadData:(NSData *_Nonnull)data toURLString:(NSString *_Nonnull)urlString completionHandler:(URLSessionTaskCompletionHandler _Nullable)completionHandler { - // NSURLRequest configuration - NSURL *url = [NSURL URLWithString:urlString]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; - [request setValue:@"application/json" forHTTPHeaderField:@"content-type"]; - request.HTTPMethod = @"POST"; - - SDLLogV(@"OnSystemRequest (HTTP) upload task created for URL: %@", urlString); - - // Create the upload task - [self sdl_sendUploadRequest:request withData:data completionHandler:completionHandler]; -} - -/** - * Start an upload for a body data dictionary, this is used by the "proprietary" system request needed for backward compatibility - * - * @param dictionary The system request dictionary that contains the HTTP data to be sent - * @param urlString A string containing the URL to send the upload to - * @param completionHandler A completion handler returning the response from the server to the upload task - */ -- (void)sdl_uploadForBodyDataDictionary:(NSDictionary *)dictionary urlString:(NSString *)urlString completionHandler:(URLSessionTaskCompletionHandler)completionHandler { - NSParameterAssert(dictionary != nil); - NSParameterAssert(urlString != nil); - NSParameterAssert(completionHandler != NULL); - - // Extract data from the dictionary - NSDictionary *requestData = dictionary[@"HTTPRequest"]; - NSDictionary *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]; - - // NSURLRequest configuration - NSURL *url = [NSURL URLWithString:urlString]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; - [request setValue:contentType forHTTPHeaderField:@"content-type"]; - request.timeoutInterval = timeout; - request.HTTPMethod = method; - - SDLLogV(@"OnSystemRequest (Proprietary) upload task created for URL: %@", urlString); - - // Create the upload task - [self sdl_sendUploadRequest:request withData:bodyData completionHandler:completionHandler]; -} - -- (void)sdl_sendUploadRequest:(NSURLRequest*)request withData:(NSData*)data completionHandler:(URLSessionTaskCompletionHandler)completionHandler { - NSMutableURLRequest* mutableRequest = [request mutableCopy]; - - if ([mutableRequest.URL.scheme isEqualToString:@"http"]) { - mutableRequest.URL = [NSURL URLWithString:[mutableRequest.URL.absoluteString stringByReplacingCharactersInRange:NSMakeRange(0, 4) withString:@"https"]]; - } - - [[self.urlSession uploadTaskWithRequest:request fromData:data completionHandler:completionHandler] resume]; -} - -- (void)sdl_sendDataTaskWithURL:(NSURL*)url completionHandler:(URLSessionTaskCompletionHandler)completionHandler { - if ([url.scheme isEqualToString:@"http"]) { - url = [NSURL URLWithString:[url.absoluteString stringByReplacingCharactersInRange:NSMakeRange(0, 4) withString:@"https"]]; - } - - [[self.urlSession dataTaskWithURL:url completionHandler:completionHandler] resume]; -} - -#pragma mark - Validation - -/** - * Determine if the System Request is valid and return it's JSON dictionary, if available. - * - * @param request The system request to parse - * - * @return A parsed JSON dictionary, or nil if it couldn't be parsed - */ -- (nullable NSDictionary *)sdl_validateAndParseProprietarySystemRequest:(SDLOnSystemRequest *)request { - NSString *urlString = request.url; - SDLFileType fileType = request.fileType; - - // Validate input - if (urlString == nil || [NSURL URLWithString:urlString] == nil) { - SDLLogW(@"OnSystemRequest validation failure: URL is nil"); - return nil; - } - if (![fileType isEqualToEnum:SDLFileTypeJSON]) { - SDLLogW(@"OnSystemRequest validation failure: file type is not JSON"); - return nil; - } - - // Get data dictionary from the bulkData - NSError *error = nil; - NSDictionary *JSONDictionary = [NSJSONSerialization JSONObjectWithData:request.bulkData options:kNilOptions error:&error]; - if (error != nil) { - SDLLogW(@"OnSystemRequest validation failure: data is not valid JSON"); - return nil; - } - - return JSONDictionary; -} - -#pragma mark - Notifications - -- (void)systemRequestReceived:(SDLRPCNotificationNotification *)notification { - SDLOnSystemRequest *onSystemRequest = notification.notification; - SDLRequestType requestType = onSystemRequest.requestType; - - // Handle the various OnSystemRequest types - if ([requestType isEqualToEnum:SDLRequestTypeProprietary]) { - [self sdl_handleSystemRequestProprietary:onSystemRequest]; - } else if ([requestType isEqualToEnum:SDLRequestTypeLockScreenIconURL]) { - [self sdl_handleSystemRequestLockScreenIconURL:onSystemRequest]; - } else if ([requestType isEqualToEnum:SDLRequestTypeIconURL]) { - [self sdl_handleSystemRequestIconURL:onSystemRequest]; - } else if ([requestType isEqualToEnum:SDLRequestTypeHTTP]) { - [self sdl_handleSystemRequestHTTP:onSystemRequest]; - } else if ([requestType isEqualToEnum:SDLRequestTypeLaunchApp]) { - if ([NSThread isMainThread]) { - [self sdl_handleSystemRequestLaunchApp:onSystemRequest]; - } else { - dispatch_sync(dispatch_get_main_queue(), ^{ - [self sdl_handleSystemRequestLaunchApp:onSystemRequest]; - }); - } - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.h deleted file mode 100644 index 19f3024..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.h +++ /dev/null @@ -1,66 +0,0 @@ -// SDLLightCapabilities.h -// - -#import "SDLRPCMessage.h" - -#import "SDLLightName.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Current Light capabilities. -/// -/// @since RPC 5.0 -@interface SDLLightCapabilities : SDLRPCStruct - -/** - Constructs a newly allocated SDLLightCapabilities object with the name of the light or group of lights - - @param name The name of a light or a group of lights - @return An instance of the SDLLightCapabilities class - */ -- (instancetype)initWithName:(SDLLightName)name; - -/** - Constructs a newly allocated SDLLightCapabilities object with given parameters - - @param name The name of a light or a group of lights - @param densityAvailable light's density can be set remotely - @param colorAvailable Light's color can be set remotely by using the RGB color space - @param statusAvailable whether status is available - - @return An instance of the SDLLightCapabilities class - */ -- (instancetype)initWithName:(SDLLightName)name densityAvailable:(BOOL)densityAvailable colorAvailable:(BOOL)colorAvailable statusAvailable:(BOOL)statusAvailable; - -/** - * @abstract The name of a light or a group of lights - * - * Required, SDLLightName - */ -@property (strong, nonatomic) SDLLightName name; - -/** - * @abstract Indicates if the light's density can be set remotely (similar to a dimmer). - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *densityAvailable; - -/** - * @abstract Indicates if the light's color can be set remotely by using the RGB color space. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *colorAvailable; - -/** - * @abstract Indicates if the status (ON/OFF) can be set remotely. - * App shall not use read-only values (RAMP_UP/RAMP_DOWN/UNKNOWN/INVALID) in a setInteriorVehicleData request. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *statusAvailable; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.m deleted file mode 100644 index e2ea777..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightCapabilities.m +++ /dev/null @@ -1,70 +0,0 @@ -// SDLLightCapabilities.m -// - -#import "SDLLightCapabilities.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLLightCapabilities - -- (instancetype)initWithName:(SDLLightName)name { - self = [self init]; - if(!self) { - return nil; - } - self.name = name; - - return self; -} - -- (instancetype)initWithName:(SDLLightName)name densityAvailable:(BOOL)densityAvailable colorAvailable:(BOOL)colorAvailable statusAvailable:(BOOL)statusAvailable { - self = [self init]; - if(!self) { - return nil; - } - self.name = name; - self.densityAvailable = @(densityAvailable); - self.colorAvailable = @(colorAvailable); - self.statusAvailable = @(statusAvailable); - - return self; -} - -- (void)setName:(SDLLightName)name { - [self.store sdl_setObject:name forName:SDLRPCParameterNameName]; -} - -- (SDLLightName)name { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameName error:&error]; -} - -- (void)setDensityAvailable:(nullable NSNumber *)densityAvailable { - [self.store sdl_setObject:densityAvailable forName:SDLRPCParameterNameDensityAvailable]; -} - -- (nullable NSNumber *)densityAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameDensityAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setColorAvailable:(nullable NSNumber *)colorAvailable { - [self.store sdl_setObject:colorAvailable forName:SDLRPCParameterNameRGBColorSpaceAvailable]; -} - -- (nullable NSNumber *)colorAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameRGBColorSpaceAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setStatusAvailable:(nullable NSNumber *)statusAvailable { - [self.store sdl_setObject:statusAvailable forName:SDLRPCParameterNameStatusAvailable]; -} - -- (nullable NSNumber *)statusAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameStatusAvailable ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.h deleted file mode 100644 index 13f7099..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.h +++ /dev/null @@ -1,61 +0,0 @@ -// SDLLightControlCapabilities.h -// - -#import "SDLRPCMessage.h" -#import "SDLModuleInfo.h" - -@class SDLLightCapabilities; - -NS_ASSUME_NONNULL_BEGIN - -/// Current light control capabilities. -/// -/// @since RPC 5.0 -@interface SDLLightControlCapabilities : SDLRPCStruct - -/** - Constructs a newly allocated SDLLightControlCapabilities object with given parameters - - - @param moduleName friendly name of the light control module - @param supportedLights array of available LightCapabilities - @return An instance of the SDLLightControlCapabilities class - */ -- (instancetype)initWithModuleName:(NSString *)moduleName supportedLights:(NSArray *)supportedLights __deprecated_msg("Use initWithModuleName:moduleInfo:supportedLights:"); - -/** - Constructs a newly allocated SDLLightControlCapabilities object with given parameters - - - @param moduleName friendly name of the light control module - @param moduleInfo information about a RC module, including its id - @param supportedLights array of available LightCapabilities - @return An instance of the SDLLightControlCapabilities class - */ -- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo supportedLights:(NSArray *)supportedLights; - -/** - * @abstract The short friendly name of the light control module. - * It should not be used to identify a module by mobile application. - * - * Required, Max String length 100 chars - */ -@property (strong, nonatomic) NSString *moduleName; - -/** - * @abstract An array of available LightCapabilities that are controllable. - * - * Required, NSArray of type SDLLightCapabilities minsize="1" maxsize="100" - */ -@property (strong, nonatomic) NSArray *supportedLights; - -/** - * Information about a RC module, including its id. - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.m deleted file mode 100644 index 4a899c2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlCapabilities.m +++ /dev/null @@ -1,66 +0,0 @@ -// SDLLightControlCapabilities.m -// - -#import "SDLLightControlCapabilities.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" -#import "SDLLightCapabilities.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLLightControlCapabilities - - -- (instancetype)initWithModuleName:(NSString *)moduleName supportedLights:(NSArray *)supportedLights { - self = [self init]; - if(!self) { - return nil; - } - self.moduleName = moduleName; - self.supportedLights = supportedLights; - - return self; -} - -- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo supportedLights:(NSArray *)supportedLights { - self = [self init]; - if(!self) { - return nil; - } - self.moduleName = moduleName; - self.moduleInfo = moduleInfo; - self.supportedLights = supportedLights; - - return self; -} - -- (void)setModuleName:(NSString *)moduleName { - [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; -} - -- (NSString *)moduleName { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; -} - -- (void)setSupportedLights:(NSArray *)supportedLights { - [self.store sdl_setObject:supportedLights forName:SDLRPCParameterNameSupportedLights]; - -} - -- (NSArray *)supportedLights { - NSError *error = nil; - return [self.store sdl_objectsForName:SDLRPCParameterNameSupportedLights ofClass:SDLLightCapabilities.class error:&error]; -} - -- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { - [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; -} - -- (nullable SDLModuleInfo *)moduleInfo { - return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.h deleted file mode 100644 index a76d4c7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.h +++ /dev/null @@ -1,33 +0,0 @@ -// SDLLightControlData.h -// - -#import "SDLRPCMessage.h" - -@class SDLLightState; - -NS_ASSUME_NONNULL_BEGIN - -/// Data about the current light controls -/// -/// @since SDL 5.0 -@interface SDLLightControlData : SDLRPCStruct - -/** - Constructs a newly allocated SDLLightControlData object with lightState - - @param lightState An array of LightNames and their current or desired status - @return An instance of the SDLLightControlData class - */ -- (instancetype)initWithLightStates:(NSArray *)lightState; - -/** - * @abstract An array of LightNames and their current or desired status. - * Status of the LightNames that are not listed in the array shall remain unchanged. - * - * Required, NSArray of type SDLLightState minsize="1" maxsize="100" - */ -@property (strong, nonatomic) NSArray *lightState; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.m deleted file mode 100644 index f9699d8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightControlData.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLLightControlData.m -// - -#import "SDLLightControlData.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" -#import "SDLLightState.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLLightControlData - --(instancetype)initWithLightStates:(NSArray *)lightState { - self = [self init]; - if(!self) { - return nil; - } - self.lightState = lightState; - - return self; -} - -- (void)setLightState:(NSArray *)lightState { - [self.store sdl_setObject:lightState forName:SDLRPCParameterNameLightState]; -} - -- (NSArray *)lightState { - NSError *error = nil; - return [self.store sdl_objectsForName:SDLRPCParameterNameLightState ofClass:SDLLightState.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightName.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightName.h deleted file mode 100644 index 09a954f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightName.h +++ /dev/null @@ -1,259 +0,0 @@ -// SDLLightName.h -// - -#import "SDLEnum.h" - -/** - * The name that identifies the Light - * - */ -typedef SDLEnum SDLLightName SDL_SWIFT_ENUM; - -/** - * @abstract Represents the Light with name FRONT_LEFT_HIGH_BEAM. - */ -extern SDLLightName const SDLLightNameFrontLeftHighBeam; - -/** - * @abstract Represents the Light with name FRONT_RIGHT_HIGH_BEAM. - */ -extern SDLLightName const SDLLightNameFrontRightHighBeam; - -/** - * @abstract Represents the Light with name FRONT_LEFT_LOW_BEAM. - */ -extern SDLLightName const SDLLightNameFrontLeftLowBeam; - -/** - * @abstract Represents the Light with name FRONT_RIGHT_LOW_BEAM. - */ -extern SDLLightName const SDLLightNameFrontRightLowBeam; - -/** - * @abstract Represents the Light with name FRONT_LEFT_PARKING_LIGHT - */ -extern SDLLightName const SDLLightNameFrontLeftParkingLight; - -/** - * @abstract Represents the Light with name FRONT_RIGHT_PARKING_LIGHT - */ -extern SDLLightName const SDLLightNameFrontRightParkingLight; - -/** - * @abstract Represents the Light with name FRONT_LEFT_FOG_LIGHT - */ -extern SDLLightName const SDLLightNameFrontLeftFogLight; - -/** - * @abstract Represents the Light with name FRONT_RIGHT_FOG_LIGHT - */ -extern SDLLightName const SDLLightNameFrontRightFogLight; - -/** - * @abstract Represents the Light with name FRONT_LEFT_DAYTIME_RUNNING_LIGHT - */ -extern SDLLightName const SDLLightNameFrontLeftDaytimeRunningLight; - -/** - * @abstract Represents the Light with name FRONT_RIGHT_DAYTIME_RUNNING_LIGHT - */ -extern SDLLightName const SDLLightNameFrontRightDaytimeRunningLight; - -/** - * @abstract Represents the Light with name FRONT_LEFT_TURN_LIGHT - */ -extern SDLLightName const SDLLightNameFrontLeftTurnLight; - -/** - * @abstract Represents the Light with name FRONT_Right_TURN_LIGHT - */ -extern SDLLightName const SDLLightNameFrontRightTurnLight; - -/** - * @abstract Represents the Light with name REAR_LEFT_FOG_LIGHT. - */ -extern SDLLightName const SDLLightNameRearLeftFogLight; - -/** - * @abstract Represents the Light with name REAR_RIGHT_FOG_LIGHT - */ -extern SDLLightName const SDLLightNameRearRightFogLight; - -/** - * @abstract Represents the Light with name REAR_LEFT_TAIL_LIGHT - */ -extern SDLLightName const SDLLightNameRearLeftTailLight; - -/** - * @abstract Represents the Light with name REAR_RIGHT_TAIL_LIGHT - */ -extern SDLLightName const SDLLightNameRearRightTailLight; - -/** - * @abstract Represents the Light with name REAR_LEFT_BRAKE_LIGHT - */ -extern SDLLightName const SDLLightNameRearLeftBrakeLight; - -/** - * @abstract Represents the Light with name REAR_RIGHT_BRAKE_LIGHT - */ -extern SDLLightName const SDLLightNameRearRightBrakeLight; - -/** - * @abstract Represents the Light with name REAR_LEFT_TURN_LIGHT - */ -extern SDLLightName const SDLLightNameRearLeftTurnLight; - -/** - * @abstract Represents the Light with name REAR_RIGHT_TURN_LIGHT - */ -extern SDLLightName const SDLLightNameRearRightTurnLight; - -/** - * @abstract Represents the Light with name REAR_REGISTRATION_PLATE_LIGHT - */ -extern SDLLightName const SDLLightNameRearRegistrationPlateLight; - -#pragma mark - Exterior Lights by common function groups -/** - * @abstract Include all high beam lights: front_left and front_right. - */ -extern SDLLightName const SDLLightNameHighBeams; - -/** - * @abstract Include all low beam lights: front_left and front_right. - */ -extern SDLLightName const SDLLightNameLowBeams; - -/** - * @abstract Include all fog lights: front_left, front_right, rear_left and rear_right. - */ -extern SDLLightName const SDLLightNameFogLights; - -/** - * @abstract Include all daytime running lights: front_left and front_right. - */ -extern SDLLightName const SDLLightNameRunningLights; - -/** - * @abstract Include all parking lights: front_left and front_right. - */ -extern SDLLightName const SDLLightNameParkingLights; - -/** - * @abstract Include all brake lights: rear_left and rear_right. - */ -extern SDLLightName const SDLLightNameBrakeLights; - -/** - * @abstract Represents the Light with name REAR_REVERSING_LIGHTS - */ -extern SDLLightName const SDLLightNameRearReversingLights; - -/** - * @abstract Represents the Light with name SIDE_MARKER_LIGHTS - */ -extern SDLLightName const SDLLightNameSideMarkerLights; - -/** - * @abstract Include all left turn signal lights: front_left, rear_left, left_side and mirror_mounted. - */ -extern SDLLightName const SDLLightNameLeftTurnLights; - -/** - * @abstract Include all right turn signal lights: front_right, rear_right, right_side and mirror_mounted. - */ -extern SDLLightName const SDLLightNameRightTurnLights; - -/** - * @abstract Include all hazard lights: front_left, front_right, rear_left and rear_right. - */ -extern SDLLightName const SDLLightNameHazardLights; - -#pragma mark - Interior Lights by common function groups - -/** - * @abstract Represents the Light with name AMBIENT_LIGHTS - */ -extern SDLLightName const SDLLightNameAmbientLights; - -/** - * @abstract Represents the Light with name OVERHEAD_LIGHTS - */ -extern SDLLightName const SDLLightNameOverHeadLights; - -/** - * @abstract Represents the Light with name READING_LIGHTS - */ -extern SDLLightName const SDLLightNameReadingLights; - -/** - * @abstract Represents the Light with name TRUNK_LIGHTS - */ -extern SDLLightName const SDLLightNameTrunkLights; - -#pragma mark - Lights by location - -/** - * @abstract Include exterior lights located in front of the vehicle. For example, fog lights and low beams. - */ -extern SDLLightName const SDLLightNameExteriorFrontLights; - -/** - * @abstract Include exterior lights located at the back of the vehicle. - * For example, license plate lights, reverse lights, cargo lights, bed lights an trailer assist lights. - */ -extern SDLLightName const SDLLightNameExteriorRearLights; - -/** - * @abstract Include exterior lights located at the left side of the vehicle. - * For example, left puddle lights and spot lights. - */ -extern SDLLightName const SDLLightNameExteriorLeftLights; - -/** - * @abstract Include exterior lights located at the right side of the vehicle. - * For example, right puddle lights and spot lights. - */ -extern SDLLightName const SDLLightNameExteriorRightLights; - -/** - * @abstract Cargo lamps illuminate the cargo area. - */ -extern SDLLightName const SDLLightNameExteriorRearCargoLights; - -/** - * @abstract Truck bed lamps light up the bed of the truck. - */ -extern SDLLightName const SDLLightNameExteriorRearTruckBedLights; - -/** - * @abstract Trailer lights are lamps mounted on a trailer hitch. - */ -extern SDLLightName const SDLLightNameExteriorRearTrailerLights; - -/** - * @abstract It is the spotlights mounted on the left side of a vehicle. - * - */ -extern SDLLightName const SDLLightNameExteriorLeftSpotLights; - -/** - * @abstract It is the spotlights mounted on the right side of a vehicle. - */ -extern SDLLightName const SDLLightNameExteriorRightSpotLights; - -/** - * @abstract Puddle lamps illuminate the ground beside the door as the customer is opening or approaching the door. - */ -extern SDLLightName const SDLLightNameExteriorLeftPuddleLights; - -/** - * @abstract Puddle lamps illuminate the ground beside the door as the customer is opening or approaching the door. - */ -extern SDLLightName const SDLLightNameExteriorRightPuddleLights; - -/** - * @abstract Include all exterior lights around the vehicle. - */ -extern SDLLightName const SDLLightNameExteriorAllLights; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightName.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightName.m deleted file mode 100644 index f236bea..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightName.m +++ /dev/null @@ -1,54 +0,0 @@ -// SDLLightName.m -// - -#import "SDLLightName.h" - -SDLLightName const SDLLightNameFrontLeftHighBeam = @"FRONT_LEFT_HIGH_BEAM"; -SDLLightName const SDLLightNameFrontRightHighBeam = @"FRONT_RIGHT_HIGH_BEAM"; -SDLLightName const SDLLightNameFrontLeftLowBeam = @"FRONT_LEFT_LOW_BEAM"; -SDLLightName const SDLLightNameFrontRightLowBeam = @"FRONT_RIGHT_LOW_BEAM"; -SDLLightName const SDLLightNameFrontLeftParkingLight = @"FRONT_LEFT_PARKING_LIGHT"; -SDLLightName const SDLLightNameFrontRightParkingLight = @"FRONT_RIGHT_PARKING_LIGHT"; -SDLLightName const SDLLightNameFrontLeftFogLight = @"FRONT_LEFT_FOG_LIGHT"; -SDLLightName const SDLLightNameFrontRightFogLight = @"FRONT_RIGHT_FOG_LIGHT"; -SDLLightName const SDLLightNameFrontLeftDaytimeRunningLight = @"FRONT_LEFT_DAYTIME_RUNNING_LIGHT"; -SDLLightName const SDLLightNameFrontRightDaytimeRunningLight = @"FRONT_RIGHT_DAYTIME_RUNNING_LIGHT"; -SDLLightName const SDLLightNameFrontLeftTurnLight = @"FRONT_LEFT_TURN_LIGHT"; -SDLLightName const SDLLightNameFrontRightTurnLight = @"FRONT_RIGHT_TURN_LIGHT"; -SDLLightName const SDLLightNameRearLeftFogLight = @"REAR_LEFT_FOG_LIGHT"; -SDLLightName const SDLLightNameRearRightFogLight = @"REAR_RIGHT_FOG_LIGHT"; -SDLLightName const SDLLightNameRearLeftTailLight = @"REAR_LEFT_TAIL_LIGHT"; -SDLLightName const SDLLightNameRearRightTailLight = @"REAR_RIGHT_TAIL_LIGHT"; -SDLLightName const SDLLightNameRearLeftBrakeLight = @"REAR_LEFT_BRAKE_LIGHT"; -SDLLightName const SDLLightNameRearRightBrakeLight = @"REAR_RIGHT_BRAKE_LIGHT"; -SDLLightName const SDLLightNameRearLeftTurnLight = @"REAR_LEFT_TURN_LIGHT"; -SDLLightName const SDLLightNameRearRightTurnLight = @"REAR_RIGHT_TURN_LIGHT"; -SDLLightName const SDLLightNameRearRegistrationPlateLight = @"REAR_REGISTRATION_PLATE_LIGHT"; -SDLLightName const SDLLightNameHighBeams = @"HIGH_BEAMS"; -SDLLightName const SDLLightNameLowBeams = @"LOW_BEAMS"; -SDLLightName const SDLLightNameFogLights = @"FOG_LIGHTS"; -SDLLightName const SDLLightNameRunningLights = @"RUNNING_LIGHTS"; -SDLLightName const SDLLightNameParkingLights = @"PARKING_LIGHTS"; -SDLLightName const SDLLightNameBrakeLights = @"BRAKE_LIGHTS"; -SDLLightName const SDLLightNameRearReversingLights = @"REAR_REVERSING_LIGHTS"; -SDLLightName const SDLLightNameSideMarkerLights = @"SIDE_MARKER_LIGHTS"; -SDLLightName const SDLLightNameLeftTurnLights = @"LEFT_TURN_LIGHTS"; -SDLLightName const SDLLightNameRightTurnLights = @"RIGHT_TURN_LIGHTS"; -SDLLightName const SDLLightNameHazardLights = @"HAZARD_LIGHTS"; -SDLLightName const SDLLightNameAmbientLights = @"AMBIENT_LIGHTS"; -SDLLightName const SDLLightNameOverHeadLights = @"OVERHEAD_LIGHTS"; -SDLLightName const SDLLightNameReadingLights = @"READING_LIGHTS"; -SDLLightName const SDLLightNameTrunkLights = @"TRUNK_LIGHTS"; -SDLLightName const SDLLightNameExteriorFrontLights = @"EXTERIOR_FRONT_LIGHTS"; -SDLLightName const SDLLightNameExteriorRearLights = @"EXTERIOR_REAR_LIGHTS"; -SDLLightName const SDLLightNameExteriorLeftLights = @"EXTERIOR_LEFT_LIGHTS"; -SDLLightName const SDLLightNameExteriorRightLights = @"EXTERIOR_RIGHT_LIGHTS"; -SDLLightName const SDLLightNameExteriorRearCargoLights = @"REAR_CARGO_LIGHTS"; -SDLLightName const SDLLightNameExteriorRearTruckBedLights = @"REAR_TRUCK_BED_LIGHTS"; -SDLLightName const SDLLightNameExteriorRearTrailerLights = @"REAR_TRAILER_LIGHTS"; -SDLLightName const SDLLightNameExteriorLeftSpotLights = @"LEFT_SPOT_LIGHTS"; -SDLLightName const SDLLightNameExteriorRightSpotLights = @"RIGHT_SPOT_LIGHTS"; -SDLLightName const SDLLightNameExteriorLeftPuddleLights = @"LEFT_PUDDLE_LIGHTS"; -SDLLightName const SDLLightNameExteriorRightPuddleLights = @"RIGHT_PUDDLE_LIGHTS"; -SDLLightName const SDLLightNameExteriorAllLights = @"EXTERIOR_ALL_LIGHTS"; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.h deleted file mode 100644 index 296fbce..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.h +++ /dev/null @@ -1,79 +0,0 @@ -// SDLLightState.h -// -#import - -#import "SDLRPCMessage.h" -#import "SDLLightName.h" -#import "SDLLightStatus.h" - -@class SDLRGBColor; - -NS_ASSUME_NONNULL_BEGIN - -/// Current light control state -/// -/// @since RPC 5.0 -@interface SDLLightState : SDLRPCStruct - -/** - Constructs a newly allocated SDLLightState object with given parameters - - @param id The name of a light or a group of lights - @param status Reflects the status of Light. - @return An instance of the SDLLightState class - */ -- (instancetype)initWithId:(SDLLightName)id status:(SDLLightStatus)status; - -/** - Constructs a newly allocated SDLLightState object with given parameters - - @param id The name of a light or a group of lights - @param status Reflects the status of Light. - @param density Reflects the density of Light. - @param color Reflects the color of Light. - @return An instance of the SDLLightState class - */ -- (instancetype)initWithId:(SDLLightName)id status:(SDLLightStatus)status density:(double)density color:(SDLRGBColor *)color; - -/** - Constructs a newly allocated SDLLightState object with given parameters - - @param id The name of a light or a group of lights - @param lightStatus Reflects the status of Light. - @param lightDensity Reflects the density of Light. - @param lightColor Reflects the color of Light. - @return An instance of the SDLLightState class - */ -- (instancetype)initWithId:(SDLLightName)id lightStatus:(SDLLightStatus)lightStatus lightDensity:(double)lightDensity lightColor:(UIColor *)lightColor; - -/** - * @abstract The name of a light or a group of lights - * - * Required, SDLLightName - */ -@property (strong, nonatomic) SDLLightName id; - -/** - * @abstract Reflects the status of Light. - * - * Required, SDLLightStatus - */ -@property (strong, nonatomic) SDLLightStatus status; - -/** - * @abstract Reflects the density of Light. - * - * Optional, Float type with minValue: 0 maxValue:1 - */ -@property (nullable, copy, nonatomic) NSNumber *density; - -/** - * @abstract Reflects the color of Light. - * - * Optional, SDLLightStatus - */ -@property (nullable, strong, nonatomic) SDLRGBColor *color; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.m deleted file mode 100644 index cfd13c2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightState.m +++ /dev/null @@ -1,86 +0,0 @@ -// SDLLightState.m -// - -#import "SDLLightState.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" -#import "SDLRGBColor.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLLightState - -- (instancetype)initWithId:(SDLLightName)id status:(SDLLightStatus)status{ - self = [self init]; - if(!self) { - return nil; - } - self.id = id; - self.status = status; - - return self; -} - -- (instancetype)initWithId:(SDLLightName)id status:(SDLLightStatus)status density:(double)density color:(SDLRGBColor *)color { - self = [self init]; - if(!self) { - return nil; - } - self.id = id; - self.status = status; - self.density = @(density); - self.color = color; - - return self; -} - -- (instancetype)initWithId:(SDLLightName)id lightStatus:(SDLLightStatus)lightStatus lightDensity:(double)lightDensity lightColor:(UIColor *)lightColor { - self = [self init]; - if(!self) { - return nil; - } - self.id = id; - self.status = lightStatus; - self.density = @(lightDensity); - self.color = [[SDLRGBColor alloc] initWithColor:lightColor]; - - return self; -} - -- (void)setId:(SDLLightName)id { - [self.store sdl_setObject:id forName:SDLRPCParameterNameId]; -} - -- (SDLLightName)id { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameId error:&error]; -} - -- (void)setStatus:(SDLLightStatus)status { - [self.store sdl_setObject:status forName:SDLRPCParameterNameStatus]; -} - -- (SDLLightStatus)status { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameStatus error:&error]; -} - -- (void)setDensity:(nullable NSNumber *)density { - [self.store sdl_setObject:density forName:SDLRPCParameterNameDensity]; -} - -- (nullable NSNumber *)density { - return [self.store sdl_objectForName:SDLRPCParameterNameDensity ofClass:NSNumber.class error:nil]; -} - -- (void)setColor:(nullable SDLRGBColor *)color { - [self.store sdl_setObject:color forName:SDLRPCParameterNameColor]; -} - -- (nullable SDLRGBColor *)color { - return [self.store sdl_objectForName:SDLRPCParameterNameColor ofClass:SDLRGBColor.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightStatus.h deleted file mode 100644 index ee9fc4a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightStatus.h +++ /dev/null @@ -1,40 +0,0 @@ -// SDLLightStatus.h -// - -#import "SDLEnum.h" - -/** - * Reflects the status of Light. - * - */ -typedef SDLEnum SDLLightStatus SDL_SWIFT_ENUM; - -/** - * @abstract Light status currently on. - */ -extern SDLLightStatus const SDLLightStatusOn; - -/** - * @abstract Light status currently Off. - */ -extern SDLLightStatus const SDLLightStatusOFF; - -/** - * @abstract Light status currently RAMP_UP. - */ -extern SDLLightStatus const SDLLightStatusRampUp; - -/** - * @abstract Light status currently RAMP_DOWN. - */ -extern SDLLightStatus const SDLLightStatusRampDown; - -/** - * @abstract Light status currently UNKNOWN. - */ -extern SDLLightStatus const SDLLightStatusUnknown; - -/** - * @abstract Light status currently INVALID. - */ -extern SDLLightStatus const SDLLightStatusInvalid; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightStatus.m deleted file mode 100644 index d3ede63..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLightStatus.m +++ /dev/null @@ -1,11 +0,0 @@ -// SDLLightStatus.m -// - -#import "SDLLightStatus.h" - -SDLLightStatus const SDLLightStatusOn = @"ON"; -SDLLightStatus const SDLLightStatusOFF = @"OFF"; -SDLLightStatus const SDLLightStatusRampUp = @"RAMP_UP"; -SDLLightStatus const SDLLightStatusRampDown = @"RAMP_DOWN"; -SDLLightStatus const SDLLightStatusUnknown = @"UNKNOWN"; -SDLLightStatus const SDLLightStatusInvalid = @"INVALID"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFiles.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFiles.h deleted file mode 100644 index 28bf706..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFiles.h +++ /dev/null @@ -1,21 +0,0 @@ -// SDLListFiles.h -// - - -#import "SDLRPCRequest.h" - -/** - * Requests the current list of resident filenames for the registered app. Not - * supported on First generation SDL vehicles - *

      - * - * Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLListFiles : SDLRPCRequest - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFiles.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFiles.m deleted file mode 100644 index 2dd5363..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFiles.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLListFiles.m -// - - -#import "SDLListFiles.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLListFiles - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameListFiles]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.h deleted file mode 100644 index fc84538..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// SDLListFilesOperation.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 5/25/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAsynchronousOperation.h" -#import "SDLFileManagerConstants.h" - -@protocol SDLConnectionManagerType; - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLListFilesOperation : SDLAsynchronousOperation - -/** - * Create an instance of a list files operation which will ask the remote system which files it has on its system already. - * - * @param connectionManager The connection manager which will handle transporting the request to the remote system. - * @param completionHandler A completion handler for when the response returns. - * - * @return An instance of SDLListFilesOperation - */ -- (instancetype)initWithConnectionManager:(id)connectionManager completionHandler:(nullable SDLFileManagerListFilesCompletionHandler)completionHandler; - -/** - The connection manager which will handle transporting the request to the remote system. - */ -@property (weak, nonatomic, readonly) id connectionManager; - -/** - A completion handler for when the response returns. - */ -@property (copy, nonatomic, nullable, readonly) SDLFileManagerListFilesCompletionHandler completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.m deleted file mode 100644 index 693d52e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesOperation.m +++ /dev/null @@ -1,89 +0,0 @@ -// -// SDLListFilesOperation.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 5/25/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLListFilesOperation.h" - -#import "SDLConnectionManagerType.h" -#import "SDLListFiles.h" -#import "SDLListFilesResponse.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLListFilesOperation () - -@property (strong, nonatomic) NSUUID *operationId; -@property (weak, nonatomic) id connectionManager; -@property (copy, nonatomic, nullable) SDLFileManagerListFilesCompletionHandler completionHandler; - -@end - - -@implementation SDLListFilesOperation - -- (instancetype)initWithConnectionManager:(id)connectionManager completionHandler:(nullable SDLFileManagerListFilesCompletionHandler)completionHandler { - self = [super init]; - if (!self) { - return nil; - } - - _operationId = [NSUUID UUID]; - _connectionManager = connectionManager; - _completionHandler = completionHandler; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - [self sdl_listFiles]; -} - -- (void)sdl_listFiles { - SDLListFiles *listFiles = [[SDLListFiles alloc] init]; - - __weak typeof(self) weakSelf = self; - [self.connectionManager sendConnectionManagerRequest:listFiles withResponseHandler:^(__kindof SDLRPCRequest *request, __kindof SDLRPCResponse *response, NSError *error) { - SDLListFilesResponse *listFilesResponse = (SDLListFilesResponse *)response; - BOOL success = [listFilesResponse.success boolValue]; - NSArray *fileNames = [NSArray arrayWithArray:listFilesResponse.filenames]; - - // If spaceAvailable is nil, set it to the max value - NSUInteger bytesAvailable = listFilesResponse.spaceAvailable != nil ? listFilesResponse.spaceAvailable.unsignedIntegerValue : 2000000000; - - if (weakSelf.completionHandler != nil) { - if(error != nil) { - NSMutableDictionary *results = [error.userInfo mutableCopy]; - results[@"resultCode"] = response.resultCode; - NSError *resultError = [NSError errorWithDomain:error.domain code:error.code userInfo:results]; - weakSelf.completionHandler(success, bytesAvailable, fileNames, resultError); - } else { - weakSelf.completionHandler(success, bytesAvailable, fileNames, error); - } - } - - [weakSelf finishOperation]; - }]; -} - - -#pragma mark Property Overrides - -- (nullable NSString *)name { - return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityVeryHigh; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesResponse.h deleted file mode 100644 index b5ddef1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesResponse.h +++ /dev/null @@ -1,29 +0,0 @@ -// SDLListFilesResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to SDLListFiles - - Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLListFilesResponse : SDLRPCResponse - -/** - An array of all filenames resident on the module for the given registered app. If omitted, then no files currently reside on the system. - */ -@property (nullable, strong, nonatomic) NSArray *filenames; - -/** - Provides the total local space available on the module for the registered app. - */ -@property (nullable, strong, nonatomic) NSNumber *spaceAvailable; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesResponse.m deleted file mode 100644 index a70c842..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLListFilesResponse.m +++ /dev/null @@ -1,42 +0,0 @@ -// SDLListFilesResponse.m -// - - -#import "SDLListFilesResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLListFilesResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameListFiles]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setFilenames:(nullable NSArray *)filenames { - [self.parameters sdl_setObject:filenames forName:SDLRPCParameterNameFilenames]; -} - -- (nullable NSArray *)filenames { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameFilenames ofClass:NSString.class error:nil]; -} - -- (void)setSpaceAvailable:(nullable NSNumber *)spaceAvailable { - [self.parameters sdl_setObject:spaceAvailable forName:SDLRPCParameterNameSpaceAvailable]; -} - -- (nullable NSNumber *)spaceAvailable { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSpaceAvailable ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.h deleted file mode 100644 index abc0bee..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.h +++ /dev/null @@ -1,38 +0,0 @@ -// SDLLocationCoordinate.h -// - -#import "SDLRPCStruct.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Describes a coordinate on earth - */ -@interface SDLLocationCoordinate : SDLRPCStruct - -/** - * Convenience init for location coordinates - * - * @param latitudeDegrees Latitude of the location - * @param longitudeDegrees Latitude of the location - * @return A SDLLocationCoordinate object - */ -- (instancetype)initWithLatitudeDegrees:(float)latitudeDegrees longitudeDegrees:(float)longitudeDegrees; - -/** - * Latitude of the location - * - * Required, Double -90 - 90 - */ -@property (copy, nonatomic) NSNumber *latitudeDegrees; - -/** - * Latitude of the location - * - * Required, Double -180 - 180 - */ -@property (copy, nonatomic) NSNumber *longitudeDegrees; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.m deleted file mode 100644 index 5130f75..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationCoordinate.m +++ /dev/null @@ -1,45 +0,0 @@ -// SDLLocationCoordinate.m -// - -#import "SDLLocationCoordinate.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLLocationCoordinate - -- (instancetype)initWithLatitudeDegrees:(float)latitudeDegrees longitudeDegrees:(float)longitudeDegrees { - self = [self init]; - if (!self) { - return nil; - } - - self.latitudeDegrees = @(latitudeDegrees); - self.longitudeDegrees = @(longitudeDegrees); - - return self; -} - -- (void)setLongitudeDegrees:(NSNumber *)longitudeDegrees { - [self.store sdl_setObject:longitudeDegrees forName:SDLRPCParameterNameLongitudeDegrees]; -} - -- (NSNumber *)longitudeDegrees { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLongitudeDegrees ofClass:NSNumber.class error:&error]; -} - -- (void)setLatitudeDegrees:(NSNumber *)latitudeDegrees { - [self.store sdl_setObject:latitudeDegrees forName:SDLRPCParameterNameLatitudeDegrees]; -} - -- (NSNumber *)latitudeDegrees { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLatitudeDegrees ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.h deleted file mode 100644 index 4b41d3f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.h +++ /dev/null @@ -1,97 +0,0 @@ -// SDLLocationDetails.h -// - -#import "SDLRPCStruct.h" - -@class SDLLocationCoordinate; -@class SDLImage; -@class SDLOasisAddress; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Describes a location, including its coordinate, name, etc. Used in WayPoints. - */ -@interface SDLLocationDetails : SDLRPCStruct - -/** - * Convenience init for location coordinate. - * - * @param coordinate Latitude/Longitude of the location - * @return A SDLLocationDetails object - */ -- (instancetype)initWithCoordinate:(SDLLocationCoordinate *)coordinate NS_DESIGNATED_INITIALIZER; - -/** - * Convenience init for all parameters. - * - * @param coordinate Latitude/Longitude of the location - * @param locationName Name of location - * @param addressLines Location address for display purposes only - * @param locationDescription Description intended location / establishment - * @param phoneNumber Phone number of location / establishment - * @param locationImage Image / icon of intended location - * @param searchAddress Address to be used by navigation engines for search - * @return A SDLLocationDetails object - */ -- (instancetype)initWithCoordinate:(SDLLocationCoordinate *)coordinate locationName:(nullable NSString *)locationName addressLines:(nullable NSArray *)addressLines locationDescription:(nullable NSString *)locationDescription phoneNumber:(nullable NSString*)phoneNumber locationImage:(nullable SDLImage *)locationImage searchAddress:(nullable SDLOasisAddress *)searchAddress; - -/** - * Latitude/Longitude of the location - * - * @see SDLLocationCoordinate - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLLocationCoordinate *coordinate; - -/** - * Name of location. - * - * Optional, Max length 500 chars - */ -@property (nullable, copy, nonatomic) NSString *locationName; - -/** - * Location address for display purposes only. - * - * Optional, Array of Strings, Array length 0 - 4, Max String length 500 - */ -@property (nullable, copy, nonatomic) NSArray *addressLines; - -/** - * Description intended location / establishment. - * - * Optional, Max length 500 chars - */ -@property (nullable, copy, nonatomic) NSString *locationDescription; - -/** - * Phone number of location / establishment. - * - * Optional, Max length 500 chars - */ -@property (nullable, copy, nonatomic) NSString *phoneNumber; - -/** - * Image / icon of intended location. - * - * @see SDLImage - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLImage *locationImage; - -/** - * Address to be used by navigation engines for search. - * - * @see SDLOASISAddress - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLOasisAddress *searchAddress; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.m deleted file mode 100644 index 6d34852..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLocationDetails.m +++ /dev/null @@ -1,101 +0,0 @@ -// SDLLocationDetails.m -// - -#import "SDLLocationDetails.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImage.h" -#import "SDLLocationCoordinate.h" -#import "SDLRPCParameterNames.h" -#import "SDLOasisAddress.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLLocationDetails - -- (instancetype)initWithCoordinate:(SDLLocationCoordinate *)coordinate { - self = [super init]; - if (!self) { - return nil; - } - - self.coordinate = coordinate; - - return self; -} - -- (instancetype)initWithCoordinate:(SDLLocationCoordinate *)coordinate locationName:(nullable NSString *)locationName addressLines:(nullable NSArray *)addressLines locationDescription:(nullable NSString *)locationDescription phoneNumber:(nullable NSString*)phoneNumber locationImage:(nullable SDLImage *)locationImage searchAddress:(nullable SDLOasisAddress *)searchAddress { - self = [self initWithCoordinate:coordinate]; - if (!self) { - return nil; - } - - self.locationName = locationName; - self.addressLines = addressLines; - self.locationDescription = locationDescription; - self.phoneNumber = phoneNumber; - self.locationImage = locationImage; - self.searchAddress = searchAddress; - - return self; -} - -- (void)setCoordinate:(nullable SDLLocationCoordinate *)coordinate { - [self.store sdl_setObject:coordinate forName:SDLRPCParameterNameLocationCoordinate]; -} - -- (nullable SDLLocationCoordinate *)coordinate { - return [self.store sdl_objectForName:SDLRPCParameterNameLocationCoordinate ofClass:SDLLocationCoordinate.class error:nil]; -} - -- (void)setLocationName:(nullable NSString *)locationName { - [self.store sdl_setObject:locationName forName:SDLRPCParameterNameLocationName]; -} - -- (nullable NSString *)locationName { - return [self.store sdl_objectForName:SDLRPCParameterNameLocationName ofClass:NSString.class error:nil]; -} - -- (void)setAddressLines:(nullable NSArray *)addressLines { - [self.store sdl_setObject:addressLines forName:SDLRPCParameterNameAddressLines]; -} - -- (nullable NSArray *)addressLines { - return [self.store sdl_objectsForName:SDLRPCParameterNameAddressLines ofClass:NSString.class error:nil]; -} - -- (void)setLocationDescription:(nullable NSString *)locationDescription { - [self.store sdl_setObject:locationDescription forName:SDLRPCParameterNameLocationDescription]; -} - -- (nullable NSString *)locationDescription { - return [self.store sdl_objectForName:SDLRPCParameterNameLocationDescription ofClass:NSString.class error:nil]; -} - -- (void)setPhoneNumber:(nullable NSString *)phoneNumber { - [self.store sdl_setObject:phoneNumber forName:SDLRPCParameterNamePhoneNumber]; -} - -- (nullable NSString *)phoneNumber { - return [self.store sdl_objectForName:SDLRPCParameterNamePhoneNumber ofClass:NSString.class error:nil]; -} - -- (void)setLocationImage:(nullable SDLImage *)locationImage { - [self.store sdl_setObject:locationImage forName:SDLRPCParameterNameLocationImage]; -} - -- (nullable SDLImage *)locationImage { - return [self.store sdl_objectForName:SDLRPCParameterNameLocationImage ofClass:SDLImage.class error:nil]; -} - -- (void)setSearchAddress:(nullable SDLOasisAddress *)searchAddress { - [self.store sdl_setObject:searchAddress forName:SDLRPCParameterNameSearchAddress]; -} - -- (nullable SDLOasisAddress *)searchAddress { - return [self.store sdl_objectForName:SDLRPCParameterNameSearchAddress ofClass:SDLOasisAddress.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.h deleted file mode 100644 index e3e9669..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.h +++ /dev/null @@ -1,124 +0,0 @@ -// -// SDLLockScreenConfiguration.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/13/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - - -NS_ASSUME_NONNULL_BEGIN - -/** - Describes when the lock screen should be shown. - */ -typedef NS_ENUM(NSUInteger, SDLLockScreenConfigurationDisplayMode) { - /// The lock screen should never be shown. This should almost always mean that you will build your own lock screen. - SDLLockScreenConfigurationDisplayModeNever, - - /// The lock screen should only be shown when it is required by the head unit. - SDLLockScreenConfigurationDisplayModeRequiredOnly, - - /// The lock screen should be shown when required by the head unit or when the head unit says that its optional, but *not* in other cases, such as before the user has interacted with your app on the head unit. - SDLLockScreenConfigurationDisplayModeOptionalOrRequired, - - /// The lock screen should always be shown after connection. - SDLLockScreenConfigurationDisplayModeAlways -}; - -/** - A configuration describing how the lock screen should be used by the internal SDL system for your application. This configuration is provided before SDL starts and will govern the entire SDL lifecycle of your application. - */ -@interface SDLLockScreenConfiguration : NSObject - -/** - Describes when the lock screen will be displayed. Defaults to `SDLLockScreenConfigurationDisplayModeRequiredOnly`. - */ -@property (assign, nonatomic) SDLLockScreenConfigurationDisplayMode displayMode; - -/** - * Whether or not the lock screen should be shown in the "lock screen optional" state. Defaults to NO. - * - * In order for the "lock screen optional" state to occur, the following must be true: - * 1. The app should have received at least 1 driver distraction notification (i.e. a `OnDriverDistraction` notification) from SDL Core. Older versions of Core did not send a notification immediately on connection. - * 2. The driver is not distracted (i.e. the last `OnDriverDistraction` notification received was for a driver distraction state off). - * 3. The `hmiLevel` can not be `NONE`. - * 4. If the `hmiLevel` is currently `BACKGROUND` then the previous `hmiLevel` should have been `FULL` or `LIMITED` (i.e. the user should have interacted with app before it was backgrounded). - - * Since this has been deprecated, setting this to true will set `displayMode` to `OptionalOrRequired` if `enableAutomaticLockScreen` is true, or will have no effect if it is false. - */ -@property (assign, nonatomic) BOOL showInOptionalState __deprecated_msg("Use displayMode SDLLockScreenConfigurationDisplayModeOptionalOrRequired to replicate this being YES"); - -/** - If YES, then the lock screen can be dismissed with a downward swipe on compatible head units. Requires a connection of SDL 6.0+ and the head unit to enable the feature. Defaults to YES. - */ -@property (assign, nonatomic) BOOL enableDismissGesture; - -/** - If YES, then the lockscreen will show the vehicle's logo if the vehicle has made it available. If NO, then the lockscreen will not show the vehicle logo. Defaults to YES. -*/ -@property (assign, nonatomic) BOOL showDeviceLogo; - -/** - If YES, the lock screen should be managed by SDL and automatically engage when necessary. If NO, then the lock screen will never be engaged. Defaults to YES. - - Since this has been deprecated, setting this to false will set `displayMode` to `Never`. Setting it back to true will set it to `RequiredOnly` if `showInOptionalState` is false, or `OptionalOrRequired` if it is true. - */ -@property (assign, nonatomic, readonly) BOOL enableAutomaticLockScreen __deprecated_msg("Use displayMode SDLLockScreenConfigurationDisplayModeNever to replicate this being NO"); - -/** - * The background color of the lock screen. This could be a branding color, or leave at the default for a dark blue-gray. - */ -@property (copy, nonatomic, readonly) UIColor *backgroundColor; - -/** - * Your app icon as it will appear on the lock screen. - */ -@property (copy, nonatomic, readonly, nullable) UIImage *appIcon; - -/** - * A custom view controller that the lock screen will manage the presentation of. - */ -@property (strong, nonatomic, readonly, nullable) UIViewController *customViewController; - -/// Initializer unavailable -- (instancetype)init NS_UNAVAILABLE; - -/** - * Use this configuration if you wish to manage a lock screen yourself. This may be useful if the automatic presentation feature of SDLLockScreenManager is failing for some reason. - * - * @return The configuration - */ -+ (instancetype)disabledConfiguration; - -/** - * Use this configuration for the basic default lock screen. A custom app icon will not be used. - * - * @return The configuration - */ -+ (instancetype)enabledConfiguration; - -/** - * Use this configuration to provide a custom lock screen icon and a custom background color, or nil if you wish to use the default background color. This will use the default lock screen layout. - * - * @param lockScreenAppIcon The app icon to be shown on the lock screen - * @param lockScreenBackgroundColor The color of the lock screen background - * - * @return The configuration - */ -+ (instancetype)enabledConfigurationWithAppIcon:(UIImage *)lockScreenAppIcon backgroundColor:(nullable UIColor *)lockScreenBackgroundColor; - -/** - * Use this configuration if you wish to provide your own view controller for the lock screen. This view controller's presentation and dismissal will still be managed by the lock screen manager. Note that you may subclass SDLLockScreenViewController and pass it here to continue to have the vehicle icon set to your view controller by the manager. - * - * @param viewController The view controller to be managed - * - * @return The configuration - */ -+ (instancetype)enabledConfigurationWithViewController:(UIViewController *)viewController; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.m deleted file mode 100644 index c5cdfa8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenConfiguration.m +++ /dev/null @@ -1,101 +0,0 @@ -// -// SDLLockScreenConfiguration.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/13/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "SDLLockScreenConfiguration.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLLockScreenConfiguration - -#pragma mark - Lifecycle - -- (instancetype)initWithDisplayMode:(SDLLockScreenConfigurationDisplayMode)mode enableDismissGesture:(BOOL)enableDismissGesture showDeviceLogo:(BOOL)showDeviceLogo backgroundColor:(UIColor *)backgroundColor appIcon:(nullable UIImage *)appIcon viewController:(nullable UIViewController *)customViewController { - self = [super init]; - if (!self) { - return nil; - } - - _displayMode = mode; - _enableAutomaticLockScreen = (mode == SDLLockScreenConfigurationDisplayModeNever) ? NO : YES; - _showInOptionalState = (mode == SDLLockScreenConfigurationDisplayModeOptionalOrRequired) ? YES : NO; - - _enableDismissGesture = enableDismissGesture; - _backgroundColor = backgroundColor; - _appIcon = appIcon; - _customViewController = customViewController; - _showDeviceLogo = showDeviceLogo; - - return self; -} - -+ (instancetype)disabledConfiguration { - return [[self alloc] initWithDisplayMode:SDLLockScreenConfigurationDisplayModeNever enableDismissGesture:NO showDeviceLogo:NO backgroundColor:[self sdl_defaultBackgroundColor] appIcon:nil viewController:nil]; -} - -+ (instancetype)enabledConfiguration { - return [[self alloc] initWithDisplayMode:SDLLockScreenConfigurationDisplayModeRequiredOnly enableDismissGesture:YES showDeviceLogo:YES backgroundColor:[self sdl_defaultBackgroundColor] appIcon:nil viewController:nil]; -} - -+ (instancetype)enabledConfigurationWithAppIcon:(UIImage *)lockScreenAppIcon backgroundColor:(nullable UIColor *)lockScreenBackgroundColor { - if (lockScreenBackgroundColor == nil) { - lockScreenBackgroundColor = [self.class sdl_defaultBackgroundColor]; - } - - return [[self alloc] initWithDisplayMode:SDLLockScreenConfigurationDisplayModeRequiredOnly enableDismissGesture:YES showDeviceLogo:YES backgroundColor:lockScreenBackgroundColor appIcon:lockScreenAppIcon viewController:nil]; -} - -+ (instancetype)enabledConfigurationWithViewController:(UIViewController *)viewController { - return [[self alloc] initWithDisplayMode:SDLLockScreenConfigurationDisplayModeRequiredOnly enableDismissGesture:YES showDeviceLogo:YES backgroundColor:[self.class sdl_defaultBackgroundColor] appIcon:nil viewController:viewController]; -} - - -#pragma mark - Defaults - -+ (UIColor *)sdl_defaultBackgroundColor { - return [UIColor colorWithRed:(57.0 / 255.0) green:(78.0 / 255.0) blue:(96.0 / 255.0) alpha:1.0]; -} - - -#pragma mark - Setters / Getters - -- (void)setEnableAutomaticLockScreen:(BOOL)enableAutomaticLockScreen { - _enableAutomaticLockScreen = enableAutomaticLockScreen; - - if (!_enableAutomaticLockScreen) { - _displayMode = SDLLockScreenConfigurationDisplayModeNever; - } else if (_showInOptionalState) { - _displayMode = SDLLockScreenConfigurationDisplayModeOptionalOrRequired; - } else { - _displayMode = SDLLockScreenConfigurationDisplayModeRequiredOnly; - } -} - -- (void)setShowInOptionalState:(BOOL)showInOptionalState { - _showInOptionalState = showInOptionalState; - - if (!_enableAutomaticLockScreen) { - _displayMode = SDLLockScreenConfigurationDisplayModeNever; - } else if (_showInOptionalState) { - _displayMode = SDLLockScreenConfigurationDisplayModeOptionalOrRequired; - } else { - _displayMode = SDLLockScreenConfigurationDisplayModeRequiredOnly; - } -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(nullable NSZone *)zone { - SDLLockScreenConfiguration *new = [[SDLLockScreenConfiguration allocWithZone:zone] initWithDisplayMode:_displayMode enableDismissGesture:_enableDismissGesture showDeviceLogo:_showDeviceLogo backgroundColor:_backgroundColor appIcon:_appIcon viewController:_customViewController]; - - return new; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.h deleted file mode 100644 index e4ef486..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.h +++ /dev/null @@ -1,80 +0,0 @@ -// -// SDLLockScreenManager.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/8/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -@class SDLLockScreenConfiguration; -@class SDLLockScreenViewController; -@class SDLNotificationDispatcher; - -@protocol SDLViewControllerPresentable; - - -NS_ASSUME_NONNULL_BEGIN - -/// Manages presenting and dismissing the lock screen based on several settings: -/// 1. The lock screen configuration set by the developer. If the set to the default configuration, the lock screen manager will show or hide the lockscreen based on the the current HMILevel of the SDL app and the current driver distraction (DD) status. However, the developer can also set the lockscreen to always show or not show at all. -/// 2. Whether the passenger has dismissed the lockscreen (RPC v.6.0+). Once the passenger has dismissed the lockscreen, it will not be shown again during the same session. -/// -/// | HMI Level | DD | Lock Screen Status | -/// |----------------|-----|--------------------| -/// | HMI_NONE | - | OFF | -/// | HMI_BACKGROUND | OFF | OFF | -/// | HMI_BACKGROUND | ON | REQUIRED | -/// | HMI_FULL | OFF | OPTIONAL | -/// | HMI_FULL | ON | REQUIRED | -/// | HMI_LIMITED | OFF | OPTIONAL | -/// | HMI_LIMITED | ON | REQUIRED | -@interface SDLLockScreenManager : NSObject - -/** - * Whether or not the lock screen is currently presented - */ -@property (assign, nonatomic, readonly) BOOL lockScreenPresented; - -/** - * Whether or not the lock screen is currently dismissable - */ -@property (assign, nonatomic, readonly, getter=isLockScreenDismissable) BOOL lockScreenDismissable; - -/** - * The lock screen configuration used to set up the manager - */ -@property (strong, nonatomic, readonly) SDLLockScreenConfiguration *config; - -/** - * The view controller to be shown as a lock screen. - */ -@property (strong, nonatomic, readonly, nullable) UIViewController *lockScreenViewController; - -- (instancetype)init NS_UNAVAILABLE; - -/** - * Create a new instance of `SDLLockScreenManager`. - * - * @param config The config to set up the manager. - * @param dispatcher The notification dispatcher used to watch only for SDL notifications from it. - * @param presenter The presenter which will handle actually presenting the lock screen view controller. - * - * @return An instance of `SDLLockScreenManager`. - */ -- (instancetype)initWithConfiguration:(SDLLockScreenConfiguration *)config notificationDispatcher:(SDLNotificationDispatcher *)dispatcher presenter:(id)presenter; - -/** - * Start the manager. This is used internally. - */ -- (void)start; - -/** - * Stop the manager. This is used internally. - */ -- (void)stop; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.m deleted file mode 100644 index 34ceee0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenManager.m +++ /dev/null @@ -1,272 +0,0 @@ -// -// SDLLockScreenManager.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/8/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLLockScreenManager.h" - -#import "NSBundle+SDLBundle.h" -#import "SDLLogMacros.h" -#import "SDLLockScreenConfiguration.h" -#import "SDLLockScreenStatusManager.h" -#import "SDLLockScreenStatus.h" -#import "SDLLockScreenViewController.h" -#import "SDLNotificationConstants.h" -#import "SDLNotificationDispatcher.h" -#import "SDLOnLockScreenStatus.h" -#import "SDLOnDriverDistraction.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLViewControllerPresentable.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLockScreenManager () - -@property (assign, nonatomic) BOOL canPresent; -@property (strong, nonatomic, readwrite) SDLLockScreenConfiguration *config; -@property (strong, nonatomic) id presenter; -@property (strong, nonatomic) SDLLockScreenStatusManager *statusManager; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -@property (strong, nonatomic, nullable) SDLOnLockScreenStatus *lastLockNotification; -#pragma clang diagnostic pop - -@property (strong, nonatomic, nullable) SDLOnDriverDistraction *lastDriverDistractionNotification; -@property (assign, nonatomic, readwrite, getter=isLockScreenDismissable) BOOL lockScreenDismissable; -@property (assign, nonatomic) BOOL lockScreenDismissedByUser; - -@end - - -@implementation SDLLockScreenManager - -- (instancetype)initWithConfiguration:(SDLLockScreenConfiguration *)config notificationDispatcher:(SDLNotificationDispatcher *)dispatcher presenter:(id)presenter { - self = [super init]; - if (!self) { - return nil; - } - - _canPresent = NO; - _lockScreenDismissable = NO; - _config = config; - _presenter = presenter; - _lockScreenDismissedByUser = NO; - _statusManager = [[SDLLockScreenStatusManager alloc] initWithNotificationDispatcher:dispatcher]; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_lockScreenStatusDidChange:) name:SDLDidChangeLockScreenStatusNotification object:_statusManager]; -#pragma clang diagnostic pop - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_lockScreenIconReceived:) name:SDLDidReceiveLockScreenIcon object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appDidBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_driverDistractionStateDidChange:) name:SDLDidChangeDriverDistractionStateNotification object:dispatcher]; - - return self; -} - -- (void)start { - self.canPresent = NO; - - __weak typeof(self) weakSelf = self; - dispatch_async(dispatch_get_main_queue(), ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - - if (UIApplication.sharedApplication.applicationState != UIApplicationStateActive) { - SDLLogW(@"Attempted to start lock screen manager, but we are in the background. We will attempt to start again when we are in the foreground."); - return; - } - - // This usually means that we disconnected and connected with the device in the background. We will need to check and dismiss the view controller if it's presented before setting up a new one. - if (strongSelf.presenter.lockViewController != nil) { - [strongSelf.presenter stopWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf2 = weakSelf; - [strongSelf2 sdl_start]; - }]; - } else { - [strongSelf sdl_start]; - } - }); -} - -- (void)sdl_start { - // Create and initialize the lock screen controller depending on the configuration - if (self.config.displayMode == SDLLockScreenConfigurationDisplayModeNever) { - self.presenter.lockViewController = nil; - return; - } else if (self.config.customViewController != nil) { - self.presenter.lockViewController = self.config.customViewController; - } else { - SDLLockScreenViewController *viewController = nil; - - @try { - viewController = [[UIStoryboard storyboardWithName:@"SDLLockScreen" bundle:[NSBundle sdlBundle]] instantiateInitialViewController]; - } @catch (NSException *exception) { - SDLLogE(@"Attempted to instantiate the default SDL Lock Screen and could not find the storyboard. Be sure the 'SmartDeviceLink' bundle is within your main bundle. We're just going to return without instantiating the lock screen"); - return; - } - - viewController.appIcon = self.config.appIcon; - viewController.backgroundColor = self.config.backgroundColor; - self.presenter.lockViewController = viewController; - } - - self.canPresent = YES; - - [self sdl_checkLockScreen]; -} - -- (void)stop { - // Don't allow the lockscreen to present again until we start - self.canPresent = NO; - self.lastLockNotification = nil; - self.lastDriverDistractionNotification = nil; - [self.presenter stopWithCompletionHandler:nil]; -} - -- (nullable UIViewController *)lockScreenViewController { - return self.presenter.lockViewController; -} - -#pragma mark - Notification Selectors - -- (void)sdl_lockScreenStatusDidChange:(SDLRPCNotificationNotification *)notification { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if (![notification isNotificationMemberOfClass:[SDLOnLockScreenStatus class]]) { -#pragma clang diagnostic pop - return; - } - - self.lastLockNotification = notification.notification; - - [self sdl_checkLockScreen]; -} - -- (void)sdl_lockScreenIconReceived:(NSNotification *)notification { - if (![notification.userInfo[SDLNotificationUserInfoObject] isKindOfClass:[UIImage class]]) { - return; - } - - UIImage *icon = notification.userInfo[SDLNotificationUserInfoObject]; - - // If the VC is our special type, then add the vehicle icon. If they passed in a custom VC, there's no current way to show the vehicle icon. If they're managing it themselves, they can grab the notification themselves. - if ([self.lockScreenViewController isKindOfClass:[SDLLockScreenViewController class]] && self.config.showDeviceLogo) { - ((SDLLockScreenViewController *)self.lockScreenViewController).vehicleIcon = icon; - } -} - -- (void)sdl_appDidBecomeActive:(NSNotification *)notification { - __weak typeof(self) weakSelf = self; - dispatch_async(dispatch_get_main_queue(), ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - // Restart, and potentially dismiss the lock screen if the app was disconnected in the background - if (!strongSelf.canPresent) { - [strongSelf start]; - } - - [strongSelf sdl_checkLockScreen]; - }); -} - -- (void)sdl_driverDistractionStateDidChange:(SDLRPCNotificationNotification *)notification { - if (![notification isNotificationMemberOfClass:[SDLOnDriverDistraction class]]) { - return; - } - - self.lastDriverDistractionNotification = notification.notification; - [self sdl_updateLockScreenDismissable]; -} - -#pragma mark - Private Helpers - -- (void)sdl_checkLockScreen { - if (self.lockScreenViewController == nil || self.lastLockNotification == nil) { - return; - } - - __weak typeof(self) weakSelf = self; - dispatch_async(dispatch_get_main_queue(), ^{ - [weakSelf sdl_updatePresentation]; - }); -} - -- (void)sdl_updatePresentation { - if (self.config.displayMode == SDLLockScreenConfigurationDisplayModeAlways) { - if (self.canPresent) { - [self.presenter updateLockScreenToShow:YES withCompletionHandler:nil]; - } -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - } else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusRequired]) { -#pragma clang diagnostic pop - if (self.canPresent && !self.lockScreenDismissedByUser) { - [self.presenter updateLockScreenToShow:YES withCompletionHandler:nil]; - } -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - } else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusOptional]) { -#pragma clang diagnostic pop - if (self.config.displayMode == SDLLockScreenConfigurationDisplayModeOptionalOrRequired && self.canPresent && !self.lockScreenDismissedByUser) { - [self.presenter updateLockScreenToShow:YES withCompletionHandler:nil]; - } else if (self.config.displayMode != SDLLockScreenConfigurationDisplayModeOptionalOrRequired) { - [self.presenter updateLockScreenToShow:NO withCompletionHandler:nil]; - } -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - } else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusOff]) { -#pragma clang diagnostic pop - [self.presenter updateLockScreenToShow:NO withCompletionHandler:nil]; - } -} - -- (void)sdl_updateLockScreenDismissable { - if (self.lastDriverDistractionNotification == nil || - self.lastDriverDistractionNotification.lockScreenDismissalEnabled == nil || - !self.lastDriverDistractionNotification.lockScreenDismissalEnabled.boolValue || - !self.config.enableDismissGesture) { - self.lockScreenDismissable = NO; - } else { - self.lockScreenDismissable = YES; - } - - if (self.lockScreenDismissedByUser && - [self.lastDriverDistractionNotification.state isEqualToEnum:SDLDriverDistractionStateOn] && - !self.lockScreenDismissable) { - self.lockScreenDismissedByUser = NO; - } - - if (!self.lockScreenDismissedByUser) { - [self sdl_updateLockscreenViewControllerWithDismissableState:self.lockScreenDismissable]; - } -} - -- (void)sdl_updateLockscreenViewControllerWithDismissableState:(BOOL)enabled { - if (![self.lockScreenViewController isKindOfClass:[SDLLockScreenViewController class]]) { - return; - } - - __weak typeof(self) weakSelf = self; - dispatch_async(dispatch_get_main_queue(), ^{ - __strong typeof(self) strongSelf = weakSelf; - SDLLockScreenViewController *lockscreenViewController = (SDLLockScreenViewController *)strongSelf.lockScreenViewController; - if (enabled) { - [lockscreenViewController addDismissGestureWithCallback:^{ - [strongSelf.presenter updateLockScreenToShow:NO withCompletionHandler:nil]; - strongSelf.lockScreenDismissedByUser = YES; - }]; - lockscreenViewController.lockedLabelText = strongSelf.lastDriverDistractionNotification.lockScreenDismissalWarning; - } else { - [lockscreenViewController removeDismissGesture]; - lockscreenViewController.lockedLabelText = nil; - } - }); -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.h deleted file mode 100644 index 11b2ca9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// SDLLockScreenPresenter.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/15/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLViewControllerPresentable.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * An instance of `SDLViewControllerPresentable` used in production (not testing) for presenting the SDL lockscreen. - */ -@interface SDLLockScreenPresenter : NSObject - -/// The view controller to be presented as a lockscreen -@property (strong, nonatomic, nullable) UIViewController *lockViewController; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.m deleted file mode 100644 index 03bca9e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenPresenter.m +++ /dev/null @@ -1,245 +0,0 @@ -// -// SDLLockScreenPresenter.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/15/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLLockScreenPresenter.h" - -#import "SDLLockScreenRootViewController.h" -#import "SDLLogMacros.h" -#import "SDLStreamingMediaManagerConstants.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLockScreenPresenter () - -@property (strong, nonatomic, nullable) UIWindow *lockWindow; -@property (assign, nonatomic) BOOL shouldShowLockScreen; -@property (assign, nonatomic) BOOL isDismissing; - -@end - -@implementation SDLLockScreenPresenter - -#pragma mark - Lifecycle - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - _shouldShowLockScreen = NO; - - return self; -} - -/// Resets the manager by dismissing and destroying the lockscreen. -- (void)stopWithCompletionHandler:(nullable SDLLockScreenDidFinishHandler)completionHandler { - self.shouldShowLockScreen = NO; - - if (self.lockWindow == nil) { - if (completionHandler != nil) { - completionHandler(); - } - return; - } - - // Dismiss and destroy the lockscreen window - __weak typeof(self) weakSelf = self; - [self sdl_dismissWithCompletionHandler:^(BOOL success) { - __strong typeof(weakSelf) strongSelf = weakSelf; - - if (success) { - strongSelf.lockWindow = nil; - strongSelf.lockViewController = nil; - } - - if (completionHandler != nil) { - completionHandler(); - } - }]; -} - -/// Shows or hides the lockscreen with an animation. If the lockscreen is shown/dismissed in rapid succession the final state of the lockscreen may not match the expected state as the order in which the animations finish can be random. To guard against this scenario, store the expected state of the lockscreen. When the animation finishes, check the expected state to make sure that the final state of the lockscreen matches the expected state. If not, perform a final animation to the expected state. -/// @param show True if the lockscreen should be shown; false if it should be dismissed -- (void)updateLockScreenToShow:(BOOL)show withCompletionHandler:(nullable SDLLockScreenDidFinishHandler)completionHandler { - // Store the expected state of the lockscreen - self.shouldShowLockScreen = show; - - __weak typeof(self) weakSelf = self; - if (show) { - [self sdl_presentWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - if (strongSelf.shouldShowLockScreen) { - if (completionHandler != nil) { completionHandler(); } - return; - } - - SDLLogV(@"The lockscreen has been presented but needs to be dismissed"); - [strongSelf sdl_dismissWithCompletionHandler:^(BOOL success) { - if (completionHandler != nil) { completionHandler(); } - }]; - }]; - } else { - [self sdl_dismissWithCompletionHandler:^(BOOL success) { - __strong typeof(weakSelf) strongSelf = weakSelf; - if (!strongSelf.shouldShowLockScreen) { - if (completionHandler != nil) { completionHandler(); } - return; - } - - SDLLogV(@"The lockscreen has been dismissed but needs to be presented"); - [strongSelf sdl_presentWithCompletionHandler:completionHandler]; - }]; - } -} - - -#pragma mark - Present Lock Window - -/// Checks if the lockscreen can be presented and if so presents the lockscreen on the main thread -/// @param completionHandler Called when the lockscreen has finished its animation or if the lockscreen can not be presented -- (void)sdl_presentWithCompletionHandler:(nullable SDLLockScreenDidFinishHandler)completionHandler { - if (self.lockViewController == nil) { - SDLLogW(@"Attempted to present a lockscreen, but lockViewController is not set"); - if (completionHandler == nil) { return; } - return completionHandler(); - } - - __weak typeof(self) weakself = self; - dispatch_async(dispatch_get_main_queue(), ^{ - __typeof(weakself) strongself = weakself; - if (UIApplication.sharedApplication.applicationState != UIApplicationStateActive) { - // If the the `UIWindow` is created while the app is backgrounded and the app is using `SceneDelegate` class (iOS 13+), then the window will not be created correctly. Wait until the app is foregrounded before creating the window. - SDLLogV(@"Application is backgrounded. The lockscreen will not be shown until the application is brought to the foreground."); - if (completionHandler == nil) { return; } - return completionHandler(); - } - - if (strongself.lockWindow == nil) { - strongself.lockWindow = [self.class sdl_createUIWindow]; - strongself.lockWindow.backgroundColor = [UIColor clearColor]; - strongself.lockWindow.windowLevel = UIWindowLevelAlert + 1; - strongself.lockWindow.rootViewController = [[SDLLockScreenRootViewController alloc] init]; - } - - SDLLogD(@"Presenting the lockscreen window"); - [strongself.lockWindow makeKeyAndVisible]; - - if (strongself.isPresentedOrPresenting) { - // Call this right before attempting to present the view controller to make sure we are not already animating, otherwise the app may crash. - SDLLogV(@"The lockscreen is already being presented"); - if (completionHandler == nil) { return; } - return completionHandler(); - } - - // Let ourselves know that the lockscreen will present so we can pause video streaming for a few milliseconds - otherwise the animation to show the lockscreen will be very janky. - [[NSNotificationCenter defaultCenter] postNotificationName:SDLLockScreenManagerWillPresentLockScreenViewController object:nil]; - - [strongself.lockWindow.rootViewController presentViewController:strongself.lockViewController animated:YES completion:^{ - // Tell everyone we are done so video streaming can resume - [[NSNotificationCenter defaultCenter] postNotificationName:SDLLockScreenManagerDidPresentLockScreenViewController object:nil]; - - if (completionHandler == nil) { return; } - return completionHandler(); - }]; - }); -} - - -#pragma mark - Dismiss Lock Window - -/// Checks if the lockscreen can be dismissed and if so dismisses the lockscreen on the main thread. -/// @param completionHandler Called when the lockscreen has finished its animation or if the lockscreen can not be dismissed -- (void)sdl_dismissWithCompletionHandler:(void (^ _Nullable)(BOOL success))completionHandler { - if (self.lockViewController == nil) { - SDLLogW(@"Attempted to dismiss lockscreen, but lockViewController is not set"); - if (completionHandler == nil) { return; } - return completionHandler(NO); - } - - __weak typeof(self) weakSelf = self; - dispatch_async(dispatch_get_main_queue(), ^{ - if (UIApplication.sharedApplication.applicationState != UIApplicationStateActive) { - SDLLogV(@"Application is backgrounded. The lockscreen will not be dismissed until the app is brought to the foreground."); - if (completionHandler == nil) { return; } - return completionHandler(NO); - } - [weakSelf sdl_dismissLockscreenWithCompletionHandler:completionHandler]; - }); -} - -/// Handles the dismissal of the lockscreen with animation. -/// @param completionHandler Called when the lockscreen is dismissed successfully or if it is already in the process of being dismissed -- (void)sdl_dismissLockscreenWithCompletionHandler:(void (^ _Nullable)(BOOL success))completionHandler { - if (self.isDismissing || !self.isPresentedOrPresenting) { - // Make sure we are not already animating, otherwise the app may crash - SDLLogV(@"The lockscreen is already being dismissed"); - if (completionHandler == nil) { return; } - return completionHandler(NO); - } - - if (self.lockViewController.presentingViewController == nil) { - SDLLogW(@"Attempted to dismiss lockscreen, but lockViewController is not presented"); - if (completionHandler == nil) { return; } - return completionHandler(NO); - } - - // Let ourselves know that the lockscreen will dismiss so we can pause video streaming for a few milliseconds - otherwise the animation to dismiss the lockscreen will be very janky. - [[NSNotificationCenter defaultCenter] postNotificationName:SDLLockScreenManagerWillDismissLockScreenViewController object:nil]; - - SDLLogD(@"Dismissing the lockscreen window"); - _isDismissing = YES; - __weak typeof(self) weakSelf = self; - [self.lockViewController dismissViewControllerAnimated:YES completion:^{ - SDLLogD(@"Lockscreen window dismissed"); - __strong typeof(self) strongSelf = weakSelf; - strongSelf->_isDismissing = NO; - [strongSelf.lockWindow setHidden:YES]; - - // Tell everyone we are done so video streaming can resume - [[NSNotificationCenter defaultCenter] postNotificationName:SDLLockScreenManagerDidDismissLockScreenViewController object:nil]; - - if (completionHandler == nil) { return; } - return completionHandler(YES); - }]; -} - -#pragma mark - Custom Presented / Dismissed Getters - -/// Returns whether or not the lockViewController is currently presented or currently animating the presentation of the lockscreen -- (BOOL)isPresentedOrPresenting { - return (self.lockViewController.isViewLoaded && (self.lockViewController.view.window || self.lockViewController.isBeingPresented) && self.lockWindow.isKeyWindow); -} - -/// Returns whether or not the lockViewController is currently animating the dismissal of the lockscreen -- (BOOL)isDismissing { - return (_isDismissing || self.lockViewController.isBeingDismissed || self.lockViewController.isMovingFromParentViewController); -} - -#pragma mark - Window Helpers - -/// If the app is using `SceneDelegate` class (iOS 13+), then the `UIWindow` must be initalized using the active `UIWindowScene`. Otherwise, the newly created window will not appear on the screen even though it is added to the `UIApplication`'s `windows` stack (This seems to be a bug as no official documentation says that a `UIWindow` must be created this way if using the `SceneDelegate` class) -+ (UIWindow *)sdl_createUIWindow { - if (@available(iOS 13.0, *)) { - for (UIScene *scene in UIApplication.sharedApplication.connectedScenes) { - // The scene is either foreground active / inactive, background, or unattached. If the latter three, we don't want to do anything with them. Also check that the scene is for the application and not an external display or CarPlay. - if (scene.activationState != UISceneActivationStateForegroundActive || - ![scene.session.role isEqualToString:UIWindowSceneSessionRoleApplication] || - ![scene isKindOfClass:[UIWindowScene class]]) { - continue; - } - - return [[UIWindow alloc] initWithWindowScene:(UIWindowScene *)scene]; - } - } - - return [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.h deleted file mode 100644 index 1f28c13..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// SDLLockScreenRootViewController.h -// SmartDeviceLink -// -// Created by Nicole on 12/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/// This is the first `viewController` set in the lock screen's `UIWindow`. It's purpose is to fix an Apple bug where having a `UIWindow` (it does not even need to be active, simply created) can break the app's view controller based rotation. This bug lets the status/home bars rotate even if the view controller only supports one orientation. -@interface SDLLockScreenRootViewController : UIViewController - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.m deleted file mode 100644 index 4c706f8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenRootViewController.m +++ /dev/null @@ -1,59 +0,0 @@ -// -// SDLLockScreenRootViewController.m -// SmartDeviceLink -// -// Created by Nicole on 12/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLLockScreenRootViewController.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLockScreenRootViewController () - -@end - -@implementation SDLLockScreenRootViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - self.view.backgroundColor = [UIColor clearColor]; -} - -#pragma mark - Orientation - -/// The view controller should inherit the orientation of the view controller over which the lock screen is being presented. -/// HAX: https://github.com/smartdevicelink/sdl_ios/issues/1250 -- (UIInterfaceOrientationMask)supportedInterfaceOrientations { - UIViewController *viewController = [self sdl_topMostControllerForWindow:UIApplication.sharedApplication.windows.firstObject]; - - return (viewController != nil) ? viewController.supportedInterfaceOrientations : super.supportedInterfaceOrientations; -} - -/// The view controller should inherit the auto rotate settings of the view controller over which the lock screen is being presented. -/// HAX: https://github.com/smartdevicelink/sdl_ios/issues/1250 -- (BOOL)shouldAutorotate { - UIViewController *viewController = [self sdl_topMostControllerForWindow:UIApplication.sharedApplication.windows.firstObject]; - - return (viewController != nil) ? viewController.shouldAutorotate : super.shouldAutorotate; -} - -/// Gets the view controller on top of the stack in a window -/// @param window The window -- (nullable UIViewController *)sdl_topMostControllerForWindow:(nullable UIWindow *)window { - if (!window || !window.rootViewController) { - return nil; - } - - UIViewController *topController = window.rootViewController; - while (topController.presentedViewController != nil) { - topController = topController.presentedViewController; - } - - return topController; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatus.h deleted file mode 100644 index d5d4846..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatus.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLLockScreenStatus.h -// SmartDeviceLink -// - - -#import "SDLEnum.h" - -/** - Describes what the status of the lock screen should be - - Used in OnLockScreenStatus - */ -typedef SDLEnum SDLLockScreenStatus SDL_SWIFT_ENUM __deprecated; - -/** - * LockScreen is Not Required - */ -extern SDLLockScreenStatus const SDLLockScreenStatusOff __deprecated; - -/** - * LockScreen is Optional - */ -extern SDLLockScreenStatus const SDLLockScreenStatusOptional __deprecated; - -/** - * LockScreen is Required - */ -extern SDLLockScreenStatus const SDLLockScreenStatusRequired __deprecated; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatus.m deleted file mode 100644 index 4b721ad..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatus.m +++ /dev/null @@ -1,10 +0,0 @@ -// -// SDLLockScreenStatus.m -// SmartDeviceLink -// - -#import "SDLLockScreenStatus.h" - -SDLLockScreenStatus const SDLLockScreenStatusOff = @"OFF"; -SDLLockScreenStatus const SDLLockScreenStatusOptional = @"OPTIONAL"; -SDLLockScreenStatus const SDLLockScreenStatusRequired = @"REQUIRED"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.h deleted file mode 100644 index 4230f6d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// SDLLockScreenManager.h -// SmartDeviceLink -// - -#import - -#import "SDLHMILevel.h" -#import "SDLLockScreenStatus.h" - -@class SDLNotificationDispatcher; -@class SDLOnLockScreenStatus; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLockScreenStatusManager : NSObject - -@property (assign, nonatomic) BOOL userSelected; -@property (assign, nonatomic) BOOL driverDistracted; -@property (nullable, strong, nonatomic) SDLHMILevel hmiLevel; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -@property (strong, nonatomic, readonly) SDLLockScreenStatus lockScreenStatus; -@property (strong, nonatomic, readonly) SDLOnLockScreenStatus *lockScreenStatusNotification; -#pragma clang diagnostic pop - -- (instancetype)init NS_UNAVAILABLE; -- (instancetype)initWithNotificationDispatcher:(SDLNotificationDispatcher *)dispatcher; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.m deleted file mode 100644 index e661abd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenStatusManager.m +++ /dev/null @@ -1,169 +0,0 @@ -// -// SDLLockScreenManager.m -// SmartDeviceLink -// - -#import "SDLLockScreenStatusManager.h" - -#import "SDLLockScreenStatus.h" -#import "SDLLogMacros.h" -#import "SDLNotificationConstants.h" -#import "SDLNotificationDispatcher.h" -#import "SDLOnDriverDistraction.h" -#import "SDLOnHMIStatus.h" -#import "SDLOnLockScreenStatus.h" -#import "SDLRPCNotificationNotification.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLockScreenStatusManager () - -@property (assign, nonatomic) BOOL haveDriverDistractionStatus; - -@end - - -@implementation SDLLockScreenStatusManager - -#pragma mark - Lifecycle - -- (instancetype)initWithNotificationDispatcher:(SDLNotificationDispatcher *)dispatcher { - self = [super init]; - if (!self) { return nil; } - - _userSelected = NO; - _driverDistracted = NO; - _haveDriverDistractionStatus = NO; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusDidUpdate:) name:SDLDidChangeHMIStatusNotification object:dispatcher]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_driverDistractionDidUpdate:) name:SDLDidChangeDriverDistractionStateNotification object:dispatcher]; - - return self; -} - - -#pragma mark - Getters / Setters -#pragma mark Custom setters - -- (void)setDriverDistracted:(BOOL)driverDistracted { - _driverDistracted = driverDistracted; - _haveDriverDistractionStatus = YES; -} - -- (void)setHmiLevel:(nullable SDLHMILevel)hmiLevel { - if (_hmiLevel != hmiLevel) { - _hmiLevel = hmiLevel; - } - - if ([hmiLevel isEqualToEnum:SDLHMILevelFull] || [hmiLevel isEqualToEnum:SDLHMILevelLimited]) { - self.userSelected = YES; - } else if ([hmiLevel isEqualToEnum:SDLHMILevelNone]) { - self.userSelected = NO; - } -} - - -#pragma mark Custom Getters - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (SDLOnLockScreenStatus *)lockScreenStatusNotification { - SDLOnLockScreenStatus *notification = [[SDLOnLockScreenStatus alloc] init]; -#pragma clang diagnostic pop - notification.driverDistractionStatus = @(self.driverDistracted); - notification.hmiLevel = self.hmiLevel; - notification.userSelected = @(self.userSelected); - notification.lockScreenStatus = self.lockScreenStatus; - - return notification; -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (SDLLockScreenStatus)lockScreenStatus { -#pragma clang diagnostic pop - if (self.hmiLevel == nil || [self.hmiLevel isEqualToEnum:SDLHMILevelNone]) { - // App is not active on the car -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return SDLLockScreenStatusOff; -#pragma clang diagnostic pop - } else if ([self.hmiLevel isEqualToEnum:SDLHMILevelBackground]) { - // App is in the background on the car - if (self.userSelected) { - // It was user selected - if (self.haveDriverDistractionStatus && !self.driverDistracted) { - // We have the distraction status, and the driver is not distracted -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return SDLLockScreenStatusOptional; -#pragma clang diagnostic pop - } else { - // We don't have the distraction status, and/or the driver is distracted -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return SDLLockScreenStatusRequired; -#pragma clang diagnostic pop - } - } else { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return SDLLockScreenStatusOff; -#pragma clang diagnostic pop - } - } else if ([self.hmiLevel isEqualToEnum:SDLHMILevelFull] || [self.hmiLevel isEqualToEnum:SDLHMILevelLimited]) { - // App is in the foreground on the car in some manner - if (self.haveDriverDistractionStatus && !self.driverDistracted) { - // We have the distraction status, and the driver is not distracted -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return SDLLockScreenStatusOptional; -#pragma clang diagnostic pop - } else { - // We don't have the distraction status, and/or the driver is distracted -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return SDLLockScreenStatusRequired; -#pragma clang diagnostic pop - } - } else { - // This shouldn't be possible. -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return SDLLockScreenStatusOff; -#pragma clang diagnostic pop - } -} - -#pragma mark - Utilities - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (void)sdl_postLockScreenStatus:(SDLOnLockScreenStatus *)statusNotification { - SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangeLockScreenStatusNotification object:self rpcNotification:statusNotification]; -#pragma clang diagnostic pop - - SDLLogD(@"Lock screen status changed. Sending new notification: %@", notification); - [[NSNotificationCenter defaultCenter] postNotification:notification]; -} - - -#pragma mark - Observers - -- (void)sdl_hmiStatusDidUpdate:(SDLRPCNotificationNotification *)notification { - SDLOnHMIStatus *hmiStatus = notification.notification; - - self.hmiLevel = hmiStatus.hmiLevel; - [self sdl_postLockScreenStatus:self.lockScreenStatusNotification]; -} - -- (void)sdl_driverDistractionDidUpdate:(SDLRPCNotificationNotification *)notification { - SDLOnDriverDistraction *driverDistraction = notification.notification; - - self.driverDistracted = [driverDistraction.state isEqualToEnum:SDLDriverDistractionStateOn]; - [self sdl_postLockScreenStatus:self.lockScreenStatusNotification]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.h deleted file mode 100644 index acce47b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// SDLLockScreenViewController.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/7/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/// The view controller for the lockscreen. -@interface SDLLockScreenViewController : UIViewController - -/// A block that can be used to close the lockscreen when the user swipes on the lockscreen. Override this in your own custom view controllers if you build a custom lock screen. -typedef void (^SwipeGestureCallbackBlock)(void); - -/** - * The app's icon. This will be set by the lock screen configuration. - */ -@property (copy, nonatomic, nullable) UIImage *appIcon; - -/** - * The vehicle's designated icon. This will be set by the lock screen manager when it is notified that a lock screen icon has been downloaded. - */ -@property (copy, nonatomic, nullable) UIImage *vehicleIcon; - -/** - * The designated background color set in the lock screen configuration, or the default SDL gray-blue. - */ -@property (copy, nonatomic, nullable) UIColor *backgroundColor; - -/** - * The locked label string. This will be set by the lock screen manager to inform the user about the dismissable state. - */ -@property (copy, nonatomic, nullable) NSString *lockedLabelText; - -/** - * Adds a swipe gesture to the lock screen view controller. - */ -- (void)addDismissGestureWithCallback:(SwipeGestureCallbackBlock)swipeGestureCallback; - -/** - * Remove swipe gesture to the lock screen view controller. - */ -- (void)removeDismissGesture; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.m deleted file mode 100644 index 6fc91e9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLockScreenViewController.m +++ /dev/null @@ -1,248 +0,0 @@ -// -// SDLLockScreenViewController.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/7/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "SDLLockScreenViewController.h" - -#import "NSBundle+SDLBundle.h" -#import "SDLGlobals.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLockScreenViewController () - -@property (weak, nonatomic) IBOutlet UIImageView *primaryAppIconImageView; -@property (weak, nonatomic) IBOutlet UIImageView *primaryVehicleIconImageView; -@property (weak, nonatomic) IBOutlet UIImageView *sdlIconImageView; -@property (weak, nonatomic) IBOutlet UIImageView *backupImageView; - -@property (weak, nonatomic) IBOutlet UILabel *lockedLabel; -@property (weak, nonatomic) IBOutlet UIImageView *arrowUpImageView; -@property (weak, nonatomic) IBOutlet UIImageView *arrowDownImageView; -@property (weak, nonatomic) IBOutlet UIImageView *arrowLeftImageView; -@property (weak, nonatomic) IBOutlet UIImageView *arrowRightImageView; -@property (strong, nonatomic) SwipeGestureCallbackBlock dismissGestureCallback; -@property (strong, nonatomic, nullable) UISwipeGestureRecognizer *swipeGesture; - -@end - - -@implementation SDLLockScreenViewController - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - [self sdl_layoutViews]; -} - -- (BOOL)shouldAutorotate { - if (self.presentingViewController != nil) { - return self.presentingViewController.shouldAutorotate; - } else { - return YES; - } -} - -- (UIInterfaceOrientationMask)supportedInterfaceOrientations { - if (self.presentingViewController != nil) { - return self.presentingViewController.supportedInterfaceOrientations; - } else { - return UIInterfaceOrientationMaskAll; - } -} - -- (UIStatusBarStyle)preferredStatusBarStyle { - BOOL useWhiteIcon = [self.class sdl_shouldUseWhiteForegroundForBackgroundColor:self.backgroundColor]; - - return useWhiteIcon ? UIStatusBarStyleLightContent : UIStatusBarStyleDefault; -} - -#pragma mark - Setters - -- (void)setAppIcon:(UIImage *_Nullable)appIcon { - _appIcon = appIcon; - - [self sdl_layoutViews]; -} - -- (void)setVehicleIcon:(UIImage *_Nullable)vehicleIcon { - _vehicleIcon = vehicleIcon; - - [self sdl_layoutViews]; -} - -- (void)setBackgroundColor:(UIColor *_Nullable)backgroundColor { - _backgroundColor = backgroundColor; - - [self sdl_layoutViews]; -} - -- (void)setLockedLabelText:(NSString *_Nullable)lockedLabelText { - _lockedLabelText = lockedLabelText; - - [self sdl_layoutViews]; -} - -#pragma mark - Swipe Gesture - -- (void)addDismissGestureWithCallback:(SwipeGestureCallbackBlock)swipeGestureCallback { - if (!self.swipeGesture) { - self.dismissGestureCallback = swipeGestureCallback; - self.swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(sdl_didSwipeToDismiss:)]; - [self.swipeGesture setDirection: UISwipeGestureRecognizerDirectionDown]; - [self.view addGestureRecognizer:self.swipeGesture]; - } -} - -- (void)removeDismissGesture { - [self.view removeGestureRecognizer:self.swipeGesture]; - self.swipeGesture = nil; -} - -- (void)sdl_didSwipeToDismiss:(UISwipeGestureRecognizer *)gesture { - self.dismissGestureCallback(); -} - -#pragma mark - Layout - -- (void)sdl_layoutViews { - dispatch_async(dispatch_get_main_queue(), ^{ - UIColor *iconColor = [self.class sdl_accentColorBasedOnColor:self.backgroundColor]; - - self.sdlIconImageView.image = [self.class sdl_imageWithName:@"sdl_logo_black"]; - self.sdlIconImageView.tintColor = iconColor; - - self.arrowUpImageView.image = [self.class sdl_imageWithName:@"lock_arrow_up_black"]; - self.arrowUpImageView.tintColor = iconColor; - self.arrowDownImageView.image = [self.class sdl_imageWithName:@"lock_arrow_down_black"]; - self.arrowDownImageView.tintColor = iconColor; - self.arrowLeftImageView.image = [self.class sdl_imageWithName:@"lock_arrow_left_black"]; - self.arrowLeftImageView.tintColor = iconColor; - self.arrowRightImageView.image = [self.class sdl_imageWithName:@"lock_arrow_right_black"]; - self.arrowRightImageView.tintColor = iconColor; - - self.lockedLabel.textColor = iconColor; - self.lockedLabel.numberOfLines = 0; - - if (self.lockedLabelText != nil) { - self.lockedLabel.text = self.lockedLabelText; - } else { - self.lockedLabel.text = NSLocalizedString(@"Locked for your safety", nil); - } - - self.view.backgroundColor = self.backgroundColor; - - if (self.vehicleIcon != nil && self.appIcon != nil) { - [self sdl_setVehicleAndAppIconsLayout]; - } else if (self.vehicleIcon != nil) { - [self sdl_setVehicleIconOnlyLayout]; - } else if (self.appIcon != nil) { - [self sdl_setAppIconOnlyLayout]; - } else { - [self sdl_setNoIconsLayout]; - } - - // HAX: The autolayout doesn't scale for 4s, so hide a view so it doesn't look like garbage. - if (CGRectGetHeight([UIScreen mainScreen].bounds) == 480) { - self.sdlIconImageView.hidden = YES; - } else { - self.sdlIconImageView.hidden = NO; - } - - [self.view layoutIfNeeded]; - }); -} - -- (void)sdl_setVehicleAndAppIconsLayout { - self.primaryAppIconImageView.image = self.appIcon; - self.primaryVehicleIconImageView.image = self.vehicleIcon; - - self.backupImageView.image = nil; - self.backupImageView.tintColor = nil; - - self.arrowUpImageView.alpha = 1.0; - self.arrowDownImageView.alpha = 1.0; - self.arrowLeftImageView.alpha = 1.0; - self.arrowRightImageView.alpha = 1.0; - - self.sdlIconImageView.alpha = 1.0; -} - -- (void)sdl_setAppIconOnlyLayout { - self.primaryAppIconImageView.image = nil; - self.primaryVehicleIconImageView.image = nil; - - self.backupImageView.image = self.appIcon; - self.backupImageView.tintColor = nil; - - self.arrowUpImageView.alpha = 0.0; - self.arrowDownImageView.alpha = 0.0; - self.arrowLeftImageView.alpha = 0.0; - self.arrowRightImageView.alpha = 0.0; - - self.sdlIconImageView.alpha = 1.0; -} - -- (void)sdl_setVehicleIconOnlyLayout { - self.primaryAppIconImageView.image = nil; - self.primaryVehicleIconImageView.image = nil; - - self.backupImageView.image = self.vehicleIcon; - self.backupImageView.tintColor = nil; - - self.arrowUpImageView.alpha = 0.0; - self.arrowDownImageView.alpha = 0.0; - self.arrowLeftImageView.alpha = 0.0; - self.arrowRightImageView.alpha = 0.0; - - self.sdlIconImageView.alpha = 1.0; -} - -- (void)sdl_setNoIconsLayout { - self.primaryAppIconImageView.image = nil; - self.primaryVehicleIconImageView.image = nil; - - self.backupImageView.image = self.sdlIconImageView.image; - self.backupImageView.tintColor = [self.class sdl_accentColorBasedOnColor:self.backgroundColor]; - - self.arrowUpImageView.alpha = 0.0; - self.arrowDownImageView.alpha = 0.0; - self.arrowLeftImageView.alpha = 0.0; - self.arrowRightImageView.alpha = 0.0; - - self.sdlIconImageView.alpha = 0.0; -} - - -#pragma mark - Private Image - -+ (UIColor *)sdl_accentColorBasedOnColor:(UIColor *)backgroundColor { - return [self sdl_shouldUseWhiteForegroundForBackgroundColor:backgroundColor] ? [UIColor whiteColor] : [UIColor blackColor]; -} - -+ (UIImage *)sdl_imageWithName:(NSString *)name { - UIImage* image = [UIImage imageNamed:name inBundle:[NSBundle sdlBundle] compatibleWithTraitCollection:nil]; - return [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; -} - -+ (BOOL)sdl_shouldUseWhiteForegroundForBackgroundColor:(UIColor *)backgroundColor { - CGFloat red, green, blue; - - [backgroundColor getRed:&red green:&green blue:&blue alpha:nil]; - - // http://stackoverflow.com/a/3943023 - red = (red <= 0.3928) ? (red / 12.92) : pow(((red + 0.055) / 1.055), 2.4); - green = (green <= 0.3928) ? (green / 12.92) : pow(((green + 0.055) / 1.055), 2.4); - blue = (blue <= 0.3928) ? (blue / 12.92) : pow(((blue + 0.055) / 1.055), 2.4); - CGFloat luminescence = 0.2126 * red + 0.7152 * green + 0.0722 * blue; - - return (luminescence <= 0.179); -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.h deleted file mode 100644 index 4b6b030..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.h +++ /dev/null @@ -1,81 +0,0 @@ -// -// SDLLogConfiguration.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLogConstants.h" -#import "SDLLogFilter.h" -#import "SDLLogTarget.h" - -@class SDLLogFileModule; - - -NS_ASSUME_NONNULL_BEGIN - -/// Information about the current logging configuration -@interface SDLLogConfiguration : NSObject - -/** - Any custom logging modules used by the developer's code. Defaults to none. - */ -@property (copy, nonatomic) NSSet *modules; - -/** - Where the logs will attempt to output. Defaults to Console. - */ -@property (copy, nonatomic) NSSet> *targets; - -/** - What log filters will run over this session. Defaults to none. - */ -@property (copy, nonatomic) NSSet *filters; - -/** - How detailed of logs will be output. Defaults to Default. - */ -@property (assign, nonatomic) SDLLogFormatType formatType; - -/** - Whether or not logs will be run on a separate queue, asynchronously, allowing the following code to run before the log completes. Or if it will occur synchronously, which will prevent logs from being missed, but will slow down surrounding code. Defaults to YES. - */ -@property (assign, nonatomic, getter=isAsynchronous) BOOL asynchronous; - -/** - Whether or not error logs will be dispatched to loggers asynchronously. Defaults to NO. - */ -@property (assign, nonatomic, getter=areErrorsAsynchronous) BOOL errorsAsynchronous; - -/** - Whether or not assert logs will fire assertions in DEBUG mode. Assertions are always disabled in RELEASE builds. If assertions are disabled, only an error log will fire instead. Defaults to NO. - */ -@property (assign, nonatomic, getter=areAssertionsDisabled) BOOL disableAssertions; - -/** - Any modules that do not have an explicitly specified level will by default use the global log level. Defaults to Error. - Do not specify Default for this parameter. - */ -@property (assign, nonatomic) SDLLogLevel globalLogLevel; - - -/** - A default logger for production. This sets the format type to Default, the log level to Error, and only enables the ASL logger. - - @return A default configuration that may be customized. - */ -+ (instancetype)defaultConfiguration; - -/** - A debug logger for use in development. This sets the format type to Detailed, the log level to Debug, and enables the Console and ASL loggers. - - @return A debug configuration that may be customized. - */ -+ (instancetype)debugConfiguration; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.m deleted file mode 100644 index 36141ce..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConfiguration.m +++ /dev/null @@ -1,92 +0,0 @@ -// -// SDLLogConfiguration.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLLogConfiguration.h" - -#import "SDLLogFileModule.h" -#import "SDLLogFileModuleMap.h" -#import "SDLLogTargetAppleSystemLog.h" -#import "SDLLogTargetOSLog.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLLogConfiguration - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - _modules = [NSSet set]; - _targets = [NSSet set]; - _filters = [NSSet set]; - _formatType = SDLLogFormatTypeDefault; - _asynchronous = YES; - _errorsAsynchronous = NO; - _disableAssertions = NO; - _globalLogLevel = SDLLogLevelError; - - return self; -} - -- (instancetype)initWithDefaultConfiguration { - self = [self init]; - if (!self) { - return nil; - } - - NSOperatingSystemVersion osVersion = [NSProcessInfo processInfo].operatingSystemVersion; - - if (osVersion.majorVersion >= 10) { - _targets = [NSSet setWithArray:@[[SDLLogTargetOSLog logger]]]; - } else { - _targets = [NSSet setWithArray:@[[SDLLogTargetAppleSystemLog logger]]]; - } - - _modules = [SDLLogFileModuleMap sdlModuleMap]; - - return self; -} - -+ (instancetype)defaultConfiguration { - return [[self.class alloc] initWithDefaultConfiguration]; -} - -- (instancetype)initWithDebugConfiguration { - self = [self initWithDefaultConfiguration]; - if (!self) { return nil; } - - _formatType = SDLLogFormatTypeDetailed; - _globalLogLevel = SDLLogLevelDebug; - - return self; -} - -+ (instancetype)debugConfiguration { - return [[self.class alloc] initWithDebugConfiguration]; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(nullable NSZone *)zone { - SDLLogConfiguration *newConfig = [[self.class allocWithZone:zone] init]; - newConfig.modules = self.modules; - newConfig.targets = self.targets; - newConfig.filters = self.filters; - newConfig.formatType = self.formatType; - newConfig.asynchronous = self.asynchronous; - newConfig.errorsAsynchronous = self.errorsAsynchronous; - newConfig.disableAssertions = self.areAssertionsDisabled; - newConfig.globalLogLevel = self.globalLogLevel; - - return newConfig; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConstants.h deleted file mode 100644 index e514edf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogConstants.h +++ /dev/null @@ -1,86 +0,0 @@ -// -// SDLLogConstants.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -@class SDLLogModel; - -NS_ASSUME_NONNULL_BEGIN - -/** - A block that takes in a log model and returns whether or not the log passes the filter and should therefore be logged. - - @param log The log model describing the log. - @return Whether or not the log should be logged. - */ -typedef BOOL (^SDLLogFilterBlock)(SDLLogModel *log); - -/// An enum describing log bytes direction -typedef NS_ENUM(NSUInteger, SDLLogBytesDirection) { - /// Transmit from the app - SDLLogBytesDirectionTransmit, - - /// Receive from the module - SDLLogBytesDirectionReceive -}; - -/** - Flags used for SDLLogLevel to provide correct enum values. This is purely for internal use. - */ -typedef NS_OPTIONS(NSUInteger, SDLLogFlag) { - /// Error level logging - SDLLogFlagError = 1 << 0, - - /// Warning level logging - SDLLogFlagWarning = 1 << 1, - - /// Debug level logging - SDLLogFlagDebug = 1 << 2, - - /// Verbose level logging - SDLLogFlagVerbose = 1 << 3, -}; - -/** - An enum describing a level of logging. - */ -typedef NS_ENUM(NSInteger, SDLLogLevel) { - /// This is used to describe that a "specific" logging will instead use the global log level, for example, a module may use the global log level instead of its own by specifying this level. - SDLLogLevelDefault = -1, - - /// This is used to describe a level that involves absolutely no logs being output. - SDLLogLevelOff = 0, - - /// Only error level logs will be output - SDLLogLevelError = SDLLogFlagError, - - /// Both error and warning level logs will be output - SDLLogLevelWarning = (SDLLogFlagError | SDLLogFlagWarning), - - /// Error, warning, and debug level logs will be output. This level will never be output in RELEASE environments - SDLLogLevelDebug = (SDLLogFlagWarning | SDLLogFlagDebug), - - /// All level logs will be output. This level will never be output in RELEASE environments - SDLLogLevelVerbose = (SDLLogFlagDebug | SDLLogFlagVerbose) -}; - -/** - The output format of logs; how they will appear when printed out into a string. - */ -typedef NS_ENUM(NSUInteger, SDLLogFormatType) { - /// A bare-bones log format: `09:52:07:324 🔹 (SDL)Protocol – a random test i guess` - SDLLogFormatTypeSimple, - - /// A middle detail default log format: `09:52:07:324 🔹 (SDL)Protocol:SDLV2ProtocolHeader:25 – Some log message` - SDLLogFormatTypeDefault, - - /// A very detailed log format: `09:52:07:324 🔹 DEBUG com.apple.main-thread:(SDL)Protocol:[SDLV2ProtocolHeader parse:]:74 – Some log message` - SDLLogFormatTypeDetailed, -}; - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModule.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModule.h deleted file mode 100644 index 16fb3b5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModule.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// SDLLogFileModule.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLogConstants.h" - - -NS_ASSUME_NONNULL_BEGIN - -/// A log file module is a collection of source code files that form a cohesive unit and that logs can all use to describe themselves. E.g. a "transport" module, or a "Screen Manager" module. -@interface SDLLogFileModule : NSObject - -/** - The name of the this module, e.g. "Transport" - */ -@property (copy, nonatomic, readonly) NSString *name; - -/** - All of the files contained within this module. When a log is logged, the `__FILE__` (in Obj-C) or `#file` (in Swift) is automatically captured and checked to see if any module has a file in this set that matches. If it does, it will be logged using the module's log level and the module's name will be printed in the formatted log. - */ -@property (copy, nonatomic, readonly) NSSet *files; - -/** - The custom level of the log. This is `SDLLogLevelDefault` (whatever the current global log level is) by default. - */ -@property (assign, nonatomic) SDLLogLevel logLevel; - -/** - This method is unavailable and may not be used. - - @return Always returns nil - */ -- (instancetype)init NS_UNAVAILABLE; - -/** - Returns an initialized `SDLLogFileModule` that contains a custom name, set of files, and associated log level. - - @param name The name of this module. This will be used when printing a formatted log for a file within this module e.g. "Transport". - @param files The files this module covers. This should correspond to a `__FILE__` or `#file` call for use when comparing a log to this module. Any log originating in a file contained in this set will then use this module's log level and print the module name. - @param level The custom logging level logs originating in files contained in this log module will use. For example, if the global level is `SDLLogLevelError` and this module is configured to `SDLLogLevelVerbose`, all logs originating from files within this module will be logged, not merely error logs. - @return An initialized `SDLLogFileModule` - */ -- (instancetype)initWithName:(NSString *)name files:(NSSet *)files level:(SDLLogLevel)level NS_DESIGNATED_INITIALIZER; - -/** - Returns an initialized `SDLLogFileModule` that contains a custom name and set of files. The logging level is the same as the current global logging file by using `SDLLogLevelDefault`. - - @param name The name of this module. This will be used when printing a formatted log for a file within this module e.g. "Transport". - @param files The files this module covers. This should correspond to a `__FILE__` or `#file` call for use when comparing a log to this module. Any log originating in a file contained in this set will then use this module's log level and print the module name. - @return An initialized `SDLLogFileModule` - */ -- (instancetype)initWithName:(NSString *)name files:(NSSet *)files; - -/** - Returns an initialized `SDLLogFileModule` that contains a custom name and set of files. The logging level is the same as the current global logging file by using `SDLLogLevelDefault`. - - @param name The name of this module. This will be used when printing a formatted log for a file within this module e.g. "Transport". - @param files The files this module covers. This should correspond to a `__FILE__` or `#file` call for use when comparing a log to this module. Any log originating in a file contained in this set will then use this module's log level and print the module name. - @return An initialized `SDLLogFileModule` - */ -+ (instancetype)moduleWithName:(NSString *)name files:(NSSet *)files; - -/** - Returns whether or not this module contains a given file. - - @param fileName The file name to check - @return A BOOL, YES if this module contains the given file. - */ -- (BOOL)containsFile:(NSString *)fileName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModule.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModule.m deleted file mode 100644 index 34718bd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModule.m +++ /dev/null @@ -1,69 +0,0 @@ -// -// SDLLogFileModule.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLLogFileModule.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLLogFileModule - -- (instancetype)init { - NSAssert(NO, @"%s not allowed", __PRETTY_FUNCTION__); - return nil; -} - -- (instancetype)initWithName:(NSString *)name files:(NSSet *)files level:(SDLLogLevel)level { - self = [super init]; - if (!self) { return nil; } - - _name = name; - _files = files; - _logLevel = level; - - return self; -} - -- (instancetype)initWithName:(NSString *)name files:(NSSet *)files { - return [self initWithName:name files:files level:SDLLogLevelDefault]; -} - -+ (instancetype)moduleWithName:(NSString *)name files:(NSSet *)files { - return [[self alloc] initWithName:name files:files]; -} - -- (BOOL)containsFile:(NSString *)fileName { - return [self.files containsObject:fileName]; -} - - -#pragma mark - NSObject - -- (NSUInteger)hash { - return self.name.hash; -} - -- (BOOL)isEqual:(id)object { - if (self == object) { - return YES; - } - - if (![object isKindOfClass:self.class]) { - return NO; - } - - return [self isEqualToModule:(SDLLogFileModule *)object]; -} - -- (BOOL)isEqualToModule:(SDLLogFileModule *)module { - return [self.name isEqualToString:module.name]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModuleMap.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModuleMap.h deleted file mode 100644 index e079cd7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModuleMap.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// SDLLogFileModuleMap.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 3/2/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -@class SDLLogFileModule; - -@interface SDLLogFileModuleMap : NSObject - -+ (NSSet *)sdlModuleMap; - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModuleMap.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModuleMap.m deleted file mode 100644 index 3d25be5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFileModuleMap.m +++ /dev/null @@ -1,147 +0,0 @@ -// -// SDLLogFileModuleMap.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 3/2/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLLogFileModuleMap.h" - -#import "SDLLogFileModule.h" - -@implementation SDLLogFileModuleMap - -+ (NSSet *)sdlModuleMap { - return [NSSet setWithArray:@[[self sdl_transportModule], - [self sdl_tcpTransportModule], - [self sdl_iapTransportModule], - [self sdl_secondaryTransportModule], - [self sdl_protocolModule], - [self sdl_rpcModule], - [self sdl_dispatcherModule], - [self sdl_fileManagerModule], - [self sdl_encryptionLifecycleManagerModule], - [self sdl_lifecycleManagerModule], - [self sdl_systemCapabilityModule], - [self sdl_lockscreenManagerModule], - [self sdl_streamingMediaManagerModule], - [self sdl_videoStreamingMediaManagerModule], - [self sdl_videoStreamingMediaTranscoderModule], - [self sdl_audioStreamingMediaManagerModule], - [self sdl_audioStreamingMediaTranscoderModule], - [self sdl_screenManagerModule], - [self sdl_screenManagerTextAndGraphicModule], - [self sdl_screenManagerSoftButtonModule], - [self sdl_screenManagerSubscribeButtonModule], - [self sdl_screenManagerMenuModule], - [self sdl_screenManagerChoiceSetModule], - [self sdl_utilitiesModule]]]; -} - -#pragma mark Transport - -+ (SDLLogFileModule *)sdl_transportModule { - return [SDLLogFileModule moduleWithName:@"Transport" files:[NSSet setWithArray:@[@"SDLStreamDelegate"]]]; -} - -+ (SDLLogFileModule *)sdl_tcpTransportModule { - return [SDLLogFileModule moduleWithName:@"Transport/TCP" files:[NSSet setWithArray:@[@"SDLTCPTransport"]]]; -} - -+ (SDLLogFileModule *)sdl_iapTransportModule { - return [SDLLogFileModule moduleWithName:@"Transport/IAP" files:[NSSet setWithArray:@[@"SDLIAPSession", @"SDLIAPTransport", @"SDLIAPDataSession", @"SDLIAPControlSession"]]]; -} - -+ (SDLLogFileModule *)sdl_secondaryTransportModule { - return [SDLLogFileModule moduleWithName:@"Transport/Secondary" files:[NSSet setWithArray:@[@"SDLSecondaryTransportManager"]]]; -} - -#pragma mark Low-Level - -+ (SDLLogFileModule *)sdl_protocolModule { - return [SDLLogFileModule moduleWithName:@"Protocol" files:[NSSet setWithArray:@[@"SDLProtocol", @"SDLProtocolMessageAssembler", @"SDLProtocolMessageDisassembler", @"SDLProtocolReceivedMessageRouter", @"SDLV1ProtocolMessage", @"SDLV2ProtocolMessage", @"SDLV1ProtocolHeader", @"SDLV2ProtocolHeader", @"SDLGlobals"]]]; -} - -+ (SDLLogFileModule *)sdl_rpcModule { - return [SDLLogFileModule moduleWithName:@"RPC" files:[NSSet setWithArray:@[@"SDLRPCPayload", @"NSMutableDictionary+Store"]]]; -} - -#pragma mark Managers - -+ (SDLLogFileModule *)sdl_dispatcherModule { - return [SDLLogFileModule moduleWithName:@"Dispatcher" files:[NSSet setWithArray:@[@"SDLNotificationDispatcher", @"SDLResponseDispatcher"]]]; -} - -+ (SDLLogFileModule *)sdl_fileManagerModule { - return [SDLLogFileModule moduleWithName:@"File" files:[NSSet setWithArray:@[@"SDLFileManager", @"SDLFile", @"SDLArtwork", @"SDLListFilesOperation", @"SDLUploadFileOperation", @"SDLDeleteFileOperation"]]]; -} - -+ (SDLLogFileModule *)sdl_encryptionLifecycleManagerModule { - return [SDLLogFileModule moduleWithName:@"Encryption" files:[NSSet setWithArray:@[@"SDLEncryptionLifecycleManager", @"SDLEncryptionConfiguration", @"SDLEncryptionManagerConstants"]]]; -} - -+ (SDLLogFileModule *)sdl_lifecycleManagerModule { - return [SDLLogFileModule moduleWithName:@"Lifecycle" files:[NSSet setWithArray:@[@"SDLLifecycleManager", @"SDLManager", @"SDLAsynchronousOperation", @"SDLBackgroundTaskManager", @"SDLPolicyDataParser", @"SDLLifecycleProtocolHandler", @"SDLLifecycleRPCAdapter", @"SDLLifecycleSyncPDataHandler", @"SDLLifecycleSystemRequestHandler", @"SDLLifecycleMobileHMIStateHandler"]]]; -} - -+ (SDLLogFileModule *)sdl_systemCapabilityModule { - return [SDLLogFileModule moduleWithName:@"System Capability" files:[NSSet setWithArray:@[@"SDLSystemCapabilityManager"]]]; -} - -+ (SDLLogFileModule *)sdl_lockscreenManagerModule { - return [SDLLogFileModule moduleWithName:@"Lockscreen" files:[NSSet setWithArray:@[@"SDLLockScreenManager", @"SDLLockScreenViewController", @"SDLLockScreenPresenter", @"SDLCacheFileManager", @"SDLLockScreenStatusManager"]]]; -} - -+ (SDLLogFileModule *)sdl_streamingMediaManagerModule { - return [SDLLogFileModule moduleWithName:@"Audio and Video Streaming" files:[NSSet setWithArray:@[@"SDLStreamingMediaManager"]]]; -} - -+ (SDLLogFileModule *)sdl_videoStreamingMediaManagerModule { - return [SDLLogFileModule moduleWithName:@"Video Streaming" files:[NSSet setWithArray:@[@"SDLStreamingVideoLifecycleManager", @"SDLTouchManager", @"SDLCarWindow", @"SDLFocusableItemLocator"]]]; -} - -+ (SDLLogFileModule *)sdl_videoStreamingMediaTranscoderModule { - return [SDLLogFileModule moduleWithName:@"Video Streaming/Transcoding" files:[NSSet setWithArray:@[@"SDLH264VideoEncoder", @"SDLRAWH264Packetizer", @"SDLRTPH264Packetizer"]]]; -} - -+ (SDLLogFileModule *)sdl_audioStreamingMediaManagerModule { - return [SDLLogFileModule moduleWithName:@"Audio Streaming" files:[NSSet setWithArray:@[@"SDLStreamingAudioLifecycleManager"]]]; -} - -+ (SDLLogFileModule *)sdl_audioStreamingMediaTranscoderModule { - return [SDLLogFileModule moduleWithName:@"Audio Streaming/Transcoding" files:[NSSet setWithArray:@[@"SDLAudioStreamManager", @"SDLPCMAudioConverter"]]]; -} - -+ (SDLLogFileModule *)sdl_screenManagerModule { - return [SDLLogFileModule moduleWithName:@"Screen" files:[NSSet setWithArray:@[@"SDLScreenManager"]]]; -} - -+ (SDLLogFileModule *)sdl_screenManagerTextAndGraphicModule { - return [SDLLogFileModule moduleWithName:@"Screen/TextAndGraphic" files:[NSSet setWithArray:@[@"SDLTextAndGraphicManager"]]]; -} - -+ (SDLLogFileModule *)sdl_screenManagerSoftButtonModule { - return [SDLLogFileModule moduleWithName:@"Screen/SoftButton" files:[NSSet setWithArray:@[@"SDLSoftButtonManager", @"SDLSoftButtonObject", @"SDLSoftButtonState", @"SDLSoftButtonTransitionOperation", @"SDLSoftButtonReplaceOperation"]]]; -} - -+ (SDLLogFileModule *)sdl_screenManagerSubscribeButtonModule { - return [SDLLogFileModule moduleWithName:@"Screen/SubscribeButton" files:[NSSet setWithArray:@[@"SDLSubscribeButtonManager", @"SDLSubscribeButtonObserver"]]]; -} - -+ (SDLLogFileModule *)sdl_screenManagerMenuModule { - return [SDLLogFileModule moduleWithName:@"Screen/Menu" files:[NSSet setWithArray:@[@"SDLMenuManager", @"SDLVoiceCommandManager"]]]; -} - -+ (SDLLogFileModule *)sdl_screenManagerChoiceSetModule { - return [SDLLogFileModule moduleWithName:@"Screen/ChoiceSet" files:[NSSet setWithArray:@[@"SDLChoiceSetManager", @"SDLCheckChoiceVROptionalOperation", @"SDLDeleteChoicesOperation", @"SDLPreloadChoicesOperation", @"SDLPresentChoiceSetOperation", @"SDLPresentKeyboardOperation", @"SDLChoiceSet"]]]; -} - - -#pragma mark Utilities - -+ (SDLLogFileModule *)sdl_utilitiesModule { - return [SDLLogFileModule moduleWithName:@"Utilities" files:[NSSet setWithArray:@[@"SDLStateMachine"]]]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFilter.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFilter.h deleted file mode 100644 index 9a65147..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFilter.h +++ /dev/null @@ -1,104 +0,0 @@ -// -// SDLLogFilter.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLogConstants.h" - -@class SDLLogFileModule; -@class SDLLogModel; - - -NS_ASSUME_NONNULL_BEGIN - -/// Represents a filter over which SDL logs should be logged -@interface SDLLogFilter : NSObject - -/// A block that takes in a log model and returns whether or not the log passes the filter and should therefore be logged. -@property (strong, nonatomic, readonly) SDLLogFilterBlock filter; - -/// Initializer unavailable -- (instancetype)init NS_UNAVAILABLE; - -/** - Create a new filter with a custom filter block. The filter block will take a log model and return a BOOL of pass / fail. - - @param filter The custom filter to be used - @return An instance of SDLLogFilter - */ -- (instancetype)initWithCustomFilter:(SDLLogFilterBlock)filter NS_DESIGNATED_INITIALIZER; - -/** - Returns a filter that only allows logs not containing the passed string within their message. - - @param string The string, which, if present in the message of the log, will prevent the log from being logged. - @param caseSensitive Whether or not `string` should be checked as case sensitive against the log's message. - @return A filter that may be passed into the `logConfiguration`. - */ -+ (SDLLogFilter *)filterByDisallowingString:(NSString *)string caseSensitive:(BOOL)caseSensitive; - -/** - Returns a filter that only allows logs containing the passed string within their message. - - @param string The string, which, if present in the message of the log, will allow the log to be logged. - @param caseSensitive Whether or not `string` should be checked as case sensitive against the log's message. - @return A filter that may be passed into the `logConfiguration`. - */ -+ (SDLLogFilter *)filterByAllowingString:(NSString *)string caseSensitive:(BOOL)caseSensitive; - -/** - Returns a filter that only allows logs not passing the passed regex against their message. - - @param regex The regex, which, if it matches the message of the log, will prevent the log from being logged. - @return A filter that may be passed into the `logConfiguration`. - */ -+ (SDLLogFilter *)filterByDisallowingRegex:(NSRegularExpression *)regex; - -/** - Returns a filter that only allows logs passing the passed regex against their message. - - @param regex The regex, which, if it matches the message of the log, will allow the log to be logged. - @return A filter that may be passed into the `logConfiguration`. - */ -+ (SDLLogFilter *)filterByAllowingRegex:(NSRegularExpression *)regex; - -/** - Returns a filter that only allows logs not within the specified file modules to be logged. - - @param modules A set of module names. If any match, they will not be logged. - @return A filter that may be passed into the `logConfiguration`. - */ -+ (SDLLogFilter *)filterByDisallowingModules:(NSSet *)modules; - -/** - Returns a filter that only allows logs of the specified file modules to be logged. - - @param modules A set of module names. If any match, they will not be logged. - @return A filter that may be passed into the `logConfiguration`. - */ -+ (SDLLogFilter *)filterByAllowingModules:(NSSet *)modules; - -/** - Returns a filter that only allows logs not within the specified files to be logged. - - @param fileNames If a log matches any of the passed files, the log will not be logged. - @return A filter that may be passed into the `logConfiguration`. - */ -+ (SDLLogFilter *)filterByDisallowingFileNames:(NSSet *)fileNames; - -/** - Returns a filter that only allows logs within the specified files to be logged. - - @param fileNames If a log matches any of the passed files, the log will be logged. - @return A filter that may be passed into the `logConfiguration`. - */ -+ (SDLLogFilter *)filterByAllowingFileNames:(NSSet *)fileNames; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFilter.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFilter.m deleted file mode 100644 index c97656c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogFilter.m +++ /dev/null @@ -1,134 +0,0 @@ -// -// SDLLogFilter.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLLogFilter.h" - -#import "SDLLogFileModule.h" -#import "SDLLogModel.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface NSString (FilterUtilities) - -- (BOOL)sdl_containsString:(NSString *)string caseSensitive:(BOOL)caseSensitive; - -@end - -@implementation NSString (FilterUtilities) - -- (BOOL)sdl_containsString:(NSString *)string caseSensitive:(BOOL)caseSensitive { - NSStringCompareOptions compareOptions = caseSensitive ? 0 : NSCaseInsensitiveSearch; - return ([self rangeOfString:string options:compareOptions].location != NSNotFound); -} - -@end - -@interface SDLLogFilter () - -@property (strong, nonatomic, readwrite) SDLLogFilterBlock filter; - -@end - -@implementation SDLLogFilter - -- (instancetype)initWithCustomFilter:(SDLLogFilterBlock)filter { - self = [super init]; - if (!self) { return nil; } - - _filter = filter; - - return self; -} - -#pragma mark - Filter by string - -+ (SDLLogFilter *)filterByDisallowingString:(NSString *)string caseSensitive:(BOOL)caseSensitive { - // Return YES if it *does not* contain the string - return [[self alloc] initWithCustomFilter:^BOOL(SDLLogModel *log) { - return ![log.message sdl_containsString:string caseSensitive:caseSensitive]; - }]; -} - -+ (SDLLogFilter *)filterByAllowingString:(NSString *)string caseSensitive:(BOOL)caseSensitive { - // Return YES if it *does* contain the string - return [[self alloc] initWithCustomFilter:^BOOL(SDLLogModel *log) { - return [log.message sdl_containsString:string caseSensitive:caseSensitive]; - }]; -} - - -#pragma mark - Filter by regex - -+ (SDLLogFilter *)filterByDisallowingRegex:(NSRegularExpression *)regex { - // Return YES if it *does not* pass the regex - return [[self alloc] initWithCustomFilter:^BOOL(SDLLogModel *log) { - return ([regex numberOfMatchesInString:log.message options:0 range:NSMakeRange(0, log.message.length)] == 0); - }]; -} - -+ (SDLLogFilter *)filterByAllowingRegex:(NSRegularExpression *)regex { - // Return YES if it *does* pass the regex - return [[self alloc] initWithCustomFilter:^BOOL(SDLLogModel *log) { - return ([regex numberOfMatchesInString:log.message options:0 range:NSMakeRange(0, log.message.length)] != 0); - }]; -} - - -#pragma mark - Filter by module - -+ (SDLLogFilter *)filterByDisallowingModules:(NSSet *)modules { - // Return YES if the log is *not* in the set of modules - return [[self alloc] initWithCustomFilter:[self sdl_filterCheckingModules:modules allowed:NO]]; -} - -+ (SDLLogFilter *)filterByAllowingModules:(NSSet *)modules { - // Return YES if the log *is* in the set of modules - return [[self alloc] initWithCustomFilter:[self sdl_filterCheckingModules:modules allowed:YES]]; -} - -+ (SDLLogFilterBlock)sdl_filterCheckingModules:(NSSet *)modules allowed:(BOOL)allowed { - return ^BOOL(SDLLogModel *log) { - for (NSString *module in modules) { - if ([module isEqualToString:log.moduleName]) { - return allowed; - } - } - - return !allowed; - }; -} - - -#pragma mark - Filter by file name - -+ (SDLLogFilter *)filterByDisallowingFileNames:(NSSet *)fileNames { - // Return YES if the log is *not* in the set of file names - return [[self alloc] initWithCustomFilter:[self sdl_filterCheckingFileNames:fileNames allowed:NO]]; -} - -+ (SDLLogFilter *)filterByAllowingFileNames:(NSSet *)fileNames { - // Return YES if the log *is* in the set of file names - return [[self alloc] initWithCustomFilter:[self sdl_filterCheckingFileNames:fileNames allowed:YES]]; -} - -+ (SDLLogFilterBlock)sdl_filterCheckingFileNames:(NSSet *)fileNames allowed:(BOOL)allowed { - return ^BOOL(SDLLogModel *log) { - for (NSString *fileName in fileNames) { - if ([fileName isEqualToString:log.fileName]) { - return allowed; - } - } - - return !allowed; - }; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogMacros.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogMacros.h deleted file mode 100644 index da75a07..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogMacros.h +++ /dev/null @@ -1,109 +0,0 @@ -// -// SDLLogMacros.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 3/2/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLogManager.h" - -#pragma mark - Macros - -#pragma mark - General Macros - -/** - Used to get a string value of the current line's file name in Obj-C - - @warning Internal use only - */ -#define SDLLOG_FILE [[[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lastPathComponent] stringByDeletingPathExtension] - -/** - Used to get a string value of the current line's function in Obj-C - - @warning Internal use only - */ -#define SDLLOG_FUNC [NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] - -/** - Used to get a string value of the current line's dispatch queue in Obj-C - - @warning Internal use only - */ -#define SDLLOG_QUEUE [NSString stringWithUTF8String:dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL)] - -#pragma mark Debug Logs - -#if DEBUG - -/** - Log data bytes coming or going from SDL and the remote system to the console in verbose logging mode - - @warning Internal use only - */ -#define SDLLogBytes(bytes, transmissionDirection) [SDLLogManager logBytes:bytes direction:transmissionDirection timestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE] - -/** - Log a verbose log - - @param msg The format string to log - @param ... The format arguments to log - */ -#define SDLLogV(msg, ...) [SDLLogManager logWithLevel:SDLLogLevelVerbose timestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE formatMessage:msg, ##__VA_ARGS__] - -/** - Log a debug log - - @param msg The format string to log - @param ... The format arguments to log - */ -#define SDLLogD(msg, ...) [SDLLogManager logWithLevel:SDLLogLevelDebug timestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE formatMessage:msg, ##__VA_ARGS__] - -#else - -/** - A stub for logging data bytes, does not exist in RELEASE builds - */ -#define SDLLogBytes(bytes, transmissionDirection) - -/** - A stub for verbose logs, does not exist in RELEASE builds - */ -#define SDLLogV(msg, ...) - -/** - A stub for debug logs, does not exist in DEBUG builds - */ -#define SDLLogD(msg, ...) - -#endif - - -#pragma mark Release Logs - -/** - Log a warning log - - @param msg The format string to log - @param ... The format arguments to log - */ -#define SDLLogW(msg, ...) [SDLLogManager logWithLevel:SDLLogLevelWarning timestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE formatMessage:msg, ##__VA_ARGS__] - -/** - Log an error log - - @param msg The format string to log - @param ... The format arguments to log - */ -#define SDLLogE(msg, ...) [SDLLogManager logWithLevel:SDLLogLevelError timestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE formatMessage:msg, ##__VA_ARGS__] - -/** - Log an assertion log. This will log an error, and assert by default in DEBUG (but this can be disabled in the SDLLogConfiguration). - - @param msg The format string to log - @param ... The format arguments to log - */ -#define SDLLogAssert(msg, ...) [SDLLogManager logAssertWithTimestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE formatMessage:msg, ##__VA_ARGS__] diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.h deleted file mode 100644 index f09faec..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.h +++ /dev/null @@ -1,254 +0,0 @@ -// -// SDLLogManager.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLogConstants.h" -#import "SDLLogTarget.h" - -@class SDLLogConfiguration; -@class SDLLogFileModule; -@class SDLLogFilter; - - -NS_ASSUME_NONNULL_BEGIN - -/** - This is the central manager of logging. A developer should not have to interact with this class, it is exclusively used internally. - */ -@interface SDLLogManager : NSObject - -/** - Active log modules - */ -@property (copy, nonatomic, readonly) NSSet *modules; - -/** - Active log targets - */ -@property (copy, nonatomic, readonly) NSSet> *targets; - -/** - Active log filters - */ -@property (copy, nonatomic, readonly) NSSet *filters; - -/** - Any modules that do not have an explicitly specified level will by default use this log level - */ -@property (assign, nonatomic, readonly) SDLLogLevel globalLogLevel; - -/** - Active log format - */ -@property (assign, nonatomic, readonly) SDLLogFormatType formatType; - -/** - Whether or not verbose, debug, and warning logs are logged asynchronously. If logs are performed async, then some may be missed in the event of a terminating signal such as an exception, but performance is improved and your code will not be slowed by logging. - - Defaults to TRUE - */ -@property (assign, nonatomic, readonly, getter=isAsynchronous) BOOL asynchronous; - -/** - Whether or not error logs are logged asynchronously. If logs are performed async, then some may be missed in the event of a terminating signal such as an exception, but performance is improved and your code will not be slowed by logging. - - Defaults to FALSE - */ -@property (assign, nonatomic, readonly, getter=areErrorsAsynchronous) BOOL errorsAsynchronous; - -/** - Whether or not assert logs will fire assertions in DEBUG mode. Assertions are always disabled in RELEASE builds. If assertions are disabled, only an error log will fire instead. Defaults to NO. - */ -@property (assign, nonatomic, readonly, getter=areAssertionsDisabled) BOOL disableAssertions; - -/** - Active date formatter - */ -@property (class, strong, nonatomic, readonly) NSDateFormatter *dateFormatter; - -/** - The queue asynchronously logged logs are logged on. Say that 10 times fast. - */ -@property (class, assign, nonatomic, readonly) dispatch_queue_t logQueue; - -/** - The singleton object - - @return The singleton object - */ -+ (SDLLogManager *)sharedManager; - -// These are automatically sent to the sharedManager -#pragma mark - Singleton Methods - -/** - Sets a configuration to be used by the log manager's sharedManager. This is generally for internal use and you should set your configuration using SDLManager's startWithConfiguration: method. - - @param configuration The configuration to be used. - */ -+ (void)setConfiguration:(SDLLogConfiguration *)configuration; - -/** - Sets a configuration to be used by the log manager. This is generally for internal use and you should set your configuration using SDLManager's startWithConfiguration: method. - - @param configuration The configuration to be used. - */ -- (void)setConfiguration:(SDLLogConfiguration *)configuration; - -/** - Log to the sharedManager's active log targets. This is used internally to log. If you want to create a log, you should use macros such as `SDLLogD`. - - @param level The level of the log - @param timestamp The time the log was sent - @param file The file the log originated from - @param functionName The function the log originated from - @param line The line the log originated from - @param queueLabel The queue the log was sent from - @param message The message of the log with a format - */ -+ (void)logWithLevel:(SDLLogLevel)level - timestamp:(NSDate *)timestamp - file:(NSString *)file - functionName:(NSString *)functionName - line:(NSInteger)line - queue:(NSString *)queueLabel - formatMessage:(NSString *)message, ... NS_FORMAT_FUNCTION(7, 8); - -/** - Log to this log manager's active log targets. This is used internally to log. If you want to create a log, you should use macros such as `SDLLogD`. - - @param level The level of the log - @param timestamp The time the log was sent - @param file The file the log originated from - @param functionName The function the log originated from - @param line The line the log originated from - @param queueLabel The queue the log was sent from - @param message The message of the log with a format - */ -- (void)logWithLevel:(SDLLogLevel)level - timestamp:(NSDate *)timestamp - file:(NSString *)file - functionName:(NSString *)functionName - line:(NSInteger)line - queue:(NSString *)queueLabel - formatMessage:(NSString *)message, ... NS_FORMAT_FUNCTION(7, 8); - -/** - Log to this sharedManager's active log targets. This is used internally to log. If you want to create a log, you should use macros such as `SDLLogD`. - - @param level The level of the log - @param timestamp The time the log was sent - @param file The file the log originated from - @param functionName The function the log originated from - @param line The line the log originated from - @param queueLabel The queue the log was sent from - @param message The message of the log - */ -+ (void)logWithLevel:(SDLLogLevel)level - timestamp:(NSDate *)timestamp - file:(NSString *)file - functionName:(NSString *)functionName - line:(NSInteger)line - queue:(NSString *)queueLabel - message:(NSString *)message; - -/** - Log to this log manager's active log targets. This is used internally to log. If you want to create a log, you should use macros such as `SDLLogD`. - - @param level The level of the log - @param timestamp The time the log was sent - @param file The file the log originated from - @param functionName The function the log originated from - @param line The line the log originated from - @param queueLabel The queue the log was sent from - @param message The message of the log - */ -- (void)logWithLevel:(SDLLogLevel)level - timestamp:(NSDate *)timestamp - file:(NSString *)file - functionName:(NSString *)functionName - line:(NSInteger)line - queue:(NSString *)queueLabel - message:(NSString *)message; - -/** - Log to this sharedManager's active log targets. This is used internally to log. - - @param data The data to be logged - @param direction Whether its transmit or receive data - @param timestamp The time the log was sent - @param file The file the log originated from - @param functionName The function the log originated from - @param line The line the log originated from - @param queueLabel The queue the log was sent from - */ -+ (void)logBytes:(NSData *)data - direction:(SDLLogBytesDirection)direction - timestamp:(NSDate *)timestamp - file:(NSString *)file - functionName:(NSString *)functionName - line:(NSInteger)line - queue:(NSString *)queueLabel; - -/** - Log to this manager's active log targets. This is used internally to log. - - @param data The data to be logged - @param direction Whether its transmit or receive data - @param timestamp The time the log was sent - @param file The file the log originated from - @param functionName The function the log originated from - @param line The line the log originated from - @param queueLabel The queue the log was sent from - */ -- (void)logBytes:(NSData *)data - direction:(SDLLogBytesDirection)direction - timestamp:(NSDate *)timestamp - file:(NSString *)file - functionName:(NSString *)functionName - line:(NSInteger)line - queue:(NSString *)queueLabel; - -/** - Log an error to the sharedManager's active log targets and assert. This is used internally to log. - - @param timestamp The time the log was sent - @param file The file the log originated from - @param functionName The function the log originated from - @param line The line the log originated from - @param queueLabel The queue the log was sent from - @param message The message of the log - */ -+ (void)logAssertWithTimestamp:(NSDate *)timestamp - file:(NSString *)file - functionName:(NSString *)functionName - line:(NSInteger)line - queue:(NSString *)queueLabel - formatMessage:(NSString *)message, ... NS_FORMAT_FUNCTION(6, 7); - -/** - Log an error to this manager's active log targets and assert. This is used internally to log. - - @param timestamp The time the log was sent - @param file The file the log originated from - @param functionName The function the log originated from - @param line The line the log originated from - @param queueLabel The queue the log was sent from - @param message The message of the log - */ -- (void)logAssertWithTimestamp:(NSDate *)timestamp - file:(NSString *)file - functionName:(NSString *)functionName - line:(NSInteger)line - queue:(NSString *)queueLabel - formatMessage:(NSString *)message, ... NS_FORMAT_FUNCTION(6, 7); - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.m deleted file mode 100644 index ae0fa31..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogManager.m +++ /dev/null @@ -1,355 +0,0 @@ -// -// SDLLogManager.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLLogManager.h" - -#import "SDLGlobals.h" -#import "SDLHexUtility.h" -#import "SDLLogConfiguration.h" -#import "SDLLogFileModule.h" -#import "SDLLogModel.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLogManager () - -@property (copy, nonatomic, readwrite) NSSet *modules; -@property (copy, nonatomic, readwrite) NSSet> *targets; -@property (copy, nonatomic, readwrite) NSSet *filters; - -@property (assign, nonatomic, readwrite) SDLLogLevel globalLogLevel; -@property (assign, nonatomic, readwrite) SDLLogFormatType formatType; - -@property (assign, nonatomic, readwrite, getter=isAsynchronous) BOOL asynchronous; -@property (assign, nonatomic, readwrite, getter=areErrorsAsynchronous) BOOL errorsAsynchronous; -@property (assign, nonatomic, readwrite, getter=areAssertionsDisabled) BOOL disableAssertions; - -@end - -@implementation SDLLogManager - -static NSDateFormatter *_dateFormatter = nil; -static dispatch_queue_t _logQueue = NULL; - -+ (SDLLogManager *)sharedManager { - static SDLLogManager *sharedManager = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedManager = [[SDLLogManager alloc] init]; - }); - - return sharedManager; -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - _modules = [NSSet set]; - _targets = [NSSet set]; - _filters = [NSSet set]; - - _asynchronous = YES; - _errorsAsynchronous = NO; - _disableAssertions = NO; - _globalLogLevel = SDLLogLevelError; - _formatType = SDLLogFormatTypeDefault; - - return self; -} - - -#pragma mark - Configuration - -+ (void)setConfiguration:(SDLLogConfiguration *)configuration { - [[self sharedManager] setConfiguration:configuration]; -} - -- (void)setConfiguration:(SDLLogConfiguration *)configuration { - self.modules = configuration.modules; - self.filters = configuration.filters; - self.formatType = configuration.formatType; - self.asynchronous = configuration.isAsynchronous; - self.errorsAsynchronous = configuration.areErrorsAsynchronous; - self.disableAssertions = configuration.areAssertionsDisabled; - self.globalLogLevel = configuration.globalLogLevel; - - // Start the loggers - NSMutableSet> *startedLoggers = [NSMutableSet set]; - for (id target in configuration.targets) { - // If the logger fails setup, discard it, otherwise, keep it - if ([target setupLogger]) { - [startedLoggers addObject:target]; - } else { - // Because we haven't set up loggers yet, this is necessary - NSLog(@"(SDL) Warning: Log target failed setup: %@", NSStringFromClass(target.class)); - } - } - self.targets = [startedLoggers copy]; -} - - -#pragma mark - Performing Logging - -+ (void)logBytes:(NSData *)data direction:(SDLLogBytesDirection)direction timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel { - [[self sharedManager] logBytes:data direction:direction timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel]; -} - -+ (void)logAssertWithTimestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel formatMessage:(NSString *)message, ... { - va_list args; - va_start(args, message); - NSString *format = [[NSString alloc] initWithFormat:message arguments:args]; - va_end(args); - - [[self sharedManager] logAssertWithTimestamp:timestamp file:file functionName:functionName line:line queue:queueLabel formatMessage:@"%@", format]; -} - -+ (void)logWithLevel:(SDLLogLevel)level timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel message:(NSString *)message { - [[self sharedManager] logWithLevel:level timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:message]; -} - -+ (void)logWithLevel:(SDLLogLevel)level timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel formatMessage:(NSString *)message, ... { - va_list args; - va_start(args, message); - NSString *format = [[NSString alloc] initWithFormat:message arguments:args]; - va_end(args); - - [[self sharedManager] logWithLevel:level timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:format]; -} - -- (void)logBytes:(NSData *)data direction:(SDLLogBytesDirection)direction timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel { - // This only works on Verbose logging - if ([self sdl_logLevelForFile:file] < SDLLogLevelVerbose) { return; } - - NSString *message = [NSString stringWithFormat:@"%@(%lu bytes): %@", [self sdl_logStringForDirection:direction], (unsigned long)data.length, [SDLHexUtility getHexString:data]]; - [self logWithLevel:SDLLogLevelVerbose timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:message]; -} - -- (void)logAssertWithTimestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel formatMessage:(NSString *)message, ... { - va_list args; - va_start(args, message); - NSString *format = [[NSString alloc] initWithFormat:message arguments:args]; - va_end(args); - - [self logWithLevel:SDLLogLevelError timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:format]; - - NSAssert(self.areAssertionsDisabled, @"SDL ASSERTION: %@. To disable these assertions, alter your `SDLLogConfiguration` and set `disableAssertions` to `YES`", format); -} - -- (void)logWithLevel:(SDLLogLevel)level timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel formatMessage:(NSString *)message, ... { - va_list args; - va_start(args, message); - NSString *format = [[NSString alloc] initWithFormat:message arguments:args]; - va_end(args); - - [self logWithLevel:level timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:format]; -} - -- (void)logWithLevel:(SDLLogLevel)level timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel message:(NSString *)message { - NSString *moduleName = [self sdl_moduleForFile:file] ? [self sdl_moduleForFile:file].name : @""; - - SDLLogModel *log = [[SDLLogModel alloc] initWithMessage:message - timestamp:timestamp - level:level - fileName:file - moduleName:moduleName - functionName:functionName - line:line - queueLabel:queueLabel]; - [self sdl_queueLog:log]; -} - -- (void)sdl_queueLog:(SDLLogModel *)log { - if (log.level == SDLLogLevelError) { - if (self.areErrorsAsynchronous) { - [self sdl_asyncLog:log]; - } else { - [self sdl_syncLog:log]; - } - } else { - if (self.isAsynchronous) { - [self sdl_asyncLog:log]; - } else { - [self sdl_syncLog:log]; - } - } -} - -- (void)sdl_asyncLog:(SDLLogModel *)log { - dispatch_async(self.class.logQueue, ^{ - [self sdl_log:log]; - }); -} - -- (void)sdl_syncLog:(SDLLogModel *)log { - [self sdl_log:log]; -} - -- (void)sdl_log:(SDLLogModel *)log { - if ([self sdl_logLevelForFile:log.fileName] < log.level) { return; } - - for (SDLLogFilter *filter in self.filters) { - if (!filter.filter(log)) { return; } - } - - NSString *formattedLog = nil; - switch (self.formatType) { - case SDLLogFormatTypeSimple: - formattedLog = [self sdl_simpleFormatLog:log]; - break; - case SDLLogFormatTypeDefault: - formattedLog = [self sdl_defaultFormatLog:log]; - break; - case SDLLogFormatTypeDetailed: - formattedLog = [self sdl_detailedFormatLog:log]; - break; - } - - for (id target in self.targets) { - [target logWithLog:log formattedLog:formattedLog]; - } -} - - -#pragma mark - Log formatting - -- (NSString *)sdl_simpleFormatLog:(SDLLogModel *)log { - return [self sdl_formatLog:log showDate:YES showLogLevelCharacter:YES showLogLevelName:NO showQueueName:NO showModuleName:YES showFileName:NO showFunctionName:NO showLine:NO]; -} - -- (NSString *)sdl_defaultFormatLog:(SDLLogModel *)log { - return [self sdl_formatLog:log showDate:YES showLogLevelCharacter:YES showLogLevelName:NO showQueueName:NO showModuleName:YES showFileName:YES showFunctionName:NO showLine:YES]; -} - -- (NSString *)sdl_detailedFormatLog:(SDLLogModel *)log { - return [self sdl_formatLog:log showDate:YES showLogLevelCharacter:YES showLogLevelName:YES showQueueName:YES showModuleName:YES showFileName:YES showFunctionName:YES showLine:YES]; -} - -- (NSString *)sdl_formatLog:(SDLLogModel *)log showDate:(BOOL)date showLogLevelCharacter:(BOOL)logChar showLogLevelName:(BOOL)logName showQueueName:(BOOL)queueName showModuleName:(BOOL)moduleName showFileName:(BOOL)fileName showFunctionName:(BOOL)functionName showLine:(BOOL)line { - NSMutableString *logString = [NSMutableString string]; - - if (date) { - [logString appendFormat:@"%@ ", [self.class.dateFormatter stringFromDate:log.timestamp]]; - } - if (logChar) { - [logString appendFormat:@"%@ ", [self sdl_logCharacterForLevel:log.level]]; - } - if (logName) { - [logString appendFormat:@"%@ ", [self sdl_logNameForLevel:log.level]]; - } - if (queueName) { - [logString appendFormat:@"%@ ", log.queueLabel]; - } - if (moduleName) { - [logString appendFormat:@"(SDL)%@", log.moduleName]; - } - if (fileName) { - [logString appendFormat:@":%@", log.fileName]; - } - if (functionName) { - [logString appendFormat:@":%@", log.functionName]; - } - if (line) { - [logString appendFormat:@":%ld ", (long)log.line]; - } - [logString appendFormat:@"- %@\n", log.message]; - - return [logString copy]; -} - -- (NSString *)sdl_logCharacterForLevel:(SDLLogLevel)logLevel { - switch (logLevel) { - case SDLLogLevelVerbose: return @"⚪"; - case SDLLogLevelDebug: return @"🔵"; - case SDLLogLevelWarning: return @"🔶"; - case SDLLogLevelError: return @"❌"; - default: - NSAssert(NO, @"The OFF and DEFAULT log levels are not valid to log with."); - return @""; - } -} - -- (NSString *)sdl_logNameForLevel:(SDLLogLevel)logLevel { - switch (logLevel) { - case SDLLogLevelVerbose: return @"VERBOSE"; - case SDLLogLevelDebug: return @"DEBUG"; - case SDLLogLevelWarning: return @"WARNING"; - case SDLLogLevelError: return @"ERROR"; - default: - NSAssert(NO, @"The OFF and DEFAULT log levels are not valid to log with."); - return @"UNKNOWN"; - } -} - -- (NSString *)sdl_logStringForDirection:(SDLLogBytesDirection)direction { - switch (direction) { - case SDLLogBytesDirectionReceive: - return @"RX"; - case SDLLogBytesDirectionTransmit: - return @"TX"; - } -} - - -#pragma mark - Modules - -- (SDLLogLevel)sdl_logLevelForFile:(NSString *)fileName { - SDLLogFileModule *module = [self sdl_moduleForFile:fileName]; - if (!module) { - return self.globalLogLevel; - } - - if ([module containsFile:fileName]) { - if (module.logLevel == SDLLogLevelDefault) { - return self.globalLogLevel; - } - } - - return module.logLevel; -} - -- (nullable SDLLogFileModule *)sdl_moduleForFile:(NSString *)fileName { - for (SDLLogFileModule *module in self.modules) { - if ([module containsFile:fileName]) { return module; } - } - - return nil; -} - - -#pragma mark - Class property getters - -+ (NSDateFormatter *)dateFormatter { - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - _dateFormatter = [[NSDateFormatter alloc] init]; - _dateFormatter.dateFormat = @"HH:mm:ss:SSS"; - }); - - return _dateFormatter; -} - -+ (dispatch_queue_t)logQueue { - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - if (@available(iOS 10.0, *)) { - _logQueue = dispatch_queue_create_with_target("com.sdl.log", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); - } else { - _logQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; - } - }); - - return _logQueue; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogModel.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogModel.h deleted file mode 100644 index ead7766..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogModel.h +++ /dev/null @@ -1,82 +0,0 @@ -// -// SDLLogModel.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLogConstants.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLogModel : NSObject - -/** - The log message written by the developer. This is the resolved format message if one was used. - */ -@property (copy, nonatomic, readonly) NSString *message; - -/** - The raw timestamp collected by the logging framework when the log triggered. - */ -@property (copy, nonatomic, readonly) NSDate *timestamp; - -/** - The log level of this individual log. If it's a debug log, and triggered because the global level is verbose, this will be debug. - */ -@property (assign, nonatomic, readonly) SDLLogLevel level; - -/** - The label of the dispatch_queue, for example "com.apple.main-queue". - */ -@property (copy, nonatomic, readonly) NSString *queueLabel; - -/** - A module name if one exists for the file name, or `""` if one does not. - */ -@property (copy, nonatomic, null_resettable, readonly) NSString *moduleName; - -/** - The file name from which the log was triggered. - */ -@property (copy, nonatomic, readonly) NSString *fileName; - -/** - The function name from which the log was triggered. - */ -@property (copy, nonatomic, readonly) NSString *functionName; - -/** - The line number of the file from which the log was triggered. - */ -@property (assign, nonatomic, readonly) NSInteger line; - -/** - Returns a fully initialized log message. - - @param message The log message written by the developer. This is the resolved format message if one was used. - @param timestamp The raw timestamp collected by the logging framework when the log triggered. - @param level The log level of this individual log. If it's a debug log, and triggered because the global level is verbose, this will be debug. - @param fileName The file name from which the log was triggered. - @param moduleName A module name if one exists for the file name, or `""` if one does not. - @param functionName The function name from which the log was triggered. - @param line The line number of the file from which the log was triggered. - @param queueLabel The label of the dispatch_queue, for example "com.apple.main-queue". - @return a fully initialized log message. - */ -- (instancetype)initWithMessage:(NSString *)message - timestamp:(NSDate *)timestamp - level:(SDLLogLevel)level - fileName:(NSString *)fileName - moduleName:(nullable NSString *)moduleName - functionName:(NSString *)functionName - line:(NSInteger)line - queueLabel:(NSString *)queueLabel; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogModel.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogModel.m deleted file mode 100644 index 6e9aecc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogModel.m +++ /dev/null @@ -1,72 +0,0 @@ -// -// SDLLogModel.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLLogModel.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLLogModel - -- (instancetype)initWithMessage:(NSString *)message - timestamp:(NSDate *)timestamp - level:(SDLLogLevel)level - fileName:(NSString *)fileName - moduleName:(nullable NSString *)moduleName - functionName:(NSString *)functionName - line:(NSInteger)line - queueLabel:(NSString *)queueLabel { - self = [super init]; - if (!self) { return nil; } - - _message = message; - _timestamp = timestamp; - _level = level; - _fileName = fileName; - _moduleName = moduleName ? moduleName : @""; - _functionName = functionName; - _line = line; - _queueLabel = queueLabel; - - return self; -} - - -#pragma mark - Setters / Getters - -- (void)setModuleName:(nullable NSString *)moduleName { - _moduleName = moduleName ? moduleName : @""; -} - - -#pragma mark - NSCopying - -- (id)copyWithZone:(nullable NSZone *)zone { - return [[self copyWithZone:zone] initWithMessage:_message timestamp:_timestamp level:_level fileName:_fileName moduleName:_moduleName functionName:_functionName line:_line queueLabel:_queueLabel]; -} - - -#pragma mark - Description - -- (NSString *)description { - return [NSString stringWithFormat:@"SDLLogModel (%@): timestamp: %@, file name: %@, module: %@, function: %@, line: %ld, queue: %@, message: %@", [self sdl_stringForLogLevel:self.level], self.timestamp, self.fileName, self.moduleName, self.functionName, (long)self.line, self.queueLabel, self.message]; -} - -- (NSString *)sdl_stringForLogLevel:(SDLLogLevel)level { - switch (level) { - case SDLLogLevelOff: return @"Off"; - case SDLLogLevelVerbose: return @"Verbose"; - case SDLLogLevelDebug: return @"Debug"; - case SDLLogLevelWarning: return @"Warning"; - case SDLLogLevelError: return @"Error"; - case SDLLogLevelDefault: return @"Default"; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTarget.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTarget.h deleted file mode 100644 index 4cb9387..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTarget.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// SDLLogTarget.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -@class SDLLogModel; - - -NS_ASSUME_NONNULL_BEGIN - -/** - A protocol describing a place logs from SDLLogManager are logged to - */ -@protocol SDLLogTarget - -/** - A simple convenience initializer to create the object. This *should not* start up the logger. - - @return An instance of the logger. - */ -+ (id)logger; - -/** - A call to setup the logger in whatever manner it needs to do so. - - @return Whether or not the logger set up correctly. - */ -- (BOOL)setupLogger; - -/** - Log a particular log using the model and the formatted log message to the target. - - @param log The log model, if you can log additional data, such as the log level, use this - @param stringLog The formatted message - */ -- (void)logWithLog:(SDLLogModel *)log formattedLog:(NSString *)stringLog; - -/** - The log target should be torn down. e.g. file handles should be closed - */ -- (void)teardownLogger; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetAppleSystemLog.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetAppleSystemLog.h deleted file mode 100644 index 39923a1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetAppleSystemLog.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// SDLLogTargetASL.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/28/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLogTarget.h" - - -NS_ASSUME_NONNULL_BEGIN - -/** - The Apple System Log target is an iOS 2.0+ compatible log target that logs to both the Console and to the System Log. - */ -@interface SDLLogTargetAppleSystemLog : NSObject - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetAppleSystemLog.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetAppleSystemLog.m deleted file mode 100644 index c9cb311..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetAppleSystemLog.m +++ /dev/null @@ -1,77 +0,0 @@ -// -// SDLLogTargetASL.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/28/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLLogTargetAppleSystemLog.h" - -#import - -#import "SDLLogModel.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLogTargetAppleSystemLog () - -@end - - -@implementation SDLLogTargetAppleSystemLog - -+ (id)logger { - return [[self alloc] init]; -} - -- (BOOL)setupLogger { - return YES; -} - -- (void)logWithLog:(SDLLogModel *)log formattedLog:(NSString *)stringLog { - const char *charLog = [stringLog UTF8String]; - - int aslLevel = [self sdl_aslLevelForSDLLogLevel:log.level]; - int result = asl_log_message(aslLevel, "%s", charLog); - - if (result != 0) { - // Something failed - } -} - -- (void)teardownLogger { - -} - - -#pragma mark - Utilities - -- (int)sdl_aslLevelForSDLLogLevel:(SDLLogLevel)level { - switch (level) { - case SDLLogLevelVerbose: return ASL_LEVEL_NOTICE; - case SDLLogLevelDebug: return ASL_LEVEL_NOTICE; - case SDLLogLevelWarning: return ASL_LEVEL_ERR; - case SDLLogLevelError: return ASL_LEVEL_CRIT; - default: - NSAssert(NO, @"The OFF and DEFAULT log levels are not valid to log with."); - return ASL_LEVEL_DEBUG; - } -} - - -#pragma mark - NSObject - -- (NSUInteger)hash { - return NSStringFromClass(self.class).hash; -} - -// For the target classes, we're going to assume that if they're the same class, they're the same. The reason for this is so that NSSet, for instance, will only allow one of each target type in a set. -- (BOOL)isEqual:(id)object { - return [object isMemberOfClass:self.class]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetFile.h deleted file mode 100644 index dbf34c1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetFile.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// SDLLogTargetFile.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/28/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLogTarget.h" - - -NS_ASSUME_NONNULL_BEGIN - -/** - The File log will log to a text file on the iPhone in Documents/smartdevicelink/log/#appName##datetime##.log. It will log up to 3 logs which will rollover. - */ -@interface SDLLogTargetFile : NSObject - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetFile.m deleted file mode 100644 index a7624cb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetFile.m +++ /dev/null @@ -1,145 +0,0 @@ -// -// SDLLogTargetFile.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/28/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLLogTargetFile.h" - -#import "SDLLogModel.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLogTargetFile () - -@property (assign, nonatomic) NSUInteger maxFiles; -@property (strong, nonatomic, nullable) NSFileHandle *logFileHandle; - -@end - - -@implementation SDLLogTargetFile - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - _maxFiles = 3; - - return self; -} - -+ (id)logger { - return [[self alloc] init]; -} - -- (BOOL)setupLogger { - self.logFileHandle = [self sdl_createFile]; - if (self.logFileHandle == nil) { - return NO; - } - - [self.logFileHandle seekToEndOfFile]; - - return YES; -} - -- (void)logWithLog:(SDLLogModel *)log formattedLog:(NSString *)stringLog { - [self.logFileHandle writeData:[stringLog dataUsingEncoding:NSUTF8StringEncoding]]; -} - -- (void)teardownLogger { - [self.logFileHandle synchronizeFile]; - [self.logFileHandle closeFile]; -} - -- (void)dealloc { - [_logFileHandle synchronizeFile]; - [_logFileHandle closeFile]; -} - - -#pragma mark - File handling - -+ (NSString *)sdl_logDirectory { - NSString *documentsDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject; - - return [documentsDirectory stringByAppendingPathComponent:@"/smartdevicelink/log/"]; -} - - -#pragma mark File creation - -- (NSFileHandle *)sdl_createFile { - NSString *newFilePath = [[self.class sdl_logDirectory] stringByAppendingPathComponent:[self.class sdl_newFileName]]; - - NSFileManager *fileManager = [NSFileManager defaultManager]; - if (![fileManager fileExistsAtPath:[self.class sdl_logDirectory]]) { - [fileManager createDirectoryAtPath:[self.class sdl_logDirectory] withIntermediateDirectories:YES attributes:nil error:nil]; - } - - if ([fileManager fileExistsAtPath:newFilePath]) { - [fileManager removeItemAtPath:newFilePath error:nil]; - } - - [fileManager createFileAtPath:newFilePath contents:nil attributes:nil]; - [self.class sdl_cleanupLogFilesWithMaxFiles:self.maxFiles]; - - return [NSFileHandle fileHandleForWritingAtPath:newFilePath]; -} - -+ (NSString *)sdl_newFileName { - // Grab the name of the app if available, or just use 'smartdevicelink' if it's not - NSString *appName = [NSBundle mainBundle].infoDictionary[@"CFBundleDisplayName"]; - if (appName == nil) { - appName = @"smartdevicelink"; - } - - NSDateFormatter *fileDateFormatter = [[NSDateFormatter alloc] init]; - fileDateFormatter.dateFormat = @"yyyy-MM-dd-HH:mm:ss"; - - return [NSString stringWithFormat:@"%@-%@.log", [fileDateFormatter stringFromDate:[NSDate date]], appName]; -} - - -#pragma mark File cleanup - -+ (void)sdl_cleanupLogFilesWithMaxFiles:(NSUInteger)maxFiles { - NSArray *sortedLogFilePaths = [self sdl_sortedLogFilePaths]; - - // If we have more files now than the max, remove the oldest ones - NSInteger filesToRemove = (NSInteger)sortedLogFilePaths.count - (NSInteger)maxFiles; - for (NSInteger i = 0; i < filesToRemove; i++) { - NSString *path = [[self sdl_logDirectory] stringByAppendingPathComponent:sortedLogFilePaths[(NSUInteger)i]]; - [[NSFileManager defaultManager] removeItemAtPath:path error:nil]; - } -} - -/** - Return the sorted file paths in order from oldest to newest (based on the file names). - - @return An array of file paths from oldest to newest - */ -+ (NSArray *)sdl_sortedLogFilePaths { - NSArray *logFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[self sdl_logDirectory] error:nil]; - return [logFiles sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; -} - - -#pragma mark - NSObject - -- (NSUInteger)hash { - return NSStringFromClass(self.class).hash; -} - -// For the target classes, we're going to assume that if they're the same class, they're the same. The reason for this is so that NSSet, for instance, will only allow one of each target type in a set. -- (BOOL)isEqual:(id)object { - return [object isMemberOfClass:self.class]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetOSLog.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetOSLog.h deleted file mode 100644 index 20861e3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetOSLog.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// SDLLogTargetOSLog.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/28/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLLogTarget.h" - - -NS_ASSUME_NONNULL_BEGIN - -/** - OS_LOG is an iOS 10+ only logging system that logs to the Console and the Apple system console. This is an improved replacement for Apple SysLog (SDLLogTargetAppleSystemLog). - - https://developer.apple.com/reference/os/logging - */ -@interface SDLLogTargetOSLog : NSObject - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetOSLog.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetOSLog.m deleted file mode 100644 index e5d87c2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLLogTargetOSLog.m +++ /dev/null @@ -1,88 +0,0 @@ -// -// SDLLogTargetOSLog.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/28/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLLogTargetOSLog.h" - -#import - -#import "SDLLogModel.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLLogTargetOSLog () - -@property (strong, nonatomic) NSMutableDictionary *clients; - -@end - - -@implementation SDLLogTargetOSLog - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - _clients = [NSMutableDictionary dictionary]; - - return self; -} - -+ (id)logger { - return [[self alloc] init]; -} - -- (BOOL)setupLogger { - // If the iPhone OS is less than 10.0, os_log is not available. - NSOperatingSystemVersion osVersion = [NSProcessInfo processInfo].operatingSystemVersion; - - return osVersion.majorVersion >= 10; -} - -- (void)logWithLog:(SDLLogModel *)log formattedLog:(NSString *)stringLog { - if (@available(iOS 10.0, *)) { - NSString *moduleName = log.moduleName ? log.moduleName : @""; - if (self.clients[moduleName] == nil) { - self.clients[moduleName] = os_log_create("com.sdl.log", moduleName.UTF8String); - } - - os_log_with_type(self.clients[moduleName], [self oslogLevelForSDLLogLevel:log.level], "%{public}@", log.message); - } -} - -- (void)teardownLogger { - self.clients = [NSMutableDictionary dictionary]; -} - -- (os_log_type_t)oslogLevelForSDLLogLevel:(SDLLogLevel)level { - switch (level) { - case SDLLogLevelVerbose: return OS_LOG_TYPE_DEBUG; - case SDLLogLevelDebug: return OS_LOG_TYPE_INFO; - case SDLLogLevelWarning: return OS_LOG_TYPE_ERROR; - case SDLLogLevelError: return OS_LOG_TYPE_FAULT; - default: - NSAssert(NO, @"The OFF and DEFAULT log levels are not valid to log with."); - return OS_LOG_TYPE_DEFAULT; - } -} - - -#pragma mark - NSObject - -- (NSUInteger)hash { - return NSStringFromClass(self.class).hash; -} - -// For the target classes, we're going to assume that if they're the same class, they're the same. The reason for this is so that NSSet, for instance, will only allow one of each target type in a set. -- (BOOL)isEqual:(id)object { - return [object isMemberOfClass:self.class]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMacros.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMacros.h deleted file mode 100644 index 1ab0bb6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMacros.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLMacros.h -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 10/17/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#ifndef SDLMacros_h -#define SDLMacros_h - -// Resolves issue of pre-xcode 8 versions due to NS_STRING_ENUM unavailability. -#ifndef SDL_SWIFT_ENUM - #if __has_attribute(swift_wrapper) - #define SDL_SWIFT_ENUM NS_STRING_ENUM - #else - #define SDL_SWIFT_ENUM - #endif -#endif - -#ifndef SDL_SUPPORTS_CLASS_PROPERTIES - #if defined(SWIFT_CLASS_EXTRA) - #define SDL_SUPPORTS_CLASS_PROPERTIES FOUNDATION_SWIFT_SDK_EPOCH_AT_LEAST(8) - #else - #define SDL_SUPPORTS_CLASS_PROPERTIES NO - #endif -#endif - -#endif /* SDLMacros_h */ diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMaintenanceModeStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMaintenanceModeStatus.h deleted file mode 100644 index 0dba0bc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMaintenanceModeStatus.h +++ /dev/null @@ -1,30 +0,0 @@ -// SDLMaintenanceModeStatus.h -// - - -#import "SDLEnum.h" - -/** - * Describes the maintenence mode. Used in nothing. - */ -typedef SDLEnum SDLMaintenanceModeStatus SDL_SWIFT_ENUM; - -/** - * Maintenance Mode Status : Normal - */ -extern SDLMaintenanceModeStatus const SDLMaintenanceModeStatusNormal; - -/** - * Maintenance Mode Status : Near - */ -extern SDLMaintenanceModeStatus const SDLMaintenanceModeStatusNear; - -/** - * Maintenance Mode Status : Active - */ -extern SDLMaintenanceModeStatus const SDLMaintenanceModeStatusActive; - -/** - * Maintenance Mode Status : Feature not present - */ -extern SDLMaintenanceModeStatus const SDLMaintenanceModeStatusFeatureNotPresent; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMaintenanceModeStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMaintenanceModeStatus.m deleted file mode 100644 index 7477954..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMaintenanceModeStatus.m +++ /dev/null @@ -1,10 +0,0 @@ -// SDLMaintenanceModeStatus.m -// - - -#import "SDLMaintenanceModeStatus.h" - -SDLMaintenanceModeStatus const SDLMaintenanceModeStatusNormal = @"NORMAL"; -SDLMaintenanceModeStatus const SDLMaintenanceModeStatusNear = @"NEAR"; -SDLMaintenanceModeStatus const SDLMaintenanceModeStatusActive = @"ACTIVE"; -SDLMaintenanceModeStatus const SDLMaintenanceModeStatusFeatureNotPresent = @"FEATURE_NOT_PRESENT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.h deleted file mode 100644 index ec0a458..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.h +++ /dev/null @@ -1,224 +0,0 @@ - - -#import "SDLNotificationConstants.h" - -#import "SDLAudioStreamingState.h" -#import "SDLHMILevel.h" -#import "SDLLanguage.h" -#import "SDLSystemContext.h" - -@class SDLConfiguration; -@class SDLFileManager; -@class SDLLifecycleConfiguration; -@class SDLLockScreenConfiguration; -@class SDLPermissionManager; -@class SDLProxy; -@class SDLPutFile; -@class SDLRegisterAppInterfaceResponse; -@class SDLRPCMessage; -@class SDLRPCNotification; -@class SDLRPCRequest; -@class SDLRPCResponse; -@class SDLScreenManager; -@class SDLStreamingMediaManager; -@class SDLSystemCapabilityManager; - -@protocol SDLManagerDelegate; - - -NS_ASSUME_NONNULL_BEGIN - -/// The block called when the manager is ready to be used or an error occurs while attempting to become ready. -/// -/// @param success a bool value if the set up succeeded -/// @param error the error is any exists -typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); - -/// The top level manager object for all of SDL's interactions with the app and the head unit -@interface SDLManager : NSObject - -/** - * The configuration the manager was set up with. - */ -@property (copy, nonatomic, readonly) SDLConfiguration *configuration; - -/** - * The current HMI level of the running app. - */ -@property (copy, nonatomic, readonly, nullable) SDLHMILevel hmiLevel; - -/** - * The current audio streaming state of the running app. - */ -@property (copy, nonatomic, readonly) SDLAudioStreamingState audioStreamingState; - -/** - * The current system context of the running app. - */ -@property (copy, nonatomic, readonly) SDLSystemContext systemContext; - -/** - * The file manager to be used by the running app. - */ -@property (strong, nonatomic, readonly) SDLFileManager *fileManager; - -/** - * The permission manager monitoring RPC permissions. - */ -@property (strong, nonatomic, readonly) SDLPermissionManager *permissionManager; - -/** - * The streaming media manager to be used for starting video sessions. - */ -@property (strong, nonatomic, readonly, nullable) SDLStreamingMediaManager *streamManager; - -/** - * The screen manager for sending UI related RPCs. - */ -@property (strong, nonatomic, readonly) SDLScreenManager *screenManager; - -/** - * Centralized manager for retrieving all system capabilities. - */ -@property (strong, nonatomic, readonly) SDLSystemCapabilityManager *systemCapabilityManager; - -/** - * The response of a register call after it has been received. - */ -@property (strong, nonatomic, readonly, nullable) SDLRegisterAppInterfaceResponse *registerResponse; - -/** - * The auth token, if received. This should be used to log into a user account. Primarily used for cloud apps with companion app stores. - */ -@property (strong, nonatomic, readonly, nullable) NSString *authToken; - -/** - * The manager's delegate. - */ -@property (weak, nonatomic, nullable) id delegate; - -/** - The currently pending RPC request send transactions - */ -@property (copy, nonatomic, readonly) NSArray<__kindof NSOperation *> *pendingRPCTransactions; - - -#pragma mark Lifecycle - -/** - * Initialize the manager with a configuration. Call `startWithHandler` to begin waiting for a connection. - * - * @param configuration Your app's unique configuration for setup. - * @param delegate An optional delegate to be notified of hmi level changes and startup and shutdown. It is recommended that you implement this. - * - * @return An instance of SDLManager - */ -- (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate:(nullable id)delegate NS_DESIGNATED_INITIALIZER; - -/** - * Start the manager, which will tell it to start looking for a connection. Once one does, it will automatically run the setup process and call the readyBlock when done. - * - * @param readyHandler The block called when the manager is ready to be used or an error occurs while attempting to become ready. - */ -- (void)startWithReadyHandler:(SDLManagerReadyBlock)readyHandler NS_SWIFT_NAME(start(readyHandler:)); - -/** - * Stop the manager, it will disconnect if needed and no longer look for a connection. You probably don't need to call this method ever. - * - * If you do call this method, you must wait for SDLManagerDelegate's managerDidDisconnect callback to call startWithReadyHandler:. - */ -- (void)stop; - -/** - * Start the encryption lifecycle manager, which will attempt to open a secure service. - * - * Please call this method in the successful callback of startWithReadyHandler. If you do call this method, you must wait for SDLServiceEncryptionDelegate's serviceEncryptionUpdatedOnService delegate method before you send any encrypted RPCs. - */ -- (void)startRPCEncryption; - -#pragma mark Manually Send RPC Requests - -/** - * Send an RPC of type `Response`, `Notification` or `Request`. Responses and notifications sent to Core do not a response back from Core. Each request sent to Core does get a response, so if you need the response and/or error, call `sendRequest:withResponseHandler:` instead. - * - * @param rpc An RPC of type `SDLRPCResponse`, `SDLRPCNotification` or `SDLRPCRequest` - */ -- (void)sendRPC:(__kindof SDLRPCMessage *)rpc; - -/** - * Send an RPC request and don't bother with the response or error. If you need the response or error, call sendRequest:withCompletionHandler: instead. - * - * @param request The RPC request to send - */ -- (void)sendRequest:(SDLRPCRequest *)request; - -/** - * Send an RPC request and set a completion handler that will be called with the response when the response returns. - * - * @param request The RPC request to send - * @param handler The handler that will be called when the response returns - */ -- (void)sendRequest:(SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler NS_SWIFT_NAME(send(request:responseHandler:)); - -/** - Send all of the requests given as quickly as possible, but in order. Call the completionHandler after all requests have either failed or given a response. - - @param requests The requests to be sent - @param progressHandler A handler called every time a response is received - @param completionHandler A handler to call when all requests have been responded to - */ -- (void)sendRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; - -/** - Send all of the requests one at a time, with the next one going out only after the previous one has received a response. Call the completionHandler after all requests have either failed or given a response. - - @param requests The requests to be sent - @param progressHandler A handler called every time a response is received. Return NO to cancel any requests that have not yet been sent, YES to continue sending requests. - @param completionHandler A handler to call when all requests have been responded to - */ -- (void)sendSequentialRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler NS_SWIFT_NAME(sendSequential(requests:progressHandler:completionHandler:)); - - -#pragma mark - RPC Subscriptions - -/// The block that will be called every time an RPC is received when subscribed to an RPC. -/// -/// @param message The RPC message -typedef void (^SDLRPCUpdatedBlock) (__kindof SDLRPCMessage *message); - -/** - * Subscribe to callbacks about a particular RPC request, notification, or response with a block callback. - * - * @param rpcName The name of the RPC request, response, or notification to subscribe to. - * @param block The block that will be called every time an RPC of the name and type specified is received. - * @return An object that can be passed to `unsubscribeFromRPC:ofType:withObserver:` to unsubscribe the block. - */ -- (id)subscribeToRPC:(SDLNotificationName)rpcName withBlock:(SDLRPCUpdatedBlock)block NS_SWIFT_NAME(subscribe(to:block:)); - -/** - * Subscribe to callbacks about a particular RPC request, notification, or response with a selector callback. - * - * The selector supports the following parameters: - * - * 1. Zero parameters e.g. `- (void)registerAppInterfaceResponse` - * 2. One parameter e.g. `- (void)registerAppInterfaceResponse:(NSNotification *)notification;` - * - * Note that using this method to get a response instead of the `sendRequest:withResponseHandler:` method of getting a response, you will not be notifed of any `SDLGenericResponse` errors where the head unit doesn't understand the request. - * - * @param rpcName The name of the RPC request, response, or notification to subscribe to. - * @param observer The object that will have its selector called every time an RPC of the name and type specified is received. - * @param selector The selector on `observer` that will be called every time an RPC of the name and type specified is received. - */ -- (void)subscribeToRPC:(SDLNotificationName)rpcName withObserver:(id)observer selector:(SEL)selector NS_SWIFT_NAME(subscribe(to:observer:selector:)); - -/** - * Unsubscribe to callbacks about a particular RPC request, notification, or response. - * - * @param rpcName The name of the RPC request, response, or notification to unsubscribe from. - * @param observer The object representing a block callback or selector callback to be unsubscribed - */ -- (void)unsubscribeFromRPC:(SDLNotificationName)rpcName withObserver:(id)observer NS_SWIFT_NAME(unsubscribe(from:observer:)); - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.m deleted file mode 100644 index 41fc1c9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLManager.m +++ /dev/null @@ -1,164 +0,0 @@ - - -#import - -#import "SDLManager.h" - -#import "NSMapTable+Subscripting.h" -#import "SDLConfiguration.h" -#import "SDLConnectionManagerType.h" -#import "SDLFileManagerConfiguration.h" -#import "SDLLifecycleConfiguration.h" -#import "SDLLifecycleManager.h" -#import "SDLLockScreenConfiguration.h" -#import "SDLLockScreenManager.h" -#import "SDLLogConfiguration.h" -#import "SDLManagerDelegate.h" -#import "SDLNotificationDispatcher.h" -#import "SDLResponseDispatcher.h" -#import "SDLRPCRequestNotification.h" -#import "SDLRPCResponseNotification.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLSoftButtonManager.h" -#import "SDLStateMachine.h" -#import "SDLTextAndGraphicManager.h" - - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark - SDLManager Private Interface - -@interface SDLManager () - -@property (strong, nonatomic) SDLLifecycleManager *lifecycleManager; - -@end - - -#pragma mark - SDLManager Implementation - -@implementation SDLManager - -#pragma mark Lifecycle - -- (instancetype)init { - return [self initWithConfiguration:[[SDLConfiguration alloc] initWithLifecycle:[SDLLifecycleConfiguration defaultConfigurationWithAppName:@"SDL APP" fullAppId:@"001"] lockScreen:[SDLLockScreenConfiguration enabledConfiguration] logging:[SDLLogConfiguration defaultConfiguration] fileManager:[SDLFileManagerConfiguration defaultConfiguration] encryption:nil] delegate:nil]; -} - -- (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate:(nullable id)delegate { - self = [super init]; - if (!self) { - return nil; - } - - _lifecycleManager = [[SDLLifecycleManager alloc] initWithConfiguration:configuration delegate:delegate]; - - return self; -} - -- (void)startWithReadyHandler:(SDLManagerReadyBlock)readyHandler { - [self.lifecycleManager startWithReadyHandler:readyHandler]; -} - -- (void)stop { - [self.lifecycleManager stop]; -} - -- (void)startRPCEncryption { - [self.lifecycleManager startRPCEncryption]; -} - -#pragma mark - Passthrough getters / setters - -- (SDLConfiguration *)configuration { - return self.lifecycleManager.configuration; -} - -- (nullable SDLHMILevel)hmiLevel { - return self.lifecycleManager.hmiLevel; -} - -- (SDLFileManager *)fileManager { - return self.lifecycleManager.fileManager; -} - -- (SDLPermissionManager *)permissionManager { - return self.lifecycleManager.permissionManager; -} - -- (nullable SDLStreamingMediaManager *)streamManager { - return self.lifecycleManager.streamManager; -} - -- (SDLScreenManager *)screenManager { - return self.lifecycleManager.screenManager; -} - -- (SDLSystemCapabilityManager *)systemCapabilityManager { - return self.lifecycleManager.systemCapabilityManager; -} - -- (nullable SDLRegisterAppInterfaceResponse *)registerResponse { - return self.lifecycleManager.registerResponse; -} - -- (nullable NSString *)authToken { - return self.lifecycleManager.authToken; -} - -- (nullable id)delegate { - return self.lifecycleManager.delegate; -} - -- (void)setDelegate:(nullable id)delegate { - self.lifecycleManager.delegate = delegate; -} - -- (NSArray<__kindof NSOperation *> *)pendingRPCTransactions { - return self.lifecycleManager.rpcOperationQueue.operations; -} - - -#pragma mark SDLConnectionManager Protocol - -- (void)sendRPC:(__kindof SDLRPCMessage *)rpc { - [self.lifecycleManager sendRPC:rpc]; -} - -- (void)sendRequest:(SDLRPCRequest *)request { - [self sendRequest:request withResponseHandler:nil]; -} - -- (void)sendRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { - [self.lifecycleManager sendRequest:(__kindof SDLRPCMessage *)request withResponseHandler:handler]; -} - -- (void)sendRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler { - [self.lifecycleManager sendRequests:requests progressHandler:progressHandler completionHandler:completionHandler]; -} - -- (void)sendSequentialRequests:(NSArray *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler { - [self.lifecycleManager sendSequentialRequests:requests progressHandler:progressHandler completionHandler:completionHandler]; -} - - -#pragma mark - RPC Subscriptions - -- (id)subscribeToRPC:(SDLNotificationName)rpcName withBlock:(SDLRPCUpdatedBlock)block { - return [[NSNotificationCenter defaultCenter] addObserverForName:rpcName object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) { - SDLRPCMessage *message = note.userInfo[SDLNotificationUserInfoObject]; - block(message); - }]; -} - -- (void)subscribeToRPC:(SDLNotificationName)rpcName withObserver:(id)observer selector:(SEL)selector { - [[NSNotificationCenter defaultCenter] addObserver:observer selector:selector name:rpcName object:nil]; -} - -- (void)unsubscribeFromRPC:(SDLNotificationName)rpcName withObserver:(id)observer { - [[NSNotificationCenter defaultCenter] removeObserver:observer name:rpcName object:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLManagerDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLManagerDelegate.h deleted file mode 100644 index f91a5ec..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLManagerDelegate.h +++ /dev/null @@ -1,80 +0,0 @@ -// -// SDLManagerDelegate.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 6/7/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAudioStreamingState.h" -#import "SDLHMILevel.h" -#import "SDLSystemContext.h" -#import "SDLLifecycleConfigurationUpdate.h" -#import "SDLLanguage.h" -#import "SDLVideoStreamingState.h" - -NS_ASSUME_NONNULL_BEGIN - -/// The manager's delegate -@protocol SDLManagerDelegate - -/** - * Called upon a disconnection from the remote system. - */ -- (void)managerDidDisconnect; - -/** - * Called when the HMI level state of this application changes on the remote system. This is equivalent to the application's state changes in iOS such as foreground, background, or closed. - * - * @param oldLevel The previous level which has now been left. - * @param newLevel The current level. - */ -- (void)hmiLevel:(SDLHMILevel)oldLevel didChangeToLevel:(SDLHMILevel)newLevel; - -@optional -/** - * Called when the audio streaming state of this application changes on the remote system. This refers to when streaming audio is audible to the user. - * - * @param oldState The previous state which has now been left. - * @param newState The current state. - */ -- (void)audioStreamingState:(nullable SDLAudioStreamingState)oldState didChangeToState:(SDLAudioStreamingState)newState; - -/// Called when the video streaming state of this application changes. This refers to streaming video for navigation purposes. If you are "autostreaming" via CarWindow, you should not do anything with this method. Everything should be handled for you automatically. -/// -/// Only supported on RPC v5.0+ connections. -/// -/// @param oldState The previous state -/// @param newState The current state -- (void)videoStreamingState:(nullable SDLVideoStreamingState)oldState didChangetoState:(SDLVideoStreamingState)newState; - -/** - * Called when the system context of this application changes on the remote system. This refers to whether or not a user-initiated interaction is in progress, and if so, what it is. - * - * @param oldContext The previous context which has now been left. - * @param newContext The current context. - */ -- (void)systemContext:(nullable SDLSystemContext)oldContext didChangeToContext:(SDLSystemContext)newContext; - -/** - * Called when the lifecycle manager detected a language mismatch. In case of a language mismatch the manager should change the apps registration by updating the lifecycle configuration to the specified language. If the app can support the specified language it should return an Object of SDLLifecycleConfigurationUpdate, otherwise it should return nil to indicate that the language is not supported. - * - * @param language The language of the connected head unit the manager is trying to update the configuration. - * @return An object of SDLLifecycleConfigurationUpdate if the head unit language is supported, otherwise nil to indicate that the language is not supported. - */ -- (nullable SDLLifecycleConfigurationUpdate *)managerShouldUpdateLifecycleToLanguage:(SDLLanguage)language __deprecated_msg("Use managerShouldUpdateLifecycleToLanguage:hmiLanguage"); - -/** - * Called when the lifecycle manager detected a language mismatch. In case of a language mismatch the manager should change the apps registration by updating the lifecycle configuration to the specified language. If the app can support the specified language it should return an Object of SDLLifecycleConfigurationUpdate, otherwise it should return nil to indicate that the language is not supported. - * - * @param language The VR+TTS language of the connected head unit the manager is trying to update the configuration. - * @param hmiLanguage The HMI display language of the connected head unit the manager is trying to update the configuration. - * @return An object of SDLLifecycleConfigurationUpdate if the head unit language is supported, otherwise nil to indicate that the language is not supported. - */ -- (nullable SDLLifecycleConfigurationUpdate *)managerShouldUpdateLifecycleToLanguage:(SDLLanguage)language hmiLanguage:(SDLLanguage)hmiLanguage; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushion.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushion.h deleted file mode 100644 index f4886d3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushion.h +++ /dev/null @@ -1,35 +0,0 @@ -// SDLMassageCushion.h -// - -#import "SDLEnum.h" - -/** - * The List possible cushions of a multi-contour massage seat. - */ -typedef SDLEnum SDLMassageCushion SDL_SWIFT_ENUM; - -/** - * @abstract TOP LUMBAR cushions of a multi-contour massage seat - */ -extern SDLMassageCushion const SDLMassageCushionTopLumbar; - -/** - * @abstract MIDDLE LUMBAR cushion of a multi-contour massage seat - */ -extern SDLMassageCushion const SDLMassageCushionMiddleLumbar; - -/** - * @abstract BOTTOM LUMBAR cushion of a multi-contour massage seat - */ -extern SDLMassageCushion const SDLMassageCushionBottomLumbar; - -/** - * @abstract BACK BOLSTERS cushion of a multi-contour massage seat - */ -extern SDLMassageCushion const SDLMassageCushionBackBolsters; - -/** - * @abstract SEAT BOLSTERS cushion of a multi-contour massage seat - */ -extern SDLMassageCushion const SDLMassageCushionSeatBolsters; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushion.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushion.m deleted file mode 100644 index 0b81626..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushion.m +++ /dev/null @@ -1,10 +0,0 @@ -// SDLMassageCushion.m -// - -#import "SDLMassageCushion.h" - -SDLMassageCushion const SDLMassageCushionTopLumbar = @"TOP_LUMBAR"; -SDLMassageCushion const SDLMassageCushionMiddleLumbar = @"MIDDLE_LUMBAR"; -SDLMassageCushion const SDLMassageCushionBottomLumbar = @"BOTTOM_LUMBAR"; -SDLMassageCushion const SDLMassageCushionBackBolsters = @"BACK_BOLSTERS"; -SDLMassageCushion const SDLMassageCushionSeatBolsters = @"SEAT_BOLSTERS"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushionFirmness.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushionFirmness.h deleted file mode 100644 index d8bb5d4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushionFirmness.h +++ /dev/null @@ -1,40 +0,0 @@ -// SDLMassageCushionFirmness.h -// - -#import "SDLRPCStruct.h" -#import "SDLMassageCushion.h" -/** - * The intensity or firmness of a cushion. - */ - -NS_ASSUME_NONNULL_BEGIN -@interface SDLMassageCushionFirmness : SDLRPCStruct - - -/** - Constructs a newly allocated SDLMassageCushionFirmness object with cushion and firmness - - @param cushion The cushion type for a multi-contour massage seat - @param firmness The firmness value for the multi-contour massage seat, MinValue: 0 MaxValue: 100 - @return An instance of the SDLMassageCushionFirmness class - */ -- (instancetype)initWithMassageCushion:(SDLMassageCushion)cushion firmness:(UInt8)firmness; - -/** - * @abstract cushion of a multi-contour massage seat. - * - * @see SDLMassageCushion - */ -@property (strong, nonatomic) SDLMassageCushion cushion; - -/** - * @abstract zone of a multi-contour massage seat. - * - * Required, MinValue: 0 MaxValue: 100 - * - */ -@property (strong, nonatomic) NSNumber *firmness; -@end - -NS_ASSUME_NONNULL_END - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushionFirmness.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushionFirmness.m deleted file mode 100644 index 96dacd0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageCushionFirmness.m +++ /dev/null @@ -1,44 +0,0 @@ -// SDLMassageCushionFirmness.m -// - -#import "SDLRPCParameterNames.h" -#import "SDLMassageCushionFirmness.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLMassageCushionFirmness - -- (instancetype)initWithMassageCushion:(SDLMassageCushion)cushion firmness:(UInt8)firmness { - self = [super init]; - if (!self) { - return nil; - } - - self.cushion = cushion; - self.firmness = @(firmness); - - return self; -} - -- (void)setCushion:(SDLMassageCushion)cushion { - [self.store sdl_setObject:cushion forName:SDLRPCParameterNameCushion]; -} - -- (SDLMassageCushion)cushion { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameCushion error:&error]; -} - -- (void)setFirmness:(NSNumber *)firmness { - [self.store sdl_setObject:firmness forName:SDLRPCParameterNameFirmness]; -} - -- (NSNumber *)firmness { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameFirmness ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageMode.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageMode.h deleted file mode 100644 index bcd0055..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageMode.h +++ /dev/null @@ -1,25 +0,0 @@ -// SDLMassageMode.h -// - -#import "SDLEnum.h" - -/** - * The List possible modes of a massage zone. - */ -typedef SDLEnum SDLMassageMode SDL_SWIFT_ENUM; - -/** - * @abstract Massage Mode Status : OFF - */ -extern SDLMassageMode const SDLMassageModeOff; - -/** - * @abstract Massage Mode Status : LOW - */ -extern SDLMassageMode const SDLMassageModeLow; - -/** - * @abstract Massage Mode Status : HIGH - */ -extern SDLMassageMode const SDLMassageModeHigh; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageMode.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageMode.m deleted file mode 100644 index 782aa66..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageMode.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLMassageMode.m -// - -#import "SDLMassageMode.h" - -SDLMassageMode const SDLMassageModeOff = @"OFF"; -SDLMassageMode const SDLMassageModeLow = @"LOW"; -SDLMassageMode const SDLMassageModeHigh = @"HIGH"; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageModeData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageModeData.h deleted file mode 100644 index 25d3d0d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageModeData.h +++ /dev/null @@ -1,39 +0,0 @@ -// SDLMassageModeData.h -// - -#import "SDLRPCStruct.h" -#import "SDLMassageZone.h" -#import "SDLMassageMode.h" - -/** - * Specify the mode of a massage zone. - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLMassageModeData : SDLRPCStruct - -/** - * @abstract Constructs a newly allocated SDLMassageModeData object with massageMode and massageZone - */ -- (instancetype)initWithMassageMode:(SDLMassageMode)massageMode massageZone:(SDLMassageZone)massageZone; - -/** -* @abstract mode of a massage zone -* -* @see SDLMassageMode -* -*/ -@property (strong, nonatomic) SDLMassageMode massageMode; - -/** - * @abstract zone of a multi-contour massage seat. - * - * @see SDLMassageZone - * - */ -@property (strong, nonatomic) SDLMassageZone massageZone; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageModeData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageModeData.m deleted file mode 100644 index fbcd4dd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageModeData.m +++ /dev/null @@ -1,43 +0,0 @@ -// SDLMassageModeData.m -// - -#import "SDLRPCParameterNames.h" -#import "SDLMassageModeData.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLMassageModeData - -- (instancetype)initWithMassageMode:(SDLMassageMode)massageMode massageZone:(SDLMassageZone)massageZone { - self = [super init]; - if (!self) { - return nil; - } - - self.massageMode = massageMode; - self.massageZone = massageZone; - - return self; -} - -- (void)setMassageMode:(SDLMassageMode)massageMode { - [self.store sdl_setObject:massageMode forName:SDLRPCParameterNameMassageMode]; -} - -- (SDLMassageMode)massageMode { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameMassageMode error:&error]; -} - -- (void)setMassageZone:(SDLMassageZone)massageZone { - [self.store sdl_setObject:massageZone forName:SDLRPCParameterNameMassageZone]; -} - -- (SDLMassageZone)massageZone { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameMassageZone error:&error]; -} - -@end -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageZone.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageZone.h deleted file mode 100644 index 06b7aa4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageZone.h +++ /dev/null @@ -1,20 +0,0 @@ -// SDLMassageZone.h -// - -#import "SDLEnum.h" - -/** - * List possible zones of a multi-contour massage seat. - */ -typedef SDLEnum SDLMassageZone SDL_SWIFT_ENUM; - -/** - * @abstract The back of a multi-contour massage seat. or SEAT_BACK - */ -extern SDLMassageZone const SDLMassageZoneLumbar; - -/** - * @abstract The bottom a multi-contour massage seat. or SEAT_BOTTOM - */ -extern SDLMassageZone const SDLMassageZoneSeatCushion; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageZone.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageZone.m deleted file mode 100644 index 26f9e0a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMassageZone.m +++ /dev/null @@ -1,7 +0,0 @@ -// SDLMassageZone.m -// - -#import "SDLMassageZone.h" - -SDLMassageZone const SDLMassageZoneLumbar = @"LUMBAR"; -SDLMassageZone const SDLMassageZoneSeatCushion = @"SEAT_CUSHION"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaClockFormat.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaClockFormat.h deleted file mode 100644 index c16ebb8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaClockFormat.h +++ /dev/null @@ -1,115 +0,0 @@ -// SDLMediaClockFormat.h -// - - -#import "SDLEnum.h" - -/** - Indicates the format of the time displayed on the connected SDL unit. - - Format description follows the following nomenclature:
      - Sp = Space
      - | = or
      - c = character
      - - Used in DisplayCapabilities - - @since SDL 1.0 - */ -typedef SDLEnum SDLMediaClockFormat SDL_SWIFT_ENUM; - -/** - * Media clock format: Clock1 - * - * maxHours = 19 - * maxMinutes = 59 - * maxSeconds = 59 - */ -extern SDLMediaClockFormat const SDLMediaClockFormatClock1; - -/** - * Media clock format: Clock2 - * - * maxHours = 59 - * maxMinutes = 59 - * maxSeconds = 59 - */ -extern SDLMediaClockFormat const SDLMediaClockFormatClock2; - -/** - * Media clock format: Clock3 - * - * @discussion - *

        - * maxHours = 9 - * maxMinutes = 59 - * maxSeconds = 59 - *
      - * - * @since SDL 2.0 - */ -extern SDLMediaClockFormat const SDLMediaClockFormatClock3; - -/** - * Media clock format: ClockText1 - * - * @discussion - *
        - * 5 characters possible - * Format: 1|sp c :|sp c c - * 1|sp : digit "1" or space - * c : character out of following character set: sp|0-9|[letters, see - * TypeII column in XLS. - * :|sp : colon or space - * used for Type II headunit - *
      - */ -extern SDLMediaClockFormat const SDLMediaClockFormatClockText1; - -/** - * Media clock format: ClockText2 - * - * @discussion - *
        - * 5 characters possible - * Format: 1|sp c :|sp c c - * 1|sp : digit "1" or space - * c : character out of following character set: sp|0-9|[letters, see - * CID column in XLS. - * :|sp : colon or space - * used for CID headunit - *
      - * difference between CLOCKTEXT1 and CLOCKTEXT2 is the supported character - * set - */ -extern SDLMediaClockFormat const SDLMediaClockFormatClockText2; - -/** - * Media clock format: ClockText3 - * - * @discussion - *
        - * 6 chars possible - * Format: 1|sp c c :|sp c c - * 1|sp : digit "1" or space - * c : character out of following character set: sp|0-9|[letters, see - * Type 5 column in XLS]. - * :|sp : colon or space - * used for Type V headunit - *
      - * difference between CLOCKTEXT1 and CLOCKTEXT2 is the supported character - * set - */ -extern SDLMediaClockFormat const SDLMediaClockFormatClockText3; - -/** - * Media clock format: ClockText4 - * - * 6 chars possible - * Format: c :|sp c c : c c - * :|sp : colon or space - * c : character out of following character set: sp|0-9|[letters] used for MFD3/4/5 headunits - * - * @since SDL 2.0 - */ -extern SDLMediaClockFormat const SDLMediaClockFormatClockText4; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaClockFormat.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaClockFormat.m deleted file mode 100644 index f718948..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaClockFormat.m +++ /dev/null @@ -1,13 +0,0 @@ -// SDLMediaClockFormat.m -// - - -#import "SDLMediaClockFormat.h" - -SDLMediaClockFormat const SDLMediaClockFormatClock1 = @"CLOCK1"; -SDLMediaClockFormat const SDLMediaClockFormatClock2 = @"CLOCK2"; -SDLMediaClockFormat const SDLMediaClockFormatClock3 = @"CLOCK3"; -SDLMediaClockFormat const SDLMediaClockFormatClockText1 = @"CLOCKTEXT1"; -SDLMediaClockFormat const SDLMediaClockFormatClockText2 = @"CLOCKTEXT2"; -SDLMediaClockFormat const SDLMediaClockFormatClockText3 = @"CLOCKTEXT3"; -SDLMediaClockFormat const SDLMediaClockFormatClockText4 = @"CLOCKTEXT4"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.h deleted file mode 100644 index 7d4d618..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.h +++ /dev/null @@ -1,177 +0,0 @@ -// -// SDLMediaServiceData.h -// SmartDeviceLink -// -// Created by Nicole on 2/8/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" -#import "SDLMediaType.h" - -@class SDLImage; - -NS_ASSUME_NONNULL_BEGIN - - -/** - * This data is related to what a media service should provide. - */ -@interface SDLMediaServiceData : SDLRPCStruct - -/** - * Convenience init - * - * @param mediaType The type of the currently playing or paused track - * @param mediaTitle The name of the current playing media - * @param mediaArtist The name of the current media artist - * @param mediaAlbum The name of the current media album - * @param playlistName The name of the playlist - * @param isExplicit Whether or not the content currently playing contains explicit content - * @param trackPlaybackProgress The current progress of the track - * @param trackPlaybackDuration The total duration of the track - * @param queuePlaybackProgress The current progress of the playback queue in seconds - * @param queuePlaybackDuration The total duration of the playback queue in seconds - * @param queueCurrentTrackNumber The current number (1 based) of the track in the playback queue - * @param queueTotalTrackCount The total number of tracks in the playback queue - * @return A SDLMediaServiceData object - */ -- (instancetype)initWithMediaType:(nullable SDLMediaType)mediaType mediaTitle:(nullable NSString *)mediaTitle mediaArtist:(nullable NSString *)mediaArtist mediaAlbum:(nullable NSString *)mediaAlbum playlistName:(nullable NSString *)playlistName isExplicit:(BOOL)isExplicit trackPlaybackProgress:(UInt32)trackPlaybackProgress trackPlaybackDuration:(UInt32)trackPlaybackDuration queuePlaybackProgress:(UInt32)queuePlaybackProgress queuePlaybackDuration:(UInt32)queuePlaybackDuration queueCurrentTrackNumber:(UInt32)queueCurrentTrackNumber queueTotalTrackCount:(UInt32)queueTotalTrackCount __deprecated_msg("Use initWithMediaType:mediaImage:mediaTitle:mediaArtist:mediaAlbum:playlistName:isExplicit:trackPlaybackProgress:trackPlaybackDuration:queuePlaybackProgress:queuePlaybackDuration:queueCurrentTrackNumber:queueTotalTrackCount: instead"); - -/** - * Convenience init - * - * @param mediaType The type of the currently playing or paused track - * @param mediaImage The current artwork for the playing media. - * @param mediaTitle The name of the current playing media - * @param mediaArtist The name of the current media artist - * @param mediaAlbum The name of the current media album - * @param playlistName The name of the playlist - * @param isExplicit Whether or not the content currently playing contains explicit content - * @param trackPlaybackProgress The current progress of the track - * @param trackPlaybackDuration The total duration of the track - * @param queuePlaybackProgress The current progress of the playback queue in seconds - * @param queuePlaybackDuration The total duration of the playback queue in seconds - * @param queueCurrentTrackNumber The current number (1 based) of the track in the playback queue - * @param queueTotalTrackCount The total number of tracks in the playback queue - * @return A SDLMediaServiceData object - */ -- (instancetype)initWithMediaType:(nullable SDLMediaType)mediaType mediaImage:(nullable SDLImage *)mediaImage mediaTitle:(nullable NSString *)mediaTitle mediaArtist:(nullable NSString *)mediaArtist mediaAlbum:(nullable NSString *)mediaAlbum playlistName:(nullable NSString *)playlistName isExplicit:(BOOL)isExplicit trackPlaybackProgress:(UInt32)trackPlaybackProgress trackPlaybackDuration:(UInt32)trackPlaybackDuration queuePlaybackProgress:(UInt32)queuePlaybackProgress queuePlaybackDuration:(UInt32)queuePlaybackDuration queueCurrentTrackNumber:(UInt32)queueCurrentTrackNumber queueTotalTrackCount:(UInt32)queueTotalTrackCount; - -/** - * Sets the media image associated with the currently playing media - * Music: The album art of the current track - * Podcast: The podcast or chapter artwork of the current podcast episode - * Audiobook: The book or chapter artwork of the current audiobook - * - * SDLImage, Optional - */ -@property (nullable, strong, nonatomic) SDLImage *mediaImage; - -/** - * The type of the currently playing or paused track. - * - * SDLMediaType, Optional - */ -@property (nullable, strong, nonatomic) SDLMediaType mediaType; - -/** - * Music: The name of the current track - * Podcast: The name of the current episode - * Audiobook: The name of the current chapter - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *mediaTitle; - -/** - * Music: The name of the current album artist - * Podcast: The provider of the podcast (hosts, network, company) - * Audiobook: The book author's name - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *mediaArtist; - -/** - * Music: The name of the current album - * Podcast: The name of the current podcast show - * Audiobook: The name of the current book - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *mediaAlbum; - -/** - * Music: The name of the playlist or radio station, if the user is playing from a playlist, otherwise, Null - * Podcast: The name of the playlist, if the user is playing from a playlist, otherwise, Null - * Audiobook: Likely not applicable, possibly a collection or "playlist" of books - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *playlistName; - -/** - * Whether or not the content currently playing (e.g. the track, episode, or book) contains explicit content. - * - * Boolean, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *isExplicit; - -/** - * Music: The current progress of the track in seconds - * Podcast: The current progress of the episode in seconds - * Audiobook: The current progress of the current segment (e.g. the chapter) in seconds - * - * Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *trackPlaybackProgress; - -/** - * Music: The total duration of the track in seconds - * Podcast: The total duration of the episode in seconds - * Audiobook: The total duration of the current segment (e.g. the chapter) in seconds - * - * Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *trackPlaybackDuration; - -/** - * Music: The current progress of the playback queue in seconds - * Podcast: The current progress of the playback queue in seconds - * Audiobook: The current progress of the playback queue (e.g. the book) in seconds - * - * Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *queuePlaybackProgress; - -/** - * Music: The total duration of the playback queue in seconds - * Podcast: The total duration of the playback queue in seconds - * Audiobook: The total duration of the playback queue (e.g. the book) in seconds - * - * Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *queuePlaybackDuration; - -/** - * Music: The current number (1 based) of the track in the playback queue - * Podcast: The current number (1 based) of the episode in the playback queue - * Audiobook: The current number (1 based) of the episode in the playback queue (e.g. the chapter number in the book) - * - * Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *queueCurrentTrackNumber; - -/** - * Music: The total number of tracks in the playback queue - * Podcast: The total number of episodes in the playback queue - * Audiobook: The total number of sections in the playback queue (e.g. the number of chapters in the book) - * - * Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *queueTotalTrackCount; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.m deleted file mode 100644 index 911ec75..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceData.m +++ /dev/null @@ -1,153 +0,0 @@ -// -// SDLMediaServiceData.m -// SmartDeviceLink -// -// Created by Nicole on 2/8/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLMediaServiceData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLImage.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLMediaServiceData - -- (instancetype)initWithMediaType:(nullable SDLMediaType)mediaType mediaTitle:(nullable NSString *)mediaTitle mediaArtist:(nullable NSString *)mediaArtist mediaAlbum:(nullable NSString *)mediaAlbum playlistName:(nullable NSString *)playlistName isExplicit:(BOOL)isExplicit trackPlaybackProgress:(UInt32)trackPlaybackProgress trackPlaybackDuration:(UInt32)trackPlaybackDuration queuePlaybackProgress:(UInt32)queuePlaybackProgress queuePlaybackDuration:(UInt32)queuePlaybackDuration queueCurrentTrackNumber:(UInt32)queueCurrentTrackNumber queueTotalTrackCount:(UInt32)queueTotalTrackCount { - - return [self initWithMediaType:mediaType mediaImage:nil mediaTitle:mediaTitle mediaArtist:mediaArtist mediaAlbum:mediaAlbum playlistName:playlistName isExplicit:isExplicit trackPlaybackProgress:trackPlaybackProgress trackPlaybackDuration:trackPlaybackDuration queuePlaybackProgress:queuePlaybackProgress queuePlaybackDuration:queuePlaybackDuration queueCurrentTrackNumber:queueCurrentTrackNumber queueTotalTrackCount:queueTotalTrackCount]; -} - -- (instancetype)initWithMediaType:(nullable SDLMediaType)mediaType mediaImage:(nullable SDLImage *)mediaImage mediaTitle:(nullable NSString *)mediaTitle mediaArtist:(nullable NSString *)mediaArtist mediaAlbum:(nullable NSString *)mediaAlbum playlistName:(nullable NSString *)playlistName isExplicit:(BOOL)isExplicit trackPlaybackProgress:(UInt32)trackPlaybackProgress trackPlaybackDuration:(UInt32)trackPlaybackDuration queuePlaybackProgress:(UInt32)queuePlaybackProgress queuePlaybackDuration:(UInt32)queuePlaybackDuration queueCurrentTrackNumber:(UInt32)queueCurrentTrackNumber queueTotalTrackCount:(UInt32)queueTotalTrackCount { - self = [self init]; - if (!self) { - return nil; - } - - self.mediaType = mediaType; - self.mediaImage = mediaImage; - self.mediaTitle = mediaTitle; - self.mediaArtist = mediaArtist; - self.mediaAlbum = mediaAlbum; - self.playlistName = playlistName; - self.isExplicit = @(isExplicit); - self.trackPlaybackProgress = @(trackPlaybackProgress); - self.trackPlaybackDuration = @(trackPlaybackDuration); - self.queuePlaybackProgress = @(queuePlaybackProgress); - self.queuePlaybackDuration = @(queuePlaybackDuration); - self.queueCurrentTrackNumber = @(queueCurrentTrackNumber); - self.queueTotalTrackCount = @(queueTotalTrackCount); - - return self; -} - -- (void)setMediaImage:(nullable SDLImage *)mediaImage { - [self.store sdl_setObject:mediaImage forName:SDLRPCParameterNameMediaImage]; -} - -- (nullable SDLImage *)mediaImage { - return [self.store sdl_objectForName:SDLRPCParameterNameMediaImage ofClass:SDLImage.class error:nil]; -} - -- (void)setMediaType:(nullable SDLMediaType)mediaType { - [self.store sdl_setObject:mediaType forName:SDLRPCParameterNameMediaType]; -} - -- (nullable SDLMediaType)mediaType { - return [self.store sdl_enumForName:SDLRPCParameterNameMediaType error:nil]; -} - -- (void)setMediaTitle:(nullable NSString *)mediaTitle { - [self.store sdl_setObject:mediaTitle forName:SDLRPCParameterNameMediaTitle]; -} - -- (nullable NSString *)mediaTitle { - return [self.store sdl_objectForName:SDLRPCParameterNameMediaTitle ofClass:NSString.class error:nil]; -} - -- (void)setMediaArtist:(nullable NSString *)mediaArtist { - [self.store sdl_setObject:mediaArtist forName:SDLRPCParameterNameMediaArtist]; -} - -- (nullable NSString *)mediaArtist { - return [self.store sdl_objectForName:SDLRPCParameterNameMediaArtist ofClass:NSString.class error:nil]; -} - -- (void)setMediaAlbum:(nullable NSString *)mediaAlbum { - [self.store sdl_setObject:mediaAlbum forName:SDLRPCParameterNameMediaAlbum]; -} - -- (nullable NSString *)mediaAlbum { - return [self.store sdl_objectForName:SDLRPCParameterNameMediaAlbum ofClass:NSString.class error:nil]; -} - -- (void)setPlaylistName:(nullable NSString *)playlistName { - [self.store sdl_setObject:playlistName forName:SDLRPCParameterNamePlaylistName]; -} - -- (nullable NSString *)playlistName { - return [self.store sdl_objectForName:SDLRPCParameterNamePlaylistName ofClass:NSString.class error:nil]; -} - -- (void)setIsExplicit:(nullable NSNumber *)isExplicit { - [self.store sdl_setObject:isExplicit forName:SDLRPCParameterNameIsExplicit]; -} - -- (nullable NSNumber *)isExplicit { - return [self.store sdl_objectForName:SDLRPCParameterNameIsExplicit ofClass:NSNumber.class error:nil]; -} - -- (void)setTrackPlaybackProgress:(nullable NSNumber *)trackPlaybackProgress { - [self.store sdl_setObject:trackPlaybackProgress forName:SDLRPCParameterNameTrackPlaybackProgress]; -} - -- (nullable NSNumber *)trackPlaybackProgress { - return [self.store sdl_objectForName:SDLRPCParameterNameTrackPlaybackProgress ofClass:NSNumber.class error:nil]; -} - -- (void)setTrackPlaybackDuration:(nullable NSNumber *)trackPlaybackDuration { - [self.store sdl_setObject:trackPlaybackDuration forName:SDLRPCParameterNameTrackPlaybackDuration]; -} - -- (nullable NSNumber *)trackPlaybackDuration { - return [self.store sdl_objectForName:SDLRPCParameterNameTrackPlaybackDuration ofClass:NSNumber.class error:nil]; -} - -- (void)setQueuePlaybackProgress:(nullable NSNumber *)queuePlaybackProgress { - [self.store sdl_setObject:queuePlaybackProgress forName:SDLRPCParameterNameQueuePlaybackProgress]; -} - -- (nullable NSNumber *)queuePlaybackProgress { - return [self.store sdl_objectForName:SDLRPCParameterNameQueuePlaybackProgress ofClass:NSNumber.class error:nil]; -} - -- (void)setQueuePlaybackDuration:(nullable NSNumber *)queuePlaybackDuration { - [self.store sdl_setObject:queuePlaybackDuration forName:SDLRPCParameterNameQueuePlaybackDuration]; -} - -- (nullable NSNumber *)queuePlaybackDuration { - return [self.store sdl_objectForName:SDLRPCParameterNameQueuePlaybackDuration ofClass:NSNumber.class error:nil]; -} - -- (void)setQueueCurrentTrackNumber:(nullable NSNumber *)queueCurrentTrackNumber { - [self.store sdl_setObject:queueCurrentTrackNumber forName:SDLRPCParameterNameQueueCurrentTrackNumber]; -} - -- (nullable NSNumber *)queueCurrentTrackNumber { - return [self.store sdl_objectForName:SDLRPCParameterNameQueueCurrentTrackNumber ofClass:NSNumber.class error:nil]; -} - -- (void)setQueueTotalTrackCount:(nullable NSNumber *)queueTotalTrackCount { - [self.store sdl_setObject:queueTotalTrackCount forName:SDLRPCParameterNameQueueTotalTrackCount]; -} - -- (nullable NSNumber *)queueTotalTrackCount { - return [self.store sdl_objectForName:SDLRPCParameterNameQueueTotalTrackCount ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.h deleted file mode 100644 index a3b931c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// SDLMediaServiceManifest.h -// SmartDeviceLink -// -// Created by Nicole on 2/11/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * A media service manifest. - */ -@interface SDLMediaServiceManifest : SDLRPCStruct - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.m deleted file mode 100644 index 7342563..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaServiceManifest.m +++ /dev/null @@ -1,17 +0,0 @@ -// -// SDLMediaServiceManifest.m -// SmartDeviceLink -// -// Created by Nicole on 2/11/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLMediaServiceManifest.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLMediaServiceManifest - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.h deleted file mode 100644 index f7d1943..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// SDLMediaType.h -// SmartDeviceLink -// -// Created by Nicole on 2/8/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * Enumeration listing possible media types. - */ -typedef SDLEnum SDLMediaType SDL_SWIFT_ENUM; - -/** - * The app will have a media type of music. - */ -extern SDLMediaType const SDLMediaTypeMusic; - -/** - * The app will have a media type of podcast. - */ -extern SDLMediaType const SDLMediaTypePodcast; - -/** - * The app will have a media type of audiobook. - */ -extern SDLMediaType const SDLMediaTypeAudiobook; - -/** - * The app will have a media type of other. - */ -extern SDLMediaType const SDLMediaTypeOther; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.m deleted file mode 100644 index 3a18a3d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMediaType.m +++ /dev/null @@ -1,14 +0,0 @@ -// -// SDLMediaType.m -// SmartDeviceLink -// -// Created by Nicole on 2/8/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLMediaType.h" - -SDLMediaType const SDLMediaTypeMusic = @"MUSIC"; -SDLMediaType const SDLMediaTypePodcast = @"PODCAST"; -SDLMediaType const SDLMediaTypeAudiobook = @"AUDIOBOOK"; -SDLMediaType const SDLMediaTypeOther = @"OTHER"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.h deleted file mode 100644 index d55360a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.h +++ /dev/null @@ -1,102 +0,0 @@ -// -// SDLMenuCell.h -// SmartDeviceLink -// -// Created by Joel Fischer on 4/9/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLMenuLayout.h" -#import "SDLTriggerSource.h" - -@class SDLArtwork; - -NS_ASSUME_NONNULL_BEGIN - -/** -The handler to run when a menu item is selected. - -@param triggerSource The trigger source of the selection -*/ -typedef void(^SDLMenuCellSelectionHandler)(SDLTriggerSource triggerSource); - -/// A menu cell item for the main menu or sub-menu. -@interface SDLMenuCell : NSObject - -/** - The cell's text to be displayed - */ -@property (copy, nonatomic, readonly) NSString *title; - -/** - The cell's icon to be displayed - */ -@property (strong, nonatomic, readonly, nullable) SDLArtwork *icon; - -/** - The strings the user can say to activate this voice command - */ -@property (copy, nonatomic, readonly, nullable) NSArray *voiceCommands; - -/** - The handler that will be called when the command is activated - */ -@property (copy, nonatomic, readonly, nullable) SDLMenuCellSelectionHandler handler; - -/** - If this is non-nil, this cell will be a sub-menu button, displaying the subcells in a menu when pressed. - */ -@property (copy, nonatomic, readonly, nullable) NSArray *subCells; - -/** - The layout in which the `subCells` will be displayed. - */ -@property (strong, nonatomic, readonly, nullable) SDLMenuLayout submenuLayout; - -/** - Create a menu cell that has no subcells. - - @param title The cell's primary text - @param icon The cell's image - @param voiceCommands Voice commands that will activate the menu cell - @param handler The code that will be run when the menu cell is selected - @return The menu cell - */ -- (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon voiceCommands:(nullable NSArray *)voiceCommands handler:(SDLMenuCellSelectionHandler)handler; - -/** - Create a menu cell that has subcells and when selected will go into a deeper part of the menu - - @param title The cell's primary text - @param subCells The subcells that will appear when the cell is selected - @return The menu cell - */ -- (instancetype)initWithTitle:(NSString *)title subCells:(NSArray *)subCells __deprecated_msg(("Use initWithTitle:icon:subcells: instead")); - -/** - Create a menu cell that has subcells and when selected will go into a deeper part of the menu - - @param title The cell's primary text - @param icon The cell's image - @param subCells The subcells that will appear when the cell is selected - @return The menu cell - */ -- (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon subCells:(NSArray *)subCells __deprecated_msg("Use initWithTitle:icon:layout:subcells: instead"); - -/** - Create a menu cell that has subcells and when selected will go into a deeper part of the menu - - @param title The cell's primary text - @param icon The cell's image - @param layout The layout that the subCells will be layed out in if that submenu is entered - @param subCells The subcells that will appear when the cell is selected - @return The menu cell - */ -- (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon submenuLayout:(nullable SDLMenuLayout)layout subCells:(NSArray *)subCells; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.m deleted file mode 100644 index 67281cb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuCell.m +++ /dev/null @@ -1,96 +0,0 @@ -// -// SDLMenuCell.m -// SmartDeviceLink -// -// Created by Joel Fischer on 4/9/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLMenuCell.h" - -#import "SDLArtwork.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLMenuCell() - -@property (assign, nonatomic) UInt32 parentCellId; -@property (assign, nonatomic) UInt32 cellId; - -@end - -@implementation SDLMenuCell - -- (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon voiceCommands:(nullable NSArray *)voiceCommands handler:(SDLMenuCellSelectionHandler)handler { - self = [super init]; - if (!self) { return nil; } - - _title = title; - _icon = icon; - _voiceCommands = voiceCommands; - _handler = handler; - - _cellId = UINT32_MAX; - _parentCellId = UINT32_MAX; - - return self; -} - -- (instancetype)initWithTitle:(NSString *)title subCells:(NSArray *)subCells { - return [self initWithTitle:title icon:nil submenuLayout:nil subCells:subCells]; -} - -- (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon subCells:(NSArray *)subCells { - return [self initWithTitle:title icon:icon submenuLayout:nil subCells:subCells]; -} - -- (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon submenuLayout:(nullable SDLMenuLayout)layout subCells:(NSArray *)subCells { - self = [super init]; - if (!self) { return nil; } - - _title = title; - _submenuLayout = layout; - _icon = icon; - _subCells = subCells; - - _cellId = UINT32_MAX; - _parentCellId = UINT32_MAX; - - return self; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"SDLMenuCell: %u-\"%@\", artworkName: %@, voice commands: %lu, isSubcell: %@, hasSubcells: %@, submenuLayout: %@", (unsigned int)_cellId, _title, _icon.name, (unsigned long)_voiceCommands.count, (_parentCellId != UINT32_MAX ? @"YES" : @"NO"), (_subCells.count > 0 ? @"YES" : @"NO"), _submenuLayout]; -} - -#pragma mark - Object Equality - -NSUInteger const NSUIntBitCell = (CHAR_BIT * sizeof(NSUInteger)); -NSUInteger NSUIntRotateCell(NSUInteger val, NSUInteger howMuch) { - return ((((NSUInteger)val) << howMuch) | (((NSUInteger)val) >> (NSUIntBitCell - howMuch))); -} - -- (NSUInteger)hash { - return NSUIntRotateCell(self.title.hash, NSUIntBitCell / 2) - ^ NSUIntRotateCell(self.icon.name.hash, NSUIntBitCell / 3) - ^ NSUIntRotateCell(self.voiceCommands.hash, NSUIntBitCell / 4) - ^ NSUIntRotateCell(self.subCells.count !=0, NSUIntBitCell / 5) - ^ NSUIntRotateCell(self.submenuLayout.hash, NSUIntBitCell / 6); -} - -- (BOOL)isEqual:(id)object { - if (self == object) { return YES; } - if (![object isMemberOfClass:[self class]]) { return NO; } - - return [self isEqualToChoice:(SDLMenuCell *)object]; -} - -- (BOOL)isEqualToChoice:(SDLMenuCell *)choice { - if (choice == nil) { return NO; } - - return (self.hash == choice.hash); -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.h deleted file mode 100644 index d361400..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// SDLMenuConfiguration.h -// SmartDeviceLink -// -// Created by Joel Fischer on 7/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLMenuLayout.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Defines how the menu is configured -@interface SDLMenuConfiguration : NSObject - -/** - * Changes the default main menu layout. Defaults to `SDLMenuLayoutList`. - */ -@property (strong, nonatomic, readonly) SDLMenuLayout mainMenuLayout; - -/** - * Changes the default submenu layout. To change this for an individual submenu, set the `menuLayout` property on the `SDLMenuCell` initializer for creating a cell with sub-cells. Defaults to `SDLMenuLayoutList`. - */ -@property (strong, nonatomic, readonly) SDLMenuLayout defaultSubmenuLayout; - -/** - Initialize a new menu configuration with a main menu layout and a default submenu layout which can be overriden per-submenu if desired. - - @param mainMenuLayout The new main menu layout - @param defaultSubmenuLayout The new default submenu layout - @return The menu configuration - */ -- (instancetype)initWithMainMenuLayout:(SDLMenuLayout)mainMenuLayout defaultSubmenuLayout:(SDLMenuLayout)defaultSubmenuLayout; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.m deleted file mode 100644 index 2049c83..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuConfiguration.m +++ /dev/null @@ -1,31 +0,0 @@ -// -// SDLMenuConfiguration.m -// SmartDeviceLink -// -// Created by Joel Fischer on 7/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLMenuConfiguration.h" - -@implementation SDLMenuConfiguration - -- (instancetype)init { - return [self initWithMainMenuLayout:SDLMenuLayoutList defaultSubmenuLayout:SDLMenuLayoutList]; -} - -- (instancetype)initWithMainMenuLayout:(SDLMenuLayout)mainMenuLayout defaultSubmenuLayout:(SDLMenuLayout)defaultSubmenuLayout { - self = [super init]; - if (!self) { return nil; } - - _mainMenuLayout = mainMenuLayout; - _defaultSubmenuLayout = defaultSubmenuLayout; - - return self; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"Menu configuration, main menu layout: %@, submenu default layout: %@", _mainMenuLayout, _defaultSubmenuLayout]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.h deleted file mode 100644 index e2fe8e4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// SDLMenuLayout.h -// SmartDeviceLink -// -// Created by Joel Fischer on 7/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * Enum for each type of video streaming protocol, used in VideoStreamingFormat - */ -typedef SDLEnum SDLMenuLayout SDL_SWIFT_ENUM; - -/** - * The menu should be laid out in a scrollable list format with one menu cell below the previous, each is stretched across the view - */ -extern SDLMenuLayout const SDLMenuLayoutList; - -/** - * The menu should be laid out in a scrollable tiles format with each menu cell laid out in a square-ish format next to each other horizontally - */ -extern SDLMenuLayout const SDLMenuLayoutTiles; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.m deleted file mode 100644 index 8b1b95b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuLayout.m +++ /dev/null @@ -1,12 +0,0 @@ -// -// SDLMenuLayout.m -// SmartDeviceLink -// -// Created by Joel Fischer on 7/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLMenuLayout.h" - -SDLMenuLayout const SDLMenuLayoutList = @"LIST"; -SDLMenuLayout const SDLMenuLayoutTiles = @"TILES"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.h deleted file mode 100644 index a177751..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// SDLMenuManager.h -// SmartDeviceLink -// -// Created by Joel Fischer on 4/9/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import -#import "SDLMenuManagerConstants.h" - -@class SDLFileManager; -@class SDLMenuCell; -@class SDLMenuConfiguration; -@class SDLSystemCapabilityManager; -@class SDLVoiceCommand; - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - -/** - The handler run when the update has completed - - @param error An error if the update failed and an error occurred - */ -typedef void(^SDLMenuUpdateCompletionHandler)(NSError *__nullable error); - -@interface SDLMenuManager : NSObject - -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager; - -/// Starts the manager. This method is used internally. -- (void)start; - -/// Stops the manager. This method is used internally. -- (void)stop; - -@property (strong, nonatomic) SDLMenuConfiguration *menuConfiguration; - -@property (copy, nonatomic) NSArray *menuCells; - -@property (assign, nonatomic) SDLDynamicMenuUpdatesMode dynamicMenuUpdatesMode; - -- (BOOL)openMenu; - -- (BOOL)openSubmenu:(SDLMenuCell *)cell; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.m deleted file mode 100644 index 4d2d073..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManager.m +++ /dev/null @@ -1,738 +0,0 @@ -// -// SDLMenuManager.m -// SmartDeviceLink -// -// Created by Joel Fischer on 4/9/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLMenuManager.h" - -#import "SDLAddCommand.h" -#import "SDLAddSubMenu.h" -#import "SDLArtwork.h" -#import "SDLConnectionManagerType.h" -#import "SDLDeleteCommand.h" -#import "SDLDeleteSubMenu.h" -#import "SDLDisplayCapability.h" -#import "SDLDisplayType.h" -#import "SDLError.h" -#import "SDLFileManager.h" -#import "SDLGlobals.h" -#import "SDLImage.h" -#import "SDLLogMacros.h" -#import "SDLMenuCell.h" -#import "SDLMenuConfiguration.h" -#import "SDLMenuParams.h" -#import "SDLDynamicMenuUpdateRunScore.h" -#import "SDLDynamicMenuUpdateAlgorithm.h" -#import "SDLOnCommand.h" -#import "SDLOnHMIStatus.h" -#import "SDLPredefinedWindows.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCResponseNotification.h" -#import "SDLSetDisplayLayoutResponse.h" -#import "SDLSetGlobalProperties.h" -#import "SDLScreenManager.h" -#import "SDLShowAppMenu.h" -#import "SDLSystemCapabilityManager.h" -#import "SDLWindowCapability.h" -#import "SDLWindowCapability+ScreenManagerExtensions.h" -#import "SDLVersion.h" -#import "SDLVoiceCommand.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLMenuCell() - -@property (assign, nonatomic) UInt32 parentCellId; -@property (assign, nonatomic) UInt32 cellId; - -@end - -@interface SDLMenuManager() - -// Dependencies -@property (weak, nonatomic) id connectionManager; -@property (weak, nonatomic) SDLFileManager *fileManager; -@property (weak, nonatomic) SDLSystemCapabilityManager *systemCapabilityManager; - -@property (copy, nonatomic, nullable) SDLHMILevel currentHMILevel; -@property (copy, nonatomic, nullable) SDLSystemContext currentSystemContext; - -@property (strong, nonatomic, nullable) NSArray *inProgressUpdate; -@property (assign, nonatomic) BOOL hasQueuedUpdate; -@property (assign, nonatomic) BOOL waitingOnHMIUpdate; -@property (copy, nonatomic) NSArray *waitingUpdateMenuCells; -@property (strong, nonatomic, nullable) SDLWindowCapability *windowCapability; - -@property (assign, nonatomic) UInt32 lastMenuId; -@property (copy, nonatomic) NSArray *oldMenuCells; - -@end - -UInt32 const ParentIdNotFound = UINT32_MAX; -UInt32 const MenuCellIdMin = 1; - -@implementation SDLMenuManager - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - _lastMenuId = MenuCellIdMin; - _menuConfiguration = [[SDLMenuConfiguration alloc] init]; - _menuCells = @[]; - _oldMenuCells = @[]; - _dynamicMenuUpdatesMode = SDLDynamicMenuUpdatesModeOnWithCompatibility; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusNotification:) name:SDLDidChangeHMIStatusNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_commandNotification:) name:SDLDidReceiveCommandNotification object:nil]; - - return self; -} - -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(nonnull SDLSystemCapabilityManager *)systemCapabilityManager { - self = [self init]; - if (!self) { return nil; } - - _connectionManager = connectionManager; - _fileManager = fileManager; - _systemCapabilityManager = systemCapabilityManager; - - return self; -} - -- (void)start { - [self.systemCapabilityManager subscribeToCapabilityType:SDLSystemCapabilityTypeDisplays withObserver:self selector:@selector(sdl_displayCapabilityDidUpdate:)]; -} - -- (void)stop { - _lastMenuId = MenuCellIdMin; - _menuCells = @[]; - _oldMenuCells = @[]; - - _currentHMILevel = nil; - _currentSystemContext = SDLSystemContextMain; - _inProgressUpdate = nil; - _hasQueuedUpdate = NO; - _waitingOnHMIUpdate = NO; - _waitingUpdateMenuCells = @[]; -} - -#pragma mark - Setters - -- (void)setMenuConfiguration:(SDLMenuConfiguration *)menuConfiguration { - NSArray *layoutsAvailable = self.windowCapability.menuLayoutsAvailable; - - if ([[SDLGlobals sharedGlobals].rpcVersion isLessThanVersion:[SDLVersion versionWithMajor:6 minor:0 patch:0]]) { - SDLLogW(@"Menu configurations is only supported on head units with RPC spec version 6.0.0 or later. Currently connected head unit RPC spec version is %@", [SDLGlobals sharedGlobals].rpcVersion); - return; - } else if (layoutsAvailable == nil) { - SDLLogW(@"Could not set the main menu configuration. Which menu layouts can be used is not available"); - return; - } else if (![layoutsAvailable containsObject:menuConfiguration.mainMenuLayout] - || ![layoutsAvailable containsObject:menuConfiguration.defaultSubmenuLayout]) { - SDLLogE(@"One or more of the set menu layouts are not available on this system. The menu configuration will not be set. Available menu layouts: %@, set menu layouts: %@", layoutsAvailable, menuConfiguration); - return; - } else if (self.currentHMILevel == nil - || [self.currentHMILevel isEqualToEnum:SDLHMILevelNone]) { - SDLLogE(@"Could not set main menu configuration, HMI level: %@, required: 'Not-NONE', system context: %@, required: 'Not MENU'", self.currentHMILevel, self.currentSystemContext); - return; - } - - SDLMenuConfiguration *oldConfig = _menuConfiguration; - _menuConfiguration = menuConfiguration; - - SDLSetGlobalProperties *setGlobalsRPC = [[SDLSetGlobalProperties alloc] init]; - setGlobalsRPC.menuLayout = menuConfiguration.mainMenuLayout; - - __weak typeof(self) weakself = self; - [self.connectionManager sendConnectionRequest:setGlobalsRPC withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - __strong typeof(weakself) strongself = weakself; - if (error != nil) { - SDLLogE(@"Could not set main menu configuration: %@", error); - strongself.menuConfiguration = oldConfig; - return; - } - }]; -} - -- (void)setMenuCells:(NSArray *)menuCells { - if (self.currentHMILevel == nil - || [self.currentHMILevel isEqualToEnum:SDLHMILevelNone] - || [self.currentSystemContext isEqualToEnum:SDLSystemContextMenu]) { - SDLLogD(@"Waiting for HMI update to send menu cells"); - self.waitingOnHMIUpdate = YES; - self.waitingUpdateMenuCells = menuCells; - return; - } - - self.waitingOnHMIUpdate = NO; - - NSMutableSet *titleCheckSet = [NSMutableSet set]; - NSMutableSet *allMenuVoiceCommands = [NSMutableSet set]; - NSUInteger voiceCommandCount = 0; - for (SDLMenuCell *cell in menuCells) { - [titleCheckSet addObject:cell.title]; - if (cell.voiceCommands == nil) { continue; } - [allMenuVoiceCommands addObjectsFromArray:cell.voiceCommands]; - voiceCommandCount += cell.voiceCommands.count; - } - - // Check for duplicate titles - if (titleCheckSet.count != menuCells.count) { - SDLLogE(@"Not all cell titles are unique. The menu will not be set."); - return; - } - - // Check for duplicate voice recognition commands - if (allMenuVoiceCommands.count != voiceCommandCount) { - SDLLogE(@"Attempted to create a menu with duplicate voice commands. Voice commands must be unique. The menu will not be set."); - return; - } - - _oldMenuCells = _menuCells; - _menuCells = menuCells; - - if ([self sdl_isDynamicMenuUpdateActive:self.dynamicMenuUpdatesMode]) { - [self sdl_startDynamicMenuUpdate]; - } else { - [self sdl_startNonDynamicMenuUpdate]; - } -} - -#pragma mark - Open Menu - -- (BOOL)openMenu { - if ([SDLGlobals.sharedGlobals.rpcVersion isLessThanVersion:[[SDLVersion alloc] initWithMajor:6 minor:0 patch:0]]) { - SDLLogE(@"The openMenu method is not supported on this head unit."); - return NO; - } - - SDLShowAppMenu *openMenu = [[SDLShowAppMenu alloc] init]; - - [self.connectionManager sendConnectionRequest:openMenu withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if ([response.resultCode isEqualToEnum:SDLResultWarnings]) { - SDLLogW(@"Warning opening application menu: %@", error); - } else if (![response.resultCode isEqualToEnum:SDLResultSuccess]) { - SDLLogE(@"Error opening application menu: %@", error); - } else { - SDLLogD(@"Successfully opened application main menu"); - } - }]; - - return YES; -} - -- (BOOL)openSubmenu:(SDLMenuCell *)cell { - if (cell.subCells.count == 0) { - SDLLogE(@"The cell %@ does not contain any sub cells, so no submenu can be opened", cell); - return NO; - } else if ([SDLGlobals.sharedGlobals.rpcVersion isLessThanVersion:[[SDLVersion alloc] initWithMajor:6 minor:0 patch:0]]) { - SDLLogE(@"The openSubmenu method is not supported on this head unit."); - return NO; - } else if (![self.menuCells containsObject:cell]) { - SDLLogE(@"This cell has not been sent to the head unit, so no submenu can be opened. Make sure that the cell exists in the SDLManager.menu array"); - return NO; - } - - SDLShowAppMenu *subMenu = [[SDLShowAppMenu alloc] initWithMenuID:cell.cellId]; - - [self.connectionManager sendConnectionRequest:subMenu withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if ([response.resultCode isEqualToEnum:SDLResultWarnings]) { - SDLLogW(@"Warning opening application menu to submenu cell %@, with error: %@", cell, error); - } else if (![response.resultCode isEqualToEnum:SDLResultSuccess]) { - SDLLogE(@"Error opening application menu to submenu cell %@, with error: %@", cell, error); - } else { - SDLLogD(@"Successfully opened application menu to submenu cell: %@", cell); - } - }]; - - return YES; -} - -#pragma mark - Build Deletes, Keeps, Adds - -- (void)sdl_startSubMenuUpdatesWithOldKeptCells:(NSArray *)oldKeptCells newKeptCells:(NSArray *)newKeptCells atIndex:(NSUInteger)startIndex { - if (oldKeptCells.count == 0 || startIndex >= oldKeptCells.count) { - self.inProgressUpdate = nil; - return; - } - - if (oldKeptCells[startIndex].subCells.count > 0) { - SDLDynamicMenuUpdateRunScore *tempScore = [SDLDynamicMenuUpdateAlgorithm compareOldMenuCells:oldKeptCells[startIndex].subCells updatedMenuCells:newKeptCells[startIndex].subCells]; - NSArray *deleteMenuStatus = tempScore.oldStatus; - NSArray *addMenuStatus = tempScore.updatedStatus; - - NSArray *cellsToDelete = [self sdl_filterDeleteMenuItemsWithOldMenuItems:oldKeptCells[startIndex].subCells basedOnStatusList:deleteMenuStatus]; - NSArray *cellsToAdd = [self sdl_filterAddMenuItemsWithNewMenuItems:newKeptCells[startIndex].subCells basedOnStatusList:addMenuStatus]; - - NSArray *oldKeeps = [self sdl_filterKeepMenuItemsWithOldMenuItems:oldKeptCells[startIndex].subCells basedOnStatusList:deleteMenuStatus]; - NSArray *newKeeps = [self sdl_filterKeepMenuItemsWithNewMenuItems:newKeptCells[startIndex].subCells basedOnStatusList:addMenuStatus]; - - [self sdl_updateIdsOnMenuCells:cellsToAdd parentId:newKeptCells[startIndex].cellId]; - [self transferCellIDFromOldCells:oldKeeps toKeptCells:newKeeps]; - - __weak typeof(self) weakself = self; - [self sdl_sendDeleteCurrentMenu:cellsToDelete withCompletionHandler:^(NSError * _Nullable error) { - [weakself sdl_sendUpdatedMenu:cellsToAdd usingMenu:weakself.menuCells[startIndex].subCells withCompletionHandler:^(NSError * _Nullable error) { - // After the first set of submenu cells were added and deleted we must find the next set of subcells untll we loop through all the elemetns - [weakself sdl_startSubMenuUpdatesWithOldKeptCells:oldKeptCells newKeptCells:newKeptCells atIndex:(startIndex + 1)]; - }]; - }]; - } else { - // After the first set of submenu cells were added and deleted we must find the next set of subcells untll we loop through all the elemetns - [self sdl_startSubMenuUpdatesWithOldKeptCells:oldKeptCells newKeptCells:newKeptCells atIndex:(startIndex + 1)]; - } -} - -- (NSArray *)sdl_filterDeleteMenuItemsWithOldMenuItems:(NSArray *)oldMenuCells basedOnStatusList:(NSArray *)oldStatusList { - NSMutableArray *deleteCells = [[NSMutableArray alloc] init]; - // The index of the status should corrleate 1-1 with the number of items in the menu - // [2,0,2,0] => [A,B,C,D] = [B,D] - for (NSUInteger index = 0; index < oldStatusList.count; index++) { - if (oldStatusList[index].integerValue == MenuCellStateDelete) { - [deleteCells addObject:oldMenuCells[index]]; - } - } - return [deleteCells copy]; -} - -- (NSArray *)sdl_filterAddMenuItemsWithNewMenuItems:(NSArray *)newMenuCells basedOnStatusList:(NSArray *)newStatusList { - NSMutableArray *addCells = [[NSMutableArray alloc] init]; - // The index of the status should corrleate 1-1 with the number of items in the menu - // [2,1,2,1] => [A,B,C,D] = [B,D] - for (NSUInteger index = 0; index < newStatusList.count; index++) { - if (newStatusList[index].integerValue == MenuCellStateAdd) { - [addCells addObject:newMenuCells[index]]; - } - } - return [addCells copy]; -} - -- (NSArray *)sdl_filterKeepMenuItemsWithOldMenuItems:(NSArray *)oldMenuCells basedOnStatusList:(NSArray *)keepStatusList { - NSMutableArray *keepMenuCells = [[NSMutableArray alloc] init]; - - for (NSUInteger index = 0; index < keepStatusList.count; index++) { - if (keepStatusList[index].integerValue == MenuCellStateKeep) { - [keepMenuCells addObject:oldMenuCells[index]]; - } - } - return [keepMenuCells copy]; -} - -- (NSArray *)sdl_filterKeepMenuItemsWithNewMenuItems:(NSArray *)newMenuCells basedOnStatusList:(NSArray *)keepStatusList { - NSMutableArray *keepMenuCells = [[NSMutableArray alloc] init]; - for (NSUInteger index = 0; index < keepStatusList.count; index++) { - if (keepStatusList[index].integerValue == MenuCellStateKeep) { - [keepMenuCells addObject:newMenuCells[index]]; - } - } - return [keepMenuCells copy]; -} - -- (void)transferCellIDFromOldCells:(NSArray *)oldCells toKeptCells:(NSArray *)newCells { - if (oldCells.count == 0) { return; } - for (NSUInteger i = 0; i < newCells.count; i++) { - newCells[i].cellId = oldCells[i].cellId; - } -} - -#pragma mark - Updating System - -- (void)sdl_startDynamicMenuUpdate { - SDLDynamicMenuUpdateRunScore *runScore = [SDLDynamicMenuUpdateAlgorithm compareOldMenuCells:self.oldMenuCells updatedMenuCells:self.menuCells]; - - NSArray *deleteMenuStatus = runScore.oldStatus; - NSArray *addMenuStatus = runScore.updatedStatus; - - NSArray *cellsToDelete = [self sdl_filterDeleteMenuItemsWithOldMenuItems:self.oldMenuCells basedOnStatusList:deleteMenuStatus]; - NSArray *cellsToAdd = [self sdl_filterAddMenuItemsWithNewMenuItems:self.menuCells basedOnStatusList:addMenuStatus]; - // These arrays should ONLY contain KEEPS. These will be used for SubMenu compares - NSArray *oldKeeps = [self sdl_filterKeepMenuItemsWithOldMenuItems:self.oldMenuCells basedOnStatusList:deleteMenuStatus]; - NSArray *newKeeps = [self sdl_filterKeepMenuItemsWithNewMenuItems:self.menuCells basedOnStatusList:addMenuStatus]; - - // Cells that will be added need new ids - [self sdl_updateIdsOnMenuCells:cellsToAdd parentId:ParentIdNotFound]; - - // Since we are creating a new Menu but keeping old cells we must firt transfer the old cellIDs to the new menus kept cells. - [self transferCellIDFromOldCells:oldKeeps toKeptCells:newKeeps]; - - // Upload the artworks - NSArray *artworksToBeUploaded = [self sdl_findAllArtworksToBeUploadedFromCells:cellsToAdd]; - if (artworksToBeUploaded.count > 0) { - [self.fileManager uploadArtworks:artworksToBeUploaded completionHandler:^(NSArray * _Nonnull artworkNames, NSError * _Nullable error) { - if (error != nil) { - SDLLogE(@"Error uploading menu artworks: %@", error); - } - SDLLogD(@"Menu artworks uploaded"); - // Update cells with artworks once they're uploaded - __weak typeof(self) weakself = self; - [self sdl_updateMenuWithCellsToDelete:cellsToDelete cellsToAdd:cellsToAdd completionHandler:^(NSError * _Nullable error) { - [weakself sdl_startSubMenuUpdatesWithOldKeptCells:oldKeeps newKeptCells:newKeeps atIndex:0]; - }]; - }]; - } else { - // Cells have no artwork to load - __weak typeof(self) weakself = self; - [self sdl_updateMenuWithCellsToDelete:cellsToDelete cellsToAdd:cellsToAdd completionHandler:^(NSError * _Nullable error) { - [weakself sdl_startSubMenuUpdatesWithOldKeptCells:oldKeeps newKeptCells:newKeeps atIndex:0]; - }]; - } -} - -- (void)sdl_startNonDynamicMenuUpdate { - [self sdl_updateIdsOnMenuCells:self.menuCells parentId:ParentIdNotFound]; - - NSArray *artworksToBeUploaded = [self sdl_findAllArtworksToBeUploadedFromCells:self.menuCells]; - if (artworksToBeUploaded.count > 0) { - [self.fileManager uploadArtworks:artworksToBeUploaded completionHandler:^(NSArray * _Nonnull artworkNames, NSError * _Nullable error) { - if (error != nil) { - SDLLogE(@"Error uploading menu artworks: %@", error); - } - - SDLLogD(@"Menu artworks uploaded"); - [self sdl_updateMenuWithCellsToDelete:self.oldMenuCells cellsToAdd:self.menuCells completionHandler:nil]; - }]; - } else { - // Cells have no artwork to load - [self sdl_updateMenuWithCellsToDelete:self.oldMenuCells cellsToAdd:self.menuCells completionHandler:nil]; - } -} - -- (void)sdl_updateMenuWithCellsToDelete:(NSArray *)deleteCells cellsToAdd:(NSArray *)addCells completionHandler:(nullable SDLMenuUpdateCompletionHandler)completionHandler { - if (self.currentHMILevel == nil - || [self.currentHMILevel isEqualToEnum:SDLHMILevelNone] - || [self.currentSystemContext isEqualToEnum:SDLSystemContextMenu]) { - self.waitingOnHMIUpdate = YES; - self.waitingUpdateMenuCells = self.menuCells; - return; - } - - if (self.inProgressUpdate != nil) { - // There's an in progress update, we need to put this on hold - self.hasQueuedUpdate = YES; - return; - } - __weak typeof(self) weakself = self; - [self sdl_sendDeleteCurrentMenu:deleteCells withCompletionHandler:^(NSError * _Nullable error) { - [weakself sdl_sendUpdatedMenu:addCells usingMenu:weakself.menuCells withCompletionHandler:^(NSError * _Nullable error) { - weakself.inProgressUpdate = nil; - - if (completionHandler != nil) { - completionHandler(error); - } - - if (weakself.hasQueuedUpdate) { - [weakself sdl_updateMenuWithCellsToDelete:deleteCells cellsToAdd:addCells completionHandler:nil]; - weakself.hasQueuedUpdate = NO; - } - }]; - }]; -} - -#pragma mark Delete Old Menu Items - -- (void)sdl_sendDeleteCurrentMenu:(nullable NSArray *)deleteMenuCells withCompletionHandler:(SDLMenuUpdateCompletionHandler)completionHandler { - if (deleteMenuCells.count == 0) { - completionHandler(nil); - return; - } - - NSArray *deleteMenuCommands = [self sdl_deleteCommandsForCells:deleteMenuCells]; - [self.connectionManager sendRequests:deleteMenuCommands progressHandler:nil completionHandler:^(BOOL success) { - if (!success) { - SDLLogW(@"Unable to delete all old menu commands"); - } else { - SDLLogD(@"Finished deleting old menu"); - } - - completionHandler(nil); - }]; -} - -#pragma mark Send New Menu Items - -/** - Creates add commands - - @param updatedMenu The cells you will be adding - @param menu The list of all cells. This may be different then self.menuCells since this function is called on subcell cells as well. When comparing 2 sub menu cells this function will be passed the list of all subcells on that cell. - @param completionHandler handler - */ -- (void)sdl_sendUpdatedMenu:(NSArray *)updatedMenu usingMenu:(NSArray *)menu withCompletionHandler:(SDLMenuUpdateCompletionHandler)completionHandler { - if (self.menuCells.count == 0 || updatedMenu.count == 0) { - SDLLogD(@"There are no cells to update."); - completionHandler(nil); - return; - } - - NSArray *mainMenuCommands = nil; - NSArray *subMenuCommands = nil; - - if ([self sdl_findAllArtworksToBeUploadedFromCells:self.menuCells].count > 0 || ![self.windowCapability hasImageFieldOfName:SDLImageFieldNameCommandIcon]) { - // Send artwork-less menu - mainMenuCommands = [self sdl_mainMenuCommandsForCells:updatedMenu withArtwork:NO usingIndexesFrom:menu]; - subMenuCommands = [self sdl_subMenuCommandsForCells:updatedMenu withArtwork:NO]; - } else { - // Send full artwork menu - mainMenuCommands = [self sdl_mainMenuCommandsForCells:updatedMenu withArtwork:YES usingIndexesFrom:menu]; - subMenuCommands = [self sdl_subMenuCommandsForCells:updatedMenu withArtwork:YES]; - } - - self.inProgressUpdate = [mainMenuCommands arrayByAddingObjectsFromArray:subMenuCommands]; - - __block NSMutableDictionary *errors = [NSMutableDictionary dictionary]; - __weak typeof(self) weakSelf = self; - [self.connectionManager sendRequests:mainMenuCommands progressHandler:^void(__kindof SDLRPCRequest * _Nonnull request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error, float percentComplete) { - if (error != nil) { - errors[request] = error; - } - } completionHandler:^(BOOL success) { - if (!success) { - SDLLogE(@"Failed to send main menu commands: %@", errors); - completionHandler([NSError sdl_menuManager_failedToUpdateWithDictionary:errors]); - return; - } - - [weakSelf.connectionManager sendRequests:subMenuCommands progressHandler:^(__kindof SDLRPCRequest * _Nonnull request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error, float percentComplete) { - if (error != nil) { - errors[request] = error; - } - } completionHandler:^(BOOL success) { - if (!success) { - SDLLogE(@"Failed to send sub menu commands: %@", errors); - completionHandler([NSError sdl_menuManager_failedToUpdateWithDictionary:errors]); - return; - } - - SDLLogD(@"Finished updating menu"); - completionHandler(nil); - }]; - }]; -} - -#pragma mark - Helpers - -- (BOOL)sdl_isDynamicMenuUpdateActive:(SDLDynamicMenuUpdatesMode)dynamicMenuUpdatesMode { - switch (dynamicMenuUpdatesMode) { - case SDLDynamicMenuUpdatesModeForceOn: - return YES; - case SDLDynamicMenuUpdatesModeForceOff: - return NO; - case SDLDynamicMenuUpdatesModeOnWithCompatibility: -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return ![self.systemCapabilityManager.displays.firstObject.displayName isEqualToString:SDLDisplayTypeGen38Inch]; -#pragma clang diagnostic pop - - } -} - -#pragma mark Artworks - -- (NSArray *)sdl_findAllArtworksToBeUploadedFromCells:(NSArray *)cells { - if (![self.windowCapability hasImageFieldOfName:SDLImageFieldNameCommandIcon]) { - return @[]; - } - - NSMutableSet *mutableArtworks = [NSMutableSet set]; - for (SDLMenuCell *cell in cells) { - if ([self sdl_artworkNeedsUpload:cell.icon]) { - [mutableArtworks addObject:cell.icon]; - } - - if (cell.subCells.count > 0) { - [mutableArtworks addObjectsFromArray:[self sdl_findAllArtworksToBeUploadedFromCells:cell.subCells]]; - } - } - - return [mutableArtworks allObjects]; -} - -- (BOOL)sdl_artworkNeedsUpload:(SDLArtwork *)artwork { - return (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && !artwork.isStaticIcon); -} - -#pragma mark IDs - -- (void)sdl_updateIdsOnMenuCells:(NSArray *)menuCells parentId:(UInt32)parentId { - for (SDLMenuCell *cell in menuCells) { - cell.cellId = self.lastMenuId++; - cell.parentCellId = parentId; - if (cell.subCells.count > 0) { - [self sdl_updateIdsOnMenuCells:cell.subCells parentId:cell.cellId]; - } - } -} - -#pragma mark Deletes - -- (NSArray *)sdl_deleteCommandsForCells:(NSArray *)cells { - NSMutableArray *mutableDeletes = [NSMutableArray array]; - for (SDLMenuCell *cell in cells) { - if (cell.subCells == nil) { - SDLDeleteCommand *delete = [[SDLDeleteCommand alloc] initWithId:cell.cellId]; - [mutableDeletes addObject:delete]; - } else { - SDLDeleteSubMenu *delete = [[SDLDeleteSubMenu alloc] initWithId:cell.cellId]; - [mutableDeletes addObject:delete]; - } - } - - return [mutableDeletes copy]; -} - -#pragma mark Commands / SubMenu RPCs -/** - This method will receive the cells to be added and the updated menu array. It will then build an array of add commands using the correct index to position the new items in the correct location. - - @param cells that will be added to the menu, this array must contain only cells that are not already in the menu. - @param shouldHaveArtwork artwork bool - @param menu the new menu array, this array should contain all the values the develeoper has set to be included in the new menu. This is used for placing the newly added cells in the correct locaiton. - e.g. If the new menu array is [A, B, C, D] but only [C, D] are new we need to pass [A, B , C , D] so C and D can be added to index 2 and 3 respectively. - @return list of SDLRPCRequest addCommands - */ -- (NSArray *)sdl_mainMenuCommandsForCells:(NSArray *)cells withArtwork:(BOOL)shouldHaveArtwork usingIndexesFrom:(NSArray *)menu { - NSMutableArray *mutableCommands = [NSMutableArray array]; - - for (NSUInteger menuInteger = 0; menuInteger < menu.count; menuInteger++) { - for (NSUInteger updateCellsIndex = 0; updateCellsIndex < cells.count; updateCellsIndex++) { - if ([menu[menuInteger] isEqual:cells[updateCellsIndex]]) { - if (cells[updateCellsIndex].subCells.count > 0) { - [mutableCommands addObject:[self sdl_subMenuCommandForMenuCell:cells[updateCellsIndex] withArtwork:shouldHaveArtwork position:(UInt16)menuInteger]]; - } else { - [mutableCommands addObject:[self sdl_commandForMenuCell:cells[updateCellsIndex] withArtwork:shouldHaveArtwork position:(UInt16)menuInteger]]; - } - } - } - } - - return [mutableCommands copy]; -} - -- (NSArray *)sdl_subMenuCommandsForCells:(NSArray *)cells withArtwork:(BOOL)shouldHaveArtwork { - NSMutableArray *mutableCommands = [NSMutableArray array]; - for (SDLMenuCell *cell in cells) { - if (cell.subCells.count > 0) { - [mutableCommands addObjectsFromArray:[self sdl_allCommandsForCells:cell.subCells withArtwork:shouldHaveArtwork]]; - } - } - - return [mutableCommands copy]; -} - -- (NSArray *)sdl_allCommandsForCells:(NSArray *)cells withArtwork:(BOOL)shouldHaveArtwork { - NSMutableArray *mutableCommands = [NSMutableArray array]; - - for (NSUInteger cellIndex = 0; cellIndex < cells.count; cellIndex++) { - if (cells[cellIndex].subCells.count > 0) { - [mutableCommands addObject:[self sdl_subMenuCommandForMenuCell:cells[cellIndex] withArtwork:shouldHaveArtwork position:(UInt16)cellIndex]]; - [mutableCommands addObjectsFromArray:[self sdl_allCommandsForCells:cells[cellIndex].subCells withArtwork:shouldHaveArtwork]]; - } else { - [mutableCommands addObject:[self sdl_commandForMenuCell:cells[cellIndex] withArtwork:shouldHaveArtwork position:(UInt16)cellIndex]]; - } - } - - return [mutableCommands copy]; -} - -- (SDLAddCommand *)sdl_commandForMenuCell:(SDLMenuCell *)cell withArtwork:(BOOL)shouldHaveArtwork position:(UInt16)position { - SDLAddCommand *command = [[SDLAddCommand alloc] init]; - - SDLMenuParams *params = [[SDLMenuParams alloc] init]; - params.menuName = cell.title; - params.parentID = cell.parentCellId != UINT32_MAX ? @(cell.parentCellId) : nil; - params.position = @(position); - - command.menuParams = params; - command.vrCommands = (cell.voiceCommands.count == 0) ? nil : cell.voiceCommands; - command.cmdIcon = (cell.icon && shouldHaveArtwork) ? cell.icon.imageRPC : nil; - command.cmdID = @(cell.cellId); - - return command; -} - -- (SDLAddSubMenu *)sdl_subMenuCommandForMenuCell:(SDLMenuCell *)cell withArtwork:(BOOL)shouldHaveArtwork position:(UInt16)position { - SDLImage *icon = (shouldHaveArtwork && (cell.icon.name != nil)) ? cell.icon.imageRPC : nil; - - SDLMenuLayout submenuLayout = nil; - if (cell.submenuLayout && [self.systemCapabilityManager.defaultMainWindowCapability.menuLayoutsAvailable containsObject:cell.submenuLayout]) { - submenuLayout = cell.submenuLayout; - } else { - submenuLayout = self.menuConfiguration.defaultSubmenuLayout; - } - - return [[SDLAddSubMenu alloc] initWithId:cell.cellId menuName:cell.title menuLayout:submenuLayout menuIcon:icon position:(UInt8)position]; -} - -#pragma mark - Calling handlers - -- (BOOL)sdl_callHandlerForCells:(NSArray *)cells command:(SDLOnCommand *)onCommand { - for (SDLMenuCell *cell in cells) { - if (cell.cellId == onCommand.cmdID.unsignedIntegerValue && cell.handler != nil) { - cell.handler(onCommand.triggerSource); - return YES; - } - - if (cell.subCells.count > 0) { - BOOL succeeded = [self sdl_callHandlerForCells:cell.subCells command:onCommand]; - if (succeeded) { return YES; } - } - } - - return NO; -} - -#pragma mark - Observers - -- (void)sdl_commandNotification:(SDLRPCNotificationNotification *)notification { - SDLOnCommand *onCommand = (SDLOnCommand *)notification.notification; - - [self sdl_callHandlerForCells:self.menuCells command:onCommand]; -} - -- (void)sdl_displayCapabilityDidUpdate:(SDLSystemCapability *)systemCapability { - // We won't use the object in the parameter but the convenience method of the system capability manager - self.windowCapability = self.systemCapabilityManager.defaultMainWindowCapability; -} - -- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { - SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; - - if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { - return; - } - - SDLHMILevel oldHMILevel = self.currentHMILevel; - self.currentHMILevel = hmiStatus.hmiLevel; - - // Auto-send an updated menu if we were in NONE and now we are not, and we need an update - if ([oldHMILevel isEqualToString:SDLHMILevelNone] && ![self.currentHMILevel isEqualToString:SDLHMILevelNone] && - ![self.currentSystemContext isEqualToEnum:SDLSystemContextMenu]) { - if (self.waitingOnHMIUpdate) { - [self setMenuCells:self.waitingUpdateMenuCells]; - self.waitingUpdateMenuCells = @[]; - return; - } - } - - // If we don't check for this and only update when not in the menu, there can be IN_USE errors, especially with submenus. We also don't want to encourage changing out the menu while the user is using it for usability reasons. - SDLSystemContext oldSystemContext = self.currentSystemContext; - self.currentSystemContext = hmiStatus.systemContext; - - if ([oldSystemContext isEqualToEnum:SDLSystemContextMenu] - && ![self.currentSystemContext isEqualToEnum:SDLSystemContextMenu] - && ![self.currentHMILevel isEqualToEnum:SDLHMILevelNone]) { - if (self.waitingOnHMIUpdate) { - [self setMenuCells:self.waitingUpdateMenuCells]; - self.waitingUpdateMenuCells = @[]; - } - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManagerConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManagerConstants.h deleted file mode 100644 index 5e23971..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuManagerConstants.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// SDLMenuManagerConstants.h -// SmartDeviceLink -// -// Created by Justin Gluck on 5/30/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - - -/// Dynamic Menu Manager Mode -/// -/// When on this feature will smart arrange a new menu comparing it to the old menu if one exists. -typedef NS_ENUM(NSUInteger, SDLDynamicMenuUpdatesMode) { - /// Forces on compatibility mode. This will force the menu manager to delete and re-add each menu item for every menu update. This mode is generally not advised due to performance issues. - SDLDynamicMenuUpdatesModeForceOn = 0, - - /// This mode forces the menu manager to always dynamically update menu items for each menu update. This will provide the best performance but may cause ordering issues on some SYNC Gen 3 head units. - SDLDynamicMenuUpdatesModeForceOff, - - /// This mode checks whether the phone is connected to a SYNC Gen 3 head unit, which has known menu ordering issues. If it is, it will always delete and re-add every menu item, if not, it will dynamically update the menus. - SDLDynamicMenuUpdatesModeOnWithCompatibility -}; - - -/// Menu cell state -/// -/// Cell state that tells the menu manager what it should do with a given SDLMenuCell -typedef NS_ENUM(NSUInteger, MenuCellState) { - /// Marks the cell to be deleted - MenuCellStateDelete = 0, - - /// Marks the cell to be added - MenuCellStateAdd, - - /// Marks the cell to be kept - MenuCellStateKeep -}; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.h deleted file mode 100644 index 89d807f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.h +++ /dev/null @@ -1,64 +0,0 @@ -// SDLMenuParams.h -// - - -#import "SDLRPCMessage.h" - - -NS_ASSUME_NONNULL_BEGIN - -/** - * Used when adding a sub menu to an application menu or existing sub menu. - * - * @since SDL 1.0 - */ -@interface SDLMenuParams : SDLRPCStruct - -/// Convenience init with required parameters. -/// -/// @param menuName The menu name -/// @return An instance of the add submenu class -- (instancetype)initWithMenuName:(NSString *)menuName; - -/// Convenience init with all parameters. -/// -/// @param menuName The menu name -/// @param parentId The unique ID of an existing submenu to which a command will be added -/// @param position The position within the items of the parent Command Menu -/// @return An instance of the add submenu class -- (instancetype)initWithMenuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position; - -/** - * The unique ID of an existing submenu to which a command will be added - - * If this element is not provided, the command will be added to the top level of the Command Menu. - * - * Optional, Integer, 0 - 2,000,000,000 - */ -@property (nullable, strong, nonatomic) NSNumber *parentID; - -/** - * The position within the items of the parent Command Menu - - * 0 will insert at the front, 1 will insert after the first existing element, etc. - * - * Position of any submenu will always be located before the return and exit options. - * - * If position is greater or equal than the number of items in the parent Command Menu, the sub menu will be appended to the end of that Command Menu. - * - * If this element is omitted, the entry will be added at the end of the parent menu. - * - * Optional, Integer, 0 - 1000 - */ -@property (nullable, strong, nonatomic) NSNumber *position; - -/** - * The menu name which appears in menu, representing this command - * - * Required, max length 500 characters - */ -@property (strong, nonatomic) NSString *menuName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.m deleted file mode 100644 index 0fcfbd6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMenuParams.m +++ /dev/null @@ -1,63 +0,0 @@ -// SDLMenuParams.m -// - - -#import "SDLMenuParams.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLMenuParams - -- (instancetype)initWithMenuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position { - self = [self initWithMenuName:menuName]; - if (!self) { - return nil; - } - - self.parentID = @(parentId); - self.position = @(position); - - return self; -} - -- (instancetype)initWithMenuName:(NSString *)menuName { - self = [self init]; - if (!self) { - return nil; - } - - self.menuName = menuName; - - return self; -} - -- (void)setParentID:(nullable NSNumber *)parentID { - [self.store sdl_setObject:parentID forName:SDLRPCParameterNameParentId]; -} - -- (nullable NSNumber *)parentID { - return [self.store sdl_objectForName:SDLRPCParameterNameParentId ofClass:NSNumber.class error:nil]; -} - -- (void)setPosition:(nullable NSNumber *)position { - [self.store sdl_setObject:position forName:SDLRPCParameterNamePosition]; -} - -- (nullable NSNumber *)position { - return [self.store sdl_objectForName:SDLRPCParameterNamePosition ofClass:NSNumber.class error:nil]; -} - -- (void)setMenuName:(NSString *)menuName { - [self.store sdl_setObject:menuName forName:SDLRPCParameterNameMenuName]; -} - -- (NSString *)menuName { - return [self.store sdl_objectForName:SDLRPCParameterNameMenuName ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.h deleted file mode 100644 index 4b875b8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.h +++ /dev/null @@ -1,63 +0,0 @@ -// -// SDLMetadataTags.h -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 8/3/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLRPCMessage.h" -#import "SDLMetadataType.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Metadata for Show fields -@interface SDLMetadataTags : SDLRPCStruct - -/** - Constructs a newly allocated SDLMetadataType object with NSArrays - */ -- (instancetype)initWithTextFieldTypes:(nullable NSArray *)mainField1 mainField2:(nullable NSArray *)mainField2; - -/// Constructs a newly allocated SDLMetadataType with all parameters -- (instancetype)initWithTextFieldTypes:(nullable NSArray *)mainField1 mainField2:(nullable NSArray *)mainField2 mainField3:(nullable NSArray *)mainField3 mainField4:(nullable NSArray *)mainField4; - -/** - The type of data contained in the "mainField1" text field. - - minsize= 0, maxsize= 5 - - Optional - */ -@property (nullable, strong, nonatomic) NSArray *mainField1; - -/** - The type of data contained in the "mainField2" text field. - - minsize= 0, maxsize= 5 - - Optional - */ -@property (nullable, strong, nonatomic) NSArray *mainField2; - -/** - The type of data contained in the "mainField3" text field. - - minsize= 0, maxsize= 5 - - Optional - */ -@property (nullable, strong, nonatomic) NSArray *mainField3; - -/** - The type of data contained in the "mainField4" text field. - - minsize= 0, maxsize= 5 - - Optional - */ -@property (nullable, strong, nonatomic) NSArray *mainField4; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.m deleted file mode 100644 index d61d723..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataTags.m +++ /dev/null @@ -1,78 +0,0 @@ -// -// SDLMetadataStruct.m -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 8/3/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLMetadataTags.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLMetadataTags - -- (instancetype)initWithTextFieldTypes:(nullable NSArray *)mainField1 mainField2:(nullable NSArray *)mainField2 { - self = [self init]; - if (!self) { - return self; - } - - self.mainField1 = mainField1; - self.mainField2 = mainField2; - - return self; -} - -- (instancetype)initWithTextFieldTypes:(nullable NSArray *)mainField1 mainField2:(nullable NSArray *)mainField2 mainField3:(nullable NSArray *)mainField3 mainField4:(nullable NSArray *)mainField4 { - self = [self init]; - if (!self) { - return self; - } - - self.mainField1 = mainField1; - self.mainField2 = mainField2; - self.mainField3 = mainField3; - self.mainField4 = mainField4; - - return self; -} - -- (void)setMainField1:(nullable NSArray *)mainField1 { - [self.store sdl_setObject:mainField1 forName:SDLRPCParameterNameMainField1]; -} - -- (nullable NSArray *)mainField1 { - return [self.store sdl_enumsForName:SDLRPCParameterNameMainField1 error:nil]; -} - -- (void)setMainField2:(nullable NSArray *)mainField2 { - [self.store sdl_setObject:mainField2 forName:SDLRPCParameterNameMainField2]; -} - -- (nullable NSArray *)mainField2 { - return [self.store sdl_enumsForName:SDLRPCParameterNameMainField2 error:nil]; -} - -- (void)setMainField3:(nullable NSArray *)mainField3 { - [self.store sdl_setObject:mainField3 forName:SDLRPCParameterNameMainField3]; -} - -- (nullable NSArray *)mainField3 { - return [self.store sdl_enumsForName:SDLRPCParameterNameMainField3 error:nil]; -} - -- (void)setMainField4:(nullable NSArray *)mainField4 { - [self.store sdl_setObject:mainField4 forName:SDLRPCParameterNameMainField4]; -} - -- (nullable NSArray *)mainField4 { - return [self.store sdl_enumsForName:SDLRPCParameterNameMainField4 error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataType.h deleted file mode 100644 index da79a4a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataType.h +++ /dev/null @@ -1,76 +0,0 @@ - -// -// SDLMetadataType.h -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 8/2/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * Text Field metadata types. Used in Show. - */ -typedef SDLEnum SDLMetadataType SDL_SWIFT_ENUM; - -/** - * The song / media title name - */ -extern SDLMetadataType const SDLMetadataTypeMediaTitle; - -/** - * The "artist" of the media - */ -extern SDLMetadataType const SDLMetadataTypeMediaArtist; - -/** - * The "album" of the media" - */ -extern SDLMetadataType const SDLMetadataTypeMediaAlbum; - -/** - * The "year" that the media was created - */ -extern SDLMetadataType const SDLMetadataTypeMediaYear; - -/** - * The "genre" of the media - */ -extern SDLMetadataType const SDLMetadataTypeMediaGenre; - -/** - * The "station" that the media is playing on - */ -extern SDLMetadataType const SDLMetadataTypeMediaStation; - -/** - * The "rating" given to the media - */ -extern SDLMetadataType const SDLMetadataTypeRating; - -/** - * The current temperature of the weather information - */ -extern SDLMetadataType const SDLMetadataTypeCurrentTemperature; - -/** - * The high / maximum temperature of the weather information for the current period - */ -extern SDLMetadataType const SDLMetadataTypeMaximumTemperature; - -/** - * The low / minimum temperature of the weather information for the current period - */ -extern SDLMetadataType const SDLMetadataTypeMinimumTemperature; - -/** - * A description of the weather for the current period - */ -extern SDLMetadataType const SDLMetadataTypeWeatherTerm; - -/** - * The humidity of the weather information for the current period - */ -extern SDLMetadataType const SDLMetadataTypeHumidity; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataType.m deleted file mode 100644 index 22e846c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMetadataType.m +++ /dev/null @@ -1,22 +0,0 @@ -// -// SDLTextFieldType.m -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 8/2/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLMetadataType.h" - -SDLMetadataType const SDLMetadataTypeMediaTitle = @"mediaTitle"; -SDLMetadataType const SDLMetadataTypeMediaArtist = @"mediaArtist"; -SDLMetadataType const SDLMetadataTypeMediaAlbum = @"mediaAlbum"; -SDLMetadataType const SDLMetadataTypeMediaYear = @"mediaYear"; -SDLMetadataType const SDLMetadataTypeMediaGenre = @"mediaGenre"; -SDLMetadataType const SDLMetadataTypeMediaStation = @"mediaStation"; -SDLMetadataType const SDLMetadataTypeRating = @"rating"; -SDLMetadataType const SDLMetadataTypeCurrentTemperature = @"currentTemperature"; -SDLMetadataType const SDLMetadataTypeMaximumTemperature = @"maximumTemperature"; -SDLMetadataType const SDLMetadataTypeMinimumTemperature = @"minimumTemperature"; -SDLMetadataType const SDLMetadataTypeWeatherTerm = @"weatherTerm"; -SDLMetadataType const SDLMetadataTypeHumidity = @"humidity"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.h deleted file mode 100644 index 3ed7bfd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.h +++ /dev/null @@ -1,131 +0,0 @@ -// -// SDLModuleData.h -// - -#import "SDLRPCMessage.h" -#import "SDLModuleType.h" - -@class SDLRadioControlData; -@class SDLClimateControlData; -@class SDLSeatControlData; -@class SDLAudioControlData; -@class SDLHMISettingsControlData; -@class SDLLightControlData; - - -NS_ASSUME_NONNULL_BEGIN - -/** - Describes a remote control module's data - */ -@interface SDLModuleData : SDLRPCStruct - -/** - Constructs a newly allocated SDLModuleData object with radio control data - - @param radioControlData The radio control data - @return An instance of the SDLModuleData class - */ -- (instancetype)initWithRadioControlData:(SDLRadioControlData *)radioControlData; - -/** - Constructs a newly allocated SDLModuleData object with climate control data - - @param climateControlData The climate control data - @return An instance of the SDLModuleData class - */ -- (instancetype)initWithClimateControlData:(SDLClimateControlData *)climateControlData; - -/** - Constructs a newly allocated SDLModuleData object with audio control data - - @param audioControlData The audio control data - @return An instance of the SDLModuleData class - */ -- (instancetype)initWithAudioControlData:(SDLAudioControlData *)audioControlData; - -/** - Constructs a newly allocated SDLModuleData object with light control data - - @param lightControlData The light control data - @return An instance of the SDLModuleData class - */ -- (instancetype)initWithLightControlData:(SDLLightControlData *)lightControlData; - -/** - Constructs a newly allocated SDLModuleData object with hmi settings data - - @param hmiSettingsControlData The hmi settings data - @return An instance of the SDLModuleData class - */ -- (instancetype)initWithHMISettingsControlData:(SDLHMISettingsControlData *)hmiSettingsControlData; - -/** - Constructs a newly allocated SDLModuleData object with seat control data - - @param seatControlData The seat control data - @return An instance of the SDLModuleData class - */ -- (instancetype)initWithSeatControlData:(SDLSeatControlData *)seatControlData; - -/** - The moduleType indicates which type of data should be changed and identifies which data object exists in this struct. - - For example, if the moduleType is CLIMATE then a "climateControlData" should exist - - Required - */ -@property (strong, nonatomic) SDLModuleType moduleType; - -/** - Id of a module, published by System Capability. - - Optional - */ -@property (nullable, strong, nonatomic) NSString *moduleId; - -/** - The radio control data - - Optional - */ -@property (nullable, strong, nonatomic) SDLRadioControlData *radioControlData; - -/** - The climate control data - - Optional - */ -@property (nullable, strong, nonatomic) SDLClimateControlData *climateControlData; - -/** - The seat control data - - Optional - */ -@property (nullable, strong, nonatomic) SDLSeatControlData *seatControlData; - -/** - The audio control data - - Optional - */ -@property (nullable, strong, nonatomic) SDLAudioControlData *audioControlData; - -/** - The light control data - - Optional - */ -@property (nullable, strong, nonatomic) SDLLightControlData *lightControlData; - -/** - The hmi control data - - Optional - */ -@property (nullable, strong, nonatomic) SDLHMISettingsControlData *hmiSettingsControlData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.m deleted file mode 100644 index 9595deb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleData.m +++ /dev/null @@ -1,159 +0,0 @@ -// -// SDLModuleData.m -// - -#import "SDLModuleData.h" -#import "SDLRPCParameterNames.h" -#import "SDLClimateControlData.h" -#import "SDLRadioControlData.h" -#import "SDLSeatControlData.h" -#import "SDLAudioControlData.h" -#import "SDLLightControlData.h" -#import "SDLHMISettingsControlData.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLModuleData - -- (instancetype)initWithRadioControlData:(SDLRadioControlData *)radioControlData { - self = [self init]; - if(!self){ - return nil; - } - - self.moduleType = SDLModuleTypeRadio; - self.radioControlData = radioControlData; - - return self; -} - -- (instancetype)initWithClimateControlData:(SDLClimateControlData *)climateControlData { - self = [self init]; - if(!self){ - return nil; - } - - self.moduleType = SDLModuleTypeClimate; - self.climateControlData = climateControlData; - - return self; -} - -- (instancetype)initWithAudioControlData:(SDLAudioControlData *)audioControlData { - self = [self init]; - if(!self){ - return nil; - } - - self.moduleType = SDLModuleTypeAudio; - self.audioControlData = audioControlData; - - return self; -} - -- (instancetype)initWithLightControlData:(SDLLightControlData *)lightControlData { - self = [self init]; - if(!self){ - return nil; - } - - self.moduleType = SDLModuleTypeLight; - self.lightControlData = lightControlData; - - return self; -} - -- (instancetype)initWithHMISettingsControlData:(SDLHMISettingsControlData *)hmiSettingsControlData { - self = [self init]; - if(!self){ - return nil; - } - - self.moduleType = SDLModuleTypeHMISettings; - self.hmiSettingsControlData = hmiSettingsControlData; - - return self; -} - -- (instancetype)initWithSeatControlData:(SDLSeatControlData *)seatControlData { - self = [self init]; - if(!self){ - return nil; - } - - self.moduleType = SDLModuleTypeSeat; - self.seatControlData = seatControlData; - - return self; -} - -- (void)setModuleType:(SDLModuleType)moduleType { - [self.store sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; -} - -- (SDLModuleType)moduleType { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; -} - -- (void)setModuleId:(nullable NSString *)moduleId { - [self.store sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId]; -} - -- (nullable NSString *)moduleId { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameModuleId error:&error]; -} - -- (void)setRadioControlData:(nullable SDLRadioControlData *)radioControlData { - [self.store sdl_setObject:radioControlData forName:SDLRPCParameterNameRadioControlData]; -} - -- (nullable SDLRadioControlData *)radioControlData { - return [self.store sdl_objectForName:SDLRPCParameterNameRadioControlData ofClass:SDLRadioControlData.class error:nil]; -} - -- (void)setClimateControlData:(nullable SDLClimateControlData *)climateControlData { - [self.store sdl_setObject:climateControlData forName:SDLRPCParameterNameClimateControlData]; -} - -- (nullable SDLClimateControlData *)climateControlData { - return [self.store sdl_objectForName:SDLRPCParameterNameClimateControlData ofClass:SDLClimateControlData.class error:nil]; -} - -- (void)setSeatControlData:(nullable SDLSeatControlData *)seatControlData { - [self.store sdl_setObject:seatControlData forName:SDLRPCParameterNameSeatControlData]; -} - -- (nullable SDLSeatControlData *)seatControlData { - return [self.store sdl_objectForName:SDLRPCParameterNameSeatControlData ofClass:SDLSeatControlData.class error:nil]; -} - -- (void)setAudioControlData:(nullable SDLAudioControlData *)audioControlData { - [self.store sdl_setObject:audioControlData forName:SDLRPCParameterNameAudioControlData]; -} - -- (nullable SDLAudioControlData *)audioControlData { - return [self.store sdl_objectForName:SDLRPCParameterNameAudioControlData ofClass:SDLAudioControlData.class error:nil]; -} - -- (void)setLightControlData:(nullable SDLLightControlData *)lightControlData { - [self.store sdl_setObject:lightControlData forName:SDLRPCParameterNameLightControlData]; -} - -- (nullable SDLLightControlData *)lightControlData { - return [self.store sdl_objectForName:SDLRPCParameterNameLightControlData ofClass:SDLLightControlData.class error:nil]; -} - -- (void)setHmiSettingsControlData:(nullable SDLHMISettingsControlData *)hmiSettingsControlData { - [self.store sdl_setObject:hmiSettingsControlData forName:SDLRPCParameterNameHmiSettingsControlData]; -} - -- (nullable SDLHMISettingsControlData *)hmiSettingsControlData { - return [self.store sdl_objectForName:SDLRPCParameterNameHmiSettingsControlData ofClass:SDLHMISettingsControlData.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.h deleted file mode 100644 index f8dabce..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// SDLModuleInfo.h -// SmartDeviceLink -// -// Created by standa1 on 7/8/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCMessage.h" -#import "SDLGrid.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Contains information about a RC module. - */ -@interface SDLModuleInfo : SDLRPCStruct - -/** - * UUID of a module. "moduleId + moduleType" uniquely identify a module. - * - * Max string length 100 chars - - Required - */ -@property (nullable, strong, nonatomic) NSString *moduleId; - -/** - * Location of a module. - * Optional - */ -@property (nullable, strong, nonatomic) SDLGrid *location; - -/** - * Service area of a module. - * Optional - */ -@property (nullable, strong, nonatomic) SDLGrid *serviceArea; - -/** - * Allow multiple users/apps to access the module or not - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *allowMultipleAccess; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.m deleted file mode 100644 index 46a95e6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleInfo.m +++ /dev/null @@ -1,52 +0,0 @@ -// -// SDLModuleInfo.m -// SmartDeviceLink -// -// Created by standa1 on 7/8/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLModuleInfo.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -@implementation SDLModuleInfo - -- (void)setModuleId:(NSString *)moduleId { - [self.store sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId]; -} - -- (NSString *)moduleId { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error]; -} - -- (void)setLocation:(nullable SDLGrid *)location { - [self.store sdl_setObject:location forName:SDLRPCParameterNameLocation]; -} - -- (nullable SDLGrid *)location { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLocation ofClass:SDLGrid.class error:&error]; -} - -- (void)setServiceArea:(nullable SDLGrid *)serviceArea { - [self.store sdl_setObject:serviceArea forName:SDLRPCParameterNameServiceArea]; -} - -- (nullable SDLGrid *)serviceArea { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameServiceArea ofClass:SDLGrid.class error:&error]; -} - -- (void)setAllowMultipleAccess:(nullable NSNumber *)allowMultipleAccess { - [self.store sdl_setObject:allowMultipleAccess forName:SDLRPCParameterNameAllowMultipleAccess]; -} - -- (nullable NSNumber *)allowMultipleAccess { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameAllowMultipleAccess ofClass:NSNumber.class error:&error]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleType.h deleted file mode 100644 index c69004e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleType.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// SDLModuleType.h -// - -#import "SDLEnum.h" - -/** - * The type of remote control data. Used in ButtonPress, GetInteriorVehicleData, and ModuleData - */ -typedef SDLEnum SDLModuleType SDL_SWIFT_ENUM; - -/** - * A SDLModuleType with the value of *CLIMATE* - */ -extern SDLModuleType const SDLModuleTypeClimate; - -/** - * A SDLModuleType with the value of *RADIO* - */ -extern SDLModuleType const SDLModuleTypeRadio; - -/** - * A SDLModuleType with the value of *SEAT* - */ -extern SDLModuleType const SDLModuleTypeSeat; - -/** - * A SDLModuleType with the value of *AUDIO* - */ -extern SDLModuleType const SDLModuleTypeAudio; - -/** - * A SDLModuleType with the value of *LIGHT* - */ -extern SDLModuleType const SDLModuleTypeLight; - -/** - * A SDLModuleType with the value of *HMI_SETTINGS* - */ -extern SDLModuleType const SDLModuleTypeHMISettings; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleType.m deleted file mode 100644 index d23b195..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLModuleType.m +++ /dev/null @@ -1,12 +0,0 @@ -// -// SDLModuleType.m -// - -#import "SDLModuleType.h" - -SDLModuleType const SDLModuleTypeClimate = @"CLIMATE"; -SDLModuleType const SDLModuleTypeRadio = @"RADIO"; -SDLModuleType const SDLModuleTypeSeat = @"SEAT"; -SDLModuleType const SDLModuleTypeAudio = @"AUDIO"; -SDLModuleType const SDLModuleTypeLight = @"LIGHT"; -SDLModuleType const SDLModuleTypeHMISettings = @"HMI_SETTINGS"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.h deleted file mode 100644 index 03b033a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// SDLMsgVersion.h -// SmartDeviceLink -// -// Created by Justin Gluck on 7/18/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCStruct.h" - -NS_ASSUME_NONNULL_BEGIN -/** - * Specifies the version number of the SDL V4 interface. This is used by both the application and SDL to declare what interface version each is using. - * - * @since SDL 1.0 - */ -@interface SDLMsgVersion : SDLRPCStruct - -/** - * Convenience init for all parameters. - * - * @param majorVersion Major version - * @param minorVersion Minor version - * @param patchVersion Patch version - * @return A SDLMsgVersion object - */ -- (instancetype)initWithMajorVersion:(UInt8)majorVersion minorVersion:(UInt8)minorVersion patchVersion:(UInt8)patchVersion; - -/** - * The major version indicates versions that is not-compatible to previous versions - * - * Required, Integer, 1 - 10 - */ -@property (strong, nonatomic) NSNumber *majorVersion; - -/** - * The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality) - * - * Required, Integer, 0 - 1000 - */ -@property (strong, nonatomic) NSNumber *minorVersion; - -/** - * Allows backward-compatible fixes to the API without increasing the minor version of the interface - * - * Optional, Integer, 0 - 1000 - */ -@property (strong, nonatomic, nullable) NSNumber *patchVersion; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.m deleted file mode 100644 index dce291b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMsgVersion.m +++ /dev/null @@ -1,58 +0,0 @@ -// -// SDLMsgVersion.m -// SmartDeviceLink -// -// Created by Justin Gluck on 7/18/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLMsgVersion.h" -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -@implementation SDLMsgVersion - -- (instancetype)initWithMajorVersion:(UInt8)majorVersion minorVersion:(UInt8)minorVersion patchVersion:(UInt8)patchVersion { - self = [self init]; - if (!self) { - return nil; - } - - self.majorVersion = @(majorVersion); - self.minorVersion = @(minorVersion); - self.patchVersion = @(patchVersion); - - return self; -} - -- (void)setMajorVersion:(NSNumber *)majorVersion { - [self.store sdl_setObject:majorVersion forName:SDLRPCParameterNameMajorVersion]; -} - -- (NSNumber *)majorVersion { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMajorVersion ofClass:NSNumber.class error:&error]; -} - -- (void)setMinorVersion:(NSNumber *)minorVersion { - [self.store sdl_setObject:minorVersion forName:SDLRPCParameterNameMinorVersion]; -} - -- (NSNumber *)minorVersion { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMinorVersion ofClass:NSNumber.class error:&error]; -} - -- (void)setPatchVersion:(nullable NSNumber *)patchVersion { - [self.store sdl_setObject:patchVersion forName:SDLRPCParameterNamePatchVersion]; -} - -- (nullable NSNumber *)patchVersion { - return [self.store sdl_objectForName:SDLRPCParameterNamePatchVersion ofClass:NSNumber.class error:nil]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"%@.%@.%@", self.majorVersion, self.minorVersion, self.patchVersion]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMutableDataQueue.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMutableDataQueue.h deleted file mode 100644 index ece0c0e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMutableDataQueue.h +++ /dev/null @@ -1,60 +0,0 @@ -// -// SDLMutableDataQueue.h -// -// -// Created by David Switzer on 3/2/17. -// -// - -#import - -/** - This queue class is used by the IAP data session to provide safe, async writing of RPC messages to the connected SDL compliant accessory. It uses NSMutableData objects because the NSOutputStream has a variable amount of space available based on iOS and accessory buffering. We want to be able to pop the buffer at the head multiiple times and consume as many bytes as there are available in the stream. - */ - -@interface SDLMutableDataQueue : NSObject - -NS_ASSUME_NONNULL_BEGIN - -/** - frontBuffer returns the NSMutableData * buffer at the front of the queue, but does not remove it - modeled after the STL C++ queue front method - - @return NSMutableData containing the buffer at the head of the queue or nil if - the queue is empty - */ -- (NSMutableData *_Nullable)frontBuffer; - - -/** - popBuffer removes the buffer at the head of the queue -- modeled after the - STL C++ queue pop method. Use to remove the buffer once all of the data has - been consumed or the data is no longer valid/needed. - */ -- (void)popBuffer; - -/** - Enqueues a new buffer at the back of the queue - - @param data NSMutableData containing the buffer to enqueue - */ -- (void)enqueueBuffer:(NSMutableData *)data; - -/** - Empty the queue - */ -- (void)removeAllObjects; - -/** - Gets the number of buffers currently enqueued - */ -@property (nonatomic, assign, readonly) NSUInteger count; - -/** - A flag indicating whether the buffer at the head of the queue has been dequeued at least once. - */ -@property (nonatomic, assign, readonly, getter=isFrontBufferDequeued) BOOL frontDequeued; - -NS_ASSUME_NONNULL_END - - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMutableDataQueue.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMutableDataQueue.m deleted file mode 100644 index 0640749..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMutableDataQueue.m +++ /dev/null @@ -1,76 +0,0 @@ -// -// SDLMutableDataQueue.m -// -// -// Created by David Switzer on 3/2/17. -// -// - -#import "SDLMutableDataQueue.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLMutableDataQueue () - -@property (nonatomic, strong) NSMutableArray *elements; -@property (nonatomic, assign, readwrite) BOOL frontDequeued; - -@end - -@implementation SDLMutableDataQueue - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - _elements = [NSMutableArray array]; - - return self; -} - -- (void)enqueueBuffer:(NSMutableData *)data { - // Since this method is being called from the main thread and the dequeue methods are being called from the data session stream thread, we need to put critical sections around the queue members. Use the @synchronized object level lock to do this. - @synchronized(self) { - [self.elements addObject:data]; - self.frontDequeued = NO; - } -} - -- (NSMutableData *_Nullable)frontBuffer { - NSMutableData *dataAtFront = nil; - - @synchronized(self) { - if (self.elements.count > 0) { - // The front of the queue is always at index 0 - dataAtFront = self.elements.firstObject; - self.frontDequeued = YES; - } - } - - return dataAtFront; -} - -- (void)popBuffer { - @synchronized(self) { - if (self.elements.count <= 0) { return; } - [self.elements removeObjectAtIndex:0]; - } -} - -- (void)removeAllObjects { - @synchronized(self) { - [self.elements removeAllObjects]; - } -} - -- (NSUInteger)count { - @synchronized(self) { - return self.elements.count; - } -} - -NS_ASSUME_NONNULL_END - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMyKey.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMyKey.h deleted file mode 100644 index e9f53aa..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMyKey.h +++ /dev/null @@ -1,21 +0,0 @@ -// SDLMyKey.h -// - -#import "SDLRPCMessage.h" -#import "SDLVehicleDataStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Vehicle Data struct - */ -@interface SDLMyKey : SDLRPCStruct - -/** - Indicates whether e911 override is on. References signal "MyKey_e911Override_St". See VehicleDataStatus. - */ -@property (strong, nonatomic) SDLVehicleDataStatus e911Override; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMyKey.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLMyKey.m deleted file mode 100644 index 6ed3840..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLMyKey.m +++ /dev/null @@ -1,25 +0,0 @@ -// SDLMyKey.m -// - -#import "SDLMyKey.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLVehicleDataStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLMyKey - -- (void)setE911Override:(SDLVehicleDataStatus)e911Override { - [self.store sdl_setObject:e911Override forName:SDLRPCParameterNameE911Override]; -} - -- (SDLVehicleDataStatus)e911Override { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameE911Override error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.h deleted file mode 100644 index 6cc0edd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// SDLNavigationAction.h -// SmartDeviceLink -// -// Created by Nicole on 2/22/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * A navigation action. - */ -typedef SDLEnum SDLNavigationAction SDL_SWIFT_ENUM; - -/** - * Using this action plus a supplied direction can give the type of turn. - */ -extern SDLNavigationAction const SDLNavigationActionTurn; - -/** - * A navigation action of exit. - */ -extern SDLNavigationAction const SDLNavigationActionExit; - -/** - * A navigation action of stay. - */ -extern SDLNavigationAction const SDLNavigationActionStay; - -/** - * A navigation action of merge. - */ -extern SDLNavigationAction const SDLNavigationActionMerge; - -/** - * A navigation action of ferry. - */ -extern SDLNavigationAction const SDLNavigationActionFerry; - -/** - * A navigation action of car shuttle train. - */ -extern SDLNavigationAction const SDLNavigationActionCarShuttleTrain; - -/** - * A navigation action of waypoint. - */ -extern SDLNavigationAction const SDLNavigationActionWaypoint; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.m deleted file mode 100644 index 938acea..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationAction.m +++ /dev/null @@ -1,17 +0,0 @@ -// -// SDLNavigationAction.m -// SmartDeviceLink -// -// Created by Nicole on 2/22/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLNavigationAction.h" - -SDLNavigationAction const SDLNavigationActionTurn = @"TURN"; -SDLNavigationAction const SDLNavigationActionExit = @"EXIT"; -SDLNavigationAction const SDLNavigationActionStay = @"STAY"; -SDLNavigationAction const SDLNavigationActionMerge = @"MERGE"; -SDLNavigationAction const SDLNavigationActionFerry = @"FERRY"; -SDLNavigationAction const SDLNavigationActionCarShuttleTrain = @"CAR_SHUTTLE_TRAIN"; -SDLNavigationAction const SDLNavigationActionWaypoint = @"WAYPOINT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.h deleted file mode 100644 index 91fad71..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// SDLNavigationCapability.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/11/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLRPCStruct.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Extended capabilities for an onboard navigation system - */ -@interface SDLNavigationCapability : SDLRPCStruct - -/// Convenience init with all parameters -/// -/// @param sendLocationEnabled Whether or not the SendLocation RPC is enabled -/// @param waypointsEnabled Whether SDLNavigationInstruction.hor not Waypoint related RPCs are enabled -/// @return An SDLNavigationCapability object -- (instancetype)initWithSendLocation:(BOOL)sendLocationEnabled waypoints:(BOOL)waypointsEnabled; - -/** - Whether or not the SendLocation RPC is enabled. - - Boolean, optional - */ -@property (nullable, copy, nonatomic) NSNumber *sendLocationEnabled; - -/** - Whether or not Waypoint related RPCs are enabled. - - Boolean, optional - */ -@property (nullable, copy, nonatomic) NSNumber *getWayPointsEnabled; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.m deleted file mode 100644 index 7f536bc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationCapability.m +++ /dev/null @@ -1,48 +0,0 @@ -// -// SDLNavigationCapability.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/11/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLNavigationCapability.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLNavigationCapability - -- (instancetype)initWithSendLocation:(BOOL)sendLocationEnabled waypoints:(BOOL)waypointsEnabled { - self = [self init]; - if (!self) { - return self; - } - - self.sendLocationEnabled = @(sendLocationEnabled); - self.getWayPointsEnabled = @(waypointsEnabled); - - return self; -} - -- (void)setSendLocationEnabled:(nullable NSNumber *)sendLocationEnabled { - [self.store sdl_setObject:sendLocationEnabled forName:SDLRPCParameterNameSendLocationEnabled]; -} - -- (nullable NSNumber *)sendLocationEnabled { - return [self.store sdl_objectForName:SDLRPCParameterNameSendLocationEnabled ofClass:NSNumber.class error:nil]; -} - -- (void)setGetWayPointsEnabled:(nullable NSNumber *)getWayPointsEnabled { - [self.store sdl_setObject:getWayPointsEnabled forName:SDLRPCParameterNameGetWayPointsEnabled]; -} - -- (nullable NSNumber *)getWayPointsEnabled { - return [self.store sdl_objectForName:SDLRPCParameterNameGetWayPointsEnabled ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.h deleted file mode 100644 index a04cf6e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.h +++ /dev/null @@ -1,109 +0,0 @@ -// -// SDLNavigationInstruction.h -// SmartDeviceLink -// -// Created by Nicole on 2/22/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCMessage.h" - -#import "SDLDirection.h" -#import "SDLNavigationAction.h" -#import "SDLNavigationJunction.h" - -@class SDLDateTime; -@class SDLImage; -@class SDLLocationDetails; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * A navigation instruction. - */ -@interface SDLNavigationInstruction : SDLRPCStruct - -/** - * Convenience init for required parameters - * - * @param locationDetails The location details - * @param action The navigation action - * @return A SDLNavigationInstruction object - */ -- (instancetype)initWithLocationDetails:(SDLLocationDetails *)locationDetails action:(SDLNavigationAction)action NS_DESIGNATED_INITIALIZER; - -/** - * Convenience init for all parameters. - * - * @param locationDetails The location details - * @param action The navigation action - * @param eta The estimated time of arrival - * @param bearing The angle at which this instruction takes place - * @param junctionType The navigation junction type - * @param drivingSide Used to infer which side of the road this instruction takes place - * @param details This is a string representation of this instruction, used to display instructions to the users - * @param image An image representation of this instruction - * @return A SDLNavigationInstruction object - */ -- (instancetype)initWithLocationDetails:(SDLLocationDetails *)locationDetails action:(SDLNavigationAction)action eta:(nullable SDLDateTime *)eta bearing:(UInt16)bearing junctionType:(nullable SDLNavigationJunction)junctionType drivingSide:(nullable SDLDirection)drivingSide details:(nullable NSString *)details image:(nullable SDLImage *)image; - -/** - * The location details. - * - * SDLLocationDetails, Required - */ -@property (strong, nonatomic) SDLLocationDetails *locationDetails; - -/** - * The navigation action. - * - * SDLNavigationAction, Required - */ -@property (strong, nonatomic) SDLNavigationAction action; - -/** - * The estimated time of arrival. - * - * SDLDateTime, Optional - */ -@property (nullable, strong, nonatomic) SDLDateTime *eta; - -/** - * The angle at which this instruction takes place. For example, 0 would mean straight, <=45 is bearing right, >= 135 is sharp right, between 45 and 135 is a regular right, and 180 is a U-Turn, etc. - * - * Integer, Optional, minValue="0" maxValue="359" - */ -@property (nullable, strong, nonatomic) NSNumber *bearing; - -/** - * The navigation junction type. - * - * SDLNavigationJunction, Optional - */ -@property (nullable, strong, nonatomic) SDLNavigationJunction junctionType; - -/** - * Used to infer which side of the road this instruction takes place. For a U-Turn (action=TURN, bearing=180) this will determine which direction the turn should take place. - * - * SDLDirection, Optional - */ -@property (nullable, strong, nonatomic) SDLDirection drivingSide; - -/** - * This is a string representation of this instruction, used to display instructions to the users. This is not intended to be read aloud to the users, see the param prompt in `NavigationServiceData` for that. - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *details; - -/** - * An image representation of this instruction. - * - * SDLImage, Optional - */ -@property (nullable, strong, nonatomic) SDLImage *image; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.m deleted file mode 100644 index d6e8e66..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationInstruction.m +++ /dev/null @@ -1,116 +0,0 @@ -// -// SDLNavigationInstruction.m -// SmartDeviceLink -// -// Created by Nicole on 2/22/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLNavigationInstruction.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLDateTime.h" -#import "SDLImage.h" -#import "SDLLocationDetails.h" -#import "SDLRPCParameterNames.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLNavigationInstruction - -- (instancetype)initWithLocationDetails:(SDLLocationDetails *)locationDetails action:(SDLNavigationAction)action { - self = [super init]; - if (!self) { - return nil; - } - - self.locationDetails = locationDetails; - self.action = action; - - return self; -} - -- (instancetype)initWithLocationDetails:(SDLLocationDetails *)locationDetails action:(SDLNavigationAction)action eta:(nullable SDLDateTime *)eta bearing:(UInt16)bearing junctionType:(nullable SDLNavigationJunction)junctionType drivingSide:(nullable SDLDirection)drivingSide details:(nullable NSString *)details image:(nullable SDLImage *)image { - self = [self initWithLocationDetails:locationDetails action:action]; - if (!self) { - return nil; - } - - self.eta = eta; - self.bearing = @(bearing); - self.junctionType = junctionType; - self.drivingSide = drivingSide; - self.details = details; - self.image = image; - - return self; -} - -- (void)setLocationDetails:(SDLLocationDetails *)locationDetails { - [self.store sdl_setObject:locationDetails forName:SDLRPCParameterNameLocationDetails]; -} - -- (SDLLocationDetails *)locationDetails { - return [self.store sdl_objectForName:SDLRPCParameterNameLocationDetails ofClass:SDLLocationDetails.class error:nil]; -} - -- (void)setAction:(SDLNavigationAction)action { - [self.store sdl_setObject:action forName:SDLRPCParameterNameAction]; -} - -- (SDLNavigationAction)action { - return [self.store sdl_enumForName:SDLRPCParameterNameAction error:nil]; -} - -- (void)setEta:(nullable SDLDateTime *)eta { - [self.store sdl_setObject:eta forName:SDLRPCParameterNameETA]; -} - -- (nullable SDLDateTime *)eta { - return [self.store sdl_objectForName:SDLRPCParameterNameETA ofClass:SDLDateTime.class error:nil]; -} - -- (void)setBearing:(nullable NSNumber *)bearing { - [self.store sdl_setObject:bearing forName:SDLRPCParameterNameBearing]; -} - -- (nullable NSNumber *)bearing { - return [self.store sdl_objectForName:SDLRPCParameterNameBearing ofClass:NSNumber.class error:nil]; -} - -- (void)setJunctionType:(nullable SDLNavigationJunction)junctionType { - [self.store sdl_setObject:junctionType forName:SDLRPCParameterNameJunctionType]; -} - -- (nullable SDLNavigationJunction)junctionType { - return [self.store sdl_enumForName:SDLRPCParameterNameJunctionType error:nil]; -} - -- (void)setDrivingSide:(nullable SDLDirection)drivingSide { - [self.store sdl_setObject:drivingSide forName:SDLRPCParameterNameDrivingSide]; -} - -- (nullable SDLDirection)drivingSide { - return [self.store sdl_enumForName:SDLRPCParameterNameDrivingSide error:nil]; -} - -- (void)setDetails:(nullable NSString *)details { - [self.store sdl_setObject:details forName:SDLRPCParameterNameDetails]; -} - -- (nullable NSString *)details { - return [self.store sdl_objectForName:SDLRPCParameterNameDetails ofClass:NSString.class error:nil]; -} - -- (void)setImage:(nullable SDLImage *)image { - [self.store sdl_setObject:image forName:SDLRPCParameterNameImage]; -} - -- (nullable SDLImage *)image { - return [self.store sdl_objectForName:SDLRPCParameterNameImage ofClass:SDLImage.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.h deleted file mode 100644 index 36be6f0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.h +++ /dev/null @@ -1,54 +0,0 @@ -// -// SDLNavigationJunction.h -// SmartDeviceLink -// -// Created by Nicole on 2/22/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * A navigation junction type. - */ -typedef SDLEnum SDLNavigationJunction SDL_SWIFT_ENUM; - -/** - * A junction that represents a standard intersection with a single road crossing another. - */ -extern SDLNavigationJunction const SDLNavigationJunctionRegular; - -/** - * A junction where the road splits off into two paths; a fork in the road. - */ -extern SDLNavigationJunction const SDLNavigationJunctionBifurcation; - -/** - * A junction that has multiple intersections and paths. - */ -extern SDLNavigationJunction const SDLNavigationJunctionMultiCarriageway; - -/** - * A junction where traffic moves in a single direction around a central, non-traversable point to reach one of the connecting roads. - */ -extern SDLNavigationJunction const SDLNavigationJunctionRoundabout; - -/** - * Similar to a roundabout, however the center of the roundabout is fully traversable. Also known as a mini-roundabout. - */ -extern SDLNavigationJunction const SDLNavigationJunctionTraversableRoundabout; - -/** - * A junction where lefts diverge to the right, then curve to the left, converting a left turn to a crossing maneuver. - */ -extern SDLNavigationJunction const SDLNavigationJunctionJughandle; - -/** - * Multiple way intersection that allows traffic to flow based on priority; most commonly right of way and first in, first out. - */ -extern SDLNavigationJunction const SDLNavigationJunctionAllWayYield; - -/** - * A junction designated for traffic turn arounds. - */ -extern SDLNavigationJunction const SDLNavigationJunctionTurnAround; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.m deleted file mode 100644 index 3c5b81c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationJunction.m +++ /dev/null @@ -1,19 +0,0 @@ -// -// SDLNavigationJunction.m -// SmartDeviceLink -// -// Created by Nicole on 2/22/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLNavigationJunction.h" - -SDLNavigationJunction const SDLNavigationJunctionRegular = @"REGULAR"; -SDLNavigationJunction const SDLNavigationJunctionBifurcation = @"BIFURCATION"; -SDLNavigationJunction const SDLNavigationJunctionMultiCarriageway = @"MULTI_CARRIAGEWAY"; -SDLNavigationJunction const SDLNavigationJunctionRoundabout = @"ROUNDABOUT"; -SDLNavigationJunction const SDLNavigationJunctionTraversableRoundabout = @"TRAVERSABLE_ROUNDABOUT"; -SDLNavigationJunction const SDLNavigationJunctionJughandle = @"JUGHANDLE"; -SDLNavigationJunction const SDLNavigationJunctionAllWayYield = @"ALL_WAY_YIELD"; -SDLNavigationJunction const SDLNavigationJunctionTurnAround = @"TURN_AROUND"; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.h deleted file mode 100644 index 0f090fc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.h +++ /dev/null @@ -1,111 +0,0 @@ -// -// SDLNavigationServiceData.h -// SmartDeviceLink -// -// Created by Nicole on 2/22/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCMessage.h" - -@class SDLDateTime; -@class SDLLocationDetails; -@class SDLNavigationInstruction; - -NS_ASSUME_NONNULL_BEGIN - -/** - * This data is related to what a navigation service would provide. - */ -@interface SDLNavigationServiceData : SDLRPCStruct - -/** - * Convenience init for required parameters. - * - * @param timestamp Timestamp of when the data was generated - * @return A SDLNavigationServiceData object - */ -- (instancetype)initWithTimestamp:(SDLDateTime *)timestamp NS_DESIGNATED_INITIALIZER; - -/** - * Convenience init for all parameters. - * - * @param timestamp Timestamp of when the data was generated - * @param origin The start location - * @param destination The final destination location - * @param destinationETA The estimated time of arrival at the final destination location - * @param instructions Array ordered with all remaining instructions - * @param nextInstructionETA The estimated time of arrival at the next destination - * @param nextInstructionDistance The distance to this instruction from current location - * @param nextInstructionDistanceScale Distance till next maneuver (starting from) from previous maneuver - * @param prompt This is a prompt message that should be conveyed to the user through either display or voice (TTS) - * @return A SDLNavigationServiceData object - */ -- (instancetype)initWithTimestamp:(SDLDateTime *)timestamp origin:(nullable SDLLocationDetails *)origin destination:(nullable SDLLocationDetails *)destination destinationETA:(nullable SDLDateTime *)destinationETA instructions:(nullable NSArray *)instructions nextInstructionETA:(nullable SDLDateTime *)nextInstructionETA nextInstructionDistance:(float)nextInstructionDistance nextInstructionDistanceScale:(float)nextInstructionDistanceScale prompt:(nullable NSString *)prompt; - -/** - * This is the timestamp of when the data was generated. This is to ensure any time or distance given in the data can accurately be adjusted if necessary. - * - * SDLDateTime, Required - */ -@property (strong, nonatomic) SDLDateTime *timestamp; - -/** - * The start location. - * - * SDLLocationDetails, Optional - */ -@property (nullable, strong, nonatomic) SDLLocationDetails *origin; - -/** - * The final destination location. - * - * SDLLocationDetails, Optional - */ -@property (nullable, strong, nonatomic) SDLLocationDetails *destination; - -/** - * The estimated time of arrival at the final destination location. - * - * SDLDateTime, Optional - */ -@property (nullable, strong, nonatomic) SDLDateTime *destinationETA; - -/** - * This array should be ordered with all remaining instructions. The start of this array should always contain the next instruction. - * - * Array of SDLNavigationInstruction, Optional - */ -@property (nullable, strong, nonatomic) NSArray *instructions; - -/** - * The estimated time of arrival at the next destination. - * - * SDLDateTime, Optional - */ -@property (nullable, strong, nonatomic) SDLDateTime *nextInstructionETA; - -/** - * The distance to this instruction from current location. This should only be updated ever .1 unit of distance. For more accuracy the consumer can use the GPS location of itself and the next instruction. - * - * Float, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *nextInstructionDistance; - -/** - * Distance till next maneuver (starting from) from previous maneuver. - * - * Float, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *nextInstructionDistanceScale; - -/** - * This is a prompt message that should be conveyed to the user through either display or voice (TTS). This param will change often as it should represent the following: approaching instruction, post instruction, alerts that affect the current navigation session, etc. - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *prompt; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.m deleted file mode 100644 index 6143c47..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceData.m +++ /dev/null @@ -1,124 +0,0 @@ -// -// SDLNavigationServiceData.m -// SmartDeviceLink -// -// Created by Nicole on 2/22/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLNavigationServiceData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLDateTime.h" -#import "SDLLocationDetails.h" -#import "SDLRPCParameterNames.h" -#import "SDLNavigationInstruction.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLNavigationServiceData - -- (instancetype)initWithTimestamp:(SDLDateTime *)timestamp { - self = [super init]; - if (!self) { - return nil; - } - - self.timestamp = timestamp; - - return self; -} - -- (instancetype)initWithTimestamp:(SDLDateTime *)timestamp origin:(nullable SDLLocationDetails *)origin destination:(nullable SDLLocationDetails *)destination destinationETA:(nullable SDLDateTime *)destinationETA instructions:(nullable NSArray *)instructions nextInstructionETA:(nullable SDLDateTime *)nextInstructionETA nextInstructionDistance:(float)nextInstructionDistance nextInstructionDistanceScale:(float)nextInstructionDistanceScale prompt:(nullable NSString *)prompt { - self = [self initWithTimestamp:timestamp]; - if (!self) { - return nil; - } - - self.origin = origin; - self.destination = destination; - self.destinationETA = destinationETA; - self.instructions = instructions; - self.nextInstructionETA = nextInstructionETA; - self.nextInstructionDistance = @(nextInstructionDistance); - self.nextInstructionDistanceScale = @(nextInstructionDistanceScale); - self.prompt = prompt; - - return self; -} - -- (void)setTimestamp:(SDLDateTime *)timestamp { - [self.store sdl_setObject:timestamp forName:SDLRPCParameterNameTimeStamp]; -} - -- (SDLDateTime *)timestamp { - return [self.store sdl_objectForName:SDLRPCParameterNameTimeStamp ofClass:SDLDateTime.class error:nil]; -} - -- (void)setOrigin:(nullable SDLLocationDetails *)origin { - [self.store sdl_setObject:origin forName:SDLRPCParameterNameOrigin]; -} - -- (nullable SDLLocationDetails *)origin { - return [self.store sdl_objectForName:SDLRPCParameterNameOrigin ofClass:SDLLocationDetails.class error:nil]; -} - -- (void)setDestination:(nullable SDLLocationDetails *)destination { - [self.store sdl_setObject:destination forName:SDLRPCParameterNameDestination]; -} - -- (nullable SDLLocationDetails *)destination { - return [self.store sdl_objectForName:SDLRPCParameterNameDestination ofClass:SDLLocationDetails.class error:nil]; -} - -- (void)setDestinationETA:(nullable SDLDateTime *)destinationETA { - [self.store sdl_setObject:destinationETA forName:SDLRPCParameterNameDestinationETA]; -} - -- (nullable SDLDateTime *)destinationETA { - return [self.store sdl_objectForName:SDLRPCParameterNameDestinationETA ofClass:SDLDateTime.class error:nil]; -} - -- (void)setInstructions:(nullable NSArray *)instructions { - [self.store sdl_setObject:instructions forName:SDLRPCParameterNameInstructions]; -} - -- (nullable NSArray *)instructions { - return [self.store sdl_objectsForName:SDLRPCParameterNameInstructions ofClass:SDLNavigationInstruction.class error:nil]; -} - -- (void)setNextInstructionETA:(nullable SDLDateTime *)nextInstructionETA { - [self.store sdl_setObject:nextInstructionETA forName:SDLRPCParameterNameNextInstructionETA]; -} - -- (nullable SDLDateTime *)nextInstructionETA { - return [self.store sdl_objectForName:SDLRPCParameterNameNextInstructionETA ofClass:SDLDateTime.class error:nil]; -} - -- (void)setNextInstructionDistance:(nullable NSNumber *)nextInstructionDistance { - [self.store sdl_setObject:nextInstructionDistance forName:SDLRPCParameterNameNextInstructionDistance]; -} - -- (nullable NSNumber *)nextInstructionDistance { - return [self.store sdl_objectForName:SDLRPCParameterNameNextInstructionDistance ofClass:NSNumber.class error:nil]; -} - -- (void)setNextInstructionDistanceScale:(nullable NSNumber *)nextInstructionDistanceScale { - [self.store sdl_setObject:nextInstructionDistanceScale forName:SDLRPCParameterNameNextInstructionDistanceScale]; -} - -- (nullable NSNumber *)nextInstructionDistanceScale { - return [self.store sdl_objectForName:SDLRPCParameterNameNextInstructionDistanceScale ofClass:NSNumber.class error:nil]; -} - -- (void)setPrompt:(nullable NSString *)prompt { - [self.store sdl_setObject:prompt forName:SDLRPCParameterNamePrompt]; -} - -- (nullable NSString *)prompt { - return [self.store sdl_objectForName:SDLRPCParameterNamePrompt ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.h deleted file mode 100644 index 1c8f354..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// SDLNavigationServiceManifest.h -// SmartDeviceLink -// -// Created by Nicole on 2/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * A navigation service manifest. - */ -@interface SDLNavigationServiceManifest : SDLRPCStruct - -/** - * Convenience init. - * - * @param acceptsWayPoints Informs the subscriber if this service can actually accept way points - * @return A SDLNavigationServiceManifest object - */ -- (instancetype)initWithAcceptsWayPoints:(BOOL)acceptsWayPoints; - -/** - * Informs the subscriber if this service can actually accept way points. - * - * Boolean, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *acceptsWayPoints; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.m deleted file mode 100644 index 5769467..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNavigationServiceManifest.m +++ /dev/null @@ -1,39 +0,0 @@ -// -// SDLNavigationServiceManifest.m -// SmartDeviceLink -// -// Created by Nicole on 2/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLNavigationServiceManifest.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLNavigationServiceManifest - -- (instancetype)initWithAcceptsWayPoints:(BOOL)acceptsWayPoints { - self = [self init]; - if (!self) { - return nil; - } - - self.acceptsWayPoints = @(acceptsWayPoints); - - return self; -} - -- (void)setAcceptsWayPoints:(nullable NSNumber *)acceptsWayPoints { - [self.store sdl_setObject:acceptsWayPoints forName:SDLRPCParameterNameAcceptsWayPoints]; -} - -- (nullable NSNumber *)acceptsWayPoints { - return [self.store sdl_objectForName:SDLRPCParameterNameAcceptsWayPoints ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.h deleted file mode 100644 index d99e072..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.h +++ /dev/null @@ -1,629 +0,0 @@ -// -// SDLNotificationConstants.h -// SmartDeviceLink-iOS -// -// Created by Justin Dickow on 9/30/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -@class SDLOnButtonEvent; -@class SDLOnButtonPress; -@class SDLOnCommand; -@class SDLRPCNotification; -@class SDLRPCResponse; -@class SDLRPCRequest; - - -NS_ASSUME_NONNULL_BEGIN - -// Resolves issue of using Swift 3 and pre-iOS 10 versions due to NSNotificationName unavailability. -#if __IPHONE_OS_VERSION_MAX_ALLOWED <= __IPHONE_9_3 -#define NOTIFICATION_TYPEDEF NSString * -#else -#define NOTIFICATION_TYPEDEF NSNotificationName -#endif - -/// NSNotification names specific to incoming SDL RPC -typedef NOTIFICATION_TYPEDEF SDLNotificationName; - -/// The key used in all SDL NSNotifications to extract the response or notification from the userInfo dictionary. -typedef NSString *SDLNotificationUserInfoKey; - -#pragma mark - Blocks - -/** - * A handler used on SDLPerformAudioPassThru. - * - * @param audioData The audio data contained in the notification. - */ -typedef void (^SDLAudioPassThruHandler)(NSData *__nullable audioData); - -/** - * A handler used on all RPC requests which fires when the response is received. - * - * @param request The request which was sent. - * @param response The response which was received. - * @param error If sending the request encountered an error, this parameter will not be nil. - */ -typedef void (^SDLResponseHandler)(__kindof SDLRPCRequest *__nullable request, __kindof SDLRPCResponse *__nullable response, NSError *__nullable error); - -/** - A completion handler called after a sequential or simultaneous set of requests have completed sending. - - @param success True if every request succeeded, false if any failed. See the progress handler for more details on failures. - */ -typedef void (^SDLMultipleRequestCompletionHandler)(BOOL success); - -/** - A handler called after each response to a request comes in in a multiple request send. - - @param request The request that received a response - @param response The response received - @param error The error that occurred during the request if any occurred. - @param percentComplete The percentage of requests that have received a response - @return continueSendingRequests NO to cancel any requests that have not yet been sent. This is really only useful for a sequential send (sendSequentialRequests:progressHandler:completionHandler:). Return YES to continue sending requests. - */ -typedef BOOL (^SDLMultipleSequentialRequestProgressHandler)(__kindof SDLRPCRequest *request, __kindof SDLRPCResponse *__nullable response, NSError *__nullable error, float percentComplete); - -/** - A handler called after each response to a request comes in in a multiple request send. - - @param request The request that received a response - @param response The response received - @param error The error that occurred during the request if any occurred. - @param percentComplete The percentage of requests that have received a response - */ -typedef void (^SDLMultipleAsyncRequestProgressHandler)(__kindof SDLRPCRequest *request, __kindof SDLRPCResponse *__nullable response, NSError *__nullable error, float percentComplete); - -/** - A handler that may optionally be run when an SDLSubscribeButton or SDLSoftButton has a corresponding notification occur. - - @warning This only works if you send the RPC using SDLManager. - @warning Only one of the two parameters will be set for each block call. - - @param buttonPress An SDLOnButtonPress object that corresponds to this particular button. - @param buttonEvent An SDLOnButtonEvent object that corresponds to this particular button. - */ -typedef void (^SDLRPCButtonNotificationHandler)(SDLOnButtonPress *_Nullable buttonPress, SDLOnButtonEvent *_Nullable buttonEvent); -/** - A handler that may optionally be run when an SDLAddCommand has a corresponding notification occur. - - @warning This only works if you send the RPC using SDLManager. - - @param command An SDLOnCommand object that corresponds to this particular SDLAddCommand. - */ -typedef void (^SDLRPCCommandNotificationHandler)(SDLOnCommand *command); - - -#pragma mark - Notification info dictionary keys - -/** -* The key used in all SDL NSNotifications to extract the response or notification from the userinfo dictionary. -*/ -extern SDLNotificationUserInfoKey const SDLNotificationUserInfoObject; - -/** - * Some general NSNotification names not associated with any specific RPC response or request. - */ -#pragma mark - General notifications - -/// Name for a disconnection notification -extern SDLNotificationName const SDLTransportDidDisconnect; - -/// Name for a connection notification -extern SDLNotificationName const SDLTransportDidConnect; - -/// Name for a error during connection notification -extern SDLNotificationName const SDLTransportConnectError; - -/// Name for a disconnection notification -extern SDLNotificationName const SDLRPCServiceDidDisconnect; - -/// Name for a connection notification -extern SDLNotificationName const SDLRPCServiceDidConnect; - -/// Name for a error during connection notification -extern SDLNotificationName const SDLRPCServiceConnectionDidError; - -/// Name for a general error notification -extern SDLNotificationName const SDLDidReceiveError; - -/// Name for an incoming lock screen icon notification -extern SDLNotificationName const SDLDidReceiveLockScreenIcon; - -/// Name for an SDL became ready notification -extern SDLNotificationName const SDLDidBecomeReady; - -/// Name for a notification sent by the user when their CarWindow view has been updated -extern SDLNotificationName const SDLDidUpdateProjectionView; - -/// Name for a LockScreenStatus notification RPC -extern SDLNotificationName const SDLDidChangeLockScreenStatusNotification __deprecated_msg("This will be replaced in a future version where a fake RPC is not sent"); - -/** - * NSNotification names associated with specific RPC responses. - */ -#pragma mark - RPC responses - -/// Name for an AddCommand response RPC -extern SDLNotificationName const SDLDidReceiveAddCommandResponse; - -/// Name for an AddSubMenu response RPC -extern SDLNotificationName const SDLDidReceiveAddSubMenuResponse; - -/// Name for an Alert response RPC -extern SDLNotificationName const SDLDidReceiveAlertResponse; - -/// Name for an AlertManeuver response RPC -extern SDLNotificationName const SDLDidReceiveAlertManeuverResponse; - -/// Name for an ButtonPress response RPC -extern SDLNotificationName const SDLDidReceiveButtonPressResponse; - -/// Name for aa CancelInteraction response RPC -extern SDLNotificationName const SDLDidReceiveCancelInteractionResponse; - -/// Name for a ChangeRegistration response RPC -extern SDLNotificationName const SDLDidReceiveChangeRegistrationResponse; - -/// Name for a CloseApplication response RPC -extern SDLNotificationName const SDLDidReceiveCloseApplicationResponse; - -/// Name for a CreateInteractionChoiceSet response RPC -extern SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetResponse; - -/// Name for a CreateWindow response RPC -extern SDLNotificationName const SDLDidReceiveCreateWindowResponse; - -/// Name for a DeleteCommand response RPC -extern SDLNotificationName const SDLDidReceiveDeleteCommandResponse; - -/// Name for a DeleteFile response RPC -extern SDLNotificationName const SDLDidReceiveDeleteFileResponse; - -/// Name for a DeleteInteractionChoiceSet response RPC -extern SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetResponse; - -/// Name for a DeleteSubmenu response RPC -extern SDLNotificationName const SDLDidReceiveDeleteSubmenuResponse; - -/// Name for a DeleteWindow response RPC -extern SDLNotificationName const SDLDidReceiveDeleteWindowResponse; - -/// Name for a DiagnosticMessage response RPC -extern SDLNotificationName const SDLDidReceiveDiagnosticMessageResponse; - -/// Name for a DialNumber response RPC -extern SDLNotificationName const SDLDidReceiveDialNumberResponse; - -/// Name for an EncodedSyncPData response RPC -extern SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse __deprecated; - -/// Name for an EndAudioPassThru response RPC -extern SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse; - -/// Name for a Generic response RPC -extern SDLNotificationName const SDLDidReceiveGenericResponse; - -/// Name for a GetCloudAppProperties response RPC -extern SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesResponse; - -/// Name for a GetAppServiceData response RPC -extern SDLNotificationName const SDLDidReceiveGetAppServiceDataResponse; - -/// Name for a GetDTCs response RPC -extern SDLNotificationName const SDLDidReceiveGetDTCsResponse; - -/// Name for a GetFile response RPC -extern SDLNotificationName const SDLDidReceiveGetFileResponse; - -/// Name for a GetInteriorVehicleData response RPC -extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataResponse; - -/// Name for a GetInteriorVehicleDataConsent response RPC -extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataConsentResponse; - -/// Name for a GetSystemCapabilities response RPC -extern SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse; - -/// Name for a GetVehicleData response RPC -extern SDLNotificationName const SDLDidReceiveGetVehicleDataResponse; - -/// Name for a GetWaypoints response RPC -extern SDLNotificationName const SDLDidReceiveGetWaypointsResponse; - -/// Name for a ListFiles response RPC -extern SDLNotificationName const SDLDidReceiveListFilesResponse; - -/// Name for a PerformAppServiceInteraction response RPC -extern SDLNotificationName const SDLDidReceivePerformAppServiceInteractionResponse; - -/// Name for a PerformAudioPassThru response RPC -extern SDLNotificationName const SDLDidReceivePerformAudioPassThruResponse; - -/// Name for a PerformInteraction response RPC -extern SDLNotificationName const SDLDidReceivePerformInteractionResponse; - -/// Name for a PublishAppService response RPC -extern SDLNotificationName const SDLDidReceivePublishAppServiceResponse; - -/// Name for a ReceivePutFile response RPC -extern SDLNotificationName const SDLDidReceivePutFileResponse; - -/// Name for a ReceiveReadDID response RPC -extern SDLNotificationName const SDLDidReceiveReadDIDResponse; - -/// Name for a RegisterAppInterface response RPC -extern SDLNotificationName const SDLDidReceiveRegisterAppInterfaceResponse; - -/// Name for a ReleaseInteriorVehicleDataModule response RPC -extern SDLNotificationName const SDLDidReceiveReleaseInteriorVehicleDataModuleResponse; - -/// Name for a ResetGlobalProperties response RPC -extern SDLNotificationName const SDLDidReceiveResetGlobalPropertiesResponse; - -/// Name for a ScrollableMessage response RPC -extern SDLNotificationName const SDLDidReceiveScrollableMessageResponse; - -/// Name for a SendHapticData response RPC -extern SDLNotificationName const SDLDidReceiveSendHapticDataResponse; - -/// Name for a SendLocation response RPC -extern SDLNotificationName const SDLDidReceiveSendLocationResponse; - -/// Name for a SetAppIcon response RPC -extern SDLNotificationName const SDLDidReceiveSetAppIconResponse; - -/// Name for a SetCloudAppProperties response RPC -extern SDLNotificationName const SDLDidReceiveSetCloudAppPropertiesResponse; - -/// Name for a SetDisplayLayout response RPC -extern SDLNotificationName const SDLDidReceiveSetDisplayLayoutResponse; - -/// Name for a SetGlobalProperties response RPC -extern SDLNotificationName const SDLDidReceiveSetGlobalPropertiesResponse; - -/// Name for a SetInteriorVehicleData response RPC -extern SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataResponse; - -/// Name for a SetMediaClockTimer response RPC -extern SDLNotificationName const SDLDidReceiveSetMediaClockTimerResponse; - -/// Name for a ShowConstantTBT response RPC -extern SDLNotificationName const SDLDidReceiveShowConstantTBTResponse; - -/// Name for a Show response RPC -extern SDLNotificationName const SDLDidReceiveShowResponse; - -/// Name for a ShowAppMenu response RPC -extern SDLNotificationName const SDLDidReceiveShowAppMenuResponse; - -/// Name for a Slider response RPC -extern SDLNotificationName const SDLDidReceiveSliderResponse; - -/// Name for a Speak response RPC -extern SDLNotificationName const SDLDidReceiveSpeakResponse; - -/// Name for a SubscribeButton response RPC -extern SDLNotificationName const SDLDidReceiveSubscribeButtonResponse; - -/// Name for a SubscribeVehicleData response RPC -extern SDLNotificationName const SDLDidReceiveSubscribeVehicleDataResponse; - -/// Name for a SubscribeWaypoints response RPC -extern SDLNotificationName const SDLDidReceiveSubscribeWaypointsResponse; - -/// Name for a SyncPData response RPC -extern SDLNotificationName const SDLDidReceiveSyncPDataResponse __deprecated; - -/// Name for a SystemRequest response RPC -extern SDLNotificationName const SDLDidReceiveSystemRequestResponse; - -/// Name for an UpdateTurnList response RPC -extern SDLNotificationName const SDLDidReceiveUpdateTurnListResponse; - -/// Name for an UnpublishAppService response RPC -extern SDLNotificationName const SDLDidReceiveUnpublishAppServiceResponse; - -/// Name for an UnregisterAppInterface response RPC -extern SDLNotificationName const SDLDidReceiveUnregisterAppInterfaceResponse; - -/// Name for an UnsubscribeButton response RPC -extern SDLNotificationName const SDLDidReceiveUnsubscribeButtonResponse; - -/// Name for an UnsubscribeVehicleData response RPC -extern SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataResponse; - -/// Name for an UnsubscribeWaypoints response RPC -extern SDLNotificationName const SDLDidReceiveUnsubscribeWaypointsResponse; - -/** - * NSNotification names associated with specific RPC requests. - */ -#pragma mark - RPC requests - -/// Name for an AddCommand request RPC -extern SDLNotificationName const SDLDidReceiveAddCommandRequest; - -/// Name for an AddSubMenu request RPC -extern SDLNotificationName const SDLDidReceiveAddSubMenuRequest; - -/// Name for an Alert request RPC -extern SDLNotificationName const SDLDidReceiveAlertRequest; - -/// Name for an AlertManeuver request RPC -extern SDLNotificationName const SDLDidReceiveAlertManeuverRequest; - -/// Name for a ButtonPress request RPC -extern SDLNotificationName const SDLDidReceiveButtonPressRequest; - -/// Name for a CancelInteraction request RPC -extern SDLNotificationName const SDLDidReceiveCancelInteractionRequest; - -/// Name for a ChangeRegistration request RPC -extern SDLNotificationName const SDLDidReceiveChangeRegistrationRequest; - -/// Name for a CloseApplication request RPC -extern SDLNotificationName const SDLDidReceiveCloseApplicationRequest; - -/// Name for a CreateInteractionChoiceSet request RPC -extern SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetRequest; - -/// Name for a CreateWindow request RPC -extern SDLNotificationName const SDLDidReceiveCreateWindowRequest; - -/// Name for a DeleteCommand request RPC -extern SDLNotificationName const SDLDidReceiveDeleteCommandRequest; - -/// Name for a DeleteFile request RPC -extern SDLNotificationName const SDLDidReceiveDeleteFileRequest; - -/// Name for a DeleteInteractionChoiceSet request RPC -extern SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetRequest; - -/// Name for a DeleteSubMenu request RPC -extern SDLNotificationName const SDLDidReceiveDeleteSubMenuRequest; - -/// Name for a DeleteSubMenu request RPC -extern SDLNotificationName const SDLDidReceiveDeleteWindowRequest; - -/// Name for a DiagnosticMessage request RPC -extern SDLNotificationName const SDLDidReceiveDiagnosticMessageRequest; - -/// Name for a DialNumberR request RPC -extern SDLNotificationName const SDLDidReceiveDialNumberRequest; - -/// Name for an EncodedSyncPData request RPC -extern SDLNotificationName const SDLDidReceiveEncodedSyncPDataRequest __deprecated; - -/// Name for a EndAudioPass request RPC -extern SDLNotificationName const SDLDidReceiveEndAudioPassThruRequest; - -/// Name for a GetAppServiceData request RPC -extern SDLNotificationName const SDLDidReceiveGetAppServiceDataRequest; - -/// Name for a GetCloudAppProperties request RPC -extern SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesRequest; - -/// Name for a ReceiveGetDTCs request RPC -extern SDLNotificationName const SDLDidReceiveGetDTCsRequest; - -/// Name for a GetFile request RPC -extern SDLNotificationName const SDLDidReceiveGetFileRequest; - -/// Name for a GetInteriorVehicleData request RPC -extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataRequest; - -/// Name for a GetInteriorVehicleDataConsent request RPC -extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataConsentRequest; - -/// Name for a GetSystemCapability request RPC -extern SDLNotificationName const SDLDidReceiveGetSystemCapabilityRequest; - -/// Name for a GetVehicleData request RPC -extern SDLNotificationName const SDLDidReceiveGetVehicleDataRequest; - -/// Name for a GetWayPoints request RPC -extern SDLNotificationName const SDLDidReceiveGetWayPointsRequest; - -/// Name for a ListFiles request RPC -extern SDLNotificationName const SDLDidReceiveListFilesRequest; - -/// Name for a PerformAppServiceInteraction request RPC -extern SDLNotificationName const SDLDidReceivePerformAppServiceInteractionRequest; - -/// Name for a PerformAudioPassThru request RPC -extern SDLNotificationName const SDLDidReceivePerformAudioPassThruRequest; - -/// Name for a PerformInteraction request RPC -extern SDLNotificationName const SDLDidReceivePerformInteractionRequest; - -/// Name for a PublishAppService request RPC -extern SDLNotificationName const SDLDidReceivePublishAppServiceRequest; - -/// Name for a PutFile request RPC -extern SDLNotificationName const SDLDidReceivePutFileRequest; - -/// Name for a ReadDID request RPC -extern SDLNotificationName const SDLDidReceiveReadDIDRequest; - -/// Name for a RegisterAppInterfacr request RPC -extern SDLNotificationName const SDLDidReceiveRegisterAppInterfaceRequest; - -/// Name for a ReleaseInteriorVehicleData request RPC -extern SDLNotificationName const SDLDidReceiveReleaseInteriorVehicleDataModuleRequest; - -/// Name for a ResetGlobalProperties request RPC -extern SDLNotificationName const SDLDidReceiveResetGlobalPropertiesRequest; - -/// Name for a ScrollableMessage request RPC -extern SDLNotificationName const SDLDidReceiveScrollableMessageRequest; - -/// Name for a SendHapticData request RPC -extern SDLNotificationName const SDLDidReceiveSendHapticDataRequest; - -/// Name for a SendLocation request RPC -extern SDLNotificationName const SDLDidReceiveSendLocationRequest; - -/// Name for a SetAppIcon request RPC -extern SDLNotificationName const SDLDidReceiveSetAppIconRequest; - -/// Name for a SetCloudProperties request RPC -extern SDLNotificationName const SDLDidReceiveSetCloudAppPropertiesRequest; - -/// Name for a SetDisplayLayout request RPC -extern SDLNotificationName const SDLDidReceiveSetDisplayLayoutRequest; - -/// Name for a SetGlobalProperties request RPC -extern SDLNotificationName const SDLDidReceiveSetGlobalPropertiesRequest; - -/// Name for a SetInteriorVehicleData request RPC -extern SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataRequest; - -/// Name for a SetMediaClockTimer request RPC -extern SDLNotificationName const SDLDidReceiveSetMediaClockTimerRequest; - -/// Name for a Show request RPC -extern SDLNotificationName const SDLDidReceiveShowRequest; - -/// Name for a ShowAppMenu request RPC -extern SDLNotificationName const SDLDidReceiveShowAppMenuRequest; - -/// Name for a ShowConstantTBT request RPC -extern SDLNotificationName const SDLDidReceiveShowConstantTBTRequest; - -/// Name for a Slider request RPC -extern SDLNotificationName const SDLDidReceiveSliderRequest; - -/// Name for a Speak request RPC -extern SDLNotificationName const SDLDidReceiveSpeakRequest; - -/// Name for a SubscribeButton request RPC -extern SDLNotificationName const SDLDidReceiveSubscribeButtonRequest; - -/// Name for a SubscribeVehicleData request RPC -extern SDLNotificationName const SDLDidReceiveSubscribeVehicleDataRequest; - -/// Name for a ubscribeWayPoints request RPC -extern SDLNotificationName const SDLDidReceiveSubscribeWayPointsRequest; - -/// Name for a SyncPData request RPC -extern SDLNotificationName const SDLDidReceiveSyncPDataRequest __deprecated; - -/// Name for a SystemRequest request RPC -extern SDLNotificationName const SDLDidReceiveSystemRequestRequest; - -/// Name for an UnpublishAppService request RPC -extern SDLNotificationName const SDLDidReceiveUnpublishAppServiceRequest; - -/// Name for an UnregisterAppInterface request RPC -extern SDLNotificationName const SDLDidReceiveUnregisterAppInterfaceRequest; - -/// Name for an UnsubscribeButton request RPC -extern SDLNotificationName const SDLDidReceiveUnsubscribeButtonRequest; - -/// Name for an UnsubscribeVehicleData request RPC -extern SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataRequest; - -/// Name for an UnsubscribeWayPoints request RPC -extern SDLNotificationName const SDLDidReceiveUnsubscribeWayPointsRequest; - -/// Name for an UpdateTurnList request RPC -extern SDLNotificationName const SDLDidReceiveUpdateTurnListRequest; - -/** - * NSNotification names associated with specific RPC notifications. - */ -#pragma mark - RPC Notifications - -/// Name for a DriverDistractionState notification RPC -extern SDLNotificationName const SDLDidChangeDriverDistractionStateNotification; - -/// Name for a HMIStatus notification RPC -extern SDLNotificationName const SDLDidChangeHMIStatusNotification; - -/// Name for an AppServiceData notification RPC -extern SDLNotificationName const SDLDidReceiveAppServiceDataNotification; - -/// Name for an AppUnregistered notification RPC -extern SDLNotificationName const SDLDidReceiveAppUnregisteredNotification; - -/// Name for an AudioPassThru notification RPC -extern SDLNotificationName const SDLDidReceiveAudioPassThruNotification; - -/// Name for a ButtonEvent notification RPC -extern SDLNotificationName const SDLDidReceiveButtonEventNotification; - -/// Name for a ButtonPress notification RPC -extern SDLNotificationName const SDLDidReceiveButtonPressNotification; - -/// Name for a Command notification RPC -extern SDLNotificationName const SDLDidReceiveCommandNotification; - -/// Name for a EncodedSyncPData notification RPC -extern SDLNotificationName const SDLDidReceiveEncodedDataNotification __deprecated; - -/// Name for a InteriorVehicleData notification RPC -extern SDLNotificationName const SDLDidReceiveInteriorVehicleDataNotification; - -/// Name for a KeyboardInput notification RPC -extern SDLNotificationName const SDLDidReceiveKeyboardInputNotification; - -/// Name for a Language notification RPC -extern SDLNotificationName const SDLDidChangeLanguageNotification; - -/// Name for a NewHash notification RPC -extern SDLNotificationName const SDLDidReceiveNewHashNotification; - -/// Name for a VehicleIcon notification RPC -extern SDLNotificationName const SDLDidReceiveVehicleIconNotification; - -/// Name for a ChangePermissions notification RPC -extern SDLNotificationName const SDLDidChangePermissionsNotification; - -/// Name for a RemoteControlStatus notification RPC -extern SDLNotificationName const SDLDidReceiveRemoteControlStatusNotification; - -/// Name for an OnSyncPData notification RPC -extern SDLNotificationName const SDLDidReceiveSyncPDataNotification __deprecated; - -/// Name for a SystemCapability notification RPC -extern SDLNotificationName const SDLDidReceiveSystemCapabilityUpdatedNotification; - -/// Name for a SystemRequest notification RPC -extern SDLNotificationName const SDLDidReceiveSystemRequestNotification; - -/// Name for a TurnByTurnStat notification RPC -extern SDLNotificationName const SDLDidChangeTurnByTurnStateNotification; - -/// Name for a TouchEvent notification RPC -extern SDLNotificationName const SDLDidReceiveTouchEventNotification; - -/// Name for a VehicleData notification RPC -extern SDLNotificationName const SDLDidReceiveVehicleDataNotification; - -/// Name for a Waypoint notification RPC -extern SDLNotificationName const SDLDidReceiveWaypointNotification; - -/// This class defines methods for getting groups of notifications -@interface SDLNotificationConstants : NSObject - -/** - All of the possible SDL RPC Response notification names - - @return All response notification names - */ -+ (NSArray *)allResponseNames; - -/** - All of the possible SDL Button event notification names - - @return The names - */ -+ (NSArray *)allButtonEventNotifications; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.m deleted file mode 100644 index d4cb7c9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationConstants.m +++ /dev/null @@ -1,266 +0,0 @@ -// -// SDLNotificationConstants.m -// SmartDeviceLink-iOS -// -// Created by Justin Dickow on 9/30/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "SDLNotificationConstants.h" - -/// These notifications will be returned on a background serial queue - -SDLNotificationUserInfoKey const SDLNotificationUserInfoObject = @"SDLNotificationUserInfoObject"; - - -#pragma mark - General notifications -SDLNotificationName const SDLTransportDidDisconnect = @"com.sdl.transport.disconnect"; -SDLNotificationName const SDLTransportDidConnect = @"com.sdl.transport.connect"; -SDLNotificationName const SDLTransportConnectError = @"com.sdl.transport.connectError"; -SDLNotificationName const SDLRPCServiceDidDisconnect = @"com.sdl.rpcService.disconnect"; -SDLNotificationName const SDLRPCServiceDidConnect = @"com.sdl.rpcService.connect"; -SDLNotificationName const SDLRPCServiceConnectionDidError = @"com.sdl.rpcService.connectError"; -SDLNotificationName const SDLDidReceiveError = @"com.sdl.general.error"; -SDLNotificationName const SDLDidReceiveLockScreenIcon = @"com.sdl.general.lockscreenIconReceived"; -SDLNotificationName const SDLDidBecomeReady = @"com.sdl.notification.managerReady"; -SDLNotificationName const SDLDidReceiveVehicleIconNotification = @"com.sdl.notification.vehicleIcon"; -SDLNotificationName const SDLDidUpdateProjectionView = @"com.sdl.notification.projectionViewUpdate"; -SDLNotificationName const SDLDidChangeLockScreenStatusNotification = @"com.sdl.notification.lockScreenStatus"; - -#pragma mark - RPC Responses -SDLNotificationName const SDLDidReceiveAddCommandResponse = @"com.sdl.response.AddCommand"; -SDLNotificationName const SDLDidReceiveAddSubMenuResponse = @"com.sdl.response.AddSubMenu"; -SDLNotificationName const SDLDidReceiveAlertResponse = @"com.sdl.response.Alert"; -SDLNotificationName const SDLDidReceiveAlertManeuverResponse = @"com.sdl.response.AlertManeuver"; -SDLNotificationName const SDLDidReceiveButtonPressResponse = @"com.sdl.response.ButtonPress"; -SDLNotificationName const SDLDidReceiveCancelInteractionResponse = @"com.sdl.response.CancelInteraction"; -SDLNotificationName const SDLDidReceiveChangeRegistrationResponse = @"com.sdl.response.ChangeRegistration"; -SDLNotificationName const SDLDidReceiveCloseApplicationResponse = @"com.sdl.response.CloseApplication"; -SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetResponse = @"com.sdl.response.CreateInteractionChoiceSet"; -SDLNotificationName const SDLDidReceiveCreateWindowResponse = @"com.sdl.response.CreateWindow"; -SDLNotificationName const SDLDidReceiveDeleteCommandResponse = @"com.sdl.response.DeleteCommand"; -SDLNotificationName const SDLDidReceiveDeleteFileResponse = @"com.sdl.response.DeleteFile"; -SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetResponse = @"com.sdl.response.DeleteInteractionChoiceSet"; -SDLNotificationName const SDLDidReceiveDeleteSubmenuResponse = @"com.sdl.response.DeleteSubMenu"; -SDLNotificationName const SDLDidReceiveDeleteWindowResponse = @"com.sdl.response.DeleteWindow"; -SDLNotificationName const SDLDidReceiveDiagnosticMessageResponse = @"com.sdl.response.DiagnosticMessage"; -SDLNotificationName const SDLDidReceiveDialNumberResponse = @"com.sdl.response.DialNumber"; -SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse = @"com.sdl.response.EncodedSyncPData"; -SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse = @"com.sdl.response.EndAudioPassThru"; -SDLNotificationName const SDLDidReceiveGenericResponse = @"com.sdl.response.GenericResponse"; -SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesResponse = @"com.sdl.response.GetCloudAppProperties"; -SDLNotificationName const SDLDidReceiveGetAppServiceDataResponse = @"com.sdl.response.GetAppServiceData"; -SDLNotificationName const SDLDidReceiveGetDTCsResponse = @"com.sdl.response.GetDTCs"; -SDLNotificationName const SDLDidReceiveGetFileResponse = @"com.sdl.response.GetFile"; -SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataResponse = @"com.sdl.response.GetInteriorVehicleData"; -SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataConsentResponse = @"com.sdl.response.GetInteriorVehicleDataConsent"; -SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse = @"com.sdl.response.GetSystemCapability"; -SDLNotificationName const SDLDidReceiveGetVehicleDataResponse = @"com.sdl.response.GetVehicleData"; -SDLNotificationName const SDLDidReceiveGetWaypointsResponse = @"com.sdl.response.GetWayPoints"; -SDLNotificationName const SDLDidReceiveListFilesResponse = @"com.sdl.response.ListFiles"; -SDLNotificationName const SDLDidReceivePerformAppServiceInteractionResponse = @"com.sdl.response.PerformAppServiceInteraction"; -SDLNotificationName const SDLDidReceivePerformAudioPassThruResponse = @"com.sdl.response.PerformAudioPassThru"; -SDLNotificationName const SDLDidReceivePerformInteractionResponse = @"com.sdl.response.PerformInteraction"; -SDLNotificationName const SDLDidReceivePublishAppServiceResponse = @"com.sdl.response.PublishAppService"; -SDLNotificationName const SDLDidReceivePutFileResponse = @"com.sdl.response.PutFile"; -SDLNotificationName const SDLDidReceiveReadDIDResponse = @"com.sdl.response.ReadDID"; -SDLNotificationName const SDLDidReceiveRegisterAppInterfaceResponse = @"com.sdl.response.RegisterAppInterface"; -SDLNotificationName const SDLDidReceiveReleaseInteriorVehicleDataModuleResponse = @"com.sdl.response.ReleaseInteriorVehicleDataModule"; -SDLNotificationName const SDLDidReceiveResetGlobalPropertiesResponse = @"com.sdl.response.ResetGlobalProperties"; -SDLNotificationName const SDLDidReceiveScrollableMessageResponse = @"com.sdl.response.ScrollableMessage"; -SDLNotificationName const SDLDidReceiveSendHapticDataResponse = @"com.sdl.response.SendHapticData"; -SDLNotificationName const SDLDidReceiveSendLocationResponse = @"com.sdl.response.SendLocation"; -SDLNotificationName const SDLDidReceiveSetAppIconResponse = @"com.sdl.response.SetAppIcon"; -SDLNotificationName const SDLDidReceiveSetCloudAppPropertiesResponse = @"com.sdl.response.SetCloudAppProperties"; -SDLNotificationName const SDLDidReceiveSetDisplayLayoutResponse = @"com.sdl.response.SetDisplayLayout"; -SDLNotificationName const SDLDidReceiveSetGlobalPropertiesResponse = @"com.sdl.response.SetGlobalProperties"; -SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataResponse = @"com.sdl.response.SetInteriorVehicleData"; -SDLNotificationName const SDLDidReceiveSetMediaClockTimerResponse = @"com.sdl.response.SetMediaClockTimer"; -SDLNotificationName const SDLDidReceiveShowConstantTBTResponse = @"com.sdl.response.ShowConstantTBT"; -SDLNotificationName const SDLDidReceiveShowResponse = @"com.sdl.response.Show"; -SDLNotificationName const SDLDidReceiveShowAppMenuResponse = @"com.sdl.response.ShowAppMenu"; -SDLNotificationName const SDLDidReceiveSliderResponse = @"com.sdl.response.Slider"; -SDLNotificationName const SDLDidReceiveSpeakResponse = @"com.sdl.response.Speak"; -SDLNotificationName const SDLDidReceiveSubscribeButtonResponse = @"com.sdl.response.SubscribeButton"; -SDLNotificationName const SDLDidReceiveSubscribeVehicleDataResponse = @"com.sdl.response.SubscribeVehicleData"; -SDLNotificationName const SDLDidReceiveSubscribeWaypointsResponse = @"com.sdl.response.SubscribeWayPoints"; -SDLNotificationName const SDLDidReceiveSyncPDataResponse = @"com.sdl.response.SyncPData"; -SDLNotificationName const SDLDidReceiveSystemRequestResponse = @"com.sdl.response.SystemRequest"; -SDLNotificationName const SDLDidReceiveUpdateTurnListResponse = @"com.sdl.response.UpdateTurnList"; -SDLNotificationName const SDLDidReceiveUnpublishAppServiceResponse = @"com.sdl.response.UnpublishAppService"; -SDLNotificationName const SDLDidReceiveUnregisterAppInterfaceResponse = @"com.sdl.response.UnregisterAppInterface"; -SDLNotificationName const SDLDidReceiveUnsubscribeButtonResponse = @"com.sdl.response.UnsubscribeButton"; -SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataResponse = @"com.sdl.response.UnsubscribeVehicleData"; -SDLNotificationName const SDLDidReceiveUnsubscribeWaypointsResponse = @"com.sdl.response.UnsubscribeWayPoints"; - -#pragma mark - RPC Requests -SDLNotificationName const SDLDidReceiveAddCommandRequest = @"com.sdl.request.AddCommand"; -SDLNotificationName const SDLDidReceiveAddSubMenuRequest = @"com.sdl.request.AddSubMenu"; -SDLNotificationName const SDLDidReceiveAlertRequest = @"com.sdl.request.Alert"; -SDLNotificationName const SDLDidReceiveAlertManeuverRequest = @"com.sdl.request.AlertManeuver"; -SDLNotificationName const SDLDidReceiveButtonPressRequest = @"com.sdl.request.ButtonPress"; -SDLNotificationName const SDLDidReceiveCancelInteractionRequest = @"com.sdl.request.CancelInteraction"; -SDLNotificationName const SDLDidReceiveChangeRegistrationRequest = @"com.sdl.request.ChangeRegistration"; -SDLNotificationName const SDLDidReceiveCloseApplicationRequest = @"com.sdl.request.CloseApplication"; -SDLNotificationName const SDLDidReceiveCreateWindowRequest = @"com.sdl.request.CreateWindow"; -SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetRequest = @"com.sdl.request.CreateInteractionChoiceSet"; -SDLNotificationName const SDLDidReceiveDeleteCommandRequest = @"com.sdl.request.DeleteCommand"; -SDLNotificationName const SDLDidReceiveDeleteFileRequest = @"com.sdl.request.DeleteFile"; -SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetRequest = @"com.sdl.request.DeleteInteractionChoiceSet"; -SDLNotificationName const SDLDidReceiveDeleteSubMenuRequest = @"com.sdl.request.DeleteSubMenu"; -SDLNotificationName const SDLDidReceiveDeleteWindowRequest = @"com.sdl.request.DeleteWindow"; -SDLNotificationName const SDLDidReceiveDiagnosticMessageRequest = @"com.sdl.request.DiagnosticMessage"; -SDLNotificationName const SDLDidReceiveDialNumberRequest = @"com.sdl.request.DialNumber"; -SDLNotificationName const SDLDidReceiveEncodedSyncPDataRequest = @"com.sdl.request.EncodedSyncPData"; -SDLNotificationName const SDLDidReceiveEndAudioPassThruRequest = @"com.sdl.request.EndAudioPassThru"; -SDLNotificationName const SDLDidReceiveGetAppServiceDataRequest = @"com.sdl.request.GetAppServiceData"; -SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesRequest = @"com.sdl.request.GetCloudAppProperties"; -SDLNotificationName const SDLDidReceiveGetDTCsRequest = @"com.sdl.request.GetDTCs"; -SDLNotificationName const SDLDidReceiveGetFileRequest = @"com.sdl.request.GetFile"; -SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataRequest = @"com.sdl.request.GetInteriorVehicleData"; -SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataConsentRequest = @"com.sdl.request.GetInteriorVehicleDataConsent"; -SDLNotificationName const SDLDidReceiveGetSystemCapabilityRequest = @"com.sdl.request.GetSystemCapability"; -SDLNotificationName const SDLDidReceiveGetVehicleDataRequest = @"com.sdl.request.GetVehicleData"; -SDLNotificationName const SDLDidReceiveGetWayPointsRequest = @"com.sdl.request.GetWayPoints"; -SDLNotificationName const SDLDidReceiveListFilesRequest = @"com.sdl.request.ListFiles"; -SDLNotificationName const SDLDidReceivePerformAppServiceInteractionRequest = @"com.sdl.request.PerformAppServiceInteraction"; -SDLNotificationName const SDLDidReceivePerformAudioPassThruRequest = @"com.sdl.request.PerformAudioPassThru"; -SDLNotificationName const SDLDidReceivePerformInteractionRequest = @"com.sdl.request.PerformInteraction"; -SDLNotificationName const SDLDidReceivePublishAppServiceRequest = @"com.sdl.request.PublishAppService"; -SDLNotificationName const SDLDidReceivePutFileRequest = @"com.sdl.request.PutFile"; -SDLNotificationName const SDLDidReceiveReadDIDRequest = @"com.sdl.request.ReadDID"; -SDLNotificationName const SDLDidReceiveRegisterAppInterfaceRequest = @"com.sdl.request.RegisterAppInterface"; -SDLNotificationName const SDLDidReceiveReleaseInteriorVehicleDataModuleRequest = @"com.sdl.request.ReleaseInteriorVehicleDataModule"; -SDLNotificationName const SDLDidReceiveResetGlobalPropertiesRequest = @"com.sdl.request.ResetGlobalProperties"; -SDLNotificationName const SDLDidReceiveScrollableMessageRequest = @"com.sdl.request.ScrollableMessage"; -SDLNotificationName const SDLDidReceiveSendHapticDataRequest = @"com.sdl.request.SendHapticData"; -SDLNotificationName const SDLDidReceiveSendLocationRequest = @"com.sdl.request.SendLocation"; -SDLNotificationName const SDLDidReceiveSetAppIconRequest = @"com.sdl.request.SetAppIcon"; -SDLNotificationName const SDLDidReceiveSetCloudAppPropertiesRequest = @"com.sdl.request.SetCloudAppProperties"; -SDLNotificationName const SDLDidReceiveSetDisplayLayoutRequest = @"com.sdl.request.SetDisplayLayout"; -SDLNotificationName const SDLDidReceiveSetGlobalPropertiesRequest = @"com.sdl.request.SetGlobalProperties"; -SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataRequest = @"com.sdl.request.SetInteriorVehicleData"; -SDLNotificationName const SDLDidReceiveSetMediaClockTimerRequest = @"com.sdl.request.SetMediaClockTimer"; -SDLNotificationName const SDLDidReceiveShowRequest = @"com.sdl.request.Show"; -SDLNotificationName const SDLDidReceiveShowAppMenuRequest = @"com.sdl.request.ShowAppMenu"; -SDLNotificationName const SDLDidReceiveShowConstantTBTRequest = @"com.sdl.request.ShowConstantTBT"; -SDLNotificationName const SDLDidReceiveSliderRequest = @"com.sdl.request.Slider"; -SDLNotificationName const SDLDidReceiveSpeakRequest = @"com.sdl.request.Speak"; -SDLNotificationName const SDLDidReceiveSubscribeButtonRequest = @"com.sdl.request.SubscribeButton"; -SDLNotificationName const SDLDidReceiveSubscribeVehicleDataRequest = @"com.sdl.request.SubscribeVehicleData"; -SDLNotificationName const SDLDidReceiveSubscribeWayPointsRequest = @"com.sdl.request.SubscribeWayPoints"; -SDLNotificationName const SDLDidReceiveSyncPDataRequest = @"com.sdl.request.SyncPData"; -SDLNotificationName const SDLDidReceiveSystemRequestRequest = @"com.sdl.request.SystemRequest"; -SDLNotificationName const SDLDidReceiveUnpublishAppServiceRequest = @"com.sdl.request.UnpublishAppService"; -SDLNotificationName const SDLDidReceiveUnregisterAppInterfaceRequest = @"com.sdl.request.UnregisterAppInterface"; -SDLNotificationName const SDLDidReceiveUnsubscribeButtonRequest = @"com.sdl.request.UnsubscribeButton"; -SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataRequest = @"com.sdl.request.UnsubscribeVehicleData"; -SDLNotificationName const SDLDidReceiveUnsubscribeWayPointsRequest = @"com.sdl.request.UnsubscribeWayPoints"; -SDLNotificationName const SDLDidReceiveUpdateTurnListRequest = @"com.sdl.request.UpdateTurnList"; - -#pragma mark - RPC Notifications -SDLNotificationName const SDLDidChangeDriverDistractionStateNotification = @"com.sdl.notification.OnDriverDistraction"; -SDLNotificationName const SDLDidChangeHMIStatusNotification = @"com.sdl.notification.OnHMIStatus"; -SDLNotificationName const SDLDidReceiveAppServiceDataNotification = @"com.sdl.notification.OnAppServiceData"; -SDLNotificationName const SDLDidReceiveAppUnregisteredNotification = @"com.sdl.notification.OnAppInterfaceUnregistered"; -SDLNotificationName const SDLDidReceiveAudioPassThruNotification = @"com.sdl.notification.OnAudioPassThru"; -SDLNotificationName const SDLDidReceiveButtonEventNotification = @"com.sdl.notification.OnButtonEvent"; -SDLNotificationName const SDLDidReceiveButtonPressNotification = @"com.sdl.notification.OnButtonPress"; -SDLNotificationName const SDLDidReceiveCommandNotification = @"com.sdl.notification.OnCommand"; -SDLNotificationName const SDLDidReceiveEncodedDataNotification = @"com.sdl.notification.OnEncodedSyncPData"; -SDLNotificationName const SDLDidReceiveInteriorVehicleDataNotification = @"com.sdl.notification.OnInteriorVehicleData"; -SDLNotificationName const SDLDidReceiveKeyboardInputNotification = @"com.sdl.notification.OnKeyboardInput"; -SDLNotificationName const SDLDidChangeLanguageNotification = @"com.sdl.notification.OnLanguageChange"; -SDLNotificationName const SDLDidReceiveNewHashNotification = @"com.sdl.notification.OnHashChange"; -SDLNotificationName const SDLDidChangePermissionsNotification = @"com.sdl.notification.OnPermissionsChange"; -SDLNotificationName const SDLDidReceiveRemoteControlStatusNotification = @"com.sdl.notification.OnRCStatus"; -SDLNotificationName const SDLDidReceiveSyncPDataNotification = @"com.sdl.notification.OnSyncPData"; -SDLNotificationName const SDLDidReceiveSystemCapabilityUpdatedNotification = @"com.sdl.notification.OnSystemCapabilityUpdated"; -SDLNotificationName const SDLDidReceiveSystemRequestNotification = @"com.sdl.notification.OnSystemRequest"; -SDLNotificationName const SDLDidChangeTurnByTurnStateNotification = @"com.sdl.notification.OnTBTClientState"; -SDLNotificationName const SDLDidReceiveTouchEventNotification = @"com.sdl.notification.OnTouchEvent"; -SDLNotificationName const SDLDidReceiveVehicleDataNotification = @"com.sdl.notification.OnVehicleData"; -SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notification.OnWayPointChange"; - - -@implementation SDLNotificationConstants - -+ (NSArray *)allResponseNames { - return @[SDLDidReceiveAddCommandResponse, - SDLDidReceiveAddSubMenuResponse, - SDLDidReceiveAlertResponse, - SDLDidReceiveAlertManeuverResponse, - SDLDidReceiveButtonPressResponse, - SDLDidReceiveCancelInteractionResponse, - SDLDidReceiveChangeRegistrationResponse, - SDLDidReceiveCloseApplicationResponse, - SDLDidReceiveCreateInteractionChoiceSetResponse, - SDLDidReceiveCreateWindowResponse, - SDLDidReceiveDeleteCommandResponse, - SDLDidReceiveDeleteFileResponse, - SDLDidReceiveDeleteInteractionChoiceSetResponse, - SDLDidReceiveDeleteSubmenuResponse, - SDLDidReceiveDeleteWindowResponse, - SDLDidReceiveDiagnosticMessageResponse, - SDLDidReceiveDialNumberResponse, -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - SDLDidReceiveEncodedSyncPDataResponse, -#pragma clang diagnostic pop - SDLDidReceiveEndAudioPassThruResponse, - SDLDidReceiveGenericResponse, - SDLDidReceiveGetCloudAppPropertiesResponse, - SDLDidReceiveGetAppServiceDataResponse, - SDLDidReceiveGetDTCsResponse, - SDLDidReceiveGetFileResponse, - SDLDidReceiveGetInteriorVehicleDataResponse, - SDLDidReceiveGetInteriorVehicleDataConsentResponse, - SDLDidReceiveGetSystemCapabilitiesResponse, - SDLDidReceiveGetVehicleDataResponse, - SDLDidReceiveGetWaypointsResponse, - SDLDidReceiveListFilesResponse, - SDLDidReceivePerformAppServiceInteractionResponse, - SDLDidReceivePerformAudioPassThruResponse, - SDLDidReceivePerformInteractionResponse, - SDLDidReceivePublishAppServiceResponse, - SDLDidReceivePutFileResponse, - SDLDidReceiveReadDIDResponse, - SDLDidReceiveRegisterAppInterfaceResponse, - SDLDidReceiveReleaseInteriorVehicleDataModuleResponse, - SDLDidReceiveResetGlobalPropertiesResponse, - SDLDidReceiveScrollableMessageResponse, - SDLDidReceiveSendHapticDataResponse, - SDLDidReceiveSendLocationResponse, - SDLDidReceiveSetAppIconResponse, - SDLDidReceiveSetCloudAppPropertiesResponse, - SDLDidReceiveSetDisplayLayoutResponse, - SDLDidReceiveSetGlobalPropertiesResponse, - SDLDidReceiveSetInteriorVehicleDataResponse, - SDLDidReceiveSetMediaClockTimerResponse, - SDLDidReceiveShowConstantTBTResponse, - SDLDidReceiveShowResponse, - SDLDidReceiveShowAppMenuResponse, - SDLDidReceiveSliderResponse, - SDLDidReceiveSpeakResponse, - SDLDidReceiveSubscribeButtonResponse, - SDLDidReceiveSubscribeVehicleDataResponse, - SDLDidReceiveSubscribeWaypointsResponse, -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - SDLDidReceiveSyncPDataResponse, -#pragma clang diagnostic pop - SDLDidReceiveSystemRequestResponse, - SDLDidReceiveUpdateTurnListResponse, - SDLDidReceiveUnpublishAppServiceResponse, - SDLDidReceiveUnregisterAppInterfaceResponse, - SDLDidReceiveUnsubscribeButtonResponse, - SDLDidReceiveUnsubscribeVehicleDataResponse, - SDLDidReceiveUnsubscribeWaypointsResponse]; -} - -+ (NSArray *)allButtonEventNotifications { - return @[SDLDidReceiveButtonEventNotification, - SDLDidReceiveButtonPressNotification]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.h deleted file mode 100644 index a923879..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.h +++ /dev/null @@ -1,57 +0,0 @@ -// -// SDLnotificationDispatcher.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/7/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -@class SDLRPCRequest; -@class SDLRPCResponse; -@class SDLRPCNotification; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * The SDLNotificationDispatcher subscribes to SDLProxy notifications through SDLProxyListener and sends out actual NSNotifications with those contents. It can also be told to send out other types of notifications. - */ -@interface SDLNotificationDispatcher : NSObject - -/** - * Posts a notification with a specified name and object. - * - * @param name The name of the notification to be dispatched. - * @param info The notification object to be sent in the `userInfo` dictionary. - */ -- (void)postNotificationName:(NSString *)name infoObject:(nullable id)info; - -/** - * Posts a request from Core with a specified name and request object - * - * @param name The name of the request to be dispatched - * @param request The request object to be sent in the `userInfo` dictionary - */ -- (void)postRPCRequestNotification:(NSString *)name request:(__kindof SDLRPCRequest *)request; - -/** - * Posts a response from Core with a specified name and response object - * - * @param name The name of the response to be dispatched - * @param response The response object to be sent in the `userInfo` dictionary - */ -- (void)postRPCResponseNotification:(NSString *)name response:(__kindof SDLRPCResponse *)response; - -/** - * Posts a notification from Core with a specified name and notification object - * - * @param name The name of the notification to be dispatched - * @param rpcNotification The notification object to be sent in the `userInfo` dictionary - */ -- (void)postRPCNotificationNotification:(NSString *)name notification:(__kindof SDLRPCNotification *)rpcNotification; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.m deleted file mode 100644 index bd8ab7e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLNotificationDispatcher.m +++ /dev/null @@ -1,59 +0,0 @@ -// -// SDLnotificationDispatcher.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/7/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLNotificationDispatcher.h" - -#import "SDLNotificationConstants.h" -#import "SDLRPCNotification.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCRequest.h" -#import "SDLRPCRequestNotification.h" -#import "SDLRPCResponse.h" -#import "SDLRPCResponseNotification.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLNotificationDispatcher - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - return self; -} - -- (void)postNotificationName:(NSString *)name infoObject:(nullable id)infoObject { - NSDictionary *userInfo = nil; - if (infoObject != nil) { - userInfo = @{SDLNotificationUserInfoObject: infoObject}; - } - - [[NSNotificationCenter defaultCenter] postNotificationName:name object:self userInfo:userInfo]; -} - -- (void)postRPCRequestNotification:(NSString *)name request:(__kindof SDLRPCRequest *)request { - SDLRPCRequestNotification *notification = [[SDLRPCRequestNotification alloc] initWithName:name object:self rpcRequest:request]; - - [[NSNotificationCenter defaultCenter] postNotification:notification]; -} - -- (void)postRPCResponseNotification:(NSString *)name response:(__kindof SDLRPCResponse *)response { - SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:name object:self rpcResponse:response]; - - [[NSNotificationCenter defaultCenter] postNotification:notification]; -} - -- (void)postRPCNotificationNotification:(NSString *)name notification:(__kindof SDLRPCNotification *)rpcNotification { - SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:name object:self rpcNotification:rpcNotification]; - - [[NSNotificationCenter defaultCenter] postNotification:notification]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.h deleted file mode 100644 index ab65d1f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.h +++ /dev/null @@ -1,100 +0,0 @@ -// SDLOasisAddress.h -// - -#import "SDLRPCStruct.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Struct used in SendLocation describing an address - */ -@interface SDLOasisAddress : SDLRPCStruct - -/// Convenience init to describe an oasis address -/// -/// @param subThoroughfare Portion of thoroughfare (e.g. house number) -/// @param thoroughfare Hypernym for street, road etc -/// @param locality Hypernym for city/village -/// @param administrativeArea Portion of country (e.g. state) -/// @param postalCode PostalCode of location (PLZ, ZIP, PIN, CAP etc.) -/// @param countryCode CountryCode of the country(ISO 3166-2) -- (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare thoroughfare:(nullable NSString *)thoroughfare locality:(nullable NSString *)locality administrativeArea:(nullable NSString *)administrativeArea postalCode:(nullable NSString *)postalCode countryCode:(nullable NSString *)countryCode; - -/// Convenience init to describe an oasis address with all parameters -/// -/// @param subThoroughfare Portion of thoroughfare (e.g. house number) -/// @param thoroughfare Hypernym for street, road etc -/// @param locality Hypernym for city/village -/// @param administrativeArea Portion of country (e.g. state) -/// @param postalCode PostalCode of location (PLZ, ZIP, PIN, CAP etc.) -/// @param countryCode CountryCode of the country(ISO 3166-2) -/// @param subAdministrativeArea Portion of administrativeArea (e.g. county) -/// @param subLocality Hypernym for district -- (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare thoroughfare:(nullable NSString *)thoroughfare locality:(nullable NSString *)locality administrativeArea:(nullable NSString *)administrativeArea postalCode:(nullable NSString *)postalCode countryCode:(nullable NSString *)countryCode countryName:(nullable NSString *)countryName subAdministrativeArea:(nullable NSString *)subAdministrativeArea subLocality:(nullable NSString *)subLocality; - -/** - * Name of the country (localized) - * - * Optional, max length = 200 - */ -@property (nullable, copy, nonatomic) NSString *countryName; - -/** - * countryCode of the country(ISO 3166-2) - * - * Optional, max length = 200 - */ -@property (nullable, copy, nonatomic) NSString *countryCode; - -/** - * postalCode of location (PLZ, ZIP, PIN, CAP etc.) - * - * Optional, max length = 200 - */ -@property (nullable, copy, nonatomic) NSString *postalCode; - -/** - * Portion of country (e.g. state) - * - * Optional, max length = 200 - */ -@property (nullable, copy, nonatomic) NSString *administrativeArea; - -/** - * Portion of administrativeArea (e.g. county) - * - * Optional, max length = 200 - */ -@property (nullable, copy, nonatomic) NSString *subAdministrativeArea; - -/** - * Hypernym for city/village - * - * Optional, max length = 200 - */ -@property (nullable, copy, nonatomic) NSString *locality; - -/** - * Hypernym for district - * - * Optional, max length = 200 - */ -@property (nullable, copy, nonatomic) NSString *subLocality; - -/** - * Hypernym for street, road etc. - * - * Optional, max length = 200 - */ -@property (nullable, copy, nonatomic) NSString *thoroughfare; - -/** - * Portion of thoroughfare (e.g. house number) - * - * Optional, max length = 200 - */ -@property (nullable, copy, nonatomic) NSString *subThoroughfare; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.m deleted file mode 100644 index 798804b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOasisAddress.m +++ /dev/null @@ -1,110 +0,0 @@ -// SDLOasisAddress.m -// - -#import "SDLOasisAddress.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOasisAddress - -- (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare thoroughfare:(nullable NSString *)thoroughfare locality:(nullable NSString *)locality administrativeArea:(nullable NSString *)administrativeArea postalCode:(nullable NSString *)postalCode countryCode:(nullable NSString *)countryCode { - return [self initWithSubThoroughfare:subThoroughfare thoroughfare:thoroughfare locality:locality administrativeArea:administrativeArea postalCode:postalCode countryCode:countryCode countryName:nil subAdministrativeArea:nil subLocality:nil]; -} - -- (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare thoroughfare:(nullable NSString *)thoroughfare locality:(nullable NSString *)locality administrativeArea:(nullable NSString *)administrativeArea postalCode:(nullable NSString *)postalCode countryCode:(nullable NSString *)countryCode countryName:(nullable NSString *)countryName subAdministrativeArea:(nullable NSString *)subAdministrativeArea subLocality:(nullable NSString *)subLocality { - self = [self init]; - if (!self) { - return nil; - } - - self.subThoroughfare = subThoroughfare; - self.thoroughfare = thoroughfare; - self.locality = locality; - self.administrativeArea = administrativeArea; - self.postalCode = postalCode; - self.countryCode = countryCode; - self.countryName = countryName; - self.subAdministrativeArea = subAdministrativeArea; - self.subLocality = subLocality; - - return self; -} - -- (void)setCountryName:(nullable NSString *)countryName { - [self.store sdl_setObject:countryName forName:SDLRPCParameterNameCountryName]; -} - -- (nullable NSString *)countryName { - return [self.store sdl_objectForName:SDLRPCParameterNameCountryName ofClass:NSString.class error:nil]; -} - -- (void)setCountryCode:(nullable NSString *)countryCode { - [self.store sdl_setObject:countryCode forName:SDLRPCParameterNameCountryCode]; -} - -- (nullable NSString *)countryCode { - return [self.store sdl_objectForName:SDLRPCParameterNameCountryCode ofClass:NSString.class error:nil]; -} - -- (void)setPostalCode:(nullable NSString *)postalCode { - [self.store sdl_setObject:postalCode forName:SDLRPCParameterNamePostalCode]; -} - -- (nullable NSString *)postalCode { - return [self.store sdl_objectForName:SDLRPCParameterNamePostalCode ofClass:NSString.class error:nil]; -} - -- (void)setAdministrativeArea:(nullable NSString *)administrativeArea { - [self.store sdl_setObject:administrativeArea forName:SDLRPCParameterNameAdministrativeArea]; -} - -- (nullable NSString *)administrativeArea { - return [self.store sdl_objectForName:SDLRPCParameterNameAdministrativeArea ofClass:NSString.class error:nil]; -} - -- (void)setSubAdministrativeArea:(nullable NSString *)subAdministrativeArea { - [self.store sdl_setObject:subAdministrativeArea forName:SDLRPCParameterNameSubAdministrativeArea]; -} - -- (nullable NSString *)subAdministrativeArea { - return [self.store sdl_objectForName:SDLRPCParameterNameSubAdministrativeArea ofClass:NSString.class error:nil]; -} - -- (void)setLocality:(nullable NSString *)locality { - [self.store sdl_setObject:locality forName:SDLRPCParameterNameLocality]; -} - -- (nullable NSString *)locality { - return [self.store sdl_objectForName:SDLRPCParameterNameLocality ofClass:NSString.class error:nil]; -} - -- (void)setSubLocality:(nullable NSString *)subLocality { - [self.store sdl_setObject:subLocality forName:SDLRPCParameterNameSubLocality]; -} - -- (nullable NSString *)subLocality { - return [self.store sdl_objectForName:SDLRPCParameterNameSubLocality ofClass:NSString.class error:nil]; -} - -- (void)setThoroughfare:(nullable NSString *)thoroughfare { - [self.store sdl_setObject:thoroughfare forName:SDLRPCParameterNameThoroughfare]; -} - -- (nullable NSString *)thoroughfare { - return [self.store sdl_objectForName:SDLRPCParameterNameThoroughfare ofClass:NSString.class error:nil]; -} - -- (void)setSubThoroughfare:(nullable NSString *)subThoroughfare { - [self.store sdl_setObject:subThoroughfare forName:SDLRPCParameterNameSubThoroughfare]; -} - -- (nullable NSString *)subThoroughfare { - return [self.store sdl_objectForName:SDLRPCParameterNameSubThoroughfare ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLObjectWithPriority.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLObjectWithPriority.h deleted file mode 100644 index 848773f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLObjectWithPriority.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// SDLObjectWithPriority.h -// SmartDeviceLink -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLObjectWithPriority : NSObject - -@property (nullable, strong, nonatomic) id object; -@property (assign, nonatomic) NSInteger priority; - -- (instancetype)initWithObject:(nullable id)object priority:(NSInteger)priority NS_DESIGNATED_INITIALIZER; - -+ (instancetype)objectWithObject:(nullable id)object priority:(NSInteger)priority; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLObjectWithPriority.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLObjectWithPriority.m deleted file mode 100644 index 6c8d728..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLObjectWithPriority.m +++ /dev/null @@ -1,34 +0,0 @@ -// -// SDLObjectWithPriority.m -// SmartDeviceLink -// - -#import "SDLObjectWithPriority.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLObjectWithPriority - -- (instancetype)initWithObject:(nullable id)object priority:(NSInteger)priority { - self = [super init]; - if (self == nil) { - return nil; - } - - self.object = object; - self.priority = priority; - - return self; -} - -- (instancetype)init { - return [self initWithObject:nil priority:NSIntegerMax]; -} - -+ (instancetype)objectWithObject:(nullable id)object priority:(NSInteger)priority { - return [[self alloc] initWithObject:object priority:priority]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppInterfaceUnregistered.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppInterfaceUnregistered.h deleted file mode 100644 index c24381c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppInterfaceUnregistered.h +++ /dev/null @@ -1,29 +0,0 @@ -// SDLOnAppInterfaceUnregistered.h -// - -#import "SDLRPCNotification.h" - -#import "SDLAppInterfaceUnregisteredReason.h" - - -/** - * Notifies an application that its interface registration has been terminated. This means that all SDL resources associated with the application are discarded, including the Command Menu, Choice Sets, button subscriptions, etc. - * - * For more information about SDL resources related to an interface registration, see SDLRegisterAppInterface. - * - * @since SDL 1.0 - * @see SDLRegisterAppInterface - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLOnAppInterfaceUnregistered : SDLRPCNotification - -/** - * The reason application's interface was terminated - */ -@property (strong, nonatomic) SDLAppInterfaceUnregisteredReason reason; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m deleted file mode 100644 index c99ab75..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLOnAppInterfaceUnregistered.m -// - -#import "SDLOnAppInterfaceUnregistered.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnAppInterfaceUnregistered - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnAppInterfaceUnregistered]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setReason:(SDLAppInterfaceUnregisteredReason)reason { - [self.parameters sdl_setObject:reason forName:SDLRPCParameterNameReason]; -} - -- (SDLAppInterfaceUnregisteredReason)reason { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameReason error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.h deleted file mode 100644 index f3a4ff1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// SDLOnAppServiceData.h -// SmartDeviceLink -// -// Created by Nicole on 2/7/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCNotification.h" - -@class SDLAppServiceData; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * This notification includes the data that is updated from the specific service. - */ -@interface SDLOnAppServiceData : SDLRPCNotification - -/** - * Convenience init for all parameters. - * - * @param serviceData The updated app service data - * @return A SDLOnAppServiceData object - */ -- (instancetype)initWithServiceData:(SDLAppServiceData *)serviceData; - -/** - * The updated app service data. - * - * SDLAppServiceData, Required - */ -@property (strong, nonatomic) SDLAppServiceData *serviceData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.m deleted file mode 100644 index 792721b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAppServiceData.m +++ /dev/null @@ -1,51 +0,0 @@ -// -// SDLOnAppServiceData.m -// SmartDeviceLink -// -// Created by Nicole on 2/7/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLOnAppServiceData.h" -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -#import "SDLAppServiceData.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnAppServiceData - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnAppServiceData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithServiceData:(SDLAppServiceData *)serviceData { - self = [self init]; - if (!self) { - return nil; - } - - self.serviceData = serviceData; - - return self; -} - -- (void)setServiceData:(SDLAppServiceData *)serviceData { - [self.parameters sdl_setObject:serviceData forName:SDLRPCParameterNameServiceData]; -} - -- (SDLAppServiceData *)serviceData { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceData ofClass:SDLAppServiceData.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAudioPassThru.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAudioPassThru.h deleted file mode 100644 index 13b2448..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAudioPassThru.h +++ /dev/null @@ -1,20 +0,0 @@ -// SDLOnAudioPassThru.h -// - - -#import "SDLRPCNotification.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Binary data is in binary part of hybrid msg. - * - * HMILevel must be: - * - * * BACKGROUND, FULL, LIMITED - */ -@interface SDLOnAudioPassThru : SDLRPCNotification - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAudioPassThru.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAudioPassThru.m deleted file mode 100644 index c404fba..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnAudioPassThru.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLOnAudioPassThru.m -// - - -#import "SDLOnAudioPassThru.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnAudioPassThru - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnAudioPassThru]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonEvent.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonEvent.h deleted file mode 100644 index 25f18d7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonEvent.h +++ /dev/null @@ -1,66 +0,0 @@ -// SDLOnButtonEvent.h -// - -#import "SDLRPCNotification.h" - -#import "SDLButtonName.h" -#import "SDLButtonEventMode.h" - -/** - Notifies application that user has depressed or released a button to which - the application has subscribed. - - Further information about button events and button-presses can be found at SDLSubscribeButton. - - HMI Status Requirements: - - HMILevel: - - * The application will receive SDLOnButtonEvent notifications for all subscribed buttons when HMILevel is FULL. - - * The application will receive SDLOnButtonEvent notifications for subscribed media buttons when HMILevel is LIMITED. - - * Media buttons include SEEKLEFT, SEEKRIGHT, TUNEUP, TUNEDOWN, and PRESET_0-PRESET_9. - - * The application will not receive SDLOnButtonEvent notification when HMILevel is BACKGROUND. - - AudioStreamingState: - * Any - - SystemContext: - - * MAIN, VR. In MENU, only PRESET buttons. - - * In VR, pressing any subscribable button will cancel VR. - - @see SDLSubscribeButton - - @since SDL 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLOnButtonEvent : SDLRPCNotification - -/** - * The name of the button - */ -@property (strong, nonatomic) SDLButtonName buttonName; - -/** - * Indicates whether this is an UP or DOWN event - */ -@property (strong, nonatomic) SDLButtonEventMode buttonEventMode; - -/** - * If ButtonName is "CUSTOM_BUTTON", this references the integer ID passed by a custom button. (e.g. softButton ID) - * - * @since SDL 2.0 - * - * Optional, Integer, 0 - 65536 - */ -@property (nullable, strong, nonatomic) NSNumber *customButtonID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonEvent.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonEvent.m deleted file mode 100644 index 3e9c57c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonEvent.m +++ /dev/null @@ -1,51 +0,0 @@ -// SDLOnButtonEvent.m -// - -#import "SDLOnButtonEvent.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnButtonEvent - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnButtonEvent]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setButtonName:(SDLButtonName)buttonName { - [self.parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; -} - -- (SDLButtonName)buttonName { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; -} - -- (void)setButtonEventMode:(SDLButtonEventMode)buttonEventMode { - [self.parameters sdl_setObject:buttonEventMode forName:SDLRPCParameterNameButtonEventMode]; -} - -- (SDLButtonEventMode)buttonEventMode { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonEventMode error:&error]; -} - -- (void)setCustomButtonID:(nullable NSNumber *)customButtonID { - [self.parameters sdl_setObject:customButtonID forName:SDLRPCParameterNameCustomButtonId]; -} - -- (nullable NSNumber *)customButtonID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCustomButtonId ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonPress.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonPress.h deleted file mode 100644 index 1a2668e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonPress.h +++ /dev/null @@ -1,62 +0,0 @@ -// SDLOnButtonPress.h -// - -#import "SDLRPCNotification.h" - -#import "SDLButtonName.h" -#import "SDLButtonPressMode.h" - -/** - Notifies application of button press events for buttons to which the application is subscribed. SDL supports two button press events defined as follows: - - SHORT - Occurs when a button is depressed, then released within two seconds. The event is considered to occur immediately after the button is released. - - LONG - Occurs when a button is depressed and held for two seconds or more. The event is considered to occur immediately after the two second threshold has been crossed, before the button is released. - - HMI Status Requirements: - - HMILevel: - - The application will receive OnButtonPress notifications for all subscribed buttons when HMILevel is FULL. - - The application will receive OnButtonPress notifications for subscribed media buttons when HMILevel is LIMITED. Media buttons include SEEKLEFT, SEEKRIGHT, TUNEUP, TUNEDOWN, and PRESET_0-PRESET_9. - - The application will not receive OnButtonPress notification when HMILevel is BACKGROUND or NONE. - - AudioStreamingState: Any - - SystemContext: MAIN, VR. In MENU, only PRESET buttons. In VR, pressing any subscribable button will cancel VR. - - @since SDL 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLOnButtonPress : SDLRPCNotification - -/** - * The button's name - * - * Required - */ -@property (strong, nonatomic) SDLButtonName buttonName; - -/** - * Indicates whether this is a LONG or SHORT button press event - * - * Required - */ -@property (strong, nonatomic) SDLButtonPressMode buttonPressMode; - -/** - * If ButtonName is "CUSTOM_BUTTON", this references the integer ID passed by a custom button. (e.g. softButton ID) - * - * @since SDL 2.0 - * - * Optional, Integer 0 - 65536 - */ -@property (nullable, strong, nonatomic) NSNumber *customButtonID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonPress.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonPress.m deleted file mode 100644 index 2acced3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnButtonPress.m +++ /dev/null @@ -1,51 +0,0 @@ -// SDLOnButtonPress.m -// - -#import "SDLOnButtonPress.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnButtonPress - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnButtonPress]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setButtonName:(SDLButtonName)buttonName { - [self.parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; -} - -- (SDLButtonName)buttonName { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; -} - -- (void)setButtonPressMode:(SDLButtonPressMode)buttonPressMode { - [self.parameters sdl_setObject:buttonPressMode forName:SDLRPCParameterNameButtonPressMode]; -} - -- (SDLButtonPressMode)buttonPressMode { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonPressMode error:&error]; -} - -- (void)setCustomButtonID:(nullable NSNumber *)customButtonID { - [self.parameters sdl_setObject:customButtonID forName:SDLRPCParameterNameCustomButtonId]; -} - -- (nullable NSNumber *)customButtonID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCustomButtonId ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnCommand.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnCommand.h deleted file mode 100644 index 7fff804..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnCommand.h +++ /dev/null @@ -1,33 +0,0 @@ -// SDLOnCommand.h -// - -#import "SDLRPCNotification.h" - -#import "SDLTriggerSource.h" - -/** - This is called when a command was selected via VR after pressing the PTT button, or selected from the menu after pressing the MENU button. - - Note: The sequence of *SDLOnHMIStatus* and *SDLOnCommand* notifications for user-initiated interactions is indeterminate. - - @since SDL 1.0 - @see SDLAddCommand SDLDeleteCommand SDLDeleteSubMenu - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLOnCommand : SDLRPCNotification - -/** - The command ID of the command the user selected. This is the command ID value provided by the application in the SDLAddCommand operation that created the command. - */ -@property (strong, nonatomic) NSNumber *cmdID; - -/** - Indicates whether command was selected via voice or via a menu selection (using the OK button). - */ -@property (strong, nonatomic) SDLTriggerSource triggerSource; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnCommand.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnCommand.m deleted file mode 100644 index 40a9750..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnCommand.m +++ /dev/null @@ -1,43 +0,0 @@ -// SDLOnCommand.m -// - -#import "SDLOnCommand.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnCommand - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnCommand]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setCmdID:(NSNumber *)cmdID { - [self.parameters sdl_setObject:cmdID forName:SDLRPCParameterNameCommandId]; -} - -- (NSNumber *)cmdID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameCommandId ofClass:NSNumber.class error:&error]; -} - -- (void)setTriggerSource:(SDLTriggerSource)triggerSource { - [self.parameters sdl_setObject:triggerSource forName:SDLRPCParameterNameTriggerSource]; -} - -- (SDLTriggerSource)triggerSource { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameTriggerSource error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.h deleted file mode 100644 index f7df06b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.h +++ /dev/null @@ -1,47 +0,0 @@ -// SDLOnDriverDistraction.h -// - -#import "SDLRPCNotification.h" - -#import "SDLDriverDistractionState.h" - -/** - Notifies the application of the current driver distraction state (whether driver distraction rules are in effect, or not). - - HMI Status Requirements: - - HMILevel: Can be sent with FULL, LIMITED or BACKGROUND - - AudioStreamingState: Any - - SystemContext: Any - - @since SDL 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLOnDriverDistraction : SDLRPCNotification - -/** - The driver distraction state (i.e. whether driver distraction rules are in effect, or not) - */ -@property (strong, nonatomic) SDLDriverDistractionState state; - -/** - If enabled, the lock screen will be able to be dismissed while connected to SDL, allowing users the ability to interact with the app. - - Optional, Boolean - */ -@property (strong, nonatomic) NSNumber *lockScreenDismissalEnabled; - -/** - Warning message to be displayed on the lock screen when dismissal is enabled. This warning should be used to ensure that the user is not the driver of the vehicle, ex. `Swipe up to dismiss, acknowledging that you are not the driver.`. This parameter must be present if "lockScreenDismissalEnabled" is set to true. - - Optional, String - */ -@property (strong, nonatomic) NSString *lockScreenDismissalWarning; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.m deleted file mode 100644 index 40fb3af..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnDriverDistraction.m +++ /dev/null @@ -1,53 +0,0 @@ -// SDLOnDriverDistraction.m -// - -#import "SDLOnDriverDistraction.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLDriverDistractionState.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnDriverDistraction - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnDriverDistraction]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setState:(SDLDriverDistractionState)state { - [self.parameters sdl_setObject:state forName:SDLRPCParameterNameState]; -} - -- (SDLDriverDistractionState)state { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameState error:&error]; -} - -- (void)setLockScreenDismissalEnabled:(NSNumber *)lockScreenDismissalEnabled { - [self.parameters sdl_setObject:lockScreenDismissalEnabled forName:SDLRPCParameterNameLockScreenDismissalEnabled]; -} - -- (NSNumber *)lockScreenDismissalEnabled { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameLockScreenDismissalEnabled ofClass:NSNumber.class error:&error]; -} - -- (void)setLockScreenDismissalWarning:(NSString *)lockScreenDismissalWarning { - [self.parameters sdl_setObject:lockScreenDismissalWarning forName:SDLRPCParameterNameLockScreenDismissalWarning]; -} - -- (NSString *)lockScreenDismissalWarning { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameLockScreenDismissalWarning ofClass:NSString.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.h deleted file mode 100644 index b42880e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.h +++ /dev/null @@ -1,31 +0,0 @@ -// SDLOnEncodedSyncPData.h -// - -#import "SDLRPCNotification.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Callback including encoded data of any SyncP packets that SYNC needs to send back to the mobile device. Legacy / v1 Protocol implementation; responds to EncodedSyncPData. *** DEPRECATED *** - */ -__deprecated -@interface SDLOnEncodedSyncPData : SDLRPCNotification - -/** - Contains base64 encoded string of SyncP packets. - */ -@property (strong, nonatomic) NSArray *data; - -/** - If blank, the SyncP data shall be forwarded to the app. If not blank, the SyncP data shall be forwarded to the provided URL. - */ -@property (nullable, strong, nonatomic) NSString *URL; - -/** - If blank, the SyncP data shall be forwarded to the app. If not blank, the SyncP data shall be forwarded with the provided timeout in seconds. - */ -@property (nullable, strong, nonatomic) NSNumber *Timeout; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.m deleted file mode 100644 index 830bb5d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnEncodedSyncPData.m +++ /dev/null @@ -1,53 +0,0 @@ -// SDLOnEncodedSyncPData.m -// - -#import "SDLOnEncodedSyncPData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" -@implementation SDLOnEncodedSyncPData -#pragma clang diagnostic pop - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnEncodedSyncPData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setData:(NSArray *)data { - [self.parameters sdl_setObject:data forName:SDLRPCParameterNameData]; -} - -- (NSArray *)data { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameData ofClass:NSString.class error:&error]; -} - -- (void)setURL:(nullable NSString *)URL { - [self.parameters sdl_setObject:URL forName:SDLRPCParameterNameURLUppercase]; -} - -- (nullable NSString *)URL { - return [self.parameters sdl_objectForName:SDLRPCParameterNameURLUppercase ofClass:NSString.class error:nil]; -} - -- (void)setTimeout:(nullable NSNumber *)Timeout { - [self.parameters sdl_setObject:Timeout forName:SDLRPCParameterNameTimeoutCapitalized]; -} - -- (nullable NSNumber *)Timeout { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeoutCapitalized ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.h deleted file mode 100644 index 22a4350..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.h +++ /dev/null @@ -1,64 +0,0 @@ -// SDLOnHMIStatus.h -// - -#import "SDLRPCNotification.h" - -#import "SDLAudioStreamingState.h" -#import "SDLHMILevel.h" -#import "SDLSystemContext.h" -#import "SDLVideoStreamingState.h" - -/** - * Notifies an application that HMI conditions have changed for the application. This indicates whether the application can speak phrases, display text, perform interactions, receive button presses and events, stream audio, etc. This notification will be sent to the application when there has been a change in any one or several of the indicated states (SDLHMILevel, SDLAudioStreamingState or SDLSystemContext) for the application. - - All three values are, in principle, independent of each other (though there may be some relationships). A value for one parameter should not be interpreted from the value of another parameter. - - There are no guarantees about the timeliness or latency of the SDLOnHMIStatus notification. Therefore, for example, information such as SDLAudioStreamingState may not indicate that the audio stream became inaudible to the user exactly when the SDLOnHMIStatus notification was received. - - @since SDL 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLOnHMIStatus : SDLRPCNotification - -/** - SDLHMILevel in effect for the application - */ -@property (strong, nonatomic) SDLHMILevel hmiLevel; - -/** - Current state of audio streaming for the application. When this parameter has a value of NOT_AUDIBLE, the application must stop streaming audio to SDL. - - Informs app whether any currently streaming audio is audible to user (AUDIBLE) or not (NOT_AUDIBLE). A value of NOT_AUDIBLE means that either the application's audio will not be audible to the user, or that the application's audio should not be audible to the user (i.e. some other application on the mobile device may be streaming audio and the application's audio would be blended with that other audio). - */ -@property (strong, nonatomic) SDLAudioStreamingState audioStreamingState; - -/** - Current availablility of video streaming for the application. When this parameter is NOT_STREAMABLE, the application must stop video streaming to SDL. - */ -@property (strong, nonatomic, nullable) SDLVideoStreamingState videoStreamingState; - -/** - Whether a user-initiated interaction is in-progress (VRSESSION or MENU), or not (MAIN) - */ -@property (strong, nonatomic) SDLSystemContext systemContext; - -/** - This is the unique ID assigned to the window that this RPC is intended for. If this param is not included, it will be assumed that this request is specifically for the main window on the main display. @see PredefinedWindows enum. - - @since SDL 6.0 - */ -@property (strong, nonatomic, nullable) NSNumber *windowID; - -/// Initialize an SDLOnHMIStatus RPC with initial parameters -/// @param hmiLevel The HMI level -/// @param systemContext The system context -/// @param audioStreamingState The ability for an audio app to be heard -/// @param videoStreamingState The ability for a video straming app to stream -/// @param windowID Which window this status relates to -- (instancetype)initWithHMILevel:(SDLHMILevel)hmiLevel systemContext:(SDLSystemContext)systemContext audioStreamingState:(SDLAudioStreamingState)audioStreamingState videoStreamingState:(nullable SDLVideoStreamingState)videoStreamingState windowID:(nullable NSNumber *)windowID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.m deleted file mode 100644 index 09534e9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHMIStatus.m +++ /dev/null @@ -1,85 +0,0 @@ -// SDLOnHMIStatus.m -// - -#import "SDLOnHMIStatus.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLAudioStreamingState.h" -#import "SDLHMILevel.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSystemContext.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnHMIStatus - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnHMIStatus]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithHMILevel:(SDLHMILevel)hmiLevel systemContext:(SDLSystemContext)systemContext audioStreamingState:(SDLAudioStreamingState)audioStreamingState videoStreamingState:(nullable SDLVideoStreamingState)videoStreamingState windowID:(nullable NSNumber *)windowID { - self = [self init]; - if (!self) { return nil; } - - self.hmiLevel = hmiLevel; - self.systemContext = systemContext; - self.audioStreamingState = audioStreamingState; - self.videoStreamingState = videoStreamingState; - self.windowID = windowID; - - return self; -} - -- (void)setHmiLevel:(SDLHMILevel)hmiLevel { - [self.parameters sdl_setObject:hmiLevel forName:SDLRPCParameterNameHMILevel]; -} - -- (SDLHMILevel)hmiLevel { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameHMILevel error:&error]; -} - -- (void)setAudioStreamingState:(SDLAudioStreamingState)audioStreamingState { - [self.parameters sdl_setObject:audioStreamingState forName:SDLRPCParameterNameAudioStreamingState]; -} - -- (SDLAudioStreamingState)audioStreamingState { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameAudioStreamingState error:&error]; -} - -- (void)setVideoStreamingState:(nullable SDLVideoStreamingState)videoStreamingState { - [self.parameters sdl_setObject:videoStreamingState forName:SDLRPCParameterNameVideoStreamingState]; -} - -- (nullable SDLVideoStreamingState)videoStreamingState { - return [self.parameters sdl_enumForName:SDLRPCParameterNameVideoStreamingState error:nil]; -} - -- (void)setSystemContext:(SDLSystemContext)systemContext { - [self.parameters sdl_setObject:systemContext forName:SDLRPCParameterNameSystemContext]; -} - -- (SDLSystemContext)systemContext { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameSystemContext error:&error]; -} - -- (void)setWindowID:(nullable NSNumber *)windowID { - [self.parameters sdl_setObject:windowID forName:SDLRPCParameterNameWindowId]; -} - -- (nullable NSNumber *)windowID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHashChange.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHashChange.h deleted file mode 100644 index f2b9cbb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHashChange.h +++ /dev/null @@ -1,21 +0,0 @@ -// SDLOnHashChange.h -// - - -#import "SDLRPCNotification.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Notification containing an updated hashID which can be used over connection cycles (i.e. loss of connection, ignition cycles, etc.). Sent after initial registration and subsequently after any change in the calculated hash of all persisted app data. - */ -@interface SDLOnHashChange : SDLRPCNotification - -/** - Calculated hash ID to be referenced during RegisterAppInterface request. - */ -@property (strong, nonatomic) NSString *hashID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHashChange.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHashChange.m deleted file mode 100644 index f7114a4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnHashChange.m +++ /dev/null @@ -1,35 +0,0 @@ -// SDLOnHashChange.m -// - - -#import "SDLOnHashChange.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnHashChange - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnHashChange]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setHashID:(NSString *)hashID { - [self.parameters sdl_setObject:hashID forName:SDLRPCParameterNameHashId]; -} - -- (NSString *)hashID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameHashId ofClass:NSString.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnInteriorVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnInteriorVehicleData.h deleted file mode 100644 index e54ad91..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnInteriorVehicleData.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// SDLOnInteriorVehicleData.h -// - -#import "SDLRPCNotification.h" -@class SDLModuleData; - -NS_ASSUME_NONNULL_BEGIN - -/** - Notifications when subscribed vehicle data changes. - - See: SDLSubscribeVehicleData - */ -@interface SDLOnInteriorVehicleData : SDLRPCNotification - -/** - The subscribed module data that changed - */ -@property (strong, nonatomic) SDLModuleData *moduleData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnInteriorVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnInteriorVehicleData.m deleted file mode 100644 index 58eff55..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnInteriorVehicleData.m +++ /dev/null @@ -1,35 +0,0 @@ -// -// SDLOnInteriorVehicleData.m -// - -#import "SDLOnInteriorVehicleData.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLModuleData.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnInteriorVehicleData - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnInteriorVehicleData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setModuleData:(SDLModuleData *)moduleData { - [self.parameters sdl_setObject:moduleData forName:SDLRPCParameterNameModuleData]; -} - -- (SDLModuleData *)moduleData { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleData ofClass:SDLModuleData.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnKeyboardInput.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnKeyboardInput.h deleted file mode 100644 index 2090fb8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnKeyboardInput.h +++ /dev/null @@ -1,27 +0,0 @@ -// SDLOnKeyboardInput.h -// - -#import "SDLRPCNotification.h" - -#import "SDLKeyboardEvent.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Sent when a keyboard presented by a PerformInteraction has a keyboard input. - */ -@interface SDLOnKeyboardInput : SDLRPCNotification - -/** - The type of keyboard input - */ -@property (strong, nonatomic) SDLKeyboardEvent event; - -/** - The current keyboard string input from the user - */ -@property (nullable, strong, nonatomic) NSString *data; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnKeyboardInput.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnKeyboardInput.m deleted file mode 100644 index 5785032..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnKeyboardInput.m +++ /dev/null @@ -1,42 +0,0 @@ -// SDLOnKeyboardInput.m -// - -#import "SDLOnKeyboardInput.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnKeyboardInput - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnKeyboardInput]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setEvent:(SDLKeyboardEvent)event { - [self.parameters sdl_setObject:event forName:SDLRPCParameterNameEvent]; -} - -- (SDLKeyboardEvent)event { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameEvent error:&error]; -} - -- (void)setData:(nullable NSString *)data { - [self.parameters sdl_setObject:data forName:SDLRPCParameterNameData]; -} - -- (nullable NSString *)data { - return [self.parameters sdl_objectForName:SDLRPCParameterNameData ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLanguageChange.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLanguageChange.h deleted file mode 100644 index 103532a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLanguageChange.h +++ /dev/null @@ -1,31 +0,0 @@ -// SDLOnLanguageChange.h -// - -#import "SDLRPCNotification.h" - -#import "SDLLanguage.h" - - -/** - * Provides information to what language the SDL HMI language was changed - * - * @since SDL 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLOnLanguageChange : SDLRPCNotification - -/** - Current SDL voice engine (VR+TTS) language - */ -@property (strong, nonatomic) SDLLanguage language; - -/** - Current display language - */ -@property (strong, nonatomic) SDLLanguage hmiDisplayLanguage; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLanguageChange.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLanguageChange.m deleted file mode 100644 index cee3f79..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLanguageChange.m +++ /dev/null @@ -1,45 +0,0 @@ -// SDLOnLanguageChange.m -// - -#import "SDLOnLanguageChange.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLLanguage.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnLanguageChange - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnLanguageChange]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setLanguage:(SDLLanguage)language { - [self.parameters sdl_setObject:language forName:SDLRPCParameterNameLanguage]; -} - -- (SDLLanguage)language { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameLanguage error:&error]; -} - -- (void)setHmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage { - [self.parameters sdl_setObject:hmiDisplayLanguage forName:SDLRPCParameterNameHMIDisplayLanguage]; -} - -- (SDLLanguage)hmiDisplayLanguage { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameHMIDisplayLanguage error:&error]; -} - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.h deleted file mode 100644 index ce1b2cd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// SDLOnLockScreenStatus.h -// SmartDeviceLink -// - -#import "SDLRPCNotification.h" - -#import "SDLHMILevel.h" -#import "SDLLockScreenStatus.h" - - -/** - To help prevent driver distraction, any SmartDeviceLink application is required to implement a lockscreen that must be enforced while the application is active on the system while the vehicle is in motion. - - This lockscreen must perform the following: - - Limit all application control usability from the mobile device with a full-screen static image overlay or separate view. - - For simplicity, the `OnLockScreenStatus` RPC will be provided via the `onOnLockScreenNotification` call back. The call back will include the LockScreenStatus enum which indicates if the lockscreen is required, optional or not required. - - The call back also includes details regarding the current HMI_Status level, driver distraction status and user selection status of the application. - */ - -NS_ASSUME_NONNULL_BEGIN - -__deprecated -@interface SDLOnLockScreenStatus : SDLRPCNotification - -/** - Get the current driver distraction status(i.e. whether driver distraction rules are in effect, or not) - */ -@property (strong, nonatomic) NSNumber *driverDistractionStatus; - -/** - Get user selection status for the application (has the app been selected via hmi or voice command) - */ - -@property (strong, nonatomic) NSNumber *userSelected; - -/** - Indicates if the lockscreen should be required, optional or off - */ -@property (strong, nonatomic) SDLLockScreenStatus lockScreenStatus; - -/** - Get HMILevel in effect for the application - */ -@property (strong, nonatomic) SDLHMILevel hmiLevel; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.m deleted file mode 100644 index 6264ea5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnLockScreenStatus.m +++ /dev/null @@ -1,68 +0,0 @@ -// -// SDLOnLockScreenStatus.m -// SmartDeviceLink -// - -#import "SDLOnLockScreenStatus.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLHMILevel.h" -#import "SDLLockScreenStatus.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" -@implementation SDLOnLockScreenStatus -#pragma clang diagnostic pop - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnLockScreenStatus]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setLockScreenStatus:(SDLLockScreenStatus)lockScreenStatus { - [self.parameters sdl_setObject:lockScreenStatus forName:SDLRPCParameterNameOnLockScreenStatus]; -} - -- (SDLLockScreenStatus)lockScreenStatus { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameOnLockScreenStatus error:&error]; -} - -- (void)setHmiLevel:(SDLHMILevel)hmiLevel { - [self.parameters sdl_setObject:hmiLevel forName:SDLRPCParameterNameHMILevel]; -} - -- (SDLHMILevel)hmiLevel { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameHMILevel error:&error]; -} - -- (void)setUserSelected:(NSNumber *)userSelected { - [self.parameters sdl_setObject:userSelected forName:SDLRPCParameterNameUserSelected]; -} - -- (NSNumber *)userSelected { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameUserSelected ofClass:NSNumber.class error:&error]; -} - -- (void)setDriverDistractionStatus:(NSNumber *)driverDistractionStatus { - [self.parameters sdl_setObject:driverDistractionStatus forName:SDLRPCParameterNameDriverDistractionStatus]; -} - -- (NSNumber *)driverDistractionStatus { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameDriverDistractionStatus ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.h deleted file mode 100644 index 244bbc0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.h +++ /dev/null @@ -1,34 +0,0 @@ -// SDLOnPermissionsChange.h -// - -#import "SDLRPCNotification.h" - -@class SDLPermissionItem; - -/** - * Provides update to app of which sets of functions are available - * - * @since SDL 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLOnPermissionsChange : SDLRPCNotification - -/** - Describes change in permissions for a given set of RPCs - - Required, Array of SDLPermissionItem, Array size 0 - 500 - */ -@property (strong, nonatomic) NSArray *permissionItem; - -/** - Describes whether or not the app needs the encryption permission - - Optional, Boolean, since SDL 6.0 - */ -@property (strong, nonatomic, nullable) NSNumber *requireEncryption; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.m deleted file mode 100644 index a067e08..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnPermissionsChange.m +++ /dev/null @@ -1,43 +0,0 @@ -// SDLOnPermissionsChange.m -// - -#import "SDLOnPermissionsChange.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLPermissionItem.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnPermissionsChange - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnPermissionsChange]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setPermissionItem:(NSArray *)permissionItem { - [self.parameters sdl_setObject:permissionItem forName:SDLRPCParameterNamePermissionItem]; -} - -- (NSArray *)permissionItem { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNamePermissionItem ofClass:SDLPermissionItem.class error:&error]; -} - -- (void)setRequireEncryption:(nullable NSNumber *)requireEncryption { - [self.parameters sdl_setObject:requireEncryption forName:SDLRPCParameterNameRequireEncryption]; -} - -- (nullable NSNumber *)requireEncryption { - return [self.parameters sdl_objectForName:SDLRPCParameterNameRequireEncryption ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnRCStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnRCStatus.h deleted file mode 100644 index 9c3d73c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnRCStatus.h +++ /dev/null @@ -1,49 +0,0 @@ -// SDLOnRCStatus.h -// - -#import "SDLRPCNotification.h" - -@class SDLModuleData; - -/** - * OnRCStatus notifications to all registered mobile applications and the HMI whenever - * (1) SDL allocates a module to an application or - * (2) it de-allocates a module from an application, or - * (3) an application registers with SDL - * - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLOnRCStatus : SDLRPCNotification - -/** - * @abstract Contains a list (zero or more) of module types that - * are allocated to the application. - * - * Required, Array of SDLModuleData, Array size 0 - 100 - * - * @see SDLPermissionItem - */ -@property (strong, nonatomic) NSArray *allocatedModules; - -/** - * @abstract Contains a list (zero or more) of module types that are free to access for the application. - * - * Required, Array of SDLModuleData, Array size 0 - 100 - * - * @see SDLPermissionItem - */ -@property (strong, nonatomic) NSArray *freeModules; - -/** - * Issued by SDL to notify the application about remote control status change on SDL - * If "true" - RC is allowed; if "false" - RC is disallowed. - * - * optional, Boolean, default Value = false - */ -@property (nullable, strong, nonatomic) NSNumber *allowed; - -NS_ASSUME_NONNULL_END - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnRCStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnRCStatus.m deleted file mode 100644 index aa1295f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnRCStatus.m +++ /dev/null @@ -1,53 +0,0 @@ -// SDLOnRCStatus.m -// - -#import "SDLOnRCStatus.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLModuleData.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnRCStatus - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnRCStatus]) { - } - return self; -} -#pragma clang diagnostic pop - -- (nullable NSNumber *)allowed { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAllowed ofClass:NSNumber.class error:nil]; -} - -- (void)setAllowed:(nullable NSNumber *)allowed { - [self.parameters sdl_setObject:allowed forName:SDLRPCParameterNameAllowed]; -} - -- (void)setAllocatedModules:(NSArray *)allocatedModules { - [self.parameters sdl_setObject:allocatedModules forName:SDLRPCParameterNameAllocatedModules]; - -} - -- (NSArray *)allocatedModules { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameAllocatedModules ofClass:SDLModuleData.class error:&error]; -} - -- (void)setFreeModules:(NSArray *)freeModules { - [self.parameters sdl_setObject:freeModules forName:SDLRPCParameterNameFreeModules]; -} - -- (NSArray *)freeModules { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameFreeModules ofClass:SDLModuleData.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.h deleted file mode 100644 index 4352228..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.h +++ /dev/null @@ -1,27 +0,0 @@ -// SDLOnSyncPData.h -// - - -#import "SDLRPCNotification.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - DEPRECATED - */ -__deprecated -@interface SDLOnSyncPData : SDLRPCNotification - -/// The url -/// -/// Optional -@property (nullable, strong, nonatomic) NSString *URL; - -/// How long until a timeout -/// -/// Optional -@property (nullable, strong, nonatomic) NSNumber *Timeout; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.m deleted file mode 100644 index af4f39b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSyncPData.m +++ /dev/null @@ -1,46 +0,0 @@ -// SDLOnSyncPData.m -// - - -#import "SDLOnSyncPData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - - -NS_ASSUME_NONNULL_BEGIN - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" -@implementation SDLOnSyncPData -#pragma clang diagnostic pop - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnSyncPData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setURL:(nullable NSString *)URL { - [self.parameters sdl_setObject:URL forName:SDLRPCParameterNameURLUppercase]; -} - -- (nullable NSString *)URL { - return [self.parameters sdl_objectForName:SDLRPCParameterNameURLUppercase ofClass:NSString.class error:nil]; -} - -- (void)setTimeout:(nullable NSNumber *)Timeout { - [self.parameters sdl_setObject:Timeout forName:SDLRPCParameterNameTimeoutCapitalized]; -} - -- (nullable NSNumber *)Timeout { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeoutCapitalized ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.h deleted file mode 100644 index 35a7209..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// SDLOnSystemCapabilityUpdated.h -// SmartDeviceLink -// -// Created by Nicole on 2/6/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCNotification.h" - -@class SDLSystemCapability; - -NS_ASSUME_NONNULL_BEGIN - -/** - * A notification to inform the connected device that a specific system capability has changed. - */ -@interface SDLOnSystemCapabilityUpdated : SDLRPCNotification - -/** - * Convenience init for required parameters - * - * @param systemCapability The system capability that has been updated - * @return A SDLOnSystemCapabilityUpdated object - */ -- (instancetype)initWithSystemCapability:(SDLSystemCapability *)systemCapability; - -/** - * The system capability that has been updated. - * - * SDLSystemCapability, Required - */ -@property (strong, nonatomic) SDLSystemCapability *systemCapability; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.m deleted file mode 100644 index 4c3de1e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemCapabilityUpdated.m +++ /dev/null @@ -1,51 +0,0 @@ -// -// SDLOnSystemCapabilityUpdated.m -// SmartDeviceLink -// -// Created by Nicole on 2/6/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLOnSystemCapabilityUpdated.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSystemCapability.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnSystemCapabilityUpdated - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnSystemCapabilityUpdated]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithSystemCapability:(SDLSystemCapability *)systemCapability { - self = [self init]; - if (!self) { - return nil; - } - - self.systemCapability = systemCapability; - - return self; -} - -- (void)setSystemCapability:(SDLSystemCapability *)systemCapability { - [self.parameters sdl_setObject:systemCapability forName:SDLRPCParameterNameSystemCapability]; -} - -- (SDLSystemCapability *)systemCapability { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameSystemCapability ofClass:SDLSystemCapability.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemRequest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemRequest.h deleted file mode 100644 index c4a540f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemRequest.h +++ /dev/null @@ -1,55 +0,0 @@ -// SDLOnSystemRequest.h -// - -#import "SDLRPCNotification.h" - -#import "SDLFileType.h" -#import "SDLRequestType.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - An asynchronous request from the system for specific data from the device or the cloud or response to a request from the device or cloud Binary data can be included in hybrid part of message for some requests (such as Authentication request responses) - */ -@interface SDLOnSystemRequest : SDLRPCNotification - -/** - The type of system request. - */ -@property (strong, nonatomic) SDLRequestType requestType; - -/** - A request subType used when the `requestType` is `OEM_SPECIFIC`. - - Optional, Max length 255 - */ -@property (strong, nonatomic, nullable) NSString *requestSubType; - -/** - Optional URL for HTTP requests. If blank, the binary data shall be forwarded to the app. If not blank, the binary data shall be forwarded to the url with a provided timeout in seconds. - */ -@property (nullable, strong, nonatomic) NSString *url; - -/** - Optional timeout for HTTP requests Required if a URL is provided - */ -@property (nullable, strong, nonatomic) NSNumber *timeout; - -/** - Optional file type (meant for HTTP file requests). - */ -@property (nullable, strong, nonatomic) SDLFileType fileType; - -/** - Optional offset in bytes for resuming partial data chunks - */ -@property (nullable, strong, nonatomic) NSNumber *offset; - -/** - Optional length in bytes for resuming partial data chunks - */ -@property (nullable, strong, nonatomic) NSNumber *length; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemRequest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemRequest.m deleted file mode 100644 index 174726c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnSystemRequest.m +++ /dev/null @@ -1,82 +0,0 @@ -// SDLOnSystemRequest.m -// - -#import "SDLOnSystemRequest.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnSystemRequest - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnSystemRequest]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setRequestType:(SDLRequestType)requestType { - [self.parameters sdl_setObject:requestType forName:SDLRPCParameterNameRequestType]; -} - -- (SDLRequestType)requestType { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameRequestType error:&error]; -} - -- (void)setRequestSubType:(nullable NSString *)requestSubType { - [self.parameters sdl_setObject:requestSubType forName:SDLRPCParameterNameRequestSubType]; -} - -- (nullable NSString *)requestSubType { - return [self.parameters sdl_objectForName:SDLRPCParameterNameRequestSubType ofClass:NSString.class error:nil]; -} - -- (void)setUrl:(nullable NSString *)url { - [self.parameters sdl_setObject:url forName:SDLRPCParameterNameURL]; -} - -- (nullable NSString *)url { - return [self.parameters sdl_objectForName:SDLRPCParameterNameURL ofClass:NSString.class error:nil]; -} - -- (void)setTimeout:(nullable NSNumber *)timeout { - [self.parameters sdl_setObject:timeout forName:SDLRPCParameterNameTimeout]; -} - -- (nullable NSNumber *)timeout { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeout ofClass:NSNumber.class error:nil]; -} - -- (void)setFileType:(nullable SDLFileType)fileType { - [self.parameters sdl_setObject:fileType forName:SDLRPCParameterNameFileType]; -} - -- (nullable SDLFileType)fileType { - return [self.parameters sdl_enumForName:SDLRPCParameterNameFileType error:nil]; -} - -- (void)setOffset:(nullable NSNumber *)offset { - [self.parameters sdl_setObject:offset forName:SDLRPCParameterNameOffset]; -} - -- (nullable NSNumber *)offset { - return [self.parameters sdl_objectForName:SDLRPCParameterNameOffset ofClass:NSNumber.class error:nil]; -} - -- (void)setLength:(nullable NSNumber *)length { - [self.parameters sdl_setObject:length forName:SDLRPCParameterNameLength]; -} - -- (nullable NSNumber *)length { - return [self.parameters sdl_objectForName:SDLRPCParameterNameLength ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTBTClientState.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTBTClientState.h deleted file mode 100644 index 9d5d2d1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTBTClientState.h +++ /dev/null @@ -1,22 +0,0 @@ -// SDLOnTBTClientState.h -// - -#import "SDLRPCNotification.h" - -#import "SDLTBTState.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Provides applications with notifications specific to the current TBT client status on the module - */ -@interface SDLOnTBTClientState : SDLRPCNotification - -/** - Current State of TBT client - */ -@property (strong, nonatomic) SDLTBTState state; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTBTClientState.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTBTClientState.m deleted file mode 100644 index 4a6695e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTBTClientState.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLOnTBTClientState.m -// - -#import "SDLOnTBTClientState.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnTBTClientState - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnTBTClientState]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setState:(SDLTBTState)state { - [self.parameters sdl_setObject:state forName:SDLRPCParameterNameState]; -} - -- (SDLTBTState)state { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameState error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTouchEvent.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTouchEvent.h deleted file mode 100644 index 2e0f299..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTouchEvent.h +++ /dev/null @@ -1,29 +0,0 @@ -// SDLOnTouchEvent.h -// - -#import "SDLRPCNotification.h" - -#import "SDLTouchType.h" - -@class SDLTouchEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - Notifies about touch events on the screen's prescribed area during video streaming - */ -@interface SDLOnTouchEvent : SDLRPCNotification - -/** - The type of touch event. - */ -@property (strong, nonatomic) SDLTouchType type; - -/** - List of all individual touches involved in this event. - */ -@property (strong, nonatomic) NSArray *event; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTouchEvent.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTouchEvent.m deleted file mode 100644 index 1995f7d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnTouchEvent.m +++ /dev/null @@ -1,44 +0,0 @@ -// SDLOnTouchEvent.m -// - -#import "SDLOnTouchEvent.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLTouchEvent.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnTouchEvent - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnTouchEvent]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setType:(SDLTouchType)type { - [self.parameters sdl_setObject:type forName:SDLRPCParameterNameType]; -} - -- (SDLTouchType)type { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameType error:&error]; -} - -- (void)setEvent:(NSArray *)event { - [self.parameters sdl_setObject:event forName:SDLRPCParameterNameEvent]; -} - -- (NSArray *)event { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameEvent ofClass:SDLTouchEvent.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.h deleted file mode 100644 index 815827c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.h +++ /dev/null @@ -1,211 +0,0 @@ -// SDLOnVehicleData.h -// - -#import "SDLRPCNotification.h" - -#import "SDLComponentVolumeStatus.h" -#import "SDLElectronicParkBrakeStatus.h" -#import "SDLPRNDL.h" -#import "SDLTurnSignal.h" -#import "SDLVehicleDataEventStatus.h" -#import "SDLWiperStatus.h" - -@class SDLAirbagStatus; -@class SDLBeltStatus; -@class SDLBodyInformation; -@class SDLClusterModeStatus; -@class SDLDeviceStatus; -@class SDLECallInfo; -@class SDLEmergencyEvent; -@class SDLFuelRange; -@class SDLGPSData; -@class SDLHeadLampStatus; -@class SDLMyKey; -@class SDLTireStatus; - - -/** - Callback for the periodic and non periodic vehicle data read function. - - Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLOnVehicleData : SDLRPCNotification - -/** - The car current GPS coordinates - */ -@property (nullable, strong, nonatomic) SDLGPSData *gps; - -/** - The vehicle speed in kilometers per hour - */ -@property (nullable, strong, nonatomic) NSNumber *speed; - -/** - The number of revolutions per minute of the engine. - */ -@property (nullable, strong, nonatomic) NSNumber *rpm; - -/** - The fuel level in the tank (percentage) - */ -@property (nullable, strong, nonatomic) NSNumber *fuelLevel; - -/** - The fuel level state - */ -@property (nullable, strong, nonatomic) SDLComponentVolumeStatus fuelLevel_State; - -/** - The estimate range in KM the vehicle can travel based on fuel level and consumption - - Optional, Array of length 0 - 100, of SDLFuelRange - */ -@property (nullable, strong, nonatomic) NSArray *fuelRange; - -/** - The instantaneous fuel consumption in microlitres - */ -@property (nullable, strong, nonatomic) NSNumber *instantFuelConsumption; - -/** - The external temperature in degrees celsius. - */ -@property (nullable, strong, nonatomic) NSNumber *externalTemperature; - -/** - The Vehicle Identification Number - */ -@property (nullable, strong, nonatomic) NSString *vin; - -/** - The current gear shift state of the user's vehicle - */ -@property (nullable, strong, nonatomic) SDLPRNDL prndl; - -/** - The current pressure warnings for the user's vehicle - */ -@property (nullable, strong, nonatomic) SDLTireStatus *tirePressure; - -/** - Odometer reading in km - */ -@property (nullable, strong, nonatomic) NSNumber *odometer; - -/** - The status of the seat belts - */ -@property (nullable, strong, nonatomic) SDLBeltStatus *beltStatus; - -/** - The body information including power modes - */ -@property (nullable, strong, nonatomic) SDLBodyInformation *bodyInformation; - -/** - The IVI system status including signal and battery strength - */ -@property (nullable, strong, nonatomic) SDLDeviceStatus *deviceStatus; - -/** - The status of the brake pedal - */ -@property (nullable, strong, nonatomic) SDLVehicleDataEventStatus driverBraking; - -/** - The status of the wipers - */ -@property (nullable, strong, nonatomic) SDLWiperStatus wiperStatus; - -/** - Status of the head lamps - */ -@property (nullable, strong, nonatomic) SDLHeadLampStatus *headLampStatus; - -/** - The estimated percentage (0% - 100%) of remaining oil life of the engine - */ -@property (nullable, strong, nonatomic) NSNumber *engineOilLife; - -/** - Torque value for engine (in Nm) on non-diesel variants - */ -@property (nullable, strong, nonatomic) NSNumber *engineTorque; - -/** - Accelerator pedal position (percentage depressed) - */ -@property (nullable, strong, nonatomic) NSNumber *accPedalPosition; - -/** - Current angle of the steering wheel (in deg) - */ -@property (nullable, strong, nonatomic) NSNumber *steeringWheelAngle; - -/** - Emergency Call notification and confirmation data - */ -@property (nullable, strong, nonatomic) SDLECallInfo *eCallInfo; - -/** - The status of the air bags - */ -@property (nullable, strong, nonatomic) SDLAirbagStatus *airbagStatus; - -/** - Information related to an emergency event (and if it occurred) - */ -@property (nullable, strong, nonatomic) SDLEmergencyEvent *emergencyEvent; - -/** - The status modes of the cluster - */ -@property (nullable, strong, nonatomic) SDLClusterModeStatus *clusterModeStatus; - -/** - Information related to the MyKey feature - */ -@property (nullable, strong, nonatomic) SDLMyKey *myKey; - -/** - The status of the electronic parking brake - */ -@property (nullable, strong, nonatomic) SDLElectronicParkBrakeStatus electronicParkBrakeStatus; - -/** - The status of the turn signal - */ -@property (nullable, strong, nonatomic) SDLTurnSignal turnSignal; - -/** - The cloud app vehicle ID - */ -@property (nullable, strong, nonatomic) NSString *cloudAppVehicleID; - -/** - Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @param vehicleDataState An object containing the OEM custom vehicle data item. - - Added in SmartDeviceLink 6.0 - */ -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); - -/** - Gets the OEM custom vehicle data item for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @return An OEM custom vehicle data object for the given vehicle data name. - - Added in SmartDeviceLink 6.0 - */ -- (nullable NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.m deleted file mode 100644 index 7c59dee..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnVehicleData.m +++ /dev/null @@ -1,285 +0,0 @@ -// SDLOnVehicleData.m -// - -#import "SDLOnVehicleData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLAirbagStatus.h" -#import "SDLBeltStatus.h" -#import "SDLBodyInformation.h" -#import "SDLClusterModeStatus.h" -#import "SDLDeviceStatus.h" -#import "SDLECallInfo.h" -#import "SDLEmergencyEvent.h" -#import "SDLFuelRange.h" -#import "SDLGPSData.h" -#import "SDLHeadLampStatus.h" -#import "SDLMyKey.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLTireStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnVehicleData - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnVehicleData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setGps:(nullable SDLGPSData *)gps { - [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; -} - -- (nullable SDLGPSData *)gps { - return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLGPSData.class error:nil]; -} - -- (void)setSpeed:(nullable NSNumber *)speed { - [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; -} - -- (nullable NSNumber *)speed { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; -} - -- (void)setRpm:(nullable NSNumber *)rpm { - [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; -} - -- (nullable NSNumber *)rpm { - return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelLevel:(nullable NSNumber *)fuelLevel { - [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; -} - -- (nullable NSNumber *)fuelLevel { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelLevel_State:(nullable SDLComponentVolumeStatus)fuelLevel_State { - [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; -} - -- (nullable SDLComponentVolumeStatus)fuelLevel_State { - return [self.parameters sdl_enumForName:SDLRPCParameterNameFuelLevelState error:nil]; -} - -- (void)setFuelRange:(nullable NSArray *)fuelRange { - [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; -} - -- (nullable NSArray *)fuelRange { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameFuelRange ofClass:SDLFuelRange.class error:nil]; -} - -- (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { - [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; -} - -- (nullable NSNumber *)instantFuelConsumption { - return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; -} - -- (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { - [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; -} - -- (nullable NSNumber *)externalTemperature { - return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; -} - -- (void)setVin:(nullable NSString *)vin { - [self.parameters sdl_setObject:vin forName:SDLRPCParameterNameVIN]; -} - -- (nullable NSString *)vin { - return [self.parameters sdl_objectForName:SDLRPCParameterNameVIN ofClass:NSString.class error:nil]; -} - -- (void)setPrndl:(nullable SDLPRNDL)prndl { - [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; -} - -- (nullable SDLPRNDL)prndl { - return [self.parameters sdl_enumForName:SDLRPCParameterNamePRNDL error:nil]; -} - -- (void)setTirePressure:(nullable SDLTireStatus *)tirePressure { - [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; -} - -- (nullable SDLTireStatus *)tirePressure { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLTireStatus.class error:nil]; -} - -- (void)setOdometer:(nullable NSNumber *)odometer { - [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; -} - -- (nullable NSNumber *)odometer { - return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; -} - -- (void)setBeltStatus:(nullable SDLBeltStatus *)beltStatus { - [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; -} - -- (nullable SDLBeltStatus *)beltStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLBeltStatus.class error:nil]; -} - -- (void)setBodyInformation:(nullable SDLBodyInformation *)bodyInformation { - [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; -} - -- (nullable SDLBodyInformation *)bodyInformation { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLBodyInformation.class error:nil]; -} - -- (void)setDeviceStatus:(nullable SDLDeviceStatus *)deviceStatus { - [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; -} - -- (nullable SDLDeviceStatus *)deviceStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLDeviceStatus.class error:nil]; -} - -- (void)setDriverBraking:(nullable SDLVehicleDataEventStatus)driverBraking { - [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; -} - -- (nullable SDLVehicleDataEventStatus)driverBraking { - return [self.parameters sdl_enumForName:SDLRPCParameterNameDriverBraking error:nil]; -} - -- (void)setWiperStatus:(nullable SDLWiperStatus)wiperStatus { - [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; -} - -- (nullable SDLWiperStatus)wiperStatus { - return [self.parameters sdl_enumForName:SDLRPCParameterNameWiperStatus error:nil]; -} - -- (void)setHeadLampStatus:(nullable SDLHeadLampStatus *)headLampStatus { - [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; -} - -- (nullable SDLHeadLampStatus *)headLampStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLHeadLampStatus.class error:nil]; -} - -- (void)setEngineOilLife:(nullable NSNumber *)engineOilLife { - [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; -} - -- (nullable NSNumber *)engineOilLife { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; -} - -- (void)setEngineTorque:(nullable NSNumber *)engineTorque { - [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; -} - -- (nullable NSNumber *)engineTorque { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; -} - -- (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { - [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; -} - -- (nullable NSNumber *)accPedalPosition { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; -} - -- (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { - [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; -} - -- (nullable NSNumber *)steeringWheelAngle { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; -} - -- (void)setECallInfo:(nullable SDLECallInfo *)eCallInfo { - [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; -} - -- (nullable SDLECallInfo *)eCallInfo { - return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLECallInfo.class error:nil]; -} - -- (void)setAirbagStatus:(nullable SDLAirbagStatus *)airbagStatus { - [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; -} - -- (nullable SDLAirbagStatus *)airbagStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLAirbagStatus.class error:nil]; -} - -- (void)setEmergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent { - [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; -} - -- (nullable SDLEmergencyEvent *)emergencyEvent { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLEmergencyEvent.class error:nil]; -} - -- (void)setClusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus { - [self.parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; -} - -- (nullable SDLClusterModeStatus *)clusterModeStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:SDLClusterModeStatus.class error:nil]; -} - -- (void)setMyKey:(nullable SDLMyKey *)myKey { - [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; -} - -- (nullable SDLMyKey *)myKey { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLMyKey.class error:nil]; -} - -- (void)setElectronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { - [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; -} - -- (nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { - return [self.parameters sdl_enumForName:SDLRPCParameterNameElectronicParkBrakeStatus error:nil]; -} - -- (void)setTurnSignal:(nullable SDLTurnSignal)turnSignal { - [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; -} - -- (nullable SDLTurnSignal)turnSignal { - return [self.parameters sdl_enumForName:SDLRPCParameterNameTurnSignal error:nil]; -} - -- (void)setCloudAppVehicleID:(nullable NSString *)cloudAppVehicleID { - [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; -} - -- (nullable NSString *)cloudAppVehicleID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSString.class error:nil]; -} - -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState { - [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName]; -} - -- (nullable NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName { - return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSObject.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnWayPointChange.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnWayPointChange.h deleted file mode 100644 index 2fe3488..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnWayPointChange.h +++ /dev/null @@ -1,24 +0,0 @@ -// SDLOnWayPointChange.h -// - -#import "SDLRPCNotification.h" - -@class SDLLocationDetails; - -NS_ASSUME_NONNULL_BEGIN - -/** - Notification which provides the entire LocationDetails when there is a change to any waypoints or destination. - */ -@interface SDLOnWayPointChange : SDLRPCNotification - -/** - Location address for display purposes only - - Required, Array of Strings, Array size 1 - 10 - */ -@property (copy, nonatomic) NSArray *waypoints; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnWayPointChange.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnWayPointChange.m deleted file mode 100644 index b90033d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLOnWayPointChange.m +++ /dev/null @@ -1,35 +0,0 @@ -// SDLOnWayPointChange.m -// - -#import "SDLOnWayPointChange.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLLocationDetails.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLOnWayPointChange - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameOnWayPointChange]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setWaypoints:(NSArray *)waypoints { - [self.parameters sdl_setObject:waypoints forName:SDLRPCParameterNameWayPoints]; -} - -- (NSArray *)waypoints { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameWayPoints ofClass:SDLLocationDetails.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPCMAudioConverter.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPCMAudioConverter.h deleted file mode 100755 index abd1a88..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPCMAudioConverter.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// SDLPCMAudioConverter.h -// SmartDeviceLink-Example -// -// Created by Joel Fischer on 10/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -extern NSString *const SDLErrorDomainPCMAudioStreamConverter; - -@interface SDLPCMAudioConverter : NSObject - -@property (assign, nonatomic, readonly) UInt32 estimatedDuration; - -- (nullable instancetype)initWithFileURL:(NSURL *)fileURL; - -/** - Synchronously convert the file that it was init'd with, returning an error if it fails and the NSURL of the new file if it succeeds - - @param error An error object containing the OSStatus if it failed to convert - @return The NSURL of the newly converted file - */ -- (nullable NSURL *)convertFileWithError:(NSError *__autoreleasing *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPCMAudioConverter.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPCMAudioConverter.m deleted file mode 100755 index 853f5a6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPCMAudioConverter.m +++ /dev/null @@ -1,205 +0,0 @@ -// -// SDLPCMAudioConverter.m -// SmartDeviceLink-Example -// -// Created by Joel Fischer on 10/24/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#include - -#import "SDLLogMacros.h" -#import "SDLPCMAudioConverter.h" - -NS_ASSUME_NONNULL_BEGIN - -NSString *const SDLErrorDomainPCMAudioStreamConverter = @"com.sdl.extension.pcmAudioStreamManager.converter"; - -@interface SDLPCMAudioConverter() - -@property (copy, nonatomic) NSURL *inputFileURL; -@property (assign, nonatomic) UInt32 estimatedDuration; - -@end - -@implementation SDLPCMAudioConverter - -- (nullable instancetype)initWithFileURL:(NSURL *)inputFileURL { - self = [self init]; - if (!self) return nil; - - if (!inputFileURL.isFileURL) { - return nil; - } - - _inputFileURL = inputFileURL; - _estimatedDuration = UINT32_MAX; - - return self; -} - -- (nullable NSURL *)convertFileWithError:(NSError *__autoreleasing *)error { - if (NSTemporaryDirectory() == nil) { - // We can't write to disk for some reason - return nil; - } - - CFURLRef inputFileURL = (__bridge CFURLRef)_inputFileURL; - NSURL *outputURL = [[[NSURL fileURLWithPath:NSTemporaryDirectory() isDirectory:YES] URLByAppendingPathComponent:[NSUUID UUID].UUIDString] URLByAppendingPathExtension:@"caf"]; - CFURLRef outputFileURL = (__bridge CFURLRef)outputURL; - ExtAudioFileRef infile, outfile = 0; - - // Open the input file - OSStatus err = ExtAudioFileOpenURL(inputFileURL, &infile); - if (err != noErr) { - if (*error != nil) { - *error = [NSError errorWithDomain:SDLErrorDomainPCMAudioStreamConverter code:err userInfo:@{@"type": @"ExtAudioFileOpenURL"}]; - } - return nil; - } - - AudioStreamBasicDescription inputFormat = {}; - UInt32 size = sizeof(inputFormat); - err = ExtAudioFileGetProperty(infile, kExtAudioFileProperty_FileDataFormat, &size, &inputFormat); - if (err != noErr) { - if (*error != nil) { - *error = [NSError errorWithDomain:SDLErrorDomainPCMAudioStreamConverter code:err userInfo:@{@"type": @"kExtAudioFileProperty_FileDataFormat"}]; - } - return nil; - } - - SDLLogD(@"PCM Converter input format"); - [self.class printAudioStreamBasicDescription:inputFormat]; - - // create the output file (this will erase an existing file) - AudioStreamBasicDescription outputFormat = [self.class outputFormat]; - SDLLogD(@"PCM Converter output format"); - [self.class printAudioStreamBasicDescription:outputFormat]; - err = ExtAudioFileCreateWithURL(outputFileURL, kAudioFileCAFType, &outputFormat, NULL, kAudioFileFlags_EraseFile, &outfile); - if (err != noErr) { - if (*error != nil) { - *error = [NSError errorWithDomain:SDLErrorDomainPCMAudioStreamConverter code:err userInfo:@{@"type": @"ExtAudioFileCreateWithURL"}]; - } - return nil; - } - - // get and set the client format - it should be lpcm - AudioStreamBasicDescription clientFormat = (inputFormat.mFormatID == kAudioFormatLinearPCM ? inputFormat : outputFormat); - size = sizeof(clientFormat); - err = ExtAudioFileSetProperty(infile, kExtAudioFileProperty_ClientDataFormat, size, &clientFormat); - if (err != noErr) { - if (*error != nil) { - *error = [NSError errorWithDomain:SDLErrorDomainPCMAudioStreamConverter code:err userInfo:@{@"type": @"kExtAudioFileProperty_ClientDataFormat"}]; - } - return nil; - } - - size = sizeof(clientFormat); - err = ExtAudioFileSetProperty(outfile, kExtAudioFileProperty_ClientDataFormat, size, &clientFormat); - if (err != noErr) { - if (*error != nil) { - *error = [NSError errorWithDomain:SDLErrorDomainPCMAudioStreamConverter code:err userInfo:@{@"type": @"kExtAudioFileProperty_ClientDataFormat"}]; - } - return nil; - } - - AudioConverterRef outConverter; - size = sizeof(outConverter); - err = ExtAudioFileGetProperty(outfile, kExtAudioFileProperty_AudioConverter, &size, &outConverter); - if (err != noErr) { - if (*error != nil) { - *error = [NSError errorWithDomain:SDLErrorDomainPCMAudioStreamConverter code:err userInfo:@{@"type": @"kExtAudioFileProperty_AudioConverter"}]; - } - return nil; - } - - // set up buffers - const UInt32 kSrcBufSize = 32768; - char srcBuffer[kSrcBufSize]; - - // do the read and write - the conversion is done on and by the write call - while (1) { - AudioBufferList fillBufList; - fillBufList.mNumberBuffers = 1; - fillBufList.mBuffers[0].mNumberChannels = inputFormat.mChannelsPerFrame; - fillBufList.mBuffers[0].mDataByteSize = kSrcBufSize; - fillBufList.mBuffers[0].mData = srcBuffer; - - // client format is always linear PCM - so here we determine how many frames of lpcm - // we can read/write given our buffer size - UInt32 numFrames = (kSrcBufSize / clientFormat.mBytesPerFrame); - - err = ExtAudioFileRead(infile, &numFrames, &fillBufList); - if (err != noErr) { - if (*error != nil) { - *error = [NSError errorWithDomain:SDLErrorDomainPCMAudioStreamConverter code:err userInfo:@{@"type": @"ExtAudioFileRead"}]; - } - return nil; - } - - // this is our termination condition - if (!numFrames) { break; } - - err = ExtAudioFileWrite(outfile, numFrames, &fillBufList); - if (err != noErr) { - if (*error != nil) { - *error = [NSError errorWithDomain:SDLErrorDomainPCMAudioStreamConverter code:err userInfo:@{@"type": @"ExtAudioFileWrite"}]; - } - return nil; - } - } - - _estimatedDuration = [self estimatedDurationForFileRef:outfile]; - - // close - ExtAudioFileDispose(outfile); - ExtAudioFileDispose(infile); - - // TODO: If error - return outputURL; -} - -- (UInt32)estimatedDurationForFileRef:(ExtAudioFileRef)fileRef { - UInt32 estimatedDuration = 0; - UInt32 size = sizeof(estimatedDuration); - OSStatus err = ExtAudioFileGetProperty(fileRef, kAudioFilePropertyEstimatedDuration, &size, &estimatedDuration); - if (err != noErr) { - SDLLogW(@"Could not get estimated duration for file ref"); - return UINT32_MAX; - } - - return estimatedDuration; -} - -+ (AudioStreamBasicDescription)outputFormat { - AudioStreamBasicDescription outputFormat; - outputFormat.mSampleRate = 16000; - outputFormat.mFormatID = kAudioFormatLinearPCM; - outputFormat.mChannelsPerFrame = 1; - outputFormat.mBitsPerChannel = 16; - outputFormat.mBytesPerPacket = (outputFormat.mBitsPerChannel / 8); - outputFormat.mFramesPerPacket = 1; - outputFormat.mBytesPerFrame = outputFormat.mBytesPerPacket; - outputFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger; - - return outputFormat; -} - -+ (void)printAudioStreamBasicDescription:(AudioStreamBasicDescription)asbd { - char formatID[5]; - UInt32 mFormatID = CFSwapInt32HostToBig(asbd.mFormatID); - bcopy (&mFormatID, formatID, 4); - formatID[4] = '\0'; - SDLLogD(@"Sample Rate: %10.0f\n" - "Format ID: %10s\n" - "Format Flags: %10X\n" - "Bytes per Packet: %10d\n" - "Frames per Packet: %10d\n" - "Bytes per Frame: %10d\n" - "Channels per Frame: %10d\n" - "Bits per Channel: %10d\n", asbd.mSampleRate, formatID, (unsigned int)asbd.mFormatFlags, (unsigned int)asbd.mBytesPerPacket, (unsigned int)asbd.mFramesPerPacket, (unsigned int)asbd.mBytesPerFrame, (unsigned int)asbd.mChannelsPerFrame, (unsigned int)asbd.mBitsPerChannel); -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPRNDL.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPRNDL.h deleted file mode 100644 index db9c6e3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPRNDL.h +++ /dev/null @@ -1,92 +0,0 @@ -// SDLPRNDL.h -// - - -#import "SDLEnum.h" - -/** - * The selected gear the car is in. Used in retrieving vehicle data. - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLPRNDL SDL_SWIFT_ENUM; - -/** - * Park - */ -extern SDLPRNDL const SDLPRNDLPark; - -/** - * Reverse gear - */ -extern SDLPRNDL const SDLPRNDLReverse; - -/** - * No gear - */ -extern SDLPRNDL const SDLPRNDLNeutral; - -/** - * @abstract: Drive gear - */ -extern SDLPRNDL const SDLPRNDLDrive; - -/** - * Drive Sport mode - */ -extern SDLPRNDL const SDLPRNDLSport; - -/** - * 1st gear hold - */ -extern SDLPRNDL const SDLPRNDLLowGear; - -/** - * First gear - */ -extern SDLPRNDL const SDLPRNDLFirst; - -/** - * Second gear - */ -extern SDLPRNDL const SDLPRNDLSecond; - -/** - * Third gear - */ -extern SDLPRNDL const SDLPRNDLThird; - -/** - * Fourth gear - */ -extern SDLPRNDL const SDLPRNDLFourth; - -/** - * Fifth gear - */ -extern SDLPRNDL const SDLPRNDLFifth; - -/** - * Sixth gear - */ -extern SDLPRNDL const SDLPRNDLSixth; - -/** - * Seventh gear - */ -extern SDLPRNDL const SDLPRNDLSeventh; - -/** - * Eighth gear - */ -extern SDLPRNDL const SDLPRNDLEighth; - -/** - * Unknown - */ -extern SDLPRNDL const SDLPRNDLUnknown; - -/** - * Fault - */ -extern SDLPRNDL const SDLPRNDLFault; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPRNDL.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPRNDL.m deleted file mode 100644 index 77eed83..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPRNDL.m +++ /dev/null @@ -1,22 +0,0 @@ -// SDLPRNDL.m -// - - -#import "SDLPRNDL.h" - -SDLPRNDL const SDLPRNDLPark = @"PARK"; -SDLPRNDL const SDLPRNDLReverse = @"REVERSE"; -SDLPRNDL const SDLPRNDLNeutral = @"NEUTRAL"; -SDLPRNDL const SDLPRNDLDrive = @"DRIVE"; -SDLPRNDL const SDLPRNDLSport = @"SPORT"; -SDLPRNDL const SDLPRNDLLowGear = @"LOWGEAR"; -SDLPRNDL const SDLPRNDLFirst = @"FIRST"; -SDLPRNDL const SDLPRNDLSecond = @"SECOND"; -SDLPRNDL const SDLPRNDLThird = @"THIRD"; -SDLPRNDL const SDLPRNDLFourth = @"FOURTH"; -SDLPRNDL const SDLPRNDLFifth = @"FIFTH"; -SDLPRNDL const SDLPRNDLSixth = @"SIXTH"; -SDLPRNDL const SDLPRNDLSeventh = @"SEVENTH"; -SDLPRNDL const SDLPRNDLEighth = @"EIGHTH"; -SDLPRNDL const SDLPRNDLUnknown = @"UNKNOWN"; -SDLPRNDL const SDLPRNDLFault = @"FAULT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLParameterPermissions.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLParameterPermissions.h deleted file mode 100644 index 48d8b43..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLParameterPermissions.h +++ /dev/null @@ -1,31 +0,0 @@ -// SDLParameterPermissions.h -// - - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Defining sets of parameters, which are permitted or prohibited for a given RPC. - * - * @since SDL 2.0 - */ -@interface SDLParameterPermissions : SDLRPCStruct - -/** - * A set of all parameters that are permitted for this given RPC. - * - * Required, Array of String, max String length = 100, Array size 0 - 100 - */ -@property (strong, nonatomic) NSArray *allowed; -/** - * A set of all parameters that are prohibited for this given RPC. - * - * Required, Array of String, max String length = 100, Array size 0 - 100 - */ -@property (strong, nonatomic) NSArray *userDisallowed; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLParameterPermissions.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLParameterPermissions.m deleted file mode 100644 index 5b83f66..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLParameterPermissions.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLParameterPermissions.m -// - - -#import "SDLParameterPermissions.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLParameterPermissions - -- (void)setAllowed:(NSArray *)allowed { - [self.store sdl_setObject:allowed forName:SDLRPCParameterNameAllowed]; -} - -- (NSArray *)allowed { - NSError *error = nil; - return [self.store sdl_objectsForName:SDLRPCParameterNameAllowed ofClass:NSString.class error:&error]; -} - -- (void)setUserDisallowed:(NSArray *)userDisallowed { - [self.store sdl_setObject:userDisallowed forName:SDLRPCParameterNameUserDisallowed]; -} - -- (NSArray *)userDisallowed { - NSError *error = nil; - return [self.store sdl_objectsForName:SDLRPCParameterNameUserDisallowed ofClass:NSString.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.h deleted file mode 100644 index f85c663..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// SDLPerformAppServiceInteraction.h -// SmartDeviceLink -// -// Created by Nicole on 2/6/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * App service providers will likely have different actions exposed to the module and app service consumers. It will be difficult to standardize these actions by RPC versions and can easily become stale. Therefore, we introduce a best-effort attempt to take actions on a service. - * - * The `PerformAppServiceInteraction` request will be sent to the service that has the matching `appServiceId`. The `serviceUri` should be the fully qualified URI with all parameters that are necessary for the given action. The URI prefix and actions list will be contained in the app service provider's manifest. SDL takes no steps to validate an app service provider's action sheet JSON object. In the future, plug in libraries could be added to handle these sheets on a provider by provider basis. - * - * An app service consumer can also request for this service to become the active service of its respective type. If the app service consumer currently has an HMI state of HMI_FULL this request can be performed without user interaction. If the app is currently not in that state, the HMI should present the user with a choice to allow this app service provider to become the active service of its specified type. If the app service provider is not allowed to become active, the request will not be sent to it and an unsuccessful response will be sent to the requester. - * - * SDL should make no guarantees that: - * 1. App service providers offer URI prefix and URI Schema - * 2. App service providers will correctly respond to the requests - * 3. The requested app service provider will become the active service of that type - * 4. The `serviceUri` will be a correctly formatted URI from the app service consumer - */ -@interface SDLPerformAppServiceInteraction : SDLRPCRequest - -/** - * Convenience init for required parameters. - * - * @param serviceUri The service URI - * @param serviceID The app service ID - * @param originApp The origin app - * @return A SDLPerformAppServiceInteraction object - */ -- (instancetype)initWithServiceUri:(NSString *)serviceUri serviceID:(NSString *)serviceID originApp:(NSString *)originApp; - -/** - * Convenience init for all parameters. - * - * @param serviceUri The service URI - * @param serviceID The app service ID - * @param originApp The origin app - * @param requestServiceActive Whether or not the service is active - * @return A SDLPerformAppServiceInteraction object - */ -- (instancetype)initWithServiceUri:(NSString *)serviceUri serviceID:(NSString *)serviceID originApp:(NSString *)originApp requestServiceActive:(BOOL)requestServiceActive; - -/** - * Fully qualified URI based on a predetermined scheme provided by the app service. SDL makes no guarantee that this URI is correct. - * - * String, Required - */ -@property (strong, nonatomic) NSString *serviceUri; - -/** - * The service ID that the app consumer wishes to send this URI. - * - * String, Required - */ -@property (strong, nonatomic) NSString *serviceID; - -/** - * This string is the appID of the app requesting the app service provider take the specific action. - * - * String, Required - */ -@property (strong, nonatomic) NSString *originApp; - -/** - * This flag signals the requesting consumer would like this service to become the active primary service of the destination's type. - * - * Boolean, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *requestServiceActive; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.m deleted file mode 100644 index f401f7f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteraction.m +++ /dev/null @@ -1,89 +0,0 @@ -// -// SDLPerformAppServiceInteraction.m -// SmartDeviceLink -// -// Created by Nicole on 2/6/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLPerformAppServiceInteraction.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPerformAppServiceInteraction - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNamePerformAppServiceInteraction]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithServiceUri:(NSString *)serviceUri serviceID:(NSString *)serviceID originApp:(NSString *)originApp { - self = [self init]; - if (!self) { - return nil; - } - - self.serviceUri = serviceUri; - self.serviceID = serviceID; - self.originApp = originApp; - - return self; -} - -- (instancetype)initWithServiceUri:(NSString *)serviceUri serviceID:(NSString *)serviceID originApp:(NSString *)originApp requestServiceActive:(BOOL)requestServiceActive { - self = [self initWithServiceUri:serviceUri serviceID:serviceID originApp:originApp]; - if (!self) { - return nil; - } - - self.requestServiceActive = @(requestServiceActive); - - return self; -} - -- (void)setServiceUri:(NSString *)serviceUri { - [self.parameters sdl_setObject:serviceUri forName:SDLRPCParameterNameServiceUri]; -} - -- (NSString *)serviceUri { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceUri ofClass:NSString.class error:&error]; -} - -- (void)setServiceID:(NSString *)serviceID { - [self.parameters sdl_setObject:serviceID forName:SDLRPCParameterNameServiceID]; -} - -- (NSString *)serviceID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceID ofClass:NSString.class error:&error]; -} - -- (void)setOriginApp:(NSString *)originApp { - [self.parameters sdl_setObject:originApp forName:SDLRPCParameterNameOriginApp]; -} - -- (NSString *)originApp { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameOriginApp ofClass:NSString.class error:&error]; -} - -- (void)setRequestServiceActive:(nullable NSNumber *)requestServiceActive { - [self.parameters sdl_setObject:requestServiceActive forName:SDLRPCParameterNameRequestServiceActive]; -} - -- (nullable NSNumber *)requestServiceActive { - return [self.parameters sdl_objectForName:SDLRPCParameterNameRequestServiceActive ofClass:NSNumber.class error:nil]; -} -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h deleted file mode 100644 index 3b9c6ef..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// SDLPerformAppServiceInteractionResponse.h -// SmartDeviceLink -// -// Created by Nicole on 2/6/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - - -NS_ASSUME_NONNULL_BEGIN - -/** - * Response to the request to request an app service. - */ -@interface SDLPerformAppServiceInteractionResponse : SDLRPCResponse - -/** - * Convenience init for all parameters. - * - * @param serviceSpecificResult The service can provide specific result strings to the consumer through this param. - * @return A SDLPerformAppServiceInteractionResponse object - */ -- (instancetype)initWithServiceSpecificResult:(NSString *)serviceSpecificResult; - -/** - * The service can provide specific result strings to the consumer through this param. - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *serviceSpecificResult; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m deleted file mode 100644 index 35bd58b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m +++ /dev/null @@ -1,49 +0,0 @@ -// -// SDLPerformAppServiceInteractionResponse.m -// SmartDeviceLink -// -// Created by Nicole on 2/6/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLPerformAppServiceInteractionResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPerformAppServiceInteractionResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNamePerformAppServiceInteraction]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithServiceSpecificResult:(NSString *)serviceSpecificResult { - self = [self init]; - if (!self) { - return nil; - } - - self.serviceSpecificResult = serviceSpecificResult; - - return self; -} - -- (void)setServiceSpecificResult:(nullable NSString *)serviceSpecificResult { - [self.parameters sdl_setObject:serviceSpecificResult forName:SDLRPCParameterNameServiceSpecificResult]; -} - -- (nullable NSString *)serviceSpecificResult { - return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceSpecificResult ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.h deleted file mode 100644 index 26ca9a2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.h +++ /dev/null @@ -1,148 +0,0 @@ -// SDLPerformAudioPassThru.h -// - -#import "SDLRPCRequest.h" - -#import "SDLAudioType.h" -#import "SDLBitsPerSample.h" -#import "SDLNotificationConstants.h" -#import "SDLSamplingRate.h" - -@class SDLTTSChunk; - -/** - * This will open an audio pass thru session. By doing so the app can receive - * audio data through the vehicle microphone - *

      - * Function Group: AudioPassThru - *

      - * HMILevel needs to be FULL, LIMITED or BACKGROUND - *

      - * - *

      Since SmartDeviceLink 2.0

      - *

      See SDLEndAudioPassThru

      - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPerformAudioPassThru : SDLRPCRequest - -/// Convenience init to perform an audio pass thru -/// -/// @param samplingRate A samplingRate -/// @param bitsPerSample The quality the audio is recorded - 8 bit or 16 bit -/// @param audioType An audioType -/// @param maxDuration The maximum duration of audio recording in milliseconds -- (instancetype)initWithSamplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration; - -/// Convenience init to perform an audio pass thru -/// -/// @param initialPrompt Initial prompt which will be spoken before opening the audio pass thru session by SDL -/// @param audioPassThruDisplayText1 A line of text displayed during audio capture -/// @param audioPassThruDisplayText2 A line of text displayed during audio capture -/// @param samplingRate A samplingRate -/// @param bitsPerSample The quality the audio is recorded - 8 bit or 16 bit -/// @param audioType An audioType -/// @param maxDuration The maximum duration of audio recording in milliseconds -/// @param muteAudio A Boolean value representing if the current audio source should be muted during the APT session -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio; - -/// Convenience init to perform an audio pass thru -/// -/// @param samplingRate A samplingRate -/// @param bitsPerSample The quality the audio is recorded - 8 bit or 16 bit -/// @param audioType An audioType -/// @param maxDuration The maximum duration of audio recording in milliseconds -/// @param audioDataHandler A handler that will be called whenever an onAudioPassThru notification is received. -- (instancetype)initWithSamplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration audioDataHandler:(nullable SDLAudioPassThruHandler)audioDataHandler; - -/// Convenience init for a perform audio pass thru -/// -// @param initialPrompt Initial prompt which will be spoken before opening the audio pass thru session by SDL -/// @param audioPassThruDisplayText1 A line of text displayed during audio capture -/// @param audioPassThruDisplayText2 A line of text displayed during audio capture -/// @param samplingRate A samplingRate -/// @param bitsPerSample The quality the audio is recorded - 8 bit or 16 bit -/// @param audioType An audioType -/// @param maxDuration The maximum duration of audio recording in milliseconds -/// @param muteAudio A Boolean value representing if the current audio source should be muted during the APT session -/// @param audioDataHandler A handler that will be called whenever an onAudioPassThru notification is received. -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio audioDataHandler:(nullable SDLAudioPassThruHandler)audioDataHandler; - -/** - * initial prompt which will be spoken before opening the audio pass - * thru session by SDL - * @discussion initialPrompt - * a Vector value represents the initial prompt which - * will be spoken before opening the audio pass thru session by - * SDL - *

      - * Notes: - *

        - *
      • This is an array of text chunks of type TTSChunk
      • - *
      • The array must have at least one item
      • - *
      • If omitted, then no initial prompt is spoken
      • - *
      • Array Minsize: 1
      • - *
      • Array Maxsize: 100
      • - *
      - */ -@property (nullable, strong, nonatomic) NSArray *initialPrompt; -/** - * a line of text displayed during audio capture - * @discussion audioPassThruDisplayText1 - * a String value representing the line of text displayed during - * audio capture - *

      - * Notes: Maxlength=500 - */ -@property (nullable, strong, nonatomic) NSString *audioPassThruDisplayText1; -/** - * A line of text displayed during audio capture - * @discussion audioPassThruDisplayText2 - * a String value representing the line of text displayed during - * audio capture - *

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

      - * Notes: Minvalue:1; Maxvalue:1000000 - */ -@property (strong, nonatomic) NSNumber *maxDuration; -/** - * the quality the audio is recorded - 8 bit or 16 bit - * - * @discussion a BitsPerSample value representing 8 bit or 16 bit - */ -@property (strong, nonatomic) SDLBitsPerSample bitsPerSample; -/** - * an audioType - */ -@property (strong, nonatomic) SDLAudioType audioType; -/** - * a Boolean value representing if the current audio source should be - * muted during the APT session
      - */ -@property (nullable, strong, nonatomic) NSNumber *muteAudio; - -/** - * A handler that will be called whenever an `onAudioPassThru` notification is received. - */ -@property (strong, nonatomic, nullable) SDLAudioPassThruHandler audioDataHandler; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.m deleted file mode 100644 index 6bcea8f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThru.m +++ /dev/null @@ -1,133 +0,0 @@ -// SDLPerformAudioPassThru.m -// - - -#import "SDLPerformAudioPassThru.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLTTSChunk.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPerformAudioPassThru - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNamePerformAudioPassThru]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio { - return [self initWithInitialPrompt:initialPrompt audioPassThruDisplayText1:audioPassThruDisplayText1 audioPassThruDisplayText2:audioPassThruDisplayText2 samplingRate:samplingRate bitsPerSample:bitsPerSample audioType:audioType maxDuration:maxDuration muteAudio:muteAudio audioDataHandler:nil]; -} - -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio audioDataHandler:(nullable SDLAudioPassThruHandler)audioDataHandler { - self = [self initWithSamplingRate:samplingRate bitsPerSample:bitsPerSample audioType:audioType maxDuration:maxDuration audioDataHandler:audioDataHandler]; - if (!self) { - return nil; - } - - self.initialPrompt = [SDLTTSChunk textChunksFromString:initialPrompt]; - self.audioPassThruDisplayText1 = audioPassThruDisplayText1; - self.audioPassThruDisplayText2 = audioPassThruDisplayText2; - self.muteAudio = @(muteAudio); - - return self; -} - -- (instancetype)initWithSamplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration { - return [self initWithSamplingRate:samplingRate bitsPerSample:bitsPerSample audioType:audioType maxDuration:maxDuration audioDataHandler:nil]; -} - -- (instancetype)initWithSamplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration audioDataHandler:(nullable SDLAudioPassThruHandler)audioDataHandler { - self = [self init]; - if (!self) { - return nil; - } - - self.samplingRate = samplingRate; - self.bitsPerSample = bitsPerSample; - self.audioType = audioType; - self.maxDuration = @(maxDuration); - self.audioDataHandler = audioDataHandler; - - return self; -} - - -- (void)setInitialPrompt:(nullable NSArray *)initialPrompt { - [self.parameters sdl_setObject:initialPrompt forName:SDLRPCParameterNameInitialPrompt]; -} - -- (nullable NSArray *)initialPrompt { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameInitialPrompt ofClass:SDLTTSChunk.class error:nil]; -} - -- (void)setAudioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 { - [self.parameters sdl_setObject:audioPassThruDisplayText1 forName:SDLRPCParameterNameAudioPassThruDisplayText1]; -} - -- (nullable NSString *)audioPassThruDisplayText1 { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAudioPassThruDisplayText1 ofClass:NSString.class error:nil]; -} - -- (void)setAudioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 { - [self.parameters sdl_setObject:audioPassThruDisplayText2 forName:SDLRPCParameterNameAudioPassThruDisplayText2]; -} - -- (nullable NSString *)audioPassThruDisplayText2 { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAudioPassThruDisplayText2 ofClass:NSString.class error:nil]; -} - -- (void)setSamplingRate:(SDLSamplingRate)samplingRate { - [self.parameters sdl_setObject:samplingRate forName:SDLRPCParameterNameSamplingRate]; -} - -- (SDLSamplingRate)samplingRate { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameSamplingRate error:&error]; -} - -- (void)setMaxDuration:(NSNumber *)maxDuration { - [self.parameters sdl_setObject:maxDuration forName:SDLRPCParameterNameMaxDuration]; -} - -- (NSNumber *)maxDuration { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameMaxDuration ofClass:NSNumber.class error:&error]; -} - -- (void)setBitsPerSample:(SDLBitsPerSample)bitsPerSample { - [self.parameters sdl_setObject:bitsPerSample forName:SDLRPCParameterNameBitsPerSample]; -} - -- (SDLBitsPerSample)bitsPerSample { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameBitsPerSample error:&error]; -} - -- (void)setAudioType:(SDLAudioType)audioType { - [self.parameters sdl_setObject:audioType forName:SDLRPCParameterNameAudioType]; -} - -- (SDLAudioType)audioType { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameAudioType error:&error]; -} - -- (void)setMuteAudio:(nullable NSNumber *)muteAudio { - [self.parameters sdl_setObject:muteAudio forName:SDLRPCParameterNameMuteAudio]; -} - -- (nullable NSNumber *)muteAudio { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMuteAudio ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThruResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThruResponse.h deleted file mode 100644 index 7f7b211..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThruResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLPerformAudioPassThruResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to SDLPerformAudioPassThru - - Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPerformAudioPassThruResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThruResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThruResponse.m deleted file mode 100644 index a33310b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformAudioPassThruResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLPerformAudioPassThruResponse.m -// - - -#import "SDLPerformAudioPassThruResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPerformAudioPassThruResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNamePerformAudioPassThru]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.h deleted file mode 100644 index bc035ce..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.h +++ /dev/null @@ -1,251 +0,0 @@ -// SDLPerformInteraction.h -// - -#import "SDLRPCRequest.h" - -#import "SDLInteractionMode.h" -#import "SDLLayoutMode.h" - -@class SDLTTSChunk; -@class SDLVRHelpItem; - -NS_ASSUME_NONNULL_BEGIN - -/** - Performs an application-initiated interaction in which the user can select a choice from the passed choice set. - - There are several ways to present a choice set: as visual pop-up menu (with an optional keyboard that allows for searches), as voice-recognition (VR) only menu, or as both a VR and visual menu. It is also possible to present only the keyboard for doing searches. - - A choice set can have up to 100 items, however if you are presenting a visual only menu please be aware that the OEM may choose to limit the number of presented choices when the driver is distracted (i.e. the car is moving). - - A VR-only menu could be used to ask a user to say the name of a song to play. The user's response would only be valid if it appears in the specified choice set. - A visual popup-menu could be used to present a list of albums to the user. The user would select the album they want to play from the list of presented choices. - A keyboard can be used for searches. For example, the user could be asked to enter the name of a restaurant. The name can be used to search for local restaurants with the same name. When the search is completed another menu can be presented with a list of potential addresses for the destination. - - If connecting to SDL Core v.6.0+, the perform interaction can be canceled programmatically using the `cancelID`. On older versions of SDL Core, the perform interaction will persist until the user has interacted with the perform interaction or the specified timeout has elapsed. - - @see SDLCreateInteractionChoiceSet, SDLDeleteInteractionChoiceSet - - @since SDL 1.0 - */ -@interface SDLPerformInteraction : SDLRPCRequest - -/** - Convenience init for creating a basic display or voice-recognition menu. - - @param initialText Text to be displayed first - @param interactionMode Indicates the method in which the user is notified and uses the interaction - @param interactionChoiceSetIDList List of interaction choice set IDs to use with an interaction - @param cancelID An ID for this specific perform interaction to allow cancellation through the `CancelInteraction` RPC - @return An SDLPerformInteraction object - */ -- (instancetype)initWithInitialText:(NSString *)initialText interactionMode:(SDLInteractionMode)interactionMode interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList cancelID:(UInt32)cancelID; - -/** - Convenience init for setting all parameters of a display or voice-recognition menu. - - @param initialText Text to be displayed first - @param initialPrompt The initial prompt spoken to the user at the start of an interaction - @param interactionMode The method in which the user is notified and uses the interaction (voice, visual or both) - @param interactionChoiceSetIDList List of interaction choice set IDs to use with an interaction - @param helpPrompt The spoken text when a user speaks "help" when the interaction is occurring - @param timeoutPrompt The text spoken when a VR interaction times out - @param timeout Timeout in milliseconds - @param vrHelp Suggested voice recognition help items to display on-screen during a perform interaction - @param interactionLayout For touchscreen interactions, the mode of how the choices are presented - @param cancelID An ID for this specific perform interaction to allow cancellation through the `CancelInteraction` RPC. - @return An SDLPerformInteraction object - */ -- (instancetype)initWithInitialText:(NSString *)initialText initialPrompt:(nullable NSArray *)initialPrompt interactionMode:(SDLInteractionMode)interactionMode interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSArray *)helpPrompt timeoutPrompt:(nullable NSArray *)timeoutPrompt timeout:(UInt16)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)interactionLayout cancelID:(UInt32)cancelID; - -/** - Convenience init for setting the a single visual or voice-recognition menu choice. - - @param interactionChoiceSetId Single interaction choice set ID to use with an interaction - @return An SDLPerformInteraction object - */ -- (instancetype)initWithInteractionChoiceSetId:(UInt16)interactionChoiceSetId __deprecated_msg("Use initWithInitialText:interactionMode:interactionChoiceSetIDList:cancelID: instead"); - -/** - Convenience init for setting the a visual or voice-recognition menu choices. - - @param interactionChoiceSetIdList List of interaction choice set IDs to use with an interaction - @return An SDLPerformInteraction object - */ -- (instancetype)initWithInteractionChoiceSetIdList:(NSArray *> *)interactionChoiceSetIdList __deprecated_msg("Use initWithInitialText:interactionMode:interactionChoiceSetIDList:cancelID: instead"); - -/** - Convenience init for creating a visual or voice-recognition menu with one choice. - - @param initialPrompt The initial prompt spoken to the user at the start of an interaction - @param initialText Text to be displayed first - @param interactionChoiceSetID Single interaction choice set ID to use with an interaction - @return An SDLPerformInteraction object - */ -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID __deprecated_msg("Use initWithInitialText:interactionMode:interactionChoiceSetIDList:cancelID: instead"); - -/** - Convenience init for creating a visual or voice-recognition menu with one choice and VR help items. - - @param initialPrompt The initial prompt spoken to the user at the start of an interaction - @param initialText Text to be displayed first - @param interactionChoiceSetID Single interaction choice set ID to use with an interaction - @param vrHelp Suggested voice recognition help items to display on-screen during a perform interaction - @return An SDLPerformInteraction object - */ -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID vrHelp:(nullable NSArray *)vrHelp __deprecated_msg("Use initWithInitialText:initialPrompt:interactionMode:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:timeout:vrHelp:interactionLayout:cancelID: instead"); - -/** - Convenience init for creating a visual or voice-recognition menu using the default display layout and VR help items. Prompts are created from the passed strings. - - @param initialText Text to be displayed first - @param initialPrompt The initial prompt spoken to the user at the start of an interaction - @param interactionMode The method in which the user is notified and uses the interaction (voice, visual or both) - @param interactionChoiceSetIDList List of interaction choice set IDs to use with an interaction - @param helpPrompt The spoken text when a user speaks "help" when the interaction is occurring - @param timeoutPrompt The text spoken when a VR interaction times out - @param timeout Timeout in milliseconds - @return An SDLPerformInteraction object - */ -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout __deprecated_msg("Use initWithInitialText:initialPrompt:interactionMode:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:timeout:vrHelp:interactionLayout:cancelID: instead"); - -/** - Convenience init for creating a visual or voice-recognition menu using the default display layout. Prompts are created from the passed strings. - - @param initialText Text to be displayed first - @param initialPrompt The initial prompt spoken to the user at the start of an interaction - @param interactionMode The method in which the user is notified and uses the interaction (voice, visual or both) - @param interactionChoiceSetIDList List of interaction choice set IDs to use with an interaction - @param helpPrompt The spoken text when a user speaks "help" when the interaction is occurring - @param timeoutPrompt The text spoken when a VR interaction times out - @param timeout Timeout in milliseconds - @param vrHelp Suggested voice recognition help items to display on-screen during a perform interaction - @return An SDLPerformInteraction object - */ -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp __deprecated_msg("Use initWithInitialText:initialPrompt:interactionMode:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:timeout:vrHelp:interactionLayout:cancelID: instead"); - -/** - Convenience init for creating a visual or voice-recognition menu using the default display layout. - - @param initialText Text to be displayed first - @param initialChunks The initial prompt spoken to the user at the start of an interaction - @param interactionMode The method in which the user is notified and uses the interaction (voice, visual or both) - @param interactionChoiceSetIDList List of interaction choice set IDs to use with an interaction - @param helpChunks The spoken text when a user speaks "help" when the interaction is occurring - @param timeoutChunks The text spoken when a VR interaction times out - @param timeout Timeout in milliseconds - @param vrHelp Suggested voice recognition help items to display on-screen during a perform interaction - @return An SDLPerformInteraction object - */ -- (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp __deprecated_msg("Use initWithInitialText:initialPrompt:interactionMode:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:timeout:vrHelp:interactionLayout:cancelID: instead"); - -/** - Convenience init for setting all parameters of a visual or voice-recognition menu. - - @param initialText Text to be displayed first - @param initialChunks The initial prompt spoken to the user at the start of an interaction - @param interactionMode The method in which the user is notified and uses the interaction (voice, visual or both) - @param interactionChoiceSetIDList List of interaction choice set IDs to use with an interaction - @param helpChunks The spoken text when a user speaks "help" when the interaction is occurring - @param timeoutChunks The text spoken when a VR interaction times out - @param timeout Timeout in milliseconds - @param vrHelp Suggested voice recognition help items to display on-screen during a perform interaction - @param layout For touchscreen interactions, the mode of how the choices are presented - @return An SDLPerformInteraction object - */ -- (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)layout __deprecated_msg("Use initWithInitialText:initialPrompt:interactionMode:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:timeout:vrHelp:interactionLayout:cancelID: instead"); - -/** - Text to be displayed first. - - String, Required - - @since SDL 1.0 - */ -@property (strong, nonatomic) NSString *initialText; - -/** - This is the TTS prompt spoken to the user at the start of an interaction. - - Array of SDLTTSChunk, Optional, Array size: 1-100 - - @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSArray *initialPrompt; - -/** - For application-requested interactions, this mode indicates the method in which the user is notified and uses the interaction. Users can choose either only by voice (VR_ONLY), by tactile selection from the menu (MANUAL_ONLY), or by either mode (BOTH). - - SDLInteractionMode, Required - - @since SDL 1.0 - */ -@property (strong, nonatomic) SDLInteractionMode interactionMode; - -/** - List of interaction choice set IDs to use with an interaction. - - Array of Integers, Required, Array size: 0-100, Min value: 0, Max value: 2000000000 - - @since SDL 1.0 - */ -@property (strong, nonatomic) NSArray *interactionChoiceSetIDList; - -/** - Help text. This is the spoken text when a user speaks "help" while the interaction is occurring. - - SDLTTSChunk, Optional - - @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSArray *helpPrompt; - -/** - Timeout text. This text is spoken when a VR interaction times out. - - Array of SDLTTSChunk, Optional, Array size: 1-100 - - @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSArray *timeoutPrompt; - -/** - Timeout in milliseconds. Applies only to the menu portion of the interaction. The VR timeout will be handled by the platform. If omitted a standard value of 10 seconds is used. - - Integer, Optional, Min value: 5000, Max value: 100,000 - - @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSNumber *timeout; - -/** - Suggested voice recognition help items to display on-screen during a perform interaction. If omitted on supported displays, the default generated list of suggested choices shall be displayed. - - SDLVRHelpItem, Optional - - @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) NSArray *vrHelp; - -/** - For tactile interaction modes (MANUAL_ONLY, or BOTH), the layout mode of how the choices are presented. - - SDLLayoutMode, Optional - - @since SDL 3.0 - */ -@property (nullable, strong, nonatomic) SDLLayoutMode interactionLayout; - -/** - An ID for this specific perform interaction to allow cancellation through the `CancelInteraction` RPC. - - Integer, Optional - - @see SDLCancelInteraction - @since SDL 6.0 - */ -@property (nullable, strong, nonatomic) NSNumber *cancelID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.m deleted file mode 100644 index 5407885..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteraction.m +++ /dev/null @@ -1,197 +0,0 @@ -// SDLPerformInteraction.m -// - - -#import "SDLPerformInteraction.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLTTSChunk.h" -#import "SDLVrHelpItem.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPerformInteraction - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNamePerformInteraction]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithInitialDisplayText:(NSString *)initialText initialPrompt:(nullable NSArray *)initialPrompt interactionMode:(SDLInteractionMode)interactionMode interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSArray *)helpPrompt timeoutPrompt:(nullable NSArray *)timeoutPrompt timeout:(nullable NSNumber *)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)interactionLayout cancelID:(nullable NSNumber *)cancelID { - self = [self init]; - if (!self) { - return nil; - } - - self.initialText = initialText; - self.initialPrompt = initialPrompt; - self.interactionMode = interactionMode; - self.interactionChoiceSetIDList = interactionChoiceSetIDList; - self.helpPrompt = helpPrompt; - self.timeoutPrompt = timeoutPrompt; - self.timeout = timeout; - self.vrHelp = vrHelp; - self.interactionLayout = interactionLayout; - self.cancelID = cancelID; - - return self; -} - -- (instancetype)initWithInitialText:(NSString *)initialText interactionMode:(SDLInteractionMode)interactionMode interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList cancelID:(UInt32)cancelID { - return [self initWithInitialDisplayText:initialText initialPrompt:nil interactionMode:interactionMode interactionChoiceSetIDList:interactionChoiceSetIDList helpPrompt:nil timeoutPrompt:nil timeout:nil vrHelp:nil interactionLayout:nil cancelID:@(cancelID)]; -} - -- (instancetype)initWithInitialText:(NSString *)initialText initialPrompt:(nullable NSArray *)initialPrompt interactionMode:(SDLInteractionMode)interactionMode interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSArray *)helpPrompt timeoutPrompt:(nullable NSArray *)timeoutPrompt timeout:(UInt16)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)interactionLayout cancelID:(UInt32)cancelID { - return [self initWithInitialDisplayText:initialText initialPrompt:initialPrompt interactionMode:interactionMode interactionChoiceSetIDList:interactionChoiceSetIDList helpPrompt:helpPrompt timeoutPrompt:timeoutPrompt timeout:@(timeout) vrHelp:vrHelp interactionLayout:interactionLayout cancelID:@(cancelID)]; -} - - -- (instancetype)initWithInteractionChoiceSetId:(UInt16)interactionChoiceSetId { - return [self initWithInteractionChoiceSetIdList:@[@(interactionChoiceSetId)]]; -} - -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID { - self = [self initWithInteractionChoiceSetId:interactionChoiceSetID]; - if (!self) { - return nil; - } - - self.initialPrompt = [SDLTTSChunk textChunksFromString:initialPrompt]; - self.initialText = initialText; - - return self; -} - -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID vrHelp:(nullable NSArray *)vrHelp { - self = [self initWithInitialPrompt:initialPrompt initialText:initialText interactionChoiceSetID:interactionChoiceSetID]; - if (!self) { - return nil; - } - - self.vrHelp = vrHelp; - - return self; -} - -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout { - return [self initWithInitialPrompt:initialPrompt initialText:initialText interactionChoiceSetIDList:interactionChoiceSetIDList helpPrompt:helpPrompt timeoutPrompt:timeoutPrompt interactionMode:interactionMode timeout:timeout vrHelp:nil]; -} - -- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp { - NSArray *initialChunks = [SDLTTSChunk textChunksFromString:initialPrompt]; - NSArray *helpChunks = [SDLTTSChunk textChunksFromString:helpPrompt]; - NSArray *timeoutChunks = [SDLTTSChunk textChunksFromString:timeoutPrompt]; - return [self initWithInitialChunks:initialChunks initialText:initialText interactionChoiceSetIDList:interactionChoiceSetIDList helpChunks:helpChunks timeoutChunks:timeoutChunks interactionMode:interactionMode timeout:timeout vrHelp:vrHelp]; -} - -- (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp { - return [self initWithInitialChunks:initialChunks initialText:initialText interactionChoiceSetIDList:interactionChoiceSetIDList helpChunks:helpChunks timeoutChunks:timeoutChunks interactionMode:interactionMode timeout:timeout vrHelp:vrHelp interactionLayout:nil]; -} - -- (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)layout { - return [self initWithInitialDisplayText:initialText initialPrompt:initialChunks interactionMode:interactionMode interactionChoiceSetIDList:interactionChoiceSetIDList helpPrompt:helpChunks timeoutPrompt:timeoutChunks timeout:@(timeout) vrHelp:vrHelp interactionLayout:layout cancelID:nil]; -} - -- (instancetype)initWithInteractionChoiceSetIdList:(NSArray *> *)interactionChoiceSetIdList { - self = [self init]; - if (!self) { - return nil; - } - - self.interactionChoiceSetIDList = interactionChoiceSetIdList; - - return self; -} - -- (void)setInitialText:(NSString *)initialText { - [self.parameters sdl_setObject:initialText forName:SDLRPCParameterNameInitialText]; -} - -- (NSString *)initialText { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameInitialText ofClass:NSString.class error:&error]; -} - -- (void)setInitialPrompt:(nullable NSArray *)initialPrompt { - [self.parameters sdl_setObject:initialPrompt forName:SDLRPCParameterNameInitialPrompt]; -} - -- (nullable NSArray *)initialPrompt { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameInitialPrompt ofClass:SDLTTSChunk.class error:nil]; -} - -- (void)setInteractionMode:(SDLInteractionMode)interactionMode { - [self.parameters sdl_setObject:interactionMode forName:SDLRPCParameterNameInteractionMode]; -} - -- (SDLInteractionMode)interactionMode { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameInteractionMode error:&error]; -} - -- (void)setInteractionChoiceSetIDList:(NSArray *)interactionChoiceSetIDList { - [self.parameters sdl_setObject:interactionChoiceSetIDList forName:SDLRPCParameterNameInteractionChoiceSetIdList]; -} - -- (NSArray *)interactionChoiceSetIDList { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameInteractionChoiceSetIdList ofClass:NSNumber.class error:&error]; -} - -- (void)setHelpPrompt:(nullable NSArray *)helpPrompt { - [self.parameters sdl_setObject:helpPrompt forName:SDLRPCParameterNameHelpPrompt]; -} - -- (nullable NSArray *)helpPrompt { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameHelpPrompt ofClass:SDLTTSChunk.class error:nil]; -} - -- (void)setTimeoutPrompt:(nullable NSArray *)timeoutPrompt { - [self.parameters sdl_setObject:timeoutPrompt forName:SDLRPCParameterNameTimeoutPrompt]; -} - -- (nullable NSArray *)timeoutPrompt { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameTimeoutPrompt ofClass:SDLTTSChunk.class error:nil]; -} - -- (void)setTimeout:(nullable NSNumber *)timeout { - [self.parameters sdl_setObject:timeout forName:SDLRPCParameterNameTimeout]; -} - -- (nullable NSNumber *)timeout { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeout ofClass:NSNumber.class error:nil]; -} - -- (void)setVrHelp:(nullable NSArray *)vrHelp { - [self.parameters sdl_setObject:vrHelp forName:SDLRPCParameterNameVRHelp]; -} - -- (nullable NSArray *)vrHelp { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameVRHelp ofClass:SDLVRHelpItem.class error:nil]; -} - -- (void)setInteractionLayout:(nullable SDLLayoutMode)interactionLayout { - [self.parameters sdl_setObject:interactionLayout forName:SDLRPCParameterNameInteractionLayout]; -} - -- (nullable SDLLayoutMode)interactionLayout { - return [self.parameters sdl_enumForName:SDLRPCParameterNameInteractionLayout error:nil]; -} - -- (void)setCancelID:(nullable NSNumber *)cancelID { - [self.parameters sdl_setObject:cancelID forName:SDLRPCParameterNameCancelID]; -} - -- (nullable NSNumber *)cancelID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCancelID ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteractionResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteractionResponse.h deleted file mode 100644 index 74b89d5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteractionResponse.h +++ /dev/null @@ -1,41 +0,0 @@ -// SDLPerformInteractionResponse.h -// - - -#import "SDLRPCResponse.h" - -#import "SDLTriggerSource.h" - -/** - PerformInteraction Response is sent, when SDLPerformInteraction has been called - - @since SDL 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPerformInteractionResponse : SDLRPCResponse - -/** - ID of the choice that was selected in response to PerformInteraction. Only is valid if general result is "success:true". - - Optional, Integer, 0 - 2,000,000,000 - */ -@property (nullable, strong, nonatomic) NSNumber *choiceID; - -/** - Manually entered text selection, e.g. through keyboard. Can be returned in lieu of choiceID, depending on the trigger source. - - Optional, Max length 500 chars - */ -@property (nullable, strong, nonatomic) NSString *manualTextEntry; - -/** - A *SDLTriggerSource* object which will be shown in the HMI. Only is valid if resultCode is SUCCESS. - */ -@property (nullable, strong, nonatomic) SDLTriggerSource triggerSource; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteractionResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteractionResponse.m deleted file mode 100644 index fc97230..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPerformInteractionResponse.m +++ /dev/null @@ -1,50 +0,0 @@ -// SDLPerformInteractionResponse.m -// - - -#import "SDLPerformInteractionResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPerformInteractionResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNamePerformInteraction]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setChoiceID:(nullable NSNumber *)choiceID { - [self.parameters sdl_setObject:choiceID forName:SDLRPCParameterNameChoiceId]; -} - -- (nullable NSNumber *)choiceID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameChoiceId ofClass:NSNumber.class error:nil]; -} - -- (void)setManualTextEntry:(nullable NSString *)manualTextEntry { - [self.parameters sdl_setObject:manualTextEntry forName:SDLRPCParameterNameManualTextEntry]; -} - -- (nullable NSString *)manualTextEntry { - return [self.parameters sdl_objectForName:SDLRPCParameterNameManualTextEntry ofClass:NSString.class error:nil]; -} - -- (void)setTriggerSource:(nullable SDLTriggerSource)triggerSource { - [self.parameters sdl_setObject:triggerSource forName:SDLRPCParameterNameTriggerSource]; -} - -- (nullable SDLTriggerSource)triggerSource { - return [self.parameters sdl_enumForName:SDLRPCParameterNameTriggerSource error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionConstants.h deleted file mode 100644 index 2cd9bbc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionConstants.h +++ /dev/null @@ -1,80 +0,0 @@ -// -// SDLPermissionsConstants.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 11/18/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -#import "NSNumber+NumberType.h" -#import "SDLRPCFunctionNames.h" -#import "SDLPermissionElement.h" -#import "SDLRPCPermissionStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -/// NSString typedef -/// -/// SDLPermissionRPCName: The name of the permission -typedef NSString *SDLPermissionRPCName; - -/// NSUUID typedef -/// -/// SDLPermissionObserverIdentifier: A unique identifier -typedef NSUUID *SDLPermissionObserverIdentifier; - -/** - * A permission group type which will be used to tell the system what type of changes you want to be notified about for the group. - */ -typedef NS_ENUM(NSUInteger, SDLPermissionGroupType) { - /** - * Be notified when all of the RPC in the group are allowed, or, when they all stop being allowed in some sense, that is, when they were all allowed, and now they are not. - */ - SDLPermissionGroupTypeAllAllowed, - /** - * Be notified when any change in availability occurs among the group. - */ - SDLPermissionGroupTypeAny -}; - -/** - * The status of the group of RPCs permissions. - */ -typedef NS_ENUM(NSUInteger, SDLPermissionGroupStatus) { - /** - * Every RPC in the group is currently allowed. - */ - SDLPermissionGroupStatusAllowed, - /** - * Every RPC in the group is currently disallowed. - */ - SDLPermissionGroupStatusDisallowed, - /** - * Some RPCs in the group are allowed and some disallowed. - */ - SDLPermissionGroupStatusMixed, - /** - * The current status of the group is unknown. - */ - SDLPermissionGroupStatusUnknown -}; - -/** - * This is a block that is passed in to some methods that will be stored and called when specified permissions change. - * - * @param change A dictionary of permission changes containing - * @param status The unified group status of the RPCs in the change dictionary. Allowed, if all RPCs are now allowed, Disallowed if all RPCs are now disallowed, or Mixed if some are allowed, and some are disallowed - */ -typedef void (^SDLPermissionsChangedHandler)(NSDictionary *_Nonnull change, SDLPermissionGroupStatus status); - -/** - * A block that will be called when specified permissions change. It will return whether each RPC and its parameters are allowed as well as the permission group status of all the RPCs. - * - * @param change A dictionary of permission changes containing - * @param status The change made to all of the RPCs in the change dictionary. Allowed, if all RPCs are now allowed, Disallowed if all RPCs are now disallowed, or Mixed if some are allowed, and some are disallowed - */ -typedef void (^SDLRPCPermissionStatusChangedHandler)(NSDictionary *_Nonnull change, SDLPermissionGroupStatus status); - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.h deleted file mode 100644 index 9400623..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// SDLPermissionElement.h -// SmartDeviceLink -// -// Created by James Lapinski on 6/21/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLParameterPermissions.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPermissionElement : NSObject - -/** - * Name of the individual RPC. - * Required - */ -@property (strong, nonatomic) SDLRPCFunctionName rpcName; - -/** - * RPC parameters for the individual RPC - */ -@property (strong, nonatomic, nullable) NSArray *parameterPermissions; - -/** - * Creates a new permission element. - * - * @param rpcName The name of the RPC. - * @param parameterPermissions An array parameters for the RPC that should be checked if they are allowed. Note that not all head units may provide this data. If no parameter data is received, we assume that the parameter is not allowed. - * - * @return An instance of `SDLPermissionElement`. - */ -- (instancetype)initWithRPCName:(SDLRPCFunctionName)rpcName parameterPermissions:(nullable NSArray *)parameterPermissions; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.m deleted file mode 100644 index ea2aa6e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionElement.m +++ /dev/null @@ -1,41 +0,0 @@ -// -// SDLPermissionElement.m -// SmartDeviceLink -// -// Created by James Lapinski on 6/21/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLPermissionElement.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPermissionElement - -- (instancetype)initWithRPCName:(SDLRPCFunctionName)rpcName parameterPermissions:(nullable NSArray *)parameterPermissions { - self = [super init]; - if (!self) { return nil; } - - self.rpcName = rpcName; - self.parameterPermissions = parameterPermissions; - - return self; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(nullable NSZone *)zone { - SDLPermissionElement *newElement = [[self.class allocWithZone:zone] initWithRPCName:[_rpcName copyWithZone:zone] parameterPermissions:[_parameterPermissions copyWithZone:zone]]; - - return newElement; -} - -#pragma mark - Description - -- (NSString *)description { - return [NSString stringWithFormat:@"RPC name: %@, parameter permissions: %@", self.rpcName, self.parameterPermissions]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.h deleted file mode 100644 index e733d23..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.h +++ /dev/null @@ -1,89 +0,0 @@ -// -// SDLPermissionFilter.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 11/18/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLPermissionConstants.h" -#import "SDLPermissionElement.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPermissionFilter : NSObject - -/** - * An identifier for the permission filter to allow it to be removed at a later time. - */ -@property (copy, nonatomic, readonly) SDLPermissionObserverIdentifier identifier; - -/** - * The type of this filter group. - */ -@property (assign, nonatomic, readonly) SDLPermissionGroupType groupType; - -/** - * The block that will be called on status changes to this filter group. - */ -@property (copy, nonatomic, readonly) SDLPermissionsChangedHandler handler; - -/** - * The block that will be called on status changes to RPC permission status objects - */ -@property (copy, nonatomic, readonly) SDLRPCPermissionStatusChangedHandler rpcPermissionStatusHandler; - -/** - * All of the permission elements in this filter group. - */ -@property (copy, nonatomic, readonly) NSArray *permissionElements; - -/// Initializer unavailable -- (instancetype)init NS_UNAVAILABLE; - -/** - * Create a new permission filter group with a SDLPermissionsChangedHandler. - * - * @param rpcNames The names of the RPCs to watch permissions of. - * @param groupType The type of notifications to be sent for this filter group. - * @param handler The block observer to be called when changes occur. - * - * @return An instance of `SDLPermissionFilter`. - */ -- (instancetype)initWithPermissions:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType permissionsHandler:(SDLPermissionsChangedHandler)handler; - -/** - * Create a new permission filter group with a SDLRPCPermissionStatusChangedHandler. - * - * @param rpcNames The names of the RPCs to watch permissions of. - * @param groupType The type of notifications to be sent for this filter group. - * @param permissionStatusHandler The block observer to be called when changes occur. - * - * @return An instance of `SDLPermissionFilter`. - */ -- (instancetype)initWithPermissions:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType permissionStatusHandler:(SDLRPCPermissionStatusChangedHandler)permissionStatusHandler; - -/** - * Whether the current filter is equivalent with another filter or not. - * - * @param otherFilter The other filter to test equivalence with. - * - * @return YES if this filter is equivalent with `otherFilter`, NO otherwise. - */ -- (BOOL)isEqualToFilter:(SDLPermissionFilter *)otherFilter; - -/** - * Converts an array of SDLPermissionElement objects to an array of SDLPermissionRPCName objects - * - * @param permissionElements The permission elements to convert. - * - * @return An array of SDLPermissionRPCName objects - */ -- (NSArray *)rpcNamesFromPermissionElements:(NSArray *)permissionElements; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.m deleted file mode 100644 index c2ed47a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionFilter.m +++ /dev/null @@ -1,94 +0,0 @@ -// -// SDLPermissionFilter.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 11/18/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "SDLPermissionFilter.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPermissionFilter - -#pragma mark - Lifecycle - -- (instancetype)initWithPermissions:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType permissionsHandler:(SDLPermissionsChangedHandler)observer { - self = [super init]; - if (!self) { - return nil; - } - - _identifier = [NSUUID UUID]; - _permissionElements = rpcNames; - _groupType = groupType; - _handler = observer; - - return self; -} - -- (instancetype)initWithPermissions:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType permissionStatusHandler:(SDLRPCPermissionStatusChangedHandler)permissionStatusHandler { - self = [super init]; - if (!self) { return nil; } - - _identifier = [NSUUID UUID]; - _permissionElements = rpcNames; - _groupType = groupType; - _rpcPermissionStatusHandler = permissionStatusHandler; - - return self; -} - -#pragma mark - Helpers - -- (NSArray *)rpcNamesFromPermissionElements:(NSArray *)permissionElements { - NSMutableArray *rpcNames = [[NSMutableArray alloc] init]; - for (SDLPermissionElement *element in permissionElements) { - [rpcNames addObject:element.rpcName]; - } - - return [rpcNames copy]; -} - - -#pragma mark - NSCopying - -- (id)copyWithZone:(nullable NSZone *)zone { - SDLPermissionFilter *newFilter = [[self.class allocWithZone:zone] initWithPermissions:[_permissionElements copyWithZone:zone] groupType:_groupType permissionsHandler:[_handler copyWithZone:zone]]; - newFilter->_identifier = _identifier; - newFilter->_rpcPermissionStatusHandler = _rpcPermissionStatusHandler; - - return newFilter; -} - - -#pragma mark - Equality - -- (BOOL)isEqual:(id)object { - if (object == self) { - return YES; - } - - if (![object isMemberOfClass:[self class]]) { - return NO; - } - - return [self isEqualToFilter:object]; -} - -- (BOOL)isEqualToFilter:(SDLPermissionFilter *)otherFilter { - return [self.identifier isEqual:otherFilter.identifier]; -} - - -#pragma mark - Description - -- (NSString *)description { - return [NSString stringWithFormat:@"Permission Filter Identifier: %@, group type: %@, RPCs: %@", self.identifier, @(self.groupType), self.permissionElements]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.h deleted file mode 100644 index 208ba60..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.h +++ /dev/null @@ -1,46 +0,0 @@ -// SDLPermissionItem.h -// - -#import "SDLRPCMessage.h" - -@class SDLHMIPermissions; -@class SDLParameterPermissions; - -NS_ASSUME_NONNULL_BEGIN - -/// Permissions for a given set of RPCs -/// -/// @since RPC 2.0 -@interface SDLPermissionItem : SDLRPCStruct - -/** - Name of the individual RPC in the policy table. - - Required - */ -@property (strong, nonatomic) NSString *rpcName; - -/** - HMI Permissions for the individual RPC; i.e. which HMI levels may it be used in - - Required - */ -@property (strong, nonatomic) SDLHMIPermissions *hmiPermissions; - -/** - RPC parameters for the individual RPC - - Required - */ -@property (strong, nonatomic) SDLParameterPermissions *parameterPermissions; - -/** - Describes whether or not the RPC needs encryption - - Optional, Boolean, since SDL 6.0 - */ -@property (strong, nonatomic, nullable) NSNumber *requireEncryption; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.m deleted file mode 100644 index b4c749b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionItem.m +++ /dev/null @@ -1,53 +0,0 @@ -// SDLPermissionItem.m -// - -#import "SDLPermissionItem.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLHMIPermissions.h" -#import "SDLRPCParameterNames.h" -#import "SDLParameterPermissions.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPermissionItem - -- (void)setRpcName:(NSString *)rpcName { - [self.store sdl_setObject:rpcName forName:SDLRPCParameterNameRPCName]; -} - -- (NSString *)rpcName { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameRPCName ofClass:NSString.class error:&error]; -} - -- (void)setHmiPermissions:(SDLHMIPermissions *)hmiPermissions { - [self.store sdl_setObject:hmiPermissions forName:SDLRPCParameterNameHMIPermissions]; -} - -- (SDLHMIPermissions *)hmiPermissions { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameHMIPermissions ofClass:SDLHMIPermissions.class error:&error]; -} - -- (void)setParameterPermissions:(SDLParameterPermissions *)parameterPermissions { - [self.store sdl_setObject:parameterPermissions forName:SDLRPCParameterNameParameterPermissions]; -} - -- (SDLParameterPermissions *)parameterPermissions { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameParameterPermissions ofClass:SDLParameterPermissions.class error:&error]; -} - -- (void)setRequireEncryption:(nullable NSNumber *)requireEncryption { - [self.store sdl_setObject:requireEncryption forName:SDLRPCParameterNameRequireEncryption]; -} - -- (nullable NSNumber *)requireEncryption { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameRequireEncryption ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.h deleted file mode 100644 index 1d5442c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.h +++ /dev/null @@ -1,158 +0,0 @@ -// -// SDLPermissionManager.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/14/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLHMILevel.h" -#import "SDLPermissionConstants.h" -#import "SDLRPCFunctionNames.h" -#import "SDLRPCPermissionStatus.h" - -@class SDLPermissionItem; -@class SDLRPCMessage; - -NS_ASSUME_NONNULL_BEGIN - -/// The permission manager monitoring RPC permissions. -@interface SDLPermissionManager : NSObject - -/** - * Flag indicating if the app requires an encryption service to be active. - */ -@property (assign, nonatomic, readonly) BOOL requiresEncryption; - -/** - * Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLPermissionManager, you should use the manager found on `SDLManager`. - * - * @param completionHandler The block to be called when the manager's setup is complete. - */ -- (void)startWithCompletionHandler:(void (^)(BOOL success, NSError *__nullable error))completionHandler; - -/** - * Stop the manager. This method is used internally. - */ -- (void)stop; - -/** - * Determine if an individual RPC is allowed for the current HMI level - * - * @param rpcName The name of the RPC to be tested, for example, SDLShow - * - * @return YES if the RPC is allowed at the current HMI level, NO if not - */ -- (BOOL)isRPCAllowed:(SDLPermissionRPCName)rpcName __deprecated_msg(("Use isRPCNameAllowed: instead")); - -/** - * Determine if an individual RPC is allowed for the current HMI level - * - * @param rpcName The name of the RPC to be tested, for example, SDLRPCFunctionNameShow - * - * @return YES if the RPC is allowed at the current HMI level, NO if not - */ -- (BOOL)isRPCNameAllowed:(SDLRPCFunctionName)rpcName; - -/** - * Determine if all RPCs are allowed for the current HMI level - * - * @param rpcNames The RPCs to check - * - * @return AllAllowed if all of the permissions are allowed, AllDisallowed if all the permissions are disallowed, Any if some are allowed, and some are disallowed - */ -- (SDLPermissionGroupStatus)groupStatusOfRPCs:(NSArray *)rpcNames __deprecated_msg(("Use groupStatusOfRPCNames: instead")); - -/** - * Determine if all RPCs are allowed for the current HMI level - * - * @param rpcNames The RPCs to check - * - * @return AllAllowed if all of the permissions are allowed, AllDisallowed if all the permissions are disallowed, Any if some are allowed, and some are disallowed -*/ -- (SDLPermissionGroupStatus)groupStatusOfRPCPermissions:(NSArray *)rpcNames; - -/** - * Retrieve a dictionary with keys that are the passed in RPC names, and objects of an NSNumber specifying if that RPC is currently allowed - * - * @param rpcNames An array of RPC names to check - * - * @return A dictionary specifying if the passed in RPC names are currently allowed or not - */ -- (NSDictionary *)statusOfRPCs:(NSArray *)rpcNames __deprecated_msg(("Use statusesOfRPCNames: instead")); - -/** - * Retrieve a dictionary with keys that are the passed in RPC names, and objects of an NSNumber specifying if that RPC is currently allowed - * - * @param rpcNames An array of permission elements to check - * - * @return A dictionary with specific RPC info contained in a SDLRPCPermissionStatus -*/ -- (NSDictionary *)statusesOfRPCPermissions:(NSArray *)rpcNames; - -/** - * Add an observer for specified RPC names, with a callback that will be called whenever the value changes, as well as immediately with the current status. - * - * @warning This block will be captured by the SDLPermissionsManager, be sure to use [weakself/strongself](http://www.logicsector.com/ios/avoiding-objc-retain-cycles-with-weakself-and-strongself-the-easy-way/) if you are referencing self within your observer block. - * - * @warning The observer may be called before this method returns, do not attempt to remove the observer from within the observer. That could send `nil` to removeObserverForIdentifier:. If you want functionality like that, call groupStatusOfRPCs: instead. - * - * @param rpcNames The RPCs to be observed - * @param groupType Affects the times that the observer block will be called. If Any, any change to any RPC in rpcNames will cause the observer block to be called. If AllAllowed, the block will be called when: 1. The observer is first set regardless of RPC status 2. Every RPC in rpcNames becomes allowed 3. The group of rpcNames goes from all being allowed to some or all being disallowed. - * @param handler The block that will be called whenever permissions change. - * - * @return An identifier that can be passed to removeObserverForIdentifer: to remove the observer - */ -- (SDLPermissionObserverIdentifier)addObserverForRPCs:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType withHandler:(SDLPermissionsChangedHandler)handler __deprecated_msg(("Use subscribeToRPCNames:groupType:withHandler: instead")); - -/** - * Subscribe to specified RPC names, with a callback that will be called whenever the value changes. Unlike addObserverForRPCs:groupType:withHandler:, the callback will only return immediately if the groupType is set to SDLPermissionGroupTypeAny or if the groupType is set to SDLPermissionGroupTypeAllAllowed and all RPCs in the rpcNames parameter are allowed. - * - * @warning The observer may be called before this method returns, do not attempt to remove the observer from within the observer. That could send `nil` to removeObserverForIdentifier:. If you want functionality like that, call groupStatusOfRPCs: instead. - * - * @param permissionElements The permission elements to be observed - * @param groupType Affects the times that the observer block will be called. If Any, any change to any RPC in rpcNames will cause the observer block to be called. If AllAllowed, the block will be called when: 1. Every RPC in rpcNames becomes allowed 2. The group of rpcNames goes from all being allowed to some or all being disallowed. - * @param handler The block that will be called whenever permissions change. - * - * @return An identifier that can be passed to removeObserverForIdentifer: to remove the observer - */ -- (SDLPermissionObserverIdentifier)subscribeToRPCPermissions:(NSArray *)permissionElements groupType:(SDLPermissionGroupType)groupType withHandler:(SDLRPCPermissionStatusChangedHandler)handler; - -/** - * Remove every current observer - */ -- (void)removeAllObservers; - -/** - * Remove block observers for the specified RPC - * - * @param identifier The identifier specifying which observer to remove - */ -- (void)removeObserverForIdentifier:(SDLPermissionObserverIdentifier)identifier; - - -/** - * Check whether or not an RPC needs encryption. - */ -- (BOOL)rpcRequiresEncryption:(SDLPermissionRPCName)rpcName __deprecated_msg(("Use rpcNameRequiresEncryption: instead")); - -/** - * Check whether or not an RPC needs encryption. - */ -- (BOOL)rpcNameRequiresEncryption:(SDLRPCFunctionName)rpcName; - -/** - * Check whether a parameter of an RPC is allowed - * - * @param rpcName The name of the RPC to be tested, for example, SDLRPCFunctionNameGetVehicleData - * @param parameter The name of the parameter to be tested, for example, rpm - * - * @return True if the parameter is allowed, false if it is not - */ -- (BOOL)isPermissionParameterAllowed:(SDLRPCFunctionName)rpcName parameter:(NSString *)parameter; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.m deleted file mode 100644 index aa9f14b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionManager.m +++ /dev/null @@ -1,493 +0,0 @@ -// -// SDLPermissionManager.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/14/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "SDLPermissionManager.h" - -#import "SDLHMIPermissions.h" -#import "SDLNotificationConstants.h" -#import "SDLOnHMIStatus.h" -#import "SDLOnPermissionsChange.h" -#import "SDLParameterPermissions.h" -#import "SDLPermissionFilter.h" -#import "SDLPermissionItem.h" -#import "SDLPredefinedWindows.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLStateMachine.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPermissionManager () - -@property (strong, nonatomic) NSMutableDictionary *permissions; -@property (strong, nonatomic) NSMutableArray *filters; -@property (copy, nonatomic, nullable) SDLHMILevel currentHMILevel; -@property (assign, nonatomic) BOOL requiresEncryption; - -@end - - -@implementation SDLPermissionManager - -#pragma mark - Lifecycle - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - _currentHMILevel = nil; - _permissions = [NSMutableDictionary dictionary]; - _filters = [NSMutableArray array]; - - // Set up SDL status notifications - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_permissionsDidChange:) name:SDLDidChangePermissionsNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiLevelDidChange:) name:SDLDidChangeHMIStatusNotification object:nil]; - - return self; -} - -- (void)startWithCompletionHandler:(void (^)(BOOL, NSError *_Nullable))completionHandler { - completionHandler(YES, nil); -} - -- (void)stop { - _permissions = [NSMutableDictionary dictionary]; - _filters = [NSMutableArray array]; - _currentHMILevel = nil; -} - - -#pragma mark - Permissions available - -- (BOOL)isRPCAllowed:(NSString *)rpcName { - return [self isRPCNameAllowed:rpcName]; -} - -- (BOOL)isRPCNameAllowed:(SDLRPCFunctionName)rpcName { - return [self.class isRPCNameAllowed:rpcName permissions:self.permissions hmiLevel:self.currentHMILevel]; -} - -+ (BOOL)isRPCNameAllowed:(SDLRPCFunctionName)rpcName permissions:(NSDictionary *)permissions hmiLevel:(SDLHMILevel)hmiLevel { - if (permissions[rpcName] == nil || hmiLevel == nil) { - return NO; - } - - SDLPermissionItem *item = permissions[rpcName]; - return [item.hmiPermissions.allowed containsObject:hmiLevel]; -} - -- (SDLPermissionGroupStatus)groupStatusOfRPCs:(NSArray *)rpcNames { - return [self groupStatusOfRPCPermissions:[self sdl_createPermissionElementsFromRPCNames:rpcNames]]; -} - -- (SDLPermissionGroupStatus)groupStatusOfRPCPermissions:(NSArray *)rpcNames { - if (self.currentHMILevel == nil) { - return SDLPermissionGroupStatusUnknown; - } - - return [self.class sdl_groupStatusOfRPCPermissions:rpcNames withPermissions:[self.permissions copy] hmiLevel:self.currentHMILevel]; -} - -+ (SDLPermissionGroupStatus)sdl_groupStatusOfRPCPermissions:(NSArray *)rpcNames withPermissions:(NSDictionary *)permissions hmiLevel:(SDLHMILevel)hmiLevel { - // If we don't have an HMI level, then just say everything is disallowed - if (hmiLevel == nil) { - return SDLPermissionGroupStatusUnknown; - } - - BOOL hasAllowed = NO; - BOOL hasDisallowed = NO; - - // Loop through all the RPCs we need to check - for (SDLPermissionElement *permissionElement in rpcNames) { - NSString *rpcName = permissionElement.rpcName; - - // If at this point in the loop, we have both allowed and disallowed RPCs, return the mixed result - if (hasAllowed && hasDisallowed) { - return SDLPermissionGroupStatusMixed; - } - - // If we don't have a status for this permission, set it as disallowed - if (permissions[rpcName] == nil) { - hasDisallowed = YES; - continue; - } - - // Check the permission's "allowed" array for the current HMI level - if ([permissions[rpcName].hmiPermissions.allowed containsObject:hmiLevel]) { - hasAllowed = YES; - } else { - hasDisallowed = YES; - } - - if (permissionElement.parameterPermissions != nil) { - for (NSString *parameter in permissionElement.parameterPermissions) { - if ([self.class sdl_isPermissionParameterAllowed:permissionElement.rpcName parameter:parameter permissionItems:permissions hmiLevel:hmiLevel]) { - hasAllowed = YES; - } else { - hasDisallowed = YES; - } - } - } - } - - if (hasAllowed && hasDisallowed) { - return SDLPermissionGroupStatusMixed; - } else if (hasAllowed) { - return SDLPermissionGroupStatusAllowed; - } else { - return SDLPermissionGroupStatusDisallowed; - } -} - -- (NSDictionary *)statusOfRPCs:(NSArray *)rpcNames { - NSArray *permissionElementsArray = [self sdl_createPermissionElementsFromRPCNames:rpcNames]; - - // Convert the dictionary returned from statusesOfRPCNames: to the correct return type - return [self sdl_convertPermissionsStatusDictionaryToPermissionsBoolDictionary:[self statusesOfRPCPermissions:permissionElementsArray]]; -} - -- (NSDictionary *)statusesOfRPCPermissions:(NSArray *)rpcNames { - NSMutableDictionary *permissionAllowedDict = [NSMutableDictionary dictionary]; - - for (SDLPermissionElement *permissionElement in rpcNames) { - if (permissionElement == nil) { continue; } - - NSMutableDictionary *rpcParameters = [NSMutableDictionary dictionary]; - if (permissionElement.parameterPermissions != nil) { - for (NSString *permissionParameter in permissionElement.parameterPermissions) { - BOOL isParameterAllowed = [self.class sdl_isPermissionParameterAllowed:permissionElement.rpcName parameter:permissionParameter permissionItems:self.permissions hmiLevel:self.currentHMILevel]; - rpcParameters[permissionParameter] = @(isParameterAllowed); - } - } - - SDLRPCPermissionStatus *permissionStatus = [[SDLRPCPermissionStatus alloc] initWithRPCName:permissionElement.rpcName isRPCAllowed:[self isRPCNameAllowed:permissionElement.rpcName] rpcParameters:rpcParameters]; - permissionAllowedDict[permissionElement.rpcName] = permissionStatus; - } - - return [permissionAllowedDict copy]; -} - - -#pragma mark - Permissions observers - -#pragma mark Add Observers - -- (SDLPermissionObserverIdentifier)addObserverForRPCs:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType withHandler:(nonnull SDLPermissionsChangedHandler)handler { - SDLPermissionFilter *filter = [[SDLPermissionFilter alloc] initWithPermissions:[self sdl_createPermissionElementsFromRPCNames:rpcNames] groupType:groupType permissionsHandler:handler]; - - // Store the filter for later use - [self.filters addObject:filter]; - - // If there are permissions that fit the specifications, send immediately. Then return the identifier. - [self sdl_callFilterObserver:filter]; - - return filter.identifier; -} - -- (SDLPermissionObserverIdentifier)subscribeToRPCPermissions:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType withHandler:(SDLRPCPermissionStatusChangedHandler)handler { - SDLPermissionFilter *filter = [[SDLPermissionFilter alloc] initWithPermissions:rpcNames groupType:groupType permissionStatusHandler:handler]; - - // Store the filter for later use - [self.filters addObject:filter]; - - // Check permission status and group type to see if we need to call handler immediately after setting the observer - SDLPermissionGroupStatus permissionStatus = [self groupStatusOfRPCPermissions:filter.permissionElements]; - if ((groupType == SDLPermissionGroupTypeAny) || (groupType == SDLPermissionGroupTypeAllAllowed && permissionStatus == SDLPermissionGroupStatusAllowed)) { - [self sdl_callFilterObserver:filter]; - } - - return filter.identifier; -} - -- (void)sdl_callFilterObserver:(SDLPermissionFilter *)filter { - SDLPermissionGroupStatus permissionStatus = [self groupStatusOfRPCPermissions:filter.permissionElements]; - - if (filter.rpcPermissionStatusHandler != nil) { - NSDictionary *allowedDict = [self statusesOfRPCPermissions:filter.permissionElements]; - filter.rpcPermissionStatusHandler(allowedDict, permissionStatus); - } else if (filter.handler != nil) { - NSDictionary *allowedDict = [self sdl_convertPermissionsStatusDictionaryToPermissionsBoolDictionary:[self statusesOfRPCPermissions:filter.permissionElements]]; - filter.handler(allowedDict, permissionStatus); - } -} - -#pragma mark Remove Observers - -- (void)removeAllObservers { - [self.filters removeAllObjects]; -} - -- (void)removeObserverForIdentifier:(SDLPermissionObserverIdentifier)identifier { - NSArray *filters = [self.filters copy]; - for (NSUInteger i = 0; i < filters.count; i++) { - SDLPermissionFilter *filter = filters[i]; - - if ([filter.identifier isEqual:identifier]) { - [self.filters removeObjectAtIndex:i]; - break; - } - } -} - - -#pragma mark - SDL Notification Observers - -- (void)sdl_permissionsDidChange:(SDLRPCNotificationNotification *)notification { - if (![notification isNotificationMemberOfClass:[SDLOnPermissionsChange class]]) { - return; - } - - SDLOnPermissionsChange *onPermissionChange = notification.notification; - - NSArray *newPermissionItems = [onPermissionChange.permissionItem copy]; - NSArray *currentFilters = [self.filters copy]; - - // We can eliminate calling those filters who had no permission changes, so we'll filter down and see which had permissions that changed - NSArray *modifiedFilters = [self.class sdl_filterPermissionChangesForFilters:currentFilters currentPermissions:self.permissions updatedPermissions:newPermissionItems]; - - // We need the old group status and new group status for all allowed filters so we know if they should be called - NSDictionary *> *allAllowedFiltersWithOldStatus = [self sdl_currentStatusForFilters:modifiedFilters]; - - // Set the updated permissions on our stored permissions object - for (SDLPermissionItem *item in newPermissionItems) { - self.permissions[item.rpcName] = item; - } - - // Check if the observer should be called based on the group type - NSMutableArray *filtersToCall = [NSMutableArray array]; - for (SDLPermissionFilter *filter in modifiedFilters) { - if (filter.groupType == SDLPermissionGroupTypeAllAllowed) { - SDLPermissionGroupStatus oldStatus = [allAllowedFiltersWithOldStatus[filter.identifier] unsignedIntegerValue]; - SDLPermissionGroupStatus newStatus = [self groupStatusOfRPCPermissions:filter.permissionElements]; - - // We've already eliminated the case where the permissions could stay the same, so if the permissions changed *to* allowed or *away* from allowed, we need to call the observer. - if (newStatus == SDLPermissionGroupStatusAllowed || oldStatus == SDLPermissionGroupStatusAllowed) { - [filtersToCall addObject:filter]; - } - } else { - // The filter is an `any` type and we know it changed, so we'll call it - [filtersToCall addObject:filter]; - } - } - - // For all the modified filters we care about, call them - for (SDLPermissionFilter *filter in filtersToCall) { - [self sdl_callFilterObserver:filter]; - } - - self.requiresEncryption = (onPermissionChange.requireEncryption != nil) ? onPermissionChange.requireEncryption.boolValue : [self sdl_containsAtLeastOneRPCThatRequiresEncryption]; -} - -- (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { - if (![notification isNotificationMemberOfClass:[SDLOnHMIStatus class]]) { - return; - } - - SDLOnHMIStatus *hmiStatus = notification.notification; - - if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { - return; - } - - SDLHMILevel oldHMILevel = [self.currentHMILevel copy]; - self.currentHMILevel = hmiStatus.hmiLevel; - NSArray *filters = [self.filters copy]; - - - NSMutableArray *mutableFiltersToCall = [NSMutableArray arrayWithCapacity:filters.count]; - for (SDLPermissionFilter *filter in filters) { - // Check if the filter changed, according to its group type settings. - BOOL filterChanged = [self sdl_didFilterChange:filter fromHMILevel:oldHMILevel toHMILevel:self.currentHMILevel]; - - if (filterChanged) { - [mutableFiltersToCall addObject:filter]; - } - } - - NSArray *filtersToCall = [mutableFiltersToCall copy]; - - // For all the modified filters, call if necessary - for (SDLPermissionFilter *filter in filtersToCall) { - [self sdl_callFilterObserver:filter]; - } -} - - -#pragma mark Helper Methods - -/** - * HAX: Remove this when statusOfRPCs: is no longer supported. Converts a dictionary from to . - * - * @param permissionStatusDictionary The dictionary containing to convert. - * - * @return A dictionary. - */ -- (NSDictionary *)sdl_convertPermissionsStatusDictionaryToPermissionsBoolDictionary:(NSDictionary *)permissionStatusDictionary { - NSMutableDictionary *rpcNameDictionary = [[NSMutableDictionary alloc] init]; - [permissionStatusDictionary enumerateKeysAndObjectsUsingBlock:^(SDLRPCFunctionName _Nonnull key, SDLRPCPermissionStatus * _Nonnull obj, BOOL * _Nonnull stop) { - [rpcNameDictionary setObject:@(obj.rpcAllowed) forKey:key]; - }]; - - return rpcNameDictionary; -} - -/** - * Converts an array of RPC name strings to permission elements. - * - * @param rpcNames The RPC names to convert. - * - * @return An array of permission elements. - */ -- (NSArray *)sdl_createPermissionElementsFromRPCNames:(NSArray *)rpcNames { - NSMutableArray *permissionElements = [[NSMutableArray alloc] init]; - for (NSString *rpcName in rpcNames) { - SDLPermissionElement *permissionElement = [[SDLPermissionElement alloc] initWithRPCName:rpcName parameterPermissions:nil]; - [permissionElements addObject:permissionElement]; - } - - return [permissionElements copy]; -} - -/** - * Determine if a filter changes based on an HMI level change and the filter's group type settings. This will run through the filter's RPCs, check the permission for each and see if any permission within the filter changes based on some permission now being allowed when it wasn't, or not allowed when it was. This also takes into account the group type setting, so an All Allowed filter will return YES if and only if some permission changed *and* that causes a status change *to* or *from* Allowed. - * - * @param filter The filter to check - * @param oldHMILevel The old HMI level - * @param newHMILevel The new HMI level - * - * @return Whether or not the filter changed based on the difference in HMI levels. - */ -- (BOOL)sdl_didFilterChange:(SDLPermissionFilter *)filter fromHMILevel:(SDLHMILevel)oldHMILevel toHMILevel:(SDLHMILevel)newHMILevel { - BOOL changed = NO; - for (NSString *rpcName in [filter rpcNamesFromPermissionElements:filter.permissionElements]) { - SDLPermissionItem *item = self.permissions[rpcName]; - BOOL newAllowed = [item.hmiPermissions.allowed containsObject:self.currentHMILevel]; - BOOL oldAllowed = [item.hmiPermissions.allowed containsObject:oldHMILevel]; - - if ((newAllowed && !oldAllowed) || (!newAllowed && oldAllowed)) { - // Now permitted when it was not before, or not permitted when it was before - if (filter.groupType == SDLPermissionGroupTypeAny) { - return YES; - } else { - changed = YES; - break; - } - } - } - - // This is only for the All Allowed group type. Unlike with the Any group type, we need to know if the group status has changed - if (changed) { - SDLPermissionGroupStatus oldStatus = [self.class sdl_groupStatusOfRPCPermissions:filter.permissionElements withPermissions:self.permissions hmiLevel:oldHMILevel]; - SDLPermissionGroupStatus newStatus = [self.class sdl_groupStatusOfRPCPermissions:filter.permissionElements withPermissions:self.permissions hmiLevel:newHMILevel]; - - // We've already eliminated the case where the permissions could stay the same, so if the permissions changed *to* allowed or *away* from allowed, we need to call the observer. - if (newStatus == SDLPermissionGroupStatusAllowed || oldStatus == SDLPermissionGroupStatusAllowed) { - return YES; - } - } - - return NO; -} - -/** - * Get a dictionary of the current group status for filters passed in. - * - * @param filters The filters to check - * - * @return A dictionary of filters as the keys and an NSNumber wrapper for the SDLPermissionGroupStatus - */ -- (NSDictionary *> *)sdl_currentStatusForFilters:(NSArray *)filters { - // Create a dictionary that has the all allowed filters and stores their group status for future reference - NSMutableDictionary *> *filtersWithStatus = [NSMutableDictionary dictionary]; - for (SDLPermissionFilter *filter in filters) { - if (filter.groupType == SDLPermissionGroupTypeAllAllowed) { - filtersWithStatus[filter.identifier] = @([self groupStatusOfRPCPermissions:filter.permissionElements]); - } - } - - return [filtersWithStatus copy]; -} - -/** - Takes a set of filters and a set of updated permission items. Loops through each permission for each filter and determines if the filter contains a permission that was updated. Returns the set of filters that contain an updated permission. - - @param filters The set of filters to check - @param currentPermissions The current set of permissions to check the updated permissions and make sure they were modified - @param updatedPermissions The set of updated permissions to test each filter against - @return An array of filters that contained one of the passed permissions - */ -+ (NSArray *)sdl_filterPermissionChangesForFilters:(NSArray *)filters currentPermissions:(NSMutableDictionary *)currentPermissions updatedPermissions:(NSArray *)updatedPermissions { - NSMutableArray *modifiedFilters = [NSMutableArray arrayWithCapacity:filters.count]; - - // Loop through each updated permission item for each filter, if the filter had something modified, store it and go to the next filter - for (SDLPermissionFilter *filter in filters) { - NSArray *modifiedPermissionItems = [self sdl_modifiedUpdatedPermissions:updatedPermissions comparedToCurrentPermissions:currentPermissions]; - for (SDLPermissionItem *item in modifiedPermissionItems) { - if ([[filter rpcNamesFromPermissionElements:filter.permissionElements] containsObject:item.rpcName]) { - [modifiedFilters addObject:filter]; - break; - } - } - } - - return [modifiedFilters copy]; -} - -+ (NSArray *)sdl_modifiedUpdatedPermissions:(NSArray *)permissionItems comparedToCurrentPermissions:(NSMutableDictionary *)currentPermissions { - NSMutableArray *modifiedPermissions = [NSMutableArray arrayWithCapacity:permissionItems.count]; - - for (SDLPermissionItem *item in permissionItems) { - SDLPermissionItem *currentItem = currentPermissions[item.rpcName]; - if (![item isEqual:currentItem]) { - [modifiedPermissions addObject:item]; - } - } - - return [modifiedPermissions copy]; -} - -- (BOOL)sdl_containsAtLeastOneRPCThatRequiresEncryption { - for (SDLPermissionItem *item in self.permissions.allValues) { - if (item.requireEncryption) { - return YES; - } - } - return NO; -} - -- (BOOL)rpcRequiresEncryption:(SDLPermissionRPCName)rpcName { - return [self rpcNameRequiresEncryption:rpcName]; -} - -- (BOOL)rpcNameRequiresEncryption:(SDLRPCFunctionName)rpcName { - if (self.permissions[rpcName].requireEncryption != nil) { - return self.permissions[rpcName].requireEncryption.boolValue; - } - return NO; -} - -- (BOOL)isPermissionParameterAllowed:(SDLRPCFunctionName)rpcName parameter:(NSString *)parameter { - return [self.class sdl_isPermissionParameterAllowed:rpcName parameter:parameter permissionItems:self.permissions hmiLevel:self.currentHMILevel]; -} - -+ (BOOL)sdl_isPermissionParameterAllowed:(SDLRPCFunctionName)rpcName parameter:(NSString *)parameter permissionItems:(NSDictionary *)permissionItems hmiLevel:(SDLHMILevel)hmiLevel { - SDLPermissionItem *permissionItem = permissionItems[rpcName]; - if (permissionItem == nil || ![self isRPCNameAllowed:rpcName permissions:permissionItems hmiLevel:hmiLevel] || permissionItem.parameterPermissions == nil || permissionItem.parameterPermissions.allowed == nil) { - return NO; - } else if (permissionItem.parameterPermissions.userDisallowed != nil) { - return [permissionItem.parameterPermissions.allowed containsObject:parameter] && ![permissionItem.parameterPermissions.userDisallowed containsObject:parameter]; - } else { - return [permissionItem.parameterPermissions.allowed containsObject:parameter]; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionStatus.h deleted file mode 100644 index 45b0241..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionStatus.h +++ /dev/null @@ -1,32 +0,0 @@ -// SDLPermissionStatus.h -// - - -#import "SDLEnum.h" - -/** - * Enumeration that describes possible permission states of a policy table entry. Used in nothing. - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLPermissionStatus SDL_SWIFT_ENUM; - -/** - * permission: allowed - */ -extern SDLPermissionStatus const SDLPermissionStatusAllowed; - -/** - * permission: disallowed - */ -extern SDLPermissionStatus const SDLPermissionStatusDisallowed; - -/** - * permission: user disallowed - */ -extern SDLPermissionStatus const SDLPermissionStatusUserDisallowed; - -/** - * permission: user consent pending - */ -extern SDLPermissionStatus const SDLPermissionStatusUserConsentPending; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionStatus.m deleted file mode 100644 index ff9654c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPermissionStatus.m +++ /dev/null @@ -1,10 +0,0 @@ -// SDLPermissionStatus.m -// - - -#import "SDLPermissionStatus.h" - -SDLPermissionStatus const SDLPermissionStatusAllowed = @"ALLOWED"; -SDLPermissionStatus const SDLPermissionStatusDisallowed = @"DISALLOWED"; -SDLPermissionStatus const SDLPermissionStatusUserDisallowed = @"USER_DISALLOWED"; -SDLPermissionStatus const SDLPermissionStatusUserConsentPending = @"USER_CONSENT_PENDING"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.h deleted file mode 100644 index 5b9707e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// SDLPhoneCapability.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/11/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLRPCStruct.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Extended capabilities of the module's phone feature - */ -@interface SDLPhoneCapability : SDLRPCStruct - -/// Convenience init for defining the phone capability -/// -/// @param dialNumberEnabled Whether or not the DialNumber RPC is enabled. -/// @return An SDLPhoneCapability object -- (instancetype)initWithDialNumber:(BOOL)dialNumberEnabled; - -/** - Whether or not the DialNumber RPC is enabled. - - Boolean, optional - */ -@property (nullable, strong, nonatomic) NSNumber *dialNumberEnabled; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.m deleted file mode 100644 index 514b8e2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPhoneCapability.m +++ /dev/null @@ -1,39 +0,0 @@ -// -// SDLPhoneCapability.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/11/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLPhoneCapability.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPhoneCapability - -- (instancetype)initWithDialNumber:(BOOL)dialNumberEnabled { - self = [self init]; - if (!self) { - return self; - } - - self.dialNumberEnabled = @(dialNumberEnabled); - - return self; -} - -- (void)setDialNumberEnabled:(nullable NSNumber *)dialNumberEnabled { - [self.store sdl_setObject:dialNumberEnabled forName:SDLRPCParameterNameDialNumberEnabled]; -} - -- (nullable NSNumber *)dialNumberEnabled { - return [self.store sdl_objectForName:SDLRPCParameterNameDialNumberEnabled ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPinchGesture.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPinchGesture.h deleted file mode 100644 index 81ca837..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPinchGesture.h +++ /dev/null @@ -1,63 +0,0 @@ -// -// SDLPinchGesture.h -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 6/14/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLTouch.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Pinch Gesture information -@interface SDLPinchGesture : NSObject - -/** - * @abstract - * Initializes a pinch gesture. - * @param firstTouch - * First touch of the gesture - * @param secondTouch - * Second touch of the gesture - * @return SDLPinchGesture - * Instance of SDLPinchGesture. - */ -- (instancetype)initWithFirstTouch:(SDLTouch *)firstTouch secondTouch:(SDLTouch *)secondTouch; - -/** - * @abstract - * First touch of a pinch gesture. - */ -@property (nonatomic, strong) SDLTouch *firstTouch; - -/** - * @abstract - * Second touch of a pinch gesture. - */ -@property (nonatomic, strong) SDLTouch *secondTouch; - -/** - * @abstract - * Distance between first and second touches. - */ -@property (nonatomic, assign, readonly) CGFloat distance; - -/** - * @abstract - * Center point between first and second touches. - */ -@property (nonatomic, assign, readonly) CGPoint center; - -/** - * @abstract - * Returns whether or not the pinch gesture is valid. This is true if both touches - * are non null. - */ -@property (nonatomic, assign, readonly) BOOL isValid; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPinchGesture.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPinchGesture.m deleted file mode 100644 index d1ea6e6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPinchGesture.m +++ /dev/null @@ -1,79 +0,0 @@ -// -// SDLPinchGesture.m -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 6/14/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLPinchGesture.h" - -#import "CGPoint_Util.h" -#import "SDLTouch.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPinchGesture - -@synthesize distance = _distance; -@synthesize center = _center; - -- (instancetype)initWithFirstTouch:(SDLTouch *)firstTouch secondTouch:(SDLTouch *)secondTouch { - self = [super init]; - if (!self) { - return nil; - } - - _firstTouch = firstTouch; - _secondTouch = secondTouch; - _distance = -1; - _center = CGPointZero; - - return self; -} - -#pragma mark - Setters -- (void)setFirstTouch:(SDLTouch *)firstTouch { - if (firstTouch.identifier == SDLTouchIdentifierFirstFinger) { - _firstTouch = firstTouch; - [self sdl_invalidate]; - } -} - -- (void)setSecondTouch:(SDLTouch *)secondTouch { - if (secondTouch.identifier == SDLTouchIdentifierSecondFinger) { - _secondTouch = secondTouch; - [self sdl_invalidate]; - } -} - -#pragma mark - Getters -- (CGFloat)distance { - if (_distance == -1) { - _distance = CGPointDistanceBetweenPoints(self.firstTouch.location, - self.secondTouch.location); - } - return _distance; -} - -- (CGPoint)center { - if (CGPointEqualToPoint(_center, CGPointZero)) { - _center = CGPointCenterOfPoints(self.firstTouch.location, - self.secondTouch.location); - } - return _center; -} - -- (BOOL)isValid { - return (self.firstTouch != nil) && (self.secondTouch != nil); -} - -#pragma mark - Private -- (void)sdl_invalidate { - _distance = -1; - _center = CGPointZero; -} - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeQualificationStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeQualificationStatus.h deleted file mode 100644 index 837837e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeQualificationStatus.h +++ /dev/null @@ -1,30 +0,0 @@ -// SDLPowerModeQualificationStatus.h -// - - -#import "SDLEnum.h" - -/** - Describes the power mode qualification status. Used in ClusterModeStatus. - */ -typedef SDLEnum SDLPowerModeQualificationStatus SDL_SWIFT_ENUM; - -/** - An undefined status - */ -extern SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusUndefined; - -/** - An "evaluation in progress" status - */ -extern SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusEvaluationInProgress; - -/** - A "not defined" status - */ -extern SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusNotDefined; - -/** - An "ok" status - */ -extern SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusOk; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeQualificationStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeQualificationStatus.m deleted file mode 100644 index b181977..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeQualificationStatus.m +++ /dev/null @@ -1,10 +0,0 @@ -// SDLPowerModeQualificationStatus.m -// - - -#import "SDLPowerModeQualificationStatus.h" - -SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusUndefined = @"POWER_MODE_UNDEFINED"; -SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusEvaluationInProgress = @"POWER_MODE_EVALUATION_IN_PROGRESS"; -SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusNotDefined = @"NOT_DEFINED"; -SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusOk = @"POWER_MODE_OK"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeStatus.h deleted file mode 100644 index 92c7d5c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeStatus.h +++ /dev/null @@ -1,55 +0,0 @@ -// SDLPowerModeStatus.h -// - - -#import "SDLEnum.h" - -/** - The status of the car's power. Used in ClusterModeStatus. - */ -typedef SDLEnum SDLPowerModeStatus SDL_SWIFT_ENUM; - -/** - The key is not in the ignition, and the power is off - */ -extern SDLPowerModeStatus const SDLPowerModeStatusKeyOut; - -/** - The key is not in the ignition and it was just recently removed - */ -extern SDLPowerModeStatus const SDLPowerModeStatusKeyRecentlyOut; - -/** - The key is not in the ignition, but an approved key is available - */ -extern SDLPowerModeStatus const SDLPowerModeStatusKeyApproved; - -/** - We are in a post-accessory power situation - */ -extern SDLPowerModeStatus const SDLPowerModeStatusPostAccessory; - -/** - The car is in accessory power mode - */ -extern SDLPowerModeStatus const SDLPowerModeStatusAccessory; - -/** - We are in a post-ignition power situation - */ -extern SDLPowerModeStatus const SDLPowerModeStatusPostIgnition; - -/** - The ignition is on but the car is not yet running - */ -extern SDLPowerModeStatus const SDLPowerModeStatusIgnitionOn; - -/** - The ignition is on and the car is running - */ -extern SDLPowerModeStatus const SDLPowerModeStatusRunning; - -/** - We are in a crank power situation - */ -extern SDLPowerModeStatus const SDLPowerModeStatusCrank; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeStatus.m deleted file mode 100644 index b1210d7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPowerModeStatus.m +++ /dev/null @@ -1,15 +0,0 @@ -// SDLPowerModeStatus.m -// - - -#import "SDLPowerModeStatus.h" - -SDLPowerModeStatus const SDLPowerModeStatusKeyOut = @"KEY_OUT"; -SDLPowerModeStatus const SDLPowerModeStatusKeyRecentlyOut = @"KEY_RECENTLY_OUT"; -SDLPowerModeStatus const SDLPowerModeStatusKeyApproved = @"KEY_APPROVED_0"; -SDLPowerModeStatus const SDLPowerModeStatusPostAccessory = @"POST_ACCESORY_0"; -SDLPowerModeStatus const SDLPowerModeStatusAccessory = @"ACCESORY_1"; -SDLPowerModeStatus const SDLPowerModeStatusPostIgnition = @"POST_IGNITION_1"; -SDLPowerModeStatus const SDLPowerModeStatusIgnitionOn = @"IGNITION_ON_2"; -SDLPowerModeStatus const SDLPowerModeStatusRunning = @"RUNNING_2"; -SDLPowerModeStatus const SDLPowerModeStatusCrank = @"CRANK_3"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedLayout.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedLayout.h deleted file mode 100644 index f56c275..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedLayout.h +++ /dev/null @@ -1,110 +0,0 @@ -// SDLPredefinedLayout.h -// - - -#import "SDLEnum.h" - -/** - A template layout an app uses to display information. The broad details of the layout are defined, but the details depend on the IVI system. Used in SetDisplayLayout. - */ -typedef SDLEnum SDLPredefinedLayout SDL_SWIFT_ENUM; - -/** - A default layout - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutDefault; - -/** - The default media layout - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutMedia; - -/** - The default non-media layout - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutNonMedia; - -/** - A media layout containing preset buttons - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutOnscreenPresets; - -/** - The default navigation layout with a fullscreen map - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutNavigationFullscreenMap; - -/** - A list layout used for navigation apps - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutNavigationList; - -/** - A keyboard layout used for navigation apps - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutNavigationKeyboard; - -/** - A layout with a single graphic on the left and text on the right - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithText; - -/** - A layout with text on the left and a single graphic on the right - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutTextWithGraphic; - -/** - A layout with only softbuttons placed in a tile layout - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutTilesOnly; - -/** - A layout with only soft buttons that only accept text - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutTextButtonsOnly; - -/** - A layout with a single graphic on the left and soft buttons in a tile layout on the right - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithTiles; - -/** - A layout with soft buttons in a tile layout on the left and a single graphic on the right - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutTilesWithGraphic; - -/** - A layout with a single graphic on the left and both text and soft buttons on the right - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithTextAndSoftButtons; - -/** - A layout with both text and soft buttons on the left and a single graphic on the right - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutTextAndSoftButtonsWithGraphic; - -/** - A layout with a single graphic on the left and text-only soft buttons on the right - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithTextButtons; - -/** - A layout with text-only soft buttons on the left and a single graphic on the right - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutTextButtonsWithGraphic; - -/** - A layout with a single large graphic and soft buttons - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutLargeGraphicWithSoftButtons; - -/** - A layout with two graphics and soft buttons - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutDoubleGraphicWithSoftButtons; - -/** - A layout with only a single large graphic - */ -extern SDLPredefinedLayout const SDLPredefinedLayoutLargeGraphicOnly; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedLayout.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedLayout.m deleted file mode 100644 index 08a0c29..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedLayout.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLPredefinedLayout.m -// - - -#import "SDLPredefinedLayout.h" - -SDLPredefinedLayout const SDLPredefinedLayoutDefault = @"DEFAULT"; -SDLPredefinedLayout const SDLPredefinedLayoutMedia = @"MEDIA"; -SDLPredefinedLayout const SDLPredefinedLayoutNonMedia = @"NON-MEDIA"; -SDLPredefinedLayout const SDLPredefinedLayoutOnscreenPresets = @"ONSCREEN_PRESETS"; -SDLPredefinedLayout const SDLPredefinedLayoutNavigationFullscreenMap = @"NAV_FULLSCREEN_MAP"; -SDLPredefinedLayout const SDLPredefinedLayoutNavigationList = @"NAV_LIST"; -SDLPredefinedLayout const SDLPredefinedLayoutNavigationKeyboard = @"NAV_KEYBOARD"; -SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithText = @"GRAPHIC_WITH_TEXT"; -SDLPredefinedLayout const SDLPredefinedLayoutTextWithGraphic = @"TEXT_WITH_GRAPHIC"; -SDLPredefinedLayout const SDLPredefinedLayoutTilesOnly = @"TILES_ONLY"; -SDLPredefinedLayout const SDLPredefinedLayoutTextButtonsOnly = @"TEXTBUTTONS_ONLY"; -SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithTiles = @"GRAPHIC_WITH_TILES"; -SDLPredefinedLayout const SDLPredefinedLayoutTilesWithGraphic = @"TILES_WITH_GRAPHIC"; -SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithTextAndSoftButtons = @"GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS"; -SDLPredefinedLayout const SDLPredefinedLayoutTextAndSoftButtonsWithGraphic = @"TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC"; -SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithTextButtons = @"GRAPHIC_WITH_TEXTBUTTONS"; -SDLPredefinedLayout const SDLPredefinedLayoutTextButtonsWithGraphic = @"TEXTBUTTONS_WITH_GRAPHIC"; -SDLPredefinedLayout const SDLPredefinedLayoutLargeGraphicWithSoftButtons = @"LARGE_GRAPHIC_WITH_SOFTBUTTONS"; -SDLPredefinedLayout const SDLPredefinedLayoutDoubleGraphicWithSoftButtons = @"DOUBLE_GRAPHIC_WITH_SOFTBUTTONS"; -SDLPredefinedLayout const SDLPredefinedLayoutLargeGraphicOnly = @"LARGE_GRAPHIC_ONLY"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedWindows.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedWindows.h deleted file mode 100644 index d488673..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPredefinedWindows.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// SDLPredefinedWindows.h -// SmartDeviceLink - -#import "SDLEnum.h" - -/** - Specifies which windows and IDs are predefined and pre-created on behalf of the app. The default window is always available and represents the app window on the main display. It's an equivalent to today's app window. For backward compatibility, this will ensure the app always has at least the default window on the main display. The app can choose to use this predefined enum element to specifically address app's main window or to duplicate window content. It is not possible to duplicate another window to the default window. The primary widget is a special widget, that can be associated with a service type, which is used by the HMI whenever a single widget needs to represent the whole app. The primary widget should be named as the app and can be pre-created by the HMI. - - @since SDL 6.0 - */ -typedef NS_ENUM(NSUInteger, SDLPredefinedWindows){ - /// The default window is a main window pre-created on behalf of the app. - SDLPredefinedWindowsDefaultWindow = 0, - - /// The primary widget of the app. - SDLPredefinedWindowsPrimaryWidget = 1 -}; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.h deleted file mode 100644 index 965a0c1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// SDLPreloadChoicesOperation.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/23/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAsynchronousOperation.h" - -@class SDLChoiceCell; -@class SDLFileManager; -@class SDLWindowCapability; - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - -typedef NS_ENUM(NSUInteger, SDLPreloadChoicesOperationState) { - SDLPreloadChoicesOperationStateWaitingToStart, - SDLPreloadChoicesOperationStateUploadingArtworks, - SDLPreloadChoicesOperationStatePreloadingChoices, - SDLPreloadChoicesOperationStateFinished -}; - -@interface SDLPreloadChoicesOperation : SDLAsynchronousOperation - -@property (assign, nonatomic) SDLPreloadChoicesOperationState currentState; - -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager displayName:(NSString *)displayName windowCapability:(SDLWindowCapability *)defaultMainWindowCapability isVROptional:(BOOL)isVROptional cellsToPreload:(NSSet *)cells; - -- (BOOL)removeChoicesFromUpload:(NSSet *)choices; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.m deleted file mode 100644 index 82f7435..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPreloadChoicesOperation.m +++ /dev/null @@ -1,240 +0,0 @@ -// -// SDLPreloadChoicesOperation.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/23/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLPreloadChoicesOperation.h" - -#import "SDLChoice.h" -#import "SDLChoiceCell.h" -#import "SDLConnectionManagerType.h" -#import "SDLCreateInteractionChoiceSet.h" -#import "SDLCreateInteractionChoiceSetResponse.h" -#import "SDLDisplayType.h" -#import "SDLError.h" -#import "SDLFileManager.h" -#import "SDLImage.h" -#import "SDLLogMacros.h" -#import "SDLWindowCapability.h" -#import "SDLWindowCapability+ScreenManagerExtensions.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLChoiceCell() - -@property (assign, nonatomic) UInt16 choiceId; - -@end - -@interface SDLPreloadChoicesOperation() - -@property (strong, nonatomic) NSUUID *operationId; -@property (strong, nonatomic) NSMutableSet *cellsToUpload; -@property (strong, nonatomic) SDLWindowCapability *windowCapability; -@property (strong, nonatomic) NSString *displayName; -@property (assign, nonatomic, getter=isVROptional) BOOL vrOptional; - -@property (weak, nonatomic) id connectionManager; -@property (weak, nonatomic) SDLFileManager *fileManager; -@property (copy, nonatomic, nullable) NSError *internalError; - -@end - -@implementation SDLPreloadChoicesOperation - -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager displayName:(NSString *)displayName windowCapability:(SDLWindowCapability *)defaultMainWindowCapability isVROptional:(BOOL)isVROptional cellsToPreload:(NSSet *)cells { - self = [super init]; - if (!self) { return nil; } - - _connectionManager = connectionManager; - _fileManager = fileManager; - _displayName = displayName; - _windowCapability = defaultMainWindowCapability; - _vrOptional = isVROptional; - _cellsToUpload = [cells mutableCopy]; - _operationId = [NSUUID UUID]; - - _currentState = SDLPreloadChoicesOperationStateWaitingToStart; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - [self sdl_preloadCellArtworksWithCompletionHandler:^(NSError * _Nullable error) { - self.internalError = error; - - [self sdl_preloadCells]; - }]; -} - -- (BOOL)removeChoicesFromUpload:(NSSet *)choices { - if (self.isExecuting) { return NO; } - - [self.cellsToUpload minusSet:choices]; - return YES; -} - -#pragma mark - Sending Choice Data - -- (void)sdl_preloadCellArtworksWithCompletionHandler:(void(^)(NSError *_Nullable))completionHandler { - _currentState = SDLPreloadChoicesOperationStateUploadingArtworks; - - NSMutableArray *artworksToUpload = [NSMutableArray arrayWithCapacity:self.cellsToUpload.count]; - for (SDLChoiceCell *cell in self.cellsToUpload) { - if ([self sdl_shouldSendChoicePrimaryImage] && [self sdl_artworkNeedsUpload:cell.artwork]) { - [artworksToUpload addObject:cell.artwork]; - } - if ([self sdl_shouldSendChoiceSecondaryImage] && [self sdl_artworkNeedsUpload:cell.secondaryArtwork]) { - [artworksToUpload addObject:cell.secondaryArtwork]; - } - } - - if (artworksToUpload.count == 0) { - SDLLogD(@"No choice artworks to be uploaded"); - completionHandler(nil); - return; - } - - [self.fileManager uploadArtworks:[artworksToUpload copy] completionHandler:^(NSArray * _Nonnull artworkNames, NSError * _Nullable error) { - if (error != nil) { - SDLLogE(@"Error uploading choice artworks: %@", error); - } else { - SDLLogD(@"Finished uploading choice artworks"); - SDLLogV(@"%@", artworkNames); - } - - completionHandler(error); - }]; -} - -- (BOOL)sdl_artworkNeedsUpload:(SDLArtwork *)artwork { - return (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && !artwork.isStaticIcon); -} - -- (void)sdl_preloadCells { - _currentState = SDLPreloadChoicesOperationStatePreloadingChoices; - - NSMutableArray *choiceRPCs = [NSMutableArray arrayWithCapacity:self.cellsToUpload.count]; - for (SDLChoiceCell *cell in self.cellsToUpload) { - SDLCreateInteractionChoiceSet *csCell = [self sdl_choiceFromCell:cell]; - if(csCell != nil) { - [choiceRPCs addObject:csCell]; - } - } - if (choiceRPCs.count == 0) { - SDLLogE(@"All choice cells to send are nil, so the choice set will not be shown"); - self.internalError = [NSError sdl_choiceSetManager_failedToCreateMenuItems]; - [self finishOperation]; - return; - } - - __weak typeof(self) weakSelf = self; - __block NSMutableDictionary *errors = [NSMutableDictionary dictionary]; - [self.connectionManager sendRequests:[choiceRPCs copy] progressHandler:^(__kindof SDLRPCRequest * _Nonnull request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error, float percentComplete) { - if (error != nil) { - errors[request] = error; - } - } completionHandler:^(BOOL success) { - if (!success) { - SDLLogE(@"Error preloading choice cells: %@", errors); - weakSelf.internalError = [NSError sdl_choiceSetManager_choiceUploadFailed:errors]; - } - - SDLLogD(@"Finished preloading choice cells"); - - [weakSelf finishOperation]; - }]; -} - -#pragma mark - Assembling Choice Data - -- (nullable SDLCreateInteractionChoiceSet *)sdl_choiceFromCell:(SDLChoiceCell *)cell { - NSArray *vrCommands = nil; - if (cell.voiceCommands == nil) { - vrCommands = self.isVROptional ? nil : @[[NSString stringWithFormat:@"%hu", cell.choiceId]]; - } else { - vrCommands = cell.voiceCommands; - } - - NSString *menuName = nil; - if ([self sdl_shouldSendChoiceText]) { - menuName = cell.text; - } - - if(!menuName) { - SDLLogE(@"Could not convert SDLChoiceCell to SDLCreateInteractionChoiceSet. It will not be shown. Cell: %@", cell); - return nil; - } - - NSString *secondaryText = [self sdl_shouldSendChoiceSecondaryText] ? cell.secondaryText : nil; - NSString *tertiaryText = [self sdl_shouldSendChoiceTertiaryText] ? cell.tertiaryText : nil; - - SDLImage *image = [self sdl_shouldSendChoicePrimaryImage] ? cell.artwork.imageRPC : nil; - SDLImage *secondaryImage = [self sdl_shouldSendChoiceSecondaryImage] ? cell.secondaryArtwork.imageRPC : nil; - - SDLChoice *choice = [[SDLChoice alloc] initWithId:cell.choiceId menuName:(NSString *_Nonnull)menuName vrCommands:(NSArray * _Nonnull)vrCommands image:image secondaryText:secondaryText secondaryImage:secondaryImage tertiaryText:tertiaryText]; - - return [[SDLCreateInteractionChoiceSet alloc] initWithId:(UInt32)choice.choiceID.unsignedIntValue choiceSet:@[choice]]; -} - -/// Determine if we should send primary text. If textFields is nil, we don't know the capabilities and we will send everything. -- (BOOL)sdl_shouldSendChoiceText { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if ([self.displayName isEqualToString:SDLDisplayTypeGen38Inch]) { - return YES; - } -#pragma clang diagnostic pop - - return [self.windowCapability hasTextFieldOfName:SDLTextFieldNameMenuName]; -} - -/// Determine if we should send secondary text. If textFields is nil, we don't know the capabilities and we will send everything. -- (BOOL)sdl_shouldSendChoiceSecondaryText { - return [self.windowCapability hasTextFieldOfName:SDLTextFieldNameSecondaryText]; -} - -/// Determine if we should send teriary text. If textFields is nil, we don't know the capabilities and we will send everything. -- (BOOL)sdl_shouldSendChoiceTertiaryText { - return [self.windowCapability hasTextFieldOfName:SDLTextFieldNameTertiaryText]; -} - -/// Determine if we should send the primary image. If imageFields is nil, we don't know the capabilities and we will send everything. -- (BOOL)sdl_shouldSendChoicePrimaryImage { - return [self.windowCapability hasImageFieldOfName:SDLImageFieldNameChoiceImage]; -} - -/// Determine if we should send the secondary image. If imageFields is nil, we don't know the capabilities and we will send everything. -- (BOOL)sdl_shouldSendChoiceSecondaryImage { - return [self.windowCapability hasImageFieldOfName:SDLImageFieldNameChoiceSecondaryImage]; -} - -#pragma mark - Property Overrides - -- (void)finishOperation { - _currentState = SDLPreloadChoicesOperationStateFinished; - - [super finishOperation]; -} - -- (nullable NSString *)name { - return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityNormal; -} - -- (nullable NSError *)error { - return self.internalError; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrerecordedSpeech.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrerecordedSpeech.h deleted file mode 100644 index 0905663..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrerecordedSpeech.h +++ /dev/null @@ -1,35 +0,0 @@ -// SDLPrerecordedSpeech.h -// - - -#import "SDLEnum.h" - -/** - Contains information about the speech capabilities on the SDL platform. Used in RegisterAppInterfaceResponse to indicate capability. - */ -typedef SDLEnum SDLPrerecordedSpeech SDL_SWIFT_ENUM; - -/** - A prerecorded help prompt - */ -extern SDLPrerecordedSpeech const SDLPrerecordedSpeechHelp; - -/** - A prerecorded initial prompt - */ -extern SDLPrerecordedSpeech const SDLPrerecordedSpeechInitial; - -/** - A prerecorded listen prompt is available - */ -extern SDLPrerecordedSpeech const SDLPrerecordedSpeechListen; - -/** - A prerecorded positive indicator noise is available - */ -extern SDLPrerecordedSpeech const SDLPrerecordedSpeechPositive; - -/** - A prerecorded negative indicator noise is available - */ -extern SDLPrerecordedSpeech const SDLPrerecordedSpeechNegative; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrerecordedSpeech.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrerecordedSpeech.m deleted file mode 100644 index 0c3b63f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrerecordedSpeech.m +++ /dev/null @@ -1,11 +0,0 @@ -// SDLPrerecordedSpeech.m -// - - -#import "SDLPrerecordedSpeech.h" - -SDLPrerecordedSpeech const SDLPrerecordedSpeechHelp = @"HELP_JINGLE"; -SDLPrerecordedSpeech const SDLPrerecordedSpeechInitial = @"INITIAL_JINGLE"; -SDLPrerecordedSpeech const SDLPrerecordedSpeechListen = @"LISTEN_JINGLE"; -SDLPrerecordedSpeech const SDLPrerecordedSpeechPositive = @"POSITIVE_JINGLE"; -SDLPrerecordedSpeech const SDLPrerecordedSpeechNegative = @"NEGATIVE_JINGLE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.h deleted file mode 100644 index df82bfa..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// SDLPresentChoiceSetOperation.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/24/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAsynchronousOperation.h" -#import "SDLInteractionMode.h" -#import "SDLTriggerSource.h" - -@class SDLChoiceCell; -@class SDLChoiceSet; -@class SDLKeyboardProperties; - -@protocol SDLConnectionManagerType; -@protocol SDLKeyboardDelegate; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPresentChoiceSetOperation : SDLAsynchronousOperation - -/** - The choice set to be displayed. - */ -@property (strong, nonatomic, readonly) SDLChoiceSet *choiceSet; - -/** - The choice set item the user selected. - */ -@property (strong, nonatomic, readonly, nullable) SDLChoiceCell *selectedCell; - -/** - How the user selected the choice set item: either from the menu or through voice-recognition. - */ -@property (strong, nonatomic, readonly, nullable) SDLTriggerSource selectedTriggerSource; - -/** - The row number of the choice set item the user selected. - */ -@property (assign, nonatomic, readonly) NSUInteger selectedCellRow; - -/** - An operation to present a choice set. - - @param connectionManager The connection manager - @param choiceSet The choice set to be displayed - @param mode If the set should be presented for the user to interact via voice, touch, or both - @param originalKeyboardProperties The keyboard configuration - @param keyboardDelegate The keyboard delegate called when the user interacts with the keyboard - @param cancelID A unique ID for this specific choice set that allows cancellation through the `CancelInteraction` RPC. - @return A SDLPresentChoiceSetOperation object - */ -- (instancetype)initWithConnectionManager:(id)connectionManager choiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode keyboardProperties:(nullable SDLKeyboardProperties *)originalKeyboardProperties keyboardDelegate:(nullable id)keyboardDelegate cancelID:(UInt16)cancelID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.m deleted file mode 100644 index 3787fb9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentChoiceSetOperation.m +++ /dev/null @@ -1,343 +0,0 @@ -// -// SDLPresentChoiceSetOperation.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/24/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLPresentChoiceSetOperation.h" - -#import "SDLCancelInteraction.h" -#import "SDLChoiceCell.h" -#import "SDLChoiceSet.h" -#import "SDLChoiceSetDelegate.h" -#import "SDLConnectionManagerType.h" -#import "SDLGlobals.h" -#import "SDLKeyboardDelegate.h" -#import "SDLKeyboardProperties.h" -#import "SDLLogMacros.h" -#import "SDLNotificationConstants.h" -#import "SDLOnKeyboardInput.h" -#import "SDLPerformInteraction.h" -#import "SDLPerformInteractionResponse.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLSetGlobalProperties.h" -#import "SDLVersion.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLChoiceCell() - -@property (assign, nonatomic) UInt16 choiceId; - -@end - -@interface SDLChoiceSet() - -@property (copy, nonatomic) SDLChoiceSetCanceledHandler canceledHandler; - - -@end - -@interface SDLPresentChoiceSetOperation() - -@property (strong, nonatomic) NSUUID *operationId; -@property (weak, nonatomic) id connectionManager; -@property (strong, nonatomic, readwrite) SDLChoiceSet *choiceSet; -@property (strong, nonatomic) SDLInteractionMode presentationMode; -@property (strong, nonatomic, nullable) SDLKeyboardProperties *originalKeyboardProperties; -@property (strong, nonatomic, nullable) SDLKeyboardProperties *keyboardProperties; -@property (weak, nonatomic) id keyboardDelegate; - -@property (strong, nonatomic, readonly) SDLPerformInteraction *performInteraction; -@property (strong, nonatomic, readonly) SDLLayoutMode layoutMode; -@property (strong, nonatomic, readonly) NSArray *> *choiceIds; -@property (assign, nonatomic) UInt16 cancelId; -@property (assign, nonatomic) BOOL updatedKeyboardProperties; - -@property (copy, nonatomic, nullable) NSError *internalError; -@property (strong, nonatomic, readwrite, nullable) SDLChoiceCell *selectedCell; -@property (strong, nonatomic, readwrite, nullable) SDLTriggerSource selectedTriggerSource; -@property (assign, nonatomic, readwrite) NSUInteger selectedCellRow; - -@end - -@implementation SDLPresentChoiceSetOperation - -- (instancetype)initWithConnectionManager:(id)connectionManager choiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode keyboardProperties:(nullable SDLKeyboardProperties *)originalKeyboardProperties keyboardDelegate:(nullable id)keyboardDelegate cancelID:(UInt16)cancelID { - self = [super init]; - if (!self) { return self; } - - _connectionManager = connectionManager; - _choiceSet = choiceSet; - - __weak typeof(self) weakSelf = self; - self.choiceSet.canceledHandler = ^{ - [weakSelf sdl_cancelInteraction]; - }; - - _presentationMode = mode; - _operationId = [NSUUID UUID]; - - _originalKeyboardProperties = originalKeyboardProperties; - _keyboardProperties = originalKeyboardProperties; - _keyboardDelegate = keyboardDelegate; - _cancelId = cancelID; - - _selectedCellRow = NSNotFound; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_keyboardInputNotification:) name:SDLDidReceiveKeyboardInputNotification object:nil]; - - [self sdl_start]; -} - -- (void)sdl_start { - // Check if we're using a keyboard (searchable) choice set and setup keyboard properties if we need to - if (self.keyboardDelegate != nil && [self.keyboardDelegate respondsToSelector:@selector(customKeyboardConfiguration)]) { - SDLKeyboardProperties *customProperties = self.keyboardDelegate.customKeyboardConfiguration; - if (customProperties != nil) { - self.keyboardProperties = customProperties; - } - } - - [self sdl_updateKeyboardPropertiesWithCompletionHandler:^{ - if (self.isCancelled) { - [self finishOperation]; - return; - } - - [self sdl_presentChoiceSet]; - }]; -} - -#pragma mark - Sending Requests - -- (void)sdl_updateKeyboardPropertiesWithCompletionHandler:(nullable void(^)(void))completionHandler { - if (self.keyboardProperties == nil) { - if (completionHandler != nil) { - completionHandler(); - } - return; - } - - SDLSetGlobalProperties *setProperties = [[SDLSetGlobalProperties alloc] init]; - setProperties.keyboardProperties = self.keyboardProperties; - - __weak typeof(self) weakself = self; - [self.connectionManager sendConnectionRequest:setProperties withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error != nil) { - SDLLogE(@"Error setting keyboard properties to new value: %@, with error: %@", request, error); - } - - weakself.updatedKeyboardProperties = YES; - - if (completionHandler != nil) { - completionHandler(); - } - }]; -} - -- (void)sdl_presentChoiceSet { - __weak typeof(self) weakself = self; - [self.connectionManager sendConnectionRequest:self.performInteraction withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error != nil) { - SDLLogE(@"Presenting choice set failed with response: %@, error: %@", response, error); - weakself.internalError = error; - - [weakself finishOperation]; - return; - } - - SDLPerformInteractionResponse *performResponse = (SDLPerformInteractionResponse *)response; - [weakself sdl_setSelectedCellWithId:performResponse.choiceID]; - weakself.selectedTriggerSource = performResponse.triggerSource; - - [weakself finishOperation]; - }]; -} - -#pragma mark - Helpers - -- (void)sdl_setSelectedCellWithId:(NSNumber *)cellId { - __weak typeof(self) weakself = self; - [self.choiceSet.choices enumerateObjectsUsingBlock:^(SDLChoiceCell * _Nonnull cell, NSUInteger i, BOOL * _Nonnull stop) { - if (cell.choiceId == cellId.unsignedIntValue) { - weakself.selectedCell = cell; - weakself.selectedCellRow = i; - } - }]; -} - -/** - * Cancels the choice set. If the choice set has not yet been sent to Core, it will not be sent. If the choice set is already presented on Core, the choice set will be immediately dismissed. Canceling an already presented choice set will only work if connected to Core versions 6.0+. On older versions of Core, the choice set will not be dismissed. - */ -- (void)sdl_cancelInteraction { - if (self.isFinished) { - SDLLogW(@"This operation has already finished so it can not be canceled."); - return; - } else if (self.isCancelled) { - SDLLogW(@"This operation has already been canceled. It will be finished at some point during the operation."); - return; - } else if (self.isExecuting) { - if ([SDLGlobals.sharedGlobals.rpcVersion isLessThanVersion:[[SDLVersion alloc] initWithMajor:6 minor:0 patch:0]]) { - SDLLogE(@"Canceling a choice set is not supported on this head unit"); - return; - } - - SDLLogD(@"Canceling the presented choice set interaction"); - - SDLCancelInteraction *cancelInteraction = [[SDLCancelInteraction alloc] initWithPerformInteractionCancelID:self.cancelId]; - - __weak typeof(self) weakSelf = self; - [self.connectionManager sendConnectionRequest:cancelInteraction withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error != nil) { - weakSelf.internalError = error; - SDLLogE(@"Error canceling the presented choice set: %@, with error: %@", request, error); - return; - } - SDLLogD(@"The presented choice set was canceled successfully"); - }]; - } else { - SDLLogD(@"Canceling a choice set that has not yet been sent to Core"); - [self cancel]; - } -} - -#pragma mark - Getters - -- (SDLPerformInteraction *)performInteraction { - SDLPerformInteraction *performInteraction = [[SDLPerformInteraction alloc] init]; - performInteraction.interactionMode = self.presentationMode; - performInteraction.initialText = self.choiceSet.title; - performInteraction.initialPrompt = self.choiceSet.initialPrompt; - performInteraction.helpPrompt = self.choiceSet.helpPrompt; - performInteraction.timeoutPrompt = self.choiceSet.timeoutPrompt; - performInteraction.vrHelp = self.choiceSet.helpList; - performInteraction.timeout = @((NSUInteger)(self.choiceSet.timeout * 1000)); - performInteraction.interactionLayout = self.layoutMode; - performInteraction.interactionChoiceSetIDList = self.choiceIds; - performInteraction.cancelID = @(self.cancelId); - - return performInteraction; -} - -- (SDLLayoutMode)layoutMode { - switch (self.choiceSet.layout) { - case SDLChoiceSetLayoutList: - return self.keyboardDelegate ? SDLLayoutModeListWithSearch : SDLLayoutModeListOnly; - case SDLChoiceSetLayoutTiles: - return self.keyboardDelegate ? SDLLayoutModeIconWithSearch : SDLLayoutModeIconOnly; - } -} - -- (NSArray *> *)choiceIds { - NSMutableArray *> *choiceIds = [NSMutableArray arrayWithCapacity:self.choiceSet.choices.count]; - for (SDLChoiceCell *cell in self.choiceSet.choices) { - [choiceIds addObject:@(cell.choiceId)]; - } - - return [choiceIds copy]; -} - -#pragma mark - SDL Notifications - -- (void)sdl_keyboardInputNotification:(SDLRPCNotificationNotification *)notification { - if (self.isCancelled) { - [self finishOperation]; - return; - } - - if (self.keyboardDelegate == nil) { return; } - SDLOnKeyboardInput *onKeyboard = notification.notification; - - if ([self.keyboardDelegate respondsToSelector:@selector(keyboardDidSendEvent:text:)]) { - [self.keyboardDelegate keyboardDidSendEvent:onKeyboard.event text:onKeyboard.data]; - } - - __weak typeof(self) weakself = self; - if ([onKeyboard.event isEqualToEnum:SDLKeyboardEventVoice] || [onKeyboard.event isEqualToEnum:SDLKeyboardEventSubmitted]) { - // Submit voice or text - [self.keyboardDelegate userDidSubmitInput:onKeyboard.data withEvent:onKeyboard.event]; - } else if ([onKeyboard.event isEqualToEnum:SDLKeyboardEventKeypress]) { - // Notify of keypress - if ([self.keyboardDelegate respondsToSelector:@selector(updateAutocompleteWithInput:autoCompleteResultsHandler:)]) { - [self.keyboardDelegate updateAutocompleteWithInput:onKeyboard.data autoCompleteResultsHandler:^(NSArray * _Nullable updatedAutoCompleteList) { - NSArray *newList = nil; - if (updatedAutoCompleteList.count > 100) { - newList = [updatedAutoCompleteList subarrayWithRange:NSMakeRange(0, 100)]; - } else { - newList = updatedAutoCompleteList; - } - - weakself.keyboardProperties.autoCompleteList = (newList.count > 0) ? newList : @[]; - weakself.keyboardProperties.autoCompleteText = (newList.count > 0) ? newList.firstObject : nil; - [weakself sdl_updateKeyboardPropertiesWithCompletionHandler:nil]; - }]; - } else if ([self.keyboardDelegate respondsToSelector:@selector(updateAutocompleteWithInput:completionHandler:)]) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [self.keyboardDelegate updateAutocompleteWithInput:onKeyboard.data completionHandler:^(NSString * _Nullable updatedAutocompleteText) { - weakself.keyboardProperties.autoCompleteText = updatedAutocompleteText; - [weakself sdl_updateKeyboardPropertiesWithCompletionHandler:nil]; - }]; -#pragma clang diagnostic pop - } - - if ([self.keyboardDelegate respondsToSelector:@selector(updateCharacterSetWithInput:completionHandler:)]) { - [self.keyboardDelegate updateCharacterSetWithInput:onKeyboard.data completionHandler:^(NSArray *updatedCharacterSet) { - weakself.keyboardProperties.limitedCharacterList = updatedCharacterSet; - [self sdl_updateKeyboardPropertiesWithCompletionHandler:nil]; - }]; - } - } else if ([onKeyboard.event isEqualToEnum:SDLKeyboardEventAborted] || [onKeyboard.event isEqualToEnum:SDLKeyboardEventCancelled]) { - // Notify of abort / cancellation - [self.keyboardDelegate keyboardDidAbortWithReason:onKeyboard.event]; - } -} - -#pragma mark - Property Overrides - -- (void)finishOperation { - [[NSNotificationCenter defaultCenter] removeObserver:self]; - - if (self.keyboardProperties == nil) { - [super finishOperation]; - return; - } - - // We need to reset the keyboard properties - SDLSetGlobalProperties *setProperties = [[SDLSetGlobalProperties alloc] init]; - setProperties.keyboardProperties = self.originalKeyboardProperties; - - [self.connectionManager sendConnectionRequest:setProperties withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error != nil) { - SDLLogE(@"Error resetting keyboard properties to values: %@, with error: %@", request, error); - } - - [super finishOperation]; - }]; -} - -- (nullable NSString *)name { - return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityNormal; -} - -- (nullable NSError *)error { - return self.internalError; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.h deleted file mode 100644 index 9a5a6cf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// SDLPresentKeyboardOperation.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/24/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLAsynchronousOperation.h" -#import "NSNumber+NumberType.h" - -@class SDLKeyboardProperties; - -@protocol SDLConnectionManagerType; -@protocol SDLKeyboardDelegate; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPresentKeyboardOperation : SDLAsynchronousOperation - -/** - A unique ID that can be used to cancel this keyboard. - */ -@property (assign, nonatomic, readonly) UInt16 cancelId; - -/** - An operation to present a keyboard. - - @param connectionManager The connection manager - @param originalKeyboardProperties The keyboard configuration - @param initialText The initial text within the keyboard input field. It will disappear once the user selects the field in order to enter text - @param keyboardDelegate The keyboard delegate called when the user interacts with the keyboard - @param cancelID An ID for this specific keyboard to allow cancellation through the `CancelInteraction` RPC. - @return A SDLPresentKeyboardOperation object - */ -- (instancetype)initWithConnectionManager:(id)connectionManager keyboardProperties:(SDLKeyboardProperties *)originalKeyboardProperties initialText:(NSString *)initialText keyboardDelegate:(id)keyboardDelegate cancelID:(UInt16)cancelID; - -/** - Cancels the keyboard-only interface if it is currently showing. If the keyboard has not yet been sent to Core, it will not be sent. - - This will only dismiss an already presented keyboard if connected to head units running SDL 6.0+. - */ -- (void)dismissKeyboard; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.m deleted file mode 100644 index 27d865e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresentKeyboardOperation.m +++ /dev/null @@ -1,252 +0,0 @@ -// -// SDLPresentKeyboardOperation.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/24/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLPresentKeyboardOperation.h" - -#import "SDLCancelInteraction.h" -#import "SDLConnectionManagerType.h" -#import "SDLGlobals.h" -#import "SDLKeyboardDelegate.h" -#import "SDLKeyboardProperties.h" -#import "SDLLogMacros.h" -#import "SDLNotificationConstants.h" -#import "SDLOnKeyboardInput.h" -#import "SDLPerformInteraction.h" -#import "SDLPerformInteractionResponse.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLSetGlobalProperties.h" -#import "SDLVersion.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPresentKeyboardOperation() - -@property (strong, nonatomic) NSUUID *operationId; -@property (weak, nonatomic) id connectionManager; -@property (weak, nonatomic) id keyboardDelegate; -@property (copy, nonatomic) NSString *initialText; -@property (strong, nonatomic) SDLKeyboardProperties *originalKeyboardProperties; -@property (strong, nonatomic) SDLKeyboardProperties *keyboardProperties; -@property (assign, nonatomic, readwrite) UInt16 cancelId; - -@property (strong, nonatomic, readonly) SDLPerformInteraction *performInteraction; - -@property (copy, nonatomic, nullable) NSError *internalError; - -@end - -@implementation SDLPresentKeyboardOperation - -- (instancetype)initWithConnectionManager:(id)connectionManager keyboardProperties:(SDLKeyboardProperties *)originalKeyboardProperties initialText:(NSString *)initialText keyboardDelegate:(id)keyboardDelegate cancelID:(UInt16)cancelID { - self = [super init]; - if (!self) { return self; } - - _connectionManager = connectionManager; - _initialText = initialText; - _keyboardDelegate = keyboardDelegate; - _originalKeyboardProperties = originalKeyboardProperties; - _keyboardProperties = originalKeyboardProperties; - _cancelId = cancelID; - _operationId = [NSUUID UUID]; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_keyboardInputNotification:) name:SDLDidReceiveKeyboardInputNotification object:nil]; - - [self sdl_start]; -} - -- (void)sdl_start { - if (self.keyboardDelegate != nil && [self.keyboardDelegate respondsToSelector:@selector(customKeyboardConfiguration)]) { - SDLKeyboardProperties *customProperties = self.keyboardDelegate.customKeyboardConfiguration; - if (customProperties != nil) { - self.keyboardProperties = customProperties; - } - } - - [self sdl_updateKeyboardPropertiesWithCompletionHandler:^{ - if (self.isCancelled) { - [self finishOperation]; - return; - } - - [self sdl_presentKeyboard]; - }]; -} - -#pragma mark - Sending Requests - -- (void)sdl_updateKeyboardPropertiesWithCompletionHandler:(nullable void(^)(void))completionHandler { - SDLSetGlobalProperties *setProperties = [[SDLSetGlobalProperties alloc] init]; - setProperties.keyboardProperties = self.keyboardProperties; - - [self.connectionManager sendConnectionRequest:setProperties withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error != nil) { - SDLLogE(@"Error setting keyboard properties to new value: %@, with error: %@", request, error); - } - - if (completionHandler != nil) { - completionHandler(); - } - }]; -} - -- (void)sdl_presentKeyboard { - [self.connectionManager sendConnectionRequest:self.performInteraction withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (self.isCancelled) { - [self finishOperation]; - return; - } - - if (error != nil) { - self.internalError = error; - } - - [self finishOperation]; - }]; -} - -- (void)dismissKeyboard { - if (self.isFinished) { - SDLLogW(@"This operation has already finished so it can not be canceled."); - return; - } else if (self.isCancelled) { - SDLLogW(@"This operation has already been canceled. It will be finished at some point during the operation."); - return; - } else if (self.isExecuting) { - if ([SDLGlobals.sharedGlobals.rpcVersion isLessThanVersion:[[SDLVersion alloc] initWithMajor:6 minor:0 patch:0]]) { - SDLLogE(@"Canceling a keyboard is not supported on this head unit"); - return; - } - - SDLLogD(@"Canceling the presented keyboard"); - - SDLCancelInteraction *cancelInteraction = [[SDLCancelInteraction alloc] initWithPerformInteractionCancelID:self.cancelId]; - - __weak typeof(self) weakSelf = self; - [self.connectionManager sendConnectionRequest:cancelInteraction withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error != nil) { - weakSelf.internalError = error; - SDLLogE(@"Error canceling the keyboard: %@, with error: %@", request, error); - return; - } - SDLLogD(@"The presented keyboard was canceled successfully"); - }]; - } else { - SDLLogD(@"Canceling a keyboard that has not yet been sent to Core"); - [self cancel]; - } -} - -#pragma mark - Private Getters / Setters - -- (SDLPerformInteraction *)performInteraction { - SDLPerformInteraction *performInteraction = [[SDLPerformInteraction alloc] init]; - performInteraction.initialText = self.initialText; - performInteraction.interactionMode = SDLInteractionModeManualOnly; - performInteraction.interactionChoiceSetIDList = @[]; - performInteraction.interactionLayout = SDLLayoutModeKeyboard; - performInteraction.cancelID = @(self.cancelId); - - return performInteraction; -} - -#pragma mark - Notification Observers - -- (void)sdl_keyboardInputNotification:(SDLRPCNotificationNotification *)notification { - if (self.isCancelled) { - [self finishOperation]; - return; - } - - if (self.keyboardDelegate == nil) { return; } - SDLOnKeyboardInput *onKeyboard = notification.notification; - - if ([self.keyboardDelegate respondsToSelector:@selector(keyboardDidSendEvent:text:)]) { - [self.keyboardDelegate keyboardDidSendEvent:onKeyboard.event text:onKeyboard.data]; - } - - __weak typeof(self) weakself = self; - if ([onKeyboard.event isEqualToEnum:SDLKeyboardEventVoice] || [onKeyboard.event isEqualToEnum:SDLKeyboardEventSubmitted]) { - // Submit voice or text - [self.keyboardDelegate userDidSubmitInput:onKeyboard.data withEvent:onKeyboard.event]; - } else if ([onKeyboard.event isEqualToEnum:SDLKeyboardEventKeypress]) { - // Notify of keypress - if ([self.keyboardDelegate respondsToSelector:@selector(updateAutocompleteWithInput:autoCompleteResultsHandler:)]) { - [self.keyboardDelegate updateAutocompleteWithInput:onKeyboard.data autoCompleteResultsHandler:^(NSArray * _Nullable updatedAutoCompleteList) { - NSArray *newList = nil; - if (updatedAutoCompleteList.count > 100) { - newList = [updatedAutoCompleteList subarrayWithRange:NSMakeRange(0, 100)]; - } else { - newList = updatedAutoCompleteList; - } - - weakself.keyboardProperties.autoCompleteList = (newList.count > 0) ? newList : @[]; - weakself.keyboardProperties.autoCompleteText = (newList.count > 0) ? newList.firstObject : nil; - [weakself sdl_updateKeyboardPropertiesWithCompletionHandler:nil]; - }]; - } else if ([self.keyboardDelegate respondsToSelector:@selector(updateAutocompleteWithInput:completionHandler:)]) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [self.keyboardDelegate updateAutocompleteWithInput:onKeyboard.data completionHandler:^(NSString * _Nullable updatedAutocompleteText) { - weakself.keyboardProperties.autoCompleteText = updatedAutocompleteText; - [weakself sdl_updateKeyboardPropertiesWithCompletionHandler:nil]; - }]; -#pragma clang diagnostic pop - } - - if ([self.keyboardDelegate respondsToSelector:@selector(updateCharacterSetWithInput:completionHandler:)]) { - [self.keyboardDelegate updateCharacterSetWithInput:onKeyboard.data completionHandler:^(NSArray *updatedCharacterSet) { - weakself.keyboardProperties.limitedCharacterList = updatedCharacterSet; - [self sdl_updateKeyboardPropertiesWithCompletionHandler:nil]; - }]; - } - } else if ([onKeyboard.event isEqualToEnum:SDLKeyboardEventAborted] || [onKeyboard.event isEqualToEnum:SDLKeyboardEventCancelled]) { - // Notify of abort / cancellation - [self.keyboardDelegate keyboardDidAbortWithReason:onKeyboard.event]; - } -} - -#pragma mark - Property Overrides - -- (nullable NSString *)name { - return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityNormal; -} - -- (void)finishOperation { - [[NSNotificationCenter defaultCenter] removeObserver:self]; - - // We need to reset the keyboard properties - SDLSetGlobalProperties *setProperties = [[SDLSetGlobalProperties alloc] init]; - setProperties.keyboardProperties = self.originalKeyboardProperties; - - [self.connectionManager sendConnectionRequest:setProperties withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error != nil) { - SDLLogE(@"Error resetting keyboard properties to values: %@, with error: %@", request, error); - } - - [super finishOperation]; - }]; -} - -- (nullable NSError *)error { - return self.internalError; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresetBankCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresetBankCapabilities.h deleted file mode 100644 index a737616..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresetBankCapabilities.h +++ /dev/null @@ -1,25 +0,0 @@ -// SDLPresetBankCapabilities.h -// - - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Contains information about on-screen preset capabilities. - * - * @since SDL 2.0 - */ -@interface SDLPresetBankCapabilities : SDLRPCStruct - -/** - * If Onscreen custom presets are available. - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *onScreenPresetsAvailable; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresetBankCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresetBankCapabilities.m deleted file mode 100644 index 218a462..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPresetBankCapabilities.m +++ /dev/null @@ -1,25 +0,0 @@ -// SDLPresetBankCapabilities.m -// - - -#import "SDLPresetBankCapabilities.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPresetBankCapabilities - -- (void)setOnScreenPresetsAvailable:(NSNumber *)onScreenPresetsAvailable { - [self.store sdl_setObject:onScreenPresetsAvailable forName:SDLRPCParameterNameOnScreenPresetsAvailable]; -} - -- (NSNumber *)onScreenPresetsAvailable { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameOnScreenPresetsAvailable ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrimaryAudioSource.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrimaryAudioSource.h deleted file mode 100644 index c02bd09..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrimaryAudioSource.h +++ /dev/null @@ -1,72 +0,0 @@ -// SDLPrimaryAudioSource.h -// - - -#import "SDLEnum.h" - -/** - * Reflects the current primary audio source of SDL (if selected). Used in DeviceStatus. - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLPrimaryAudioSource SDL_SWIFT_ENUM; - -/** - * Currently no source selected - */ -extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceNoSourceSelected; - -/** - * USB is current source - */ -extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceUSB; - -/** - * USB2 is current source - */ -extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceUSB2; - -/** - * Bluetooth Stereo is current source - */ -extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceBluetoothStereo; - -/** - * Line in is current source - */ -extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceLineIn; - -/** - * iPod is current source - */ -extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceIpod; - -/** - * Mobile app is current source - */ -extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceMobileApp; - -/** - * @abstract CD is current source - */ -extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceCD; - -/** - * @abstract Radio frequency AM is current source - */ -extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceAM; - -/** - * @abstract Radio frequency FM is current source - */ -extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceFM; - -/** - * @abstract Radio frequency XM is current source - */ -extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceXM; - -/** - * @abstract Radio frequency DAB is current source - */ -extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceDAB; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrimaryAudioSource.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrimaryAudioSource.m deleted file mode 100644 index c9764cb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrimaryAudioSource.m +++ /dev/null @@ -1,19 +0,0 @@ -// SDLPrimaryAudioSource.m -// - - -#import "SDLPrimaryAudioSource.h" - -SDLPrimaryAudioSource const SDLPrimaryAudioSourceNoSourceSelected = @"NO_SOURCE_SELECTED"; -SDLPrimaryAudioSource const SDLPrimaryAudioSourceUSB = @"USB"; -SDLPrimaryAudioSource const SDLPrimaryAudioSourceUSB2 = @"USB2"; -SDLPrimaryAudioSource const SDLPrimaryAudioSourceBluetoothStereo = @"BLUETOOTH_STEREO_BTST"; -SDLPrimaryAudioSource const SDLPrimaryAudioSourceLineIn = @"LINE_IN"; -SDLPrimaryAudioSource const SDLPrimaryAudioSourceIpod = @"IPOD"; -SDLPrimaryAudioSource const SDLPrimaryAudioSourceMobileApp = @"MOBILE_APP"; -SDLPrimaryAudioSource const SDLPrimaryAudioSourceCD = @"CD"; -SDLPrimaryAudioSource const SDLPrimaryAudioSourceRadioTuner = @"RADIO_TUNER"; -SDLPrimaryAudioSource const SDLPrimaryAudioSourceAM = @"AM"; -SDLPrimaryAudioSource const SDLPrimaryAudioSourceFM = @"FM"; -SDLPrimaryAudioSource const SDLPrimaryAudioSourceXM = @"XM"; -SDLPrimaryAudioSource const SDLPrimaryAudioSourceDAB = @"DAB"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrioritizedObjectCollection.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrioritizedObjectCollection.h deleted file mode 100644 index 993f7d9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrioritizedObjectCollection.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// SDLPrioritizedOutputCollection.h -// SmartDeviceLink -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPrioritizedObjectCollection : NSObject - -/** - * Add a new object to a push-pop collection. The object will be added in a location based on the priority passed in. - * - * A lower priority number is considered to be "higher". This is because this class is generally used with RPC service numbers, and lower services preempt higher ones. - * - * @param object The object to be added to the priority collection - * @param priority The priority to use when determining the location of the object in the collection. A lower number is considered a higher priority - */ -- (void)addObject:(nullable id)object withPriority:(NSInteger)priority; - -/** - * Retreive the highest priority object from the collection. This also removes the object. - * - * @return The highest priority object retrieved from the collection. - */ -- (nullable id)nextObject; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrioritizedObjectCollection.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrioritizedObjectCollection.m deleted file mode 100644 index b28a99c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPrioritizedObjectCollection.m +++ /dev/null @@ -1,69 +0,0 @@ -// -// SDLPrioritizedOutputCollection.m -// SmartDeviceLink -// - -#import "SDLPrioritizedObjectCollection.h" -#import "SDLObjectWithPriority.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPrioritizedObjectCollection () { - NSMutableArray *privateArray; -} -@end - - -@implementation SDLPrioritizedObjectCollection - -- (instancetype)init { - self = [super init]; - if (self) { - privateArray = [NSMutableArray new]; - } - return self; -} - -- (void)addObject:(nullable id)object withPriority:(NSInteger)priority { - if (object == nil || [[NSNull null] isEqual:object]) { - return; - } - - SDLObjectWithPriority *newWrapper = [SDLObjectWithPriority objectWithObject:object priority:priority]; - - @synchronized(privateArray) { - // Find correct place to insert. - // Sorted in descending order. - BOOL lowerPriorityFound = NO; - NSUInteger currentCount = privateArray.count; - for (NSUInteger 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]; - } - } -} - -- (nullable instancetype)nextObject { - if (privateArray.count == 0) { - return nil; - } - - SDLObjectWithPriority *obj = nil; - @synchronized(privateArray) { - obj = (SDLObjectWithPriority *)[privateArray lastObject]; - [privateArray removeLastObject]; - } - - return obj.object; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.h deleted file mode 100644 index a9a21f6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.h +++ /dev/null @@ -1,156 +0,0 @@ -// SDLSmartDeviceLinkProtocol.h -// - -#import - -#import "SDLTransportType.h" -#import "SDLProtocolConstants.h" -#import "SDLProtocolDelegate.h" -#import "SDLSecurityType.h" -#import "SDLTransportDelegate.h" - -@class SDLEncryptionLifecycleManager; -@class SDLProtocolHeader; -@class SDLProtocolRecievedMessageRouter; -@class SDLRPCMessage; - -NS_ASSUME_NONNULL_BEGIN - -/** - * A protocol error type - * - * - SDLProtocolErrorNoSecurityManager: No security manager was provided - */ -typedef NS_ENUM(NSUInteger, SDLProtocolError) { - SDLProtocolErrorNoSecurityManager, -}; - -extern NSString *const SDLProtocolSecurityErrorDomain; - - -@interface SDLProtocol : NSObject - -/** - * Deprecated debug logging tool. - */ -@property (strong, nonatomic) NSString *debugConsoleGroupName; - -/** - * The transport layer for sending data between the app and Core - */ -@property (nullable, strong, nonatomic) id transport; - -/** - * A table for tracking all subscribers - * - * If you update protocolDelegateTable while the protocol is running, please make sure to guard with @synchronized. - */ -@property (nullable, strong, nonatomic) NSHashTable> *protocolDelegateTable; - -/** - * A security manager for sending encrypted data. - */ -@property (nullable, nonatomic, strong) id securityManager; - -/// The encryption manager for sending encrypted data -@property (nullable, nonatomic, weak) SDLEncryptionLifecycleManager *encryptionLifecycleManager; - -/** - * The app's id - */ -@property (nonatomic, copy) NSString *appId; - -/** - * The auth token, if any, returned with the `StartServiceACK` for the RPC service from the module. - */ -@property (strong, nonatomic, readonly, nullable) NSString *authToken; - -#pragma mark - Init -- (instancetype)init NS_UNAVAILABLE; - -/** - * Initialize the protocol with an encryption lifecycle manager - * - * @param transport The transport to send and receive data from - * @param encryptionManager An encryption lifecycle manager - * - * @return An instance of SDLProtocol - */ -- (instancetype)initWithTransport:(id)transport encryptionManager:(nullable SDLEncryptionLifecycleManager *)encryptionManager; - -#pragma mark - Lifecycle - -/// Starts the connected transport -- (void)start; - -/// Stops the connected transport -- (void)stopWithCompletionHandler:(void (^)(void))disconnectCompletionHandler; - -#pragma mark - Sending - -/** - * Pre-configure protocol header for specified service type - * - * This is used to initialize Session ID before starting a protocol. - * - * @param header The header which is applied to the service type - * @param serviceType A SDLServiceType object - * @return YES if the header is successfully set, NO otherwise - */ -- (BOOL)storeHeader:(SDLProtocolHeader *)header forServiceType:(SDLServiceType)serviceType; - -/** - * Sends a start service message to Core - * - * @param serviceType A SDLServiceType object - * @param payload The data to send in the message - */ -- (void)startServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload; - -/** - * Sends a secure start service message to Core - * - * @param serviceType A SDLServiceType object - * @param payload The data to send in the message - * @param tlsInitializationHandler Handler called when the app is authenticated via TLS handshake and a secure service has started. If a secure service can not be started an error message is returned. - */ -- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload tlsInitializationHandler:(void (^)(BOOL success, NSError *error))tlsInitializationHandler; - -/** - * Sends an end service message to Core - * - * @param serviceType A SDLServiceType object - */ -- (void)endServiceWithType:(SDLServiceType)serviceType; - -/** - * Sends a Register Secondary Transport control frame to Core - */ -- (void)registerSecondaryTransport; - -/** - * Sends an unencrypted RPC to Core - * - * @param message A SDLRPCMessage message - */ -- (void)sendRPC:(SDLRPCMessage *)message; - -/** - * Sends an unencrypted message to Core - * - * @param data The data to send - * @param serviceType A SDLServiceType object - */ -- (void)sendRawData:(NSData *)data withServiceType:(SDLServiceType)serviceType; - -/** - * Sends an encrypted message to Core - * - * @param data The data to send - * @param serviceType A SDLServiceType object - */ -- (void)sendEncryptedRawData:(NSData *)data onService:(SDLServiceType)serviceType; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.m deleted file mode 100644 index 31b5e4c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocol.m +++ /dev/null @@ -1,784 +0,0 @@ -// SDLProtocol.m -// - - -#import "SDLFunctionID.h" - -#import "SDLTransportType.h" -#import "SDLControlFramePayloadConstants.h" -#import "SDLControlFramePayloadEndService.h" -#import "SDLControlFramePayloadNak.h" -#import "SDLControlFramePayloadRegisterSecondaryTransportNak.h" -#import "SDLControlFramePayloadRPCStartService.h" -#import "SDLControlFramePayloadRPCStartServiceAck.h" -#import "SDLEncryptionLifecycleManager.h" -#import "SDLLogMacros.h" -#import "SDLGlobals.h" -#import "SDLPrioritizedObjectCollection.h" -#import "SDLProtocol.h" -#import "SDLProtocolHeader.h" -#import "SDLProtocolMessage.h" -#import "SDLProtocolMessageDisassembler.h" -#import "SDLProtocolReceivedMessageRouter.h" -#import "SDLRPCNotification.h" -#import "SDLRPCPayload.h" -#import "SDLRPCRequest.h" -#import "SDLRPCResponse.h" -#import "SDLSecurityType.h" -#import "SDLTimer.h" -#import "SDLVersion.h" -#import "SDLV2ProtocolHeader.h" - -NSString *const SDLProtocolSecurityErrorDomain = @"com.sdl.protocol.security"; - - -#pragma mark - SDLProtocol Private Interface - -typedef NSNumber SDLServiceTypeBox; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLProtocol () { - UInt32 _messageID; - SDLPrioritizedObjectCollection *_prioritizedCollection; -} - -@property (strong, nonatomic) NSMutableData *receiveBuffer; -@property (nullable, strong, nonatomic) SDLProtocolReceivedMessageRouter *messageRouter; -@property (strong, nonatomic) NSMutableDictionary *serviceHeaders; -@property (assign, nonatomic) int32_t hashId; - -// Readonly public properties -@property (strong, nonatomic, readwrite, nullable) NSString *authToken; - -@end - - -#pragma mark - SDLProtocol Implementation - -@implementation SDLProtocol - -#pragma mark - Lifecycle - -- (instancetype)initWithTransport:(id)transport encryptionManager:(nullable SDLEncryptionLifecycleManager *)encryptionManager { - self = [super init]; - if (!self) { return nil; } - - SDLLogV(@"Initializing protocol with transport: %@, encryption manager: %@", transport, encryptionManager); - _messageID = 0; - _hashId = SDLControlFrameInt32NotFound; - _prioritizedCollection = [[SDLPrioritizedObjectCollection alloc] init]; - _protocolDelegateTable = [NSHashTable weakObjectsHashTable]; - _serviceHeaders = [[NSMutableDictionary alloc] init]; - _messageRouter = [[SDLProtocolReceivedMessageRouter alloc] init]; - _messageRouter.delegate = self; - - _transport = transport; - _transport.delegate = self; - - _encryptionLifecycleManager = encryptionManager; - - return self; -} - -- (void)start { - SDLLogD(@"Starting protocol: %@", self); - [self.transport connect]; -} - -- (void)stopWithCompletionHandler:(void (^)(void))disconnectCompletionHandler { - SDLLogD(@"Stopping protocol: %@, disconnecting transport and stopping security manager", self); - [self.securityManager stop]; - [self.transport disconnectWithCompletionHandler:^{ - disconnectCompletionHandler(); - }]; -} - -#pragma mark - Service metadata -- (BOOL)storeHeader:(SDLProtocolHeader *)header forServiceType:(SDLServiceType)serviceType { - if (header == nil) { - return NO; - } - - SDLLogD(@"Storing SessionID %i of serviceType %i", header.sessionID, serviceType); - self.serviceHeaders[@(serviceType)] = [header copy]; - return YES; -} - -- (UInt8)sdl_retrieveSessionIDforServiceType:(SDLServiceType)serviceType { - SDLProtocolHeader *header = self.serviceHeaders[@(serviceType)]; - if (header == nil) { - // The first time the RPC service type is created, there's no header, so we don't need to warn. - if (serviceType != SDLServiceTypeRPC) { - SDLLogW(@"Warning: Tried to retrieve sessionID for serviceType %i, but no header is saved for that service type.", serviceType); - } - - return 0; - } - - return header.sessionID; -} - -#pragma mark - SDLTransportDelegate - -- (void)onTransportConnected { - SDLLogV(@"Transport connected, opening protocol"); - NSArray> *listeners; - @synchronized(self.protocolDelegateTable) { - listeners = self.protocolDelegateTable.allObjects; - } - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(onProtocolOpened)]) { - [listener onProtocolOpened]; - } - } -} - -- (void)onTransportDisconnected { - SDLLogV(@"Transport disconnected, closing protocol"); - NSArray> *listeners; - @synchronized(self.protocolDelegateTable) { - listeners = self.protocolDelegateTable.allObjects; - } - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(onProtocolClosed)]) { - [listener onProtocolClosed]; - } - } -} - -- (void)onDataReceived:(NSData *)receivedData { - [self sdl_handleBytesFromTransport:receivedData]; -} - -- (void)onError:(NSError *)error { - SDLLogV(@"Transport received an error: %@", error); - for (id listener in self.protocolDelegateTable.allObjects) { - if ([listener respondsToSelector:@selector(onTransportError:)]) { - [listener onTransportError:error]; - } - } -} - -#pragma mark - Start Service - -- (void)startServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload { - // No encryption, just build and send the message synchronously - SDLProtocolMessage *message = [self sdl_createStartServiceMessageWithType:serviceType encrypted:NO payload:payload]; - SDLLogD(@"Sending start service: %@", message); - [self sdl_sendDataToTransport:message.data onService:serviceType]; -} - -- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload tlsInitializationHandler:(void (^)(BOOL success, NSError *error))tlsInitializationHandler { - SDLLogD(@"Attempting to start TLS for service type: %hhu", serviceType); - [self sdl_initializeTLSEncryptionWithCompletionHandler:^(BOOL success, NSError *error) { - if (!success) { - // We can't start the service because we don't have encryption, return the error - tlsInitializationHandler(success, error); - BLOCK_RETURN; - } - - // TLS initialization succeeded. Build and send the message. - SDLProtocolMessage *message = [self sdl_createStartServiceMessageWithType:serviceType encrypted:YES payload:nil]; - SDLLogD(@"TLS initialized, sending start service for message: %@", message); - [self sdl_sendDataToTransport:message.data onService:serviceType]; - }]; -} - -- (SDLProtocolMessage *)sdl_createStartServiceMessageWithType:(SDLServiceType)serviceType encrypted:(BOOL)encryption payload:(nullable NSData *)payload { - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; - NSData *servicePayload = payload; - - header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeRPC]; - header.frameType = SDLFrameTypeControl; - header.serviceType = serviceType; - header.frameData = SDLFrameInfoStartService; - - // Sending a StartSession with the encrypted bit set causes module to initiate SSL Handshake with a ClientHello message, which should be handled by the 'processControlService' method. - header.encrypted = encryption; - - return [SDLProtocolMessage messageWithHeader:header andPayload:servicePayload]; -} - -- (void)sdl_initializeTLSEncryptionWithCompletionHandler:(void (^)(BOOL success, NSError *_Nullable error))completionHandler { - if (self.securityManager == nil) { - SDLLogE(@"Could not start streaming service, encryption was requested by the remote system but failed because there is no security manager set for this app."); - - if (completionHandler != nil) { - completionHandler(NO, [NSError errorWithDomain:SDLProtocolSecurityErrorDomain code:SDLProtocolErrorNoSecurityManager userInfo:nil]); - } - - return; - } - - SDLLogD(@"Telling security manager to initialize"); - [self.securityManager initializeWithAppId:self.appId completionHandler:^(NSError *_Nullable error) { - if (error) { - SDLLogE(@"Security Manager failed to initialize with error: %@", error); - - if (completionHandler != nil) { - completionHandler(NO, error); - } - } else { - if (completionHandler != nil) { - completionHandler(YES, nil); - } - } - }]; -} - - -#pragma mark - End Service - -- (void)endServiceWithType:(SDLServiceType)serviceType { - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; - header.frameType = SDLFrameTypeControl; - header.serviceType = serviceType; - header.frameData = SDLFrameInfoEndService; - header.sessionID = [self sdl_retrieveSessionIDforServiceType:serviceType]; - - // Assemble the payload, it's a full control frame if we're on 5.0+, it's just the hash id if we are not - NSData *payload = nil; - if (self.hashId != SDLControlFrameInt32NotFound) { - if([SDLGlobals sharedGlobals].protocolVersion.major > 4) { - SDLControlFramePayloadEndService *endServicePayload = [[SDLControlFramePayloadEndService alloc] initWithHashId:self.hashId]; - payload = endServicePayload.data; - } else { - payload = [NSData dataWithBytes:&_hashId length:sizeof(_hashId)]; - } - } - - SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:payload]; - SDLLogD(@"Sending end service: %@", message); - [self sdl_sendDataToTransport:message.data onService:serviceType]; -} - - -#pragma mark - Register Secondary Transport - -- (void)registerSecondaryTransport { - SDLLogV(@"Attempting to register the secondary transport"); - - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; - header.frameType = SDLFrameTypeControl; - header.serviceType = SDLServiceTypeControl; - header.frameData = SDLFrameInfoRegisterSecondaryTransport; - header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeControl]; - if ([SDLGlobals sharedGlobals].protocolVersion.major >= 2) { - [((SDLV2ProtocolHeader *)header) setMessageID:++_messageID]; - } - - SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:nil]; - SDLLogD(@"Sending register secondary transport: %@", message); - [self sdl_sendDataToTransport:message.data onService:SDLServiceTypeControl]; -} - - -#pragma mark - Send Data - -- (void)sendRPC:(SDLRPCMessage *)message { - if (!message.isPayloadProtected && [self.encryptionLifecycleManager rpcRequiresEncryption:message]) { - message.payloadProtected = YES; - } - - if (message.isPayloadProtected && !self.encryptionLifecycleManager.isEncryptionReady) { - SDLLogW(@"Encryption Manager not ready, request not sent (%@)", message); - return; - } - - [self sendRPC:message encrypted:message.isPayloadProtected error:nil]; -} - -- (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSError *__autoreleasing *)error { - NSParameterAssert(message != nil); - NSData *jsonData = [NSJSONSerialization dataWithJSONObject:[message serializeAsDictionary:(Byte)[SDLGlobals sharedGlobals].protocolVersion.major] options:kNilOptions error:error]; - - if (error != nil) { - SDLLogW(@"Error encoding JSON data: %@", *error); - } - - NSData *messagePayload = nil; - SDLLogV(@"Sending RPC: %@", message); - - // Build the message payload. Include the binary header if necessary - // VERSION DEPENDENT CODE - switch ([SDLGlobals sharedGlobals].protocolVersion.major) { - case 1: { - // No binary header in version 1 - messagePayload = jsonData; - } break; - case 2: // Fallthrough - case 3: // Fallthrough - case 4: // Fallthrough - case 5: { - // Build a binary header - // Serialize the RPC data into an NSData - SDLRPCPayload *rpcPayload = [[SDLRPCPayload alloc] init]; - rpcPayload.functionID = [[[SDLFunctionID sharedInstance] functionIdForName:message.name] unsignedIntValue]; - rpcPayload.jsonData = jsonData; - rpcPayload.binaryData = message.bulkData; - - // If it's a request or a response, we need to pull out the correlation ID, so we'll downcast - if ([message isKindOfClass:SDLRPCRequest.class]) { - rpcPayload.rpcType = SDLRPCMessageTypeRequest; - rpcPayload.correlationID = [((SDLRPCRequest *)message).correlationID unsignedIntValue]; - } else if ([message isKindOfClass:SDLRPCResponse.class]) { - rpcPayload.rpcType = SDLRPCMessageTypeResponse; - rpcPayload.correlationID = [((SDLRPCResponse *)message).correlationID unsignedIntValue]; - } else if ([message isKindOfClass:[SDLRPCNotification class]]) { - rpcPayload.rpcType = SDLRPCMessageTypeNotification; - } else { - NSAssert(NO, @"Unknown message type attempted to send. Type: %@", [message class]); - return NO; - } - - // If we're trying to encrypt, try to have the security manager encrypt it. Return if it fails. - // TODO: (Joel F.)[2016-02-09] We should assert if the service isn't setup for encryption. See [#350](https://github.com/smartdevicelink/sdl_ios/issues/350) - if (encryption) { - NSError *encryptError = nil; - - messagePayload = [self.securityManager encryptData:rpcPayload.data withError:&encryptError]; - - if (encryptError) { - SDLLogE(@"Error encrypting request! %@", encryptError); - } - } else { - messagePayload = rpcPayload.data; - } - - if (!messagePayload) { - return NO; - } - - } break; - default: { - NSAssert(NO, @"Attempting to send an RPC based on an unknown version number: %@, message: %@", @([SDLGlobals sharedGlobals].protocolVersion.major), message); - } break; - } - - // Build the protocol level header & message - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; - header.encrypted = encryption; - header.frameType = SDLFrameTypeSingle; - header.serviceType = (message.bulkData.length <= 0) ? SDLServiceTypeRPC : SDLServiceTypeBulkData; - header.frameData = SDLFrameInfoSingleFrame; - header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeRPC]; - - // V2+ messages need to have message ID property set. - if ([SDLGlobals sharedGlobals].protocolVersion.major >= 2) { - [((SDLV2ProtocolHeader *)header) setMessageID:++_messageID]; - } - - SDLProtocolMessage *protocolMessage = [SDLProtocolMessage messageWithHeader:header andPayload:messagePayload]; - - // See if the message is small enough to send in one transmission. If not, break it up into smaller messages and send. - if (protocolMessage.size < [[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]) { - SDLLogV(@"Sending protocol message: %@", protocolMessage); - [self sdl_sendDataToTransport:protocolMessage.data onService:SDLServiceTypeRPC]; - } else { - NSArray *messages = [SDLProtocolMessageDisassembler disassemble:protocolMessage withLimit:[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]]; - for (SDLProtocolMessage *smallerMessage in messages) { - SDLLogV(@"Sending protocol message: %@", smallerMessage); - [self sdl_sendDataToTransport:smallerMessage.data onService:SDLServiceTypeRPC]; - } - } - - return YES; -} - -// Use for normal messages -- (void)sdl_sendDataToTransport:(NSData *)data onService:(NSInteger)priority { - [_prioritizedCollection addObject:data withPriority:priority]; - - NSData *dataToTransmit = nil; - while (dataToTransmit = (NSData *)[self->_prioritizedCollection nextObject]) { - [self.transport sendData:dataToTransmit]; - } -} - -- (void)sendRawData:(NSData *)data withServiceType:(SDLServiceType)serviceType { - [self sdl_sendRawData:data onService:serviceType encryption:NO]; -} - -- (void)sendEncryptedRawData:(NSData *)data onService:(SDLServiceType)serviceType { - [self sdl_sendRawData:data onService:serviceType encryption:YES]; -} - -- (void)sdl_sendRawData:(NSData *)data onService:(SDLServiceType)service encryption:(BOOL)encryption { - SDLV2ProtocolHeader *header = [[SDLV2ProtocolHeader alloc] initWithVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; - header.encrypted = encryption; - header.frameType = SDLFrameTypeSingle; - header.serviceType = service; - header.sessionID = [self sdl_retrieveSessionIDforServiceType:service]; - header.messageID = ++_messageID; - - if (encryption && data.length) { - NSError *encryptError = nil; - data = [self.securityManager encryptData:data withError:&encryptError]; - - if (encryptError) { - SDLLogE(@"Error attempting to encrypt raw data for service: %@, error: %@", @(service), encryptError); - } - } - - SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:data]; - - if (message.size < [[SDLGlobals sharedGlobals] mtuSizeForServiceType:service]) { - SDLLogV(@"Sending protocol message: %@", message); - [self sdl_sendDataToTransport:message.data onService:header.serviceType]; - } else { - NSArray *messages = [SDLProtocolMessageDisassembler disassemble:message withLimit:[[SDLGlobals sharedGlobals] mtuSizeForServiceType:service]]; - for (SDLProtocolMessage *smallerMessage in messages) { - SDLLogV(@"Sending protocol message: %@", smallerMessage); - [self sdl_sendDataToTransport:smallerMessage.data onService:header.serviceType]; - } - } -} - - -#pragma mark - Receive and Process Data - -// Turn received bytes into message objects. -- (void)sdl_handleBytesFromTransport:(NSData *)receivedData { - // Initialize the receive buffer which will contain bytes while messages are constructed. - if (self.receiveBuffer == nil) { - self.receiveBuffer = [NSMutableData dataWithCapacity:(4 * [[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC])]; - } - - // Save the data - [self.receiveBuffer appendData:receivedData]; - - [self sdl_processMessages]; -} - -- (void)sdl_processMessages { - UInt8 incomingVersion = [SDLProtocolHeader determineVersion:self.receiveBuffer]; - - // If we have enough bytes, create the header. - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:incomingVersion]; - NSUInteger headerSize = header.size; - if (self.receiveBuffer.length >= headerSize) { - [header parse:self.receiveBuffer]; - } else { - return; - } - - // If we have enough bytes, finish building the message. - SDLProtocolMessage *message = nil; - NSUInteger payloadSize = header.bytesInPayload; - NSUInteger messageSize = headerSize + payloadSize; - if (self.receiveBuffer.length >= messageSize) { - NSUInteger payloadOffset = headerSize; - NSUInteger payloadLength = payloadSize; - NSData *payload = [self.receiveBuffer subdataWithRange:NSMakeRange(payloadOffset, payloadLength)]; - - // If the message in encrypted and there is payload, try to decrypt it - if (header.encrypted && payload.length) { - NSError *decryptError = nil; - payload = [self.securityManager decryptData:payload withError:&decryptError]; - - if (decryptError) { - SDLLogE(@"Error attempting to decrypt a payload with error: %@", decryptError); - return; - } - } - - message = [SDLProtocolMessage messageWithHeader:header andPayload:payload]; - } else { - // Need to wait for more bytes. - SDLLogV(@"Protocol header complete, message incomplete, waiting for %ld more bytes. Header: %@", (long)(messageSize - self.receiveBuffer.length), header); - return; - } - - // Need to maintain the receiveBuffer, remove the bytes from it which we just processed. - self.receiveBuffer = [[self.receiveBuffer subdataWithRange:NSMakeRange(messageSize, self.receiveBuffer.length - messageSize)] mutableCopy]; - - // Pass on the message to the message router. - [self.messageRouter handleReceivedMessage:message]; - - // Call recursively until the buffer is empty or incomplete message is encountered - if (self.receiveBuffer.length > 0) { - [self sdl_processMessages]; - } -} - - -#pragma mark - SDLProtocolDelegate from SDLReceivedProtocolMessageRouter - -- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { - SDLLogD(@"Received start service ACK: %@", startServiceACK); - - // V5+ Packet - if (startServiceACK.header.version >= 5) { - switch (startServiceACK.header.serviceType) { - case SDLServiceTypeRPC: { - SDLControlFramePayloadRPCStartServiceAck *startServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithData:startServiceACK.payload]; - - if (startServiceACKPayload.mtu != SDLControlFrameInt64NotFound) { - [[SDLGlobals sharedGlobals] setDynamicMTUSize:(NSUInteger)startServiceACKPayload.mtu forServiceType:startServiceACK.header.serviceType]; - } - if (startServiceACKPayload.hashId != SDLControlFrameInt32NotFound) { - self.hashId = startServiceACKPayload.hashId; - } - - [SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion = (startServiceACKPayload.protocolVersion != nil) ? [SDLVersion versionWithString:startServiceACKPayload.protocolVersion] : [SDLVersion versionWithMajor:startServiceACK.header.version minor:0 patch:0]; - - self.authToken = [SDLGlobals.sharedGlobals.maxHeadUnitProtocolVersion isGreaterThanOrEqualToVersion:[[SDLVersion alloc] initWithMajor:5 minor:2 patch:0]] ? startServiceACKPayload.authToken : nil; - - // TODO: Hash id? - } break; - default: - break; - } - } else { // V4 and below packet - switch (startServiceACK.header.serviceType) { - case SDLServiceTypeRPC: { - [SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion = [SDLVersion versionWithMajor:startServiceACK.header.version minor:0 patch:0]; - } break; - default: - break; - } - } - - // Store the header of this service away for future use - self.serviceHeaders[@(startServiceACK.header.serviceType)] = [startServiceACK.header copy]; - - // Pass along to all the listeners - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(handleProtocolStartServiceACKMessage:)]) { - [listener handleProtocolStartServiceACKMessage:startServiceACK]; - } - } -} - -- (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceNAK { - [self sdl_logControlNAKPayload:startServiceNAK]; - - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(handleProtocolStartServiceNAKMessage:)]) { - [listener handleProtocolStartServiceNAKMessage:startServiceNAK]; - } - } -} - -- (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { - SDLLogD(@"End service ACK: %@", endServiceACK); - // Remove the session id - [self.serviceHeaders removeObjectForKey:@(endServiceACK.header.serviceType)]; - - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(handleProtocolEndServiceACKMessage:)]) { - [listener handleProtocolEndServiceACKMessage:endServiceACK]; - } - } -} - -- (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { - [self sdl_logControlNAKPayload:endServiceNAK]; - - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(handleProtocolEndServiceNAKMessage:)]) { - [listener handleProtocolEndServiceNAKMessage:endServiceNAK]; - } - } -} - -- (void)handleProtocolRegisterSecondaryTransportACKMessage:(SDLProtocolMessage *)registerSecondaryTransportACK { - SDLLogD(@"Register Secondary Transport ACK: %@", registerSecondaryTransportACK); - - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(handleProtocolRegisterSecondaryTransportACKMessage:)]) { - [listener handleProtocolRegisterSecondaryTransportACKMessage:registerSecondaryTransportACK]; - } - } -} - -- (void)handleProtocolRegisterSecondaryTransportNAKMessage:(SDLProtocolMessage *)registerSecondaryTransportNAK { - [self sdl_logControlNAKPayload:registerSecondaryTransportNAK]; - - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(handleProtocolRegisterSecondaryTransportNAKMessage:)]) { - [listener handleProtocolRegisterSecondaryTransportNAKMessage:registerSecondaryTransportNAK]; - } - } -} - -- (void)handleHeartbeatForSession:(Byte)session { - SDLLogV(@"Received a heartbeat"); - - // Respond with a heartbeat ACK - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; - header.frameType = SDLFrameTypeControl; - header.serviceType = SDLServiceTypeControl; - header.frameData = SDLFrameInfoHeartbeatACK; - header.sessionID = session; - SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:nil]; - [self sdl_sendDataToTransport:message.data onService:header.serviceType]; - - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(handleHeartbeatForSession:)]) { - [listener handleHeartbeatForSession:session]; - } - } -} - -- (void)handleHeartbeatACK { - SDLLogV(@"Received a heartbeat ACK"); - - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(handleHeartbeatACK)]) { - [listener handleHeartbeatACK]; - } - } -} - -- (void)handleTransportEventUpdateMessage:(SDLProtocolMessage *)transportEventUpdate { - SDLLogD(@"Received a transport event update: %@", transportEventUpdate); - - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(handleTransportEventUpdateMessage:)]) { - [listener handleTransportEventUpdateMessage:transportEventUpdate]; - } - } -} - -- (void)onProtocolMessageReceived:(SDLProtocolMessage *)msg { - // Control service (but not control frame type) messages are TLS handshake messages - if (msg.header.serviceType == SDLServiceTypeControl) { - [self sdl_processSecurityMessage:msg]; - return; - } - - SDLLogV(@"Other protocol message received: %@", msg); - - NSArray> *listeners = [self sdl_getProtocolListeners]; - for (id listener in listeners) { - if ([listener respondsToSelector:@selector(onProtocolMessageReceived:)]) { - [listener onProtocolMessageReceived:msg]; - } - } -} - -- (void)sdl_logControlNAKPayload:(SDLProtocolMessage *)nakMessage { - switch (nakMessage.header.frameData) { - case SDLFrameInfoStartServiceNACK: // fallthrough - case SDLFrameInfoEndServiceNACK: { - if (nakMessage.header.version >= 5) { - SDLControlFramePayloadNak *endServiceNakPayload = [[SDLControlFramePayloadNak alloc] initWithData:nakMessage.payload]; - NSArray *rejectedParams = endServiceNakPayload.rejectedParams; - SDLLogE(@"%@ service NAK'd, service type: %@, rejectedParams: %@", (nakMessage.header.frameData == SDLFrameInfoStartServiceNACK) ? @"Start" : @"End", @(nakMessage.header.serviceType), rejectedParams); - } else { - SDLLogE(@"NAK received message: %@", nakMessage); - } - } break; - case SDLFrameInfoRegisterSecondaryTransportNACK: { - SDLControlFramePayloadRegisterSecondaryTransportNak *payload = [[SDLControlFramePayloadRegisterSecondaryTransportNak alloc] initWithData:nakMessage.payload]; - SDLLogE(@"Register Secondary Transport NAK'd, reason: %@", payload.reason); - } break; - default: break; - } -} - -- (NSArray> *)sdl_getProtocolListeners { - @synchronized(self.protocolDelegateTable) { - return self.protocolDelegateTable.allObjects; - } -} - - -#pragma mark - TLS Handshake - -// TODO: These should be split out to a separate class to be tested properly -- (void)sdl_processSecurityMessage:(SDLProtocolMessage *)clientHandshakeMessage { - SDLLogD(@"Received a security message: %@", clientHandshakeMessage); - - if (self.securityManager == nil) { - SDLLogE(@"Failed to process security message because no security manager is set."); - return; - } - - // Misformatted handshake message, something went wrong - if (clientHandshakeMessage.payload.length <= 12) { - SDLLogE(@"Security message is malformed, less than 12 bytes. It does not have a protocol header."); - } - - // Tear off the binary header of the client protocol message to get at the actual TLS handshake - // TODO: (Joel F.)[2016-02-15] Should check for errors - NSData *clientHandshakeData = [clientHandshakeMessage.payload subdataWithRange:NSMakeRange(12, (clientHandshakeMessage.payload.length - 12))]; - - // Ask the security manager for server data based on the client data sent - NSError *handshakeError = nil; - NSData *serverHandshakeData = [self.securityManager runHandshakeWithClientData:clientHandshakeData error:&handshakeError]; - - // If the handshake went bad and the security library ain't happy, send over the failure to the module. This should result in an ACK with encryption off. - SDLProtocolMessage *serverSecurityMessage = nil; - if (serverHandshakeData == nil) { - SDLLogE(@"Error running TLS handshake procedure. Sending error to module. Error: %@", handshakeError); - - serverSecurityMessage = [self.class sdl_serverSecurityFailedMessageWithClientMessageHeader:clientHandshakeMessage.header messageId:++_messageID]; - } else { - // The handshake went fine, send the module the remaining handshake data - serverSecurityMessage = [self.class sdl_serverSecurityHandshakeMessageWithData:serverHandshakeData clientMessageHeader:clientHandshakeMessage.header messageId:++_messageID]; - } - - // Send the response or error message. If it's an error message, the module will ACK the Start Service without encryption. If it's a TLS handshake message, the module will ACK with encryption - SDLLogD(@"Sending security message: %@", serverSecurityMessage); - [self sdl_sendDataToTransport:serverSecurityMessage.data onService:SDLServiceTypeControl]; -} - -+ (SDLProtocolMessage *)sdl_serverSecurityHandshakeMessageWithData:(NSData *)data clientMessageHeader:(SDLProtocolHeader *)clientHeader messageId:(UInt32)messageId { - // This can't possibly be a v1 header because v1 does not have control protocol messages - SDLV2ProtocolHeader *serverMessageHeader = [SDLProtocolHeader headerForVersion:clientHeader.version]; - serverMessageHeader.encrypted = NO; - serverMessageHeader.frameType = SDLFrameTypeSingle; - serverMessageHeader.serviceType = SDLServiceTypeControl; - serverMessageHeader.frameData = SDLFrameInfoSingleFrame; - serverMessageHeader.sessionID = clientHeader.sessionID; - serverMessageHeader.messageID = messageId; - - // For a control service packet, we need a binary header with a function ID corresponding to what type of packet we're sending. - SDLRPCPayload *serverTLSPayload = [[SDLRPCPayload alloc] init]; - serverTLSPayload.functionID = 0x01; // TLS Handshake message - serverTLSPayload.rpcType = 0x00; - serverTLSPayload.correlationID = 0x00; - serverTLSPayload.binaryData = data; - - NSData *binaryData = serverTLSPayload.data; - - return [SDLProtocolMessage messageWithHeader:serverMessageHeader andPayload:binaryData]; -} - -+ (SDLProtocolMessage *)sdl_serverSecurityFailedMessageWithClientMessageHeader:(SDLProtocolHeader *)clientHeader messageId:(UInt32)messageId { - // This can't possibly be a v1 header because v1 does not have control protocol messages - SDLV2ProtocolHeader *serverMessageHeader = [SDLProtocolHeader headerForVersion:clientHeader.version]; - serverMessageHeader.encrypted = NO; - serverMessageHeader.frameType = SDLFrameTypeSingle; - serverMessageHeader.serviceType = SDLServiceTypeControl; - serverMessageHeader.frameData = SDLFrameInfoSingleFrame; - serverMessageHeader.sessionID = clientHeader.sessionID; - serverMessageHeader.messageID = messageId; - - // For a control service packet, we need a binary header with a function ID corresponding to what type of packet we're sending. - SDLRPCPayload *serverTLSPayload = [[SDLRPCPayload alloc] init]; - serverTLSPayload.functionID = 0x02; // TLS Error message - serverTLSPayload.rpcType = 0x02; - serverTLSPayload.correlationID = 0x00; - - NSData *binaryData = serverTLSPayload.data; - - // TODO: (Joel F.)[2016-02-15] This is supposed to have some JSON data and json data size - return [SDLProtocolMessage messageWithHeader:serverMessageHeader andPayload:binaryData]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolConstants.h deleted file mode 100644 index 6da05c0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolConstants.h +++ /dev/null @@ -1,98 +0,0 @@ -// -// SDLProtocolConstants.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/1/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import -/** - * The data packet's header and payload combination. - */ -typedef NS_ENUM(UInt8, SDLFrameType) { - /// Lowest-level type of packets. They can be sent over any of the defined services. They are used for the control of the services in which they are sent. - SDLFrameTypeControl = 0x00, - - /// Contains all the data for a particular packet in the payload. The majority of frames sent over the protocol utilize this frame type. - SDLFrameTypeSingle = 0x01, - - /// The First Frame in a multiple frame payload contains information about the entire sequence of frames so that the receiving end can correctly parse all the frames and reassemble the entire payload. The payload of this frame is only eight bytes and contains information regarding the rest of the sequence. - SDLFrameTypeFirst = 0x02, - - /// The Consecutive Frames in a multiple frame payload contain the actual raw data of the original payload. The parsed payload contained in each of the Consecutive Frames' payloads should be buffered until the entire sequence is complete. - SDLFrameTypeConsecutive = 0x03 -}; - -/** - * The data packet's format and priority. - */ -typedef NS_ENUM(UInt8, SDLServiceType) { - /// The lowest level service available. - SDLServiceTypeControl = 0x00, - - /// Used to send requests, responses, and notifications between an application and a head unit. - SDLServiceTypeRPC NS_SWIFT_NAME(rpc) = 0x07, - - /// The application can start the audio service to send PCM audio data to the head unit. After the StartService packet is sent and the ACK received, the payload for the Audio Service is only PCM audio data. - SDLServiceTypeAudio = 0x0A, - - /// The application can start the video service to send H.264 video data to the head unit. After the StartService packet is sent and the ACK received, the payload for the Video Service is only H.264 video data. - SDLServiceTypeVideo = 0x0B, - - /// Similar to the RPC Service but adds a bulk data field. The payload of a message sent via the Hybrid service consists of a Binary Header, JSON Data, and Bulk Data. - SDLServiceTypeBulkData = 0x0F -}; - -/** - * The data packet's available data. - */ -typedef NS_ENUM(UInt8, SDLFrameInfo) { - /// A ping packet that is sent to ensure the connection is still active and the service is still valid. - SDLFrameInfoHeartbeat = 0x00, - - /// Requests that a specific type of service is started. - SDLFrameInfoStartService = 0x01, - - /// Acknowledges that the specific service has been started successfully. - SDLFrameInfoStartServiceACK = 0x02, - - /// Negatively acknowledges that the specific service was not started. - SDLFrameInfoStartServiceNACK = 0x03, - - /// Requests that a specific type of service is ended. - SDLFrameInfoEndService = 0x04, - - /// Acknowledges that the specific service has been ended successfully. - SDLFrameInfoEndServiceACK = 0x05, - - /// Negatively acknowledges that the specific service was not ended or has not yet been started. - SDLFrameInfoEndServiceNACK = 0x06, - - /// Notifies that a Secondary Transport has been established. - SDLFrameInfoRegisterSecondaryTransport = 0x07, - - /// Acknowledges that the Secondary Transport has been recognized. - SDLFrameInfoRegisterSecondaryTransportACK = 0x08, - - /// Negatively acknowledges that the Secondary Transport has not been recognized. - SDLFrameInfoRegisterSecondaryTransportNACK = 0x09, - - /// Indicates the status or configuration of transport(s) is/are updated. - SDLFrameInfoTransportEventUpdate = 0xFD, - - /// Deprecated. - SDLFrameInfoServiceDataAck = 0xFE, - - /// Acknowledges that a Heartbeat control packet has been received. - SDLFrameInfoHeartbeatACK = 0xFF, - - /// Payload contains a single packet. - SDLFrameInfoSingleFrame = 0x00, // If frameType == Single (0x01) - - /// First frame in a multiple frame payload. - SDLFrameInfoFirstFrame = 0x00, // If frameType == First (0x02) - - /// Frame in a multiple frame payload. - SDLFrameInfoConsecutiveLastFrame = 0x00 // If frametype == Consecutive (0x03) -}; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolConstants.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolConstants.m deleted file mode 100644 index c60de84..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolConstants.m +++ /dev/null @@ -1,9 +0,0 @@ -// -// SDLProtocolConstants.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/1/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLProtocolConstants.h" diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolDelegate.h deleted file mode 100644 index 7b03033..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolDelegate.h +++ /dev/null @@ -1,89 +0,0 @@ -// SDLProtocolListener.h -// - -#import "SDLProtocolHeader.h" - -@class SDLProtocolMessage; - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLProtocolDelegate - -@optional - -#pragma mark - v4.7.0 protocol handlers - -/** - * Called when the message is a start service success message. - * - * @param startServiceACK A SDLProtocolMessage object - */ -- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK; - -/** - * Called when the message is a start service failed message. - * - * @param startServiceNAK A SDLProtocolMessage object - */ -- (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceNAK; - -/** - * Called when the message is a end service success message. - * - * @param endServiceACK A SDLProtocolMessage object - */ -- (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK; - -/** - * Called when the message is a end service failed message. - * - * @param endServiceNAK A SDLProtocolMessage object - */ -- (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK; -- (void)handleProtocolRegisterSecondaryTransportACKMessage:(SDLProtocolMessage *)registerSecondaryTransportACK; -- (void)handleProtocolRegisterSecondaryTransportNAKMessage:(SDLProtocolMessage *)registerSecondaryTransportNAK; -- (void)handleTransportEventUpdateMessage:(SDLProtocolMessage *)transportEventUpdate; - -#pragma mark - Older protocol handlers - -/** - * Called when the message is a heartbeat message. - * - * @param session Session number - */ -- (void)handleHeartbeatForSession:(Byte)session; - -/** - * Called when the message is a heartbeat success message. - */ -- (void)handleHeartbeatACK; - -/** - * Called when the message is protocol message. - * - * @param msg A SDLProtocolMessage object - */ -- (void)onProtocolMessageReceived:(SDLProtocolMessage *)msg; - -/** - * Called when the message is a protocol opened message. - */ -- (void)onProtocolOpened; - -/** - * Called when the message is a protocol closed message. - */ -- (void)onProtocolClosed; - -/** - * Called when an error is notified from transport. - * - * Note: currently, this is used only by TCP transport. - * - * @param error The type of the error - */ -- (void)onTransportError:(NSError *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolHeader.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolHeader.h deleted file mode 100644 index 4d9550a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolHeader.h +++ /dev/null @@ -1,105 +0,0 @@ -// SDLProtocolHeader.h -// - -#import - -#import "SDLProtocolConstants.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLProtocolHeader : NSObject { - UInt8 _version; - NSUInteger _size; -} - -/** - * The protocol version. The frame header differs between versions. - */ -@property (assign, nonatomic, readonly) UInt8 version; - -/** - * The total size of the data packet. - */ -@property (assign, nonatomic, readonly) NSUInteger size; - -/** - * Whether or not the data packet is encrypted. - * - * @note Only available in Protocol Version 2 and higher. - */ -@property (assign, nonatomic) BOOL encrypted; - -/** - * The data packet's header and payload combination. - */ -@property (assign, nonatomic) SDLFrameType frameType; - -/** - * The data packet's payload format and priority. Lower values for service type have higher delivery priority. - */ -@property (assign, nonatomic) SDLServiceType serviceType; - -/** - * The type of data in the packet. This differs based on the control frame type and the service type. - */ -@property (assign, nonatomic) SDLFrameInfo frameData; - -/** - * The session identifier. - */ -@property (assign, nonatomic) UInt8 sessionID; - -/** - * The payload size differs if the frame type is first frame or single or consecutive frame: - * First frame: The data size for a first frame is always 8 bytes. In the payload, the first four bytes denote the total size of the data contained in all consecutive frames, and the second four bytes denote the number of consecutive frames following this one. - * Single or consecutive frame: The total bytes in this frame's payload. - */ -@property (assign, nonatomic) UInt32 bytesInPayload; - -/** - * The initializer for the class. - * - * @return A SDLProtocolHeader object - */ -- (instancetype)init; - -/** - * Not implemented - * - * @return Unused - */ -- (nullable NSData *)data; - -/** - * Not implemented - * - * @param data Unused - */ -- (void)parse:(NSData *)data; - -/** - * Prints a description of the SDLProtocolHeader object. - * - * @return A string description of the SDLProtocolHeader object - */ -- (NSString *)description; - -/** - * Returns the correct header for the protocol version. - * - * @param version The protocol version - * @return A SDLProtocolHeader object - */ -+ (__kindof SDLProtocolHeader *)headerForVersion:(UInt8)version; - -/** - * For use in decoding a stream of bytes. - * - * @param data Bytes representing message (or beginning of message) - * @return The version number - */ -+ (UInt8)determineVersion:(NSData *)data; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolHeader.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolHeader.m deleted file mode 100644 index afe9372..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolHeader.m +++ /dev/null @@ -1,74 +0,0 @@ -// SDLProtocolHeader.m -// - - -#import "SDLProtocolHeader.h" -#import "SDLV1ProtocolHeader.h" -#import "SDLV2ProtocolHeader.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLProtocolHeader - -@synthesize version = _version; -@synthesize size = _size; - - -- (instancetype)init { - if (self = [super init]) { - _version = 0; - _size = 0; - } - return self; -} - -- (id)copyWithZone:(nullable NSZone *)zone { - [self doesNotRecognizeSelector:_cmd]; - return 0; -} - -- (nullable 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; -} - -+ (__kindof SDLProtocolHeader *)headerForVersion:(UInt8)version { - // VERSION DEPENDENT CODE - switch (version) { - case 1: { - return [[SDLV1ProtocolHeader alloc] init]; - } break; - case 2: // Fallthrough - case 3: // Fallthrough - case 4: // Fallthrough - case 5: { - return [[SDLV2ProtocolHeader alloc] initWithVersion:version]; - } break; - default: { - // Assume V2 header for unknown header versions and hope it doesn't break - return [[SDLV2ProtocolHeader alloc] initWithVersion:version]; - } break; - } -} - -// 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; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessage.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessage.h deleted file mode 100644 index 2fb741a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessage.h +++ /dev/null @@ -1,59 +0,0 @@ -// SDLSmartDeviceLinkProtocolMessage.h -// - -#import - -@class SDLProtocolHeader; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLProtocolMessage : NSObject - -/** - * The message's header. - */ -@property (strong, nonatomic) SDLProtocolHeader *header; - -/** - * The message's payload. - */ -@property (nullable, strong, nonatomic) NSData *payload; - -/** - * Returns the message's header and payload data. - */ -@property (strong, nonatomic, readonly) NSData *data; - -/** - * Creates a SDLProtocolMessage object with the provided header and payload. - * - * @param header A SDLProtocolHeader object - * @param payload The data to be passed in the message - * @return A SDLProtocolMessage object - */ -+ (instancetype)messageWithHeader:(SDLProtocolHeader *)header andPayload:(nullable NSData *)payload; // Returns a V1 or V2 object - -/** - * Returns the total size of the message. - * - * @return The size of the message - */ -- (NSUInteger)size; - -/** - * Prints a description of the SDLProtocolMessage object. - * - * @return A string description of the SDLProtocolMessage - */ -- (NSString *)description; - -/** - * Used for RPC type messages to obtain the data in a dictionary. - * - * @return The data in a dictionary - */ -- (nullable NSDictionary *)rpcDictionary; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessage.m deleted file mode 100644 index 6ed86e0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessage.m +++ /dev/null @@ -1,92 +0,0 @@ -// SDLProtocolMessage.m -// - - -#import "SDLProtocolMessage.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLFunctionID.h" -#import "SDLRPCParameterNames.h" -#import "SDLProtocolHeader.h" -#import "SDLRPCPayload.h" -#import "SDLV1ProtocolMessage.h" -#import "SDLV2ProtocolMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLProtocolMessage - -// Returns a V1 or V2 object -+ (instancetype)messageWithHeader:(SDLProtocolHeader *)header andPayload:(nullable 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]; - } else { - @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"Attempted to create an SDLMessage, but the version of the header passed was 0" userInfo:nil]; - } - - return newMessage; -} - -- (nullable 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 (self.header.encrypted) { - [description appendString:@", Payload is encrypted - no description can be provided"]; - return description; - } - - // If it's an RPC, provide greater detail - if (((self.header.serviceType == SDLServiceTypeRPC) || (self.header.serviceType == SDLServiceTypeBulkData)) && (self.header.frameType == SDLFrameTypeSingle)) { - // version of RPC Message determines how we access the info. - if (self.header.version >= 2) { - SDLRPCPayload *rpcPayload = [SDLRPCPayload rpcPayloadWithData:self.payload]; - if (rpcPayload) { - SDLRPCParameterName functionName = [[SDLFunctionID sharedInstance] functionNameForId: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; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageAssembler.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageAssembler.h deleted file mode 100644 index 589d803..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageAssembler.h +++ /dev/null @@ -1,24 +0,0 @@ -// SDLSmartDeviceLinkProtocolMessageAssembler.h -// - -#import - -@class SDLProtocolMessage; - -NS_ASSUME_NONNULL_BEGIN - -typedef void (^SDLMessageAssemblyCompletionHandler)(BOOL done, SDLProtocolMessage * _Nullable assembledMessage); - - -@interface SDLProtocolMessageAssembler : NSObject - -@property (assign, nonatomic, readonly) UInt8 sessionID; -@property (assign, nonatomic) UInt32 frameCount; // number of consecutive frames required for reassembly -@property (assign, nonatomic) UInt32 expectedBytes; - -- (instancetype)initWithSessionID:(UInt8)sessionID; -- (void)handleMessage:(SDLProtocolMessage *)message withCompletionHandler:(SDLMessageAssemblyCompletionHandler)completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageAssembler.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageAssembler.m deleted file mode 100644 index e02ead3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageAssembler.m +++ /dev/null @@ -1,104 +0,0 @@ -// SDLSmartDeviceLinkProtocolMessageAssembler.m -// - -#import "SDLProtocolMessageAssembler.h" - -#import "SDLLogMacros.h" -#import "SDLProtocolHeader.h" -#import "SDLProtocolMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLProtocolMessageAssembler () - -@property (nonatomic, nullable, strong) NSMutableDictionary *parts; - -@end - -@implementation SDLProtocolMessageAssembler - -- (instancetype)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) { - SDLLogE(@"Message part sent to the wrong assembler. This session id: %d, message session id: %d", self.sessionID, message.header.sessionID); - 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 == SDLFrameTypeFirst) { - // If it's the first-frame, extract the meta-data - self.expectedBytes = NSSwapBigIntToHost(((UInt32 *)message.payload.bytes)[0]); - self.frameCount = NSSwapBigIntToHost(((UInt32 *)message.payload.bytes)[1]); - self.parts[@"firstframe"] = message.payload; - } else if (message.header.frameType == SDLFrameTypeConsecutive) { - // Save the frame w/ frame# as the key - NSInteger frameNumber = message.header.frameData; - NSNumber *frameNumberObj = @(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 = SDLFrameTypeSingle; - header.frameData = SDLFrameInfoSingleFrame; - - - // 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 - if (payload.length != self.expectedBytes) { - SDLLogW(@"Collected bytes size of %lu not equal to expected size of %i.", (unsigned long)payload.length, (unsigned int)self.expectedBytes); - } - - // Create the message. - assembledMessage = [SDLProtocolMessage messageWithHeader:header andPayload:payload]; - - - // Execute completion handler. - if (completionHandler != nil) { - completionHandler(YES, assembledMessage); - } - - // Done with this data, release it. - self.parts = nil; - - } else { - // Not done, let caller know - if (completionHandler != nil) { - completionHandler(NO, nil); - } - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageDisassembler.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageDisassembler.h deleted file mode 100644 index 644b1c1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageDisassembler.h +++ /dev/null @@ -1,16 +0,0 @@ -// SDLSmartDeviceLinkProtocolMessageDisassembler.h -// - -#import - -@class SDLProtocolMessage; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLProtocolMessageDisassembler : NSObject - -+ (NSArray *)disassemble:(SDLProtocolMessage *)protocolMessage withLimit:(NSUInteger)mtu; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageDisassembler.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageDisassembler.m deleted file mode 100644 index 21ab55f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolMessageDisassembler.m +++ /dev/null @@ -1,89 +0,0 @@ -// SDLProtocolMessageDisassembler.m -// - -#import "SDLProtocolMessageDisassembler.h" -#import "SDLProtocolHeader.h" -#import "SDLProtocolMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLProtocolMessageDisassembler - - -// Use to break up a large message into a sequence of smaller messages, -// each of which is less than 'mtu' number of bytes total size. -+ (NSArray *)disassemble:(SDLProtocolMessage *)incomingMessage withLimit:(NSUInteger)mtu { - // 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 = (NSUInteger)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 = SDLFrameTypeFirst; - - UInt32 payloadData[2]; - payloadData[0] = CFSwapInt32HostToBig((UInt32)incomingMessage.payload.length); - payloadData[1] = CFSwapInt32HostToBig((UInt32)numberOfMessagesRequired); - NSMutableData *firstFramePayload = [NSMutableData dataWithBytes:payloadData length:sizeof(payloadData)]; - - SDLProtocolMessage *firstMessage = [SDLProtocolMessage messageWithHeader:firstFrameHeader andPayload:firstFramePayload]; - outgoingMessages[0] = firstMessage; - - - // Create the middle messages (the ones carrying the actual data). - for (NSUInteger n = 0; n < numberOfMessagesRequired - 1; n++) { - // Frame # after 255 must cycle back to 1, not 0. - // A 0 signals last frame. - UInt8 frameNumber = (n % 255) + 1; - - SDLProtocolHeader *nextFrameHeader = [incomingMessage.header copy]; - nextFrameHeader.frameType = SDLFrameTypeConsecutive; - nextFrameHeader.frameData = frameNumber; - - NSUInteger offsetOfDataForThisFrame = headerSize + (n * numberOfDataBytesPerMessage); - NSData *nextFramePayload = [incomingMessage.data subdataWithRange:NSMakeRange(offsetOfDataForThisFrame, numberOfDataBytesPerMessage)]; - - SDLProtocolMessage *nextMessage = [SDLProtocolMessage messageWithHeader:nextFrameHeader andPayload:nextFramePayload]; - outgoingMessages[n + 1] = nextMessage; - } - - - // Create the last message - SDLProtocolHeader *lastFrameHeader = [incomingMessage.header copy]; - lastFrameHeader.frameType = SDLFrameTypeConsecutive; - lastFrameHeader.frameData = SDLFrameInfoConsecutiveLastFrame; - - NSUInteger numberOfMessagesCreatedSoFar = numberOfMessagesRequired - 1; - NSUInteger numberOfDataBytesSentSoFar = numberOfMessagesCreatedSoFar * numberOfDataBytesPerMessage; - NSUInteger numberOfDataBytesInLastMessage = incomingPayloadSize - numberOfDataBytesSentSoFar; - NSUInteger offsetOfDataForLastFrame = headerSize + numberOfDataBytesSentSoFar; - NSData *lastFramePayload = [incomingMessage.data subdataWithRange:NSMakeRange(offsetOfDataForLastFrame, numberOfDataBytesInLastMessage)]; - - SDLProtocolMessage *lastMessage = [SDLProtocolMessage messageWithHeader:lastFrameHeader andPayload:lastFramePayload]; - outgoingMessages[numberOfMessagesRequired] = lastMessage; - - return outgoingMessages; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolReceivedMessageRouter.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolReceivedMessageRouter.h deleted file mode 100644 index 40f0b71..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolReceivedMessageRouter.h +++ /dev/null @@ -1,26 +0,0 @@ -// SDLProtocolReceivedMessageRouter.h -// - - -#import "SDLProtocolDelegate.h" -@class SDLProtocolMessage; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLProtocolReceivedMessageRouter : NSObject - -/** - * A listener. - */ -@property (weak, nonatomic, nullable) id delegate; - -/** - * Called when a message is received from Core. - * - * @param message A SDLProtocolMessage object - */ -- (void)handleReceivedMessage:(SDLProtocolMessage *)message; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolReceivedMessageRouter.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolReceivedMessageRouter.m deleted file mode 100644 index a4bbf71..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLProtocolReceivedMessageRouter.m +++ /dev/null @@ -1,124 +0,0 @@ -// SDLProtocolReceivedMessageRouter.m -// - -// This class gets handed the SDLProtocol messages as they are received and decides what happens to them and where they are sent on to. - -#import "SDLProtocolReceivedMessageRouter.h" -#import "SDLLogMacros.h" -#import "SDLProtocolMessage.h" -#import "SDLProtocolMessageAssembler.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLProtocolReceivedMessageRouter () - -@property (strong, nonatomic) NSMutableDictionary *messageAssemblers; - -@end - - -@implementation SDLProtocolReceivedMessageRouter - -- (instancetype)init { - if (self = [super init]) { - self.messageAssemblers = [NSMutableDictionary dictionaryWithCapacity:2]; - } - return self; -} - -- (void)handleReceivedMessage:(SDLProtocolMessage *)message { - SDLFrameType frameType = message.header.frameType; - - switch (frameType) { - case SDLFrameTypeSingle: { - [self sdl_dispatchProtocolMessage:message]; - } break; - case SDLFrameTypeControl: { - [self sdl_dispatchControlMessage:message]; - } break; - case SDLFrameTypeFirst: // fallthrough - case SDLFrameTypeConsecutive: { - [self sdl_dispatchMultiPartMessage:message]; - } break; - default: break; - } -} - -- (void)sdl_dispatchProtocolMessage:(SDLProtocolMessage *)message { - if ([self.delegate respondsToSelector:@selector(onProtocolMessageReceived:)]) { - [self.delegate onProtocolMessageReceived:message]; - } -} - -- (void)sdl_dispatchControlMessage:(SDLProtocolMessage *)message { - switch (message.header.frameData) { - case SDLFrameInfoStartServiceACK: { - if ([self.delegate respondsToSelector:@selector(handleProtocolStartServiceACKMessage:)]) { - [self.delegate handleProtocolStartServiceACKMessage:message]; - } - } break; - case SDLFrameInfoStartServiceNACK: { - if ([self.delegate respondsToSelector:@selector(handleProtocolStartServiceNAKMessage:)]) { - [self.delegate handleProtocolStartServiceNAKMessage:message]; - } - } break; - case SDLFrameInfoEndServiceACK: { - if ([self.delegate respondsToSelector:@selector(handleProtocolEndServiceACKMessage:)]) { - [self.delegate handleProtocolEndServiceACKMessage:message]; - } - } break; - case SDLFrameInfoEndServiceNACK: { - if ([self.delegate respondsToSelector:@selector(handleProtocolStartServiceNAKMessage:)]) { - [self.delegate handleProtocolEndServiceNAKMessage:message]; - } - } break; - case SDLFrameInfoRegisterSecondaryTransportACK: { - if ([self.delegate respondsToSelector:@selector(handleProtocolRegisterSecondaryTransportACKMessage:)]) { - [self.delegate handleProtocolRegisterSecondaryTransportACKMessage:message]; - } - } break; - case SDLFrameInfoRegisterSecondaryTransportNACK: { - if ([self.delegate respondsToSelector:@selector(handleProtocolRegisterSecondaryTransportNAKMessage:)]) { - [self.delegate handleProtocolRegisterSecondaryTransportNAKMessage:message]; - } - } break; - case SDLFrameInfoHeartbeat: { - if ([self.delegate respondsToSelector:@selector(handleHeartbeatForSession:)]) { - [self.delegate handleHeartbeatForSession:message.header.sessionID]; - } - } break; - case SDLFrameInfoHeartbeatACK: { - if ([self.delegate respondsToSelector:@selector(handleHeartbeatACK)]) { - [self.delegate handleHeartbeatACK]; - } - } break; - case SDLFrameInfoTransportEventUpdate: { - if ([self.delegate respondsToSelector:@selector(handleTransportEventUpdateMessage:)]) { - [self.delegate handleTransportEventUpdateMessage:message]; - } - } break; - default: break; // Other frame data is possible, but we don't care about them - } -} - -- (void)sdl_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 sdl_dispatchProtocolMessage:assembledMessage]; - } - }; - [assembler handleMessage:message withCompletionHandler:completionHandler]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.h deleted file mode 100644 index d8a07c7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// SDLPublishAppService.h -// SmartDeviceLink -// -// Created by Nicole on 1/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -@class SDLAppServiceManifest; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * Registers a service offered by this app on the module. - * Subsequent calls with the same service type will update the manifest for that service. - */ -@interface SDLPublishAppService : SDLRPCRequest - -/** - * Convenience init. - * - * @param appServiceManifest The app service manifest - * @return A SDLPublishAppService object - */ -- (instancetype)initWithAppServiceManifest:(SDLAppServiceManifest *)appServiceManifest; - -/** - * The manifest of the service that wishes to be published. - * If already published, the updated manifest for this service. - * - * SDLAppServiceManifest, Required - */ -@property (strong, nonatomic) SDLAppServiceManifest *appServiceManifest; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.m deleted file mode 100644 index dad78f1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppService.m +++ /dev/null @@ -1,52 +0,0 @@ -// -// SDLPublishAppService.m -// SmartDeviceLink -// -// Created by Nicole on 1/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLPublishAppService.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLAppServiceManifest.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPublishAppService - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNamePublishAppService]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithAppServiceManifest:(SDLAppServiceManifest *)appServiceManifest { - self = [self init]; - if (!self) { - return nil; - } - - self.appServiceManifest = appServiceManifest; - - return self; -} - -- (void)setAppServiceManifest:(SDLAppServiceManifest *)appServiceManifest { - [self.parameters sdl_setObject:appServiceManifest forName:SDLRPCParameterNameAppServiceManifest]; -} - -- (SDLAppServiceManifest *)appServiceManifest { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameAppServiceManifest ofClass:SDLAppServiceManifest.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.h deleted file mode 100644 index 70f398e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// SDLPublishAppServiceResponse.h -// SmartDeviceLink -// -// Created by Nicole on 2/5/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -@class SDLAppServiceRecord; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Response to the request to register a service offered by this app on the module. - */ -@interface SDLPublishAppServiceResponse : SDLRPCResponse - -/** - * Convenience init. - * - * @param appServiceRecord If the request was successful, this object will be the current status of the service record for the published service. This will include the Core supplied service ID. - * @return A SDLPublishAppServiceResponse object - */ -- (instancetype)initWithAppServiceRecord:(SDLAppServiceRecord *)appServiceRecord; - -/** - * If the request was successful, this object will be the current status of the service record for the published service. This will include the Core supplied service ID. - * - * SDLAppServiceRecord, Optional - */ -@property (nullable, strong, nonatomic) SDLAppServiceRecord *appServiceRecord; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.m deleted file mode 100644 index fb74499..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPublishAppServiceResponse.m +++ /dev/null @@ -1,50 +0,0 @@ -// -// SDLPublishAppServiceResponse.m -// SmartDeviceLink -// -// Created by Nicole on 2/5/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLPublishAppServiceResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLAppServiceRecord.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPublishAppServiceResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNamePublishAppService]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithAppServiceRecord:(SDLAppServiceRecord *)appServiceRecord { - self = [self init]; - if (!self) { - return nil; - } - - self.appServiceRecord = appServiceRecord; - - return self; -} - -- (void)setAppServiceRecord:(nullable SDLAppServiceRecord *)appServiceRecord { - [self.parameters sdl_setObject:appServiceRecord forName:SDLRPCParameterNameAppServiceRecord]; -} - -- (nullable SDLAppServiceRecord *)appServiceRecord { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAppServiceRecord ofClass:SDLAppServiceRecord.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.h deleted file mode 100644 index 98a05fe..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.h +++ /dev/null @@ -1,144 +0,0 @@ -// SDLPutFile.h -// - -#import "SDLRPCRequest.h" - -#import "SDLFileType.h" - -/** - * Used to push a binary data onto the SDL module from a mobile device, such as icons and album art. - * - * Since SmartDeviceLink 2.0 - * @see SDLDeleteFile, SDLListFiles - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPutFile : SDLRPCRequest - -/** - * Init - * - * @return A SDLPutFile object - */ -- (instancetype)init; - -/** - * Convenience init for creating a putfile with a name and file format. - * - * @param fileName The file's name - * @param fileType The file's format - * @return A SDLPutFile object - */ -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType; - -/** - * Convenience init for creating a putfile with a name, file format, and persistance. - * - * @param fileName The file's name - * @param fileType The file's format - * @param persistentFile Whether or not the image should persist between ignition cycles - * @return A SDLPutFile object - */ -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile; - -/** - * Convenience init for creating a putfile that is part of a multiple frame payload. - * - * @param fileName The file's name - * @param fileType The file's format - * @param persistentFile Whether or not the image should persist between ignition cycles - * @param systemFile Whether or not the file is meant to be passed through Core to elsewhere on the system - * @param offset Offset in bytes for resuming partial data chunks - * @param length Length in bytes for resuming partial data chunks - * @return A SDLPutFile object - */ -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile systemFile:(BOOL)systemFile offset:(UInt32)offset length:(UInt32)length __deprecated_msg("Use initWithFileName:fileType:persistentFile:systemFile:offset:length:crc: instead"); - -/** - * Convenience init for creating a putfile that is part of a multiple frame payload. - * - * @param fileName The file's name - * @param fileType The file's format - * @param persistentFile Whether or not the image should persist between ignition cycles - * @param systemFile Whether or not the file is meant to be passed through Core to elsewhere on the system - * @param offset Offset in bytes for resuming partial data chunks - * @param length Length in bytes for resuming partial data chunks - * @param crc Checksum of the bulk data. Used by Core to check data integrity - * @return A SDLPutFile object - */ -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile systemFile:(BOOL)systemFile offset:(UInt32)offset length:(UInt32)length crc:(UInt64)crc; - -/** - * Convenience init for creating a putfile that is part of a multiple frame payload. A CRC checksum is calculated for the bulk data. - * - * @param fileName The file's name - * @param fileType The file's format - * @param persistentFile Whether or not the image should persist between ignition cycles - * @param systemFile Whether or not the file is meant to be passed through Core to elsewhere on the system - * @param offset Offset in bytes for resuming partial data chunks - * @param length Length in bytes for resuming partial data chunks - * @param bulkData Data being sent in the putfile - * @return A SDLPutFile object - */ -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile systemFile:(BOOL)systemFile offset:(UInt32)offset length:(UInt32)length bulkData:(NSData *)bulkData; - -/** - * File reference name - * - * Required, max length 255 characters - */ -@property (strong, nonatomic) NSString *syncFileName __deprecated_msg("use sdlFileName instead"); - -/** -* File reference name -* -* Required, max length 255 characters -*/ -@property (strong, nonatomic) NSString *sdlFileName; - -/** - * A FileType value representing a selected file type - * - * Required - */ -@property (strong, nonatomic) SDLFileType fileType; - -/** - * A value to indicates if the file is meant to persist between sessions / ignition cycles. If set to TRUE, then the system will aim to persist this file through session / cycles. While files with this designation will have priority over others, they are subject to deletion by the system at any time. In the event of automatic deletion by the system, the app will receive a rejection and have to resend the file. If omitted, the value will be set to false. - * - * Boolean, Optional, default = NO - */ -@property (nullable, strong, nonatomic) NSNumber *persistentFile; - -/** - * Indicates if the file is meant to be passed through core to elsewhere on the system. If set to TRUE, then the system will instead pass the data thru as it arrives to a predetermined area outside of core. - * - * Boolean, Optional, default = NO - */ -@property (nullable, strong, nonatomic) NSNumber *systemFile; - -/** - * Offset in bytes for resuming partial data chunks. - * - * Integer, Optional, 0 - 100,000,000,000 - */ -@property (nullable, strong, nonatomic) NSNumber *offset; - -/** - * Length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded - * - * Integer, Optional, 0 - 100,000,000,000 - */ -@property (nullable, strong, nonatomic) NSNumber *length; - -/** - * Additional CRC32 checksum to protect data integrity up to 512 Mbits. - * - * Integer, Optional, 0 - 4,294,967,295 - */ -@property (nullable, strong, nonatomic) NSNumber *crc; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.m deleted file mode 100644 index 2470be1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFile.m +++ /dev/null @@ -1,168 +0,0 @@ -// SDLPutFile.m -// - -#import "SDLPutFile.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -#import - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPutFile - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNamePutFile]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType { - self = [self init]; - if (!self) { - return nil; - } - - self.sdlFileName = fileName; - self.fileType = fileType; - - return self; -} - -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile { - self = [self initWithFileName:fileName fileType:fileType]; - if (!self) { - return nil; - } - - self.persistentFile = @(persistentFile); - - return self; -} - -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile systemFile:(BOOL)systemFile offset:(UInt32)offset length:(UInt32)length { - self = [self initWithFileName:fileName fileType:fileType persistentFile:persistentFile]; - if (!self) { - return nil; - } - - self.systemFile = @(systemFile); - self.offset = @(offset); - self.length = @(length); - - return self; -} - -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile systemFile:(BOOL)systemFile offset:(UInt32)offset length:(UInt32)length crc:(UInt64)crc { - self = [self initWithFileName:fileName fileType:fileType persistentFile:persistentFile]; - if (!self) { - return nil; - } - - self.systemFile = @(systemFile); - self.offset = @(offset); - self.length = @(length); - self.crc = crc == 0 ? nil : @(crc); - - return self; -} - -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile systemFile:(BOOL)systemFile offset:(UInt32)offset length:(UInt32)length bulkData:(NSData *)bulkData { - - self = [self initWithFileName:fileName fileType:fileType persistentFile:persistentFile systemFile:systemFile offset:offset length:length crc:[self.class sdl_getCRC32ChecksumForBulkData:bulkData]]; - if (!self) { - return nil; - } - - self.bulkData = bulkData; - - return self; -} - -#pragma mark - Getters and Setters - -- (void)setSyncFileName:(NSString *)syncFileName { - [self.parameters sdl_setObject:syncFileName forName:SDLRPCParameterNameSyncFileName]; -} - -- (NSString *)syncFileName { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncFileName ofClass:NSString.class error:&error]; -} - -- (void)setSdlFileName:(NSString *)syncFileName { - [self.parameters sdl_setObject:syncFileName forName:SDLRPCParameterNameSyncFileName]; -} - -- (NSString *)sdlFileName { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncFileName ofClass:NSString.class error:&error]; -} - -- (void)setFileType:(SDLFileType)fileType { - [self.parameters sdl_setObject:fileType forName:SDLRPCParameterNameFileType]; -} - -- (SDLFileType)fileType { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameFileType error:&error]; -} - -- (void)setPersistentFile:(nullable NSNumber *)persistentFile { - [self.parameters sdl_setObject:persistentFile forName:SDLRPCParameterNamePersistentFile]; -} - -- (nullable NSNumber *)persistentFile { - return [self.parameters sdl_objectForName:SDLRPCParameterNamePersistentFile ofClass:NSNumber.class error:nil]; -} - -- (void)setSystemFile:(nullable NSNumber *)systemFile { - [self.parameters sdl_setObject:systemFile forName:SDLRPCParameterNameSystemFile]; -} - -- (nullable NSNumber *)systemFile { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSystemFile ofClass:NSNumber.class error:nil]; -} - -- (void)setOffset:(nullable NSNumber *)offset { - [self.parameters sdl_setObject:offset forName:SDLRPCParameterNameOffset]; -} - -- (nullable NSNumber *)offset { - return [self.parameters sdl_objectForName:SDLRPCParameterNameOffset ofClass:NSNumber.class error:nil]; -} - -- (void)setLength:(nullable NSNumber *)length { - [self.parameters sdl_setObject:length forName:SDLRPCParameterNameLength]; -} - -- (nullable NSNumber *)length { - return [self.parameters sdl_objectForName:SDLRPCParameterNameLength ofClass:NSNumber.class error:nil]; -} - -- (void)setCrc:(nullable NSNumber *)crc { - [self.parameters sdl_setObject:crc forName:SDLRPCParameterNameCRC]; -} - -- (nullable NSNumber *)crc { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCRC ofClass:NSNumber.class error:nil]; -} - -#pragma mark - Helpers - -+ (unsigned long)sdl_getCRC32ChecksumForBulkData:(NSData *)data { - if (data.length == 0) { - return 0; - } - - return crc32(0, data.bytes, (uInt)data.length); -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFileResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFileResponse.h deleted file mode 100644 index 0c87721..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFileResponse.h +++ /dev/null @@ -1,24 +0,0 @@ -// SDLPutFileResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to SDLPutFile - - Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLPutFileResponse : SDLRPCResponse - -/** - * Provides the total local space available in SDL Core for the registered app. If the transfer has systemFile enabled, then the value will be set to 0 automatically. - */ -@property (nullable, strong, nonatomic) NSNumber *spaceAvailable; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFileResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFileResponse.m deleted file mode 100644 index aecbf9b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLPutFileResponse.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLPutFileResponse.m -// - - -#import "SDLPutFileResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLPutFileResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNamePutFile]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setSpaceAvailable:(nullable NSNumber *)spaceAvailable { - [self.parameters sdl_setObject:spaceAvailable forName:SDLRPCParameterNameSpaceAvailable]; -} - -- (nullable NSNumber *)spaceAvailable { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSpaceAvailable ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRAWH264Packetizer.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRAWH264Packetizer.h deleted file mode 100644 index df1a9ba..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRAWH264Packetizer.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// SDLRAWH264Packetizer -// SmartDeviceLink-iOS -// -// Created by Sho Amano on 4/11/17. -// Copyright © 2017 Xevo Inc. All rights reserved. -// - -#import - -#import "SDLH264Packetizer.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLRAWH264Packetizer : NSObject -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRAWH264Packetizer.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRAWH264Packetizer.m deleted file mode 100644 index a40acd3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRAWH264Packetizer.m +++ /dev/null @@ -1,52 +0,0 @@ -// -// SDLRAWH264Packetizer -// SmartDeviceLink-iOS -// -// Created by Sho Amano on 4/11/17. -// Copyright © 2017 Xevo Inc. All rights reserved. -// - -#import -#import "SDLRAWH264Packetizer.h" -#import "SDLH264Packetizer.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLRAWH264Packetizer () -@property (nonatomic) NSData *startCode; -@end - -@implementation SDLRAWH264Packetizer - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - // This is the start code that we will write to the elementary stream before every NAL unit - UInt8 startCode[] = {0x00, 0x00, 0x00, 0x01}; - _startCode = [[NSData alloc] initWithBytes:startCode length:4]; - - return self; -} - -- (nullable NSArray *)createPackets:(NSArray *)nalUnits - presentationTimestamp:(double)presentationTimestamp { - NSMutableArray *array = [NSMutableArray arrayWithCapacity:1]; - NSMutableData *elementaryStream = [NSMutableData data]; - - // Note: this packetizer consolidates all NAL units into one NSData object - // to keep compatibility with previous implementation. - for (NSData *nalUnit in nalUnits) { - [elementaryStream appendData:self.startCode]; - [elementaryStream appendData:nalUnit]; - } - - [array addObject:elementaryStream]; - return [array copy]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.h deleted file mode 100755 index fc5b92b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.h +++ /dev/null @@ -1,85 +0,0 @@ -// -// SDLRDSData.h -// - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Include the data defined in Radio Data System, which is a communications protocol standard for embedding small amounts of digital information in conventional FM radio broadcasts. - */ -@interface SDLRDSData : SDLRPCStruct - -/// Convenience init -/// -/// @param programService Program Service Name -/// @param radioText Radio Text -/// @param clockText The clock text in UTC format as YYYY-MM-DDThh:mm:ss.sTZD -/// @param programIdentification Program Identification - the call sign for the radio station -/// @param programType The program type - The region should be used to differentiate between EU and North America program types -/// @param trafficProgramIdentification Traffic Program Identification - Identifies a station that offers traffic -/// @param trafficAnnouncementIdentification Traffic Announcement Identification - Indicates an ongoing traffic announcement -/// @param region Region -- (instancetype)initWithProgramService:(nullable NSString *)programService radioText:(nullable NSString *)radioText clockText:(nullable NSString *)clockText programIdentification:(nullable NSString *)programIdentification programType:(nullable NSNumber *)programType trafficProgramIdentification:(nullable NSNumber *)trafficProgramIdentification trafficAnnouncementIdentification:(nullable NSNumber *)trafficAnnouncementIdentification region:(nullable NSString *)region; - -/** - * Program Service Name - * - * optional, 0-8 - */ -@property (nullable, strong, nonatomic) NSString *programService; - -/** - * Radio Text - * - * optional, 0-64 - */ -@property (nullable, strong, nonatomic) NSString *radioText; - -/** - * The clock text in UTC format as YYYY-MM-DDThh:mm:ss.sTZD - * - * optional, 0-24 - */ -@property (nullable, strong, nonatomic) NSString *clockText; - -/** - * Program Identification - the call sign for the radio station - * - * optional, 0-6 - */ -@property (nullable, strong, nonatomic) NSString *programIdentification; - -/** - * The program type - The region should be used to differentiate between EU - * and North America program types - * - * optional, 0-31 - */ -@property (nullable, strong, nonatomic) NSNumber *programType; - -/** - * Traffic Program Identification - Identifies a station that offers traffic - * - * optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *trafficProgramIdentification; - -/** - * Traffic Announcement Identification - Indicates an ongoing traffic announcement - * - * optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *trafficAnnouncementIdentification; - -/** - * Region - * - * optional, 0-8 - */ -@property (nullable, strong, nonatomic) NSString *region; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.m deleted file mode 100755 index 2d177e6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRDSData.m +++ /dev/null @@ -1,95 +0,0 @@ -// -// SDLRDSData.m -// - -#import "SDLRDSData.h" -#include "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRDSData - -- (instancetype)initWithProgramService:(nullable NSString *)programService radioText:(nullable NSString *)radioText clockText:(nullable NSString *)clockText programIdentification:(nullable NSString *)programIdentification programType:(nullable NSNumber *)programType trafficProgramIdentification:(nullable NSNumber *)trafficProgramIdentification trafficAnnouncementIdentification:(nullable NSNumber *)trafficAnnouncementIdentification region:(nullable NSString *)region { - self = [self init]; - if (!self) { - return nil; - } - self.programService = programService; - self.radioText = radioText; - self.clockText = clockText; - self.programIdentification = programIdentification; - self.programType = programType; - self.trafficProgramIdentification = trafficProgramIdentification; - self.trafficAnnouncementIdentification = trafficAnnouncementIdentification; - self.region = region; - return self; -} - -- (void)setProgramService:(nullable NSString *)programService { - [self.store sdl_setObject:programService forName:SDLRPCParameterNameProgramService]; -} - -- (nullable NSString *)programService { - return [self.store sdl_objectForName:SDLRPCParameterNameProgramService ofClass:NSString.class error:nil]; -} - -- (void)setRadioText:(nullable NSString *)radioText { - [self.store sdl_setObject:radioText forName:SDLRPCParameterNameRadioText]; -} - -- (nullable NSString *)radioText { - return [self.store sdl_objectForName:SDLRPCParameterNameRadioText ofClass:NSString.class error:nil]; -} - -- (void)setClockText:(nullable NSString *)clockText { - [self.store sdl_setObject:clockText forName:SDLRPCParameterNameClockText]; -} - -- (nullable NSString *)clockText { - return [self.store sdl_objectForName:SDLRPCParameterNameClockText ofClass:NSString.class error:nil]; -} - -- (void)setProgramIdentification:(nullable NSString *)programIdentification { - [self.store sdl_setObject:programIdentification forName:SDLRPCParameterNameProgramIdentification]; -} - -- (nullable NSString *)programIdentification { - return [self.store sdl_objectForName:SDLRPCParameterNameProgramIdentification ofClass:NSString.class error:nil]; -} - -- (void)setProgramType:(nullable NSNumber *)programType { - [self.store sdl_setObject:programType forName:SDLRPCParameterNameProgramType]; -} - -- (nullable NSNumber *)programType { - return [self.store sdl_objectForName:SDLRPCParameterNameProgramType ofClass:NSNumber.class error:nil]; -} - -- (void)setTrafficProgramIdentification:(nullable NSNumber *)trafficProgramIdentification { - [self.store sdl_setObject:trafficProgramIdentification forName:SDLRPCParameterNameTrafficProgramIdentification]; -} - -- (nullable NSNumber *)trafficProgramIdentification { - return [self.store sdl_objectForName:SDLRPCParameterNameTrafficProgramIdentification ofClass:NSNumber.class error:nil]; -} - -- (void)setTrafficAnnouncementIdentification:(nullable NSNumber *)trafficAnnouncementIdentification { - [self.store sdl_setObject:trafficAnnouncementIdentification forName:SDLRPCParameterNameTrafficAnnouncementIdentification]; -} - -- (nullable NSNumber *)trafficAnnouncementIdentification { - return [self.store sdl_objectForName:SDLRPCParameterNameTrafficAnnouncementIdentification ofClass:NSNumber.class error:nil]; -} - -- (void)setRegion:(nullable NSString *)region { - [self.store sdl_setObject:region forName:SDLRPCParameterNameRegion]; -} - -- (nullable NSString *)region { - return [self.store sdl_objectForName:SDLRPCParameterNameRegion ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.h deleted file mode 100644 index 3702b1b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// SDLRGBColor.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/18/18. -// Copyright © 2018 Livio. All rights reserved. -// - -#import - -#import "NSNumber+NumberType.h" -#import "SDLRPCStruct.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Represents an RGB color -/// -/// @since 5.0 -@interface SDLRGBColor : SDLRPCStruct - -/** - Create an SDL color object with red / green / blue values between 0-255 - - @param red The red value of the color - @param green The green value of the color - @param blue The blue value of the color - @return The color - */ -- (instancetype)initWithRed:(UInt8)red green:(UInt8)green blue:(UInt8)blue; - -/** - Create an SDL color object with a UIColor object. - - @warning The alpha color of the UIColor object will be ignored - - @param color The UIColor object to base this color on - @return The color - */ -- (instancetype)initWithColor:(UIColor *)color; - -/** - * The red value of the RGB color - * Required, Integer, 0-255 - */ -@property (copy, nonatomic) NSNumber *red; - -/** - * The green value of the RGB color - * Required, Integer, 0-255 - */ -@property (copy, nonatomic) NSNumber *green; - -/** - * The blue value of the RGB color - * Required, Integer, 0-255 - */ -@property (copy, nonatomic) NSNumber *blue; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.m deleted file mode 100644 index 1c611e0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRGBColor.m +++ /dev/null @@ -1,72 +0,0 @@ -// -// SDLRGBColor.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/18/18. -// Copyright © 2018 Livio. All rights reserved. -// - -#import "SDLRGBColor.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRGBColor - -- (instancetype)initWithRed:(UInt8)red green:(UInt8)green blue:(UInt8)blue { - self = [self init]; - if (!self) { return nil; } - - self.red = @(red); - self.green = @(green); - self.blue = @(blue); - - return self; -} - -- (instancetype)initWithColor:(UIColor *)color { - CGFloat redf, greenf, bluef, alphaf; - [color getRed:&redf green:&greenf blue:&bluef alpha:&alphaf]; - - UInt8 red, green, blue; - red = (UInt8)round(redf * 255.0); - green = (UInt8)round(greenf * 255.0); - blue = (UInt8)round(bluef * 255.0); - - return [self initWithRed:red green:green blue:blue]; -} - -#pragma mark - Setters - -- (void)setRed:(NSNumber *)red { - [self.store sdl_setObject:red forName:SDLRPCParameterNameRed]; -} - -- (NSNumber *)red { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameRed ofClass:NSNumber.class error:&error]; -} - -- (void)setGreen:(NSNumber *)green { - [self.store sdl_setObject:green forName:SDLRPCParameterNameGreen]; -} - -- (NSNumber *)green { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameGreen ofClass:NSNumber.class error:&error]; -} - -- (void)setBlue:(NSNumber *)blue { - [self.store sdl_setObject:blue forName:SDLRPCParameterNameBlue]; -} - -- (NSNumber *)blue { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameBlue ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.h deleted file mode 100644 index fce4b61..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.h +++ /dev/null @@ -1,280 +0,0 @@ -// -// SDLRPCFunctionNames.h -// SmartDeviceLink -// -// Created by Nicole on 3/5/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * All RPC request / response / notification names - */ -typedef SDLEnum SDLRPCFunctionName SDL_SWIFT_ENUM; - -/// Function name for an AddCommand RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameAddCommand; - -/// Function name for an AddSubMenu RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameAddSubMenu; - -/// Function name for an Alert RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameAlert; - -/// Function name for an AlertManeuver RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameAlertManeuver; - -/// Function name for a ButtonPress RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameButtonPress; - -/// Function name for a CancelInteraction RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameCancelInteraction; - -/// Function name for a ChangeRegistration RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameChangeRegistration; - -/// Function name for a CloseApplication RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameCloseApplication; - -/// Function name for a CreateInteractionChoiceSet RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameCreateInteractionChoiceSet; - -/// Function name for a DeleteCommand RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteCommand; - -/// Function name for a DeleteFile RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteFile; - -/// Function name for a DeleteInteractionChoiceSet RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteInteractionChoiceSet; - -/// Function name for a DeleteSubMenu RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteSubMenu; - -/// Function name for a DiagnosticMessage RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameDiagnosticMessage; - -/// Function name for a DialNumber RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameDialNumber; - -/// Function name for an CreateInteractionChoiceSet RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameEncodedSyncPData __deprecated; - -/// Function name for an EndAudioPassThru RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameEndAudioPassThru; - -/// Function name for an GenricResponse Response RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameGenericResponse; - -/// Function name for an CreateInteractionChoiceSet RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameGetAppServiceData; - -/// Function name for a GetDTCs RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameGetDTCs; - -/// Function name for a GetFile RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameGetFile; - -/// Function name for a GetCloudAppProperties RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameGetCloudAppProperties; - -/// Function name for a GetInteriorVehicleData RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleData; - -/// Function name for a GetInteriorVehicleDataConsent RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleDataConsent; - -/// Function name for a GetSystemCapability RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameGetSystemCapability; - -/// Function name for a GetVehicleData RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameGetVehicleData; - -/// Function name for a GetWayPoints RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameGetWayPoints; - -/// Function name for a ListFiles RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameListFiles; - -/// Function name for an OnAppInterfaceUnregistered notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnAppInterfaceUnregistered; - -/// Function name for an OnAppServiceData notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnAppServiceData; - -/// Function name for an OnAudioPassThru notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnAudioPassThru; - -/// Function name for an OnButtonEvent notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnButtonEvent; - -/// Function name for an OnButtonPress notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnButtonPress; - -/// Function name for an OnCommand notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnCommand; - -/// Function name for an OnDriverDistraction notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnDriverDistraction; - -/// Function name for an OnEncodedSyncPData notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnEncodedSyncPData __deprecated; - -/// Function name for an OnHashChange notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnHashChange; - -/// Function name for an OnHMIStatus notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnHMIStatus; - -/// Function name for an OnInteriorVehicleData notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnInteriorVehicleData; - -/// Function name for an OnKeyboardInput notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnKeyboardInput; - -/// Function name for an OnLanguageChange notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnLanguageChange; - -/// Function name for an OnLockScreenStatus notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnLockScreenStatus; - -/// Function name for an OnPermissionsChange notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnPermissionsChange; - -/// Function name for an OnRCStatus notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnRCStatus; - -/// Function name for an OnSyncPData notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnSyncPData __deprecated; - -/// Function name for an OnSystemCapabilityUpdated notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnSystemCapabilityUpdated; - -/// Function name for an OnSystemRequest notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnSystemRequest; - -/// Function name for an OnTBTClientState notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnTBTClientState; - -/// Function name for an OnTouchEvent notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnTouchEvent; - -/// Function name for an OnVehicleData notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnVehicleData; - -/// Function name for an OnWayPointChange notification RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameOnWayPointChange; - -/// Function name for a PerformAppServiceInteraction RPC -extern SDLRPCFunctionName const SDLRPCFunctionNamePerformAppServiceInteraction; - -/// Function name for a PerformAppServiceInteraction RPC -extern SDLRPCFunctionName const SDLRPCFunctionNamePerformAudioPassThru; - -/// Function name for a PerformInteraction RPC -extern SDLRPCFunctionName const SDLRPCFunctionNamePerformInteraction; - -/// Function name for a PublishAppService RPC -extern SDLRPCFunctionName const SDLRPCFunctionNamePublishAppService; - -/// Function name for a PutFile RPC -extern SDLRPCFunctionName const SDLRPCFunctionNamePutFile; - -/// Function name for a ReadDID RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameReadDID; - -/// Function name for a ReleaseInteriorVehicleDataModule RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameReleaseInteriorVehicleDataModule; - -/// Function name for a RegisterAppInterface RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameRegisterAppInterface; - -/// Function name for a Reserved RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameReserved; - -/// Function name for a ResetGlobalProperties RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameResetGlobalProperties; - -/// Function name for a ScrollableMessage RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameScrollableMessage; - -/// Function name for a SendHapticData RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSendHapticData; - -/// Function name for a SendLocation RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSendLocation; - -/// Function name for a SetAppIcon RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSetAppIcon; - -/// Function name for a SetCloudProperties RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSetCloudAppProperties; - -/// Function name for a SetDisplayLayout RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSetDisplayLayout; - -/// Function name for a SetGlobalProperties RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSetGlobalProperties; - -/// Function name for a SetInteriorVehicleData RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSetInteriorVehicleData; - -/// Function name for a SetMediaClockTimer RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSetMediaClockTimer; - -/// Function name for a Show RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameShow; - -/// Function name for a ShowAppMenu RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameShowAppMenu; - -/// Function name for a ShowConstantTBT RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameShowConstantTBT; - -/// Function name for a Slider RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSlider; - -/// Function name for a Speak RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSpeak; - -/// Function name for a SubscribeButton RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSubscribeButton; - -/// Function name for a SubscribeVehicleData RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSubscribeVehicleData; - -/// Function name for a SubscribeWayPoints RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSubscribeWayPoints; - -/// Function name for a SyncPData RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSyncPData __deprecated; - -/// Function name for a SystemRequest RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameSystemRequest; - -/// Function name for an UnpublishAppService RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameUnpublishAppService; - -/// Function name for an UnregisterAppInterface RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameUnregisterAppInterface; - -/// Function name for an UnsubscribeButton RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeButton; - -/// Function name for an UnsubscribeVehicleData RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeVehicleData; - -/// Function name for an UnsubscribeWayPoints RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeWayPoints; - -/// Function name for an UpdateTurnList RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameUpdateTurnList; - -/// Function name for a CreateWindow RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameCreateWindow; - -/// Function name for a DeleteWindow RPC -extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteWindow; - - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.m deleted file mode 100644 index 7449224..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCFunctionNames.m +++ /dev/null @@ -1,98 +0,0 @@ -// -// SDLRPCFunctionNames.m -// SmartDeviceLink -// -// Created by Nicole on 3/5/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCFunctionNames.h" - -SDLRPCFunctionName const SDLRPCFunctionNameAddCommand = @"AddCommand"; -SDLRPCFunctionName const SDLRPCFunctionNameAddSubMenu = @"AddSubMenu"; -SDLRPCFunctionName const SDLRPCFunctionNameAlert = @"Alert"; -SDLRPCFunctionName const SDLRPCFunctionNameAlertManeuver = @"AlertManeuver"; -SDLRPCFunctionName const SDLRPCFunctionNameButtonPress = @"ButtonPress"; -SDLRPCFunctionName const SDLRPCFunctionNameCancelInteraction = @"CancelInteraction"; -SDLRPCFunctionName const SDLRPCFunctionNameChangeRegistration = @"ChangeRegistration"; -SDLRPCFunctionName const SDLRPCFunctionNameCloseApplication = @"CloseApplication"; -SDLRPCFunctionName const SDLRPCFunctionNameCreateInteractionChoiceSet = @"CreateInteractionChoiceSet"; -SDLRPCFunctionName const SDLRPCFunctionNameDeleteCommand = @"DeleteCommand"; -SDLRPCFunctionName const SDLRPCFunctionNameDeleteFile = @"DeleteFile"; -SDLRPCFunctionName const SDLRPCFunctionNameDeleteInteractionChoiceSet = @"DeleteInteractionChoiceSet"; -SDLRPCFunctionName const SDLRPCFunctionNameDeleteSubMenu = @"DeleteSubMenu"; -SDLRPCFunctionName const SDLRPCFunctionNameDiagnosticMessage = @"DiagnosticMessage"; -SDLRPCFunctionName const SDLRPCFunctionNameDialNumber = @"DialNumber"; -SDLRPCFunctionName const SDLRPCFunctionNameEncodedSyncPData = @"EncodedSyncPData"; -SDLRPCFunctionName const SDLRPCFunctionNameEndAudioPassThru = @"EndAudioPassThru"; -SDLRPCFunctionName const SDLRPCFunctionNameGenericResponse = @"GenericResponse"; -SDLRPCFunctionName const SDLRPCFunctionNameGetAppServiceData = @"GetAppServiceData"; -SDLRPCFunctionName const SDLRPCFunctionNameGetDTCs = @"GetDTCs"; -SDLRPCFunctionName const SDLRPCFunctionNameGetFile = @"GetFile"; -SDLRPCFunctionName const SDLRPCFunctionNameGetCloudAppProperties = @"GetCloudAppProperties"; -SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleData = @"GetInteriorVehicleData"; -SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleDataConsent = @"GetInteriorVehicleDataConsent"; -SDLRPCFunctionName const SDLRPCFunctionNameGetSystemCapability = @"GetSystemCapability"; -SDLRPCFunctionName const SDLRPCFunctionNameGetVehicleData = @"GetVehicleData"; -SDLRPCFunctionName const SDLRPCFunctionNameGetWayPoints = @"GetWayPoints"; -SDLRPCFunctionName const SDLRPCFunctionNameListFiles = @"ListFiles"; -SDLRPCFunctionName const SDLRPCFunctionNameOnAppInterfaceUnregistered = @"OnAppInterfaceUnregistered"; -SDLRPCFunctionName const SDLRPCFunctionNameOnAppServiceData = @"OnAppServiceData"; -SDLRPCFunctionName const SDLRPCFunctionNameOnAudioPassThru = @"OnAudioPassThru"; -SDLRPCFunctionName const SDLRPCFunctionNameOnButtonEvent = @"OnButtonEvent"; -SDLRPCFunctionName const SDLRPCFunctionNameOnButtonPress = @"OnButtonPress"; -SDLRPCFunctionName const SDLRPCFunctionNameOnCommand = @"OnCommand"; -SDLRPCFunctionName const SDLRPCFunctionNameOnDriverDistraction = @"OnDriverDistraction"; -SDLRPCFunctionName const SDLRPCFunctionNameOnEncodedSyncPData = @"OnEncodedSyncPData"; -SDLRPCFunctionName const SDLRPCFunctionNameOnHashChange = @"OnHashChange"; -SDLRPCFunctionName const SDLRPCFunctionNameOnHMIStatus = @"OnHMIStatus"; -SDLRPCFunctionName const SDLRPCFunctionNameOnInteriorVehicleData = @"OnInteriorVehicleData"; -SDLRPCFunctionName const SDLRPCFunctionNameOnKeyboardInput = @"OnKeyboardInput"; -SDLRPCFunctionName const SDLRPCFunctionNameOnLanguageChange = @"OnLanguageChange"; -SDLRPCFunctionName const SDLRPCFunctionNameOnLockScreenStatus = @"OnLockScreenStatus"; -SDLRPCFunctionName const SDLRPCFunctionNameOnPermissionsChange = @"OnPermissionsChange"; -SDLRPCFunctionName const SDLRPCFunctionNameOnRCStatus = @"OnRCStatus"; -SDLRPCFunctionName const SDLRPCFunctionNameOnSyncPData = @"OnSyncPData"; -SDLRPCFunctionName const SDLRPCFunctionNameOnSystemCapabilityUpdated = @"OnSystemCapabilityUpdated"; -SDLRPCFunctionName const SDLRPCFunctionNameOnSystemRequest = @"OnSystemRequest"; -SDLRPCFunctionName const SDLRPCFunctionNameOnTBTClientState = @"OnTBTClientState"; -SDLRPCFunctionName const SDLRPCFunctionNameOnTouchEvent = @"OnTouchEvent"; -SDLRPCFunctionName const SDLRPCFunctionNameOnVehicleData = @"OnVehicleData"; -SDLRPCFunctionName const SDLRPCFunctionNameOnWayPointChange = @"OnWayPointChange"; -SDLRPCFunctionName const SDLRPCFunctionNamePerformAppServiceInteraction = @"PerformAppServiceInteraction"; -SDLRPCFunctionName const SDLRPCFunctionNamePerformAudioPassThru = @"PerformAudioPassThru"; -SDLRPCFunctionName const SDLRPCFunctionNamePerformInteraction = @"PerformInteraction"; -SDLRPCFunctionName const SDLRPCFunctionNamePublishAppService = @"PublishAppService"; -SDLRPCFunctionName const SDLRPCFunctionNamePutFile = @"PutFile"; -SDLRPCFunctionName const SDLRPCFunctionNameReadDID = @"ReadDID"; -SDLRPCFunctionName const SDLRPCFunctionNameReleaseInteriorVehicleDataModule = @"ReleaseInteriorVehicleDataModule"; -SDLRPCFunctionName const SDLRPCFunctionNameRegisterAppInterface = @"RegisterAppInterface"; -SDLRPCFunctionName const SDLRPCFunctionNameReserved = @"reserved"; -SDLRPCFunctionName const SDLRPCFunctionNameResetGlobalProperties = @"ResetGlobalProperties"; -SDLRPCFunctionName const SDLRPCFunctionNameScrollableMessage = @"ScrollableMessage"; -SDLRPCFunctionName const SDLRPCFunctionNameSendHapticData = @"SendHapticData"; -SDLRPCFunctionName const SDLRPCFunctionNameSendLocation = @"SendLocation"; -SDLRPCFunctionName const SDLRPCFunctionNameSetAppIcon = @"SetAppIcon"; -SDLRPCFunctionName const SDLRPCFunctionNameSetCloudAppProperties = @"SetCloudAppProperties"; -SDLRPCFunctionName const SDLRPCFunctionNameSetDisplayLayout = @"SetDisplayLayout"; -SDLRPCFunctionName const SDLRPCFunctionNameSetGlobalProperties = @"SetGlobalProperties"; -SDLRPCFunctionName const SDLRPCFunctionNameSetInteriorVehicleData = @"SetInteriorVehicleData"; -SDLRPCFunctionName const SDLRPCFunctionNameSetMediaClockTimer = @"SetMediaClockTimer"; -SDLRPCFunctionName const SDLRPCFunctionNameShow = @"Show"; -SDLRPCFunctionName const SDLRPCFunctionNameShowAppMenu = @"ShowAppMenu"; -SDLRPCFunctionName const SDLRPCFunctionNameShowConstantTBT = @"ShowConstantTBT"; -SDLRPCFunctionName const SDLRPCFunctionNameSlider = @"Slider"; -SDLRPCFunctionName const SDLRPCFunctionNameSpeak = @"Speak"; -SDLRPCFunctionName const SDLRPCFunctionNameSubscribeButton = @"SubscribeButton"; -SDLRPCFunctionName const SDLRPCFunctionNameSubscribeVehicleData = @"SubscribeVehicleData"; -SDLRPCFunctionName const SDLRPCFunctionNameSubscribeWayPoints = @"SubscribeWayPoints"; -SDLRPCFunctionName const SDLRPCFunctionNameSyncPData = @"SyncPData"; -SDLRPCFunctionName const SDLRPCFunctionNameSystemRequest = @"SystemRequest"; -SDLRPCFunctionName const SDLRPCFunctionNameUnpublishAppService = @"UnpublishAppService"; -SDLRPCFunctionName const SDLRPCFunctionNameUnregisterAppInterface = @"UnregisterAppInterface"; -SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeButton = @"UnsubscribeButton"; -SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeVehicleData = @"UnsubscribeVehicleData"; -SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeWayPoints = @"UnsubscribeWayPoints"; -SDLRPCFunctionName const SDLRPCFunctionNameUpdateTurnList = @"UpdateTurnList"; -SDLRPCFunctionName const SDLRPCFunctionNameCreateWindow = @"CreateWindow"; -SDLRPCFunctionName const SDLRPCFunctionNameDeleteWindow = @"DeleteWindow"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.h deleted file mode 100644 index c6b0407..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.h +++ /dev/null @@ -1,75 +0,0 @@ -// SDLRPCMessage.h -// - -#import "SDLEnum.h" - -#import "SDLRPCStruct.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Parent class of all RPC messages. -/// -/// Contains basic information about an RPC message. -@interface SDLRPCMessage : SDLRPCStruct - -/** - * Convenience init - * - * @param name The name of the message - * @return A SDLRPCMessage object - */ -- (instancetype)initWithName:(NSString *)name __deprecated_msg("This is not intended to be a public facing API"); - -/** - * Returns the function name. - * - * @return The function name - */ -- (nullable NSString *)getFunctionName __deprecated_msg("Call the .name property instead"); - -/** - * Sets the function name. - * - * @param functionName The function name - */ -- (void)setFunctionName:(nullable NSString *)functionName __deprecated_msg("This is not intended to be a public facing API"); - -/** - * Returns the value associated with the provided key. If the key does not exist, null is returned. - * - * @param functionName The key name - * @return The value associated with the function name - */ -- (nullable NSObject *)getParameters:(NSString *)functionName __deprecated_msg("Call the .parameters property instead"); - -/** - * Sets a key-value pair using the function name as the key. - * - * @param functionName The name for the key - * @param value The value associated with the function name - */ -- (void)setParameters:(NSString *)functionName value:(nullable NSObject *)value __deprecated_msg("This is not intended to be a public facing API"); - -/** - * The data in the message - */ -@property (nullable, strong, nonatomic) NSData *bulkData; - -/** - * The name of the message - */ -@property (strong, nonatomic, readonly) NSString *name; - -/** - The JSON-RPC parameters - */ -@property (strong, nonatomic, readonly) NSMutableDictionary *parameters; - -/** - * The type of data in the message - */ -@property (strong, nonatomic, readonly) NSString *messageType; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.m deleted file mode 100644 index 15a6dd4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessage.m +++ /dev/null @@ -1,102 +0,0 @@ -// SDLRPCMessage.m -// - - -#import "SDLRPCMessage.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLRPCMessage () - -@property (strong, nonatomic, readwrite) NSString *messageType; -@property (strong, nonatomic) NSMutableDictionary *function; - -@end - - -@implementation SDLRPCMessage - -- (instancetype)initWithName:(NSString *)name { - self = [super init]; - if (!self) { - return nil; - } - - _function = [NSMutableDictionary dictionaryWithCapacity:3]; - _parameters = [NSMutableDictionary dictionary]; - _messageType = SDLRPCParameterNameRequest; - self.store[_messageType] = _function; - - _function[SDLRPCParameterNameParameters] = _parameters; - _function[SDLRPCParameterNameOperationName] = name; - - return self; -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" -- (instancetype)initWithDictionary:(NSDictionary *)dict { - self = [super initWithDictionary:dict]; - if (!self) { - return nil; - } - - NSEnumerator *enumerator = [self.store keyEnumerator]; - while (_messageType = [enumerator nextObject]) { - if (![_messageType isEqualToString:SDLRPCParameterNameBulkData]) { - break; - } - } - - if (_messageType != nil) { - self.store[_messageType] = [self.store[_messageType] mutableCopy]; - _function = self.store[_messageType]; - - _function[SDLRPCParameterNameParameters] = [_function[SDLRPCParameterNameParameters] mutableCopy]; - _parameters = _function[SDLRPCParameterNameParameters]; - } - - _bulkData = dict[SDLRPCParameterNameBulkData]; - - return self; -} -#pragma clang diagnostic pop - -- (nullable NSString *)getFunctionName { - return self.name; -} - -- (void)setFunctionName:(nullable NSString *)functionName { - [_function sdl_setObject:functionName forName:SDLRPCParameterNameOperationName]; -} - -- (nullable NSObject *)getParameters:(NSString *)functionName { - return [_parameters sdl_objectForName:functionName ofClass:NSObject.class error:nil]; -} - -- (void)setParameters:(NSString *)functionName value:(nullable NSObject *)value { - [_parameters sdl_setObject:value forName:functionName]; -} - -- (NSString *)name { - return [_function sdl_objectForName:SDLRPCParameterNameOperationName ofClass:NSString.class error:nil]; -} - -- (NSString *)description { - NSMutableString *description = [NSMutableString stringWithFormat:@"%@ (%@)\n%@", self.name, self.messageType, self.parameters]; - - return description; -} - -- (id)copyWithZone:(nullable NSZone *)zone { - SDLRPCMessage *newMessage = [[self.class allocWithZone:zone] initWithDictionary:self.store]; - - return newMessage; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.h deleted file mode 100644 index 8919c55..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.h +++ /dev/null @@ -1,26 +0,0 @@ -// SDLRPCMessageType.h -// - -#import - -#import "SDLEnum.h" - -/** - The type of RPC message - */ -typedef NS_ENUM(Byte, SDLRPCMessageType) { - /// A request that will require a response - SDLRPCMessageTypeRequest = 0, - - /// A response to a request - SDLRPCMessageTypeResponse, - - /// A message that does not have a response - SDLRPCMessageTypeNotification -}; - -typedef SDLEnum SDLRPCMessageTypeName SDL_SWIFT_ENUM; - -extern SDLRPCMessageTypeName const SDLRPCMessageTypeNameRequest; -extern SDLRPCMessageTypeName const SDLRPCMessageTypeNameResponse; -extern SDLRPCMessageTypeName const SDLRPCMessageTypeNameNotification; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.m deleted file mode 100644 index 365cd26..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCMessageType.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// SDLRPCMessageType.m -// SmartDeviceLink -// -// Created by Joel Fischer on 6/12/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLRPCMessageType.h" - -SDLRPCMessageTypeName const SDLRPCMessageTypeNameRequest = @"request"; -SDLRPCMessageTypeName const SDLRPCMessageTypeNameResponse = @"response"; -SDLRPCMessageTypeName const SDLRPCMessageTypeNameNotification = @"notification"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotification.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotification.h deleted file mode 100644 index 269fdc7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotification.h +++ /dev/null @@ -1,16 +0,0 @@ -// SDLRPCNotification.h -// - - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - An RPC sent from the head unit to the app about some data change, such as a button was pressed - */ -@interface SDLRPCNotification : SDLRPCMessage - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotification.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotification.m deleted file mode 100644 index fa6ca7e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotification.m +++ /dev/null @@ -1,50 +0,0 @@ -// SDLRPCNotification.m -// - - -#import "SDLRPCNotification.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLRPCMessage () - -@property (strong, nonatomic, readwrite) NSString *messageType; -@property (strong, nonatomic) NSMutableDictionary *function; - -@end - -@implementation SDLRPCNotification - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" -- (instancetype)initWithName:(NSString *)name { - self = [super initWithName:name]; - if (!self) { - return nil; - } - - self.messageType = SDLRPCParameterNameNotification; - [self.store setObject:self.function forKey:self.messageType]; - - return self; -} - -- (instancetype)initWithDictionary:(NSDictionary *)dict { - self = [super initWithDictionary:dict]; - if (!self) { - return nil; - } - - self.messageType = SDLRPCParameterNameNotification; - [self.store setObject:self.function forKey:self.messageType]; - - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotificationNotification.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotificationNotification.h deleted file mode 100644 index 8e0d9a6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotificationNotification.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// SDLRPCNotificationNotification.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/25/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -@class SDLRPCNotification; - - -NS_ASSUME_NONNULL_BEGIN - -/** - An NSNotification object that makes retrieving internal SDLRPCNotification data easier - */ -@interface SDLRPCNotificationNotification : NSNotification - -/** - The notification within the userinfo dictionary - */ -@property (copy, nonatomic, readonly) __kindof SDLRPCNotification *notification; - -/** - Create an NSNotification object caontaining an SDLRPCNotification - - @param name The NSNotification name - @param object The NSNotification object - @param notification The SDLRPCNotification payload - @return The NSNotification - */ -- (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcNotification:(__kindof SDLRPCNotification *)notification; - -/** - * Returns whether or not the containing notification is equal to a class, not including subclasses. - * - * @param aClass the class you are questioning - */ -- (BOOL)isNotificationMemberOfClass:(Class)aClass; - -/** - * Returns whether or not the containing notification is a kind of class, including subclasses. - * - * @param aClass the class you are questioning - */ -- (BOOL)isNotificationKindOfClass:(Class)aClass; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotificationNotification.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotificationNotification.m deleted file mode 100644 index 430269d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCNotificationNotification.m +++ /dev/null @@ -1,51 +0,0 @@ -// -// SDLRPCNotificationNotification.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/25/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLRPCNotificationNotification.h" - -#import "SDLNotificationConstants.h" -#import "SDLRPCNotification.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRPCNotificationNotification - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wimplicit-atomic-properties" -@synthesize name = _name; -@synthesize object = _object; -@synthesize userInfo = _userInfo; -#pragma clang diagnostic pop - -- (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcNotification:(SDLRPCNotification *)notification { - _name = name; - _object = object; - _userInfo = @{SDLNotificationUserInfoObject: notification}; - - if (!self) { return nil; } - - return self; -} - -- (__kindof SDLRPCNotification *)notification { - return _userInfo[SDLNotificationUserInfoObject]; -} - -- (BOOL)isNotificationMemberOfClass:(Class)aClass { - NSAssert([self.notification isMemberOfClass:aClass], @"A notification was sent with an unanticipated object"); - return [self.notification isMemberOfClass:aClass]; -} - -- (BOOL)isNotificationKindOfClass:(Class)aClass { - NSAssert([self.notification isKindOfClass:aClass], @"A notification was sent with an unanticipated object"); - return [self.notification isKindOfClass:aClass]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.h deleted file mode 100644 index e654196..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.h +++ /dev/null @@ -1,728 +0,0 @@ -// SDLRPCParameterNames.h -// - -#import -#import "SDLMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef NSString* SDLRPCParameterName SDL_SWIFT_ENUM; - -extern SDLRPCParameterName const SDLRPCParameterNameACEnable; -extern SDLRPCParameterName const SDLRPCParameterNameACEnableAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameACMaxEnable; -extern SDLRPCParameterName const SDLRPCParameterNameACMaxEnableAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameAccelerationPedalPosition; -extern SDLRPCParameterName const SDLRPCParameterNameAcceptsWayPoints; -extern SDLRPCParameterName const SDLRPCParameterNameAction; -extern SDLRPCParameterName const SDLRPCParameterNameActual; -extern SDLRPCParameterName const SDLRPCParameterNameAddress; -extern SDLRPCParameterName const SDLRPCParameterNameAddressLines; -extern SDLRPCParameterName const SDLRPCParameterNameAdministrativeArea; -extern SDLRPCParameterName const SDLRPCParameterNameAirbagStatus; -extern SDLRPCParameterName const SDLRPCParameterNameAlertIcon; -extern SDLRPCParameterName const SDLRPCParameterNameAlerts; -extern SDLRPCParameterName const SDLRPCParameterNameAlertText1; -extern SDLRPCParameterName const SDLRPCParameterNameAlertText2; -extern SDLRPCParameterName const SDLRPCParameterNameAlertText3; -extern SDLRPCParameterName const SDLRPCParameterNameAlignment; -extern SDLRPCParameterName const SDLRPCParameterNameAllocatedModules; -extern SDLRPCParameterName const SDLRPCParameterNameAllowAppConsumers; -extern SDLRPCParameterName const SDLRPCParameterNameAllowed; -extern SDLRPCParameterName const SDLRPCParameterNameAllowMultipleAccess; -extern SDLRPCParameterName const SDLRPCParameterNameAltitude; -extern SDLRPCParameterName const SDLRPCParameterNameAltitudeMeters; -extern SDLRPCParameterName const SDLRPCParameterNameAmbientLightSensorStatus; -extern SDLRPCParameterName const SDLRPCParameterNameAmbientLightStatus; -extern SDLRPCParameterName const SDLRPCParameterNameApparentTemperature; -extern SDLRPCParameterName const SDLRPCParameterNameApparentTemperatureHigh; -extern SDLRPCParameterName const SDLRPCParameterNameApparentTemperatureLow; -extern SDLRPCParameterName const SDLRPCParameterNameAppBundleId; -extern SDLRPCParameterName const SDLRPCParameterNameAppDisplayName; -extern SDLRPCParameterName const SDLRPCParameterNameAppHMIType; -extern SDLRPCParameterName const SDLRPCParameterNameAppId; -extern SDLRPCParameterName const SDLRPCParameterNameAppInfo; -extern SDLRPCParameterName const SDLRPCParameterNameAppName; -extern SDLRPCParameterName const SDLRPCParameterNameAppServiceId; -extern SDLRPCParameterName const SDLRPCParameterNameAppServiceManifest; -extern SDLRPCParameterName const SDLRPCParameterNameAppServiceRecord; -extern SDLRPCParameterName const SDLRPCParameterNameAppServices; -extern SDLRPCParameterName const SDLRPCParameterNameAppServicesCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameAppVersion; -extern SDLRPCParameterName const SDLRPCParameterNameAssociatedServiceType; -extern SDLRPCParameterName const SDLRPCParameterNameAutoCompleteList; -extern SDLRPCParameterName const SDLRPCParameterNameAudioControlCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameAudioControlData; -extern SDLRPCParameterName const SDLRPCParameterNameAudioPassThruCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText1; -extern SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText2; -extern SDLRPCParameterName const SDLRPCParameterNameAudioStreamingIndicator; -extern SDLRPCParameterName const SDLRPCParameterNameAudioStreamingState; -extern SDLRPCParameterName const SDLRPCParameterNameAudioType; -extern SDLRPCParameterName const SDLRPCParameterNameAuthToken; -extern SDLRPCParameterName const SDLRPCParameterNameAutoCompleteText; -extern SDLRPCParameterName const SDLRPCParameterNameAutoModeEnable; -extern SDLRPCParameterName const SDLRPCParameterNameAutoModeEnableAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameAuxECallNotificationStatus; -extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDs; -extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDChannels; -extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDsAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDChannelsAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameBackgroundColor; -extern SDLRPCParameterName const SDLRPCParameterNameBackTiltAngle; -extern SDLRPCParameterName const SDLRPCParameterNameBackTiltAngleAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameBackVerticalPosition; -extern SDLRPCParameterName const SDLRPCParameterNameBackVerticalPositionAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameBand; -extern SDLRPCParameterName const SDLRPCParameterNameBatteryLevelStatus; -extern SDLRPCParameterName const SDLRPCParameterNameBearing; -extern SDLRPCParameterName const SDLRPCParameterNameBeltStatus; -extern SDLRPCParameterName const SDLRPCParameterNameBitsPerSample; -extern SDLRPCParameterName const SDLRPCParameterNameBodyInformation; -extern SDLRPCParameterName const SDLRPCParameterNameBlue; -extern SDLRPCParameterName const SDLRPCParameterNameBluetoothIconOn; -extern SDLRPCParameterName const SDLRPCParameterNameBulkData; -extern SDLRPCParameterName const SDLRPCParameterNameButtonCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameButtonEventMode; -extern SDLRPCParameterName const SDLRPCParameterNameButtonName; -extern SDLRPCParameterName const SDLRPCParameterNameButtonPressMode; -extern SDLRPCParameterName const SDLRPCParameterNameCancelID; -extern SDLRPCParameterName const SDLRPCParameterNameColor; -extern SDLRPCParameterName const SDLRPCParameterNameCol; -extern SDLRPCParameterName const SDLRPCParameterNameColSpan; -extern SDLRPCParameterName const SDLRPCParameterNameColumns; -extern SDLRPCParameterName const SDLRPCParameterNameCoolingEnabled; -extern SDLRPCParameterName const SDLRPCParameterNameCoolingEnabledAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameCoolingLevel; -extern SDLRPCParameterName const SDLRPCParameterNameCoolingLevelAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameCoordinate; -extern SDLRPCParameterName const SDLRPCParameterNameCallActive; -extern SDLRPCParameterName const SDLRPCParameterNameCarModeStatus; -extern SDLRPCParameterName const SDLRPCParameterNameCarrier; -extern SDLRPCParameterName const SDLRPCParameterNameChannelId; -extern SDLRPCParameterName const SDLRPCParameterNameChannelName; -extern SDLRPCParameterName const SDLRPCParameterNameChannelSetting; -extern SDLRPCParameterName const SDLRPCParameterNameCharacterSet; -extern SDLRPCParameterName const SDLRPCParameterNameChoiceId; -extern SDLRPCParameterName const SDLRPCParameterNameChoiceSet; -extern SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnable; -extern SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnableAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameClimateControlData; -extern SDLRPCParameterName const SDLRPCParameterNameClimateControlCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameCloudCover; -extern SDLRPCParameterName const SDLRPCParameterNameClusterModes; -extern SDLRPCParameterName const SDLRPCParameterNameClusterModeStatus; -extern SDLRPCParameterName const SDLRPCParameterNameCommandIcon; -extern SDLRPCParameterName const SDLRPCParameterNameCommandId; -extern SDLRPCParameterName const SDLRPCParameterNameCompassDirection; -extern SDLRPCParameterName const SDLRPCParameterNameCorrelationId; -extern SDLRPCParameterName const SDLRPCParameterNameCountryCode; -extern SDLRPCParameterName const SDLRPCParameterNameCountryName; -extern SDLRPCParameterName const SDLRPCParameterNameCRC; -extern SDLRPCParameterName const SDLRPCParameterNameClockText; -extern SDLRPCParameterName const SDLRPCParameterNameCloudAppVehicleID; -extern SDLRPCParameterName const SDLRPCParameterNameCloudTransportType; -extern SDLRPCParameterName const SDLRPCParameterNameCurrentForecast; -extern SDLRPCParameterName const SDLRPCParameterNameCurrentForecastSupported; -extern SDLRPCParameterName const SDLRPCParameterNameCurrentTemperature; -extern SDLRPCParameterName const SDLRPCParameterNameCushion; -extern SDLRPCParameterName const SDLRPCParameterNameCustomButtonId; -extern SDLRPCParameterName const SDLRPCParameterNameCustomPresets; -extern SDLRPCParameterName const SDLRPCParameterNameOEMCustomDataType; -extern SDLRPCParameterName const SDLRPCParameterNameData; -extern SDLRPCParameterName const SDLRPCParameterNameDataResult; -extern SDLRPCParameterName const SDLRPCParameterNameDataType; -extern SDLRPCParameterName const SDLRPCParameterNameDay; -extern SDLRPCParameterName const SDLRPCParameterNameDayColorScheme; -extern SDLRPCParameterName const SDLRPCParameterNameDefrostZone; -extern SDLRPCParameterName const SDLRPCParameterNameDefrostZoneAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameDeliveryMode; -extern SDLRPCParameterName const SDLRPCParameterNameDensity; -extern SDLRPCParameterName const SDLRPCParameterNameDensityAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameDesiredTemperature; -extern SDLRPCParameterName const SDLRPCParameterNameDesiredTemperatureAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameDestination; -extern SDLRPCParameterName const SDLRPCParameterNameDestinationETA; -extern SDLRPCParameterName const SDLRPCParameterNameDetails; -extern SDLRPCParameterName const SDLRPCParameterNameDeviceInfo; -extern SDLRPCParameterName const SDLRPCParameterNameDeviceStatus; -extern SDLRPCParameterName const SDLRPCParameterNameDiagonalScreenSize; -extern SDLRPCParameterName const SDLRPCParameterNameDialNumberEnabled; -extern SDLRPCParameterName const SDLRPCParameterNameDIDLocation; -extern SDLRPCParameterName const SDLRPCParameterNameDIDResult; -extern SDLRPCParameterName const SDLRPCParameterNameDimension; -extern SDLRPCParameterName const SDLRPCParameterNameDisplays; -extern SDLRPCParameterName const SDLRPCParameterNameDisplayCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameDisplayMode; -extern SDLRPCParameterName const SDLRPCParameterNameDisplayModeUnitAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameDisplayLayout; -extern SDLRPCParameterName const SDLRPCParameterNameDisplayName; -extern SDLRPCParameterName const SDLRPCParameterNameDisplayType; -extern SDLRPCParameterName const SDLRPCParameterNameDistanceUnit; -extern SDLRPCParameterName const SDLRPCParameterNameDistanceToEmpty; -extern SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuver; -extern SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuverScale; -extern SDLRPCParameterName const SDLRPCParameterNameDistanceUnitAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameDoublePressAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameDriverAirbagDeployed; -extern SDLRPCParameterName const SDLRPCParameterNameDriverBeltDeployed; -extern SDLRPCParameterName const SDLRPCParameterNameDriverBraking; -extern SDLRPCParameterName const SDLRPCParameterNameDriverBuckleBelted; -extern SDLRPCParameterName const SDLRPCParameterNameDriverCurtainAirbagDeployed; -extern SDLRPCParameterName const SDLRPCParameterNameDriverDistractionStatus; -extern SDLRPCParameterName const SDLRPCParameterNameDriverDoorAjar; -extern SDLRPCParameterName const SDLRPCParameterNameDriverKneeAirbagDeployed; -extern SDLRPCParameterName const SDLRPCParameterNameDriverSideAirbagDeployed; -extern SDLRPCParameterName const SDLRPCParameterNameDrivingSide; -extern SDLRPCParameterName const SDLRPCParameterNameDTC; -extern SDLRPCParameterName const SDLRPCParameterNameDTCMask; -extern SDLRPCParameterName const SDLRPCParameterNameDualModeEnable; -extern SDLRPCParameterName const SDLRPCParameterNameDualModeEnableAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameDuration; -extern SDLRPCParameterName const SDLRPCParameterNameDuplicateUpdatesFromWindowID; -extern SDLRPCParameterName const SDLRPCParameterNameE911Override; -extern SDLRPCParameterName const SDLRPCParameterNameECallConfirmationStatus; -extern SDLRPCParameterName const SDLRPCParameterNameECallEventActive; -extern SDLRPCParameterName const SDLRPCParameterNameECallInfo; -extern SDLRPCParameterName const SDLRPCParameterNameECallNotificationStatus; -extern SDLRPCParameterName const SDLRPCParameterNameECUHeader; -extern SDLRPCParameterName const SDLRPCParameterNameECUName; -extern SDLRPCParameterName const SDLRPCParameterNameElectronicParkBrakeStatus; -extern SDLRPCParameterName const SDLRPCParameterNameEmergencyEvent; -extern SDLRPCParameterName const SDLRPCParameterNameEmergencyEventType; -extern SDLRPCParameterName const SDLRPCParameterNameEnabled; -extern SDLRPCParameterName const SDLRPCParameterNameEndpoint; -extern SDLRPCParameterName const SDLRPCParameterNameEndTime; -extern SDLRPCParameterName const SDLRPCParameterNameEngineOilLife; -extern SDLRPCParameterName const SDLRPCParameterNameEngineTorque; -extern SDLRPCParameterName const SDLRPCParameterNameEqualizerAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameEqualizerMaxChannelId; -extern SDLRPCParameterName const SDLRPCParameterNameEqualizerSettings; -extern SDLRPCParameterName const SDLRPCParameterNameETA; -extern SDLRPCParameterName const SDLRPCParameterNameEvent; -extern SDLRPCParameterName const SDLRPCParameterNameExpires; -extern SDLRPCParameterName const SDLRPCParameterNameExternalTemperature; -extern SDLRPCParameterName const SDLRPCParameterNameFanSpeed; -extern SDLRPCParameterName const SDLRPCParameterNameFanSpeedAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameFCCFacilityId; -extern SDLRPCParameterName const SDLRPCParameterNameFilename; -extern SDLRPCParameterName const SDLRPCParameterNameFilenames; -extern SDLRPCParameterName const SDLRPCParameterNameFileType; -extern SDLRPCParameterName const SDLRPCParameterNameFirmness; -extern SDLRPCParameterName const SDLRPCParameterNameFirmwareRevision; -extern SDLRPCParameterName const SDLRPCParameterNameFreeModules; -extern SDLRPCParameterName const SDLRPCParameterNameFrequencyInteger; -extern SDLRPCParameterName const SDLRPCParameterNameFrequencyFraction; -extern SDLRPCParameterName const SDLRPCParameterNameFrontVerticalPosition; -extern SDLRPCParameterName const SDLRPCParameterNameFrontVerticalPositionAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameFuelCutoffStatus; -extern SDLRPCParameterName const SDLRPCParameterNameFuelLevel; -extern SDLRPCParameterName const SDLRPCParameterNameFuelLevelState; -extern SDLRPCParameterName const SDLRPCParameterNameFuelMaintenanceMode; -extern SDLRPCParameterName const SDLRPCParameterNameFuelRange; -extern SDLRPCParameterName const SDLRPCParameterNameFullAppID; -extern SDLRPCParameterName const SDLRPCParameterNameFunctionID; -extern SDLRPCParameterName const SDLRPCParameterNameGetWayPointsEnabled; -extern SDLRPCParameterName const SDLRPCParameterNameGPS; -extern SDLRPCParameterName const SDLRPCParameterNameGraphic; -extern SDLRPCParameterName const SDLRPCParameterNameGraphicSupported; -extern SDLRPCParameterName const SDLRPCParameterNameGreen; -extern SDLRPCParameterName const SDLRPCParameterNameGrid; -extern SDLRPCParameterName const SDLRPCParameterNameHandledRPCs; -extern SDLRPCParameterName const SDLRPCParameterNameHapticRectData; -extern SDLRPCParameterName const SDLRPCParameterNameHapticSpatialDataSupported; -extern SDLRPCParameterName const SDLRPCParameterNameHardware; -extern SDLRPCParameterName const SDLRPCParameterNameHashId; -extern SDLRPCParameterName const SDLRPCParameterNameHDOP; -extern SDLRPCParameterName const SDLRPCParameterNameHDChannel; -extern SDLRPCParameterName const SDLRPCParameterNameHDChannelAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameHDRadioEnable; -extern SDLRPCParameterName const SDLRPCParameterNameHDRadioEnableAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameHeading; -extern SDLRPCParameterName const SDLRPCParameterNameHeadLampStatus; -extern SDLRPCParameterName const SDLRPCParameterNameHeadSupportHorizontalPosition; -extern SDLRPCParameterName const SDLRPCParameterNameHeadSupportHorizontalPositionAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameHeadSupportVerticalPosition; -extern SDLRPCParameterName const SDLRPCParameterNameHeadSupportVerticalPositionAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameHeatingLevel; -extern SDLRPCParameterName const SDLRPCParameterNameHeatingLevelAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameHeatingEnabled; -extern SDLRPCParameterName const SDLRPCParameterNameHeatingEnabledAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameClimateEnable; -extern SDLRPCParameterName const SDLRPCParameterNameClimateEnableAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelEnable; -extern SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldEnable; -extern SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowEnable; -extern SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsEnable; -extern SDLRPCParameterName const SDLRPCParameterNameHeight; -extern SDLRPCParameterName const SDLRPCParameterNameHelpPrompt; -extern SDLRPCParameterName const SDLRPCParameterNameHighBeamsOn; -extern SDLRPCParameterName const SDLRPCParameterNameHMICapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameHMIDisplayLanguage; -extern SDLRPCParameterName const SDLRPCParameterNameHMIDisplayLanguageDesired; -extern SDLRPCParameterName const SDLRPCParameterNameHMILevel; -extern SDLRPCParameterName const SDLRPCParameterNameHMIPermissions; -extern SDLRPCParameterName const SDLRPCParameterNameHmiSettingsControlCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameHmiSettingsControlData; -extern SDLRPCParameterName const SDLRPCParameterNameHMIZoneCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameHorizontalPosition; -extern SDLRPCParameterName const SDLRPCParameterNameHorizontalPositionAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameHour; -extern SDLRPCParameterName const SDLRPCParameterNameHourlyForecast; -extern SDLRPCParameterName const SDLRPCParameterNameHours; -extern SDLRPCParameterName const SDLRPCParameterNameHumidity; -extern SDLRPCParameterName const SDLRPCParameterNameHybridAppPreference; -extern SDLRPCParameterName const SDLRPCParameterNameIconResumed; -extern SDLRPCParameterName const SDLRPCParameterNameId; -extern SDLRPCParameterName const SDLRPCParameterNameIgnitionStableStatus; -extern SDLRPCParameterName const SDLRPCParameterNameIgnitionStatus; -extern SDLRPCParameterName const SDLRPCParameterNameImage; -extern SDLRPCParameterName const SDLRPCParameterNameImageFields; -extern SDLRPCParameterName const SDLRPCParameterNameImageResolution; -extern SDLRPCParameterName const SDLRPCParameterNameImageSupported; -extern SDLRPCParameterName const SDLRPCParameterNameImageTemplate; -extern SDLRPCParameterName const SDLRPCParameterNameImageType; -extern SDLRPCParameterName const SDLRPCParameterNameImageTypeSupported; -extern SDLRPCParameterName const SDLRPCParameterNameInfo; -extern SDLRPCParameterName const SDLRPCParameterNameInitialPrompt; -extern SDLRPCParameterName const SDLRPCParameterNameInitialText; -extern SDLRPCParameterName const SDLRPCParameterNameInnerLeftRear; -extern SDLRPCParameterName const SDLRPCParameterNameInnerRightRear; -extern SDLRPCParameterName const SDLRPCParameterNameInstantFuelConsumption; -extern SDLRPCParameterName const SDLRPCParameterNameInstructions; -extern SDLRPCParameterName const SDLRPCParameterNameInteractionChoiceSetId; -extern SDLRPCParameterName const SDLRPCParameterNameInteractionChoiceSetIdList; -extern SDLRPCParameterName const SDLRPCParameterNameInteractionLayout; -extern SDLRPCParameterName const SDLRPCParameterNameInteractionMode; -extern SDLRPCParameterName const SDLRPCParameterNameIsExplicit; -extern SDLRPCParameterName const SDLRPCParameterNameIsHighlighted; -extern SDLRPCParameterName const SDLRPCParameterNameIsMediaApplication; -extern SDLRPCParameterName const SDLRPCParameterNameIsSubscribed; -extern SDLRPCParameterName const SDLRPCParameterNameJunctionType; -extern SDLRPCParameterName const SDLRPCParameterNameKeepContext; -extern SDLRPCParameterName const SDLRPCParameterNameKeepContextAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameKeyboardLayout; -extern SDLRPCParameterName const SDLRPCParameterNameKeyboardProperties; -extern SDLRPCParameterName const SDLRPCParameterNameKeypressMode; -extern SDLRPCParameterName const SDLRPCParameterNameLabel; -extern SDLRPCParameterName const SDLRPCParameterNameLanguage; -extern SDLRPCParameterName const SDLRPCParameterNameLanguageDesired; -extern SDLRPCParameterName const SDLRPCParameterNameLatitudeDegrees; -extern SDLRPCParameterName const SDLRPCParameterNameLeftFront; -extern SDLRPCParameterName const SDLRPCParameterNameLeftRear; -extern SDLRPCParameterName const SDLRPCParameterNameLeftRearInflatableBelted; -extern SDLRPCParameterName const SDLRPCParameterNameLeftRow2BuckleBelted; -extern SDLRPCParameterName const SDLRPCParameterNameLeftRow3BuckleBelted; -extern SDLRPCParameterName const SDLRPCParameterNameLength; -extern SDLRPCParameterName const SDLRPCParameterNameLevel; -extern SDLRPCParameterName const SDLRPCParameterNameLevels; -extern SDLRPCParameterName const SDLRPCParameterNameLevelSpan; -extern SDLRPCParameterName const SDLRPCParameterNameLightControlCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameLightControlData; -extern SDLRPCParameterName const SDLRPCParameterNameLightState; -extern SDLRPCParameterName const SDLRPCParameterNameLimitedCharacterList; -extern SDLRPCParameterName const SDLRPCParameterNameLocality; -extern SDLRPCParameterName const SDLRPCParameterNameLocation; -extern SDLRPCParameterName const SDLRPCParameterNameLocationCoordinate; -extern SDLRPCParameterName const SDLRPCParameterNameLocationDescription; -extern SDLRPCParameterName const SDLRPCParameterNameLocationDetails; -extern SDLRPCParameterName const SDLRPCParameterNameLocationImage; -extern SDLRPCParameterName const SDLRPCParameterNameLocationName; -extern SDLRPCParameterName const SDLRPCParameterNameLockScreenDismissalEnabled; -extern SDLRPCParameterName const SDLRPCParameterNameLockScreenDismissalWarning; -extern SDLRPCParameterName const SDLRPCParameterNameLongitudeDegrees; -extern SDLRPCParameterName const SDLRPCParameterNameLongPress; -extern SDLRPCParameterName const SDLRPCParameterNameLongPressAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameLowBeamsOn; -extern SDLRPCParameterName const SDLRPCParameterNameMainField1; -extern SDLRPCParameterName const SDLRPCParameterNameMainField2; -extern SDLRPCParameterName const SDLRPCParameterNameMainField3; -extern SDLRPCParameterName const SDLRPCParameterNameMainField4; -extern SDLRPCParameterName const SDLRPCParameterNameMainField1Type; -extern SDLRPCParameterName const SDLRPCParameterNameMainField2Type; -extern SDLRPCParameterName const SDLRPCParameterNameMainField3Type; -extern SDLRPCParameterName const SDLRPCParameterNameMainField4Type; -extern SDLRPCParameterName const SDLRPCParameterNameMajorVersion; -extern SDLRPCParameterName const SDLRPCParameterNameMake; -extern SDLRPCParameterName const SDLRPCParameterNameManeuverComplete; -extern SDLRPCParameterName const SDLRPCParameterNameManualTextEntry; -extern SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmness; -extern SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmnessAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameMassageEnabled; -extern SDLRPCParameterName const SDLRPCParameterNameMassageEnabledAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameMassageMode; -extern SDLRPCParameterName const SDLRPCParameterNameMassageModeAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameMemoryAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameMassageZone; -extern SDLRPCParameterName const SDLRPCParameterNameMaxBitrate; -extern SDLRPCParameterName const SDLRPCParameterNameMaxDuration; -extern SDLRPCParameterName const SDLRPCParameterNameMaxHourlyForecastAmount; -extern SDLRPCParameterName const SDLRPCParameterNameMaximumChangeVelocity; -extern SDLRPCParameterName const SDLRPCParameterNameMaximumNumberOfWindows; -extern SDLRPCParameterName const SDLRPCParameterNameMaxMinutelyForecastAmount; -extern SDLRPCParameterName const SDLRPCParameterNameMaxMultidayForecastAmount; -extern SDLRPCParameterName const SDLRPCParameterNameMaxNumberRFCOMMPorts; -extern SDLRPCParameterName const SDLRPCParameterNameMediaAlbum; -extern SDLRPCParameterName const SDLRPCParameterNameMediaArtist; -extern SDLRPCParameterName const SDLRPCParameterNameMediaClock; -extern SDLRPCParameterName const SDLRPCParameterNameMediaClockFormats; -extern SDLRPCParameterName const SDLRPCParameterNameMediaServiceData; -extern SDLRPCParameterName const SDLRPCParameterNameMediaServiceManifest; -extern SDLRPCParameterName const SDLRPCParameterNameMediaTitle; -extern SDLRPCParameterName const SDLRPCParameterNameMediaTrack; -extern SDLRPCParameterName const SDLRPCParameterNameMediaImage; -extern SDLRPCParameterName const SDLRPCParameterNameMediaType; -extern SDLRPCParameterName const SDLRPCParameterNameMemory; -extern SDLRPCParameterName const SDLRPCParameterNameMenuIcon; -extern SDLRPCParameterName const SDLRPCParameterNameMenuId; -extern SDLRPCParameterName const SDLRPCParameterNameMenuLayout; -extern SDLRPCParameterName const SDLRPCParameterNameMenuLayoutsAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameMenuName; -extern SDLRPCParameterName const SDLRPCParameterNameMenuParams; -extern SDLRPCParameterName const SDLRPCParameterNameMenuTitle; -extern SDLRPCParameterName const SDLRPCParameterNameMessageData; -extern SDLRPCParameterName const SDLRPCParameterNameMessageDataResult; -extern SDLRPCParameterName const SDLRPCParameterNameMessageLength; -extern SDLRPCParameterName const SDLRPCParameterNameMetadataTags; -extern SDLRPCParameterName const SDLRPCParameterNameMiddleRow1BeltDeployed; -extern SDLRPCParameterName const SDLRPCParameterNameMiddleRow1BuckleBelted; -extern SDLRPCParameterName const SDLRPCParameterNameMiddleRow2BuckleBelted; -extern SDLRPCParameterName const SDLRPCParameterNameMiddleRow3BuckleBelted; -extern SDLRPCParameterName const SDLRPCParameterNameMillisecond; -extern SDLRPCParameterName const SDLRPCParameterNameMinorVersion; -extern SDLRPCParameterName const SDLRPCParameterNameMinute; -extern SDLRPCParameterName const SDLRPCParameterNameMinuteForecast; -extern SDLRPCParameterName const SDLRPCParameterNameMinutes; -extern SDLRPCParameterName const SDLRPCParameterNameModel; -extern SDLRPCParameterName const SDLRPCParameterNameModuleData; -extern SDLRPCParameterName const SDLRPCParameterNameModuleId; -extern SDLRPCParameterName const SDLRPCParameterNameModuleIds; -extern SDLRPCParameterName const SDLRPCParameterNameModuleInfo; -extern SDLRPCParameterName const SDLRPCParameterNameModuleName; -extern SDLRPCParameterName const SDLRPCParameterNameModuleType; -extern SDLRPCParameterName const SDLRPCParameterNameModelYear; -extern SDLRPCParameterName const SDLRPCParameterNameMonoAudioOutputMuted; -extern SDLRPCParameterName const SDLRPCParameterNameMonth; -extern SDLRPCParameterName const SDLRPCParameterNameMoonPhase; -extern SDLRPCParameterName const SDLRPCParameterNameMultidayForecast; -extern SDLRPCParameterName const SDLRPCParameterNameMultipleEvents; -extern SDLRPCParameterName const SDLRPCParameterNameMultiTouchAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameMuteAudio; -extern SDLRPCParameterName const SDLRPCParameterNameMyKey; -extern SDLRPCParameterName const SDLRPCParameterNameName; -extern SDLRPCParameterName const SDLRPCParameterNameNavigation; -extern SDLRPCParameterName const SDLRPCParameterNameNavigationCapability; -extern SDLRPCParameterName const SDLRPCParameterNameNavigationServiceData; -extern SDLRPCParameterName const SDLRPCParameterNameNavigationServiceManifest; -extern SDLRPCParameterName const SDLRPCParameterNameNavigationText; -extern SDLRPCParameterName const SDLRPCParameterNameNavigationText1; -extern SDLRPCParameterName const SDLRPCParameterNameNavigationText2; -extern SDLRPCParameterName const SDLRPCParameterNameNearestStormBearing; -extern SDLRPCParameterName const SDLRPCParameterNameNearestStormDistance; -extern SDLRPCParameterName const SDLRPCParameterNameNextInstructionDistance; -extern SDLRPCParameterName const SDLRPCParameterNameNextInstructionDistanceScale; -extern SDLRPCParameterName const SDLRPCParameterNameNextInstructionETA; -extern SDLRPCParameterName const SDLRPCParameterNameNextTurnIcon; -extern SDLRPCParameterName const SDLRPCParameterNameNGNMediaScreenAppName; -extern SDLRPCParameterName const SDLRPCParameterNameNicknames; -extern SDLRPCParameterName const SDLRPCParameterNameNightColorScheme; -extern SDLRPCParameterName const SDLRPCParameterNameNotification; -extern SDLRPCParameterName const SDLRPCParameterNameNumber; -extern SDLRPCParameterName const SDLRPCParameterNameNumberCustomPresetsAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameNumberTicks; -extern SDLRPCParameterName const SDLRPCParameterNameOdometer; -extern SDLRPCParameterName const SDLRPCParameterNameOffset; -extern SDLRPCParameterName const SDLRPCParameterNameOnLockScreenStatus; -extern SDLRPCParameterName const SDLRPCParameterNameOnScreenPresetsAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameOperationName; -extern SDLRPCParameterName const SDLRPCParameterNameOrigin; -extern SDLRPCParameterName const SDLRPCParameterNameOriginApp; -extern SDLRPCParameterName const SDLRPCParameterNameOS; -extern SDLRPCParameterName const SDLRPCParameterNameOSVersion; -extern SDLRPCParameterName const SDLRPCParameterNameParameterPermissions; -extern SDLRPCParameterName const SDLRPCParameterNameParameters; -extern SDLRPCParameterName const SDLRPCParameterNameParentId; -extern SDLRPCParameterName const SDLRPCParameterNameParkBrakeActive; -extern SDLRPCParameterName const SDLRPCParameterNamePassengerAirbagDeployed; -extern SDLRPCParameterName const SDLRPCParameterNamePassengerBeltDeployed; -extern SDLRPCParameterName const SDLRPCParameterNamePassengerBuckleBelted; -extern SDLRPCParameterName const SDLRPCParameterNamePassengerChildDetected; -extern SDLRPCParameterName const SDLRPCParameterNamePassengerCurtainAirbagDeployed; -extern SDLRPCParameterName const SDLRPCParameterNamePassengerDoorAjar; -extern SDLRPCParameterName const SDLRPCParameterNamePassengerKneeAirbagDeployed; -extern SDLRPCParameterName const SDLRPCParameterNamePassengerSideAirbagDeployed; -extern SDLRPCParameterName const SDLRPCParameterNamePatchVersion; -extern SDLRPCParameterName const SDLRPCParameterNamePCMStreamCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNamePDOP; -extern SDLRPCParameterName const SDLRPCParameterNamePermissionItem; -extern SDLRPCParameterName const SDLRPCParameterNamePersistentFile; -extern SDLRPCParameterName const SDLRPCParameterNamePhoneCall; -extern SDLRPCParameterName const SDLRPCParameterNamePhoneCapability; -extern SDLRPCParameterName const SDLRPCParameterNamePhoneNumber; -extern SDLRPCParameterName const SDLRPCParameterNamePhoneRoaming; -extern SDLRPCParameterName const SDLRPCParameterNamePixelPerInch; -extern SDLRPCParameterName const SDLRPCParameterNamePlaylistName; -extern SDLRPCParameterName const SDLRPCParameterNamePlayTone; -extern SDLRPCParameterName const SDLRPCParameterNamePosition; -extern SDLRPCParameterName const SDLRPCParameterNamePostalCode; -extern SDLRPCParameterName const SDLRPCParameterNamePowerModeActive; -extern SDLRPCParameterName const SDLRPCParameterNamePowerModeQualificationStatus; -extern SDLRPCParameterName const SDLRPCParameterNamePowerModeStatus; -extern SDLRPCParameterName const SDLRPCParameterNamePrecipAccumulation; -extern SDLRPCParameterName const SDLRPCParameterNamePrecipIntensity; -extern SDLRPCParameterName const SDLRPCParameterNamePrecipProbability; -extern SDLRPCParameterName const SDLRPCParameterNamePrecipType; -extern SDLRPCParameterName const SDLRPCParameterNamePreferredResolution; -extern SDLRPCParameterName const SDLRPCParameterNamePrerecordedSpeech; -extern SDLRPCParameterName const SDLRPCParameterNamePresetBankCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNamePressAvailable; -extern SDLRPCParameterName const SDLRPCParameterNamePressure; -extern SDLRPCParameterName const SDLRPCParameterNamePressureTelltale; -extern SDLRPCParameterName const SDLRPCParameterNamePrimaryAudioSource; -extern SDLRPCParameterName const SDLRPCParameterNamePrimaryColor; -extern SDLRPCParameterName const SDLRPCParameterNamePRNDL; -extern SDLRPCParameterName const SDLRPCParameterNameProgramIdentification; -extern SDLRPCParameterName const SDLRPCParameterNameProgressIndicator; -extern SDLRPCParameterName const SDLRPCParameterNameProperties; -extern SDLRPCParameterName const SDLRPCParameterNameProgramService; -extern SDLRPCParameterName const SDLRPCParameterNameProgramType; -extern SDLRPCParameterName const SDLRPCParameterNamePrompt; -extern SDLRPCParameterName const SDLRPCParameterNameQueueCurrentTrackNumber; -extern SDLRPCParameterName const SDLRPCParameterNameQueuePlaybackDuration; -extern SDLRPCParameterName const SDLRPCParameterNameQueuePlaybackProgress; -extern SDLRPCParameterName const SDLRPCParameterNameQueueTotalTrackCount; -extern SDLRPCParameterName const SDLRPCParameterNameRadioBandAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameRadioControlCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameRadioControlData; -extern SDLRPCParameterName const SDLRPCParameterNameRadioEnable; -extern SDLRPCParameterName const SDLRPCParameterNameRadioEnableAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameRadioFrequencyAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameRange; -extern SDLRPCParameterName const SDLRPCParameterNameRDSData; -extern SDLRPCParameterName const SDLRPCParameterNameRDSDataAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameRearLeftDoorAjar; -extern SDLRPCParameterName const SDLRPCParameterNameRearRightDoorAjar; -extern SDLRPCParameterName const SDLRPCParameterNameReason; -extern SDLRPCParameterName const SDLRPCParameterNameRect; -extern SDLRPCParameterName const SDLRPCParameterNameRed; -extern SDLRPCParameterName const SDLRPCParameterNameRegion; -extern SDLRPCParameterName const SDLRPCParameterNameRegions; -extern SDLRPCParameterName const SDLRPCParameterNameRemoteControl; -extern SDLRPCParameterName const SDLRPCParameterNameRemoteControlCapability; -extern SDLRPCParameterName const SDLRPCParameterNameRequest; -extern SDLRPCParameterName const SDLRPCParameterNameRequestServiceActive; -extern SDLRPCParameterName const SDLRPCParameterNameRequestSubType; -extern SDLRPCParameterName const SDLRPCParameterNameRequestType; -extern SDLRPCParameterName const SDLRPCParameterNameRequireEncryption; -extern SDLRPCParameterName const SDLRPCParameterNameReserved; -extern SDLRPCParameterName const SDLRPCParameterNameResolution; -extern SDLRPCParameterName const SDLRPCParameterNameResolutionHeight; -extern SDLRPCParameterName const SDLRPCParameterNameResolutionWidth; -extern SDLRPCParameterName const SDLRPCParameterNameResponse; -extern SDLRPCParameterName const SDLRPCParameterNameResult; -extern SDLRPCParameterName const SDLRPCParameterNameResultCode; -extern SDLRPCParameterName const SDLRPCParameterNameRightFront; -extern SDLRPCParameterName const SDLRPCParameterNameRightRear; -extern SDLRPCParameterName const SDLRPCParameterNameRightRearInflatableBelted; -extern SDLRPCParameterName const SDLRPCParameterNameRightRow2BuckleBelted; -extern SDLRPCParameterName const SDLRPCParameterNameRightRow3BuckleBelted; -extern SDLRPCParameterName const SDLRPCParameterNameRolloverEvent; -extern SDLRPCParameterName const SDLRPCParameterNameRow; -extern SDLRPCParameterName const SDLRPCParameterNameRows; -extern SDLRPCParameterName const SDLRPCParameterNameRowSpan; -extern SDLRPCParameterName const SDLRPCParameterNameRPCName; -extern SDLRPCParameterName const SDLRPCParameterNameRPCSpecVersion; -extern SDLRPCParameterName const SDLRPCParameterNameRPM; -extern SDLRPCParameterName const SDLRPCParameterNameRadioText; -extern SDLRPCParameterName const SDLRPCParameterNameSamplingRate; -extern SDLRPCParameterName const SDLRPCParameterNameSatellites; -extern SDLRPCParameterName const SDLRPCParameterNameScale; -extern SDLRPCParameterName const SDLRPCParameterNameScreenParams; -extern SDLRPCParameterName const SDLRPCParameterNameScrollableMessageBody; -extern SDLRPCParameterName const SDLRPCParameterNameSDLVersion; -extern SDLRPCParameterName const SDLRPCParameterNameSearchAddress; -extern SDLRPCParameterName const SDLRPCParameterNameSeatControlData; -extern SDLRPCParameterName const SDLRPCParameterNameSeatControlCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameSeatLocation; -extern SDLRPCParameterName const SDLRPCParameterNameSeatLocationCapability; -extern SDLRPCParameterName const SDLRPCParameterNameSeats; -extern SDLRPCParameterName const SDLRPCParameterNameSecondaryColor; -extern SDLRPCParameterName const SDLRPCParameterNameSecondaryGraphic; -extern SDLRPCParameterName const SDLRPCParameterNameSecondaryImage; -extern SDLRPCParameterName const SDLRPCParameterNameSecondaryText; -extern SDLRPCParameterName const SDLRPCParameterNameSecond; -extern SDLRPCParameterName const SDLRPCParameterNameSeconds; -extern SDLRPCParameterName const SDLRPCParameterNameSendLocationEnabled; -extern SDLRPCParameterName const SDLRPCParameterNameServiceActive; -extern SDLRPCParameterName const SDLRPCParameterNameServiceArea; -extern SDLRPCParameterName const SDLRPCParameterNameServiceData; -extern SDLRPCParameterName const SDLRPCParameterNameServiceIcon; -extern SDLRPCParameterName const SDLRPCParameterNameServiceID; -extern SDLRPCParameterName const SDLRPCParameterNameServiceManifest; -extern SDLRPCParameterName const SDLRPCParameterNameServiceName; -extern SDLRPCParameterName const SDLRPCParameterNameServicePublished; -extern SDLRPCParameterName const SDLRPCParameterNameServiceSpecificResult; -extern SDLRPCParameterName const SDLRPCParameterNameServiceType; -extern SDLRPCParameterName const SDLRPCParameterNameServiceUri; -extern SDLRPCParameterName const SDLRPCParameterNameSeverity; -extern SDLRPCParameterName const SDLRPCParameterNameShifted; -extern SDLRPCParameterName const SDLRPCParameterNameShortPress; -extern SDLRPCParameterName const SDLRPCParameterNameShortPressAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameSignalLevelStatus; -extern SDLRPCParameterName const SDLRPCParameterNameSignalChangeThreshold; -extern SDLRPCParameterName const SDLRPCParameterNameSignalChangeThresholdAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameSignalStrength; -extern SDLRPCParameterName const SDLRPCParameterNameSignalStrengthAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameSiriusXMRadioAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameSISData; -extern SDLRPCParameterName const SDLRPCParameterNameSISDataAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameSliderFooter; -extern SDLRPCParameterName const SDLRPCParameterNameSliderHeader; -extern SDLRPCParameterName const SDLRPCParameterNameSliderPosition; -extern SDLRPCParameterName const SDLRPCParameterNameSoftButtonCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameSoftButtonId; -extern SDLRPCParameterName const SDLRPCParameterNameSoftButtons; -extern SDLRPCParameterName const SDLRPCParameterNameSource; -extern SDLRPCParameterName const SDLRPCParameterNameSourceAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameSpaceAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameSpeechCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameSpeed; -extern SDLRPCParameterName const SDLRPCParameterNameRGBColorSpaceAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameStartTime; -extern SDLRPCParameterName const SDLRPCParameterNameState; -extern SDLRPCParameterName const SDLRPCParameterNameStateAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameStateOfCharge; -extern SDLRPCParameterName const SDLRPCParameterNameStationIDNumber; -extern SDLRPCParameterName const SDLRPCParameterNameStationLongName; -extern SDLRPCParameterName const SDLRPCParameterNameStationLocation; -extern SDLRPCParameterName const SDLRPCParameterNameStationMessage; -extern SDLRPCParameterName const SDLRPCParameterNameStationShortName; -extern SDLRPCParameterName const SDLRPCParameterNameStatus; -extern SDLRPCParameterName const SDLRPCParameterNameStatusAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameStatusBar; -extern SDLRPCParameterName const SDLRPCParameterNameSteeringWheelAngle; -extern SDLRPCParameterName const SDLRPCParameterNameStereoAudioOutputMuted; -extern SDLRPCParameterName const SDLRPCParameterNameSubAdministrativeArea; -extern SDLRPCParameterName const SDLRPCParameterNameSubLocality; -extern SDLRPCParameterName const SDLRPCParameterNameSubscribe; -extern SDLRPCParameterName const SDLRPCParameterNameSubThoroughfare; -extern SDLRPCParameterName const SDLRPCParameterNameSuccess; -extern SDLRPCParameterName const SDLRPCParameterNameSummary; -extern SDLRPCParameterName const SDLRPCParameterNameSupportedDiagnosticModes; -extern SDLRPCParameterName const SDLRPCParameterNameSupportedFormats; -extern SDLRPCParameterName const SDLRPCParameterNameSupportedLights; -extern SDLRPCParameterName const SDLRPCParameterNameSyncFileName; -extern SDLRPCParameterName const SDLRPCParameterNameSyncMessageVersion; -extern SDLRPCParameterName const SDLRPCParameterNameSystemAction; -extern SDLRPCParameterName const SDLRPCParameterNameSystemCapability; -extern SDLRPCParameterName const SDLRPCParameterNameSystemCapabilityType; -extern SDLRPCParameterName const SDLRPCParameterNameSystemContext; -extern SDLRPCParameterName const SDLRPCParameterNameSystemFile; -extern SDLRPCParameterName const SDLRPCParameterNameSystemSoftwareVersion; -extern SDLRPCParameterName const SDLRPCParameterNameTrackPlaybackDuration; -extern SDLRPCParameterName const SDLRPCParameterNameTrackPlaybackProgress; -extern SDLRPCParameterName const SDLRPCParameterNameTrafficAnnouncementIdentification; -extern SDLRPCParameterName const SDLRPCParameterNameTargetId; -extern SDLRPCParameterName const SDLRPCParameterNameTemperatureHigh; -extern SDLRPCParameterName const SDLRPCParameterNameTemperatureLow; -extern SDLRPCParameterName const SDLRPCParameterNameTemperatureUnit; -extern SDLRPCParameterName const SDLRPCParameterNameTemperatureUnitAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameTemplate; -extern SDLRPCParameterName const SDLRPCParameterNameTemplateConfiguration; -extern SDLRPCParameterName const SDLRPCParameterNameTemplatesAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameTemplateTitle; -extern SDLRPCParameterName const SDLRPCParameterNameTertiaryText; -extern SDLRPCParameterName const SDLRPCParameterNameText; -extern SDLRPCParameterName const SDLRPCParameterNameTextFields; -extern SDLRPCParameterName const SDLRPCParameterNameTextMessageAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameTextSupported; -extern SDLRPCParameterName const SDLRPCParameterNameThoroughfare; -extern SDLRPCParameterName const SDLRPCParameterNameTime; -extern SDLRPCParameterName const SDLRPCParameterNameTimeIssued; -extern SDLRPCParameterName const SDLRPCParameterNameTimeout; -extern SDLRPCParameterName const SDLRPCParameterNameTimeoutCapitalized; -extern SDLRPCParameterName const SDLRPCParameterNameTimeoutPrompt; -extern SDLRPCParameterName const SDLRPCParameterNameTS; -extern SDLRPCParameterName const SDLRPCParameterNameTimeStamp; -extern SDLRPCParameterName const SDLRPCParameterNameTimeToDestination; -extern SDLRPCParameterName const SDLRPCParameterNameTimezoneHourOffset; -extern SDLRPCParameterName const SDLRPCParameterNameTimezoneMinuteOffset; -extern SDLRPCParameterName const SDLRPCParameterNameTirePressure; -extern SDLRPCParameterName const SDLRPCParameterNameTitle; -extern SDLRPCParameterName const SDLRPCParameterNameTotalDistance; -extern SDLRPCParameterName const SDLRPCParameterNameTouchEventAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameTPMS; -extern SDLRPCParameterName const SDLRPCParameterNameTrafficProgramIdentification; -extern SDLRPCParameterName const SDLRPCParameterNameTriggerSource; -extern SDLRPCParameterName const SDLRPCParameterNameTrim; -extern SDLRPCParameterName const SDLRPCParameterNameTryAgainTime; -extern SDLRPCParameterName const SDLRPCParameterNameTTSChunks; -extern SDLRPCParameterName const SDLRPCParameterNameTTSName; -extern SDLRPCParameterName const SDLRPCParameterNameTurnIcon; -extern SDLRPCParameterName const SDLRPCParameterNameTurnList; -extern SDLRPCParameterName const SDLRPCParameterNameTurnSignal; -extern SDLRPCParameterName const SDLRPCParameterNameType; -extern SDLRPCParameterName const SDLRPCParameterNameUnit; -extern SDLRPCParameterName const SDLRPCParameterNameUnsubscribe; -extern SDLRPCParameterName const SDLRPCParameterNameUpdatedAppServiceRecord; -extern SDLRPCParameterName const SDLRPCParameterNameUpdateMode; -extern SDLRPCParameterName const SDLRPCParameterNameUpdateReason; -extern SDLRPCParameterName const SDLRPCParameterNameUpDownAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameURL; -extern SDLRPCParameterName const SDLRPCParameterNameURLUppercase; -extern SDLRPCParameterName const SDLRPCParameterNameUserDisallowed; -extern SDLRPCParameterName const SDLRPCParameterNameUserLocation; -extern SDLRPCParameterName const SDLRPCParameterNameUserSelected; -extern SDLRPCParameterName const SDLRPCParameterNameUTCDay; -extern SDLRPCParameterName const SDLRPCParameterNameUTCHours; -extern SDLRPCParameterName const SDLRPCParameterNameUTCMinutes; -extern SDLRPCParameterName const SDLRPCParameterNameUTCMonth; -extern SDLRPCParameterName const SDLRPCParameterNameUTCSeconds; -extern SDLRPCParameterName const SDLRPCParameterNameUTCYear; -extern SDLRPCParameterName const SDLRPCParameterNameValue; -extern SDLRPCParameterName const SDLRPCParameterNameVDOP; -extern SDLRPCParameterName const SDLRPCParameterNameVehicleType; -extern SDLRPCParameterName const SDLRPCParameterNameVerticalPosition; -extern SDLRPCParameterName const SDLRPCParameterNameVerticalPositionAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameVideoCodec; -extern SDLRPCParameterName const SDLRPCParameterNameVideoProtocol; -extern SDLRPCParameterName const SDLRPCParameterNameVideoStreaming; -extern SDLRPCParameterName const SDLRPCParameterNameVideoStreamingCapability; -extern SDLRPCParameterName const SDLRPCParameterNameVideoStreamingState; -extern SDLRPCParameterName const SDLRPCParameterNameVisibility; -extern SDLRPCParameterName const SDLRPCParameterNameVentilationMode; -extern SDLRPCParameterName const SDLRPCParameterNameVentilationModeAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameVIN; -extern SDLRPCParameterName const SDLRPCParameterNameVoiceRecognitionOn; -extern SDLRPCParameterName const SDLRPCParameterNameVolume; -extern SDLRPCParameterName const SDLRPCParameterNameVolumeAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameVRCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameVRCommands; -extern SDLRPCParameterName const SDLRPCParameterNameVRHelp; -extern SDLRPCParameterName const SDLRPCParameterNameVRHelpTitle; -extern SDLRPCParameterName const SDLRPCParameterNameVRSynonyms; -extern SDLRPCParameterName const SDLRPCParameterNameWayPoints; -extern SDLRPCParameterName const SDLRPCParameterNameWayPointType; -extern SDLRPCParameterName const SDLRPCParameterNameWeatherForLocationSupported; -extern SDLRPCParameterName const SDLRPCParameterNameWeatherIcon; -extern SDLRPCParameterName const SDLRPCParameterNameWeatherServiceData; -extern SDLRPCParameterName const SDLRPCParameterNameWeatherServiceManifest; -extern SDLRPCParameterName const SDLRPCParameterNameWeatherSummary; -extern SDLRPCParameterName const SDLRPCParameterNameWidth; -extern SDLRPCParameterName const SDLRPCParameterNameWindBearing; -extern SDLRPCParameterName const SDLRPCParameterNameWindGust; -extern SDLRPCParameterName const SDLRPCParameterNameWindSpeed; -extern SDLRPCParameterName const SDLRPCParameterNameWiperStatus; -extern SDLRPCParameterName const SDLRPCParameterNameWindowCapabilities; -extern SDLRPCParameterName const SDLRPCParameterNameWindowId; -extern SDLRPCParameterName const SDLRPCParameterNameWindowName; -extern SDLRPCParameterName const SDLRPCParameterNameWindowTypeSupported; -extern SDLRPCParameterName const SDLRPCParameterNameX; -extern SDLRPCParameterName const SDLRPCParameterNameY; -extern SDLRPCParameterName const SDLRPCParameterNameYear; - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.m deleted file mode 100644 index 85a88b1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCParameterNames.m +++ /dev/null @@ -1,723 +0,0 @@ -// SDLRPCParameterNames.h -// - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -SDLRPCParameterName const SDLRPCParameterNameACEnable = @"acEnable"; -SDLRPCParameterName const SDLRPCParameterNameACEnableAvailable = @"acEnableAvailable"; -SDLRPCParameterName const SDLRPCParameterNameACMaxEnable = @"acMaxEnable"; -SDLRPCParameterName const SDLRPCParameterNameACMaxEnableAvailable = @"acMaxEnableAvailable"; -SDLRPCParameterName const SDLRPCParameterNameAccelerationPedalPosition = @"accPedalPosition"; -SDLRPCParameterName const SDLRPCParameterNameAcceptsWayPoints = @"acceptsWayPoints"; -SDLRPCParameterName const SDLRPCParameterNameAction = @"action"; -SDLRPCParameterName const SDLRPCParameterNameActual = @"actual"; -SDLRPCParameterName const SDLRPCParameterNameAddress = @"address"; -SDLRPCParameterName const SDLRPCParameterNameAddressLines = @"addressLines"; -SDLRPCParameterName const SDLRPCParameterNameAdministrativeArea = @"administrativeArea"; -SDLRPCParameterName const SDLRPCParameterNameAirbagStatus = @"airbagStatus"; -SDLRPCParameterName const SDLRPCParameterNameAlertIcon = @"alertIcon"; -SDLRPCParameterName const SDLRPCParameterNameAlerts = @"alerts"; -SDLRPCParameterName const SDLRPCParameterNameAlertText1 = @"alertText1"; -SDLRPCParameterName const SDLRPCParameterNameAlertText2 = @"alertText2"; -SDLRPCParameterName const SDLRPCParameterNameAlertText3 = @"alertText3"; -SDLRPCParameterName const SDLRPCParameterNameAlignment = @"alignment"; -SDLRPCParameterName const SDLRPCParameterNameAllowAppConsumers = @"allowAppConsumers"; -SDLRPCParameterName const SDLRPCParameterNameAllowed = @"allowed"; -SDLRPCParameterName const SDLRPCParameterNameAllowMultipleAccess = @"allowMultipleAccess"; -SDLRPCParameterName const SDLRPCParameterNameAllocatedModules = @"allocatedModules"; -SDLRPCParameterName const SDLRPCParameterNameAltitude = @"altitude"; -SDLRPCParameterName const SDLRPCParameterNameAltitudeMeters = @"altitudeMeters"; -SDLRPCParameterName const SDLRPCParameterNameAmbientLightSensorStatus = @"ambientLightSensorStatus"; -SDLRPCParameterName const SDLRPCParameterNameAmbientLightStatus = @"ambientLightStatus"; -SDLRPCParameterName const SDLRPCParameterNameApparentTemperature = @"apparentTemperature"; -SDLRPCParameterName const SDLRPCParameterNameApparentTemperatureHigh = @"apparentTemperatureHigh"; -SDLRPCParameterName const SDLRPCParameterNameApparentTemperatureLow = @"apparentTemperatureLow"; -SDLRPCParameterName const SDLRPCParameterNameAppBundleId = @"appBundleID"; -SDLRPCParameterName const SDLRPCParameterNameAppHMIType = @"appHMIType"; -SDLRPCParameterName const SDLRPCParameterNameAppId = @"appID"; -SDLRPCParameterName const SDLRPCParameterNameAppInfo = @"appInfo"; -SDLRPCParameterName const SDLRPCParameterNameAppName = @"appName"; -SDLRPCParameterName const SDLRPCParameterNameAppServiceId = @"appServiceId"; -SDLRPCParameterName const SDLRPCParameterNameAppServiceManifest = @"appServiceManifest"; -SDLRPCParameterName const SDLRPCParameterNameAppServiceRecord = @"appServiceRecord"; -SDLRPCParameterName const SDLRPCParameterNameAppServices = @"appServices"; -SDLRPCParameterName const SDLRPCParameterNameAppServicesCapabilities = @"appServicesCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameAppDisplayName = @"appDisplayName"; -SDLRPCParameterName const SDLRPCParameterNameAppVersion = @"appVersion"; -SDLRPCParameterName const SDLRPCParameterNameAudioControlCapabilities = @"audioControlCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameAudioControlData = @"audioControlData"; -SDLRPCParameterName const SDLRPCParameterNameAssociatedServiceType = @"associatedServiceType"; -SDLRPCParameterName const SDLRPCParameterNameAudioPassThruCapabilities = @"audioPassThruCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText1 = @"audioPassThruDisplayText1"; -SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText2 = @"audioPassThruDisplayText2"; -SDLRPCParameterName const SDLRPCParameterNameAudioStreamingIndicator = @"audioStreamingIndicator"; -SDLRPCParameterName const SDLRPCParameterNameAudioStreamingState = @"audioStreamingState"; -SDLRPCParameterName const SDLRPCParameterNameAudioType = @"audioType"; -SDLRPCParameterName const SDLRPCParameterNameAuthToken = @"authToken"; -SDLRPCParameterName const SDLRPCParameterNameAutoCompleteList = @"autoCompleteList"; -SDLRPCParameterName const SDLRPCParameterNameAutoCompleteText = @"autoCompleteText"; -SDLRPCParameterName const SDLRPCParameterNameAutoModeEnable = @"autoModeEnable"; -SDLRPCParameterName const SDLRPCParameterNameAutoModeEnableAvailable = @"autoModeEnableAvailable"; -SDLRPCParameterName const SDLRPCParameterNameAuxECallNotificationStatus = @"auxECallNotificationStatus"; -SDLRPCParameterName const SDLRPCParameterNameAvailableHDs = @"availableHDs"; -SDLRPCParameterName const SDLRPCParameterNameAvailableHDChannels = @"availableHDChannels"; -SDLRPCParameterName const SDLRPCParameterNameAvailableHDsAvailable = @"availableHDsAvailable"; -SDLRPCParameterName const SDLRPCParameterNameAvailableHDChannelsAvailable = @"availableHDChannelsAvailable"; -SDLRPCParameterName const SDLRPCParameterNameBackgroundColor = @"backgroundColor"; -SDLRPCParameterName const SDLRPCParameterNameBackTiltAngle = @"backTiltAngle"; -SDLRPCParameterName const SDLRPCParameterNameBackTiltAngleAvailable = @"backTiltAngleAvailable"; -SDLRPCParameterName const SDLRPCParameterNameBackVerticalPosition = @"backVerticalPosition"; -SDLRPCParameterName const SDLRPCParameterNameBackVerticalPositionAvailable = @"backVerticalPositionAvailable"; -SDLRPCParameterName const SDLRPCParameterNameBand = @"band"; -SDLRPCParameterName const SDLRPCParameterNameBatteryLevelStatus = @"battLevelStatus"; -SDLRPCParameterName const SDLRPCParameterNameBearing = @"bearing"; -SDLRPCParameterName const SDLRPCParameterNameBeltStatus = @"beltStatus"; -SDLRPCParameterName const SDLRPCParameterNameBitsPerSample = @"bitsPerSample"; -SDLRPCParameterName const SDLRPCParameterNameBodyInformation = @"bodyInformation"; -SDLRPCParameterName const SDLRPCParameterNameBlue = @"blue"; -SDLRPCParameterName const SDLRPCParameterNameBluetoothIconOn = @"btIconOn"; -SDLRPCParameterName const SDLRPCParameterNameBulkData = @"bulkData"; -SDLRPCParameterName const SDLRPCParameterNameButtonCapabilities = @"buttonCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameButtonEventMode = @"buttonEventMode"; -SDLRPCParameterName const SDLRPCParameterNameButtonName = @"buttonName"; -SDLRPCParameterName const SDLRPCParameterNameButtonPressMode = @"buttonPressMode"; -SDLRPCParameterName const SDLRPCParameterNameCancelID = @"cancelID"; -SDLRPCParameterName const SDLRPCParameterNameCoolingEnabled = @"coolingEnabled"; -SDLRPCParameterName const SDLRPCParameterNameCoolingEnabledAvailable = @"coolingEnabledAvailable"; -SDLRPCParameterName const SDLRPCParameterNameCoolingLevel = @"coolingLevel"; -SDLRPCParameterName const SDLRPCParameterNameCoolingLevelAvailable = @"coolingLevelAvailable"; -SDLRPCParameterName const SDLRPCParameterNameCoordinate = @"c"; -SDLRPCParameterName const SDLRPCParameterNameCallActive = @"callActive"; -SDLRPCParameterName const SDLRPCParameterNameCarModeStatus = @"carModeStatus"; -SDLRPCParameterName const SDLRPCParameterNameCarrier = @"carrier"; -SDLRPCParameterName const SDLRPCParameterNameChannelId = @"channelId"; -SDLRPCParameterName const SDLRPCParameterNameChannelName = @"channelName"; -SDLRPCParameterName const SDLRPCParameterNameChannelSetting = @"channelSetting"; -SDLRPCParameterName const SDLRPCParameterNameCharacterSet = @"characterSet"; -SDLRPCParameterName const SDLRPCParameterNameChoiceId = @"choiceID"; -SDLRPCParameterName const SDLRPCParameterNameChoiceSet = @"choiceSet"; -SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnable = @"circulateAirEnable"; -SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnableAvailable = @"circulateAirEnableAvailable"; -SDLRPCParameterName const SDLRPCParameterNameClimateControlData = @"climateControlData"; -SDLRPCParameterName const SDLRPCParameterNameClimateControlCapabilities = @"climateControlCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameCloudCover = @"cloudCover"; -SDLRPCParameterName const SDLRPCParameterNameClusterModes = @"clusterModes"; -SDLRPCParameterName const SDLRPCParameterNameClusterModeStatus = @"clusterModeStatus"; -SDLRPCParameterName const SDLRPCParameterNameColor = @"color"; -SDLRPCParameterName const SDLRPCParameterNameCol = @"col"; -SDLRPCParameterName const SDLRPCParameterNameColSpan = @"colspan"; -SDLRPCParameterName const SDLRPCParameterNameColumns = @"columns"; -SDLRPCParameterName const SDLRPCParameterNameCommandIcon = @"cmdIcon"; -SDLRPCParameterName const SDLRPCParameterNameCommandId = @"cmdID"; -SDLRPCParameterName const SDLRPCParameterNameCompassDirection = @"compassDirection"; -SDLRPCParameterName const SDLRPCParameterNameCorrelationId = @"correlationID"; -SDLRPCParameterName const SDLRPCParameterNameCountryCode = @"countryCode"; -SDLRPCParameterName const SDLRPCParameterNameCountryName = @"countryName"; -SDLRPCParameterName const SDLRPCParameterNameCRC = @"crc"; -SDLRPCParameterName const SDLRPCParameterNameClockText = @"CT"; -SDLRPCParameterName const SDLRPCParameterNameCloudAppVehicleID = @"cloudAppVehicleID"; -SDLRPCParameterName const SDLRPCParameterNameCloudTransportType = @"cloudTransportType"; -SDLRPCParameterName const SDLRPCParameterNameCurrentForecast = @"currentForecast"; -SDLRPCParameterName const SDLRPCParameterNameCurrentForecastSupported = @"currentForecastSupported"; -SDLRPCParameterName const SDLRPCParameterNameCurrentTemperature = @"currentTemperature"; -SDLRPCParameterName const SDLRPCParameterNameCushion = @"cushion"; -SDLRPCParameterName const SDLRPCParameterNameCustomButtonId = @"customButtonID"; -SDLRPCParameterName const SDLRPCParameterNameCustomPresets = @"customPresets"; -SDLRPCParameterName const SDLRPCParameterNameData = @"data"; -SDLRPCParameterName const SDLRPCParameterNameDataResult = @"dataResult"; -SDLRPCParameterName const SDLRPCParameterNameDataType = @"dataType"; -SDLRPCParameterName const SDLRPCParameterNameDay = @"day"; -SDLRPCParameterName const SDLRPCParameterNameDayColorScheme = @"dayColorScheme"; -SDLRPCParameterName const SDLRPCParameterNameDefrostZone = @"defrostZone"; -SDLRPCParameterName const SDLRPCParameterNameDefrostZoneAvailable = @"defrostZoneAvailable"; -SDLRPCParameterName const SDLRPCParameterNameDeliveryMode = @"deliveryMode"; -SDLRPCParameterName const SDLRPCParameterNameDensity = @"density"; -SDLRPCParameterName const SDLRPCParameterNameDensityAvailable = @"densityAvailable"; -SDLRPCParameterName const SDLRPCParameterNameDesiredTemperature = @"desiredTemperature"; -SDLRPCParameterName const SDLRPCParameterNameDesiredTemperatureAvailable = @"desiredTemperatureAvailable"; -SDLRPCParameterName const SDLRPCParameterNameDestination = @"destination"; -SDLRPCParameterName const SDLRPCParameterNameDestinationETA = @"destinationETA"; -SDLRPCParameterName const SDLRPCParameterNameDeviceInfo = @"deviceInfo"; -SDLRPCParameterName const SDLRPCParameterNameDeviceStatus = @"deviceStatus"; -SDLRPCParameterName const SDLRPCParameterNameDetails = @"details"; -SDLRPCParameterName const SDLRPCParameterNameDiagonalScreenSize = @"diagonalScreenSize"; -SDLRPCParameterName const SDLRPCParameterNameDialNumberEnabled = @"dialNumberEnabled"; -SDLRPCParameterName const SDLRPCParameterNameDIDLocation = @"didLocation"; -SDLRPCParameterName const SDLRPCParameterNameDIDResult = @"didResult"; -SDLRPCParameterName const SDLRPCParameterNameDimension = @"dimension"; -SDLRPCParameterName const SDLRPCParameterNameDisplays = @"displays"; -SDLRPCParameterName const SDLRPCParameterNameDisplayCapabilities = @"displayCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameDisplayLayout = @"displayLayout"; -SDLRPCParameterName const SDLRPCParameterNameDisplayMode = @"displayMode"; -SDLRPCParameterName const SDLRPCParameterNameDisplayModeUnitAvailable = @"displayModeUnitAvailable"; -SDLRPCParameterName const SDLRPCParameterNameDisplayType = @"displayType"; -SDLRPCParameterName const SDLRPCParameterNameDistanceToEmpty = @"distanceToEmpty"; -SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuver = @"distanceToManeuver"; -SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuverScale = @"distanceToManeuverScale"; -SDLRPCParameterName const SDLRPCParameterNameDistanceUnitAvailable = @"distanceUnitAvailable"; -SDLRPCParameterName const SDLRPCParameterNameDistanceUnit = @"distanceUnit"; -SDLRPCParameterName const SDLRPCParameterNameDoublePressAvailable = @"doublePressAvailable"; -SDLRPCParameterName const SDLRPCParameterNameDriverAirbagDeployed = @"driverAirbagDeployed"; -SDLRPCParameterName const SDLRPCParameterNameDriverBeltDeployed = @"driverBeltDeployed"; -SDLRPCParameterName const SDLRPCParameterNameDriverBraking = @"driverBraking"; -SDLRPCParameterName const SDLRPCParameterNameDriverBuckleBelted = @"driverBuckleBelted"; -SDLRPCParameterName const SDLRPCParameterNameDriverCurtainAirbagDeployed = @"driverCurtainAirbagDeployed"; -SDLRPCParameterName const SDLRPCParameterNameDriverDistractionStatus = @"driverDistractionStatus"; -SDLRPCParameterName const SDLRPCParameterNameDriverDoorAjar = @"driverDoorAjar"; -SDLRPCParameterName const SDLRPCParameterNameDriverKneeAirbagDeployed = @"driverKneeAirbagDeployed"; -SDLRPCParameterName const SDLRPCParameterNameDriverSideAirbagDeployed = @"driverSideAirbagDeployed"; -SDLRPCParameterName const SDLRPCParameterNameDrivingSide = @"drivingSide"; -SDLRPCParameterName const SDLRPCParameterNameDTC = @"dtc"; -SDLRPCParameterName const SDLRPCParameterNameDTCMask = @"dtcMask"; -SDLRPCParameterName const SDLRPCParameterNameDualModeEnable = @"dualModeEnable"; -SDLRPCParameterName const SDLRPCParameterNameDualModeEnableAvailable = @"dualModeEnableAvailable"; -SDLRPCParameterName const SDLRPCParameterNameDuration = @"duration"; -SDLRPCParameterName const SDLRPCParameterNameDuplicateUpdatesFromWindowID = @"duplicateUpdatesFromWindowID"; -SDLRPCParameterName const SDLRPCParameterNameE911Override = @"e911Override"; -SDLRPCParameterName const SDLRPCParameterNameECallConfirmationStatus = @"eCallConfirmationStatus"; -SDLRPCParameterName const SDLRPCParameterNameECallEventActive = @"eCallEventActive"; -SDLRPCParameterName const SDLRPCParameterNameECallInfo = @"eCallInfo"; -SDLRPCParameterName const SDLRPCParameterNameECallNotificationStatus = @"eCallNotificationStatus"; -SDLRPCParameterName const SDLRPCParameterNameECUHeader = @"ecuHeader"; -SDLRPCParameterName const SDLRPCParameterNameECUName = @"ecuName"; -SDLRPCParameterName const SDLRPCParameterNameElectronicParkBrakeStatus = @"electronicParkBrakeStatus"; -SDLRPCParameterName const SDLRPCParameterNameEmergencyEvent = @"emergencyEvent"; -SDLRPCParameterName const SDLRPCParameterNameEmergencyEventType = @"emergencyEventType"; -SDLRPCParameterName const SDLRPCParameterNameEnabled = @"enabled"; -SDLRPCParameterName const SDLRPCParameterNameEndpoint = @"endpoint"; -SDLRPCParameterName const SDLRPCParameterNameEndTime = @"endTime"; -SDLRPCParameterName const SDLRPCParameterNameEngineOilLife = @"engineOilLife"; -SDLRPCParameterName const SDLRPCParameterNameEngineTorque = @"engineTorque"; -SDLRPCParameterName const SDLRPCParameterNameEqualizerAvailable = @"equalizerAvailable"; -SDLRPCParameterName const SDLRPCParameterNameEqualizerMaxChannelId = @"equalizerMaxChannelId"; -SDLRPCParameterName const SDLRPCParameterNameEqualizerSettings = @"equalizerSettings";; -SDLRPCParameterName const SDLRPCParameterNameETA = @"eta"; -SDLRPCParameterName const SDLRPCParameterNameEvent = @"event"; -SDLRPCParameterName const SDLRPCParameterNameExpires = @"expires"; -SDLRPCParameterName const SDLRPCParameterNameExternalTemperature = @"externalTemperature"; -SDLRPCParameterName const SDLRPCParameterNameFanSpeed = @"fanSpeed"; -SDLRPCParameterName const SDLRPCParameterNameFanSpeedAvailable = @"fanSpeedAvailable"; -SDLRPCParameterName const SDLRPCParameterNameFCCFacilityId = @"fccFacilityId"; -SDLRPCParameterName const SDLRPCParameterNameFilename = @"fileName"; -SDLRPCParameterName const SDLRPCParameterNameFilenames = @"filenames"; -SDLRPCParameterName const SDLRPCParameterNameFileType = @"fileType"; -SDLRPCParameterName const SDLRPCParameterNameFirmness = @"firmness"; -SDLRPCParameterName const SDLRPCParameterNameFirmwareRevision = @"firmwareRev"; -SDLRPCParameterName const SDLRPCParameterNameFreeModules = @"freeModules"; -SDLRPCParameterName const SDLRPCParameterNameFrequencyInteger = @"frequencyInteger"; -SDLRPCParameterName const SDLRPCParameterNameFrequencyFraction = @"frequencyFraction"; -SDLRPCParameterName const SDLRPCParameterNameFrontVerticalPosition = @"frontVerticalPosition"; -SDLRPCParameterName const SDLRPCParameterNameFrontVerticalPositionAvailable = @"frontVerticalPositionAvailable"; -SDLRPCParameterName const SDLRPCParameterNameFuelCutoffStatus = @"fuelCutoffStatus"; -SDLRPCParameterName const SDLRPCParameterNameFuelLevel = @"fuelLevel"; -SDLRPCParameterName const SDLRPCParameterNameFuelLevelState = @"fuelLevel_State"; -SDLRPCParameterName const SDLRPCParameterNameFuelMaintenanceMode = @"fuelMaintenanceMode"; -SDLRPCParameterName const SDLRPCParameterNameFuelRange = @"fuelRange"; -SDLRPCParameterName const SDLRPCParameterNameFunctionID = @"functionID"; -SDLRPCParameterName const SDLRPCParameterNameFullAppID = @"fullAppID"; -SDLRPCParameterName const SDLRPCParameterNameGetWayPointsEnabled = @"getWayPointsEnabled"; -SDLRPCParameterName const SDLRPCParameterNameGPS = @"gps"; -SDLRPCParameterName const SDLRPCParameterNameGraphic = @"graphic"; -SDLRPCParameterName const SDLRPCParameterNameGraphicSupported = @"graphicSupported"; -SDLRPCParameterName const SDLRPCParameterNameGreen = @"green"; -SDLRPCParameterName const SDLRPCParameterNameGrid = @"grid"; -SDLRPCParameterName const SDLRPCParameterNameHandledRPCs = @"handledRPCs"; -SDLRPCParameterName const SDLRPCParameterNameHapticRectData = @"hapticRectData"; -SDLRPCParameterName const SDLRPCParameterNameHapticSpatialDataSupported = @"hapticSpatialDataSupported"; -SDLRPCParameterName const SDLRPCParameterNameHardware = @"hardware"; -SDLRPCParameterName const SDLRPCParameterNameHashId = @"hashID"; -SDLRPCParameterName const SDLRPCParameterNameHDChannel = @"hdChannel"; -SDLRPCParameterName const SDLRPCParameterNameHDChannelAvailable = @"hdChannelAvailable"; -SDLRPCParameterName const SDLRPCParameterNameHDOP = @"hdop"; -SDLRPCParameterName const SDLRPCParameterNameHDRadioEnable = @"hdRadioEnable"; -SDLRPCParameterName const SDLRPCParameterNameHDRadioEnableAvailable = @"hdRadioEnableAvailable"; -SDLRPCParameterName const SDLRPCParameterNameHeading = @"heading"; -SDLRPCParameterName const SDLRPCParameterNameHeadLampStatus = @"headLampStatus"; -SDLRPCParameterName const SDLRPCParameterNameHeadSupportHorizontalPosition = @"headSupportHorizontalPosition"; -SDLRPCParameterName const SDLRPCParameterNameHeadSupportHorizontalPositionAvailable = @"headSupportHorizontalPositionAvailable"; -SDLRPCParameterName const SDLRPCParameterNameHeadSupportVerticalPosition = @"headSupportVerticalPosition"; -SDLRPCParameterName const SDLRPCParameterNameHeadSupportVerticalPositionAvailable = @"headSupportVerticalPositionAvailable"; -SDLRPCParameterName const SDLRPCParameterNameHeatingLevel = @"heatingLevel"; -SDLRPCParameterName const SDLRPCParameterNameHeatingLevelAvailable = @"heatingLevelAvailable"; -SDLRPCParameterName const SDLRPCParameterNameHeatingEnabled = @"heatingEnabled"; -SDLRPCParameterName const SDLRPCParameterNameHeatingEnabledAvailable = @"heatingEnabledAvailable"; -SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelAvailable = @"heatedSteeringWheelAvailable"; -SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldAvailable = @"heatedWindshieldAvailable"; -SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowAvailable = @"heatedRearWindowAvailable"; -SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsAvailable = @"heatedMirrorsAvailable"; -SDLRPCParameterName const SDLRPCParameterNameClimateEnable = @"climateEnable"; -SDLRPCParameterName const SDLRPCParameterNameClimateEnableAvailable = @"climateEnableAvailable"; -SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelEnable = @"heatedSteeringWheelEnable"; -SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldEnable = @"heatedWindshieldEnable"; -SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowEnable = @"heatedRearWindowEnable"; -SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsEnable = @"heatedMirrorsEnable"; -SDLRPCParameterName const SDLRPCParameterNameHeight = @"height"; -SDLRPCParameterName const SDLRPCParameterNameHelpPrompt = @"helpPrompt"; -SDLRPCParameterName const SDLRPCParameterNameHighBeamsOn = @"highBeamsOn"; -SDLRPCParameterName const SDLRPCParameterNameHMICapabilities = @"hmiCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameHmiSettingsControlData = @"hmiSettingsControlData"; -SDLRPCParameterName const SDLRPCParameterNameHMIDisplayLanguage = @"hmiDisplayLanguage"; -SDLRPCParameterName const SDLRPCParameterNameHMIDisplayLanguageDesired = @"hmiDisplayLanguageDesired"; -SDLRPCParameterName const SDLRPCParameterNameHMILevel = @"hmiLevel"; -SDLRPCParameterName const SDLRPCParameterNameHMILevelLowercase = @"hmilevel"; -SDLRPCParameterName const SDLRPCParameterNameHMIPermissions = @"hmiPermissions"; -SDLRPCParameterName const SDLRPCParameterNameHmiSettingsControlCapabilities = @"hmiSettingsControlCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameHMIZoneCapabilities = @"hmiZoneCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameHorizontalPosition = @"horizontalPosition"; -SDLRPCParameterName const SDLRPCParameterNameHorizontalPositionAvailable = @"horizontalPositionAvailable"; -SDLRPCParameterName const SDLRPCParameterNameHour = @"hour"; -SDLRPCParameterName const SDLRPCParameterNameHourlyForecast = @"hourlyForecast"; -SDLRPCParameterName const SDLRPCParameterNameHours = @"hours"; -SDLRPCParameterName const SDLRPCParameterNameHumidity = @"humidity"; -SDLRPCParameterName const SDLRPCParameterNameHybridAppPreference = @"hybridAppPreference"; -SDLRPCParameterName const SDLRPCParameterNameIconResumed = @"iconResumed"; -SDLRPCParameterName const SDLRPCParameterNameId = @"id"; -SDLRPCParameterName const SDLRPCParameterNameIgnitionStableStatus = @"ignitionStableStatus"; -SDLRPCParameterName const SDLRPCParameterNameIgnitionStatus = @"ignitionStatus"; -SDLRPCParameterName const SDLRPCParameterNameImage = @"image"; -SDLRPCParameterName const SDLRPCParameterNameImageFields = @"imageFields"; -SDLRPCParameterName const SDLRPCParameterNameImageResolution = @"imageResolution"; -SDLRPCParameterName const SDLRPCParameterNameImageSupported = @"imageSupported"; -SDLRPCParameterName const SDLRPCParameterNameImageTemplate = @"isTemplate"; -SDLRPCParameterName const SDLRPCParameterNameImageType = @"imageType"; -SDLRPCParameterName const SDLRPCParameterNameImageTypeSupported = @"imageTypeSupported"; -SDLRPCParameterName const SDLRPCParameterNameInfo = @"info"; -SDLRPCParameterName const SDLRPCParameterNameInitialPrompt = @"initialPrompt"; -SDLRPCParameterName const SDLRPCParameterNameInitialText = @"initialText"; -SDLRPCParameterName const SDLRPCParameterNameInnerLeftRear = @"innerLeftRear"; -SDLRPCParameterName const SDLRPCParameterNameInnerRightRear = @"innerRightRear"; -SDLRPCParameterName const SDLRPCParameterNameInstantFuelConsumption = @"instantFuelConsumption"; -SDLRPCParameterName const SDLRPCParameterNameInstructions = @"instructions"; -SDLRPCParameterName const SDLRPCParameterNameInteractionChoiceSetId = @"interactionChoiceSetID"; -SDLRPCParameterName const SDLRPCParameterNameInteractionChoiceSetIdList = @"interactionChoiceSetIDList"; -SDLRPCParameterName const SDLRPCParameterNameInteractionLayout = @"interactionLayout"; -SDLRPCParameterName const SDLRPCParameterNameInteractionMode = @"interactionMode"; -SDLRPCParameterName const SDLRPCParameterNameIsExplicit = @"isExplicit"; -SDLRPCParameterName const SDLRPCParameterNameIsHighlighted = @"isHighlighted"; -SDLRPCParameterName const SDLRPCParameterNameIsMediaApplication = @"isMediaApplication"; -SDLRPCParameterName const SDLRPCParameterNameIsSubscribed = @"isSubscribed"; -SDLRPCParameterName const SDLRPCParameterNameJunctionType = @"junctionType"; -SDLRPCParameterName const SDLRPCParameterNameKeepContext = @"keepContext"; -SDLRPCParameterName const SDLRPCParameterNameKeepContextAvailable = @"keepContextAvailable"; -SDLRPCParameterName const SDLRPCParameterNameKeyboardLayout = @"keyboardLayout"; -SDLRPCParameterName const SDLRPCParameterNameKeyboardProperties = @"keyboardProperties"; -SDLRPCParameterName const SDLRPCParameterNameKeypressMode = @"keypressMode"; -SDLRPCParameterName const SDLRPCParameterNameLabel = @"label"; -SDLRPCParameterName const SDLRPCParameterNameLanguage = @"language"; -SDLRPCParameterName const SDLRPCParameterNameLanguageDesired = @"languageDesired"; -SDLRPCParameterName const SDLRPCParameterNameLatitudeDegrees = @"latitudeDegrees"; -SDLRPCParameterName const SDLRPCParameterNameLeftFront = @"leftFront"; -SDLRPCParameterName const SDLRPCParameterNameLeftRear = @"leftRear"; -SDLRPCParameterName const SDLRPCParameterNameLeftRearInflatableBelted = @"leftRearInflatableBelted"; -SDLRPCParameterName const SDLRPCParameterNameLeftRow2BuckleBelted = @"leftRow2BuckleBelted"; -SDLRPCParameterName const SDLRPCParameterNameLeftRow3BuckleBelted = @"leftRow3BuckleBelted"; -SDLRPCParameterName const SDLRPCParameterNameLength = @"length"; -SDLRPCParameterName const SDLRPCParameterNameLevel = @"level"; -SDLRPCParameterName const SDLRPCParameterNameLevels = @"levels"; -SDLRPCParameterName const SDLRPCParameterNameLevelSpan = @"levelspan"; -SDLRPCParameterName const SDLRPCParameterNameLightControlCapabilities = @"lightControlCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameLightControlData = @"lightControlData"; -SDLRPCParameterName const SDLRPCParameterNameLightState = @"lightState"; -SDLRPCParameterName const SDLRPCParameterNameLimitedCharacterList = @"limitedCharacterList"; -SDLRPCParameterName const SDLRPCParameterNameLocality = @"locality"; -SDLRPCParameterName const SDLRPCParameterNameLocation = @"location"; -SDLRPCParameterName const SDLRPCParameterNameLocationCoordinate = @"coordinate"; -SDLRPCParameterName const SDLRPCParameterNameLocationDescription = @"locationDescription"; -SDLRPCParameterName const SDLRPCParameterNameLocationDetails = @"locationDetails"; -SDLRPCParameterName const SDLRPCParameterNameLocationImage = @"locationImage"; -SDLRPCParameterName const SDLRPCParameterNameLocationName = @"locationName"; -SDLRPCParameterName const SDLRPCParameterNameLockScreenDismissalEnabled = @"lockScreenDismissalEnabled"; -SDLRPCParameterName const SDLRPCParameterNameLockScreenDismissalWarning = @"lockScreenDismissalWarning"; -SDLRPCParameterName const SDLRPCParameterNameLongitudeDegrees = @"longitudeDegrees"; -SDLRPCParameterName const SDLRPCParameterNameLongPress = @"longPress"; -SDLRPCParameterName const SDLRPCParameterNameLongPressAvailable = @"longPressAvailable"; -SDLRPCParameterName const SDLRPCParameterNameLowBeamsOn = @"lowBeamsOn"; -SDLRPCParameterName const SDLRPCParameterNameMainField1 = @"mainField1"; -SDLRPCParameterName const SDLRPCParameterNameMainField2 = @"mainField2"; -SDLRPCParameterName const SDLRPCParameterNameMainField3 = @"mainField3"; -SDLRPCParameterName const SDLRPCParameterNameMainField4 = @"mainField4"; -SDLRPCParameterName const SDLRPCParameterNameMajorVersion = @"majorVersion"; -SDLRPCParameterName const SDLRPCParameterNameMake = @"make"; -SDLRPCParameterName const SDLRPCParameterNameManeuverComplete = @"maneuverComplete"; -SDLRPCParameterName const SDLRPCParameterNameManualTextEntry = @"manualTextEntry"; -SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmness = @"massageCushionFirmness"; -SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmnessAvailable = @"massageCushionFirmnessAvailable"; -SDLRPCParameterName const SDLRPCParameterNameMassageEnabled = @"massageEnabled"; -SDLRPCParameterName const SDLRPCParameterNameMassageEnabledAvailable = @"massageEnabledAvailable"; -SDLRPCParameterName const SDLRPCParameterNameMassageMode = @"massageMode"; -SDLRPCParameterName const SDLRPCParameterNameMassageModeAvailable = @"massageModeAvailable"; -SDLRPCParameterName const SDLRPCParameterNameMassageZone = @"massageZone"; -SDLRPCParameterName const SDLRPCParameterNameMaxBitrate = @"maxBitrate"; -SDLRPCParameterName const SDLRPCParameterNameMaxDuration = @"maxDuration"; -SDLRPCParameterName const SDLRPCParameterNameMaxHourlyForecastAmount = @"maxHourlyForecastAmount"; -SDLRPCParameterName const SDLRPCParameterNameMaximumChangeVelocity = @"maximumChangeVelocity"; -SDLRPCParameterName const SDLRPCParameterNameMaximumNumberOfWindows = @"maximumNumberOfWindows"; -SDLRPCParameterName const SDLRPCParameterNameMaxMinutelyForecastAmount = @"maxMinutelyForecastAmount"; -SDLRPCParameterName const SDLRPCParameterNameMaxMultidayForecastAmount = @"maxMultidayForecastAmount"; -SDLRPCParameterName const SDLRPCParameterNameMaxNumberRFCOMMPorts = @"maxNumberRFCOMMPorts"; -SDLRPCParameterName const SDLRPCParameterNameMediaAlbum = @"mediaAlbum"; -SDLRPCParameterName const SDLRPCParameterNameMediaArtist = @"mediaArtist"; -SDLRPCParameterName const SDLRPCParameterNameMediaClock = @"mediaClock"; -SDLRPCParameterName const SDLRPCParameterNameMediaClockFormats = @"mediaClockFormats"; -SDLRPCParameterName const SDLRPCParameterNameMediaServiceData = @"mediaServiceData"; -SDLRPCParameterName const SDLRPCParameterNameMediaServiceManifest = @"mediaServiceManifest"; -SDLRPCParameterName const SDLRPCParameterNameMediaImage = @"mediaImage"; -SDLRPCParameterName const SDLRPCParameterNameMediaTitle = @"mediaTitle"; -SDLRPCParameterName const SDLRPCParameterNameMediaTrack = @"mediaTrack"; -SDLRPCParameterName const SDLRPCParameterNameMediaType = @"mediaType"; -SDLRPCParameterName const SDLRPCParameterNameMemory = @"memory"; -SDLRPCParameterName const SDLRPCParameterNameMemoryAvailable = @"memoryAvailable"; -SDLRPCParameterName const SDLRPCParameterNameMenuIcon = @"menuIcon"; -SDLRPCParameterName const SDLRPCParameterNameMenuId = @"menuID"; -SDLRPCParameterName const SDLRPCParameterNameMenuLayout = @"menuLayout"; -SDLRPCParameterName const SDLRPCParameterNameMenuLayoutsAvailable = @"menuLayoutsAvailable"; -SDLRPCParameterName const SDLRPCParameterNameMenuName = @"menuName"; -SDLRPCParameterName const SDLRPCParameterNameMenuParams = @"menuParams"; -SDLRPCParameterName const SDLRPCParameterNameMenuTitle = @"menuTitle"; -SDLRPCParameterName const SDLRPCParameterNameMessageData = @"messageData"; -SDLRPCParameterName const SDLRPCParameterNameMessageDataResult = @"messageDataResult"; -SDLRPCParameterName const SDLRPCParameterNameMessageLength = @"messageLength"; -SDLRPCParameterName const SDLRPCParameterNameMetadataTags = @"metadataTags"; -SDLRPCParameterName const SDLRPCParameterNameMiddleRow1BeltDeployed = @"middleRow1BeltDeployed"; -SDLRPCParameterName const SDLRPCParameterNameMiddleRow1BuckleBelted = @"middleRow1BuckleBelted"; -SDLRPCParameterName const SDLRPCParameterNameMiddleRow2BuckleBelted = @"middleRow2BuckleBelted"; -SDLRPCParameterName const SDLRPCParameterNameMiddleRow3BuckleBelted = @"middleRow3BuckleBelted"; -SDLRPCParameterName const SDLRPCParameterNameMillisecond = @"millisecond"; -SDLRPCParameterName const SDLRPCParameterNameMinorVersion = @"minorVersion"; -SDLRPCParameterName const SDLRPCParameterNameMinute = @"minute"; -SDLRPCParameterName const SDLRPCParameterNameMinuteForecast = @"minuteForecast"; -SDLRPCParameterName const SDLRPCParameterNameMinutes = @"minutes"; -SDLRPCParameterName const SDLRPCParameterNameModel = @"model"; -SDLRPCParameterName const SDLRPCParameterNameModuleData = @"moduleData"; -SDLRPCParameterName const SDLRPCParameterNameModuleId = @"moduleId"; -SDLRPCParameterName const SDLRPCParameterNameModuleIds = @"moduleIds"; -SDLRPCParameterName const SDLRPCParameterNameModuleInfo = @"moduleInfo"; -SDLRPCParameterName const SDLRPCParameterNameModuleName = @"moduleName"; -SDLRPCParameterName const SDLRPCParameterNameModuleType = @"moduleType"; -SDLRPCParameterName const SDLRPCParameterNameModelYear = @"modelYear"; -SDLRPCParameterName const SDLRPCParameterNameMonoAudioOutputMuted = @"monoAudioOutputMuted"; -SDLRPCParameterName const SDLRPCParameterNameMonth = @"month"; -SDLRPCParameterName const SDLRPCParameterNameMoonPhase = @"moonPhase"; -SDLRPCParameterName const SDLRPCParameterNameMultidayForecast = @"multidayForecast"; -SDLRPCParameterName const SDLRPCParameterNameMultipleEvents = @"multipleEvents"; -SDLRPCParameterName const SDLRPCParameterNameMultiTouchAvailable = @"multiTouchAvailable"; -SDLRPCParameterName const SDLRPCParameterNameMuteAudio = @"muteAudio"; -SDLRPCParameterName const SDLRPCParameterNameMyKey = @"myKey"; -SDLRPCParameterName const SDLRPCParameterNameName = @"name"; -SDLRPCParameterName const SDLRPCParameterNameNavigation = @"navigation"; -SDLRPCParameterName const SDLRPCParameterNameNavigationCapability = @"navigationCapability"; -SDLRPCParameterName const SDLRPCParameterNameNavigationServiceData = @"navigationServiceData"; -SDLRPCParameterName const SDLRPCParameterNameNavigationServiceManifest = @"navigationServiceManifest"; -SDLRPCParameterName const SDLRPCParameterNameNavigationText = @"navigationText"; -SDLRPCParameterName const SDLRPCParameterNameNavigationText1 = @"navigationText1"; -SDLRPCParameterName const SDLRPCParameterNameNavigationText2 = @"navigationText2"; -SDLRPCParameterName const SDLRPCParameterNameNearestStormBearing = @"nearestStormBearing"; -SDLRPCParameterName const SDLRPCParameterNameNearestStormDistance = @"nearestStormDistance"; -SDLRPCParameterName const SDLRPCParameterNameNextInstructionDistance = @"nextInstructionDistance"; -SDLRPCParameterName const SDLRPCParameterNameNextInstructionDistanceScale = @"nextInstructionDistanceScale"; -SDLRPCParameterName const SDLRPCParameterNameNextInstructionETA = @"nextInstructionETA"; -SDLRPCParameterName const SDLRPCParameterNameNextTurnIcon = @"nextTurnIcon"; -SDLRPCParameterName const SDLRPCParameterNameNGNMediaScreenAppName = @"ngnMediaScreenAppName"; -SDLRPCParameterName const SDLRPCParameterNameNicknames = @"nicknames"; -SDLRPCParameterName const SDLRPCParameterNameNightColorScheme = @"nightColorScheme"; -SDLRPCParameterName const SDLRPCParameterNameNotification = @"notification"; -SDLRPCParameterName const SDLRPCParameterNameNumber = @"number"; -SDLRPCParameterName const SDLRPCParameterNameNumberCustomPresetsAvailable = @"numCustomPresetsAvailable"; -SDLRPCParameterName const SDLRPCParameterNameNumberTicks = @"numTicks"; -SDLRPCParameterName const SDLRPCParameterNameOdometer = @"odometer"; -SDLRPCParameterName const SDLRPCParameterNameOEMCustomDataType = @"oemCustomDataType"; -SDLRPCParameterName const SDLRPCParameterNameOffset = @"offset"; -SDLRPCParameterName const SDLRPCParameterNameOnLockScreenStatus = @"OnLockScreenStatus"; -SDLRPCParameterName const SDLRPCParameterNameOnScreenPresetsAvailable = @"onScreenPresetsAvailable"; -SDLRPCParameterName const SDLRPCParameterNameOperationName = @"name"; -SDLRPCParameterName const SDLRPCParameterNameOrigin = @"origin"; -SDLRPCParameterName const SDLRPCParameterNameOriginApp = @"originApp"; -SDLRPCParameterName const SDLRPCParameterNameOS = @"os"; -SDLRPCParameterName const SDLRPCParameterNameOSVersion = @"osVersion"; -SDLRPCParameterName const SDLRPCParameterNameParameterPermissions = @"parameterPermissions"; -SDLRPCParameterName const SDLRPCParameterNameParameters = @"parameters"; -SDLRPCParameterName const SDLRPCParameterNameParentId = @"parentID"; -SDLRPCParameterName const SDLRPCParameterNameParkBrakeActive = @"parkBrakeActive"; -SDLRPCParameterName const SDLRPCParameterNamePassengerAirbagDeployed = @"passengerAirbagDeployed"; -SDLRPCParameterName const SDLRPCParameterNamePassengerBeltDeployed = @"passengerBeltDeployed"; -SDLRPCParameterName const SDLRPCParameterNamePassengerBuckleBelted = @"passengerBuckleBelted"; -SDLRPCParameterName const SDLRPCParameterNamePassengerChildDetected = @"passengerChildDetected"; -SDLRPCParameterName const SDLRPCParameterNamePassengerCurtainAirbagDeployed = @"passengerCurtainAirbagDeployed"; -SDLRPCParameterName const SDLRPCParameterNamePassengerDoorAjar = @"passengerDoorAjar"; -SDLRPCParameterName const SDLRPCParameterNamePassengerKneeAirbagDeployed = @"passengerKneeAirbagDeployed"; -SDLRPCParameterName const SDLRPCParameterNamePassengerSideAirbagDeployed = @"passengerSideAirbagDeployed"; -SDLRPCParameterName const SDLRPCParameterNamePatchVersion = @"patchVersion"; -SDLRPCParameterName const SDLRPCParameterNamePCMStreamCapabilities = @"pcmStreamCapabilities"; -SDLRPCParameterName const SDLRPCParameterNamePDOP = @"pdop"; -SDLRPCParameterName const SDLRPCParameterNamePermissionItem = @"permissionItem"; -SDLRPCParameterName const SDLRPCParameterNamePersistentFile = @"persistentFile"; -SDLRPCParameterName const SDLRPCParameterNamePhoneCall = @"phoneCall"; -SDLRPCParameterName const SDLRPCParameterNamePhoneCapability = @"phoneCapability"; -SDLRPCParameterName const SDLRPCParameterNamePhoneNumber = @"phoneNumber"; -SDLRPCParameterName const SDLRPCParameterNamePhoneRoaming = @"phoneRoaming"; -SDLRPCParameterName const SDLRPCParameterNamePixelPerInch = @"pixelPerInch"; -SDLRPCParameterName const SDLRPCParameterNamePrimaryColor = @"primaryColor"; -SDLRPCParameterName const SDLRPCParameterNamePlaylistName = @"playlistName"; -SDLRPCParameterName const SDLRPCParameterNamePlayTone = @"playTone"; -SDLRPCParameterName const SDLRPCParameterNamePosition = @"position"; -SDLRPCParameterName const SDLRPCParameterNamePostalCode = @"postalCode"; -SDLRPCParameterName const SDLRPCParameterNamePrecipAccumulation = @"precipAccumulation"; -SDLRPCParameterName const SDLRPCParameterNamePrecipIntensity = @"precipIntensity"; -SDLRPCParameterName const SDLRPCParameterNamePrecipProbability = @"precipProbability"; -SDLRPCParameterName const SDLRPCParameterNamePrecipType = @"precipType"; -SDLRPCParameterName const SDLRPCParameterNamePowerModeActive = @"powerModeActive"; -SDLRPCParameterName const SDLRPCParameterNamePowerModeQualificationStatus = @"powerModeQualificationStatus"; -SDLRPCParameterName const SDLRPCParameterNamePowerModeStatus = @"powerModeStatus"; -SDLRPCParameterName const SDLRPCParameterNamePreferredResolution = @"preferredResolution"; -SDLRPCParameterName const SDLRPCParameterNamePrerecordedSpeech = @"prerecordedSpeech"; -SDLRPCParameterName const SDLRPCParameterNamePresetBankCapabilities = @"presetBankCapabilities"; -SDLRPCParameterName const SDLRPCParameterNamePressAvailable = @"pressAvailable"; -SDLRPCParameterName const SDLRPCParameterNamePressure = @"pressure"; -SDLRPCParameterName const SDLRPCParameterNamePressureTelltale = @"pressureTelltale"; -SDLRPCParameterName const SDLRPCParameterNamePrimaryAudioSource = @"primaryAudioSource"; -SDLRPCParameterName const SDLRPCParameterNamePRNDL = @"prndl"; -SDLRPCParameterName const SDLRPCParameterNameProgramIdentification = @"PI"; -SDLRPCParameterName const SDLRPCParameterNameProgressIndicator = @"progressIndicator"; -SDLRPCParameterName const SDLRPCParameterNameProperties = @"properties"; -SDLRPCParameterName const SDLRPCParameterNameProgramService = @"PS"; -SDLRPCParameterName const SDLRPCParameterNameProgramType = @"PTY"; -SDLRPCParameterName const SDLRPCParameterNamePrompt = @"prompt"; -SDLRPCParameterName const SDLRPCParameterNameQueueCurrentTrackNumber = @"queueCurrentTrackNumber"; -SDLRPCParameterName const SDLRPCParameterNameQueuePlaybackDuration = @"queuePlaybackDuration"; -SDLRPCParameterName const SDLRPCParameterNameQueuePlaybackProgress = @"queuePlaybackProgress"; -SDLRPCParameterName const SDLRPCParameterNameQueueTotalTrackCount = @"queueTotalTrackCount"; -SDLRPCParameterName const SDLRPCParameterNameRadioBandAvailable = @"radioBandAvailable"; -SDLRPCParameterName const SDLRPCParameterNameRadioControlCapabilities = @"radioControlCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameRadioFrequencyAvailable = @"radioFrequencyAvailable"; -SDLRPCParameterName const SDLRPCParameterNameRadioControlData = @"radioControlData"; -SDLRPCParameterName const SDLRPCParameterNameRadioEnable = @"radioEnable"; -SDLRPCParameterName const SDLRPCParameterNameRadioEnableAvailable = @"radioEnableAvailable"; -SDLRPCParameterName const SDLRPCParameterNameRange = @"range"; -SDLRPCParameterName const SDLRPCParameterNameRDSData = @"rdsData"; -SDLRPCParameterName const SDLRPCParameterNameRDSDataAvailable = @"rdsDataAvailable"; -SDLRPCParameterName const SDLRPCParameterNameRearLeftDoorAjar = @"rearLeftDoorAjar"; -SDLRPCParameterName const SDLRPCParameterNameRearRightDoorAjar = @"rearRightDoorAjar"; -SDLRPCParameterName const SDLRPCParameterNameReason = @"reason"; -SDLRPCParameterName const SDLRPCParameterNameRed = @"red"; -SDLRPCParameterName const SDLRPCParameterNameRect = @"rect"; -SDLRPCParameterName const SDLRPCParameterNameRegion = @"REG"; -SDLRPCParameterName const SDLRPCParameterNameRegions = @"regions"; -SDLRPCParameterName const SDLRPCParameterNameRemoteControl = @"remoteControl"; -SDLRPCParameterName const SDLRPCParameterNameRemoteControlCapability = @"remoteControlCapability"; -SDLRPCParameterName const SDLRPCParameterNameRequest = @"request"; -SDLRPCParameterName const SDLRPCParameterNameRequestServiceActive = @"requestServiceActive"; -SDLRPCParameterName const SDLRPCParameterNameRequestSubType = @"requestSubType"; -SDLRPCParameterName const SDLRPCParameterNameRequestType = @"requestType"; -SDLRPCParameterName const SDLRPCParameterNameRequireEncryption = @"requireEncryption"; -SDLRPCParameterName const SDLRPCParameterNameReserved = @"reserved"; -SDLRPCParameterName const SDLRPCParameterNameSecondaryColor = @"secondaryColor"; -SDLRPCParameterName const SDLRPCParameterNameResolution = @"resolution"; -SDLRPCParameterName const SDLRPCParameterNameResolutionHeight = @"resolutionHeight"; -SDLRPCParameterName const SDLRPCParameterNameResolutionWidth = @"resolutionWidth"; -SDLRPCParameterName const SDLRPCParameterNameResponse = @"response"; -SDLRPCParameterName const SDLRPCParameterNameResult = @"result"; -SDLRPCParameterName const SDLRPCParameterNameResultCode = @"resultCode"; -SDLRPCParameterName const SDLRPCParameterNameRightFront = @"rightFront"; -SDLRPCParameterName const SDLRPCParameterNameRightRear = @"rightRear"; -SDLRPCParameterName const SDLRPCParameterNameRightRearInflatableBelted = @"rightRearInflatableBelted"; -SDLRPCParameterName const SDLRPCParameterNameRightRow2BuckleBelted = @"rightRow2BuckleBelted"; -SDLRPCParameterName const SDLRPCParameterNameRightRow3BuckleBelted = @"rightRow3BuckleBelted"; -SDLRPCParameterName const SDLRPCParameterNameRolloverEvent = @"rolloverEvent"; -SDLRPCParameterName const SDLRPCParameterNameRow = @"row"; -SDLRPCParameterName const SDLRPCParameterNameRows = @"rows"; -SDLRPCParameterName const SDLRPCParameterNameRowSpan = @"rowspan"; -SDLRPCParameterName const SDLRPCParameterNameRPCName = @"rpcName"; -SDLRPCParameterName const SDLRPCParameterNameRPCSpecVersion = @"rpcSpecVersion"; -SDLRPCParameterName const SDLRPCParameterNameRPM = @"rpm"; -SDLRPCParameterName const SDLRPCParameterNameRadioText = @"RT"; -SDLRPCParameterName const SDLRPCParameterNameSamplingRate = @"samplingRate"; -SDLRPCParameterName const SDLRPCParameterNameSatellites = @"satellites"; -SDLRPCParameterName const SDLRPCParameterNameScale = @"scale"; -SDLRPCParameterName const SDLRPCParameterNameScreenParams = @"screenParams"; -SDLRPCParameterName const SDLRPCParameterNameScrollableMessageBody = @"scrollableMessageBody"; -SDLRPCParameterName const SDLRPCParameterNameSDLVersion = @"sdlVersion"; -SDLRPCParameterName const SDLRPCParameterNameSearchAddress = @"searchAddress"; -SDLRPCParameterName const SDLRPCParameterNameSeatControlData = @"seatControlData"; -SDLRPCParameterName const SDLRPCParameterNameSeatControlCapabilities = @"seatControlCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameSeatLocation = @"seatLocation"; -SDLRPCParameterName const SDLRPCParameterNameSeatLocationCapability = @"seatLocationCapability"; -SDLRPCParameterName const SDLRPCParameterNameSeats = @"seats"; -SDLRPCParameterName const SDLRPCParameterNameSecondaryGraphic = @"secondaryGraphic"; -SDLRPCParameterName const SDLRPCParameterNameSecondaryImage = @"secondaryImage"; -SDLRPCParameterName const SDLRPCParameterNameSecondaryText = @"secondaryText"; -SDLRPCParameterName const SDLRPCParameterNameSecond = @"second"; -SDLRPCParameterName const SDLRPCParameterNameSeconds = @"seconds"; -SDLRPCParameterName const SDLRPCParameterNameSendLocationEnabled = @"sendLocationEnabled"; -SDLRPCParameterName const SDLRPCParameterNameServiceActive = @"serviceActive"; -SDLRPCParameterName const SDLRPCParameterNameServiceArea = @"serviceArea"; -SDLRPCParameterName const SDLRPCParameterNameServiceData = @"serviceData"; -SDLRPCParameterName const SDLRPCParameterNameServiceIcon = @"serviceIcon"; -SDLRPCParameterName const SDLRPCParameterNameServiceID = @"serviceID"; -SDLRPCParameterName const SDLRPCParameterNameServiceManifest = @"serviceManifest"; -SDLRPCParameterName const SDLRPCParameterNameServiceName = @"serviceName"; -SDLRPCParameterName const SDLRPCParameterNameServicePublished = @"servicePublished"; -SDLRPCParameterName const SDLRPCParameterNameServiceSpecificResult = @"serviceSpecificResult"; -SDLRPCParameterName const SDLRPCParameterNameServiceType = @"serviceType"; -SDLRPCParameterName const SDLRPCParameterNameServiceUri = @"serviceUri"; -SDLRPCParameterName const SDLRPCParameterNameDisplayName = @"displayName"; -SDLRPCParameterName const SDLRPCParameterNameSeverity = @"severity"; -SDLRPCParameterName const SDLRPCParameterNameShifted = @"shifted"; -SDLRPCParameterName const SDLRPCParameterNameShortPress = @"shortPress"; -SDLRPCParameterName const SDLRPCParameterNameShortPressAvailable = @"shortPressAvailable"; -SDLRPCParameterName const SDLRPCParameterNameSignalLevelStatus = @"signalLevelStatus"; -SDLRPCParameterName const SDLRPCParameterNameSignalChangeThreshold = @"signalChangeThreshold"; -SDLRPCParameterName const SDLRPCParameterNameSignalChangeThresholdAvailable = @"signalChangeThresholdAvailable"; -SDLRPCParameterName const SDLRPCParameterNameSignalStrength = @"signalStrength"; -SDLRPCParameterName const SDLRPCParameterNameSignalStrengthAvailable = @"signalStrengthAvailable"; -SDLRPCParameterName const SDLRPCParameterNameSiriusXMRadioAvailable = @"siriusxmRadioAvailable"; -SDLRPCParameterName const SDLRPCParameterNameSISData = @"sisData"; -SDLRPCParameterName const SDLRPCParameterNameSISDataAvailable = @"sisDataAvailable"; -SDLRPCParameterName const SDLRPCParameterNameSliderFooter = @"sliderFooter"; -SDLRPCParameterName const SDLRPCParameterNameSliderHeader = @"sliderHeader"; -SDLRPCParameterName const SDLRPCParameterNameSliderPosition = @"sliderPosition"; -SDLRPCParameterName const SDLRPCParameterNameSoftButtonCapabilities = @"softButtonCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameSoftButtonId = @"softButtonID"; -SDLRPCParameterName const SDLRPCParameterNameSoftButtons = @"softButtons"; -SDLRPCParameterName const SDLRPCParameterNameSource = @"source"; -SDLRPCParameterName const SDLRPCParameterNameSourceAvailable = @"sourceAvailable"; -SDLRPCParameterName const SDLRPCParameterNameSpaceAvailable = @"spaceAvailable"; -SDLRPCParameterName const SDLRPCParameterNameSpeechCapabilities = @"speechCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameSpeed = @"speed"; -SDLRPCParameterName const SDLRPCParameterNameRGBColorSpaceAvailable = @"rgbColorSpaceAvailable"; -SDLRPCParameterName const SDLRPCParameterNameStartTime = @"startTime"; -SDLRPCParameterName const SDLRPCParameterNameState = @"state"; -SDLRPCParameterName const SDLRPCParameterNameStateAvailable = @"stateAvailable"; -SDLRPCParameterName const SDLRPCParameterNameStateOfCharge = @"stateOfCharge"; -SDLRPCParameterName const SDLRPCParameterNameStationIDNumber = @"stationIDNumber"; -SDLRPCParameterName const SDLRPCParameterNameStationLongName = @"stationLongName"; -SDLRPCParameterName const SDLRPCParameterNameStationLocation = @"stationLocation"; -SDLRPCParameterName const SDLRPCParameterNameStationMessage = @"stationMessage"; -SDLRPCParameterName const SDLRPCParameterNameStationShortName = @"stationShortName"; -SDLRPCParameterName const SDLRPCParameterNameStatus = @"status"; -SDLRPCParameterName const SDLRPCParameterNameStatusAvailable = @"statusAvailable"; -SDLRPCParameterName const SDLRPCParameterNameStatusBar = @"statusBar"; -SDLRPCParameterName const SDLRPCParameterNameSteeringWheelAngle = @"steeringWheelAngle"; -SDLRPCParameterName const SDLRPCParameterNameStereoAudioOutputMuted = @"stereoAudioOutputMuted"; -SDLRPCParameterName const SDLRPCParameterNameSubAdministrativeArea = @"subAdministrativeArea"; -SDLRPCParameterName const SDLRPCParameterNameSubLocality = @"subLocality"; -SDLRPCParameterName const SDLRPCParameterNameSubscribe = @"subscribe"; -SDLRPCParameterName const SDLRPCParameterNameSubThoroughfare = @"subThoroughfare"; -SDLRPCParameterName const SDLRPCParameterNameSuccess = @"success"; -SDLRPCParameterName const SDLRPCParameterNameSummary = @"summary"; -SDLRPCParameterName const SDLRPCParameterNameSupportedDiagnosticModes = @"supportedDiagModes"; -SDLRPCParameterName const SDLRPCParameterNameSupportedFormats = @"supportedFormats"; -SDLRPCParameterName const SDLRPCParameterNameSupportedLights = @"supportedLights"; -SDLRPCParameterName const SDLRPCParameterNameSyncFileName = @"syncFileName"; -SDLRPCParameterName const SDLRPCParameterNameSyncMessageVersion = @"syncMsgVersion"; -SDLRPCParameterName const SDLRPCParameterNameSystemAction = @"systemAction"; -SDLRPCParameterName const SDLRPCParameterNameSystemCapability = @"systemCapability"; -SDLRPCParameterName const SDLRPCParameterNameSystemCapabilityType = @"systemCapabilityType"; -SDLRPCParameterName const SDLRPCParameterNameSystemContext = @"systemContext"; -SDLRPCParameterName const SDLRPCParameterNameSystemFile = @"systemFile"; -SDLRPCParameterName const SDLRPCParameterNameSystemSoftwareVersion = @"systemSoftwareVersion"; -SDLRPCParameterName const SDLRPCParameterNameTrackPlaybackDuration = @"trackPlaybackDuration"; -SDLRPCParameterName const SDLRPCParameterNameTrackPlaybackProgress = @"trackPlaybackProgress"; -SDLRPCParameterName const SDLRPCParameterNameTrafficAnnouncementIdentification = @"TA"; -SDLRPCParameterName const SDLRPCParameterNameTargetId = @"targetID"; -SDLRPCParameterName const SDLRPCParameterNameTemperatureHigh = @"temperatureHigh"; -SDLRPCParameterName const SDLRPCParameterNameTemperatureLow = @"temperatureLow"; -SDLRPCParameterName const SDLRPCParameterNameTemperatureUnit = @"temperatureUnit"; -SDLRPCParameterName const SDLRPCParameterNameTemplate = @"template"; -SDLRPCParameterName const SDLRPCParameterNameTemplateConfiguration = @"templateConfiguration"; -SDLRPCParameterName const SDLRPCParameterNameTemperatureUnitAvailable = @"temperatureUnitAvailable"; -SDLRPCParameterName const SDLRPCParameterNameTemplatesAvailable = @"templatesAvailable"; -SDLRPCParameterName const SDLRPCParameterNameTemplateTitle = @"templateTitle"; -SDLRPCParameterName const SDLRPCParameterNameTertiaryText = @"tertiaryText"; -SDLRPCParameterName const SDLRPCParameterNameText = @"text"; -SDLRPCParameterName const SDLRPCParameterNameTextFields = @"textFields"; -SDLRPCParameterName const SDLRPCParameterNameTextMessageAvailable = @"textMsgAvailable"; -SDLRPCParameterName const SDLRPCParameterNameTextSupported = @"textSupported"; -SDLRPCParameterName const SDLRPCParameterNameThoroughfare = @"thoroughfare"; -SDLRPCParameterName const SDLRPCParameterNameTimeIssued = @"timeIssued"; -SDLRPCParameterName const SDLRPCParameterNameTime = @"time"; -SDLRPCParameterName const SDLRPCParameterNameTimeout = @"timeout"; -SDLRPCParameterName const SDLRPCParameterNameTimeoutCapitalized = @"Timeout"; -SDLRPCParameterName const SDLRPCParameterNameTimeoutPrompt = @"timeoutPrompt"; -SDLRPCParameterName const SDLRPCParameterNameTS = @"ts"; -SDLRPCParameterName const SDLRPCParameterNameTimeStamp = @"timeStamp"; -SDLRPCParameterName const SDLRPCParameterNameTimeToDestination = @"timeToDestination"; -SDLRPCParameterName const SDLRPCParameterNameTimezoneHourOffset = @"tz_hour"; -SDLRPCParameterName const SDLRPCParameterNameTimezoneMinuteOffset = @"tz_minute"; -SDLRPCParameterName const SDLRPCParameterNameTirePressure = @"tirePressure"; -SDLRPCParameterName const SDLRPCParameterNameTitle = @"title"; -SDLRPCParameterName const SDLRPCParameterNameTotalDistance = @"totalDistance"; -SDLRPCParameterName const SDLRPCParameterNameTouchEventAvailable = @"touchEventAvailable"; -SDLRPCParameterName const SDLRPCParameterNameTPMS = @"tpms"; -SDLRPCParameterName const SDLRPCParameterNameTrafficProgramIdentification = @"TP"; -SDLRPCParameterName const SDLRPCParameterNameTriggerSource = @"triggerSource"; -SDLRPCParameterName const SDLRPCParameterNameTrim = @"trim"; -SDLRPCParameterName const SDLRPCParameterNameTryAgainTime = @"tryAgainTime"; -SDLRPCParameterName const SDLRPCParameterNameTTSChunks = @"ttsChunks"; -SDLRPCParameterName const SDLRPCParameterNameTTSName = @"ttsName"; -SDLRPCParameterName const SDLRPCParameterNameTurnIcon = @"turnIcon"; -SDLRPCParameterName const SDLRPCParameterNameTurnList = @"turnList"; -SDLRPCParameterName const SDLRPCParameterNameTurnSignal = @"turnSignal"; -SDLRPCParameterName const SDLRPCParameterNameType = @"type"; -SDLRPCParameterName const SDLRPCParameterNameUnit = @"unit"; -SDLRPCParameterName const SDLRPCParameterNameUnsubscribe = @"Unsubscribe"; -SDLRPCParameterName const SDLRPCParameterNameUpdatedAppServiceRecord = @"updatedAppServiceRecord"; -SDLRPCParameterName const SDLRPCParameterNameUpdateMode = @"updateMode"; -SDLRPCParameterName const SDLRPCParameterNameUpdateReason= @"updateReason"; -SDLRPCParameterName const SDLRPCParameterNameUpDownAvailable = @"upDownAvailable"; -SDLRPCParameterName const SDLRPCParameterNameURL = @"url"; -SDLRPCParameterName const SDLRPCParameterNameURLUppercase = @"URL"; -SDLRPCParameterName const SDLRPCParameterNameUserDisallowed = @"userDisallowed"; -SDLRPCParameterName const SDLRPCParameterNameUserLocation = @"userLocation"; -SDLRPCParameterName const SDLRPCParameterNameUserSelected = @"userSelected"; -SDLRPCParameterName const SDLRPCParameterNameUTCDay = @"utcDay"; -SDLRPCParameterName const SDLRPCParameterNameUTCHours = @"utcHours"; -SDLRPCParameterName const SDLRPCParameterNameUTCMinutes = @"utcMinutes"; -SDLRPCParameterName const SDLRPCParameterNameUTCMonth = @"utcMonth"; -SDLRPCParameterName const SDLRPCParameterNameUTCSeconds = @"utcSeconds"; -SDLRPCParameterName const SDLRPCParameterNameUTCYear = @"utcYear"; -SDLRPCParameterName const SDLRPCParameterNameValue = @"value"; -SDLRPCParameterName const SDLRPCParameterNameVDOP = @"vdop"; -SDLRPCParameterName const SDLRPCParameterNameVehicleType = @"vehicleType"; -SDLRPCParameterName const SDLRPCParameterNameVerticalPosition = @"verticalPosition"; -SDLRPCParameterName const SDLRPCParameterNameVerticalPositionAvailable = @"verticalPositionAvailable"; -SDLRPCParameterName const SDLRPCParameterNameVideoCodec = @"codec"; -SDLRPCParameterName const SDLRPCParameterNameVideoProtocol = @"protocol"; -SDLRPCParameterName const SDLRPCParameterNameVideoStreaming = @"videoStreaming"; -SDLRPCParameterName const SDLRPCParameterNameVideoStreamingCapability = @"videoStreamingCapability"; -SDLRPCParameterName const SDLRPCParameterNameVideoStreamingState = @"videoStreamingState"; -SDLRPCParameterName const SDLRPCParameterNameVisibility = @"visibility"; -SDLRPCParameterName const SDLRPCParameterNameVentilationMode = @"ventilationMode"; -SDLRPCParameterName const SDLRPCParameterNameVentilationModeAvailable = @"ventilationModeAvailable"; -SDLRPCParameterName const SDLRPCParameterNameVIN = @"vin"; -SDLRPCParameterName const SDLRPCParameterNameVoiceRecognitionOn = @"voiceRecOn"; -SDLRPCParameterName const SDLRPCParameterNameVolume = @"volume"; -SDLRPCParameterName const SDLRPCParameterNameVolumeAvailable = @"volumeAvailable"; -SDLRPCParameterName const SDLRPCParameterNameVRCapabilities = @"vrCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameVRCommands = @"vrCommands"; -SDLRPCParameterName const SDLRPCParameterNameVRHelp = @"vrHelp"; -SDLRPCParameterName const SDLRPCParameterNameVRHelpTitle = @"vrHelpTitle"; -SDLRPCParameterName const SDLRPCParameterNameVRSynonyms = @"vrSynonyms"; -SDLRPCParameterName const SDLRPCParameterNameWayPoints = @"wayPoints"; -SDLRPCParameterName const SDLRPCParameterNameWayPointType = @"wayPointType"; -SDLRPCParameterName const SDLRPCParameterNameWeatherForLocationSupported = @"weatherForLocationSupported"; -SDLRPCParameterName const SDLRPCParameterNameWeatherIcon = @"weatherIcon"; -SDLRPCParameterName const SDLRPCParameterNameWeatherServiceData = @"weatherServiceData"; -SDLRPCParameterName const SDLRPCParameterNameWeatherServiceManifest = @"weatherServiceManifest"; -SDLRPCParameterName const SDLRPCParameterNameWeatherSummary = @"weatherSummary"; -SDLRPCParameterName const SDLRPCParameterNameWidth = @"width"; -SDLRPCParameterName const SDLRPCParameterNameWindBearing = @"windBearing"; -SDLRPCParameterName const SDLRPCParameterNameWindGust = @"windGust"; -SDLRPCParameterName const SDLRPCParameterNameWindSpeed = @"windSpeed"; -SDLRPCParameterName const SDLRPCParameterNameWiperStatus = @"wiperStatus"; -SDLRPCParameterName const SDLRPCParameterNameWindowCapabilities = @"windowCapabilities"; -SDLRPCParameterName const SDLRPCParameterNameWindowId = @"windowID"; -SDLRPCParameterName const SDLRPCParameterNameWindowName = @"windowName"; -SDLRPCParameterName const SDLRPCParameterNameWindowTypeSupported = @"windowTypeSupported"; -SDLRPCParameterName const SDLRPCParameterNameX = @"x"; -SDLRPCParameterName const SDLRPCParameterNameY = @"y"; -SDLRPCParameterName const SDLRPCParameterNameYear = @"year"; - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPayload.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPayload.h deleted file mode 100644 index 5794cb5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPayload.h +++ /dev/null @@ -1,24 +0,0 @@ -// SDLRPCPayload.h -// - - -#import - -#import "SDLRPCMessageType.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLRPCPayload : NSObject - -@property (assign, nonatomic) SDLRPCMessageType rpcType; -@property (assign, nonatomic) UInt32 functionID; -@property (assign, nonatomic) UInt32 correlationID; -@property (nullable, strong, nonatomic) NSData *jsonData; -@property (nullable, strong, nonatomic) NSData *binaryData; - -- (NSData *)data; -+ (nullable id)rpcPayloadWithData:(NSData *)data; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPayload.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPayload.m deleted file mode 100644 index ae6704e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPayload.m +++ /dev/null @@ -1,117 +0,0 @@ -// SDLRPCPayload.h -// - - -#import "SDLRPCPayload.h" - -#import "SDLLogMacros.h" - -const NSUInteger RPC_HEADER_SIZE = 12; - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRPCPayload - -- (nullable instancetype)initWithData:(NSData *)data { - unsigned long dataLength = data.length; - - if (data == nil || dataLength == 0) { - SDLLogW(@"RPC Payload data is nil"); - return nil; - } - - if (dataLength < RPC_HEADER_SIZE) { - SDLLogW(@"RPC Payload error: not enough 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; - NSUInteger binaryDataSize = data.length - jsonDataSize - RPC_HEADER_SIZE; - if (binaryDataSize > 0) { - binaryData = [data subdataWithRange:NSMakeRange(offsetOfBinaryData, binaryDataSize)]; - } - self.binaryData = binaryData; - - } @catch (NSException *e) { - SDLLogW(@"SDLRPCPayload error: %@", e); - 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 = (Byte)((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; -} - -+ (nullable id)rpcPayloadWithData:(NSData *)data { - return [[SDLRPCPayload alloc] initWithData:data]; -} -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.h deleted file mode 100644 index a431250..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// SDLRPCPermissionStatus.h -// SmartDeviceLink -// -// Created by James Lapinski on 6/29/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLRPCPermissionStatus : NSObject - -/** - Name of the individual RPC. - - Required - */ -@property (strong, nonatomic, readonly) SDLRPCFunctionName rpcName; - -/** - * Whether or not the RPC is allowed. - */ -@property (assign, nonatomic, readonly, getter=isRPCAllowed) BOOL rpcAllowed; - -/** - * Holds a dictionary of RPC parameters and objects of an NSNumber specifying if that RPC parameter is currently allowed - */ -@property (strong, nonatomic, nullable, readonly) NSDictionary *rpcParameters; - -/** - * Initializes a SDLRPCPermissionStatus object. - * - * @param rpcName The name of the RPC. - * @param isRPCAllowed The permission status for the RPC. - * @param rpcParameters A dictionary of RPC parameters and objects of an NSNumber specifying if that RPC parameter is currently allowed - * - * @return An instance of the SDLRPCPermissionStatus class. - */ -- (instancetype)initWithRPCName:(SDLRPCFunctionName)rpcName isRPCAllowed:(BOOL)isRPCAllowed rpcParameters:(nullable NSDictionary *)rpcParameters; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.m deleted file mode 100644 index 7c6a8d0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCPermissionStatus.m +++ /dev/null @@ -1,34 +0,0 @@ -// -// SDLRPCPermissionStatus.m -// SmartDeviceLink -// -// Created by James Lapinski on 6/29/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLRPCPermissionStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRPCPermissionStatus - -- (instancetype)initWithRPCName:(SDLRPCFunctionName)rpcName isRPCAllowed:(BOOL)isRPCAllowed rpcParameters:(nullable NSDictionary *)rpcParameters { - self = [super init]; - if (!self) { return nil; } - - _rpcName = rpcName; - _rpcAllowed = isRPCAllowed; - _rpcParameters = rpcParameters; - - return self; -} - -#pragma mark - Description - -- (NSString *)description { - return [NSString stringWithFormat:@"RPC Permission status, RPC name: %@, allowed: %@, RPC parameters %@", self.rpcName, (self.isRPCAllowed ? @"YES" : @"NO"), self.rpcParameters]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.h deleted file mode 100644 index e171c09..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLRPCRequest.h -// - - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Superclass of RPC requests -@interface SDLRPCRequest : SDLRPCMessage - -/** - * A unique id assigned to message sent to Core. The Correlation ID is used to map a request to its response. - */ -@property (strong, nonatomic) NSNumber *correlationID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.m deleted file mode 100644 index 445bace..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequest.m +++ /dev/null @@ -1,35 +0,0 @@ -// SDLRPCRequest.m -// - - -#import "SDLRPCRequest.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLRPCMessage () - -@property (strong, nonatomic) NSMutableDictionary *function; - -@end - -@implementation SDLRPCRequest - -- (NSNumber *)correlationID { - NSError *error = nil; - return [self.function sdl_objectForName:SDLRPCParameterNameCorrelationId ofClass:NSNumber.class error:&error]; -} - -- (void)setCorrelationID:(NSNumber *)corrID { - [self.function sdl_setObject:corrID forName:SDLRPCParameterNameCorrelationId]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"%@ (%@), id: %@\n%@", self.name, self.messageType, self.correlationID, self.parameters]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.h deleted file mode 100644 index 248358e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// SDLRPCRequestNotification.h -// SmartDeviceLink -// -// Created by Nicole on 2/14/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -@class SDLRPCRequest; - -NS_ASSUME_NONNULL_BEGIN - -/** - * A NSNotification object that makes retrieving internal SDLRPCRequest data easier - */ -@interface SDLRPCRequestNotification : NSNotification - -/** - * The request to be included in the userinfo dictionary - */ -@property (copy, nonatomic, readonly) __kindof SDLRPCRequest *request; - -/** - * Create an NSNotification object containing an SDLRPCRequest - * - * @param name The NSNotification name - * @param object The NSNotification object - * @param request The SDLRPCRequest payload - * @return The NSNotification - */ -- (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcRequest:(__kindof SDLRPCRequest *)request; - -/** - * Returns whether or not the containing request is equal to a class, not including subclasses. - * - * @param aClass the class you are questioning - */ -- (BOOL)isRequestMemberOfClass:(Class)aClass; - -/** - * Returns whether or not the containing request is a kind of class, including subclasses. - * - * @param aClass the class you are questioning - */ -- (BOOL)isRequestKindOfClass:(Class)aClass; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.m deleted file mode 100644 index 4ac6250..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCRequestNotification.m +++ /dev/null @@ -1,49 +0,0 @@ -// -// SDLRPCRequestNotification.m -// SmartDeviceLink -// -// Created by Nicole on 2/14/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequestNotification.h" - -#import "SDLNotificationConstants.h" -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRPCRequestNotification - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wimplicit-atomic-properties" -@synthesize name = _name; -@synthesize object = _object; -@synthesize userInfo = _userInfo; -#pragma clang diagnostic pop - -- (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcRequest:(__kindof SDLRPCRequest *)request { - _name = name; - _object = object; - _userInfo = @{SDLNotificationUserInfoObject: request}; - - return self; -} - -- (__kindof SDLRPCRequest *)request { - return _userInfo[SDLNotificationUserInfoObject]; -} - -- (BOOL)isRequestMemberOfClass:(Class)aClass { - NSAssert([self.request isMemberOfClass:aClass], @"A notification was sent with an unanticipated object"); - return [self.request isMemberOfClass:aClass]; -} - -- (BOOL)isRequestKindOfClass:(Class)aClass { - NSAssert([self.request isKindOfClass:aClass], @"A notification was sent with an unanticipated object"); - return [self.request isKindOfClass:aClass]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.h deleted file mode 100644 index 4e944a0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.h +++ /dev/null @@ -1,36 +0,0 @@ -// SDLRPCResponse.h -// - - -#import "SDLRPCMessage.h" - -#import "SDLResult.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Superclass of RPC responses -@interface SDLRPCResponse : SDLRPCMessage - -/** - * The correlation id of the corresponding SDLRPCRequest. - */ -@property (strong, nonatomic) NSNumber *correlationID; - -/** - * Whether or not the SDLRPCRequest was successful. - */ -@property (strong, nonatomic) NSNumber *success; - -/** - * The result of the SDLRPCRequest. If the request failed, the result code contains the failure reason. - */ -@property (strong, nonatomic) SDLResult resultCode; - -/** - * More detailed success or error message. - */ -@property (nullable, strong, nonatomic) NSString *info; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.m deleted file mode 100644 index c0ad88b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponse.m +++ /dev/null @@ -1,91 +0,0 @@ -// SDLRPCResponse.m -// - - -#import "SDLRPCResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLResult.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLRPCMessage () - -@property (strong, nonatomic, readwrite) NSString *messageType; -@property (strong, nonatomic) NSMutableDictionary *function; - -@end - -@implementation SDLRPCResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" -- (instancetype)initWithName:(NSString *)name { - self = [super initWithName:name]; - if (!self) { - return nil; - } - - self.messageType = SDLRPCParameterNameResponse; - [self.store sdl_setObject:self.function forName:self.messageType]; - - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - self = [super initWithDictionary:dict]; - if (!self) { - return nil; - } - - self.messageType = SDLRPCParameterNameResponse; - [self.store sdl_setObject:self.function forName:self.messageType]; - - return self; -} - -#pragma clang diagnostic pop - -- (NSString *)description { - return [NSString stringWithFormat:@"%@ (%@), id: %@\n%@", self.name, self.messageType, self.correlationID, self.parameters]; -} - -- (NSNumber *)correlationID { - NSError *error = nil; - return [self.function sdl_objectForName:SDLRPCParameterNameCorrelationId ofClass:NSNumber.class error:&error]; -} - -- (void)setCorrelationID:(NSNumber *)corrID { - [self.function sdl_setObject:corrID forName:SDLRPCParameterNameCorrelationId]; -} - -- (void)setSuccess:(NSNumber *)success { - [self.parameters sdl_setObject:success forName:SDLRPCParameterNameSuccess]; -} - -- (NSNumber *)success { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameSuccess ofClass:NSNumber.class error:&error]; -} - -- (void)setResultCode:(SDLResult)resultCode { - [self.parameters sdl_setObject:resultCode forName:SDLRPCParameterNameResultCode]; -} - -- (SDLResult)resultCode { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameResultCode error:&error]; -} - -- (void)setInfo:(nullable NSString *)info { - [self.parameters sdl_setObject:info forName:SDLRPCParameterNameInfo]; -} - -- (nullable NSString *)info { - return [self.parameters sdl_objectForName:SDLRPCParameterNameInfo ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponseNotification.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponseNotification.h deleted file mode 100644 index 4434f2a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponseNotification.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// SDLRPCResponseNotification.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/25/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -@class SDLRPCResponse; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * A NSNotification object that makes retrieving internal SDLRPCResponse data easier - */ -@interface SDLRPCResponseNotification : NSNotification - -/** - * The response to be included within the userinfo dictionary - */ -@property (copy, nonatomic, readonly) __kindof SDLRPCResponse *response; - -/** - * Create an NSNotification object containing an SDLRPCResponse - * - * @param name The NSNotification name - * @param object The NSNotification object - * @param response The SDLRPCResponse payload - * @return The NSNotification - */ -- (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcResponse:(__kindof SDLRPCResponse *)response; - -/** - * Returns whether or not the containing response is equal to a class, not including subclasses. - * - * @param aClass the class you are questioning - */ -- (BOOL)isResponseMemberOfClass:(Class)aClass; - -/** - * Returns whether or not the containing response is a kind of class, including subclasses. - * - * @param aClass the class you are questioning - */ -- (BOOL)isResponseKindOfClass:(Class)aClass; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponseNotification.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponseNotification.m deleted file mode 100644 index 150c8b6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCResponseNotification.m +++ /dev/null @@ -1,49 +0,0 @@ -// -// SDLRPCResponseNotification.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/25/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponseNotification.h" - -#import "SDLNotificationConstants.h" -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRPCResponseNotification - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wimplicit-atomic-properties" -@synthesize name = _name; -@synthesize object = _object; -@synthesize userInfo = _userInfo; -#pragma clang diagnostic pop - -- (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcResponse:(SDLRPCResponse *)response { - _name = name; - _object = object; - _userInfo = @{SDLNotificationUserInfoObject: response}; - - return self; -} - -- (__kindof SDLRPCResponse *)response { - return _userInfo[SDLNotificationUserInfoObject]; -} - -- (BOOL)isResponseMemberOfClass:(Class)aClass { - NSAssert([self.response isMemberOfClass:aClass], @"A notification was sent with an unanticipated object"); - return [self.response isMemberOfClass:aClass]; -} - -- (BOOL)isResponseKindOfClass:(Class)aClass { - NSAssert([self.response isKindOfClass:aClass], @"A notification was sent with an unanticipated object"); - return [self.response isKindOfClass:aClass]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.h deleted file mode 100644 index e8a36d9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// SDLRPCStruct.h - - -#import - -#import "NSNumber+NumberType.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Superclass of all RPC-related structs and messages -@interface SDLRPCStruct : NSObject - -/// The store that contains RPC data -@property (strong, nonatomic, readonly) NSMutableDictionary *store; - -/// Declares if the RPC payload ought to be protected -@property (assign, nonatomic, getter=isPayloadProtected) BOOL payloadProtected; - -/** - * Convenience init - * - * @param dict A dictionary - * @return A SDLRPCStruct object - */ -- (instancetype)initWithDictionary:(NSDictionary *)dict; - -/** - * Converts struct to JSON formatted data - * - * @param version The protocol version - * @return JSON formatted data - */ -- (NSDictionary *)serializeAsDictionary:(Byte)version; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.m deleted file mode 100644 index 9956df0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRPCStruct.m +++ /dev/null @@ -1,109 +0,0 @@ -// -// SDLRPCStruct.m - - -#import "SDLRPCStruct.h" - -#import "SDLEnum.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRPCStruct - -- (instancetype)initWithDictionary:(NSDictionary *)dict { - self = [super init]; - if (!self) { - return nil; - } - - _store = [dict mutableCopy]; - _payloadProtected = NO; - - return self; -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - _store = [NSMutableDictionary dictionary]; - _payloadProtected = NO; - - return self; -} - -- (NSDictionary *)serializeAsDictionary:(Byte)version { - if (version >= 2) { - NSString *messageType = self.store.keyEnumerator.nextObject; - NSMutableDictionary *function = _store[messageType]; - if ([function isKindOfClass:NSMutableDictionary.class]) { - NSMutableDictionary *parameters = function[SDLRPCParameterNameParameters]; - return [self.class sdl_serializeDictionary:parameters version:version]; - } else { - return [self.class sdl_serializeDictionary:self.store version:version]; - } - } else { - return [self.class sdl_serializeDictionary:self.store version:version]; - } -} - -- (NSString *)description { - return [self.store description]; -} - -+ (NSDictionary *)sdl_serializeDictionary:(NSDictionary *)dict version:(Byte)version { - NSMutableDictionary *ret = [NSMutableDictionary dictionaryWithCapacity:dict.count]; - for (NSString *key in dict.keyEnumerator) { - NSObject *value = dict[key]; - if ([value isKindOfClass:SDLRPCStruct.class]) { - ret[key] = [(SDLRPCStruct *)value serializeAsDictionary:version]; - } else if ([value isKindOfClass:NSDictionary.class]) { - ret[key] = [self sdl_serializeDictionary:(NSDictionary *)value version:version]; - } else if ([value isKindOfClass:NSArray.class]) { - NSArray *arrayVal = (NSArray *)value; - - if (arrayVal.count > 0 && ([arrayVal.firstObject isKindOfClass:SDLRPCStruct.class])) { - NSMutableArray *> *serializedList = [NSMutableArray arrayWithCapacity:arrayVal.count]; - for (SDLRPCStruct *serializeable in arrayVal) { - [serializedList addObject:[serializeable serializeAsDictionary:version]]; - } - ret[key] = serializedList; - } else { - ret[key] = value; - } - } else { - ret[key] = value; - } - } - return ret; -} - -- (id)copyWithZone:(nullable NSZone *)zone { - SDLRPCStruct *newStruct = [[[self class] allocWithZone:zone] initWithDictionary:_store]; - newStruct.payloadProtected = self.payloadProtected; - - return newStruct; -} - -- (BOOL)isEqualToRPC:(SDLRPCStruct *)rpc { - return [rpc.store isEqualToDictionary:_store]; -} - -- (BOOL)isEqual:(id)object { - if (self == object) { - return YES; - } - - if (![object isMemberOfClass:self.class]) { - return NO; - } - - return [self isEqualToRPC:(SDLRPCStruct *)object]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.h deleted file mode 100644 index 043a8ab..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// SDLRTPH264Packetizer.h -// SmartDeviceLink-iOS -// -// Created by Sho Amano on 4/11/17. -// Copyright © 2017 Xevo Inc. All rights reserved. -// - -#import -#import "SDLH264Packetizer.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLRTPH264Packetizer : NSObject - -/** - * Payload Type (PT) of RTP header field. - * - * PT field identifies the format of the RTP payload ([5.1] in RFC 3550). - * RFC 6184 doesn’t specify this value and says it "has to be performed - * either through the profile used or in a dynamic way" in [5.1]. - * - * In our spec, this value is chosen from range 96-127 (which are for - * dynamic assignment) and will be ignored by HMI. Refer to the proposal: - * https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0048-H264-over-RTP-support-for-video-streaming.md - * - * @note Default value is 96. - */ -@property (assign, nonatomic) UInt8 payloadType; - -- (instancetype)initWithSSRC:(UInt32)ssrc; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.m deleted file mode 100644 index ddb5f80..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRTPH264Packetizer.m +++ /dev/null @@ -1,255 +0,0 @@ -// -// SDLRTPH264Packetizer.m -// SmartDeviceLink-iOS -// -// Created by Sho Amano on 4/11/17. -// Copyright © 2017 Xevo Inc. All rights reserved. -// - -/* - * Note for testing. - * The RTP stream generated by this packetizer can be tested with GStreamer (1.4 or later). - * Assuming that "VideoStreamPort" is configured as 5050 in smartDeviceLink.ini, here is the - * GStreamer pipeline that receives the stream, decode it and render it: - * - * $ gst-launch-1.0 souphttpsrc location=http://127.0.0.1:5050 ! "application/x-rtp-stream" ! rtpstreamdepay ! "application/x-rtp,media=(string)video,clock-rate=90000,encoding-name=(string)H264" ! rtph264depay ! "video/x-h264, stream-format=(string)avc, alignment=(string)au" ! avdec_h264 ! videoconvert ! ximagesink sync=false - */ - -#import -#import "SDLRTPH264Packetizer.h" -#import "SDLLogMacros.h" - -const NSUInteger FrameLengthLen = 2; -const NSUInteger MaxRTPPacketSize = 65535; // because length field is two bytes (RFC 4571) -const NSUInteger RTPHeaderLen = 12; -const UInt8 DefaultPayloadType = 96; -const NSUInteger FragmentationUnitIndicatorLen = 1; -const NSUInteger FragmentationUnitHeaderLen = 1; -const UInt8 FragmentationUnitVersionA = 0x1C; -const NSUInteger ClockRate = 90000; // we use 90 kHz clock rate ([5.1] in RFC 6184) - -/** - * write 2-byte value into buffer in network byte order - * - * @param buffer buffer to write the value - * @param value value to write - */ -static inline void sdl_writeShortInNetworkByteOrder(UInt8 *buffer, UInt16 value) { - buffer[0] = (value >> 8) & 0xFF; - buffer[1] = value & 0xFF; -} - -/** - * write 4-byte value into buffer in network byte order - * - * @param buffer buffer to write the value - * @param value value to write - */ -static inline void sdl_writeLongInNetworkByteOrder(UInt8 *buffer, UInt32 value) { - buffer[0] = (value >> 24) & 0xFF; - buffer[1] = (value >> 16) & 0xFF; - buffer[2] = (value >> 8) & 0xFF; - buffer[3] = value & 0xFF; -} - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLRTPH264Packetizer () - -@property (assign, nonatomic) UInt32 initialTimestamp; -@property (assign, nonatomic) UInt16 sequenceNum; -@property (assign, nonatomic) UInt32 ssrc; - -@end - -@implementation SDLRTPH264Packetizer - -- (instancetype)initWithSSRC:(UInt32)ssrc { - self = [self init]; - _ssrc = ssrc; - - return self; -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - _payloadType = DefaultPayloadType; - // initial value of the sequence number and timestamp should be random ([5.1] in RFC3550) - _initialTimestamp = arc4random_uniform(UINT32_MAX); - _sequenceNum = (UInt16)arc4random_uniform(UINT16_MAX); - - return self; -} - -- (void)setPayloadType:(UInt8)payloadType { - if (payloadType <= 127) { - _payloadType = payloadType; - } else { - _payloadType = DefaultPayloadType; - } -} - -- (nullable NSArray *)createPackets:(NSArray *)nalUnits - presentationTimestamp:(double)presentationTimestamp { - NSMutableArray *rtpFrames = [NSMutableArray array]; - NSUInteger nalUnitsCount = nalUnits.count; - - for (NSUInteger i = 0; i < nalUnitsCount; i++) { - NSData *nalUnit = nalUnits[i]; - BOOL isLast = ((i + 1) == nalUnitsCount); - - if (RTPHeaderLen + nalUnit.length > MaxRTPPacketSize) { - // Split into multiple Fragmentation Units ([5.8] in RFC 6184) - if (![self sdl_addRTPFramesWithFragmentationUnits:rtpFrames nalUnit:nalUnit presentationTimestamp:presentationTimestamp isLast:isLast]) { - return nil; - } - } else { - // Use Single NAL Unit Packet ([5.6] in RFC 6184) - if (![self sdl_addRTPFrameWithSingleNALUnit:rtpFrames nalUnit:nalUnit presentationTimestamp:presentationTimestamp isLast:isLast]) { - return nil; - } - } - } - - return [rtpFrames copy]; -} - -/** - * Create and add a RTP frame from a NAL unit without splitting - * - * @param rtpFrames the array to which created RTP frame is added - * @param nalUnit NAL unit to create RTP frame from - * @param presentationTimestamp presentation timestamp in seconds - * @param isLast mark YES if this is the last NAL unit of a video frame - * - * @return YES if successful, NO if memory error occurred - */ -- (BOOL)sdl_addRTPFrameWithSingleNALUnit:(NSMutableArray *)rtpFrames - nalUnit:(NSData *)nalUnit - presentationTimestamp:(double)presentationTimestamp - isLast:(BOOL)isLast { - NSUInteger nalUnitLength = nalUnit.length; - NSUInteger packetSize = RTPHeaderLen + nalUnitLength; - NSUInteger frameSize = FrameLengthLen + packetSize; - - NSAssert(RTPHeaderLen + nalUnitLength <= MaxRTPPacketSize, @"This NAL unit doesn't fit into single RTP packet"); - - UInt8 *buffer = malloc(frameSize); - if (buffer == NULL) { - SDLLogE(@"malloc() error"); - return NO; - } - UInt8 *writePointer = buffer; - - writePointer += [self sdl_writeFrameHeader:writePointer packetSize:packetSize]; - writePointer += [self sdl_writeRTPHeader:writePointer marker:isLast presentationTimestamp:presentationTimestamp]; - [nalUnit getBytes:writePointer length:nalUnitLength]; - - NSData *rtpFrame = [NSData dataWithBytesNoCopy:buffer length:frameSize]; - [rtpFrames addObject:rtpFrame]; - - return YES; -} - -/** - * Create and add a RTP frames by splitting a NAL unit into multiple Fragmentation Units - * - * @param rtpFrames the array to which created RTP frames are added - * @param nalUnit NAL unit to create RTP frames from - * @param presentationTimestamp presentation timestamp in seconds - * @param isLast mark YES if this is the last NAL unit of a video frame - * - * @return YES if successful, NO if memory error occurred - */ -- (BOOL)sdl_addRTPFramesWithFragmentationUnits:(NSMutableArray *)rtpFrames - nalUnit:(NSData *)nalUnit - presentationTimestamp:(double)presentationTimestamp - isLast:(BOOL)isLast { - UInt8 firstByte; - [nalUnit getBytes:&firstByte length:1]; - BOOL isFirstFragment = YES; - BOOL isLastFragment = NO; - NSUInteger nalUnitLength = nalUnit.length; - NSUInteger offset = 1; // we have already read the first byte - - while (offset < nalUnitLength) { - NSUInteger payloadLength = MaxRTPPacketSize - (RTPHeaderLen + FragmentationUnitIndicatorLen + FragmentationUnitHeaderLen); - if (nalUnitLength - offset <= payloadLength) { - payloadLength = nalUnitLength - offset; - isLastFragment = YES; - } - NSUInteger packetSize = RTPHeaderLen + FragmentationUnitIndicatorLen + FragmentationUnitHeaderLen + payloadLength; - NSUInteger frameSize = FrameLengthLen + packetSize; - - UInt8 *buffer = malloc(frameSize); - if (buffer == NULL) { - SDLLogE(@"malloc() error"); - return NO; - } - UInt8 *writePointer = buffer; - - writePointer += [self sdl_writeFrameHeader:writePointer packetSize:packetSize]; - writePointer += [self sdl_writeRTPHeader:writePointer marker:isLast presentationTimestamp:presentationTimestamp]; - - // Fragmentation Unit indicator - *writePointer++ = (firstByte & 0xE0) | FragmentationUnitVersionA; - // Fragmentation Unit header - *writePointer++ = (isFirstFragment ? 0x80 : isLastFragment ? 0x40 : 0) | (firstByte & 0x1F); - // Fragmentation Unit payload - [nalUnit getBytes:writePointer range:NSMakeRange(offset, payloadLength)]; - offset += payloadLength; - - NSData *rtpFrame = [NSData dataWithBytesNoCopy:buffer length:frameSize]; - [rtpFrames addObject:rtpFrame]; - - isFirstFragment = NO; - } - - return YES; -} - -/** - * Write RTP Frame header (length field) to supplied buffer. - * - * @param frameHeaderBuffer the buffer in which a header is written. - * @param packetSize size of a RTP packet that follows to this frame header. - * - * @return number of bytes written, which is always 2. - */ -- (NSUInteger)sdl_writeFrameHeader:(UInt8 *)frameHeaderBuffer packetSize:(NSUInteger)packetSize { - NSAssert(packetSize <= MaxRTPPacketSize, @"RTP packet is too big"); - sdl_writeShortInNetworkByteOrder(frameHeaderBuffer, (UInt16)packetSize); - return FrameLengthLen; -} - -/** - * Write RTP header to supplied buffer. - * - * @param rtpHeaderBuffer the buffer in which a header is written. - * @param isLast whether this is the last packet of an access unit. - * @param presentationTimestamp presentation timestamp in seconds. - * - * @return number of bytes written, which is always 12. - */ -- (NSUInteger)sdl_writeRTPHeader:(UInt8 *)rtpHeaderBuffer marker:(BOOL)isLast presentationTimestamp:(double)presentationTimestamp { - UInt32 presentationTimestampIn90kHz = (UInt32)(presentationTimestamp * ClockRate); - - // Version = 2, Padding = 0, Extension = 0, CSRC count = 0 - rtpHeaderBuffer[0] = 0x80; - // Marker = isLast, Payload type = self.payloadType - rtpHeaderBuffer[1] = (isLast ? 0x80 : 0) | (self.payloadType & 0x7F); - sdl_writeShortInNetworkByteOrder(rtpHeaderBuffer + 2, self.sequenceNum); - sdl_writeLongInNetworkByteOrder(rtpHeaderBuffer + 4, self.initialTimestamp + presentationTimestampIn90kHz); - sdl_writeLongInNetworkByteOrder(rtpHeaderBuffer + 8, self.ssrc); - - self.sequenceNum++; - return RTPHeaderLen; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioBand.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioBand.h deleted file mode 100644 index 537706b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioBand.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// SDLRadioBand.h -// - -#import "SDLEnum.h" - -/** - Radio bands, such as AM and FM, used in RadioControlData - */ -typedef SDLEnum SDLRadioBand SDL_SWIFT_ENUM; - -/** - * Represents AM radio band - */ -extern SDLRadioBand const SDLRadioBandAM NS_SWIFT_NAME(am); - -/** - * Represents FM radio band - */ -extern SDLRadioBand const SDLRadioBandFM NS_SWIFT_NAME(fm); - -/** - * Represents XM radio band - */ -extern SDLRadioBand const SDLRadioBandXM NS_SWIFT_NAME(xm); diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioBand.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioBand.m deleted file mode 100644 index 1aa03e7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioBand.m +++ /dev/null @@ -1,9 +0,0 @@ -// -// SDLRadioBand.m -// - -#import "SDLRadioBand.h" - -SDLRadioBand const SDLRadioBandAM = @"AM"; -SDLRadioBand const SDLRadioBandFM = @"FM"; -SDLRadioBand const SDLRadioBandXM = @"XM"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.h deleted file mode 100644 index 0c35df1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.h +++ /dev/null @@ -1,225 +0,0 @@ -// -// SDLRadioControlCapabilities.h -// - -#import "SDLRPCMessage.h" -#import "SDLModuleInfo.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Contains information about a radio control module's capabilities. - */ -@interface SDLRadioControlCapabilities : SDLRPCStruct - -/** - Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. - - @param moduleName The short friendly name of the radio control module. - @param radioEnableAvailable Availability of the control of enable/disable radio. - @param radioBandAvailable Availability of the control of radio band. - @param radioFrequencyAvailable Availability of the control of radio frequency. - @param hdChannelAvailable Availability of the control of HD radio channel. - @param rdsDataAvailable Availability of the getting Radio Data System (RDS) data. - @param availableHDsAvailable Availability of the getting the number of available HD channels. - @param stateAvailable Availability of the getting the Radio state. - @param signalStrengthAvailable Availability of the getting the signal strength. - @param signalChangeThresholdAvailable Availability of the getting the signal Change Threshold. - @return An instance of the SDLRadioControlCapabilities class. - */ -- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable __deprecated_msg(("Use initWithModuleName:moduleName:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDChannelsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead")); - -/** - Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. - - @param moduleName The short friendly name of the radio control module. - @param radioEnableAvailable Availability of the control of enable/disable radio. - @param radioBandAvailable Availability of the control of radio band. - @param radioFrequencyAvailable Availability of the control of radio frequency. - @param hdChannelAvailable Availability of the control of HD radio channel. - @param rdsDataAvailable Availability of the getting Radio Data System (RDS) data. - @param availableHDsAvailable Availability of the getting the number of available HD channels. - @param stateAvailable Availability of the getting the Radio state. - @param signalStrengthAvailable Availability of the getting the signal strength. - @param signalChangeThresholdAvailable Availability of the getting the signal Change Threshold. - @param hdRadioEnableAvailable Availability of the control of enable/disable HD radio. - @param siriusXMRadioAvailable Availability of sirius XM radio. - @param sisDataAvailable Availability of sis data. - @return An instance of the SDLRadioControlCapabilities class - */ -- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable __deprecated_msg(("Use initWithModuleName:moduleName:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDChannelsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead")); - -/** - Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. - - @param moduleName The short friendly name of the radio control module. - @param radioEnableAvailable Availability of the control of enable/disable radio. - @param radioBandAvailable Availability of the control of radio band. - @param radioFrequencyAvailable Availability of the control of radio frequency. - @param hdChannelAvailable Availability of the control of HD radio channel. - @param rdsDataAvailable Availability of the getting Radio Data System (RDS) data. - @param availableHDChannelsAvailable Availability of the list of available HD sub-channel indexes. - @param stateAvailable Availability of the getting the Radio state. - @param signalStrengthAvailable Availability of the getting the signal strength. - @param signalChangeThresholdAvailable Availability of the getting the signal Change Threshold. - @param hdRadioEnableAvailable Availability of the control of enable/disable HD radio. - @param siriusXMRadioAvailable Availability of sirius XM radio. - @param sisDataAvailable Availability of sis data. - @return An instance of the SDLRadioControlCapabilities class - */ -- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable __deprecated_msg(("Use initWithModuleName:moduleName:moduleInfo:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDChannelsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead")); - -/** - Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. - - @param moduleName The short friendly name of the radio control module. - @param moduleInfo Information about a RC module, including its id. - @param radioEnableAvailable Availability of the control of enable/disable radio. - @param radioBandAvailable Availability of the control of radio band. - @param radioFrequencyAvailable Availability of the control of radio frequency. - @param hdChannelAvailable Availability of the control of HD radio channel. - @param rdsDataAvailable Availability of the getting Radio Data System (RDS) data. - @param availableHDChannelsAvailable Availability of the list of available HD sub-channel indexes. - @param stateAvailable Availability of the getting the Radio state. - @param signalStrengthAvailable Availability of the getting the signal strength. - @param signalChangeThresholdAvailable Availability of the getting the signal Change Threshold. - @param hdRadioEnableAvailable Availability of the control of enable/disable HD radio. - @param siriusXMRadioAvailable Availability of sirius XM radio. - @param sisDataAvailable Availability of sis data. - @return An instance of the SDLRadioControlCapabilities class - */ -- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable; - -/** - * The short friendly name of the radio control module. - - * It should not be used to identify a module by mobile application. - * - * Max string length 100 chars - */ -@property (strong, nonatomic) NSString *moduleName; - -/** - * Availability of the control of enable/disable radio. - - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *radioEnableAvailable; - -/** - * Availability of the control of radio band. - - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *radioBandAvailable; - -/** - * Availability of the control of radio frequency. - - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *radioFrequencyAvailable; - -/** - * Availability of the control of HD radio channel. - - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *hdChannelAvailable; - -/** - * Availability of the getting Radio Data System (RDS) data. - - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *rdsDataAvailable; - -/** - * Availability of the getting the number of available HD channels. - - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *availableHDsAvailable __deprecated_msg("Use availableHDChannelsAvailable instead."); - -/** - * Availability of the list of available HD sub-channel indexes. - - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *availableHDChannelsAvailable; - -/** - * Availability of the getting the Radio state. - - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *stateAvailable; - -/** - * Availability of the getting the signal strength. - - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *signalStrengthAvailable; - -/** - * Availability of the getting the signal Change Threshold - - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *signalChangeThresholdAvailable; - -/** - * Availability of the control of enable/disable HD radio. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *hdRadioEnableAvailable; - -/** - * Availability of sirius XM radio. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *siriusXMRadioAvailable; - -/** - * Availability of the getting HD radio Station Information Service (SIS) data. - * True: Available, False: Not Available, Not present: Not Available. - * - * Optional, Boolean - */ -@property (nullable, strong, nonatomic) NSNumber *sisDataAvailable; - -/** - * Information about a RC module, including its id. - * - * SDLModuleInfo - */ -@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.m deleted file mode 100644 index 921e2e6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlCapabilities.m +++ /dev/null @@ -1,210 +0,0 @@ -// -// SDLRadioControlCapabilities.m -// - -#import "SDLRadioControlCapabilities.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRadioControlCapabilities - -- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable { - return [self initWithModuleName:moduleName radioEnableAvailable:radioEnableAvailable radioBandAvailable:radioBandAvailable radioFrequencyAvailable:radioFrequencyAvailable hdChannelAvailable:hdChannelAvailable rdsDataAvailable:rdsDataAvailable availableHDsAvailable:availableHDsAvailable stateAvailable:stateAvailable signalStrengthAvailable:signalStrengthAvailable signalChangeThresholdAvailable:signalChangeThresholdAvailable hdRadioEnableAvailable:NO siriusXMRadioAvailable:NO sisDataAvailable:NO]; -} - -- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable { - self = [self init]; - if(!self){ - return nil; - } - - self.moduleName = moduleName; - self.radioEnableAvailable = @(radioEnableAvailable); - self.radioBandAvailable = @(radioBandAvailable); - self.radioFrequencyAvailable = @(radioFrequencyAvailable); - self.hdChannelAvailable = @(hdChannelAvailable); - self.rdsDataAvailable = @(rdsDataAvailable); - self.availableHDsAvailable = @(availableHDsAvailable); - self.stateAvailable = @(stateAvailable); - self.signalStrengthAvailable = @(signalStrengthAvailable); - self.signalChangeThresholdAvailable = @(signalChangeThresholdAvailable); - self.hdRadioEnableAvailable = @(hdRadioEnableAvailable); - self.siriusXMRadioAvailable = @(siriusXMRadioAvailable); - self.sisDataAvailable = @(sisDataAvailable); - - return self; -} - -- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable { - self = [self init]; - if(!self){ - return nil; - } - - self.moduleName = moduleName; - self.radioEnableAvailable = @(radioEnableAvailable); - self.radioBandAvailable = @(radioBandAvailable); - self.radioFrequencyAvailable = @(radioFrequencyAvailable); - self.hdChannelAvailable = @(hdChannelAvailable); - self.rdsDataAvailable = @(rdsDataAvailable); - self.availableHDChannelsAvailable = @(availableHDChannelsAvailable); - self.stateAvailable = @(stateAvailable); - self.signalStrengthAvailable = @(signalStrengthAvailable); - self.signalChangeThresholdAvailable = @(signalChangeThresholdAvailable); - self.hdRadioEnableAvailable = @(hdRadioEnableAvailable); - self.siriusXMRadioAvailable = @(siriusXMRadioAvailable); - self.sisDataAvailable = @(sisDataAvailable); - - return self; -} - -- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable { - self = [self init]; - if(!self){ - return nil; - } - - self.moduleName = moduleName; - self.moduleInfo = moduleInfo; - self.radioEnableAvailable = @(radioEnableAvailable); - self.radioBandAvailable = @(radioBandAvailable); - self.radioFrequencyAvailable = @(radioFrequencyAvailable); - self.hdChannelAvailable = @(hdChannelAvailable); - self.rdsDataAvailable = @(rdsDataAvailable); - self.availableHDChannelsAvailable = @(availableHDChannelsAvailable); - self.stateAvailable = @(stateAvailable); - self.signalStrengthAvailable = @(signalStrengthAvailable); - self.signalChangeThresholdAvailable = @(signalChangeThresholdAvailable); - self.hdRadioEnableAvailable = @(hdRadioEnableAvailable); - self.siriusXMRadioAvailable = @(siriusXMRadioAvailable); - self.sisDataAvailable = @(sisDataAvailable); - - return self; -} - -- (void)setModuleName:(NSString *)moduleName { - [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; -} - -- (NSString *)moduleName { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; -} - -- (void)setRadioEnableAvailable:(nullable NSNumber *)radioEnableAvailable { - [self.store sdl_setObject:radioEnableAvailable forName:SDLRPCParameterNameRadioEnableAvailable]; -} - -- (nullable NSNumber *)radioEnableAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameRadioEnableAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setRadioBandAvailable:(nullable NSNumber *)radioBandAvailable { - [self.store sdl_setObject:radioBandAvailable forName:SDLRPCParameterNameRadioBandAvailable]; -} - -- (nullable NSNumber *)radioBandAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameRadioBandAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setRadioFrequencyAvailable:(nullable NSNumber *)radioFrequencyAvailable { - [self.store sdl_setObject:radioFrequencyAvailable forName:SDLRPCParameterNameRadioFrequencyAvailable]; -} - -- (nullable NSNumber *)radioFrequencyAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameRadioFrequencyAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setHdChannelAvailable:(nullable NSNumber *)hdChannelAvailable { - [self.store sdl_setObject:hdChannelAvailable forName:SDLRPCParameterNameHDChannelAvailable]; -} - -- (nullable NSNumber *)hdChannelAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameHDChannelAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setRdsDataAvailable:(nullable NSNumber *)rdsDataAvailable { - [self.store sdl_setObject:rdsDataAvailable forName:SDLRPCParameterNameRDSDataAvailable]; -} - -- (nullable NSNumber *)rdsDataAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameRDSDataAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setAvailableHDsAvailable:(nullable NSNumber *)availableHDsAvailable { - [self.store sdl_setObject:availableHDsAvailable forName:SDLRPCParameterNameAvailableHDsAvailable]; -} - -- (nullable NSNumber *)availableHDsAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameAvailableHDsAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setAvailableHDChannelsAvailable:(nullable NSNumber *)availableHDChannelsAvailable { - [self.store sdl_setObject:availableHDChannelsAvailable forName:SDLRPCParameterNameAvailableHDsAvailable]; -} - -- (nullable NSNumber *)availableHDChannelsAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameAvailableHDsAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setStateAvailable:(nullable NSNumber *)stateAvailable { - [self.store sdl_setObject:stateAvailable forName:SDLRPCParameterNameStateAvailable]; -} - -- (nullable NSNumber *)stateAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameStateAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setSignalStrengthAvailable:(nullable NSNumber *)signalStrengthAvailable { - [self.store sdl_setObject:signalStrengthAvailable forName:SDLRPCParameterNameSignalStrengthAvailable]; -} - -- (nullable NSNumber *)signalStrengthAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameSignalStrengthAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setSignalChangeThresholdAvailable:(nullable NSNumber *)signalChangeThresholdAvailable { - [self.store sdl_setObject:signalChangeThresholdAvailable forName:SDLRPCParameterNameSignalChangeThresholdAvailable]; -} - -- (nullable NSNumber *)signalChangeThresholdAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameSignalChangeThresholdAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setHdRadioEnableAvailable:(nullable NSNumber *)hdRadioEnableAvailable { - [self.store sdl_setObject:hdRadioEnableAvailable forName:SDLRPCParameterNameHDRadioEnableAvailable]; -} - -- (nullable NSNumber *)hdRadioEnableAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameHDRadioEnableAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setSiriusXMRadioAvailable:(nullable NSNumber *)siriusXMRadioAvailable { - [self.store sdl_setObject:siriusXMRadioAvailable forName:SDLRPCParameterNameSiriusXMRadioAvailable]; -} - -- (nullable NSNumber *)siriusXMRadioAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameSiriusXMRadioAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setSisDataAvailable:(nullable NSNumber *)sisDataAvailable { - [self.store sdl_setObject:sisDataAvailable forName:SDLRPCParameterNameSISDataAvailable]; -} - -- (nullable NSNumber *)sisDataAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameSISDataAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { - [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; -} - -- (nullable SDLModuleInfo *)moduleInfo { - return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.h deleted file mode 100644 index 182e610..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.h +++ /dev/null @@ -1,172 +0,0 @@ -// -// SDLRadioControlData.h -// - -#import "SDLRPCMessage.h" -#import "SDLRadioBand.h" -#import "SDLRadioState.h" - -@class SDLRDSData; -@class SDLSISData; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Include information (both read-only and changeable data) about a remote control radio module. - */ -@interface SDLRadioControlData : SDLRPCStruct - -/** - Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. - - @param frequencyInteger integer part of the frequency - @param frequencyFraction fractional part of the frequency - @param band Radio band value - @param hdChannel Current HD sub-channel - @param radioEnable whether or not radio is enabled - @return An instance of the SDLRadioControlData class - */ -- (instancetype)initWithFrequencyInteger:(nullable NSNumber *)frequencyInteger frequencyFraction:(nullable NSNumber *)frequencyFraction band:(nullable SDLRadioBand)band hdChannel:(nullable NSNumber *)hdChannel radioEnable:(nullable NSNumber *)radioEnable __deprecated_msg(("Use initWithFrequencyInteger:frequencyInteger:frequencyFraction:band:hdChannel:radioEnable:sisData: instead")); - -/** - Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. - - @param frequencyInteger integer part of the frequency - @param frequencyFraction fractional part of the frequency - @param band Radio band value - @param hdChannel Current HD sub-channel - @param radioEnable whether or not radio is enabled - @param hdRadioEnable whether or not hdradio is enabled - @return An instance of the SDLRadioControlData class - */ -- (instancetype)initWithFrequencyInteger:(nullable NSNumber *)frequencyInteger frequencyFraction:(nullable NSNumber *)frequencyFraction band:(nullable SDLRadioBand)band hdChannel:(nullable NSNumber *)hdChannel radioEnable:(nullable NSNumber *)radioEnable hdRadioEnable:(nullable NSNumber *)hdRadioEnable; - -/// Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. -/// -/// @param frequencyInteger Must be between 0 and 1710 -/// @param frequencyFraction Must be between 0 and 9 -/// @param hdChannel Must be between 0 and 7 -/// @return An instance of the SDLRadioControlData class -- (instancetype)initFMWithFrequencyInteger:(nullable NSNumber *)frequencyInteger frequencyFraction:(nullable NSNumber *)frequencyFraction hdChannel:(nullable NSNumber *)hdChannel; - -/// Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. -/// -/// @param frequencyInteger Must be between 0 and 1710 -/// @param hdChannel Must be between 0 and 7 -/// @return An instance of the SDLRadioControlData class -- (instancetype)initAMWithFrequencyInteger:(nullable NSNumber *)frequencyInteger hdChannel:(nullable NSNumber *)hdChannel; - -/// Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. -/// -/// @param frequencyInteger Must be between 1 and 1710 -/// @return An instance of the SDLRadioControlData class -- (instancetype)initXMWithFrequencyInteger:(nullable NSNumber *)frequencyInteger; - -/** - * The integer part of the frequency ie for 101.7 this value should be 101 - * - * Integer - */ -@property (nullable, strong, nonatomic) NSNumber *frequencyInteger; - -/** - * The fractional part of the frequency for 101.7 is 7 - * - * Integer - */ -@property (nullable, strong, nonatomic) NSNumber *frequencyFraction; - -/** - * Radio band value - * - * SDLRadioBand - */ -@property (nullable, strong, nonatomic) SDLRadioBand band; - -/** - * Read only parameter. See RDSData data type for details. - * - * @warning This property is readonly and cannot be set on the module. - * - *SDLRDSData - */ -@property (nullable, strong, nonatomic) SDLRDSData *rdsData; - -/** - * number of HD sub-channels if available - * - * @warning This property is readonly and cannot be set on the module. - * - * Integer value Min Value - 1 Max Value -7 - */ -@property (nullable, strong, nonatomic) NSNumber *availableHDs __deprecated_msg("Use availableHDChannels instead"); - -/** - * the list of available hd sub-channel indexes, empty list means no Hd channel is available, read-only - * - * @warning This property is readonly and cannot be set on the module. - * - * Integer value Min Value - 0 Max Value -7 - */ -@property (nullable, strong, nonatomic) NSNumber *availableHDChannels; - -/** - * Current HD sub-channel if available - * - * Integer value Min Value - 0 Max Value -7 - */ -@property (nullable, strong, nonatomic) NSNumber *hdChannel; - -/** - * Signal Strength Value - * - * @warning This property is readonly and cannot be set on the module. - * - * Integer value Min Value - 0 Max Value - 100 - */ -@property (nullable, strong, nonatomic) NSNumber *signalStrength; - -/** - * If the signal strength falls below the set value for this parameter, the radio will tune to an alternative frequency - * - * @warning This property is readonly and cannot be set on the module. - * - * Integer value Min Value - 0 Max Value - 100 - */ -@property (nullable, strong, nonatomic) NSNumber *signalChangeThreshold; - -/** - * True if the radio is on, false is the radio is off. When the radio is disabled, no data other than radioEnable is included in a GetInteriorVehicleData response - * - * Boolean value - */ -@property (nullable, strong, nonatomic) NSNumber *radioEnable; - -/** - * Read only parameter. See RadioState data type for details. - * - * @warning This property is readonly and cannot be set on the module. - * - * SDLRadioState - */ -@property (nullable, strong, nonatomic) SDLRadioState state; - -/** - * True if the hd radio is on, false is the radio is off - * - * Boolean value - */ -@property (nullable, strong, nonatomic) NSNumber *hdRadioEnable; - -/** - * Read Read-only Station Information Service (SIS) data provides basic information - * about the station such as call sign, - * as well as information not displayable to the consumer such as the station identification number - * - * Optional, SDLSISData - */ -@property (nullable, strong, nonatomic) SDLSISData *sisData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.m deleted file mode 100644 index 9fb82f0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioControlData.m +++ /dev/null @@ -1,191 +0,0 @@ -// -// SDLRadioControlData.m -// - -#import "SDLRadioControlData.h" -#import "SDLRPCParameterNames.h" -#import "SDLRDSData.h" -#import "SDLSISData.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRadioControlData - -- (instancetype)initWithFrequencyInteger:(nullable NSNumber *)frequencyInteger frequencyFraction:(nullable NSNumber *)frequencyFraction band:(nullable SDLRadioBand)band hdChannel:(nullable NSNumber *)hdChannel radioEnable:(nullable NSNumber *)radioEnable { - self = [self init]; - if(!self) { - return nil; - } - - self.frequencyInteger = frequencyInteger; - self.frequencyFraction = frequencyFraction; - self.band = band; - self.hdChannel = hdChannel; - self.radioEnable = radioEnable; - - return self; -} - -- (instancetype)initWithFrequencyInteger:(nullable NSNumber *)frequencyInteger frequencyFraction:(nullable NSNumber *)frequencyFraction band:(nullable SDLRadioBand)band hdChannel:(nullable NSNumber *)hdChannel radioEnable:(nullable NSNumber *)radioEnable hdRadioEnable:(nullable NSNumber *)hdRadioEnable { - self = [self init]; - if(!self) { - return nil; - } - - self.frequencyInteger = frequencyInteger; - self.frequencyFraction = frequencyFraction; - self.band = band; - self.hdChannel = hdChannel; - self.radioEnable = radioEnable; - self.hdRadioEnable = hdRadioEnable; - - return self; -} - -- (instancetype)initFMWithFrequencyInteger:(nullable NSNumber *)frequencyInteger frequencyFraction:(nullable NSNumber *)frequencyFraction hdChannel:(nullable NSNumber *)hdChannel { - self = [self init]; - if(!self) { - return nil; - } - - self.band = SDLRadioBandFM; - self.frequencyInteger = frequencyInteger; - self.frequencyFraction = frequencyFraction; - self.hdChannel = hdChannel; - - return self; -} - -- (instancetype)initAMWithFrequencyInteger:(nullable NSNumber *)frequencyInteger hdChannel:(nullable NSNumber *)hdChannel { - self = [self init]; - if(!self) { - return nil; - } - - self.band = SDLRadioBandAM; - self.frequencyInteger = frequencyInteger; - self.hdChannel = hdChannel; - - return self; -} - -- (instancetype)initXMWithFrequencyInteger:(nullable NSNumber *)frequencyInteger { - self = [self init]; - if(!self) { - return nil; - } - - self.frequencyInteger = frequencyInteger; - self.band = SDLRadioBandXM; - - return self; -} - -- (void)setFrequencyInteger:(nullable NSNumber *)frequencyInteger { - [self.store sdl_setObject:frequencyInteger forName:SDLRPCParameterNameFrequencyInteger]; -} - -- (nullable NSNumber *)frequencyInteger { - return [self.store sdl_objectForName:SDLRPCParameterNameFrequencyInteger ofClass:NSNumber.class error:nil]; -} - -- (void)setFrequencyFraction:(nullable NSNumber *)frequencyFraction { - [self.store sdl_setObject:frequencyFraction forName:SDLRPCParameterNameFrequencyFraction]; -} - -- (nullable NSNumber *)frequencyFraction { - return [self.store sdl_objectForName:SDLRPCParameterNameFrequencyFraction ofClass:NSNumber.class error:nil]; -} - -- (void)setBand:(nullable SDLRadioBand)band { - [self.store sdl_setObject:band forName:SDLRPCParameterNameBand]; -} - -- (nullable SDLRadioBand)band{ - return [self.store sdl_enumForName:SDLRPCParameterNameBand error:nil]; -} - -- (void)setRdsData:(nullable SDLRDSData *)rdsData { - [self.store sdl_setObject:rdsData forName:SDLRPCParameterNameRDSData]; -} - -- (nullable SDLRDSData *)rdsData { - return [self.store sdl_objectForName:SDLRPCParameterNameRDSData ofClass:SDLRDSData.class error:nil]; -} - -- (void)setAvailableHDChannels:(nullable NSNumber *)availableHDChannels { - [self.store sdl_setObject:availableHDChannels forName:SDLRPCParameterNameAvailableHDChannels]; -} - -- (nullable NSNumber *)availableHDChannels { - return [self.store sdl_objectForName:SDLRPCParameterNameAvailableHDChannels ofClass:NSNumber.class error:nil]; -} - -- (void)setAvailableHDs:(nullable NSNumber *)availableHDs { - [self.store sdl_setObject:availableHDs forName:SDLRPCParameterNameAvailableHDs]; -} - -- (nullable NSNumber *)availableHDs { - return [self.store sdl_objectForName:SDLRPCParameterNameAvailableHDs ofClass:NSNumber.class error:nil]; -} - -- (void)setHdChannel:(nullable NSNumber *)hdChannel { - [self.store sdl_setObject:hdChannel forName:SDLRPCParameterNameHDChannel]; -} - -- (nullable NSNumber *)hdChannel { - return [self.store sdl_objectForName:SDLRPCParameterNameHDChannel ofClass:NSNumber.class error:nil]; -} - -- (void)setSignalStrength:(nullable NSNumber *)signalStrength { - [self.store sdl_setObject:signalStrength forName:SDLRPCParameterNameSignalStrength]; -} - -- (nullable NSNumber *)signalStrength { - return [self.store sdl_objectForName:SDLRPCParameterNameSignalStrength ofClass:NSNumber.class error:nil]; -} - -- (void)setSignalChangeThreshold:(nullable NSNumber *)signalChangeThreshold { - [self.store sdl_setObject:signalChangeThreshold forName:SDLRPCParameterNameSignalChangeThreshold]; -} - -- (nullable NSNumber *)signalChangeThreshold { - return [self.store sdl_objectForName:SDLRPCParameterNameSignalChangeThreshold ofClass:NSNumber.class error:nil]; -} - -- (void)setRadioEnable:(nullable NSNumber *)radioEnable { - [self.store sdl_setObject:radioEnable forName:SDLRPCParameterNameRadioEnable]; -} - -- (nullable NSNumber *)radioEnable { - return [self.store sdl_objectForName:SDLRPCParameterNameRadioEnable ofClass:NSNumber.class error:nil]; -} - -- (void)setState:(nullable SDLRadioState)state { - [self.store sdl_setObject:state forName:SDLRPCParameterNameState]; -} - -- (nullable SDLRadioState)state { - return [self.store sdl_enumForName:SDLRPCParameterNameState error:nil]; -} - -- (void)setHdRadioEnable:(nullable NSNumber *)hdRadioEnable { - [self.store sdl_setObject:hdRadioEnable forName:SDLRPCParameterNameHDRadioEnable]; -} - -- (nullable NSNumber *)hdRadioEnable { - return [self.store sdl_objectForName:SDLRPCParameterNameHDRadioEnable ofClass:NSNumber.class error:nil]; -} - -- (void)setSisData:(nullable SDLSISData *)sisData { - [self.store sdl_setObject:sisData forName:SDLRPCParameterNameSISData]; -} - -- (nullable SDLSISData *)sisData { - return [self.store sdl_objectForName:SDLRPCParameterNameSISData ofClass:SDLSISData.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioState.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioState.h deleted file mode 100644 index ee5945a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioState.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// SDLRadioState.h -// - -#import "SDLEnum.h" - -/** - * List possible states of a remote control radio module. Used in RadioControlData. - */ -typedef SDLEnum SDLRadioState SDL_SWIFT_ENUM; - -/** - * Represents Radio state as ACQUIRING - */ -extern SDLRadioState const SDLRadioStateAcquiring; - -/** - * Represents Radio state as ACQUIRED - */ -extern SDLRadioState const SDLRadioStateAcquired; - -/** - * Represents Radio state as MULTICAST - */ -extern SDLRadioState const SDLRadioStateMulticast; - -/** - * Represents Radio state as NOT_FOUND - */ -extern SDLRadioState const SDLRadioStateNotFound; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioState.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioState.m deleted file mode 100644 index e14aebe..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRadioState.m +++ /dev/null @@ -1,10 +0,0 @@ -// -// SDLRadioState.m -// - -#import "SDLRadioState.h" - -SDLRadioState const SDLRadioStateAcquiring = @"ACQUIRING"; -SDLRadioState const SDLRadioStateAcquired = @"ACQUIRED"; -SDLRadioState const SDLRadioStateMulticast = @"MULTICAST"; -SDLRadioState const SDLRadioStateNotFound = @"NOT_FOUND"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.h deleted file mode 100644 index 299e785..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.h +++ /dev/null @@ -1,54 +0,0 @@ -// SDLReadDID.h -// - - -#import "SDLRPCRequest.h" - -/** - * Non periodic vehicle data read request. This is an RPC to get diagnostics - * data from certain vehicle modules. DIDs of a certain module might differ from - * vehicle type to vehicle type - *

      - * Function Group: ProprietaryData - *

      - * HMILevel needs to be FULL, LIMITED or BACKGROUND - *

      - * - * Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLReadDID : SDLRPCRequest - -/// Convenience init -/// -/// @param ecuNumber An ID of the vehicle module -/// @param didLocation Raw data from vehicle data DID location(s) -/// @return An SDLReadDID object -- (instancetype)initWithECUName:(UInt16)ecuNumber didLocation:(NSArray *> *)didLocation; - -/** - * An ID of the vehicle module - *
      Notes: Minvalue:0; Maxvalue:65535 - */ -@property (strong, nonatomic) NSNumber *ecuName; - -/** - * Raw data from vehicle data DID location(s) - *
      a Vector value representing raw data from vehicle - * data DID location(s) - *

      - * Notes: - *

        - *
      • Minvalue:0; Maxvalue:65535
      • - *
      • ArrayMin:0; ArrayMax:1000
      • - *
      - * - * Mandatory, contains an integer - */ -@property (strong, nonatomic) NSArray *didLocation; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.m deleted file mode 100644 index dd33770..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDID.m +++ /dev/null @@ -1,56 +0,0 @@ -// SDLReadDID.m -// - - -#import "SDLReadDID.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLReadDID - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameReadDID]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithECUName:(UInt16)ecuName didLocation:(NSArray *> *)didLocation { - self = [self init]; - if (!self) { - return nil; - } - - self.ecuName = @(ecuName); - self.didLocation = [didLocation mutableCopy]; - - return self; -} - -- (void)setEcuName:(NSNumber *)ecuName { - [self.parameters sdl_setObject:ecuName forName:SDLRPCParameterNameECUName]; -} - -- (NSNumber *)ecuName { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameECUName ofClass:NSNumber.class error:&error]; -} - -- (void)setDidLocation:(NSArray *)didLocation { - [self.parameters sdl_setObject:didLocation forName:SDLRPCParameterNameDIDLocation]; -} - -- (NSArray *)didLocation { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameDIDLocation ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDIDResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDIDResponse.h deleted file mode 100644 index 612ed48..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDIDResponse.h +++ /dev/null @@ -1,26 +0,0 @@ -// SDLReadDIDResponse.h -// - - -#import "SDLRPCResponse.h" - -@class SDLDIDResult; - -/** - A response to ReadDID - - Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLReadDIDResponse : SDLRPCResponse - -/** - Array of requested DID results (with data if available). - */ -@property (nullable, strong, nonatomic) NSArray *didResult; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDIDResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDIDResponse.m deleted file mode 100644 index 7bad1e4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReadDIDResponse.m +++ /dev/null @@ -1,35 +0,0 @@ -// SDLReadDIDResponse.m -// - - -#import "SDLReadDIDResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLDIDResult.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLReadDIDResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameReadDID]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setDidResult:(nullable NSArray *)didResult { - [self.parameters sdl_setObject:didResult forName:SDLRPCParameterNameDIDResult]; -} - -- (nullable NSArray *)didResult { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameDIDResult ofClass:SDLDIDResult.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRectangle.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRectangle.h deleted file mode 100644 index 04d9e76..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRectangle.h +++ /dev/null @@ -1,67 +0,0 @@ -// -// SDLRectangle.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/23/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import -#import - -#import "NSNumber+NumberType.h" -#import "SDLRPCStruct.h" - -/** - A struct describing a rectangle - */ -@interface SDLRectangle : SDLRPCStruct - -/** - Create a Rectangle - - @param x The top-left x value - @param y The top-left y value - @param width The width - @param height The height - @return An new SDLRectangle object - */ -- (instancetype)initWithX:(float)x y:(float)y width:(float)width height:(float)height; - -/** - Create a Rectangle from a CGRect - - @param rect The rectangle to use - @return An new SDLRectangle object - */ -- (instancetype)initWithCGRect:(CGRect)rect; - -/** - * The X-coordinate of the user control - - * Required, Float - */ -@property (strong, nonatomic) NSNumber *x; - -/** - * The Y-coordinate of the user control - - * Required, Float - */ -@property (strong, nonatomic) NSNumber *y; - -/** - * The width of the user control's bounding rectangle - - * Required, Float - */ -@property (strong, nonatomic) NSNumber *width; - -/** - * The height of the user control's bounding rectangle - - * Required, Float - */ -@property (strong, nonatomic) NSNumber *height; - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRectangle.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRectangle.m deleted file mode 100644 index 7e6a8a3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRectangle.m +++ /dev/null @@ -1,67 +0,0 @@ -// -// SDLRectangle.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/23/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "NSMutableDictionary+Store.h" -#import "SDLRectangle.h" -#import "SDLRPCParameterNames.h" - -@implementation SDLRectangle - -- (instancetype)initWithX:(float)x y:(float)y width:(float)width height:(float)height { - self = [self init]; - if (!self) { return nil; } - - self.x = @(x); - self.y = @(y); - self.width = @(width); - self.height = @(height); - - return self; -} - -- (instancetype)initWithCGRect:(CGRect)rect { - return [self initWithX:(float)rect.origin.x y:(float)rect.origin.y width:(float)rect.size.width height:(float)rect.size.height]; -} - -- (void)setX:(NSNumber *)x { - [self.store sdl_setObject:x forName:SDLRPCParameterNameX]; -} - -- (NSNumber *)x { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameX ofClass:NSNumber.class error:&error]; -} - -- (void)setY:(NSNumber *)y { - [self.store sdl_setObject:y forName:SDLRPCParameterNameY]; -} - -- (NSNumber *)y { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameY ofClass:NSNumber.class error:&error]; -} - -- (void)setWidth:(NSNumber *)width { - [self.store sdl_setObject:width forName:SDLRPCParameterNameWidth]; -} - -- (NSNumber *)width { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameWidth ofClass:NSNumber.class error:&error]; -} - -- (void)setHeight:(NSNumber *)height { - [self.store sdl_setObject:height forName:SDLRPCParameterNameHeight]; -} - -- (NSNumber *)height { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameHeight ofClass:NSNumber.class error:&error]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.h deleted file mode 100644 index d1b8298..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.h +++ /dev/null @@ -1,276 +0,0 @@ -// SDLRegisterAppInterface.h -// - -#import "SDLRPCRequest.h" - -#import "SDLAppHMIType.h" -#import "SDLLanguage.h" - -@class SDLAppInfo; -@class SDLDeviceInfo; -@class SDLLifecycleConfiguration; -@class SDLSyncMsgVersion; -@class SDLMsgVersion; -@class SDLTemplateColorScheme; -@class SDLTTSChunk; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * Registers the application's interface with SDL. The `RegisterAppInterface` RPC declares the properties of the app, including the messaging interface version, the app name, etc. The mobile application must establish its interface registration with SDL before any other interaction with SDL can take place. The registration lasts until it is terminated either by the application calling the `SDLUnregisterAppInterface` method, or by SDL sending an `SDLOnAppInterfaceUnregistered` notification, or by loss of the underlying transport connection, or closing of the underlying message transmission protocol RPC session. - * - * Until the application receives its first `SDLOnHMIStatus` notification, its `SDLHMILevel` is assumed to be `NONE`, the `SDLAudioStreamingState` is assumed to be `NOT_AUDIBLE`, and the `SDLSystemContext` is assumed to be `MAIN`. - * - * All SDL resources which the application creates or uses (e.g. choice sets, command menu, etc.) are associated with the application's interface registration. Therefore, when the interface registration ends, the SDL resources associated with the application are disposed of. As a result, even though the application itself may continue to run on its host platform (e.g. mobile device) after the interface registration terminates, the application will not be able to use the SDL HMI without first establishing a new interface registration and re-creating its required SDL resources. That is, SDL resources created by (or on behalf of) an application do not persist beyond the life-span of the interface registration. Resources and settings whose lifespan is tied to the duration of an application's interface registration include: choice sets, command menus, and the media clock timer display value - * - * If the application intends to stream audio it is important to indicate so via the `isMediaApp` parameter. When set to true, audio will reliably stream without any configuration required by the user. When not set, audio may stream, depending on what the user might have manually configured as a media source on SDL. - * - * @since SDL 1.0 - * - * @see SDLUnregisterAppInterface, SDLOnAppInterfaceUnregistered - */ -@interface SDLRegisterAppInterface : SDLRPCRequest - -/** - * Convenience init for registering the application with a lifecycle configuration. - * - * @param lifecycleConfiguration Configuration options for SDLManager - */ -- (instancetype)initWithLifecycleConfiguration:(SDLLifecycleConfiguration *)lifecycleConfiguration; - -/** - * Convenience init for registering the application with an app name, app id, and desired language. - * - * @param appName The mobile application's name - * @param appId An appId used to validate app with policy table entries - * @param languageDesired The language the application intends to use for user interaction - * @return A SDLRegisterAppInterface object - */ -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired; - -/** - * Convenience init for registering the application with an app name, app id, desired language, whether or not the app is a media app, app types, and the short app name. - * - * @param appName The mobile application's name - * @param appId An appId used to validate app with policy table entries - * @param languageDesired The language the application intends to use for user interaction - * @param isMediaApp Indicates if the application is a media or a non-media application - * @param appTypes A list of all applicable app types stating which classifications to be given to the app - * @param shortAppName An abbreviated version of the mobile application's name - * @return A SDLRegisterAppInterface object - */ -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray *)appTypes shortAppName:(nullable NSString *)shortAppName __deprecated_msg(("Use initWithAppName:appId:fullAppId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:dayColorScheme:nightColorScheme: instead")); - -/** - * Convenience init for registering the application with an app name, app id, desired language, whether or not the app is a media app, app types, the short app name, tts name, voice recognition synonyms, the hmi display language desired, and the resume hash. - * - * @param appName The mobile application's name - * @param appId An appId used to validate app with policy table entries - * @param languageDesired The language the application intends to use for user interaction - * @param isMediaApp Indicates if the application is a media or a non-media application - * @param appTypes A list of all applicable app types stating which classifications to be given to the app - * @param shortAppName An abbreviated version of the mobile application's name - * @param ttsName TTS string for VR recognition of the mobile application name - * @param vrSynonyms Additional voice recognition commands - * @param hmiDisplayLanguageDesired Current app's expected VR+TTS language - * @param resumeHash ID used to uniquely identify current state of all app data that can persist through connection cycles - * @return A SDLRegisterAppInterface object - */ -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray *)appTypes shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray *)ttsName vrSynonyms:(nullable NSArray *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash __deprecated_msg(("Use initWithAppName:appId:fullAppId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:dayColorScheme:nightColorScheme: instead")); - -/** - * Convenience init for registering the application with all possible options. - * - * @param appName The mobile application's name - * @param appId An appId used to validate app with policy table entries - * @param fullAppId A full UUID appID used to validate app with policy table entries. - * @param languageDesired The language the application intends to use for user interaction - * @param isMediaApp Indicates if the application is a media or a non-media application - * @param appTypes A list of all applicable app types stating which classifications to be given to the app - * @param shortAppName An abbreviated version of the mobile application's name - * @param ttsName TTS string for VR recognition of the mobile application name - * @param vrSynonyms Additional voice recognition commands - * @param hmiDisplayLanguageDesired Current app's expected VR+TTS language - * @param resumeHash ID used to uniquely identify current state of all app data that can persist through connection cycles - * @param dayColorScheme The color scheme to be used on a head unit using a "light" or "day" color scheme. - * @param nightColorScheme The color scheme to be used on a head unit using a "dark" or "night" color scheme - * @return A SDLRegisterAppInterface object - */ -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId fullAppId:(nullable NSString *)fullAppId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray *)appTypes shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray *)ttsName vrSynonyms:(nullable NSArray *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme; - -/** - * Specifies the version number of the SmartDeviceLink protocol that is supported by the mobile application. - * - * SDLSyncMsgVersion, Required - * - * @since SDL 1.0 - */ -@property (strong, nonatomic) SDLSyncMsgVersion *syncMsgVersion __deprecated_msg(("Use sdlMsgVersion instead")); - -/** - * Specifies the version number of the SmartDeviceLink protocol that is supported by the mobile application. - * - * SDLMsgVersion, Required - * - * @since SDL 1.0 - */ -@property (strong, nonatomic) SDLMsgVersion *sdlMsgVersion; - -/** - * The mobile application's name. This name is displayed in the SDL Mobile Applications menu. It also serves as the unique identifier of the application for SmartDeviceLink. Applications with the same name will be rejected. - * - * 1. Needs to be unique over all applications. Applications with the same name will be rejected. - * 2. May not be empty. - * 3. May not start with a new line character. - * 4. May not interfere with any name or synonym of previously registered applications and any predefined blacklist of words (global commands). - * - * String, Required, Max length 100 chars - * - * @since SDL 1.0 - */ -@property (strong, nonatomic) NSString *appName; - -/** - * Text-to-speech string for voice recognition of the mobile application name. Meant to overcome any failing on speech engine in properly pronouncing / understanding app name. - * - * 1. Needs to be unique over all applications. - * 2. May not be empty. - * 3. May not start with a new line character. - * - * Array of SDLTTSChunk, Optional, Array size 1 - 100 - * - * @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) NSArray *ttsName; - -/** - * Provides an abbreviated version of the app name (if needed), that will be displayed on head units that support very few characters. If not provided, the appName is used instead (and will be truncated if too long). It's recommended that this string be no longer than 5 characters. - * - * Legacy head units may limit the number of characters in an app name. - * - * String, Optional, Max length 100 chars - * - * @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSString *ngnMediaScreenAppName; - -/** - * Defines additional voice recognition commands - * - * @discussion May not interfere with any app name of previously registered applications and any predefined blacklist of words (global commands). - * - * Array of Strings, Optional, Array length 1 - 100, Max String length 40 - * - * @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSArray *vrSynonyms; - -/** - * Indicates if the application is a media or a non-media application. Media applications will appear in the head unit's media source list and can use the `MEDIA` template. - * - * Boolean, Required - * - * @since SDL 1.0 - */ -@property (strong, nonatomic) NSNumber *isMediaApplication; - -/** - * App's starting VR+TTS language. If there is a mismatch with the head unit, the app will be able to change its language with ChangeRegistration prior to app being brought into focus. - * - * SDLLanguage, Required - * - * @since SDL 1.0 - */ -@property (strong, nonatomic) SDLLanguage languageDesired; - -/** - * Current app's expected display language. If there is a mismatch with the head unit, the app will be able to change its language with ChangeRegistration prior to app being brought into focus. - * - * SDLLanguage, Required - * - * @since SDL 2.0 - */ -@property (strong, nonatomic) SDLLanguage hmiDisplayLanguageDesired; - -/** - * List of all applicable app HMI types stating which HMI classifications to be given to the app. - * - * Array of SDLAppHMIType, Optional, Array size 1 - 100 - * - * @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) NSArray *appHMIType; - -/** - * ID used to uniquely identify a previous state of all app data that can persist through connection cycles (e.g. ignition cycles). This registered data (commands, submenus, choice sets, etc.) can be reestablished without needing to explicitly re-send each piece. If omitted, then the previous state of an app's commands, etc. will not be restored. - * - * When sending hashID, all RegisterAppInterface parameters should still be provided (e.g. ttsName, etc.). - * - * String, Optional, max length 100 chars - * - * @since SDL 3.0 - */ -@property (nullable, strong, nonatomic) NSString *hashID; - -/** - * Information about the connecting device. - * - * SDLDeviceInfo, Optional - * - * @since SDL 3.0 - */ -@property (nullable, strong, nonatomic) SDLDeviceInfo *deviceInfo; - -/** - * ID used to validate app with policy table entries. - * - * String, Required, max length 100 - * - * @see `fullAppID` - * - * @since SDL 2.0 - */ -@property (strong, nonatomic) NSString *appID; - -/** - * A full UUID appID used to validate app with policy table entries. - * - * @discussion The `fullAppId` is used to authenticate apps that connect with head units that implement SDL Core v.5.0 and newer. If connecting with older head units, the `fullAppId` can be truncated to create the required `appId` needed to register the app. The `appId` is the first 10 non-dash ("-") characters of the `fullAppID` (e.g. if you have a `fullAppId` of 123e4567-e89b-12d3-a456-426655440000, the `appId` will be 123e4567e8). - * - * String, Optional - * - * @since SDL 5.0 - */ -@property (nullable, strong, nonatomic) NSString *fullAppID; - -/** - * Contains detailed information about the registered application. - * - * SDLAppInfo, Optional - * - * @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) SDLAppInfo *appInfo; - -/** - * The color scheme to be used on a head unit using a "light" or "day" color scheme. The OEM may only support this theme if their head unit only has a light color scheme. - * - * SDLTemplateColorScheme, Optional - * - * @since SDL 5.0 - */ -@property (strong, nonatomic, nullable) SDLTemplateColorScheme *dayColorScheme; - -/** - * The color scheme to be used on a head unit using a "dark" or "night" color scheme. The OEM may only support this theme if their head unit only has a dark color scheme. - * - * SDLTemplateColorScheme, Optional - * - * @since SDL 5.0 - */ -@property (strong, nonatomic, nullable) SDLTemplateColorScheme *nightColorScheme; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.m deleted file mode 100644 index 6fa2ed6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterface.m +++ /dev/null @@ -1,271 +0,0 @@ -// SDLRegisterAppInterface.m -// - - -#import "SDLRegisterAppInterface.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLAppHMIType.h" -#import "SDLAppInfo.h" -#import "SDLDeviceInfo.h" -#import "SDLGlobals.h" -#import "SDLLanguage.h" -#import "SDLLifecycleConfiguration.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSyncMsgVersion.h" -#import "SDLMsgVersion.h" -#import "SDLTemplateColorScheme.h" -#import "SDLTTSChunk.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRegisterAppInterface - -#pragma mark - Lifecycle - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameRegisterAppInterface]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithLifecycleConfiguration:(SDLLifecycleConfiguration *)lifecycleConfiguration { - NSArray *allHMITypes = lifecycleConfiguration.additionalAppTypes ? [lifecycleConfiguration.additionalAppTypes arrayByAddingObject:lifecycleConfiguration.appType] : @[lifecycleConfiguration.appType]; - - return [self initWithAppName:lifecycleConfiguration.appName - appId:lifecycleConfiguration.appId - fullAppId:lifecycleConfiguration.fullAppId - languageDesired:lifecycleConfiguration.language - isMediaApp:lifecycleConfiguration.isMedia - appTypes:allHMITypes - shortAppName:lifecycleConfiguration.shortAppName - ttsName:lifecycleConfiguration.ttsName - vrSynonyms:lifecycleConfiguration.voiceRecognitionCommandNames - hmiDisplayLanguageDesired:lifecycleConfiguration.language - resumeHash:lifecycleConfiguration.resumeHash - dayColorScheme:lifecycleConfiguration.dayColorScheme - nightColorScheme:lifecycleConfiguration.nightColorScheme]; -} - -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired { - self = [self init]; - if (!self) { - return nil; - } - - self.appName = appName; - self.appID = appId; - self.fullAppID = nil; - self.languageDesired = languageDesired; - - self.hmiDisplayLanguageDesired = languageDesired; - - UInt8 majorVersion = (UInt8)[SDLMaxProxyRPCVersion substringWithRange:NSMakeRange(0, 1)].intValue; - UInt8 minorVersion = (UInt8)[SDLMaxProxyRPCVersion substringWithRange:NSMakeRange(2, 1)].intValue; - UInt8 patchVersion = (UInt8)[SDLMaxProxyRPCVersion substringWithRange:NSMakeRange(4, 1)].intValue; - self.sdlMsgVersion = [[SDLMsgVersion alloc] initWithMajorVersion:majorVersion minorVersion:minorVersion patchVersion:patchVersion]; - self.appInfo = [SDLAppInfo currentAppInfo]; - self.deviceInfo = [SDLDeviceInfo currentDevice]; - self.correlationID = @1; - self.isMediaApplication = @NO; - - return self; -} - -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray *)appTypes shortAppName:(nullable NSString *)shortAppName { - self = [self initWithAppName:appName appId:appId languageDesired:languageDesired]; - if (!self) { - return nil; - } - - self.isMediaApplication = @(isMediaApp); - self.appHMIType = appTypes; - self.ngnMediaScreenAppName = shortAppName; - - return self; -} - -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray *)appTypes shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray *)ttsName vrSynonyms:(nullable NSArray *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash { - self = [self initWithAppName:appName appId:appId languageDesired:languageDesired isMediaApp:isMediaApp appTypes:appTypes shortAppName:shortAppName]; - if (!self) { - return nil; - } - - self.ttsName = [ttsName copy]; - self.vrSynonyms = [vrSynonyms copy]; - self.hmiDisplayLanguageDesired = hmiDisplayLanguageDesired; - self.hashID = resumeHash; - - return self; -} - -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId fullAppId:(nullable NSString *)fullAppId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray *)appTypes shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray *)ttsName vrSynonyms:(nullable NSArray *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - self = [self initWithAppName:appName appId:appId languageDesired:languageDesired isMediaApp:isMediaApp appTypes:appTypes shortAppName:shortAppName ttsName:ttsName vrSynonyms:vrSynonyms hmiDisplayLanguageDesired:hmiDisplayLanguageDesired resumeHash:resumeHash]; -#pragma clang diagnostic pop - - if (!self) { return nil; } - - self.fullAppID = fullAppId; - self.dayColorScheme = dayColorScheme; - self.nightColorScheme = nightColorScheme; - - return self; -} - -#pragma mark - Getters and Setters - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (void)setSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion { - SDLMsgVersion * sdlMsgVersion = [[SDLMsgVersion alloc] initWithMajorVersion:(uint8_t)syncMsgVersion.majorVersion.unsignedIntValue minorVersion:(uint8_t)syncMsgVersion.minorVersion.unsignedIntValue patchVersion:(uint8_t)syncMsgVersion.patchVersion.unsignedIntValue]; - [self.parameters sdl_setObject:sdlMsgVersion forName:SDLRPCParameterNameSyncMessageVersion]; -} - -- (SDLSyncMsgVersion *)syncMsgVersion { - SDLMsgVersion * sdlMsgVersion = [self.parameters sdl_objectForName:SDLRPCParameterNameSyncMessageVersion ofClass:SDLMsgVersion.class error:nil]; - return [[SDLSyncMsgVersion alloc] initWithMajorVersion:(uint8_t)sdlMsgVersion.majorVersion.unsignedIntValue minorVersion:(uint8_t)sdlMsgVersion.minorVersion.unsignedIntValue patchVersion:(uint8_t)sdlMsgVersion.patchVersion.unsignedIntValue]; -} -#pragma clang diagnostic pop - -- (void)setSdlMsgVersion:(SDLMsgVersion *)sdlMsgVersion { - [self.parameters sdl_setObject:sdlMsgVersion forName:SDLRPCParameterNameSyncMessageVersion]; -} - -- (SDLMsgVersion *)sdlMsgVersion { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncMessageVersion ofClass:SDLMsgVersion.class error:nil]; -} - -- (void)setAppName:(NSString *)appName { - [self.parameters sdl_setObject:appName forName:SDLRPCParameterNameAppName]; -} - -- (NSString *)appName { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameAppName ofClass:NSString.class error:&error]; -} - -- (void)setTtsName:(nullable NSArray *)ttsName { - [self.parameters sdl_setObject:ttsName forName:SDLRPCParameterNameTTSName]; -} - -- (nullable NSArray *)ttsName { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameTTSName ofClass:SDLTTSChunk.class error:nil]; -} - -- (void)setNgnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName { - [self.parameters sdl_setObject:ngnMediaScreenAppName forName:SDLRPCParameterNameNGNMediaScreenAppName]; -} - -- (nullable NSString *)ngnMediaScreenAppName { - return [self.parameters sdl_objectForName:SDLRPCParameterNameNGNMediaScreenAppName ofClass:NSString.class error:nil]; -} - -- (void)setVrSynonyms:(nullable NSArray *)vrSynonyms { - [self.parameters sdl_setObject:vrSynonyms forName:SDLRPCParameterNameVRSynonyms]; -} - -- (nullable NSArray *)vrSynonyms { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameVRSynonyms ofClass:NSString.class error:nil]; -} - -- (void)setIsMediaApplication:(NSNumber *)isMediaApplication { - [self.parameters sdl_setObject:isMediaApplication forName:SDLRPCParameterNameIsMediaApplication]; -} - -- (NSNumber *)isMediaApplication { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameIsMediaApplication ofClass:NSNumber.class error:&error]; -} - -- (void)setLanguageDesired:(SDLLanguage)languageDesired { - [self.parameters sdl_setObject:languageDesired forName:SDLRPCParameterNameLanguageDesired]; -} - -- (SDLLanguage)languageDesired { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameLanguageDesired error:&error]; -} - -- (void)setHmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired { - [self.parameters sdl_setObject:hmiDisplayLanguageDesired forName:SDLRPCParameterNameHMIDisplayLanguageDesired]; -} - -- (SDLLanguage)hmiDisplayLanguageDesired { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameHMIDisplayLanguageDesired error:&error]; -} - -- (void)setAppHMIType:(nullable NSArray *)appHMIType { - [self.parameters sdl_setObject:appHMIType forName:SDLRPCParameterNameAppHMIType]; -} - -- (nullable NSArray *)appHMIType { - return [self.parameters sdl_enumsForName:SDLRPCParameterNameAppHMIType error:nil]; -} - -- (void)setHashID:(nullable NSString *)hashID { - [self.parameters sdl_setObject:hashID forName:SDLRPCParameterNameHashId]; -} - -- (nullable NSString *)hashID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameHashId ofClass:NSString.class error:nil]; -} - -- (void)setDeviceInfo:(nullable SDLDeviceInfo *)deviceInfo { - [self.parameters sdl_setObject:deviceInfo forName:SDLRPCParameterNameDeviceInfo]; -} - -- (nullable SDLDeviceInfo *)deviceInfo { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceInfo ofClass:SDLDeviceInfo.class error:nil]; -} - -- (void)setAppID:(NSString *)appID { - [self.parameters sdl_setObject:appID forName:SDLRPCParameterNameAppId]; -} - -- (NSString *)appID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameAppId ofClass:NSString.class error:&error]; -} - -- (void)setFullAppID:(nullable NSString *)fullAppID { - [self.parameters sdl_setObject:fullAppID forName:SDLRPCParameterNameFullAppID]; -} - -- (nullable NSString *)fullAppID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFullAppID ofClass:NSString.class error:nil]; -} - -- (void)setAppInfo:(nullable SDLAppInfo *)appInfo { - [self.parameters sdl_setObject:appInfo forName:SDLRPCParameterNameAppInfo]; -} - -- (nullable SDLAppInfo *)appInfo { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAppInfo ofClass:SDLAppInfo.class error:nil]; -} - -- (void)setDayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme { - [self.parameters sdl_setObject:dayColorScheme forName:SDLRPCParameterNameDayColorScheme]; -} - -- (nullable SDLTemplateColorScheme *)dayColorScheme { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDayColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; -} - -- (void)setNightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme { - [self.parameters sdl_setObject:nightColorScheme forName:SDLRPCParameterNameNightColorScheme]; -} - -- (nullable SDLTemplateColorScheme *)nightColorScheme { - return [self.parameters sdl_objectForName:SDLRPCParameterNameNightColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h deleted file mode 100644 index 20c9cf4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h +++ /dev/null @@ -1,215 +0,0 @@ -// SDLRegisterAppInterfaceResponse.h -// - - -#import "SDLRPCResponse.h" - -#import "SDLHMIZoneCapabilities.h" -#import "SDLLanguage.h" -#import "SDLPrerecordedSpeech.h" -#import "SDLSpeechCapabilities.h" -#import "SDLVrCapabilities.h" - -@class SDLAudioPassThruCapabilities; -@class SDLButtonCapabilities; -@class SDLDisplayCapabilities; -@class SDLHMICapabilities; -@class SDLPresetBankCapabilities; -@class SDLSoftButtonCapabilities; -@class SDLSyncMsgVersion; -@class SDLMsgVersion; -@class SDLVehicleType; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * Response to SDLRegisterAppInterface - * - * @since SDL 1.0 - */ -@interface SDLRegisterAppInterfaceResponse : SDLRPCResponse - -/** - * Specifies the negotiated version number of the SmartDeviceLink protocol that is to be supported by the mobile application. - * - * SDLSyncMsgVersion, Optional - * - * @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) SDLSyncMsgVersion *syncMsgVersion __deprecated_msg(("Use sdlMsgVersion Instead")); - -/** - * Specifies the negotiated version number of the SmartDeviceLink protocol that is to be supported by the mobile application. - * - * SDLMsgVersion, Optional - * - * @since SDL 1.0 - */ -@property(nullable, strong, nonatomic) SDLMsgVersion *sdlMsgVersion; - -/** - * The currently active VR+TTS language on the module. See "Language" for options. - * - * SDLLanguage, Optional - * - * @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) SDLLanguage language; - -/** - * The currently active display language on the module. See "Language" for options. - * - * SDLLanguage, Optional - * - * @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) SDLLanguage hmiDisplayLanguage; - -/** - * Contains information about the display's capabilities. - * - * SDLDisplayCapabilities, Optional - * - * @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) SDLDisplayCapabilities *displayCapabilities __deprecated_msg("This parameter is deprecated and replaced by GetSystemCapability using DISPLAY. Deprecated in sdl_ios v6.4 / RPC spec 6.0. You can use the SystemCapabilityManager to have automatic full compatibility support."); - -/** - * Contains information about the head unit button capabilities. - * - * Array of SDLButtonCapabilities, Optional, Array of length 1 - 100 - * - * @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSArray *buttonCapabilities __deprecated_msg("This parameter is deprecated and replaced by GetSystemCapability using DISPLAY. Deprecated in sdl_ios v6.4 / RPC spec 6.0. You can use the SystemCapabilityManager to have automatic full compatibility support."); - -/** - * Contains information about the head unit soft button capabilities. - * - * Array of SDLSoftButtonCapabilities, Optional, Array of length 1 - 100 - * - * @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) NSArray *softButtonCapabilities __deprecated_msg("This parameter is deprecated and replaced by GetSystemCapability using DISPLAY. Deprecated in sdl_ios v6.4 / RPC spec 6.0. You can use the SystemCapabilityManager to have automatic full compatibility support."); - -/** - * If returned, the platform supports custom on-screen Presets - * - * SDLPresetBankCapabilities, Optional - * - * @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) SDLPresetBankCapabilities *presetBankCapabilities __deprecated_msg("This parameter is deprecated and replaced by GetSystemCapability using DISPLAY. Deprecated in sdl_ios v6.4 / RPC spec 6.0. You can use the SystemCapabilityManager to have automatic full compatibility support."); - -/** - * Contains information about the HMI zone capabilities. - * - * Array of SDLHMIZoneCapabilities, Optional, Array of length 1 - 100 - * - * @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSArray *hmiZoneCapabilities; - -/** - * Contains information about the text-to-speech capabilities. - * - * Array of SDLSpeechCapabilities, Optional, Array of length 1 - 100 - * - * @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSArray *speechCapabilities; - -/** - * Contains a list of prerecorded speech items present on the platform. - * - * Array of SDLPrerecordedSpeech, Optional, Array of length 1 - 100 - * - * @since SDL 3.0 - */ -@property (nullable, strong, nonatomic) NSArray *prerecordedSpeech; - -/** - * Contains information about the VR capabilities. - * - * Array of SDLVRCapabilities, Optional, Array of length 1 - 100 - * - * @since SDL 1.0 - */ -@property (nullable, strong, nonatomic) NSArray *vrCapabilities; - -/** - * Describes different audio type configurations for PerformAudioPassThru, e.g. {8kHz,8-bit,PCM}. The audio is recorded in monaural. - * - * Array of SDLAudioPassThruCapabilities, Optional, Array of length 1 - 100 - * - * @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) NSArray *audioPassThruCapabilities; - -/** - * Describes different audio type configurations for the audio PCM stream service, e.g. {8kHz,8-bit,PCM} - * - * SDLAudioPassThruCapabilities, Optional - * - * @since SDL 4.1 - */ -@property (nullable, strong, nonatomic) SDLAudioPassThruCapabilities *pcmStreamCapabilities; - -/** - * Specifies the connected vehicle's type. - * - * SDLVehicleType, Optional - * - * @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) SDLVehicleType *vehicleType; - -/** - * Specifies the white-list of supported diagnostic modes (0x00-0xFF) capable for DiagnosticMessage requests. If a mode outside this list is requested, it will be rejected. - * - * Array of Integers, Optional, Array of length 1 - 100, Value range: 0 - 255 - * - * @since SDL 3.0 - */ -@property (nullable, strong, nonatomic) NSArray *supportedDiagModes; - -/** - * Specifies the HMI capabilities. - * - * SDLHMICapabilities, Optional - * - * @since SDL 3.0 - */ -@property (nullable, strong, nonatomic) SDLHMICapabilities *hmiCapabilities; - -/** - * The version of SDL Core running on the connected head unit - * - * String, Optional, Max length: 100 - * - * @since SDL 3.0 - */ -@property (nullable, strong, nonatomic) NSString *sdlVersion; - -/** - * The software version of the system that implements the SmartDeviceLink core. - * - * String, Optional, Max length: 100 - * - * @since SDL 3.0 - */ -@property (nullable, strong, nonatomic) NSString *systemSoftwareVersion; - -/** - * Existence of apps icon at system. If true, apps icon was resumed at system. If false, apps icon is not resumed at system. - * - * Bool, Optional - * - * @since SDL 5.0 - */ -@property (nullable, strong, nonatomic) NSNumber *iconResumed; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m deleted file mode 100644 index 5c081e9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m +++ /dev/null @@ -1,208 +0,0 @@ -// SDLRegisterAppInterfaceResponse.m -// - - -#import "SDLRegisterAppInterfaceResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLAudioPassThruCapabilities.h" -#import "SDLButtonCapabilities.h" -#import "SDLDisplayCapabilities.h" -#import "SDLHMICapabilities.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLPresetBankCapabilities.h" -#import "SDLSoftButtonCapabilities.h" -#import "SDLSyncMsgVersion.h" -#import "SDLMsgVersion.h" -#import "SDLVehicleType.h" -#import "SDLVrCapabilities.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRegisterAppInterfaceResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameRegisterAppInterface]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setSyncMsgVersion:(nullable SDLSyncMsgVersion *)syncMsgVersion { - if (syncMsgVersion == nil) { - [self.parameters sdl_setObject:nil forName:SDLRPCParameterNameSyncMessageVersion]; - return; - } - - SDLMsgVersion *sdlMsgVersion = [[SDLMsgVersion alloc] initWithMajorVersion:(uint8_t)syncMsgVersion.majorVersion.unsignedIntValue minorVersion:(uint8_t)syncMsgVersion.minorVersion.unsignedIntValue patchVersion:(uint8_t)syncMsgVersion.patchVersion.unsignedIntValue]; - [self.parameters sdl_setObject:sdlMsgVersion forName:SDLRPCParameterNameSyncMessageVersion]; -} - -- (nullable SDLSyncMsgVersion *)syncMsgVersion { - SDLMsgVersion *sdlMsgVersion = [self.parameters sdl_objectForName:SDLRPCParameterNameSyncMessageVersion ofClass:SDLMsgVersion.class error:nil]; - - if(sdlMsgVersion == nil) { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncMessageVersion ofClass:SDLSyncMsgVersion.class error:nil]; - } - - return [[SDLSyncMsgVersion alloc] initWithMajorVersion:(uint8_t)sdlMsgVersion.majorVersion.unsignedIntValue minorVersion:(uint8_t)sdlMsgVersion.minorVersion.unsignedIntValue patchVersion:(uint8_t)sdlMsgVersion.patchVersion.unsignedIntValue]; -} - -- (void)setSdlMsgVersion:(nullable SDLMsgVersion *)sdlMsgVersion { - [self.parameters sdl_setObject:sdlMsgVersion forName:SDLRPCParameterNameSyncMessageVersion]; -} - -- (nullable SDLMsgVersion *)sdlMsgVersion { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncMessageVersion ofClass:SDLMsgVersion.class error:nil]; -} - -- (void)setLanguage:(nullable SDLLanguage)language { - [self.parameters sdl_setObject:language forName:SDLRPCParameterNameLanguage]; -} - -- (nullable SDLLanguage)language { - return [self.parameters sdl_enumForName:SDLRPCParameterNameLanguage error:nil]; -} - -- (void)setHmiDisplayLanguage:(nullable SDLLanguage)hmiDisplayLanguage { - [self.parameters sdl_setObject:hmiDisplayLanguage forName:SDLRPCParameterNameHMIDisplayLanguage]; -} - -- (nullable SDLLanguage)hmiDisplayLanguage { - return [self.parameters sdl_enumForName:SDLRPCParameterNameHMIDisplayLanguage error:nil]; -} - -- (void)setDisplayCapabilities:(nullable SDLDisplayCapabilities *)displayCapabilities { - [self.parameters sdl_setObject:displayCapabilities forName:SDLRPCParameterNameDisplayCapabilities]; -} - -- (nullable SDLDisplayCapabilities *)displayCapabilities { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDisplayCapabilities ofClass:SDLDisplayCapabilities.class error:nil]; -} - -- (void)setButtonCapabilities:(nullable NSArray *)buttonCapabilities { - [self.parameters sdl_setObject:buttonCapabilities forName:SDLRPCParameterNameButtonCapabilities]; -} - -- (nullable NSArray *)buttonCapabilities { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameButtonCapabilities ofClass:SDLButtonCapabilities.class error:nil]; -} - -- (void)setSoftButtonCapabilities:(nullable NSArray *)softButtonCapabilities { - [self.parameters sdl_setObject:softButtonCapabilities forName:SDLRPCParameterNameSoftButtonCapabilities]; -} - -- (nullable NSArray *)softButtonCapabilities { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class error:nil]; -} - -- (void)setPresetBankCapabilities:(nullable SDLPresetBankCapabilities *)presetBankCapabilities { - [self.parameters sdl_setObject:presetBankCapabilities forName:SDLRPCParameterNamePresetBankCapabilities]; -} - -- (nullable SDLPresetBankCapabilities *)presetBankCapabilities { - return [self.parameters sdl_objectForName:SDLRPCParameterNamePresetBankCapabilities ofClass:SDLPresetBankCapabilities.class error:nil]; -} - -- (void)setHmiZoneCapabilities:(nullable NSArray *)hmiZoneCapabilities { - [self.parameters sdl_setObject:hmiZoneCapabilities forName:SDLRPCParameterNameHMIZoneCapabilities]; -} - -- (nullable NSArray *)hmiZoneCapabilities { - return [self.parameters sdl_enumsForName:SDLRPCParameterNameHMIZoneCapabilities error:nil]; -} - -- (void)setSpeechCapabilities:(nullable NSArray *)speechCapabilities { - [self.parameters sdl_setObject:speechCapabilities forName:SDLRPCParameterNameSpeechCapabilities]; -} - -- (nullable NSArray *)speechCapabilities { - return [self.parameters sdl_enumsForName:SDLRPCParameterNameSpeechCapabilities error:nil]; -} - -- (void)setPrerecordedSpeech:(nullable NSArray *)prerecordedSpeech { - [self.parameters sdl_setObject:prerecordedSpeech forName:SDLRPCParameterNamePrerecordedSpeech]; -} - -- (nullable NSArray *)prerecordedSpeech { - return [self.parameters sdl_enumsForName:SDLRPCParameterNamePrerecordedSpeech error:nil]; -} - -- (void)setVrCapabilities:(nullable NSArray *)vrCapabilities { - [self.parameters sdl_setObject:vrCapabilities forName:SDLRPCParameterNameVRCapabilities]; -} - -- (nullable NSArray *)vrCapabilities { - return [self.parameters sdl_enumsForName:SDLRPCParameterNameVRCapabilities error:nil]; -} - -- (void)setAudioPassThruCapabilities:(nullable NSArray *)audioPassThruCapabilities { - [self.parameters sdl_setObject:audioPassThruCapabilities forName:SDLRPCParameterNameAudioPassThruCapabilities]; -} - -- (nullable NSArray *)audioPassThruCapabilities { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameAudioPassThruCapabilities ofClass:SDLAudioPassThruCapabilities.class error:nil]; -} - -- (void)setPcmStreamCapabilities:(nullable SDLAudioPassThruCapabilities *)pcmStreamCapabilities { - [self.parameters sdl_setObject:pcmStreamCapabilities forName:SDLRPCParameterNamePCMStreamCapabilities]; -} - -- (nullable SDLAudioPassThruCapabilities *)pcmStreamCapabilities { - return [self.parameters sdl_objectForName:SDLRPCParameterNamePCMStreamCapabilities ofClass:SDLAudioPassThruCapabilities.class error:nil]; -} - -- (void)setVehicleType:(nullable SDLVehicleType *)vehicleType { - [self.parameters sdl_setObject:vehicleType forName:SDLRPCParameterNameVehicleType]; -} - -- (nullable SDLVehicleType *)vehicleType { - return [self.parameters sdl_objectForName:SDLRPCParameterNameVehicleType ofClass:SDLVehicleType.class error:nil]; -} - -- (void)setSupportedDiagModes:(nullable NSArray *)supportedDiagModes { - [self.parameters sdl_setObject:supportedDiagModes forName:SDLRPCParameterNameSupportedDiagnosticModes]; -} - -- (nullable NSArray *)supportedDiagModes { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameSupportedDiagnosticModes ofClass:NSNumber.class error:nil]; -} - -- (void)setHmiCapabilities:(nullable SDLHMICapabilities *)hmiCapabilities { - [self.parameters sdl_setObject:hmiCapabilities forName:SDLRPCParameterNameHMICapabilities]; -} - -- (nullable SDLHMICapabilities *)hmiCapabilities { - return [self.parameters sdl_objectForName:SDLRPCParameterNameHMICapabilities ofClass:SDLHMICapabilities.class error:nil]; -} - -- (void)setSdlVersion:(nullable NSString *)sdlVersion { - [self.parameters sdl_setObject:sdlVersion forName:SDLRPCParameterNameSDLVersion]; -} - -- (nullable NSString *)sdlVersion { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSDLVersion ofClass:NSString.class error:nil]; -} - -- (void)setSystemSoftwareVersion:(nullable NSString *)systemSoftwareVersion { - [self.parameters sdl_setObject:systemSoftwareVersion forName:SDLRPCParameterNameSystemSoftwareVersion]; -} - -- (nullable NSString *)systemSoftwareVersion { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSystemSoftwareVersion ofClass:NSString.class error:nil]; -} - -- (void)setIconResumed:(nullable NSNumber *)iconResumed { - [self.parameters sdl_setObject:iconResumed forName:SDLRPCParameterNameIconResumed]; -} - -- (nullable NSNumber *)iconResumed { - return [self.parameters sdl_objectForName:SDLRPCParameterNameIconResumed ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h deleted file mode 100644 index 10db403..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// SDLReleaseInteriorVehicleDataModule.h -// SmartDeviceLink -// -// Created by standa1 on 7/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" -#import "SDLModuleType.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Releases a controlled remote control module so others can take control -/// -/// @since 6.0 -@interface SDLReleaseInteriorVehicleDataModule : SDLRPCRequest - -/// Convenience init to release a controlled module -/// @param moduleType The module type that the app requests to control. -/// @param moduleId Id of a module, published by System Capability. -/// @return An SDLReleaseInteriorVehicleDataModule object -- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId; - -/** - * The module type that the app requests to control. - * - * Required - */ -@property (strong, nonatomic) SDLModuleType moduleType; - -/** - * Id of a module, published by System Capability. - * - * Optional - */ -@property (strong, nonatomic, nullable) NSString *moduleId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m deleted file mode 100644 index b282479..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m +++ /dev/null @@ -1,56 +0,0 @@ -// -// SDLReleaseInteriorVehicleDataModule.m -// SmartDeviceLink -// -// Created by standa1 on 7/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLReleaseInteriorVehicleDataModule.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -@implementation SDLReleaseInteriorVehicleDataModule - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameReleaseInteriorVehicleDataModule]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId { - self = [self init]; - if (!self) { - return nil; - } - - self.moduleType = moduleType; - self.moduleId = moduleId; - - return self; -} - -- (void)setModuleType:(SDLModuleType)moduleType { - [self.parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; -} - -- (SDLModuleType)moduleType { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; -} - -- (void)setModuleId:(nullable NSString *)moduleId { - [self.parameters sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId]; -} - -- (nullable NSString *)moduleId { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h deleted file mode 100644 index 63e880c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// SDLReleaseInteriorVehicleDataModuleResponse.h -// SmartDeviceLink -// -// Created by standa1 on 7/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Response to ReleaseInteriorVehicleDataModule -/// -/// @since RPC 6.0 -@interface SDLReleaseInteriorVehicleDataModuleResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m deleted file mode 100644 index 9013d23..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m +++ /dev/null @@ -1,23 +0,0 @@ -// -// SDLReleaseInteriorVehicleDataModuleResponse.m -// SmartDeviceLink -// -// Created by standa1 on 7/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLReleaseInteriorVehicleDataModuleResponse.h" -#import "SDLRPCFunctionNames.h" - -@implementation SDLReleaseInteriorVehicleDataModuleResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameReleaseInteriorVehicleDataModule]) { - } - return self; -} -#pragma clang diagnostic pop - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.h deleted file mode 100644 index 2cdbf4f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.h +++ /dev/null @@ -1,97 +0,0 @@ -// -// SDLRemoteControlCapabilities.h -// - -#import "SDLRPCMessage.h" - -@class SDLAudioControlCapabilities; -@class SDLButtonCapabilities; -@class SDLClimateControlCapabilities; -@class SDLHMISettingsControlCapabilities; -@class SDLLightControlCapabilities; -@class SDLRadioControlCapabilities; -@class SDLSeatControlCapabilities; - -NS_ASSUME_NONNULL_BEGIN - -/** - Capabilities of the remote control feature - */ -@interface SDLRemoteControlCapabilities : SDLRPCStruct - -/// Constructs a newly allocated SDLRemoteControlCapabilities object -/// -/// @param climateControlCapabilities Array of SDLClimateControlCapabilities -/// @param radioControlCapabilities Array of SDLRadioControlCapabilities -/// @param buttonCapabilities Array of SDLButtonCapabilities -/// @return An instance of the SDLRemoteControlCapabilities class -- (instancetype)initWithClimateControlCapabilities:(nullable NSArray *)climateControlCapabilities radioControlCapabilities:(nullable NSArray *)radioControlCapabilities buttonCapabilities:(nullable NSArray *)buttonCapabilities __deprecated_msg("Use initWithClimateControlCapabilities:climateControlCapabilities:radioControlCapabilities:buttonCapabilities:seatControlCapabilities:audioControlCapabilities:hmiSettingsControlCapabilities:lightControlCapabilities: instead"); - -/** - Constructs a newly allocated SDLRemoteControlCapabilities object with given parameters - - @param climateControlCapabilities Array of SDLClimateControlCapabilities - @param radioControlCapabilities Array of SDLRadioControlCapabilities - @param buttonCapabilities Array of SDLButtonCapabilities - @param lightControlCapabilities Array of SDLLightControlCapabilities - @param seatControlCapabilities Array of SDLSeatControlCapabilities - - @return An instance of the SDLRemoteControlCapabilities class - - */ -- (instancetype)initWithClimateControlCapabilities:(nullable NSArray *)climateControlCapabilities radioControlCapabilities:(nullable NSArray *)radioControlCapabilities buttonCapabilities:(nullable NSArray *)buttonCapabilities seatControlCapabilities:(nullable NSArray *)seatControlCapabilities audioControlCapabilities:(nullable NSArray *)audioControlCapabilities hmiSettingsControlCapabilities:(nullable NSArray *)hmiSettingsControlCapabilities lightControlCapabilities:(nullable NSArray *)lightControlCapabilities; - -/** - * If included, the platform supports RC climate controls. - * For this baseline version, maxsize=1. i.e. only one climate control module is supported. - * - * Optional, Array of SDLClimateControlCapabilities, Array length 1 - 100 - */ -@property (nullable, strong, nonatomic) NSArray *climateControlCapabilities; - -/** - * If included, the platform supports RC radio controls. - * For this baseline version, maxsize=1. i.e. only one radio control module is supported. - * - * Optional, Array of SDLRadioControlCapabilities, Array length 1 - 100 - */ -@property (nullable, strong, nonatomic) NSArray *radioControlCapabilities; - -/** - * If included, the platform supports RC button controls with the included button names. - * - * Optional, Array of SDLButtonCapabilities, Array length 1 - 100 - */ -@property (nullable, strong, nonatomic) NSArray *buttonCapabilities; - -/** - * If included, the platform supports seat controls. - * - * Optional, Array of SDLSeatControlCapabilities, Array length 1 - 100 - */ -@property (nullable, strong, nonatomic) NSArray *seatControlCapabilities; - -/** - * If included, the platform supports audio controls. - * - * Optional, Array of SDLAudioControlCapabilities, Array length 1 - 100 - */ -@property (nullable, strong, nonatomic) NSArray *audioControlCapabilities; - -/** - * If included, the platform supports hmi setting controls. - * - * Optional, Array of SDLHMISettingsControlCapabilities, Array length 1 - 100 - */ -@property (nullable, strong, nonatomic) NSArray *hmiSettingsControlCapabilities; - -/** - * If included, the platform supports light controls. - * - * Optional, Array of SDLLightControlCapabilities, Array length 1 - 100 - */ -@property (nullable, strong, nonatomic) NSArray *lightControlCapabilities; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.m deleted file mode 100644 index 47b747a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRemoteControlCapabilities.m +++ /dev/null @@ -1,122 +0,0 @@ -// -// SDLRemoteControlCapabilities.m -// - -#import "SDLAudioControlCapabilities.h" -#import "SDLButtonCapabilities.h" -#import "SDLClimateControlCapabilities.h" -#import "SDLHMISettingsControlCapabilities.h" -#import "SDLLightControlCapabilities.h" -#import "SDLRemoteControlCapabilities.h" -#import "SDLRadioControlCapabilities.h" -#import "SDLSeatControlCapabilities.h" -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLRemoteControlCapabilities - -- (instancetype)initWithClimateControlCapabilities:(nullable NSArray *)climateControlCapabilities radioControlCapabilities:(nullable NSArray *)radioControlCapabilities buttonCapabilities:(nullable NSArray *)buttonCapabilities { - - return [self initWithClimateControlCapabilities:climateControlCapabilities radioControlCapabilities:radioControlCapabilities buttonCapabilities:buttonCapabilities seatControlCapabilities:nil audioControlCapabilities:nil hmiSettingsControlCapabilities:nil lightControlCapabilities:nil]; -} - -- (instancetype)initWithClimateControlCapabilities:(nullable NSArray *)climateControlCapabilities radioControlCapabilities:(nullable NSArray *)radioControlCapabilities buttonCapabilities:(nullable NSArray *)buttonCapabilities seatControlCapabilities:(nullable NSArray *)seatControlCapabilities audioControlCapabilities:(nullable NSArray *)audioControlCapabilities hmiSettingsControlCapabilities:(nullable NSArray *)hmiSettingsControlCapabilities lightControlCapabilities:(nullable NSArray *)lightControlCapabilities { - self = [super init]; - if (!self) { - return nil; - } - - self.climateControlCapabilities = climateControlCapabilities; - self.radioControlCapabilities = radioControlCapabilities; - self.buttonCapabilities = buttonCapabilities; - self.seatControlCapabilities = seatControlCapabilities; - self.audioControlCapabilities = audioControlCapabilities; - self.hmiSettingsControlCapabilities = hmiSettingsControlCapabilities; - self.lightControlCapabilities = lightControlCapabilities; - - return self; -} - -- (void)setClimateControlCapabilities:(nullable NSArray *)climateControlCapabilities { - [self.store sdl_setObject:climateControlCapabilities forName:SDLRPCParameterNameClimateControlCapabilities]; -} - -- (nullable NSArray *)climateControlCapabilities { - return [self.store sdl_objectsForName:SDLRPCParameterNameClimateControlCapabilities ofClass:SDLClimateControlCapabilities.class error:nil]; -} - --(void)setRadioControlCapabilities:(nullable NSArray *)radioControlCapabilities { - [self.store sdl_setObject:radioControlCapabilities forName:SDLRPCParameterNameRadioControlCapabilities ]; -} - -- (nullable NSArray *)radioControlCapabilities { - return [self.store sdl_objectsForName:SDLRPCParameterNameRadioControlCapabilities ofClass:SDLRadioControlCapabilities.class error:nil]; -} - -- (void)setButtonCapabilities:(nullable NSArray *)buttonCapabilities { - [self.store sdl_setObject:buttonCapabilities forName:SDLRPCParameterNameButtonCapabilities];} - -- (nullable NSArray *)buttonCapabilities { - return [self.store sdl_objectsForName:SDLRPCParameterNameButtonCapabilities ofClass:SDLButtonCapabilities.class error:nil]; -} - -- (void)setSeatControlCapabilities:(nullable NSArray *)seatControlCapabilities { - [self.store sdl_setObject:seatControlCapabilities forName:SDLRPCParameterNameSeatControlCapabilities]; -} - -- (nullable NSArray *)seatControlCapabilities { - return [self.store sdl_objectsForName:SDLRPCParameterNameSeatControlCapabilities ofClass:SDLSeatControlCapabilities.class error:nil]; -} - -- (void)setAudioControlCapabilities:(nullable NSArray *)audioControlCapabilities { - [self.store sdl_setObject:audioControlCapabilities forName:SDLRPCParameterNameAudioControlCapabilities]; -} - -- (nullable NSArray *)audioControlCapabilities { - return [self.store sdl_objectsForName:SDLRPCParameterNameAudioControlCapabilities ofClass:SDLAudioControlCapabilities.class error:nil]; - -} - -- (void)setHmiSettingsControlCapabilities:(nullable NSArray *)hmiSettingsControlCapabilities { - // TODO: This parameter should not be an array according to the spec, in a future major version change, this parameter's type should be altered - if (hmiSettingsControlCapabilities.count == 0) { - [self.store sdl_setObject:nil forName:SDLRPCParameterNameHmiSettingsControlCapabilities]; - return; - } - - SDLHMISettingsControlCapabilities *capability = hmiSettingsControlCapabilities.firstObject; - - [self.store sdl_setObject:capability forName:SDLRPCParameterNameHmiSettingsControlCapabilities]; -} - -- (nullable NSArray *)hmiSettingsControlCapabilities { - SDLHMISettingsControlCapabilities *capability = [self.store sdl_objectForName:SDLRPCParameterNameHmiSettingsControlCapabilities ofClass:SDLHMISettingsControlCapabilities.class error:nil]; - if (capability == nil) { return nil; } - - return @[capability]; -} - -- (void)setLightControlCapabilities:(nullable NSArray *)lightControlCapabilities { - // TODO: This parameter should not be an array according to the spec, in a future major version change, this parameter's type should be altered - if (lightControlCapabilities.count == 0) { - [self.store sdl_setObject:nil forName:SDLRPCParameterNameLightControlCapabilities]; - return; - } - - SDLLightControlCapabilities *capability = lightControlCapabilities.firstObject; - - [self.store sdl_setObject:capability forName:SDLRPCParameterNameLightControlCapabilities]; -} - -- (nullable NSArray *)lightControlCapabilities { - SDLLightControlCapabilities *capability = [self.store sdl_objectForName:SDLRPCParameterNameLightControlCapabilities ofClass:SDLLightControlCapabilities.class error:nil]; - if (capability == nil) { return nil; } - - return @[capability]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.h deleted file mode 100644 index 9f56d7b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.h +++ /dev/null @@ -1,121 +0,0 @@ -// SDLRequestType.h -// - - -#import "SDLEnum.h" - -/** - A type of system request. Used in SystemRequest. - */ -typedef SDLEnum SDLRequestType SDL_SWIFT_ENUM; - -/** - An HTTP request - */ -extern SDLRequestType const SDLRequestTypeHTTP; - -/** - A file resumption request - */ -extern SDLRequestType const SDLRequestTypeFileResume; - -/** - An authentication request - */ -extern SDLRequestType const SDLRequestTypeAuthenticationRequest; - -/** - An authentication challenge - */ -extern SDLRequestType const SDLRequestTypeAuthenticationChallenge; - -/** - An authentication acknowledgment - */ -extern SDLRequestType const SDLRequestTypeAuthenticationAck; - -/** - An proprietary formatted request - */ -extern SDLRequestType const SDLRequestTypeProprietary; - -/** - An Query Apps request - */ -extern SDLRequestType const SDLRequestTypeQueryApps; - -/** - A Launch Apps request - */ -extern SDLRequestType const SDLRequestTypeLaunchApp; - -/** - The URL for a lock screen icon - */ -extern SDLRequestType const SDLRequestTypeLockScreenIconURL; - -/** - A traffic message channel request - */ -extern SDLRequestType const SDLRequestTypeTrafficMessageChannel; - -/** - A driver profile request - */ -extern SDLRequestType const SDLRequestTypeDriverProfile; - -/** - A voice search request - */ -extern SDLRequestType const SDLRequestTypeVoiceSearch; - -/** - A navigation request - */ -extern SDLRequestType const SDLRequestTypeNavigation; - -/** - A phone request - */ -extern SDLRequestType const SDLRequestTypePhone; - -/** - A climate request - */ -extern SDLRequestType const SDLRequestTypeClimate; - -/** - A settings request - */ -extern SDLRequestType const SDLRequestTypeSettings; - -/** - A vehicle diagnostics request - */ -extern SDLRequestType const SDLRequestTypeVehicleDiagnostics; - -/** - An emergency request - */ -extern SDLRequestType const SDLRequestTypeEmergency; - -/** - A media request - */ -extern SDLRequestType const SDLRequestTypeMedia; - -/** - A firmware over-the-air request - */ -extern SDLRequestType const SDLRequestTypeFOTA; - -/** - A request that is OEM specific using the `RequestSubType` in SystemRequest - */ -extern SDLRequestType const SDLRequestTypeOEMSpecific; - -/** - A request for an icon url - */ -extern SDLRequestType const SDLRequestTypeIconURL; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.m deleted file mode 100644 index cbc6c7f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLRequestType.m +++ /dev/null @@ -1,28 +0,0 @@ -// SDLRequestType.m -// - - -#import "SDLRequestType.h" - -SDLRequestType const SDLRequestTypeHTTP = @"HTTP"; -SDLRequestType const SDLRequestTypeFileResume = @"FILE_RESUME"; -SDLRequestType const SDLRequestTypeAuthenticationRequest = @"AUTH_REQUEST"; -SDLRequestType const SDLRequestTypeAuthenticationChallenge = @"AUTH_CHALLENGE"; -SDLRequestType const SDLRequestTypeAuthenticationAck = @"AUTH_ACK"; -SDLRequestType const SDLRequestTypeProprietary = @"PROPRIETARY"; -SDLRequestType const SDLRequestTypeQueryApps = @"QUERY_APPS"; -SDLRequestType const SDLRequestTypeLaunchApp = @"LAUNCH_APP"; -SDLRequestType const SDLRequestTypeLockScreenIconURL = @"LOCK_SCREEN_ICON_URL"; -SDLRequestType const SDLRequestTypeTrafficMessageChannel = @"TRAFFIC_MESSAGE_CHANNEL"; -SDLRequestType const SDLRequestTypeDriverProfile = @"DRIVER_PROFILE"; -SDLRequestType const SDLRequestTypeVoiceSearch = @"VOICE_SEARCH"; -SDLRequestType const SDLRequestTypeNavigation = @"NAVIGATION"; -SDLRequestType const SDLRequestTypePhone = @"PHONE"; -SDLRequestType const SDLRequestTypeClimate = @"CLIMATE"; -SDLRequestType const SDLRequestTypeSettings = @"SETTINGS"; -SDLRequestType const SDLRequestTypeVehicleDiagnostics = @"VEHICLE_DIAGNOSTICS"; -SDLRequestType const SDLRequestTypeEmergency = @"EMERGENCY"; -SDLRequestType const SDLRequestTypeMedia = @"MEDIA"; -SDLRequestType const SDLRequestTypeFOTA = @"FOTA"; -SDLRequestType const SDLRequestTypeOEMSpecific = @"OEM_SPECIFIC"; -SDLRequestType const SDLRequestTypeIconURL = @"ICON_URL"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.h deleted file mode 100644 index ddbadb9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.h +++ /dev/null @@ -1,44 +0,0 @@ -// SDLResetGlobalProperties.h -// - - -#import "SDLRPCRequest.h" - -#import "SDLGlobalProperty.h" - -/** - * Resets the passed global properties to their default values as defined by - * SDL - *

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

      - * HMILevel needs to be FULL, LIMITED or BACKGROUND - *

      - * - * Since SmartDeviceLink 1.0 - * See SetGlobalProperties - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLResetGlobalProperties : SDLRPCRequest - -/// Convenience init to reset global properties. -/// -/// @param properties An array of one or more GlobalProperty enumeration elements -/// @return An SDLResetGlobalProperties object -- (instancetype)initWithProperties:(NSArray *)properties; - -/** - * An array of one or more GlobalProperty enumeration elements - * indicating which global properties to reset to their default value - */ -@property (strong, nonatomic) NSArray *properties; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.m deleted file mode 100644 index 8b60852..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalProperties.m +++ /dev/null @@ -1,47 +0,0 @@ -// SDLResetGlobalProperties.m -// - - -#import "SDLResetGlobalProperties.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLGlobalProperty.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLResetGlobalProperties - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameResetGlobalProperties]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithProperties:(NSArray *)properties { - self = [self init]; - if (!self) { - return nil; - } - - self.properties = [properties mutableCopy]; - - return self; -} - -- (void)setProperties:(NSArray *)properties { - [self.parameters sdl_setObject:properties forName:SDLRPCParameterNameProperties]; -} - -- (NSArray *)properties { - NSError *error = nil; - return [self.parameters sdl_enumsForName:SDLRPCParameterNameProperties error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalPropertiesResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalPropertiesResponse.h deleted file mode 100644 index 8e941a7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalPropertiesResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLResetGlobalPropertiesResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to ResetGlobalProperties - - Since SmartDeviceLink 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLResetGlobalPropertiesResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m deleted file mode 100644 index 974b5ef..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLResetGlobalPropertiesResponse.m -// - - -#import "SDLResetGlobalPropertiesResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLResetGlobalPropertiesResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameResetGlobalProperties]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResponseDispatcher.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResponseDispatcher.h deleted file mode 100644 index dae3e64..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResponseDispatcher.h +++ /dev/null @@ -1,82 +0,0 @@ -// -// SDLResponseDispatcher.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/8/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -#import "NSMapTable+Subscripting.h" -#import "SDLNotificationConstants.h" - - -typedef NSNumber SDLRPCCorrelationId; -typedef NSNumber SDLAddCommandCommandId; -typedef NSString SDLSubscribeButtonName; -typedef NSNumber SDLSoftButtonId; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * The SDLResponseDispatcher tracks RPC requests and watches for corresponding responses. When one is seen, it fires a completion handler if one was set. It also stores extra completion handlers for specific types of RPCs such as buttons, and fires those handlers if event notifications for those buttons were sent. - */ -@interface SDLResponseDispatcher : NSObject - -/** - * Holds a map of RPC request correlation ids and corresponding blocks. - */ -@property (strong, nonatomic, readonly) NSMapTable *rpcResponseHandlerMap; - -/** - * Holds a dictionary of RPC request correlation ids and their corresponding RPC request. - */ -@property (strong, nonatomic, readonly) NSMutableDictionary *rpcRequestDictionary; - -/** - * Holds a map of command ids and their corresponding blocks. - */ -@property (strong, nonatomic, readonly) NSMapTable *commandHandlerMap; - -/** - * Holds a map of button names and their corresponding blocks. - */ -@property (strong, nonatomic, readonly) NSMapTable *buttonHandlerMap; - -/** - * Holds a map of soft button ids and their corresponding blocks. - */ -@property (strong, nonatomic, readonly) NSMapTable *customButtonHandlerMap; - -/** - * Holds an audio pass thru block. - */ -@property (strong, nonatomic, readonly, nullable) SDLAudioPassThruHandler audioPassThruHandler; - -/** - * Create a new response dispatcher. - * - * @param dispatcher A notification dispatcher to watch only its notifications. - * - * @return An instance of `SDLResponseDispatcher`. - */ -- (instancetype)initWithNotificationDispatcher:(nullable id)dispatcher NS_DESIGNATED_INITIALIZER; - -/** - * Store an RPC request to later call that handler. This will also store the command or button handlers on the RPC request if they exist. - * - * @param request The RPC request to track. - * @param handler The handler to invoke when a corresponding response returns. - */ -- (void)storeRequest:(SDLRPCRequest *)request handler:(nullable SDLResponseHandler)handler; - -/** - * Clear all maps and dictionaries of objects. - */ -- (void)clear; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResponseDispatcher.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResponseDispatcher.m deleted file mode 100644 index 7c59566..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResponseDispatcher.m +++ /dev/null @@ -1,413 +0,0 @@ -// -// SDLResponseDispatcher.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/8/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLResponseDispatcher.h" - -#import "NSMutableArray+Safe.h" -#import "NSMutableDictionary+SafeRemove.h" -#import "SDLAddCommand.h" -#import "SDLAlert.h" -#import "SDLButtonName.h" -#import "SDLDeleteCommand.h" -#import "SDLDeleteCommandResponse.h" -#import "SDLError.h" -#import "SDLGlobals.h" -#import "SDLLogMacros.h" -#import "SDLOnAudioPassThru.h" -#import "SDLOnButtonEvent.h" -#import "SDLOnButtonPress.h" -#import "SDLOnCommand.h" -#import "SDLPerformAudioPassThru.h" -#import "SDLPerformAudioPassThruResponse.h" -#import "SDLRPCResponse.h" -#import "SDLResult.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCResponseNotification.h" -#import "SDLScrollableMessage.h" -#import "SDLShow.h" -#import "SDLSoftButton.h" -#import "SDLSubscribeButton.h" -#import "SDLUnsubscribeButton.h" -#import "SDLUnsubscribeButtonResponse.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLResponseDispatcher () - -@property (copy, nonatomic) dispatch_queue_t readWriteQueue; - -@property (strong, nonatomic, readwrite) NSMapTable *rpcResponseHandlerMap; -@property (strong, nonatomic, readwrite) NSMutableDictionary *rpcRequestDictionary; -@property (strong, nonatomic, readwrite) NSMapTable *commandHandlerMap; -@property (strong, nonatomic, readwrite) NSMapTable *buttonHandlerMap; -@property (strong, nonatomic, readwrite) NSMapTable *customButtonHandlerMap; -@property (strong, nonatomic, readwrite, nullable) SDLAudioPassThruHandler audioPassThruHandler; - -@end - - -// https://www.objc.io/issues/2-concurrency/low-level-concurrency-apis/#multiple-readers-single-writer -@implementation SDLResponseDispatcher - -- (instancetype)init { - return [self initWithNotificationDispatcher:nil]; -} - -- (instancetype)initWithNotificationDispatcher:(nullable id)dispatcher { - self = [super init]; - if (!self) { - return nil; - } - - if (@available(iOS 10.0, *)) { - _readWriteQueue = dispatch_queue_create_with_target("com.sdl.lifecycle.responseDispatcher", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); - } else { - _readWriteQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; - } - - _rpcResponseHandlerMap = [NSMapTable mapTableWithKeyOptions:NSMapTableCopyIn valueOptions:NSMapTableCopyIn]; - _rpcRequestDictionary = [NSMutableDictionary dictionary]; - _commandHandlerMap = [NSMapTable mapTableWithKeyOptions:NSMapTableCopyIn valueOptions:NSMapTableCopyIn]; - _buttonHandlerMap = [NSMapTable mapTableWithKeyOptions:NSMapTableCopyIn valueOptions:NSMapTableCopyIn]; - _customButtonHandlerMap = [NSMapTable mapTableWithKeyOptions:NSMapTableCopyIn valueOptions:NSMapTableCopyIn]; - - // Responses - for (SDLNotificationName responseName in [SDLNotificationConstants allResponseNames]) { - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_runHandlersForResponse:) name:responseName object:dispatcher]; - } - - // Buttons - for (SDLNotificationName buttonNotificationName in [SDLNotificationConstants allButtonEventNotifications]) { - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_runHandlerForButton:) name:buttonNotificationName object:dispatcher]; - } - - // Commands - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_runHandlerForCommand:) name:SDLDidReceiveCommandNotification object:dispatcher]; - - // Audio Pass Thru - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_runHandlerForAudioPassThru:) name:SDLDidReceiveAudioPassThruNotification object:dispatcher]; - - return self; -} - - -#pragma mark - Storage - -- (void)storeRequest:(SDLRPCRequest *)request handler:(nullable SDLResponseHandler)handler { - __weak typeof(self) weakself = self; - NSNumber *correlationId = request.correlationID; - - // Check for RPCs that require an extra handler - if ([request isKindOfClass:[SDLAddCommand class]]) { - SDLAddCommand *addCommand = (SDLAddCommand *)request; - if (addCommand.cmdID == nil) { - @throw [NSException sdl_missingIdException]; - } - if (addCommand.handler != nil) { - [self sdl_runAsyncOnQueue:^{ - __strong typeof(weakself) strongself = weakself; - strongself->_commandHandlerMap[addCommand.cmdID] = addCommand.handler; - }]; - } - } else if ([request isKindOfClass:[SDLSubscribeButton class]]) { - // Convert SDLButtonName to NSString, since it doesn't conform to - SDLSubscribeButton *subscribeButton = (SDLSubscribeButton *)request; - SDLButtonName buttonName = subscribeButton.buttonName; - if (buttonName == nil) { - @throw [NSException sdl_missingIdException]; - } - if (subscribeButton.handler != nil) { - [self sdl_runAsyncOnQueue:^{ - __strong typeof(weakself) strongself = weakself; - strongself->_buttonHandlerMap[buttonName] = subscribeButton.handler; - }]; - } - } else if ([request isKindOfClass:[SDLAlert class]]) { - SDLAlert *alert = (SDLAlert *)request; - [self sdl_addToCustomButtonHandlerMap:alert.softButtons]; - } else if ([request isKindOfClass:[SDLScrollableMessage class]]) { - SDLScrollableMessage *scrollableMessage = (SDLScrollableMessage *)request; - [self sdl_addToCustomButtonHandlerMap:scrollableMessage.softButtons]; - } else if ([request isKindOfClass:[SDLShow class]]) { - SDLShow *show = (SDLShow *)request; - [self sdl_addToCustomButtonHandlerMap:show.softButtons]; - } else if ([request isKindOfClass:[SDLPerformAudioPassThru class]]) { - SDLPerformAudioPassThru *performAudioPassThru = (SDLPerformAudioPassThru *)request; - - [self sdl_runAsyncOnQueue:^{ - __strong typeof(weakself) strongself = weakself; - strongself->_audioPassThruHandler = performAudioPassThru.audioDataHandler; - }]; - } - - // Always store the request, it's needed in some cases whether or not there was a handler (e.g. DeleteCommand). - [self sdl_runAsyncOnQueue:^{ - __strong typeof(weakself) strongself = weakself; - - strongself->_rpcRequestDictionary[correlationId] = request; - if (handler != nil) { - strongself->_rpcResponseHandlerMap[correlationId] = handler; - } - }]; -} - -- (void)clear { - __weak typeof(self) weakself = self; - - __block NSArray *handlers = nil; - __block NSArray *requests = nil; - [self sdl_runSyncOnQueue:^{ - __strong typeof(weakself) strongself = weakself; - NSMutableArray *handlerArray = [NSMutableArray array]; - NSMutableArray *requestArray = [NSMutableArray array]; - - // When we get disconnected we have to delete all existing responseHandlers as they are not valid anymore - for (SDLRPCCorrelationId *correlationID in strongself->_rpcResponseHandlerMap.dictionaryRepresentation) { - SDLResponseHandler responseHandler = strongself->_rpcResponseHandlerMap[correlationID]; - SDLRPCRequest *request = strongself->_rpcRequestDictionary[correlationID]; - - if (responseHandler != NULL) { - [handlerArray addObject:responseHandler]; - [requestArray addObject:request]; - } - } - - handlers = [handlerArray copy]; - requests = [requestArray copy]; - }]; - - for (NSUInteger i = 0; i < handlers.count; i++) { - SDLResponseHandler responseHandler = handlers[i]; - SDLRPCRequest *request = requests[i]; - - responseHandler(request, nil, [NSError sdl_lifecycle_notConnectedError]); - } - - [self sdl_runAsyncOnQueue:^{ - __strong typeof(weakself) strongself = weakself; - - [strongself->_rpcRequestDictionary removeAllObjects]; - [strongself->_rpcResponseHandlerMap removeAllObjects]; - [strongself->_commandHandlerMap removeAllObjects]; - [strongself->_buttonHandlerMap removeAllObjects]; - [strongself->_customButtonHandlerMap removeAllObjects]; - strongself->_audioPassThruHandler = nil; - }]; -} - -- (void)sdl_addToCustomButtonHandlerMap:(NSArray *)softButtons { - __weak typeof(self) weakself = self; - for (SDLSoftButton *sb in softButtons) { - if (sb.softButtonID == nil) { - @throw [NSException sdl_missingIdException]; - } - - if (sb.handler != nil) { - [self sdl_runAsyncOnQueue:^{ - __strong typeof(weakself) strongself = weakself; - strongself->_customButtonHandlerMap[sb.softButtonID] = sb.handler; - }]; - } - } -} - - -#pragma mark - Notification Handler - -// Called by notifications -- (void)sdl_runHandlersForResponse:(SDLRPCResponseNotification *)notification { - __weak typeof(self) weakself = self; - if (![notification isResponseKindOfClass:[SDLRPCResponse class]]) { - return; - } - - __kindof SDLRPCResponse *response = notification.response; - - NSError *error = nil; - if (!response.success.boolValue) { - error = [NSError sdl_lifecycle_rpcErrorWithDescription:response.resultCode andReason:response.info]; - } - - __block SDLResponseHandler handler = nil; - __block SDLRPCRequest *request = nil; - [self sdl_runSyncOnQueue:^{ - handler = self->_rpcResponseHandlerMap[response.correlationID]; - request = self->_rpcRequestDictionary[response.correlationID]; - }]; - - // Find the appropriate request completion handler, remove the request and response handler - [self sdl_runAsyncOnQueue:^{ - __strong typeof(weakself) strongself = weakself; - [strongself->_rpcRequestDictionary safeRemoveObjectForKey:response.correlationID]; - [strongself->_rpcResponseHandlerMap safeRemoveObjectForKey:response.correlationID]; - - // If we errored on the response, the delete / unsubscribe was unsuccessful - if (error == nil) { - // If it's a DeleteCommand, UnsubscribeButton, or PerformAudioPassThru we need to remove handlers for the corresponding RPCs - if ([response isKindOfClass:[SDLDeleteCommandResponse class]]) { - SDLDeleteCommand *deleteCommandRequest = (SDLDeleteCommand *)request; - NSNumber *deleteCommandId = deleteCommandRequest.cmdID; - [strongself->_commandHandlerMap safeRemoveObjectForKey:deleteCommandId]; - } else if ([response isKindOfClass:[SDLUnsubscribeButtonResponse class]]) { - SDLUnsubscribeButton *unsubscribeButtonRequest = (SDLUnsubscribeButton *)request; - SDLButtonName unsubscribeButtonName = unsubscribeButtonRequest.buttonName; - [strongself->_buttonHandlerMap safeRemoveObjectForKey:unsubscribeButtonName]; - } else if ([response isKindOfClass:[SDLPerformAudioPassThruResponse class]]) { - strongself->_audioPassThruHandler = nil; - } - } - - dispatch_async([SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ - // Run the response handler - if (handler) { - if (!response.success.boolValue) { - SDLLogW(@"Request failed: %@, response: %@, error: %@", request, response, error); - } - handler(request, response, error); - } - }); - }]; -} - -#pragma mark Command - -- (void)sdl_runHandlerForCommand:(SDLRPCNotificationNotification *)notification { - SDLOnCommand *onCommandNotification = notification.notification; - - SDLRPCCommandNotificationHandler handler = self.commandHandlerMap[onCommandNotification.cmdID]; - if (handler != nil) { - handler(onCommandNotification); - } -} - -#pragma mark Button - -- (void)sdl_runHandlerForButton:(SDLRPCNotificationNotification *)notification { - __kindof SDLRPCNotification *rpcNotification = notification.notification; - SDLButtonName name = nil; - NSNumber *customID = nil; - - if ([rpcNotification isMemberOfClass:[SDLOnButtonEvent class]]) { - name = ((SDLOnButtonEvent *)rpcNotification).buttonName; - customID = ((SDLOnButtonEvent *)rpcNotification).customButtonID; - } else if ([rpcNotification isMemberOfClass:[SDLOnButtonPress class]]) { - name = ((SDLOnButtonPress *)rpcNotification).buttonName; - customID = ((SDLOnButtonPress *)rpcNotification).customButtonID; - } else { - return; - } - - SDLRPCButtonNotificationHandler handler = nil; - if ([name isEqualToEnum:SDLButtonNameCustomButton]) { - // Custom buttons - handler = self.customButtonHandlerMap[customID]; - } else { - // Static buttons - handler = self.buttonHandlerMap[name]; - } - - if (handler == nil) { - return; - } - - if ([rpcNotification isMemberOfClass:[SDLOnButtonEvent class]]) { - handler(nil, rpcNotification); - } else if ([rpcNotification isMemberOfClass:[SDLOnButtonPress class]]) { - handler(rpcNotification, nil); - } -} - -#pragma mark Audio Pass Thru - -- (void)sdl_runHandlerForAudioPassThru:(SDLRPCNotificationNotification *)notification { - SDLOnAudioPassThru *onAudioPassThruNotification = notification.notification; - - SDLAudioPassThruHandler handler = self.audioPassThruHandler; - if (handler != nil) { - handler(onAudioPassThruNotification.bulkData); - } -} - -#pragma mark Utilities - -- (void)sdl_runSyncOnQueue:(void (^)(void))block { - if (dispatch_get_specific(SDLProcessingQueueName) != nil) { - block(); - } else { - dispatch_sync(self.readWriteQueue, block); - } -} - -- (void)sdl_runAsyncOnQueue:(void (^)(void))block { - if (dispatch_get_specific(SDLProcessingQueueName) != nil) { - block(); - } else { - dispatch_async(self.readWriteQueue, block); - } -} - -#pragma mark Getters - -- (NSMapTable *)rpcResponseHandlerMap { - __block NSMapTable *map = nil; - [self sdl_runSyncOnQueue:^{ - map = self->_rpcResponseHandlerMap; - }]; - - return map; -} - -- (NSMutableDictionary *)rpcRequestDictionary { - __block NSMutableDictionary *dict = nil; - [self sdl_runSyncOnQueue:^{ - dict = self->_rpcRequestDictionary; - }]; - - return dict; -} - -- (NSMapTable *)commandHandlerMap { - __block NSMapTable *map = nil; - [self sdl_runSyncOnQueue:^{ - map = self->_commandHandlerMap; - }]; - - return map; -} - -- (NSMapTable *)buttonHandlerMap { - __block NSMapTable *map = nil; - [self sdl_runSyncOnQueue:^{ - map = self->_buttonHandlerMap; - }]; - - return map; -} - -- (NSMapTable *)customButtonHandlerMap { - __block NSMapTable *map = nil; - [self sdl_runSyncOnQueue:^{ - map = self->_customButtonHandlerMap; - }]; - - return map; -} - -- (nullable SDLAudioPassThruHandler)audioPassThruHandler { - __block SDLAudioPassThruHandler audioPassThruHandler = nil; - [self sdl_runSyncOnQueue:^{ - audioPassThruHandler = self->_audioPassThruHandler; - }]; - - return audioPassThruHandler; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.h deleted file mode 100644 index dd96610..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.h +++ /dev/null @@ -1,215 +0,0 @@ -// SDLResult.h -// - - -#import "SDLEnum.h" - -/** - * Defines the possible result codes returned by SDL to the application in a response to a requested operation. Used in RPC responses - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLResult SDL_SWIFT_ENUM; - -/** - * The request succeeded - */ -extern SDLResult const SDLResultSuccess; - -/** - The request contained invalid data - - The data sent is invalid. For example: - - Invalid JSON syntax - - Parameters out of bounds (number or enum range) - - Mandatory parameters not provided - - Parameter provided with wrong type - - Invalid characters - - Empty string - */ -extern SDLResult const SDLResultInvalidData; - -/** - The request had a string containing too many characters - */ -extern SDLResult const SDLResultCharacterLimitExceeded; - -/** - The request is not supported by the IVI unit implementing SDL - */ -extern SDLResult const SDLResultUnsupportedRequest; - -/** - The system could not process the request because the necessary memory couldn't be allocated - */ -extern SDLResult const SDLResultOutOfMemory; - -/** - There are too many requests pending (means that the response has not been delivered yet). - - There is a limit of 1000 pending requests at a time. - */ -extern SDLResult const SDLResultTooManyPendingRequests; - -/** - One of the provided IDs is not valid. - - For example: CorrelationID, CommandID, MenuID - */ -extern SDLResult const SDLResultInvalidId; - -/** - The provided name or synonym is a duplicate of some already-defined name or synonym. - */ -extern SDLResult const SDLResultDuplicateName; - -/** - There are already too many registered applications. - */ -extern SDLResult const SDLResultTooManyApplications; - -/** - RegisterAppInterface has been called, but this app is already registered - */ -extern SDLResult const SDLResultApplicationRegisteredAlready; - -/** - The Head Unit doesn't support the SDL version that is requested by the mobile application. - */ -extern SDLResult const SDLResultUnsupportedVersion; - -/** - The requested language is currently not supported. This might be because of a mismatch of the currently active language on the head unit and the requested language. - */ -extern SDLResult const SDLResultWrongLanguage; - -/** - A command can not be executed because no application has been registered with RegisterApplication. - */ -extern SDLResult const SDLResultApplicationNotRegistered; - -/** - The data may not be changed, because it is currently in use. For example when trying to delete a choice set that is currently involved in an interaction. - */ -extern SDLResult const SDLResultInUse; - -/** - The user has turned off access to vehicle data, and it is globally unavailable to mobile applications. - */ -extern SDLResult const SDLResultVehicleDataNotAllowed; - -/** - The requested vehicle data is not available on this vehicle or is not published. - */ -extern SDLResult const SDLResultVehicleDataNotAvailable; - -/** - The requested command was rejected, e.g. because the mobile app is in background and cannot perform any HMI commands, or an HMI command (e.g. Speak) is rejected because a higher priority HMI command (e.g. Alert) is playing. - */ -extern SDLResult const SDLResultRejected; - -/** - A command was aborted, e.g. due to user interaction (user pressed button), or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested. - */ -extern SDLResult const SDLResultAborted; - -/** - A command was ignored, because the intended result is already in effect. For example, SetMediaClockTimer was used to pause the media clock although the clock is paused already. - */ -extern SDLResult const SDLResultIgnored; - -/** - A button that was requested for subscription is not supported under the current system. - */ -extern SDLResult const SDLResultUnsupportedResource; - -/** - A specified file could not be found on the head unit. - */ -extern SDLResult const SDLResultFileNotFound; - -/** - Provided data is valid but something went wrong in the lower layers. - */ -extern SDLResult const SDLResultGenericError; - -/** - RPC is not authorized in local policy table. - */ -extern SDLResult const SDLResultDisallowed; - -/** - RPC is included in a functional group explicitly blocked by the user. - */ -extern SDLResult const SDLResultUserDisallowed; - -/** - * Overlay reached the maximum timeout and closed. - */ -extern SDLResult const SDLResultTimedOut; - -/** - * User selected to Cancel Route. - */ -extern SDLResult const SDLResultCancelRoute; - -/** - * The data sent failed to pass CRC check in receiver end. - */ -extern SDLResult const SDLResultCorruptedData; - -/** - The RPC (e.g. ReadDID) executed successfully but the data exceeded the platform maximum threshold and thus, only part of the data is available. - */ -extern SDLResult const SDLResultTruncatedData; - -/** - The user interrupted the RPC (e.g. PerformAudioPassThru) and indicated to start over. Note, the app must issue the new RPC. - */ -extern SDLResult const SDLResultRetry; - -/** - The RPC (e.g. SubscribeVehicleData) executed successfully but one or more items have a warning or failure. - */ -extern SDLResult const SDLResultWarnings; - -/** - The RPC (e.g. Slider) executed successfully and the user elected to save the current position / value. - */ -extern SDLResult const SDLResultSaved; - -/** - The certificate provided during authentication is invalid. - */ -extern SDLResult const SDLResultInvalidCertificate; - -/** - The certificate provided during authentication is expired. - */ -extern SDLResult const SDLResultExpiredCertificate; - -/** - The provided hash ID does not match the hash of the current set of registered data or the core could not resume the previous data. - */ -extern SDLResult const SDLResultResumeFailed; - -/** - The requested data is not available on this vehicle or is not published for the connected app. - */ -extern SDLResult const SDLResultDataNotAvailable; - -/** - The requested data is read only thus cannot be change via remote control . - */ -extern SDLResult const SDLResultReadOnly; - -/** - The RPC request needs to be encrypted. - */ -extern SDLResult const SDLResultEncryptionNeeded; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.m deleted file mode 100644 index 234fb4e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLResult.m +++ /dev/null @@ -1,43 +0,0 @@ -// SDLResult.m -// - - -#import "SDLResult.h" - -SDLResult const SDLResultSuccess = @"SUCCESS"; -SDLResult const SDLResultInvalidData = @"INVALID_DATA"; -SDLResult const SDLResultCharacterLimitExceeded = @"CHAR_LIMIT_EXCEEDED"; -SDLResult const SDLResultUnsupportedRequest = @"UNSUPPORTED_REQUEST"; -SDLResult const SDLResultOutOfMemory = @"OUT_OF_MEMORY"; -SDLResult const SDLResultTooManyPendingRequests = @"TOO_MANY_PENDING_REQUESTS"; -SDLResult const SDLResultInvalidId = @"INVALID_ID"; -SDLResult const SDLResultDuplicateName = @"DUPLICATE_NAME"; -SDLResult const SDLResultTooManyApplications = @"TOO_MANY_APPLICATIONS"; -SDLResult const SDLResultApplicationRegisteredAlready = @"APPLICATION_REGISTERED_ALREADY"; -SDLResult const SDLResultUnsupportedVersion = @"UNSUPPORTED_VERSION"; -SDLResult const SDLResultWrongLanguage = @"WRONG_LANGUAGE"; -SDLResult const SDLResultApplicationNotRegistered = @"APPLICATION_NOT_REGISTERED"; -SDLResult const SDLResultInUse = @"IN_USE"; -SDLResult const SDLResultVehicleDataNotAllowed = @"VEHICLE_DATA_NOT_ALLOWED"; -SDLResult const SDLResultVehicleDataNotAvailable = @"VEHICLE_DATA_NOT_AVAILABLE"; -SDLResult const SDLResultRejected = @"REJECTED"; -SDLResult const SDLResultAborted = @"ABORTED"; -SDLResult const SDLResultIgnored = @"IGNORED"; -SDLResult const SDLResultUnsupportedResource = @"UNSUPPORTED_RESOURCE"; -SDLResult const SDLResultFileNotFound = @"FILE_NOT_FOUND"; -SDLResult const SDLResultGenericError = @"GENERIC_ERROR"; -SDLResult const SDLResultDisallowed = @"DISALLOWED"; -SDLResult const SDLResultUserDisallowed = @"USER_DISALLOWED"; -SDLResult const SDLResultTimedOut = @"TIMED_OUT"; -SDLResult const SDLResultCancelRoute = @"CANCEL_ROUTE"; -SDLResult const SDLResultCorruptedData = @"CORRUPTED_DATA"; -SDLResult const SDLResultTruncatedData = @"TRUNCATED_DATA"; -SDLResult const SDLResultRetry = @"RETRY"; -SDLResult const SDLResultWarnings = @"WARNINGS"; -SDLResult const SDLResultSaved = @"SAVED"; -SDLResult const SDLResultInvalidCertificate = @"INVALID_CERT"; -SDLResult const SDLResultExpiredCertificate = @"EXPIRED_CERT"; -SDLResult const SDLResultResumeFailed = @"RESUME_FAILED"; -SDLResult const SDLResultDataNotAvailable = @"DATA_NOT_AVAILABLE"; -SDLResult const SDLResultReadOnly = @"READ_ONLY"; -SDLResult const SDLResultEncryptionNeeded = @"ENCRYPTION_NEEDED"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.h deleted file mode 100644 index 1d645eb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.h +++ /dev/null @@ -1,69 +0,0 @@ -// SDLSISData.h -// - -#import "SDLRPCMessage.h" - -@class SDLStationIDNumber; -@class SDLGPSData; - -/** - * HD radio Station Information Service (SIS) data. - * - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSISData : SDLRPCStruct - -/// Convenience init to SISData -/// -/// @param stationShortName Identifies the 4-alpha-character station call sign -/// @param id A SDLStationIDNumber -/// @param stationLongName Identifies the station call sign or other identifying -/// @param stationLocation Provides the 3-dimensional geographic station location -/// @param stationMessage May be used to convey textual information of general interest -/// @return An SDLSISData object -- (instancetype)initWithStationShortName:(nullable NSString *)stationShortName stationIDNumber:(nullable SDLStationIDNumber *)id stationLongName:(nullable NSString *)stationLongName stationLocation:(nullable SDLGPSData *)stationLocation stationMessage:(nullable NSString *)stationMessage; - -/** - * @abstract Identifies the 4-alpha-character station call sign - * plus an optional (-FM) extension - * - * Optional, String, minLength: 4characters maxlength: 7characters - */ -@property (nullable, strong, nonatomic) NSString *stationShortName; - -/** - * @abstract Used for network Application. - * Consists of Country Code and FCC Facility ID. - * - * Optional, SDLStationIDNumber type - */ -@property (nullable, strong, nonatomic) SDLStationIDNumber *stationIDNumber; - -/** - * @abstract Identifies the station call sign or other identifying - * information in the long format. - * - * Optional, String, minLength: 0characters maxlength: 56characters - */ -@property (nullable, strong, nonatomic) NSString *stationLongName; - -/** - * @abstract Provides the 3-dimensional geographic station location - * - * Optional, SDLGPSData type - */ -@property (nullable, strong, nonatomic) SDLGPSData *stationLocation; - -/** - * @abstract May be used to convey textual information of general interest - * to the consumer such as weather forecasts or public service announcements. - * - * Optional, String, minLength: 0characters maxlength: 56characters - */ -@property (nullable, strong, nonatomic) NSString *stationMessage; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.m deleted file mode 100644 index c0ff47c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSISData.m +++ /dev/null @@ -1,72 +0,0 @@ -// SDLSISData.m -// - -#import "SDLSISData.h" - -#import "SDLStationIDNumber.h" -#import "SDLGPSData.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSISData - -- (instancetype)initWithStationShortName:(nullable NSString *)stationShortName stationIDNumber:(nullable SDLStationIDNumber *)stationIDNumber stationLongName:(nullable NSString *)stationLongName stationLocation:(nullable SDLGPSData *)stationLocation stationMessage:(nullable NSString *)stationMessage { - self = [self init]; - if(!self) { - return nil; - } - self.stationShortName = stationShortName; - self.stationIDNumber = stationIDNumber; - self.stationLongName = stationLongName; - self.stationLocation = stationLocation; - self.stationMessage = stationMessage; - - return self; -} - -- (void)setStationShortName:(nullable NSString *)stationShortName { - [self.store sdl_setObject:stationShortName forName:SDLRPCParameterNameStationShortName]; -} - -- (nullable NSString *)stationShortName { - return [self.store sdl_objectForName:SDLRPCParameterNameStationShortName ofClass:NSString.class error:nil]; -} - -- (void)setStationIDNumber:(nullable SDLStationIDNumber *)stationIDNumber { - [self.store sdl_setObject:stationIDNumber forName:SDLRPCParameterNameStationIDNumber]; -} - -- (nullable SDLStationIDNumber *)stationIDNumber { - return [self.store sdl_objectForName:SDLRPCParameterNameStationIDNumber ofClass:SDLStationIDNumber.class error:nil]; -} - -- (void)setStationLongName:(nullable NSString *)stationLongName { - [self.store sdl_setObject:stationLongName forName:SDLRPCParameterNameStationLongName]; -} - -- (nullable NSString *)stationLongName { - return [self.store sdl_objectForName:SDLRPCParameterNameStationLongName ofClass:NSString.class error:nil];; -} - -- (void)setStationLocation:(nullable SDLGPSData *)stationLocation { - [self.store sdl_setObject:stationLocation forName:SDLRPCParameterNameStationLocation]; -} - -- (nullable SDLGPSData *)stationLocation { - return [self.store sdl_objectForName:SDLRPCParameterNameStationLocation ofClass:SDLGPSData.class error:nil]; -} - -- (void)setStationMessage:(nullable NSString *)stationMessage { - [self.store sdl_setObject:stationMessage forName:SDLRPCParameterNameStationMessage]; -} - -- (nullable NSString *)stationMessage { - return [self.store sdl_objectForName:SDLRPCParameterNameStationMessage ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSamplingRate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSamplingRate.h deleted file mode 100644 index 4db452d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSamplingRate.h +++ /dev/null @@ -1,32 +0,0 @@ -// SDLSamplingRate.h -// - - -#import "SDLEnum.h" - -/** - Describes different sampling rates for PerformAudioPassThru and AudioPassThruCapabilities - - @since SDL 2.0 - */ -typedef SDLEnum SDLSamplingRate SDL_SWIFT_ENUM; - -/** - Sampling rate of 8 kHz - */ -extern SDLSamplingRate const SDLSamplingRate8KHZ; - -/** - * Sampling rate of 16 kHz - */ -extern SDLSamplingRate const SDLSamplingRate16KHZ; - -/** - * Sampling rate of 22 kHz - */ -extern SDLSamplingRate const SDLSamplingRate22KHZ; - -/** - * Sampling rate of 44 kHz - */ -extern SDLSamplingRate const SDLSamplingRate44KHZ; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSamplingRate.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSamplingRate.m deleted file mode 100644 index 6858e6e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSamplingRate.m +++ /dev/null @@ -1,10 +0,0 @@ -// SDLSamplingRate.m -// - - -#import "SDLSamplingRate.h" - -SDLSamplingRate const SDLSamplingRate8KHZ = @"8KHZ"; -SDLSamplingRate const SDLSamplingRate16KHZ = @"16KHZ"; -SDLSamplingRate const SDLSamplingRate22KHZ = @"22KHZ"; -SDLSamplingRate const SDLSamplingRate44KHZ = @"44KHZ"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.h deleted file mode 100644 index a08d3b4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.h +++ /dev/null @@ -1,374 +0,0 @@ -// -// SDLScreenManager.h -// SmartDeviceLink -// -// Created by Joel Fischer on 3/5/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "NSNumber+NumberType.h" -#import "SDLButtonName.h" -#import "SDLInteractionMode.h" -#import "SDLMenuManagerConstants.h" -#import "SDLMetadataType.h" -#import "SDLNotificationConstants.h" -#import "SDLTextAlignment.h" - -@class SDLArtwork; -@class SDLChoiceCell; -@class SDLChoiceSet; -@class SDLFileManager; -@class SDLKeyboardProperties; -@class SDLMenuCell; -@class SDLMenuConfiguration; -@class SDLOnButtonEvent; -@class SDLOnButtonPress; -@class SDLSoftButtonObject; -@class SDLSystemCapabilityManager; -@class SDLVoiceCommand; - -@protocol SDLConnectionManagerType; -@protocol SDLChoiceSetDelegate; -@protocol SDLKeyboardDelegate; - -NS_ASSUME_NONNULL_BEGIN - -/** - The handler run when the update has completed - - @param error An error if the update failed and an error occurred - */ -typedef void(^SDLScreenManagerUpdateCompletionHandler)(NSError *__nullable error); - -/** - Return an error with userinfo [key: SDLChoiceCell, value: NSError] if choices failed to upload - - @param error The error if one occurred - */ -typedef void(^SDLPreloadChoiceCompletionHandler)(NSError *__nullable error); - -/// A handler run when the subscribe button has been selected -/// -/// @param buttonPress Indicates whether this is a long or short button press event -/// @param buttonEvent Indicates that the button has been depressed or released -/// @param error The error if one occurred -typedef void (^SDLSubscribeButtonHandler)(SDLOnButtonPress *_Nullable buttonPress, SDLOnButtonEvent *_Nullable buttonEvent, NSError *_Nullable error); - -/// The SDLScreenManager is a manager to control SDL UI features. Use the screen manager for setting up the UI of the template, creating a menu for your users, creating softbuttons, setting textfields, etc.. -@interface SDLScreenManager : NSObject - -#pragma mark Text and Graphics - -/** - The top text field within a template layout - */ -@property (copy, nonatomic, nullable) NSString *textField1; - -/** - The second text field within a template layout - */ -@property (copy, nonatomic, nullable) NSString *textField2; - -/** - The third text field within a template layout - */ -@property (copy, nonatomic, nullable) NSString *textField3; - -/** - The fourth text field within a template layout - */ -@property (copy, nonatomic, nullable) NSString *textField4; - -/** - The media text field available within the media layout. Often less emphasized than textField(1-4) - */ -@property (copy, nonatomic, nullable) NSString *mediaTrackTextField; - -/** - The primary graphic within a template layout - */ -@property (strong, nonatomic, nullable) SDLArtwork *primaryGraphic; - -/** - A secondary graphic used in some template layouts - */ -@property (strong, nonatomic, nullable) SDLArtwork *secondaryGraphic; - -/** - What alignment textField(1-4) should use - */ -@property (copy, nonatomic) SDLTextAlignment textAlignment; - -/** - The type of data textField1 describes - */ -@property (copy, nonatomic, nullable) SDLMetadataType textField1Type; - -/** - The type of data textField2 describes - */ -@property (copy, nonatomic, nullable) SDLMetadataType textField2Type; - -/** - The type of data textField3 describes - */ -@property (copy, nonatomic, nullable) SDLMetadataType textField3Type; - -/** - The type of data textField4 describes - */ -@property (copy, nonatomic, nullable) SDLMetadataType textField4Type; - -/** - The title of the current template layout. - */ -@property (copy, nonatomic, nullable) NSString *title; - -#pragma mark Soft Buttons - -/** - The current list of soft buttons within a template layout. Set this array to change the displayed soft buttons. - */ -@property (copy, nonatomic) NSArray *softButtonObjects; - -#pragma mark Menu - -/** - Configures the layout of the menu and sub-menus. If set after a menu already exists, the existing main menu layout will be updated. - - If set menu layouts don't match available menu layouts in WindowCapability, an error log will be emitted and the layout will not be set. - - Setting this parameter will send a message to the remote system. This value will be set immediately, but if that message is rejected, the original value will be re-set and an error log will be emitted. - - This only works on head units supporting RPC spec version 6.0 and newer. If the connected head unit does not support this feature, a warning log will be emitted and nothing will be set. - */ -@property (strong, nonatomic) SDLMenuConfiguration *menuConfiguration; - -/** - The current list of menu cells displayed in the app's menu. - */ -@property (copy, nonatomic) NSArray *menu; - -/** -Change the mode of the dynamic menu updater to be enabled, disabled, or enabled on known compatible head units. - -The current status for dynamic menu updates. A dynamic menu update allows for smarter building of menu changes. If this status is set to `SDLDynamicMenuUpdatesModeForceOn`, menu updates will only create add commands for new items and delete commands for items no longer appearing in the menu. This helps reduce possible RPCs failures as there will be significantly less commands sent to the HMI. - -If set to `SDLDynamicMenuUpdatesModeForceOff`, menu updates will work the legacy way. This means when a new menu is set the entire old menu is deleted and add commands are created for every item regarldess if the item appears in both the old and new menu. This method is RPCs heavy and may cause some failures when creating and updating large menus. - - We recommend using either `SDLDynamicMenuUpdatesModeOnWithCompatibility` or `SDLDynamicMenuUpdatesModeForceOn`. `SDLDynamicMenuUpdatesModeOnWithCompatibility` turns dynamic updates off for head units that we know have poor compatibility with dynamic updates (e.g. they have bugs that cause menu items to not be placed correctly). - */ -@property (assign, nonatomic) SDLDynamicMenuUpdatesMode dynamicMenuUpdatesMode; - -/** - The current list of voice commands available for the user to speak and be recognized by the IVI's voice recognition engine. - */ -@property (copy, nonatomic) NSArray *voiceCommands; - -#pragma mark Choice Sets - -/** - The default keyboard configuration, this can be additionally customized by each SDLKeyboardDelegate. - */ -@property (strong, nonatomic, null_resettable) SDLKeyboardProperties *keyboardConfiguration; - -/** - Cells will be hashed by their text, image names, and VR command text. When assembling an SDLChoiceSet, you can pull objects from here, or recreate them. The preloaded versions will be used so long as their text, image names, and VR commands are the same. - */ -@property (copy, nonatomic, readonly) NSSet *preloadedChoices; - - -#pragma mark - Methods - -#pragma mark Lifecycle - -/** - Initialize a screen manager - - @warning For internal use - - @param connectionManager The connection manager used to send RPCs - @param fileManager The file manager used to upload files - @param systemCapabilityManager The system capability manager object for reading window capabilities - @return The screen manager - */ -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager; - -/** - Starts the manager and all sub-managers - - @param handler The handler called when setup is complete - */ -- (void)startWithCompletionHandler:(void(^)(NSError * _Nullable error))handler; - -/** - Stops the manager. - - @warning For internal use - */ -- (void)stop; - -#pragma mark - Text and Graphic -/** - Delays all screen updates until endUpdatesWithCompletionHandler: is called. - */ -- (void)beginUpdates; - -/** - Update text fields with new text set into the text field properties. Pass an empty string `\@""` to clear the text field. - - If the system does not support a full 4 fields, this will automatically be concatenated and properly send the field available. - - If 3 lines are available: [field1, field2, field3 - field 4] - - If 2 lines are available: [field1 - field2, field3 - field4] - - If 1 line is available: [field1 - field2 - field3 - field4] - - Also updates the primary and secondary images with new image(s) if new one(s) been set. This method will take care of naming the files (based on a hash). This is assumed to be a non-persistant image. - - If it needs to be uploaded, it will be. Once the upload is complete, the on-screen graphic will be updated. - */ -- (void)endUpdates; - -/** - Update text fields with new text set into the text field properties. Pass an empty string `\@""` to clear the text field. - - If the system does not support a full 4 fields, this will automatically be concatenated and properly send the field available. - - If 3 lines are available: [field1, field2, field3 - field 4] - - If 2 lines are available: [field1 - field2, field3 - field4] - - If 1 line is available: [field1 - field2 - field3 - field4] - - Also updates the primary and secondary images with new image(s) if new one(s) been set. This method will take care of naming the files (based on a hash). This is assumed to be a non-persistant image. - - If it needs to be uploaded, it will be. Once the upload is complete, the on-screen graphic will be updated. - - @param handler A handler run when the fields have finished updating, with an error if the update failed. This handler may be called multiple times when the text update is sent and the image update is sent. - */ -- (void)endUpdatesWithCompletionHandler:(nullable SDLScreenManagerUpdateCompletionHandler)handler; - -#pragma mark - Soft Buttons - -/// Retrieve a SoftButtonObject based on its name. -/// @param name The name of the button -- (nullable SDLSoftButtonObject *)softButtonObjectNamed:(NSString *)name; - -#pragma mark - Subscribe Buttons - -/// Subscribes to a subscribe button. The update handler will be called when the button has been selected. If there is an error subscribing to the subscribe button it will be returned in the `error` parameter of the updateHandler. -/// @param buttonName The name of the hard button to subscribe to -/// @param updateHandler The block run when the subscribe button is selected -/// @return An object that can be used to unsubscribe the block using `unsubscribeButtonWithObserver:withCompletionHandler:`. -- (id)subscribeButton:(SDLButtonName)buttonName withUpdateHandler:(SDLSubscribeButtonHandler)updateHandler; - -/// Subscribes to a subscribe button. The selector will be called when the button has been selected. If there is an error subscribing to the subscribe button it will be returned in the `error` parameter of the selector. -/// -/// The selector supports the following parameters: -/// -/// 1. A selector with no parameters. The observer will be notified when a button press occurs (it will not know if a short or long press has occurred). -/// -/// 2. A selector with one parameter: (SDLButtonName). The observer will be notified when a button press occurs (both a short and long press will trigger the selector, but it will not be able to distinguish between them). It will not be notified of button events. -/// -/// 3. A selector with two parameters: (SDLButtonName, NSError). The observer will be notified when a button press occurs (both a short and long press will trigger the selector, but it will not be able to distinguish between them). It will not be notified of button events. -/// -/// 4. A selector with three parameters: (SDLButtonName, NSError, SDLOnButtonPress). The observer will be notified when a long or short button press occurs (and can distinguish between a short or long press), but will not be notified of individual button events. -/// -/// 5. A selector with four parameters: (SDLButtonName, NSError, SDLOnButtonPress, SDLOnButtonEvent). The observer will be notified when any button press or any button event occurs (and can distinguish between them). -/// -/// To unsubscribe from the hard button, call `unsubscribeButton:withObserver:withCompletionHandler:`. -/// -/// @param buttonName The name of the hard button to subscribe to -/// @param observer The object that will have `selector` called whenever the button has been selected -/// @param selector The selector on `observer` that will be called whenever the button has been selected -- (void)subscribeButton:(SDLButtonName)buttonName withObserver:(id)observer selector:(SEL)selector; - -/// Unsubscribes to a subscribe button. Please note that if a subscribe button has multiple subscribers the observer will no longer get notifications, however, the app will still be subscribed to the hard button until the last subscriber is removed. -/// @param buttonName The name of the hard button to subscribe to -/// @param observer The object that will be unsubscribed. If a block was subscribed, the return value should be passed. If a selector was subscribed, the observer object should be passed -/// @param completionHandler A handler called when the observer has been unsubscribed to the hard button -- (void)unsubscribeButton:(SDLButtonName)buttonName withObserver:(id)observer withCompletionHandler:(SDLScreenManagerUpdateCompletionHandler)completionHandler; - -#pragma mark - Choice Sets - -/** - Preload cells to the head unit. This will *greatly* reduce the time taken to present a choice set. Any already matching a choice already on the head unit will be ignored. You *do not* need to wait until the completion handler is called to present a choice set containing choices being loaded. The choice set will wait until the preload completes and then immediately present. - - @param choices The choices to be preloaded. - @param handler The handler to be called when complete. - */ -- (void)preloadChoices:(NSArray *)choices withCompletionHandler:(nullable SDLPreloadChoiceCompletionHandler)handler; - -/** - Delete loaded cells from the head unit. If the cells don't exist on the head unit they will be ignored. - - @param choices The choices to be deleted. These will be matched via a hash of the text, image name(s), and VR commands. - */ -- (void)deleteChoices:(NSArray *)choices; - -/** - Present a choice set on the head unit with a certain interaction mode. You should present in VR only if the user reached this choice set by using their voice, in Manual only if the user used touch to reach this choice set. Use Both if you're lazy...for real though, it's kind of confusing to the user and isn't recommended. - - If the cells in the set are not already preloaded, they will be preloaded before the presentation occurs; this could take a while depending on the contents of the cells. - - If the cells have voice commands and images attached, this could take upwards of 10 seconds. If there are no cells on the set, this will fail, calling `choiceSet:didReceiveError:` on the choice set delegate. - - @param choiceSet The set to be displayed - @param mode If the set should be presented for the user to interact via voice, touch, or both - */ -- (void)presentChoiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode; - -/** - Present a choice set on the head unit with a certain interaction mode. You should present in VR only if the user reached this choice set by using their voice, in Manual only if the user used touch to reach this choice set. Use Both if you're lazy...for real though, it's kind of confusing to the user and isn't recommended. - - This presents the choice set as searchable when in a touch interaction. The user, when not in a distracted state, will have a keyboard available for searching this set. The user's input in the keyboard will be available in the SDLKeyboardDelegate. - - If the cells in the set are not already preloaded, they will be preloaded before the presentation occurs; this could take a while depending on the contents of the cells. - - If the cells have voice commands and images attached, this could take upwards of 10 seconds. If there are no cells on the set, this will fail, calling `choiceSet:didReceiveError:` on the choice set delegate. - - @param choiceSet The set to be displayed - @param mode If the set should be presented for the user to interact via voice, touch, or both - @param delegate The keyboard delegate called when the user interacts with the search field of the choice set - */ -- (void)presentSearchableChoiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode withKeyboardDelegate:(id)delegate; - -/** - Present a keyboard-only interface to the user and receive input. The user will be able to input text in the keyboard when in a non-driver distraction situation. - - @param initialText The initial text within the keyboard input field. It will disappear once the user selects the field in order to enter text - @param delegate The keyboard delegate called when the user interacts with the keyboard - @return A unique cancelID that can be used to cancel this keyboard - */ -- (nullable NSNumber *)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id)delegate; - -/** - Cancels the keyboard-only interface if it is currently showing. If the keyboard has not yet been sent to Core, it will not be sent. - - This will only dismiss an already presented keyboard if connected to head units running SDL 6.0+. - - @param cancelID The unique ID assigned to the keyboard, passed as the return value from `presentKeyboardWithInitialText:keyboardDelegate:` - */ -- (void)dismissKeyboardWithCancelID:(NSNumber *)cancelID; - -#pragma mark - Menu - -/** - Present the top-level of your application menu. This method should be called if the menu needs to be opened programmatically because the built in menu button is hidden. - */ -- (BOOL)openMenu; - -/** - Present the application menu. This method should be called if the menu needs to be opened programmatically because the built in menu button is hidden. You must update the menu with the proper cells before calling this method. This RPC will fail if the cell does not contain a sub menu, or is not in the menu array. - -@param cell The submenu cell that should be opened as a sub menu, with its sub cells as the options. - */ -- (BOOL)openSubmenu:(SDLMenuCell *)cell; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.m deleted file mode 100644 index 9950521..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenManager.m +++ /dev/null @@ -1,321 +0,0 @@ -// -// SDLScreenManager.m -// SmartDeviceLink -// -// Created by Joel Fischer on 3/5/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLScreenManager.h" -#import "SDLArtwork.h" -#import "SDLChoiceSetManager.h" -#import "SDLMenuManager.h" -#import "SDLSoftButtonManager.h" -#import "SDLSubscribeButtonManager.h" -#import "SDLTextAndGraphicManager.h" -#import "SDLVoiceCommandManager.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLScreenManager() - -@property (strong, nonatomic) SDLTextAndGraphicManager *textAndGraphicManager; -@property (strong, nonatomic) SDLSoftButtonManager *softButtonManager; -@property (strong, nonatomic) SDLMenuManager *menuManager; -@property (strong, nonatomic) SDLVoiceCommandManager *voiceCommandMenuManager; -@property (strong, nonatomic) SDLChoiceSetManager *choiceSetManager; -@property (strong, nonatomic) SDLSubscribeButtonManager *subscribeButtonManager; - -@property (weak, nonatomic) id connectionManager; -@property (weak, nonatomic) SDLFileManager *fileManager; -@property (weak, nonatomic) SDLSystemCapabilityManager *systemCapabilityManager; - -@end - -@implementation SDLScreenManager - -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager { - self = [super init]; - if (!self) { return nil; } - - _connectionManager = connectionManager; - _fileManager = fileManager; - _systemCapabilityManager = systemCapabilityManager; - - _textAndGraphicManager = [[SDLTextAndGraphicManager alloc] initWithConnectionManager:connectionManager fileManager:fileManager systemCapabilityManager:systemCapabilityManager]; - _softButtonManager = [[SDLSoftButtonManager alloc] initWithConnectionManager:connectionManager fileManager:fileManager systemCapabilityManager:systemCapabilityManager]; - _subscribeButtonManager = [[SDLSubscribeButtonManager alloc] initWithConnectionManager:connectionManager]; - _menuManager = [[SDLMenuManager alloc] initWithConnectionManager:connectionManager fileManager:fileManager systemCapabilityManager:systemCapabilityManager]; - _voiceCommandMenuManager = [[SDLVoiceCommandManager alloc] initWithConnectionManager:connectionManager]; - _choiceSetManager = [[SDLChoiceSetManager alloc] initWithConnectionManager:connectionManager fileManager:fileManager systemCapabilityManager:systemCapabilityManager]; - - return self; -} - -- (void)startWithCompletionHandler:(void (^)(NSError * _Nullable))handler { - [self.textAndGraphicManager start]; - [self.softButtonManager start]; - [self.menuManager start]; - [self.choiceSetManager start]; - [self.subscribeButtonManager start]; - - handler(nil); -} - -- (void)stop { - [self.textAndGraphicManager stop]; - [self.softButtonManager stop]; - [self.menuManager stop]; - [self.voiceCommandMenuManager stop]; - [self.choiceSetManager stop]; - [self.subscribeButtonManager stop]; -} - -#pragma mark - Setters - -- (void)setTextField1:(nullable NSString *)textField1 { - self.textAndGraphicManager.textField1 = textField1; - self.softButtonManager.currentMainField1 = textField1; -} - -- (void)setTextField2:(nullable NSString *)textField2 { - self.textAndGraphicManager.textField2 = textField2; -} - -- (void)setTextField3:(nullable NSString *)textField3 { - self.textAndGraphicManager.textField3 = textField3; -} - -- (void)setTextField4:(nullable NSString *)textField4 { - self.textAndGraphicManager.textField4 = textField4; -} - -- (void)setMediaTrackTextField:(nullable NSString *)mediaTrackTextField { - self.textAndGraphicManager.mediaTrackTextField = mediaTrackTextField; -} - -- (void)setPrimaryGraphic:(nullable SDLArtwork *)primaryGraphic { - if (primaryGraphic == nil) { - self.textAndGraphicManager.primaryGraphic = self.textAndGraphicManager.blankArtwork; - return; - } - - self.textAndGraphicManager.primaryGraphic = primaryGraphic; -} - -- (void)setSecondaryGraphic:(nullable SDLArtwork *)secondaryGraphic { - if (secondaryGraphic == nil) { - self.textAndGraphicManager.secondaryGraphic = self.textAndGraphicManager.blankArtwork; - return; - } - - self.textAndGraphicManager.secondaryGraphic = secondaryGraphic; -} - -- (void)setTextAlignment:(SDLTextAlignment)textAlignment { - self.textAndGraphicManager.alignment = textAlignment; -} - -- (void)setTextField1Type:(nullable SDLMetadataType)textField1Type { - self.textAndGraphicManager.textField1Type = textField1Type; -} - -- (void)setTextField2Type:(nullable SDLMetadataType)textField2Type { - self.textAndGraphicManager.textField2Type = textField2Type; -} - -- (void)setTextField3Type:(nullable SDLMetadataType)textField3Type { - self.textAndGraphicManager.textField3Type = textField3Type; -} - -- (void)setTextField4Type:(nullable SDLMetadataType)textField4Type { - self.textAndGraphicManager.textField4Type = textField4Type; -} - -- (void)setTitle:(nullable NSString *)title { - self.textAndGraphicManager.title = title; -} - -- (void)setSoftButtonObjects:(NSArray *)softButtonObjects { - self.softButtonManager.softButtonObjects = softButtonObjects; -} - -- (void)setMenuConfiguration:(SDLMenuConfiguration *)menuConfiguration { - self.menuManager.menuConfiguration = menuConfiguration; -} - -- (void)setMenu:(NSArray *)menu { - self.menuManager.menuCells = menu; -} - -- (void)setVoiceCommands:(NSArray *)voiceCommands { - self.voiceCommandMenuManager.voiceCommands = voiceCommands; -} - -- (void)setKeyboardConfiguration:(nullable SDLKeyboardProperties *)keyboardConfiguration { - self.choiceSetManager.keyboardConfiguration = keyboardConfiguration; -} - -- (void)setDynamicMenuUpdatesMode:(SDLDynamicMenuUpdatesMode)dynamicMenuUpdatesMode { - self.menuManager.dynamicMenuUpdatesMode = dynamicMenuUpdatesMode; -} - -#pragma mark - Getters - -- (nullable NSString *)textField1 { - return _textAndGraphicManager.textField1; -} - -- (nullable NSString *)textField2 { - return _textAndGraphicManager.textField2; -} - -- (nullable NSString *)textField3 { - return _textAndGraphicManager.textField3; -} - -- (nullable NSString *)textField4 { - return _textAndGraphicManager.textField4; -} - -- (nullable NSString *)mediaTrackTextField { - return _textAndGraphicManager.mediaTrackTextField; -} - -- (nullable SDLArtwork *)primaryGraphic { - if ([_textAndGraphicManager.primaryGraphic.name isEqualToString:_textAndGraphicManager.blankArtwork.name]) { - return nil; - } - - return _textAndGraphicManager.primaryGraphic; -} - -- (nullable SDLArtwork *)secondaryGraphic { - if ([_textAndGraphicManager.secondaryGraphic.name isEqualToString:_textAndGraphicManager.blankArtwork.name]) { - return nil; - } - - return _textAndGraphicManager.secondaryGraphic; -} - -- (SDLTextAlignment)alignment { - return _textAndGraphicManager.alignment; -} - -- (nullable SDLMetadataType)textField1Type { - return _textAndGraphicManager.textField1Type; -} - -- (nullable SDLMetadataType)textField2Type { - return _textAndGraphicManager.textField2Type; -} - -- (nullable SDLMetadataType)textField3Type { - return _textAndGraphicManager.textField3Type; -} - -- (nullable SDLMetadataType)textField4Type { - return _textAndGraphicManager.textField4Type; -} - -- (NSArray *)softButtonObjects { - return _softButtonManager.softButtonObjects; -} - -- (SDLMenuConfiguration *)menuConfiguration { - return _menuManager.menuConfiguration; -} - -- (NSArray *)menu { - return _menuManager.menuCells; -} - -- (NSArray *)voiceCommands { - return _voiceCommandMenuManager.voiceCommands; -} - -- (NSSet *)preloadedChoices { - return _choiceSetManager.preloadedChoices; -} - -- (SDLKeyboardProperties *)keyboardConfiguration { - return _choiceSetManager.keyboardConfiguration; -} - -#pragma mark - Begin / End Updates - -- (void)beginUpdates { - self.softButtonManager.batchUpdates = YES; - self.textAndGraphicManager.batchUpdates = YES; -} - -- (void)endUpdates { - [self endUpdatesWithCompletionHandler:nil]; -} - -- (void)endUpdatesWithCompletionHandler:(nullable SDLScreenManagerUpdateCompletionHandler)handler { - self.softButtonManager.batchUpdates = NO; - self.textAndGraphicManager.batchUpdates = NO; - - [self.textAndGraphicManager updateWithCompletionHandler:handler]; -} - -#pragma mark - Subscribe Buttons - -- (id)subscribeButton:(SDLButtonName)buttonName withUpdateHandler:(SDLSubscribeButtonHandler)updateHandler { - return [self.subscribeButtonManager subscribeButton:buttonName withUpdateHandler:updateHandler]; -} - -- (void)subscribeButton:(SDLButtonName)buttonName withObserver:(id)observer selector:(SEL)selector { - [self.subscribeButtonManager subscribeButton:buttonName withObserver:observer selector:selector]; -} - -- (void)unsubscribeButton:(SDLButtonName)buttonName withObserver:(id)observer withCompletionHandler:(SDLScreenManagerUpdateCompletionHandler)completionHandler { - [self.subscribeButtonManager unsubscribeButton:buttonName withObserver:observer withCompletionHandler:completionHandler]; -} - -#pragma mark - Soft Buttons - -- (nullable SDLSoftButtonObject *)softButtonObjectNamed:(NSString *)name { - return [self.softButtonManager softButtonObjectNamed:name]; -} - -#pragma mark - Choice Sets - -- (void)deleteChoices:(NSArray *)choices { - [self.choiceSetManager deleteChoices:choices]; -} - -- (void)preloadChoices:(NSArray *)choices withCompletionHandler:(nullable SDLPreloadChoiceCompletionHandler)handler { - [self.choiceSetManager preloadChoices:choices withCompletionHandler:handler]; -} - -- (void)presentChoiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode { - [self.choiceSetManager presentChoiceSet:choiceSet mode:mode withKeyboardDelegate:nil]; -} - -- (void)presentSearchableChoiceSet:(SDLChoiceSet *)choiceSet mode:(SDLInteractionMode)mode withKeyboardDelegate:(id)delegate { - [self.choiceSetManager presentChoiceSet:choiceSet mode:mode withKeyboardDelegate:delegate]; -} - -- (nullable NSNumber *)presentKeyboardWithInitialText:(NSString *)initialText delegate:(id)delegate { - return [self.choiceSetManager presentKeyboardWithInitialText:initialText delegate:delegate]; -} - -- (void)dismissKeyboardWithCancelID:(NSNumber *)cancelID{ - [self.choiceSetManager dismissKeyboardWithCancelID:cancelID]; -} - -#pragma mark - Menu - -- (BOOL)openMenu { - return [self.menuManager openMenu]; -} - -- (BOOL)openSubmenu:(SDLMenuCell *)cell { - return [self.menuManager openSubmenu:cell]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenParams.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenParams.h deleted file mode 100644 index 1a4969b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenParams.h +++ /dev/null @@ -1,32 +0,0 @@ -// SDLScreenParams.h -// - -#import "SDLRPCMessage.h" - -@class SDLImageResolution; -@class SDLTouchEventCapabilities; - -NS_ASSUME_NONNULL_BEGIN - -/** - A struct in DisplayCapabilities describing parameters related to a video / touch input area - */ -@interface SDLScreenParams : SDLRPCStruct - -/** - The resolution of the prescribed screen area - - Required - */ -@property (strong, nonatomic) SDLImageResolution *resolution; - -/** - Types of screen touch events available in screen area - - Optional - */ -@property (nullable, strong, nonatomic) SDLTouchEventCapabilities *touchEventAvailable; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenParams.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenParams.m deleted file mode 100644 index 5a99d0a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScreenParams.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLScreenParams.m -// - -#import "SDLScreenParams.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImageResolution.h" -#import "SDLRPCParameterNames.h" -#import "SDLTouchEventCapabilities.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLScreenParams - -- (void)setResolution:(SDLImageResolution *)resolution { - [self.store sdl_setObject:resolution forName:SDLRPCParameterNameResolution]; -} - -- (SDLImageResolution *)resolution { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameResolution ofClass:SDLImageResolution.class error:&error]; -} - -- (void)setTouchEventAvailable:(nullable SDLTouchEventCapabilities *)touchEventAvailable { - [self.store sdl_setObject:touchEventAvailable forName:SDLRPCParameterNameTouchEventAvailable]; -} - -- (nullable SDLTouchEventCapabilities *)touchEventAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameTouchEventAvailable ofClass:SDLTouchEventCapabilities.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.h deleted file mode 100644 index f2abda1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.h +++ /dev/null @@ -1,88 +0,0 @@ -// SDLScrollableMessage.h -// - - -#import "SDLRPCRequest.h" - -@class SDLSoftButton; - -NS_ASSUME_NONNULL_BEGIN - -/** - Creates a full screen overlay containing a large block of formatted text that can be scrolled with buttons available. - - If connecting to SDL Core v.6.0+, the scrollable message can be canceled programmatically using the `cancelID`. On older versions of SDL Core, the scrollable message will persist until the user has interacted with the scrollable message or the specified timeout has elapsed. - - @since SDL 2.0 - */ -@interface SDLScrollableMessage : SDLRPCRequest - -/** - Convenience init for creating a scrolling message with text. - - @param message Body of text that can include newlines and tabs - @return A SDLScrollableMessage object - */ -- (instancetype)initWithMessage:(NSString *)message; - -/** - Convenience init for creating a scrolling message with text and buttons. - - @param message Body of text that can include newlines and tabs - @param timeout Indicates how long of a timeout from the last action (i.e. scrolling message resets timeout) - @param softButtons Buttons for the displayed scrollable message - @param cancelID An ID for this specific scrollable message to allow cancellation through the `CancelInteraction` RPC - @return A SDLScrollableMessage object - */ -- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray *)softButtons cancelID:(UInt32)cancelID; - -/** - Convenience init for creating a scrolling message with text and buttons. - - @param message Body of text that can include newlines and tabs - @param timeout Indicates how long of a timeout from the last action (i.e. scrolling message resets timeout) - @param softButtons Buttons for the displayed scrollable message - @return A SDLScrollableMessage object - */ -- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray *)softButtons __deprecated_msg("Use initWithMessage:timeout:softButtons:cancelID: instead"); - -/** - Body of text that can include newlines and tabs. - - String, Required, Max length 500 chars - - @since SDL 2.0 - */ -@property (strong, nonatomic) NSString *scrollableMessageBody; - -/** - App defined timeout. Indicates how long of a timeout from the last action (i.e. scrolling message resets timeout). If not set, a default value of 30 seconds is used by Core. - - Integer, Optional, Min value: 1000, Max value: 65535, Default value: 30000 - - @since SDL 2.0 - */ -@property (nullable, strong, nonatomic) NSNumber *timeout; - -/** - Buttons for the displayed scrollable message. If omitted on supported displays, only the system defined "Close" SoftButton will be displayed. - - Array of SDLSoftButton, Optional, Array size: 0-8 - - Since SDL 2.0 - */ -@property (nullable, strong, nonatomic) NSArray *softButtons; - -/** - An ID for this specific scrollable message to allow cancellation through the `CancelInteraction` RPC. - - Integer, Optional - - @see SDLCancelInteraction - @since SDL 6.0 - */ -@property (nullable, strong, nonatomic) NSNumber *cancelID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.m deleted file mode 100644 index 994beca..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessage.m +++ /dev/null @@ -1,86 +0,0 @@ -// SDLScrollableMessage.m -// - - -#import "SDLScrollableMessage.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSoftButton.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLScrollableMessage - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameScrollableMessage]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithScrollableMessageBody:(NSString *)message timeout:(nullable NSNumber *)timeout softButtons:(nullable NSArray *)softButtons cancelID:(nullable NSNumber *)cancelID { - self = [self init]; - if (!self) { - return nil; - } - - self.scrollableMessageBody = message; - self.timeout = timeout; - self.softButtons = softButtons; - self.cancelID = cancelID; - - return self; -} - -- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray *)softButtons cancelID:(UInt32)cancelID { - return [self initWithScrollableMessageBody:message timeout:@(timeout) softButtons:softButtons cancelID:@(cancelID)]; -} - -- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray *)softButtons { - return [self initWithScrollableMessageBody:message timeout:@(timeout) softButtons:softButtons cancelID:nil]; -} - -- (instancetype)initWithMessage:(NSString *)message { - return [self initWithScrollableMessageBody:message timeout:nil softButtons:nil cancelID:nil]; -} - -- (void)setScrollableMessageBody:(NSString *)scrollableMessageBody { - [self.parameters sdl_setObject:scrollableMessageBody forName:SDLRPCParameterNameScrollableMessageBody]; -} - -- (NSString *)scrollableMessageBody { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameScrollableMessageBody ofClass:NSString.class error:&error]; -} - -- (void)setTimeout:(nullable NSNumber *)timeout { - [self.parameters sdl_setObject:timeout forName:SDLRPCParameterNameTimeout]; -} - -- (nullable NSNumber *)timeout { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeout ofClass:NSNumber.class error:nil]; -} - -- (void)setSoftButtons:(nullable NSArray *)softButtons { - [self.parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; -} - -- (nullable NSArray *)softButtons { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; -} - -- (void)setCancelID:(nullable NSNumber *)cancelID { - [self.parameters sdl_setObject:cancelID forName:SDLRPCParameterNameCancelID]; -} - -- (nullable NSNumber *)cancelID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCancelID ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessageResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessageResponse.h deleted file mode 100644 index 4da587c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessageResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLScrollableMessageResponse.h -// - - -#import "SDLRPCResponse.h" - -/** - Response to SDLScrollableMessage - - Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLScrollableMessageResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessageResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessageResponse.m deleted file mode 100644 index df91127..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLScrollableMessageResponse.m +++ /dev/null @@ -1,22 +0,0 @@ -// SDLScrollableMessageResponse.m -// - - -#import "SDLScrollableMessageResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -@implementation SDLScrollableMessageResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameScrollableMessage]) { - } - return self; -} -#pragma clang diagnostic pop - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.h deleted file mode 100644 index c55de48..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.h +++ /dev/null @@ -1,195 +0,0 @@ -// SDLSeatControlCapabilities.h -// - - -#import "SDLRPCStruct.h" -#import "SDLModuleInfo.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Include information about a seat control capabilities. - */ -@interface SDLSeatControlCapabilities : SDLRPCStruct - -/// Constructs a newly allocated SDLSeatControlCapabilities object with moduleName -/// -/// @param moduleName The short friendly name of the module. -/// @return An SDLSeatControlCapabilities object -- (instancetype)initWithName:(NSString *)moduleName __deprecated_msg("Use initWithName:moduleInfo:"); - -/// Constructs a newly allocated SDLSeatControlCapabilities object with moduleName and moduleInfo -/// -/// @param moduleName The short friendly name of the module. -/// @param moduleInfo Information about a RC module, including its id -/// @return An SDLSeatControlCapabilities object -- (instancetype)initWithName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo; - -/// Constructs a newly allocated SDLSeatControlCapabilities object with given parameters -/// -/// @param moduleName The short friendly name of the module. -/// @param heatingEnabledAvail Whether or not heating is available -/// @param coolingEnabledAvail Whether or not heating is available -/// @param heatingLevelAvail Whether or not heating level is available -/// @param coolingLevelAvail Whether or not cooling level is available -/// @param horizontalPositionAvail Whether or not horizontal Position is aavailable -/// @param verticalPositionAvail Whether or not vertical position is available -/// @param frontVerticalPositionAvail Whether or not front vertical position is available -/// @param backVerticalPositionAvail Whether or not back vertical position is available -/// @param backTitlAngleAvail Whether or not backTilt angle is available -/// @param headSupportHorizontalPositionAvail Whether or not head supports for horizontal position is available -/// @param headSupportVerticalPositionAvail Whether or not head supports for vertical position is available -/// @param massageEnabledAvail Whether or not massage enabled is available -/// @param massageModeAvail Whether or not massage mode is available -/// @param massageCushionFirmnessAvail Whether or not massage cushion firmness is available -/// @param memoryAvail Whether or not massage cushion firmness is available -/// @return An SDLSeatControlCapabilities object -- (instancetype)initWithName:(NSString *)moduleName heatingEnabledAvailable:(BOOL)heatingEnabledAvail - coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail __deprecated_msg("Use initWithName:moduleInfo:heatingEnabledAvailable:coolingEnabledAvailable:heatingLevelAvailable:coolingLevelAvailable:horizontalPositionAvailable:verticalPositionAvailable:frontVerticalPositionAvailable:backVerticalPositionAvailable:backTiltAngleAvailable:headSupportHorizontalPositionAvailable:headSupportVerticalPositionAvailable:massageEnabledAvailable:massageModeAvailable:massageCushionFirmnessAvailable:memoryAvailable:"); - -/// Constructs a newly allocated SDLSeatControlCapabilities object with all parameters -/// -/// @param moduleName The short friendly name of the module. -/// @param moduleInfo Information about a RC module, including its id -/// @param heatingEnabledAvail Whether or not heating is available -/// @param coolingEnabledAvail Whether or not heating is available -/// @param heatingLevelAvail Whether or not heating level is available -/// @param coolingLevelAvail Whether or not cooling level is available -/// @param horizontalPositionAvail Whether or not horizontal Position is aavailable -/// @param verticalPositionAvail Whether or not vertical position is available -/// @param frontVerticalPositionAvail Whether or not front vertical position is available -/// @param backVerticalPositionAvail Whether or not back vertical position is available -/// @param backTitlAngleAvail Whether or not backTilt angle is available -/// @param headSupportHorizontalPositionAvail Whether or not head supports for horizontal position is available -/// @param headSupportVerticalPositionAvail Whether or not head supports for vertical position is available -/// @param massageEnabledAvail Whether or not massage enabled is available -/// @param massageModeAvail Whether or not massage mode is available -/// @param massageCushionFirmnessAvail Whether or not massage cushion firmness is available -/// @param memoryAvail Whether or not massage cushion firmness is available -/// @return An SDLSeatControlCapabilities object -- (instancetype)initWithName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo heatingEnabledAvailable:(BOOL)heatingEnabledAvail - coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail; - -/** - * @abstract The short friendly name of the light control module. - * It should not be used to identify a module by mobile application. - * - * Required, Max length 100 chars - */ -@property (strong, nonatomic) NSString *moduleName; - -/** - * @abstract Whether or not heating is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *heatingEnabledAvailable; - -/** - * @abstract Whether or not cooling is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *coolingEnabledAvailable; - -/** - * @abstract Whether or not heating level is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *heatingLevelAvailable; - -/** - * @abstract Whether or not cooling level is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *coolingLevelAvailable; - -/** - * @abstract Whether or not horizontal Position is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *horizontalPositionAvailable; - -/** - * @abstract Whether or not vertical Position is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *verticalPositionAvailable; - -/** - * @abstract Whether or not front Vertical Position is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *frontVerticalPositionAvailable; - -/** - * @abstract Whether or not back Vertical Position is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *backVerticalPositionAvailable; - -/** - * @abstract Whether or not backTilt Angle Available is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *backTiltAngleAvailable; - -/** - * @abstract Whether or not head Supports for Horizontal Position is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *headSupportHorizontalPositionAvailable; - -/** - * @abstract Whether or not head Supports for Vertical Position is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *headSupportVerticalPositionAvailable; - -/** - * @abstract Whether or not massage Enabled is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *massageEnabledAvailable; - -/** - * @abstract Whether or not massage Mode is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *massageModeAvailable; - -/** - * @abstract Whether or not massage Cushion Firmness is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *massageCushionFirmnessAvailable; - -/** - * @abstract Whether or not memory is Available. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *memoryAvailable; - -/** - * @abstract Information about a RC module, including its id. - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.m deleted file mode 100644 index 248c87d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlCapabilities.m +++ /dev/null @@ -1,249 +0,0 @@ -// SDLSeatControlCapabilities.m -// - -#import "SDLSeatControlCapabilities.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSeatControlCapabilities - -- (instancetype)initWithName:(NSString *)moduleName { - if (self = [super init]) { - self.moduleName = moduleName; - } - return self; -} - -- (instancetype)initWithName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo { - if (self = [super init]) { - self.moduleName = moduleName; - self.moduleInfo = moduleInfo; - } - return self; -} - -- (instancetype)initWithName:(NSString *)moduleName heatingEnabledAvailable:(BOOL)heatingEnabledAvail coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail { - - self = [super init]; - if (!self) { - return nil; - } - - self.moduleName = moduleName; - self.heatingEnabledAvailable = @(heatingEnabledAvail); - self.coolingEnabledAvailable = @(coolingEnabledAvail); - self.heatingLevelAvailable = @(heatingLevelAvail); - self.coolingLevelAvailable = @(coolingLevelAvail); - self.horizontalPositionAvailable = @(horizontalPositionAvail); - self.verticalPositionAvailable = @(verticalPositionAvail); - self.frontVerticalPositionAvailable = @(frontVerticalPositionAvail); - self.backVerticalPositionAvailable = @(backVerticalPositionAvail); - self.backTiltAngleAvailable = @(backTitlAngleAvail); - self.headSupportVerticalPositionAvailable = @(headSupportVerticalPositionAvail); - self.headSupportHorizontalPositionAvailable = @(headSupportHorizontalPositionAvail); - self.massageEnabledAvailable = @(massageEnabledAvail); - self.massageModeAvailable = @(massageModeAvail); - self.massageCushionFirmnessAvailable = @(massageCushionFirmnessAvail); - self.memoryAvailable = @(memoryAvail); - - return self; -} - -- (instancetype)initWithName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo heatingEnabledAvailable:(BOOL)heatingEnabledAvail - coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail { - - self = [super init]; - if (!self) { - return nil; - } - - self.moduleName = moduleName; - self.moduleInfo = moduleInfo; - self.heatingEnabledAvailable = @(heatingEnabledAvail); - self.coolingEnabledAvailable = @(coolingEnabledAvail); - self.heatingLevelAvailable = @(heatingLevelAvail); - self.coolingLevelAvailable = @(coolingLevelAvail); - self.horizontalPositionAvailable = @(horizontalPositionAvail); - self.verticalPositionAvailable = @(verticalPositionAvail); - self.frontVerticalPositionAvailable = @(frontVerticalPositionAvail); - self.backVerticalPositionAvailable = @(backVerticalPositionAvail); - self.backTiltAngleAvailable = @(backTitlAngleAvail); - self.headSupportVerticalPositionAvailable = @(headSupportVerticalPositionAvail); - self.headSupportHorizontalPositionAvailable = @(headSupportHorizontalPositionAvail); - self.massageEnabledAvailable = @(massageEnabledAvail); - self.massageModeAvailable = @(massageModeAvail); - self.massageCushionFirmnessAvailable = @(massageCushionFirmnessAvail); - self.memoryAvailable = @(memoryAvail); - - return self; -} - -- (void)setModuleName:(NSString *)moduleName { - [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; -} - -- (NSString *)moduleName { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; -} - -- (void)setHeatingEnabledAvailable:(nullable NSNumber *)heatingEnabledAvailable { - [self.store sdl_setObject:heatingEnabledAvailable forName:SDLRPCParameterNameHeatingEnabledAvailable]; -} - -- (nullable NSNumber *)heatingEnabledAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameHeatingEnabledAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setCoolingEnabledAvailable:(nullable NSNumber *)coolingEnabledAvailable { - [self.store sdl_setObject:coolingEnabledAvailable forName:SDLRPCParameterNameCoolingEnabledAvailable]; - -} - -- (nullable NSNumber *)coolingEnabledAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameCoolingEnabledAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setHeatingLevelAvailable:(nullable NSNumber *)heatingLevelAvailable { - [self.store sdl_setObject:heatingLevelAvailable forName:SDLRPCParameterNameHeatingLevelAvailable]; - -} - -- (nullable NSNumber *)heatingLevelAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameHeatingLevelAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setCoolingLevelAvailable:(nullable NSNumber *)coolingLevelAvailable { - [self.store sdl_setObject:coolingLevelAvailable forName:SDLRPCParameterNameCoolingLevelAvailable]; - -} - -- (nullable NSNumber *)coolingLevelAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameCoolingLevelAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setHorizontalPositionAvailable:(nullable NSNumber *)horizontalPositionAvailable { - [self.store sdl_setObject:horizontalPositionAvailable forName:SDLRPCParameterNameHorizontalPositionAvailable]; - -} - -- (nullable NSNumber *)horizontalPositionAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameHorizontalPositionAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setVerticalPositionAvailable:(nullable NSNumber *)verticalPositionAvailable { - [self.store sdl_setObject:verticalPositionAvailable forName:SDLRPCParameterNameVerticalPositionAvailable]; - -} - -- (nullable NSNumber *)verticalPositionAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameVerticalPositionAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setFrontVerticalPositionAvailable:(nullable NSNumber *)frontVerticalPositionAvailable { - [self.store sdl_setObject:frontVerticalPositionAvailable forName:SDLRPCParameterNameFrontVerticalPositionAvailable]; - -} - -- (nullable NSNumber *)frontVerticalPositionAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameFrontVerticalPositionAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setBackVerticalPositionAvailable:(nullable NSNumber *)backVerticalPositionAvailable { - [self.store sdl_setObject:backVerticalPositionAvailable forName:SDLRPCParameterNameBackVerticalPositionAvailable]; - -} - -- (nullable NSNumber *)backVerticalPositionAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameBackVerticalPositionAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setBackTiltAngleAvailable:(nullable NSNumber *)backTiltAngleAvailable { - [self.store sdl_setObject:backTiltAngleAvailable forName:SDLRPCParameterNameBackTiltAngleAvailable]; - -} - -- (nullable NSNumber *)backTiltAngleAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameBackTiltAngleAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setHeadSupportHorizontalPositionAvailable:(nullable NSNumber *)headSupportHorizontalPositionAvailable { - [self.store sdl_setObject:headSupportHorizontalPositionAvailable forName:SDLRPCParameterNameHeadSupportHorizontalPositionAvailable]; - -} - -- (nullable NSNumber *)headSupportHorizontalPositionAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameHeadSupportHorizontalPositionAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setHeadSupportVerticalPositionAvailable:(nullable NSNumber *)headSupportVerticalPositionAvailable { - [self.store sdl_setObject:headSupportVerticalPositionAvailable forName:SDLRPCParameterNameHeadSupportVerticalPositionAvailable]; - -} - -- (nullable NSNumber *)headSupportVerticalPositionAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameHeadSupportVerticalPositionAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setMassageEnabledAvailable:(nullable NSNumber *)massageEnabledAvailable { - [self.store sdl_setObject:massageEnabledAvailable forName:SDLRPCParameterNameMassageEnabledAvailable]; - -} - -- (nullable NSNumber *)massageEnabledAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameMassageEnabledAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setMassageModeAvailable:(nullable NSNumber *)massageModeAvailable { - [self.store sdl_setObject:massageModeAvailable forName:SDLRPCParameterNameMassageModeAvailable]; - -} - -- (nullable NSNumber *)massageModeAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameMassageModeAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setMassageCushionFirmnessAvailable:(nullable NSNumber *)massageCushionFirmnessAvailable { - [self.store sdl_setObject:massageCushionFirmnessAvailable forName:SDLRPCParameterNameMassageCushionFirmnessAvailable]; - -} - -- (nullable NSNumber *)massageCushionFirmnessAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameMassageCushionFirmnessAvailable ofClass:NSNumber.class error:nil]; - -} - -- (void)setMemoryAvailable:(nullable NSNumber *)memoryAvailable { - [self.store sdl_setObject:memoryAvailable forName:SDLRPCParameterNameMemoryAvailable]; - -} - -- (nullable NSNumber *)memoryAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameMemoryAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo { - [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo]; -} - -- (nullable SDLModuleInfo *)moduleInfo { - return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.h deleted file mode 100644 index 9bc7163..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.h +++ /dev/null @@ -1,177 +0,0 @@ -// SDLSeatControlData.h -// - -#import "SDLRPCStruct.h" -#import "SDLSeatMemoryActionType.h" -#import "SDLSupportedSeat.h" - -@class SDLMassageModeData; -@class SDLMassageCushionFirmness; -@class SDLSeatMemoryAction; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Seat control data corresponds to "SEAT" ModuleType. - */ - -@interface SDLSeatControlData : SDLRPCStruct - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -/** -Constructs a newly allocated SDLSeatControlData object with cushion and firmness - -@param supportedSeat id of remote controllable seat. -@return An instance of the SDLSeatControlData class -*/ -- (instancetype)initWithId:(SDLSupportedSeat)supportedSeat; -#pragma clang diagnostic pop - - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -/** - Constructs a newly allocated SDLSeatControlData object with cushion and firmness - -@param supportedSeat id of remote controllable seat. -@param heatingEnable Whether or not heating is enabled. -@param coolingEnable Whether or not cooling is enabled. -@param heatingLevel heating level -@param coolingLevel cooling Level -@param horizontal horizontal Position -@param vertical vertical Position -@param frontVertical frontVertical Position -@param backVertical backVertical Position -@param backAngle backAngle Position -@param headSupportedHorizontal headSupportedHorizontal Position -@param headSupportedVertical headSupportedVertical Position -@param massageEnable Whether or not massage is enabled. -@param massageMode Array of massage mode data. -@param firmness Array of firmness data. -@param memoryAction type of action to be performed. -@return An instance of the SDLSeatControlData class -*/ -- (instancetype)initWithId:(SDLSupportedSeat)supportedSeat heatingEnabled:(BOOL)heatingEnable coolingEnable:(BOOL)coolingEnable heatingLevel:(UInt8)heatingLevel coolingLevel:(UInt8)coolingLevel horizontalPostion:(UInt8)horizontal verticalPostion:(UInt8)vertical frontVerticalPostion:(UInt8)frontVertical backVerticalPostion:(UInt8)backVertical backTiltAngle:(UInt8)backAngle headSupportedHorizontalPostion:(UInt8)headSupportedHorizontal headSupportedVerticalPostion:(UInt8)headSupportedVertical massageEnabled:(BOOL)massageEnable massageMode:(NSArray *)massageMode massageCussionFirmness:(NSArray *)firmness memory:(SDLSeatMemoryAction *)memoryAction; -#pragma clang diagnostic pop - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -/** -* @abstract id of seat that is a remote controllable seat. -* @warning This should not be used to identify a seat, this is a deprecated parameter. -* -* Required -*/ -@property (strong, nonatomic) SDLSupportedSeat id; -#pragma clang diagnostic pop - -/** - * @abstract Whether or not heating is enabled. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *heatingEnabled; - -/** - * @abstract Whether or not cooling is enabled. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *coolingEnabled; - -/** - * @abstract heating level in integer - * - * Optional, MinValue- 0 MaxValue= 100 - */ -@property (nullable, strong, nonatomic) NSNumber *heatingLevel; - -/** - * @abstract cooling level in integer - * - * Optional, MinValue- 0 MaxValue= 100 - */ -@property (nullable, strong, nonatomic) NSNumber *coolingLevel; - -/** - * @abstract horizontal Position in integer - * - * Optional, MinValue- 0 MaxValue= 100 - */ -@property (nullable, strong, nonatomic) NSNumber *horizontalPosition; - -/** - * @abstract heating level in integer - * - * Optional, MinValue- 0 MaxValue= 100 - */ -@property (nullable, strong, nonatomic) NSNumber *verticalPosition; - -/** - * @abstract heating level in integer - * - * Optional, MinValue- 0 MaxValue= 100 - */ -@property (nullable, strong, nonatomic) NSNumber *frontVerticalPosition; - -/** - * @abstract heating level in integer - * - * Optional, MinValue- 0 MaxValue= 100 - */ -@property (nullable, strong, nonatomic) NSNumber *backVerticalPosition; - -/** - * @abstract heating level in integer - * - * Optional, MinValue- 0 MaxValue= 100 - */ -@property (nullable, strong, nonatomic) NSNumber *backTiltAngle; - -/** - * @abstract head Support Horizontal Position in integer - * - * Optional, MinValue- 0 MaxValue= 100 - */ -@property (nullable, strong, nonatomic) NSNumber *headSupportHorizontalPosition; - -/** - * @abstract head Support Vertical Position in integer - * - * Optional, MinValue- 0 MaxValue= 100 - */ -@property (nullable, strong, nonatomic) NSNumber *headSupportVerticalPosition; - -/** - * @abstract Whether or not massage is enabled. - - * Optional - */ -@property (nullable, strong, nonatomic) NSNumber *massageEnabled; - -/** - * @abstract Array of massage mode data. - - * Optional, Array of SDLMassageModeData objects, MinArray size-1 MaxArray size-2 - */ -@property (nullable, strong, nonatomic) NSArray *massageMode; - - -/** - * @abstract Array of firmness of a cushion. - - * Optional, Array of SDLMassageCushionFirmness objects, MinArray size-1 MaxArray size-5 - */ -@property (nullable, strong, nonatomic) NSArray *massageCushionFirmness; - -/** - * @abstract type of action to be performed - * - * Required, @see SDLSeatMemoryAction - */ -@property (nullable, strong, nonatomic) SDLSeatMemoryAction *memory; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.m deleted file mode 100644 index 6054cb9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatControlData.m +++ /dev/null @@ -1,200 +0,0 @@ -// SDLSeatControlData.m -// - -#import "SDLSeatControlData.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -#import "SDLMassageModeData.h" -#import "SDLMassageCushionFirmness.h" -#import "SDLSeatMemoryAction.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSeatControlData - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)initWithId:(SDLSupportedSeat)supportedSeat { -#pragma clang diagnostic pop - self = [self init]; - if (!self) { - return nil; - } - self.id = supportedSeat; - - return self; -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)initWithId:(SDLSupportedSeat)supportedSeat heatingEnabled:(BOOL)heatingEnable coolingEnable:(BOOL)coolingEnabled heatingLevel:(UInt8)heatingLevel coolingLevel:(UInt8)coolingLevel horizontalPostion:(UInt8)horizontal verticalPostion:(UInt8)vertical frontVerticalPostion:(UInt8)frontVertical backVerticalPostion:(UInt8)backVertical backTiltAngle:(UInt8)backAngle headSupportedHorizontalPostion:(UInt8)headSupportedHorizontal headSupportedVerticalPostion:(UInt8)headSupportedVertical massageEnabled:(BOOL)massageEnable massageMode:(NSArray *)massageMode massageCussionFirmness:(NSArray *)firmness memory:(SDLSeatMemoryAction *)memoryAction { -#pragma clang diagnostic pop - - self = [super init]; - if (!self) { - return nil; - } - - self.id = supportedSeat; - self.heatingEnabled = @(heatingEnable); - self.coolingEnabled = @(coolingEnabled); - self.heatingLevel = @(heatingLevel); - self.coolingLevel = @(coolingLevel); - - self.horizontalPosition = @(horizontal); - self.verticalPosition = @(vertical); - self.frontVerticalPosition = @(frontVertical); - self.backVerticalPosition = @(backVertical); - self.backTiltAngle = @(backAngle); - - self.headSupportHorizontalPosition = @(headSupportedHorizontal); - self.headSupportVerticalPosition = @(headSupportedVertical); - - self.massageEnabled = @(massageEnable); - self.massageMode = massageMode; - self.massageCushionFirmness = firmness; - self.memory = memoryAction; - - return self; -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (void)setId:(SDLSupportedSeat)id { -#pragma clang diagnostic pop - [self.store sdl_setObject:id forName:SDLRPCParameterNameId]; -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (SDLSupportedSeat)id { -#pragma clang diagnostic pop - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameId error:&error]; -} - -- (void)setHeatingEnabled:(nullable NSNumber *)heatingEnabled { - [self.store sdl_setObject:heatingEnabled forName:SDLRPCParameterNameHeatingEnabled]; -} - -- (nullable NSNumber *)heatingEnabled { - return [self.store sdl_objectForName:SDLRPCParameterNameHeatingEnabled ofClass:NSNumber.class error:nil]; -} - -- (void)setCoolingEnabled:(nullable NSNumber *)coolingEnabled { - [self.store sdl_setObject:coolingEnabled forName:SDLRPCParameterNameCoolingEnabled]; -} - -- (nullable NSNumber *)coolingEnabled { - return [self.store sdl_objectForName:SDLRPCParameterNameCoolingEnabled ofClass:NSNumber.class error:nil]; -} - -- (void)setHeatingLevel:(nullable NSNumber *)heatingLevel { - [self.store sdl_setObject:heatingLevel forName:SDLRPCParameterNameHeatingLevel]; -} - -- (nullable NSNumber *)heatingLevel { - return [self.store sdl_objectForName:SDLRPCParameterNameHeatingLevel ofClass:NSNumber.class error:nil]; -} - -- (void)setCoolingLevel:(nullable NSNumber *)coolingLevel { - [self.store sdl_setObject:coolingLevel forName:SDLRPCParameterNameCoolingLevel]; -} - -- (nullable NSNumber *)coolingLevel { - return [self.store sdl_objectForName:SDLRPCParameterNameCoolingLevel ofClass:NSNumber.class error:nil]; -} - -- (void)setHorizontalPosition:(nullable NSNumber *)horizontalPosition { - [self.store sdl_setObject:horizontalPosition forName:SDLRPCParameterNameHorizontalPosition]; -} - -- (nullable NSNumber *)horizontalPosition { - return [self.store sdl_objectForName:SDLRPCParameterNameHorizontalPosition ofClass:NSNumber.class error:nil]; -} - -- (void)setVerticalPosition:(nullable NSNumber *)verticalPosition { - [self.store sdl_setObject:verticalPosition forName:SDLRPCParameterNameVerticalPosition]; -} - -- (nullable NSNumber *)verticalPosition { - return [self.store sdl_objectForName:SDLRPCParameterNameVerticalPosition ofClass:NSNumber.class error:nil]; -} - -- (void)setFrontVerticalPosition:(nullable NSNumber *)frontVerticalPosition { - [self.store sdl_setObject:frontVerticalPosition forName:SDLRPCParameterNameFrontVerticalPosition]; -} - -- (nullable NSNumber *)frontVerticalPosition { - return [self.store sdl_objectForName:SDLRPCParameterNameFrontVerticalPosition ofClass:NSNumber.class error:nil]; -} - -- (void)setBackVerticalPosition:(nullable NSNumber *)backVerticalPosition { - [self.store sdl_setObject:backVerticalPosition forName:SDLRPCParameterNameBackVerticalPosition]; -} - -- (nullable NSNumber *)backVerticalPosition { - return [self.store sdl_objectForName:SDLRPCParameterNameBackVerticalPosition ofClass:NSNumber.class error:nil]; -} - -- (void)setBackTiltAngle:(nullable NSNumber *)backTiltAngle { - [self.store sdl_setObject:backTiltAngle forName:SDLRPCParameterNameBackTiltAngle]; -} - -- (nullable NSNumber *)backTiltAngle { - return [self.store sdl_objectForName:SDLRPCParameterNameBackTiltAngle ofClass:NSNumber.class error:nil]; -} - -- (void)setHeadSupportHorizontalPosition:(nullable NSNumber *)headSupportHorizontalPosition { - [self.store sdl_setObject:headSupportHorizontalPosition forName:SDLRPCParameterNameHeadSupportHorizontalPosition]; -} - -- (nullable NSNumber *)headSupportHorizontalPosition { - return [self.store sdl_objectForName:SDLRPCParameterNameHeadSupportHorizontalPosition ofClass:NSNumber.class error:nil]; -} - --(void)setHeadSupportVerticalPosition:(nullable NSNumber *)headSupportVerticalPosition { - [self.store sdl_setObject:headSupportVerticalPosition forName:SDLRPCParameterNameHeadSupportVerticalPosition]; -} - -- (nullable NSNumber *)headSupportVerticalPosition { - return [self.store sdl_objectForName:SDLRPCParameterNameHeadSupportVerticalPosition ofClass:NSNumber.class error:nil]; -} - -- (void)setMassageEnabled:(nullable NSNumber *)massageEnabled { - [self.store sdl_setObject:massageEnabled forName:SDLRPCParameterNameMassageEnabled]; -} - -- (nullable NSNumber *)massageEnabled { - return [self.store sdl_objectForName:SDLRPCParameterNameMassageEnabled ofClass:NSNumber.class error:nil]; - -} - -- (void)setMassageMode:(nullable NSArray *)massageMode { - [self.store sdl_setObject:massageMode forName:SDLRPCParameterNameMassageMode]; -} - -- (nullable NSArray *)massageMode { - return [self.store sdl_objectsForName:SDLRPCParameterNameMassageMode ofClass:SDLMassageModeData.class error:nil]; -} - -- (void)setMassageCushionFirmness:(nullable NSArray *)massageCushionFirmness { - [self.store sdl_setObject:massageCushionFirmness forName:SDLRPCParameterNameMassageCushionFirmness]; -} - -- (nullable NSArray *)massageCushionFirmness { - return [self.store sdl_objectsForName:SDLRPCParameterNameMassageCushionFirmness ofClass:SDLMassageCushionFirmness.class error:nil]; -} - -- (void)setMemory:(nullable SDLSeatMemoryAction *)memory { - [self.store sdl_setObject:memory forName:SDLRPCParameterNameMemory]; -} - -- (nullable SDLSeatMemoryAction *)memory { - return [self.store sdl_objectForName:SDLRPCParameterNameMemory ofClass:SDLSeatMemoryAction.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.h deleted file mode 100644 index 0c4d705..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// SDLSeatLocation.h -// SmartDeviceLink -// -// Created by standa1 on 7/11/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCMessage.h" -#import "SDLGrid.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Describes the location of a seat - */ -@interface SDLSeatLocation : SDLRPCStruct - -/** - * Optional - */ -@property (strong, nonatomic, nullable) SDLGrid *grid; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.m deleted file mode 100644 index 82fc289..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocation.m +++ /dev/null @@ -1,25 +0,0 @@ -// -// SDLSeatLocation.m -// SmartDeviceLink -// -// Created by standa1 on 7/11/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLSeatLocation.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -@implementation SDLSeatLocation - -- (void)setGrid:(nullable SDLGrid *)grid { - [self.store sdl_setObject:grid forName:SDLRPCParameterNameGrid]; -} - -- (nullable SDLGrid *)grid { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameGrid ofClass:SDLGrid.class error:&error]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.h deleted file mode 100644 index 1bd5f56..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.h +++ /dev/null @@ -1,55 +0,0 @@ -// -// SDLSeatLocationCapability.h -// SmartDeviceLink -// -// Created by standa1 on 7/11/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCMessage.h" - -#import "SDLSeatLocation.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Contains information about the locations of each seat. - */ -@interface SDLSeatLocationCapability : SDLRPCStruct - -/// Constructs a newly allocated SDLSeatLocationCapability object with all parameters -/// -/// @param seats Describes the location of a seat -/// @param cols Number of columns -/// @param rows Number of rows -/// @param levels Number of levels -/// @return An SDLSeatLocationCapability object -- (instancetype)initWithSeats:(NSArray *)seats cols:(NSNumber *)cols rows:(NSNumber *)rows levels:(NSNumber *)levels; - -/** - * - * Optional, Integer, 1 - 100 - */ -@property (strong, nonatomic, nullable) NSNumber *cols; - -/** - * - * Optional, Integer, 1 - 100 - */ -@property (strong, nonatomic, nullable) NSNumber *rows; - -/** - * - * Optional, Integer, 1 - 100 - */ -@property (strong, nonatomic, nullable) NSNumber *levels; - -/** - * Contains a list of SeatLocation in the vehicle, the first element is the driver's seat - * Optional - */ -@property (strong, nonatomic, nullable) NSArray *seats; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.m deleted file mode 100644 index f6c59e5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatLocationCapability.m +++ /dev/null @@ -1,70 +0,0 @@ -// -// SDLSeatLocationCapability.m -// SmartDeviceLink -// -// Created by standa1 on 7/11/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLSeatLocationCapability.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSeatLocationCapability - -- (instancetype)initWithSeats:(NSArray *)seats cols:(NSNumber *)cols rows:(NSNumber *)rows levels:(NSNumber *)levels { - self = [self init]; - if (!self) { - return self; - } - - self.seats = seats; - self.cols = cols; - self.rows = rows; - self.levels = levels; - - return self; -} - -- (void)setCols:(nullable NSNumber *)cols { - [self.store sdl_setObject:cols forName:SDLRPCParameterNameColumns]; -} - -- (nullable NSNumber *)cols { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameColumns ofClass:NSNumber.class error:&error]; -} - -- (void)setRows:(nullable NSNumber *)rows { - [self.store sdl_setObject:rows forName:SDLRPCParameterNameRows]; -} - -- (nullable NSNumber *)rows { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameRows ofClass:NSNumber.class error:&error]; -} - -- (void)setLevels:(nullable NSNumber *)levels { - [self.store sdl_setObject:levels forName:SDLRPCParameterNameLevels]; -} - -- (nullable NSNumber *)levels { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLevels ofClass:NSNumber.class error:&error]; -} - -- (void)setSeats:(nullable NSArray *)seats { - [self.store sdl_setObject:seats forName:SDLRPCParameterNameSeats]; -} - -- (nullable NSArray *)seats { - NSError *error = nil; - return [self.store sdl_objectsForName:SDLRPCParameterNameSeats ofClass:SDLSeatLocation.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryAction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryAction.h deleted file mode 100644 index 7dbcf64..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryAction.h +++ /dev/null @@ -1,61 +0,0 @@ -// SDLSeatMemoryAction.h -// - -#import "SDLRPCStruct.h" -#import "SDLSeatMemoryActionType.h" - -/** - * Specify the action to be performed. - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSeatMemoryAction : SDLRPCStruct - - -/** - @abstract Constructs a newly allocated SDLSeatMemoryAction object with id, label (max length 100 chars) and action type - - @param id of the action to be performed - @param action type of action to be performed - @return A SDLSeatMemoryAction object - */ -- (instancetype)initWithId:(UInt8)id action:(SDLSeatMemoryActionType)action; - -/** - @abstract Constructs a newly allocated SDLSeatMemoryAction object with id, label (max length 100 chars) and action type - - @param id of the action to be performed - @param label of the action to be performed. - @param action type of action to be performed - @return A SDLSeatMemoryAction object - */ -- (instancetype)initWithId:(UInt8)id label:(nullable NSString*) label action:(SDLSeatMemoryActionType)action; - -/** - * @abstract id of the action to be performed. - * - * Required, MinValue- 0 MaxValue= 10 - * - */ -@property (strong, nonatomic) NSNumber *id; - -/** - * @abstract label of the action to be performed. - * - * Optional, Max length 100 chars - */ -@property (nullable, strong, nonatomic) NSString *label; - -/** - * @abstract type of action to be performed - * - * Required, @see SDLSeatMemoryActionType - * - */ -@property (strong, nonatomic) SDLSeatMemoryActionType action; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryAction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryAction.m deleted file mode 100644 index 3c2bde0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryAction.m +++ /dev/null @@ -1,62 +0,0 @@ -// SDLSeatMemoryAction.m -// - -#import "SDLSeatMemoryAction.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSeatMemoryAction - -- (instancetype)initWithId:(UInt8)id action:(SDLSeatMemoryActionType)action { - self = [super init]; - if (!self) { - return nil; - } - - self.id = @(id); - self.action = action; - - return self; -} - -- (instancetype)initWithId:(UInt8)id label:(nullable NSString*)label action:(SDLSeatMemoryActionType)action { - self = [self initWithId:id action:action]; - if (!self) { - return nil; - } - - self.label = label; - return self; -} - -- (void)setId:(NSNumber *)id { - [self.store sdl_setObject:id forName:SDLRPCParameterNameId]; -} - -- (NSNumber *)id { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameId ofClass:NSNumber.class error:&error]; -} - -- (void)setLabel:(nullable NSString *)label { - [self.store sdl_setObject:label forName:SDLRPCParameterNameLabel]; -} - -- (nullable NSString *)label { - return [self.store sdl_objectForName:SDLRPCParameterNameLabel ofClass:NSString.class error:nil]; -} - -- (void)setAction:(SDLSeatMemoryActionType)action { - [self.store sdl_setObject:action forName:SDLRPCParameterNameAction]; -} - -- (SDLSeatMemoryActionType)action { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameAction error:&error]; -} -@end - - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryActionType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryActionType.h deleted file mode 100644 index 9ac8eaf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryActionType.h +++ /dev/null @@ -1,27 +0,0 @@ -// SDLSeatMemoryActionType.h -// - -#import "SDLEnum.h" - -/** - * List of possible actions on Seat Meomry - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLSeatMemoryActionType SDL_SWIFT_ENUM; - -/** - * @abstract Save current seat postions and settings to seat memory. - */ -extern SDLSeatMemoryActionType const SDLSeatMemoryActionTypeSave; - -/** - * @abstract Restore / apply the seat memory settings to the current seat. - */ -extern SDLSeatMemoryActionType const SDLSeatMemoryActionTypeRestore; - -/** - * @abstract No action to be performed. - */ -extern SDLSeatMemoryActionType const SDLSeatMemoryActionTypeNone; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryActionType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryActionType.m deleted file mode 100644 index 6e27c1c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSeatMemoryActionType.m +++ /dev/null @@ -1,8 +0,0 @@ -// SDLSeatMemoryActionType.m -// - -#import "SDLSeatMemoryActionType.h" - -SDLSeatMemoryActionType const SDLSeatMemoryActionTypeSave = @"SAVE"; -SDLSeatMemoryActionType const SDLSeatMemoryActionTypeRestore = @"RESTORE"; -SDLSeatMemoryActionType const SDLSeatMemoryActionTypeNone = @"NONE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.h deleted file mode 100644 index 3552588..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// SDLSecondaryTransportManager.h -// SmartDeviceLink-iOS -// -// Created by Sho Amano on 2018/02/28. -// Copyright © 2018 Xevo Inc. All rights reserved. -// - -#import "SDLProtocolDelegate.h" -#import "SDLStreamingProtocolDelegate.h" - -@class SDLControlFramePayloadRPCStartServiceAck; -@class SDLControlFramePayloadTransportEventUpdate; -@class SDLProtocol; -@class SDLStateMachine; - -NS_ASSUME_NONNULL_BEGIN - -typedef NSString SDLSecondaryTransportState; -extern SDLSecondaryTransportState *const SDLSecondaryTransportStateStopped; -extern SDLSecondaryTransportState *const SDLSecondaryTransportStateStarted; -extern SDLSecondaryTransportState *const SDLSecondaryTransportStateConfigured; -extern SDLSecondaryTransportState *const SDLSecondaryTransportStateConnecting; -extern SDLSecondaryTransportState *const SDLSecondaryTransportStateRegistered; -extern SDLSecondaryTransportState *const SDLSecondaryTransportStateReconnecting; - -/** - A class to control and manage secondary transport feature. - - Secondary transport manager does most of the things required for the feature. It listens - on the primary transport and receives necessary information through Version Negotiation - and TransportEventUpdate control frame. It initiates secondary transport's connection - and sets up SDLProtocol that runs on the transport. Then it starts streaming media - manager with appropriate SDLProtocol instance. When the secondary transport is - disconnected, this manager retries connection with a regular interval. - */ -@interface SDLSecondaryTransportManager : NSObject - -/// Create a new secondary transport manager. -/// @param streamingProtocolDelegate a delegate to handle updates on protocol instances -/// @param queue a serial dispatch queue that the internal state machine runs on -- (instancetype)initWithStreamingProtocolDelegate:(id)streamingProtocolDelegate - serialQueue:(dispatch_queue_t)queue; - -/// Start the manager. -/// @param primaryProtocol The protocol that runs on the main (primary) transport -- (void)startWithPrimaryProtocol:(SDLProtocol *)primaryProtocol; - -/// Stop the manager -/// @param completionHandler Handler called when the manager has shutdown -- (void)stopWithCompletionHandler:(void (^)(void))completionHandler; - -/// Destroys the secondary transport. -/// @param completionHandler Handler called when the session has been destroyed -- (void)disconnectSecondaryTransportWithCompletionHandler:(void (^)(void))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.m deleted file mode 100644 index 2db93c7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecondaryTransportManager.m +++ /dev/null @@ -1,839 +0,0 @@ -// -// SDLSecondaryTransportManager.m -// SmartDeviceLink -// -// Created by Sho Amano on 2018/02/28. -// Copyright © 2018 Xevo Inc. All rights reserved. -// - -#import -#import - -#import "SDLSecondaryTransportManager.h" - -#import "SDLBackgroundTaskManager.h" -#import "SDLControlFramePayloadConstants.h" -#import "SDLControlFramePayloadRPCStartServiceAck.h" -#import "SDLControlFramePayloadTransportEventUpdate.h" -#import "SDLIAPTransport.h" -#import "SDLLogMacros.h" -#import "SDLOnHMIStatus.h" -#import "SDLProtocol.h" -#import "SDLProtocolHeader.h" -#import "SDLProtocolMessage.h" -#import "SDLNotificationConstants.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLStateMachine.h" -#import "SDLTCPTransport.h" -#import "SDLTimer.h" - -NS_ASSUME_NONNULL_BEGIN - -// same as SDLProtocol.m -typedef NSNumber SDLServiceTypeBox; - -typedef NS_ENUM(NSInteger, SDLTransportClass) { - SDLTransportClassInvalid = 0, - SDLTransportClassPrimary = 1, - SDLTransportClassSecondary = 2, -}; -typedef NSNumber SDLTransportClassBox; - -typedef NS_ENUM(NSInteger, SDLSecondaryTransportType) { - SDLSecondaryTransportTypeDisabled, // only for Secondary Transport - SDLSecondaryTransportTypeIAP, - SDLSecondaryTransportTypeTCP -}; -typedef NSNumber SDLSecondaryTransportTypeBox; - -SDLSecondaryTransportState *const SDLSecondaryTransportStateStopped = @"Stopped"; -SDLSecondaryTransportState *const SDLSecondaryTransportStateStarted = @"Started"; -SDLSecondaryTransportState *const SDLSecondaryTransportStateConfigured = @"Configured"; -SDLSecondaryTransportState *const SDLSecondaryTransportStateConnecting = @"Connecting"; -SDLSecondaryTransportState *const SDLSecondaryTransportStateRegistered = @"Registered"; -SDLSecondaryTransportState *const SDLSecondaryTransportStateReconnecting = @"Reconnecting"; - -/// Name for the background task started when the device app is backgrounded. -NSString *const BackgroundTaskSecondaryTransportName = @"com.sdl.transport.secondaryTransportBackgroundTask"; - -// Timeout for receiving Register Secondary Transport ACK frame -static const float RegisterTransportTime = 10.0; - -// Delay to retry connection after secondary transport is disconnected or registration is failed -static const float RetryConnectionDelay = 5.0; - -// Indicates that a TCP port is not specified (unconfigured). -static const int TCPPortUnspecified = -1; - -/// The old and new protocols being used when the transport switches. If the old protocol is `nil`, the transport is not yet started; newProtocol is `nil` the transport will be stopped. -struct TransportProtocolUpdated { - SDLProtocol * _Nullable oldProtocol; - SDLProtocol * _Nullable newProtocol; -} transportUpdated; - -@interface SDLSecondaryTransportManager () - -/// State of this manager. -@property (strong, nonatomic) SDLStateMachine *stateMachine; -// Dedicated queue that the state machine will run on. -@property (copy, nonatomic) dispatch_queue_t stateMachineQueue; - -// Instance of the protocol that runs on primary transport. -@property (strong, nonatomic) SDLProtocol *primaryProtocol; -/// The header of the Start Service ACK frame received on primary transport -@property (copy, nonatomic) SDLProtocolHeader *primaryRPCHeader; - -// Selected type of secondary transport. If 'SDLSecondaryTransportTypeDisabled' then secondary transport is disabled. -@property (assign, nonatomic) SDLSecondaryTransportType secondaryTransportType; -// Instance of the transport for secondary transport. -@property (strong, nonatomic, nullable) id secondaryTransport; -// Instance of the protocol that runs on secondary transport. -@property (strong, nonatomic, nullable) SDLProtocol *secondaryProtocol; -// Timer to check Register Secondary Transport ACK response on secondary transport. -@property (strong, nonatomic, nullable) SDLTimer *registerTransportTimer; - -// A delegate to notify protocol change. -@property (weak, nonatomic) id streamingProtocolDelegate; - -// Configuration sent by system; list of transports that are allowed to carry audio service -@property (strong, nonatomic) NSArray *transportsForAudioService; -// Configuration sent by system; list of transports that are allowed to carry video service -@property (strong, nonatomic) NSArray *transportsForVideoService; -// A map to remember which service is currently running on which transport -@property (strong, nonatomic) NSMutableDictionary *streamingServiceTransportMap; - -// IP address of SDL Core (either IPv4 or IPv6 address) -@property (strong, nonatomic, nullable) NSString *ipAddress; -// TCP port number of SDL Core. If the information isn't available then TCPPortUnspecified is stored. -@property (assign, nonatomic) int tcpPort; - -/// The current hmi level of the SDL app. -@property (strong, nonatomic, nullable) SDLHMILevel currentHMILevel; - -/// The current application state of the app on the phone. This information is tracked because TCP transport can only reliably work when the app on the phone is in the foreground. If the phone is locked or the app is put in the background for a long time, the OS can reclaim the socket. -@property (assign, nonatomic) UIApplicationState currentApplicationState; - -/// A background task used to close the secondary transport before the app is suspended. -@property (strong, nonatomic) SDLBackgroundTaskManager *backgroundTaskManager; - -/// A handler called when the secondary transport has been shutdown -@property (nonatomic, copy, nullable) void (^disconnectCompletionHandler)(void); - -@end - -@implementation SDLSecondaryTransportManager - -#pragma mark - Public - -- (instancetype)initWithStreamingProtocolDelegate:(id)streamingProtocolDelegate - serialQueue:(dispatch_queue_t)queue { - self = [super init]; - if (!self) { - return nil; - } - - _stateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLSecondaryTransportStateStopped states:[self.class sdl_stateTransitionDictionary]]; - _stateMachineQueue = queue; - _streamingProtocolDelegate = streamingProtocolDelegate; - - _secondaryTransportType = SDLSecondaryTransportTypeDisabled; - _transportsForAudioService = @[]; - _transportsForVideoService = @[]; - _streamingServiceTransportMap = [@{@(SDLServiceTypeAudio):@(SDLTransportClassInvalid), - @(SDLServiceTypeVideo):@(SDLTransportClassInvalid)} mutableCopy]; - _tcpPort = TCPPortUnspecified; - - _backgroundTaskManager = [[SDLBackgroundTaskManager alloc] initWithBackgroundTaskName:BackgroundTaskSecondaryTransportName]; - - _currentApplicationState = UIApplicationStateInactive; - __weak typeof(self) weakSelf = self; - dispatch_async(dispatch_get_main_queue(), ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - strongSelf.currentApplicationState = UIApplication.sharedApplication.applicationState; - }); - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusDidChange:) name:SDLDidChangeHMIStatusNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appStateDidBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appStateDidBecomeInactive:) name:UIApplicationWillResignActiveNotification object:nil]; - - return self; -} - -- (void)startWithPrimaryProtocol:(SDLProtocol *)primaryProtocol { - SDLLogD(@"SDLSecondaryTransportManager start"); - - // this method must be called in SDLLifecycleManager's state machine queue - if (strcmp(dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL), dispatch_queue_get_label(self.stateMachineQueue)) != 0) { - SDLLogE(@"startWithPrimaryProtocol: must be called in SDLLifecycleManager's state machine queue!"); - } - - if (![self.stateMachine isCurrentState:SDLSecondaryTransportStateStopped]) { - SDLLogW(@"Secondary transport manager is already started!"); - return; - } - - self.primaryProtocol = primaryProtocol; - - @synchronized(self.primaryProtocol.protocolDelegateTable) { - [self.primaryProtocol.protocolDelegateTable addObject:self]; - } - - [self.stateMachine transitionToState:SDLSecondaryTransportStateStarted]; -} - -- (void)stopWithCompletionHandler:(void (^)(void))completionHandler { - SDLLogD(@"Stopping manager"); - - // this method must be called in SDLLifecycleManager's state machine queue - if (strcmp(dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL), dispatch_queue_get_label(self.stateMachineQueue)) != 0) { - SDLLogE(@"stop must be called in SDLLifecycleManager's state machine queue!"); - } - - // stop all services, including those running on primary transport - SDLLogD(@"Stopping audio / video services on both transports"); - [self sdl_handleTransportUpdateWithPrimaryAvailable:NO secondaryAvailable:NO]; - - if ([self.stateMachine.currentState isEqualToEnum:SDLSecondaryTransportStateStopped]) { - return completionHandler(); - } - - // In order to stop the secondary transport - // 1. The observer must be told to shut down the services running on the transports. This can take a few moments since a request must be sent to the module a response must be awaited. - // 2. Once the services have been shutdown, the observer will notifiy this class by calling `disconnectSecondaryTransportWithCompletionHandler`. The secondary transport can now be shutdown. This can take a few memoments since the I/O streams must be closed on the thread they were opened on. - // 3. Once the secondary transport has shutdown successfully, the `disconnectCompletionHandler` will be called. - self.disconnectCompletionHandler = completionHandler; - - [self.stateMachine transitionToState:SDLSecondaryTransportStateStopped]; -} - -#pragma mark - Manager Lifecycle - -- (void)sdl_configureManager:(nullable NSArray *)availableSecondaryTransports - availableTransportsForAudio:(nullable NSArray *)availableTransportsForAudio - availableTransportsForVideo:(nullable NSArray *)availableTransportsForVideo { - if (![self.stateMachine isCurrentState:SDLSecondaryTransportStateStarted]) { - SDLLogW(@"SecondaryTransportManager ignores duplicate Start Service ACK frame"); - return; - } - - // default values - self.secondaryTransportType = SDLSecondaryTransportTypeDisabled; - self.transportsForAudioService = @[@(SDLTransportClassPrimary)]; // If SDL Core did not send a transport list for the service, start it on Primary Transport. - self.transportsForVideoService = @[@(SDLTransportClassPrimary)]; - BOOL validConfig = YES; - - if (availableSecondaryTransports.count > 0) { - // current proposal says the list should contain only one element - SDLSecondaryTransportTypeBox *transportType = availableSecondaryTransports[0]; - self.secondaryTransportType = [transportType integerValue]; - } else { - SDLLogW(@"Did not receive secondary transport type from system. Secondary transport is disabled."); - } - - SDLSecondaryTransportType primaryTransportType = [self sdl_getTransportTypeFromProtocol:self.primaryProtocol]; - if (self.secondaryTransportType == primaryTransportType) { - SDLLogW(@"Same transport is specified for both primary and secondary transport. Secondary transport is disabled."); - self.secondaryTransportType = SDLSecondaryTransportTypeDisabled; - validConfig = NO; // let audio and video services start on primary transport - } else if (self.secondaryTransportType == SDLSecondaryTransportTypeIAP) { - SDLLogW(@"Starting IAP as secondary transport, which does not usually happen"); - } - - if (availableTransportsForAudio != nil && validConfig) { - self.transportsForAudioService = availableTransportsForAudio; - } - if (availableTransportsForVideo != nil && validConfig) { - self.transportsForVideoService = availableTransportsForVideo; - } - - // this will trigger audio / video streaming if they are allowed on primary transport - [self sdl_handleTransportUpdateWithPrimaryAvailable:YES secondaryAvailable:NO]; - - [self.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; -} - -#pragma mark - State machine - -+ (NSDictionary *)sdl_stateTransitionDictionary { - return @{ - SDLSecondaryTransportStateStopped: @[SDLSecondaryTransportStateStarted], - SDLSecondaryTransportStateStarted: @[SDLSecondaryTransportStateConfigured, SDLSecondaryTransportStateStopped], - SDLSecondaryTransportStateConfigured: @[SDLSecondaryTransportStateConnecting, SDLSecondaryTransportStateStopped], - SDLSecondaryTransportStateConnecting: @[SDLSecondaryTransportStateRegistered, SDLSecondaryTransportStateConfigured, SDLSecondaryTransportStateReconnecting, SDLSecondaryTransportStateStopped], - SDLSecondaryTransportStateRegistered: @[SDLSecondaryTransportStateReconnecting, SDLSecondaryTransportStateConfigured, SDLSecondaryTransportStateStopped], - SDLSecondaryTransportStateReconnecting: @[SDLSecondaryTransportStateConfigured, SDLSecondaryTransportStateStopped] - }; -} - -- (void)didEnterStateStopped { - SDLLogD(@"Secondary transport manager stopped"); - - self.streamingServiceTransportMap = [@{@(SDLServiceTypeAudio):@(SDLTransportClassInvalid), - @(SDLServiceTypeVideo):@(SDLTransportClassInvalid)} mutableCopy]; - self.secondaryTransportType = SDLSecondaryTransportTypeDisabled; - self.transportsForAudioService = @[]; - self.transportsForVideoService = @[]; - - self.ipAddress = nil; - self.tcpPort = TCPPortUnspecified; - self.currentHMILevel = nil; - - if (self.disconnectCompletionHandler != nil) { - self.disconnectCompletionHandler(); - self.disconnectCompletionHandler = nil; - } -} - -- (void)didEnterStateStarted { - SDLLogD(@"Secondary transport manager started"); -} - -- (void)didEnterStateConfigured { - SDLLogD(@"Secondary transport manager is configured"); - // If this is a TCP transport, check if it's ready. If it's IAP, we can just continue. In both cases, check if HMI level is Non-NONE - // https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0214-secondary-transport-optimization.md - if (((self.secondaryTransportType == SDLSecondaryTransportTypeTCP && self.sdl_isTCPReady) - || self.secondaryTransportType == SDLSecondaryTransportTypeIAP) - && self.sdl_isHMILevelNonNone) { - [self.stateMachine transitionToState:SDLSecondaryTransportStateConnecting]; - } else { - SDLLogD(@"The secondary transport manager is not ready to transition to connecting state. The app's application state needs to be Active in order to create a socket (current app state is %ld) and we need the socket address (current IP address: %@ and port: %d)", (long)self.currentApplicationState, self.ipAddress, self.tcpPort); - } -} - -- (void)didEnterStateConnecting { - SDLLogD(@"Secondary transport is connecting"); - [self sdl_connectSecondaryTransport]; -} - -- (void)willLeaveStateConnecting { - // make sure to terminate the timer, which is only used in Connecting state - [self.registerTransportTimer cancel]; - self.registerTransportTimer = nil; -} - -- (void)didEnterStateRegistered { - SDLLogD(@"Secondary transport is registered"); - [self sdl_handleTransportUpdateWithPrimaryAvailable:YES secondaryAvailable:YES]; -} - -- (void)willTransitionFromStateRegisteredToStateConfigured { - SDLLogD(@"Manger is closing transport but is configured to resume the secondary transport. Stopping services on secondary transport"); - [self sdl_handleTransportUpdateWithPrimaryAvailable:YES secondaryAvailable:NO]; -} - -- (void)didEnterStateReconnecting { - SDLLogD(@"The secondary transport manager will try to reconnect in %.01f seconds", RetryConnectionDelay); - __weak typeof(self) weakSelf = self; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(RetryConnectionDelay * NSEC_PER_SEC)), _stateMachineQueue, ^{ - if ([weakSelf.stateMachine isCurrentState:SDLSecondaryTransportStateReconnecting]) { - SDLLogD(@"Attempting to reconnect"); - [weakSelf.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; - } - }); -} - - -#pragma mark - Starting / Stopping / Restarting services - -- (void)sdl_handleTransportUpdateWithPrimaryAvailable:(BOOL)primaryAvailable secondaryAvailable:(BOOL)secondaryAvailable { - struct TransportProtocolUpdated audioTransportUpdated = [self sdl_updateService:SDLServiceTypeAudio allowedTransports:self.transportsForAudioService primaryAvailable:primaryAvailable secondaryAvailable:secondaryAvailable]; - struct TransportProtocolUpdated videoTransportUpdated = [self sdl_updateService:SDLServiceTypeVideo allowedTransports:self.transportsForVideoService primaryAvailable:primaryAvailable secondaryAvailable:secondaryAvailable]; - - if (audioTransportUpdated.newProtocol == audioTransportUpdated.oldProtocol && videoTransportUpdated.newProtocol == videoTransportUpdated.oldProtocol) { return; } - - [self.streamingProtocolDelegate didUpdateFromOldVideoProtocol:videoTransportUpdated.oldProtocol toNewVideoProtocol:videoTransportUpdated.newProtocol fromOldAudioProtocol:audioTransportUpdated.oldProtocol toNewAudioProtocol:audioTransportUpdated.newProtocol]; -} - -- (struct TransportProtocolUpdated)sdl_updateService:(SDLServiceType)service allowedTransports:(nonnull NSArray *)transportList primaryAvailable:(BOOL)primaryTransportAvailable secondaryAvailable:(BOOL)secondaryTransportAvailable { - SDLTransportClass newTransport = SDLTransportClassInvalid; - // the list is in preferred order, so take a look from the beginning - for (SDLTransportClassBox *transport in transportList) { - if ([transport intValue] == SDLTransportClassSecondary && secondaryTransportAvailable) { - newTransport = SDLTransportClassSecondary; - break; - } else if ([transport intValue] == SDLTransportClassPrimary && primaryTransportAvailable) { - newTransport = SDLTransportClassPrimary; - break; - } - } - - SDLTransportClass oldTransport = [self.streamingServiceTransportMap[@(service)] intValue]; - - // update transport, and notify the change to start/stop/restart service - self.streamingServiceTransportMap[@(service)] = @(newTransport); - - if (oldTransport != newTransport) { - if (oldTransport != SDLTransportClassInvalid && newTransport != SDLTransportClassInvalid) { - SDLLogD(@"Restarting service 0x%X from %@ to %@ transport", service, [self sdl_getTransportClassName:oldTransport], [self sdl_getTransportClassName:newTransport]); - } else if (oldTransport != SDLTransportClassInvalid) { - SDLLogD(@"Stopping service 0x%X on %@ transport", service, [self sdl_getTransportClassName:oldTransport]); - } else if (newTransport != SDLTransportClassInvalid) { - SDLLogD(@"Starting service 0x%X on %@ transport", service, [self sdl_getTransportClassName:newTransport]); - } - } else { - SDLLogV(@"Transport was not updated"); - } - - struct TransportProtocolUpdated transportUpdated; - transportUpdated.oldProtocol = [self sdl_getProtocolFromTransportClass:oldTransport]; - transportUpdated.newProtocol = [self sdl_getProtocolFromTransportClass:newTransport]; - return transportUpdated; -} - -- (nullable SDLProtocol *)sdl_getProtocolFromTransportClass:(SDLTransportClass)transportClass { - switch (transportClass) { - case SDLTransportClassPrimary: return self.primaryProtocol; - case SDLTransportClassSecondary: return self.secondaryProtocol; - default: return nil; - } -} - -- (nullable NSString *)sdl_getTransportClassName:(SDLTransportClass)transportClass { - switch (transportClass) { - case SDLTransportClassPrimary: return @"primary"; - case SDLTransportClassSecondary: return @"secondary"; - default: return nil; - } -} - - -#pragma mark - Transport management - -#pragma mark Primary transport -- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { - if (startServiceACK.header.serviceType != SDLServiceTypeRPC) { return; } - SDLLogV(@"Received Start Service ACK header of RPC service on primary transport"); - - // Keep header to acquire Session ID - self.primaryRPCHeader = startServiceACK.header; - - SDLControlFramePayloadRPCStartServiceAck *payload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithData:startServiceACK.payload]; - - [self sdl_onStartServiceAckReceived:payload]; -} - -- (void)handleTransportEventUpdateMessage:(SDLProtocolMessage *)transportEventUpdate { - SDLControlFramePayloadTransportEventUpdate *payload = [[SDLControlFramePayloadTransportEventUpdate alloc] initWithData:transportEventUpdate.payload]; - SDLLogV(@"Recieved transport event update on primary transport: %@", payload); - - [self sdl_onTransportEventUpdateReceived:payload]; -} - -#pragma mark Secondary transport - -// try establishing secondary transport. Returns NO if failed -- (BOOL)sdl_connectSecondaryTransport { - if (self.secondaryTransport != nil) { - SDLLogW(@"Attempting to connect secondary transport, but it's already started."); - return NO; - } - - switch (self.secondaryTransportType) { - case SDLSecondaryTransportTypeTCP: - return [self sdl_startTCPSecondaryTransport]; - case SDLSecondaryTransportTypeIAP: - return [self sdl_startIAPSecondaryTransport]; - default: - SDLLogW(@"Unknown transport type for secondary transport: %ld", (long)self.secondaryTransportType); - return NO; - } -} - -- (void)disconnectSecondaryTransportWithCompletionHandler:(void (^)(void))completionHandler { - if (self.secondaryTransport == nil) { - SDLLogW(@"Attempted to disconnect secondary transport but it's already stopped."); - return completionHandler(); - } - - __weak typeof(self) weakSelf = self; - [self.secondaryTransport disconnectWithCompletionHandler:^{ - SDLLogD(@"Disconnecting secondary transport manager"); - - __strong typeof(weakSelf) strongSelf = weakSelf; - strongSelf.secondaryTransport = nil; - strongSelf.secondaryProtocol = nil; - [strongSelf.streamingServiceTransportMap removeAllObjects]; - - [strongSelf.backgroundTaskManager endBackgroundTask]; - return completionHandler(); - }]; -} - -- (BOOL)sdl_startTCPSecondaryTransport { - if (![self sdl_isTCPReady]) { - SDLLogD(@"TCP secondary transport is not ready."); - return NO; - } - - SDLLogD(@"Starting TCP Secondary Transport (IP address = \"%@\", port = \"%d\")", self.ipAddress, self.tcpPort); - - SDLTCPTransport *transport = [[SDLTCPTransport alloc] init]; - transport.hostName = self.ipAddress; - transport.portNumber = [NSString stringWithFormat:@"%d", self.tcpPort]; - - SDLProtocol *protocol = [[SDLProtocol alloc] initWithTransport:transport encryptionManager:self.primaryProtocol.encryptionLifecycleManager]; - protocol.securityManager = self.primaryProtocol.securityManager; - self.secondaryProtocol = protocol; - self.secondaryTransport = transport; - - @synchronized(self.secondaryProtocol.protocolDelegateTable) { - [self.secondaryProtocol.protocolDelegateTable addObject:self]; - } - - // we reuse Session ID acquired from primary transport's protocol - // this is for Register Secondary Transport frame - [self.secondaryProtocol storeHeader:self.primaryRPCHeader forServiceType:SDLServiceTypeControl]; - // this is for video and audio services - [self.secondaryProtocol storeHeader:self.primaryRPCHeader forServiceType:SDLServiceTypeRPC]; - - [self.secondaryTransport connect]; - return YES; -} - -- (BOOL)sdl_startIAPSecondaryTransport { - SDLLogD(@"Starting Secondary Transport: iAP"); - - SDLIAPTransport *transport = [[SDLIAPTransport alloc] init]; - SDLProtocol *protocol = [[SDLProtocol alloc] initWithTransport:transport encryptionManager:self.primaryProtocol.encryptionLifecycleManager]; - protocol.securityManager = self.primaryProtocol.securityManager; - self.secondaryProtocol = protocol; - self.secondaryTransport = transport; - - @synchronized(self.secondaryProtocol.protocolDelegateTable) { - [self.secondaryProtocol.protocolDelegateTable addObject:self]; - } - - // we reuse Session ID acquired from primary transport's protocol - // this is for Register Secondary Transport frame - [self.secondaryProtocol storeHeader:self.primaryRPCHeader forServiceType:SDLServiceTypeControl]; - // this is for video and audio services - [self.secondaryProtocol storeHeader:self.primaryRPCHeader forServiceType:SDLServiceTypeRPC]; - - [self.secondaryTransport connect]; - return YES; -} - -- (BOOL)sdl_isTCPReady { - if ([self.ipAddress length] == 0) { - SDLLogD(@"IP address is empty"); - return NO; - } - if (self.tcpPort == TCPPortUnspecified) { - SDLLogD(@"TCP port number is not available"); - return NO; - } - if (!(self.tcpPort > 0 && self.tcpPort <= 65535)) { - SDLLogW(@"Invalid TCP port number for secondary transport: %d", self.tcpPort); - return NO; - } - - if (self.currentApplicationState != UIApplicationStateActive) { - SDLLogD(@"App state is not Active, TCP transport is not ready"); - return NO; - } - - return YES; -} - -#pragma mark - SDLProtocolListener Implementation - -// called on transport's thread, notifying that the transport is established -- (void)onProtocolOpened { - SDLLogD(@"Secondary transport connected"); - - self.registerTransportTimer = [[SDLTimer alloc] initWithDuration:RegisterTransportTime repeat:NO]; - __weak typeof(self) weakSelf = self; - self.registerTransportTimer.elapsedBlock = ^{ - SDLLogW(@"Timeout for registration of secondary transport"); - dispatch_async(weakSelf.stateMachineQueue, ^{ - __strong typeof(self) strongSelf = weakSelf; - if (!strongSelf) { - return; - } - - // If still in Connecting state, shutdown the transport and try to reconnect - if ([strongSelf.stateMachine isCurrentState:SDLSecondaryTransportStateConnecting]) { - SDLLogD(@"Shutting down and restarting the secondary transport connection after registration timeout"); - [strongSelf sdl_transportClosed]; - } else { - SDLLogD(@"Could not register the secondary transport with the module. The services will not be started on the secondary transport."); - } - }); - }; - [self.registerTransportTimer start]; - - [self.secondaryProtocol registerSecondaryTransport]; -} - -/// Called on the transport's thread, notifying that the transport has errored before a connection was established -/// @param error The error -- (void)onTransportError:(NSError *)error { - SDLLogE(@"The secondary transport errored."); - [self sdl_transportClosed]; -} - -// Called on transport's thread, notifying that the transport is disconnected -// (Note: when transport's disconnect method is called, this method will not be called) -- (void)onProtocolClosed { - SDLLogE(@"The secondary transport disconnected."); - [self sdl_transportClosed]; -} - -/// Try to reconnect the secondary transport if the transport errored during the connection attempt or closed unexpectedly. -- (void)sdl_transportClosed { - dispatch_async(self.stateMachineQueue, ^{ - if ([self sdl_isTransportOpened]) { - SDLLogV(@"Secondary transport is ready to reconnect. Attempting to reconnect the secondary transport"); - [self.streamingProtocolDelegate transportClosed]; - [self.stateMachine transitionToState:SDLSecondaryTransportStateReconnecting]; - } else { - SDLLogD(@"Secondary transport is not ready to reconnect. Will not attempt to reconnect the secondary transport"); - } - }); -} - -// called from SDLProtocol's _receiveQueue of secondary transport -- (void)handleProtocolRegisterSecondaryTransportACKMessage:(SDLProtocolMessage *)registerSecondaryTransportACK { - SDLLogD(@"Received Register Secondary Transport ACK frame"); - - dispatch_async(self.stateMachineQueue, ^{ - // secondary transport is now ready - [self.stateMachine transitionToState:SDLSecondaryTransportStateRegistered]; - }); -} - -// called from SDLProtocol's _receiveQueue of secondary transport -- (void)handleProtocolRegisterSecondaryTransportNAKMessage:(SDLProtocolMessage *)registerSecondaryTransportNAK { - SDLLogW(@"Received Register Secondary Transport NAK frame"); - - dispatch_async(self.stateMachineQueue, ^{ - if ([self.stateMachine.currentState isEqualToEnum:SDLSecondaryTransportStateRegistered]) { - [self sdl_handleTransportUpdateWithPrimaryAvailable:YES secondaryAvailable:NO]; - } - [self.stateMachine transitionToState:SDLSecondaryTransportStateReconnecting]; - }); -} - -/// Called when a Start Service ACK control frame is received on the primary transport. -/// @param payload The payload of Start Service ACK frame received on the primary transport. -- (void)sdl_onStartServiceAckReceived:(SDLControlFramePayloadRPCStartServiceAck *)payload { - NSMutableArray *secondaryTransports = nil; - if (payload.secondaryTransports != nil) { - secondaryTransports = [NSMutableArray array]; - for (NSString *transportString in payload.secondaryTransports) { - SDLSecondaryTransportType transport = [self sdl_convertTransportType:transportString]; - [secondaryTransports addObject:@(transport)]; - } - } - - NSArray *transportsForAudio = [self sdl_convertServiceTransports:payload.audioServiceTransports]; - NSArray *transportsForVideo = [self sdl_convertServiceTransports:payload.videoServiceTransports]; - - SDLLogV(@"Secondary transports: %@, transports for audio: %@, transports for video: %@", secondaryTransports, transportsForAudio, transportsForVideo); - - dispatch_async(_stateMachineQueue, ^{ - [self sdl_configureManager:secondaryTransports availableTransportsForAudio:transportsForAudio availableTransportsForVideo:transportsForVideo]; - }); -} - -/// Called when a Transport Event Update control frame is received on the primary transport. -/// @param payload the payload of Transport Event Update frame -- (void)sdl_onTransportEventUpdateReceived:(SDLControlFramePayloadTransportEventUpdate *)payload { - dispatch_async(_stateMachineQueue, ^{ - BOOL updated = NO; - - if (payload.tcpIpAddress != nil) { - if (![self.ipAddress isEqualToString:payload.tcpIpAddress]) { - self.ipAddress = payload.tcpIpAddress; - updated = YES; - SDLLogD(@"TCP transport IP address updated: %@", self.ipAddress); - } - } - if (payload.tcpPort != SDLControlFrameInt32NotFound) { - if (self.tcpPort != payload.tcpPort) { - self.tcpPort = payload.tcpPort; - updated = YES; - SDLLogD(@"TCP transport port number updated: %d", self.tcpPort); - } - } - - if (updated) { - [self sdl_handleTransportEventUpdate]; - } - }); -} - -- (void)sdl_handleTransportEventUpdate { - if ([self.stateMachine isCurrentState:SDLSecondaryTransportStateStarted]) { - // The system sent Transport Event Update frame prior to Start Service ACK. Just keep the information and do nothing here. - SDLLogV(@"Received TCP transport information prior to Start Service ACK"); - return; - } - if (self.secondaryTransportType != SDLSecondaryTransportTypeTCP) { - SDLLogV(@"Received TCP transport information while the transport is not TCP"); - return; - } - - if ([self.stateMachine isCurrentState:SDLSecondaryTransportStateConfigured] && self.sdl_isTCPReady && self.sdl_isHMILevelNonNone) { - [self.stateMachine transitionToState:SDLSecondaryTransportStateConnecting]; - } else if ([self sdl_isTransportOpened]) { - // Disconnect current transport. If the IP address is available then we will reconnect immediately. - SDLLogD(@"TCP transport information updated, disconnecting current transport"); - [self.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; - } else if ([self.stateMachine isCurrentState:SDLSecondaryTransportStateReconnecting]) { - SDLLogD(@"TCP transport information updated, aborting reconnection timer"); - [self.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; - } -} - -#pragma mark - App state handling - -/// Closes and re-opens the the secondary transport when the app is backgrounded and foregrounded on the device respectively. This is done because sockets can be reclaimed by the system at anytime when the app is not in the foreground. -/// @param notification Notification from the OS that the app's life-cycle state has changed -- (void)sdl_appStateDidBecomeActive:(NSNotification *)notification { - self.currentApplicationState = UIApplicationStateActive; - - __weak typeof(self) weakSelf = self; - dispatch_async(self.stateMachineQueue, ^{ - __strong typeof(self) strongSelf = weakSelf; - SDLLogD(@"App entered the foreground"); - if ([strongSelf.stateMachine isCurrentState:SDLSecondaryTransportStateRegistered]) { - SDLLogD(@"In the registered state; TCP transport has not yet been shutdown. Ending the background task."); - [strongSelf.backgroundTaskManager endBackgroundTask]; - } else if ([strongSelf.stateMachine isCurrentState:SDLSecondaryTransportStateConfigured] - && strongSelf.secondaryTransportType == SDLSecondaryTransportTypeTCP - && [strongSelf sdl_isTCPReady] - && [strongSelf sdl_isHMILevelNonNone]) { - SDLLogD(@"In the configured state; restarting the TCP transport. Ending the background task."); - [strongSelf.backgroundTaskManager endBackgroundTask]; - [strongSelf.stateMachine transitionToState:SDLSecondaryTransportStateConnecting]; - } else { - SDLLogD(@"TCP transport not ready to start, secondary transport state must be in state Configured (currently in state: %@), the SDL app hmi level must be non-NONE (currently in state: %@), and the app must be ready to start a TCP socket (current app state: %ld, current IP address: %@, current port: %d)", strongSelf.stateMachine.currentState, strongSelf.currentHMILevel, self.currentApplicationState, self.ipAddress, self.tcpPort); - } - }); -} - -- (void)sdl_appStateDidBecomeInactive:(NSNotification *)notification { - self.currentApplicationState = UIApplicationStateInactive; - - __weak typeof(self) weakSelf = self; - dispatch_async(self.stateMachineQueue, ^{ - __strong typeof(self) strongSelf = weakSelf; - SDLLogD(@"App will enter the background"); - if ([strongSelf sdl_isTransportOpened] && strongSelf.secondaryTransportType == SDLSecondaryTransportTypeTCP) { - SDLLogD(@"Starting background task to keep TCP transport alive"); - strongSelf.backgroundTaskManager.taskExpiringHandler = [strongSelf sdl_backgroundTaskEndedHandler]; - [strongSelf.backgroundTaskManager startBackgroundTask]; - } else { - SDLLogD(@"TCP transport already disconnected, will not start a background task."); - } - }); -} - -/// Handles a notification that the background task is about to expire. If the app is still backgrounded we must close the TCP socket, which can take a few moments to complete. When this manager transitons to the Configured state, the `SDLStreamingMediaManager` is notified that the secondary transport wants to shutdown via the `streamingProtocolDelegate`. The `SDLStreamingMediaManager` sends an end video service control frame and an end audio service control frame and waits for responses to both requests from the module. Once the module has responded to both end service requests, the `SDLStreamingMediaManager` notifies us that the TCP socket can be shutdown by calling the `disconnectSecondaryTransport` method. Finally, once we know the socket has shutdown, we can end the background task. To ensure that all the shutdown steps are performed, we must delay shutting down the background task, otherwise some of the steps might not complete due to the app being suspended. Improper shutdown can cause trouble when establishing a new streaming session as either the new TCP connection will fail (due to the TCP socket's I/O streams not shutting down) or restarting the video and audio streams can fail (due to Core not receiving the end service requests). On the other hand, we can end the background task immediately if the app has re-entered the foreground or the manager has shutdown as no cleanup needs to be performed. -/// @return A background task ended handler -- (nullable BOOL (^)(void))sdl_backgroundTaskEndedHandler { - __weak typeof(self) weakSelf = self; - return ^{ - __strong typeof(self) strongSelf = weakSelf; - if (strongSelf.currentApplicationState == UIApplicationStateActive || [strongSelf.stateMachine isCurrentState:SDLSecondaryTransportStateStopped]) { - // Return NO as we do not need to perform any cleanup and can end the background task immediately - SDLLogV(@"No cleanup needed since app has been foregrounded."); - return NO; - } else if ([strongSelf.stateMachine isCurrentState:SDLSecondaryTransportStateStopped]) { - // Return NO as we do not need to perform any cleanup and can end the background task immediately - SDLLogV(@"No cleanup needed since manager has been stopped."); - return NO; - } else { - // Return YES as we want to delay ending the background task until shutdown of the secondary transport has finished. Transitoning to the Configured state starts the process of shutting down the streaming services and the TCP socket which can take a few moments to complete. Once the streaming services have shutdown, the `SDLStreamingMediaManager` calls the `disconnectSecondaryTransport` method. The `disconnectSecondaryTransport` takes care of destroying the background task after disconnecting the TCP transport. - SDLLogD(@"Performing cleanup due to the background task expiring: disconnecting the TCP transport."); - [strongSelf.stateMachine transitionToState:SDLSecondaryTransportStateConfigured]; - return YES; - } - }; -} - -#pragma mark - Utility methods - -- (SDLSecondaryTransportType)sdl_convertTransportType:(NSString *)transportString { - if ([transportString isEqualToString:@"TCP_WIFI"]) { - return SDLSecondaryTransportTypeTCP; - } else if ([transportString isEqualToString:@"IAP_BLUETOOTH"] || - [transportString isEqualToString:@"IAP_USB"] || - [transportString isEqualToString:@"IAP_USB_HOST_MODE"] || - [transportString isEqualToString:@"IAP_USB_DEVICE_MODE"] || - [transportString isEqualToString:@"IAP_CARPLAY"]) { - return SDLSecondaryTransportTypeIAP; - } else { - // "SPP_BLUETOOTH" and "AOA_USB" are not used - return SDLSecondaryTransportTypeDisabled; - } -} - -- (nullable NSArray *)sdl_convertServiceTransports:(nullable NSArray *)transports { - if (transports == nil) { - return nil; - } - - // Actually there is nothing to "convert" here. We just check the range and recreate an array. - NSMutableArray *array = [[NSMutableArray alloc] init]; - for (NSNumber *num in transports) { - int transport = [num intValue]; - if (transport == 1) { - [array addObject:@(SDLTransportClassPrimary)]; - } else if (transport == 2) { - [array addObject:@(SDLTransportClassSecondary)]; - } else { - SDLLogE(@"Unknown transport class received: %d", transport); - } - } - - return [array copy]; -} - -- (SDLSecondaryTransportType)sdl_getTransportTypeFromProtocol:(SDLProtocol *)protocol { - if ([protocol.transport isMemberOfClass:[SDLIAPTransport class]]) { - return SDLSecondaryTransportTypeIAP; - } else if ([protocol.transport isMemberOfClass:[SDLTCPTransport class]]) { - return SDLSecondaryTransportTypeTCP; - } else { - SDLLogE(@"Unknown type of primary transport"); - return SDLSecondaryTransportTypeDisabled; - } -} - -- (BOOL)sdl_isTransportOpened { - return [self.stateMachine isCurrentState:SDLSecondaryTransportStateConnecting] || [self.stateMachine isCurrentState:SDLSecondaryTransportStateRegistered]; -} - -- (BOOL)sdl_isHMILevelNonNone { - return (self.currentHMILevel != nil && ![self.currentHMILevel isEqualToEnum:SDLHMILevelNone]); -} - -#pragma mark - RPC Notifications - -/// Check and track the HMI status to ensure that the secondary transport only attempts a connection in non-NONE HMI states -/// -/// See: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0214-secondary-transport-optimization.md -/// -/// @param notification The NSNotification containing the OnHMIStatus -- (void)sdl_hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { - if (![notification isNotificationMemberOfClass:[SDLOnHMIStatus class]]) { - return; - } - - SDLOnHMIStatus *hmiStatus = notification.notification; - self.currentHMILevel = hmiStatus.hmiLevel; - - // If the HMI level is non-NONE, and the state machine is currently waiting in the configured state, and _either_ we're using TCP and it's ready _or_ we're using IAP. - if (self.sdl_isHMILevelNonNone - && [self.stateMachine isCurrentState:SDLSecondaryTransportStateConfigured] - && ((self.secondaryTransportType == SDLSecondaryTransportTypeTCP && [self sdl_isTCPReady]) || (self.secondaryTransportType == SDLSecondaryTransportTypeIAP))) { - [self.stateMachine transitionToState:SDLSecondaryTransportStateConnecting]; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecurityType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecurityType.h deleted file mode 100644 index 202149e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSecurityType.h +++ /dev/null @@ -1,74 +0,0 @@ -// -// SDLSecurityType.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 2/2/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - A protocol used by SDL Security libraries. - - @warning Used internally - */ -@protocol SDLSecurityType - -/** - The app id of the app - */ -@property (copy, nonatomic) NSString *appId; - -/** - Initialize the SDL security library with the app's id and a completion handler - - @param appId The app's id - @param completionHandler A handler for when the security library is initialized - */ -- (void)initializeWithAppId:(NSString *)appId completionHandler:(void (^)(NSError *_Nullable error))completionHandler; - -/** - Stop the security library - */ -- (void)stop; - -/** - Run the SSL/TLS handshake - - @param data The client data for the handshake - @param error A returnable error - @return The server handshake data - */ -- (nullable NSData *)runHandshakeWithClientData:(NSData *)data error:(NSError **)error; - -/** - Encrypt data using SSL/TLS - - @param data The data to encrypt - @param error A returnable error - @return The encrypted data - */ -- (nullable NSData *)encryptData:(NSData *)data withError:(NSError **)error; - -/** - Decrypt data using SSL/TLS - - @param data The data to decrypt - @param error A returnable error - @return The decrypted data - */ -- (nullable NSData *)decryptData:(NSData *)data withError:(NSError **)error; - -/** - The vehicle makes this security library covers - - @return The makes - */ -+ (NSSet *)availableMakes; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticData.h deleted file mode 100644 index c4c0f23..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticData.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// SDLSendHapticData.h -// SmartDeviceLink-iOS -// -// Created by Nicole on 8/3/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import -#import "SDLRPCRequest.h" - -@class SDLHapticRect; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Sends the spatial data gathered from SDLCarWindow or VirtualDisplayEncoder to the HMI. This data will be utilized by the HMI to determine how and when haptic events should occur. - */ -@interface SDLSendHapticData : SDLRPCRequest - -/** - * Constructs a new SDLSendHapticData object indicated by the hapticSpatialData parameter - * - * @param hapticRectData Array of spatial data structures - */ -- (instancetype)initWithHapticRectData:(NSArray *)hapticRectData; - -/** - * Array of spatial data structures that represent the locations of all user controls present on the HMI. This data should be updated if/when the application presents a new screen. When a request is sent, if successful, it will replace all spatial data previously sent through RPC. If an empty array is sent, the existing spatial data will be cleared - * - * Optional, Array of SDLHapticRect, Array size 0 - 1,000 - */ -@property (strong, nonatomic, nullable) NSArray *hapticRectData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticData.m deleted file mode 100644 index f684b41..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticData.m +++ /dev/null @@ -1,49 +0,0 @@ -// -// SDLSendHapticData.m -// SmartDeviceLink-iOS -// -// Created by Nicole on 8/3/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSendHapticData.h" -#import "SDLHapticRect.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSendHapticData - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSendHapticData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithHapticRectData:(NSArray *)hapticRectData { - self = [self init]; - if (!self) { - return nil; - } - - self.hapticRectData = [hapticRectData mutableCopy]; - - return self; -} - -- (void)setHapticRectData:(nullable NSArray *)hapticRectData { - [self.parameters sdl_setObject:hapticRectData forName:SDLRPCParameterNameHapticRectData]; -} - -- (nullable NSArray *)hapticRectData { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameHapticRectData ofClass:SDLHapticRect.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticDataResponse.h deleted file mode 100644 index 3be41e5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticDataResponse.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// SDLSendHapticDataResponse.h -// SmartDeviceLink-iOS -// -// Created by Nicole on 8/4/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLSendHapticData - */ -@interface SDLSendHapticDataResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticDataResponse.m deleted file mode 100644 index dd7231c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendHapticDataResponse.m +++ /dev/null @@ -1,29 +0,0 @@ - -// -// SDLSendHapticDataResponse.m -// SmartDeviceLink-iOS -// -// Created by Nicole on 8/4/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSendHapticDataResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSendHapticDataResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSendHapticData]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.h deleted file mode 100644 index ab0d747..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.h +++ /dev/null @@ -1,139 +0,0 @@ -// -// SDLSendLocation.h -// SmartDeviceLink - -#import "SDLRPCRequest.h" - -#import - -#import "SDLDateTime.h" -#import "SDLDeliveryMode.h" -#import "SDLImage.h" -#import "SDLOasisAddress.h" - -NS_ASSUME_NONNULL_BEGIN - -/// SendLocation is used to send a location to the navigation system for navigation -/// -/// @since RPC 3.0 -@interface SDLSendLocation : SDLRPCRequest - -/** - Create a `SendLocation` request with an address object, without Lat/Long coordinates. - - @param address The address information to be passed to the nav system for determining the route - @param addressLines The user-facing address - @param locationName The user-facing name of the location - @param locationDescription The user-facing description of the location - @param phoneNumber The phone number for the location; the user could use this to call the location - @param image A user-facing image for the location - @param deliveryMode How the location should be sent to the nav system - @param timeStamp The estimated arrival time for the location (this will also likely be calculated by the nav system later, and may be different than your estimate). This is used to show the user approximately how long it would take to navigate here - @return A `SendLocation` object - */ -- (instancetype)initWithAddress:(SDLOasisAddress *)address addressLines:(nullable NSArray *)addressLines locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp; - -/** - Create a `SendLocation` request with Lat/Long coordinate, not an address object - - @param longitude The longitudinal coordinate of the location - @param latitude The latitudinal coordinate of the location - @param locationName The user-facing name of the location - @param locationDescription The user-facing description of the location - @param address The user-facing address - @param phoneNumber The phone number for the location; the user could use this to call the location - @param image A user-facing image for the location - @return A `SendLocation` object - */ -- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription address:(nullable NSArray *)address phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image; - -/** - Create a `SendLocation` request with Lat/Long coordinate and an address object and let the nav system decide how to parse it - - @param longitude The longitudinal coordinate of the location - @param latitude The latitudinal coordinate of the location - @param locationName The user-facing name of the location - @param locationDescription The user-facing description of the location - @param displayAddressLines The user-facing address - @param phoneNumber The phone number for the location; the user could use this to call the location - @param image A user-facing image for the location - @param deliveryMode How the location should be sent to the nav system - @param timeStamp The estimated arrival time for the location (this will also likely be calculated by the nav system later, and may be different than your estimate). This is used to show the user approximately how long it would take to navigate here - @param address The address information to be passed to the nav system for determining the route - @return A `SendLocation` object - */ -- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription displayAddressLines:(nullable NSArray *)displayAddressLines phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp address:(nullable SDLOasisAddress *)address; - -/** - * The longitudinal coordinate of the location. Either the latitude / longitude OR the `address` must be provided. - * - * Float, Optional, -180.0 - 180.0 - */ -@property (nullable, copy, nonatomic) NSNumber *longitudeDegrees; - -/** - * The latitudinal coordinate of the location. Either the latitude / longitude OR the `address` must be provided. - * - * Float, Optional, -90.0 - 90.0 - */ -@property (nullable, copy, nonatomic) NSNumber *latitudeDegrees; - -/** - * Name / title of intended location - * - * Optional, Maxlength = 500 char - */ -@property (nullable, copy, nonatomic) NSString *locationName; - -/** - * Description of the intended location / establishment - * - * Optional, MaxLength = 500 char - */ -@property (nullable, copy, nonatomic) NSString *locationDescription; - -/** - * Location address for display purposes only. - * - * Contains String, Optional, Max Array Length = 4, Max String Length = 500 - */ -@property (nullable, copy, nonatomic) NSArray *addressLines; - -/** - * Phone number of intended location / establishment - * - * Optional, Max Length = 500 - */ -@property (nullable, copy, nonatomic) NSString *phoneNumber; - -/** - * Image / icon of intended location - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLImage *locationImage; - -/** - * Mode in which the sendLocation request is sent - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLDeliveryMode deliveryMode; - -/** - * Arrival time of Location. If multiple SendLocations are sent, this will be used for sorting as well. - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLDateTime *timeStamp; - -/** - * Address to be used for setting destination. Either the latitude / longitude OR the `address` must be provided. - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLOasisAddress *address; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.m deleted file mode 100644 index a63db0c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocation.m +++ /dev/null @@ -1,149 +0,0 @@ -// -// SDLSendLocation.m -// SmartDeviceLink - -#import "SDLSendLocation.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSendLocation - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - self = [super initWithName:SDLRPCFunctionNameSendLocation]; - if (!self) { - return nil; - } - - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithAddress:(SDLOasisAddress *)address addressLines:(nullable NSArray *)addressLines locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp { - self = [self init]; - if (!self) { return nil; } - - self.address = address; - self.addressLines = addressLines; - self.locationName = locationName; - self.locationDescription = locationDescription; - self.phoneNumber = phoneNumber; - self.locationImage = image; - self.deliveryMode = deliveryMode; - self.timeStamp = timeStamp; - - return self; -} - -- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription address:(nullable NSArray *)address phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image { - return [self initWithLongitude:longitude latitude:latitude locationName:locationName locationDescription:locationDescription displayAddressLines:address phoneNumber:phoneNumber image:image deliveryMode:nil timeStamp:nil address:nil]; -} - -- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription displayAddressLines:(nullable NSArray *)displayAddressLines phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp address:(nullable SDLOasisAddress *)address { - self = [self init]; - if (!self) { - return nil; - } - - self.longitudeDegrees = @(longitude); - self.latitudeDegrees = @(latitude); - self.locationName = locationName; - self.locationDescription = locationDescription; - self.addressLines = displayAddressLines; - self.phoneNumber = phoneNumber; - self.locationImage = image; - self.deliveryMode = deliveryMode; - self.timeStamp = timeStamp; - self.address = address; - - return self; -} - -- (void)setLongitudeDegrees:(nullable NSNumber *)longitudeDegrees { - [self.parameters sdl_setObject:longitudeDegrees forName:SDLRPCParameterNameLongitudeDegrees]; -} - -- (nullable NSNumber *)longitudeDegrees { - return [self.parameters sdl_objectForName:SDLRPCParameterNameLongitudeDegrees ofClass:NSNumber.class error:nil]; -} - -- (void)setLatitudeDegrees:(nullable NSNumber *)latitudeDegrees { - [self.parameters sdl_setObject:latitudeDegrees forName:SDLRPCParameterNameLatitudeDegrees]; -} - -- (nullable NSNumber *)latitudeDegrees { - return [self.parameters sdl_objectForName:SDLRPCParameterNameLatitudeDegrees ofClass:NSNumber.class error:nil]; -} - -- (void)setLocationName:(nullable NSString *)locationName { - [self.parameters sdl_setObject:locationName forName:SDLRPCParameterNameLocationName]; -} - -- (nullable NSString *)locationName { - return [self.parameters sdl_objectForName:SDLRPCParameterNameLocationName ofClass:NSString.class error:nil]; -} - -- (void)setAddressLines:(nullable NSArray *)addressLines { - [self.parameters sdl_setObject:addressLines forName:SDLRPCParameterNameAddressLines]; -} - -- (nullable NSString *)locationDescription { - return [self.parameters sdl_objectForName:SDLRPCParameterNameLocationDescription ofClass:NSString.class error:nil]; -} - -- (void)setLocationDescription:(nullable NSString *)locationDescription { - [self.parameters sdl_setObject:locationDescription forName:SDLRPCParameterNameLocationDescription]; -} - -- (nullable NSArray *)addressLines { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameAddressLines ofClass:NSString.class error:nil]; -} - -- (void)setPhoneNumber:(nullable NSString *)phoneNumber { - [self.parameters sdl_setObject:phoneNumber forName:SDLRPCParameterNamePhoneNumber]; -} - -- (nullable NSString *)phoneNumber { - return [self.parameters sdl_objectForName:SDLRPCParameterNamePhoneNumber ofClass:NSString.class error:nil]; -} - -- (void)setLocationImage:(nullable SDLImage *)locationImage { - [self.parameters sdl_setObject:locationImage forName:SDLRPCParameterNameLocationImage]; -} - -- (nullable SDLImage *)locationImage { - return [self.parameters sdl_objectForName:SDLRPCParameterNameLocationImage ofClass:SDLImage.class error:nil]; -} - -- (void)setDeliveryMode:(nullable SDLDeliveryMode)deliveryMode { - [self.parameters sdl_setObject:deliveryMode forName:SDLRPCParameterNameDeliveryMode]; -} - -- (nullable SDLDeliveryMode)deliveryMode { - return [self.parameters sdl_enumForName:SDLRPCParameterNameDeliveryMode error:nil]; -} - -- (void)setTimeStamp:(nullable SDLDateTime *)timeStamp { - [self.parameters sdl_setObject:timeStamp forName:SDLRPCParameterNameTimeStamp]; -} - -- (nullable SDLDateTime *)timeStamp { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeStamp ofClass:SDLDateTime.class error:nil]; -} - -- (void)setAddress:(nullable SDLOasisAddress *)address { - [self.parameters sdl_setObject:address forName:SDLRPCParameterNameAddress]; -} - -- (nullable SDLOasisAddress *)address { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAddress ofClass:SDLOasisAddress.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocationResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocationResponse.h deleted file mode 100644 index 35bcc56..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocationResponse.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// SDLSendLocationResponse.h -// SmartDeviceLink-iOS - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLSendLocation - */ -@interface SDLSendLocationResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocationResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocationResponse.m deleted file mode 100644 index a940489..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSendLocationResponse.m +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLSendLocationResponse.m -// SmartDeviceLink-iOS - -#import "SDLSendLocationResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSendLocationResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - self = [super initWithName:SDLRPCFunctionNameSendLocation]; - if (!self) { - return nil; - } - - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.h deleted file mode 100644 index 1d13dfb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// SDLSequentialRPCRequestOperation.h -// SmartDeviceLink -// -// Created by Joel Fischer on 1/31/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAsynchronousOperation.h" -#import "SDLLifecycleManager.h" - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Sends an array RPCs of type `Request` with the first RPC to be sent at index 0. Sending is sequential, meaning that once an RPC is sent to Core, the operation waits until a response is received from Core before the next request is sent. Requests must get a response from Core before the operation is considered finished. - */ -@interface SDLSequentialRPCRequestOperation : SDLAsynchronousOperation - -/** - * Convenience init for sending an array of requests sequentially. - * - * @param connectionManager The connection manager used to send the RPCs - * @param requests The requests to be sent to Core - * @param progressHandler Called as each request gets a response from Core - * @param completionHandler Called when all requests have a response from Core - * @return A SDLSequentialRPCRequestOperation object - */ -- (instancetype)initWithConnectionManager:(id)connectionManager requests:(NSArray *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.m deleted file mode 100644 index 96c44b8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSequentialRPCRequestOperation.m +++ /dev/null @@ -1,125 +0,0 @@ -// -// SDLSequentialRPCRequestOperation.m -// SmartDeviceLink -// -// Created by Joel Fischer on 1/31/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLSequentialRPCRequestOperation.h" - -#import "SDLConnectionManagerType.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSequentialRPCRequestOperation () - -@property (copy, nonatomic) NSArray *requests; -@property (weak, nonatomic) id connectionManager; -@property (copy, nonatomic, nullable) SDLMultipleSequentialRequestProgressHandler progressHandler; -@property (copy, nonatomic, nullable) SDLMultipleRequestCompletionHandler completionHandler; - -@property (strong, nonatomic) NSUUID *operationId; -@property (assign, nonatomic) NSUInteger requestsComplete; -@property (assign, nonatomic) NSUInteger currentRequestIndex; -@property (assign, nonatomic, readonly) float percentComplete; -@property (assign, nonatomic) BOOL requestFailed; - -@end - -@implementation SDLSequentialRPCRequestOperation { - BOOL executing; - BOOL finished; -} - -- (instancetype)initWithConnectionManager:(id)connectionManager requests:(NSArray *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler { - self = [super init]; - if (!self) { return nil; } - - executing = NO; - finished = NO; - - _connectionManager = connectionManager; - _requests = requests; - _progressHandler = progressHandler; - _completionHandler = completionHandler; - - _operationId = [NSUUID UUID]; - _requestsComplete = 0; - _currentRequestIndex = 0; - _requestFailed = NO; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - [self sdl_sendNextRequest]; -} - -- (void)sdl_sendNextRequest { - // The operation was canceled while in progress - if (self.cancelled) { - if (self.completionHandler != nil) { - self.completionHandler(NO); - } - - [self finishOperation]; - return; - } - - // The operation is done, all requests have been sent and all responses received - if (self.currentRequestIndex >= self.requests.count) { - if (self.completionHandler != nil) { - self.completionHandler(!self.requestFailed); - } - - [self finishOperation]; - return; - } - - // Send the next request - SDLRPCRequest *request = self.requests[self.currentRequestIndex]; - [self.connectionManager sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - self.requestsComplete++; - - // If this request failed and no request has yet failed, set our internal request failed to YES - if (!self.requestFailed && error != nil) { - self.requestFailed = YES; - } - - if (self.progressHandler != NULL) { - BOOL continueWithRemainingRequests = self.progressHandler(request, response, error, self.percentComplete); - - // If the user decided to cancel, cancel for our next go around. - if (!continueWithRemainingRequests) { - [self cancel]; - } - } - - self.currentRequestIndex++; - [self sdl_sendNextRequest]; - }]; -} - -#pragma mark - Getters - -- (float)percentComplete { - return (float)self.requestsComplete / (float)self.requests.count; -} - -#pragma mark - Property Overrides - -- (nullable NSString *)name { - return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityNormal; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceEncryptionDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceEncryptionDelegate.h deleted file mode 100644 index dd45696..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceEncryptionDelegate.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SDLServiceEncryptionDelegate.h -// SmartDeviceLink -// -// Created by Tanda, Satbir (S.S.) on 9/5/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLProtocolConstants.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Delegate for the encryption service. -@protocol SDLServiceEncryptionDelegate - -/** - * Called when the encryption service has been. - * - * @param type will return whichever type had an encryption update (for now probably only SDLServiceTypeRPC), but it could also apply to video / audio in the future. - * @param encrypted return true if the the encryption service was setup successfully, will return false if the service is presently not encrypted. - * @param error will return any error that happens or nil if there is no error. - */ -- (void)serviceEncryptionUpdatedOnService:(SDLServiceType)type encrypted:(BOOL)encrypted error:(NSError *__nullable)error NS_SWIFT_NAME(serviceEncryptionUpdated(serviceType:isEncrypted:error:)); - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.h deleted file mode 100644 index 09a4c98..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// SDLServiceUpdateReason.h -// SmartDeviceLink -// -// Created by Nicole on 1/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * Enumeration listing possible service update reasons. - */ -typedef SDLEnum SDLServiceUpdateReason SDL_SWIFT_ENUM; - -/** - * The service has just been published with the module and once activated to the primary service of its type, it will be ready for possible consumption. - */ -extern SDLServiceUpdateReason const SDLServiceUpdatePublished; - -/** - * The service has just been unpublished with the module and is no longer accessible. - */ -extern SDLServiceUpdateReason const SDLServiceUpdateRemoved; - -/** - * The service is activated as the primary service of this type. All requests dealing with this service type will be handled by this service. - */ -extern SDLServiceUpdateReason const SDLServiceUpdateActivated; - -/** - * The service has been deactivated as the primary service of its type. - */ -extern SDLServiceUpdateReason const SDLServiceUpdateDeactivated; - -/** - * The service has updated its manifest. This could imply updated capabilities. - */ -extern SDLServiceUpdateReason const SDLServiceUpdateManifestUpdate; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.m deleted file mode 100644 index 2a2fe9c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLServiceUpdateReason.m +++ /dev/null @@ -1,15 +0,0 @@ -// -// SDLServiceUpdateReason.m -// SmartDeviceLink -// -// Created by Nicole on 1/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLServiceUpdateReason.h" - -SDLServiceUpdateReason const SDLServiceUpdatePublished = @"PUBLISHED"; -SDLServiceUpdateReason const SDLServiceUpdateRemoved = @"REMOVED"; -SDLServiceUpdateReason const SDLServiceUpdateActivated = @"ACTIVATED"; -SDLServiceUpdateReason const SDLServiceUpdateDeactivated = @"DEACTIVATED"; -SDLServiceUpdateReason const SDLServiceUpdateManifestUpdate = @"MANIFEST_UPDATE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.h deleted file mode 100644 index 53f3531..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.h +++ /dev/null @@ -1,35 +0,0 @@ -// SDLSetAppIcon.h -// - - -#import "SDLRPCRequest.h" - -/** - * Used to set existing local file on SDL as the app's icon. Not supported on - * first generation SDL modules. - *

      - * - * Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSetAppIcon : SDLRPCRequest - -/// Convenience init to set an image icon from a file name. The file must already be uploaded to the head unit. -/// -/// @param fileName A file reference name -/// @return An SDLSetAppIcon object -- (instancetype)initWithFileName:(NSString *)fileName; - -/** - * A file reference name - * @discussion A String value representing a file reference name - *

      - * Notes: Maxlength=500 - */ -@property (strong, nonatomic) NSString *syncFileName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.m deleted file mode 100644 index 6d7de66..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIcon.m +++ /dev/null @@ -1,42 +0,0 @@ -// SDLSetAppIcon.m -// - - -#import "SDLSetAppIcon.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -@implementation SDLSetAppIcon - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSetAppIcon]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithFileName:(NSString *)fileName { - self = [self init]; - if (!self) { - return nil; - } - - self.syncFileName = fileName; - - return self; -} - -- (void)setSyncFileName:(NSString *)syncFileName { - [self.parameters sdl_setObject:syncFileName forName:SDLRPCParameterNameSyncFileName]; -} - -- (NSString *)syncFileName { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameSyncFileName ofClass:NSString.class error:&error]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIconResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIconResponse.h deleted file mode 100644 index 80fee98..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIconResponse.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLSetAppIconResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLSetAppIcon - - Since SmartDeviceLink 2.0 - */ -@interface SDLSetAppIconResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIconResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIconResponse.m deleted file mode 100644 index 38151c6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetAppIconResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLSetAppIconResponse.m -// - - -#import "SDLSetAppIconResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSetAppIconResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSetAppIcon]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.h deleted file mode 100644 index eadcded..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// SDLSetCloudAppProperties.h -// SmartDeviceLink -// -// Created by Nicole on 2/26/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -@class SDLCloudAppProperties; - - -NS_ASSUME_NONNULL_BEGIN - -/** - * RPC used to enable/disable a cloud application and set authentication data - */ -@interface SDLSetCloudAppProperties : SDLRPCRequest - -/** - * Convenience init. - * - * @param properties The new cloud application properties - * @return A SDLSetCloudAppProperties object - */ -- (instancetype)initWithProperties:(SDLCloudAppProperties *)properties; - -/** - * The new cloud application properties. - * - * SDLCloudAppProperties, Required - */ -@property (strong, nonatomic) SDLCloudAppProperties *properties; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.m deleted file mode 100644 index ca2f657..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppProperties.m +++ /dev/null @@ -1,52 +0,0 @@ -// -// SDLSetCloudAppProperties.m -// SmartDeviceLink -// -// Created by Nicole on 2/26/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLSetCloudAppProperties.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLCloudAppProperties.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSetCloudAppProperties - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSetCloudAppProperties]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithProperties:(SDLCloudAppProperties *)properties { - self = [self init]; - if (!self) { - return nil; - } - - self.properties = properties; - - return self; -} - -- (void)setProperties:(SDLCloudAppProperties *)properties { - [self.parameters sdl_setObject:properties forName:SDLRPCParameterNameProperties]; -} - -- (SDLCloudAppProperties *)properties { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameProperties ofClass:SDLCloudAppProperties.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h deleted file mode 100644 index 8e4d397..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// SDLSetCloudAppPropertiesResponse.h -// SmartDeviceLink -// -// Created by Nicole on 2/26/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * The response to SetCloudAppProperties - */ -@interface SDLSetCloudAppPropertiesResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m deleted file mode 100644 index 4064b19..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m +++ /dev/null @@ -1,28 +0,0 @@ -// -// SDLSetCloudAppPropertiesResponse.m -// SmartDeviceLink -// -// Created by Nicole on 2/26/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLSetCloudAppPropertiesResponse.h" - -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSetCloudAppPropertiesResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSetCloudAppProperties]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.h deleted file mode 100644 index e1c31d1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.h +++ /dev/null @@ -1,66 +0,0 @@ -// SDLSetDisplayLayout.h -// - - -#import "SDLRPCRequest.h" - -#import "SDLPredefinedLayout.h" - -@class SDLTemplateColorScheme; - -/** - * Used to set an alternate display layout. If not sent, default screen for - * given platform will be shown - * - * Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSetDisplayLayout : SDLRPCRequest - -/// Convenience init to set a display layout -/// -/// @param predefinedLayout A template layout an app uses to display information -/// @return An SDLSetDisplayLayout object -- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout; - -/// Convenience init to set a display layout -/// -/// @param displayLayout A display layout name -/// @return An SDLSetDisplayLayout object -- (instancetype)initWithLayout:(NSString *)displayLayout; - -/// Convenience init to set a display layout -/// -/// @param predefinedLayout A display layout. Predefined or dynamically created screen layout -/// @param dayColorScheme The color scheme to be used on a head unit using a "light" or "day" color scheme -/// @param nightColorScheme The color scheme to be used on a head unit using a "dark" or "night" color scheme -/// @return An SDLSetDisplayLayout object -- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout dayColorScheme:(SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(SDLTemplateColorScheme *)nightColorScheme; - -/** - * A display layout. Predefined or dynamically created screen layout. - * Currently only predefined screen layouts are defined. Predefined layouts - * include: "ONSCREEN_PRESETS" Custom screen containing app-defined onscreen - * presets. Currently defined for GEN2 - */ -@property (strong, nonatomic) NSString *displayLayout; - -/** - The color scheme to be used on a head unit using a "light" or "day" color scheme. The OEM may only support this theme if their head unit only has a light color scheme. - - Optional - */ -@property (strong, nonatomic, nullable) SDLTemplateColorScheme *dayColorScheme; - -/** - The color scheme to be used on a head unit using a "dark" or "night" color scheme. The OEM may only support this theme if their head unit only has a dark color scheme. - - Optional - */ -@property (strong, nonatomic, nullable) SDLTemplateColorScheme *nightColorScheme; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.m deleted file mode 100644 index b26c7a9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayout.m +++ /dev/null @@ -1,77 +0,0 @@ -// SDLSetDisplayLayout.m -// - - -#import "SDLSetDisplayLayout.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLTemplateColorScheme.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSetDisplayLayout - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSetDisplayLayout]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout { - return [self initWithLayout:predefinedLayout]; -} - -- (instancetype)initWithLayout:(NSString *)displayLayout { - self = [self init]; - if (!self) { - return nil; - } - - self.displayLayout = displayLayout; - - return self; -} - -- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout dayColorScheme:(SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(SDLTemplateColorScheme *)nightColorScheme { - self = [self initWithPredefinedLayout:predefinedLayout]; - if (!self) { return nil; } - - self.dayColorScheme = dayColorScheme; - self.nightColorScheme = nightColorScheme; - - return self; -} - -- (void)setDisplayLayout:(NSString *)displayLayout { - [self.parameters sdl_setObject:displayLayout forName:SDLRPCParameterNameDisplayLayout]; -} - -- (NSString *)displayLayout { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameDisplayLayout ofClass:NSString.class error:&error]; -} - -- (void)setDayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme { - [self.parameters sdl_setObject:dayColorScheme forName:SDLRPCParameterNameDayColorScheme]; -} - -- (nullable SDLTemplateColorScheme *)dayColorScheme { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDayColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; -} - -- (void)setNightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme { - [self.parameters sdl_setObject:nightColorScheme forName:SDLRPCParameterNameNightColorScheme]; -} - -- (nullable SDLTemplateColorScheme *)nightColorScheme { - return [self.parameters sdl_objectForName:SDLRPCParameterNameNightColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayoutResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayoutResponse.h deleted file mode 100644 index 6998722..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayoutResponse.h +++ /dev/null @@ -1,43 +0,0 @@ -// SDLSetDisplayLayoutResponse.h -// - -#import "SDLRPCResponse.h" - -@class SDLButtonCapabilities; -@class SDLDisplayCapabilities; -@class SDLPresetBankCapabilities; -@class SDLSoftButtonCapabilities; - - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLSetDisplayLayout - - Since SmartDeviceLink 2.0 - */ -@interface SDLSetDisplayLayoutResponse : SDLRPCResponse - -/** - The display capabilities of the new template layout - */ -@property (nullable, strong, nonatomic) SDLDisplayCapabilities *displayCapabilities; - -/** - The button capabilities of the new template layout - */ -@property (nullable, strong, nonatomic) NSArray *buttonCapabilities; - -/** - The soft button capabilities of the new template layout - */ -@property (nullable, strong, nonatomic) NSArray *softButtonCapabilities; - -/** - The preset bank capabilities of the new template layout - */ -@property (nullable, strong, nonatomic) SDLPresetBankCapabilities *presetBankCapabilities; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayoutResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayoutResponse.m deleted file mode 100644 index 552a950..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetDisplayLayoutResponse.m +++ /dev/null @@ -1,62 +0,0 @@ -// SDLSetDisplayLayoutResponse.m -// - - -#import "SDLSetDisplayLayoutResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLButtonCapabilities.h" -#import "SDLDisplayCapabilities.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLPresetBankCapabilities.h" -#import "SDLSoftButtonCapabilities.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSetDisplayLayoutResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSetDisplayLayout]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setDisplayCapabilities:(nullable SDLDisplayCapabilities *)displayCapabilities { - [self.parameters sdl_setObject:displayCapabilities forName:SDLRPCParameterNameDisplayCapabilities]; -} - -- (nullable SDLDisplayCapabilities *)displayCapabilities { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDisplayCapabilities ofClass:SDLDisplayCapabilities.class error:nil]; -} - -- (void)setButtonCapabilities:(nullable NSArray *)buttonCapabilities { - [self.parameters sdl_setObject:buttonCapabilities forName:SDLRPCParameterNameButtonCapabilities]; -} - -- (nullable NSArray *)buttonCapabilities { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameButtonCapabilities ofClass:SDLButtonCapabilities.class error:nil]; -} - -- (void)setSoftButtonCapabilities:(nullable NSArray *)softButtonCapabilities { - [self.parameters sdl_setObject:softButtonCapabilities forName:SDLRPCParameterNameSoftButtonCapabilities]; -} - -- (nullable NSArray *)softButtonCapabilities { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class error:nil]; -} - -- (void)setPresetBankCapabilities:(nullable SDLPresetBankCapabilities *)presetBankCapabilities { - [self.parameters sdl_setObject:presetBankCapabilities forName:SDLRPCParameterNamePresetBankCapabilities]; -} - -- (nullable SDLPresetBankCapabilities *)presetBankCapabilities { - return [self.parameters sdl_objectForName:SDLRPCParameterNamePresetBankCapabilities ofClass:SDLPresetBankCapabilities.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.h deleted file mode 100644 index ef1746a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.h +++ /dev/null @@ -1,139 +0,0 @@ -// SDLSetGlobalProperties.h -// - -#import "SDLRPCRequest.h" - -#import "SDLMenuLayout.h" - -@class SDLImage; -@class SDLKeyboardProperties; -@class SDLTTSChunk; -@class SDLVRHelpItem; -@class SDLSeatLocation; - -NS_ASSUME_NONNULL_BEGIN - -/** - Sets global property values - - Since SmartDeviceLink 1.0 - - See SDLResetGlobalProperties - */ -@interface SDLSetGlobalProperties : SDLRPCRequest - -/** - Initialize SetGlobalProperties with help text and timeout text - - @param helpText A string that will be turned into TTS chunks for the help prompt - @param timeoutText A string that will be turned into TTS chunks for the timeout prompt - @return The SetGlobalProperties RPC - */ -- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText __deprecated_msg("Use initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:menuLayout: instead"); - -/** - Initialize SetGlobalProperties with help text, timeout text, help title, and help items - - @param helpText A string that will be turned into TTS chunks for the help prompt - @param timeoutText A string that will be turned into TTS chunks for the timeout prompt - @param vrHelpTitle The title of the help interface prompt - @param vrHelp The items of the help interface prompt - @return The SetGlobalProperties RPC - */ -- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp __deprecated_msg("Use initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:menuLayout: instead"); - -/** - Initialize SetGlobalProperties with all possible items - - @param helpText A string that will be turned into TTS chunks for the help prompt - @param timeoutText A string that will be turned into TTS chunks for the timeout prompt - @param vrHelpTitle The title of the help interface prompt - @param vrHelp The items of the help interface prompt - @param menuTitle The title of the menu button - @param menuIcon The icon on the menu button - @param keyboardProperties The properties of a keyboard prompt - @return The SetGlobalProperties RPC - */ -- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp menuTitle:(nullable NSString *)menuTitle menuIcon:(nullable SDLImage *)menuIcon keyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties __deprecated_msg("Use initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:menuLayout: instead"); - -/** - Initialize SetGlobalProperties with all possible items - - @param helpText A string that will be turned into TTS chunks for the help prompt - @param timeoutText A string that will be turned into TTS chunks for the timeout prompt - @param vrHelpTitle The title of the help interface prompt - @param vrHelp The items of the help interface prompt - @param menuTitle The title of the menu button - @param menuIcon The icon on the menu button - @param keyboardProperties The properties of a keyboard prompt - @param menuLayout The layout of the top-level main menu - @return The SetGlobalProperties RPC - */ -- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp menuTitle:(nullable NSString *)menuTitle menuIcon:(nullable SDLImage *)menuIcon keyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties menuLayout:(nullable SDLMenuLayout)menuLayout; - -/** - Help prompt for when the user asks for help with an interface prompt - - Optional - */ -@property (strong, nonatomic, nullable) NSArray *helpPrompt; - -/** - Help prompt for when an interface prompt times out - - Optional, Array, at least 1 item - */ -@property (strong, nonatomic, nullable) NSArray *timeoutPrompt; - -/** - Sets a voice recognition Help Title - - Optional - */ -@property (strong, nonatomic, nullable) NSString *vrHelpTitle; - -/** - Sets the items listed in the VR help screen used in an interaction started by Push to Talk - - @since SmartDeviceLink 2.0 - - Optional - */ -@property (strong, nonatomic, nullable) NSArray *vrHelp; - -/** - Text for the menu button label - - Optional - */ -@property (strong, nonatomic, nullable) NSString *menuTitle; - -/** - Icon for the menu button - - Optional - */ -@property (strong, nonatomic, nullable) SDLImage *menuIcon; - -/** - On-screen keyboard (perform interaction) configuration - - Optional - */ -@property (strong, nonatomic, nullable) SDLKeyboardProperties *keyboardProperties; - -/** - Location of the user's seat. Default is driver's seat location if it is not set yet - - Optional - */ -@property (strong, nonatomic, nullable) SDLSeatLocation *userLocation; - -/** - The main menu layout. If this is sent while a menu is already on-screen, the head unit will change the display to the new layout type. See available menu layouts on DisplayCapabilities.menuLayoutsAvailable. Defaults to the head unit default. - */ -@property (strong, nonatomic, nullable) SDLMenuLayout menuLayout; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.m deleted file mode 100644 index b502fcf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalProperties.m +++ /dev/null @@ -1,133 +0,0 @@ -// SDLSetGlobalProperties.m -// - - -#import "SDLSetGlobalProperties.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImage.h" -#import "SDLKeyboardProperties.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLTTSChunk.h" -#import "SDLVrHelpItem.h" -#import "SDLSeatLocation.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSetGlobalProperties - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSetGlobalProperties]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText { - return [self initWithHelpText:helpText timeoutText:timeoutText vrHelpTitle:nil vrHelp:nil menuTitle:nil menuIcon:nil keyboardProperties:nil menuLayout:nil]; -} - -- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp { - return [self initWithHelpText:helpText timeoutText:timeoutText vrHelpTitle:vrHelpTitle vrHelp:vrHelp menuTitle:nil menuIcon:nil keyboardProperties:nil menuLayout:nil]; -} - -- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp menuTitle:(nullable NSString *)menuTitle menuIcon:(nullable SDLImage *)menuIcon keyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties { - return [self initWithHelpText:helpText timeoutText:timeoutText vrHelpTitle:vrHelpTitle vrHelp:vrHelp menuTitle:menuTitle menuIcon:menuIcon keyboardProperties:keyboardProperties menuLayout:nil]; -} - -- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp menuTitle:(nullable NSString *)menuTitle menuIcon:(nullable SDLImage *)menuIcon keyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties menuLayout:(nullable SDLMenuLayout)menuLayout { - self = [self init]; - if (!self) { - return nil; - } - - self.helpPrompt = [SDLTTSChunk textChunksFromString:helpText]; - self.timeoutPrompt = [SDLTTSChunk textChunksFromString:timeoutText]; - self.vrHelpTitle = vrHelpTitle; - self.vrHelp = [vrHelp mutableCopy]; - self.menuTitle = menuTitle; - self.menuIcon = menuIcon; - self.keyboardProperties = keyboardProperties; - self.menuLayout = menuLayout; - - return self; -} - -- (void)setHelpPrompt:(nullable NSArray *)helpPrompt { - [self.parameters sdl_setObject:helpPrompt forName:SDLRPCParameterNameHelpPrompt]; -} - -- (nullable NSArray *)helpPrompt { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameHelpPrompt ofClass:SDLTTSChunk.class error:nil]; -} - -- (void)setTimeoutPrompt:(nullable NSArray *)timeoutPrompt { - [self.parameters sdl_setObject:timeoutPrompt forName:SDLRPCParameterNameTimeoutPrompt]; -} - -- (nullable NSArray *)timeoutPrompt { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameTimeoutPrompt ofClass:SDLTTSChunk.class error:nil]; -} - -- (void)setVrHelpTitle:(nullable NSString *)vrHelpTitle { - [self.parameters sdl_setObject:vrHelpTitle forName:SDLRPCParameterNameVRHelpTitle]; -} - -- (nullable NSString *)vrHelpTitle { - return [self.parameters sdl_objectForName:SDLRPCParameterNameVRHelpTitle ofClass:NSString.class error:nil]; -} - -- (void)setVrHelp:(nullable NSArray *)vrHelp { - [self.parameters sdl_setObject:vrHelp forName:SDLRPCParameterNameVRHelp]; -} - -- (nullable NSArray *)vrHelp { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameVRHelp ofClass:SDLVRHelpItem.class error:nil]; -} - -- (void)setMenuTitle:(nullable NSString *)menuTitle { - [self.parameters sdl_setObject:menuTitle forName:SDLRPCParameterNameMenuTitle]; -} - -- (nullable NSString *)menuTitle { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuTitle ofClass:NSString.class error:nil]; -} - -- (void)setMenuIcon:(nullable SDLImage *)menuIcon { - [self.parameters sdl_setObject:menuIcon forName:SDLRPCParameterNameMenuIcon]; -} - -- (nullable SDLImage *)menuIcon { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuIcon ofClass:SDLImage.class error:nil]; -} - -- (void)setKeyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties { - [self.parameters sdl_setObject:keyboardProperties forName:SDLRPCParameterNameKeyboardProperties]; -} - -- (nullable SDLKeyboardProperties *)keyboardProperties { - return [self.parameters sdl_objectForName:SDLRPCParameterNameKeyboardProperties ofClass:SDLKeyboardProperties.class error:nil]; -} - -- (void)setUserLocation:(nullable SDLSeatLocation *)userLocation { - [self.parameters sdl_setObject:userLocation forName:SDLRPCParameterNameUserLocation]; -} - -- (nullable SDLSeatLocation *)userLocation { - return [self.parameters sdl_objectForName:SDLRPCParameterNameUserLocation ofClass:SDLSeatLocation.class error:nil]; -} - -- (void)setMenuLayout:(nullable SDLMenuLayout)menuLayout { - [self.parameters sdl_setObject:menuLayout forName:SDLRPCParameterNameMenuLayout]; -} - -- (nullable SDLMenuLayout)menuLayout { - return [self.parameters sdl_enumForName:SDLRPCParameterNameMenuLayout error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalPropertiesResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalPropertiesResponse.h deleted file mode 100644 index 6e9bb3c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalPropertiesResponse.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLSetGlobalPropertiesResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLSetGlobalProperties - - Since SmartDeviceLink 1.0 - */ -@interface SDLSetGlobalPropertiesResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m deleted file mode 100644 index f093f43..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLSetGlobalPropertiesResponse.m -// - - -#import "SDLSetGlobalPropertiesResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSetGlobalPropertiesResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSetGlobalProperties]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.h deleted file mode 100644 index fdc1d31..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// SDLSetInteriorVehicleData.h -// - -#import "SDLRPCRequest.h" - -@class SDLModuleData; - -/** - * This RPC allows a remote control type mobile application to - * change the settings of a specific remote control module. - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSetInteriorVehicleData : SDLRPCRequest - -/// Convenience init to change settings of a module -/// -/// @param moduleData A remote control module data object -/// @return An SDLSetInteriorVehicleData object -- (instancetype)initWithModuleData:(SDLModuleData *)moduleData; - -/** - * The module data to set for the requested RC module. - * - */ -@property (strong, nonatomic) SDLModuleData *moduleData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.m deleted file mode 100644 index 96d2ac7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleData.m +++ /dev/null @@ -1,46 +0,0 @@ -// -// SDLSetInteriorVehicleData.m -// - -#import "SDLSetInteriorVehicleData.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "NSMutableDictionary+Store.h" -#import "SDLModuleData.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSetInteriorVehicleData - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSetInteriorVehicleData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithModuleData:(SDLModuleData *)moduleData { - self = [self init]; - if (!self) { - return nil; - } - - self.moduleData = moduleData; - - return self; -} - -- (void)setModuleData:(SDLModuleData *)moduleData { - [self.parameters sdl_setObject:moduleData forName:SDLRPCParameterNameModuleData]; -} - -- (SDLModuleData *)moduleData { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleData ofClass:SDLModuleData.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h deleted file mode 100644 index 57690e0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// SDLSetInteriorVehicleDataResponse.h -// - -#import "SDLRPCResponse.h" -@class SDLModuleData; - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLSetInteriorVehicleData - */ -@interface SDLSetInteriorVehicleDataResponse : SDLRPCResponse - -/** - The new module data for the requested module - - Optional - */ -@property (nullable, strong, nonatomic) SDLModuleData *moduleData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m deleted file mode 100644 index c995516..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m +++ /dev/null @@ -1,35 +0,0 @@ -// -// SDLSetInteriorVehicleDataResponse.m -// - -#import "SDLSetInteriorVehicleDataResponse.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLModuleData.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSetInteriorVehicleDataResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSetInteriorVehicleData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setModuleData:(nullable SDLModuleData *)moduleData { - [self.parameters sdl_setObject:moduleData forName:SDLRPCParameterNameModuleData]; -} - -- (nullable SDLModuleData *)moduleData { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleData ofClass:SDLModuleData.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.h deleted file mode 100644 index 6b40e5d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.h +++ /dev/null @@ -1,199 +0,0 @@ -// SDLSetMediaClockTimer.h -// - -#import "SDLRPCRequest.h" - -#import "SDLUpdateMode.h" -#import "SDLAudioStreamingIndicator.h" - -@class SDLStartTime; - -/** - * Sets the media clock/timer value and the update method (e.g.count-up, - * count-down, etc.) - *

      - * Function Group: Base

      - * HMILevel needs to be FULL, LIMITIED or BACKGROUND - *

      - * - * Since SmartDeviceLink 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSetMediaClockTimer : SDLRPCRequest - -/** - Create a media clock timer that counts up, e.g from 0:00 to 4:18. - - This will fail if startTime is greater than endTime - - @param startTime The start time interval, e.g. (0) 0:00 - @param endTime The end time interval, e.g. (258) 4:18 - @param playPauseIndicator An optional audio indicator to change the play/pause button - @return An object of SetMediaClockTimer - */ -+ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:)); - -/** - Create a media clock timer that counts up, e.g from 0:00 to 4:18. - - This will fail if startTime is greater than endTime - - @param startTime The start time interval, e.g. 0:00 - @param endTime The end time interval, e.g. 4:18 - @param playPauseIndicator An optional audio indicator to change the play/pause button - @return An object of SetMediaClockTimer - */ -+ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:)); - -/** - Create a media clock timer that counts down, e.g. from 4:18 to 0:00 - - This will fail if endTime is greater than startTime - - @param startTime The start time interval, e.g. (258) 4:18 - @param endTime The end time interval, e.g. (0) 0:00 - @param playPauseIndicator An optional audio indicator to change the play/pause button - @return An object of SetMediaClockTimer - */ -+ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:)); - -/** - Create a media clock timer that counts down, e.g. from 4:18 to 0:00 - - This will fail if endTime is greater than startTime - - @param startTime The start time interval, e.g. 4:18 - @param endTime The end time interval, e.g. 0:00 - @param playPauseIndicator An optional audio indicator to change the play/pause button - @return An object of SetMediaClockTimer - */ -+ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:)); - -/** - Pause an existing (counting up / down) media clock timer - - @param playPauseIndicator An optional audio indicator to change the play/pause button - @return An object of SetMediaClockTimer - */ -+ (instancetype)pauseWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(pause(playPauseIndicator:)); - -/** - Update a pause time (or pause and update the time) on a media clock timer - - @param startTime The new start time interval - @param endTime The new end time interval - @param playPauseIndicator An optional audio indicator to change the play/pause button - @return An object of SetMediaClockTimer - */ -+ (instancetype)updatePauseWithNewStartTimeInterval:(NSTimeInterval)startTime endTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(pause(newStart:newEnd:playPauseIndicator:)); - -/** - Update a pause time (or pause and update the time) on a media clock timer - - @param startTime The new start time - @param endTime The new end time - @param playPauseIndicator An optional audio indicator to change the play/pause button - @return An object of SetMediaClockTimer - */ -+ (instancetype)updatePauseWithNewStartTime:(SDLStartTime *)startTime endTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(pause(newStart:newEnd:playPauseIndicator:)); - -/** - Resume a paused media clock timer. It resumes at the same time at which it was paused. - - @param playPauseIndicator An optional audio indicator to change the play/pause button - @return An object of SetMediaClockTimer - */ -+ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(resume(playPauseIndicator:)); - -/** - Remove a media clock timer from the screen - - @param playPauseIndicator An optional audio indicator to change the play/pause button - @return An object of SetMediaClockTimer - */ -+ (instancetype)clearWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(clear(playPauseIndicator:)); - -/// Convenience init to create a SDLSetMediaClockTimer object -/// -/// @param updateMode The type of SetMediaClockTimer RPC -/// @param hours Hour -/// @param minutes Minuute -/// @param seconds Seconds -/// @param audioStreamingIndicator The audio streaming indicator used for a play/pause button -/// @return An SDLSetMediaClockTimer object -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds audioStreamingIndicator:(SDLAudioStreamingIndicator)audioStreamingIndicator __deprecated_msg("Use a specific initializer"); - -/// Convenience init to create a SDLSetMediaClockTimer object -/// -/// @param updateMode The type of SetMediaClockTimer RPC -/// @param hours Hour -/// @param minutes Minuute -/// @param seconds Seconds -/// @return An SDLSetMediaClockTimer object -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds __deprecated_msg("Use a specific initializer"); - -/// Convenience init to create a SDLSetMediaClockTimer object -/// -/// @param updateMode he type of SetMediaClockTimer RPC -/// @return An SDLSetMediaClockTimer object -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode __deprecated_msg("Use a specific initializer"); - -/** - Create a SetMediaClockTimer RPC with all available parameters. It's recommended to use the specific initializers above. - - @param updateMode The type of SetMediaClockTimer RPC - @param startTime The start time. Only valid in some updateModes. - @param endTime The end time. Only valid in some updateModes. - @param playPauseIndicator The display of the play/pause button - @return An object of SetMediaClockTimer - */ -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(init(updateMode:startTime:endTime:playPauseIndicator:)); - -/** - * A Start Time with specifying hour, minute, second values - * - * @discussion A startTime object with specifying hour, minute, second values - *

      - * Notes: - *

        - *
      • If "updateMode" is COUNTUP or COUNTDOWN, this parameter - * must be provided
      • - *
      • Will be ignored for PAUSE/RESUME and CLEAR
      • - *
      - */ -@property (strong, nonatomic, nullable) SDLStartTime *startTime; -/** - * An END time of type SDLStartTime, specifying hour, minute, second values - * - * @discussion An SDLStartTime object with specifying hour, minute, second values - */ -@property (strong, nonatomic, nullable) SDLStartTime *endTime; -/** - * The media clock/timer update mode (COUNTUP/COUNTDOWN/PAUSE/RESUME) - * - * @discussion a Enumeration value (COUNTUP/COUNTDOWN/PAUSE/RESUME) - *

      - * Notes: - *

        - *
      • When updateMode is PAUSE, RESUME or CLEAR, the start time value - * is ignored
      • - *
      • When updateMode is RESUME, the timer resumes counting from - * the timer's value when it was paused
      • - *
      - */ -@property (strong, nonatomic) SDLUpdateMode updateMode; - -/** - * The audio streaming indicator used for a play/pause button. - * - * @discussion Set the indicator icon of a play/pause button depending on the - * current audio playback. This parameter is optional. If omitted the last indicator sent - * will not change. - */ -@property (strong, nonatomic, nullable) SDLAudioStreamingIndicator audioStreamingIndicator; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.m deleted file mode 100644 index ce536ce..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimer.m +++ /dev/null @@ -1,150 +0,0 @@ -// SDLSetMediaClockTimer.m -// - - -#import "SDLSetMediaClockTimer.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLStartTime.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSetMediaClockTimer - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSetMediaClockTimer]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { - self = [self init]; - if (!self) { return nil; } - - self.updateMode = updateMode; - self.startTime = startTime; - self.endTime = endTime; - self.audioStreamingIndicator = playPauseIndicator; - - return self; -} - -+ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { - SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime]; - SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime]; - - return [[self alloc] initWithUpdateMode:SDLUpdateModeCountUp startTime:startTimeRPC endTime:endTimeRPC playPauseIndicator:playPauseIndicator]; -} - -+ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { - return [[self alloc] initWithUpdateMode:SDLUpdateModeCountUp startTime:startTime endTime:endTime playPauseIndicator:playPauseIndicator]; -} - -+ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { - SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime]; - SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime]; - - return [[self alloc] initWithUpdateMode:SDLUpdateModeCountDown startTime:startTimeRPC endTime:endTimeRPC playPauseIndicator:playPauseIndicator]; -} - -+ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { - return [[self alloc] initWithUpdateMode:SDLUpdateModeCountDown startTime:startTime endTime:endTime playPauseIndicator:playPauseIndicator]; -} - -+ (instancetype)pauseWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { - return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:nil endTime:nil playPauseIndicator:playPauseIndicator]; -} - -+ (instancetype)updatePauseWithNewStartTimeInterval:(NSTimeInterval)startTime endTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { - SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime]; - SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime]; - - return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:startTimeRPC endTime:endTimeRPC playPauseIndicator:playPauseIndicator]; -} - -+ (instancetype)updatePauseWithNewStartTime:(SDLStartTime *)startTime endTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { - return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:startTime endTime:endTime playPauseIndicator:playPauseIndicator]; -} - -+ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { - return [[self alloc] initWithUpdateMode:SDLUpdateModeResume startTime:nil endTime:nil playPauseIndicator:playPauseIndicator]; -} - -+ (instancetype)clearWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { - return [[self alloc] initWithUpdateMode:SDLUpdateModeClear startTime:nil endTime:nil playPauseIndicator:playPauseIndicator]; -} - -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds audioStreamingIndicator:(SDLAudioStreamingIndicator)audioStreamingIndicator { - self = [self initWithUpdateMode:updateMode hours:hours minutes:minutes seconds:seconds]; - if (!self) { - return nil; - } - - self.audioStreamingIndicator = audioStreamingIndicator; - - return self; -} - -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds { - self = [self initWithUpdateMode:updateMode]; - if (!self) { - return nil; - } - - self.startTime = [[SDLStartTime alloc] initWithHours:hours minutes:minutes seconds:seconds]; - - return self; -} - -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode { - self = [self init]; - if (!self) { - return nil; - } - - self.updateMode = updateMode; - - return self; -} - -- (void)setStartTime:(nullable SDLStartTime *)startTime { - [self.parameters sdl_setObject:startTime forName:SDLRPCParameterNameStartTime]; -} - -- (nullable SDLStartTime *)startTime { - return [self.parameters sdl_objectForName:SDLRPCParameterNameStartTime ofClass:SDLStartTime.class error:nil]; -} - -- (void)setEndTime:(nullable SDLStartTime *)endTime { - [self.parameters sdl_setObject:endTime forName:SDLRPCParameterNameEndTime]; -} - -- (nullable SDLStartTime *)endTime { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEndTime ofClass:SDLStartTime.class error:nil]; -} - -- (void)setUpdateMode:(SDLUpdateMode)updateMode { - [self.parameters sdl_setObject:updateMode forName:SDLRPCParameterNameUpdateMode]; -} - -- (SDLUpdateMode)updateMode { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameUpdateMode error:&error]; -} - -- (void)setAudioStreamingIndicator:(nullable SDLAudioStreamingIndicator)audioStreamingIndicator { - [self.parameters sdl_setObject:audioStreamingIndicator forName:SDLRPCParameterNameAudioStreamingIndicator]; -} - -- (nullable SDLAudioStreamingIndicator)audioStreamingIndicator { - return [self.parameters sdl_enumForName:SDLRPCParameterNameAudioStreamingIndicator error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimerResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimerResponse.h deleted file mode 100644 index f6c4438..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimerResponse.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLSetMediaClockTimerResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLSetMediaClockTimer - - Since SmartDeviceLink 1.0 - */ -@interface SDLSetMediaClockTimerResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimerResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimerResponse.m deleted file mode 100644 index bcb1d12..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSetMediaClockTimerResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLSetMediaClockTimerResponse.m -// - - -#import "SDLSetMediaClockTimerResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSetMediaClockTimerResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSetMediaClockTimer]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.h deleted file mode 100644 index 723e5fd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.h +++ /dev/null @@ -1,334 +0,0 @@ -// SDLShow.h -// - -#import "SDLRPCRequest.h" - -#import "SDLTextAlignment.h" -#import "SDLMetadataType.h" - -@class SDLImage; -@class SDLSoftButton; -@class SDLMetadataTags; -@class SDLTemplateConfiguration; - - -/** - * Updates the application's display text area, regardless of whether or not - * this text area is visible to the user at the time of the request. The - * application's display text area remains unchanged until updated by subsequent - * calls to Show - *

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

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

      - * HMILevel needs to be FULL, LIMITED or BACKGROUND - *

      - * - * Since SmartDeviceLink 1.0 - * See SDLAlert SDLSetMediaClockTimer - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLShow : SDLRPCRequest - -/// Convenience init to set template elements with the following parameters -/// -/// @param mainField1 The text displayed on the first display line -/// @param mainField2 The text displayed on the second display line -/// @param alignment The alignment that specifies how the text should be aligned on display -/// @return An SDLShow object -- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment; - -/// Convenience init to set template elements with the following parameters -/// -/// @param mainField1 The text displayed on the first display line -/// @param mainField1Type Text field metadata types -/// @param mainField2 The text displayed on the second display line -/// @param mainField2Type Text field metadata types -/// @param alignment The alignment that specifies how the text should be aligned on display -/// @return An SDLShow object -- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField1Type:(nullable SDLMetadataType)mainField1Type mainField2:(nullable NSString *)mainField2 mainField2Type:(nullable SDLMetadataType)mainField2Type alignment:(nullable SDLTextAlignment)alignment; - -/// Convenience init to set template elements with the following parameters -/// -/// @param mainField1 The text displayed on the first display line -/// @param mainField2 The text displayed on the second display line -/// @param mainField3 The text displayed on the third display line -/// @param mainField4 The text displayed on the fourth display line -/// @param alignment The alignment that specifies how the text should be aligned on display -/// @return An SDLShow object -- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 mainField3:(nullable NSString *)mainField3 mainField4:(nullable NSString *)mainField4 alignment:(nullable SDLTextAlignment)alignment; - -/// Convenience init to set template elements with the following parameters -/// -/// @param mainField1 The text displayed on the first display line -/// @param mainField1Type Text field metadata types -/// @param mainField2 The text displayed on the second display line -/// @param mainField2Type Text field metadata types -/// @param mainField3 The text displayed on the third display line -/// @param mainField3Type Text field metadata types -/// @param mainField4 The text displayed on the fourth display line -/// @param mainField4Type Text field metadata types -/// @param alignment The alignment that specifies how the text should be aligned on display -/// @return An SDLShow object -- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField1Type:(nullable SDLMetadataType)mainField1Type mainField2:(nullable NSString *)mainField2 mainField2Type:(nullable SDLMetadataType)mainField2Type mainField3:(nullable NSString *)mainField3 mainField3Type:(nullable SDLMetadataType)mainField3Type mainField4:(nullable NSString *)mainField4 mainField4Type:(nullable SDLMetadataType)mainField4Type alignment:(nullable SDLTextAlignment)alignment; - -/// Convenience init to set template elements with the following parameters -/// -/// @param mainField1 The text displayed on the first display line -/// @param mainField2 The text displayed on the second display line -/// @param alignment The alignment that specifies how the text should be aligned on display -/// @param statusBar Text in the status Bar -/// @param mediaClock The value for the mediaClock field -/// @param mediaTrack The text in the track field -/// @return An SDLShow object -- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment statusBar:(nullable NSString *)statusBar mediaClock:(nullable NSString *)mediaClock mediaTrack:(nullable NSString *)mediaTrack; - -/// Convenience init to set template elements with the following parameters -/// -/// @param mainField1 The text displayed on the first display line -/// @param mainField2 The text displayed on the second display line -/// @param mainField3 The text displayed on the third display line -/// @param mainField4 The text displayed on the fourth display line -/// @param alignment The alignment that specifies how the text should be aligned on display -/// @param statusBar Text in the status bar -/// @param mediaClock The value for the mediaClock field -/// @param mediaTrack The text in the track field -/// @param graphic An image to be shown on supported displays -/// @param softButtons The the Soft buttons defined by the app -/// @param customPresets The custom presets defined by the App -/// @param metadata Text field metadata -/// @return An SDLShow object -- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 mainField3:(nullable NSString *)mainField3 mainField4:(nullable NSString *)mainField4 alignment:(nullable SDLTextAlignment)alignment statusBar:(nullable NSString *)statusBar mediaClock:(nullable NSString *)mediaClock mediaTrack:(nullable NSString *)mediaTrack graphic:(nullable SDLImage *)graphic softButtons:(nullable NSArray *)softButtons customPresets:(nullable NSArray *)customPresets textFieldMetadata:(nullable SDLMetadataTags *)metadata; - -/** - * The text displayed in a single-line display, or in the upper display - * line in a two-line display - * @discussion The String value representing the text displayed in a - * single-line display, or in the upper display line in a - * two-line display - *

      - * Notes: - *

        - *
      • If this parameter is omitted, the text of mainField1 does - * not change
      • - *
      • If this parameter is an empty string, the field will be - * cleared
      • - *
      - */ -@property (strong, nonatomic, nullable) NSString *mainField1; -/** - * The text displayed on the second display line of a two-line display - * - * @discussion The String value representing the text displayed on the second - * display line of a two-line display - *

      - * Notes: - *

        - *
      • If this parameter is omitted, the text of mainField2 does - * not change
      • - *
      • If this parameter is an empty string, the field will be - * cleared
      • - *
      • If provided and the display is a single-line display, the - * parameter is ignored
      • - *
      • Maxlength = 500
      • - *
      - */ -@property (strong, nonatomic, nullable) NSString *mainField2; -/** - * The text displayed on the first display line of the second page - * - * @discussion The String value representing the text displayed on the first - * display line of the second page - *

      - * Notes: - *

        - *
      • If this parameter is omitted, the text of mainField3 does - * not change
      • - *
      • If this parameter is an empty string, the field will be - * cleared
      • - *
      • If provided and the display is a single-line display, the - * parameter is ignored
      • - *
      • Maxlength = 500
      • - *
      - * @since SmartDeviceLink 2.0 - */ -@property (strong, nonatomic, nullable) NSString *mainField3; -/** - * The text displayed on the second display line of the second page - * - * @discussion The String value representing the text displayed on the second - * display line of the second page - *

      - * Notes: - *

        - *
      • If this parameter is omitted, the text of mainField4 does - * not change
      • - *
      • If this parameter is an empty string, the field will be - * cleared
      • - *
      • If provided and the display is a single-line display, the - * parameter is ignored
      • - *
      • Maxlength = 500
      • - *
      - * @since SmartDeviceLink 2.0 - */ -@property (strong, nonatomic, nullable) NSString *mainField4; -/** - * The alignment that Specifies how mainField1 and mainField2 text - * should be aligned on display - * - * @discussion An Enumeration value - *

      - * Notes: - *

        - *
      • Applies only to mainField1 and mainField2 provided on this - * call, not to what is already showing in display
      • - *
      • If this parameter is omitted, text in both mainField1 and - * mainField2 will be centered
      • - *
      • Has no effect with navigation display
      • - *
      - */ -@property (strong, nonatomic, nullable) SDLTextAlignment alignment; -/** - * Text in the Status Bar - * - * @discussion A String representing the text you want to add in the Status - * Bar - *

      - * Notes: The status bar only exists on navigation - * displays
      - *

        - *
      • If this parameter is omitted, the status bar text will - * remain unchanged
      • - *
      • If this parameter is an empty string, the field will be - * cleared
      • - *
      • If provided and the display has no status bar, this - * parameter is ignored
      • - *
      - */ -@property (strong, nonatomic, nullable) NSString *statusBar; -/** - * This property is deprecated use SetMediaClockTimer instead. - *

      The value for the MediaClock field using a format described in the - * MediaClockFormat enumeration - * - * @discussion A String value for the MediaClock - *

      - * Notes:
      - *

        - *
      • Must be properly formatted as described in the - * MediaClockFormat enumeration
      • - *
      • If a value of five spaces is provided, this will clear - * that field on the display (i.e. the media clock timer field - * will not display anything)
      • - *
      - */ -@property (strong, nonatomic, nullable) NSString *mediaClock; -/** - * The text in the track field - * - * @discussion A String value disaplayed in the track field - *

      - * Notes:
      - *

        - *
      • If parameter is omitted, the track field remains unchanged
      • - *
      • If an empty string is provided, the field will be cleared
      • - *
      • This field is only valid for media applications on navigation displays
      • - *
      - */ -@property (strong, nonatomic, nullable) NSString *mediaTrack; -/** - * An image to be shown on supported displays - * - * @discussion The value representing the image shown on supported displays - *

      - * Notes: If omitted on supported displays, the displayed - * graphic shall not change
      - * @since SmartDeviceLink 2.0 - */ -@property (strong, nonatomic, nullable) SDLImage *graphic; -/** - * An image to be shown on supported displays - * - * @discussion The value representing the image shown on supported displays - *

      - * Notes: If omitted on supported displays, the displayed - * graphic shall not change
      - * @since SmartDeviceLink 2.0 - */ -@property (strong, nonatomic, nullable) SDLImage *secondaryGraphic; -/** - * The the Soft buttons defined by the App - * - * @discussion A Vector value represemting the Soft buttons defined by the - * App - *

      - * Notes:
      - *

        - *
      • If omitted on supported displays, the currently displayed - * SoftButton values will not change
      • - *
      • Array Minsize: 0
      • - *
      • Array Maxsize: 8
      • - *
      - * - * @since SmartDeviceLink 2.0 - */ -@property (strong, nonatomic, nullable) NSArray *softButtons; -/** - * The Custom Presets defined by the App - * - * @discussion A Vector value representing the Custom Presets defined by the App - *

      - *

        - *
      • If omitted on supported displays, the presets will be shown as not defined
      • - *
      • Array Minsize: 0
      • - *
      • Array Maxsize: 6
      • - *
      - * @since SmartDeviceLink 2.0 - */ -@property (strong, nonatomic, nullable) NSArray *customPresets; - -/** - Text Field Metadata - - App defined metadata information. See MetadataStruct. Uses mainField1, mainField2, mainField3, mainField4. If omitted on supported displays, the currently set metadata tags will not change. If any text field contains no tags or the none tag, the metadata tag for that textfield should be removed. - - @since SmartDeviceLink 2.0 - */ -@property (strong, nonatomic, nullable) SDLMetadataTags *metadataTags; - - -/** - This is the unique ID assigned to the window that this RPC is intended. If this param is not included, it will be assumed that this request is specifically for the main window on the main display. @see PredefinedWindows enum. - - @since SDL 6.0 - */ -@property (strong, nonatomic, nullable) NSNumber *windowID; - -/** - Used to set an alternate template layout to a window. - - @since SDL 6.0 - */ -@property (strong, nonatomic, nullable) SDLTemplateConfiguration *templateConfiguration; - -/** - The title of the current template. - - How this will be displayed is dependent on the OEM design and implementation of the template. - - Optional, since SmartDeviceLink 6.0 - */ -@property (strong, nonatomic, nullable) NSString *templateTitle; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.m deleted file mode 100644 index c42295d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShow.m +++ /dev/null @@ -1,235 +0,0 @@ -// SDLShow.m -// - - -#import "SDLShow.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImage.h" -#import "SDLMetadataTags.h" -#import "SDLMetadataType.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSoftButton.h" -#import "SDLTemplateConfiguration.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLShow - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameShow]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment { - return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:nil mainField4:nil alignment:alignment]; -} - -- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField1Type:(nullable SDLMetadataType)mainField1Type mainField2:(nullable NSString *)mainField2 mainField2Type:(nullable SDLMetadataType)mainField2Type alignment:(nullable SDLTextAlignment)alignment { - self = [self init]; - if (!self) { - return nil; - } - - NSArray *field1Array = mainField1Type ? @[mainField1Type] : nil; - NSArray *field2Array = mainField2Type ? @[mainField2Type] : nil; - SDLMetadataTags* metadataTags = (field1Array != nil || field2Array != nil) ? [[SDLMetadataTags alloc] initWithTextFieldTypes:field1Array mainField2:field2Array] : nil; - - self.mainField1 = mainField1; - self.mainField2 = mainField2; - self.alignment = alignment; - self.metadataTags = metadataTags; - - return self; -} - -- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 mainField3:(nullable NSString *)mainField3 mainField4:(nullable NSString *)mainField4 alignment:(nullable SDLTextAlignment)alignment { - return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:mainField3 mainField4:mainField4 alignment:alignment statusBar:nil mediaClock:nil mediaTrack:nil graphic:nil softButtons:nil customPresets:nil textFieldMetadata:nil]; -} - -- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField1Type:(nullable SDLMetadataType)mainField1Type mainField2:(nullable NSString *)mainField2 mainField2Type:(nullable SDLMetadataType)mainField2Type mainField3:(nullable NSString *)mainField3 mainField3Type:(nullable SDLMetadataType)mainField3Type mainField4:(nullable NSString *)mainField4 mainField4Type:(nullable SDLMetadataType)mainField4Type alignment:(nullable SDLTextAlignment)alignment { - self = [self init]; - if (!self) { - return nil; - } - - NSArray *field1Array = mainField1Type ? @[mainField1Type] : nil; - NSArray *field2Array = mainField2Type ? @[mainField2Type] : nil; - NSArray *field3Array = mainField3Type ? @[mainField3Type] : nil; - NSArray *field4Array = mainField4Type ? @[mainField4Type] : nil; - SDLMetadataTags* metadataTags = (field1Array != nil || field2Array != nil || field3Array != nil || field4Array != nil) ? [[SDLMetadataTags alloc] initWithTextFieldTypes:field1Array mainField2:field2Array mainField3:field3Array mainField4:field4Array] : nil; - - self.mainField1 = mainField1; - self.mainField2 = mainField2; - self.mainField3 = mainField3; - self.mainField4 = mainField4; - self.alignment = alignment; - self.metadataTags = metadataTags; - - return self; -} - -- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment statusBar:(nullable NSString *)statusBar mediaClock:(nullable NSString *)mediaClock mediaTrack:(nullable NSString *)mediaTrack { - return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:nil mainField4:nil alignment:alignment statusBar:statusBar mediaClock:mediaClock mediaTrack:mediaTrack graphic:nil softButtons:nil customPresets:nil textFieldMetadata:nil]; -} - -- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 mainField3:(nullable NSString *)mainField3 mainField4:(nullable NSString *)mainField4 alignment:(nullable SDLTextAlignment)alignment statusBar:(nullable NSString *)statusBar mediaClock:(nullable NSString *)mediaClock mediaTrack:(nullable NSString *)mediaTrack graphic:(nullable SDLImage *)graphic softButtons:(nullable NSArray *)softButtons customPresets:(nullable NSArray *)customPresets textFieldMetadata:(nullable SDLMetadataTags *)metadata { - self = [self init]; - if (!self) { - return nil; - } - - self.mainField1 = mainField1; - self.mainField2 = mainField2; - self.mainField3 = mainField3; - self.mainField4 = mainField4; - self.statusBar = statusBar; - self.mediaClock = mediaClock; - self.mediaTrack = mediaTrack; - self.alignment = alignment; - self.graphic = graphic; - self.softButtons = [softButtons mutableCopy]; - self.customPresets = [customPresets mutableCopy]; - self.metadataTags = metadata; - - return self; - -} - -- (void)setMainField1:(nullable NSString *)mainField1 { - [self.parameters sdl_setObject:mainField1 forName:SDLRPCParameterNameMainField1]; -} - -- (nullable NSString *)mainField1 { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMainField1 ofClass:NSString.class error:nil]; -} - -- (void)setMainField2:(nullable NSString *)mainField2 { - [self.parameters sdl_setObject:mainField2 forName:SDLRPCParameterNameMainField2]; -} - -- (nullable NSString *)mainField2 { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMainField2 ofClass:NSString.class error:nil]; -} - -- (void)setMainField3:(nullable NSString *)mainField3 { - [self.parameters sdl_setObject:mainField3 forName:SDLRPCParameterNameMainField3]; -} - -- (nullable NSString *)mainField3 { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMainField3 ofClass:NSString.class error:nil]; -} - -- (void)setMainField4:(nullable NSString *)mainField4 { - [self.parameters sdl_setObject:mainField4 forName:SDLRPCParameterNameMainField4]; -} - -- (nullable NSString *)mainField4 { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMainField4 ofClass:NSString.class error:nil]; -} - -- (void)setAlignment:(nullable SDLTextAlignment)alignment { - [self.parameters sdl_setObject:alignment forName:SDLRPCParameterNameAlignment]; -} - -- (nullable SDLTextAlignment)alignment { - return [self.parameters sdl_enumForName:SDLRPCParameterNameAlignment error:nil]; -} - -- (void)setStatusBar:(nullable NSString *)statusBar { - [self.parameters sdl_setObject:statusBar forName:SDLRPCParameterNameStatusBar]; -} - -- (nullable NSString *)statusBar { - return [self.parameters sdl_objectForName:SDLRPCParameterNameStatusBar ofClass:NSString.class error:nil]; -} - -- (void)setMediaClock:(nullable NSString *)mediaClock { - [self.parameters sdl_setObject:mediaClock forName:SDLRPCParameterNameMediaClock]; -} - -- (nullable NSString *)mediaClock { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMediaClock ofClass:NSString.class error:nil]; -} - -- (void)setMediaTrack:(nullable NSString *)mediaTrack { - [self.parameters sdl_setObject:mediaTrack forName:SDLRPCParameterNameMediaTrack]; -} - -- (nullable NSString *)mediaTrack { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMediaTrack ofClass:NSString.class error:nil]; -} - -- (void)setGraphic:(nullable SDLImage *)graphic { - [self.parameters sdl_setObject:graphic forName:SDLRPCParameterNameGraphic]; -} - -- (nullable SDLImage *)graphic { - return [self.parameters sdl_objectForName:SDLRPCParameterNameGraphic ofClass:SDLImage.class error:nil]; -} - -- (void)setSecondaryGraphic:(nullable SDLImage *)secondaryGraphic { - [self.parameters sdl_setObject:secondaryGraphic forName:SDLRPCParameterNameSecondaryGraphic]; -} - -- (nullable SDLImage *)secondaryGraphic { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSecondaryGraphic ofClass:SDLImage.class error:nil]; -} - -- (void)setSoftButtons:(nullable NSArray *)softButtons { - [self.parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; -} - -- (nullable NSArray *)softButtons { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; -} - -- (void)setCustomPresets:(nullable NSArray *)customPresets { - [self.parameters sdl_setObject:customPresets forName:SDLRPCParameterNameCustomPresets]; -} - -- (nullable NSArray *)customPresets { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameCustomPresets ofClass:NSString.class error:nil]; -} - -- (void)setMetadataTags:(nullable SDLMetadataTags *)metadataTags { - [self.parameters sdl_setObject:metadataTags forName:SDLRPCParameterNameMetadataTags]; -} - -- (nullable SDLMetadataTags *)metadataTags { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMetadataTags ofClass:SDLMetadataTags.class error:nil]; -} - -- (void)setWindowID:(nullable NSNumber *)windowID { - [self.parameters sdl_setObject:windowID forName:SDLRPCParameterNameWindowId]; -} - -- (nullable NSNumber *)windowID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:&error]; -} - -- (void)setTemplateConfiguration:(nullable SDLTemplateConfiguration *)templateConfiguration { - [self.parameters sdl_setObject:templateConfiguration forName:SDLRPCParameterNameTemplateConfiguration]; -} - -- (nullable SDLTemplateConfiguration *)templateConfiguration { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTemplateConfiguration ofClass:SDLTemplateConfiguration.class error:nil]; -} - -- (void)setTemplateTitle:(nullable NSString *)templateTitle { - [self.parameters sdl_setObject:templateTitle forName:SDLRPCParameterNameTemplateTitle]; -} - -- (nullable NSString *)templateTitle { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTemplateTitle ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.h deleted file mode 100644 index a7ca2cf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// SDLOpenMenu.h -// SmartDeviceLink -// -// Created by Justin Gluck on 7/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Used by an app to show the app's menu, typically this is used by a navigation app if the menu button is hidden. - - Added in SmartDeviceLink 6.0 - */ -@interface SDLShowAppMenu : SDLRPCRequest - -/** - Creates a ShowAppMenu RPC to open the app menu directly to a AddSubMenu RPC's submenu. - - @param menuID The ID of the AddSubMenu to open - @return SDLShowAppMenu RPCRequest - */ -- (instancetype)initWithMenuID:(UInt32)menuID; - -/** - A Menu ID that identifies the AddSubMenu to open if it correlates with the AddSubMenu menuID parameter. If not set the top level menu will be opened. - */ -@property (nullable, strong, nonatomic) NSNumber *menuID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.m deleted file mode 100644 index d93b848..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenu.m +++ /dev/null @@ -1,48 +0,0 @@ -// -// SDLOpenMenu.m -// SmartDeviceLink -// -// Created by Justin Gluck on 7/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLShowAppMenu.h" -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLShowAppMenu - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameShowAppMenu]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithMenuID:(UInt32)menuID { - self = [self init]; - if (!self) { - return nil; - } - - self.menuID = @(menuID); - return self; -} - -- (void)setMenuID:(nullable NSNumber *)menuID { - [self.parameters sdl_setObject:menuID forName:SDLRPCParameterNameMenuId]; -} - -- (nullable NSNumber *)menuID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameMenuId ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.h deleted file mode 100644 index d5acd4c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// SDLOpenMenuResponse.h -// SmartDeviceLink -// -// Created by Justin Gluck on 7/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Response to the request to show the app menu. - */ -@interface SDLShowAppMenuResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.m deleted file mode 100644 index 281079e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowAppMenuResponse.m +++ /dev/null @@ -1,23 +0,0 @@ -// -// SDLOpenMenuResponse.m -// SmartDeviceLink -// -// Created by Justin Gluck on 7/12/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLShowAppMenuResponse.h" -#import "SDLRPCFunctionNames.h" - -@implementation SDLShowAppMenuResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameShowAppMenu]) { - } - return self; -} -#pragma clang diagnostic pop - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.h deleted file mode 100644 index 3ac0178..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.h +++ /dev/null @@ -1,120 +0,0 @@ -// SDLShowConstantTBT.h -// - -#import "SDLRPCRequest.h" - -@class SDLImage; -@class SDLSoftButton; - -/** - * This RPC is used to update the user with navigation information for the constantly shown screen (base screen), but also for the alert maneuver screen. - * - * @since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLShowConstantTBT : SDLRPCRequest - -/// Convenience init to create navigation directions -/// -/// @param navigationText1 The first line of text in a multi-line overlay screen -/// @param navigationText2 The second line of text in a multi-line overlay screen -/// @param eta Estimated Time of Arrival time at final destination -/// @param timeToDestination The amount of time needed to reach the final destination -/// @param totalDistance The distance to the final destination -/// @param turnIcon An icon to show with the turn description -/// @param nextTurnIcon An icon to show with the next turn description -/// @param distanceToManeuver Fraction of distance till next maneuver -/// @param distanceToManeuverScale Distance till next maneuver -/// @param maneuverComplete If and when a maneuver has completed while an AlertManeuver is active, the app must send this value set to TRUE in order to clear the AlertManeuver overlay. If omitted the value will be assumed as FALSE -/// @param softButtons Three dynamic SoftButtons available (first SoftButton is fixed to "Turns") -/// @return An SDLShowConstantTBT object -- (instancetype)initWithNavigationText1:(nullable NSString *)navigationText1 navigationText2:(nullable NSString *)navigationText2 eta:(nullable NSString *)eta timeToDestination:(nullable NSString *)timeToDestination totalDistance:(nullable NSString *)totalDistance turnIcon:(nullable SDLImage *)turnIcon nextTurnIcon:(nullable SDLImage *)nextTurnIcon distanceToManeuver:(double)distanceToManeuver distanceToManeuverScale:(double)distanceToManeuverScale maneuverComplete:(BOOL)maneuverComplete softButtons:(nullable NSArray *)softButtons; - -/** - * The first line of text in a multi-line overlay screen. - * - * Optional, Max length 500 chars - */ -@property (strong, nonatomic, nullable) NSString *navigationText1; - -/** - * The second line of text in a multi-line overlay screen. - * - * Optional, 1 - 500 chars - */ -@property (strong, nonatomic, nullable) NSString *navigationText2; - -/** - * Estimated Time of Arrival time at final destination - * - * Optional, 1 - 500 chars - */ -@property (strong, nonatomic, nullable) NSString *eta; - -/** - * The amount of time needed to reach the final destination - * - * Optional, 1 - 500 chars - */ -@property (strong, nonatomic, nullable) NSString *timeToDestination; - -/** - * The distance to the final destination - * - * Optional, 1 - 500 chars - */ -@property (strong, nonatomic, nullable) NSString *totalDistance; - -/** - * An icon to show with the turn description - * - * Optional - * - * @see SDLImage - */ -@property (strong, nonatomic, nullable) SDLImage *turnIcon; - -/** - * An icon to show with the next turn description - * - * Optional - * - * @see SDLImage - */ -@property (strong, nonatomic, nullable) SDLImage *nextTurnIcon; - -/** - * Fraction of distance till next maneuver (starting from when AlertManeuver is triggered). Used to calculate progress bar. - * - * Optional, Float, 0 - 1,000,000,000 - */ -@property (strong, nonatomic, nullable) NSNumber *distanceToManeuver; - -/** - * Distance till next maneuver (starting from) from previous maneuver. Used to calculate progress bar. - * - * Optional, Float, 0 - 1,000,000,000 - */ -@property (strong, nonatomic, nullable) NSNumber *distanceToManeuverScale; - -/** - * If and when a maneuver has completed while an AlertManeuver is active, the app must send this value set to TRUE in order to clear the AlertManeuver overlay. If omitted the value will be assumed as FALSE. - * - * Optional - */ -@property (strong, nonatomic, nullable) NSNumber *maneuverComplete; - -/** - * Three dynamic SoftButtons available (first SoftButton is fixed to "Turns"). If omitted on supported displays, the currently displayed SoftButton values will not change. - * - * Optional, Array length 0 - 3 - * - * @see SDLSoftButton - */ -@property (strong, nonatomic, nullable) NSArray *softButtons; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.m deleted file mode 100644 index 70c2c09..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBT.m +++ /dev/null @@ -1,137 +0,0 @@ -// SDLShowConstantTBT.m -// - - -#import "SDLShowConstantTBT.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImage.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSoftButton.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLShowConstantTBT - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameShowConstantTBT]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithNavigationText1:(nullable NSString *)navigationText1 navigationText2:(nullable NSString *)navigationText2 eta:(nullable NSString *)eta timeToDestination:(nullable NSString *)timeToDestination totalDistance:(nullable NSString *)totalDistance turnIcon:(nullable SDLImage *)turnIcon nextTurnIcon:(nullable SDLImage *)nextTurnIcon distanceToManeuver:(double)distanceToManeuver distanceToManeuverScale:(double)distanceToManeuverScale maneuverComplete:(BOOL)maneuverComplete softButtons:(nullable NSArray *)softButtons { - self = [self init]; - if (!self) { - return nil; - } - - self.navigationText1 = navigationText1; - self.navigationText2 = navigationText2; - self.eta = eta; - self.timeToDestination = timeToDestination; - self.totalDistance = totalDistance; - self.turnIcon = turnIcon; - self.nextTurnIcon = nextTurnIcon; - self.distanceToManeuver = @(distanceToManeuver); - self.distanceToManeuverScale = @(distanceToManeuverScale); - self.maneuverComplete = @(maneuverComplete); - self.softButtons = [softButtons mutableCopy]; - - return self; -} - -- (void)setNavigationText1:(nullable NSString *)navigationText1 { - [self.parameters sdl_setObject:navigationText1 forName:SDLRPCParameterNameNavigationText1]; -} - -- (nullable NSString *)navigationText1 { - return [self.parameters sdl_objectForName:SDLRPCParameterNameNavigationText1 ofClass:NSString.class error:nil]; -} - -- (void)setNavigationText2:(nullable NSString *)navigationText2 { - [self.parameters sdl_setObject:navigationText2 forName:SDLRPCParameterNameNavigationText2]; -} - -- (nullable NSString *)navigationText2 { - return [self.parameters sdl_objectForName:SDLRPCParameterNameNavigationText2 ofClass:NSString.class error:nil]; -} - -- (void)setEta:(nullable NSString *)eta { - [self.parameters sdl_setObject:eta forName:SDLRPCParameterNameETA]; -} - -- (nullable NSString *)eta { - return [self.parameters sdl_objectForName:SDLRPCParameterNameETA ofClass:NSString.class error:nil]; -} - -- (void)setTimeToDestination:(nullable NSString *)timeToDestination { - [self.parameters sdl_setObject:timeToDestination forName:SDLRPCParameterNameTimeToDestination]; -} - -- (nullable NSString *)timeToDestination { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeToDestination ofClass:NSString.class error:nil]; -} - -- (void)setTotalDistance:(nullable NSString *)totalDistance { - [self.parameters sdl_setObject:totalDistance forName:SDLRPCParameterNameTotalDistance]; -} - -- (nullable NSString *)totalDistance { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTotalDistance ofClass:NSString.class error:nil]; -} - -- (void)setTurnIcon:(nullable SDLImage *)turnIcon { - [self.parameters sdl_setObject:turnIcon forName:SDLRPCParameterNameTurnIcon]; -} - -- (nullable SDLImage *)turnIcon { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTurnIcon ofClass:SDLImage.class error:nil]; -} - -- (void)setNextTurnIcon:(nullable SDLImage *)nextTurnIcon { - [self.parameters sdl_setObject:nextTurnIcon forName:SDLRPCParameterNameNextTurnIcon]; -} - -- (nullable SDLImage *)nextTurnIcon { - return [self.parameters sdl_objectForName:SDLRPCParameterNameNextTurnIcon ofClass:SDLImage.class error:nil]; -} - -- (void)setDistanceToManeuver:(nullable NSNumber *)distanceToManeuver { - [self.parameters sdl_setObject:distanceToManeuver forName:SDLRPCParameterNameDistanceToManeuver]; -} - -- (nullable NSNumber *)distanceToManeuver { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDistanceToManeuver ofClass:NSNumber.class error:nil]; -} - -- (void)setDistanceToManeuverScale:(nullable NSNumber *)distanceToManeuverScale { - [self.parameters sdl_setObject:distanceToManeuverScale forName:SDLRPCParameterNameDistanceToManeuverScale]; -} - -- (nullable NSNumber *)distanceToManeuverScale { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDistanceToManeuverScale ofClass:NSNumber.class error:nil]; -} - -- (void)setManeuverComplete:(nullable NSNumber *)maneuverComplete { - [self.parameters sdl_setObject:maneuverComplete forName:SDLRPCParameterNameManeuverComplete]; -} - -- (nullable NSNumber *)maneuverComplete { - return [self.parameters sdl_objectForName:SDLRPCParameterNameManeuverComplete ofClass:NSNumber.class error:nil]; -} - -- (void)setSoftButtons:(nullable NSArray *)softButtons { - [self.parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; -} - -- (nullable NSArray *)softButtons { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBTResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBTResponse.h deleted file mode 100644 index c7db2ce..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBTResponse.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLShowConstantTBTResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLShowConstantTBT - - Since SmartDeviceLink 2.0 - */ -@interface SDLShowConstantTBTResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBTResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBTResponse.m deleted file mode 100644 index 911e508..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowConstantTBTResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLShowConstantTBTResponse.m -// - - -#import "SDLShowConstantTBTResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLShowConstantTBTResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameShowConstantTBT]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowResponse.h deleted file mode 100644 index 2f69910..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowResponse.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLShowResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLShow - - Since SmartDeviceLink 1.0 - */ -@interface SDLShowResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowResponse.m deleted file mode 100644 index c8b5011..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLShowResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLShowResponse.m -// - - -#import "SDLShowResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLShowResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameShow]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSingleTireStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSingleTireStatus.h deleted file mode 100644 index 9ebe1b3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSingleTireStatus.h +++ /dev/null @@ -1,41 +0,0 @@ -// SDLSingleTireStatus.h -// - -#import "SDLRPCMessage.h" - -#import "SDLComponentVolumeStatus.h" -#import "SDLTPMS.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Tire pressure status of a single tire. - * - * @since SmartDeviceLink 2.0 - */ -@interface SDLSingleTireStatus : SDLRPCStruct - -/** - * The volume status of a single tire - - Required - */ -@property (strong, nonatomic) SDLComponentVolumeStatus status; - -/** - The status of TPMS for this particular tire - - Optional - */ -@property (strong, nonatomic, nullable) SDLTPMS monitoringSystemStatus; - -/** - The pressure value of this particular tire in kPa (kilopascals) - - Optional, Float, 0-2000 - */ -@property (copy, nonatomic, nullable) NSNumber *pressure; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSingleTireStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSingleTireStatus.m deleted file mode 100644 index e756e8f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSingleTireStatus.m +++ /dev/null @@ -1,41 +0,0 @@ -// SDLSingleTireStatus.m -// - -#import "SDLSingleTireStatus.h" - -#import "NSMutableDictionary+Store.h" -#import "NSNumber+NumberType.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSingleTireStatus - -- (void)setStatus:(SDLComponentVolumeStatus)status { - [self.store sdl_setObject:status forName:SDLRPCParameterNameStatus]; -} - -- (SDLComponentVolumeStatus)status { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameStatus error:&error]; -} - -- (void)setMonitoringSystemStatus:(nullable SDLTPMS)monitoringSystemStatus { - [self.store sdl_setObject:monitoringSystemStatus forName:SDLRPCParameterNameTPMS]; -} - -- (nullable SDLTPMS)monitoringSystemStatus { - return [self.store sdl_enumForName:SDLRPCParameterNameTPMS error:nil]; -} - -- (void)setPressure:(nullable NSNumber *)pressure { - [self.store sdl_setObject:pressure forName:SDLRPCParameterNamePressure]; -} - -- (nullable NSNumber *)pressure { - return [self.store sdl_objectForName:SDLRPCParameterNamePressure ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.h deleted file mode 100644 index 13cef4c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.h +++ /dev/null @@ -1,126 +0,0 @@ -// SDLSlider.h -// - - -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Creates a full screen or pop-up overlay (depending on platform) with a single user controlled slider. - - If connecting to SDL Core v.6.0+, the slider can be canceled programmatically using the `cancelID`. On older versions of SDL Core, the slider will persist until the user has interacted with the slider or the specified timeout has elapsed. - - Since SDL 2.0 - */ -@interface SDLSlider : SDLRPCRequest - -/** - Convenience init with all parameters. - - @param numTicks Number of selectable items on a horizontal axis - @param position Initial position of slider control - @param sliderHeader Text header to display - @param sliderFooters Text footers to display. See the `sliderFooter` documentation for how placing various numbers of footers will affect the display - @param timeout Indicates how long of a timeout from the last action (i.e. sliding control resets timeout) - @param cancelID An ID for this specific slider to allow cancellation through the `CancelInteraction` RPC. - @return An SDLSlider object - */ -- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooters:(nullable NSArray *)sliderFooters timeout:(UInt16)timeout cancelID:(UInt32)cancelID; - -/** - Creates a slider with only the number of ticks and position. Note that this is not enough to get a SUCCESS response. You must supply additional data. See below for required parameters. - - @param numTicks Number of selectable items on a horizontal axis - @param position Initial position of slider control - @return An SDLSlider object - */ -- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position; - -/** - Creates a slider with all required data and a static footer (or no footer). - - @param numTicks Number of selectable items on a horizontal axis - @param position Initial position of slider control - @param sliderHeader Text header to display - @param sliderFooter Text footer to display - @param timeout Indicates how long of a timeout from the last action (i.e. sliding control resets timeout) - @return An SDLSlider object - */ -- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooter:(nullable NSString *)sliderFooter timeout:(UInt16)timeout; - -/** - Creates an slider with all required data and a dynamic footer (or no footer). - - @param numTicks Number of selectable items on a horizontal axis - @param position Initial position of slider control - @param sliderHeader Text header to display - @param sliderFooters Text footers to display - @param timeout Indicates how long of a timeout from the last action (i.e. sliding control resets timeout) - @return An SDLSlider object - */ -- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooters:(nullable NSArray *)sliderFooters timeout:(UInt16)timeout; - -/** - Represents a number of selectable items on a horizontal axis. - - Integer, Required, Min value: 2, Max Value: 26 - - Since SDL 2.0 - */ -@property (strong, nonatomic) NSNumber *numTicks; - -/** - Initial position of slider control (cannot exceed numTicks). - - Integer, Required, Min Value: 1, Max Value: 26 - - @since SDL 2.0 - */ -@property (strong, nonatomic) NSNumber *position; - -/** - Text header to display. - - String, Required, Max length 500 chars - - Since SDL 2.0 - */ -@property (strong, nonatomic) NSString *sliderHeader; - -/** - Text footer to display. - - For a static text footer, only one footer string shall be provided in the array. - For a dynamic text footer, the number of footer text string in the array must match the numTicks value. - For a dynamic text footer, text array string should correlate with potential slider position index. - If omitted on supported displays, no footer text shall be displayed. - - Array of Strings, Optional, Array length 1 - 26, Max length 500 chars - - Since SDL 2.0 - */ -@property (strong, nonatomic, nullable) NSArray *sliderFooter; - -/** - App defined timeout. Indicates how long of a timeout from the last action (i.e. sliding control resets timeout). If omitted, the value is set to 10 seconds. - - Integer, Optional, Min value: 1000, Max value: 65535, Default value: 10000 - - Since SDL 2.0 - */ -@property (strong, nonatomic, nullable) NSNumber *timeout; - -/** - An ID for this specific slider to allow cancellation through the `CancelInteraction` RPC. - - Integer, Optional - - @see SDLCancelInteraction - @since SDL 6.0 - */ -@property (nullable, strong, nonatomic) NSNumber *cancelID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.m deleted file mode 100644 index 488b428..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSlider.m +++ /dev/null @@ -1,127 +0,0 @@ -// SDLSlider.m -// - - -#import "SDLSlider.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSlider - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSlider]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooters:(nullable NSArray *)sliderFooters timeout:(UInt16)timeout cancelID:(UInt32)cancelID { - self = [self init]; - if (!self) { - return nil; - } - - self.numTicks = @(numTicks); - self.position = @(position); - self.sliderHeader = sliderHeader; - self.sliderFooter = sliderFooters; - self.timeout = @(timeout); - self.cancelID = @(cancelID); - - return self; -} - -- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooter:(nullable NSString *)sliderFooter timeout:(UInt16)timeout { - NSArray *footer = nil; - if (sliderFooter != nil) { - footer = @[sliderFooter]; - } - - return [self initWithNumTicks:numTicks position:position sliderHeader:sliderHeader sliderFooters:footer timeout:timeout]; -} - -- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooters:(nullable NSArray *)sliderFooters timeout:(UInt16)timeout { - self = [self initWithNumTicks:numTicks position:position]; - if (!self) { - return nil; - } - - self.sliderHeader = sliderHeader; - self.sliderFooter = sliderFooters; - self.timeout = @(timeout); - - return self; -} - -- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position { - self = [self init]; - if (!self) { - return nil; - } - - self.numTicks = @(numTicks); - self.position = @(position); - - return self; -} - -- (void)setNumTicks:(NSNumber *)numTicks { - [self.parameters sdl_setObject:numTicks forName:SDLRPCParameterNameNumberTicks]; -} - -- (NSNumber *)numTicks { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameNumberTicks ofClass:NSNumber.class error:&error]; -} - -- (void)setPosition:(NSNumber *)position { - [self.parameters sdl_setObject:position forName:SDLRPCParameterNamePosition]; -} - -- (NSNumber *)position { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNamePosition ofClass:NSNumber.class error:&error]; -} - -- (void)setSliderHeader:(NSString *)sliderHeader { - [self.parameters sdl_setObject:sliderHeader forName:SDLRPCParameterNameSliderHeader]; -} - -- (NSString *)sliderHeader { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameSliderHeader ofClass:NSString.class error:&error]; -} - -- (void)setSliderFooter:(nullable NSArray *)sliderFooter { - [self.parameters sdl_setObject:sliderFooter forName:SDLRPCParameterNameSliderFooter]; -} - -- (nullable NSArray *)sliderFooter { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameSliderFooter ofClass:NSString.class error:nil]; -} - -- (void)setTimeout:(nullable NSNumber *)timeout { - [self.parameters sdl_setObject:timeout forName:SDLRPCParameterNameTimeout]; -} - -- (nullable NSNumber *)timeout { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTimeout ofClass:NSNumber.class error:nil]; -} - -- (void)setCancelID:(nullable NSNumber *)cancelID { - [self.parameters sdl_setObject:cancelID forName:SDLRPCParameterNameCancelID]; -} - -- (nullable NSNumber *)cancelID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCancelID ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSliderResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSliderResponse.h deleted file mode 100644 index c7f7732..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSliderResponse.h +++ /dev/null @@ -1,23 +0,0 @@ -// SDLSliderResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLSlider - - Since SmartDeviceLink 2.0 - */ -@interface SDLSliderResponse : SDLRPCResponse - -/** - The selected position of the slider. - */ -@property (strong, nonatomic, nullable) NSNumber *sliderPosition; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSliderResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSliderResponse.m deleted file mode 100644 index 6d99851..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSliderResponse.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLSliderResponse.m -// - - -#import "SDLSliderResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSliderResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSlider]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setSliderPosition:(nullable NSNumber *)sliderPosition { - [self.parameters sdl_setObject:sliderPosition forName:SDLRPCParameterNameSliderPosition]; -} - -- (nullable NSNumber *)sliderPosition { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSliderPosition ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.h deleted file mode 100644 index 8fffc67..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.h +++ /dev/null @@ -1,82 +0,0 @@ -// SDLSoftButton.h -// - -#import "SDLRPCMessage.h" - -#import "SDLNotificationConstants.h" -#import "SDLSoftButtonType.h" -#import "SDLSystemAction.h" - -@class SDLImage; - -NS_ASSUME_NONNULL_BEGIN - -/** - Describes an on-screen button which may be presented in various contexts, e.g. templates or alerts - */ -@interface SDLSoftButton : SDLRPCStruct - -/// Convenience init -/// -/// @param handler A handler that may optionally be run when the SDLSoftButton has a corresponding notification occur -- (instancetype)initWithHandler:(nullable SDLRPCButtonNotificationHandler)handler; - -/// Convenience init -/// -/// @param type Describes whether this soft button displays only text, only an image, or both -/// @param text Optional text to display (if defined as TEXT or BOTH type) -/// @param image Optional image struct for SoftButton (if defined as IMAGE or BOTH type) -/// @param highlighted Displays in an alternate mode, e.g. with a colored background or foreground. Depends on the IVI system -/// @param buttonId Value which is returned via OnButtonPress / OnButtonEvent -/// @param systemAction Parameter indicating whether selecting a SoftButton shall call a specific system action -/// @param handler A handler that may optionally be run when the SDLSoftButton has a corresponding notification occur. -- (instancetype)initWithType:(SDLSoftButtonType)type text:(nullable NSString *)text image:(nullable SDLImage *)image highlighted:(BOOL)highlighted buttonId:(UInt16)buttonId systemAction:(nullable SDLSystemAction)systemAction handler:(nullable SDLRPCButtonNotificationHandler)handler; - -/// A handler that may optionally be run when the SDLSoftButton has a corresponding notification occur. -@property (copy, nonatomic) SDLRPCButtonNotificationHandler handler; - -/** - Describes whether this soft button displays only text, only an image, or both - - Required - */ -@property (strong, nonatomic) SDLSoftButtonType type; - -/** - Optional text to display (if defined as TEXT or BOTH type) - - Optional - */ -@property (strong, nonatomic, nullable) NSString *text; - -/** - Optional image struct for SoftButton (if defined as IMAGE or BOTH type) - - Optional - */ -@property (strong, nonatomic, nullable) SDLImage *image; - -/** - Displays in an alternate mode, e.g. with a colored background or foreground. Depends on the IVI system. - - Optional - */ -@property (strong, nonatomic, nullable) NSNumber *isHighlighted; - -/** - Value which is returned via OnButtonPress / OnButtonEvent - - Required - */ -@property (strong, nonatomic) NSNumber *softButtonID; - -/** - Parameter indicating whether selecting a SoftButton shall call a specific system action. This is intended to allow Notifications to bring the callee into full / focus; or in the case of persistent overlays, the overlay can persist when a SoftButton is pressed. - - Optional - */ -@property (strong, nonatomic, nullable) SDLSystemAction systemAction; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.m deleted file mode 100644 index 6d1082c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButton.m +++ /dev/null @@ -1,101 +0,0 @@ -// SDLSoftButton.m -// - -#import "SDLSoftButton.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImage.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSoftButton - -- (instancetype)initWithHandler:(nullable SDLRPCButtonNotificationHandler)handler { - self = [self init]; - if (!self) { - return nil; - } - - _handler = handler; - - return self; -} - -- (instancetype)initWithType:(SDLSoftButtonType)type text:(nullable NSString *)text image:(nullable SDLImage *)image highlighted:(BOOL)highlighted buttonId:(UInt16)buttonId systemAction:(nullable SDLSystemAction)systemAction handler:(nullable SDLRPCButtonNotificationHandler)handler { - self = [self initWithHandler:handler]; - if (!self) { - return nil; - } - - self.type = type; - self.text = text; - self.image = image; - self.isHighlighted = @(highlighted); - self.softButtonID = @(buttonId); - self.systemAction = systemAction; - self.handler = handler; - - return self; -} - -- (void)setType:(SDLSoftButtonType)type { - [self.store sdl_setObject:type forName:SDLRPCParameterNameType]; -} - -- (SDLSoftButtonType)type { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameType error:&error]; -} - -- (void)setText:(nullable NSString *)text { - [self.store sdl_setObject:text forName:SDLRPCParameterNameText]; -} - -- (nullable NSString *)text { - return [self.store sdl_objectForName:SDLRPCParameterNameText ofClass:NSString.class error:nil]; -} - -- (void)setImage:(nullable SDLImage *)image { - [self.store sdl_setObject:image forName:SDLRPCParameterNameImage]; -} - -- (nullable SDLImage *)image { - return [self.store sdl_objectForName:SDLRPCParameterNameImage ofClass:SDLImage.class error:nil]; -} - -- (void)setIsHighlighted:(nullable NSNumber *)isHighlighted { - [self.store sdl_setObject:isHighlighted forName:SDLRPCParameterNameIsHighlighted]; -} - -- (nullable NSNumber *)isHighlighted { - return [self.store sdl_objectForName:SDLRPCParameterNameIsHighlighted ofClass:NSNumber.class error:nil]; -} - -- (void)setSoftButtonID:(NSNumber *)softButtonID { - [self.store sdl_setObject:softButtonID forName:SDLRPCParameterNameSoftButtonId]; -} - -- (NSNumber *)softButtonID { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameSoftButtonId ofClass:NSNumber.class error:&error]; -} - -- (void)setSystemAction:(nullable SDLSystemAction)systemAction { - [self.store sdl_setObject:systemAction forName:SDLRPCParameterNameSystemAction]; -} - -- (nullable SDLSystemAction)systemAction { - return [self.store sdl_enumForName:SDLRPCParameterNameSystemAction error:nil]; -} - --(id)copyWithZone:(nullable NSZone *)zone { - SDLSoftButton *newButton = [super copyWithZone:zone]; - newButton->_handler = self.handler; - - return newButton; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.h deleted file mode 100644 index 07d57e2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.h +++ /dev/null @@ -1,61 +0,0 @@ -// SDLSoftButtonCapabilities.h -// - - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Contains information about a SoftButton's capabilities. - * - * @since SDL 2.0 - */ -@interface SDLSoftButtonCapabilities : SDLRPCStruct - -/** - * The button supports a short press. - * - * Whenever the button is pressed short, onButtonPressed(SHORT) will be invoked. - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *shortPressAvailable; - -/** - * The button supports a LONG press. - * - * Whenever the button is pressed long, onButtonPressed(LONG) will be invoked. - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *longPressAvailable; - -/** - * The button supports "button down" and "button up". - * - * Whenever the button is pressed, onButtonEvent(DOWN) will be invoked. Whenever the button is released, onButtonEvent(UP) will be invoked. - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *upDownAvailable; - -/** - * The button supports referencing a static or dynamic image. - * - * Required, Boolean - */ -@property (strong, nonatomic) NSNumber *imageSupported; - -/** - The button supports the use of text. If not included, the default value should be considered true that the button will support text. - - Optional, Boolean - - @since SDL 6.0 - */ -@property (strong, nonatomic, nullable) NSNumber *textSupported; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.m deleted file mode 100644 index 6d5ea07..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonCapabilities.m +++ /dev/null @@ -1,61 +0,0 @@ -// SDLSoftButtonCapabilities.m -// - - -#import "SDLSoftButtonCapabilities.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSoftButtonCapabilities - -- (void)setShortPressAvailable:(NSNumber *)shortPressAvailable { - [self.store sdl_setObject:shortPressAvailable forName:SDLRPCParameterNameShortPressAvailable]; -} - -- (NSNumber *)shortPressAvailable { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameShortPressAvailable ofClass:NSNumber.class error:&error]; -} - -- (void)setLongPressAvailable:(NSNumber *)longPressAvailable { - [self.store sdl_setObject:longPressAvailable forName:SDLRPCParameterNameLongPressAvailable]; -} - -- (NSNumber *)longPressAvailable { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLongPressAvailable ofClass:NSNumber.class error:&error]; -} - -- (void)setUpDownAvailable:(NSNumber *)upDownAvailable { - [self.store sdl_setObject:upDownAvailable forName:SDLRPCParameterNameUpDownAvailable]; -} - -- (NSNumber *)upDownAvailable { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameUpDownAvailable ofClass:NSNumber.class error:&error]; -} - -- (void)setImageSupported:(NSNumber *)imageSupported { - [self.store sdl_setObject:imageSupported forName:SDLRPCParameterNameImageSupported]; -} - -- (NSNumber *)imageSupported { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameImageSupported ofClass:NSNumber.class error:&error]; -} - -- (void)setTextSupported:(nullable NSNumber *)textSupported { - [self.store sdl_setObject:textSupported forName:SDLRPCParameterNameTextSupported]; -} - -- (nullable NSNumber *)textSupported { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameTextSupported ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.h deleted file mode 100644 index d7a6b45..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.h +++ /dev/null @@ -1,74 +0,0 @@ -// -// SDLSoftButtonManager.h -// SmartDeviceLink -// -// Created by Joel Fischer on 2/22/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -@protocol SDLConnectionManagerType; - -@class SDLFileManager; -@class SDLSoftButtonObject; -@class SDLSoftButtonState; -@class SDLSystemCapabilityManager; - -NS_ASSUME_NONNULL_BEGIN - -/** - The handler run when the update has completed - - @param error An error if the update failed and an error occurred - */ -typedef void(^SDLSoftButtonUpdateCompletionHandler)(NSError *__nullable error); - -@interface SDLSoftButtonManager : NSObject - -/** - HAX: This is necessary due to a Ford Sync 3 bug that doesn't like Show requests without a main field being set (it will accept them, but with a GENERIC_ERROR, and 10-15 seconds late...) - */ -@property (copy, nonatomic, nullable) NSString *currentMainField1; - -/** - An array of soft button wrappers containing soft button states. This is the current set of soft buttons in the process of being displayed or that are currently displayed. - */ -@property (copy, nonatomic) NSArray *softButtonObjects; - -/** - All transitions made in-between beginUpdates and this method will occur as one RPC update. - */ -@property (assign, nonatomic, getter=isBatchingUpdates) BOOL batchUpdates; - -- (instancetype)init NS_UNAVAILABLE; - -/** - Create a soft button manager with a connection manager - - @param connectionManager The manager that forwards RPCs - @param fileManager The manager that updates images - @param systemCapabilityManager The system capability manager object for reading window capabilities - @return A new instance of a soft button manager - */ -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager; - -/// Starts the manager. This method is used internally. -- (void)start; - -/** - * Stops the manager. This method is used internally. - */ -- (void)stop; - -/** - Returns a soft button object associated with the manager that is named the specified name or nil if nothing corresponds. - - @param name The name to find a soft button for - @return The soft button associated with that name or nil if none exists - */ -- (nullable SDLSoftButtonObject *)softButtonObjectNamed:(NSString *)name; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.m deleted file mode 100644 index 01a8d0c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonManager.m +++ /dev/null @@ -1,257 +0,0 @@ -// -// SDLSoftButtonManager.m -// SmartDeviceLink -// -// Created by Joel Fischer on 2/22/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLSoftButtonManager.h" - -#import "SDLConnectionManagerType.h" -#import "SDLError.h" -#import "SDLFileManager.h" -#import "SDLLogMacros.h" -#import "SDLOnHMIStatus.h" -#import "SDLPredefinedWindows.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCResponseNotification.h" -#import "SDLSetDisplayLayoutResponse.h" -#import "SDLShow.h" -#import "SDLSoftButton.h" -#import "SDLSoftButtonCapabilities.h" -#import "SDLSoftButtonObject.h" -#import "SDLSoftButtonReplaceOperation.h" -#import "SDLSoftButtonState.h" -#import "SDLSoftButtonTransitionOperation.h" -#import "SDLSystemCapabilityManager.h" -#import "SDLWindowCapability.h" -#import "SDLSystemCapability.h" -#import "SDLDisplayCapability.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSoftButtonObject() - -@property (assign, nonatomic) NSUInteger buttonId; -@property (weak, nonatomic) SDLSoftButtonManager *manager; - -@end - -@interface SDLSoftButtonManager() - -@property (weak, nonatomic) id connectionManager; -@property (weak, nonatomic) SDLFileManager *fileManager; -@property (weak, nonatomic) SDLSystemCapabilityManager *systemCapabilityManager; - -@property (strong, nonatomic) NSOperationQueue *transactionQueue; - -@property (strong, nonatomic, nullable) SDLSoftButtonCapabilities *softButtonCapabilities; -@property (copy, nonatomic, nullable) SDLHMILevel currentLevel; - -@property (strong, nonatomic) NSMutableArray *batchQueue; - -@end - -@implementation SDLSoftButtonManager - -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager{ - self = [super init]; - if (!self) { return nil; } - - _connectionManager = connectionManager; - _fileManager = fileManager; - _systemCapabilityManager = systemCapabilityManager; - _softButtonObjects = @[]; - - _currentLevel = nil; - _transactionQueue = [self sdl_newTransactionQueue]; - _batchQueue = [NSMutableArray array]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusNotification:) name:SDLDidChangeHMIStatusNotification object:nil]; - - return self; -} - -- (void)start { - [self.systemCapabilityManager subscribeToCapabilityType:SDLSystemCapabilityTypeDisplays withObserver:self selector:@selector(sdl_displayCapabilityDidUpdate:)]; -} - -- (void)stop { - _softButtonObjects = @[]; - _currentMainField1 = nil; - _currentLevel = nil; - _softButtonCapabilities = nil; - - [_transactionQueue cancelAllOperations]; - self.transactionQueue = [self sdl_newTransactionQueue]; - - [self.systemCapabilityManager unsubscribeFromCapabilityType:SDLSystemCapabilityTypeDisplays withObserver:self]; -} - -- (NSOperationQueue *)sdl_newTransactionQueue { - NSOperationQueue *queue = [[NSOperationQueue alloc] init]; - queue.name = @"SDLSoftButtonManager Transaction Queue"; - queue.maxConcurrentOperationCount = 1; - queue.qualityOfService = NSQualityOfServiceUserInitiated; - queue.suspended = YES; - - return queue; -} - -/// Suspend the queue if the soft button capabilities are nil (we assume that soft buttons are not supported) -/// OR if the HMI level is NONE since we want to delay sending RPCs until we're in non-NONE -- (void)sdl_updateTransactionQueueSuspended { - if (self.softButtonCapabilities == nil || [self.currentLevel isEqualToEnum:SDLHMILevelNone]) { - SDLLogD(@"Suspending the transaction queue. Current HMI level is NONE: %@, soft button capabilities are nil: %@", ([self.currentLevel isEqualToEnum:SDLHMILevelNone] ? @"YES" : @"NO"), (self.softButtonCapabilities == nil ? @"YES" : @"NO")); - self.transactionQueue.suspended = YES; - } else { - SDLLogD(@"Starting the transaction queue"); - self.transactionQueue.suspended = NO; - } -} - - -#pragma mark - Sending Soft Buttons - -- (void)setSoftButtonObjects:(NSArray *)softButtonObjects { - // Only update if something changed. This prevents, for example, an empty array being reset - if (_softButtonObjects == softButtonObjects) { - SDLLogD(@"New soft button objects are equivalent to existing soft button objects, skipping..."); - return; - } - - // Set the soft button ids. Check to make sure no two soft buttons have the same name, there aren't many soft buttons, so n^2 isn't going to be bad - for (NSUInteger i = 0; i < softButtonObjects.count; i++) { - NSString *buttonName = softButtonObjects[i].name; - softButtonObjects[i].buttonId = i * 100; - for (NSUInteger j = (i + 1); j < softButtonObjects.count; j++) { - if ([softButtonObjects[j].name isEqualToString:buttonName]) { - _softButtonObjects = @[]; - SDLLogE(@"Attempted to set soft button objects, but two buttons had the same name: %@", softButtonObjects); - return; - } - } - } - - for (SDLSoftButtonObject *button in softButtonObjects) { - button.manager = self; - } - - _softButtonObjects = softButtonObjects; - - // We only need to pass the first `softButtonCapabilities` in the array due to the fact that all soft button capabilities are the same (i.e. there is no way to assign a `softButtonCapabilities` to a specific soft button). - SDLSoftButtonReplaceOperation *op = [[SDLSoftButtonReplaceOperation alloc] initWithConnectionManager:self.connectionManager fileManager:self.fileManager capabilities:self.softButtonCapabilities softButtonObjects:_softButtonObjects mainField1:self.currentMainField1]; - - if (self.isBatchingUpdates) { - [self.batchQueue removeAllObjects]; - [self.batchQueue addObject:op]; - } else { - [self.transactionQueue cancelAllOperations]; - [self.transactionQueue addOperation:op]; - } -} - -- (void)sdl_transitionSoftButton:(SDLSoftButtonObject *)softButton { - SDLSoftButtonTransitionOperation *op = [[SDLSoftButtonTransitionOperation alloc] initWithConnectionManager:self.connectionManager capabilities:self.softButtonCapabilities softButtons:self.softButtonObjects mainField1:self.currentMainField1]; - - if (self.isBatchingUpdates) { - for (SDLAsynchronousOperation *sbOperation in self.batchQueue) { - if ([sbOperation isMemberOfClass:[SDLSoftButtonTransitionOperation class]]) { - [self.batchQueue removeObject:sbOperation]; - } - } - - [self.batchQueue addObject:op]; - } else { - [self.transactionQueue addOperation:op]; - } -} - - -#pragma mark - Getting Soft Buttons - -- (nullable SDLSoftButtonObject *)softButtonObjectNamed:(NSString *)name { - for (SDLSoftButtonObject *object in self.softButtonObjects) { - if ([object.name isEqualToString:name]) { - return object; - } - } - - return nil; -} - - -#pragma mark - Getters / Setters - -- (void)setBatchUpdates:(BOOL)batchUpdates { - _batchUpdates = batchUpdates; - - if (!_batchUpdates) { - [self.transactionQueue addOperations:[self.batchQueue copy] waitUntilFinished:NO]; - [self.batchQueue removeAllObjects]; - } -} - -- (void)setCurrentMainField1:(nullable NSString *)currentMainField1 { - _currentMainField1 = currentMainField1; - - for (NSUInteger i = 0; i < self.transactionQueue.operations.count; i++) { - if ([self.transactionQueue.operations[i] isMemberOfClass:[SDLSoftButtonReplaceOperation class]]) { - SDLSoftButtonReplaceOperation *op = self.transactionQueue.operations[i]; - op.mainField1 = currentMainField1; - } else if ([self.transactionQueue.operations[i] isMemberOfClass:[SDLSoftButtonTransitionOperation class]]) { - SDLSoftButtonTransitionOperation *op = self.transactionQueue.operations[i]; - op.mainField1 = currentMainField1; - } - } -} - -#pragma mark - Observers - -- (void)sdl_displayCapabilityDidUpdate:(SDLSystemCapability *)systemCapability { - SDLSoftButtonCapabilities *oldCapabilities = self.softButtonCapabilities; - - // Extract and update the capabilities - NSArray *capabilities = systemCapability.displayCapabilities; - if (capabilities == nil || capabilities.count == 0) { - self.softButtonCapabilities = nil; - } else { - SDLDisplayCapability *mainDisplay = capabilities[0]; - for (SDLWindowCapability *windowCapability in mainDisplay.windowCapabilities) { - NSUInteger currentWindowID = windowCapability.windowID != nil ? windowCapability.windowID.unsignedIntegerValue : SDLPredefinedWindowsDefaultWindow; - if (currentWindowID != SDLPredefinedWindowsDefaultWindow) { continue; } - - self.softButtonCapabilities = windowCapability.softButtonCapabilities.firstObject; - break; - } - } - - // Update the queue's suspend state - [self sdl_updateTransactionQueueSuspended]; - - // Auto-send an updated Show if we have new capabilities - if (self.softButtonObjects.count > 0 - && self.softButtonCapabilities != nil - && ![self.softButtonCapabilities isEqual:oldCapabilities]) { - SDLSoftButtonReplaceOperation *op = [[SDLSoftButtonReplaceOperation alloc] initWithConnectionManager:self.connectionManager fileManager:self.fileManager capabilities:self.softButtonCapabilities softButtonObjects:self.softButtonObjects mainField1:self.currentMainField1]; - [self.transactionQueue addOperation:op]; - } -} - -- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { - SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; - - if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { - return; - } - - self.currentLevel = hmiStatus.hmiLevel; - - [self sdl_updateTransactionQueueSuspended]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.h deleted file mode 100644 index 0de2f81..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.h +++ /dev/null @@ -1,104 +0,0 @@ -// -// SDLSoftButtonObject.h -// SmartDeviceLink -// -// Created by Joel Fischer on 2/22/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLNotificationConstants.h" - -@class SDLArtwork; -@class SDLSoftButton; -@class SDLSoftButtonObject; -@class SDLSoftButtonState; - - -NS_ASSUME_NONNULL_BEGIN - -/** - A soft button wrapper object that is capable of storing and switching between states - */ -@interface SDLSoftButtonObject : NSObject - -/** - The name of this button - */ -@property (copy, nonatomic, readonly) NSString *name; - -/** - All states available to this button - */ -@property (strong, nonatomic, readonly) NSArray *states; - -/** - The name of the current state of this soft button - */ -@property (copy, nonatomic, readonly) SDLSoftButtonState *currentState; - -/// Describes an on-screen button which may be presented in various contexts, e.g. templates or alerts -@property (strong, nonatomic, readonly) SDLSoftButton *currentStateSoftButton; - -/** - The handler to be called when the button is in the current state and is pressed - */ -@property (strong, nonatomic, readonly) SDLRPCButtonNotificationHandler eventHandler; - -/** - Create a multi-state (or single-state, but you should use initWithName:state: instead for that case) soft button. For example, a button that changes its image or text, such as a repeat or shuffle button. - - @param name The name of the button - @param states The states available to the button - @param eventHandler The handler to be called when the button is in the current state and is pressed - @param initialStateName The first state to use - */ -- (instancetype)initWithName:(NSString *)name states:(NSArray *)states initialStateName:(NSString *)initialStateName handler:(nullable SDLRPCButtonNotificationHandler)eventHandler; - -/** - Create a single-state soft button. For example, a button that brings up a Perform Interaction menu. - @param name The name of the button - @param state The single state of the button - @param eventHandler The handler to be called when the button is pressed - @return The button object - */ -- (instancetype)initWithName:(NSString *)name state:(SDLSoftButtonState *)state handler:(nullable SDLRPCButtonNotificationHandler)eventHandler; - -/** - Create a single-state soft button. For example, a button that brings up a Perform Interaction menu. - - @param name The name of the button - @param text The text to be displayed on the button - @param artwork The artwork to be displayed on the button - @param eventHandler The handler to be called when the button is pressed - @return The button object - */ -- (instancetype)initWithName:(NSString *)name text:(nullable NSString *)text artwork:(nullable SDLArtwork *)artwork handler:(nullable SDLRPCButtonNotificationHandler)eventHandler; - -/** - Transition the soft button to another state in the `states` property. The wrapper considers all transitions valid (assuming a state with that name exists). - - @warning This method will throw an exception and crash your app (on purpose) if you attempt an invalid transition. So...don't do that. - - @param stateName The next state. - @return YES if a state was found with that name, NO otherwise. - */ -- (BOOL)transitionToStateNamed:(NSString *)stateName NS_SWIFT_NAME(transition(toState:)); - -/** - Transition the soft button to the next state of the array set when in the `states` property - */ -- (void)transitionToNextState; - -/** - Return a state from the state array with a specific name. - - @param stateName The name of the state to return - @return The state, or nil if no state with that name exists - */ -- (nullable SDLSoftButtonState *)stateWithName:(NSString *)stateName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.m deleted file mode 100644 index adb153e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonObject.m +++ /dev/null @@ -1,152 +0,0 @@ -// -// SDLSoftButtonObject.m -// SmartDeviceLink -// -// Created by Joel Fischer on 2/22/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLSoftButtonObject.h" - -#import "SDLError.h" -#import "SDLLogMacros.h" -#import "SDLSoftButton.h" -#import "SDLSoftButtonManager.h" -#import "SDLSoftButtonState.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSoftButtonManager() - -- (void)sdl_transitionSoftButton:(SDLSoftButtonObject *)softButton; - -@end - -@interface SDLSoftButtonObject() - -@property (assign, nonatomic) NSUInteger buttonId; -@property (strong, nonatomic) NSString *currentStateName; -@property (weak, nonatomic) SDLSoftButtonManager *manager; - -@end - -@implementation SDLSoftButtonObject - -- (instancetype)initWithName:(NSString *)name states:(NSArray *)states initialStateName:(NSString *)initialStateName handler:(nullable SDLRPCButtonNotificationHandler)eventHandler { - self = [super init]; - if (!self) { return nil; } - - // Make sure there aren't two states with the same name - if ([self sdl_hasTwoStatesOfSameName:states]) { - return nil; - } - - _name = name; - _states = states; - _currentStateName = initialStateName; - _eventHandler = eventHandler; - - return self; -} - -- (instancetype)initWithName:(NSString *)name state:(SDLSoftButtonState *)state handler:(nullable SDLRPCButtonNotificationHandler)eventHandler { - return [self initWithName:name states:@[state] initialStateName:state.name handler:eventHandler]; -} - -- (instancetype)initWithName:(NSString *)name text:(nullable NSString *)text artwork:(nullable SDLArtwork *)artwork handler:(nullable SDLRPCButtonNotificationHandler)eventHandler { - SDLSoftButtonState *implicitState = [[SDLSoftButtonState alloc] initWithStateName:name text:text artwork:artwork]; - return [self initWithName:name state:implicitState handler:eventHandler]; -} - -- (BOOL)transitionToStateNamed:(NSString *)stateName { - if ([self stateWithName:stateName] == nil) { - SDLLogE(@"Attempted to transition to state: %@ on soft button: %@ but no state with that name was found", stateName, self.name); - return NO; - } - - if (self.states.count == 1) { - SDLLogW(@"There's only one state, so no transitioning is possible!"); - return NO; - } - - SDLLogD(@"Transitioning button %@ to state %@", self.name, stateName); - self.currentStateName = stateName; - [self.manager sdl_transitionSoftButton:self]; - - return YES; -} - -- (void)transitionToNextState { - NSString *nextStateName = nil; - for (NSUInteger i = 0; i < self.states.count; i++) { - if ([self.states[i].name isEqualToString:self.currentStateName]) { - NSUInteger nextStateNumber = (i == self.states.count - 1) ? 0 : (i + 1); - nextStateName = self.states[nextStateNumber].name; - break; - } - } - - if (nextStateName == nil) { - return; - } - - [self transitionToStateNamed:nextStateName]; -} - -- (SDLSoftButtonState *)currentState { - SDLSoftButtonState *state = [self stateWithName:self.currentStateName]; - - if (state == nil) { - @throw [NSException sdl_invalidSoftButtonStateException]; - } else { - return state; - } -} - -- (SDLSoftButton *)currentStateSoftButton { - SDLSoftButton *button = self.currentState.softButton; - button.softButtonID = @(self.buttonId); - button.handler = self.eventHandler; - - return button; -} - -- (nullable SDLSoftButtonState *)stateWithName:(NSString *)stateName { - for (SDLSoftButtonState *state in self.states) { - if ([state.name isEqualToString:stateName]) { - return state; - } - } - - return nil; -} - -- (BOOL)sdl_hasTwoStatesOfSameName:(NSArray *)states { - for (NSUInteger i = 0; i < states.count; i++) { - NSString *stateName = states[i].name; - for (NSUInteger j = (i + 1); j < states.count; j++) { - if ([states[j].name isEqualToString:stateName]) { - return YES; - } - } - } - - return NO; -} - -- (NSString *)description { - NSMutableArray *allStateNames = [NSMutableArray array]; - for (SDLSoftButtonState *state in self.states) { - [allStateNames addObject:state.name]; - } - - return [NSString stringWithFormat:@"Name: %@, Current State: %@, All States: %@", self.name, self.currentStateName, allStateNames]; -} - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"Name: %@, Current State: %@, All States: %@", self.name, self.currentState, self.states]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.h deleted file mode 100644 index f7a66b3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// SDLSoftButtonReplaceOperation.h -// SmartDeviceLink -// -// Created by Joel Fischer on 4/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAsynchronousOperation.h" - -@class SDLSoftButtonCapabilities; -@class SDLFileManager; -@class SDLSoftButtonObject; - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - -/** - This class is an operation that takes a set of soft buttons and replaces the old set of soft buttons with the new set based on the capabilities available on the system. This operation will handle sending placeholder soft buttons with only text (if possible), uploading the initial state images, sending the initial state soft buttons with those images, and then uploading the other state images. - */ -@interface SDLSoftButtonReplaceOperation : SDLAsynchronousOperation - -/** - The primary text field on the system template. This is necessary to HAX a workaround for Sync 3. - */ -@property (strong, nonatomic) NSString *mainField1; - -/** - Initialize the replace operation - - @param connectionManager The manager that will send the resultant RPCs - @param fileManager The file manager that will handle uploading any images - @param capabilities The capabilites of the soft buttons on the current template - @param softButtonObjects The soft buttons that should be sent - @param mainField1 The primary text field of the system template - @return The operation - */ -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager capabilities:(nullable SDLSoftButtonCapabilities *)capabilities softButtonObjects:(NSArray *)softButtonObjects mainField1:(NSString *)mainField1; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.m deleted file mode 100644 index d3a6873..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonReplaceOperation.m +++ /dev/null @@ -1,273 +0,0 @@ -// -// SDLSoftButtonReplaceOperation.m -// SmartDeviceLink -// -// Created by Joel Fischer on 4/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLSoftButtonReplaceOperation.h" - -#import "SDLArtwork.h" -#import "SDLConnectionManagerType.h" -#import "SDLFileManager.h" -#import "SDLLogMacros.h" -#import "SDLShow.h" -#import "SDLSoftButton.h" -#import "SDLSoftButtonCapabilities.h" -#import "SDLSoftButtonObject.h" -#import "SDLSoftButtonState.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSoftButtonReplaceOperation () - -@property (strong, nonatomic, nullable) SDLSoftButtonCapabilities *softButtonCapabilities; -@property (strong, nonatomic) NSArray *softButtonObjects; - -@property (weak, nonatomic) id connectionManager; -@property (weak, nonatomic) SDLFileManager *fileManager; -@property (copy, nonatomic, nullable) NSError *internalError; - -@end - -@implementation SDLSoftButtonReplaceOperation - -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager capabilities:(nullable SDLSoftButtonCapabilities *)capabilities softButtonObjects:(NSArray *)softButtonObjects mainField1:(NSString *)mainField1 { - self = [super init]; - if (!self) { return nil; } - - _connectionManager = connectionManager; - _fileManager = fileManager; - _softButtonCapabilities = capabilities; - _softButtonObjects = softButtonObjects; - _mainField1 = mainField1; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - // Check if soft buttons have images and, if so, if the images need to be uploaded - if (![self sdl_supportsSoftButtonImages]) { - // The module does not support images - SDLLogW(@"Soft button images are not supported. Attempting to send text-only soft buttons. If any button does not contain text, no buttons will be sent."); - - // Send text-only buttons if all current states for the soft buttons have text - __weak typeof(self) weakself = self; - [self sdl_sendCurrentStateTextOnlySoftButtonsWithCompletionHandler:^(BOOL success) { - __strong typeof(weakself) strongself = weakself; - if (!success) { - SDLLogE(@"Buttons will not be sent because the module does not support images and some of the buttons do not have text"); - } - [strongself finishOperation]; - }]; - } else if (![self sdl_allStateImagesAreUploaded]) { - // If there are images in the first soft button state that have not yet been uploaded, send a text-only version of the soft buttons (the text-only buttons will only be sent if all the first button states have text) - [self sdl_sendCurrentStateTextOnlySoftButtonsWithCompletionHandler:^(BOOL success) {}]; - - // Upload images used in the first soft button state - __weak typeof(self) weakself = self; - [self sdl_uploadInitialStateImagesWithCompletionHandler:^{ - SDLLogV(@"Finished sending images for the first soft button states"); - // Now that the images have been uploaded, send the soft buttons with images - __strong typeof(weakself) strongself = weakself; - [strongself sdl_sendCurrentStateSoftButtonsWithCompletionHandler:^{ - // Finally, upload the images used in the other button states - __strong typeof(weakself) strongself = weakself; - [strongself sdl_uploadOtherStateImagesWithCompletionHandler:^{ - __strong typeof(weakself) strongself = weakself; - SDLLogV(@"Finished sending images for the other soft button states"); - [strongself finishOperation]; - }]; - }]; - }]; - } else { - // All the images have been uploaded. Send initial soft buttons with images. - __weak typeof(self) weakself = self; - [self sdl_sendCurrentStateSoftButtonsWithCompletionHandler:^{ - __strong typeof(weakself) strongself = weakself; - SDLLogV(@"Finished sending soft buttons with images"); - [strongself finishOperation]; - }]; - } -} - - -#pragma mark - Uploading Images - -/// Upload the initial state images. -/// @param handler Called when all images have been uploaded -- (void)sdl_uploadInitialStateImagesWithCompletionHandler:(void (^)(void))handler { - NSMutableArray *initialStatesToBeUploaded = [NSMutableArray array]; - for (SDLSoftButtonObject *object in self.softButtonObjects) { - if ([self sdl_artworkNeedsUpload:object.currentState.artwork]) { - [initialStatesToBeUploaded addObject:object.currentState.artwork]; - } - } - - [self sdl_uploadImages:initialStatesToBeUploaded forStateName:@"Initial" completionHandler:handler]; -} - -/// Upload the other state images. -/// @param handler Called when all images have been uploaded -- (void)sdl_uploadOtherStateImagesWithCompletionHandler:(void (^)(void))handler { - NSMutableArray *otherStatesToBeUploaded = [NSMutableArray array]; - for (SDLSoftButtonObject *object in self.softButtonObjects) { - for (SDLSoftButtonState *state in object.states) { - if ([state.name isEqualToString:object.currentState.name]) { continue; } - if ([self sdl_artworkNeedsUpload:state.artwork]) { - [otherStatesToBeUploaded addObject:state.artwork]; - } - } - } - - [self sdl_uploadImages:otherStatesToBeUploaded forStateName:@"Other" completionHandler:handler]; -} - -/// Helper method for uploading images -/// @param images The images to upload -/// @param stateName The name of the button states for which the images are being uploaded. Used for logs. -/// @param completionHandler Called when all images have been uploaded -- (void)sdl_uploadImages:(NSArray *)images forStateName:(NSString *)stateName completionHandler:(void (^)(void))completionHandler { - if (images.count == 0) { - SDLLogV(@"No images to upload for %@ states", stateName); - completionHandler(); - return; - } - - SDLLogD(@"Uploading images for %@ states", stateName); - __weak typeof(self) weakself = self; - [self.fileManager uploadArtworks:[images copy] progressHandler:^BOOL(NSString * _Nonnull artworkName, float uploadPercentage, NSError * _Nullable error) { - __strong typeof(weakself) strongself = weakself; - SDLLogV(@"Uploaded %@ states images: %@, error: %@, percent complete: %f.2%%", stateName, artworkName, error, uploadPercentage * 100); - if (strongself.isCancelled) { - [strongself finishOperation]; - return NO; - } - - return YES; - } completionHandler:^(NSArray * _Nonnull artworkNames, NSError * _Nullable error) { - if (error != nil) { - SDLLogE(@"Error uploading %@ states images: %@", stateName, error); - } else { - SDLLogD(@"All %@ states images uploaded", stateName); - } - - completionHandler(); - }]; -} - - -#pragma mark - Sending the Soft Buttons - -- (void)sdl_sendCurrentStateSoftButtonsWithCompletionHandler:(void (^)(void))handler { - if (self.isCancelled) { - [self finishOperation]; - } - - SDLLogV(@"Preparing to send full soft buttons"); - NSMutableArray *softButtons = [NSMutableArray arrayWithCapacity:self.softButtonObjects.count]; - for (SDLSoftButtonObject *buttonObject in self.softButtonObjects) { - [softButtons addObject:buttonObject.currentStateSoftButton]; - } - - SDLShow *show = [[SDLShow alloc] init]; - show.mainField1 = self.mainField1; - show.softButtons = [softButtons copy]; - - [self.connectionManager sendConnectionRequest:show withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error != nil) { - SDLLogW(@"Failed to update soft buttons with text buttons: %@", error); - } - - SDLLogD(@"Finished sending text only soft buttons"); - handler(); - }]; -} - -/** - Returns text soft buttons representing the current states of the button objects, or returns if _any_ of the buttons' current states are image only buttons. -*/ -- (void)sdl_sendCurrentStateTextOnlySoftButtonsWithCompletionHandler:(void (^)(BOOL success))handler { - if (self.isCancelled) { - [self finishOperation]; - } - - SDLLogV(@"Preparing to send text-only soft buttons"); - NSMutableArray *textButtons = [NSMutableArray arrayWithCapacity:self.softButtonObjects.count]; - for (SDLSoftButtonObject *buttonObject in self.softButtonObjects) { - SDLSoftButton *button = buttonObject.currentStateSoftButton; - if (button.text == nil) { - SDLLogW(@"Attempted to create text buttons, but some buttons don't support text, so no text-only soft buttons will be sent"); - handler(NO); - return; - } - - button.image = nil; - button.type = SDLSoftButtonTypeText; - [textButtons addObject:button]; - } - - SDLShow *show = [[SDLShow alloc] init]; - show.mainField1 = self.mainField1; - show.softButtons = [textButtons copy]; - - [self.connectionManager sendConnectionRequest:show withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error != nil) { - SDLLogW(@"Failed to update soft buttons with text buttons: %@", error); - } - - SDLLogD(@"Finished sending text only soft buttons"); - handler(YES); - }]; -} - -#pragma mark - Images - -- (BOOL)sdl_artworkNeedsUpload:(SDLArtwork *)artwork { - return (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && self.softButtonCapabilities.imageSupported.boolValue && !artwork.isStaticIcon); -} - -/// Checks all the button states for images that need to be uploaded. -/// @return True if all images have been uploaded; false at least one image needs to be uploaded -- (BOOL)sdl_allStateImagesAreUploaded { - for (SDLSoftButtonObject *button in self.softButtonObjects) { - for (SDLSoftButtonState *state in button.states) { - SDLArtwork *artwork = state.artwork; - if (![self sdl_artworkNeedsUpload:artwork]) { continue; } - return NO; - } - } - - return YES; -} - -- (BOOL)sdl_supportsSoftButtonImages { - return self.softButtonCapabilities.imageSupported.boolValue; -} - -#pragma mark - Property Overrides - -- (void)finishOperation { - SDLLogV(@"Finishing soft button replace operation"); - [super finishOperation]; -} - -- (nullable NSString *)name { - return @"com.sdl.softbuttonmanager.replace"; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityNormal; -} - -- (nullable NSError *)error { - return self.internalError; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.h deleted file mode 100644 index 687192e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.h +++ /dev/null @@ -1,76 +0,0 @@ -// -// SDLSoftButtonState.h -// SmartDeviceLink -// -// Created by Joel Fischer on 2/22/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLSystemAction.h" - -@class SDLArtwork; -@class SDLSoftButton; - -NS_ASSUME_NONNULL_BEGIN - -/// A soft button state including data such as text, name and artwork -@interface SDLSoftButtonState : NSObject - -/** - The name of this soft button state - */ -@property (copy, nonatomic, readonly) NSString *name; - -/** - The artwork to be used with this button or nil if it is text-only - */ -@property (strong, nonatomic, readonly, nullable) SDLArtwork *artwork; - -/** - The text to be used with this button or nil if it is image-only - */ -@property (copy, nonatomic, readonly, nullable) NSString *text; - -/** - Whether or not the button should be highlighted on the UI - */ -@property (assign, nonatomic, getter=isHighlighted) BOOL highlighted; - -/** - A special system action - */ -@property (strong, nonatomic) SDLSystemAction systemAction; - -/** - An SDLSoftButton describing this state - */ -@property (strong, nonatomic, readonly) SDLSoftButton *softButton; - -/// Initializer unavailable -- (instancetype)init NS_UNAVAILABLE; - -/** - Create the soft button state. Either the text or artwork or both may be set. - - @param stateName The name of this state for the button - @param text The text to be displayed on the button - @param image The image to be displayed on the button. This is assumed to be a PNG, non-persistant. The name will be the same as the state name. - @return A new soft button state - */ -- (instancetype)initWithStateName:(NSString *)stateName text:(nullable NSString *)text image:(nullable UIImage *)image; - -/** - Create the soft button state. Either the text or artwork or both may be set. - - @param stateName The name of this state for the button - @param text The text to be displayed on the button - @param artwork The artwork to be displayed on the button - @return A new soft button state - */ -- (instancetype)initWithStateName:(NSString *)stateName text:(nullable NSString *)text artwork:(nullable SDLArtwork *)artwork; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.m deleted file mode 100644 index e3fb264..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonState.m +++ /dev/null @@ -1,86 +0,0 @@ -// -// SDLSoftButtonState.m -// SmartDeviceLink -// -// Created by Joel Fischer on 2/22/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLSoftButtonState.h" - -#import "SDLArtwork.h" -#import "SDLImage.h" -#import "SDLLogMacros.h" -#import "SDLSoftButton.h" -#import "SDLSoftButtonType.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLFile() - -@property (assign, nonatomic, readwrite) BOOL persistent; - -@end - -@interface SDLSoftButtonState() - -@property (strong, nonatomic, readonly) SDLSoftButtonType type; -@property (strong, nonatomic, readonly, nullable) SDLImage *image; - -@end - -@implementation SDLSoftButtonState - -- (instancetype)initWithStateName:(NSString *)stateName text:(nullable NSString *)text image:(nullable UIImage *)image { - NSParameterAssert((text != nil) || (image != nil)); - - SDLArtwork *artwork = [[SDLArtwork alloc] initWithImage:image persistent:YES asImageFormat:SDLArtworkImageFormatPNG]; - return [self initWithStateName:stateName text:text artwork:artwork]; -} - -- (instancetype)initWithStateName:(NSString *)stateName text:(nullable NSString *)text artwork:(nullable SDLArtwork *)artwork { - self = [super init]; - if (!self) { return nil; } - - NSParameterAssert((text != nil) || (artwork != nil)); - - _name = stateName; - _text = text; - _artwork = artwork; - _systemAction = SDLSystemActionDefaultAction; - - return self; -} - -- (SDLSoftButton *)softButton { - SDLSystemAction action = self.systemAction ?: SDLSystemActionDefaultAction; - return [[SDLSoftButton alloc] initWithType:self.type text:self.text image:self.image highlighted:self.highlighted buttonId:0 systemAction:action handler:nil]; -} - -- (SDLSoftButtonType)type { - if (self.artwork != nil && self.text != nil) { - return SDLSoftButtonTypeBoth; - } else if (self.artwork != nil) { - return SDLSoftButtonTypeImage; - } else { - return SDLSoftButtonTypeText; - } -} - -- (nullable SDLImage *)image { - if (self.artwork == nil) { return nil; } - - return self.artwork.imageRPC; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"Name: %@, Text: %@, Image: %@", self.name, self.text, self.image.value]; -} - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"Name: %@, Text: %@, Image: %@, Soft Button: %@", self.name, self.text, self.image, self.softButton]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.h deleted file mode 100644 index 2679c98..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// SDLSoftButtonTransitionOperation.h -// SmartDeviceLink -// -// Created by Joel Fischer on 4/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAsynchronousOperation.h" - -@class SDLSoftButtonCapabilities; -@class SDLSoftButtonObject; - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - -/** - This operation handles changing a set of soft button objects when some of those objects have changed state. - */ -@interface SDLSoftButtonTransitionOperation : SDLAsynchronousOperation - -/** - The primary text field on the system template. This is necessary to HAX a workaround for Sync 3. - */ -@property (strong, nonatomic) NSString *mainField1; - -/** - Initialize the transition operation - - @param connectionManager The manager that will send the resultant RPCs - @param capabilities The capabilites of the soft buttons on the current template - @param softButtons The soft buttons that should be sent - @param mainField1 The primary text field of the system template - @return The transition operation - */ -- (instancetype)initWithConnectionManager:(id)connectionManager capabilities:(SDLSoftButtonCapabilities *)capabilities softButtons:(NSArray *)softButtons mainField1:(NSString *)mainField1; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.m deleted file mode 100644 index add0348..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonTransitionOperation.m +++ /dev/null @@ -1,92 +0,0 @@ -// -// SDLSoftButtonTransitionOperation.m -// SmartDeviceLink -// -// Created by Joel Fischer on 4/25/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLSoftButtonTransitionOperation.h" - -#import "SDLConnectionManagerType.h" -#import "SDLFileManager.h" -#import "SDLLogMacros.h" -#import "SDLSoftButtonCapabilities.h" -#import "SDLShow.h" -#import "SDLSoftButton.h" -#import "SDLSoftButtonObject.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSoftButtonTransitionOperation () - -@property (strong, nonatomic) SDLSoftButtonCapabilities *softButtonCapabilities; -@property (strong, nonatomic) NSArray *softButtons; - -@property (weak, nonatomic) id connectionManager; -@property (copy, nonatomic, nullable) NSError *internalError; - -@end - -@implementation SDLSoftButtonTransitionOperation - -- (instancetype)initWithConnectionManager:(id)connectionManager capabilities:(SDLSoftButtonCapabilities *)capabilities softButtons:(NSArray *)softButtons mainField1:(NSString *)mainField1 { - self = [super init]; - if (!self) { return nil; } - - _connectionManager = connectionManager; - _softButtonCapabilities = capabilities; - _softButtons = softButtons; - _mainField1 = mainField1; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - [self sdl_sendNewSoftButtons]; -} - -- (void)sdl_sendNewSoftButtons { - SDLShow *newShow = [[SDLShow alloc] init]; - newShow.mainField1 = self.mainField1; - newShow.softButtons = [self sdl_currentStateSoftButtonsForObjects:self.softButtons]; - - [self.connectionManager sendConnectionRequest:newShow withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error != nil) { - SDLLogW(@"Failed to transition soft button to new state. Error: %@, Response: %@", error, response); - self.internalError = error; - } - - [self finishOperation]; - }]; -} - -- (NSArray *)sdl_currentStateSoftButtonsForObjects:(NSArray *)objects { - NSMutableArray *softButtons = [NSMutableArray arrayWithCapacity:objects.count]; - for (SDLSoftButtonObject *button in objects) { - [softButtons addObject:button.currentStateSoftButton]; - } - - return [softButtons copy]; -} - -#pragma mark - Property Overrides - -- (nullable NSString *)name { - return @"com.sdl.softbuttonmanager.transition"; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityNormal; -} - -- (nullable NSError *)error { - return self.internalError; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonType.h deleted file mode 100644 index 0519ce1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonType.h +++ /dev/null @@ -1,25 +0,0 @@ -// SDLSoftButtonType.h -// - - -#import "SDLEnum.h" - -/** - SoftButtonType (TEXT / IMAGE / BOTH). Used by SoftButton. - */ -typedef SDLEnum SDLSoftButtonType SDL_SWIFT_ENUM; - -/** - Text kind Softbutton - */ -extern SDLSoftButtonType const SDLSoftButtonTypeText; - -/** - Image kind Softbutton - */ -extern SDLSoftButtonType const SDLSoftButtonTypeImage; - -/** - Both (Text & Image) kind Softbutton - */ -extern SDLSoftButtonType const SDLSoftButtonTypeBoth; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonType.m deleted file mode 100644 index 38de6d7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSoftButtonType.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLSoftButtonType.m -// - - -#import "SDLSoftButtonType.h" - -SDLSoftButtonType const SDLSoftButtonTypeText = @"TEXT"; -SDLSoftButtonType const SDLSoftButtonTypeImage = @"IMAGE"; -SDLSoftButtonType const SDLSoftButtonTypeBoth = @"BOTH"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.h deleted file mode 100644 index 31b69d8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.h +++ /dev/null @@ -1,71 +0,0 @@ -// SDLSpeak.h -// - -#import "SDLRPCRequest.h" - -@class SDLTTSChunk; - -/** - * Speaks a phrase over the vehicle audio system using SDL's TTS (text-to-speech) engine. The provided text to be spoken can be simply a text phrase, or it can consist of phoneme specifications to direct SDL's TTS engine to speak a "speech-sculpted" phrase. - * - * Receipt of the Response indicates the completion of the Speak operation, regardless of how the Speak operation may have completed (i.e. successfully, interrupted, terminated, etc.). - * - * Requesting a new Speak operation while the application has another Speak operation already in progress (i.e. no corresponding Response for that in-progress Speak operation has been received yet) will terminate the in-progress Speak operation (causing its corresponding Response to be sent by SDL) and begin the requested Speak operation - * - * Requesting a new Speak operation while the application has an SDLAlert operation already in progress (i.e. no corresponding Response for that in-progress SDLAlert operation has been received yet) will result in the Speak operation request being rejected (indicated in the Response to the Request) - * - * Requesting a new SDLAlert operation while the application has a Speak operation already in progress (i.e. no corresponding Response for that in-progress Speak operation has been received yet) will terminate the in-progress Speak operation (causing its corresponding Response to be sent by SDL) and begin the requested SDLAlert operation - * - * Requesting a new Speak operation while the application has a SDLPerformInteraction operation already in progress (i.e. no corresponding Response for that in-progress SDLPerformInteraction operation has been received yet) will result in the Speak operation request being rejected (indicated in the Response to the Request) - * - * Requesting a SDLPerformInteraction operation while the application has a Speak operation already in progress (i.e. no corresponding Response for that in-progress Speak operation has been received yet) will terminate the in-progress Speak operation (causing its corresponding Response to be sent by SDL) and begin the requested SDLPerformInteraction operation - * - * HMI Status Requirements: - *
    1. HMILevel: FULL, Limited
    2. - *
    3. AudioStreamingState: Any
    4. - *
    5. SystemContext: MAIN, MENU, VR
    6. - - * Notes: - *
    7. When SDLAlert is issued with MENU in effect, SDLAlert is queued and "played" when MENU interaction is completed (i.e. SystemContext reverts to MAIN). When SDLAlert - * is issued with VR in effect, SDLAlert is queued and "played" when VR interaction is completed (i.e. SystemContext reverts to MAIN)
    8. - *
    9. When both SDLAlert and Speak are queued during MENU or VR, they are "played" back in the order in which they were queued, with all existing rules for "collisions" still in effect
    10. - * - * Additional Notes: - *
    11. Total character limit depends on platform.
    12. - *
    13. Chunks are limited to 500 characters; however you can have multiple TTS chunks.
    14. - *
    15. On old systems there is a total character limit of 500 characters across all chunks. This could vary according to the VCA.
    16. - * - * @since SmartDeviceLink 1.0 - * @see SDLAlert - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSpeak : SDLRPCRequest - -/// Convenience init to create a speak message -/// -/// @param ttsText The text to speak -/// @return An SDLSpeak object -- (instancetype)initWithTTS:(NSString *)ttsText; - -/// Convenience init to create a speak message -/// -/// @param ttsChunks An array of TTSChunk structs which, taken together, specify the phrase to be spoken -/// @return An SDLSpeak object -- (instancetype)initWithTTSChunks:(NSArray *)ttsChunks; - -/** - * An array of TTSChunk structs which, taken together, specify the phrase to be spoken - * - * @discussion The total length of the phrase composed from the ttsChunks provided must be less than 500 characters or the request will be rejected - * - * Required, Array of SDLTTSChunk, Array size 1 - 100 - * - * @see SDLTTSChunk - */ -@property (strong, nonatomic) NSArray *ttsChunks; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.m deleted file mode 100644 index 4a8b182..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeak.m +++ /dev/null @@ -1,52 +0,0 @@ -// SDLSpeak.m -// - - -#import "SDLSpeak.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLTTSChunk.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSpeak - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSpeak]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithTTS:(NSString *)ttsText { - NSArray *ttsChunks = [SDLTTSChunk textChunksFromString:ttsText]; - return [self initWithTTSChunks:ttsChunks]; -} - -- (instancetype)initWithTTSChunks:(NSArray *)ttsChunks { - self = [self init]; - if (!self) { - return nil; - } - - self.ttsChunks = [ttsChunks mutableCopy]; - - return self; -} - -- (void)setTtsChunks:(NSArray *)ttsChunks { - [self.parameters sdl_setObject:ttsChunks forName:SDLRPCParameterNameTTSChunks]; -} - -- (NSArray *)ttsChunks { - NSError *error = nil; - return [self.parameters sdl_objectsForName:SDLRPCParameterNameTTSChunks ofClass:SDLTTSChunk.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeakResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeakResponse.h deleted file mode 100644 index 0ae8ce8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeakResponse.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLSpeakResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLSpeak - - Since SmartDeviceLink 1.0 - */ -@interface SDLSpeakResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeakResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeakResponse.m deleted file mode 100644 index e3cd91a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeakResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLSpeakResponse.m -// - - -#import "SDLSpeakResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSpeakResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSpeak]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeechCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeechCapabilities.h deleted file mode 100644 index 985de61..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeechCapabilities.h +++ /dev/null @@ -1,42 +0,0 @@ -// SDLSpeechCapabilities.h -// - - -#import "SDLEnum.h" - -/** - * Contains information about TTS capabilities on the SDL platform. Used in RegisterAppInterfaceResponse, and TTSChunk. - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLSpeechCapabilities SDL_SWIFT_ENUM; - -/** - The SDL platform can speak text phrases. - */ -extern SDLSpeechCapabilities const SDLSpeechCapabilitiesText; - -/** - The SDL platform can speak SAPI Phonemes. - */ -extern SDLSpeechCapabilities const SDLSpeechCapabilitiesSAPIPhonemes; - -/** - The SDL platform can speak LHPlus Phonemes. - */ -extern SDLSpeechCapabilities const SDLSpeechCapabilitiesLHPlusPhonemes; - -/** - The SDL platform can speak Prerecorded indicators and prompts. - */ -extern SDLSpeechCapabilities const SDLSpeechCapabilitiesPrerecorded; - -/** - The SDL platform can speak Silence. - */ -extern SDLSpeechCapabilities const SDLSpeechCapabilitiesSilence; - -/** - The SDL platform can play a file - */ -extern SDLSpeechCapabilities const SDLSpeechCapabilitiesFile; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeechCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeechCapabilities.m deleted file mode 100644 index 33a3499..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSpeechCapabilities.m +++ /dev/null @@ -1,12 +0,0 @@ -// SDLSpeechCapabilities.m -// - - -#import "SDLSpeechCapabilities.h" - -SDLSpeechCapabilities const SDLSpeechCapabilitiesText = @"TEXT"; -SDLSpeechCapabilities const SDLSpeechCapabilitiesSAPIPhonemes = @"SAPI_PHONEMES"; -SDLSpeechCapabilities const SDLSpeechCapabilitiesLHPlusPhonemes = @"LHPLUS_PHONEMES"; -SDLSpeechCapabilities const SDLSpeechCapabilitiesPrerecorded = @"PRE_RECORDED"; -SDLSpeechCapabilities const SDLSpeechCapabilitiesSilence = @"SILENCE"; -SDLSpeechCapabilities const SDLSpeechCapabilitiesFile = @"FILE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.h deleted file mode 100644 index 0564583..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.h +++ /dev/null @@ -1,59 +0,0 @@ -// SDLStartTime.h -// - - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Describes the hour, minute and second values used to set the media clock. - * - * @since SDL 1.0 - */ -@interface SDLStartTime : SDLRPCStruct - -/** - Create a time struct with a time interval (time in seconds). Fractions of the second will be eliminated and rounded down. - - @param timeInterval The time interval to transform into hours, minutes, seconds - @return The object - */ -- (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval; - -/** - Create a time struct with hours, minutes, and seconds - - @param hours The number of hours - @param minutes The number of minutes - @param seconds The number of seconds - @return The object - */ -- (instancetype)initWithHours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds; - -/** - * The hour of the media clock - * - * Some display types only support a max value of 19. If out of range, it will be rejected. - * - * Required, Integer, 0 - 59 - */ -@property (strong, nonatomic) NSNumber *hours; - -/** - * The minute of the media clock - * - * Required, Integer, 0 - 59 - */ -@property (strong, nonatomic) NSNumber *minutes; - -/** - * The second of the media clock - * - * Required, Integer, 0 - 59 - */ -@property (strong, nonatomic) NSNumber *seconds; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.m deleted file mode 100644 index 4fa55b9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStartTime.m +++ /dev/null @@ -1,69 +0,0 @@ -// SDLStartTime.m -// - - -#import "SDLStartTime.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLStartTime - -- (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval { - self = [self init]; - if (!self) { return nil; } - - // https://stackoverflow.com/a/15304826/1221798 - long seconds = lround(timeInterval); - self.hours = @(seconds / 3600); - self.minutes = @((seconds % 3600) / 60); - self.seconds = @(seconds % 60); - - return self; -} - -- (instancetype)initWithHours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds { - self = [self init]; - if (!self) { - return nil; - } - - self.hours = @(hours); - self.minutes = @(minutes); - self.seconds = @(seconds); - - return self; -} - -- (void)setHours:(NSNumber *)hours { - [self.store sdl_setObject:hours forName:SDLRPCParameterNameHours]; -} - -- (NSNumber *)hours { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameHours ofClass:NSNumber.class error:&error]; -} - -- (void)setMinutes:(NSNumber *)minutes { - [self.store sdl_setObject:minutes forName:SDLRPCParameterNameMinutes]; -} - -- (NSNumber *)minutes { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMinutes ofClass:NSNumber.class error:&error]; -} - -- (void)setSeconds:(NSNumber *)seconds { - [self.store sdl_setObject:seconds forName:SDLRPCParameterNameSeconds]; -} - -- (NSNumber *)seconds { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameSeconds ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStateMachine.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStateMachine.h deleted file mode 100644 index fa3b309..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStateMachine.h +++ /dev/null @@ -1,102 +0,0 @@ -// -// SDLStateMachine.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/30/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -typedef NSString SDLState; -typedef NSArray SDLAllowableStateTransitions; - -extern NSString *const SDLStateMachineNotificationFormat; - -typedef NSString *SDLStateMachineNotificationInfoKey; -extern SDLStateMachineNotificationInfoKey const SDLStateMachineNotificationInfoKeyOldState; -extern SDLStateMachineNotificationInfoKey const SDLStateMachineNotificationInfoKeyNewState; - -typedef NSString *SDLStateMachineExceptionInfoKey; -extern SDLStateMachineExceptionInfoKey const SDLStateMachineExceptionInfoKeyTargetClass; -extern SDLStateMachineExceptionInfoKey const SDLStateMachineExceptionInfoKeyFromState; -extern SDLStateMachineExceptionInfoKey const SDLStateMachineExceptionInfoKeyToClass; - -typedef NSString *SDLStateMachineTransitionFormat; -extern SDLStateMachineTransitionFormat const SDLStateMachineTransitionFormatWillLeave; -extern SDLStateMachineTransitionFormat const SDLStateMachineTransitionFormatWillTransition; -extern SDLStateMachineTransitionFormat const SDLStateMachineTransitionFormatDidTransition; -extern SDLStateMachineTransitionFormat const SDLStateMachineTransitionFormatDidEnter; - - -/** - * This class allows for a state machine to be created with a set of states and allowable transitions. When a transition occurs, the state machine will attempt to call a series of methods on the `target` class. - * - * Additionally, NSNotifications will be fired. The notifications will be of type "com.sdl.notification.statemachine.`TargetClass`". The target class is generated by calling `NSStringFromClass([target Class])`. The payload will contain the transition type, the old state, and new state. - * - * The sequence of events and methods are: - * * `[target willLeaveState]` - * * `[target willTransitionFromStateToState]` - * * The state transitions here - * * `[target didTransitionFromStateToState]` - * * `[target didEnterState]` - */ -@interface SDLStateMachine : NSObject - -/** - * A dictionary of states and their allowed transitions. - */ -@property (copy, nonatomic, readonly) NSDictionary *states; - -/** - * The current state of the state machine. - */ -@property (copy, nonatomic, readonly) SDLState *currentState; - -/** - * The object that will have selector methods called upon it. - */ -@property (weak, nonatomic, readonly) id target; - -/** - * This transition will be sent right after the state changes, but before `didTransition` or `didEnter` method calls occur. - */ -@property (copy, nonatomic, readonly) NSString *transitionNotificationName; - -/** - * Create a new state machine with these parameters - * - * @param target The target class state transition messages will be sent to - * @param states A dictionary of states and their allowed transitions - * @param initialState The initial state of the state machine - * - * @return An instance of the state machine class - */ -- (instancetype)initWithTarget:(id)target initialState:(SDLState *)initialState states:(NSDictionary *)states; - -/** - * Transition to another state when called. If the current state is not allowed to transition to the new state, an exception will occur. If the state machine is already in the called state, no action will occur. - * - * @param state The state to transition to. - */ -- (void)transitionToState:(SDLState *)state; - -/** - * Set the state machine to a particular state without transitioning. No methods will be called or notifications sent. This is primarily used for testing. - * - * @param state The state to set to - */ -- (void)setToState:(SDLState *)state fromOldState:(nullable SDLState *)oldState callEnterTransition:(BOOL)shouldCall; - -/** - * Return whether or not the current state is the passed state - * - * @param state The state to check - */ -- (BOOL)isCurrentState:(SDLState *)state; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStateMachine.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStateMachine.m deleted file mode 100644 index 1819584..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStateMachine.m +++ /dev/null @@ -1,162 +0,0 @@ -// -// SDLStateMachine.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/30/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import "SDLStateMachine.h" - -#import "SDLError.h" -#import "SDLLogMacros.h" - - -NS_ASSUME_NONNULL_BEGIN - -NSString *const SDLStateMachineNotificationFormat = @"com.sdl.statemachine.%@"; - -SDLStateMachineNotificationInfoKey const SDLStateMachineNotificationInfoKeyOldState = @"oldState"; -SDLStateMachineNotificationInfoKey const SDLStateMachineNotificationInfoKeyNewState = @"newState"; - -SDLStateMachineExceptionInfoKey const SDLStateMachineExceptionInfoKeyTargetClass = @"targetClass"; -SDLStateMachineExceptionInfoKey const SDLStateMachineExceptionInfoKeyFromState = @"fromState"; -SDLStateMachineExceptionInfoKey const SDLStateMachineExceptionInfoKeyToClass = @"toState"; - -SDLStateMachineTransitionFormat const SDLStateMachineTransitionFormatWillLeave = @"willLeaveState%@"; -SDLStateMachineTransitionFormat const SDLStateMachineTransitionFormatWillTransition = @"willTransitionFromState%@ToState%@"; -SDLStateMachineTransitionFormat const SDLStateMachineTransitionFormatDidTransition = @"didTransitionFromState%@ToState%@"; -SDLStateMachineTransitionFormat const SDLStateMachineTransitionFormatDidEnter = @"didEnterState%@"; - - -@interface SDLStateMachine () - -@property (copy, nonatomic, readwrite) SDLState *currentState; - -@end - - -@implementation SDLStateMachine - -- (instancetype)initWithTarget:(id)target initialState:(SDLState *)initialState states:(NSDictionary *)states { - self = [super init]; - - if (!self) { - return nil; - } - - if (states[initialState] == nil) { - NSString *reasonMessage = [NSString stringWithFormat:@"Attempted to start with an SDLState (%@) that is not in the states dictionary", initialState]; - @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:reasonMessage userInfo:nil]; - } - - _target = target; - _states = states; - _currentState = initialState; - - return self; -} - -- (void)transitionToState:(SDLState *)state { - NSString *oldState = [self.currentState copy]; - if ([self isCurrentState:state]) { - return; - } - - if (![self sdl_canState:self.currentState transitionToState:state]) { - NSString *targetClassString = NSStringFromClass([self.target class]); - NSString *reasonMessage = [NSString stringWithFormat:@"Invalid state machine %@ transition of target %@ occurred from %@ to %@", NSStringFromClass(self.class), targetClassString, self.currentState, state]; - @throw [NSException exceptionWithName:NSInternalInconsistencyException - reason:reasonMessage - userInfo:@{SDLStateMachineExceptionInfoKeyTargetClass: targetClassString, - SDLStateMachineExceptionInfoKeyFromState: self.currentState, - SDLStateMachineExceptionInfoKeyToClass: state}]; - } - - SEL willLeave = NSSelectorFromString([NSString stringWithFormat:SDLStateMachineTransitionFormatWillLeave, oldState]); - SEL willTransition = NSSelectorFromString([NSString stringWithFormat:SDLStateMachineTransitionFormatWillTransition, oldState, state]); - SEL didTransition = NSSelectorFromString([NSString stringWithFormat:SDLStateMachineTransitionFormatDidTransition, oldState, state]); - SEL didEnter = NSSelectorFromString([NSString stringWithFormat:SDLStateMachineTransitionFormatDidEnter, state]); - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-performSelector-leaks" - - SDLLogV(@"State machine for class %@ will transition from state %@ to state %@", NSStringFromClass([_target class]), oldState, state); - - // Pre state transition calls - if ([self.target respondsToSelector:willLeave]) { - [self.target performSelector:willLeave]; - } - - if ([self.target respondsToSelector:willTransition]) { - [self.target performSelector:willTransition]; - } - - // Transition the state - self.currentState = state; - - // Post state transition calls - [[NSNotificationCenter defaultCenter] postNotificationName:self.transitionNotificationName object:self userInfo:@{SDLStateMachineNotificationInfoKeyOldState: oldState, SDLStateMachineNotificationInfoKeyNewState: state}]; - if ([self.target respondsToSelector:didTransition]) { - [self.target performSelector:didTransition]; - } - - if ([self.target respondsToSelector:didEnter]) { - [self.target performSelector:didEnter]; - } - -#pragma clang diagnostic pop -} - -- (BOOL)isCurrentState:(SDLState *)state { - return [self.currentState isEqualToString:state]; -} - - -#pragma mark - Helpers - -- (void)setToState:(SDLState *)state fromOldState:(nullable SDLState *)oldState callEnterTransition:(BOOL)shouldCall { - if (![self.states.allKeys containsObject:state]) { - return; - } - - if (oldState != nil) { - self.currentState = oldState; - } - - self.currentState = state; - - if (shouldCall) { - SEL didEnter = NSSelectorFromString([NSString stringWithFormat:SDLStateMachineTransitionFormatDidEnter, state]); -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-performSelector-leaks" - if ([self.target respondsToSelector:didEnter]) { - [self.target performSelector:didEnter]; -#pragma clang diagnostic pop - } - } -} - -/** - * Determine if a state transition is valid. Returns YES if the state transition dictionary's fromState key contains toState in its value array, or if fromState and toState are the same state. - * - * @param fromState The former state - * @param toState The new state - * - * @return Whether or not the state transition is valid - */ -- (BOOL)sdl_canState:(SDLState *)fromState transitionToState:(SDLState *)toState { - if ([self.states[fromState] containsObject:toState] || [fromState isEqualToString:toState]) { - return YES; - } - - return NO; -} - -- (NSString *)transitionNotificationName { - return [NSString stringWithFormat:SDLStateMachineNotificationFormat, [self.target class]]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStaticIconName.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStaticIconName.h deleted file mode 100644 index db143a9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStaticIconName.h +++ /dev/null @@ -1,900 +0,0 @@ -// -// SDLStaticIconName.h -// SmartDeviceLink -// -// Created by Nicole on 7/23/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * Static icon names - */ -typedef SDLEnum SDLStaticIconName SDL_SWIFT_ENUM; - -/** - * Static icon accept call / active phone call in progress / initiate a phone call - */ -extern SDLStaticIconName const SDLStaticIconNameAcceptCall; - -/** - * Static icon add waypoint - */ -extern SDLStaticIconName const SDLStaticIconNameAddWaypoint; - -/** - * Static icon album - */ -extern SDLStaticIconName const SDLStaticIconNameAlbum; - -/** - * Static icon ambient lighting - */ -extern SDLStaticIconName const SDLStaticIconNameAmbientLighting; - -/** - * Static icon arrow - north - */ -extern SDLStaticIconName const SDLStaticIconNameArrowNorth; - -/** - * Static icon audio mute - */ -extern SDLStaticIconName const SDLStaticIconNameAudioMute; - -/** - * Static icon audiobook episode - */ -extern SDLStaticIconName const SDLStaticIconNameAudiobookEpisode; - -/** - * Static icon audiobook narrator - */ -extern SDLStaticIconName const SDLStaticIconNameAudiobookNarrator; - -/** - * Static icon auxillary audio - */ -extern SDLStaticIconName const SDLStaticIconNameAuxillaryAudio; - -/** - * Static icon back / return - */ -extern SDLStaticIconName const SDLStaticIconNameBack; - -/** - * Static icon battery capacity 0 of 5 - */ -extern SDLStaticIconName const SDLStaticIconNameBatteryCapacity0Of5; - -/** - * Static icon battery capacity 1 of 5 - */ -extern SDLStaticIconName const SDLStaticIconNameBatteryCapacity1Of5; - -/** - * Static icon battery capacity 2 of 5 - */ -extern SDLStaticIconName const SDLStaticIconNameBatteryCapacity2Of5; - -/** - * Static icon battery capacity 3 of 5 - */ -extern SDLStaticIconName const SDLStaticIconNameBatteryCapacity3Of5; - -/** - * Static icon battery capacity 4 of 5 - */ -extern SDLStaticIconName const SDLStaticIconNameBatteryCapacity4Of5; - -/** - * Static icon battery capacity 5 of 5 - */ -extern SDLStaticIconName const SDLStaticIconNameBatteryCapacity5Of5; - -/** - * Static icon bluetooth audio source - */ -extern SDLStaticIconName const SDLStaticIconNameBluetoothAudioSource; - -/** - * Static icon bluetooth1 - */ -extern SDLStaticIconName const SDLStaticIconNameBluetooth1; - -/** - * Static icon bluetooth2 - */ -extern SDLStaticIconName const SDLStaticIconNameBluetooth2; - -/** - * Static icon browse - */ -extern SDLStaticIconName const SDLStaticIconNameBrowse; - -/** - * Static icon cell phone in roaming mode - */ -extern SDLStaticIconName const SDLStaticIconNameCellPhoneInRoamingMode; - -/** - * Static icon cell service signal strength 0 of 5 bars - */ -extern SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength0Of5Bars; - -/** - * Static icon cell service signal strength 1 of 5 bars - */ -extern SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength1Of5Bars; - -/** - * Static icon cell service signal strength 2 of 5 bars - */ -extern SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength2Of5Bars; - -/** - * Static icon cell service signal strength 3 of 5 bars - */ -extern SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength3Of5Bars; - -/** - * Static icon cell service signal strength 4 of 5 bars - */ -extern SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength4Of5Bars; - -/** - * Static icon cell service signal strength 5 of 5 bars - */ -extern SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength5Of5Bars; - -/** - * Static icon change lane left - */ -extern SDLStaticIconName const SDLStaticIconNameChangeLaneLeft; - -/** - * Static icon change lane right - */ -extern SDLStaticIconName const SDLStaticIconNameChangeLaneRight; - -/** - * Static icon check box checked - */ -extern SDLStaticIconName const SDLStaticIconNameCheckBoxChecked; - -/** - * Static icon check box unchecked - */ -extern SDLStaticIconName const SDLStaticIconNameCheckBoxUnchecked; - -/** - * Static icon climate - */ -extern SDLStaticIconName const SDLStaticIconNameClimate; - -/** - * Static icon clock - */ -extern SDLStaticIconName const SDLStaticIconNameClock; - -/** - * Static icon compose (e.g. message) - */ -extern SDLStaticIconName const SDLStaticIconNameCompose; - -/** - * Static icon contact / person - */ -extern SDLStaticIconName const SDLStaticIconNameContact; - -/** - * Static icon continue - */ -extern SDLStaticIconName const SDLStaticIconNameContinue; - -/** - * Static icon dash / bullet point - */ -extern SDLStaticIconName const SDLStaticIconNameDash; - -/** - * Static icon date / calendar - */ -extern SDLStaticIconName const SDLStaticIconNameDate; - -/** - * Static icon delete/remove - trash - */ -extern SDLStaticIconName const SDLStaticIconNameDelete; - -/** - * Static icon destination - */ -extern SDLStaticIconName const SDLStaticIconNameDestination; - -/** - * Static icon destination ferry ahead - */ -extern SDLStaticIconName const SDLStaticIconNameDestinationFerryAhead; - -/** - * Static icon ebookmark (e.g. message, feed) - */ -extern SDLStaticIconName const SDLStaticIconNameEbookmark; - -/** - * Static icon empty (i.e. no image) - */ -extern SDLStaticIconName const SDLStaticIconNameEmpty; - -/** - * Static icon end call / reject call - */ -extern SDLStaticIconName const SDLStaticIconNameEndCall; - -/** - * Static icon fail / X - */ -extern SDLStaticIconName const SDLStaticIconNameFail; - -/** - * Static icon fast forward 30 secs - */ -extern SDLStaticIconName const SDLStaticIconNameFastForward30Secs; - -/** - * Static icon favorite / heart - */ -extern SDLStaticIconName const SDLStaticIconNameFavoriteHeart; - -/** - * Static icon favorite / star - */ -extern SDLStaticIconName const SDLStaticIconNameFavoriteStar; - -/** - * Static icon fax number - */ -extern SDLStaticIconName const SDLStaticIconNameFaxNumber; - -/** - * Static icon filename - */ -extern SDLStaticIconName const SDLStaticIconNameFilename; - -/** - * Static icon filter / search - */ -extern SDLStaticIconName const SDLStaticIconNameFilter; - -/** - * Static icon folder - */ -extern SDLStaticIconName const SDLStaticIconNameFolder; - -/** - * Static icon fuel prices - */ -extern SDLStaticIconName const SDLStaticIconNameFuelPrices; - -/** - * Static icon full map - */ -extern SDLStaticIconName const SDLStaticIconNameFullMap; - -/** - * Static icon generic phone number - */ -extern SDLStaticIconName const SDLStaticIconNameGenericPhoneNumber; - -/** - * Static icon genre - */ -extern SDLStaticIconName const SDLStaticIconNameGenre; - -/** - * Static icon global keyboard - */ -extern SDLStaticIconName const SDLStaticIconNameGlobalKeyboard; - -/** - * Static icon highway exit information - */ -extern SDLStaticIconName const SDLStaticIconNameHighwayExitInformation; - -/** - * Static icon home phone number - */ -extern SDLStaticIconName const SDLStaticIconNameHomePhoneNumber; - -/** - * Static icon hyperlink - */ -extern SDLStaticIconName const SDLStaticIconNameHyperlink; - -/** - * Static icon ID3 tag unknown - */ -extern SDLStaticIconName const SDLStaticIconNameID3TagUnknown; - -/** - * Static icon incoming calls (in list of phone calls) - */ -extern SDLStaticIconName const SDLStaticIconNameIncomingCalls; - -/** - * Static icon information - */ -extern SDLStaticIconName const SDLStaticIconNameInformation; - -/** - * Static icon IPOD media source - */ -extern SDLStaticIconName const SDLStaticIconNameIPodMediaSource; - -/** - * Static icon join calls - */ -extern SDLStaticIconName const SDLStaticIconNameJoinCalls; - -/** - * Static icon keep left - */ -extern SDLStaticIconName const SDLStaticIconNameKeepLeft; - -/** - * Static icon keep right - */ -extern SDLStaticIconName const SDLStaticIconNameKeepRight; - -/** - * Static icon key / keycode - */ -extern SDLStaticIconName const SDLStaticIconNameKey; - -/** - * Static icon left - */ -extern SDLStaticIconName const SDLStaticIconNameLeft; - -/** - * Static icon left arrow / back - */ -extern SDLStaticIconName const SDLStaticIconNameLeftArrow; - -/** - * Static icon left exit - */ -extern SDLStaticIconName const SDLStaticIconNameLeftExit; - -/** - * Static icon LINE IN audio source - */ -extern SDLStaticIconName const SDLStaticIconNameLineInAudioSource; - -/** - * Static icon locked - */ -extern SDLStaticIconName const SDLStaticIconNameLocked; - -/** - * Static icon media control - left arrow - */ -extern SDLStaticIconName const SDLStaticIconNameMediaControlLeftArrow; - -/** - * Static icon media control - recording - */ -extern SDLStaticIconName const SDLStaticIconNameMediaControlRecording; - -/** - * Static icon media control - right arrow - */ -extern SDLStaticIconName const SDLStaticIconNameMediaControlRightArrow; - -/** - * Static icon media control - stop (e.g. streaming) - */ -extern SDLStaticIconName const SDLStaticIconNameMediaControlStop; - -/** - * Static icon microphone - */ -extern SDLStaticIconName const SDLStaticIconNameMicrophone; - -/** - * Static icon missed calls (in list of phone calls) - */ -extern SDLStaticIconName const SDLStaticIconNameMissedCalls; - -/** - * Static icon mobile phone number - */ -extern SDLStaticIconName const SDLStaticIconNameMobilePhoneNumber; - -/** - * Static icon move down / download - */ -extern SDLStaticIconName const SDLStaticIconNameMoveDown; - -/** - * Static icon move up - */ -extern SDLStaticIconName const SDLStaticIconNameMoveUp; - -/** - * Static icon MP3 tag artist - */ -extern SDLStaticIconName const SDLStaticIconNameMP3TagArtist; - -/** - * Static icon navigation / navigation settings - */ -extern SDLStaticIconName const SDLStaticIconNameNavigation; - -/** - * Static icon navigation current direction - */ -extern SDLStaticIconName const SDLStaticIconNameNavigationCurrentDirection; - -/** - * Static icon negative rating - thumbs down - */ -extern SDLStaticIconName const SDLStaticIconNameNegativeRatingThumbsDown; - -/** - * Static icon new/unread text message/email - */ -extern SDLStaticIconName const SDLStaticIconNameNew; - -/** - * Static icon office phone number / work phone number - */ -extern SDLStaticIconName const SDLStaticIconNameOfficePhoneNumber; - -/** - * Static icon opened/read text message/email - */ -extern SDLStaticIconName const SDLStaticIconNameOpened; - -/** - * Static icon origin / nearby locale / current position - */ -extern SDLStaticIconName const SDLStaticIconNameOrigin; - -/** - * Static icon outgoing calls (in list of phone calls) - */ -extern SDLStaticIconName const SDLStaticIconNameOutgoingCalls; - -/** - * Static icon play / pause - pause active - */ -extern SDLStaticIconName const SDLStaticIconNamePause; - -/** - * Static icon phone call 1 - */ -extern SDLStaticIconName const SDLStaticIconNamePhoneCall1; - -/** - * Static icon phone call 2 - */ -extern SDLStaticIconName const SDLStaticIconNamePhoneCall2; - -/** - * Static icon phone device - */ -extern SDLStaticIconName const SDLStaticIconNamePhoneDevice; - -/** - * Static icon phonebook - */ -extern SDLStaticIconName const SDLStaticIconNamePhonebook; - -/** - * Static icon photo / picture - */ -extern SDLStaticIconName const SDLStaticIconNamePhoto; - -/** - * Static icon play / pause - play active - */ -extern SDLStaticIconName const SDLStaticIconNamePlay; - -/** - * Static icon playlist - */ -extern SDLStaticIconName const SDLStaticIconNamePlaylist; - -/** - * Static icon pop-up - */ -extern SDLStaticIconName const SDLStaticIconNamePopUp; - -/** - * Static icon positive rating - thumbs up - */ -extern SDLStaticIconName const SDLStaticIconNamePositiveRatingThumbsUp; - -/** - * Static icon power - */ -extern SDLStaticIconName const SDLStaticIconNamePower; - -/** - * Static icon primary phone (favorite) - */ -extern SDLStaticIconName const SDLStaticIconNamePrimaryPhone; - -/** - * Static icon radio button checked - */ -extern SDLStaticIconName const SDLStaticIconNameRadioButtonChecked; - -/** - * Static icon radio button unchecked - */ -extern SDLStaticIconName const SDLStaticIconNameRadioButtonUnchecked; - -/** - * Static icon recent calls / history - */ -extern SDLStaticIconName const SDLStaticIconNameRecentCalls; - -/** - * Static icon recent destinations - */ -extern SDLStaticIconName const SDLStaticIconNameRecentDestinations; - -/** - * Static icon redo - */ -extern SDLStaticIconName const SDLStaticIconNameRedo; - -/** - * Static icon refresh - */ -extern SDLStaticIconName const SDLStaticIconNameRefresh; - -/** - * Static icon remote diagnostics - check engine - */ -extern SDLStaticIconName const SDLStaticIconNameRemoteDiagnosticsCheckEngine; - -/** - * Static icon rendered 911 assist / emergency assistance - */ -extern SDLStaticIconName const SDLStaticIconNameRendered911Assist; - -/** - * Static icon repeat - */ -extern SDLStaticIconName const SDLStaticIconNameRepeat; - -/** - * Static icon repeat play - */ -extern SDLStaticIconName const SDLStaticIconNameRepeatPlay; - -/** - * Static icon reply - */ -extern SDLStaticIconName const SDLStaticIconNameReply; - -/** - * Static icon rewind 30 secs - */ -extern SDLStaticIconName const SDLStaticIconNameRewind30Secs; - -/** - * Static icon right - */ -extern SDLStaticIconName const SDLStaticIconNameRight; - -/** - * Static icon right exit - */ -extern SDLStaticIconName const SDLStaticIconNameRightExit; - -/** - * Static icon ringtones - */ -extern SDLStaticIconName const SDLStaticIconNameRingtones; - -/** - * Static icon roundabout left hand 1 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand1; - -/** - * Static icon roundabout left hand 2 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand2; - -/** - * Static icon roundabout left hand 3 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand3; - -/** - * Static icon roundabout left hand 4 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand4; - -/** - * Static icon roundabout left hand 5 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand5; - -/** - * Static icon roundabout left hand 6 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand6; - -/** - * Static icon roundabout left hand 7 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand7; - -/** - * Static icon roundabout right hand 1 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand1; - -/** - * Static icon roundabout right hand 2 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand2; - -/** - * Static icon roundabout right hand 3 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand3; - -/** - * Static icon roundabout right hand 4 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand4; - -/** - * Static icon roundabout right hand 5 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand5; - -/** - * Static icon roundabout right hand 6 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand6; - -/** - * Static icon roundabout right hand 7 - */ -extern SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand7; - -/** - * Static icon RSS - */ -extern SDLStaticIconName const SDLStaticIconNameRSS; - -/** - * Static icon settings / menu - */ -extern SDLStaticIconName const SDLStaticIconNameSettings; - -/** - * Static icon sharp left - */ -extern SDLStaticIconName const SDLStaticIconNameSharpLeft; - -/** - * Static icon sharp right - */ -extern SDLStaticIconName const SDLStaticIconNameSharpRight; - -/** - * Static icon show - */ -extern SDLStaticIconName const SDLStaticIconNameShow; - -/** - * Static icon shuffle play - */ -extern SDLStaticIconName const SDLStaticIconNameShufflePlay; - -/** - * Static icon ski places / elevation / altitude - */ -extern SDLStaticIconName const SDLStaticIconNameSkiPlaces; - -/** - * Static icon slight left - */ -extern SDLStaticIconName const SDLStaticIconNameSlightLeft; - -/** - * Static icon slight right - */ -extern SDLStaticIconName const SDLStaticIconNameSlightRight; - -/** - * Static icon smartphone - */ -extern SDLStaticIconName const SDLStaticIconNameSmartphone; - -/** - * Static icon sort list - */ -extern SDLStaticIconName const SDLStaticIconNameSortList; - -/** - * Static icon speed dial numbers - number 0 - */ -extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber0; - -/** - * Static icon speed dial numbers - number 1 - */ -extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber1; - -/** - * Static icon speed dial numbers - number 2 - */ -extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber2; - -/** - * Static icon speed dial numbers - number 3 - */ -extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber3; - -/** - * Static icon speed dial numbers - number 4 - */ -extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber4; - -/** - * Static icon speed dial numbers - number 5 - */ -extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber5; - -/** - * Static icon speed dial numbers - number 6 - */ -extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber6; - -/** - * Static icon speed dial numbers - number 7 - */ -extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber7; - -/** - * Static icon speed dial numbers - number 8 - */ -extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber8; - -/** - * Static icon speed dial numbers - number 9 - */ -extern SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber9; - -/** - * Static icon success / check - */ -extern SDLStaticIconName const SDLStaticIconNameSuccess; - -/** - * Static icon track title / song title - */ -extern SDLStaticIconName const SDLStaticIconNameTrackTitle; - -/** - * Static icon traffic report - */ -extern SDLStaticIconName const SDLStaticIconNameTrafficReport; - -/** - * Static icon turn list - */ -extern SDLStaticIconName const SDLStaticIconNameTurnList; - -/** - * Static icon u-turn left traffic - */ -extern SDLStaticIconName const SDLStaticIconNameUTurnLeftTraffic; - -/** - * Static icon u-turn right traffic - */ -extern SDLStaticIconName const SDLStaticIconNameUTurnRightTraffic; - -/** - * Static icon undo - */ -extern SDLStaticIconName const SDLStaticIconNameUndo; - -/** - * Static icon unlocked - */ -extern SDLStaticIconName const SDLStaticIconNameUnlocked; - -/** - * Static icon USB media audio source - */ -extern SDLStaticIconName const SDLStaticIconNameUSBMediaAudioSource; - -/** - * Static icon voice control scrollbar - list item no. 1 - */ -extern SDLStaticIconName const SDLStaticIconNameVoiceControlScrollbarListItemNo1; - -/** - * Static icon voice control scrollbar - list item no. 2 - */ -extern SDLStaticIconName const SDLStaticIconNameVoiceControlScrollbarListItemNo2; - -/** - * Static icon voice control scrollbar - list item no. 3 - */ -extern SDLStaticIconName const SDLStaticIconNameVoiceControlScrollbarListItemNo3; - -/** - * Static icon voice control scrollbar - list item no. 4 - */ -extern SDLStaticIconName const SDLStaticIconNameVoiceControlScrollbarListItemNo4; - -/** - * Static icon voice recognition - failed - */ -extern SDLStaticIconName const SDLStaticIconNameVoiceRecognitionFailed; - -/** - * Static icon voice recognition - pause - */ -extern SDLStaticIconName const SDLStaticIconNameVoiceRecognitionPause; - -/** - * Static icon voice recognition - successful - */ -extern SDLStaticIconName const SDLStaticIconNameVoiceRecognitionSuccessful; - -/** - * Static icon voice recognition - system active - */ -extern SDLStaticIconName const SDLStaticIconNameVoiceRecognitionSystemActive; - -/** - * Static icon voice recognition - system listening - */ -extern SDLStaticIconName const SDLStaticIconNameVoiceRecognitionSystemListening; - -/** - * Static icon voice recognition - try again - */ -extern SDLStaticIconName const SDLStaticIconNameVoiceRecognitionTryAgain; - -/** - * Static icon warning / safety alert - */ -extern SDLStaticIconName const SDLStaticIconNameWarning; - -/** - * Static icon weather - */ -extern SDLStaticIconName const SDLStaticIconNameWeather; - -/** - * Static icon wifi full - */ -extern SDLStaticIconName const SDLStaticIconNameWifiFull; - -/** - * Static icon zoom in - */ -extern SDLStaticIconName const SDLStaticIconNameZoomIn; - -/** - * Static icon zoom out - */ -extern SDLStaticIconName const SDLStaticIconNameZoomOut; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStaticIconName.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStaticIconName.m deleted file mode 100644 index c39ef14..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStaticIconName.m +++ /dev/null @@ -1,188 +0,0 @@ -// -// SDLStaticIconName.m -// SmartDeviceLink -// -// Created by Nicole on 7/23/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLStaticIconName.h" - -SDLStaticIconName const SDLStaticIconNameAcceptCall = @"0x29"; -SDLStaticIconName const SDLStaticIconNameAddWaypoint = @"0x1B"; -SDLStaticIconName const SDLStaticIconNameAlbum = @"0x21"; -SDLStaticIconName const SDLStaticIconNameAmbientLighting = @"0x3d"; -SDLStaticIconName const SDLStaticIconNameArrowNorth = @"0x40"; -SDLStaticIconName const SDLStaticIconNameAudioMute = @"0x12"; -SDLStaticIconName const SDLStaticIconNameAudiobookEpisode = @"0x83"; -SDLStaticIconName const SDLStaticIconNameAudiobookNarrator = @"0x82"; -SDLStaticIconName const SDLStaticIconNameAuxillaryAudio = @"0x45"; -SDLStaticIconName const SDLStaticIconNameBack = @"0x86"; -SDLStaticIconName const SDLStaticIconNameBatteryCapacity0Of5 = @"0xF7"; -SDLStaticIconName const SDLStaticIconNameBatteryCapacity1Of5 = @"0xF8"; -SDLStaticIconName const SDLStaticIconNameBatteryCapacity2Of5 = @"0xF9"; -SDLStaticIconName const SDLStaticIconNameBatteryCapacity3Of5 = @"0xFA"; -SDLStaticIconName const SDLStaticIconNameBatteryCapacity4Of5 = @"0xf6"; -SDLStaticIconName const SDLStaticIconNameBatteryCapacity5Of5 = @"0xFB"; -SDLStaticIconName const SDLStaticIconNameBluetoothAudioSource = @"0x09"; -SDLStaticIconName const SDLStaticIconNameBluetooth1 = @"0xcc"; -SDLStaticIconName const SDLStaticIconNameBluetooth2 = @"0xCD"; -SDLStaticIconName const SDLStaticIconNameBrowse = @"0x77"; -SDLStaticIconName const SDLStaticIconNameCellPhoneInRoamingMode = @"0x66"; -SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength0Of5Bars = @"0x67"; -SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength1Of5Bars = @"0x68"; -SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength2Of5Bars = @"0x69"; -SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength3Of5Bars = @"0x6A"; -SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength4Of5Bars = @"0x6B"; -SDLStaticIconName const SDLStaticIconNameCellServiceSignalStrength5Of5Bars = @"0xd3"; -SDLStaticIconName const SDLStaticIconNameChangeLaneLeft = @"0xc3"; -SDLStaticIconName const SDLStaticIconNameChangeLaneRight = @"0xc1"; -SDLStaticIconName const SDLStaticIconNameCheckBoxChecked = @"0x27"; -SDLStaticIconName const SDLStaticIconNameCheckBoxUnchecked = @"0x28"; -SDLStaticIconName const SDLStaticIconNameClimate = @"0xd1"; -SDLStaticIconName const SDLStaticIconNameClock = @"0xfc"; -SDLStaticIconName const SDLStaticIconNameCompose = @"0x1A"; -SDLStaticIconName const SDLStaticIconNameContact = @"0x5C"; -SDLStaticIconName const SDLStaticIconNameContinue = @"0x42"; -SDLStaticIconName const SDLStaticIconNameDash = @"0x7F"; -SDLStaticIconName const SDLStaticIconNameDate = @"0x87"; -SDLStaticIconName const SDLStaticIconNameDelete = @"0x0F"; -SDLStaticIconName const SDLStaticIconNameDestination = @"0x94"; -SDLStaticIconName const SDLStaticIconNameDestinationFerryAhead = @"0x4D"; -SDLStaticIconName const SDLStaticIconNameEbookmark = @"0x2B"; -SDLStaticIconName const SDLStaticIconNameEmpty = @"0x01"; -SDLStaticIconName const SDLStaticIconNameEndCall = @"0x2C"; -SDLStaticIconName const SDLStaticIconNameFail = @"0xD6"; -SDLStaticIconName const SDLStaticIconNameFastForward30Secs = @"0x08"; -SDLStaticIconName const SDLStaticIconNameFavoriteHeart = @"0x0E"; -SDLStaticIconName const SDLStaticIconNameFavoriteStar = @"0x95"; -SDLStaticIconName const SDLStaticIconNameFaxNumber = @"0x80"; -SDLStaticIconName const SDLStaticIconNameFilename = @"0x50"; -SDLStaticIconName const SDLStaticIconNameFilter = @"0x79"; -SDLStaticIconName const SDLStaticIconNameFolder = @"0x1C"; -SDLStaticIconName const SDLStaticIconNameFuelPrices = @"0xe9"; -SDLStaticIconName const SDLStaticIconNameFullMap = @"0x0c"; -SDLStaticIconName const SDLStaticIconNameGenericPhoneNumber = @"0x53"; -SDLStaticIconName const SDLStaticIconNameGenre = @"0x4E"; -SDLStaticIconName const SDLStaticIconNameGlobalKeyboard = @"0xea"; -SDLStaticIconName const SDLStaticIconNameHighwayExitInformation = @"0xf4"; -SDLStaticIconName const SDLStaticIconNameHomePhoneNumber = @"0x55"; -SDLStaticIconName const SDLStaticIconNameHyperlink = @"0x78"; -SDLStaticIconName const SDLStaticIconNameID3TagUnknown = @"0x51"; -SDLStaticIconName const SDLStaticIconNameIncomingCalls = @"0x57"; -SDLStaticIconName const SDLStaticIconNameInformation = @"0x5d"; -SDLStaticIconName const SDLStaticIconNameIPodMediaSource = @"0x0D"; -SDLStaticIconName const SDLStaticIconNameJoinCalls = @"0x02"; -SDLStaticIconName const SDLStaticIconNameKeepLeft = @"0x46"; -SDLStaticIconName const SDLStaticIconNameKeepRight = @"0x48"; -SDLStaticIconName const SDLStaticIconNameKey = @"0x7D"; -SDLStaticIconName const SDLStaticIconNameLeft = @"0x9f"; -SDLStaticIconName const SDLStaticIconNameLeftArrow = @"0x4B"; -SDLStaticIconName const SDLStaticIconNameLeftExit = @"0xaf"; -SDLStaticIconName const SDLStaticIconNameLineInAudioSource = @"0x06"; -SDLStaticIconName const SDLStaticIconNameLocked = @"0x22"; -SDLStaticIconName const SDLStaticIconNameMediaControlLeftArrow = @"0x17"; -SDLStaticIconName const SDLStaticIconNameMediaControlRecording = @"0x20"; -SDLStaticIconName const SDLStaticIconNameMediaControlRightArrow = @"0x15"; -SDLStaticIconName const SDLStaticIconNameMediaControlStop = @"0x16"; -SDLStaticIconName const SDLStaticIconNameMicrophone = @"0xe8"; -SDLStaticIconName const SDLStaticIconNameMissedCalls = @"0x58"; -SDLStaticIconName const SDLStaticIconNameMobilePhoneNumber = @"0x54"; -SDLStaticIconName const SDLStaticIconNameMoveDown = @"0xE5"; -SDLStaticIconName const SDLStaticIconNameMoveUp = @"0xe4"; -SDLStaticIconName const SDLStaticIconNameMP3TagArtist = @"0x24"; -SDLStaticIconName const SDLStaticIconNameNavigation = @"0x8e"; -SDLStaticIconName const SDLStaticIconNameNavigationCurrentDirection = @"0x0a"; -SDLStaticIconName const SDLStaticIconNameNegativeRatingThumbsDown = @"0x14"; -SDLStaticIconName const SDLStaticIconNameNew = @"0x5E"; -SDLStaticIconName const SDLStaticIconNameOfficePhoneNumber = @"0x56"; -SDLStaticIconName const SDLStaticIconNameOpened = @"0x5F"; -SDLStaticIconName const SDLStaticIconNameOrigin = @"0x96"; -SDLStaticIconName const SDLStaticIconNameOutgoingCalls = @"0x59"; -SDLStaticIconName const SDLStaticIconNamePause = @"0xCF"; -SDLStaticIconName const SDLStaticIconNamePhoneCall1 = @"0x1D"; -SDLStaticIconName const SDLStaticIconNamePhoneCall2 = @"0x1E"; -SDLStaticIconName const SDLStaticIconNamePhoneDevice = @"0x03"; -SDLStaticIconName const SDLStaticIconNamePhonebook = @"0x81"; -SDLStaticIconName const SDLStaticIconNamePhoto = @"0x88"; -SDLStaticIconName const SDLStaticIconNamePlay = @"0xD0"; -SDLStaticIconName const SDLStaticIconNamePlaylist = @"0x4F"; -SDLStaticIconName const SDLStaticIconNamePopUp = @"0x76"; -SDLStaticIconName const SDLStaticIconNamePositiveRatingThumbsUp = @"0x13"; -SDLStaticIconName const SDLStaticIconNamePower = @"0x5b"; -SDLStaticIconName const SDLStaticIconNamePrimaryPhone = @"0x1F"; -SDLStaticIconName const SDLStaticIconNameRadioButtonChecked = @"0x25"; -SDLStaticIconName const SDLStaticIconNameRadioButtonUnchecked = @"0x26"; -SDLStaticIconName const SDLStaticIconNameRecentCalls = @"0xe7"; -SDLStaticIconName const SDLStaticIconNameRecentDestinations = @"0xf2"; -SDLStaticIconName const SDLStaticIconNameRedo = @"0x19"; -SDLStaticIconName const SDLStaticIconNameRefresh = @"0x97"; -SDLStaticIconName const SDLStaticIconNameRemoteDiagnosticsCheckEngine = @"0x7E"; -SDLStaticIconName const SDLStaticIconNameRendered911Assist = @"0xac"; -SDLStaticIconName const SDLStaticIconNameRepeat = @"0xe6"; -SDLStaticIconName const SDLStaticIconNameRepeatPlay = @"0x73"; -SDLStaticIconName const SDLStaticIconNameReply = @"0x04"; -SDLStaticIconName const SDLStaticIconNameRewind30Secs = @"0x07"; -SDLStaticIconName const SDLStaticIconNameRight = @"0xa3"; -SDLStaticIconName const SDLStaticIconNameRightExit = @"0xb1"; -SDLStaticIconName const SDLStaticIconNameRingtones = @"0x5A"; -SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand1 = @"0xee"; -SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand2 = @"0x8c"; -SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand3 = @"0x84"; -SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand4 = @"0x72"; -SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand5 = @"0x6e"; -SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand6 = @"0x64"; -SDLStaticIconName const SDLStaticIconNameRoundaboutLeftHand7 = @"0x60"; -SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand1 = @"0x62"; -SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand2 = @"0x6c"; -SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand3 = @"0x70"; -SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand4 = @"0x7a"; -SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand5 = @"0x8a"; -SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand6 = @"0xec"; -SDLStaticIconName const SDLStaticIconNameRoundaboutRightHand7 = @"0xf0"; -SDLStaticIconName const SDLStaticIconNameRSS = @"0x89"; -SDLStaticIconName const SDLStaticIconNameSettings = @"0x49"; -SDLStaticIconName const SDLStaticIconNameSharpLeft = @"0xa5"; -SDLStaticIconName const SDLStaticIconNameSharpRight = @"0xa7"; -SDLStaticIconName const SDLStaticIconNameShow = @"0xe1"; -SDLStaticIconName const SDLStaticIconNameShufflePlay = @"0x74"; -SDLStaticIconName const SDLStaticIconNameSkiPlaces = @"0xab"; -SDLStaticIconName const SDLStaticIconNameSlightLeft = @"0x9d"; -SDLStaticIconName const SDLStaticIconNameSlightRight = @"0xa1"; -SDLStaticIconName const SDLStaticIconNameSmartphone = @"0x05"; -SDLStaticIconName const SDLStaticIconNameSortList = @"0x7B"; -SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber0 = @"0xE0"; -SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber1 = @"0xD7"; -SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber2 = @"0xD8"; -SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber3 = @"0xD9"; -SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber4 = @"0xDA"; -SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber5 = @"0xDB"; -SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber6 = @"0xDC"; -SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber7 = @"0xDD"; -SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber8 = @"0xDE"; -SDLStaticIconName const SDLStaticIconNameSpeedDialNumbersNumber9 = @"0xDF"; -SDLStaticIconName const SDLStaticIconNameSuccess = @"0xD5"; -SDLStaticIconName const SDLStaticIconNameTrackTitle = @"0x4C"; -SDLStaticIconName const SDLStaticIconNameTrafficReport = @"0x2A"; -SDLStaticIconName const SDLStaticIconNameTurnList = @"0x10"; -SDLStaticIconName const SDLStaticIconNameUTurnLeftTraffic = @"0xad"; -SDLStaticIconName const SDLStaticIconNameUTurnRightTraffic = @"0xa9"; -SDLStaticIconName const SDLStaticIconNameUndo = @"0x18"; -SDLStaticIconName const SDLStaticIconNameUnlocked = @"0x23"; -SDLStaticIconName const SDLStaticIconNameUSBMediaAudioSource = @"0x0B"; -SDLStaticIconName const SDLStaticIconNameVoiceControlScrollbarListItemNo1 = @"0xC7"; -SDLStaticIconName const SDLStaticIconNameVoiceControlScrollbarListItemNo2 = @"0xC8"; -SDLStaticIconName const SDLStaticIconNameVoiceControlScrollbarListItemNo3 = @"0xC9"; -SDLStaticIconName const SDLStaticIconNameVoiceControlScrollbarListItemNo4 = @"0xCA"; -SDLStaticIconName const SDLStaticIconNameVoiceRecognitionFailed = @"0x90"; -SDLStaticIconName const SDLStaticIconNameVoiceRecognitionPause = @"0x92"; -SDLStaticIconName const SDLStaticIconNameVoiceRecognitionSuccessful = @"0x8F"; -SDLStaticIconName const SDLStaticIconNameVoiceRecognitionSystemActive = @"0x11"; -SDLStaticIconName const SDLStaticIconNameVoiceRecognitionSystemListening = @"0x91"; -SDLStaticIconName const SDLStaticIconNameVoiceRecognitionTryAgain = @"0x93"; -SDLStaticIconName const SDLStaticIconNameWarning = @"0xfe"; -SDLStaticIconName const SDLStaticIconNameWeather = @"0xeb"; -SDLStaticIconName const SDLStaticIconNameWifiFull = @"0x43"; -SDLStaticIconName const SDLStaticIconNameZoomIn = @"0x98"; -SDLStaticIconName const SDLStaticIconNameZoomOut = @"0x9a"; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.h deleted file mode 100644 index 22288c1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.h +++ /dev/null @@ -1,40 +0,0 @@ -//SDLStationIDNumber.h -// - -#import "SDLRPCMessage.h" - -/** - * Describes the hour, minute and second values used to set the media clock. - * - * @since SDL 1.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLStationIDNumber : SDLRPCStruct - -/// Convenience init - -/// @param countryCode Binary Representation of ITU Country Code. USA Code is 001 -/// @param id Binary representation of unique facility ID assigned by the FCC -/// @return An SDLStationIDNumber object -- (instancetype)initWithCountryCode:(nullable NSNumber *)countryCode fccFacilityId:(nullable NSNumber *)id; - -/** - * @abstract Binary Representation of ITU Country Code. USA Code is 001. - * - * Optional, Integer, 0 - 999 - */ -@property (nullable, strong, nonatomic) NSNumber *countryCode; - -/** - * @abstract Binary representation of unique facility ID assigned by the FCC - * FCC controlled for U.S. territory - * - * Optional, Integer, 0 - 999 - */ -@property (nullable, strong, nonatomic) NSNumber *fccFacilityId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.m deleted file mode 100644 index a88afe7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStationIDNumber.m +++ /dev/null @@ -1,43 +0,0 @@ -// SDLStationIDNumber.m -// - -#import "SDLStationIDNumber.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLStationIDNumber - -- (instancetype)initWithCountryCode:(nullable NSNumber *)countryCode fccFacilityId:(nullable NSNumber *)id { - self = [self init]; - if(!self) { - return nil; - } - - self.countryCode = countryCode; - self.fccFacilityId = id; - - return self; -} - -- (void)setCountryCode:(nullable NSNumber *)countryCode { - [self.store sdl_setObject:countryCode forName:SDLRPCParameterNameCountryCode]; -} - -- (nullable NSNumber *)countryCode { - return [self.store sdl_objectForName:SDLRPCParameterNameCountryCode ofClass:NSNumber.class error:nil]; -} - - -- (void)setFccFacilityId:(nullable NSNumber *)fccFacilityId { - [self.store sdl_setObject:fccFacilityId forName:SDLRPCParameterNameFCCFacilityId]; -} - -- (nullable NSNumber *)fccFacilityId { - return [self.store sdl_objectForName:SDLRPCParameterNameFCCFacilityId ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.h deleted file mode 100644 index 436bd5ca..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.h +++ /dev/null @@ -1,98 +0,0 @@ -// -// SDLStreamingAudioLifecycleManager.h -// SmartDeviceLink -// -// Created by Joel Fischer on 6/19/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLHMILevel.h" -#import "SDLProtocolDelegate.h" -#import "SDLStreamingAudioManagerType.h" -#import "SDLStreamingMediaManagerConstants.h" - -@class SDLAudioStreamManager; -@class SDLConfiguration; -@class SDLProtocol; -@class SDLStateMachine; -@class SDLSystemCapabilityManager; -@class SDLEncryptionConfiguration; - -@protocol SDLConnectionManagerType; - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLStreamingAudioLifecycleManager : NSObject - -@property (nonatomic, strong, readonly) SDLAudioStreamManager *audioTranscodingManager; - -@property (strong, nonatomic, readonly) SDLStateMachine *audioStreamStateMachine; -@property (strong, nonatomic, readonly) SDLAudioStreamManagerState *currentAudioStreamState; - -@property (strong, nonatomic, readonly) SDLStateMachine *appStateMachine; - -@property (copy, nonatomic, nullable) SDLHMILevel hmiLevel; - -/** - * Whether or not the audio session is connected. - */ -@property (assign, nonatomic, readonly, getter=isAudioConnected) BOOL audioConnected; - -/** - * Whether or not the audio session is encrypted. This may be different than the requestedEncryptionType. - */ -@property (assign, nonatomic, readonly, getter=isAudioEncrypted) BOOL audioEncrypted; - -/// Whether or not video/audio streaming is supported -/// @discussion If connected to a module pre-SDL v4.5 there is no way to check if streaming is supported so `YES` is returned by default even though the module may NOT support video/audio streaming. -@property (assign, nonatomic, readonly, getter=isStreamingSupported) BOOL streamingSupported; - -/** - * The requested encryption type when a session attempts to connect. This setting applies to both video and audio sessions. - * - * DEFAULT: SDLStreamingEncryptionFlagAuthenticateAndEncrypt - */ -@property (assign, nonatomic) SDLStreamingEncryptionFlag requestedEncryptionType; - -- (instancetype)init NS_UNAVAILABLE; - -/// Create a new streaming audio manager for navigation and projection apps with a specified configuration. -/// @param connectionManager The pass-through for RPCs -/// @param configuration This session's configuration -/// @param systemCapabilityManager The system capability manager object for reading window capabilities -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration systemCapabilityManager:(nullable SDLSystemCapabilityManager *)systemCapabilityManager NS_DESIGNATED_INITIALIZER; - -/** - * Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. - */ -- (void)startWithProtocol:(SDLProtocol *)protocol; - -/// This method is used internally to stop the manager when the device disconnects from the module. Since there is no connection between the device and the module there is no point in sending an end audio service control frame as the module will never receive the request. -- (void)stop; - -/// This method is used internally to stop the manager when audio needs to be stopped on the secondary transport. The primary transport is still open. -/// 1. Since the primary transport is still open, we will not reset the `hmiLevel` since we can still get notifications from the module with the updated HMI status on the primary transport. -/// 2. We need to send an end audio service control frame to the module to ensure that the audio session is shut down correctly. In order to do this the protocol must be kept open and only destroyed after the module ACKs or NAKs our end audio service request. -/// @param audioEndedCompletionHandler Called when the module ACKs or NAKs to the request to end the audio service. -- (void)endAudioServiceWithCompletionHandler:(void (^)(void))audioEndedCompletionHandler; - -/// This method is used internally to stop audio streaming when the secondary transport has been closed due to an connection error. The primary transport is still open. -/// 1. Since the transport has been closed, we can not send an end audio service control frame to the module. -/// 2. Since the primary transport is still open, we will not reset the `hmiLevel`. This lets us resume audio streaming if the secondary transport can be reestablished during the same app session. -- (void)secondaryTransportDidDisconnect; - -/** - * This method receives PCM audio data and will attempt to send that data across to the head unit for immediate playback - * - * @param audioData The data in PCM audio format, to be played - * - * @return Whether or not the data was successfully sent. - */ -- (BOOL)sendAudioData:(NSData *)audioData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m deleted file mode 100644 index 554eb89..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m +++ /dev/null @@ -1,315 +0,0 @@ -// -// SDLStreamingAudioLifecycleManager.m -// SmartDeviceLink -// -// Created by Joel Fischer on 6/19/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLStreamingAudioLifecycleManager.h" - -#import "SDLAudioStreamManager.h" -#import "SDLConfiguration.h" -#import "SDLConnectionManagerType.h" -#import "SDLControlFramePayloadAudioStartServiceAck.h" -#import "SDLControlFramePayloadConstants.h" -#import "SDLControlFramePayloadNak.h" -#import "SDLDisplayCapabilities.h" -#import "SDLGlobals.h" -#import "SDLHMICapabilities.h" -#import "SDLLogMacros.h" -#import "SDLOnHMIStatus.h" -#import "SDLProtocol.h" -#import "SDLProtocolMessage.h" -#import "SDLPredefinedWindows.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCResponseNotification.h" -#import "SDLStateMachine.h" -#import "SDLStreamingMediaConfiguration.h" -#import "SDLSystemCapabilityManager.h" -#import "SDLEncryptionConfiguration.h" -#import "SDLVehicleType.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLStreamingAudioLifecycleManager() - -@property (nonatomic, strong, readwrite) SDLAudioStreamManager *audioTranscodingManager; -@property (strong, nonatomic, readwrite) SDLStateMachine *audioStreamStateMachine; -@property (assign, nonatomic, readonly, getter=isHmiStateAudioStreamCapable) BOOL hmiStateAudioStreamCapable; - -@property (weak, nonatomic) id connectionManager; -@property (weak, nonatomic, nullable) SDLSystemCapabilityManager *systemCapabilityManager; -@property (weak, nonatomic) SDLProtocol *protocol; - -@property (copy, nonatomic) NSArray *secureMakes; -@property (copy, nonatomic, nullable) NSString *connectedVehicleMake; -@property (assign, nonatomic, readwrite, getter=isAudioEncrypted) BOOL audioEncrypted; - -@property (nonatomic, copy, nullable) void (^audioServiceEndedCompletionHandler)(void); -@end - -@implementation SDLStreamingAudioLifecycleManager - -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration systemCapabilityManager:(nullable SDLSystemCapabilityManager *)systemCapabilityManager { - self = [super init]; - if (!self) { - return nil; - } - - _connectionManager = connectionManager; - _audioTranscodingManager = [[SDLAudioStreamManager alloc] initWithManager:self]; - _systemCapabilityManager = systemCapabilityManager; - _requestedEncryptionType = configuration.streamingMediaConfig.maximumDesiredEncryption; - - NSMutableArray *tempMakeArray = [NSMutableArray array]; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - for (Class securityManagerClass in configuration.streamingMediaConfig.securityManagers) { - [tempMakeArray addObjectsFromArray:[securityManagerClass availableMakes].allObjects]; - } -#pragma clang diagnostic pop - for (Class securityManagerClass in configuration.encryptionConfig.securityManagers) { - [tempMakeArray addObjectsFromArray:[securityManagerClass availableMakes].allObjects]; - } - NSOrderedSet *tempMakeSet = [NSOrderedSet orderedSetWithArray:tempMakeArray]; - _secureMakes = [tempMakeSet.array copy]; - - _audioStreamStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLAudioStreamManagerStateStopped states:[self.class sdl_audioStreamingStateTransitionDictionary]]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_didReceiveRegisterAppInterfaceResponse:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiLevelDidChange:) name:SDLDidChangeHMIStatusNotification object:nil]; - - return self; -} - -- (void)startWithProtocol:(SDLProtocol *)protocol { - SDLLogD(@"Starting with protocol: %@", protocol); - _protocol = protocol; - - @synchronized(self.protocol.protocolDelegateTable) { - if (![self.protocol.protocolDelegateTable containsObject:self]) { - [self.protocol.protocolDelegateTable addObject:self]; - } - } - - // attempt to start streaming since we may already have necessary conditions met - [self sdl_startAudioSession]; -} - -- (void)stop { - SDLLogD(@"Stopping manager"); - _protocol = nil; - _hmiLevel = SDLHMILevelNone; - _connectedVehicleMake = nil; - [self.audioTranscodingManager stop]; - - [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; -} - -- (void)secondaryTransportDidDisconnect { - [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; -} - -- (void)endAudioServiceWithCompletionHandler:(void (^)(void))audioEndedCompletionHandler { - SDLLogD(@"Ending audio service"); - self.audioServiceEndedCompletionHandler = audioEndedCompletionHandler; - - [self.audioTranscodingManager stop]; - [self.protocol endServiceWithType:SDLServiceTypeAudio]; -} - -- (BOOL)sendAudioData:(NSData*)audioData { - if (!self.isAudioConnected) { - return NO; - } - - SDLLogV(@"Sending raw audio data"); - if (self.isAudioEncrypted) { - [self.protocol sendEncryptedRawData:audioData onService:SDLServiceTypeAudio]; - } else { - [self.protocol sendRawData:audioData withServiceType:SDLServiceTypeAudio]; - } - return YES; -} - -#pragma mark Getters - -- (BOOL)isAudioConnected { - return [self.audioStreamStateMachine isCurrentState:SDLAudioStreamManagerStateReady]; -} - -- (SDLAudioStreamManagerState *)currentAudioStreamState { - return self.audioStreamStateMachine.currentState; -} - -#pragma mark - State Machine -+ (NSDictionary *)sdl_audioStreamingStateTransitionDictionary { - return @{ - SDLAudioStreamManagerStateStopped : @[SDLAudioStreamManagerStateStarting], - SDLAudioStreamManagerStateStarting : @[SDLAudioStreamManagerStateStopped, SDLAudioStreamManagerStateReady], - SDLAudioStreamManagerStateReady : @[SDLAudioStreamManagerStateShuttingDown, SDLAudioStreamManagerStateStopped], - SDLAudioStreamManagerStateShuttingDown : @[SDLAudioStreamManagerStateStopped] - }; -} - -- (void)didEnterStateAudioStreamStopped { - SDLLogD(@"Audio stream stopped"); - _audioEncrypted = NO; - - [[NSNotificationCenter defaultCenter] postNotificationName:SDLAudioStreamDidStopNotification object:nil]; - - if (self.audioServiceEndedCompletionHandler != nil) { - self.audioServiceEndedCompletionHandler(); - self.audioServiceEndedCompletionHandler = nil; - } -} - -- (void)didEnterStateAudioStreamStarting { - SDLLogD(@"Audio stream starting"); - if ((self.requestedEncryptionType != SDLStreamingEncryptionFlagNone) && ([self.secureMakes containsObject:self.connectedVehicleMake])) { - [self.protocol startSecureServiceWithType:SDLServiceTypeAudio payload:nil tlsInitializationHandler:^(BOOL success, NSError * _Nonnull error) { - if (error) { - SDLLogE(@"TLS setup error: %@", error); - [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; - } - }]; - } else { - [self.protocol startServiceWithType:SDLServiceTypeAudio payload:nil]; - } -} - -- (void)didEnterStateAudioStreamReady { - SDLLogD(@"Audio stream ready"); - [[NSNotificationCenter defaultCenter] postNotificationName:SDLAudioStreamDidStartNotification object:nil]; -} - -- (void)didEnterStateAudioStreamShuttingDown { - SDLLogD(@"Audio stream shutting down"); - [self.protocol endServiceWithType:SDLServiceTypeAudio]; -} - -#pragma mark - SDLProtocolListener -#pragma mark Start Service ACK/NAK - -- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { - if (startServiceACK.header.serviceType != SDLServiceTypeAudio) { return; } - - self.audioEncrypted = startServiceACK.header.encrypted; - - SDLControlFramePayloadAudioStartServiceAck *audioAckPayload = [[SDLControlFramePayloadAudioStartServiceAck alloc] initWithData:startServiceACK.payload]; - SDLLogD(@"Request to start audio service ACKed with payload: %@", audioAckPayload); - - if (audioAckPayload.mtu != SDLControlFrameInt64NotFound) { - [[SDLGlobals sharedGlobals] setDynamicMTUSize:(NSUInteger)audioAckPayload.mtu forServiceType:SDLServiceTypeAudio]; - } - - [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateReady]; -} - -- (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceNAK { - if (startServiceNAK.header.serviceType != SDLServiceTypeAudio) { return; } - SDLLogE(@"Request to start audio service NAKed"); - - [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; -} - -#pragma mark End Service ACK/NAK - -- (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { - if (endServiceACK.header.serviceType != SDLServiceTypeAudio) { return; } - SDLLogD(@"Request to end audio service ACKed"); - - [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; -} - -- (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { - if (endServiceNAK.header.serviceType != SDLServiceTypeAudio) { return; } - - SDLControlFramePayloadNak *nakPayload = [[SDLControlFramePayloadNak alloc] initWithData:endServiceNAK.payload]; - SDLLogE(@"Request to end audio service NAKed with playlod: %@", nakPayload); - - /// Core will NAK the audio end service control frame if audio is not streaming or if video is streaming but the HMI does not recognize that audio is streaming. - [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStopped]; -} - -#pragma mark - SDL RPC Notification callbacks - -- (void)sdl_didReceiveRegisterAppInterfaceResponse:(SDLRPCResponseNotification *)notification { - NSAssert([notification.response isKindOfClass:[SDLRegisterAppInterfaceResponse class]], @"A notification was sent with an unanticipated object"); - if (![notification.response isKindOfClass:[SDLRegisterAppInterfaceResponse class]]) { - return; - } - - SDLLogV(@"Received Register App Interface response"); - SDLRegisterAppInterfaceResponse *registerResponse = (SDLRegisterAppInterfaceResponse*)notification.response; - - self.connectedVehicleMake = registerResponse.vehicleType.make; -} - -- (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { - NSAssert([notification.notification isKindOfClass:[SDLOnHMIStatus class]], @"A notification was sent with an unanticipated object"); - if (![notification.notification isKindOfClass:[SDLOnHMIStatus class]]) { - return; - } - - SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus*)notification.notification; - - if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { - return; - } - - self.hmiLevel = hmiStatus.hmiLevel; - - // if startWithProtocol has not been called yet, abort here - if (!self.protocol) { return; } - - if (self.isHmiStateAudioStreamCapable) { - [self sdl_startAudioSession]; - } else { - [self sdl_stopAudioSession]; - } -} - -#pragma mark - Streaming session helpers - -- (void)sdl_startAudioSession { - SDLLogV(@"Attempting to start audio session"); - if (!self.protocol) { - return; - } - - if (!self.isStreamingSupported) { - return; - } - - if ([self.audioStreamStateMachine isCurrentState:SDLAudioStreamManagerStateStopped] && self.isHmiStateAudioStreamCapable) { - [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateStarting]; - } -} - -- (void)sdl_stopAudioSession { - SDLLogV(@"Attempting to stop audio session"); - if (!self.isStreamingSupported) { - return; - } - - if (self.isAudioConnected) { - [self.audioStreamStateMachine transitionToState:SDLAudioStreamManagerStateShuttingDown]; - } -} - -#pragma mark Setters / Getters - -- (BOOL)isHmiStateAudioStreamCapable { - return [self.hmiLevel isEqualToEnum:SDLHMILevelLimited] || [self.hmiLevel isEqualToEnum:SDLHMILevelFull]; -} - -- (BOOL)isStreamingSupported { - return (self.systemCapabilityManager != nil) ? [self.systemCapabilityManager isCapabilitySupported:SDLSystemCapabilityTypeVideoStreaming] : YES; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioManagerType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioManagerType.h deleted file mode 100644 index 1ec391e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingAudioManagerType.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// SDLStreamingAudioManagerType.h -// SmartDeviceLink -// -// Created by Joel Fischer on 12/5/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -/// Streaming audio manager -@protocol SDLStreamingAudioManagerType - -/** - Whether or not the audio byte stream is currently connected - */ -@property (assign, nonatomic, readonly, getter=isAudioConnected) BOOL audioConnected; - -/** - Send audio data bytes over the audio byte stream - - @param audioData The PCM data bytes - @return Whether or not it sent successfully - */ -- (BOOL)sendAudioData:(NSData *)audioData; - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.h deleted file mode 100644 index 9c73cda..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.h +++ /dev/null @@ -1,175 +0,0 @@ -// -// SDLStreamingMediaConfiguration.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/2/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLStreamingMediaManagerConstants.h" - -@protocol SDLSecurityType; -@protocol SDLStreamingMediaManagerDataSource; - - -NS_ASSUME_NONNULL_BEGIN - -/** - The type of rendering that CarWindow will perform. Depending on your app, you may need to try different ones for best performance - */ -typedef NS_ENUM(NSUInteger, SDLCarWindowRenderingType) { - /// Instead of rendering your UIViewController's view, this will render the layer using renderInContext - SDLCarWindowRenderingTypeLayer, - - /// Renders your UIViewController's view using drawViewHierarchyInRect:bounds afterScreenUpdates:YES - SDLCarWindowRenderingTypeViewAfterScreenUpdates, - - /// Renders your UIViewController's view using drawViewHierarchyInRect:bounds afterScreenUpdates:NO - SDLCarWindowRenderingTypeViewBeforeScreenUpdates -}; - -/// The streaming media configuration. Use this class to configure streaming media information. -@interface SDLStreamingMediaConfiguration : NSObject - -/** - * Set security managers which could be used. This is primarily used with video streaming applications to authenticate and perhaps encrypt traffic data. - */ -@property (copy, nonatomic, nullable) NSArray> *securityManagers __deprecated_msg("This is now unused, the security managers are taken in from SDLEncryptionConfiguration"); - -/** - * What encryption level video/audio streaming should be. The default is SDLStreamingEncryptionFlagAuthenticateAndEncrypt. - */ -@property (assign, nonatomic) SDLStreamingEncryptionFlag maximumDesiredEncryption; - -/** - * Properties to use for applications that utilize the video encoder for streaming. See VTCompressionProperties.h for more details. For example, you can set kVTCompressionPropertyKey_ExpectedFrameRate to set your framerate. Setting the framerate this way will also set the framerate if you use CarWindow automatic streaming. - * - * Other properties you may want to try adjusting include kVTCompressionPropertyKey_AverageBitRate and kVTCompressionPropertyKey_DataRateLimits. - */ -@property (copy, nonatomic, nullable) NSDictionary *customVideoEncoderSettings; - -/** - Usable to change run time video stream setup behavior. Only use this and modify the results if you *really* know what you're doing. The head unit defaults are generally good. - */ -@property (weak, nonatomic, nullable) id dataSource; - -/** - Set the initial view controller your video streaming content is within. - - Activates the haptic view parser and CarWindow systems when set. This library will also use that information to attempt to return the touched view to you in `SDLTouchManagerDelegate`. - - @note If you wish to alter this `rootViewController` while streaming via CarWindow, you must set a new `rootViewController` on `SDLStreamingMediaManager` and this will update both the haptic view parser and CarWindow. - - @warning Apps using views outside of the `UIView` heirarchy (such as OpenGL) are currently unsupported. If you app uses partial views in the heirarchy, only those views will be discovered. Your OpenGL views will not be discoverable to a haptic interface head unit and you will have to manually make these views discoverable via the `SDLSendHapticData` RPC request. - - @warning If the `rootViewController` is app UI and is set from the `UIViewController` class, it should only be set after viewDidAppear:animated is called. Setting the `rootViewController` in `viewDidLoad` or `viewWillAppear:animated` can cause weird behavior when setting the new frame. - - @warning If setting the `rootViewController` when the app returns to the foreground, the app should register for the `UIApplicationDidBecomeActive` notification and not the `UIApplicationWillEnterForeground` notification. Setting the frame after a notification from the latter can also cause weird behavior when setting the new frame. - - @warning While `viewDidLoad` will fire, appearance methods will not. - */ -@property (strong, nonatomic, nullable) UIViewController *rootViewController; - -/** - Declares if CarWindow will use layer rendering or view rendering. Defaults to layer rendering. - */ -@property (assign, nonatomic) SDLCarWindowRenderingType carWindowRenderingType; - -/** - When YES, the StreamingMediaManager will run a CADisplayLink with the framerate set to the video encoder settings kVTCompressionPropertyKey_ExpectedFrameRate. This then forces TouchManager (and CarWindow, if used) to sync their callbacks to the framerate. If using CarWindow, this *must* be YES. If NO, `enableSyncedPanning` on SDLTouchManager will be set to NO. Defaults to YES. - */ -@property (assign, nonatomic) BOOL enableForcedFramerateSync; - -/** - When YES, the StreamingMediaManager will disable its internal checks that the `rootViewController` only has one `supportedOrientation`. Having multiple orientations can cause streaming issues. If you wish to disable this check, set it to YES. Defaults to NO. - */ -@property (assign, nonatomic) BOOL allowMultipleViewControllerOrientations; - -/** - Create an insecure video streaming configuration. No security managers will be provided and the encryption flag will be set to None. If you'd like custom video encoder settings, you can set the property manually. - - @return The configuration - */ -- (instancetype)init; - -/** - Create a secure video streaming configuration. Security managers will be provided from SDLEncryptionConfiguration and the encryption flag will be set to SDLStreamingEncryptionFlagAuthenticateAndEncrypt. If you'd like custom video encoder settings, you can set the property manually. - - @return The configuration - */ -+ (instancetype)secureConfiguration; - -/** - Manually set all the properties to the streaming media configuration - - @param securityManagers The security managers to use or nil for none. - @param encryptionFlag The maximum encrpytion supported. If the connected head unit supports less than set here, it will still connect, but if it supports more than set here, it will not connect. - @param videoSettings Custom video encoder settings to be used in video streaming. - @param rootViewController The UIViewController wih the content that is being streamed on, to use for haptics if needed and possible (only works for UIViews) - @return The configuration - */ -- (instancetype)initWithSecurityManagers:(nullable NSArray> *)securityManagers encryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary *)videoSettings dataSource:(nullable id)dataSource rootViewController:(nullable UIViewController *)rootViewController __deprecated_msg("Use initWithEncryptionFlag:videoSettings:dataSource:rootViewController: instead"); - -/** - Manually set all the properties to the streaming media configuration - - @param encryptionFlag The maximum encrpytion supported. If the connected head unit supports less than set here, it will still connect, but if it supports more than set here, it will not connect. - @param videoSettings Custom video encoder settings to be used in video streaming. - @param rootViewController The UIViewController wih the content that is being streamed on, to use for haptics if needed and possible (only works for UIViews) - @return The configuration - */ -- (instancetype)initWithEncryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary *)videoSettings dataSource:(nullable id)dataSource rootViewController:(nullable UIViewController *)rootViewController; - -/** - Create a secure configuration for each of the security managers provided. - - @param securityManagers The security managers to be used. The encryption flag will be set to AuthenticateAndEncrypt if any security managers are set. - @return The configuration - */ -- (instancetype)initWithSecurityManagers:(NSArray> *)securityManagers __deprecated_msg("Use secureConfiguration instead"); - -/** - Create a secure configuration for each of the security managers provided. - - @param securityManagers The security managers to be used. The encryption flag will be set to AuthenticateAndEncrypt if any security managers are set. - @return The configuration - */ -+ (instancetype)secureConfigurationWithSecurityManagers:(NSArray> *)securityManagers NS_SWIFT_UNAVAILABLE("Use an initializer instead") __deprecated_msg("Use secureConfiguration instead"); - -/** - Create an insecure video streaming configuration. No security managers will be provided and the encryption flag will be set to None. If you'd like custom video encoder settings, you can set the property manually. This is equivalent to `init`. - - @return The configuration - */ -+ (instancetype)insecureConfiguration NS_SWIFT_UNAVAILABLE("Use the standard initializer instead"); - -/** - Create a CarWindow insecure configuration with a view controller - - @param initialViewController The initial view controller that will be streamed - @return The configuration - */ -+ (instancetype)autostreamingInsecureConfigurationWithInitialViewController:(UIViewController *)initialViewController; - -/** - Create a CarWindow secure configuration with a view controller and security managers - - @param securityManagers The security managers available for secure streaming use - @param initialViewController The initial view controller that will be streamed, this can be a basic `UIViewController` if you need to set your actual streaming view controller at a later time on `SDLManager.streamingManager.rootViewController`. - @return The configuration - */ -+ (instancetype)autostreamingSecureConfigurationWithSecurityManagers:(NSArray> *)securityManagers initialViewController:(UIViewController *)initialViewController __deprecated_msg("Use autostreamingSecureConfigurationWithInitialViewController: instead"); - -/** - Create a CarWindow secure configuration with a view controller. - - @param initialViewController The initial view controller that will be streamed, this can be a basic `UIViewController` if you need to set your actual streaming view controller at a later time on `SDLManager.streamingManager.rootViewController`. - @return The configuration - */ -+ (instancetype)autostreamingSecureConfigurationWithInitialViewController:(UIViewController *)initialViewController; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.m deleted file mode 100644 index 4c82ddc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaConfiguration.m +++ /dev/null @@ -1,114 +0,0 @@ -// -// SDLStreamingMediaConfiguration.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/2/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLStreamingMediaConfiguration.h" - -#import "SDLStreamingMediaManagerDataSource.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLStreamingMediaConfiguration - -- (instancetype)init { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return [self initWithSecurityManagers:nil encryptionFlag:SDLStreamingEncryptionFlagNone videoSettings:nil dataSource:nil rootViewController:nil]; -#pragma clang diagnostic pop -} - -+ (instancetype)secureConfiguration { - return [[self alloc] initWithEncryptionFlag:SDLStreamingEncryptionFlagAuthenticateAndEncrypt videoSettings:nil dataSource:nil rootViewController:nil]; -} - -+ (instancetype)insecureConfiguration { - return [[self alloc] init]; -} - -- (instancetype)initWithSecurityManagers:(nullable NSArray> *)securityManagers encryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary *)videoSettings dataSource:(nullable id)dataSource rootViewController:(nullable UIViewController *)rootViewController { - self = [super init]; - if (!self) { - return nil; - } - - _securityManagers = securityManagers; - _maximumDesiredEncryption = encryptionFlag; - _customVideoEncoderSettings = videoSettings; - _dataSource = dataSource; - _rootViewController = rootViewController; - _carWindowRenderingType = SDLCarWindowRenderingTypeLayer; - _enableForcedFramerateSync = YES; - _allowMultipleViewControllerOrientations = NO; - - return self; -} - -- (instancetype)initWithEncryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary *)videoSettings dataSource:(nullable id)dataSource rootViewController:(nullable UIViewController *)rootViewController { - if (!self) { - return nil; - } - - _securityManagers = nil; - _maximumDesiredEncryption = encryptionFlag; - _customVideoEncoderSettings = videoSettings; - _dataSource = dataSource; - _rootViewController = rootViewController; - _carWindowRenderingType = SDLCarWindowRenderingTypeLayer; - _enableForcedFramerateSync = YES; - _allowMultipleViewControllerOrientations = NO; - - return self; -} - -- (instancetype)initWithSecurityManagers:(NSArray> *)securityManagers { - NSAssert(securityManagers.count > 0, @"A secure streaming media configuration requires security managers to be passed."); - SDLStreamingEncryptionFlag encryptionFlag = SDLStreamingEncryptionFlagAuthenticateAndEncrypt; - - return [self initWithSecurityManagers:securityManagers encryptionFlag:encryptionFlag videoSettings:nil dataSource:nil rootViewController:nil]; -} - -+ (instancetype)secureConfigurationWithSecurityManagers:(NSArray> *)securityManagers { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return [[self alloc] initWithSecurityManagers:securityManagers]; -#pragma clang diagnostic pop -} - -+ (instancetype)autostreamingInsecureConfigurationWithInitialViewController:(UIViewController *)initialViewController { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return [[self alloc] initWithSecurityManagers:nil encryptionFlag:SDLStreamingEncryptionFlagNone videoSettings:nil dataSource:nil rootViewController:initialViewController]; -#pragma clang diagnostic pop -} - -+ (instancetype)autostreamingSecureConfigurationWithSecurityManagers:(NSArray> *)securityManagers initialViewController:(UIViewController *)initialViewController { - return [[self alloc] initWithSecurityManagers:securityManagers encryptionFlag:SDLStreamingEncryptionFlagAuthenticateAndEncrypt videoSettings:nil dataSource:nil rootViewController:initialViewController]; -} - -+ (instancetype)autostreamingSecureConfigurationWithInitialViewController:(UIViewController *)initialViewController { - return [[self alloc] initWithEncryptionFlag:SDLStreamingEncryptionFlagAuthenticateAndEncrypt videoSettings:nil dataSource:nil rootViewController:initialViewController]; -} - -#pragma mark NSCopying - -- (id)copyWithZone:(nullable NSZone *)zone { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - SDLStreamingMediaConfiguration *newConfig = [[self.class allocWithZone:zone] initWithSecurityManagers:_securityManagers encryptionFlag:_maximumDesiredEncryption videoSettings:_customVideoEncoderSettings dataSource:_dataSource rootViewController:_rootViewController]; -#pragma clang diagnostic pop - - newConfig.carWindowRenderingType = self.carWindowRenderingType; - newConfig.enableForcedFramerateSync = self.enableForcedFramerateSync; - newConfig.allowMultipleViewControllerOrientations = self.allowMultipleViewControllerOrientations; - - return newConfig; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.h deleted file mode 100644 index 495f466..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.h +++ /dev/null @@ -1,204 +0,0 @@ -// -// SDLStreamingDataManager.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/11/15. -// Copyright (c) 2015 smartdevicelink. All rights reserved. -// - -#import -#import - -#import "SDLStreamingAudioManagerType.h" -#import "SDLStreamingMediaManagerConstants.h" - -@class SDLAudioStreamManager; -@class SDLConfiguration; -@class SDLProtocol; -@class SDLSecondaryTransportManager; -@class SDLSystemCapabilityManager; -@class SDLTouchManager; -@class SDLVideoStreamingFormat; - -@protocol SDLFocusableItemLocatorType; -@protocol SDLConnectionManagerType; - - -NS_ASSUME_NONNULL_BEGIN - - -/// Manager to help control streaming (video and audio) media services. -@interface SDLStreamingMediaManager : NSObject - -/** - * Touch Manager responsible for providing touch event notifications. - */ -@property (nonatomic, strong, readonly) SDLTouchManager *touchManager; - -/** - * Audio Manager responsible for managing streaming audio. - */ -@property (nonatomic, strong, readonly) SDLAudioStreamManager *audioManager; - -/** - This property is used for SDLCarWindow, the ability to stream any view controller. To start, you must set an initial view controller on `SDLStreamingMediaConfiguration` `rootViewController`. After streaming begins, you can replace that view controller with a new root by placing the new view controller into this property. - */ -@property (nonatomic, strong, nullable) UIViewController *rootViewController; - -/** - A haptic interface that can be updated to reparse views within the window you've provided. Send a `SDLDidUpdateProjectionView` notification or call the `updateInterfaceLayout` method to reparse. The "output" of this haptic interface occurs in the `touchManager` property where it will call the delegate. - */ -@property (nonatomic, strong, readonly, nullable) id focusableItemManager; - -/** - * Whether or not video streaming is supported - * - * @see SDLRegisterAppInterface SDLDisplayCapabilities - */ -@property (assign, nonatomic, readonly, getter=isStreamingSupported) BOOL streamingSupported; - -/** - * Whether or not the video session is connected. - */ -@property (assign, nonatomic, readonly, getter=isVideoConnected) BOOL videoConnected; - -/** - * Whether or not the video session is encrypted. This may be different than the requestedEncryptionType. - */ -@property (assign, nonatomic, readonly, getter=isVideoEncrypted) BOOL videoEncrypted; - -/** - * Whether or not the audio session is connected. - */ -@property (assign, nonatomic, readonly, getter=isAudioConnected) BOOL audioConnected; - -/** - * Whether or not the audio session is encrypted. This may be different than the requestedEncryptionType. - */ -@property (assign, nonatomic, readonly, getter=isAudioEncrypted) BOOL audioEncrypted; - -/** - * Whether or not the video stream is paused due to either the application being backgrounded, the HMI state being either NONE or BACKGROUND, or the video stream not being ready. - */ -@property (assign, nonatomic, readonly, getter=isVideoStreamingPaused) BOOL videoStreamingPaused; - -/** - * The current screen resolution of the connected display in pixels. - */ -@property (assign, nonatomic, readonly) CGSize screenSize; - -/** - This is the agreed upon format of video encoder that is in use, or nil if not currently connected. - */ -@property (strong, nonatomic, readonly, nullable) SDLVideoStreamingFormat *videoFormat; - -/** - A list of all supported video formats by this manager - */ -@property (strong, nonatomic, readonly) NSArray *supportedFormats; - -/** - * The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder. - * - * @warning This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). - * @discussion Clients may call this once and retain the resulting pool, this call is cheap enough that it's OK to call it once per frame. - */ -@property (assign, nonatomic, readonly, nullable) CVPixelBufferPoolRef pixelBufferPool; - -/** - * The requested encryption type when a session attempts to connect. This setting applies to both video and audio sessions. - * - * DEFAULT: SDLStreamingEncryptionFlagAuthenticateAndEncrypt - */ -@property (assign, nonatomic) SDLStreamingEncryptionFlag requestedEncryptionType; - -/** - When YES, the StreamingMediaManager will send a black screen with "Video Backgrounded String". Defaults to YES. - */ -@property (assign, nonatomic) BOOL showVideoBackgroundDisplay; - - -#pragma mark - Lifecycle - -/// Initializer unavailable -- (instancetype)init NS_UNAVAILABLE; - -/// Create a new streaming media manager for navigation and projection apps with a specified configuration. -/// @param connectionManager The pass-through for RPCs -/// @param configuration This session's configuration -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration __deprecated_msg("Use initWithConnectionManager:configuration:systemCapabilityManager: instead"); - -/// Create a new streaming media manager for navigation and projection apps with a specified configuration. -/// @param connectionManager The pass-through for RPCs -/// @param configuration This session's configuration -/// @param systemCapabilityManager The system capability manager object for reading window capabilities -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration systemCapabilityManager:(nullable SDLSystemCapabilityManager *)systemCapabilityManager NS_DESIGNATED_INITIALIZER; - -/** - * Start the manager. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. - */ -- (void)startWithProtocol:(SDLProtocol *)protocol; - -/** - * Stop the manager. This method is used internally. - */ -- (void)stop; - -/** - * Stop the audio feature of the manager. This method is used internally. - */ -- (void)stopAudio; - -/** - * Stop the video feature of the manager. This method is used internally. - */ -- (void)stopVideo; - -#pragma mark - Data Transfer - -/** - * This method receives raw image data and will run iOS8+'s hardware video encoder to turn the data into a video stream, which will then be passed to the connected head unit. - * - * @param imageBuffer A CVImageBufferRef to be encoded by Video Toolbox - * - * @return Whether or not the data was successfully encoded and sent. - */ -- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer; - -/** - * This method receives raw image data and will run iOS8+'s hardware video encoder to turn the data into a video stream, which will then be passed to the connected head unit. - * - * @param imageBuffer A CVImageBufferRef to be encoded by Video Toolbox - * @param presentationTimestamp A presentation timestamp for the frame, or kCMTimeInvalid if timestamp is unknown. If it's valid, it must be greater than the previous one. - * - * @return Whether or not the data was successfully encoded and sent. - */ -- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp; - -/** - * This method receives PCM audio data and will attempt to send that data across to the head unit for immediate playback. - * - * NOTE: See the `.audioManager` (SDLAudioStreamManager) `pushWithData:` method for a more modern API. - * - * @param audioData The data in PCM audio format, to be played - * - * @return Whether or not the data was successfully sent. - */ -- (BOOL)sendAudioData:(NSData *)audioData; - -#pragma mark - Deprecated Methods - - /** - * Start the audio feature of the manager. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. - */ -- (void)startAudioWithProtocol:(SDLProtocol *)protocol __deprecated_msg("Use startWithProtocol: instead"); - - /** - * Start the video feature of the manager. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. - */ -- (void)startVideoWithProtocol:(SDLProtocol *)protocol __deprecated_msg("Use startWithProtocol: instead"); - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.m deleted file mode 100644 index 3b6a148..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManager.m +++ /dev/null @@ -1,310 +0,0 @@ -// -// SDLStreamingDataManager.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/11/15. -// Copyright (c) 2015 smartdevicelink. All rights reserved. -// - -#import "SDLStreamingMediaManager.h" - -#import "SDLAudioStreamManager.h" -#import "SDLConfiguration.h" -#import "SDLConnectionManagerType.h" -#import "SDLGlobals.h" -#import "SDLLogMacros.h" -#import "SDLSecondaryTransportManager.h" -#import "SDLStreamingAudioLifecycleManager.h" -#import "SDLStreamingProtocolDelegate.h" -#import "SDLStreamingVideoLifecycleManager.h" -#import "SDLStreamingVideoScaleManager.h" -#import "SDLSystemCapabilityManager.h" -#import "SDLTouchManager.h" - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLStreamingMediaManager () - -@property (strong, nonatomic) SDLStreamingAudioLifecycleManager *audioLifecycleManager; -@property (strong, nonatomic) SDLStreamingVideoLifecycleManager *videoLifecycleManager; -@property (assign, nonatomic) BOOL audioStarted; -@property (assign, nonatomic) BOOL videoStarted; -@property (strong, nonatomic, nullable) SDLProtocol *audioProtocol; -@property (strong, nonatomic, nullable) SDLProtocol *videoProtocol; - -@property (strong, nonatomic, nullable) SDLSecondaryTransportManager *secondaryTransportManager; - -@end - - -@implementation SDLStreamingMediaManager - -#pragma mark - Lifecycle - -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration systemCapabilityManager:(nullable SDLSystemCapabilityManager *)systemCapabilityManager { - self = [super init]; - if (!self) { - return nil; - } - - _audioLifecycleManager = [[SDLStreamingAudioLifecycleManager alloc] initWithConnectionManager:connectionManager configuration:configuration systemCapabilityManager:systemCapabilityManager]; - _videoLifecycleManager = [[SDLStreamingVideoLifecycleManager alloc] initWithConnectionManager:connectionManager configuration:configuration systemCapabilityManager:systemCapabilityManager]; - - return self; -} - -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration { - return [self initWithConnectionManager:connectionManager configuration:configuration systemCapabilityManager:nil]; -} - -- (void)stop { - [self stopAudio]; - [self stopVideo]; - self.audioProtocol = nil; - self.videoProtocol = nil; -} - - -#pragma mark Audio - -- (void)stopAudio { - [self.audioLifecycleManager stop]; - self.audioStarted = NO; -} - -- (BOOL)sendAudioData:(NSData*)audioData { - return [self.audioLifecycleManager sendAudioData:audioData]; -} - -#pragma mark Video - -- (void)stopVideo { - [self.videoLifecycleManager stop]; - self.videoStarted = NO; -} - -- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer { - return [self.videoLifecycleManager sendVideoData:imageBuffer]; -} - -- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp { - return [self.videoLifecycleManager sendVideoData:imageBuffer presentationTimestamp:presentationTimestamp]; -} - -#pragma mark - Secondary Transport - -- (void)startWithProtocol:(SDLProtocol *)protocol { - [self didUpdateFromOldVideoProtocol:nil toNewVideoProtocol:protocol fromOldAudioProtocol:nil toNewAudioProtocol:protocol]; -} - -- (void)sdl_disconnectSecondaryTransportWithCompletionHandler:(void (^)(void))completionHandler { - if (self.secondaryTransportManager == nil) { - SDLLogV(@"Attempting to disconnect a non-existent secondary transport. Returning."); - return completionHandler(); - } - - [self.secondaryTransportManager disconnectSecondaryTransportWithCompletionHandler:completionHandler]; -} - -# pragma mark SDLStreamingProtocolDelegate - -- (void)didUpdateFromOldVideoProtocol:(nullable SDLProtocol *)oldVideoProtocol - toNewVideoProtocol:(nullable SDLProtocol *)newVideoProtocol - fromOldAudioProtocol:(nullable SDLProtocol *)oldAudioProtocol - toNewAudioProtocol:(nullable SDLProtocol *)newAudioProtocol { - BOOL videoProtocolUpdated = (oldVideoProtocol != newVideoProtocol); - BOOL audioProtocolUpdated = (oldAudioProtocol != newAudioProtocol); - - if (!videoProtocolUpdated && !audioProtocolUpdated) { - SDLLogV(@"The video and audio transports did not update."); - return; - } - - dispatch_group_t endServiceTask = dispatch_group_create(); - dispatch_group_enter(endServiceTask); - - __weak typeof(self) weakSelf = self; - if (oldVideoProtocol != nil) { - dispatch_group_enter(endServiceTask); - [self.videoLifecycleManager endVideoServiceWithCompletionHandler:^ { - __strong typeof(weakSelf) strongSelf = weakSelf; - strongSelf.videoStarted = NO; - dispatch_group_leave(endServiceTask); - }]; - } - - if (oldAudioProtocol != nil) { - dispatch_group_enter(endServiceTask); - __weak typeof(self) weakSelf = self; - [self.audioLifecycleManager endAudioServiceWithCompletionHandler:^ { - __strong typeof(weakSelf) strongSelf = weakSelf; - strongSelf.audioStarted = NO; - dispatch_group_leave(endServiceTask); - }]; - } - - dispatch_group_leave(endServiceTask); - - // This will always run - dispatch_group_notify(endServiceTask, [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ - if (oldVideoProtocol != nil || oldAudioProtocol != nil) { - [self sdl_reconnectSecondaryTransportWithNewVideoProtocol:newVideoProtocol newAudioProtocol:newAudioProtocol transportDestroyed:false]; - } else { - SDLLogV(@"No need to disconnect the secondary transport. Starting new audio and video protocols"); - [self sdl_startNewProtocolForAudio:newAudioProtocol forVideo:newVideoProtocol]; - } - }); -} - -- (void)transportClosed { - [self sdl_reconnectSecondaryTransportWithNewVideoProtocol:nil newAudioProtocol:nil transportDestroyed:true]; -} - -/// Disconnects the secondary transport. If the transport is still open and a new video or audio protocol have been set, then a new video/audio sessions are attempted. If the transport has been closed, then the audio/video managers are stopped. -/// @param newVideoProtocol The new video protocol -/// @param newAudioProtocol The new audio protocol -/// @param transportDestroyed Whether or not the transport is still open -- (void)sdl_reconnectSecondaryTransportWithNewVideoProtocol:(nullable SDLProtocol *)newVideoProtocol newAudioProtocol:(nullable SDLProtocol *)newAudioProtocol transportDestroyed:(BOOL)transportDestroyed { - SDLLogV(@"Disconnecting the secondary transport"); - __weak typeof(self) weakSelf = self; - [self sdl_disconnectSecondaryTransportWithCompletionHandler:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - if (transportDestroyed) { - SDLLogD(@"Transport destroyed. Shutting down audio and video managers"); - [strongSelf.audioLifecycleManager secondaryTransportDidDisconnect]; - [strongSelf.videoLifecycleManager secondaryTransportDidDisconnect]; - strongSelf.audioProtocol = nil; - strongSelf.videoProtocol = nil; - } else { - SDLLogD(@"Checking if new audio and video sessions need to be started on the transport"); - strongSelf.audioProtocol = nil; - strongSelf.videoProtocol = nil; - [strongSelf sdl_startNewProtocolForAudio:newAudioProtocol forVideo:newVideoProtocol]; - } - }]; -} - -/// Starts the audio and/or video services using the new protocol. -/// @param newAudioProtocol The new audio protocol -/// @param newVideoProtocol The new video protocol -- (void)sdl_startNewProtocolForAudio:(nullable SDLProtocol *)newAudioProtocol forVideo:(nullable SDLProtocol *)newVideoProtocol { - if (newAudioProtocol == nil && newVideoProtocol == nil) { - SDLLogD(@"No new audio or video session will be started"); - return; - } - - if (newAudioProtocol != nil) { - self.audioProtocol = newAudioProtocol; - [self.audioLifecycleManager startWithProtocol:newAudioProtocol]; - self.audioStarted = YES; - } - if (newVideoProtocol != nil) { - self.videoProtocol = newVideoProtocol; - [self.videoLifecycleManager startWithProtocol:newVideoProtocol]; - self.videoStarted = YES; - } -} - -#pragma mark Deprecated - - - (void)startAudioWithProtocol:(SDLProtocol *)protocol { - self.audioProtocol = protocol; - [self.audioLifecycleManager startWithProtocol:protocol]; - self.audioStarted = YES; -} - - - (void)startVideoWithProtocol:(SDLProtocol *)protocol { - self.videoProtocol = protocol; - [self.videoLifecycleManager startWithProtocol:protocol]; - self.videoStarted = YES; -} - - -#pragma mark - Getters - -- (SDLTouchManager *)touchManager { - return self.videoLifecycleManager.touchManager; -} - -- (SDLAudioStreamManager *)audioManager { - return self.audioLifecycleManager.audioTranscodingManager; -} - -- (nullable UIViewController *)rootViewController { - return self.videoLifecycleManager.rootViewController; -} - -- (nullable id)focusableItemManager { - return self.videoLifecycleManager.focusableItemManager; -} - -- (BOOL)isStreamingSupported { - // The flag is the same between the video and audio managers so just one needs to be returned. - return self.videoLifecycleManager.isStreamingSupported; -} - -- (BOOL)isAudioConnected { - return self.audioLifecycleManager.isAudioConnected; -} - -- (BOOL)isVideoConnected { - return self.videoLifecycleManager.isVideoConnected; -} - -- (BOOL)isAudioEncrypted { - return self.audioLifecycleManager.isAudioEncrypted; -} - -- (BOOL)isVideoEncrypted { - return self.videoLifecycleManager.isVideoEncrypted; -} - -- (BOOL)isVideoStreamingPaused { - return self.videoLifecycleManager.isVideoStreamingPaused; -} - -- (CGSize)screenSize { - return self.videoLifecycleManager.videoScaleManager.displayViewportResolution; -} - -- (nullable SDLVideoStreamingFormat *)videoFormat { - return self.videoLifecycleManager.videoFormat; -} - -- (NSArray *)supportedFormats { - return self.videoLifecycleManager.supportedFormats; -} - -- (CVPixelBufferPoolRef __nullable)pixelBufferPool { - return self.videoLifecycleManager.pixelBufferPool; -} - -- (SDLStreamingEncryptionFlag)requestedEncryptionType { - // both audio and video managers should have same type - return self.videoLifecycleManager.requestedEncryptionType; -} - -- (BOOL)showVideoBackgroundDisplay { - return self.videoLifecycleManager.showVideoBackgroundDisplay; -} - - -#pragma mark - Setters - -- (void)setRootViewController:(nullable UIViewController *)rootViewController { - self.videoLifecycleManager.rootViewController = rootViewController; -} - -- (void)setRequestedEncryptionType:(SDLStreamingEncryptionFlag)requestedEncryptionType { - self.videoLifecycleManager.requestedEncryptionType = requestedEncryptionType; - self.audioLifecycleManager.requestedEncryptionType = requestedEncryptionType; -} - -- (void)setShowVideoBackgroundDisplay:(BOOL)showVideoBackgroundDisplay { - self.videoLifecycleManager.showVideoBackgroundDisplay = showVideoBackgroundDisplay; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.h deleted file mode 100644 index 291eb11..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.h +++ /dev/null @@ -1,96 +0,0 @@ -// -// SDLStreamingMediaManagerConstants.h -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 2/16/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - A flag determining how video and audio streaming should be encrypted - */ -typedef NS_ENUM(NSInteger, SDLStreamingEncryptionFlag) { - /// It should not be encrypted at all - SDLStreamingEncryptionFlagNone, - - /// It should use SSL/TLS only to authenticate - SDLStreamingEncryptionFlagAuthenticateOnly, - - /// All data on these services should be encrypted using SSL/TLS - SDLStreamingEncryptionFlagAuthenticateAndEncrypt -}; - -/// Name of video stream start notification -extern NSString *const SDLVideoStreamDidStartNotification; - -/// Name of video stream stop notification -extern NSString *const SDLVideoStreamDidStopNotification; - -/// Name of video stream suspended notification -extern NSString *const SDLVideoStreamSuspendedNotification; - -/// Name of audio stream start notification -extern NSString *const SDLAudioStreamDidStartNotification; - -/// Name of audio stream stop notification -extern NSString *const SDLAudioStreamDidStopNotification; - -/// Lockscreen will present notification -extern NSString *const SDLLockScreenManagerWillPresentLockScreenViewController; - -/// Lockscreen did present notification -extern NSString *const SDLLockScreenManagerDidPresentLockScreenViewController; - -/// Lockscreen will dismiss notification -extern NSString *const SDLLockScreenManagerWillDismissLockScreenViewController; - -/// Lockscreen did dismiss notification -extern NSString *const SDLLockScreenManagerDidDismissLockScreenViewController; - -/// The current state of the video stream manager -typedef NSString SDLVideoStreamManagerState; - -/// Streaming state stopped -extern SDLVideoStreamManagerState *const SDLVideoStreamManagerStateStopped; - -/// Streaming state starting -extern SDLVideoStreamManagerState *const SDLVideoStreamManagerStateStarting; - -/// Streaming state ready -extern SDLVideoStreamManagerState *const SDLVideoStreamManagerStateReady; - -/// Streaming state suspended -extern SDLVideoStreamManagerState *const SDLVideoStreamManagerStateSuspended; - -/// Streaming state shutting down -extern SDLVideoStreamManagerState *const SDLVideoStreamManagerStateShuttingDown; - -/// The current state of the audio stream manager -typedef NSString SDLAudioStreamManagerState; - -/// Audio state stopped -extern SDLAudioStreamManagerState *const SDLAudioStreamManagerStateStopped; - -/// Audio state starting -extern SDLAudioStreamManagerState *const SDLAudioStreamManagerStateStarting; - -/// Audio state ready -extern SDLAudioStreamManagerState *const SDLAudioStreamManagerStateReady; - -/// Audio state shutting down -extern SDLAudioStreamManagerState *const SDLAudioStreamManagerStateShuttingDown; - -/// Typedef SDLAppState -typedef NSString SDLAppState; - -/// App state inactive -extern SDLAppState *const SDLAppStateInactive; - -/// App state active -extern SDLAppState *const SDLAppStateActive; - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.m deleted file mode 100644 index 65a9b29..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerConstants.m +++ /dev/null @@ -1,36 +0,0 @@ -// -// SDLStreamingMediaManagerConstants.m -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 2/16/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import -#import "SDLStreamingMediaManagerConstants.h" - -NSString *const SDLVideoStreamDidStartNotification = @"com.sdl.videoStreamDidStart"; -NSString *const SDLVideoStreamDidStopNotification = @"com.sdl.videoStreamDidStop"; -NSString *const SDLVideoStreamSuspendedNotification = @"com.sdl.videoStreamSuspended"; - -NSString *const SDLAudioStreamDidStartNotification = @"com.sdl.audioStreamDidStart"; -NSString *const SDLAudioStreamDidStopNotification = @"com.sdl.audioStreamDidStop"; - -NSString *const SDLLockScreenManagerWillPresentLockScreenViewController = @"com.sdl.lockscreen.willPresent"; -NSString *const SDLLockScreenManagerDidPresentLockScreenViewController = @"com.sdl.lockscreen.didPresent"; -NSString *const SDLLockScreenManagerWillDismissLockScreenViewController = @"com.sdl.lockscreen.willDismiss"; -NSString *const SDLLockScreenManagerDidDismissLockScreenViewController = @"com.sdl.lockscreen.didDismiss"; - -SDLVideoStreamManagerState *const SDLVideoStreamManagerStateStopped = @"VideoStreamStopped"; -SDLVideoStreamManagerState *const SDLVideoStreamManagerStateStarting = @"VideoStreamStarting"; -SDLVideoStreamManagerState *const SDLVideoStreamManagerStateReady = @"VideoStreamReady"; -SDLVideoStreamManagerState *const SDLVideoStreamManagerStateSuspended = @"VideoStreamSuspended"; -SDLVideoStreamManagerState *const SDLVideoStreamManagerStateShuttingDown = @"VideoStreamShuttingDown"; - -SDLAudioStreamManagerState *const SDLAudioStreamManagerStateStopped = @"AudioStreamStopped"; -SDLAudioStreamManagerState *const SDLAudioStreamManagerStateStarting = @"AudioStreamStarting"; -SDLAudioStreamManagerState *const SDLAudioStreamManagerStateReady = @"AudioStreamReady"; -SDLAudioStreamManagerState *const SDLAudioStreamManagerStateShuttingDown = @"AudioStreamShuttingDown"; - -SDLAppState *const SDLAppStateInactive = @"AppInactive"; -SDLAppState *const SDLAppStateActive = @"AppActive"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerDataSource.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerDataSource.h deleted file mode 100644 index 8d7b094..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingMediaManagerDataSource.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// SDLStreamingMediaManagerDataSource.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/28/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -@class SDLImageResolution; -@class SDLVideoStreamingFormat; - -NS_ASSUME_NONNULL_BEGIN - -/// A data source for the streaming manager's preferred resolutions and preferred formats. -@protocol SDLStreamingMediaManagerDataSource - -/** - Implement to return a different preferred order of attempted format usage than the head unit's preferred order. In nearly all cases, it's best to simply return the head unit's preferred order, or not implement this method (which does the same thing). - - @warning If you return a format that is not supported by the StreamingMediaManager, that format will be skipped. - - @note If the head unit does not support the `GetSystemCapabilities` RPC, this method will not be called and H264 RAW will be used. - - @param headUnitPreferredOrder The head unit's preferred order of format usage. The first item is the one that will be used unless this proxy does not support it, then the next item, etc. - @return Your preferred order of format usage. - */ -- (NSArray *)preferredVideoFormatOrderFromHeadUnitPreferredOrder:(NSArray *)headUnitPreferredOrder; - -/** - Implement to return a different resolution to use for video streaming than the head unit's requested resolution. If you return a resolution that the head unit does not like, the manager will fail to start up. In nearly all cases, it's best to simply return the head unit's preferred order, or not implement this method (which does the same thing), and adapt your UI to the head unit's preferred resolution instead. - - @param headUnitPreferredResolution The resolution the head unit requested to use. - @return Your preferred order of image resolution usage. This system will not attempt more than 3 resolutions. It is strongly recommended that at least one resolution is the head unit's preferred resolution. - */ -- (NSArray *)resolutionFromHeadUnitPreferredResolution:(SDLImageResolution *)headUnitPreferredResolution; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingProtocolDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingProtocolDelegate.h deleted file mode 100644 index 1639c3b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingProtocolDelegate.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// SDLStreamingProtocolDelegate.h -// SmartDeviceLink-iOS -// -// Created by Sho Amano on 2018/03/23. -// Copyright © 2018 Xevo Inc. All rights reserved. -// - -#import - -@class SDLProtocol; - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLStreamingProtocolDelegate - -/// Called when protocol instance for audio and/or video service has been updated and the transport is established. -/// -/// If `newVideoProtocol` or `newAudioProtocol` have been set then the transport is established and a current session can be started. If `newVideoProtocol` or `newAudioProtocol` is nil it indicates that underlying transport will become unavailable and any ongoing sessions on that transport should be stopped (i.e. send a request to the module to stop the session and wait for a response). -/// -/// @param oldVideoProtocol protocol instance that was being used for video streaming -/// @param newVideoProtocol protocol instance that will be used for video streaming -/// @param oldAudioProtocol protocol instance that was being used for audio streaming -/// @param newAudioProtocol protocol instance that will be used for audio streaming -- (void)didUpdateFromOldVideoProtocol:(nullable SDLProtocol *)oldVideoProtocol toNewVideoProtocol:(nullable SDLProtocol *)newVideoProtocol fromOldAudioProtocol:(nullable SDLProtocol *)oldAudioProtocol toNewAudioProtocol:(nullable SDLProtocol *)newAudioProtocol; - -/// Called when the audio and/or video must be stopped because the transport has been destroyed or errored out. -/// -/// Since the transport does not exist, current sessions can not be properly stopped (i.e. no request can be sent module to stop the session) but the observer still needs to stop creating and sending data. -- (void)transportClosed; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h deleted file mode 100644 index 9fb1b39..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h +++ /dev/null @@ -1,186 +0,0 @@ -// -// SDLStreamingVideoLifecycleManager.h -// SmartDeviceLink -// -// Created by Joel Fischer on 6/19/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import -#import - -#import "SDLHMILevel.h" -#import "SDLProtocolDelegate.h" -#import "SDLStreamingMediaManagerConstants.h" -#import "SDLVideoStreamingFormat.h" -#import "SDLVideoStreamingState.h" - -@class SDLCarWindow; -@class SDLConfiguration; -@class SDLImageResolution; -@class SDLProtocol; -@class SDLStateMachine; -@class SDLStreamingMediaConfiguration; -@class SDLStreamingVideoScaleManager; -@class SDLSystemCapabilityManager; -@class SDLTouchManager; - -@protocol SDLConnectionManagerType; -@protocol SDLFocusableItemLocatorType; -@protocol SDLStreamingMediaManagerDataSource; - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLStreamingVideoLifecycleManager : NSObject - -@property (strong, nonatomic, readonly) SDLStateMachine *videoStreamStateMachine; -@property (strong, nonatomic, readonly) SDLVideoStreamManagerState *currentVideoStreamState; - -@property (strong, nonatomic, readonly) SDLStateMachine *appStateMachine; -@property (strong, nonatomic, readonly) SDLAppState *currentAppState; -@property (copy, nonatomic, nullable) SDLHMILevel hmiLevel; -@property (copy, nonatomic, nullable) SDLVideoStreamingState videoStreamingState; - -/** - * Touch Manager responsible for providing touch event notifications. - */ -@property (nonatomic, strong, readonly) SDLTouchManager *touchManager; -@property (nonatomic, strong, nullable) UIViewController *rootViewController; -@property (strong, nonatomic, readonly, nullable) SDLCarWindow *carWindow; - -/** - A haptic interface that can be updated to reparse views within the window you've provided. Send a `SDLDidUpdateProjectionView` notification or call the `updateInterfaceLayout` method to reparse. The "output" of this haptic interface occurs in the `touchManager` property where it will call the delegate. - */ -@property (nonatomic, strong, readonly, nullable) id focusableItemManager; - -/** - A data source for the streaming manager's preferred resolutions and preferred formats. - */ -@property (weak, nonatomic, nullable) id dataSource; - -/// Whether or not video/audio streaming is supported -/// @discussion If connected to a module pre-SDL v4.5 there is no way to check if streaming is supported so `YES` is returned by default even though the module may not support video/audio streaming. -@property (assign, nonatomic, readonly, getter=isStreamingSupported) BOOL streamingSupported; - -/** - * Whether or not the video session is connected. - */ -@property (assign, nonatomic, readonly, getter=isVideoConnected) BOOL videoConnected; - -/** - * Whether or not the video session is encrypted. This may be different than the requestedEncryptionType. - */ -@property (assign, nonatomic, readonly, getter=isVideoEncrypted) BOOL videoEncrypted; - -/** - * Whether or not the video stream is paused due to either the application being backgrounded, the HMI state being either NONE or BACKGROUND, or the video stream not being ready. - */ -@property (assign, nonatomic, readonly, getter=isVideoStreamingPaused) BOOL videoStreamingPaused; - -/** - Handles the logic of scaling between the view controller's coordinate system and the display's coordinate system - */ -@property (strong, nonatomic, readonly) SDLStreamingVideoScaleManager *videoScaleManager; - -/** - This is the agreed upon format of video encoder that is in use, or nil if not currently connected. - */ -@property (strong, nonatomic, readonly, nullable) SDLVideoStreamingFormat *videoFormat; - -/** - A list of all supported video formats by this manager - */ -@property (strong, nonatomic, readonly) NSArray *supportedFormats; - -/** - The decided upon preferred formats to try and connect with between the head unit and developer - */ -@property (strong, nonatomic) NSArray *preferredFormats; - -/** - The current attempt index for trying to connect with `preferredFormats` - */ -@property (assign, nonatomic) NSUInteger preferredFormatIndex; - -/** - The decided upon preferred resolutions to try and connect with between the head unit and the developer - */ -@property (strong, nonatomic) NSArray *preferredResolutions; - -/** - The current attempt index for trying to connect with `preferredResolutions` - */ -@property (assign, nonatomic) NSUInteger preferredResolutionIndex; - -/** - * The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder. - * - * @warning This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). - * @discussion Clients may call this once and retain the resulting pool, this call is cheap enough that it's OK to call it once per frame. - */ -@property (assign, nonatomic, readonly, nullable) CVPixelBufferPoolRef pixelBufferPool; - -/** - * The requested encryption type when a session attempts to connect. This setting applies to both video and audio sessions. - * - * DEFAULT: SDLStreamingEncryptionFlagAuthenticateAndEncrypt - */ -@property (assign, nonatomic) SDLStreamingEncryptionFlag requestedEncryptionType; - -/** - When YES, the StreamingMediaManager will send a black screen with "Video Backgrounded String". Defaults to YES. - */ -@property (assign, nonatomic) BOOL showVideoBackgroundDisplay; - - -- (instancetype)init NS_UNAVAILABLE; - -/// Create a new streaming video manager for navigation and projection apps with a specified configuration. -/// @param connectionManager The pass-through for RPCs -/// @param configuration This session's configuration -/// @param systemCapabilityManager The system capability manager object for reading window capabilities -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration systemCapabilityManager:(nullable SDLSystemCapabilityManager *)systemCapabilityManager NS_DESIGNATED_INITIALIZER; - -/** - * Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. - */ -- (void)startWithProtocol:(SDLProtocol *)protocol; - -/// This method is used internally to stop the manager when the device disconnects from the module. -- (void)stop; - -/// This method is used internally to stop the manager when video needs to be stopped on the secondary transport. The primary transport is still open. -/// 1. Since the primary transport is still open, do will not reset the `hmiLevel` and `videoStreamingState` because we can still get notifications from the module with the updated hmi status on the primary transport. -/// 2. We need to send an end video service control frame to the module to ensure that the video session is shut down correctly. In order to do this the protocol must be kept open and only destroyed after the module ACKs or NAKs our end video service request. -/// 3. Since the primary transport is still open, the video scale manager should not be reset because the default video dimensions are retrieved from the `RegisterAppInterfaceResponse`. Due to a bug with the video start service ACK sometimes returning a screen resolution of {0, 0} on subsequent request to start a video service, we need to keep the screen resolution from the very first start video service ACK. (This is not an issue if the head unit supports the `VideoStreamingCapability`). -/// @param videoEndedCompletionHandler Called when the module ACKs or NAKs to the request to end the video service. -- (void)endVideoServiceWithCompletionHandler:(void (^)(void))videoEndedCompletionHandler; - -/// This method is used internally to stop video streaming when the secondary transport has been closed due to an connection error. The primary transport is still open. -/// 1. Since the transport has been closed, we can not send an end video service control frame to the module. -/// 2. Since the primary transport is still open, we will not reset the `hmiLevel`, `videoStreamingState` or the video scale manager. This lets us resume video streaming if the secondary transport can be reestablished during the same app session. -- (void)secondaryTransportDidDisconnect; - -/** - * This method receives raw image data and will run iOS8+'s hardware video encoder to turn the data into a video stream, which will then be passed to the connected head unit. - * - * @param imageBuffer A CVImageBufferRef to be encoded by Video Toolbox - * - * @return Whether or not the data was successfully encoded and sent. - */ -- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer; - -/** - * This method receives raw image data and will run iOS8+'s hardware video encoder to turn the data into a video stream, which will then be passed to the connected head unit. - * - * @param imageBuffer A CVImageBufferRef to be encoded by Video Toolbox - * @param presentationTimestamp A presentation timestamp for the frame, or kCMTimeInvalid if timestamp is unknown. If it's valid, it must be greater than the previous one. - * - * @return Whether or not the data was successfully encoded and sent. - */ -- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m deleted file mode 100644 index 6e0b8a0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m +++ /dev/null @@ -1,866 +0,0 @@ -// -// SDLStreamingVideoLifecycleManager.m -// SmartDeviceLink -// -// Created by Joel Fischer on 6/19/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLStreamingVideoLifecycleManager.h" - -#import "CVPixelBufferRef+SDLUtil.h" -#import "SDLCarWindow.h" -#import "SDLConfiguration.h" -#import "SDLConnectionManagerType.h" -#import "SDLControlFramePayloadConstants.h" -#import "SDLControlFramePayloadNak.h" -#import "SDLControlFramePayloadVideoStartService.h" -#import "SDLControlFramePayloadVideoStartServiceAck.h" -#import "SDLDisplayCapabilities.h" -#import "SDLFocusableItemLocator.h" -#import "SDLGenericResponse.h" -#import "SDLGetSystemCapability.h" -#import "SDLGetSystemCapabilityResponse.h" -#import "SDLGlobals.h" -#import "SDLH264VideoEncoder.h" -#import "SDLHMILevel.h" -#import "SDLImageResolution.h" -#import "SDLLifecycleConfiguration.h" -#import "SDLLogMacros.h" -#import "SDLOnHMIStatus.h" -#import "SDLProtocol.h" -#import "SDLProtocolMessage.h" -#import "SDLPredefinedWindows.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCResponseNotification.h" -#import "SDLScreenParams.h" -#import "SDLStateMachine.h" -#import "SDLStreamingMediaConfiguration.h" -#import "SDLEncryptionConfiguration.h" -#import "SDLStreamingMediaManagerDataSource.h" -#import "SDLStreamingVideoScaleManager.h" -#import "SDLSystemCapability.h" -#import "SDLSystemCapabilityManager.h" -#import "SDLTouchManager.h" -#import "SDLVehicleType.h" -#import "SDLVideoEncoderDelegate.h" -#import "SDLVideoStreamingCapability.h" - -static NSUInteger const FramesToSendOnBackground = 30; - -NS_ASSUME_NONNULL_BEGIN - -typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_Nullable capability); - -@interface SDLStreamingVideoLifecycleManager() - -@property (weak, nonatomic) id connectionManager; -@property (weak, nonatomic, nullable) SDLSystemCapabilityManager *systemCapabilityManager; -@property (weak, nonatomic) SDLProtocol *protocol; - -@property (assign, nonatomic, readonly, getter=isAppStateVideoStreamCapable) BOOL appStateVideoStreamCapable; -@property (assign, nonatomic, readonly, getter=isHmiStateVideoStreamCapable) BOOL hmiStateVideoStreamCapable; - -@property (strong, nonatomic, readwrite) SDLStateMachine *videoStreamStateMachine; -@property (strong, nonatomic, readwrite) SDLStateMachine *appStateMachine; - -@property (strong, nonatomic, readwrite, nullable) SDLVideoStreamingFormat *videoFormat; - -@property (strong, nonatomic, nullable) SDLH264VideoEncoder *videoEncoder; -@property (strong, nonatomic) NSMutableDictionary *videoEncoderSettings; -@property (copy, nonatomic) NSDictionary *customEncoderSettings; -@property (copy, nonatomic) NSArray *secureMakes; -@property (copy, nonatomic, nullable) NSString *connectedVehicleMake; - -@property (copy, nonatomic, readonly) NSString *appName; -@property (assign, nonatomic) CV_NULLABLE CVPixelBufferRef backgroundingPixelBuffer; - -@property (strong, nonatomic, nullable) CADisplayLink *displayLink; -@property (assign, nonatomic) BOOL useDisplayLink; - -@property (assign, nonatomic, readwrite, getter=isVideoEncrypted) BOOL videoEncrypted; - -/** - * SSRC of RTP header field. - * - * SSRC field identifies the source of a stream and it should be - * chosen randomly (see section 3 and 5.1 in RFC 3550). - * - * @note A random value is generated and used as default. - */ -@property (assign, nonatomic) UInt32 ssrc; -@property (assign, nonatomic) CMTime lastPresentationTimestamp; - -@property (copy, nonatomic, readonly) NSString *videoStreamBackgroundString; -@property (nonatomic, copy, nullable) void (^videoServiceEndedCompletionHandler)(void); - -@end - -@implementation SDLStreamingVideoLifecycleManager - -- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLConfiguration *)configuration systemCapabilityManager:(nullable SDLSystemCapabilityManager *)systemCapabilityManager { - self = [super init]; - if (!self) { - return nil; - } - - _appName = configuration.lifecycleConfig.appName; - _connectionManager = connectionManager; - _systemCapabilityManager = systemCapabilityManager; - _videoEncoderSettings = [NSMutableDictionary dictionary]; - [_videoEncoderSettings addEntriesFromDictionary: SDLH264VideoEncoder.defaultVideoEncoderSettings]; - _customEncoderSettings = configuration.streamingMediaConfig.customVideoEncoderSettings; - _videoScaleManager = [[SDLStreamingVideoScaleManager alloc] init]; - - if (configuration.streamingMediaConfig.rootViewController != nil) { - NSAssert(configuration.streamingMediaConfig.enableForcedFramerateSync, @"When using CarWindow (rootViewController != nil), forceFrameRateSync must be YES"); - - if (@available(iOS 9.0, *)) { - SDLLogD(@"Initializing focusable item locator"); - _focusableItemManager = [[SDLFocusableItemLocator alloc] initWithViewController:configuration.streamingMediaConfig.rootViewController connectionManager:_connectionManager videoScaleManager:_videoScaleManager]; - } - - SDLLogD(@"Initializing CarWindow"); - _carWindow = [[SDLCarWindow alloc] initWithStreamManager:self configuration:configuration.streamingMediaConfig]; - _carWindow.rootViewController = configuration.streamingMediaConfig.rootViewController; - } - - _touchManager = [[SDLTouchManager alloc] initWithHitTester:(id)_focusableItemManager videoScaleManager:_videoScaleManager]; - - _requestedEncryptionType = configuration.streamingMediaConfig.maximumDesiredEncryption; - _dataSource = configuration.streamingMediaConfig.dataSource; - _useDisplayLink = configuration.streamingMediaConfig.enableForcedFramerateSync; - _backgroundingPixelBuffer = NULL; - _showVideoBackgroundDisplay = YES; - _preferredFormatIndex = 0; - _preferredResolutionIndex = 0; - - _hmiLevel = SDLHMILevelNone; - _videoStreamingState = SDLVideoStreamingStateNotStreamable; - - NSMutableArray *tempMakeArray = [NSMutableArray array]; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - for (Class securityManagerClass in configuration.streamingMediaConfig.securityManagers) { - [tempMakeArray addObjectsFromArray:[securityManagerClass availableMakes].allObjects]; - } -#pragma clang diagnostic pop - for (Class securityManagerClass in configuration.encryptionConfig.securityManagers) { - [tempMakeArray addObjectsFromArray:[securityManagerClass availableMakes].allObjects]; - } - NSOrderedSet *tempMakeSet = [NSOrderedSet orderedSetWithArray:tempMakeArray]; - _secureMakes = [tempMakeSet.array copy]; - - SDLAppState *initialState = SDLAppStateInactive; - switch ([[UIApplication sharedApplication] applicationState]) { - case UIApplicationStateActive: { - initialState = SDLAppStateActive; - } break; - case UIApplicationStateInactive: // fallthrough - case UIApplicationStateBackground: { - initialState = SDLAppStateInactive; - } break; - default: break; - } - - _appStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:initialState states:[self.class sdl_appStateTransitionDictionary]]; - _videoStreamStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLVideoStreamManagerStateStopped states:[self.class sdl_videoStreamStateTransitionDictionary]]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_didReceiveRegisterAppInterfaceResponse:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusDidChange:) name:SDLDidChangeHMIStatusNotification object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appStateDidUpdate:) name:UIApplicationDidBecomeActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appStateDidUpdate:) name:UIApplicationWillResignActiveNotification object:nil]; - - _ssrc = arc4random_uniform(UINT32_MAX); - _lastPresentationTimestamp = kCMTimeInvalid; - - return self; -} - -- (void)startWithProtocol:(SDLProtocol *)protocol { - SDLLogD(@"Starting with protocol: %@", protocol); - _protocol = protocol; - - @synchronized(self.protocol.protocolDelegateTable) { - if (![self.protocol.protocolDelegateTable containsObject:self]) { - [self.protocol.protocolDelegateTable addObject:self]; - } - } - - [self.focusableItemManager start]; - - // attempt to start streaming since we may already have necessary conditions met - [self sdl_startVideoSession]; -} - -- (void)stop { - SDLLogD(@"Stopping manager"); - - _backgroundingPixelBuffer = NULL; - _preferredFormatIndex = 0; - _preferredResolutionIndex = 0; - _lastPresentationTimestamp = kCMTimeInvalid; - _hmiLevel = SDLHMILevelNone; - _videoStreamingState = SDLVideoStreamingStateNotStreamable; - _protocol = nil; - [self.videoScaleManager stop]; - [self.focusableItemManager stop]; - _connectedVehicleMake = nil; - - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; -} - -- (void)secondaryTransportDidDisconnect { - SDLLogD(@"Stopping video manager"); - [self.focusableItemManager stop]; - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; -} - -- (void)endVideoServiceWithCompletionHandler:(void (^)(void))videoEndedCompletionHandler { - SDLLogD(@"Ending video service"); - [self sdl_disposeDisplayLink]; - self.videoServiceEndedCompletionHandler = videoEndedCompletionHandler; - [self.protocol endServiceWithType:SDLServiceTypeVideo]; -} - -- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer { - return [self sendVideoData:imageBuffer presentationTimestamp:kCMTimeInvalid]; -} - -- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp { - if (!self.isVideoConnected) { - SDLLogW(@"Attempted to send video data, but not connected"); - return NO; - } else if (!self.isAppStateVideoStreamCapable) { - SDLLogW(@"Attempted to send video data, but app is not in the foreground"); - return NO; - } else if (!self.isHmiStateVideoStreamCapable) { - SDLLogW(@"Attempted to send video data, but the app is not in LIMITED or FULL HMI state"); - return NO; - } - - /* - * reject input image for following cases: - * - presentation timestamp is not increasing - * - app tries to send images while background images are shown - */ - if (CMTIME_IS_VALID(self.lastPresentationTimestamp) && CMTIME_IS_VALID(presentationTimestamp) - && CMTIME_COMPARE_INLINE(presentationTimestamp, <=, self.lastPresentationTimestamp)) { - SDLLogW(@"The video data is out of date"); - return NO; - } - self.lastPresentationTimestamp = presentationTimestamp; - - SDLLogV(@"Sending data to video encoder"); - return [self.videoEncoder encodeFrame:imageBuffer presentationTimestamp:presentationTimestamp]; -} - -#pragma mark Getters - -- (BOOL)isVideoConnected { - return [self.videoStreamStateMachine isCurrentState:SDLVideoStreamManagerStateReady]; -} - -- (BOOL)isVideoSuspended { - return [self.videoStreamStateMachine isCurrentState:SDLVideoStreamManagerStateSuspended]; -} - -- (BOOL)isVideoStreamingPaused { - return !(self.isVideoConnected && self.isHmiStateVideoStreamCapable && self.isAppStateVideoStreamCapable); -} - -- (CVPixelBufferPoolRef __nullable)pixelBufferPool { - return self.videoEncoder.pixelBufferPool; -} - -- (SDLAppState *)currentAppState { - return self.appStateMachine.currentState; -} - -- (SDLVideoStreamManagerState *)currentVideoStreamState { - return self.videoStreamStateMachine.currentState; -} - -#pragma mark - State Machines -#pragma mark App State -+ (NSDictionary *)sdl_appStateTransitionDictionary { - return @{ - // Will go from Inactive to Active if coming from a Phone Call. - // Will go from Inactive to IsRegainingActive if coming from Background. - SDLAppStateInactive : @[SDLAppStateActive], - SDLAppStateActive : @[SDLAppStateInactive] - }; -} - -- (void)sdl_appStateDidUpdate:(NSNotification*)notification { - if (notification.name == UIApplicationWillResignActiveNotification) { - [self.appStateMachine transitionToState:SDLAppStateInactive]; - } else if (notification.name == UIApplicationDidBecomeActiveNotification) { - [self.appStateMachine transitionToState:SDLAppStateActive]; - } -} - -- (void)didEnterStateAppInactive { - SDLLogD(@"App became inactive"); - if (self.protocol == nil) { - SDLLogV(@"No session established with head unit. Ignoring app backgrounded notification"); - return; - } - - if (_showVideoBackgroundDisplay) { - [self sdl_sendBackgroundFrames]; - } - [self.touchManager cancelPendingTouches]; - - if (self.isVideoConnected) { - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateSuspended]; - } else { - [self sdl_stopVideoSession]; - } -} - -// Per Apple's guidelines: https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html -// We should be waiting to start any OpenGL drawing until UIApplicationDidBecomeActive is called. -- (void)didEnterStateAppActive { - SDLLogD(@"App became active"); - if (self.protocol == nil) { - SDLLogV(@"No session established with head unit. Ignoring app foregounded notification"); - return; - } - - if (self.isVideoSuspended) { - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateReady]; - } else { - [self sdl_startVideoSession]; - } -} - -#pragma mark Video Streaming -+ (NSDictionary *)sdl_videoStreamStateTransitionDictionary { - return @{ - SDLVideoStreamManagerStateStopped : @[SDLVideoStreamManagerStateStarting], - SDLVideoStreamManagerStateStarting : @[SDLVideoStreamManagerStateStopped, SDLVideoStreamManagerStateReady], - SDLVideoStreamManagerStateReady : @[SDLVideoStreamManagerStateSuspended, SDLVideoStreamManagerStateShuttingDown, SDLVideoStreamManagerStateStopped], - SDLVideoStreamManagerStateSuspended : @[SDLVideoStreamManagerStateReady, SDLVideoStreamManagerStateShuttingDown, SDLVideoStreamManagerStateStopped], - SDLVideoStreamManagerStateShuttingDown : @[SDLVideoStreamManagerStateStopped] - }; -} - -- (void)sdl_disposeDisplayLink { - if (self.displayLink == nil) { return; } - SDLLogD(@"Destroying display link"); - [self.displayLink invalidate]; - self.displayLink = nil; -} - -- (void)didEnterStateVideoStreamStopped { - SDLLogD(@"Video stream stopped"); - _videoEncrypted = NO; - _videoFormat = nil; - - if (_videoEncoder != nil) { - [_videoEncoder stop]; - _videoEncoder = nil; - } - - _backgroundingPixelBuffer = NULL; - _preferredFormatIndex = 0; - _preferredResolutionIndex = 0; - _lastPresentationTimestamp = kCMTimeInvalid; - - [self sdl_disposeDisplayLink]; - - [[NSNotificationCenter defaultCenter] postNotificationName:SDLVideoStreamDidStopNotification object:nil]; - - if (self.videoServiceEndedCompletionHandler != nil) { - self.videoServiceEndedCompletionHandler(); - self.videoServiceEndedCompletionHandler = nil; - } -} - -- (void)didEnterStateVideoStreamStarting { - SDLLogD(@"Video stream starting"); - - __weak typeof(self) weakSelf = self; - [self sdl_requestVideoCapabilities:^(SDLVideoStreamingCapability * _Nullable capability) { - SDLLogD(@"Received video capability response"); - SDLLogV(@"Capability: %@", capability); - - if (capability != nil) { - // If we got a response, get the head unit's preferred formats and resolutions - weakSelf.preferredFormats = capability.supportedFormats; - weakSelf.preferredResolutions = @[capability.preferredResolution]; - if (capability.maxBitrate != nil) { - weakSelf.videoEncoderSettings[(__bridge NSString *) kVTCompressionPropertyKey_AverageBitRate] = [[NSNumber alloc] initWithUnsignedLongLong:(capability.maxBitrate.unsignedLongLongValue * 1000)]; - } - - if (weakSelf.dataSource != nil) { - SDLLogV(@"Calling data source for modified preferred formats"); - weakSelf.preferredFormats = [weakSelf.dataSource preferredVideoFormatOrderFromHeadUnitPreferredOrder:weakSelf.preferredFormats]; - } - - if (weakSelf.focusableItemManager != nil) { - weakSelf.focusableItemManager.enableHapticDataRequests = capability.hapticSpatialDataSupported.boolValue; - } - - SDLLogD(@"Got specialized video capabilites, preferred formats: %@, haptics enabled %@", weakSelf.preferredFormats, (capability.hapticSpatialDataSupported.boolValue ? @"YES" : @"NO")); - } else { - // If no response, assume that the format is H264 RAW and get the screen resolution from the RAI response's display capabilities. - SDLVideoStreamingFormat *format = [[SDLVideoStreamingFormat alloc] initWithCodec:SDLVideoStreamingCodecH264 protocol:SDLVideoStreamingProtocolRAW]; - SDLImageResolution *resolution = [[SDLImageResolution alloc] initWithWidth:(uint16_t)weakSelf.videoScaleManager.displayViewportResolution.width height:(uint16_t)weakSelf.videoScaleManager.displayViewportResolution.height]; - weakSelf.preferredFormats = @[format]; - weakSelf.preferredResolutions = @[resolution]; - - if (weakSelf.focusableItemManager != nil) { - weakSelf.focusableItemManager.enableHapticDataRequests = NO; - } - - SDLLogD(@"Using generic video capabilites, preferred formats: %@, resolutions: %@, haptics disabled", weakSelf.preferredFormats, weakSelf.preferredResolutions); - } - - // Apply customEncoderSettings here. Note that value from HMI (such as maxBitrate) will be overwritten by custom settings. - for (id key in self.customEncoderSettings.keyEnumerator) { - self.videoEncoderSettings[key] = [self.customEncoderSettings valueForKey:key]; - } - - if (weakSelf.dataSource != nil) { - SDLLogV(@"Calling data source for modified preferred resolutions"); - weakSelf.preferredResolutions = [weakSelf.dataSource resolutionFromHeadUnitPreferredResolution:weakSelf.preferredResolutions.firstObject]; - SDLLogD(@"Got specialized video resolutions: %@", weakSelf.preferredResolutions); - } - - [self sdl_sendVideoStartService]; - }]; -} - -- (void)didEnterStateVideoStreamReady { - SDLLogD(@"Video stream ready"); - - if (self.videoEncoder != nil) { - [self.videoEncoder stop]; - self.videoEncoder = nil; - } - - [self sdl_disposeDisplayLink]; - - [[NSNotificationCenter defaultCenter] postNotificationName:SDLVideoStreamDidStartNotification object:nil]; - - if (!self.isAppStateVideoStreamCapable) { - SDLLogD(@"App is in the background and can not stream video. Video will resume when app is foregrounded"); - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateSuspended]; - return; - } - - if (self.videoEncoder == nil) { - NSError* error = nil; - NSAssert(self.videoFormat != nil, @"No video format is known, but it must be if we got a protocol start service response"); - - SDLLogD(@"Attempting to create video encoder"); - self.videoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:self.videoFormat.protocol dimensions:self.videoScaleManager.appViewportFrame.size ssrc:self.ssrc properties:self.videoEncoderSettings delegate:self error:&error]; - - if (error || self.videoEncoder == nil) { - SDLLogE(@"Could not create a video encoder: %@", error); - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; - return; - } - - if (!self.backgroundingPixelBuffer) { - CVPixelBufferRef backgroundingPixelBuffer = [self.videoEncoder newPixelBuffer]; - if (CVPixelBufferAddText(backgroundingPixelBuffer, self.videoStreamBackgroundString) == NO) { - SDLLogE(@"Could not create a backgrounding frame"); - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; - return; - } - - self.backgroundingPixelBuffer = backgroundingPixelBuffer; - } - self.lastPresentationTimestamp = kCMTimeInvalid; - } - - if (self.useDisplayLink) { - __weak typeof(self) weakSelf = self; - dispatch_async(dispatch_get_main_queue(), ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - NSInteger targetFramerate = ((NSNumber *)strongSelf.videoEncoderSettings[(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate]).integerValue; - SDLLogD(@"Initializing CADisplayLink with framerate: %ld", (long)targetFramerate); - strongSelf.displayLink = [CADisplayLink displayLinkWithTarget:strongSelf selector:@selector(sdl_displayLinkFired:)]; - if (@available(iOS 10, *)) { - strongSelf.displayLink.preferredFramesPerSecond = targetFramerate; - } else { - strongSelf.displayLink.frameInterval = (60 / targetFramerate); - } - [strongSelf.displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; - }); - } else { - self.touchManager.enableSyncedPanning = NO; - } -} - -- (void)didEnterStateVideoStreamSuspended { - SDLLogD(@"Video stream suspended"); - [self sdl_disposeDisplayLink]; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLVideoStreamSuspendedNotification object:nil]; -} - -- (void)didEnterStateVideoStreamShuttingDown { - SDLLogD(@"Video stream shutting down"); - [self.protocol endServiceWithType:SDLServiceTypeVideo]; -} - -#pragma mark - SDLProtocolListener -#pragma mark Start Service ACK/NAK - -- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { - if (startServiceACK.header.serviceType != SDLServiceTypeVideo) { return; } - - self.videoEncrypted = startServiceACK.header.encrypted; - - SDLControlFramePayloadVideoStartServiceAck *videoAckPayload = [[SDLControlFramePayloadVideoStartServiceAck alloc] initWithData:startServiceACK.payload]; - SDLLogD(@"Request to start video service ACKed with payload: %@", videoAckPayload); - - - if (videoAckPayload.mtu != SDLControlFrameInt64NotFound) { - [[SDLGlobals sharedGlobals] setDynamicMTUSize:(NSUInteger)videoAckPayload.mtu forServiceType:SDLServiceTypeVideo]; - } - - // This is the definitive screen size that will be used - if ((videoAckPayload.height != SDLControlFrameInt32NotFound || videoAckPayload.height != 0) && (videoAckPayload.width != SDLControlFrameInt32NotFound && videoAckPayload.width != 0)) { - self.videoScaleManager.displayViewportResolution = CGSizeMake(videoAckPayload.width, videoAckPayload.height); - } else if (self.preferredResolutions.count > 0) { - // If a preferred resolution was set, use the first option to set the screen size - SDLImageResolution *preferredResolution = self.preferredResolutions.firstObject; - CGSize newScreenSize = CGSizeMake(preferredResolution.resolutionWidth.floatValue, preferredResolution.resolutionHeight.floatValue); - if (!CGSizeEqualToSize(self.videoScaleManager.displayViewportResolution, newScreenSize)) { - SDLLogW(@"The preferred resolution does not match the screen dimensions returned by the Register App Interface Response. Video may look distorted or video may not show up on the head unit"); - self.videoScaleManager.displayViewportResolution = CGSizeMake(preferredResolution.resolutionWidth.floatValue, preferredResolution.resolutionHeight.floatValue); - } - } // else we are using the screen size we got from the RAIR earlier - - // Figure out the definitive format that will be used. If the protocol / codec weren't passed in the payload, it's probably a system that doesn't support those properties, which also means it's a system that requires H.264 RAW encoding - self.videoFormat = [[SDLVideoStreamingFormat alloc] init]; - self.videoFormat.codec = videoAckPayload.videoCodec ?: SDLVideoStreamingCodecH264; - self.videoFormat.protocol = videoAckPayload.videoProtocol ?: SDLVideoStreamingProtocolRAW; - - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateReady]; -} - -- (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceNAK { - if (startServiceNAK.header.serviceType != SDLServiceTypeVideo) { return; } - - SDLControlFramePayloadNak *nakPayload = [[SDLControlFramePayloadNak alloc] initWithData:startServiceNAK.payload]; - SDLLogE(@"Request to start video service NAKed with reason: %@", nakPayload.description); - - // If we have no payload rejected params, we don't know what to do to retry, so we'll just stop and maybe cry - if (nakPayload.rejectedParams.count == 0) { - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; - return; - } - - // If height and/or width was rejected, and we have another resolution to try, advance our counter to try another resolution - if (([nakPayload.rejectedParams containsObject:[NSString stringWithUTF8String:SDLControlFrameHeightKey]] - || [nakPayload.rejectedParams containsObject:[NSString stringWithUTF8String:SDLControlFrameWidthKey]])) { - self.preferredResolutionIndex++; - } - - if (([nakPayload.rejectedParams containsObject:[NSString stringWithUTF8String:SDLControlFrameVideoCodecKey]] - || [nakPayload.rejectedParams containsObject:[NSString stringWithUTF8String:SDLControlFrameVideoProtocolKey]])) { - self.preferredFormatIndex++; - } - - [self sdl_sendVideoStartService]; -} - -#pragma mark End Service ACK/NAK - -- (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { - if (endServiceACK.header.serviceType != SDLServiceTypeVideo) { return; } - SDLLogD(@"Request to end video service ACKed"); - - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; -} - -- (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { - if (endServiceNAK.header.serviceType != SDLServiceTypeVideo) { return; } - - SDLControlFramePayloadNak *nakPayload = [[SDLControlFramePayloadNak alloc] initWithData:endServiceNAK.payload]; - SDLLogE(@"Request to end video service NAKed with payload: %@", nakPayload); - - /// Core will NAK the video end service control frame if video is not streaming or if video is streaming but the HMI does not recognize that video is streaming. - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; -} - -#pragma mark - SDL RPC Notification callbacks - -- (void)sdl_didReceiveRegisterAppInterfaceResponse:(SDLRPCResponseNotification *)notification { - NSAssert([notification.response isKindOfClass:[SDLRegisterAppInterfaceResponse class]], @"A notification was sent with an unanticipated object"); - if (![notification.response isKindOfClass:[SDLRegisterAppInterfaceResponse class]]) { - return; - } - - SDLLogD(@"Received Register App Interface"); - SDLRegisterAppInterfaceResponse *registerResponse = (SDLRegisterAppInterfaceResponse *)notification.response; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated" - SDLImageResolution *resolution = registerResponse.displayCapabilities.screenParams.resolution; -#pragma clang diagnostic pop - if (resolution != nil) { - self.videoScaleManager.displayViewportResolution = CGSizeMake(resolution.resolutionWidth.floatValue, - resolution.resolutionHeight.floatValue); - // HAX: Workaround for Legacy Ford and Lincoln displays with > 800 resolution width or height. They don't support scaling and if we don't do this workaround, they will not correctly scale the view. - NSString *make = registerResponse.vehicleType.make; - CGSize resolution = self.videoScaleManager.displayViewportResolution; - if (([make containsString:@"Ford"] || [make containsString:@"Lincoln"]) && (resolution.width > 800 || resolution.height > 800)) { - self.videoScaleManager.scale = 1.0f / 0.75f; // Scale by 1.333333 - } - } - - self.connectedVehicleMake = registerResponse.vehicleType.make; - - SDLLogD(@"Determined base screen size on display capabilities: %@", NSStringFromCGSize(self.videoScaleManager.displayViewportResolution)); -} - -/// Parses out the `hmiLevel` and `videoStreamingState` from an `OnHMIStatus` notification from Core. Since Core only allows video streaming when the `hmiLevel` is `FULL` or `LIMITED`, sending video data when the `hmiLevel` is not `FULL` or `LIMITED` will result in Core forcing an unregistration with a reason of `PROTOCOL_VIOLATION`. -/// 1. The `hmiLevel` will go to `FULL` when the user opens the SDL app by tapping on the SDL app icon on the HMI or uses a voice command to launch the SDL app. -/// 2. The `hmiLevel` will go to `LIMITED` when the user backgrounds the SDL app by opening another app or by going back to the home screen. -/// 3. The `hmiLevel` will go to `NONE` when the user "exits" the app (either through gesture or voice commands). It will also go to `NONE` if video fails to stream and the user presses "cancel" on the HMI popup. In these cases the transport between the phone and accessory will still be open. It will also go to `NONE` when the user disconnects the transport between the phone and accessory. In this case no notification will be recieved since the transport was disconnected. -/// 4. The `hmiLevel` will go to `BACKGROUND` if the app is in `LIMITED` and another app takes over video streaming capability (i.e. another navigation app's `hmiLevel` changes to `FULL`). -/// -/// @param notification The `OnHMIStatus` notification -- (void)sdl_hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { - NSAssert([notification.notification isKindOfClass:[SDLOnHMIStatus class]], @"A notification was sent with an unanticipated object"); - if (![notification.notification isKindOfClass:[SDLOnHMIStatus class]]) { - return; - } - - SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus*)notification.notification; - if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { - return; - } - - self.hmiLevel = hmiStatus.hmiLevel; - - SDLVideoStreamingState newState = hmiStatus.videoStreamingState ?: SDLVideoStreamingStateStreamable; - if (![self.videoStreamingState isEqualToEnum:newState]) { - SDLLogD(@"Video streaming state changed from %@ to %@", self.videoStreamingState, hmiStatus.videoStreamingState); - self.videoStreamingState = newState; - } - - // if startWithProtocol has not been called yet, abort here - if (self.protocol == nil) { - SDLLogW(@"No session established with head unit. HMI status is not relevant."); - return; - } - - if (self.isHmiStateVideoStreamCapable) { - [self sdl_startVideoSession]; - } else { - [self sdl_stopVideoSession]; - } -} - -#pragma mark - SDLVideoEncoderDelegate - -- (void)videoEncoder:(SDLH264VideoEncoder *)encoder hasEncodedFrame:(NSData *)encodedVideo { - SDLLogV(@"Video encoder encoded frame, sending data"); - // Do we care about app state here? I don't think so… - BOOL capableVideoStreamState = [self.videoStreamStateMachine isCurrentState:SDLVideoStreamManagerStateReady]; - - if (self.isHmiStateVideoStreamCapable && capableVideoStreamState) { - if (self.isVideoEncrypted) { - [self.protocol sendEncryptedRawData:encodedVideo onService:SDLServiceTypeVideo]; - } else { - [self.protocol sendRawData:encodedVideo withServiceType:SDLServiceTypeVideo]; - } - } -} - -#pragma mark - Streaming session helpers - -- (void)sdl_startVideoSession { - SDLLogV(@"Attempting to start video session"); - if (self.protocol == nil) { - SDLLogW(@"No transport established with head unit. Video start service request will not be sent."); - return; - } - - if (!self.isHmiStateVideoStreamCapable) { - SDLLogV(@"SDL Core is not ready to stream video. Video start service request will not be sent."); - return; - } - - if (!self.isStreamingSupported) { - SDLLogV(@"Streaming is not supported. Video start service request will not be sent."); - return; - } - - if ([self.videoStreamStateMachine isCurrentState:SDLVideoStreamManagerStateStopped] && self.isHmiStateVideoStreamCapable) { - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStarting]; - } else { - SDLLogE(@"Unable to send video start service request\n" - "Video State must be in state STOPPED: %@\n" - "HMI state must be LIMITED or FULL: %@\n", - self.videoStreamStateMachine.currentState, self.hmiLevel); - } -} - -- (void)sdl_stopVideoSession { - SDLLogV(@"Attempting to stop video session"); - if (!self.isStreamingSupported) { - SDLLogW(@"Head unit does not support video streaming. Will not send an end video service request"); - return; - } - - if (self.isVideoConnected || self.isVideoSuspended) { - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateShuttingDown]; - } else { - SDLLogW(@"No video is currently streaming. Will not send an end video service request."); - } -} - -- (void)sdl_displayLinkFired:(CADisplayLink *)displayLink { - NSAssert([NSThread isMainThread], @"Display link should always fire on the main thread"); - if (@available(iOS 10.0, *)) { - SDLLogV(@"DisplayLink frame fired, duration: %f, last frame timestamp: %f, target timestamp: %f", displayLink.duration, displayLink.timestamp, displayLink.targetTimestamp); - } else { - SDLLogV(@"DisplayLink frame fired, duration: %f, last frame timestamp: %f, target timestamp: (not available)", displayLink.duration, displayLink.timestamp); - } - - [self.touchManager syncFrame]; - [self.carWindow syncFrame]; -} - -- (void)sdl_sendBackgroundFrames { - SDLLogV(@"Attempting to send background frames"); - if (!self.backgroundingPixelBuffer) { - SDLLogW(@"No background pixel buffer, unable to send background frames"); - return; - } - - int32_t timeRate = 30; - if (self.videoEncoderSettings[(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate] != nil) { - timeRate = ((NSNumber *)self.videoEncoderSettings[(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate]).intValue; - } - - const CMTime interval = CMTimeMake(1, timeRate); - for (int frameCount = 0; frameCount < FramesToSendOnBackground; frameCount++) { - if (CMTIME_IS_VALID(self.lastPresentationTimestamp)) { - self.lastPresentationTimestamp = CMTimeAdd(self.lastPresentationTimestamp, interval); - [self.videoEncoder encodeFrame:self.backgroundingPixelBuffer presentationTimestamp:self.lastPresentationTimestamp]; - } else { - [self.videoEncoder encodeFrame:self.backgroundingPixelBuffer]; - } - } -} - -- (void)sdl_requestVideoCapabilities:(SDLVideoCapabilityResponseHandler)responseHandler { - SDLLogD(@"Requesting video capabilities"); - SDLGetSystemCapability *getVideoCapabilityRequest = [[SDLGetSystemCapability alloc] initWithType:SDLSystemCapabilityTypeVideoStreaming]; - - [self.connectionManager sendConnectionManagerRequest:getVideoCapabilityRequest withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (!response.success || [response isMemberOfClass:SDLGenericResponse.class]) { - SDLLogW(@"Video capabilities response failed: %@", error); - responseHandler(nil); - BLOCK_RETURN; - } - - SDLVideoStreamingCapability *videoCapability = ((SDLGetSystemCapabilityResponse *)response).systemCapability.videoStreamingCapability; - SDLLogD(@"Video capabilities response received: %@", videoCapability); - - self.videoScaleManager.scale = (videoCapability != nil && videoCapability.scale != nil) ? videoCapability.scale.floatValue : (float)0.0; - - responseHandler(videoCapability); - }]; -} - -/** - Pull the current format / resolution out of our preferred resolutions and craft a start video service payload out of it, then send a start service. If the format isn't one that we support, we're going to try the next format. - */ -- (void)sdl_sendVideoStartService { - SDLLogV(@"Attempting to find preferred format"); - while (self.preferredFormatIndex < self.preferredFormats.count) { - if (![self.supportedFormats containsObject:self.preferredFormats[self.preferredFormatIndex]]) { - self.preferredFormatIndex++; - } else { - SDLLogV(@"Preferred format index found: %lu", self.preferredFormatIndex); - break; - } - } - - // If this fails we have no known formats to use - if (self.preferredFormatIndex >= self.preferredFormats.count - || self.preferredResolutionIndex >= self.preferredResolutions.count) { - SDLLogE(@"No preferred format or no preferred resolution found that works: format index %lu, resolution index %lu", (unsigned long)self.preferredFormatIndex, (unsigned long)self.preferredResolutionIndex); - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; - return; - } - - SDLVideoStreamingFormat *preferredFormat = self.preferredFormats[self.preferredFormatIndex]; - SDLImageResolution *preferredResolution = self.preferredResolutions[self.preferredResolutionIndex]; - - SDLControlFramePayloadVideoStartService *startVideoPayload = [[SDLControlFramePayloadVideoStartService alloc] initWithVideoHeight:preferredResolution.resolutionHeight.intValue width:preferredResolution.resolutionWidth.intValue protocol:preferredFormat.protocol codec:preferredFormat.codec]; - - // Decide if we need to start a secure service or not - if ((self.requestedEncryptionType != SDLStreamingEncryptionFlagNone) && ([self.secureMakes containsObject:self.connectedVehicleMake])) { - SDLLogD(@"Sending secure video start service with payload: %@", startVideoPayload); - [self.protocol startSecureServiceWithType:SDLServiceTypeVideo payload:startVideoPayload.data tlsInitializationHandler:^(BOOL success, NSError *error) { - if (error) { - SDLLogE(@"TLS setup error: %@", error); - [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; - } - }]; - } else { - SDLLogD(@"Sending insecure video start service with payload: %@", startVideoPayload); - [self.protocol startServiceWithType:SDLServiceTypeVideo payload:startVideoPayload.data]; - } -} - -#pragma mark Setters / Getters - -- (void)setRootViewController:(nullable UIViewController *)rootViewController { - if (self.focusableItemManager != nil) { - self.focusableItemManager.viewController = rootViewController; - } - - if (self.carWindow != nil) { - self.carWindow.rootViewController = rootViewController; - } -} - -- (nullable UIViewController *)rootViewController { - if (self.carWindow != nil) { - return self.carWindow.rootViewController; - } else { - return nil; - } -} - -- (BOOL)isAppStateVideoStreamCapable { - return [self.appStateMachine isCurrentState:SDLAppStateActive]; -} - -- (BOOL)isHmiStateVideoStreamCapable { - return (![self.videoStreamingState isEqualToEnum:SDLVideoStreamingStateNotStreamable] - && ([self.hmiLevel isEqualToEnum:SDLHMILevelLimited] || [self.hmiLevel isEqualToEnum:SDLHMILevelFull])); -} - -- (NSArray *)supportedFormats { - SDLVideoStreamingFormat *h264raw = [[SDLVideoStreamingFormat alloc] initWithCodec:SDLVideoStreamingCodecH264 protocol:SDLVideoStreamingProtocolRAW]; - SDLVideoStreamingFormat *h264rtp = [[SDLVideoStreamingFormat alloc] initWithCodec:SDLVideoStreamingCodecH264 protocol:SDLVideoStreamingProtocolRTP]; - - return @[h264raw, h264rtp]; -} - -- (NSString *)videoStreamBackgroundString { - return [NSString stringWithFormat:@"When it is safe to do so, open %@ on your phone", self.appName]; -} - -- (BOOL)isStreamingSupported { - return (self.systemCapabilityManager != nil) ? [self.systemCapabilityManager isCapabilitySupported:SDLSystemCapabilityTypeVideoStreaming] : YES; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.h deleted file mode 100644 index 77d4a97..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.h +++ /dev/null @@ -1,78 +0,0 @@ -// -// SDLStreamingVideoScaleManager.h -// SmartDeviceLink -// -// Created by Nicole on 10/1/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -@class SDLOnTouchEvent; -@class SDLHapticRect; - -NS_ASSUME_NONNULL_BEGIN - -/** - This class consolidates the logic of scaling between the view controller's coordinate system and the display's coordinate system. - - The main goal of using scaling is to align different screens and use a common range of "points per inch". This allows showing assets with a similar size on different screen resolutions. - */ -@interface SDLStreamingVideoScaleManager : NSObject - -/** - The scaling factor the app should use to change the size of the projecting view. - */ -@property (assign, nonatomic) float scale; - -/** - The screen resolution of the connected display. The units are pixels. - */ -@property (assign, nonatomic) CGSize displayViewportResolution; - -/** - The frame of the app's projecting view. This is calculated by dividing the display's viewport resolution by the scale. The units are points. - */ -@property (assign, nonatomic, readonly) CGRect appViewportFrame; - -/** - Creates a default streaming video scale manager. - The scale value will be set to 1.0 and the displayViewportResolution will be set to {0, 0}. - - @return A SDLStreamingVideoScaleManager object - */ -- (instancetype)init; - -/** - Convenience init for creating the manager with a scale and connected display viewport resolution. - - @param scale The scaling factor the app should use to change the size of the projecting view - @param displayViewportResolution The current screen resolution of the connected display - @return A SDLStreamingVideoScaleManager object - */ -- (instancetype)initWithScale:(float)scale displayViewportResolution:(CGSize)displayViewportResolution; - -/** - Scales the coordinates of an `OnTouchEvent` from the display's coordinate system to the app's viewport coordinate system. If the scale value is less than 1.0, the touch events will be returned without being scaled. - - @param onTouchEvent A touch event with coordinates - @return The touch event coordinates in the app's viewport coordinate system - */ -- (SDLOnTouchEvent *)scaleTouchEventCoordinates:(SDLOnTouchEvent *)onTouchEvent; - -/** - Scales a haptic rectangle from the app's viewport coordinate system to the display's coordinate system. If the scale value is less than 1.0, the haptic rectangle will be returned without being scaled. - - @param hapticRect A haptic rectangle - @return The position of the haptic rectangle in the display's coordinate system - */ -- (SDLHapticRect *)scaleHapticRect:(SDLHapticRect *)hapticRect; - -/** - Stops the manager. This method is used internally. - */ -- (void)stop; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.m deleted file mode 100644 index d9c2158..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLStreamingVideoScaleManager.m +++ /dev/null @@ -1,98 +0,0 @@ -// -// SDLStreamingVideoScaleManager.m -// SmartDeviceLink -// -// Created by Nicole on 10/1/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLStreamingVideoScaleManager.h" - -#import "SDLOnTouchEvent.h" -#import "SDLRectangle.h" -#import "SDLTouchCoord.h" -#import "SDLTouchEvent.h" -#import "SDLHapticRect.h" -#import "SDLNotificationConstants.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLStreamingVideoScaleManager () - -@property (assign, nonatomic, readwrite) CGRect appViewportFrame; - -@end - -@implementation SDLStreamingVideoScaleManager - -const float SDLDefaultScaleValue = 1.0; -CGSize const SDLDefaultDisplayViewportResolution = {0, 0}; - -- (instancetype)init { - return [[self.class alloc] initWithScale:SDLDefaultScaleValue displayViewportResolution:SDLDefaultDisplayViewportResolution]; -} - -- (void)stop { - self.displayViewportResolution = SDLDefaultDisplayViewportResolution; - self.scale = SDLDefaultScaleValue; -} - -- (instancetype)initWithScale:(float)scale displayViewportResolution:(CGSize)displayViewportResolution { - self = [super init]; - if (!self) { - return nil; - } - - _scale = [self.class validateScale:scale]; - _displayViewportResolution = displayViewportResolution; - - return self; -} - -- (SDLOnTouchEvent *)scaleTouchEventCoordinates:(SDLOnTouchEvent *)onTouchEvent { - if (self.scale <= SDLDefaultScaleValue) { - return onTouchEvent; - } - for (SDLTouchEvent *touchEvent in onTouchEvent.event) { - for (SDLTouchCoord *coord in touchEvent.coord) { - coord.x = @(coord.x.floatValue / self.scale); - coord.y = @(coord.y.floatValue / self.scale); - } - } - return onTouchEvent; -} - -- (SDLHapticRect *)scaleHapticRect:(SDLHapticRect *)hapticRect { - hapticRect.rect.x = @(hapticRect.rect.x.floatValue * self.scale); - hapticRect.rect.y = @(hapticRect.rect.y.floatValue * self.scale); - hapticRect.rect.width = @(hapticRect.rect.width.floatValue * self.scale); - hapticRect.rect.height = @(hapticRect.rect.height.floatValue * self.scale); - return hapticRect; -} - -#pragma mark - Getters and Setters - -- (CGRect)appViewportFrame { - // Screen capture in the CarWindow API only works if the width and height are integer values - return CGRectMake(0, 0, roundf((float)self.displayViewportResolution.width / self.scale), roundf((float)self.displayViewportResolution.height / self.scale)); -} - -- (void)setScale:(float)scale { - _scale = [self.class validateScale:scale]; -} - -#pragma mark - Helpers - -/** - Validates the scale value. Returns the default scale value for 1.0 if the scale value is less than 1.0 - - @param scale The scale value to be validated. - @return The validated scale value - */ -+ (float)validateScale:(float)scale { - return (scale > SDLDefaultScaleValue) ? scale : SDLDefaultScaleValue; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.h deleted file mode 100644 index 75c058d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.h +++ /dev/null @@ -1,94 +0,0 @@ -// SDLSubscribeButton.h -// - -#import "SDLButtonName.h" -#import "SDLNotificationConstants.h" -#import "SDLRPCRequest.h" - - -NS_ASSUME_NONNULL_BEGIN - -/** - * Establishes a subscription to button notifications for HMI buttons. Buttons - * are not necessarily physical buttons, but can also be "soft" buttons on a - * touch screen, depending on the display in the vehicle. Once subscribed to a - * particular button, an application will receive both - * SDLOnButtonEvent and SDLOnButtonPress notifications - * whenever that button is pressed. The application may also unsubscribe from - * notifications for a button by invoking the SDLUnsubscribeButton - * operation - *

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

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

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

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

      - * For short presses:
      - *

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

      - * For long presses:
      - *

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

      - * HMILevel needs to be FULL, LIMITED or BACKGROUND - *

      - * - * Since SmartDeviceLink 1.0
      - * See SDLUnsubscribeButton - */ -@interface SDLSubscribeButton : SDLRPCRequest - -/** - * Construct a SDLSubscribeButton with a handler callback when an event occurs. - * - * @param handler A callback that will be called when a button event occurs for the subscribed button. - * - * @return An SDLSubscribeButton object - */ -- (instancetype)initWithHandler:(nullable SDLRPCButtonNotificationHandler)handler; - -/// Construct a SDLSubscribeButton with a handler callback when an event occurs with a button name. -/// -/// @param buttonName The name of the button to subscribe to -/// @param handler A callback that will be called when a button event occurs for the subscribed button -/// @return An SDLSubscribeButton object -- (instancetype)initWithButtonName:(SDLButtonName)buttonName handler:(nullable SDLRPCButtonNotificationHandler)handler; - -/** - * A handler that will let you know when the button you subscribed to is selected. - * - * @warning This will only work if you use SDLManager. - */ -@property (copy, nonatomic) SDLRPCButtonNotificationHandler handler; - -/** - * The name of the button to subscribe to - * @discussion An enum value, see SDLButtonName - */ -@property (strong, nonatomic) SDLButtonName buttonName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.m deleted file mode 100644 index b8f25b5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButton.m +++ /dev/null @@ -1,65 +0,0 @@ -// SDLSubscribeButton.m -// - - -#import "SDLSubscribeButton.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSubscribeButton - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSubscribeButton]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithHandler:(nullable SDLRPCButtonNotificationHandler)handler { - self = [self init]; - if (!self) { - return nil; - } - - _handler = handler; - - return self; -} - -- (instancetype)initWithButtonName:(SDLButtonName)buttonName handler:(nullable SDLRPCButtonNotificationHandler)handler { - self = [self init]; - if (!self) { - return nil; - } - - self.buttonName = buttonName; - self.handler = handler; - - return self; -} - -- (void)setButtonName:(SDLButtonName)buttonName { - [self.parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; -} - -- (SDLButtonName)buttonName { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; -} - --(id)copyWithZone:(nullable NSZone *)zone { - SDLSubscribeButton *newButton = [super copyWithZone:zone]; - newButton->_handler = self.handler; - - return newButton; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.h deleted file mode 100644 index c73d3d8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.h +++ /dev/null @@ -1,75 +0,0 @@ -// -// SDLSubscribeButtonManager.h -// SmartDeviceLink -// -// Created by Nicole on 5/21/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLButtonName.h" -#import "SDLConnectionManagerType.h" -#import "SDLNotificationConstants.h" - -@class SDLSystemCapabilityManager; - -NS_ASSUME_NONNULL_BEGIN - -/// A handler run when the subscribe button has been selected. -/// @param buttonPress Indicates whether this is a long or short button press event -/// @param buttonEvent Indicates whether the button has been depressed or released -/// @param error The error, if one occurred, during the subscription -typedef void (^SDLSubscribeButtonUpdateHandler)(SDLOnButtonPress *_Nullable buttonPress, SDLOnButtonEvent *_Nullable buttonEvent, NSError *_Nullable error); - -/// The handler run when the update has completed. -/// @param error An error if the update failed -typedef void(^SDLSubscribeButtonUpdateCompletionHandler)(NSError *__nullable error); - -/// Manager for handling subscriptions to hard buttons. -@interface SDLSubscribeButtonManager : NSObject - -/// Initialize the manager with required dependencies. -/// @param connectionManager The connection manager object for sending RPCs -- (instancetype)initWithConnectionManager:(id)connectionManager; - -/// Starts the manager. This method is used internally. -- (void)start; - -/// Stops the manager. This method is used internally. -- (void)stop; - -/// Subscribes to a subscribe button. The update handler will be called when the button has been selected. If there is an error subscribing to the subscribe button it will be returned in the `error` parameter of the updateHandler. -/// @param buttonName The name of the hard button to subscribe to -/// @param updateHandler The block run when the subscribe button is selected -/// @return An object that can be used to unsubscribe the block using `unsubscribeButtonWithObserver:withCompletionHandler:`. -- (id)subscribeButton:(SDLButtonName)buttonName withUpdateHandler:(nullable SDLSubscribeButtonUpdateHandler)updateHandler; - -/// Subscribes to a subscribe button. The selector will be called when the button has been selected. If there is an error subscribing to the subscribe button it will be returned in the `error` parameter of the selector. -/// -/// The selector supports the following parameters: -/// -/// 1. A selector with no parameters. The observer will be notified when a button press occurs (it will not know if a short or long press has occurred). -/// -/// 2. A selector with one parameter, (SDLButtonName). The observer will be notified when a button press occurs (it will not know if a short or long press has occurred). -/// -/// 3. A selector with two parameters, (SDLButtonName, NSError). The observer will be notified when a button press occurs (it will not know if a short or long press has occurred). -/// -/// 4. A selector with three parameters, (SDLButtonName, NSError, SDLOnButtonPress). The observer will be notified when a long or short button press occurs, but not a button event. -/// -/// 5. A selector with four parameters, (SDLButtonName, NSError, SDLOnButtonPress, SDLOnButtonEvent). The observer will be notified when any button press or any button event occurs. -/// -/// To unsubscribe to the hard button, please call `unsubscribeButton:withObserver:withCompletionHandler:`. -/// -/// @param buttonName The name of the hard button to subscribe to -/// @param observer The object that will have `selector` called whenever the button has been selected -/// @param selector The selector on `observer` that will be called whenever the button has been selected -- (void)subscribeButton:(SDLButtonName)buttonName withObserver:(id)observer selector:(SEL)selector; - -/// Unsubscribes to a subscribe button. Please note that if a subscribe button has multiple subscribers the observer will no longer get notifications, however, the app will still be subscribed to the hard button until the last subscriber is removed. -/// @param buttonName The name of the hard button to subscribe to -/// @param observer The object that will be unsubscribed. If a block was subscribed, the return value should be passed. If a selector was subscribed, the observer object should be passed -/// @param completionHandler A handler called when the observer has been unsubscribed to the hard button -- (void)unsubscribeButton:(SDLButtonName)buttonName withObserver:(id)observer withCompletionHandler:(nullable SDLSubscribeButtonUpdateCompletionHandler)completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.m deleted file mode 100644 index 5057402..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonManager.m +++ /dev/null @@ -1,311 +0,0 @@ -// -// SDLSDLSubscribeButtonManager.m -// SmartDeviceLink -// -// Created by Nicole on 5/21/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLSubscribeButtonManager.h" - -#import "SDLError.h" -#import "SDLGlobals.h" -#import "SDLHMIPermissions.h" -#import "SDLLogMacros.h" -#import "SDLOnButtonPress.h" -#import "SDLOnHMIStatus.h" -#import "SDLOnPermissionsChange.h" -#import "SDLPermissionItem.h" -#import "SDLPredefinedWindows.h" -#import "SDLRPCFunctionNames.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLSubscribeButton.h" -#import "SDLSubscribeButtonObserver.h" -#import "SDLUnsubscribeButton.h" -#import "SDLUnsubscribeButtonResponse.h" -#import "SDLOnButtonEvent.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSubscribeButtonManager() - -@property (weak, nonatomic) id connectionManager; -@property (strong, nonatomic) NSMutableDictionary *> *subscribeButtonObservers; -@property (copy, nonatomic) dispatch_queue_t readWriteQueue; - -@end - -@implementation SDLSubscribeButtonManager - -#pragma mark - Lifecycle - -- (instancetype)initWithConnectionManager:(id)connectionManager { - self = [super init]; - if (!self) { return nil; } - - if (@available(iOS 10.0, *)) { - _readWriteQueue = dispatch_queue_create_with_target("com.sdl.subscribeButtonManager.readWriteQueue", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); - } else { - _readWriteQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; - } - - _connectionManager = connectionManager; - _subscribeButtonObservers = [NSMutableDictionary dictionary]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_handleButtonEvent:) name:SDLDidReceiveButtonEventNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_handleButtonPress:) name:SDLDidReceiveButtonPressNotification object:nil]; - - return self; -} - -- (void)start { } - -- (void)stop { - __weak typeof(self) weakSelf = self; - [self sdl_runSyncOnQueue:^{ - __strong typeof(weakSelf) strongself = weakSelf; - [strongself->_subscribeButtonObservers removeAllObjects]; - }]; -} - -#pragma mark - Subscribe - -- (id)subscribeButton:(SDLButtonName)buttonName withUpdateHandler:(nullable SDLSubscribeButtonUpdateHandler)updateHandler { - SDLLogD(@"Subscribing to subscribe button with name: %@, with block", buttonName); - - NSObject *observer = [[NSObject alloc] init]; - SDLSubscribeButtonObserver *observerObject = [[SDLSubscribeButtonObserver alloc] initWithObserver:observer updateHandler:updateHandler]; - - if (self.subscribeButtonObservers[buttonName].count > 0) { - // The app has already subscribed to the button, simply add the observer to the list of observers for the button name. - [self sdl_addSubscribedObserver:observerObject forButtonName:buttonName]; - } else { - // The app has not yet subscribed to the button, send the `SubscribeButton` request for the button name. - [self sdl_subscribeToButtonNamed:buttonName withObserverObject:observerObject]; - } - - return observer; -} - -- (void)subscribeButton:(SDLButtonName)buttonName withObserver:(id)observer selector:(SEL)selector; { - SDLLogD(@"Subscribing to subscribe button with name: %@, observer object: %@, selector: %@", buttonName, observer, NSStringFromSelector(selector)); - - NSUInteger numberOfParametersInSelector = [NSStringFromSelector(selector) componentsSeparatedByString:@":"].count - 1; - if (numberOfParametersInSelector > 4) { - SDLLogE(@"Attempted to subscribe to a subscribe button using a selector that contains more than 4 parameters"); - return; - } - - if (observer == nil) { - SDLLogE(@"Attempted to subscribe to subscribe button with name %@ with a selector on a *nil* observer, which will always fail", buttonName); - return; - } - - SDLSubscribeButtonObserver *observerObject = [[SDLSubscribeButtonObserver alloc] initWithObserver:observer selector:selector]; - if (self.subscribeButtonObservers[buttonName].count > 0) { - [self sdl_addSubscribedObserver:observerObject forButtonName:buttonName]; - return; - } - - [self sdl_subscribeToButtonNamed:buttonName withObserverObject:observerObject]; -} - -/// Helper method for checking if the observer is currently subscribed to the button -/// @param observer The observer -/// @param buttonName The name of the button -/// @return True if the observer is currently subscribed to the button; false if not -- (BOOL)sdl_isSubscribedObserver:(id)observer forButtonName:(SDLButtonName)buttonName { - BOOL isSubscribedObserver = NO; - for (SDLSubscribeButtonObserver *subscribedObserver in self.subscribeButtonObservers[buttonName]) { - if (subscribedObserver.observer != observer ) { continue; } - isSubscribedObserver = YES; - break; - } - - return isSubscribedObserver; -} - -/// Helper method for adding an observer for the button -/// @param subscribedObserver The observer -/// @param buttonName The name of the button -- (void)sdl_addSubscribedObserver:(SDLSubscribeButtonObserver *)subscribedObserver forButtonName:(SDLButtonName)buttonName { - __weak typeof(self) weakSelf = self; - [self sdl_runSyncOnQueue:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - if (strongSelf.subscribeButtonObservers[buttonName] == nil) { - SDLLogV(@"Adding first subscriber for button: %@", buttonName); - strongSelf.subscribeButtonObservers[buttonName] = [NSMutableArray arrayWithObject:subscribedObserver]; - } else { - SDLLogV(@"Adding another subscriber for button: %@", buttonName); - [strongSelf.subscribeButtonObservers[buttonName] addObject:subscribedObserver]; - } - }]; -} - -#pragma mark Send Subscribe Request - -/// Helper method for sending a `SubscribeButton` request and notifying subscribers of button events. -/// @param buttonName The name of the subscribe button -/// @param observerObject The observer object -- (void)sdl_subscribeToButtonNamed:(SDLButtonName)buttonName withObserverObject:(SDLSubscribeButtonObserver *)observerObject { - SDLSubscribeButton *subscribeButton = [[SDLSubscribeButton alloc] initWithButtonName:buttonName handler:nil]; - __weak typeof(self) weakSelf = self; - - [self.connectionManager sendConnectionRequest:subscribeButton withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - // Check if the request was successful. If a subscription request got sent for a button that is already subscribed then the module will respond with `IGNORED` so just act as if subscription succeeded. - if (!response.success.boolValue && ![response.resultCode isEqualToEnum:SDLResultIgnored]) { - [strongSelf sdl_invokeObserver:observerObject withButtonName:buttonName buttonPress:nil buttonEvent:nil error:error]; - return; - } - - [strongSelf sdl_addSubscribedObserver:observerObject forButtonName:buttonName]; - }]; -} - -#pragma mark - Unsubscribe -#pragma mark Send Unsubscribe Request - -- (void)unsubscribeButton:(SDLButtonName)buttonName withObserver:(id)observer withCompletionHandler:(nullable SDLSubscribeButtonUpdateCompletionHandler)completionHandler { - if (self.subscribeButtonObservers[buttonName] == nil || ![self sdl_isSubscribedObserver:observer forButtonName:buttonName]) { - SDLLogE(@"Attempting to unsubscribe to the %@ subscribe button which is not currently subscribed", buttonName); - return completionHandler([NSError sdl_subscribeButtonManager_notSubscribed]); - } - - // If we have more than one observer, just remove this observer - if (self.subscribeButtonObservers[buttonName].count > 1) { - [self sdl_removeSubscribedObserver:observer forButtonName:buttonName]; - return completionHandler(nil); - } - - // If there's only one observer, unsubscribe from the button - SDLUnsubscribeButton *unsubscribeButton = [[SDLUnsubscribeButton alloc] initWithButtonName:buttonName]; - __weak typeof(self) weakSelf = self; - [self.connectionManager sendConnectionRequest:unsubscribeButton withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - if (!response.success.boolValue) { - SDLLogE(@"Attempt to unsubscribe from subscribe button %@ failed", buttonName); - return completionHandler(error); - } - - SDLLogD(@"Successfully unsubscribed from subscribe button named %@", buttonName); - [strongSelf sdl_removeSubscribedObserver:observer forButtonName:buttonName]; - return completionHandler(error); - }]; -} - -/// Helper method for removing an observer for the button -/// @param observer The observer -/// @param buttonName The name of the button -- (void)sdl_removeSubscribedObserver:(id)observer forButtonName:(SDLButtonName)buttonName { - __weak typeof(self) weakSelf = self; - [self sdl_runSyncOnQueue:^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - for (NSUInteger i = 0; i < strongSelf.subscribeButtonObservers[buttonName].count; i++) { - SDLSubscribeButtonObserver *subscribedObserver = (SDLSubscribeButtonObserver *)strongSelf.subscribeButtonObservers[buttonName][i]; - if (subscribedObserver.observer != observer) { continue; } - // Okay to mutate because we will break immediately afterward - [strongSelf.subscribeButtonObservers[buttonName] removeObjectAtIndex:i]; - break; - } - }]; -} - -#pragma mark - Notifications - -/// Button event notification from the module -/// @param notification Information about the button event -- (void)sdl_handleButtonEvent:(SDLRPCNotificationNotification *)notification { - SDLOnButtonEvent *buttonEvent = (SDLOnButtonEvent *)notification.notification; - if (buttonEvent == nil) { return; } - - SDLButtonName buttonName = buttonEvent.buttonName; - for (SDLSubscribeButtonObserver *subscribeButtonObserver in self.subscribeButtonObservers[buttonName]) { - [self sdl_invokeObserver:subscribeButtonObserver withButtonName:buttonName buttonPress:nil buttonEvent:buttonEvent error:nil]; - } -} - -/// Button press notification from the module -/// @param notification Information about the button press -- (void)sdl_handleButtonPress:(SDLRPCNotificationNotification *)notification { - SDLOnButtonPress *buttonPress = (SDLOnButtonPress *)notification.notification; - if (buttonPress == nil) { return; } - - SDLButtonName buttonName = buttonPress.buttonName; - for (SDLSubscribeButtonObserver *subscribeButtonObserver in self.subscribeButtonObservers[buttonName]) { - [self sdl_invokeObserver:subscribeButtonObserver withButtonName:buttonName buttonPress:buttonPress buttonEvent:nil error:nil]; - } -} - -/// Helper method for notifying subscribers of button events. -/// @param observer The object that will have `selector` called -/// @param buttonName The name of the subscribe button -/// @param buttonPress Indicates whether this is a long or short button press event -/// @param buttonEvent Indicates that the button has been depressed or released -/// @param error The error, if one occurred; nil if not -- (void)sdl_invokeObserver:(SDLSubscribeButtonObserver *)observer withButtonName:(SDLButtonName)buttonName buttonPress:(nullable SDLOnButtonPress *)buttonPress buttonEvent:(nullable SDLOnButtonEvent *)buttonEvent error:(nullable NSError *)error { - if (observer.updateBlock != nil) { - observer.updateBlock(buttonPress, buttonEvent, error); - } else { - if (![observer.observer respondsToSelector:observer.selector]) { - @throw [NSException sdl_invalidSubscribeButtonSelectorExceptionWithSelector:observer.selector]; - } - - NSUInteger numberOfParametersInSelector = [NSStringFromSelector(observer.selector) componentsSeparatedByString:@":"].count - 1; - - // If a selector has 0, 1, 2, or 3 parameters and only a button event has occured, do not notify the observer of the button event. - if (buttonEvent != nil && numberOfParametersInSelector <= 3) { - return; - } - - NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[(NSObject *)observer.observer methodSignatureForSelector:observer.selector]]; - [invocation setSelector:observer.selector]; - [invocation setTarget:observer.observer]; - - if (numberOfParametersInSelector >= 1) { - [invocation setArgument:&buttonName atIndex:2]; - } - if (numberOfParametersInSelector >= 2) { - [invocation setArgument:&error atIndex:3]; - } - if (numberOfParametersInSelector >= 3) { - [invocation setArgument:&buttonPress atIndex:4]; - } - if (numberOfParametersInSelector >= 4) { - [invocation setArgument:&buttonEvent atIndex:5]; - } - if (numberOfParametersInSelector >= 5) { - @throw [NSException sdl_invalidSubscribeButtonSelectorExceptionWithSelector:observer.selector]; - } - - [invocation invoke]; - } -} - -#pragma mark - Utilities - -/// Checks if we are already on the serial readWrite queue. If so, the block is added to the queue; if not, the block is dispatched to the readWrite queue. -/// @discussion Used to ensure atomic access to global properties. -/// @param block The block to be executed. -- (void)sdl_runSyncOnQueue:(void (^)(void))block { - if (dispatch_get_specific(SDLProcessingQueueName) != nil) { - block(); - } else { - dispatch_sync(self.readWriteQueue, block); - } -} - -#pragma mark - Getters - -- (NSMutableDictionary *> *)subscribeButtonObservers { - __block NSMutableDictionary *> *dict = nil; - [self sdl_runSyncOnQueue:^{ - dict = self->_subscribeButtonObservers; - }]; - - return dict; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.h deleted file mode 100644 index 49e783f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// SDLSubscribeButtonObserver.h -// SmartDeviceLink -// -// Created by Nicole on 5/21/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLNotificationConstants.h" - -NS_ASSUME_NONNULL_BEGIN - -/// A handler mirroring the one in SDLSubscribeButtonManager.h for `subscribeButton:withBlock:` -typedef void (^SDLSubscribeButtonUpdateHandler)(SDLOnButtonPress *_Nullable buttonPress, SDLOnButtonEvent *_Nullable buttonEvent, NSError *_Nullable error); - -/// An observer object for SDLSubscribeButtonManager -@interface SDLSubscribeButtonObserver : NSObject - -/// The object that will be used to call the selector if available, and to unsubscribe this observer -@property (weak, nonatomic) id observer; - -/// A selector called when the observer is triggered -@property (assign, nonatomic) SEL selector; - -/// A block called when the observer is triggered -@property (copy, nonatomic) SDLSubscribeButtonUpdateHandler updateBlock; - -/// Create an observer using an object and a selector on that object -/// @param observer The object to be called when the subscription triggers -/// @param selector The selector to be called when the subscription triggers -/// @return The observer -- (instancetype)initWithObserver:(id)observer selector:(SEL)selector; - -/// Create an observer using an object and a callback block -/// @param observer The object that can be used to unsubscribe the block -/// @param block The block that will be called when the subscription triggers -/// @return The observer -- (instancetype)initWithObserver:(id)observer updateHandler:(SDLSubscribeButtonUpdateHandler)block; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.m deleted file mode 100644 index 9c9b72f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonObserver.m +++ /dev/null @@ -1,45 +0,0 @@ -// -// SDLSubscribeButtonObserver.m -// SmartDeviceLink -// -// Created by Nicole on 5/21/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLSubscribeButtonObserver.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSubscribeButtonObserver - -- (instancetype)initWithObserver:(id)observer selector:(SEL)selector { - self = [super init]; - if (!self) { return nil; } - - _observer = observer; - _selector = selector; - - return self; -} - -- (instancetype)initWithObserver:(id)observer updateHandler:(SDLSubscribeButtonUpdateHandler)block { - self = [super init]; - if (!self) { return nil; } - - _observer = observer; - _updateBlock = block; - - return self; -} - -- (NSString *)description { - if (self.selector) { - return [NSString stringWithFormat:@"Observer: %@[%@] - %@", [_observer class], _observer, NSStringFromSelector(_selector)]; - } else { - return [NSString stringWithFormat:@"Block Observer: %@", _observer]; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonResponse.h deleted file mode 100644 index 40f2b4c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonResponse.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLSubscribeButtonResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SDLSubscribeButton - - Since SmartDeviceLink 1.0 - */ -@interface SDLSubscribeButtonResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonResponse.m deleted file mode 100644 index b9e8db4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeButtonResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLSubscribeButtonResponse.m -// - - -#import "SDLSubscribeButtonResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSubscribeButtonResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSubscribeButton]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.h deleted file mode 100644 index d0e6d46..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.h +++ /dev/null @@ -1,293 +0,0 @@ -// SDLSubscribeVehicleData.h -// - - -#import "SDLRPCRequest.h" - -/** - * Subscribes to specific published vehicle data items. The data will be only sent if it has changed. The application will be notified by the `onVehicleData` notification whenever new data is available. The update rate is dependent on sensors, vehicle architecture and vehicle type. - * - * @warning A vehicle may only support a subset of the vehicle data items. Be prepared for the situation where a signal is not available on a vehicle. - * - * Function Group: Location, VehicleInfo and DrivingChara - * HMILevel needs to be FULL, LIMITED or BACKGROUND - * Since SmartDeviceLink 2.0 - * See SDLUnsubscribeVehicleData, SDLGetVehicleData - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSubscribeVehicleData : SDLRPCRequest - -/** - * Convenience init for subscribing to all possible vehicle data items. - * - * @param accelerationPedalPosition Subscribe to accelerationPedalPosition - * @param airbagStatus Subscribe to airbagStatus - * @param beltStatus Subscribe to beltStatus - * @param bodyInformation Subscribe to bodyInformation - * @param clusterModeStatus Subscribe to clusterModeStatus - * @param deviceStatus Subscribe to deviceStatus - * @param driverBraking Subscribe to driverBraking - * @param eCallInfo Subscribe to eCallInfo - * @param emergencyEvent Subscribe to emergencyEvent - * @param engineTorque Subscribe to engineTorque - * @param externalTemperature Subscribe to externalTemperature - * @param fuelLevel Subscribe to fuelLevel - * @param fuelLevelState Subscribe to fuelLevelState - * @param gps Subscribe to gps - * @param headLampStatus Subscribe to headLampStatus - * @param instantFuelConsumption Subscribe to instantFuelConsumption - * @param myKey Subscribe to myKey - * @param odometer Subscribe to odometer - * @param prndl Subscribe to prndl - * @param rpm Subscribe to rpm - * @param speed Subscribe to speed - * @param steeringWheelAngle Subscribe to steeringWheelAngle - * @param tirePressure Subscribe to tirePressure - * @param wiperStatus Subscribe to wiperStatus - * @return A SDLSubscribeVehicleData object - */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); - -/** - * Convenience init for subscribing to all possible vehicle data items. - * - * @param accelerationPedalPosition Subscribe to accelerationPedalPosition - * @param airbagStatus Subscribe to airbagStatus - * @param beltStatus Subscribe to beltStatus - * @param bodyInformation Subscribe to bodyInformation - * @param clusterModeStatus Subscribe to clusterModeStatus - * @param deviceStatus Subscribe to deviceStatus - * @param driverBraking Subscribe to driverBraking - * @param eCallInfo Subscribe to eCallInfo - * @param electronicParkBrakeStatus Subscribe to electronicParkBrakeStatus - * @param emergencyEvent Subscribe to emergencyEvent - * @param engineOilLife Subscribe to engineOilLife - * @param engineTorque Subscribe to engineTorque - * @param externalTemperature Subscribe to externalTemperature - * @param fuelLevel Subscribe to fuelLevel - * @param fuelLevelState Subscribe to fuelLevelState - * @param fuelRange Subscribe to fuelRange - * @param gps Subscribe to gps - * @param headLampStatus Subscribe to headLampStatus - * @param instantFuelConsumption Subscribe to instantFuelConsumption - * @param myKey Subscribe to myKey - * @param odometer Subscribe to odometer - * @param prndl Subscribe to prndl - * @param rpm Subscribe to rpm - * @param speed Subscribe to speed - * @param steeringWheelAngle Subscribe to steeringWheelAngle - * @param tirePressure Subscribe to tirePressure - * @param turnSignal Subscribe to turnSignal - * @param wiperStatus Subscribe to wiperStatus - * @return A SDLSubscribeVehicleData object - */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); - -/** - * Convenience init for subscribing to all possible vehicle data items. - * - * @param accelerationPedalPosition Subscribe to accelerationPedalPosition - * @param airbagStatus Subscribe to airbagStatus - * @param beltStatus Subscribe to beltStatus - * @param bodyInformation Subscribe to bodyInformation - * @param cloudAppVehicleID Subscribe to cloudAppVehicleID - * @param clusterModeStatus Subscribe to clusterModeStatus - * @param deviceStatus Subscribe to deviceStatus - * @param driverBraking Subscribe to driverBraking - * @param eCallInfo Subscribe to eCallInfo - * @param electronicParkBrakeStatus Subscribe to electronicParkBrakeStatus - * @param emergencyEvent Subscribe to emergencyEvent - * @param engineOilLife Subscribe to engineOilLife - * @param engineTorque Subscribe to engineTorque - * @param externalTemperature Subscribe to externalTemperature - * @param fuelLevel Subscribe to fuelLevel - * @param fuelLevelState Subscribe to fuelLevelState - * @param fuelRange Subscribe to fuelRange - * @param gps Subscribe to gps - * @param headLampStatus Subscribe to headLampStatus - * @param instantFuelConsumption Subscribe to instantFuelConsumption - * @param myKey Subscribe to myKey - * @param odometer Subscribe to odometer - * @param prndl Subscribe to prndl - * @param rpm Subscribe to rpm - * @param speed Subscribe to speed - * @param steeringWheelAngle Subscribe to steeringWheelAngle - * @param tirePressure Subscribe to tirePressure - * @param turnSignal Subscribe to turnSignal - * @param wiperStatus Subscribe to wiperStatus - * @return A SDLSubscribeVehicleData object - */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus; - -/** - * A boolean value. If true, subscribes GPS data. - */ -@property (strong, nonatomic, nullable) NSNumber *gps; - -/** - * A boolean value. If true, subscribes Speed data. - */ -@property (strong, nonatomic, nullable) NSNumber *speed; - -/** - * A boolean value. If true, subscribes RPM data. - */ -@property (strong, nonatomic, nullable) NSNumber *rpm; - -/** - * A boolean value. If true, subscribes Fuel Level data. - */ -@property (strong, nonatomic, nullable) NSNumber *fuelLevel; - -/** - * A boolean value. If true, subscribes Fuel Level State data. - */ -@property (strong, nonatomic, nullable) NSNumber *fuelLevel_State; - -/** - * A boolean value. If true, subscribes Fuel Range data. - */ -@property (strong, nonatomic, nullable) NSNumber *fuelRange; - -/** - * A boolean value. If true, subscribes Instant Fuel Consumption data. - */ -@property (strong, nonatomic, nullable) NSNumber *instantFuelConsumption; - -/** - * A boolean value. If true, subscribes External Temperature data. - */ -@property (strong, nonatomic, nullable) NSNumber *externalTemperature; - -/** - * A boolean value. If true, subscribes PRNDL data. - */ -@property (strong, nonatomic, nullable) NSNumber *prndl; - -/** - * A boolean value. If true, subscribes Tire Pressure status data. - */ -@property (strong, nonatomic, nullable) NSNumber *tirePressure; - -/** - * A boolean value. If true, subscribes Odometer data. - */ -@property (strong, nonatomic, nullable) NSNumber *odometer; - -/** - * A boolean value. If true, subscribes Belt Status data. - */ -@property (strong, nonatomic, nullable) NSNumber *beltStatus; - -/** - * A boolean value. If true, subscribes Body Information data. - */ -@property (strong, nonatomic, nullable) NSNumber *bodyInformation; - -/** - * A boolean value. If true, subscribes Device Status data. - */ -@property (strong, nonatomic, nullable) NSNumber *deviceStatus; - -/** - * A boolean value. If true, subscribes Driver Braking data. - */ -@property (strong, nonatomic, nullable) NSNumber *driverBraking; - -/** - * A boolean value. If true, subscribes Wiper Status data. - */ -@property (strong, nonatomic, nullable) NSNumber *wiperStatus; - -/** - * A boolean value. If true, subscribes Head Lamp Status data. - */ -@property (strong, nonatomic, nullable) NSNumber *headLampStatus; - -/** - * A boolean value. If true, subscribes to Engine Oil Life data. - */ -@property (strong, nonatomic, nullable) NSNumber *engineOilLife; - -/** - * A boolean value. If true, subscribes Engine Torque data. - */ -@property (strong, nonatomic, nullable) NSNumber *engineTorque; - -/** - * A boolean value. If true, subscribes Acc Pedal Position data. - */ -@property (strong, nonatomic, nullable) NSNumber *accPedalPosition; - -/** - * A boolean value. If true, subscribes Steering Wheel Angle data. - */ -@property (strong, nonatomic, nullable) NSNumber *steeringWheelAngle; - -/** - * A boolean value. If true, subscribes eCall Info data. - */ -@property (strong, nonatomic, nullable) NSNumber *eCallInfo; - -/** - * A boolean value. If true, subscribes Airbag Status data. - */ -@property (strong, nonatomic, nullable) NSNumber *airbagStatus; - -/** - * A boolean value. If true, subscribes Emergency Event data. - */ -@property (strong, nonatomic, nullable) NSNumber *emergencyEvent; - -/** - * A boolean value. If true, subscribes Cluster Mode Status data. - */ -@property (strong, nonatomic, nullable) NSNumber *clusterModeStatus; - -/** - * A boolean value. If true, subscribes myKey data. - */ -@property (strong, nonatomic, nullable) NSNumber *myKey; - -/** - * A boolean value. If true, subscribes to the electronic parking brake status. - */ -@property (strong, nonatomic, nullable) NSNumber *electronicParkBrakeStatus; - -/** - * A boolean value. If true, subscribes to the turn signal status. - */ -@property (strong, nonatomic, nullable) NSNumber *turnSignal; - -/** - * A boolean value. If true, subscribes to the cloud app vehicle ID. - */ -@property (strong, nonatomic, nullable) NSNumber *cloudAppVehicleID; - -/** - Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @param vehicleDataState A boolean value. If true, requests the OEM custom vehicle data item. - - Added in SmartDeviceLink 6.0 - */ -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); - -/** - Gets the OEM custom vehicle data value for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @return The state of an OEM custom vehicle data item for the given vehicle data name. - - Added in SmartDeviceLink 6.0 - */ -- (nullable NSNumber *)getOEMCustomVehicleData:(NSString *)vehicleDataName; - - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.m deleted file mode 100644 index a5bd220..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleData.m +++ /dev/null @@ -1,313 +0,0 @@ -// SDLSubscribeVehicleData.m -// - - -#import "SDLSubscribeVehicleData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSubscribeVehicleData - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSubscribeVehicleData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure wiperStatus:(BOOL)wiperStatus { - return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:NO emergencyEvent:emergencyEvent engineOilLife:NO engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:NO gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:NO wiperStatus:wiperStatus]; -} - -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus { - return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation cloudAppVehicleID:NO clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:electronicParkBrakeStatus emergencyEvent:emergencyEvent engineOilLife:engineOilLife engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:fuelRange gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:turnSignal wiperStatus:wiperStatus]; -} - -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus { - self = [self init]; - if (!self) { - return nil; - } - - self.accPedalPosition = @(accelerationPedalPosition); - self.airbagStatus = @(airbagStatus); - self.beltStatus = @(beltStatus); - self.bodyInformation = @(bodyInformation); - self.cloudAppVehicleID = @(cloudAppVehicleID); - self.clusterModeStatus = @(clusterModeStatus); - self.deviceStatus = @(deviceStatus); - self.driverBraking = @(driverBraking); - self.eCallInfo = @(eCallInfo); - self.electronicParkBrakeStatus = @(electronicParkBrakeStatus); - self.emergencyEvent = @(emergencyEvent); - self.engineOilLife = @(engineOilLife); - self.engineTorque = @(engineTorque); - self.externalTemperature = @(externalTemperature); - self.fuelLevel = @(fuelLevel); - self.fuelLevel_State = @(fuelLevelState); - self.fuelRange = @(fuelRange); - self.myKey = @(myKey); - self.odometer = @(odometer); - self.gps = @(gps); - self.headLampStatus = @(headLampStatus); - self.instantFuelConsumption = @(instantFuelConsumption); - self.prndl = @(prndl); - self.rpm = @(rpm); - self.speed = @(speed); - self.steeringWheelAngle = @(steeringWheelAngle); - self.tirePressure = @(tirePressure); - self.turnSignal = @(turnSignal); - self.wiperStatus = @(wiperStatus); - - return self; -} - -- (void)setGps:(nullable NSNumber *)gps { - [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; -} - -- (nullable NSNumber *)gps { - return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:NSNumber.class error:nil]; -} - -- (void)setSpeed:(nullable NSNumber *)speed { - [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; -} - -- (nullable NSNumber *)speed { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; -} - -- (void)setRpm:(nullable NSNumber *)rpm { - [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; -} - -- (nullable NSNumber *)rpm { - return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelLevel:(nullable NSNumber *)fuelLevel { - [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; -} - -- (nullable NSNumber *)fuelLevel { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelLevel_State:(nullable NSNumber *)fuelLevel_State { - [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; -} - -- (nullable NSNumber *)fuelLevel_State { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelRange:(nullable NSNumber *)fuelRange { - [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; -} - -- (nullable NSNumber *)fuelRange { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:NSNumber.class error:nil]; -} - -- (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { - [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; -} - -- (nullable NSNumber *)instantFuelConsumption { - return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; -} - -- (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { - [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; -} - -- (nullable NSNumber *)externalTemperature { - return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; -} - -- (void)setPrndl:(nullable NSNumber *)prndl { - [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; -} - -- (nullable NSNumber *)prndl { - return [self.parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:NSNumber.class error:nil]; -} - -- (void)setTirePressure:(nullable NSNumber *)tirePressure { - [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; -} - -- (nullable NSNumber *)tirePressure { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:NSNumber.class error:nil]; -} - -- (void)setOdometer:(nullable NSNumber *)odometer { - [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; -} - -- (nullable NSNumber *)odometer { - return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; -} - -- (void)setBeltStatus:(nullable NSNumber *)beltStatus { - [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; -} - -- (nullable NSNumber *)beltStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setBodyInformation:(nullable NSNumber *)bodyInformation { - [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; -} - -- (nullable NSNumber *)bodyInformation { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:NSNumber.class error:nil]; -} - -- (void)setDeviceStatus:(nullable NSNumber *)deviceStatus { - [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; -} - -- (nullable NSNumber *)deviceStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setDriverBraking:(nullable NSNumber *)driverBraking { - [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; -} - -- (nullable NSNumber *)driverBraking { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:NSNumber.class error:nil]; -} - -- (void)setWiperStatus:(nullable NSNumber *)wiperStatus { - [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; -} - -- (nullable NSNumber *)wiperStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setHeadLampStatus:(nullable NSNumber *)headLampStatus { - [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; -} - -- (nullable NSNumber *)headLampStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setEngineOilLife:(nullable NSNumber *)engineOilLife { - [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; -} - -- (nullable NSNumber *)engineOilLife { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; -} - -- (void)setEngineTorque:(nullable NSNumber *)engineTorque { - [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; -} - -- (nullable NSNumber *)engineTorque { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; -} - -- (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { - [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; -} - -- (nullable NSNumber *)accPedalPosition { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; -} - -- (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { - [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; -} - -- (nullable NSNumber *)steeringWheelAngle { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; -} - -- (void)setECallInfo:(nullable NSNumber *)eCallInfo { - [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; -} - -- (nullable NSNumber *)eCallInfo { - return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:NSNumber.class error:nil]; -} - -- (void)setAirbagStatus:(nullable NSNumber *)airbagStatus { - [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; -} - -- (nullable NSNumber *)airbagStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setEmergencyEvent:(nullable NSNumber *)emergencyEvent { - [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; -} - -- (nullable NSNumber *)emergencyEvent { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:NSNumber.class error:nil]; -} - -- (void)setClusterModeStatus:(nullable NSNumber *)clusterModeStatus { - [self.parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; -} - -- (nullable NSNumber *)clusterModeStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setMyKey:(nullable NSNumber *)myKey { - [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; -} - -- (nullable NSNumber *)myKey { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:NSNumber.class error:nil]; -} - -- (void)setElectronicParkBrakeStatus:(nullable NSNumber *)electronicParkBrakeStatus { - [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; -} - -- (nullable NSNumber *)electronicParkBrakeStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setTurnSignal:(nullable NSNumber *)turnSignal { - [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; -} - -- (nullable NSNumber *)turnSignal { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:NSNumber.class error:nil]; -} - -- (void)setCloudAppVehicleID:(nullable NSNumber *)cloudAppVehicleID { - [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; -} - -- (nullable NSNumber *)cloudAppVehicleID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSNumber.class error:nil]; -} - -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState { - [self.parameters sdl_setObject:@(vehicleDataState) forName:vehicleDataName]; -} - -- (nullable NSNumber *)getOEMCustomVehicleData:(NSString *)vehicleDataName { - return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h deleted file mode 100644 index 3f43864..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h +++ /dev/null @@ -1,244 +0,0 @@ -// SDLSubscribeVehicleDataResponse.h -// - -#import "SDLRPCResponse.h" - -@class SDLVehicleDataResult; - - -/** - Response to SDLSubscribeVehicleData - - Since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSubscribeVehicleDataResponse : SDLRPCResponse - -/** - The result of requesting to subscribe to the GPSData. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *gps; - -/** - The result of requesting to subscribe to the vehicle speed in kilometers per hour. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *speed; - -/** - The result of requesting to subscribe to the number of revolutions per minute of the engine. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *rpm; - -/** - The result of requesting to subscribe to the fuel level in the tank (percentage) - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *fuelLevel; - -/** - The result of requesting to subscribe to the fuel level state. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *fuelLevel_State; - -/** - The result of requesting to subscribe to the fuel range. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *fuelRange; - -/** - The result of requesting to subscribe to the instantaneous fuel consumption in microlitres. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *instantFuelConsumption; - -/** - The result of requesting to subscribe to the external temperature in degrees celsius. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *externalTemperature; - -/** - The result of requesting to subscribe to the PRNDL status. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *prndl; - -/** - The result of requesting to subscribe to the tireStatus. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *tirePressure; - -/** - The result of requesting to subscribe to the odometer in km. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *odometer; - -/** - The result of requesting to subscribe to the status of the seat belts. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *beltStatus; - -/** - The result of requesting to subscribe to the body information including power modes. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *bodyInformation; - -/** - The result of requesting to subscribe to the device status including signal and battery strength. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *deviceStatus; - -/** - The result of requesting to subscribe to the status of the brake pedal. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *driverBraking; - -/** - The result of requesting to subscribe to the status of the wipers. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *wiperStatus; - -/** - The result of requesting to subscribe to the status of the head lamps. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *headLampStatus; - -/** - The result of requesting to subscribe to the estimated percentage of remaining oil life of the engine. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *engineOilLife; - -/** - The result of requesting to subscribe to the torque value for engine (in Nm) on non-diesel variants. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *engineTorque; - -/** - The result of requesting to subscribe to the accelerator pedal position (percentage depressed) - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *accPedalPosition; - -/** - The result of requesting to subscribe to the current angle of the steering wheel (in deg) - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *steeringWheelAngle; - -/** - The result of requesting to subscribe to the emergency call info - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *eCallInfo; - -/** - The result of requesting to subscribe to the airbag status - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *airbagStatus; - -/** - The result of requesting to subscribe to the emergency event - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *emergencyEvent; - -/** - The result of requesting to subscribe to the cluster modes - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *clusterModes; - -/** - The result of requesting to subscribe to the myKey status - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *myKey; - -/** - The result of requesting to subscribe to the electronic parking brake status - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *electronicParkBrakeStatus; - -/** - The result of requesting to subscribe to the turn signal - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *turnSignal; - -/** - The result of requesting to subscribe to the cloud app vehicle ID - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *cloudAppVehicleID; - -/** - Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @param vehicleDataState SDLVehicleDataResult object containing custom data type and result code information. - - Added SmartDeviceLink 6.0 - */ -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(SDLVehicleDataResult *)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); - -/** - Gets the OEM custom vehicle data state for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @return SDLVehicleDataResult An object containing custom data type and result code information. - - Added SmartDeviceLink 6.0 - */ -- (nullable SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m deleted file mode 100644 index 7ab6b4e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m +++ /dev/null @@ -1,267 +0,0 @@ -// SDLSubscribeVehicleDataResponse.m -// - - -#import "SDLSubscribeVehicleDataResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLVehicleDataResult.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSubscribeVehicleDataResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSubscribeVehicleData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setGps:(nullable SDLVehicleDataResult *)gps { - [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; -} - -- (nullable SDLVehicleDataResult *)gps { - return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setSpeed:(nullable SDLVehicleDataResult *)speed { - [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; -} - -- (nullable SDLVehicleDataResult *)speed { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setRpm:(nullable SDLVehicleDataResult *)rpm { - [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; -} - -- (nullable SDLVehicleDataResult *)rpm { - return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setFuelLevel:(nullable SDLVehicleDataResult *)fuelLevel { - [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; -} - -- (nullable SDLVehicleDataResult *)fuelLevel { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setFuelLevel_State:(nullable SDLVehicleDataResult *)fuelLevel_State { - [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; -} - -- (nullable SDLVehicleDataResult *)fuelLevel_State { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setFuelRange:(nullable SDLVehicleDataResult *)fuelRange { - [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; -} - -- (nullable SDLVehicleDataResult *)fuelRange { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setInstantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption { - [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; -} - -- (nullable SDLVehicleDataResult *)instantFuelConsumption { - return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setExternalTemperature:(nullable SDLVehicleDataResult *)externalTemperature { - [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; -} - -- (nullable SDLVehicleDataResult *)externalTemperature { - return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setPrndl:(nullable SDLVehicleDataResult *)prndl { - [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; -} - -- (nullable SDLVehicleDataResult *)prndl { - return [self.parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setTirePressure:(nullable SDLVehicleDataResult *)tirePressure { - [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; -} - -- (nullable SDLVehicleDataResult *)tirePressure { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setOdometer:(nullable SDLVehicleDataResult *)odometer { - [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; -} - -- (nullable SDLVehicleDataResult *)odometer { - return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setBeltStatus:(nullable SDLVehicleDataResult *)beltStatus { - [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; -} - -- (nullable SDLVehicleDataResult *)beltStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setBodyInformation:(nullable SDLVehicleDataResult *)bodyInformation { - [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; -} - -- (nullable SDLVehicleDataResult *)bodyInformation { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setDeviceStatus:(nullable SDLVehicleDataResult *)deviceStatus { - [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; -} - -- (nullable SDLVehicleDataResult *)deviceStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setDriverBraking:(nullable SDLVehicleDataResult *)driverBraking { - [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; -} - -- (nullable SDLVehicleDataResult *)driverBraking { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setWiperStatus:(nullable SDLVehicleDataResult *)wiperStatus { - [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; -} - -- (nullable SDLVehicleDataResult *)wiperStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setHeadLampStatus:(nullable SDLVehicleDataResult *)headLampStatus { - [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; -} - -- (nullable SDLVehicleDataResult *)headLampStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setEngineOilLife:(nullable SDLVehicleDataResult *)engineOilLife { - [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; -} - -- (nullable SDLVehicleDataResult *)engineOilLife { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setEngineTorque:(nullable SDLVehicleDataResult *)engineTorque { - [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; -} - -- (nullable SDLVehicleDataResult *)engineTorque { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setAccPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition { - [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; -} - -- (nullable SDLVehicleDataResult *)accPedalPosition { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setSteeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle { - [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; -} - -- (nullable SDLVehicleDataResult *)steeringWheelAngle { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setECallInfo:(nullable SDLVehicleDataResult *)eCallInfo { - [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; -} - -- (nullable SDLVehicleDataResult *)eCallInfo { - return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setAirbagStatus:(nullable SDLVehicleDataResult *)airbagStatus { - [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; -} - -- (nullable SDLVehicleDataResult *)airbagStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setEmergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent { - [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; -} - -- (nullable SDLVehicleDataResult *)emergencyEvent { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setClusterModes:(nullable SDLVehicleDataResult *)clusterModes { - [self.parameters sdl_setObject:clusterModes forName:SDLRPCParameterNameClusterModes]; -} - -- (nullable SDLVehicleDataResult *)clusterModes { - return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModes ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setMyKey:(nullable SDLVehicleDataResult *)myKey { - [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; -} - -- (nullable SDLVehicleDataResult *)myKey { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setElectronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus { - [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; -} - -- (nullable SDLVehicleDataResult *)electronicParkBrakeStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setTurnSignal:(nullable SDLVehicleDataResult *)turnSignal { - [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; -} - -- (nullable SDLVehicleDataResult *)turnSignal { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setCloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID { - [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; -} - -- (nullable SDLVehicleDataResult *)cloudAppVehicleID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(SDLVehicleDataResult *)vehicleDataState { - [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName]; -} - -- (nullable SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName { - return [self.parameters sdl_objectForName:vehicleDataName ofClass:SDLVehicleDataResult.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPoints.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPoints.h deleted file mode 100644 index d7fd129..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPoints.h +++ /dev/null @@ -1,20 +0,0 @@ -// SDLSubscribeWaypoints.h -// - -#import "SDLRPCRequest.h" - -/** - * A SDLSubscribeWaypoints can be sent to subscribe - * for any changes in waypoints/destinations - * - * @see SDLUnsubscribeWaypoints - * - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSubscribeWayPoints : SDLRPCRequest - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPoints.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPoints.m deleted file mode 100644 index cd2e481..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPoints.m +++ /dev/null @@ -1,25 +0,0 @@ -// SDLSubscribeWaypoints.m -// - -#import "SDLSubscribeWayPoints.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSubscribeWayPoints - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSubscribeWayPoints]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPointsResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPointsResponse.h deleted file mode 100644 index 7bea341..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPointsResponse.h +++ /dev/null @@ -1,15 +0,0 @@ -// SDLSubscribeWaypointsResponse.h -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SubscribeWayPoints - */ -@interface SDLSubscribeWayPointsResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPointsResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPointsResponse.m deleted file mode 100644 index 867fbc3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSubscribeWayPointsResponse.m +++ /dev/null @@ -1,26 +0,0 @@ - -// SDLSubscribeWaypointsResponse.m -// - -#import "SDLSubscribeWayPointsResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSubscribeWayPointsResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSubscribeWayPoints]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.h deleted file mode 100644 index 018e051..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.h +++ /dev/null @@ -1,26 +0,0 @@ -// SDLSupportedSeat.h -// - -#import "SDLEnum.h" - -/** - * List possible seats that is a remote controllable seat. - * @warning This should not be used to supported seats, this is a deprecated parameter. - */ -typedef SDLEnum SDLSupportedSeat SDL_SWIFT_ENUM __deprecated; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -/** -* Save current seat positions and settings to seat memory. -*/ -extern SDLSupportedSeat const SDLSupportedSeatDriver; -#pragma clang diagnostic pop - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -/** -* Restore / apply the seat memory settings to the current seat. -*/ -extern SDLSupportedSeat const SDLSupportedSeatFrontPassenger; -#pragma clang diagnostic pop diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.m deleted file mode 100644 index 1260ced..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSupportedSeat.m +++ /dev/null @@ -1,10 +0,0 @@ -// SDLSupportedSeat.m -// - -#import "SDLSupportedSeat.h" - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -SDLSupportedSeat const SDLSupportedSeatDriver = @"DRIVER"; -SDLSupportedSeat const SDLSupportedSeatFrontPassenger = @"FRONT_PASSENGER"; -#pragma clang diagnostic pop diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.h deleted file mode 100644 index 7ef41b2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.h +++ /dev/null @@ -1,47 +0,0 @@ -// SDLSyncMsgVersion.h -// - - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Specifies the version number of the SDL V4 interface. This is used by both the application and SDL to declare what interface version each is using. - * - * @since SDL 1.0 - */ -__deprecated_msg("Use SDLMsgVersion instead") -@interface SDLSyncMsgVersion : SDLRPCStruct - -/// Convenience init to describe the SDL version -/// -/// @param majorVersion The major version indicates versions that is not-compatible to previous versions -/// @param minorVersion The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality) -/// @param patchVersion Allows backward-compatible fixes to the API without increasing the minor version of the interface -/// @return An SDLSyncMsgVersion object -- (instancetype)initWithMajorVersion:(UInt8)majorVersion minorVersion:(UInt8)minorVersion patchVersion:(UInt8)patchVersion; - -/** - * The major version indicates versions that is not-compatible to previous versions - * - * Required, Integer, 1 - 10 - */ -@property (strong, nonatomic) NSNumber *majorVersion; -/** - * The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality) - * - * Required, Integer, 0 - 1000 - */ -@property (strong, nonatomic) NSNumber *minorVersion; - -/** - * Allows backward-compatible fixes to the API without increasing the minor version of the interface - * - * Optional, Integer, 0 - 1000 - */ -@property (strong, nonatomic, nullable) NSNumber *patchVersion; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.m deleted file mode 100644 index b922672..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncMsgVersion.m +++ /dev/null @@ -1,61 +0,0 @@ -// SDLSyncMsgVersion.m -// - - -#import "SDLSyncMsgVersion.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" -@implementation SDLSyncMsgVersion -#pragma clang diagnostic pop - -- (instancetype)initWithMajorVersion:(UInt8)majorVersion minorVersion:(UInt8)minorVersion patchVersion:(UInt8)patchVersion { - self = [self init]; - if (!self) { - return nil; - } - - self.majorVersion = @(majorVersion); - self.minorVersion = @(minorVersion); - self.patchVersion = @(patchVersion); - - return self; -} - -- (void)setMajorVersion:(NSNumber *)majorVersion { - [self.store sdl_setObject:majorVersion forName:SDLRPCParameterNameMajorVersion]; -} - -- (NSNumber *)majorVersion { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMajorVersion ofClass:NSNumber.class error:&error]; -} - -- (void)setMinorVersion:(NSNumber *)minorVersion { - [self.store sdl_setObject:minorVersion forName:SDLRPCParameterNameMinorVersion]; -} - -- (NSNumber *)minorVersion { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMinorVersion ofClass:NSNumber.class error:&error]; -} - -- (void)setPatchVersion:(nullable NSNumber *)patchVersion { - [self.store sdl_setObject:patchVersion forName:SDLRPCParameterNamePatchVersion]; -} - -- (nullable NSNumber *)patchVersion { - return [self.store sdl_objectForName:SDLRPCParameterNamePatchVersion ofClass:NSNumber.class error:nil]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"%@.%@.%@", self.majorVersion, self.minorVersion, self.patchVersion]; -} -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.h deleted file mode 100644 index a72ad2c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLSyncPData.h -// - - -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Allows binary data in the form of SyncP packets to be sent to the SYNC module. Binary data is in binary part of hybrid msg. - * - * *** DEPRECATED *** - */ -__deprecated -@interface SDLSyncPData : SDLRPCRequest - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.m deleted file mode 100644 index 46bd044..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPData.m +++ /dev/null @@ -1,29 +0,0 @@ -// SDLSyncPData.m -// - - -#import "SDLSyncPData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" -@implementation SDLSyncPData -#pragma clang diagnostic pop - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSyncPData]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.h deleted file mode 100644 index e994529..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLSyncPDataResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SyncPData - - DEPRECATED - */ -__deprecated -@interface SDLSyncPDataResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.m deleted file mode 100644 index 315af6b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSyncPDataResponse.m +++ /dev/null @@ -1,29 +0,0 @@ -// SDLSyncPDataResponse.m -// - - -#import "SDLSyncPDataResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" -@implementation SDLSyncPDataResponse -#pragma clang diagnostic pop - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSyncPData]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemAction.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemAction.h deleted file mode 100644 index 9c302cf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemAction.h +++ /dev/null @@ -1,25 +0,0 @@ -// SDLSystemAction.h -// - - -#import "SDLEnum.h" - -/** - * Enumeration that describes system actions that can be triggered. Used in SoftButton. - */ -typedef SDLEnum SDLSystemAction SDL_SWIFT_ENUM; - -/** - A default soft button action - */ -extern SDLSystemAction const SDLSystemActionDefaultAction; - -/** - An action causing your app to steal HMI focus - */ -extern SDLSystemAction const SDLSystemActionStealFocus; - -/** - An action causing you to keep context - */ -extern SDLSystemAction const SDLSystemActionKeepContext; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemAction.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemAction.m deleted file mode 100644 index 0dd9e55..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemAction.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLSystemAction.m -// - - -#import "SDLSystemAction.h" - -SDLSystemAction const SDLSystemActionDefaultAction = @"DEFAULT_ACTION"; -SDLSystemAction const SDLSystemActionStealFocus = @"STEAL_FOCUS"; -SDLSystemAction const SDLSystemActionKeepContext = @"KEEP_CONTEXT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.h deleted file mode 100755 index f0ac7b2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.h +++ /dev/null @@ -1,143 +0,0 @@ -// -// SDLSystemCapability.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/10/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLRPCStruct.h" -#import "SDLSystemCapabilityType.h" - -@class SDLAppServicesCapabilities; -@class SDLPhoneCapability; -@class SDLNavigationCapability; -@class SDLVideoStreamingCapability; -@class SDLRemoteControlCapabilities; -@class SDLSeatLocationCapability; -@class SDLDisplayCapability; - -NS_ASSUME_NONNULL_BEGIN - -/** - * The systemCapabilityType indicates which type of data should be changed and identifies which data object exists in this struct. For example, if the SystemCapability Type is NAVIGATION then a "navigationCapability" should exist. - * - * First implemented in SDL Core v4.4 - */ -@interface SDLSystemCapability : SDLRPCStruct - -/** - * Convenience init for an App Service Capability - * - * @param capability Describes the capabilities of app services including what service types are supported and the current state of services - * @return A SDLSystemCapability object - */ -- (instancetype)initWithAppServicesCapabilities:(SDLAppServicesCapabilities *)capability; - -/** - * Convenience init for a Navigation Capability - * - * @param capability Describes the extended capabilities of the onboard navigation system - * @return A SDLSystemCapability object - */ -- (instancetype)initWithNavigationCapability:(SDLNavigationCapability *)capability; - -/** - * Convenience init for a Phone Capability - * - * @param capability Describes the extended capabilities of the module's phone feature - * @return A SDLSystemCapability object - */ -- (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability; - -/** - * Convenience init for a Video Streaming Capability - * - * @param capability Describes the capabilities of the module's video streaming feature - * @return A SDLSystemCapability object - */ -- (instancetype)initWithVideoStreamingCapability:(SDLVideoStreamingCapability *)capability; - -/** - * Convenience init for a Remote Control Capability - * - * @param capability Describes the extended capabilities of the module's remote control feature - * @return A SDLSystemCapability object - */ -- (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *)capability; - -/** - Convenience init for DisplayCapability list - - @param capabilities Contains capabilities related to a physical screen and any associated windows - @return A SDLSystemCapability object - */ -- (instancetype)initWithDisplayCapabilities:(NSArray *)capabilities; - -/** - * Convenience init for a Remote Control Capability - * - * @param capability Describes information about the locations of each seat - * @return A SDLSystemCapability object - */ -- (instancetype)initWithSeatLocationCapability:(SDLSeatLocationCapability *)capability; - -/** - * Used as a descriptor of what data to expect in this struct. The corresponding param to this enum should be included and the only other parameter included. - */ -@property (strong, nonatomic) SDLSystemCapabilityType systemCapabilityType; - -/** - * Describes the capabilities of app services including what service types are supported and the current state of services. - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLAppServicesCapabilities *appServicesCapabilities; - -/** - * Describes the extended capabilities of the onboard navigation system - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLNavigationCapability *navigationCapability; - -/** - * Describes the extended capabilities of the module's phone feature - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLPhoneCapability *phoneCapability; - -/** - * Describes the capabilities of the module's video streaming feature - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLVideoStreamingCapability *videoStreamingCapability; - -/** - * Describes the extended capabilities of the module's remote control feature - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLRemoteControlCapabilities *remoteControlCapability; - -/** - * Describes information about the locations of each seat - * - * Optional - */ -@property (nullable, strong, nonatomic) SDLSeatLocationCapability *seatLocationCapability; - -/** - Contain the display related information and all windows related to that display - - Optional - - @since SDL 6.0 - */ -@property (nullable, strong, nonatomic) NSArray *displayCapabilities; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.m deleted file mode 100755 index 3936e46..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapability.m +++ /dev/null @@ -1,177 +0,0 @@ -// -// SDLSystemCapability.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/10/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLSystemCapability.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLAppServicesCapabilities.h" -#import "SDLRPCParameterNames.h" -#import "SDLNavigationCapability.h" -#import "SDLPhoneCapability.h" -#import "SDLSystemCapabilityType.h" -#import "SDLVideoStreamingCapability.h" -#import "SDLRemoteControlCapabilities.h" -#import "SDLSeatLocationCapability.h" -#import "SDLDisplayCapability.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSystemCapability - -- (instancetype)initWithAppServicesCapabilities:(SDLAppServicesCapabilities *)capability { - self = [self init]; - if (!self) { - return nil; - } - - self.systemCapabilityType = SDLSystemCapabilityTypeAppServices; - self.appServicesCapabilities = capability; - - return self; -} - -- (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability { - self = [self init]; - if (!self) { - return nil; - } - - self.systemCapabilityType = SDLSystemCapabilityTypePhoneCall; - self.phoneCapability = capability; - - return self; -} - -- (instancetype)initWithNavigationCapability:(SDLNavigationCapability *)capability { - self = [self init]; - if (!self) { - return nil; - } - - self.systemCapabilityType = SDLSystemCapabilityTypeNavigation; - self.navigationCapability = capability; - - return self; -} - -- (instancetype)initWithVideoStreamingCapability:(SDLVideoStreamingCapability *)capability { - self = [self init]; - if (!self) { - return nil; - } - - self.systemCapabilityType = SDLSystemCapabilityTypeVideoStreaming; - self.videoStreamingCapability = capability; - - return self; -} - -- (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *)capability { - self = [self init]; - if (!self) { - return nil; - } - - self.systemCapabilityType = SDLSystemCapabilityTypeRemoteControl; - self.remoteControlCapability = capability; - - return self; -} - -- (instancetype)initWithDisplayCapabilities:(NSArray *)capabilities { - self = [self init]; - if (!self) { - return nil; - } - - self.systemCapabilityType = SDLSystemCapabilityTypeDisplays; - self.displayCapabilities = [capabilities copy]; - - return self; -} - -- (instancetype)initWithSeatLocationCapability:(SDLSeatLocationCapability *)capability { - self = [self init]; - if (!self) { - return nil; - } - - self.systemCapabilityType = SDLSystemCapabilityTypeSeatLocation; - self.seatLocationCapability = capability; - - return self; -} - -- (void)setSystemCapabilityType:(SDLSystemCapabilityType)type { - [self.store sdl_setObject:type forName:SDLRPCParameterNameSystemCapabilityType]; -} - -- (SDLSystemCapabilityType)systemCapabilityType { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameSystemCapabilityType error:&error]; -} - -- (void)setAppServicesCapabilities:(nullable SDLAppServicesCapabilities *)appServicesCapabilities { - [self.store sdl_setObject:appServicesCapabilities forName:SDLRPCParameterNameAppServicesCapabilities]; -} - -- (nullable SDLAppServicesCapabilities *)appServicesCapabilities { - return [self.store sdl_objectForName:SDLRPCParameterNameAppServicesCapabilities ofClass:SDLAppServicesCapabilities.class error:nil]; -} - -- (void)setNavigationCapability:(nullable SDLNavigationCapability *)navigationCapability { - [self.store sdl_setObject:navigationCapability forName:SDLRPCParameterNameNavigationCapability]; -} - -- (nullable SDLNavigationCapability *)navigationCapability { - return [self.store sdl_objectForName:SDLRPCParameterNameNavigationCapability ofClass:SDLNavigationCapability.class error:nil]; -} - -- (void)setPhoneCapability:(nullable SDLPhoneCapability *)phoneCapability { - [self.store sdl_setObject:phoneCapability forName:SDLRPCParameterNamePhoneCapability]; -} - -- (nullable SDLPhoneCapability *)phoneCapability { - return [self.store sdl_objectForName:SDLRPCParameterNamePhoneCapability ofClass:SDLPhoneCapability.class error:nil]; -} - -- (void)setVideoStreamingCapability:(nullable SDLVideoStreamingCapability *)videoStreamingCapability { - [self.store sdl_setObject:videoStreamingCapability forName:SDLRPCParameterNameVideoStreamingCapability]; -} - -- (nullable SDLVideoStreamingCapability *)videoStreamingCapability { - return [self.store sdl_objectForName:SDLRPCParameterNameVideoStreamingCapability ofClass:SDLVideoStreamingCapability.class error:nil]; -} - -- (void)setRemoteControlCapability:(nullable SDLRemoteControlCapabilities *)remoteControlCapability { - [self.store sdl_setObject:remoteControlCapability forName:SDLRPCParameterNameRemoteControlCapability]; -} - -- (nullable SDLRemoteControlCapabilities *)remoteControlCapability { - return [self.store sdl_objectForName:SDLRPCParameterNameRemoteControlCapability ofClass:SDLRemoteControlCapabilities.class error:nil]; -} - -- (void)setSeatLocationCapability:(nullable SDLSeatLocationCapability *)seatLocationCapability { - [self.store sdl_setObject:seatLocationCapability forName:SDLRPCParameterNameSeatLocationCapability]; -} - -- (nullable SDLSeatLocationCapability *)seatLocationCapability { - return [self.store sdl_objectForName:SDLRPCParameterNameSeatLocationCapability ofClass:SDLSeatLocationCapability.class error:nil]; -} - -- (void)setDisplayCapabilities:(nullable NSArray *)displayCapabilities { - [self.store sdl_setObject:displayCapabilities forName:SDLRPCParameterNameDisplayCapabilities]; -} - -- (nullable NSArray *)displayCapabilities { - return [self.store sdl_objectsForName:SDLRPCParameterNameDisplayCapabilities ofClass:SDLDisplayCapability.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.h deleted file mode 100644 index ca1c357..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.h +++ /dev/null @@ -1,334 +0,0 @@ -// -// SDLSystemCapabilityManager.h -// SmartDeviceLink -// -// Created by Nicole on 3/26/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLHMIZoneCapabilities.h" -#import "SDLPrerecordedSpeech.h" -#import "SDLSpeechCapabilities.h" -#import "SDLSystemCapabilityType.h" -#import "SDLVrCapabilities.h" - -@class SDLAppServicesCapabilities; -@class SDLAudioPassThruCapabilities; -@class SDLButtonCapabilities; -@class SDLDisplayCapability; -@class SDLDisplayCapabilities; -@class SDLHMICapabilities; -@class SDLNavigationCapability; -@class SDLPhoneCapability; -@class SDLPresetBankCapabilities; -@class SDLRemoteControlCapabilities; -@class SDLSeatLocationCapability; -@class SDLSoftButtonCapabilities; -@class SDLSystemCapability; -@class SDLSystemCapabilityManager; -@class SDLVideoStreamingCapability; -@class SDLWindowCapability; - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - -/** - * A completion handler called after a request for the capability type is returned from the remote system. - * - * @param error The error returned if the request for a capability type failed. The error is nil if the request was successful. - * @param systemCapabilityManager The system capability manager - */ -typedef void (^SDLUpdateCapabilityHandler)(NSError * _Nullable error, SDLSystemCapabilityManager *systemCapabilityManager); - -/** - An observer block for whenever a subscription is called. - - @param capability The capability that was updated. - */ -typedef void (^SDLCapabilityUpdateHandler)(SDLSystemCapability *capability); - -/** - An observer block for whenever a subscription or value is retrieved. - - @param capability The capability that was updated. - @param subscribed Whether or not the capability was subscribed or if the capability will only be pulled once. - @param error An error that occurred. - */ -typedef void (^SDLCapabilityUpdateWithErrorHandler)(SDLSystemCapability * _Nullable capability, BOOL subscribed, NSError * _Nullable error); - -/** - A manager that handles updating and subscribing to SDL capabilities. - */ -@interface SDLSystemCapabilityManager : NSObject - -/** - * Provides window capabilities of all displays connected with SDL. By default, one display is connected and supported which includes window capability information of the default main window of the display. May be nil if the system has not provided display and window capability information yet. - * - * @see SDLDisplayCapability - * - * Optional, @since SDL 6.0 - */ -@property (nullable, strong, nonatomic, readonly) NSArray *displays; - -/** - * @see SDLDisplayCapabilities - * - * Optional - */ -@property (nullable, strong, nonatomic, readonly) SDLDisplayCapabilities *displayCapabilities __deprecated_msg("Use displays, windowCapabilityWithID: or defaultMainWindowCapability instead to access capabilities of a display/window."); - -/** - * @see SDLHMICapabilities - * - * Optional - */ -@property (nullable, strong, nonatomic, readonly) SDLHMICapabilities *hmiCapabilities; - -/** - * If returned, the platform supports on-screen SoftButtons - * - * @see SDLSoftButtonCapabilities - * - * Optional, Array of length 1 - 100, of SDLSoftButtonCapabilities - */ -@property (nullable, copy, nonatomic, readonly) NSArray *softButtonCapabilities __deprecated_msg("Use displays, windowCapabilityWithID: or defaultMainWindowCapability instead to access soft button capabilities of a window."); - -/** - * @see SDLButtonCapabilities - * - * Optional, Array of length 1 - 100, of SDLButtonCapabilities - */ -@property (nullable, copy, nonatomic, readonly) NSArray *buttonCapabilities __deprecated_msg("Use displays, windowCapabilityWithID: or defaultMainWindowCapability instead to access button capabilities of a window."); - -/** - * If returned, the platform supports custom on-screen Presets - * - * @see SDLPresetBankCapabilities - * - * Optional - */ -@property (nullable, strong, nonatomic, readonly) SDLPresetBankCapabilities *presetBankCapabilities __deprecated_msg("Use displays, windowCapabilityWithID: or defaultMainWindowCapability instead to access preset bank capabilities of a window."); - -/** - * @see SDLHMIZoneCapabilities - * - * Optional, Array of length 1 - 100, of SDLHMIZoneCapabilities - */ -@property (nullable, copy, nonatomic, readonly) NSArray *hmiZoneCapabilities; - -/** - * @see SDLSpeechCapabilities - * - * Optional, Array of length 1 - 100, of SDLSpeechCapabilities - */ -@property (nullable, copy, nonatomic, readonly) NSArray *speechCapabilities; - -/** - * @see SDLPrerecordedSpeech - * - * Optional, Array of length 1 - 100, of SDLPrerecordedSpeech - */ -@property (nullable, copy, nonatomic, readonly) NSArray *prerecordedSpeechCapabilities; - -/** - * @see SDLVRCapabilities - * - * True if the head unit supports voice recognition; false if not. - */ -@property (nonatomic, assign, readonly) BOOL vrCapability; - -/** - * @see SDLAudioPassThruCapabilities - * - * Optional, Array of length 1 - 100, of SDLAudioPassThruCapabilities - */ -@property (nullable, copy, nonatomic, readonly) NSArray *audioPassThruCapabilities; - -/** - * @see SDLAudioPassThruCapabilities - * - * Optional, Array of length 1 - 100, of SDLAudioPassThruCapabilities - */ -@property (nullable, strong, nonatomic, readonly) SDLAudioPassThruCapabilities *pcmStreamCapability; - -/** - * If returned, the platform supports app services - * - * @see SDLAppServicesCapabilities - * - * Optional - */ -@property (nullable, strong, nonatomic, readonly) SDLAppServicesCapabilities *appServicesCapabilities; - -/** - If returned, the platform supports navigation - - @see SDLNavigationCapability - - Optional - */ -@property (nullable, strong, nonatomic, readonly) SDLNavigationCapability *navigationCapability; - -/** - If returned, the platform supports making phone calls - - @see SDLPhoneCapability - - Optional - */ -@property (nullable, strong, nonatomic, readonly) SDLPhoneCapability *phoneCapability; - -/** - If returned, the platform supports video streaming - - @see SDLVideoStreamingCapability - - Optional - */ -@property (nullable, strong, nonatomic, readonly) SDLVideoStreamingCapability *videoStreamingCapability; - -/** - If returned, the platform supports remote control capabilities - - @see SDLRemoteControlCapabilities - - Optional - */ -@property (nullable, strong, nonatomic, readonly) SDLRemoteControlCapabilities *remoteControlCapability; - -/** - If returned, the platform supports remote control capabilities for seats - - @see SDLSeatLocationCapability - - Optional - */ -@property (nullable, strong, nonatomic, readonly) SDLSeatLocationCapability *seatLocationCapability; - - -/** - * Returns the window capability object of the default main window which is always pre-created by the connected system. This is a convenience method for easily accessing the capabilities of the default main window. - * - * @returns The window capability object representing the default main window capabilities or nil if no window capabilities exist. - */ -@property (nullable, strong, nonatomic, readonly) SDLWindowCapability *defaultMainWindowCapability; - -/** - YES if subscriptions are available on the connected module and you will automatically be notified if the value changes on the module. If NO, calls to `subscribe` methods will subscribe to updates, but the module will not automatically notify you. You will need to call `updateWithCapabilityType:completionHandler:` to force an update if you need one (though this should be rare). This does not apply to the `DISPLAYS` capability type which you can always subscribe to. - */ -@property (assign, nonatomic, readonly) BOOL supportsSubscriptions; - -/** - Init is unavailable. Dependencies must be injected using initWithConnectionManager: - - @return nil - */ -- (instancetype)init NS_UNAVAILABLE; - -/** - Creates a new system capability manager with a specified connection manager - - @param manager A connection manager to use to forward on RPCs - - @return An instance of SDLSystemCapabilityManager - */ -- (instancetype)initWithConnectionManager:(id)manager NS_DESIGNATED_INITIALIZER; - -/** - Starts the manager. This method is used internally. - */ -- (void)start; - -/** - Stops the manager. This method is used internally. - */ -- (void)stop; - -/** - * Returns the window capability of one of your app's windows with the specified window ID that is on the primary display (i.e. the head unit itself). This is a convenience method to easily access capabilities of windows such as your apps' widget windows. - * - * To get the capabilities of the main window on the main display (i.e. your app's primary app screen on the head unit itself). - * - * @param windowID The ID of the window from which to get capabilities - * @returns The window window capabilities of the window with the specified windowID, or nil if the window is not known or no window capabilities exist. - */ -- (nullable SDLWindowCapability *)windowCapabilityWithWindowID:(NSUInteger)windowID; - -/// Returns whether or not the capability type is supported on the module. You can use this to check if subscribing to the capability will work. If this returns NO, then the feature is not supported by the head unit. If YES, the feature is supported by the head unit. You can subscribe to the capability type to get more information about the capability's support and features on the connected module. -/// @param type The SystemCapabilityType that will be checked. -/// @return Whether or not `type` is supported by the connected head unit. -- (BOOL)isCapabilitySupported:(SDLSystemCapabilityType)type NS_SWIFT_NAME(isCapabilitySupported(type:)); - -/** - * This method has been superseded by the `subscribeToCapabilityType:` methods. You should use one of those methods instead unless you only want a value once (you don't want to keep a long-lasting observer) and it must be current (most capabilities do not need to be updated). If you have a separate subscription observer and are connected to a head unit that does not support subscriptions, when this method returns, it will also call all subscription callbacks that you've set up with the new value if there is one. Therefore, you can use this method to force an update to all subscriptions of that particular type on head units that don't support subscriptions (`supportsSubscriptions == NO`). - * - * @param type The type of capability to retrieve - * @param handler The handler to be called when the retrieval is complete - */ -- (void)updateCapabilityType:(SDLSystemCapabilityType)type completionHandler:(SDLUpdateCapabilityHandler)handler; - -/// Subscribe to a particular capability type using a block callback. -/// -/// On v5.1.0+ systems (where `supportsSubscriptions == YES`): -/// This method will be called immediately with the current value if a subscription already exists and will be called every time the value is updated. -/// -/// On sub-v5.1.0 systems (where `supportsSubscriptions == NO`): -/// The method will be called immediately with the current value and will _not_ be automatically called every time the value is updated, unless the `type` is `DISPLAYS` which is supported on every version. If `updateCapabilityType:completionHandler` is called and a new value is retrieved, this value will be updated then. If this is the first subscription of this `SDLSystemCapabilityType`, then the value will be retrieved and returned. -/// -/// @param type The type of capability to subscribe to -/// @param block The block to be called when the capability is updated -/// @return An object that can be used to unsubscribe the block using unsubscribeFromCapabilityType:withObserver: by passing it in the observer callback, or nil if the manager can't attempt the subscription for some reason (such as the app being in HMI_NONE and the type is not DISPLAYS). -- (nullable id)subscribeToCapabilityType:(SDLSystemCapabilityType)type withBlock:(SDLCapabilityUpdateHandler)block __deprecated_msg("use subscribeToCapabilityType:withUpdateHandler: instead"); - -/// Subscribe to a particular capability type using a handler callback. -/// -/// On v5.1.0+ systems (where `supportsSubscriptions == YES`): -/// This method will be called immediately with the current value if a subscription already exists and will be called every time the value is updated. -/// -/// Note that when the cached value is returned, the `subscribed` flag on the handler will be false until the subscription completes successfully and a new value is retrieved. -/// -/// On sub-v5.1.0 systems (where `supportsSubscriptions == NO`): -/// The method will be called immediately with the current value and will _not_ be automatically called every time the value is updated, unless the `type` is `DISPLAYS` which is supported on every version. If `updateCapabilityType:completionHandler` is called and a new value is retrieved, this value will be updated then. If this is the first subscription of this `SDLSystemCapabilityType`, then the value will be retrieved and returned. -/// -/// @param type The type of capability to subscribe to -/// @param handler The block to be called when the capability is updated with an error if one occurs -/// @return An object that can be used to unsubscribe the block using unsubscribeFromCapabilityType:withObserver: by passing it in the observer callback, or nil if the manager can't attempt the subscription for some reason (such as the app being in HMI_NONE and the type is not DISPLAYS). -- (nullable id)subscribeToCapabilityType:(SDLSystemCapabilityType)type withUpdateHandler:(SDLCapabilityUpdateWithErrorHandler)handler NS_SWIFT_NAME(subscribe(capabilityType:updateHandler:)); - - -/// Subscribe to a particular capability type with a selector callback. -/// -/// The selector supports the following parameters: -/// -/// 1. No parameters e.g. `- (void)phoneCapabilityUpdated;` -/// -/// 2. One `SDLSystemCapability *` parameter, e.g. `- (void)phoneCapabilityUpdated:(SDLSystemCapability *)capability` -/// -/// 3. Two parameters, one `SDLSystemCapability *` parameter, and one `NSError` parameter, e.g. `- (void)phoneCapabilityUpdated:(SDLSystemCapability *)capability error:(NSError *)error` -/// -/// 4. Three parameters, one `SDLSystemCapability *` parameter, one `NSError` parameter, and one `BOOL` parameter e.g. `- (void)phoneCapabilityUpdated:(SDLSystemCapability *)capability error:(NSError *)error subscribed:(BOOL)subscribed` -/// -/// On v5.1.0+ systems (where `supportsSubscriptions == YES`): -/// This method will be called immediately with the current value if a subscription already exists and will be called every time the value is updated. -/// -/// On sub-v5.1.0 systems (where `supportsSubscriptions == NO`): -/// The method will be called immediately with the current value and will _not_ be automatically called every time the value is updated, unless the `type` is `DISPLAYS` which is supported on every version. If `updateCapabilityType:completionHandler` is called and a new value is retrieved, this value will be updated then. If this is the first subscription of this `SDLSystemCapabilityType`, then the value will be retrieved and returned. -/// -/// @param type The type of the system capability to subscribe to -/// @param observer The object that will have `selector` called whenever the capability is updated -/// @param selector The selector on `observer` that will be called whenever the capability is updated -/// @return YES if the manager is attempting the subscription, or NO if the manager can't attempt the subscription for some reason (such as the app being in HMI_NONE and the type is not DISPLAYS), or the selector doesn't contain the correct number of parameters. -- (BOOL)subscribeToCapabilityType:(SDLSystemCapabilityType)type withObserver:(id)observer selector:(SEL)selector; - -/// Unsubscribe from a particular capability type. If it was subscribed with a block / handler, the return value should be passed to the `observer` to unsubscribe the block. If it was subscribed with a selector, the `observer` object (on which the selector exists and is called) should be passed to unsubscribe the object selector. -/// -/// @param type The type of the system capability to unsubscribe from -/// @param observer The object that will be unsubscribed. If a block was subscribed, the return value should be passed. If a selector was subscribed, the observer object should be passed. -- (void)unsubscribeFromCapabilityType:(SDLSystemCapabilityType)type withObserver:(id)observer; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.m deleted file mode 100644 index e5817b9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityManager.m +++ /dev/null @@ -1,838 +0,0 @@ -// -// SDLSystemCapabilityManager.m -// SmartDeviceLink -// -// Created by Nicole on 3/26/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLSystemCapabilityManager.h" - -#import "SDLAppServiceCapability.h" -#import "SDLAppServiceRecord.h" -#import "SDLAppServicesCapabilities.h" -#import "SDLConnectionManagerType.h" -#import "SDLDisplayCapabilities.h" -#import "SDLDisplayCapability.h" -#import "SDLError.h" -#import "SDLGenericResponse.h" -#import "SDLGetSystemCapability.h" -#import "SDLGetSystemCapabilityResponse.h" -#import "SDLGlobals.h" -#import "SDLHMICapabilities.h" -#import "SDLImageField+ScreenManagerExtensions.h" -#import "SDLLogMacros.h" -#import "SDLNavigationCapability.h" -#import "SDLNotificationConstants.h" -#import "SDLOnHMIStatus.h" -#import "SDLOnSystemCapabilityUpdated.h" -#import "SDLPhoneCapability.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLPredefinedWindows.h" -#import "SDLRemoteControlCapabilities.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCResponseNotification.h" -#import "SDLSeatLocationCapability.h" -#import "SDLSetDisplayLayoutResponse.h" -#import "SDLSystemCapability.h" -#import "SDLSystemCapabilityObserver.h" -#import "SDLTextField+ScreenManagerExtensions.h" -#import "SDLTextFieldName.h" -#import "SDLVersion.h" -#import "SDLVideoStreamingCapability.h" -#import "SDLWindowCapability.h" -#import "SDLWindowTypeCapabilities.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSystemCapabilityManager () - -typedef NSString * SDLServiceID; - -@property (weak, nonatomic) id connectionManager; - -@property (nullable, strong, nonatomic, readwrite) NSArray *displays; -@property (nullable, strong, nonatomic, readwrite) SDLDisplayCapabilities *displayCapabilities; -@property (nullable, strong, nonatomic, readwrite) SDLHMICapabilities *hmiCapabilities; -@property (nullable, copy, nonatomic, readwrite) NSArray *softButtonCapabilities; -@property (nullable, copy, nonatomic, readwrite) NSArray *buttonCapabilities; -@property (nullable, strong, nonatomic, readwrite) SDLPresetBankCapabilities *presetBankCapabilities; -@property (nullable, copy, nonatomic, readwrite) NSArray *hmiZoneCapabilities; -@property (nullable, copy, nonatomic, readwrite) NSArray *speechCapabilities; -@property (nullable, copy, nonatomic, readwrite) NSArray *prerecordedSpeechCapabilities; -@property (nonatomic, assign, readwrite) BOOL vrCapability; -@property (nullable, copy, nonatomic, readwrite) NSArray *audioPassThruCapabilities; -@property (nullable, strong, nonatomic, readwrite) SDLAudioPassThruCapabilities *pcmStreamCapability; -@property (nullable, strong, nonatomic, readwrite) SDLNavigationCapability *navigationCapability; -@property (nullable, strong, nonatomic, readwrite) SDLPhoneCapability *phoneCapability; -@property (nullable, strong, nonatomic, readwrite) SDLVideoStreamingCapability *videoStreamingCapability; -@property (nullable, strong, nonatomic, readwrite) SDLRemoteControlCapabilities *remoteControlCapability; -@property (nullable, strong, nonatomic, readwrite) SDLSeatLocationCapability *seatLocationCapability; - -@property (nullable, strong, nonatomic) NSMutableDictionary *appServicesCapabilitiesDictionary; - -@property (assign, nonatomic, readwrite) BOOL supportsSubscriptions; -@property (strong, nonatomic) NSMutableDictionary *> *capabilityObservers; -@property (strong, nonatomic) NSMutableDictionary *> *subscriptionStatus; - -@property (assign, nonatomic) BOOL shouldConvertDeprecatedDisplayCapabilities; -@property (strong, nonatomic) SDLHMILevel currentHMILevel; - -@property (copy, nonatomic) dispatch_queue_t readWriteQueue; - -@end - -@implementation SDLSystemCapabilityManager - -#pragma mark - Lifecycle - -- (instancetype)initWithConnectionManager:(id)manager { - self = [super init]; - if (!self) { - return nil; - } - - if (@available(iOS 10.0, *)) { - _readWriteQueue = dispatch_queue_create_with_target("com.sdl.systemCapabilityManager.readWriteQueue", DISPATCH_QUEUE_SERIAL, [SDLGlobals sharedGlobals].sdlProcessingQueue); - } else { - _readWriteQueue = [SDLGlobals sharedGlobals].sdlProcessingQueue; - } - - _connectionManager = manager; - _shouldConvertDeprecatedDisplayCapabilities = YES; - _appServicesCapabilitiesDictionary = [NSMutableDictionary dictionary]; - - _capabilityObservers = [NSMutableDictionary dictionary]; - _subscriptionStatus = [NSMutableDictionary dictionary]; - - _currentHMILevel = SDLHMILevelNone; - - [self sdl_registerForNotifications]; - - return self; -} - -- (void)start { } - -/** - * Resets the capabilities when a transport session is closed. - */ -- (void)stop { - SDLLogD(@"System Capability manager stopped"); - [self sdl_runSyncOnQueue:^{ - self.displayCapabilities = nil; - self.displays = nil; - self.hmiCapabilities = nil; - self.softButtonCapabilities = nil; - self.buttonCapabilities = nil; - self.presetBankCapabilities = nil; - self.hmiZoneCapabilities = nil; - self.speechCapabilities = nil; - self.prerecordedSpeechCapabilities = nil; - self.vrCapability = NO; - self.audioPassThruCapabilities = nil; - self.pcmStreamCapability = nil; - self.navigationCapability = nil; - self.phoneCapability = nil; - self.videoStreamingCapability = nil; - self.remoteControlCapability = nil; - self.seatLocationCapability = nil; - - self.supportsSubscriptions = NO; - - self.appServicesCapabilitiesDictionary = [NSMutableDictionary dictionary]; - [self.capabilityObservers removeAllObjects]; - [self.subscriptionStatus removeAllObjects]; - - self.currentHMILevel = SDLHMILevelNone; - self.shouldConvertDeprecatedDisplayCapabilities = YES; - }]; -} - -#pragma mark - Getters - -- (BOOL)supportsSubscriptions { - return [[SDLGlobals sharedGlobals].rpcVersion isGreaterThanOrEqualToVersion:[SDLVersion versionWithString:@"5.1.0"]]; -} - -- (nullable SDLAppServicesCapabilities *)appServicesCapabilities { - if (self.appServicesCapabilitiesDictionary.count == 0) { return nil; } - - return [[SDLAppServicesCapabilities alloc] initWithAppServices:self.appServicesCapabilitiesDictionary.allValues]; -} - -#pragma mark - Window And Display Capabilities - -- (nullable SDLWindowCapability *)windowCapabilityWithWindowID:(NSUInteger)windowID { - NSArray *capabilities = self.displays; - if (capabilities == nil || capabilities.count == 0) { - return nil; - } - - SDLDisplayCapability *mainDisplay = capabilities.firstObject; - for (SDLWindowCapability *windowCapability in mainDisplay.windowCapabilities) { - NSUInteger currentWindowID = windowCapability.windowID != nil ? windowCapability.windowID.unsignedIntegerValue : SDLPredefinedWindowsDefaultWindow; - if (currentWindowID == windowID) { - return windowCapability; - } - } - return nil; -} - -- (nullable SDLWindowCapability *)defaultMainWindowCapability { - return [self windowCapabilityWithWindowID:SDLPredefinedWindowsDefaultWindow]; -} - -#pragma mark Convert Deprecated to New - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated" -/// Convert the capabilities from a `RegisterAppInterfaceResponse` into a new-style `DisplayCapability` for the main display. -/// @param rpc The `RegisterAppInterfaceResponse` RPC -- (NSArray *)sdl_createDisplayCapabilityListFromRegisterResponse:(SDLRegisterAppInterfaceResponse *)rpc { - return [self sdl_createDisplayCapabilityListFromDeprecatedDisplayCapabilities:rpc.displayCapabilities buttons:rpc.buttonCapabilities softButtons:rpc.softButtonCapabilities]; -} - -- (NSArray *)sdl_createDisplayCapabilityListFromSetDisplayLayoutResponse:(SDLSetDisplayLayoutResponse *)rpc { - return [self sdl_createDisplayCapabilityListFromDeprecatedDisplayCapabilities:rpc.displayCapabilities buttons:rpc.buttonCapabilities softButtons:rpc.softButtonCapabilities]; -} -#pragma clang diagnostic pop - -/// Creates a "new-style" display capability from the "old-style" `SDLDisplayCapabilities` object and other "old-style" objects that were returned in `RegisterAppInterfaceResponse` and `SetDisplayLayoutResponse` -/// @param display The old-style `SDLDisplayCapabilities` object to convert -/// @param buttons The old-style `SDLButtonCapabilities` object to convert -/// @param softButtons The old-style `SDLSoftButtonCapabilities` to convert -- (NSArray *)sdl_createDisplayCapabilityListFromDeprecatedDisplayCapabilities:(SDLDisplayCapabilities *)display buttons:(NSArray *)buttons softButtons:(NSArray *)softButtons { - SDLLogV(@"Creating display capability from deprecated display capabilities"); - // Based on deprecated Display capabilities we don't know if widgets are supported. The default MAIN window is the only window we know is supported, so it's the only one we will expose. - SDLWindowTypeCapabilities *windowTypeCapabilities = [[SDLWindowTypeCapabilities alloc] initWithType:SDLWindowTypeMain maximumNumberOfWindows:1]; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated" - NSString *displayName = display.displayName ?: display.displayType; -#pragma clang diagnostic pop - SDLDisplayCapability *displayCapability = [[SDLDisplayCapability alloc] initWithDisplayName:displayName]; - displayCapability.windowTypeSupported = @[windowTypeCapabilities]; - - // Create a window capability object for the default MAIN window - SDLWindowCapability *defaultWindowCapability = [[SDLWindowCapability alloc] init]; - defaultWindowCapability.windowID = @(SDLPredefinedWindowsDefaultWindow); - defaultWindowCapability.buttonCapabilities = [buttons copy]; - defaultWindowCapability.softButtonCapabilities = [softButtons copy]; - - // return if display capabilities don't exist. - if (display == nil) { - defaultWindowCapability.textFields = [SDLTextField allTextFields]; - defaultWindowCapability.imageFields = [SDLImageField allImageFields]; - displayCapability.windowCapabilities = @[defaultWindowCapability]; - return @[displayCapability]; - } - - // Copy all available display capability properties - defaultWindowCapability.templatesAvailable = [display.templatesAvailable copy]; - defaultWindowCapability.numCustomPresetsAvailable = [display.numCustomPresetsAvailable copy]; - defaultWindowCapability.textFields = [display.textFields copy]; - defaultWindowCapability.imageFields = [display.imageFields copy]; - - /* - The description from the mobile API to "graphicSupported: - > The display's persistent screen supports referencing a static or dynamic image. - For backward compatibility (AppLink 2.0) static image type is always presented - */ - if (display.graphicSupported.boolValue) { - defaultWindowCapability.imageTypeSupported = @[SDLImageTypeStatic, SDLImageTypeDynamic]; - } else { - defaultWindowCapability.imageTypeSupported = @[SDLImageTypeStatic]; - } - - displayCapability.windowCapabilities = @[defaultWindowCapability]; - return @[displayCapability]; -} - -#pragma mark Convert New to Deprecated - -/// Update the internal deprecated display capability methods with new values based on the current value of the default main window capability and the primary display -- (void)sdl_updateDeprecatedDisplayCapabilities { - SDLLogV(@"Updating deprecated capabilities from default main window capabilities"); - SDLWindowCapability *defaultMainWindowCapabilities = self.defaultMainWindowCapability; - if (self.displays.count == 0) { - return; - } - - // Create the deprecated capabilities for backward compatibility if developers try to access them - SDLDisplayCapabilities *convertedCapabilities = [[SDLDisplayCapabilities alloc] init]; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated" - convertedCapabilities.displayType = SDLDisplayTypeGeneric; // deprecated but it is mandatory -#pragma clang diagnostic pop - convertedCapabilities.displayName = self.displays.firstObject.displayName; - convertedCapabilities.textFields = [defaultMainWindowCapabilities.textFields copy]; - convertedCapabilities.imageFields = [defaultMainWindowCapabilities.imageFields copy]; - convertedCapabilities.templatesAvailable = [defaultMainWindowCapabilities.templatesAvailable copy]; - convertedCapabilities.numCustomPresetsAvailable = [defaultMainWindowCapabilities.numCustomPresetsAvailable copy]; - convertedCapabilities.mediaClockFormats = @[]; // mandatory field but allows empty array - convertedCapabilities.graphicSupported = @([defaultMainWindowCapabilities.imageTypeSupported containsObject:SDLImageTypeDynamic]); - - self.displayCapabilities = convertedCapabilities; - self.buttonCapabilities = defaultMainWindowCapabilities.buttonCapabilities; - self.softButtonCapabilities = defaultMainWindowCapabilities.softButtonCapabilities; -} - -#pragma mark - System Capability Updates - -- (BOOL)isCapabilitySupported:(SDLSystemCapabilityType)type { - if ([self sdl_cachedCapabilityForType:type] != nil) { - return YES; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypePhoneCall]) { - return self.hmiCapabilities.phoneCall.boolValue; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeNavigation]) { - return self.hmiCapabilities.navigation.boolValue; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { - return self.hmiCapabilities.displays.boolValue; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeRemoteControl]) { - return self.hmiCapabilities.remoteControl.boolValue; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeSeatLocation]) { - return self.hmiCapabilities.seatLocation.boolValue; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeAppServices]) { - //This is a corner case that the param was not available in 5.1.0, but the app services feature was available. We have to say it's available because we don't know. - if ([[SDLGlobals sharedGlobals].rpcVersion isEqualToVersion:[SDLVersion versionWithString:@"5.1.0"]]) { - return YES; - } - - return self.hmiCapabilities.appServices.boolValue; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeVideoStreaming]) { - if ([[SDLGlobals sharedGlobals].rpcVersion isGreaterThanOrEqualToVersion:[SDLVersion versionWithString:@"3.0.0"]] && [[SDLGlobals sharedGlobals].rpcVersion isLessThanOrEqualToVersion:[SDLVersion versionWithString:@"4.4.0"]]) { - // This was before the system capability feature was added so check if graphics are supported instead using the deprecated display capabilities - return self.displayCapabilities.graphicSupported.boolValue; - } - - return self.hmiCapabilities.videoStreaming.boolValue; - } else { - return NO; - } - - - return NO; -} - -- (nullable SDLSystemCapability *)sdl_cachedCapabilityForType:(SDLSystemCapabilityType)type { - if ([type isEqualToEnum:SDLSystemCapabilityTypePhoneCall] && self.phoneCapability != nil) { - return [[SDLSystemCapability alloc] initWithPhoneCapability:self.phoneCapability]; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeNavigation] && self.navigationCapability != nil) { - return [[SDLSystemCapability alloc] initWithNavigationCapability:self.navigationCapability]; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeAppServices] && self.appServicesCapabilities != nil) { - return [[SDLSystemCapability alloc] initWithAppServicesCapabilities:self.appServicesCapabilities]; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeDisplays] && self.displays != nil) { - return [[SDLSystemCapability alloc] initWithDisplayCapabilities:self.displays]; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeSeatLocation] && self.seatLocationCapability != nil) { - return [[SDLSystemCapability alloc] initWithSeatLocationCapability:self.seatLocationCapability]; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeRemoteControl] && self.remoteControlCapability != nil) { - return [[SDLSystemCapability alloc] initWithRemoteControlCapability:self.remoteControlCapability]; - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeVideoStreaming] && self.videoStreamingCapability != nil) { - return [[SDLSystemCapability alloc] initWithVideoStreamingCapability:self.videoStreamingCapability]; - } else { - return nil; - } -} - -- (void)updateCapabilityType:(SDLSystemCapabilityType)type completionHandler:(SDLUpdateCapabilityHandler)handler { - SDLLogV(@"Updating capability type: %@", type); - if ([self.currentHMILevel isEqualToEnum:SDLHMILevelNone] && ![type isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { - SDLLogE(@"Attempted to update type: %@ in HMI level NONE, which is not allowed. Please wait until you are in HMI BACKGROUND, LIMITED, or FULL before attempting to update any SystemCapabilityType DISPLAYS.", type); - return handler([NSError sdl_systemCapabilityManager_cannotUpdateInHMINONE], self); - } else if ([type isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { - SDLLogE(@"Attempted to update type DISPLAYS, which is not allowed. You are always subscribed to displays, please either pull the cached data directly or subscribe for updates to DISPLAYS."); - return handler([NSError sdl_systemCapabilityManager_cannotUpdateTypeDISPLAYS], self); - } - - // If we support subscriptions and we're already subscribed - if (self.supportsSubscriptions && [self.subscriptionStatus[type] isEqualToNumber:@YES]) { - // Just return the cached data because we get `onSystemCapability` callbacks - handler(nil, self); - } else { - // Go and get the actual data - __weak typeof(self) weakself = self; - [self sdl_sendGetSystemCapabilityWithType:type subscribe:nil completionHandler:^(SDLSystemCapability * _Nonnull capability, BOOL subscribed, NSError * _Nonnull error) { - handler(error, weakself); - }]; - } -} - -# pragma mark Subscribing - -/// Sends a GetSystemCapability and sends back the response -/// @param type The type to get -/// @param subscribe Whether to change the subscription status. YES to subscribe, NO to unsubscribe, nil to keep whatever the current state is -/// @param handler The handler to be returned -- (void)sdl_sendGetSystemCapabilityWithType:(SDLSystemCapabilityType)type subscribe:(nullable NSNumber *)subscribe completionHandler:(nullable SDLCapabilityUpdateWithErrorHandler)handler { - SDLLogV(@"Sending GetSystemCapability with type: %@, subscribe: %@", type, subscribe); - SDLGetSystemCapability *getSystemCapability = [[SDLGetSystemCapability alloc] initWithType:type]; - getSystemCapability.subscribe = subscribe; - - __weak typeof(self) weakself = self; - [self.connectionManager sendConnectionRequest:getSystemCapability withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (![response isKindOfClass:[SDLGetSystemCapabilityResponse class]]) { - SDLLogE(@"GetSystemCapability failed, type: %@, did not return a GetSystemCapability response", type); - if (handler == nil) { return; } - handler(nil, NO, [NSError sdl_systemCapabilityManager_moduleDoesNotSupportSystemCapabilities]); - return; - } - - if (response.success.boolValue == false) { - SDLLogE(@"GetSystemCapability failed, type: %@, error: %@", type, error); - if (handler == nil) { return; } - handler(nil, NO, error); - return; - } - - SDLGetSystemCapabilityResponse *getSystemCapabilityResponse = (SDLGetSystemCapabilityResponse *)response; - SDLLogD(@"GetSystemCapability response succeeded, type: %@, response: %@", type, getSystemCapabilityResponse); - - if (![weakself.subscriptionStatus[type] isEqualToNumber:subscribe] && weakself.supportsSubscriptions) { - [self sdl_runSyncOnQueue:^{ - weakself.subscriptionStatus[type] = subscribe; - }]; - } - - [weakself sdl_saveSystemCapability:getSystemCapabilityResponse.systemCapability error:error completionHandler:handler]; - }]; -} - -#pragma mark Saving Capability Responses - -/** - Saves a system capability. All system capabilities will update with the full object except for app services. For app services only the updated app service capabilities will be included in the `SystemCapability` sent from Core. The cached `appServicesCapabilities` will be updated with the new `appService` data. - - @param systemCapability The system capability to be saved - @param handler The handler to be called when the save completes - @return Whether or not the save occurred. This can be `NO` if the new system capability is equivalent to the old capability. - */ -- (BOOL)sdl_saveSystemCapability:(nullable SDLSystemCapability *)systemCapability error:(nullable NSError *)error completionHandler:(nullable SDLCapabilityUpdateWithErrorHandler)handler { - SDLLogV(@"Saving system capability type: %@", systemCapability); - - SDLSystemCapabilityType systemCapabilityType = systemCapability.systemCapabilityType; - - if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypePhoneCall]) { - if ([self.phoneCapability isEqual:systemCapability.phoneCapability]) { - [self sdl_callObserversForUpdate:systemCapability error:error handler:handler]; - return NO; - } - self.phoneCapability = systemCapability.phoneCapability; - } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeNavigation]) { - if ([self.navigationCapability isEqual:systemCapability.navigationCapability]) { - [self sdl_callObserversForUpdate:systemCapability error:error handler:handler]; - return NO; - } - self.navigationCapability = systemCapability.navigationCapability; - } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeRemoteControl]) { - if ([self.remoteControlCapability isEqual:systemCapability.remoteControlCapability]) { - [self sdl_callObserversForUpdate:systemCapability error:error handler:handler]; - return NO; - } - self.remoteControlCapability = systemCapability.remoteControlCapability; - } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeSeatLocation]) { - if ([self.seatLocationCapability isEqual:systemCapability.seatLocationCapability]) { - [self sdl_callObserversForUpdate:systemCapability error:error handler:handler]; - return NO; - } - self.seatLocationCapability = systemCapability.seatLocationCapability; - } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeVideoStreaming]) { - if ([self.videoStreamingCapability isEqual:systemCapability.videoStreamingCapability]) { - [self sdl_callObserversForUpdate:systemCapability error:error handler:handler]; - return NO; - } - self.videoStreamingCapability = systemCapability.videoStreamingCapability; - } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeAppServices]) { - [self sdl_saveAppServicesCapabilitiesUpdate:systemCapability.appServicesCapabilities]; - systemCapability = [[SDLSystemCapability alloc] initWithAppServicesCapabilities:self.appServicesCapabilities]; - } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { - self.shouldConvertDeprecatedDisplayCapabilities = NO; - [self sdl_saveDisplayCapabilityListUpdate:systemCapability.displayCapabilities]; - } else { - SDLLogW(@"Received response for unknown System Capability Type: %@", systemCapabilityType); - return NO; - } - - SDLLogD(@"Updated system capability manager with new data: %@", systemCapability); - - [self sdl_callObserversForUpdate:systemCapability error:error handler:handler]; - return YES; -} - -#pragma mark Merge Capability Deltas - -- (void)sdl_saveAppServicesCapabilitiesUpdate:(SDLAppServicesCapabilities *)newCapabilities { - SDLLogV(@"Saving app services capability update with new capabilities: %@", newCapabilities); - for (SDLAppServiceCapability *capability in newCapabilities.appServices) { - // If the capability has been removed, delete the saved capability; otherwise just update with the new capability - SDLAppServiceCapability *newCapability = [capability.updateReason isEqualToEnum:SDLServiceUpdateRemoved] ? nil : capability; - [self sdl_runSyncOnQueue:^{ - self.appServicesCapabilitiesDictionary[capability.updatedAppServiceRecord.serviceID] = newCapability; - }]; - } -} - -/// Save a new new-style `DisplayCapability` update (only contains the delta) that was received by merging it with the existing version. -/// @param newCapabilities The new `DisplayCapability` update delta. -- (void)sdl_saveDisplayCapabilityListUpdate:(NSArray *)newCapabilities { - NSArray *oldCapabilities = self.displays; - SDLLogV(@"Saving display capability update with new capabilities: %@", newCapabilities); - - if (oldCapabilities == nil) { - self.displays = newCapabilities; - [self sdl_updateDeprecatedDisplayCapabilities]; - return; - } - - SDLDisplayCapability *oldDefaultDisplayCapabilities = oldCapabilities.firstObject; - NSMutableArray *copyWindowCapabilities = [oldDefaultDisplayCapabilities.windowCapabilities mutableCopy]; - - SDLDisplayCapability *newDefaultDisplayCapabilities = newCapabilities.firstObject; - NSArray *newWindowCapabilities = newDefaultDisplayCapabilities.windowCapabilities; - - for (SDLWindowCapability *newWindow in newWindowCapabilities) { - BOOL oldFound = NO; - for (NSUInteger i = 0; i < copyWindowCapabilities.count; i++) { - SDLWindowCapability *oldWindow = copyWindowCapabilities[i]; - NSUInteger newWindowID = newWindow.windowID ? newWindow.windowID.unsignedIntegerValue : SDLPredefinedWindowsDefaultWindow; - NSUInteger oldWindowID = oldWindow.windowID ? oldWindow.windowID.unsignedIntegerValue : SDLPredefinedWindowsDefaultWindow; - - if (newWindowID == oldWindowID) { - // Replace the old window caps with new ones - copyWindowCapabilities[i] = newWindow; - oldFound = true; - break; - } - } - - if (!oldFound) { - // This is a new unknown window - [copyWindowCapabilities addObject:newWindow]; - } - } - - // replace the window capabilities array with the merged one. - newDefaultDisplayCapabilities.windowCapabilities = [copyWindowCapabilities copy]; - self.displays = @[newDefaultDisplayCapabilities]; - [self sdl_updateDeprecatedDisplayCapabilities]; -} - -#pragma mark - Manager Subscriptions - -#pragma mark Subscribing - -- (nullable id)subscribeToCapabilityType:(SDLSystemCapabilityType)type withBlock:(SDLCapabilityUpdateHandler)block { - SDLLogD(@"Subscribing to capability type: %@ with a handler (DEPRECATED)", type); - SDLSystemCapabilityObserver *observerObject = [[SDLSystemCapabilityObserver alloc] initWithObserver:[[NSObject alloc] init] block:block]; - - id subscribedObserver = [self sdl_subscribeToCapabilityType:type observerObject:observerObject]; - return subscribedObserver; -} - -- (nullable id)subscribeToCapabilityType:(SDLSystemCapabilityType)type withUpdateHandler:(SDLCapabilityUpdateWithErrorHandler)handler { - SDLLogD(@"Subscribing to capability type: %@ with a handler", type); - SDLSystemCapabilityObserver *observerObject = [[SDLSystemCapabilityObserver alloc] initWithObserver:[[NSObject alloc] init] updateHandler:handler]; - - id subscribedObserver = [self sdl_subscribeToCapabilityType:type observerObject:observerObject]; - return subscribedObserver; -} - -- (BOOL)subscribeToCapabilityType:(SDLSystemCapabilityType)type withObserver:(id)observer selector:(SEL)selector { - SDLLogD(@"Subscribing to capability type: %@, with observer: %@, selector: %@", type, observer, NSStringFromSelector(selector)); - NSUInteger numberOfParametersInSelector = [NSStringFromSelector(selector) componentsSeparatedByString:@":"].count - 1; - if (numberOfParametersInSelector > 3) { - SDLLogE(@"Attempted to subscribe to a capability using a selector that contains more than 3 parameters."); - return NO; - } - - if (observer == nil) { - SDLLogE(@"Attempted to subscribe to type: %@ with a selector on a *nil* observer, which will always fail.", type); - return NO; - } - - SDLSystemCapabilityObserver *observerObject = [[SDLSystemCapabilityObserver alloc] initWithObserver:observer selector:selector]; - - id subscribedObserver = [self sdl_subscribeToCapabilityType:type observerObject:observerObject]; - return subscribedObserver == nil ? NO : YES; -} - -/// Helper method for subscribing to a system capability type -/// @param type The SystemCapabilityType that will be subscribed -/// @param observerObject An object that can be used to unsubscribe the block. If nil, the subscription was not succesful. -/// @return The observer if the subscription was succesful; nil if not. -- (nullable id)sdl_subscribeToCapabilityType:(SDLSystemCapabilityType)type observerObject:(SDLSystemCapabilityObserver *)observerObject { - if ([self.currentHMILevel isEqualToEnum:SDLHMILevelNone] && ![type isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { - SDLLogE(@"Attempted to subscribe to type: %@ in HMI level NONE, which is not allowed. Please wait until you are in HMI BACKGROUND, LIMITED, or FULL before attempting to subscribe to any SystemCapabilityType other than DISPLAYS.", type); - [self sdl_invokeObserver:observerObject withCapabilityType:type capability:nil error:[NSError sdl_systemCapabilityManager_cannotUpdateInHMINONE]]; - return nil; - } - - if (self.capabilityObservers[type] == nil) { - SDLLogD(@"This is the first subscription to capability type: %@, sending a GetSystemCapability with subscribe true", type); - - [self sdl_runSyncOnQueue:^{ - self.capabilityObservers[type] = [NSMutableArray arrayWithObject:observerObject]; - }]; - - // We don't want to send this for the displays type because that's automatically subscribed - if (![type isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { - [self sdl_sendGetSystemCapabilityWithType:type subscribe:@YES completionHandler:nil]; - } else { - // If we're not calling the GSC RPC we should invoke the observer with the cached data - [self sdl_invokeObserver:observerObject withCapabilityType:type capability:[self sdl_cachedCapabilityForType:type] error:nil]; - } - } else { - // Store the observer and call it immediately with the cached value - [self sdl_runSyncOnQueue:^{ - [self.capabilityObservers[type] addObject:observerObject]; - }]; - - [self sdl_invokeObserver:observerObject withCapabilityType:type capability:[self sdl_cachedCapabilityForType:type] error:nil]; - } - - return observerObject.observer; -} - -#pragma mark Unubscribing - -- (void)unsubscribeFromCapabilityType:(SDLSystemCapabilityType)type withObserver:(id)observer { - SDLLogD(@"Unsubscribing from capability type: %@", type); - for (SDLSystemCapabilityObserver *capabilityObserver in self.capabilityObservers[type]) { - if ([observer isEqual:capabilityObserver.observer] && self.capabilityObservers[type] != nil) { - [self sdl_runSyncOnQueue:^{ - [self.capabilityObservers[type] removeObject:capabilityObserver]; - }]; - - [self sdl_removeNilObserversAndUnsubscribeIfNecessary]; - break; - } - } -} - -- (void)sdl_removeNilObserversAndUnsubscribeIfNecessary { - SDLLogV(@"Checking for nil observers and removing them, then checking for subscriptions we don't need and unsubscribing."); - // Loop through our observers - for (SDLSystemCapabilityType key in self.capabilityObservers.allKeys) { - for (SDLSystemCapabilityObserver *observer in self.capabilityObservers[key]) { - [self sdl_runSyncOnQueue:^{ - // If an observer object is nil, remove it - if (observer.observer == nil) { - [self.capabilityObservers[key] removeObject:observer]; - } - - // If we no longer have any observers for that type, remove the array - if (self.capabilityObservers[key].count == 0) { - [self.capabilityObservers removeObjectForKey:key]; - } - }]; - } - } - - // If we don't support subscriptions, we don't want to unsubscribe by sending an RPC below - if (!self.supportsSubscriptions) { - return; - } - - // Loop through our subscription statuses, check if we're subscribed. If we are, and we do not have observers for that type, and that type is not DISPLAYS, then unsubscribe. - for (SDLSystemCapabilityType type in self.subscriptionStatus.allKeys) { - if ([self.subscriptionStatus[type] isEqualToNumber:@YES] - && self.capabilityObservers[type] == nil - && ![type isEqualToEnum:SDLSystemCapabilityTypeDisplays]) { - SDLLogD(@"Removing the last subscription to type %@, sending a GetSystemCapability with subscribe false (will unsubscribe)", type); - [self sdl_sendGetSystemCapabilityWithType:type subscribe:@NO completionHandler:nil]; - } - } -} - -#pragma mark Notifying Subscribers - -/// Calls all observers of a capability type with an updated capability -/// @param capability The new capability update -/// @param handler The update handler to call, if one exists after the observers are called -- (void)sdl_callObserversForUpdate:(nullable SDLSystemCapability *)capability error:(nullable NSError *)error handler:(nullable SDLCapabilityUpdateWithErrorHandler)handler { - SDLSystemCapabilityType type = capability.systemCapabilityType; - SDLLogV(@"Calling observers for type: %@ with update: %@", type, capability); - - [self sdl_removeNilObserversAndUnsubscribeIfNecessary]; - - for (SDLSystemCapabilityObserver *observer in self.capabilityObservers[type]) { - [self sdl_invokeObserver:observer withCapabilityType:type capability:capability error:error]; - } - - if (handler == nil) { return; } - handler(capability, self.subscriptionStatus[type].boolValue, error); -} - -- (void)sdl_invokeObserver:(SDLSystemCapabilityObserver *)observer withCapabilityType:(SDLSystemCapabilityType)type capability:(nullable SDLSystemCapability *)capability error:(nullable NSError *)error { - BOOL subscribed = self.subscriptionStatus[type].boolValue || [type isEqualToEnum:SDLSystemCapabilityTypeDisplays]; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if (observer.block != nil) { - observer.block(capability); -#pragma clang diagnostic pop - } else if (observer.updateBlock != nil) { - observer.updateBlock(capability, subscribed, error); - } else { - if (![observer.observer respondsToSelector:observer.selector]) { - @throw [NSException sdl_invalidSystemCapabilitySelectorExceptionWithSelector:observer.selector]; - } - - NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[(NSObject *)observer.observer methodSignatureForSelector:observer.selector]]; - [invocation setSelector:observer.selector]; - [invocation setTarget:observer.observer]; - - NSUInteger numberOfParametersInSelector = [NSStringFromSelector(observer.selector) componentsSeparatedByString:@":"].count - 1; - if (numberOfParametersInSelector >= 1) { - [invocation setArgument:&capability atIndex:2]; - } - if (numberOfParametersInSelector >= 2) { - [invocation setArgument:&error atIndex:3]; - } - if (numberOfParametersInSelector >= 3) { - [invocation setArgument:&subscribed atIndex:4]; - } - if (numberOfParametersInSelector >= 4) { - @throw [NSException sdl_invalidSystemCapabilitySelectorExceptionWithSelector:observer.selector]; - } - - [invocation invoke]; - } -} - -#pragma mark - Notifications - -/// Registers for notifications and responses from Core -- (void)sdl_registerForNotifications { - SDLLogV(@"Registering for notifications"); - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_registerResponse:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_displayLayoutResponse:) name:SDLDidReceiveSetDisplayLayoutResponse object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_systemCapabilityUpdatedNotification:) name:SDLDidReceiveSystemCapabilityUpdatedNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusNotification:) name:SDLDidChangeHMIStatusNotification object:nil]; -} - -/** - * Called when a `RegisterAppInterfaceResponse` response is received from Core. The head unit capabilities are saved. - * - * @param notification The `RegisterAppInterfaceResponse` response received from Core - */ -- (void)sdl_registerResponse:(SDLRPCResponseNotification *)notification { - SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response; - if (!response.success.boolValue) { return; } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated" - self.displayCapabilities = response.displayCapabilities; - self.softButtonCapabilities = response.softButtonCapabilities; - self.buttonCapabilities = response.buttonCapabilities; - self.presetBankCapabilities = response.presetBankCapabilities; -#pragma clang diagnostic pop - - self.hmiCapabilities = response.hmiCapabilities; - self.hmiZoneCapabilities = response.hmiZoneCapabilities; - self.speechCapabilities = response.speechCapabilities; - self.prerecordedSpeechCapabilities = response.prerecordedSpeech; - self.vrCapability = (response.vrCapabilities.count > 0 && [response.vrCapabilities.firstObject isEqualToEnum:SDLVRCapabilitiesText]) ? YES : NO; - self.audioPassThruCapabilities = response.audioPassThruCapabilities; - self.pcmStreamCapability = response.pcmStreamCapabilities; - - self.shouldConvertDeprecatedDisplayCapabilities = YES; - self.displays = [self sdl_createDisplayCapabilityListFromRegisterResponse:response]; - - SDLLogV(@"Received RegisterAppInterface response, filled out display and other capabilities"); - - // Call the observers in case the new display capability list is created from deprecated types - SDLSystemCapability *systemCapability = [[SDLSystemCapability alloc] initWithDisplayCapabilities:self.displays]; - [self sdl_callObserversForUpdate:systemCapability error:nil handler:nil]; -} - -/** - * Called when a `SetDisplayLayoutResponse` response is received from Core. If the template was set successfully, the the new capabilities for the template are saved. - * - * @param notification The `SetDisplayLayoutResponse` response received from Core - */ -- (void)sdl_displayLayoutResponse:(SDLRPCResponseNotification *)notification { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated" - SDLSetDisplayLayoutResponse *response = (SDLSetDisplayLayoutResponse *)notification.response; -#pragma clang diagnostic pop - if (!response.success.boolValue) { return; } - - // If we've received a display capability update then we should not convert our deprecated display capabilities and we should just return - if (!self.shouldConvertDeprecatedDisplayCapabilities) { return; } - - self.displayCapabilities = response.displayCapabilities; - self.buttonCapabilities = response.buttonCapabilities; - self.softButtonCapabilities = response.softButtonCapabilities; - self.presetBankCapabilities = response.presetBankCapabilities; - - self.displays = [self sdl_createDisplayCapabilityListFromSetDisplayLayoutResponse:response]; - - SDLLogV(@"Received SetDisplayLayout response, filled out display and other capabilities"); - - // Call the observers in case the new display capability list is created from deprecated types - SDLSystemCapability *systemCapability = [[SDLSystemCapability alloc] initWithDisplayCapabilities:self.displays]; - [self sdl_callObserversForUpdate:systemCapability error:nil handler:nil]; -} - -/** - * Called when an `OnSystemCapabilityUpdated` notification is received from Core. The updated system capabilty is saved. - * - * @param notification The `OnSystemCapabilityUpdated` notification received from Core - */ -- (void)sdl_systemCapabilityUpdatedNotification:(SDLRPCNotificationNotification *)notification { - SDLOnSystemCapabilityUpdated *systemCapabilityUpdatedNotification = (SDLOnSystemCapabilityUpdated *)notification.notification; - SDLLogV(@"Received OnSystemCapability update for type %@", systemCapabilityUpdatedNotification.systemCapability.systemCapabilityType); - - [self sdl_saveSystemCapability:systemCapabilityUpdatedNotification.systemCapability error:nil completionHandler:nil]; -} - -- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { - SDLOnHMIStatus *onHMIStatus = (SDLOnHMIStatus *)notification.notification; - self.currentHMILevel = onHMIStatus.hmiLevel; -} - -#pragma mark Utilities - -/// Checks if we are already on the serial readWrite queue. If so, the block is added to the queue; if not, the block is dispatched to the readWrite queue. -/// @discussion Used to ensure atomic access to global properties. -/// @param block The block to be executed. -- (void)sdl_runSyncOnQueue:(void (^)(void))block { - if (dispatch_get_specific(SDLProcessingQueueName) != nil) { - block(); - } else { - dispatch_sync(self.readWriteQueue, block); - } -} - -#pragma mark Getters - -- (NSMutableDictionary *> *)capabilityObservers { - __block NSMutableDictionary *> *dict = nil; - [self sdl_runSyncOnQueue:^{ - dict = self->_capabilityObservers; - }]; - - return dict; -} - -- (NSMutableDictionary *> *)subscriptionStatus { - __block NSMutableDictionary *> *dict = nil; - [self sdl_runSyncOnQueue:^{ - dict = self->_subscriptionStatus; - }]; - - return dict; -} - -- (nullable NSMutableDictionary *)appServicesCapabilitiesDictionary { - __block NSMutableDictionary *dict = nil; - [self sdl_runSyncOnQueue:^{ - dict = self->_appServicesCapabilitiesDictionary; - }]; - - return dict; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.h deleted file mode 100644 index 11a6acf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.h +++ /dev/null @@ -1,71 +0,0 @@ -// -// SDLSystemCapabilityObserver.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/23/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -@class SDLSystemCapability; - -NS_ASSUME_NONNULL_BEGIN - -/// A handler mirroring the one in SDLSystemCapabilityManager.h for `initWithObserver:block:` -typedef void (^SDLCapabilityUpdateHandler)(SDLSystemCapability *capability); - -/// A handler mirroring the one in SDLSystemCapabilityManager.h for `initWithObserver:updateHandler:` -typedef void (^SDLCapabilityUpdateWithErrorHandler)(SDLSystemCapability *_Nullable capability, BOOL subscribed, NSError *_Nullable error); - -/** - An observer object for SDLSystemCapabilityManager - */ -@interface SDLSystemCapabilityObserver : NSObject - -/** - The object that will be used to call the selector if available, and to unsubscribe this observer - */ -@property (strong, nonatomic) id observer; - -/** - A selector called when the observer is triggered - */ -@property (assign, nonatomic) SEL selector; - -/** - A block called when the observer is triggered - */ -@property (copy, nonatomic) SDLCapabilityUpdateHandler block __deprecated_msg("use updateBlock instead"); - -/// A block called when the observer is triggered -@property (copy, nonatomic) SDLCapabilityUpdateWithErrorHandler updateBlock; - -/** - Create an observer using an object and a selector on that object - - @param observer The object to be called when the subscription triggers - @param selector The selector to be called when the subscription triggers - @return The observer - */ -- (instancetype)initWithObserver:(id)observer selector:(SEL)selector; - -/** - Create an observer using an object and a callback block - - @param observer The object that can be used to unsubscribe the block - @param block The block that will be called when the subscription triggers - @return The observer - */ -- (instancetype)initWithObserver:(id)observer block:(SDLCapabilityUpdateHandler)block __deprecated_msg("use initWithObserver:updateHandler: instead"); - -/// Create an observer using an object and a callback block - -/// @param observer The object that can be used to unsubscribe the block -/// @param block The block that will be called when the subscription triggers -/// @return The observer -- (instancetype)initWithObserver:(id)observer updateHandler:(SDLCapabilityUpdateWithErrorHandler)block; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.m deleted file mode 100644 index 7b6ef0b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityObserver.m +++ /dev/null @@ -1,55 +0,0 @@ -// -// SDLSystemCapabilityObserver.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/23/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLSystemCapabilityObserver.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSystemCapabilityObserver - -- (instancetype)initWithObserver:(id)observer selector:(SEL)selector { - self = [super init]; - if (!self) { return nil; } - - _observer = observer; - _selector = selector; - - return self; -} - -- (instancetype)initWithObserver:(id)observer block:(SDLCapabilityUpdateHandler)block { - self = [super init]; - if (!self) { return nil; } - - _observer = observer; - _block = block; - - return self; -} - -- (instancetype)initWithObserver:(id)observer updateHandler:(SDLCapabilityUpdateWithErrorHandler)block { - self = [super init]; - if (!self) { return nil; } - - _observer = observer; - _updateBlock = block; - - return self; -} - -- (NSString *)description { - if (self.selector) { - return [NSString stringWithFormat:@"Observer: %@[%@] - %@", [_observer class], _observer, NSStringFromSelector(_selector)]; - } else { - return [NSString stringWithFormat:@"Block Observer: %@", _observer]; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.h deleted file mode 100755 index 60f11a7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// SDLSystemCapabilityType.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/10/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - The type of system capability to get more information on. Used in GetSystemCapability. - */ -typedef SDLEnum SDLSystemCapabilityType SDL_SWIFT_ENUM; - -/** - The app services capability - */ -extern SDLSystemCapabilityType const SDLSystemCapabilityTypeAppServices; - -/** - The navigation capability - */ -extern SDLSystemCapabilityType const SDLSystemCapabilityTypeNavigation; - -/** - The phone call capability - */ -extern SDLSystemCapabilityType const SDLSystemCapabilityTypePhoneCall; - -/** - The video streaming capability - */ -extern SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming; - -/** - The remote control capability - */ -extern SDLSystemCapabilityType const SDLSystemCapabilityTypeRemoteControl; - -/** - Contains information about the locations of each seat - */ -extern SDLSystemCapabilityType const SDLSystemCapabilityTypeSeatLocation; - -/** - The Display type capability - - @since SDL 6.0 - */ -extern SDLSystemCapabilityType const SDLSystemCapabilityTypeDisplays; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.m deleted file mode 100755 index 4185345..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemCapabilityType.m +++ /dev/null @@ -1,17 +0,0 @@ -// -// SDLSystemCapabilityType.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/10/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLSystemCapabilityType.h" - -SDLSystemCapabilityType const SDLSystemCapabilityTypeAppServices = @"APP_SERVICES"; -SDLSystemCapabilityType const SDLSystemCapabilityTypeNavigation = @"NAVIGATION"; -SDLSystemCapabilityType const SDLSystemCapabilityTypePhoneCall = @"PHONE_CALL"; -SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming = @"VIDEO_STREAMING"; -SDLSystemCapabilityType const SDLSystemCapabilityTypeRemoteControl = @"REMOTE_CONTROL"; -SDLSystemCapabilityType const SDLSystemCapabilityTypeSeatLocation = @"SEAT_LOCATION"; -SDLSystemCapabilityType const SDLSystemCapabilityTypeDisplays = @"DISPLAYS"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemContext.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemContext.h deleted file mode 100644 index 83fc8e4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemContext.h +++ /dev/null @@ -1,41 +0,0 @@ -// SDLSystemContext.h -// - - -#import "SDLEnum.h" - -/** - * Indicates whether or not a user-initiated interaction is in progress, and if so, in what mode (i.e. MENU or VR). Used in OnHMIStatus - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLSystemContext SDL_SWIFT_ENUM; - -/** - * No user interaction (user-initiated or app-initiated) is in progress. - */ -extern SDLSystemContext const SDLSystemContextMain; - -/** - * VR-oriented, user-initiated or app-initiated interaction is in-progress. - */ -extern SDLSystemContext const SDLSystemContextVoiceRecognitionSession; - -/** - * Menu-oriented, user-initiated or app-initiated interaction is in-progress. - */ -extern SDLSystemContext const SDLSystemContextMenu; - -/** - * The app's display HMI is currently being obscured by either a system or other app's overlay. - * - * @since SDL 2.0 - */ -extern SDLSystemContext const SDLSystemContextHMIObscured; - -/** - * Broadcast only to whichever app has an alert currently being displayed. - * - * @since SDL 2.0 - */ -extern SDLSystemContext const SDLSystemContextAlert; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemContext.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemContext.m deleted file mode 100644 index ea27eb3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemContext.m +++ /dev/null @@ -1,11 +0,0 @@ -// SDLSystemContext.m -// - - -#import "SDLSystemContext.h" - -SDLSystemContext const SDLSystemContextMain = @"MAIN"; -SDLSystemContext const SDLSystemContextVoiceRecognitionSession = @"VRSESSION"; -SDLSystemContext const SDLSystemContextMenu = @"MENU"; -SDLSystemContext const SDLSystemContextHMIObscured = @"HMI_OBSCURED"; -SDLSystemContext const SDLSystemContextAlert = @"ALERT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.h deleted file mode 100644 index 75cd10a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.h +++ /dev/null @@ -1,59 +0,0 @@ -// SDLSystemRequest.h -// - -#import "SDLRPCRequest.h" - -#import "SDLRequestType.h" - -/** - * An asynchronous request from the device; binary data can be included in hybrid part of message for some requests (such as HTTP, Proprietary, or Authentication requests) - * - * @since SmartDeviceLink 3.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLSystemRequest : SDLRPCRequest - -/** - Create a generic system request with a file name - - @param requestType The request type to use - @param fileName The name of the file to use - @return The request - */ -- (instancetype)initWithType:(SDLRequestType)requestType fileName:(nullable NSString *)fileName; - -/** - Create an OEM_PROPRIETARY system request with a subtype and file name - - @param proprietaryType The proprietary requestSubType to be used - @param fileName The name of the file to use - @return The request - */ -- (instancetype)initWithProprietaryType:(NSString *)proprietaryType fileName:(nullable NSString *)fileName; - -/** - * The type of system request. Note that Proprietary requests should forward the binary data to the known proprietary module on the system. - * - * Required - */ -@property (strong, nonatomic) SDLRequestType requestType; - -/** - A request subType used when the `requestType` is `OEM_SPECIFIC`. - - Optional, Max length 255 - */ -@property (strong, nonatomic, nullable) NSString *requestSubType; - -/** - * Filename of HTTP data to store in predefined system staging area. - * - * Required if requestType is HTTP. PROPRIETARY requestType should ignore this parameter. - */ -@property (strong, nonatomic, nullable) NSString *fileName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.m deleted file mode 100644 index 6999a5b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequest.m +++ /dev/null @@ -1,74 +0,0 @@ -// SDLSystemRequest.m -// - - -#import "SDLSystemRequest.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSystemRequest - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSystemRequest]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithType:(SDLRequestType)requestType fileName:(nullable NSString *)fileName { - self = [self init]; - if (!self) { - return nil; - } - - self.requestType = requestType; - self.fileName = fileName; - - return self; -} - -- (instancetype)initWithProprietaryType:(NSString *)proprietaryType fileName:(nullable NSString *)fileName { - self = [self init]; - if (!self) { return nil; } - - self.requestType = SDLRequestTypeOEMSpecific; - self.requestSubType = proprietaryType; - self.fileName = fileName; - - return self; -} - -- (void)setRequestType:(SDLRequestType)requestType { - [self.parameters sdl_setObject:requestType forName:SDLRPCParameterNameRequestType]; -} - -- (SDLRequestType)requestType { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameRequestType error:&error]; -} - -- (void)setRequestSubType:(nullable NSString *)requestSubType { - [self.parameters sdl_setObject:requestSubType forName:SDLRPCParameterNameRequestSubType]; -} - -- (nullable NSString *)requestSubType { - return [self.parameters sdl_objectForName:SDLRPCParameterNameRequestSubType ofClass:NSString.class error:nil]; -} - -- (void)setFileName:(nullable NSString *)fileName { - [self.parameters sdl_setObject:fileName forName:SDLRPCParameterNameFilename]; -} - -- (nullable NSString *)fileName { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFilename ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequestResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequestResponse.h deleted file mode 100644 index d8d57a3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequestResponse.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLSystemRequestResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to SystemRequest - - Since SmartDeviceLink 3.0 - */ -@interface SDLSystemRequestResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequestResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequestResponse.m deleted file mode 100644 index 3275c22..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLSystemRequestResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLSystemRequestResponse.m -// - - -#import "SDLSystemRequestResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLSystemRequestResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameSystemRequest]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTBTState.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTBTState.h deleted file mode 100644 index d1fccb6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTBTState.h +++ /dev/null @@ -1,60 +0,0 @@ -// SDLTBTState.h -// - - -#import "SDLEnum.h" - -/** - The turn-by-turn state, used in OnTBTClientState. - */ -typedef SDLEnum SDLTBTState SDL_SWIFT_ENUM; - -/** - The route should be updated - */ -extern SDLTBTState const SDLTBTStateRouteUpdateRequest; - -/** - The route is accepted - */ -extern SDLTBTState const SDLTBTStateRouteAccepted; - -/** - The route is refused - */ -extern SDLTBTState const SDLTBTStateRouteRefused; - -/** - The route is cancelled - */ -extern SDLTBTState const SDLTBTStateRouteCancelled; - -/** - The route should update its Estimated Time of Arrival - */ -extern SDLTBTState const SDLTBTStateETARequest; - -/** - The route should update its next turn - */ -extern SDLTBTState const SDLTBTStateNextTurnRequest; - -/** - The route should update its status - */ -extern SDLTBTState const SDLTBTStateRouteStatusRequest; - -/** - The route update its summary - */ -extern SDLTBTState const SDLTBTStateRouteSummaryRequest; - -/** - The route should update the trip's status - */ -extern SDLTBTState const SDLTBTStateTripStatusRequest; - -/** - The route update timed out - */ -extern SDLTBTState const SDLTBTStateRouteUpdateRequestTimeout; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTBTState.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTBTState.m deleted file mode 100644 index ababcdc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTBTState.m +++ /dev/null @@ -1,16 +0,0 @@ -// SDLTBTState.m -// - - -#import "SDLTBTState.h" - -SDLTBTState const SDLTBTStateRouteUpdateRequest = @"ROUTE_UPDATE_REQUEST"; -SDLTBTState const SDLTBTStateRouteAccepted = @"ROUTE_ACCEPTED"; -SDLTBTState const SDLTBTStateRouteRefused = @"ROUTE_REFUSED"; -SDLTBTState const SDLTBTStateRouteCancelled = @"ROUTE_CANCELLED"; -SDLTBTState const SDLTBTStateETARequest = @"ETA_REQUEST"; -SDLTBTState const SDLTBTStateNextTurnRequest = @"NEXT_TURN_REQUEST"; -SDLTBTState const SDLTBTStateRouteStatusRequest = @"ROUTE_STATUS_REQUEST"; -SDLTBTState const SDLTBTStateRouteSummaryRequest = @"ROUTE_SUMMARY_REQUEST"; -SDLTBTState const SDLTBTStateTripStatusRequest = @"TRIP_STATUS_REQUEST"; -SDLTBTState const SDLTBTStateRouteUpdateRequestTimeout = @"ROUTE_UPDATE_REQUEST_TIMEOUT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTCPTransport.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTCPTransport.h deleted file mode 100644 index 5b7ac09..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTCPTransport.h +++ /dev/null @@ -1,36 +0,0 @@ -// SDLTCPTransport.h -// - -#import "SDLTransportType.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLTCPTransport : NSObject - -/** - * Convenience init - * - * @param hostName The host name of Core - * @param portNumber The port number of Core - * @return A SDLTCPTransport object - */ -- (instancetype)initWithHostName:(NSString *)hostName portNumber:(NSString *)portNumber; - -/** - * The host name of Core - */ -@property (strong, nonatomic) NSString *hostName; - -/** - * The port number of Core - */ -@property (strong, nonatomic) NSString *portNumber; - -/** - * The subscribed listener - */ -@property (nullable, weak, nonatomic) id delegate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTCPTransport.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTCPTransport.m deleted file mode 100644 index 962c1ff..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTCPTransport.m +++ /dev/null @@ -1,378 +0,0 @@ -// -// SDLTCPTransport.m -// SmartDeviceLink -// -// Created by Sho Amano on 2018/04/23. -// Copyright © 2018 Xevo Inc. All rights reserved. -// - -#import "SDLTCPTransport.h" -#import "SDLMutableDataQueue.h" -#import "SDLError.h" -#import "SDLGlobals.h" -#import "SDLLogMacros.h" -#import "SDLTimer.h" -#import - -NS_ASSUME_NONNULL_BEGIN - -NSString *const TCPIOThreadName = @"com.smartdevicelink.tcpiothread"; -NSTimeInterval const IOThreadCanceledSemaphoreWaitSecs = 1.0; -NSUInteger const DefaultReceiveBufferSize = 16 * 1024; -NSTimeInterval ConnectionTimeoutSecs = 30.0; - -@interface SDLTCPTransport () - -@property (nullable, nonatomic, strong) NSThread *ioThread; -@property (nonatomic, assign) NSUInteger receiveBufferSize; -@property (nonatomic, strong) SDLMutableDataQueue *sendDataQueue; -@property (nullable, nonatomic, strong) NSInputStream *inputStream; -@property (nullable, nonatomic, strong) NSOutputStream *outputStream; -@property (nonatomic, assign) BOOL outputStreamHasSpace; -@property (nullable, nonatomic, strong) SDLTimer *connectionTimer; -@property (nonatomic, assign) BOOL transportConnected; -@property (nonatomic, assign) BOOL transportErrorNotified; -/// A semaphore used to block the current thread until we know that the I/O streams have been shutdown on the ioThread -@property (nonatomic, strong) dispatch_semaphore_t ioThreadCancelledSemaphore; - -@end - -@implementation SDLTCPTransport - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - _receiveBufferSize = DefaultReceiveBufferSize; - _sendDataQueue = [[SDLMutableDataQueue alloc] init]; - _ioThreadCancelledSemaphore = dispatch_semaphore_create(0); - - return self; -} - -- (instancetype)initWithHostName:(NSString *)hostName portNumber:(NSString *)portNumber { - self = [self init]; - if (!self) { return nil; } - - _hostName = hostName; - _portNumber = portNumber; - - return self; -} - -#pragma mark - Stream Lifecycle - -// Note: When a connection is refused (e.g. TCP port number is not correct) or timed out (e.g. invalid IP address), then onError will be notified. -- (void)connect { - if (self.ioThread != nil) { - SDLLogW(@"TCP transport is already connected"); - return; - } - - SDLLogD(@"Attempting to connect"); - - unsigned int port; - int num = [self.portNumber intValue]; - if (0 <= num && num <= 65535) { - port = (unsigned int)num; - } else { - // specify an invalid port, so that once connection is initiated we will receive an error through delegate - port = 65536; - } - - self.ioThread = [[NSThread alloc] initWithTarget:self selector:@selector(sdl_tcpTransportEventLoop) object:nil]; - self.ioThread.name = TCPIOThreadName; - - CFReadStreamRef readStream = NULL; - CFWriteStreamRef writeStream = NULL; - CFStringRef hostName = (__bridge CFStringRef)self.hostName; - - CFStreamCreatePairWithSocketToHost(NULL, hostName, port, &readStream, &writeStream); - - // this transport is mainly for video streaming - CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVideo); - CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVideo); - - self.inputStream = (__bridge_transfer NSInputStream *)readStream; - self.outputStream = (__bridge_transfer NSOutputStream *)writeStream; - - [self.ioThread start]; -} - -- (void)disconnectWithCompletionHandler:(void (^)(void))disconnectCompletionHandler { - SDLLogD(@"Disconnecting"); - - [self.sendDataQueue removeAllObjects]; - self.transportErrorNotified = NO; - self.transportConnected = NO; - - if (self.ioThread == nil) { - SDLLogV(@"TCP transport not yet started or has been shutdown"); - return disconnectCompletionHandler(); - } - - // Tell the ioThread to shutdown the I/O streams. The I/O streams must be opened and closed on the same thread; if they are not, random crashes can occur. Dispatch this task to the main queue to ensure that this task is performed on the Main Thread. We are using the Main Thread for ease since we don't want to create a separate thread just to wait on closing the I/O streams. Using the Main Thread ensures that semaphore wait is not called from ioThread, which would block the ioThread and prevent shutdown. - __weak typeof(self) weakSelf = self; - dispatch_async(dispatch_get_main_queue(), ^{ - __strong typeof(weakSelf) strongSelf = weakSelf; - - // Attempt to cancel the ioThread. Once the thread realizes it has been cancelled, it will cleanup the I/O streams. Make sure to wake up the run loop in case there is no current I/O event running on the ioThread. - [strongSelf.ioThread cancel]; - [strongSelf performSelector:@selector(sdl_doNothing) onThread:self.ioThread withObject:nil waitUntilDone:NO]; - - // Block the thread until the semaphore has been released by the ioThread (or a timeout has occured). - BOOL cancelledSuccessfully = [strongSelf sdl_isIOThreadCancelled]; - if (!cancelledSuccessfully) { - SDLLogE(@"The I/O streams were not shut down successfully. We might not be able to create a new session with an accessory during the same app session. If this happens, only force quitting and restarting the app will allow new sessions."); - } - - disconnectCompletionHandler(); - }); -} - -/// Wait for the ioThread to destroy the I/O streams. To ensure that we are not blocking the ioThread, this method should only be called from the main thread. -/// @return Whether or not the session's I/O streams were closed successfully. -- (BOOL)sdl_isIOThreadCancelled { - NSAssert(![NSThread.currentThread.name isEqualToString:TCPIOThreadName], @"%@ must not be called from the ioThread!", NSStringFromSelector(_cmd)); - - long lWait = dispatch_semaphore_wait(self.ioThreadCancelledSemaphore, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(IOThreadCanceledSemaphoreWaitSecs * NSEC_PER_SEC))); - if (lWait == 0) { - SDLLogD(@"ioThread cancelled successfully"); - return YES; - } - - SDLLogE(@"Failed to cancel ioThread within %f seconds", IOThreadCanceledSemaphoreWaitSecs); - return NO; -} - -/// Helper method for waking up the ioThread. -- (void)sdl_doNothing {} - -#pragma mark - Data Transmission - -- (void)sendData:(NSData *)msgBytes { - [self.sendDataQueue enqueueBuffer:msgBytes.mutableCopy]; - - [self performSelector:@selector(sdl_writeToStream) onThread:self.ioThread withObject:nil waitUntilDone:NO]; -} - -#pragma mark - Run loop - -- (void)sdl_tcpTransportEventLoop { - @autoreleasepool { - [self sdl_setupStream:self.inputStream]; - [self sdl_setupStream:self.outputStream]; - - // JFYI: NSStream itself has a connection timeout (about 1 minute). If you specify a large timeout value, you may get the NSStream's timeout event first. - __weak typeof(self) weakSelf = self; - self.connectionTimer = [[SDLTimer alloc] initWithDuration:ConnectionTimeoutSecs]; - self.connectionTimer.elapsedBlock = ^{ - [weakSelf sdl_onConnectionTimedOut]; - }; - [self.connectionTimer startOnRunLoop:[NSRunLoop currentRunLoop]]; - - // these will initiate a connection to remote server - SDLLogD(@"Connecting to %@:%@ ...", self.hostName, self.portNumber); - [self.inputStream open]; - [self.outputStream open]; - - while (self.ioThread != nil && !self.ioThread.cancelled) { - BOOL ret = [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]; - if (!ret) { - SDLLogW(@"Failed to start TCP transport run loop"); - break; - } - } - - // Close the I/O streams - SDLLogD(@"TCP transport run loop terminated"); - [self sdl_teardownStream:self.inputStream]; - [self sdl_teardownStream:self.outputStream]; - self.inputStream = nil; - self.outputStream = nil; - [self.connectionTimer cancel]; - - // If a thread is blocked waiting on the I/O streams to shutdown, let the thread know that shutdown has completed. - dispatch_semaphore_signal(self.ioThreadCancelledSemaphore); - } -} - -/// Configures a stream -/// @param stream An input or output stream -- (void)sdl_setupStream:(NSStream *)stream { - stream.delegate = self; - [stream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; -} - -/// Tears down a stream -/// @param stream An input or output stream -- (void)sdl_teardownStream:(NSStream *)stream { - NSStreamStatus streamStatus = stream.streamStatus; - if (streamStatus != NSStreamStatusNotOpen && streamStatus != NSStreamStatusClosed) { - [stream close]; - } - [stream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; - [stream setDelegate:nil]; -} - -#pragma mark - NSStreamDelegate -// this method runs only on the I/O thread (i.e. invoked from the run loop) - -- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode { - switch (eventCode) { - case NSStreamEventNone: { - // nothing to do - } break; - case NSStreamEventOpenCompleted: { - // We will get two NSStreamEventOpenCompleted events (for both input and output streams) and we don't need both. Let's use the one of output stream since we need to make sure that output stream is ready before Proxy sending Start Service frame. - if (aStream == self.outputStream) { - SDLLogD(@"TCP transport connected"); - [self.connectionTimer cancel]; - self.transportConnected = YES; - [self.delegate onTransportConnected]; - } - } break; - case NSStreamEventHasBytesAvailable: { - [self sdl_readFromStream]; - } break; - case NSStreamEventHasSpaceAvailable: { - self.outputStreamHasSpace = YES; - [self sdl_writeToStream]; - } break; - case NSStreamEventErrorOccurred: { - SDLLogW(@"TCP transport error occurred with %@ stream: %@", aStream == self.inputStream ? @"input" : @"output", aStream.streamError); - [self sdl_onStreamError:aStream]; - } break; - case NSStreamEventEndEncountered: { - SDLLogD(@"TCP transport %@ stream end encountered", aStream == self.inputStream ? @"input" : @"output"); - [self sdl_onStreamEnd:aStream]; - } break; - } -} - -#pragma mark - Stream event handlers -// these methods run only on the I/O thread (i.e. invoked from the run loop) - -- (void)sdl_readFromStream { - NSAssert([[NSThread currentThread] isEqual:self.ioThread], @"sdl_readFromStream is called on a wrong thread!"); - - BytePtr buffer = malloc(self.receiveBufferSize); - NSInteger readBytes = [self.inputStream read:buffer maxLength:self.receiveBufferSize]; - if (readBytes < 0) { - SDLLogW(@"TCP transport read error: %@", self.inputStream.streamError); - [self sdl_onStreamError:self.inputStream]; - free(buffer); - return; - } else if (readBytes == 0) { - SDLLogD(@"TCP transport input stream closed"); - [self sdl_onStreamEnd:self.inputStream]; - free(buffer); - return; - } - - NSData *data = [NSData dataWithBytesNoCopy:buffer length:(NSUInteger)readBytes freeWhenDone:YES]; - [self.delegate onDataReceived:data]; -} - -- (void)sdl_writeToStream { - NSAssert([[NSThread currentThread] isEqual:self.ioThread], @"sdl_writeToStream is called on a wrong thread!"); - - if (!self.outputStreamHasSpace || [self.sendDataQueue count] == 0) { - return; - } - - NSMutableData *buffer = [self.sendDataQueue frontBuffer]; - NSUInteger bufferLen = buffer.length; - - NSInteger bytesWritten = [self.outputStream write:buffer.bytes maxLength:bufferLen]; - if (bytesWritten < 0) { - SDLLogW(@"TCP transport write error: %@", self.outputStream.streamError); - [self sdl_onStreamError:self.outputStream]; - return; - } else if (bytesWritten == 0) { - SDLLogD(@"TCP transport output stream closed"); - [self sdl_onStreamEnd:self.outputStream]; - return; - } - - if (bytesWritten == bufferLen) { - // we have consumed all of data in this buffer - [self.sendDataQueue popBuffer]; - } else { - [buffer replaceBytesInRange:NSMakeRange(0, (NSUInteger)bytesWritten) withBytes:NULL length:0]; - } - - // the output stream may still have some spaces, but let's wait for another NSStreamEventHasSpaceAvailable event before writing - self.outputStreamHasSpace = NO; -} - -- (void)sdl_onConnectionTimedOut { - NSAssert([[NSThread currentThread] isEqual:self.ioThread], @"sdl_onConnectionTimedOut is called on a wrong thread!"); - - SDLLogW(@"TCP connection timed out"); - if (!self.transportErrorNotified) { - NSAssert(!self.transportConnected, @"transport should not be connected in this case"); - [self.delegate onError:[NSError sdl_transport_connectionTimedOutError]]; - self.transportErrorNotified = YES; - } -} - -- (void)sdl_onStreamError:(NSStream *)stream { - NSAssert([[NSThread currentThread] isEqual:self.ioThread], @"sdl_onStreamError is called on a wrong thread!"); - - // avoid notifying multiple error events - if (self.transportErrorNotified) { - return; - } - - if (self.transportConnected) { - // transport is disconnected while running - [self.delegate onTransportDisconnected]; - self.transportErrorNotified = YES; - } else if ([stream.streamError.domain isEqualToString:NSPOSIXErrorDomain]) { - // connection error - - // According to Apple's document "Error Objects, Domains, and Codes", the 'code' values of NSPOSIXErrorDomain are actually errno values. - NSError *error; - switch (stream.streamError.code) { - case ECONNREFUSED: { - SDLLogE(@"TCP connection error: ECONNREFUSED (connection refused)"); - error = [NSError sdl_transport_connectionRefusedError]; - } break; - case ETIMEDOUT: { - SDLLogE(@"TCP connection error: ETIMEDOUT (connection timed out)"); - error = [NSError sdl_transport_connectionTimedOutError]; - } break; - case ENETDOWN: { - SDLLogE(@"TCP connection error: ENETDOWN (network down)"); - error = [NSError sdl_transport_networkDownError]; - } break; - case ENETUNREACH: { - SDLLogE(@"TCP connection error: ENETUNREACH (network unreachable)"); - error = [NSError sdl_transport_networkDownError]; - } break; - default: { - SDLLogE(@"TCP connection error: unknown error %ld", (long)stream.streamError.code); - error = [NSError sdl_transport_unknownError]; - } break; - } - [self.delegate onError:error]; - self.transportErrorNotified = YES; - } else { - SDLLogE(@"Unhandled stream error! %@", stream.streamError); - } -} - -- (void)sdl_onStreamEnd:(NSStream *)stream { - SDLLogD(@"Stream ended"); - NSAssert([[NSThread currentThread] isEqual:self.ioThread], @"sdl_onStreamEnd is called on a wrong thread!"); - - if (!self.transportErrorNotified) { - [self.delegate onTransportDisconnected]; - self.transportErrorNotified = YES; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTPMS.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTPMS.h deleted file mode 100644 index 4831af5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTPMS.h +++ /dev/null @@ -1,50 +0,0 @@ -// SDLTPMS.h -// - - -#import "SDLEnum.h" - -/** - An enum representing values of the tire pressure monitoring system - */ -typedef SDLEnum SDLTPMS SDL_SWIFT_ENUM; - -/** - If set the status of the tire is not known. - */ -extern SDLTPMS const SDLTPMSUnknown; - -/** - TPMS does not function. - */ -extern SDLTPMS const SDLTPMSSystemFault; - -/** - The sensor of the tire does not function. - */ -extern SDLTPMS const SDLTPMSSensorFault; - -/** - TPMS is reporting a low tire pressure for the tire. - */ -extern SDLTPMS const SDLTPMSLow; - -/** - TPMS is active and the tire pressure is monitored. - */ -extern SDLTPMS const SDLTPMSSystemActive; - -/** - TPMS is reporting that the tire must be trained. - */ -extern SDLTPMS const SDLTPMSTrain; - -/** - TPMS reports the training for the tire is completed. - */ -extern SDLTPMS const SDLTPMSTrainingComplete; - -/** - TPMS reports the tire is not trained. - */ -extern SDLTPMS const SDLTPMSNotTrained; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTPMS.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTPMS.m deleted file mode 100644 index 54a66d1..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTPMS.m +++ /dev/null @@ -1,18 +0,0 @@ -// -// SDLTPMS.m -// SmartDeviceLink -// -// Created by Joel Fischer on 7/2/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLTPMS.h" - -SDLTPMS const SDLTPMSUnknown = @"UNKNOWN"; -SDLTPMS const SDLTPMSSystemFault = @"SYSTEM_FAULT"; -SDLTPMS const SDLTPMSSensorFault = @"SENSOR_FAULT"; -SDLTPMS const SDLTPMSLow = @"LOW"; -SDLTPMS const SDLTPMSSystemActive = @"SYSTEM_ACTIVE"; -SDLTPMS const SDLTPMSTrain = @"TRAIN"; -SDLTPMS const SDLTPMSTrainingComplete = @"TRAINING_COMPLETE"; -SDLTPMS const SDLTPMSNotTrained = @"NOT_TRAINED"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTTSChunk.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTTSChunk.h deleted file mode 100644 index d0d04a0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTTSChunk.h +++ /dev/null @@ -1,93 +0,0 @@ -// SDLTTSChunk.h -// - -#import "SDLRPCMessage.h" - -#import "SDLSpeechCapabilities.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Specifies what is to be spoken. This can be simply a text phrase, which SDL will speak according to its own rules. It can also be phonemes from either the Microsoft SAPI phoneme set, or from the LHPLUS phoneme set. It can also be a pre-recorded sound in WAV format (either developer-defined, or provided by the SDL platform). - - In SDL, words, and therefore sentences, can be built up from phonemes and are used to explicitly provide the proper pronounciation to the TTS engine. For example, to have SDL pronounce the word "read" as "red", rather than as when it is pronounced like "reed", the developer would use phonemes to express this desired pronounciation. - - For more information about phonemes, see http://en.wikipedia.org/wiki/Phoneme. - - @since SmartDeviceLink 1.0 - */ -@interface SDLTTSChunk : SDLRPCStruct - -/** - Initialize with text and a type - - @param text The string to be spoken - @param type The type of text the string is - @return The RPC - */ -- (instancetype)initWithText:(NSString *)text type:(SDLSpeechCapabilities)type; - -/** - Create TTS using text - - @param string The text chunk - @return The RPC - */ -+ (NSArray *)textChunksFromString:(NSString *)string; - -/** - Create TTS using SAPI - - @param string The SAPI chunk - @return The RPC - */ -+ (NSArray *)sapiChunksFromString:(NSString *)string; - -/** - Create TTS using LH Plus - - @param string The LH Plus chunk - @return The RPC - */ -+ (NSArray *)lhPlusChunksFromString:(NSString *)string; - -/** - Create TTS using prerecorded chunks - - @param string The prerecorded chunk - @return The RPC - */ -+ (NSArray *)prerecordedChunksFromString:(NSString *)string; - -/** - Create TTS using silence - - @return The RPC - */ -+ (NSArray *)silenceChunks; - -/** - Create "TTS" to play an audio file previously uploaded to the system. - - @param fileName The name of the file used in the SDLFile or PutFile that was uploaded - @return The RPC - */ -+ (NSArray *)fileChunksWithName:(NSString *)fileName; - -/** - * Text to be spoken, a phoneme specification, or the name of a pre-recorded / pre-uploaded sound. The contents of this field are indicated by the "type" field. - * - * Required, Max length 500 - */ -@property (strong, nonatomic) NSString *text; - -/** - * The type of information in the "text" field (e.g. phrase to be spoken, phoneme specification, name of pre-recorded sound). - * - * Required - */ -@property (strong, nonatomic) SDLSpeechCapabilities type; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTTSChunk.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTTSChunk.m deleted file mode 100644 index 49f0368..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTTSChunk.m +++ /dev/null @@ -1,77 +0,0 @@ -// SDLTTSChunk.m -// - -#import "SDLTTSChunk.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLTTSChunk - -- (instancetype)initWithText:(NSString *)text type:(SDLSpeechCapabilities)type { - self = [self init]; - if (!self) { - return nil; - } - - self.text = text; - self.type = type; - - return self; -} - -+ (NSArray *)textChunksFromString:(NSString *)string { - return [self sdl_chunksFromString:string type:SDLSpeechCapabilitiesText]; -} - -+ (NSArray *)sapiChunksFromString:(NSString *)string { - return [self sdl_chunksFromString:string type:SDLSpeechCapabilitiesSAPIPhonemes]; -} - -+ (NSArray *)lhPlusChunksFromString:(NSString *)string { - return [self sdl_chunksFromString:string type:SDLSpeechCapabilitiesLHPlusPhonemes]; -} - -+ (NSArray *)prerecordedChunksFromString:(NSString *)string { - return [self sdl_chunksFromString:string type:SDLSpeechCapabilitiesPrerecorded]; -} - -+ (NSArray *)silenceChunks { - return [self sdl_chunksFromString:@"" type:SDLSpeechCapabilitiesSilence]; -} - -+ (NSArray *)fileChunksWithName:(NSString *)fileName { - return [self sdl_chunksFromString:fileName type:SDLSpeechCapabilitiesFile]; -} - -+ (nullable NSArray *)sdl_chunksFromString:(nullable NSString *)string type:(SDLSpeechCapabilities)type { - if (string == nil) { - return nil; - } - - return @[[[SDLTTSChunk alloc] initWithText:string type:type]]; -} - -- (void)setText:(NSString *)text { - [self.store sdl_setObject:text forName:SDLRPCParameterNameText]; -} - -- (NSString *)text { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameText ofClass:NSString.class error:&error]; -} - -- (void)setType:(SDLSpeechCapabilities)type { - [self.store sdl_setObject:type forName:SDLRPCParameterNameType]; -} - -- (SDLSpeechCapabilities)type { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameType error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.h deleted file mode 100644 index e93fae6..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.h +++ /dev/null @@ -1,56 +0,0 @@ -// -// SDLTemperature.h -// - -#import "SDLRPCMessage.h" -#import "SDLTemperatureUnit.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Struct representing a temperature. - */ -@interface SDLTemperature : SDLRPCStruct - -/** - * Convenience init for a fahrenheit temperature value. - * - * @param value Temperature value in fahrenheit - * @return A SDLTemperature object - */ -- (instancetype)initWithFahrenheitValue:(float)value; - -/** - * Convenience init for a celsius temperature value. - * - * @param value Temperature value in celsius - * @return A SDLTemperature object - */ -- (instancetype)initWithCelsiusValue:(float)value; - -/** - * Convenience init for all parameters. - * - * @param unit Temperature unit - * @param value Temperature value in specified unit - * @return A SDLTemperature object - */ -- (instancetype)initWithUnit:(SDLTemperatureUnit)unit value:(float)value NS_DESIGNATED_INITIALIZER; - -/** - * Temperature unit - * - * Required, float - */ -@property (strong, nonatomic) SDLTemperatureUnit unit; - -/** - * Temperature value in specified unit. Range depends on OEM and is not checked by SDL. - * - * Required, float - */ -@property (strong, nonatomic) NSNumber *value; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.m deleted file mode 100644 index 45d1e22..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperature.m +++ /dev/null @@ -1,53 +0,0 @@ -// -// SDLTemperature.m -// - -#import "SDLTemperature.h" -#import "SDLRPCParameterNames.h" -#import "NSMutableDictionary+Store.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLTemperature - -- (instancetype)initWithFahrenheitValue:(float)value { - return [self initWithUnit:SDLTemperatureUnitFahrenheit value:value]; -} - -- (instancetype)initWithCelsiusValue:(float)value { - return [self initWithUnit:SDLTemperatureUnitCelsius value:value]; -} - -- (instancetype)initWithUnit:(SDLTemperatureUnit)unit value:(float)value { - self = [super init]; - if (!self) { - return nil; - } - - self.unit = unit; - self.value = @(value); - - return self; -} - -- (void)setUnit:(SDLTemperatureUnit)unit { - [self.store sdl_setObject:unit forName:SDLRPCParameterNameUnit]; -} - -- (SDLTemperatureUnit)unit { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameUnit error:&error]; -} - -- (void)setValue:(NSNumber *)value { - [self.store sdl_setObject:value forName:SDLRPCParameterNameValue]; -} - -- (NSNumber *)value { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameValue ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperatureUnit.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperatureUnit.h deleted file mode 100644 index ff4b10e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperatureUnit.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// SDLTemperatureUnit.h -// - - -#import "SDLEnum.h" - -/** - The unit of temperature to display. Used in Temperature. - */ -typedef SDLEnum SDLTemperatureUnit SDL_SWIFT_ENUM; - -/** - Reflects the current HMI setting for temperature unit in Celsius - */ -extern SDLTemperatureUnit const SDLTemperatureUnitCelsius; - -/** - Reflects the current HMI setting for temperature unit in Fahrenheit - */ -extern SDLTemperatureUnit const SDLTemperatureUnitFahrenheit; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperatureUnit.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperatureUnit.m deleted file mode 100644 index f54fcaa..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemperatureUnit.m +++ /dev/null @@ -1,8 +0,0 @@ -// -// SDLTemperatureUnit.m -// - -#import "SDLTemperatureUnit.h" - -SDLTemperatureUnit const SDLTemperatureUnitCelsius = @"CELSIUS"; -SDLTemperatureUnit const SDLTemperatureUnitFahrenheit = @"FAHRENHEIT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.h deleted file mode 100644 index 5f0c615..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.h +++ /dev/null @@ -1,54 +0,0 @@ -// -// SDLTemplateColorScheme.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/21/18. -// Copyright © 2018 Livio. All rights reserved. -// - -#import - -#import "NSNumber+NumberType.h" -#import "SDLRPCStruct.h" - -@class SDLRGBColor; - -NS_ASSUME_NONNULL_BEGIN - -/// A color scheme for all display layout templates. -@interface SDLTemplateColorScheme : SDLRPCStruct - -/// Convenience init -/// -/// @param primaryColor This must always be your primary brand color -/// @param secondaryColor This may be an accent or complimentary color to your primary brand color -/// @param backgroundColor he background color to be used on the template -/// @return An SDLTemplateColorScheme -- (instancetype)initWithPrimaryRGBColor:(SDLRGBColor *)primaryColor secondaryRGBColor:(SDLRGBColor *)secondaryColor backgroundRGBColor:(SDLRGBColor *)backgroundColor; - -/// Convenience init -/// -/// @param primaryColor This must always be your primary brand color -/// @param secondaryColor This may be an accent or complimentary color to your primary brand color -/// @param backgroundColor he background color to be used on the template -/// @return An SDLTemplateColorScheme -- (instancetype)initWithPrimaryColor:(UIColor *)primaryColor secondaryColor:(UIColor *)secondaryColor backgroundColor:(UIColor *)backgroundColor; - -/** - The "primary" color. This must always be your primary brand color. If the OEM only uses one color, this will be the color. It is recommended to the OEMs that the primaryColor should change the `mediaClockTimer` bar and the highlight color of soft buttons. - */ -@property (strong, nonatomic, nullable) SDLRGBColor *primaryColor; - -/** - The "secondary" color. This may be an accent or complimentary color to your primary brand color. If the OEM uses this color, they must also use the primary color. It is recommended to the OEMs that the secondaryColor should change the background color of buttons, such as soft buttons. - */ -@property (strong, nonatomic, nullable) SDLRGBColor *secondaryColor; - -/** - The background color to be used on the template. If the OEM does not support this parameter, assume on "dayColorScheme" that this will be a light color, and on "nightColorScheme" a dark color. You should do the same for your custom schemes. - */ -@property (strong, nonatomic, nullable) SDLRGBColor *backgroundColor; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.m deleted file mode 100644 index 0c758fb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateColorScheme.m +++ /dev/null @@ -1,67 +0,0 @@ -// -// SDLTemplateColorScheme.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/21/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLTemplateColorScheme.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRGBColor.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLTemplateColorScheme - -- (instancetype)initWithPrimaryRGBColor:(SDLRGBColor *)primaryColor secondaryRGBColor:(SDLRGBColor *)secondaryColor backgroundRGBColor:(SDLRGBColor *)backgroundColor { - self = [self init]; - if (!self) { return nil; } - - self.primaryColor = primaryColor; - self.secondaryColor = secondaryColor; - self.backgroundColor = backgroundColor; - - return self; -} - -- (instancetype)initWithPrimaryColor:(UIColor *)primaryColor secondaryColor:(UIColor *)secondaryColor backgroundColor:(UIColor *)backgroundColor { - self = [self init]; - if (!self) { return nil; } - - self.primaryColor = [[SDLRGBColor alloc] initWithColor:primaryColor]; - self.secondaryColor = [[SDLRGBColor alloc] initWithColor:secondaryColor]; - self.backgroundColor = [[SDLRGBColor alloc] initWithColor:backgroundColor]; - - return self; -} - -- (void)setPrimaryColor:(nullable SDLRGBColor *)primaryColor { - [self.store sdl_setObject:primaryColor forName:SDLRPCParameterNamePrimaryColor]; -} - -- (nullable SDLRGBColor *)primaryColor { - return [self.store sdl_objectForName:SDLRPCParameterNamePrimaryColor ofClass:SDLRGBColor.class error:nil]; -} - -- (void)setSecondaryColor:(nullable SDLRGBColor *)secondaryColor { - [self.store sdl_setObject:secondaryColor forName:SDLRPCParameterNameSecondaryColor]; -} - -- (nullable SDLRGBColor *)secondaryColor { - return [self.store sdl_objectForName:SDLRPCParameterNameSecondaryColor ofClass:SDLRGBColor.class error:nil]; -} - -- (void)setBackgroundColor:(nullable SDLRGBColor *)backgroundColor { - [self.store sdl_setObject:backgroundColor forName:SDLRPCParameterNameBackgroundColor]; -} - -- (nullable SDLRGBColor *)backgroundColor { - return [self.store sdl_objectForName:SDLRPCParameterNameBackgroundColor ofClass:SDLRGBColor.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.h deleted file mode 100644 index 39d0b0d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.h +++ /dev/null @@ -1,86 +0,0 @@ -// -// SDLTemplateConfiguration.h -// SmartDeviceLink - -#import "SDLTemplateColorScheme.h" -#import "SDLPredefinedLayout.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Used to set an alternate template layout to a window. - - @since SDL 6.0 - */ -@interface SDLTemplateConfiguration : SDLRPCStruct - - -/** - Constructor with the required values. - - @param predefinedLayout A template layout an app uses to display information. The broad details of the layout are defined, but the details depend on the IVI system. Used in SetDisplayLayout. - */ -- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout; - -// HAX: We are doing this because `template` is a C++ keyword and won't compile. -#ifndef __cplusplus -/** - Init with the required values. - - @param template Predefined or dynamically created window template. Currently only predefined window template layouts are defined. - */ -- (instancetype)initWithTemplate:(NSString *)template; - - -/** - Convinience constructor with all the parameters. - - @param template Predefined or dynamically created window template. Currently only predefined window template layouts are defined. - @param dayColorScheme The color scheme to use when the head unit is in a light / day situation. If nil, the existing color scheme will be used. - @param nightColorScheme The color scheme to use when the head unit is in a dark / night situation. - */ -- (instancetype)initWithTemplate:(NSString *)template dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme; - -/** - Predefined or dynamically created window template. Currently only predefined window template layouts are defined. - */ -@property (strong, nonatomic) NSString *template; -#endif - -#ifdef __cplusplus -/** - Init with the required values. - - @param templateName Predefined or dynamically created window template. Currently only predefined window template layouts are defined. - */ -- (instancetype)initWithTemplate:(NSString *)templateName; - - -/** - Convinience constructor with all the parameters. - - @param templateName Predefined or dynamically created window template. Currently only predefined window template layouts are defined. - @param dayColorScheme The color scheme to use when the head unit is in a light / day situation. If nil, the existing color scheme will be used. - @param nightColorScheme The color scheme to use when the head unit is in a dark / night situation. - */ -- (instancetype)initWithTemplate:(NSString *)templateName dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme; - -/** - Predefined or dynamically created window template. Currently only predefined window template layouts are defined. - */ -@property (strong, nonatomic) NSString *templateName; -#endif - -/** - The color scheme to use when the head unit is in a light / day situation. - */ -@property (strong, nonatomic, nullable) SDLTemplateColorScheme *dayColorScheme; - -/** - The color scheme to use when the head unit is in a dark / night situation. - */ -@property (strong, nonatomic, nullable) SDLTemplateColorScheme *nightColorScheme; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.m deleted file mode 100644 index 9407a0d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTemplateConfiguration.m +++ /dev/null @@ -1,91 +0,0 @@ -// -// SDLTemplateConfiguration.m -// SmartDeviceLink - -#import "SDLTemplateConfiguration.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -@implementation SDLTemplateConfiguration - - -- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout { - return [self initWithTemplate:predefinedLayout]; -} - -#ifndef __cplusplus -- (instancetype)initWithTemplate:(NSString *)template { - self = [super init]; - if (!self) { - return nil; - } - self.template = template; - return self; -} - -- (instancetype)initWithTemplate:(NSString *)template dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme { - self = [self initWithTemplate:template]; - if (!self) { - return nil; - } - self.dayColorScheme = dayColorScheme; - self.nightColorScheme = nightColorScheme; - return self; -} - -- (void)setTemplate:(NSString *)template { - [self.store sdl_setObject:template forName:SDLRPCParameterNameTemplate]; -} - -- (NSString *)template { - return [self.store sdl_objectForName:SDLRPCParameterNameTemplate ofClass:NSString.class error:nil]; -} -#endif - -#ifdef _cplusplus -- (instancetype)initWithTemplate:(NSString *)templateName { - self = [super init]; - if (!self) { - return nil; - } - self.templateName = templateName; - return self; -} - -- (instancetype)initWithTemplate:(NSString *)templateName dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme; { - self = [self initWithTemplate:templateName]; - if (!self) { - return nil; - } - self.dayColorScheme = dayColorScheme; - self.nightColorScheme = nightColorScheme; - return self; -} - -- (void)setTemplateName:(NSString *)templateName { - [self.store sdl_setObject:template forName:SDLRPCParameterNameTemplate]; -} - -- (NSString *)templateName { - return [self.store sdl_objectForName:SDLRPCParameterNameTemplate ofClass:NSString.class error:nil]; -} -#endif - -- (void)setDayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme { - [self.store sdl_setObject:dayColorScheme forName:SDLRPCParameterNameDayColorScheme]; -} - -- (nullable SDLTemplateColorScheme *)dayColorScheme { - return [self.store sdl_objectForName:SDLRPCParameterNameDayColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; -} - -- (void)setNightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme { - [self.store sdl_setObject:nightColorScheme forName:SDLRPCParameterNameNightColorScheme]; -} - -- (nullable SDLTemplateColorScheme *)nightColorScheme { - return [self.store sdl_objectForName:SDLRPCParameterNameNightColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAlignment.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAlignment.h deleted file mode 100644 index 5fafd44..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAlignment.h +++ /dev/null @@ -1,27 +0,0 @@ -// SDLTextAlignment.h -// - - -#import "SDLEnum.h" - -/** - * The list of possible alignments of text in a field. May only work on some display types. used in Show. - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLTextAlignment SDL_SWIFT_ENUM; - -/** - * Text aligned left. - */ -extern SDLTextAlignment const SDLTextAlignmentLeft; - -/** - * Text aligned right. - */ -extern SDLTextAlignment const SDLTextAlignmentRight; - -/** - * Text aligned centered. - */ -extern SDLTextAlignment const SDLTextAlignmentCenter; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAlignment.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAlignment.m deleted file mode 100644 index 1e82636..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAlignment.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLTextAlignment.m -// - - -#import "SDLTextAlignment.h" - -SDLTextAlignment const SDLTextAlignmentLeft = @"LEFT_ALIGNED"; -SDLTextAlignment const SDLTextAlignmentRight = @"RIGHT_ALIGNED"; -SDLTextAlignment const SDLTextAlignmentCenter = @"CENTERED"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.h deleted file mode 100644 index c916e04..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.h +++ /dev/null @@ -1,97 +0,0 @@ -// -// SDLTextAndGraphicManager.h -// SmartDeviceLink -// -// Created by Joel Fischer on 2/22/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLMetadataType.h" -#import "SDLTextAlignment.h" - -@class SDLArtwork; -@class SDLFileManager; -@class SDLTextAndGraphicConfiguration; -@class SDLSystemCapabilityManager; - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - -/** - The handler run when the update has completed - - @param error An error if the update failed and an error occurred - */ -typedef void(^SDLTextAndGraphicUpdateCompletionHandler)(NSError *__nullable error); - -@interface SDLTextAndGraphicManager : NSObject - -/** - A text field that corresponds to SDLShow mainField1. Setting to nil is equivalent to setting an empty string. - */ -@property (copy, nonatomic, nullable) NSString *textField1; -@property (copy, nonatomic, nullable) NSString *textField2; -@property (copy, nonatomic, nullable) NSString *textField3; -@property (copy, nonatomic, nullable) NSString *textField4; -@property (copy, nonatomic, nullable) NSString *mediaTrackTextField; -@property (copy, nonatomic, nullable) NSString *title; -@property (strong, nonatomic, nullable) SDLArtwork *primaryGraphic; -@property (strong, nonatomic, nullable) SDLArtwork *secondaryGraphic; - -@property (copy, nonatomic, nullable) SDLTextAlignment alignment; -@property (copy, nonatomic, nullable) SDLMetadataType textField1Type; -@property (copy, nonatomic, nullable) SDLMetadataType textField2Type; -@property (copy, nonatomic, nullable) SDLMetadataType textField3Type; -@property (copy, nonatomic, nullable) SDLMetadataType textField4Type; - -/** - * If you want to remove the current artwork, set it to this blank artwork. - * - * This artwork is set to null on disconnects to prevent a `sdl_fileManager_fileDoesNotExistError` error when the artwork is sent again on reconnects. - */ -@property (strong, nonatomic, readonly, nullable) SDLArtwork *blankArtwork; - -@property (assign, nonatomic, getter=isBatchingUpdates) BOOL batchUpdates; - -- (instancetype)init NS_UNAVAILABLE; - -/** - Create a Text and Image Manager with a custom SDLTextAndImageConfiguration. - - @return A new SDLTextAndImageManager - */ -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager; - -/// Starts the manager. This method is used internally. -- (void)start; - -/** - * Stops the manager. This method is used internally. - */ -- (void)stop; - -/** - Update text fields with new text set into the text field properties. Pass an empty string `\@""` to clear the text field. - - If the system does not support a full 4 fields, this will automatically be concatenated and properly send the field available. - - If 3 lines are available: [field1, field2, field3 - field 4] - - If 2 lines are available: [field1 - field2, field3 - field4] - - If 1 line is available: [field1 - field2 - field3 - field4] - - Also updates the primary and secondary images with new image(s) if new one(s) been set. This method will take care of naming the files (based on a hash). This is assumed to be a non-persistant image. - - If it needs to be uploaded, it will be. Once the upload is complete, the on-screen graphic will be updated. - - @param handler A handler run when the fields have finished updating, with an error if the update failed. This handler may be called multiple times when the text update is sent and the image update is sent. - */ -- (void)updateWithCompletionHandler:(nullable SDLTextAndGraphicUpdateCompletionHandler)handler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.m deleted file mode 100644 index 6324e13..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextAndGraphicManager.m +++ /dev/null @@ -1,748 +0,0 @@ -// -// SDLTextAndGraphicManager.m -// SmartDeviceLink -// -// Created by Joel Fischer on 2/22/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLTextAndGraphicManager.h" - -#import "SDLArtwork.h" -#import "SDLConnectionManagerType.h" -#import "SDLError.h" -#import "SDLFileManager.h" -#import "SDLImage.h" -#import "SDLLogMacros.h" -#import "SDLMetadataTags.h" -#import "SDLNotificationConstants.h" -#import "SDLOnHMIStatus.h" -#import "SDLPredefinedWindows.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCResponseNotification.h" -#import "SDLSetDisplayLayoutResponse.h" -#import "SDLShow.h" -#import "SDLSystemCapability.h" -#import "SDLSystemCapabilityManager.h" -#import "SDLTextField.h" -#import "SDLWindowCapability.h" -#import "SDLWindowCapability+ScreenManagerExtensions.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLTextAndGraphicManager() - -// Dependencies -@property (weak, nonatomic) id connectionManager; -@property (weak, nonatomic) SDLFileManager *fileManager; -@property (weak, nonatomic) SDLSystemCapabilityManager *systemCapabilityManager; - -/** - A show describing the current text and images on the screen (not soft buttons, etc.) - */ -@property (strong, nonatomic) SDLShow *currentScreenData; - -/** - This is the "full" update, including both text and image names, whether or not that will succeed at the moment (e.g. if images are in the process of uploading) - */ -@property (strong, nonatomic, nullable) SDLShow *inProgressUpdate; -@property (copy, nonatomic, nullable) SDLTextAndGraphicUpdateCompletionHandler inProgressHandler; - -@property (strong, nonatomic, nullable) SDLShow *queuedImageUpdate; -@property (assign, nonatomic) BOOL hasQueuedUpdate; -@property (copy, nonatomic, nullable) SDLTextAndGraphicUpdateCompletionHandler queuedUpdateHandler; - -@property (strong, nonatomic, nullable) SDLWindowCapability *windowCapability; -@property (strong, nonatomic, nullable) SDLHMILevel currentLevel; - -@property (strong, nonatomic, nullable) SDLArtwork *blankArtwork; - -@property (assign, nonatomic) BOOL waitingOnHMILevelUpdateToUpdate; -@property (assign, nonatomic) BOOL isDirty; - -@end - -@implementation SDLTextAndGraphicManager - -- (instancetype)initWithConnectionManager:(id)connectionManager fileManager:(SDLFileManager *)fileManager systemCapabilityManager:(SDLSystemCapabilityManager *)systemCapabilityManager { - self = [super init]; - if (!self) { return nil; } - - _connectionManager = connectionManager; - _fileManager = fileManager; - _systemCapabilityManager = systemCapabilityManager; - - _alignment = SDLTextAlignmentCenter; - - _currentScreenData = [[SDLShow alloc] init]; - _currentLevel = SDLHMILevelNone; - - _waitingOnHMILevelUpdateToUpdate = NO; - _isDirty = NO; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusNotification:) name:SDLDidChangeHMIStatusNotification object:nil]; - - return self; -} - -- (void)start { - SDLLogD(@"Starting manager"); - - // Make sure none of the properties were set after the manager was shut down - [self sdl_reset]; - - [self.systemCapabilityManager subscribeToCapabilityType:SDLSystemCapabilityTypeDisplays withObserver:self selector:@selector(sdl_displayCapabilityDidUpdate:)]; -} - -- (void)stop { - SDLLogD(@"Stopping manager"); - [self sdl_reset]; - - [self.systemCapabilityManager unsubscribeFromCapabilityType:SDLSystemCapabilityTypeDisplays withObserver:self]; -} - -- (void)sdl_reset { - SDLLogV(@"Resetting properties"); - _textField1 = nil; - _textField2 = nil; - _textField3 = nil; - _textField4 = nil; - _mediaTrackTextField = nil; - _primaryGraphic = nil; - _secondaryGraphic = nil; - _alignment = SDLTextAlignmentCenter; - _textField1Type = nil; - _textField2Type = nil; - _textField3Type = nil; - _textField4Type = nil; - - _currentScreenData = [[SDLShow alloc] init]; - _inProgressUpdate = nil; - _inProgressHandler = nil; - _queuedImageUpdate = nil; - _hasQueuedUpdate = NO; - _queuedUpdateHandler = nil; - _windowCapability = nil; - _currentLevel = SDLHMILevelNone; - _blankArtwork = nil; - _waitingOnHMILevelUpdateToUpdate = NO; - _isDirty = NO; -} - -#pragma mark - Upload / Send - -- (void)updateWithCompletionHandler:(nullable SDLTextAndGraphicUpdateCompletionHandler)handler { - if (self.isBatchingUpdates) { return; } - - // Don't send if we're in HMI NONE - if (self.currentLevel == nil || [self.currentLevel isEqualToString:SDLHMILevelNone]) { - self.waitingOnHMILevelUpdateToUpdate = YES; - return; - } else { - self.waitingOnHMILevelUpdateToUpdate = NO; - } - - if (self.isDirty) { - self.isDirty = NO; - [self sdl_updateWithCompletionHandler:handler]; - } -} - -- (void)sdl_updateWithCompletionHandler:(nullable SDLTextAndGraphicUpdateCompletionHandler)handler { - SDLLogD(@"Updating text and graphics"); - if (self.inProgressUpdate != nil) { - SDLLogV(@"In progress update exists, queueing update"); - // If we already have a pending update, we're going to tell the old handler that it was superseded by a new update and then return - if (self.queuedUpdateHandler != nil) { - SDLLogV(@"Queued update already exists, superseding previous queued update"); - self.queuedUpdateHandler([NSError sdl_textAndGraphicManager_pendingUpdateSuperseded]); - self.queuedUpdateHandler = nil; - } - - if (handler != nil) { - self.queuedUpdateHandler = handler; - } else { - self.hasQueuedUpdate = YES; - } - - return; - } - - SDLShow *fullShow = [[SDLShow alloc] init]; - fullShow.alignment = self.alignment; - fullShow.metadataTags = [[SDLMetadataTags alloc] init]; - fullShow = [self sdl_assembleShowText:fullShow]; - fullShow = [self sdl_assembleShowImages:fullShow]; - - self.inProgressHandler = handler; - - __weak typeof(self)weakSelf = self; - if (!([self sdl_shouldUpdatePrimaryImage] || [self sdl_shouldUpdateSecondaryImage])) { - SDLLogV(@"No images to send, sending text"); - // If there are no images to update, just send the text - self.inProgressUpdate = [self sdl_extractTextFromShow:fullShow]; - } else if (![self sdl_artworkNeedsUpload:self.primaryGraphic] && ![self sdl_artworkNeedsUpload:self.secondaryGraphic]) { - SDLLogV(@"Images already uploaded, sending full update"); - // The files to be updated are already uploaded, send the full show immediately - self.inProgressUpdate = fullShow; - } else { - SDLLogV(@"Images need to be uploaded, sending text and uploading images"); - - // We need to upload or queue the upload of the images - // Send the text immediately - self.inProgressUpdate = [self sdl_extractTextFromShow:fullShow]; - - // Start uploading the images - __block SDLShow *thisUpdate = fullShow; - [self sdl_uploadImagesWithCompletionHandler:^(NSError *_Nullable error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - - if (error != nil) { - SDLShow *showWithGraphics = [self sdl_createImageOnlyShowWithPrimaryArtwork:self.primaryGraphic secondaryArtwork:self.secondaryGraphic]; - if (showWithGraphics != nil) { - SDLLogW(@"Some images failed to upload. Sending update with the successfully uploaded images"); - self.inProgressUpdate = showWithGraphics; - } else { - SDLLogE(@"All images failed to upload. No graphics to show, skipping update."); - self.inProgressUpdate = nil; - } - return; - } - - // Check if queued image update still matches our images (there could have been a new Show in the meantime) and send a new update if it does. Since the images will already be on the head unit, the whole show will be sent - // TODO: Send delete if it doesn't? - if ([strongSelf sdl_showImages:thisUpdate isEqualToShowImages:strongSelf.queuedImageUpdate]) { - SDLLogV(@"Queued image update matches the images we need, sending update"); - return [strongSelf sdl_updateWithCompletionHandler:strongSelf.inProgressHandler]; - } else { - SDLLogV(@"Queued image update does not match the images we need, skipping update"); - } - }]; - // When the images are done uploading, send another show with the images - self.queuedImageUpdate = fullShow; - } - - if (self.inProgressUpdate == nil) { return; } - - [self.connectionManager sendConnectionRequest:self.inProgressUpdate withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - SDLLogD(@"Text and Graphic update completed"); - - // TODO: Monitor and delete old images when space is low? - if (response.success) { - [strongSelf sdl_updateCurrentScreenDataFromShow:(SDLShow *)request]; - } - - strongSelf.inProgressUpdate = nil; - if (strongSelf.inProgressHandler != nil) { - strongSelf.inProgressHandler(error); - strongSelf.inProgressHandler = nil; - } - - if (strongSelf.hasQueuedUpdate) { - SDLLogV(@"Queued update exists, sending another update"); - [strongSelf sdl_updateWithCompletionHandler:[strongSelf.queuedUpdateHandler copy]]; - strongSelf.queuedUpdateHandler = nil; - strongSelf.hasQueuedUpdate = NO; - } - }]; -} - -- (void)sdl_uploadImagesWithCompletionHandler:(void (^)(NSError *_Nullable error))handler { - NSMutableArray *artworksToUpload = [NSMutableArray array]; - if ([self sdl_shouldUpdatePrimaryImage] && !self.primaryGraphic.isStaticIcon) { - [artworksToUpload addObject:self.primaryGraphic]; - } - if ([self sdl_shouldUpdateSecondaryImage] && !self.secondaryGraphic.isStaticIcon) { - [artworksToUpload addObject:self.secondaryGraphic]; - } - - if (artworksToUpload.count == 0 - && (self.primaryGraphic.isStaticIcon || self.secondaryGraphic.isStaticIcon)) { - SDLLogD(@"Upload attempted on static icons, sending them without upload instead"); - handler(nil); - } - - [self.fileManager uploadArtworks:artworksToUpload completionHandler:^(NSArray * _Nonnull artworkNames, NSError * _Nullable error) { - if (error != nil) { - SDLLogW(@"Text and graphic manager artwork failed to upload with error: %@", error.localizedDescription); - } - - handler(error); - }]; -} - -#pragma mark - Assembly of Shows - -#pragma mark Images - -- (SDLShow *)sdl_assembleShowImages:(SDLShow *)show { - if (![self sdl_shouldUpdatePrimaryImage] && ![self sdl_shouldUpdateSecondaryImage]) { - return show; - } - - if ([self sdl_shouldUpdatePrimaryImage]) { - show.graphic = self.primaryGraphic.imageRPC; - } - if ([self sdl_shouldUpdateSecondaryImage]) { - show.secondaryGraphic = self.secondaryGraphic.imageRPC; - } - - return show; -} - -#pragma mark Text - -- (SDLShow *)sdl_assembleShowText:(SDLShow *)show { - [self sdl_setBlankTextFieldsWithShow:show]; - - if (self.mediaTrackTextField != nil && [self sdl_shouldUpdateMediaTextField]) { - show.mediaTrack = self.mediaTrackTextField; - } else { - show.mediaTrack = @""; - } - - if (self.title != nil && [self sdl_shouldUpdateTitleField]) { - show.templateTitle = self.title; - } else { - show.templateTitle = @""; - } - - NSArray *nonNilFields = [self sdl_findNonNilTextFields]; - if (nonNilFields.count == 0) { return show; } - - NSUInteger numberOfLines = self.windowCapability.maxNumberOfMainFieldLines; - if (numberOfLines == 1) { - show = [self sdl_assembleOneLineShowText:show withShowFields:nonNilFields]; - } else if (numberOfLines == 2) { - show = [self sdl_assembleTwoLineShowText:show]; - } else if (numberOfLines == 3) { - show = [self sdl_assembleThreeLineShowText:show]; - } else if (numberOfLines == 4) { - show = [self sdl_assembleFourLineShowText:show]; - } - - return show; -} - -- (SDLShow *)sdl_assembleOneLineShowText:(SDLShow *)show withShowFields:(NSArray *)fields { - NSMutableString *showString1 = [NSMutableString stringWithString:fields[0]]; - for (NSUInteger i = 1; i < fields.count; i++) { - [showString1 appendFormat:@" - %@", fields[i]]; - } - show.mainField1 = showString1.copy; - - SDLMetadataTags *tags = [[SDLMetadataTags alloc] init]; - NSMutableArray *metadataArray = [NSMutableArray array]; - self.textField1Type ? [metadataArray addObject:self.textField1Type] : nil; - self.textField2Type ? [metadataArray addObject:self.textField2Type] : nil; - self.textField3Type ? [metadataArray addObject:self.textField3Type] : nil; - self.textField4Type ? [metadataArray addObject:self.textField4Type] : nil; - tags.mainField1 = [metadataArray copy]; - show.metadataTags = tags; - - return show; -} - -- (SDLShow *)sdl_assembleTwoLineShowText:(SDLShow *)show { - NSMutableString *tempString = [NSMutableString string]; - if (self.textField1.length > 0) { - // If text 1 exists, put it in slot 1 - [tempString appendString:self.textField1]; - show.metadataTags.mainField1 = self.textField1Type.length > 0 ? @[self.textField1Type] : @[]; - } - - if (self.textField2.length > 0) { - if (!(self.textField3.length > 0 || self.textField4.length > 0)) { - // If text 3 & 4 do not exist, put it in slot 2 - show.mainField2 = self.textField2; - show.metadataTags.mainField2 = self.textField2Type.length > 0 ? @[self.textField2Type] : @[]; - } else if (self.textField1.length > 0) { - // If text 1 exists, put it in slot 1 formatted - [tempString appendFormat:@" - %@", self.textField2]; - show.metadataTags.mainField1 = self.textField2Type.length > 0 ? [show.metadataTags.mainField1 arrayByAddingObjectsFromArray:@[self.textField2Type]] : show.metadataTags.mainField1; - } else { - // If text 1 does not exist, put it in slot 1 unformatted - [tempString appendString:self.textField2]; - show.metadataTags.mainField1 = self.textField2Type.length > 0 ? @[self.textField2Type] : @[]; - } - } - - show.mainField1 = [tempString copy]; - - tempString = [NSMutableString string]; - if (self.textField3.length > 0) { - // If text 3 exists, put it in slot 2 - [tempString appendString:self.textField3]; - show.metadataTags.mainField2 = self.textField3Type.length > 0 ? @[self.textField3Type] : @[]; - } - - if (self.textField4.length > 0) { - if (self.textField3.length > 0) { - // If text 3 exists, put it in slot 2 formatted - [tempString appendFormat:@" - %@", self.textField4]; - show.metadataTags.mainField2 = self.textField4Type.length > 0 ? [show.metadataTags.mainField2 arrayByAddingObjectsFromArray:@[self.textField4Type]] : show.metadataTags.mainField2; - } else { - // If text 3 does not exist, put it in slot 3 unformatted - [tempString appendString:self.textField4]; - show.metadataTags.mainField2 = self.textField4Type.length > 0 ? @[self.textField4Type] : @[]; - } - } - - if (tempString.length > 0) { - show.mainField2 = [tempString copy]; - } - - return show; -} - -- (SDLShow *)sdl_assembleThreeLineShowText:(SDLShow *)show { - if (self.textField1.length > 0) { - show.mainField1 = self.textField1; - show.metadataTags.mainField1 = self.textField1Type.length > 0 ? @[self.textField1Type] : @[]; - } - - if (self.textField2.length > 0) { - show.mainField2 = self.textField2; - show.metadataTags.mainField2 = self.textField2Type.length > 0 ? @[self.textField2Type] : @[]; - } - - NSMutableString *tempString = [NSMutableString string]; - if (self.textField3.length > 0) { - [tempString appendString:self.textField3]; - show.metadataTags.mainField3 = self.textField3Type.length > 0 ? @[self.textField3Type] : @[]; - } - - if (self.textField4.length > 0) { - if (self.textField3.length > 0) { - // If text 3 exists, put it in slot 3 formatted - [tempString appendFormat:@" - %@", self.textField4]; - show.metadataTags.mainField3 = self.textField4Type.length > 0 ? [show.metadataTags.mainField3 arrayByAddingObjectsFromArray:@[self.textField4Type]] : show.metadataTags.mainField3; - } else { - // If text 3 does not exist, put it in slot 3 formatted - [tempString appendString:self.textField4]; - show.metadataTags.mainField3 = self.textField4Type.length > 0 ? @[self.textField4Type] : @[]; - } - } - - show.mainField3 = [tempString copy]; - - return show; -} - -- (SDLShow *)sdl_assembleFourLineShowText:(SDLShow *)show { - if (self.textField1.length > 0) { - show.mainField1 = self.textField1; - show.metadataTags.mainField1 = self.textField1Type.length > 0 ? @[self.textField1Type] : @[]; - } - - if (self.textField2.length > 0) { - show.mainField2 = self.textField2; - show.metadataTags.mainField2 = self.textField2Type.length > 0 ? @[self.textField2Type] : @[]; - } - - if (self.textField3.length > 0) { - show.mainField3 = self.textField3; - show.metadataTags.mainField3 = self.textField3Type.length > 0 ? @[self.textField3Type] : @[]; - } - - if (self.textField4.length > 0) { - show.mainField4 = self.textField4; - show.metadataTags.mainField4 = self.textField4Type.length > 0 ? @[self.textField4Type] : @[]; - } - - return show; -} - -- (SDLShow *)sdl_setBlankTextFieldsWithShow:(SDLShow *)show { - show.mainField1 = @""; - show.mainField2 = @""; - show.mainField3 = @""; - show.mainField4 = @""; - show.mediaTrack = @""; - show.templateTitle = @""; - - return show; -} - -#pragma mark - Extraction - -- (SDLShow *)sdl_extractTextFromShow:(SDLShow *)show { - SDLShow *newShow = [[SDLShow alloc] init]; - newShow.mainField1 = show.mainField1; - newShow.mainField2 = show.mainField2; - newShow.mainField3 = show.mainField3; - newShow.mainField4 = show.mainField4; - newShow.mediaTrack = show.mediaTrack; - newShow.templateTitle = show.templateTitle; - newShow.metadataTags = show.metadataTags; - - return newShow; -} - -- (SDLShow *)sdl_extractImageFromShow:(SDLShow *)show { - SDLShow *newShow = [[SDLShow alloc] init]; - newShow.graphic = show.graphic; - newShow.secondaryGraphic = show.secondaryGraphic; - - return newShow; -} - -- (nullable SDLShow *)sdl_createImageOnlyShowWithPrimaryArtwork:(nullable SDLArtwork *)primaryArtwork secondaryArtwork:(nullable SDLArtwork *)secondaryArtwork { - SDLShow *newShow = [[SDLShow alloc] init]; - newShow.graphic = ![self sdl_artworkNeedsUpload:primaryArtwork] ? primaryArtwork.imageRPC : nil; - newShow.secondaryGraphic = ![self sdl_artworkNeedsUpload:secondaryArtwork] ? secondaryArtwork.imageRPC : nil; - - if (newShow.graphic == nil && newShow.secondaryGraphic == nil) { - SDLLogV(@"No graphics to upload"); - return nil; - } - - return newShow; -} - -- (void)sdl_updateCurrentScreenDataFromShow:(SDLShow *)show { - // If the items are nil, they were not updated, so we can't just set it directly - self.currentScreenData.mainField1 = show.mainField1 ?: self.currentScreenData.mainField1; - self.currentScreenData.mainField2 = show.mainField2 ?: self.currentScreenData.mainField2; - self.currentScreenData.mainField3 = show.mainField3 ?: self.currentScreenData.mainField3; - self.currentScreenData.mainField4 = show.mainField4 ?: self.currentScreenData.mainField4; - self.currentScreenData.mediaTrack = show.mediaTrack ?: self.currentScreenData.mediaTrack; - self.currentScreenData.templateTitle = show.templateTitle ?: self.currentScreenData.templateTitle; - self.currentScreenData.metadataTags = show.metadataTags ?: self.currentScreenData.metadataTags; - self.currentScreenData.alignment = show.alignment ?: self.currentScreenData.alignment; - self.currentScreenData.graphic = show.graphic ?: self.currentScreenData.graphic; - self.currentScreenData.secondaryGraphic = show.secondaryGraphic ?: self.currentScreenData.secondaryGraphic; -} - -#pragma mark - Helpers - -- (BOOL)sdl_artworkNeedsUpload:(SDLArtwork *)artwork { - return (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && !artwork.isStaticIcon); -} - -- (BOOL)sdl_shouldUpdatePrimaryImage { - BOOL templateSupportsPrimaryArtwork = [self.windowCapability hasImageFieldOfName:SDLImageFieldNameGraphic]; - BOOL graphicMatchesExisting = [self.currentScreenData.graphic.value isEqualToString:self.primaryGraphic.name]; - BOOL graphicExists = (self.primaryGraphic != nil); - - return (templateSupportsPrimaryArtwork && !graphicMatchesExisting && graphicExists); -} - -- (BOOL)sdl_shouldUpdateSecondaryImage { - BOOL templateSupportsSecondaryArtwork = [self.windowCapability hasImageFieldOfName:SDLImageFieldNameSecondaryGraphic]; - BOOL graphicMatchesExisting = [self.currentScreenData.secondaryGraphic.value isEqualToString:self.secondaryGraphic.name]; - BOOL graphicExists = (self.secondaryGraphic != nil); - - // Cannot detect if there is a secondary image, so we'll just try to detect if there's a primary image and allow it if there is. - return (templateSupportsSecondaryArtwork && !graphicMatchesExisting && graphicExists); -} - -- (BOOL)sdl_shouldUpdateMediaTextField { - return [self.windowCapability hasTextFieldOfName:SDLTextFieldNameMediaTrack]; -} - -- (BOOL)sdl_shouldUpdateTitleField { - return [self.windowCapability hasTextFieldOfName:SDLTextFieldNameTemplateTitle]; -} - -- (NSArray *)sdl_findNonNilTextFields { - NSMutableArray *array = [NSMutableArray array]; - (self.textField1.length > 0) ? [array addObject:self.textField1] : nil; - (self.textField2.length > 0) ? [array addObject:self.textField2] : nil; - (self.textField3.length > 0) ? [array addObject:self.textField3] : nil; - (self.textField4.length > 0) ? [array addObject:self.textField4] : nil; - - return [array copy]; -} - -- (NSArray *)sdl_findNonNilMetadataFields { - NSMutableArray *array = [NSMutableArray array]; - (self.textField1Type.length) > 0 ? [array addObject:self.textField1Type] : nil; - (self.textField2Type.length) > 0 ? [array addObject:self.textField2Type] : nil; - (self.textField3Type.length) > 0 ? [array addObject:self.textField3Type] : nil; - (self.textField4Type.length) > 0 ? [array addObject:self.textField4Type] : nil; - - return [array copy]; -} - -- (BOOL)sdl_hasData { - BOOL hasTextFields = ([self sdl_findNonNilTextFields].count > 0) || (self.title.length > 0) || (self.mediaTrackTextField.length > 0); - BOOL hasImageFields = (self.primaryGraphic != nil) || (self.secondaryGraphic != nil); - - return hasTextFields || hasImageFields; -} - -#pragma mark - Equality - -- (BOOL)sdl_showImages:(SDLShow *)show isEqualToShowImages:(SDLShow *)show2 { - BOOL same = NO; - same = ((show.graphic.value == nil && show.graphic.value == nil) - || [show.graphic.value isEqualToString:show2.graphic.value]); - if (!same) { return NO; } - - same = ((show.secondaryGraphic.value == nil && show.secondaryGraphic.value == nil) - || [show.secondaryGraphic.value isEqualToString:show2.secondaryGraphic.value]); - - return same; -} - -#pragma mark - Getters / Setters - -#pragma mark - Setters - -- (void)setTextField1:(nullable NSString *)textField1 { - _textField1 = textField1; - _isDirty = YES; - if (!self.isBatchingUpdates) { - // If we aren't batching, send the update immediately, if we are, set ourselves as dirty (so we know we should send an update after the batch ends) - [self updateWithCompletionHandler:nil]; - } -} - -- (void)setTextField2:(nullable NSString *)textField2 { - _textField2 = textField2; - _isDirty = YES; - if (!self.isBatchingUpdates) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)setTextField3:(nullable NSString *)textField3 { - _textField3 = textField3; - _isDirty = YES; - if (!self.isBatchingUpdates) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)setTextField4:(nullable NSString *)textField4 { - _textField4 = textField4; - _isDirty = YES; - if (!self.isBatchingUpdates) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)setMediaTrackTextField:(nullable NSString *)mediaTrackTextField { - _mediaTrackTextField = mediaTrackTextField; - _isDirty = YES; - if (!self.isBatchingUpdates) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)setTitle:(nullable NSString *)title { - _title = title; - _isDirty = YES; - if (!self.isBatchingUpdates) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)setPrimaryGraphic:(nullable SDLArtwork *)primaryGraphic { - _primaryGraphic = primaryGraphic; - _isDirty = YES; - if (!self.isBatchingUpdates) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)setSecondaryGraphic:(nullable SDLArtwork *)secondaryGraphic { - _secondaryGraphic = secondaryGraphic; - _isDirty = YES; - if (!self.isBatchingUpdates) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)setAlignment:(nullable SDLTextAlignment)alignment { - _alignment = alignment ? alignment : SDLTextAlignmentCenter; - _isDirty = YES; - if (!self.isBatchingUpdates) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)setTextField1Type:(nullable SDLMetadataType)textField1Type { - _textField1Type = textField1Type; - _isDirty = YES; - if (!self.isBatchingUpdates) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)setTextField2Type:(nullable SDLMetadataType)textField2Type { - _textField2Type = textField2Type; - _isDirty = YES; - if (!self.isBatchingUpdates) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)setTextField3Type:(nullable SDLMetadataType)textField3Type { - _textField3Type = textField3Type; - _isDirty = YES; - if (!self.isBatchingUpdates) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)setTextField4Type:(nullable SDLMetadataType)textField4Type { - _textField4Type = textField4Type; - _isDirty = YES; - if (!self.isBatchingUpdates) { - [self updateWithCompletionHandler:nil]; - } -} - -- (BOOL)hasQueuedUpdate { - return (_hasQueuedUpdate || _queuedUpdateHandler != nil); -} - -- (nullable SDLArtwork *)blankArtwork { - if (_blankArtwork != nil) { - return _blankArtwork; - } - - UIGraphicsBeginImageContextWithOptions(CGSizeMake(5, 5), NO, 0.0); - UIImage *blankImage = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - - _blankArtwork = [SDLArtwork artworkWithImage:blankImage name:@"sdl_BlankArt" asImageFormat:SDLArtworkImageFormatPNG]; - - return _blankArtwork; -} - -#pragma mark - Subscribed notifications - -- (void)sdl_displayCapabilityDidUpdate:(SDLSystemCapability *)systemCapability { - // we won't use the object in the parameter but the convenience method of the system capability manager - self.windowCapability = self.systemCapabilityManager.defaultMainWindowCapability; - - // Auto-send an updated show - if ([self sdl_hasData]) { - [self updateWithCompletionHandler:nil]; - } -} - -- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { - SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; - - if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { - return; - } - - SDLHMILevel oldLevel = self.currentLevel; - self.currentLevel = hmiStatus.hmiLevel; - - // Auto-send an updated show if we were in NONE and now we are not - if ([oldLevel isEqualToString:SDLHMILevelNone] && ![self.currentLevel isEqualToString:SDLHMILevelNone] && self.waitingOnHMILevelUpdateToUpdate) { - [self sdl_updateWithCompletionHandler:nil]; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.h deleted file mode 100644 index 310b024..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// SDLTextField+ScreenManagerExtensions.h -// SmartDeviceLink -// -// Created by Joel Fischer on 5/20/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLTextField.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLTextField (ScreenManagerExtensions) - -+ (NSArray *)allTextFields; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.m deleted file mode 100644 index 746c5ae..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField+ScreenManagerExtensions.m +++ /dev/null @@ -1,26 +0,0 @@ -// -// SDLTextField+ScreenManagerExtensions.m -// SmartDeviceLink -// -// Created by Joel Fischer on 5/20/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "SDLTextField+ScreenManagerExtensions.h" - -@implementation SDLTextField (ScreenManagerExtensions) - -+ (NSArray *)sdl_allTextFieldNames { - return @[SDLTextFieldNameETA, SDLTextFieldNameMenuName, SDLTextFieldNameMenuTitle, SDLTextFieldNameStatusBar, SDLTextFieldNameAlertText1, SDLTextFieldNameAlertText2, SDLTextFieldNameAlertText3, SDLTextFieldNameMainField1, SDLTextFieldNameMainField2, SDLTextFieldNameMainField3, SDLTextFieldNameMainField4, SDLTextFieldNameMediaClock, SDLTextFieldNameMediaTrack, SDLTextFieldNamePhoneNumber, SDLTextFieldNameAddressLines, SDLTextFieldNameLocationName, SDLTextFieldNameSliderFooter, SDLTextFieldNameSliderHeader, SDLTextFieldNameTertiaryText, SDLTextFieldNameSecondaryText, SDLTextFieldNameTemplateTitle, SDLTextFieldNameTotalDistance, SDLTextFieldNameNavigationText1, SDLTextFieldNameNavigationText2, SDLTextFieldNameLocationDescription, SDLTextFieldNameScrollableMessageBody, SDLTextFieldNameInitialInteractionText, SDLTextFieldNameAudioPassThruDisplayText1, SDLTextFieldNameAudioPassThruDisplayText2]; -} - -+ (NSArray *)allTextFields { - NSMutableArray *tempTextFields = [NSMutableArray array]; - for (SDLTextFieldName fieldName in [self sdl_allTextFieldNames]) { - [tempTextFields addObject:[[SDLTextField alloc] initWithName:fieldName characterSet:SDLCharacterSetCID1 width:500 rows:8]]; - } - - return tempTextFields; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.h deleted file mode 100644 index d1dcedb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.h +++ /dev/null @@ -1,60 +0,0 @@ -// SDLTextField.h -// - -#import "SDLRPCMessage.h" - -#import "SDLCharacterSet.h" -#import "SDLTextFieldName.h" - - -NS_ASSUME_NONNULL_BEGIN - -/** - * Struct defining the characteristics of a displayed field on the HMI. - * - * @since SDL 1.0 - */ -@interface SDLTextField : SDLRPCStruct - -/** - * The enumeration identifying the field. - * - * @see SDLTextFieldName - * - * Required - */ -@property (strong, nonatomic) SDLTextFieldName name; - -/** - * The character set that is supported in this field. - * - * @see SDLCharacterSet - * - * Required - */ -@property (strong, nonatomic) SDLCharacterSet characterSet; - -/** - * The number of characters in one row of this field. - * - * Required, Integer 1 - 500 - */ -@property (strong, nonatomic) NSNumber *width; - -/** - * The number of rows for this text field. - * - * Required, Integer 1 - 8 - */ -@property (strong, nonatomic) NSNumber *rows; - -/// Convenience initalizer for the TextField RPC struct -/// @param name The name identifying this text field -/// @param characterSet The character set of this text field -/// @param width The number of characters per row allowed in this text field -/// @param rows The number of rows allowed in this text field -- (instancetype)initWithName:(SDLTextFieldName)name characterSet:(SDLCharacterSet)characterSet width:(NSUInteger)width rows:(NSUInteger)rows; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.m deleted file mode 100644 index 80941cc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextField.m +++ /dev/null @@ -1,65 +0,0 @@ -// SDLTextField.m -// - -#import "SDLTextField.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLCharacterSet.h" -#import "SDLRPCParameterNames.h" -#import "SDLTextFieldName.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLTextField - -- (void)setName:(SDLTextFieldName)name { - [self.store sdl_setObject:name forName:SDLRPCParameterNameName]; -} - -- (SDLTextFieldName)name { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameName error:&error]; -} - -- (void)setCharacterSet:(SDLCharacterSet)characterSet { - [self.store sdl_setObject:characterSet forName:SDLRPCParameterNameCharacterSet]; -} - -- (SDLCharacterSet)characterSet { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameCharacterSet error:&error]; -} - -- (void)setWidth:(NSNumber *)width { - [self.store sdl_setObject:width forName:SDLRPCParameterNameWidth]; -} - -- (NSNumber *)width { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameWidth ofClass:NSNumber.class error:&error]; -} - -- (void)setRows:(NSNumber *)rows { - [self.store sdl_setObject:rows forName:SDLRPCParameterNameRows]; -} - -- (NSNumber *)rows { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameRows ofClass:NSNumber.class error:&error]; -} - -- (instancetype)initWithName:(SDLTextFieldName)name characterSet:(SDLCharacterSet)characterSet width:(NSUInteger)width rows:(NSUInteger)rows { - self = [self init]; - if (!self) { return nil; } - - self.name = name; - self.characterSet = characterSet; - self.width = @(width); - self.rows = @(rows); - - return self; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.h deleted file mode 100644 index 7827e4e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.h +++ /dev/null @@ -1,201 +0,0 @@ -// SDLTextFieldName.h -// - - -#import "SDLEnum.h" - -/** - * Names of the text fields that can appear on a SDL display. Used in TextFieldName. - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLTextFieldName SDL_SWIFT_ENUM; - -/** - * The first line of the first set of main fields of the persistent display. Applies to SDLShow. - */ -extern SDLTextFieldName const SDLTextFieldNameMainField1; - -/** - * The second line of the first set of main fields of the persistent display. Applies to SDLShow. - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameMainField2; - -/** - * The first line of the second set of main fields of the persistent display. Applies to SDLShow. - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameMainField3; - -/** - * The second line of the second set of main fields of the persistent display. Applies to SDLShow. - - @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameMainField4; - -/** - The title line of the persistent display. Applies to SDLShow. - - @since SDL 6.0 - */ -extern SDLTextFieldName const SDLTextFieldNameTemplateTitle; - -/** - * The status bar on the NGN display. Applies to SDLShow. - */ -extern SDLTextFieldName const SDLTextFieldNameStatusBar; - -/** - * Text value for MediaClock field. Must be properly formatted according to MediaClockFormat. Applies to SDLShow. - * - * @discussion This field is commonly used to show elapsed or remaining time in an audio track or audio capture. - */ -extern SDLTextFieldName const SDLTextFieldNameMediaClock; - -/** - * The track field of NGN type ACMs. This field is only available for media applications on a NGN display. Applies to SDLShow. - * - * @discussion This field is commonly used to show the current track number - */ -extern SDLTextFieldName const SDLTextFieldNameMediaTrack; - -/** - * The first line of the alert text field. Applies to SDLAlert. - */ -extern SDLTextFieldName const SDLTextFieldNameAlertText1; - -/** - * The second line of the alert text field. Applies to SDLAlert. - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameAlertText2; - -/** - * The third line of the alert text field. Applies to SDLAlert. - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameAlertText3; - -/** - * Long form body of text that can include newlines and tabs. Applies to SDLScrollableMessage. - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameScrollableMessageBody; - -/** - * First line suggestion for a user response (in the case of VR enabled interaction). - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameInitialInteractionText; - -/** - * First line of navigation text. - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameNavigationText1; - -/** - * Second line of navigation text. - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameNavigationText2; - -/** - * Estimated Time of Arrival time for navigation. - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameETA; - -/** - * Total distance to destination for navigation. - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameTotalDistance; - -/** - * First line of text for audio pass thru. - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameAudioPassThruDisplayText1; - -/** - * Second line of text for audio pass thru. - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameAudioPassThruDisplayText2; - -/** - * Header text for slider. - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameSliderHeader; - -/** - * Footer text for slider - * - * @since SDL 2.0 - */ -extern SDLTextFieldName const SDLTextFieldNameSliderFooter; - -/** - * Primary text for SDLChoice - */ -extern SDLTextFieldName const SDLTextFieldNameMenuName; - -/** - * Secondary text for SDLChoice - */ -extern SDLTextFieldName const SDLTextFieldNameSecondaryText; - -/** - * Tertiary text for SDLChoice - */ -extern SDLTextFieldName const SDLTextFieldNameTertiaryText; - -/** - * Optional text to label an app menu button (for certain touchscreen platforms) - */ -extern SDLTextFieldName const SDLTextFieldNameMenuTitle; - -/** - * Optional name / title of intended location for SDLSendLocation - * - * @since SDL 4.0 - */ -extern SDLTextFieldName const SDLTextFieldNameLocationName; - -/** - * Optional description of intended location / establishment (if applicable) for SDLSendLocation - * - * @since SDL 4.0 - */ -extern SDLTextFieldName const SDLTextFieldNameLocationDescription; - -/** - * Optional location address (if applicable) for SDLSendLocation - * - * @since SDL 4.0 - */ -extern SDLTextFieldName const SDLTextFieldNameAddressLines; - -/** - * Optional hone number of intended location / establishment (if applicable) for SDLSendLocation - * - * @since SDL 4.0 - */ -extern SDLTextFieldName const SDLTextFieldNamePhoneNumber; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.m deleted file mode 100644 index 3bb04fd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTextFieldName.m +++ /dev/null @@ -1,35 +0,0 @@ -// SDLTextFieldName.m -// - - -#import "SDLTextFieldName.h" - -SDLTextFieldName const SDLTextFieldNameMainField1 = @"mainField1"; -SDLTextFieldName const SDLTextFieldNameMainField2 = @"mainField2"; -SDLTextFieldName const SDLTextFieldNameMainField3 = @"mainField3"; -SDLTextFieldName const SDLTextFieldNameMainField4 = @"mainField4"; -SDLTextFieldName const SDLTextFieldNameTemplateTitle = @"templateTitle"; -SDLTextFieldName const SDLTextFieldNameStatusBar = @"statusBar"; -SDLTextFieldName const SDLTextFieldNameMediaClock = @"mediaClock"; -SDLTextFieldName const SDLTextFieldNameMediaTrack = @"mediaTrack"; -SDLTextFieldName const SDLTextFieldNameAlertText1 = @"alertText1"; -SDLTextFieldName const SDLTextFieldNameAlertText2 = @"alertText2"; -SDLTextFieldName const SDLTextFieldNameAlertText3 = @"alertText3"; -SDLTextFieldName const SDLTextFieldNameScrollableMessageBody = @"scrollableMessageBody"; -SDLTextFieldName const SDLTextFieldNameInitialInteractionText = @"initialInteractionText"; -SDLTextFieldName const SDLTextFieldNameNavigationText1 = @"navigationText1"; -SDLTextFieldName const SDLTextFieldNameNavigationText2 = @"navigationText2"; -SDLTextFieldName const SDLTextFieldNameETA = @"ETA"; -SDLTextFieldName const SDLTextFieldNameTotalDistance = @"totalDistance"; -SDLTextFieldName const SDLTextFieldNameAudioPassThruDisplayText1 = @"audioPassThruDisplayText1"; -SDLTextFieldName const SDLTextFieldNameAudioPassThruDisplayText2 = @"audioPassThruDisplayText2"; -SDLTextFieldName const SDLTextFieldNameSliderHeader = @"sliderHeader"; -SDLTextFieldName const SDLTextFieldNameSliderFooter = @"sliderFooter"; -SDLTextFieldName const SDLTextFieldNameMenuName = @"menuName"; -SDLTextFieldName const SDLTextFieldNameSecondaryText = @"secondaryText"; -SDLTextFieldName const SDLTextFieldNameTertiaryText = @"tertiaryText"; -SDLTextFieldName const SDLTextFieldNameMenuTitle = @"menuTitle"; -SDLTextFieldName const SDLTextFieldNameLocationName = @"locationName"; -SDLTextFieldName const SDLTextFieldNameLocationDescription = @"locationDescription"; -SDLTextFieldName const SDLTextFieldNameAddressLines = @"addressLines"; -SDLTextFieldName const SDLTextFieldNamePhoneNumber = @"phoneNumber"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.h deleted file mode 100644 index dcd75c7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// SDLTimer.h -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLTimer : NSObject - -/// A block called when the timer elapses -@property (copy, nonatomic, nullable) void (^elapsedBlock)(void); - -/// A block called when the timer is cancelled -@property (copy, nonatomic, nullable) void (^canceledBlock)(void); - -/// The time between calling `start` and when the elapsed block will be called -@property (assign, nonatomic) NSTimeInterval duration; - -/// Whether or not the timer is currently running -@property (assign, nonatomic) BOOL timerRunning; - -/// Whether or not the timer will repeat after it completes -@property (assign, nonatomic) BOOL repeat; - -- (instancetype)init NS_UNAVAILABLE; - -/// Initialize a timer with a specified duration on the main run loop without repeating -/// @param duration The duration of the timer. Must not be 0. -- (instancetype)initWithDuration:(NSTimeInterval)duration; - -/// Initialize a timer with a specified duration on the passed run loop and optionally repeating -/// @param duration The duration of the timer -/// @param repeat Whether or not the timer should autorepeat -- (instancetype)initWithDuration:(NSTimeInterval)duration repeat:(BOOL)repeat; - -/// Starts the timer on the main run loop. When the timer has elapsed, the elapsed block will be called. -- (void)start; - -/// Starts the timer on the specified run loop. When the timer has elapsed, the elapsed block will be called. -/// @param runLoop The run loop to start the timer on -- (void)startOnRunLoop:(NSRunLoop *)runLoop; - -/// Cancels and invalidates the timer. The canceled block will be called. -- (void)cancel; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.m deleted file mode 100644 index 39479c9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimer.m +++ /dev/null @@ -1,114 +0,0 @@ -// -// SDLTimer.m -// - -#import "SDLLogMacros.h" -#import "SDLTimer.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLTimerTargetDelegate - -- (void)timerElapsed; - -@end - -@interface SDLTimerTarget : NSObject - -@property (nonatomic, weak) id delegate; - -@end - -@implementation SDLTimerTarget - -- (instancetype)initWithDelegate:(id)delegate { - self = [super init]; - if (self) { - _delegate = delegate; - } - return self; -} - -- (void)timerElapsed { - if ([self.delegate conformsToProtocol:@protocol(SDLTimerTargetDelegate)]) { - [_delegate timerElapsed]; - } -} - -@end - - -@interface SDLTimer () - -@property (strong, nonatomic, nullable) NSTimer *timer; - -@end - - -@implementation SDLTimer - -- (instancetype)initWithDuration:(NSTimeInterval)duration { - return [self initWithDuration:duration repeat:NO]; -} - -- (instancetype)initWithDuration:(NSTimeInterval)duration repeat:(BOOL)repeat { - self = [super init]; - if (!self) { return nil; } - - NSAssert(duration > 0, @"Cannot create a timer with a 0 duration"); - - _duration = duration; - _repeat = repeat; - _timerRunning = NO; - - return self; -} - -- (void)dealloc { - [self cancel]; -} - -- (void)start { - [self startOnRunLoop:[NSRunLoop mainRunLoop]]; -} - -- (void)startOnRunLoop:(NSRunLoop *)runLoop { - if (self.duration > 0) { - [self stopAndDestroyTimer]; - - SDLTimerTarget *timerTarget = [[SDLTimerTarget alloc] initWithDelegate:self]; - self.timer = [NSTimer timerWithTimeInterval:self.duration target:timerTarget selector:@selector(timerElapsed) userInfo:nil repeats:_repeat]; - [runLoop addTimer:self.timer forMode:NSRunLoopCommonModes]; - self.timerRunning = YES; - } -} - -- (void)cancel { - [self stopAndDestroyTimer]; - if (self.timerRunning && self.canceledBlock != nil) { - self.timerRunning = NO; - self.canceledBlock(); - } - self.timerRunning = NO; -} - -- (void)timerElapsed { - if (self.repeat == NO) { - [self stopAndDestroyTimer]; - self.timerRunning = NO; - } - if (self.elapsedBlock != nil) { - self.elapsedBlock(); - } -} - -- (void)stopAndDestroyTimer { - if (self.timer != nil) { - [self.timer invalidate]; - self.timer = nil; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimerMode.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimerMode.h deleted file mode 100644 index 9e0b27b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimerMode.h +++ /dev/null @@ -1,25 +0,0 @@ -// SDLTimerMode.h -// - - -#import "SDLEnum.h" - -/** - The direction of a timer. Used in nothing. - */ -typedef SDLEnum SDLTimerMode SDL_SWIFT_ENUM; - -/** - The timer should count up. - */ -extern SDLTimerMode const SDLTimerModeUp; - -/** - The timer should count down. - */ -extern SDLTimerMode const SDLTimerModeDown; - -/** - The timer should not count. - */ -extern SDLTimerMode const SDLTimerModeNone; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimerMode.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimerMode.m deleted file mode 100644 index c5b3534..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTimerMode.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLTimerMode.m -// - - -#import "SDLTimerMode.h" - -SDLTimerMode const SDLTimerModeUp = @"UP"; -SDLTimerMode const SDLTimerModeDown = @"DOWN"; -SDLTimerMode const SDLTimerModeNone = @"NONE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTireStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTireStatus.h deleted file mode 100644 index 2d00f17..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTireStatus.h +++ /dev/null @@ -1,68 +0,0 @@ -// SDLTireStatus.h -// - -#import "SDLRPCMessage.h" - -#import "SDLWarningLightStatus.h" - -@class SDLSingleTireStatus; - -NS_ASSUME_NONNULL_BEGIN - -/** - Struct used in Vehicle Data; the status and pressure of the tires. - */ -@interface SDLTireStatus : SDLRPCStruct - -/** - Status of the Tire Pressure Telltale. See WarningLightStatus. - - Required - */ -@property (strong, nonatomic) SDLWarningLightStatus pressureTelltale; - -/** - The status of the left front tire. - - Required - */ -@property (strong, nonatomic) SDLSingleTireStatus *leftFront; - -/** - The status of the right front tire. - - Required - */ -@property (strong, nonatomic) SDLSingleTireStatus *rightFront; - -/** - The status of the left rear tire. - - Required - */ -@property (strong, nonatomic) SDLSingleTireStatus *leftRear; - -/** - The status of the right rear tire. - - Required - */ -@property (strong, nonatomic) SDLSingleTireStatus *rightRear; - -/** - The status of the inner left rear tire. - - Required - */ -@property (strong, nonatomic) SDLSingleTireStatus *innerLeftRear; - -/** - The status of the innter right rear tire. - - Required - */ -@property (strong, nonatomic) SDLSingleTireStatus *innerRightRear; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTireStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTireStatus.m deleted file mode 100644 index aa1bac5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTireStatus.m +++ /dev/null @@ -1,79 +0,0 @@ -// SDLTireStatus.m -// - -#import "SDLTireStatus.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLSingleTireStatus.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLTireStatus - -- (void)setPressureTelltale:(SDLWarningLightStatus)pressureTelltale { - [self.store sdl_setObject:pressureTelltale forName:SDLRPCParameterNamePressureTelltale]; -} - -- (SDLWarningLightStatus)pressureTelltale { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNamePressureTelltale error:&error]; -} - -- (void)setLeftFront:(SDLSingleTireStatus *)leftFront { - [self.store sdl_setObject:leftFront forName:SDLRPCParameterNameLeftFront]; -} - -- (SDLSingleTireStatus *)leftFront { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLeftFront ofClass:SDLSingleTireStatus.class error:&error]; -} - -- (void)setRightFront:(SDLSingleTireStatus *)rightFront { - [self.store sdl_setObject:rightFront forName:SDLRPCParameterNameRightFront]; -} - -- (SDLSingleTireStatus *)rightFront { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameRightFront ofClass:SDLSingleTireStatus.class error:&error]; -} - -- (void)setLeftRear:(SDLSingleTireStatus *)leftRear { - [self.store sdl_setObject:leftRear forName:SDLRPCParameterNameLeftRear]; -} - -- (SDLSingleTireStatus *)leftRear { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLeftRear ofClass:SDLSingleTireStatus.class error:&error]; -} - -- (void)setRightRear:(SDLSingleTireStatus *)rightRear { - [self.store sdl_setObject:rightRear forName:SDLRPCParameterNameRightRear]; -} - -- (SDLSingleTireStatus *)rightRear { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameRightRear ofClass:SDLSingleTireStatus.class error:&error]; -} - -- (void)setInnerLeftRear:(SDLSingleTireStatus *)innerLeftRear { - [self.store sdl_setObject:innerLeftRear forName:SDLRPCParameterNameInnerLeftRear]; -} - -- (SDLSingleTireStatus *)innerLeftRear { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameInnerLeftRear ofClass:SDLSingleTireStatus.class error:&error]; -} - -- (void)setInnerRightRear:(SDLSingleTireStatus *)innerRightRear { - [self.store sdl_setObject:innerRightRear forName:SDLRPCParameterNameInnerRightRear]; -} - -- (SDLSingleTireStatus *)innerRightRear { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameInnerRightRear ofClass:SDLSingleTireStatus.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.h deleted file mode 100644 index e001257..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.h +++ /dev/null @@ -1,70 +0,0 @@ -// -// SDLTouch.h -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 6/14/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -@class SDLTouchEvent; - -/// Identifies finger touch -typedef enum { - /// Touch was first finger - SDLTouchIdentifierFirstFinger = 0, - - /// Touch was second finger - SDLTouchIdentifierSecondFinger = 1 -} SDLTouchIdentifier; - -NS_ASSUME_NONNULL_BEGIN - -/// Describes a touch location -@interface SDLTouch : NSObject - -/** - * @abstract - * Initializes a touch. - * @param touchEvent - * Incoming touch event from onOnTouchEvent notification. - * @return SDLTouch - * Instance of SDLTouch. - */ -- (instancetype)initWithTouchEvent:(SDLTouchEvent *)touchEvent; - -/** - * @abstract - * Identifier of the touch's finger. Refer to SDLTouchIdentifier for valid - * identifiers. - */ -@property (nonatomic, assign, readonly) NSInteger identifier; - -/** - * @abstract - * Location of touch point, in the head unit's coordinate system. - */ -@property (nonatomic, assign, readonly) CGPoint location; - -/** - * @abstract - * Timestamp in which the touch occured. - */ -@property (nonatomic, assign, readonly) NSUInteger timeStamp; - -/** - * @abstract - * Returns whether or not this touch is a first finger. - */ -@property (nonatomic, assign, readonly) BOOL isFirstFinger; - -/** - * @abstract - * Returns whether or not this touch is a second finger. - */ -@property (nonatomic, assign, readonly) BOOL isSecondFinger; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.m deleted file mode 100644 index 5837780..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouch.m +++ /dev/null @@ -1,66 +0,0 @@ -// -// SDLTouch.m -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 6/14/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLTouch.h" - -#import "SDLTouchCoord.h" -#import "SDLTouchEvent.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLTouch - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - _identifier = -1; - _location = CGPointZero; - _timeStamp = 0; - - return self; -} - -- (instancetype)initWithTouchEvent:(SDLTouchEvent *)touchEvent { - self = [self init]; - if (self) { - _identifier = touchEvent.touchEventId.integerValue; - NSArray *> *timestamp = touchEvent.timeStamp; - // In the event we receive a null timestamp, we will supply a device timestamp. - if ((timestamp == nil) || (timestamp.count == 0)) { - _timeStamp = (NSUInteger)([[NSDate date] timeIntervalSince1970] * 1000); - } else { - NSNumber *timeStampNumber = (NSNumber *)timestamp[0]; - _timeStamp = timeStampNumber.unsignedIntegerValue; - } - - SDLTouchCoord *coord = touchEvent.coord.firstObject; - _location = CGPointMake(coord.x.floatValue, - coord.y.floatValue); - } - return self; -} - -#pragma mark - Getters -- (BOOL)isFirstFinger { - return self.identifier == SDLTouchIdentifierFirstFinger; -} - -- (BOOL)isSecondFinger { - return self.identifier == SDLTouchIdentifierSecondFinger; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"SDLTouch: ID: %ld, Location: %@, Timestamp: %lu, firstFinger? %@, secondFinger? %@", (long)_identifier, NSStringFromCGPoint(_location), (unsigned long)_timeStamp, (self.isFirstFinger ? @"YES" : @"NO"), (self.isSecondFinger ? @"YES" : @"NO")]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchCoord.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchCoord.h deleted file mode 100644 index 2024731..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchCoord.h +++ /dev/null @@ -1,30 +0,0 @@ -// SDLTouchCoord.h -// - - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - The coordinate of a touch, used in a touch event - */ -@interface SDLTouchCoord : SDLRPCStruct - -/** - The x value of the touch coordinate - - Required, float 0 - 10000 - */ -@property (strong, nonatomic) NSNumber *x; - -/** - The y value of the touch coordinate - - Required, float 0 - 10000 - */ -@property (strong, nonatomic) NSNumber *y; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchCoord.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchCoord.m deleted file mode 100644 index e41a643..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchCoord.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLTouchCoord.m -// - - -#import "SDLTouchCoord.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLTouchCoord - -- (void)setX:(NSNumber *)x { - [self.store sdl_setObject:x forName:SDLRPCParameterNameX]; -} - -- (NSNumber *)x { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameX ofClass:NSNumber.class error:&error]; -} - -- (void)setY:(NSNumber *)y { - [self.store sdl_setObject:y forName:SDLRPCParameterNameY]; -} - -- (NSNumber *)y { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameY ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.h deleted file mode 100644 index b11a9a2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.h +++ /dev/null @@ -1,49 +0,0 @@ -// SDLTouchEvent.h -// - - -#import "SDLRPCMessage.h" - -@class SDLTouchCoord; - -NS_ASSUME_NONNULL_BEGIN - -/** - A touch which occurred on the IVI system during projection - */ -@interface SDLTouchEvent : SDLRPCStruct - -/** - A touch's unique identifier. The application can track the current touch events by id. - - If a touch event has type begin, the id should be added to the set of touches. - - If a touch event has type end, the id should be removed from the set of touches. - - Required, 0-9 - */ -@property (strong, nonatomic) NSNumber *touchEventId; - -/** - The time that the touch was recorded. This number can the time since the beginning of the session or something else as long as the units are in milliseconds. - - The timestamp is used to determined the rate of change of position of a touch. - - The application also uses the time to verify whether two touches, with different ids, are part of a single action by the user. - - If there is only a single timestamp in this array, it is the same for every coordinate in the coordinates array. - - Required, array size 1-1000, contains integer value 0-2000000000 - */ -@property (strong, nonatomic) NSArray *timeStamp; - -/** - The touch's coordinate - - Required, array size 1-1000 - */ -@property (strong, nonatomic) NSArray *coord; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.m deleted file mode 100644 index 2fbfa90..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEvent.m +++ /dev/null @@ -1,44 +0,0 @@ -// SDLTouchEvent.m -// - - -#import "SDLTouchEvent.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLTouchCoord.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLTouchEvent - -- (void)setTouchEventId:(NSNumber *)touchEventId { - [self.store sdl_setObject:touchEventId forName:SDLRPCParameterNameId]; -} - -- (NSNumber *)touchEventId { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameId ofClass:NSNumber.class error:&error]; -} - -- (void)setTimeStamp:(NSArray *)timeStamp { - [self.store sdl_setObject:timeStamp forName:SDLRPCParameterNameTS]; -} - -- (NSArray *)timeStamp { - NSError *error = nil; - return [self.store sdl_objectsForName:SDLRPCParameterNameTS ofClass:NSNumber.class error:&error]; -} - -- (void)setCoord:(NSArray *)coord { - [self.store sdl_setObject:coord forName:SDLRPCParameterNameCoordinate]; -} - -- (NSArray *)coord { - NSError *error = nil; - return [self.store sdl_objectsForName:SDLRPCParameterNameCoordinate ofClass:SDLTouchCoord.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEventCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEventCapabilities.h deleted file mode 100644 index ff88a79..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEventCapabilities.h +++ /dev/null @@ -1,31 +0,0 @@ -// SDLTouchEventCapabilities.h -// - - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - The capabilities of touches during projection applications - */ -@interface SDLTouchEventCapabilities : SDLRPCStruct - -/** - Whether or not long presses are available - */ -@property (strong, nonatomic) NSNumber *pressAvailable; - -/** - Whether or not multi-touch (e.g. a pinch gesture) is available - */ -@property (strong, nonatomic) NSNumber *multiTouchAvailable; - -/** - Whether or not a double tap is available - */ -@property (strong, nonatomic) NSNumber *doublePressAvailable; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEventCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEventCapabilities.m deleted file mode 100644 index 5a69566..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchEventCapabilities.m +++ /dev/null @@ -1,43 +0,0 @@ -// SDLTouchEventCapabilities.m -// - - -#import "SDLTouchEventCapabilities.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLTouchEventCapabilities - -- (void)setPressAvailable:(NSNumber *)pressAvailable { - [self.store sdl_setObject:pressAvailable forName:SDLRPCParameterNamePressAvailable]; -} - -- (NSNumber *)pressAvailable { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNamePressAvailable ofClass:NSNumber.class error:&error]; -} - -- (void)setMultiTouchAvailable:(NSNumber *)multiTouchAvailable { - [self.store sdl_setObject:multiTouchAvailable forName:SDLRPCParameterNameMultiTouchAvailable]; -} - -- (NSNumber *)multiTouchAvailable { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMultiTouchAvailable ofClass:NSNumber.class error:&error]; -} - -- (void)setDoublePressAvailable:(NSNumber *)doublePressAvailable { - [self.store sdl_setObject:doublePressAvailable forName:SDLRPCParameterNameDoublePressAvailable]; -} - -- (NSNumber *)doublePressAvailable { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameDoublePressAvailable ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.h deleted file mode 100644 index c762d68..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.h +++ /dev/null @@ -1,114 +0,0 @@ -// -// SDLTouchManager.h -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 6/14/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLTouchType.h" - -@protocol SDLFocusableItemHitTester; -@protocol SDLTouchManagerDelegate; - -@class SDLTouch; -@class SDLStreamingVideoScaleManager; - -NS_ASSUME_NONNULL_BEGIN - -/// Handler for touch events -/// -/// @param touch Describes a touch location -/// @param type The type of touch -typedef void(^SDLTouchEventHandler)(SDLTouch *touch, SDLTouchType type); - -/// Touch Manager responsible for processing touch event notifications. -@interface SDLTouchManager : NSObject - -/** - Notified of processed touches such as pinches, pans, and taps - */ -@property (nonatomic, weak, nullable) id touchEventDelegate; - -/** - Returns all OnTouchEvent notifications as SDLTouch and SDLTouchType objects. - */ -@property (copy, nonatomic, nullable) SDLTouchEventHandler touchEventHandler; - -/** - Distance between two taps on the screen, in the head unit's coordinate system, used for registering double-tap callbacks. - - Defaults to 50 px. - */ -@property (nonatomic, assign) CGFloat tapDistanceThreshold; - -/** - Minimum distance for a pan gesture in the head unit's coordinate system, used for registering pan callbacks. - - Defaults to 8 px. - */ -@property (nonatomic, assign) CGFloat panDistanceThreshold; - -/** - Time (in seconds) between tap events to register a double-tap callback. This must be greater than 0.0. - - Default is 0.4 seconds. - */ -@property (nonatomic, assign) CGFloat tapTimeThreshold; - -/** - Time (in seconds) between movement events to register panning or pinching callbacks. - - Default is 0.05 seconds. - */ -@property (nonatomic, assign) CGFloat movementTimeThreshold __deprecated_msg("This is now unused, the movement time threshold is now synced to the framerate automatically"); - -/** - If set to NO, the display link syncing will be ignored and `movementTimeThreshold` will be used. Defaults to YES. - */ -@property (assign, nonatomic) BOOL enableSyncedPanning; - -/** - Boolean denoting whether or not the touch manager should deliver touch event callbacks. - - Default is true. - */ -@property (nonatomic, assign, getter=isTouchEnabled) BOOL touchEnabled; - -/** - Cancels pending touch event timers that may be in progress. - - Currently only impacts the timer used to register single taps. - */ -- (void)cancelPendingTouches; - -/// Initializer unavailable -- (instancetype)init NS_UNAVAILABLE; - -/** - Initialize a touch manager with a hit tester if available - - @param hitTester The hit tester to be used to correlate a point with a view - @return The initialized touch manager - */ -- (instancetype)initWithHitTester:(nullable id)hitTester __deprecated_msg("Use initWithHitTester:hitTester videoScaleManager: instead"); - -/** - Initialize a touch manager with a hit tester and a video scale manager. - - @param hitTester The hit tester to be used to correlate a point with a view - @param videoScaleManager The scale manager that scales from the display screen coordinate system to the app's viewport coordinate system - @return The initialized touch manager - */ -- (instancetype)initWithHitTester:(nullable id)hitTester videoScaleManager:(SDLStreamingVideoScaleManager *)videoScaleManager; - -/** - Called by SDLStreamingMediaManager in sync with the streaming framerate. This helps to moderate panning gestures by allowing the UI to be modified in time with the framerate. - */ -- (void)syncFrame; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.m deleted file mode 100644 index 242f4e4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManager.m +++ /dev/null @@ -1,511 +0,0 @@ -// -// SDLTouchManager.m -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 6/14/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLTouchManager.h" - -#import "CGPoint_Util.h" -#import "SDLGlobals.h" -#import "SDLFocusableItemHitTester.h" -#import "SDLLogMacros.h" -#import "SDLNotificationConstants.h" -#import "SDLOnTouchEvent.h" -#import "SDLPinchGesture.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLStreamingVideoScaleManager.h" -#import "SDLTimer.h" -#import "SDLTouch.h" -#import "SDLTouchCoord.h" -#import "SDLTouchEvent.h" -#import "SDLTouchManagerDelegate.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef NS_ENUM(NSUInteger, SDLPerformingTouchType) { - SDLPerformingTouchTypeNone, - SDLPerformingTouchTypeSingleTouch, - SDLPerformingTouchTypeMultiTouch, - SDLPerformingTouchTypePanningTouch -}; - -/*! - * @abstract - * Touch Manager will ignore touches that represent more than 2 fingers on the screen. - */ -static NSUInteger const MaximumNumberOfTouches = 2; - -@interface SDLTouchManager () - -/*! - * @abstract - * First touch received from onOnTouchEvent. - */ -@property (nonatomic, strong, nullable) SDLTouch *firstTouch; - -/*! - * @abstract - * Previous touch received from onOnTouchEvent. - */ -@property (nonatomic, strong, nullable) SDLTouch *previousTouch; - -/*! - * @abstract - * Cached previous single tap used for double tap detection. - */ -@property (nonatomic, strong, nullable) SDLTouch *singleTapTouch; - -/*! - * @abstract - * Distance of a previously generated pinch event. Used to calculate the scale of zoom motion. - */ -@property (nonatomic, assign) CGFloat previousPinchDistance; - -/*! - * @abstract - * Current in-progress pinch gesture. - */ -@property (nonatomic, strong, nullable) SDLPinchGesture *currentPinchGesture; - -/*! - * @abstract - * Timer used for distinguishing between single & double taps. - */ -@property (nonatomic, strong, nullable) SDLTimer *singleTapTimer; - -/*! - * @abstract - * Current touch type being performed. - */ -@property (nonatomic, assign) SDLPerformingTouchType performingTouchType; - -/** - A hit tester that allows us to check for a view based on coordinates, if available. - */ -@property (nonatomic, weak, nullable) id hitTester; - -/** - The last panning touch we received - */ -@property (nonatomic) CGPoint lastStoredTouchLocation; - -/** - The last panning touch that we notified the developer about - */ -@property (nonatomic) CGPoint lastNotifiedTouchLocation; - -/** - The scale manager that scales from the display screen coordinate system to the app's viewport coordinate system -*/ -@property (strong, nonatomic) SDLStreamingVideoScaleManager *videoScaleManager; - -@end - -@implementation SDLTouchManager - -- (instancetype)initWithHitTester:(nullable id)hitTester { - return [self initWithHitTester:hitTester videoScaleManager:[[SDLStreamingVideoScaleManager alloc] init]]; -} - -- (instancetype)initWithHitTester:(nullable id)hitTester videoScaleManager:(SDLStreamingVideoScaleManager *)videoScaleManager { - self = [super init]; - if (!self) { - return nil; - } - - _hitTester = hitTester; - _videoScaleManager = videoScaleManager; - _movementTimeThreshold = 0.05f; - _tapTimeThreshold = 0.4f; - _tapDistanceThreshold = 50.0f; - _panDistanceThreshold = 8.0f; - _touchEnabled = YES; - _enableSyncedPanning = YES; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_onTouchEvent:) name:SDLDidReceiveTouchEventNotification object:nil]; - - return self; -} - -#pragma mark - Public -- (void)cancelPendingTouches { - [self sdl_cancelSingleTapTimer]; -} - -- (void)syncFrame { - if (!self.isTouchEnabled || (!self.touchEventHandler && !self.touchEventDelegate)) { - return; - } - - if (self.performingTouchType == SDLPerformingTouchTypePanningTouch) { - CGPoint storedTouchLocation = self.lastStoredTouchLocation; - CGPoint notifiedTouchLocation = self.lastNotifiedTouchLocation; - - if (CGPointEqualToPoint(storedTouchLocation, CGPointZero) || - CGPointEqualToPoint(notifiedTouchLocation, CGPointZero) || - CGPointEqualToPoint(storedTouchLocation, notifiedTouchLocation)) { - return; - } - - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceivePanningFromPoint:toPoint:)]) { - dispatch_async(dispatch_get_main_queue(), ^{ - [self.touchEventDelegate touchManager:self - didReceivePanningFromPoint:notifiedTouchLocation - toPoint:storedTouchLocation]; - - self.lastNotifiedTouchLocation = storedTouchLocation; - }); - } - } else if (self.performingTouchType == SDLPerformingTouchTypeMultiTouch) { - if (self.previousPinchDistance == self.currentPinchGesture.distance) { - return; - } - - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceivePinchAtCenterPoint:withScale:)]) { - - CGFloat scale = self.currentPinchGesture.distance / self.previousPinchDistance; - CGPoint center = self.currentPinchGesture.center; - dispatch_async(dispatch_get_main_queue(), ^{ - [self.touchEventDelegate touchManager:self - didReceivePinchAtCenterPoint:center - withScale:scale]; - }); - } - - self.previousPinchDistance = self.currentPinchGesture.distance; - } -} - -#pragma mark - SDLDidReceiveTouchEventNotification - -/** - * Handles detecting the type and state of the gesture and notifies the appropriate delegate callbacks. - - * @param notification A SDLOnTouchEvent notification. - */ -- (void)sdl_onTouchEvent:(SDLRPCNotificationNotification *)notification { - if (!self.isTouchEnabled - || (!self.touchEventHandler && !self.touchEventDelegate) - || ![notification.notification isKindOfClass:SDLOnTouchEvent.class]) { - return; - } - - SDLOnTouchEvent *onTouchEvent = (SDLOnTouchEvent *)notification.notification; - onTouchEvent = [self.videoScaleManager scaleTouchEventCoordinates:onTouchEvent]; - - SDLTouchType touchType = onTouchEvent.type; - [onTouchEvent.event enumerateObjectsUsingBlock:^(SDLTouchEvent *touchEvent, NSUInteger idx, BOOL *stop) { - SDLTouch *touch = [[SDLTouch alloc] initWithTouchEvent:touchEvent]; - - if (self.touchEventHandler != NULL) { - dispatch_async(dispatch_get_main_queue(), ^{ - self.touchEventHandler(touch, touchType); - }); - } - - if (!self.touchEventDelegate || (touch.identifier > MaximumNumberOfTouches)) { - return; - } - - if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeBegin]) { - [self sdl_handleTouchBegan:touch]; - } else if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeMove]) { - [self sdl_handleTouchMoved:touch]; - } else if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeEnd]) { - [self sdl_handleTouchEnded:touch]; - } else if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeCancel]) { - [self sdl_handleTouchCanceled:touch]; - } - }]; -} - -#pragma mark - Private -/** - * Handles a BEGIN touch event sent by Core - * - * @param touch Gesture information - */ -- (void)sdl_handleTouchBegan:(SDLTouch *)touch { - _performingTouchType = SDLPerformingTouchTypeSingleTouch; - - switch (touch.identifier) { - case SDLTouchIdentifierFirstFinger: { - self.firstTouch = touch; - self.previousTouch = touch; - } break; - case SDLTouchIdentifierSecondFinger: { - _performingTouchType = SDLPerformingTouchTypeMultiTouch; - self.currentPinchGesture = [[SDLPinchGesture alloc] initWithFirstTouch:self.previousTouch secondTouch:touch]; - self.previousPinchDistance = self.currentPinchGesture.distance; - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:pinchDidStartInView:atCenterPoint:)]) { - CGPoint center = self.currentPinchGesture.center; - dispatch_async(dispatch_get_main_queue(), ^{ - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:center] : nil; - [self.touchEventDelegate touchManager:self pinchDidStartInView:hitView atCenterPoint:center]; - }); - } - } break; - } -} - -/** - * Handles a MOVE touch event sent by Core - * - * @param touch Gesture information - */ -- (void)sdl_handleTouchMoved:(SDLTouch *)touch { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if (!self.enableSyncedPanning && - ((touch.timeStamp - self.previousTouch.timeStamp) <= (self.movementTimeThreshold * NSEC_PER_USEC))) { - return; // no-op - } -#pragma clang diagnostic pop - - CGFloat xDelta = fabs(touch.location.x - self.firstTouch.location.x); - CGFloat yDelta = fabs(touch.location.y - self.firstTouch.location.y); - if (xDelta <= self.panDistanceThreshold && yDelta <= self.panDistanceThreshold) { - return; - } - - switch (self.performingTouchType) { - case SDLPerformingTouchTypeMultiTouch: { - switch (touch.identifier) { - case SDLTouchIdentifierFirstFinger: { - self.currentPinchGesture.firstTouch = touch; - } break; - case SDLTouchIdentifierSecondFinger: { - self.currentPinchGesture.secondTouch = touch; - } break; - } - - if (!self.enableSyncedPanning) { - [self syncFrame]; - } - } break; - case SDLPerformingTouchTypeSingleTouch: { - self.lastNotifiedTouchLocation = touch.location; - self.lastStoredTouchLocation = touch.location; - - _performingTouchType = SDLPerformingTouchTypePanningTouch; - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:panningDidStartInView:atPoint:)]) { - dispatch_async(dispatch_get_main_queue(), ^{ - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:touch.location] : nil; - [self.touchEventDelegate touchManager:self panningDidStartInView:hitView atPoint:touch.location]; - }); - } - } break; - case SDLPerformingTouchTypePanningTouch: { - if (!self.enableSyncedPanning) { - [self syncFrame]; - } - self.lastStoredTouchLocation = touch.location; - } break; - case SDLPerformingTouchTypeNone: break; - } - - self.previousTouch = touch; -} - -/** - * Handles a END touch type notification sent by Core - * - * @param touch Gesture information - */ -- (void)sdl_handleTouchEnded:(SDLTouch *)touch { - switch (self.performingTouchType) { - case SDLPerformingTouchTypeMultiTouch: { - [self sdl_setMultiTouchFingerTouchForTouch:touch]; - if (self.currentPinchGesture.isValid) { - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:pinchDidEndInView:atCenterPoint:)]) { - dispatch_async(dispatch_get_main_queue(), ^{ - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:self.currentPinchGesture.center] : nil; - [self.touchEventDelegate touchManager:self pinchDidEndInView:hitView atCenterPoint:self.currentPinchGesture.center]; - self.currentPinchGesture = nil; - }); - } else { - self.currentPinchGesture = nil; - } - } - } break; - case SDLPerformingTouchTypePanningTouch: { - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:panningDidEndInView:atPoint:)]) { - dispatch_async(dispatch_get_main_queue(), ^{ - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:touch.location] : nil; - [self.touchEventDelegate touchManager:self panningDidEndInView:hitView atPoint:touch.location]; - }); - } - } break; - case SDLPerformingTouchTypeSingleTouch: { - if (self.singleTapTimer == nil) { - // Initial Tap - self.singleTapTouch = touch; - [self sdl_initializeSingleTapTimerAtPoint:self.singleTapTouch.location]; - } else { - // Double Tap - [self sdl_cancelSingleTapTimer]; - - NSUInteger timeStampDelta = touch.timeStamp - self.singleTapTouch.timeStamp; - CGFloat xDelta = fabs(touch.location.x - self.singleTapTouch.location.x); - CGFloat yDelta = fabs(touch.location.y - self.singleTapTouch.location.y); - - if (timeStampDelta <= self.tapTimeThreshold * NSEC_PER_USEC && xDelta <= self.tapDistanceThreshold && yDelta <= self.tapDistanceThreshold) { - CGPoint centerPoint = CGPointCenterOfPoints(touch.location, - self.singleTapTouch.location); - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceiveDoubleTapForView:atPoint:)]) { - dispatch_async(dispatch_get_main_queue(), ^{ - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:centerPoint] : nil; - [self.touchEventDelegate touchManager:self didReceiveDoubleTapForView:hitView atPoint:centerPoint]; - }); - } - } - - self.singleTapTouch = nil; - } - } break; - case SDLPerformingTouchTypeNone: break; - } - - self.firstTouch = nil; - self.previousTouch = nil; - _performingTouchType = SDLPerformingTouchTypeNone; -} - -/** - * Handles a CANCEL touch event sent by CORE. A CANCEL touch event is sent when a gesture is interrupted during a video stream. This can happen when a system dialog box appears on the screen, such as when the user is alerted about an incoming phone call. - * - * Pinch and pan gesture subscribers are notified if the gesture is canceled. Tap gestures are simply canceled without notification. - * - * @param touch Gesture information - */ -- (void)sdl_handleTouchCanceled:(SDLTouch *)touch { - if (self.singleTapTimer != nil) { - // Cancel any ongoing single tap timer - [self sdl_cancelSingleTapTimer]; - self.singleTapTouch = nil; - } - - switch (self.performingTouchType) { - case SDLPerformingTouchTypeMultiTouch: { - [self sdl_setMultiTouchFingerTouchForTouch:touch]; - if (self.currentPinchGesture.isValid) { - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:pinchCanceledAtCenterPoint:)]) { - CGPoint center = self.currentPinchGesture.center; - dispatch_async(dispatch_get_main_queue(), ^{ - [self.touchEventDelegate touchManager:self - pinchCanceledAtCenterPoint:center]; - }); - } - self.currentPinchGesture = nil; - } - } break; - case SDLPerformingTouchTypePanningTouch: { - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:panningCanceledAtPoint:)]) { - dispatch_async(dispatch_get_main_queue(), ^{ - [self.touchEventDelegate touchManager:self - panningCanceledAtPoint:touch.location]; - }); - } - } break; - case SDLPerformingTouchTypeSingleTouch: // fallthrough - case SDLPerformingTouchTypeNone: break; - } - - self.firstTouch = nil; - self.previousTouch = nil; - _performingTouchType = SDLPerformingTouchTypeNone; -} - -#pragma mark - Helpers - -/** - * Saves the pinch touch gesture to the correct finger - * - * @param touch Gesture information - */ -- (void)sdl_setMultiTouchFingerTouchForTouch:(SDLTouch *)touch { - switch (touch.identifier) { - case SDLTouchIdentifierFirstFinger: { - self.currentPinchGesture.firstTouch = touch; - } break; - case SDLTouchIdentifierSecondFinger: { - self.currentPinchGesture.secondTouch = touch; - } break; - } -} - -/** - * Creates a timer used to detect the type of tap gesture (single or double tap) - * - * @param point Screen coordinates of the tap gesture - */ -- (void)sdl_initializeSingleTapTimerAtPoint:(CGPoint)point { - if (self.singleTapTimer != nil) { - [self sdl_cancelSingleTapTimer]; - } - - __weak typeof(self) weakSelf = self; - self.singleTapTimer = [[SDLTimer alloc] initWithDuration:self.tapTimeThreshold]; - self.singleTapTimer.elapsedBlock = ^{ - [weakSelf sdl_singleTapTimerCallbackWithPoint:point]; - }; - [self.singleTapTimer start]; -} - -/** - The method that will be called when the timer fires that was started in `sdl_initializeSingleTapTimerAtPoint:`. - - This is called on the main thread based on `sdl_initializeSingleTapTimerAtPoint:` - - @param point The point where the tap occurred - */ -- (void)sdl_singleTapTimerCallbackWithPoint:(CGPoint)point { - self.singleTapTouch = nil; - [self sdl_cancelSingleTapTimer]; - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceiveSingleTapForView:atPoint:)]) { - dispatch_async(dispatch_get_main_queue(), ^{ - [self sdl_getSingleTapHitView:point hitViewHandler:^(UIView * _Nullable selectedView) { - [self.touchEventDelegate touchManager:self didReceiveSingleTapForView:selectedView atPoint:point]; - }]; - }); - } -} - -/** - * HAX to preserve the thread on which the delegate is notified for single taps; returning on the main thread would be a breaking change. All other touch gestures currently notify the delegate on the main thread. The single tap timer runs on a background thread so when a single tap is detected the hit test needs to be done on the main thread and then the result is returned on a background thread. - * - * Checks if a single tap is inside a view. As the single tap timer is run on a background thread, the check is done on a main thread and then the result is returned on a background thread. - * - * @param point Screen coordinates of the tap gesture - * @param hitViewHandler A handler that returns the view the point is inside of; nil if the point does not lie inside of a view - */ -- (void)sdl_getSingleTapHitView:(CGPoint)point hitViewHandler:(nullable void (^)(UIView * __nullable hitView))hitViewHandler { - if (!self.hitTester) { - if (!hitViewHandler) { return; } - return hitViewHandler(nil); - } - - UIView *hitView = [self.hitTester viewForPoint:point]; - if (!hitViewHandler) { return; } - - return hitViewHandler(hitView); -} - -/** - * Cancels a tap gesture timer - */ -- (void)sdl_cancelSingleTapTimer { - if (self.singleTapTimer == nil) { - return; - } - - [self.singleTapTimer cancel]; - self.singleTapTimer = nil; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManagerDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManagerDelegate.h deleted file mode 100644 index 1e3bc57..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchManagerDelegate.h +++ /dev/null @@ -1,123 +0,0 @@ -// -// SDLTouchManagerDelegate.h -// SmartDeviceLink-iOS -// -// Created by Muller, Alexander (A.) on 6/14/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -@class SDLTouchManager; - -NS_ASSUME_NONNULL_BEGIN - -/// The delegate to be notified of processed touches such as pinches, pans, and taps -@protocol SDLTouchManagerDelegate - -@optional - -/** - A single tap was received - - @param manager The SDLTouchManager issuing the callback - @param view The view under the touch if it could be determined - @param point The point at which the touch occurred in the head unit's coordinate system - */ -- (void)touchManager:(SDLTouchManager *)manager didReceiveSingleTapForView:(UIView *_Nullable)view atPoint:(CGPoint)point; - -/** - A double tap was received - - @param manager The SDLTouchManager issuing the callback - @param view The view under the touch if it could be determined - @param point Location of the double tap in the head unit's coordinate system. This is the average of the first and second tap. - */ -- (void)touchManager:(SDLTouchManager *)manager didReceiveDoubleTapForView:(UIView *_Nullable)view atPoint:(CGPoint)point; - -/** - Panning started - - @param manager The SDLTouchManager issuing the callback - @param view The view under where the panning started if it could be determined - @param point Location of the panning start point in the head unit's coordinate system. - */ -- (void)touchManager:(SDLTouchManager *)manager panningDidStartInView:(UIView *_Nullable)view atPoint:(CGPoint)point; - -/** - Panning moved between points - - @param manager The SDLTouchManager issuing the callback - @param fromPoint Location of the panning's previous point in the head unit's coordinate system - @param toPoint Location of the panning's new point in the head unit's coordinate system - */ -- (void)touchManager:(SDLTouchManager *)manager didReceivePanningFromPoint:(CGPoint)fromPoint toPoint:(CGPoint)toPoint; - -/** - Panning ended - - @param manager The SDLTouchManager issuing the callback - @param view The view under where the panning ended if it could be determined - @param point Location of the panning's end point in the head unit's coordinate system - */ -- (void)touchManager:(SDLTouchManager *)manager panningDidEndInView:(UIView *_Nullable)view atPoint:(CGPoint)point; - -/** - Panning canceled - - @param manager The SDLTouchManager issuing the callback - @param point Location of the panning's end point in the head unit's coordinate system - */ -- (void)touchManager:(SDLTouchManager *)manager panningCanceledAtPoint:(CGPoint)point; - -/** - Pinch did start - - @param manager The SDLTouchManager issuing the callback - @param view The view under the center of the pinch start - @param point Center point of the pinch in the head unit's coordinate system - */ -- (void)touchManager:(SDLTouchManager *)manager pinchDidStartInView:(UIView *_Nullable)view atCenterPoint:(CGPoint)point; - -/** - * @abstract - * Pinch did move. - * @param manager - * Current initalized SDLTouchManager issuing the callback. - * @param point - * Center point of the pinch in the head unit's coordinate system. - * @param scale - * Scale relative to the distance between touch points. - */ -- (void)touchManager:(SDLTouchManager *)manager didReceivePinchAtCenterPoint:(CGPoint)point withScale:(CGFloat)scale; - -/** - Pinch moved and changed scale - - @param manager The SDLTouchManager issuing the callback - @param view The view under the center of the pinch - @param point Center point of the pinch in the head unit's coordinate system - @param scale Scale relative to the distance between touch points - */ -- (void)touchManager:(SDLTouchManager *)manager didReceivePinchInView:(UIView *_Nullable)view atCenterPoint:(CGPoint)point withScale:(CGFloat)scale; - -/** - Pinch did end - - @param manager The SDLTouchManager issuing the callback - @param view The view under the center of the pinch - @param point Center point of the pinch in the head unit's coordinate system - */ -- (void)touchManager:(SDLTouchManager *)manager pinchDidEndInView:(UIView *_Nullable)view atCenterPoint:(CGPoint)point; - -/** - Pinch canceled - - @param manager The SDLTouchManager issuing the callback - @param point Center point of the pinch in the head unit's coordinate system - */ -- (void)touchManager:(SDLTouchManager *)manager pinchCanceledAtCenterPoint:(CGPoint)point; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchType.h deleted file mode 100644 index cce21c0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchType.h +++ /dev/null @@ -1,30 +0,0 @@ -// SDLTouchType.h -// - - -#import "SDLEnum.h" - -/** - The type of a touch in a projection application. Used in OnTouchEvent. - */ -typedef SDLEnum SDLTouchType SDL_SWIFT_ENUM; - -/** - The touch is the beginning of a finger pressed on the display. - */ -extern SDLTouchType const SDLTouchTypeBegin; - -/** - The touch is the movement of a finger pressed on the display. - */ -extern SDLTouchType const SDLTouchTypeMove; - -/** - The touch is the ending of a finger pressed on the display. - */ -extern SDLTouchType const SDLTouchTypeEnd; - -/** - The touch is the cancellation of a finger pressed on the display. - */ -extern SDLTouchType const SDLTouchTypeCancel; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchType.m deleted file mode 100644 index 4637625..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTouchType.m +++ /dev/null @@ -1,10 +0,0 @@ -// SDLTouchType.m -// - - -#import "SDLTouchType.h" - -SDLTouchType const SDLTouchTypeBegin = @"BEGIN"; -SDLTouchType const SDLTouchTypeMove = @"MOVE"; -SDLTouchType const SDLTouchTypeEnd = @"END"; -SDLTouchType const SDLTouchTypeCancel = @"CANCEL"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTransportDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTransportDelegate.h deleted file mode 100644 index c835091..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTransportDelegate.h +++ /dev/null @@ -1,28 +0,0 @@ -// SDLTransportDelegate.h -// - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLTransportDelegate - -/** - * The transport connected to Core - */ -- (void)onTransportConnected; - -/** - * The transport disconnected from Core - */ -- (void)onTransportDisconnected; - -/** - * Data received from Core - * - * @param receivedData The data received from Core - */ -- (void)onDataReceived:(NSData *)receivedData; -- (void)onError:(NSError *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTransportType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTransportType.h deleted file mode 100644 index 8cfb4ec..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTransportType.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLTransportType.h - -#import - -#import "SDLTransportDelegate.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLTransportType - -@property (nullable, weak, nonatomic) id delegate; - -- (void)connect; -- (void)disconnectWithCompletionHandler:(void (^)(void))disconnectCompletionHandler; -- (void)sendData:(NSData *)dataToSend; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTriggerSource.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTriggerSource.h deleted file mode 100644 index d6d44db..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTriggerSource.h +++ /dev/null @@ -1,27 +0,0 @@ -// SDLTriggerSource.h -// - - -#import "SDLEnum.h" - -/** - * Indicates whether choice/command was selected via VR or via a menu selection (using SEEKRIGHT/SEEKLEFT, TUNEUP, TUNEDOWN, OK buttons). Used in PerformInteractionResponse and OnCommand. - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLTriggerSource SDL_SWIFT_ENUM; - -/** - * Selection made via menu - */ -extern SDLTriggerSource const SDLTriggerSourceMenu; - -/** - * Selection made via Voice session - */ -extern SDLTriggerSource const SDLTriggerSourceVoiceRecognition; - -/** - * Selection made via Keyboard - */ -extern SDLTriggerSource const SDLTriggerSourceKeyboard; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTriggerSource.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTriggerSource.m deleted file mode 100644 index e5c075a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTriggerSource.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLTriggerSource.m -// - - -#import "SDLTriggerSource.h" - -SDLTriggerSource const SDLTriggerSourceMenu = @"MENU"; -SDLTriggerSource const SDLTriggerSourceVoiceRecognition = @"VR"; -SDLTriggerSource const SDLTriggerSourceKeyboard = @"KEYBOARD"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.h deleted file mode 100644 index b86d646..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.h +++ /dev/null @@ -1,34 +0,0 @@ -// SDLTurn.h -// - -#import "SDLRPCMessage.h" - -@class SDLImage; - -NS_ASSUME_NONNULL_BEGIN - -/** - A struct used in UpdateTurnList for Turn-by-Turn navigation applications - */ -@interface SDLTurn : SDLRPCStruct - -/// Convenience init to UpdateTurnList for navigation -/// -/// @param navigationText Individual turn text. Must provide at least text or icon for a given turn -/// @param icon Individual turn icon. Must provide at least text or icon for a given turn -/// @return An SDLTurn object -- (instancetype)initWithNavigationText:(nullable NSString *)navigationText turnIcon:(nullable SDLImage *)icon; - -/** - Individual turn text. Must provide at least text or icon for a given turn - */ -@property (strong, nonatomic, nullable) NSString *navigationText; - -/** - Individual turn icon. Must provide at least text or icon for a given turn - */ -@property (strong, nonatomic, nullable) SDLImage *turnIcon; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.m deleted file mode 100644 index ec4ced9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurn.m +++ /dev/null @@ -1,44 +0,0 @@ -// SDLTurn.m -// - -#import "SDLTurn.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImage.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLTurn - -- (instancetype)initWithNavigationText:(nullable NSString *)navigationText turnIcon:(nullable SDLImage *)icon { - self = [self init]; - if (!self) { - return nil; - } - - self.navigationText = navigationText; - self.turnIcon = icon; - - return self; -} - -- (void)setNavigationText:(nullable NSString *)navigationText { - [self.store sdl_setObject:navigationText forName:SDLRPCParameterNameNavigationText]; -} - -- (nullable NSString *)navigationText { - return [self.store sdl_objectForName:SDLRPCParameterNameNavigationText ofClass:NSString.class error:nil]; -} - -- (void)setTurnIcon:(nullable SDLImage *)turnIcon { - [self.store sdl_setObject:turnIcon forName:SDLRPCParameterNameTurnIcon]; -} - -- (nullable SDLImage *)turnIcon { - return [self.store sdl_objectForName:SDLRPCParameterNameTurnIcon ofClass:SDLImage.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurnSignal.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurnSignal.h deleted file mode 100644 index daca0b0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurnSignal.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// SDLTurnSignal.h -// SmartDeviceLink -// -// Created by Nicole on 7/19/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * Enumeration that describes the status of the turn light indicator. - */ -typedef SDLEnum SDLTurnSignal SDL_SWIFT_ENUM; - -/** - * Turn signal is OFF - */ -extern SDLTurnSignal const SDLTurnSignalOff; - -/** - * Left turn signal is on - */ -extern SDLTurnSignal const SDLTurnSignalLeft; - -/** - * Right turn signal is on - */ -extern SDLTurnSignal const SDLTurnSignalRight; - -/** - * Both signals (left and right) are on - */ -extern SDLTurnSignal const SDLTurnSignalBoth; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurnSignal.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurnSignal.m deleted file mode 100644 index dedd49e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLTurnSignal.m +++ /dev/null @@ -1,14 +0,0 @@ -// -// SDLTurnSignal.m -// SmartDeviceLink -// -// Created by Nicole on 7/19/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLTurnSignal.h" - -SDLTurnSignal const SDLTurnSignalOff = @"OFF"; -SDLTurnSignal const SDLTurnSignalLeft = @"LEFT"; -SDLTurnSignal const SDLTurnSignalRight = @"RIGHT"; -SDLTurnSignal const SDLTurnSignalBoth = @"BOTH"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.h deleted file mode 100644 index 56e1f12..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// SDLUnpublishAppService.h -// SmartDeviceLink -// -// Created by Bretty White on 7/15/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Unpublish an existing service published by this application. - */ -@interface SDLUnpublishAppService : SDLRPCRequest - -/** - * Create an instance of UnpublishAppService with the serviceID that corresponds with the service to be unpublished - * - * @param serviceID The ID of the service to be unpublished. - */ -- (instancetype)initWithServiceID:(NSString*)serviceID; - -/** - * The ID of the service to be unpublished. - * - * Required, String - */ -@property (strong, nonatomic) NSString *serviceID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.m deleted file mode 100644 index 3da7285..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppService.m +++ /dev/null @@ -1,49 +0,0 @@ -// -// SDLUnpublishAppService.m -// SmartDeviceLink -// -// Created by Bretty White on 7/15/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "NSMutableDictionary+Store.h" -#import "SDLUnpublishAppService.h" -#import "SDLRPCFunctionNames.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLUnpublishAppService - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameUnpublishAppService]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithServiceID:(NSString *)serviceID { - self = [self init]; - if (!self) { - return nil; - } - - self.serviceID = serviceID; - - return self; -} - -- (void)setServiceID:(NSString *)serviceID { - [self.parameters sdl_setObject:serviceID forName:SDLRPCParameterNameServiceID]; -} - -- (NSString *)serviceID { - NSError *error = nil; - return [self.parameters sdl_objectForName:SDLRPCParameterNameServiceID ofClass:NSString.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.h deleted file mode 100644 index fb048ca..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// SDLUnpublishAppServiceResponse.h -// SmartDeviceLink -// -// Created by Bretty White on 7/15/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * The response to UnpublishAppService - */ -@interface SDLUnpublishAppServiceResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.m deleted file mode 100644 index db26d06..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnpublishAppServiceResponse.m +++ /dev/null @@ -1,27 +0,0 @@ -// -// SDLUnpublishAppServiceResponse.m -// SmartDeviceLink -// -// Created by Bretty White on 7/15/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLUnpublishAppServiceResponse.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLUnpublishAppServiceResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameUnpublishAppService]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterface.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterface.h deleted file mode 100644 index 35ca046..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterface.h +++ /dev/null @@ -1,29 +0,0 @@ -// SDLUnregisterAppInterface.h -// - - -#import "SDLRPCRequest.h" - -/** - * Terminates an application's interface registration. This causes SDL® to - * dispose of all resources associated with the application's interface - * registration (e.g. Command Menu items, Choice Sets, button subscriptions, - * etc.) - *

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

      - * HMILevel can be FULL, LIMITED, BACKGROUND or NONE - *

      - * - * See SDLRegisterAppInterface SDLOnAppInterfaceUnregistered - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLUnregisterAppInterface : SDLRPCRequest - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterface.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterface.m deleted file mode 100644 index d191da5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterface.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLUnregisterAppInterface.m -// - - -#import "SDLUnregisterAppInterface.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLUnregisterAppInterface - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameUnregisterAppInterface]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h deleted file mode 100644 index da366a5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLUnregisterAppInterfaceResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to UnregisterAppInterface - - SmartDeviceLink 1.0 - */ -@interface SDLUnregisterAppInterfaceResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m deleted file mode 100644 index 7cc5ece..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLUnregisterAppInterfaceResponse.m -// - - -#import "SDLUnregisterAppInterfaceResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLUnregisterAppInterfaceResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameUnregisterAppInterface]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.h deleted file mode 100644 index 9fd78ec..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.h +++ /dev/null @@ -1,42 +0,0 @@ -// SDLUnsubscribeButton.h -// - -#import "SDLRPCRequest.h" - -#import "SDLButtonName.h" - - -/** - * Deletes a subscription to button notifications for the specified button. For - * more information about button subscriptions, see SDLSubscribeButton - *

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

      - * HMILevel needs to be FULL, LIMITED or BACKGROUND - *

      - - * @since SmartDeviceLink 1.0
      - * See SDLSubscribeButton - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLUnsubscribeButton : SDLRPCRequest - -/// Convenience init to unsubscribe from a subscription button -/// -/// @param buttonName A name of the button to unsubscribe from -/// @return A name of the button to unsubscribe from -- (instancetype)initWithButtonName:(SDLButtonName)buttonName; - -/** - * A name of the button to unsubscribe from - * @discussion An Enumeration value, see - * SDLButtonName - */ -@property (strong, nonatomic) SDLButtonName buttonName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.m deleted file mode 100644 index 3e84ad5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButton.m +++ /dev/null @@ -1,47 +0,0 @@ -// SDLUnsubscribeButton.m -// - - -#import "SDLUnsubscribeButton.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLButtonName.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLUnsubscribeButton - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeButton]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithButtonName:(SDLButtonName)buttonName { - self = [self init]; - if (!self) { - return nil; - } - - self.buttonName = buttonName; - - return self; -} - -- (void)setButtonName:(SDLButtonName)buttonName { - [self.parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; -} - -- (SDLButtonName)buttonName { - NSError *error = nil; - return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButtonResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButtonResponse.h deleted file mode 100644 index 23753b0..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButtonResponse.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLUnsubscribeButtonResponse.h -// - - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to UnsubscribeButton - - Since SmartDeviceLink 1.0 - */ -@interface SDLUnsubscribeButtonResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButtonResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButtonResponse.m deleted file mode 100644 index 6d705d3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeButtonResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLUnsubscribeButtonResponse.m -// - - -#import "SDLUnsubscribeButtonResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLUnsubscribeButtonResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeButton]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.h deleted file mode 100644 index 370f348..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.h +++ /dev/null @@ -1,293 +0,0 @@ -// SDLUnsubscribeVehicleData.h -// - - -#import "SDLRPCRequest.h" - -/** - * This function is used to unsubscribe the notifications from the - * subscribeVehicleData function - *

      - * Function Group: Location, VehicleInfo and DrivingChara - *

      - * HMILevel needs to be FULL, LIMITED or BACKGROUND - *

      - * - * @since SmartDeviceLink 2.0
      - * See SDLSubscribeVehicleData SDLGetVehicleData - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLUnsubscribeVehicleData : SDLRPCRequest - -/** - * Convenience init for unsubscribing to all possible vehicle data items. - * - * @param accelerationPedalPosition Unsubscribe to accelerationPedalPosition - * @param airbagStatus Unsubscribe to airbagStatus - * @param beltStatus Unsubscribe to beltStatus - * @param bodyInformation Unsubscribe to bodyInformation - * @param clusterModeStatus Unsubscribe to clusterModeStatus - * @param deviceStatus Unsubscribe to deviceStatus - * @param driverBraking Unsubscribe to driverBraking - * @param eCallInfo Unsubscribe to eCallInfo - * @param emergencyEvent Unsubscribe to emergencyEvent - * @param engineTorque Unsubscribe to engineTorque - * @param externalTemperature Unsubscribe to externalTemperature - * @param fuelLevel Unsubscribe to fuelLevel - * @param fuelLevelState Unsubscribe to fuelLevelState - * @param gps Unsubscribe to gps - * @param headLampStatus Unsubscribe to headLampStatus - * @param instantFuelConsumption Unsubscribe to instantFuelConsumption - * @param myKey Unsubscribe to myKey - * @param odometer Unsubscribe to odometer - * @param prndl Unsubscribe to prndl - * @param rpm Unsubscribe to rpm - * @param speed Unsubscribe to speed - * @param steeringWheelAngle Unsubscribe to steeringWheelAngle - * @param tirePressure Unsubscribe to tirePressure - * @param wiperStatus Unsubscribe to wiperStatus - * @return A SDLUnsubscribeVehicleData object - */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); - -/** - * Convenience init for unsubscribing to all possible vehicle data items. - * - * @param accelerationPedalPosition Unsubscribe to accelerationPedalPosition - * @param airbagStatus Unsubscribe to airbagStatus - * @param beltStatus Unsubscribe to beltStatus - * @param bodyInformation Unsubscribe to bodyInformation - * @param clusterModeStatus Unsubscribe to clusterModeStatus - * @param deviceStatus Unsubscribe to deviceStatus - * @param driverBraking Unsubscribe to driverBraking - * @param eCallInfo Unsubscribe to eCallInfo - * @param electronicParkBrakeStatus Unsubscribe to electronicParkBrakeStatus - * @param emergencyEvent Unsubscribe to emergencyEvent - * @param engineOilLife Unsubscribe to engineOilLife - * @param engineTorque Unsubscribe to engineTorque - * @param externalTemperature Unsubscribe to externalTemperature - * @param fuelLevel Unsubscribe to fuelLevel - * @param fuelLevelState Unsubscribe to fuelLevelState - * @param fuelRange Unsubscribe to fuelRange - * @param gps Unsubscribe to gps - * @param headLampStatus Unsubscribe to headLampStatus - * @param instantFuelConsumption Unsubscribe to instantFuelConsumption - * @param myKey Unsubscribe to myKey - * @param odometer Unsubscribe to odometer - * @param prndl Unsubscribe to prndl - * @param rpm Unsubscribe to rpm - * @param speed Unsubscribe to speed - * @param steeringWheelAngle Unsubscribe to steeringWheelAngle - * @param tirePressure Unsubscribe to tirePressure - * @param turnSignal Unsubscribe to turnSignal - * @param wiperStatus Unsubscribe to wiperStatus - * @return A SDLUnsubscribeVehicleData object - */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); - -/** - * Convenience init for unsubscribing to all possible vehicle data items. - * - * @param accelerationPedalPosition Unsubscribe to accelerationPedalPosition - * @param airbagStatus Unsubscribe to airbagStatus - * @param beltStatus Unsubscribe to beltStatus - * @param bodyInformation Unsubscribe to bodyInformation - * @param cloudAppVehicleID Unsubscribe to cloudAppVehicleID - * @param clusterModeStatus Unsubscribe to clusterModeStatus - * @param deviceStatus Unsubscribe to deviceStatus - * @param driverBraking Unsubscribe to driverBraking - * @param eCallInfo Unsubscribe to eCallInfo - * @param electronicParkBrakeStatus Unsubscribe to electronicParkBrakeStatus - * @param emergencyEvent Unsubscribe to emergencyEvent - * @param engineOilLife Unsubscribe to engineOilLife - * @param engineTorque Unsubscribe to engineTorque - * @param externalTemperature Unsubscribe to externalTemperature - * @param fuelLevel Unsubscribe to fuelLevel - * @param fuelLevelState Unsubscribe to fuelLevelState - * @param fuelRange Unsubscribe to fuelRange - * @param gps Unsubscribe to gps - * @param headLampStatus Unsubscribe to headLampStatus - * @param instantFuelConsumption Unsubscribe to instantFuelConsumption - * @param myKey Unsubscribe to myKey - * @param odometer Unsubscribe to odometer - * @param prndl Unsubscribe to prndl - * @param rpm Unsubscribe to rpm - * @param speed Unsubscribe to speed - * @param steeringWheelAngle Unsubscribe to steeringWheelAngle - * @param tirePressure Unsubscribe to tirePressure - * @param turnSignal Unsubscribe to turnSignal - * @param wiperStatus Unsubscribe to wiperStatus - * @return A SDLUnsubscribeVehicleData object - */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus; - -/** - * If true, unsubscribes from GPS - */ -@property (strong, nonatomic, nullable) NSNumber *gps; - -/** - * If true, unsubscribes from Speed - */ -@property (strong, nonatomic, nullable) NSNumber *speed; - -/** - * If true, unsubscribes from RPM - */ -@property (strong, nonatomic, nullable) NSNumber *rpm; - -/** - * If true, unsubscribes from Fuel Level - */ -@property (strong, nonatomic, nullable) NSNumber *fuelLevel; - -/** - * If true, unsubscribes from Fuel Level State - */ -@property (strong, nonatomic, nullable) NSNumber *fuelLevel_State; - -/** - * If true, unsubscribes from Fuel Range - */ -@property (strong, nonatomic, nullable) NSNumber *fuelRange; - -/** - * If true, unsubscribes from Instant Fuel Consumption - */ -@property (strong, nonatomic, nullable) NSNumber *instantFuelConsumption; - -/** - * If true, unsubscribes from External Temperature - */ -@property (strong, nonatomic, nullable) NSNumber *externalTemperature; - -/** - * If true, unsubscribes from PRNDL - */ -@property (strong, nonatomic, nullable) NSNumber *prndl; - -/** - * If true, unsubscribes from Tire Pressure - */ -@property (strong, nonatomic, nullable) NSNumber *tirePressure; - -/** - * If true, unsubscribes from Odometer - */ -@property (strong, nonatomic, nullable) NSNumber *odometer; - -/** - * If true, unsubscribes from Belt Status - */ -@property (strong, nonatomic, nullable) NSNumber *beltStatus; - -/** - * If true, unsubscribes from Body Information - */ -@property (strong, nonatomic, nullable) NSNumber *bodyInformation; - -/** - * If true, unsubscribes from Device Status - */ -@property (strong, nonatomic, nullable) NSNumber *deviceStatus; - -/** - * If true, unsubscribes from Driver Braking - */ -@property (strong, nonatomic, nullable) NSNumber *driverBraking; - -/** - * If true, unsubscribes from Wiper Status - */ -@property (strong, nonatomic, nullable) NSNumber *wiperStatus; - -/** - * If true, unsubscribes from Head Lamp Status - */ -@property (strong, nonatomic, nullable) NSNumber *headLampStatus; - -/** - * If true, unsubscribes from Engine Oil Life - */ -@property (strong, nonatomic, nullable) NSNumber *engineOilLife; - -/** - * If true, unsubscribes from Engine Torque - */ -@property (strong, nonatomic, nullable) NSNumber *engineTorque; - -/** - * If true, unsubscribes from Acc Pedal Position - */ -@property (strong, nonatomic, nullable) NSNumber *accPedalPosition; - -/** - * If true, unsubscribes from Steering Wheel Angle data - */ -@property (strong, nonatomic, nullable) NSNumber *steeringWheelAngle; - -/** - * If true, unsubscribes from eCallInfo - */ -@property (strong, nonatomic, nullable) NSNumber *eCallInfo; - -/** - * If true, unsubscribes from Airbag Status - */ -@property (strong, nonatomic, nullable) NSNumber *airbagStatus; - -/** - * If true, unsubscribes from Emergency Event - */ -@property (strong, nonatomic, nullable) NSNumber *emergencyEvent; - -/** - * If true, unsubscribes from Cluster Mode Status - */ -@property (strong, nonatomic, nullable) NSNumber *clusterModeStatus; - -/** - * If true, unsubscribes from My Key - */ -@property (strong, nonatomic, nullable) NSNumber *myKey; - -/** - A boolean value. If true, unsubscribes to the Electronic Parking Brake Status - */ -@property (strong, nonatomic, nullable) NSNumber *electronicParkBrakeStatus; - -/** - A boolean value. If true, unsubscribes to the Turn Signal - */ -@property (strong, nonatomic, nullable) NSNumber *turnSignal; - -/** - A boolean value. If true, unsubscribes to the Cloud App Vehicle ID - */ -@property (strong, nonatomic, nullable) NSNumber *cloudAppVehicleID; - -/** - Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @param vehicleDataState A boolean value. If true, requests an unsubscribes of the OEM custom vehicle data item. - - Added SmartDeviceLink 6.0 - */ -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); - -/** - Gets the OEM custom vehicle data state for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item to unsubscribe for. - @return A boolean value indicating if an unsubscribe request will occur for the OEM custom vehicle data item. - - Added SmartDeviceLink 6.0 - */ -- (nullable NSNumber *)getOEMCustomVehicleData:(NSString *)vehicleDataName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.m deleted file mode 100644 index e83148b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleData.m +++ /dev/null @@ -1,313 +0,0 @@ -// SDLUnsubscribeVehicleData.m -// - - -#import "SDLUnsubscribeVehicleData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLUnsubscribeVehicleData - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeVehicleData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure wiperStatus:(BOOL)wiperStatus { - return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:NO emergencyEvent:emergencyEvent engineOilLife:NO engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:NO gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:NO wiperStatus:wiperStatus]; -} - -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus { - return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation cloudAppVehicleID:NO clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:electronicParkBrakeStatus emergencyEvent:emergencyEvent engineOilLife:engineOilLife engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:fuelRange gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:turnSignal wiperStatus:wiperStatus]; -} - -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus { - self = [self init]; - if (!self) { - return nil; - } - - self.accPedalPosition = @(accelerationPedalPosition); - self.airbagStatus = @(airbagStatus); - self.beltStatus = @(beltStatus); - self.bodyInformation = @(bodyInformation); - self.cloudAppVehicleID = @(cloudAppVehicleID); - self.clusterModeStatus = @(clusterModeStatus); - self.deviceStatus = @(deviceStatus); - self.driverBraking = @(driverBraking); - self.eCallInfo = @(eCallInfo); - self.electronicParkBrakeStatus = @(electronicParkBrakeStatus); - self.emergencyEvent = @(emergencyEvent); - self.engineOilLife = @(engineOilLife); - self.engineTorque = @(engineTorque); - self.externalTemperature = @(externalTemperature); - self.fuelLevel = @(fuelLevel); - self.fuelLevel_State = @(fuelLevelState); - self.fuelRange = @(fuelRange); - self.myKey = @(myKey); - self.odometer = @(odometer); - self.gps = @(gps); - self.headLampStatus = @(headLampStatus); - self.instantFuelConsumption = @(instantFuelConsumption); - self.prndl = @(prndl); - self.rpm = @(rpm); - self.speed = @(speed); - self.steeringWheelAngle = @(steeringWheelAngle); - self.tirePressure = @(tirePressure); - self.turnSignal = @(turnSignal); - self.wiperStatus = @(wiperStatus); - - return self; -} - -- (void)setGps:(nullable NSNumber *)gps { - [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; -} - -- (nullable NSNumber *)gps { - return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:NSNumber.class error:nil]; -} - -- (void)setSpeed:(nullable NSNumber *)speed { - [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; -} - -- (nullable NSNumber *)speed { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; -} - -- (void)setRpm:(nullable NSNumber *)rpm { - [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; -} - -- (nullable NSNumber *)rpm { - return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelLevel:(nullable NSNumber *)fuelLevel { - [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; -} - -- (nullable NSNumber *)fuelLevel { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelLevel_State:(nullable NSNumber *)fuelLevel_State { - [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; -} - -- (nullable NSNumber *)fuelLevel_State { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:NSNumber.class error:nil]; -} - -- (void)setFuelRange:(nullable NSNumber *)fuelRange { - [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; -} - -- (nullable NSNumber *)fuelRange { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:NSNumber.class error:nil]; -} - -- (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { - [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; -} - -- (nullable NSNumber *)instantFuelConsumption { - return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; -} - -- (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { - [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; -} - -- (nullable NSNumber *)externalTemperature { - return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; -} - -- (void)setPrndl:(nullable NSNumber *)prndl { - [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; -} - -- (nullable NSNumber *)prndl { - return [self.parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:NSNumber.class error:nil]; -} - -- (void)setTirePressure:(nullable NSNumber *)tirePressure { - [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; -} - -- (nullable NSNumber *)tirePressure { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:NSNumber.class error:nil]; -} - -- (void)setOdometer:(nullable NSNumber *)odometer { - [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; -} - -- (nullable NSNumber *)odometer { - return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; -} - -- (void)setBeltStatus:(nullable NSNumber *)beltStatus { - [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; -} - -- (nullable NSNumber *)beltStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setBodyInformation:(nullable NSNumber *)bodyInformation { - [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; -} - -- (nullable NSNumber *)bodyInformation { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:NSNumber.class error:nil]; -} - -- (void)setDeviceStatus:(nullable NSNumber *)deviceStatus { - [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; -} - -- (nullable NSNumber *)deviceStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setDriverBraking:(nullable NSNumber *)driverBraking { - [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; -} - -- (nullable NSNumber *)driverBraking { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:NSNumber.class error:nil]; -} - -- (void)setWiperStatus:(nullable NSNumber *)wiperStatus { - [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; -} - -- (nullable NSNumber *)wiperStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setHeadLampStatus:(nullable NSNumber *)headLampStatus { - [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; -} - -- (nullable NSNumber *)headLampStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setEngineOilLife:(nullable NSNumber *)engineOilLife { - [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; -} - -- (nullable NSNumber *)engineOilLife { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; -} - -- (void)setEngineTorque:(nullable NSNumber *)engineTorque { - [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; -} - -- (nullable NSNumber *)engineTorque { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; -} - -- (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { - [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; -} - -- (nullable NSNumber *)accPedalPosition { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; -} - -- (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { - [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; -} - -- (nullable NSNumber *)steeringWheelAngle { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; -} - -- (void)setECallInfo:(nullable NSNumber *)eCallInfo { - [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; -} - -- (nullable NSNumber *)eCallInfo { - return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:NSNumber.class error:nil]; -} - -- (void)setAirbagStatus:(nullable NSNumber *)airbagStatus { - [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; -} - -- (nullable NSNumber *)airbagStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setEmergencyEvent:(nullable NSNumber *)emergencyEvent { - [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; -} - -- (nullable NSNumber *)emergencyEvent { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:NSNumber.class error:nil]; -} - -- (void)setClusterModeStatus:(nullable NSNumber *)clusterModeStatus { - [self.parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; -} - -- (nullable NSNumber *)clusterModeStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setMyKey:(nullable NSNumber *)myKey { - [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; -} - -- (nullable NSNumber *)myKey { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:NSNumber.class error:nil]; -} - -- (void)setElectronicParkBrakeStatus:(nullable NSNumber *)electronicParkBrakeStatus { - [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; -} - -- (nullable NSNumber *)electronicParkBrakeStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:NSNumber.class error:nil]; -} - -- (void)setTurnSignal:(nullable NSNumber *)turnSignal { - [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; -} - -- (nullable NSNumber *)turnSignal { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:NSNumber.class error:nil]; -} - -- (void)setCloudAppVehicleID:(nullable NSNumber *)cloudAppVehicleID { - [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; -} - -- (nullable NSNumber *)cloudAppVehicleID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSNumber.class error:nil]; -} - -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState { - [self.parameters sdl_setObject:@(vehicleDataState) forName:vehicleDataName]; -} - -- (nullable NSNumber *)getOEMCustomVehicleData:(NSString *)vehicleDataName { - return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h deleted file mode 100644 index da07d66..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h +++ /dev/null @@ -1,243 +0,0 @@ -// SDLUnsubscribeVehicleDataResponse.h -// - -#import "SDLRPCResponse.h" - -@class SDLVehicleDataResult; - - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to UnsubscribeVehicleData - - since SmartDeviceLink 2.0 - */ -@interface SDLUnsubscribeVehicleDataResponse : SDLRPCResponse - -/** - The result of requesting to unsubscribe to the GPSData. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *gps; - -/** - The result of requesting to unsubscribe to the vehicle speed in kilometers per hour. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *speed; - -/** - The result of requesting to unsubscribe to the number of revolutions per minute of the engine. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *rpm; - -/** - The result of requesting to unsubscribe to the fuel level in the tank (percentage) - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *fuelLevel; - -/** - The result of requesting to unsubscribe to the fuel level state. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *fuelLevel_State; - -/** - The result of requesting to unsubscribe to the fuel range. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *fuelRange; - -/** - The result of requesting to unsubscribe to the instantaneous fuel consumption in microlitres. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *instantFuelConsumption; - -/** - The result of requesting to unsubscribe to the external temperature in degrees celsius. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *externalTemperature; - -/** - The result of requesting to unsubscribe to the PRNDL status. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *prndl; - -/** - The result of requesting to unsubscribe to the tireStatus. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *tirePressure; - -/** - The result of requesting to unsubscribe to the odometer in km. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *odometer; - -/** - The result of requesting to unsubscribe to the status of the seat belts. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *beltStatus; - -/** - The result of requesting to unsubscribe to the body information including power modes. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *bodyInformation; - -/** - The result of requesting to unsubscribe to the device status including signal and battery strength. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *deviceStatus; - -/** - The result of requesting to unsubscribe to the status of the brake pedal. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *driverBraking; - -/** - The result of requesting to unsubscribe to the status of the wipers. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *wiperStatus; - -/** - The result of requesting to unsubscribe to the status of the head lamps. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *headLampStatus; - -/** - The result of requesting to unsubscribe to the estimated percentage of remaining oil life of the engine. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *engineOilLife; - -/** - The result of requesting to unsubscribe to the torque value for engine (in Nm) on non-diesel variants. - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *engineTorque; - -/** - The result of requesting to unsubscribe to the accelerator pedal position (percentage depressed) - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *accPedalPosition; - -/** - The result of requesting to unsubscribe to the current angle of the steering wheel (in deg) - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *steeringWheelAngle; - -/** - The result of requesting to unsubscribe to the emergency call info - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *eCallInfo; - -/** - The result of requesting to unsubscribe to the airbag status - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *airbagStatus; - -/** - The result of requesting to unsubscribe to the emergency event - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *emergencyEvent; - -/** - The result of requesting to unsubscribe to the cluster modes - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *clusterModes; - -/** - The result of requesting to unsubscribe to the myKey status - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *myKey; - -/** - The result of requesting to unsubscribe to the electronic parking brake status - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *electronicParkBrakeStatus; - -/** - The result of requesting to unsubscribe to the turn signal - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *turnSignal; - -/** - The result of requesting to unsubscribe to the cloud app vehicle id - - Optional - */ -@property (strong, nonatomic, nullable) SDLVehicleDataResult *cloudAppVehicleID; - -/** - Sets the OEM custom vehicle data state for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @param vehicleDataState SDLVehicleDataResult object containing custom data type and result code information. - - Added SmartDeviceLink 6.0 - */ -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(SDLVehicleDataResult *)vehicleDataState NS_SWIFT_NAME(setOEMCustomVehicleData(name:state:)); - -/** - Gets the OEM custom vehicle data state for any given OEM custom vehicle data name. - - @param vehicleDataName The name of the OEM custom vehicle data item. - @return SDLVehicleDataResult object containing custom data type and result code information. - - Added SmartDeviceLink 6.0 - */ -- (nullable SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m deleted file mode 100644 index b864230..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m +++ /dev/null @@ -1,267 +0,0 @@ -// SDLUnsubscribeVehicleDataResponse.m -// - - -#import "SDLUnsubscribeVehicleDataResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLVehicleDataResult.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLUnsubscribeVehicleDataResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeVehicleData]) { - } - return self; -} -#pragma clang diagnostic pop - -- (void)setGps:(nullable SDLVehicleDataResult *)gps { - [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; -} - -- (nullable SDLVehicleDataResult *)gps { - return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setSpeed:(nullable SDLVehicleDataResult *)speed { - [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; -} - -- (nullable SDLVehicleDataResult *)speed { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setRpm:(nullable SDLVehicleDataResult *)rpm { - [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; -} - -- (nullable SDLVehicleDataResult *)rpm { - return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setFuelLevel:(nullable SDLVehicleDataResult *)fuelLevel { - [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; -} - -- (nullable SDLVehicleDataResult *)fuelLevel { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setFuelLevel_State:(nullable SDLVehicleDataResult *)fuelLevel_State { - [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; -} - -- (nullable SDLVehicleDataResult *)fuelLevel_State { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setFuelRange:(nullable SDLVehicleDataResult *)fuelRange { - [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; -} - -- (nullable SDLVehicleDataResult *)fuelRange { - return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setInstantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption { - [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; -} - -- (nullable SDLVehicleDataResult *)instantFuelConsumption { - return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setExternalTemperature:(nullable SDLVehicleDataResult *)externalTemperature { - [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; -} - -- (nullable SDLVehicleDataResult *)externalTemperature { - return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setPrndl:(nullable SDLVehicleDataResult *)prndl { - [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; -} - -- (nullable SDLVehicleDataResult *)prndl { - return [self.parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setTirePressure:(nullable SDLVehicleDataResult *)tirePressure { - [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; -} - -- (nullable SDLVehicleDataResult *)tirePressure { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setOdometer:(nullable SDLVehicleDataResult *)odometer { - [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; -} - -- (nullable SDLVehicleDataResult *)odometer { - return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setBeltStatus:(nullable SDLVehicleDataResult *)beltStatus { - [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; -} - -- (nullable SDLVehicleDataResult *)beltStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setBodyInformation:(nullable SDLVehicleDataResult *)bodyInformation { - [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; -} - -- (nullable SDLVehicleDataResult *)bodyInformation { - return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setDeviceStatus:(nullable SDLVehicleDataResult *)deviceStatus { - [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; -} - -- (nullable SDLVehicleDataResult *)deviceStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setDriverBraking:(nullable SDLVehicleDataResult *)driverBraking { - [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; -} - -- (nullable SDLVehicleDataResult *)driverBraking { - return [self.parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setWiperStatus:(nullable SDLVehicleDataResult *)wiperStatus { - [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; -} - -- (nullable SDLVehicleDataResult *)wiperStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setHeadLampStatus:(nullable SDLVehicleDataResult *)headLampStatus { - [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; -} - -- (nullable SDLVehicleDataResult *)headLampStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setEngineOilLife:(nullable SDLVehicleDataResult *)engineOilLife { - [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; -} - -- (nullable SDLVehicleDataResult *)engineOilLife { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setEngineTorque:(nullable SDLVehicleDataResult *)engineTorque { - [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; -} - -- (nullable SDLVehicleDataResult *)engineTorque { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setAccPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition { - [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; -} - -- (nullable SDLVehicleDataResult *)accPedalPosition { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setSteeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle { - [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; -} - -- (nullable SDLVehicleDataResult *)steeringWheelAngle { - return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setECallInfo:(nullable SDLVehicleDataResult *)eCallInfo { - [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; -} - -- (nullable SDLVehicleDataResult *)eCallInfo { - return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setAirbagStatus:(nullable SDLVehicleDataResult *)airbagStatus { - [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; -} - -- (nullable SDLVehicleDataResult *)airbagStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setEmergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent { - [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; -} - -- (nullable SDLVehicleDataResult *)emergencyEvent { - return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setClusterModes:(nullable SDLVehicleDataResult *)clusterModes { - [self.parameters sdl_setObject:clusterModes forName:SDLRPCParameterNameClusterModes]; -} - -- (nullable SDLVehicleDataResult *)clusterModes { - return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModes ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setMyKey:(nullable SDLVehicleDataResult *)myKey { - [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; -} - -- (nullable SDLVehicleDataResult *)myKey { - return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setElectronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus { - [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; -} - -- (nullable SDLVehicleDataResult *)electronicParkBrakeStatus { - return [self.parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setTurnSignal:(nullable SDLVehicleDataResult *)turnSignal { - [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; -} - -- (nullable SDLVehicleDataResult *)turnSignal { - return [self.parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setCloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID { - [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; -} - -- (nullable SDLVehicleDataResult *)cloudAppVehicleID { - return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:SDLVehicleDataResult.class error:nil]; -} - -- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(SDLVehicleDataResult *)vehicleDataState { - [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName]; -} - -- (nullable SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName { - return [self.parameters sdl_objectForName:vehicleDataName ofClass:SDLVehicleDataResult.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPoints.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPoints.h deleted file mode 100644 index 4b67ac2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPoints.h +++ /dev/null @@ -1,15 +0,0 @@ -// SDLUnsubscribeWaypoints.h -// - -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Request to unsubscribe from navigation WayPoints and Destination - */ -@interface SDLUnsubscribeWayPoints : SDLRPCRequest - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPoints.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPoints.m deleted file mode 100644 index 30b3e2c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPoints.m +++ /dev/null @@ -1,25 +0,0 @@ -// SDLUnsubscribeWaypoints.m -// - -#import "SDLUnsubscribeWayPoints.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLUnsubscribeWayPoints - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeWayPoints]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h deleted file mode 100644 index 304930a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h +++ /dev/null @@ -1,15 +0,0 @@ -// SDLUnsubscribeWaypointsResponse.h -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to UnsubscribeWayPoints - */ -@interface SDLUnsubscribeWayPointsResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m deleted file mode 100644 index 7eb3e63..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m +++ /dev/null @@ -1,25 +0,0 @@ -// SDLUnsubscribeWaypointsResponse.m -// - -#import "SDLUnsubscribeWayPointsResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLUnsubscribeWayPointsResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeWayPoints]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateMode.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateMode.h deleted file mode 100644 index 03748f3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateMode.h +++ /dev/null @@ -1,37 +0,0 @@ -// SDLUpdateMode.h -// - - -#import "SDLEnum.h" - -/** - * Specifies what function should be performed on the media clock/counter. Used in SetMediaClockTimer. - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLUpdateMode SDL_SWIFT_ENUM; - -/** - * Starts the media clock timer counting upward, in increments of 1 second. - */ -extern SDLUpdateMode const SDLUpdateModeCountUp; - -/** - * Starts the media clock timer counting downward, in increments of 1 second. - */ -extern SDLUpdateMode const SDLUpdateModeCountDown; - -/** - * Pauses the media clock timer. - */ -extern SDLUpdateMode const SDLUpdateModePause; - -/** - * Resumes the media clock timer. The timer resumes counting in whatever mode was in effect before pausing (i.e. COUNTUP or COUNTDOWN). - */ -extern SDLUpdateMode const SDLUpdateModeResume; - -/** - * Clear the media clock timer. - */ -extern SDLUpdateMode const SDLUpdateModeClear; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateMode.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateMode.m deleted file mode 100644 index fd527f2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateMode.m +++ /dev/null @@ -1,11 +0,0 @@ -// SDLUpdateMode.m -// - - -#import "SDLUpdateMode.h" - -SDLUpdateMode const SDLUpdateModeCountUp = @"COUNTUP"; -SDLUpdateMode const SDLUpdateModeCountDown = @"COUNTDOWN"; -SDLUpdateMode const SDLUpdateModePause = @"PAUSE"; -SDLUpdateMode const SDLUpdateModeResume = @"RESUME"; -SDLUpdateMode const SDLUpdateModeClear = @"CLEAR"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.h deleted file mode 100644 index 0133e0e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.h +++ /dev/null @@ -1,38 +0,0 @@ -// SDLUpdateTurnList.h -// - - -#import "SDLRPCRequest.h" - -@class SDLSoftButton; -@class SDLTurn; - -/** Updates the list of next maneuvers, which can be requested by the user pressing the softbutton
      - * “Turns” on the Navigation base screen. Three softbuttons are predefined by the system: Up, Down, Close. - *

      - * @since SmartDeviceLink 2.0 - */ - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLUpdateTurnList : SDLRPCRequest - -/// Convenience init to update a list of maneuvers for navigation -/// -/// @param turnList A struct used in UpdateTurnList for Turn-by-Turn navigation applications -/// @param softButtons An array of softbuttons -- (instancetype)initWithTurnList:(nullable NSArray *)turnList softButtons:(nullable NSArray *)softButtons; - -/** - * Optional, SDLTurn, 1 - 100 entries - */ -@property (strong, nonatomic, nullable) NSArray *turnList; - -/** - * Required, SDLSoftButton, 0 - 1 Entries - */ -@property (strong, nonatomic, nullable) NSArray *softButtons; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.m deleted file mode 100644 index ed7d632..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnList.m +++ /dev/null @@ -1,56 +0,0 @@ -// SDLUpdateTurnList.m -// - - -#import "SDLUpdateTurnList.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" -#import "SDLSoftButton.h" -#import "SDLTurn.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLUpdateTurnList - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameUpdateTurnList]) { - } - return self; -} -#pragma clang diagnostic pop - -- (instancetype)initWithTurnList:(nullable NSArray *)turnList softButtons:(nullable NSArray *)softButtons { - self = [self init]; - if (!self) { - return nil; - } - - self.turnList = [turnList mutableCopy]; - self.softButtons = [softButtons mutableCopy]; - - return self; -} - -- (void)setTurnList:(nullable NSArray *)turnList { - [self.parameters sdl_setObject:turnList forName:SDLRPCParameterNameTurnList]; -} - -- (nullable NSArray *)turnList { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameTurnList ofClass:SDLTurn.class error:nil]; -} - -- (void)setSoftButtons:(nullable NSArray *)softButtons { - [self.parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; -} - -- (nullable NSArray *)softButtons { - return [self.parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnListResponse.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnListResponse.h deleted file mode 100644 index cc05e2e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnListResponse.h +++ /dev/null @@ -1,17 +0,0 @@ -// SDLUpdateTurnListResponse.h -// - -#import "SDLRPCResponse.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Response to UpdateTurnList - - Since SmartDeviceLink 2.0 - */ -@interface SDLUpdateTurnListResponse : SDLRPCResponse - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnListResponse.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnListResponse.m deleted file mode 100644 index 5231609..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUpdateTurnListResponse.m +++ /dev/null @@ -1,26 +0,0 @@ -// SDLUpdateTurnListResponse.m -// - - -#import "SDLUpdateTurnListResponse.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLRPCFunctionNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLUpdateTurnListResponse - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (instancetype)init { - if (self = [super initWithName:SDLRPCFunctionNameUpdateTurnList]) { - } - return self; -} -#pragma clang diagnostic pop - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.h deleted file mode 100644 index cd3eaa4..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// SDLUploadFileOperation.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 5/11/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLAsynchronousOperation.h" -#import "SDLFileManagerConstants.h" - - -@protocol SDLConnectionManagerType; -@class SDLFileWrapper; - - -NS_ASSUME_NONNULL_BEGIN - - -@interface SDLUploadFileOperation : SDLAsynchronousOperation - -/** - * Create an instance of an upload files operation which will send a file to a remote system when added to an operation queue. - * - * @param file A file wrapper around the file which will be sent and a completion handler for when the file finishes sending. - * @param connectionManager The connection manager which will handle transporting the file bytes to the remote system - * - * @return An instance of SDLUploadFilesOperation - */ -- (instancetype)initWithFile:(SDLFileWrapper *)file connectionManager:(id)connectionManager; - -@property (nonatomic, strong, readonly) SDLFileWrapper *fileWrapper; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.m deleted file mode 100644 index b87629b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLUploadFileOperation.m +++ /dev/null @@ -1,277 +0,0 @@ -// -// SDLUploadFileOperation.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 5/11/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import "SDLUploadFileOperation.h" - -#import "SDLConnectionManagerType.h" -#import "SDLError.h" -#import "SDLFile.h" -#import "SDLFileWrapper.h" -#import "SDLGlobals.h" -#import "SDLPutFile.h" -#import "SDLPutFileResponse.h" -#import "SDLRPCResponse.h" - - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark - SDLUploadFileOperation - -@interface SDLUploadFileOperation () - -@property (strong, nonatomic, readwrite) SDLFileWrapper *fileWrapper; -@property (weak, nonatomic) id connectionManager; -@property (strong, nonatomic) NSInputStream *inputStream; - -@end - - -@implementation SDLUploadFileOperation { - BOOL executing; - BOOL finished; -} - -- (instancetype)initWithFile:(SDLFileWrapper *)file connectionManager:(id)connectionManager { - self = [super init]; - if (!self) { - return nil; - } - - executing = NO; - finished = NO; - - _fileWrapper = file; - _connectionManager = connectionManager; - - return self; -} - -- (void)start { - [super start]; - if (self.isCancelled) { return; } - - [self sdl_sendFile:self.fileWrapper.file mtuSize:[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC] withCompletion:self.fileWrapper.completionHandler]; -} - -/** - Sends data asynchronously to the SDL Core by breaking the data into smaller packets, each of which is sent via a putfile. To prevent large files from eating up memory, the data packet is deleted once it is sent via a putfile. If the SDL Core receives all the putfiles successfully, a success response with the amount of free storage space left on the SDL Core is returned. Otherwise the error returned by the SDL Core is passed along. - - @param file The file containing the data to be sent to the SDL Core - @param mtuSize The maximum packet size allowed - @param completion Closure returning whether or not the upload was a success - */ -- (void)sdl_sendFile:(SDLFile *)file mtuSize:(NSUInteger)mtuSize withCompletion:(SDLFileManagerUploadCompletionHandler)completion { - __block NSError *streamError = nil; - __block NSUInteger bytesAvailable = 2000000000; - __block NSInteger highestCorrelationIDReceived = -1; - - if (self.isCancelled) { - completion(NO, bytesAvailable, [NSError sdl_fileManager_fileUploadCanceled]); - [self finishOperation]; - return; - } - - if (file == nil) { - completion(NO, bytesAvailable, [NSError sdl_fileManager_fileDoesNotExistError]); - [self finishOperation]; - return; - } - - self.inputStream = [self sdl_openInputStreamWithFile:file]; - if (self.inputStream == nil || ![self.inputStream hasBytesAvailable]) { - // If the file does not exist or the passed data is nil, return an error - [self sdl_closeInputStream]; - - completion(NO, bytesAvailable, [NSError sdl_fileManager_fileDoesNotExistError]); - [self finishOperation]; - return; - } - - dispatch_group_t putFileGroup = dispatch_group_create(); - dispatch_group_enter(putFileGroup); - - // Wait for all packets be sent before returning whether or not the upload was a success - __weak typeof(self) weakself = self; - dispatch_group_notify(putFileGroup, [SDLGlobals sharedGlobals].sdlProcessingQueue, ^{ - typeof(weakself) strongself = weakself; - [weakself sdl_closeInputStream]; - - if (streamError != nil || strongself.isCancelled) { - completion(NO, bytesAvailable, streamError); - } else { - completion(YES, bytesAvailable, nil); - } - - [weakself finishOperation]; - }); - - // Break the data into small pieces, each of which will be sent in a separate putfile - NSUInteger currentOffset = 0; - for (int i = 0; i < (((file.fileSize - 1) / mtuSize) + 1); i++) { - dispatch_group_enter(putFileGroup); - - // Get a chunk of data from the input stream - UInt32 putFileLength = (UInt32)[self.class sdl_getPutFileLengthForOffset:currentOffset fileSize:(NSUInteger)file.fileSize mtuSize:mtuSize]; - NSUInteger putFileBulkDataSize = [self.class sdl_getDataSizeForOffset:currentOffset fileSize:file.fileSize mtuSize:mtuSize]; - NSData *putFileBulkData = [self.class sdl_getDataChunkWithSize:putFileBulkDataSize inputStream:self.inputStream]; - - SDLPutFile *putFile = [[SDLPutFile alloc] - initWithFileName:file.name - fileType:file.fileType - persistentFile:file.isPersistent - systemFile:NO - offset:(UInt32)currentOffset - length:putFileLength - bulkData:putFileBulkData]; - - currentOffset += putFileBulkDataSize; - - __weak typeof(self) weakself = self; - [self.connectionManager sendConnectionManagerRequest:putFile withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { - typeof(weakself) strongself = weakself; - SDLPutFileResponse *putFileResponse = (SDLPutFileResponse *)response; - - // Check if the upload process has been cancelled by another packet. If so, stop the upload process. - // TODO: Is this the right way to handle this case? Should we just abort everything in the future? Should we be deleting what we sent? Should we have an automatic retry strategy based on what the error was? - if (strongself.isCancelled) { - dispatch_group_leave(putFileGroup); - BLOCK_RETURN; - } - - // If the SDL Core returned an error, cancel the upload the process in the future - if (error != nil || response == nil || ![response.success boolValue] || strongself.isCancelled) { - [strongself cancel]; - streamError = error; - dispatch_group_leave(putFileGroup); - BLOCK_RETURN; - } - - // If no errors, watch for a response containing the amount of storage left on the SDL Core - if ([self.class sdl_newHighestCorrelationID:request highestCorrelationIDReceived:highestCorrelationIDReceived]) { - highestCorrelationIDReceived = [request.correlationID integerValue]; - - // If spaceAvailable is nil, set it to the max value - bytesAvailable = putFileResponse.spaceAvailable != nil ? putFileResponse.spaceAvailable.unsignedIntegerValue : 2000000000; - } - - dispatch_group_leave(putFileGroup); - }]; - } - dispatch_group_leave(putFileGroup); -} - -/** - Opens a socket for reading data. - - @param file The file containing the data or the file url of the data - */ -- (NSInputStream *)sdl_openInputStreamWithFile:(SDLFile *)file { - NSInputStream *inputStream = file.inputStream; - [inputStream open]; - return inputStream; -} -/** - * Close the input stream once all the data has been read - */ -- (void)sdl_closeInputStream { - if (self.inputStream == nil) { return; } - [self.inputStream close]; -} - -/** - Returns the length of the data being sent in the putfile. The first putfile's length is unique in that it sends the full size of the data. For the rest of the putfiles, the length parameter is equal to the size of the chunk of data being sent in the putfile. - - @param currentOffset The current position in the file - @param fileSize The size of the file - @param mtuSize The maximum packet size allowed - @return The the length of the data being sent in the putfile - */ -+ (NSUInteger)sdl_getPutFileLengthForOffset:(NSUInteger)currentOffset fileSize:(NSUInteger)fileSize mtuSize:(NSUInteger)mtuSize { - NSUInteger putFileLength = 0; - if (currentOffset == 0) { - // The first putfile sends the full file size - putFileLength = fileSize; - } else if ((fileSize - currentOffset) < mtuSize) { - // The last putfile sends the size of the remaining data - putFileLength = fileSize - currentOffset; - } else { - // All other putfiles send the maximum allowed packet size - putFileLength = mtuSize; - } - return putFileLength; -} - -/** - Gets the size of the data to be sent in a packet. Packet size can not be greater than the max MTU size allowed by the SDL Core. - - @param currentOffset The position in the file where to start reading data - @param fileSize The size of the file - @param mtuSize The maximum packet size allowed - @return The size of the data to be sent in the packet. - */ -+ (NSUInteger)sdl_getDataSizeForOffset:(NSUInteger)currentOffset fileSize:(unsigned long long)fileSize mtuSize:(NSUInteger)mtuSize { - NSUInteger dataSize = 0; - NSUInteger fileSizeRemaining = (NSUInteger)(fileSize - currentOffset); - if (fileSizeRemaining < mtuSize) { - dataSize = fileSizeRemaining; - } else { - dataSize = mtuSize; - } - return dataSize; -} - -/** - Reads a chunk of data from a socket. - - @param size The amount of data to read from the input stream - @param inputStream The socket from which to read the data - @return The data read from the socket - */ -+ (nullable NSData *)sdl_getDataChunkWithSize:(NSUInteger)size inputStream:(NSInputStream *)inputStream { - if (size <= 0) { - return nil; - } - - Byte buffer[size]; - NSInteger bytesRead = [inputStream read:buffer maxLength:size]; - if (bytesRead) { - return [[NSData alloc] initWithBytes:(const void*)buffer length:size]; - } else { - // TODO: return a custom error? - return nil; - } -} - -/** - One of the responses returned by the SDL Core will contain the correct remaining free storage size on the SDL Core. Since communication with the SDL Core is asynchronous, there is no way to predict which response contains the correct bytes available other than to watch for the largest correlation id, since that will be the last response sent by the SDL Core. - - @param request The newest response returned by the SDL Core for a putfile - @param highestCorrelationIDReceived The largest currently received correlation id - @return Whether or not the newest request contains the highest correlationId - */ -+ (BOOL)sdl_newHighestCorrelationID:(SDLRPCRequest *)request highestCorrelationIDReceived:(NSInteger)highestCorrelationIDReceived { - if ([request.correlationID integerValue] > highestCorrelationIDReceived) { - return true; - } - - return false; -} - -#pragma mark - Property Overrides - -- (nullable NSString *)name { - return [NSString stringWithFormat:@"%@ - %@", self.class, self.fileWrapper.file.name]; -} - -- (NSOperationQueuePriority)queuePriority { - return NSOperationQueuePriorityNormal; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolHeader.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolHeader.h deleted file mode 100644 index ecd5e25..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolHeader.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLSmartDeviceLinkV1ProtocolHeader.h -// - - -#import "SDLProtocolHeader.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLV1ProtocolHeader : SDLProtocolHeader - -- (instancetype)init; -- (NSData *)data; -- (void)parse:(NSData *)data; -- (NSString *)description; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolHeader.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolHeader.m deleted file mode 100644 index ba64744..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolHeader.m +++ /dev/null @@ -1,88 +0,0 @@ -// SDLSmartDeviceLinkV1ProtocolHeader.m -// - - -#import "SDLV1ProtocolHeader.h" - -const int ProtocolV1HeaderByteSize = 8; - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLV1ProtocolHeader - -- (instancetype)init { - if (self = [super init]) { - _version = 1; - _size = ProtocolV1HeaderByteSize; - } - return self; -} - -- (NSData *)data { - // Assembles the properties in the binary header format - Byte headerBytes[ProtocolV1HeaderByteSize] = {0}; - - Byte version = (Byte)((self.version & 0xF) << 4); // first 4 bits - Byte compressed = (Byte)((self.encrypted ? 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:ProtocolV1HeaderByteSize]; - - return dataOut; -} - -- (id)copyWithZone:(nullable NSZone *)zone { - SDLV1ProtocolHeader *newHeader = [[SDLV1ProtocolHeader allocWithZone:zone] init]; - newHeader.encrypted = self.encrypted; - newHeader.frameType = self.frameType; - newHeader.serviceType = self.serviceType; - newHeader.frameData = self.frameData; - newHeader.bytesInPayload = self.bytesInPayload; - newHeader.sessionID = self.sessionID; - - return newHeader; -} - -- (void)parse:(NSData *)data { - NSParameterAssert(data != nil); - NSAssert(data.length >= _size, @"Error: insufficient data available to parse V1 header."); - - Byte *bytePointer = (Byte *)data.bytes; - Byte firstByte = bytePointer[0]; - self.encrypted = ((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.encrypted, - self.frameType, - self.serviceType, - self.frameData, - self.sessionID, - (unsigned int)self.bytesInPayload]; - return description; -} - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolMessage.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolMessage.h deleted file mode 100644 index 71903a5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolMessage.h +++ /dev/null @@ -1,17 +0,0 @@ -// SDLV1ProtocolMessage.h -// - -#import "SDLProtocolMessage.h" - -@class SDLProtocolHeader; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLV1ProtocolMessage : SDLProtocolMessage - -- (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(nullable NSData *)payload; -- (nullable NSDictionary *)rpcDictionary; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolMessage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolMessage.m deleted file mode 100644 index 3d1e903..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV1ProtocolMessage.m +++ /dev/null @@ -1,39 +0,0 @@ -// SDLV1ProtocolMessage.m -// - -#import "SDLV1ProtocolMessage.h" -#import "SDLLogMacros.h" -#import "SDLProtocolHeader.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLV1ProtocolMessage - -- (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(nullable NSData *)payload { - if (self = [self init]) { - self.header = header; - self.payload = payload; - - self.header.bytesInPayload = (UInt32)self.payload.length; - } - return self; -} - -- (nullable NSDictionary *)rpcDictionary { - if (self.payload.length == 0) { - return nil; - } - - NSError *error = nil; - NSDictionary * rpcMessageAsDictionary = [NSJSONSerialization JSONObjectWithData:self.payload options:kNilOptions error:&error]; - if (error != nil) { - SDLLogE(@"Error decoding JSON data: %@", error); - return nil; - } - - return rpcMessageAsDictionary; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolHeader.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolHeader.h deleted file mode 100644 index bb93768..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolHeader.h +++ /dev/null @@ -1,21 +0,0 @@ -// SDLSmartDeviceLinkV2ProtocolHeader.h -// - - -#import "SDLProtocolHeader.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLV2ProtocolHeader : SDLProtocolHeader - -@property (assign, nonatomic) UInt32 messageID; - -- (instancetype)init; -- (instancetype)initWithVersion:(UInt8)version; -- (NSData *)data; -- (void)parse:(NSData *)data; -- (NSString *)description; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolHeader.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolHeader.m deleted file mode 100644 index d89fdeb..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolHeader.m +++ /dev/null @@ -1,126 +0,0 @@ -// SDLSmartDeviceLinkV2ProtocolHeader.m -// - - -#import "SDLV2ProtocolHeader.h" - -const int ProtocolV2HeaderByteSize = 12; - - -@interface SDLV2ProtocolHeader () - -@end - - -@implementation SDLV2ProtocolHeader - -- (instancetype)init { - // TODO: Should this be changed to whatever the current version is from SDLGlobals - return [self initWithVersion:2]; -} - -- (instancetype)initWithVersion:(UInt8)version { - if (self = [super init]) { - _version = version; - _size = ProtocolV2HeaderByteSize; - } - return self; -} - -- (NSData *)data { - // Assembles the properties in the binary header format - Byte headerBytes[ProtocolV2HeaderByteSize] = {0}; - - Byte version = (Byte)((self.version & 0xF) << 4); // first 4 bits - Byte encrypted = (Byte)((self.encrypted ? 1 : 0) << 3); // next 1 bit - Byte frameType = (self.frameType & 0x7); // last 3 bits - - headerBytes[0] = version | encrypted | 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:ProtocolV2HeaderByteSize]; - - return dataOut; -} - -- (id)copyWithZone:(NSZone *)zone { - SDLV2ProtocolHeader *newHeader = [[SDLV2ProtocolHeader allocWithZone:zone] init]; - newHeader->_version = self.version; - newHeader.encrypted = self.encrypted; - newHeader.frameType = self.frameType; - newHeader.serviceType = self.serviceType; - newHeader.frameData = self.frameData; - newHeader.bytesInPayload = self.bytesInPayload; - newHeader.sessionID = self.sessionID; - newHeader.messageID = self.messageID; - - return newHeader; -} - -- (void)parse:(NSData *)data { - NSParameterAssert(data != nil); - NSAssert(data.length >= _size, @"Error: insufficient data available to parse V2 header."); - - Byte *bytePointer = (Byte *)data.bytes; - Byte firstByte = bytePointer[0]; - self.encrypted = ((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 == SDLFrameTypeControl) { - if (self.frameData >= 0 && self.frameData <= 5) { - NSArray *controlFrameDataNames = @[@"Heartbeat", @"StartSession", @"StartSessionACK", @"StartSessionNACK", @"EndSession", @"EndSessionACK", @"EndSessionNACK"]; - frameDataString = controlFrameDataNames[self.frameData]; - } else if (self.frameData == SDLFrameInfoTransportEventUpdate) { - frameDataString = @"TransportEventUpdate"; - } else { - frameDataString = @"Reserved"; - } - } else if (self.frameType == SDLFrameTypeSingle || self.frameType == SDLFrameTypeFirst) { - frameDataString = @"Reserved"; - } else if (self.frameType == SDLFrameTypeConsecutive) { - frameDataString = @"Frame#"; - } - - NSMutableString *description = [[NSMutableString alloc] init]; - [description appendFormat:@"Version:%i, encrypted:%i, frameType:%@(%i), serviceType:%i, frameData:%@(%i), sessionID:%i, dataSize:%i, messageID:%i ", - self.version, - self.encrypted, - frameTypeString, - self.frameType, - self.serviceType, - frameDataString, - self.frameData, - self.sessionID, - (unsigned int)self.bytesInPayload, - (unsigned int)self.messageID]; - return description; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolMessage.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolMessage.h deleted file mode 100644 index 0c1cc06..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolMessage.h +++ /dev/null @@ -1,18 +0,0 @@ -// SDLSmartDeviceLinkV2ProtocolMessage.h -// - - -#import "SDLProtocolMessage.h" - -@class SDLProtocolHeader; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLV2ProtocolMessage : SDLProtocolMessage - -- (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(nullable NSData *)payload; -- (nullable NSDictionary *)rpcDictionary; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolMessage.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolMessage.m deleted file mode 100644 index 4e50b6d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLV2ProtocolMessage.m +++ /dev/null @@ -1,68 +0,0 @@ -// SDLSmartDeviceLinkV2ProtocolMessage.m -// - -#import "SDLV2ProtocolMessage.h" -#import "SDLFunctionID.h" -#import "SDLLogMacros.h" -#import "SDLProtocolHeader.h" -#import "SDLRPCPayload.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLV2ProtocolMessage - -- (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(nullable NSData *)payload { - if (self = [self init]) { - self.header = header; - self.payload = payload; - - self.header.bytesInPayload = (UInt32)self.payload.length; - } - return self; -} - -// Convert RPC payload to dictionary (for consumption by RPC layer) -- (nullable NSDictionary *)rpcDictionary { - // Only applicable to RPCs - if ((self.header.serviceType != SDLServiceTypeRPC) && (self.header.serviceType != SDLServiceTypeBulkData)) { - return nil; - } - - NSMutableDictionary *rpcMessageAsDictionary = [[NSMutableDictionary alloc] init]; - - // Parse the payload as RPC struct - SDLRPCPayload *rpcPayload = [SDLRPCPayload rpcPayloadWithData:self.payload]; - - // Create the inner dictionary with the RPC properties - NSMutableDictionary *innerDictionary = [[NSMutableDictionary alloc] init]; - NSString *functionName = [[SDLFunctionID sharedInstance] functionNameForId:rpcPayload.functionID]; - innerDictionary[SDLRPCParameterNameOperationName] = functionName; - innerDictionary[SDLRPCParameterNameCorrelationId] = @(rpcPayload.correlationID); - - // Get the json data from the struct - if (rpcPayload.jsonData) { - NSError *error = nil; - NSDictionary * jsonDictionary = [NSJSONSerialization JSONObjectWithData:rpcPayload.jsonData options:kNilOptions error:&error]; - if (error != nil) { - SDLLogE(@"Error decoding JSON data: %@", error); - } else if (jsonDictionary) { - [innerDictionary setObject:jsonDictionary forKey:SDLRPCParameterNameParameters]; - } - } - - // Store it in the containing dictionary - UInt8 rpcType = rpcPayload.rpcType; - NSArray *rpcTypeNames = @[SDLRPCParameterNameRequest, SDLRPCParameterNameResponse, SDLRPCParameterNameNotification]; - [rpcMessageAsDictionary setObject:innerDictionary forKey:rpcTypeNames[rpcType]]; - - // The bulk data also goes in the dictionary - if (rpcPayload.binaryData) { - [rpcMessageAsDictionary setObject:rpcPayload.binaryData forKey:SDLRPCParameterNameBulkData]; - } - - return rpcMessageAsDictionary; -} -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataActiveStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataActiveStatus.h deleted file mode 100644 index ceeabd3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataActiveStatus.h +++ /dev/null @@ -1,35 +0,0 @@ -// SDLVehicleDataActiveStatus.h -// - - -#import "SDLEnum.h" - -/** - Vehicle Data Activity Status. Used in nothing. - */ -typedef SDLEnum SDLVehicleDataActiveStatus SDL_SWIFT_ENUM; - -/** - Inactive not confirmed - */ -extern SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusInactiveNotConfirmed; - -/** - Inactive confirmed - */ -extern SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusInactiveConfirmed; - -/** - Active not confirmed - */ -extern SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusActiveNotConfirmed; - -/** - Active confirmed - */ -extern SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusActiveConfirmed; - -/** - Fault - */ -extern SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusFault; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataActiveStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataActiveStatus.m deleted file mode 100644 index 99450ca..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataActiveStatus.m +++ /dev/null @@ -1,11 +0,0 @@ -// SDLVehicleDataActiveStatus.m -// - - -#import "SDLVehicleDataActiveStatus.h" - -SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusInactiveNotConfirmed = @"INACTIVE_NOT_CONFIRMED"; -SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusInactiveConfirmed = @"INACTIVE_CONFIRMED"; -SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusActiveNotConfirmed = @"ACTIVE_NOT_CONFIRMED"; -SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusActiveConfirmed = @"ACTIVE_CONFIRMED"; -SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusFault = @"FAULT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataEventStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataEventStatus.h deleted file mode 100644 index 1c78e26..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataEventStatus.h +++ /dev/null @@ -1,37 +0,0 @@ -// SDLVehicleDataEventStatus.h -// - - -#import "SDLEnum.h" - -/** - * Reflects the status of a vehicle data event; e.g. a seat belt event status. Used in retrieving vehicle data. - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLVehicleDataEventStatus SDL_SWIFT_ENUM; - -/** - No event - */ -extern SDLVehicleDataEventStatus const SDLVehicleDataEventStatusNoEvent; - -/** - The event is a No status - */ -extern SDLVehicleDataEventStatus const SDLVehicleDataEventStatusNo; - -/** - The event is a Yes status - */ -extern SDLVehicleDataEventStatus const SDLVehicleDataEventStatusYes; - -/** - Vehicle data event is not supported - */ -extern SDLVehicleDataEventStatus const SDLVehicleDataEventStatusNotSupported; - -/** - The event is a Fault status - */ -extern SDLVehicleDataEventStatus const SDLVehicleDataEventStatusFault; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataEventStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataEventStatus.m deleted file mode 100644 index 9c84a4c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataEventStatus.m +++ /dev/null @@ -1,11 +0,0 @@ -// SDLVehicleDataEventStatus.m -// - - -#import "SDLVehicleDataEventStatus.h" - -SDLVehicleDataEventStatus const SDLVehicleDataEventStatusNoEvent = @"NO_EVENT"; -SDLVehicleDataEventStatus const SDLVehicleDataEventStatusNo = @"NO"; -SDLVehicleDataEventStatus const SDLVehicleDataEventStatusYes = @"YES"; -SDLVehicleDataEventStatus const SDLVehicleDataEventStatusNotSupported = @"NOT_SUPPORTED"; -SDLVehicleDataEventStatus const SDLVehicleDataEventStatusFault = @"FAULT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataNotificationStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataNotificationStatus.h deleted file mode 100644 index dca5d84..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataNotificationStatus.h +++ /dev/null @@ -1,32 +0,0 @@ -// SDLVehicleDataNotificationStatus.h -// - - -#import "SDLEnum.h" - -/** - * Reflects the status of a vehicle data notification. Used in ECallInfo - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLVehicleDataNotificationStatus SDL_SWIFT_ENUM; - -/** - The vehicle data notification status is not supported - */ -extern SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusNotSupported; - -/** - The vehicle data notification status is normal - */ -extern SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusNormal; - -/** - The vehicle data notification status is active - */ -extern SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusActive; - -/** - The vehicle data notification status is not used - */ -extern SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusNotUsed; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataNotificationStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataNotificationStatus.m deleted file mode 100644 index 6e3d750..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataNotificationStatus.m +++ /dev/null @@ -1,10 +0,0 @@ -// SDLVehicleDataNotificationStatus.m -// - - -#import "SDLVehicleDataNotificationStatus.h" - -SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusNotSupported = @"NOT_SUPPORTED"; -SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusNormal = @"NORMAL"; -SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusActive = @"ACTIVE"; -SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusNotUsed = @"NOT_USED"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.h deleted file mode 100644 index deeb325..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.h +++ /dev/null @@ -1,51 +0,0 @@ -// SDLVehicleDataResult.h -// - -#import "SDLRPCMessage.h" - -#import "SDLVehicleDataType.h" -#import "SDLVehicleDataResultCode.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Individual published data request result - */ -@interface SDLVehicleDataResult : SDLRPCStruct - -/** - * Convenience init for creating a SDLVehicleDataResult with a dataType - * - * @param dataType The Vehicle DataType data - * @param resultCode The VehicleData ResultCode data - */ -- (instancetype)initWithDataType:(SDLVehicleDataType)dataType resultCode:(SDLVehicleDataResultCode)resultCode; - -/** - * Convenience init for creating a SDLVehicleDataResult with a customDataType - * - * @param customDataType The custom dataType data - * @param resultCode The VehicleData ResultCode data - */ -- (instancetype)initWithCustomOEMDataType:(NSString *)customDataType resultCode:(SDLVehicleDataResultCode)resultCode; - -/** - Defined published data element type - */ -@property (strong, nonatomic) SDLVehicleDataType dataType; - -/** - OEM custom defined published data element type - - Added SmartDeviceLink 6.0 - */ -@property (nullable, strong, nonatomic) NSString *customOEMDataType; - -/** - Published data result code - */ -@property (strong, nonatomic) SDLVehicleDataResultCode resultCode; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.m deleted file mode 100644 index db69950..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResult.m +++ /dev/null @@ -1,66 +0,0 @@ -// SDLVehicleDataResult.m -// - -#import "SDLVehicleDataResult.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLVehicleDataResult - -- (instancetype)initWithDataType:(SDLVehicleDataType)dataType resultCode:(SDLVehicleDataResultCode)resultCode { - self = [self init]; - if (!self) { - return nil; - } - - self.dataType = dataType; - self.resultCode = resultCode; - - return self; -} - -- (instancetype)initWithCustomOEMDataType:(NSString *)customDataType resultCode:(SDLVehicleDataResultCode)resultCode{ - self = [self init]; - if (!self) { - return nil; - } - - self.customOEMDataType = customDataType; - self.resultCode = resultCode; - - return self; -} - -- (void)setDataType:(SDLVehicleDataType)dataType { - [self.store sdl_setObject:dataType forName:SDLRPCParameterNameDataType]; -} - -- (SDLVehicleDataType)dataType { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameDataType error:&error]; -} - -- (void)setResultCode:(SDLVehicleDataResultCode)resultCode { - [self.store sdl_setObject:resultCode forName:SDLRPCParameterNameResultCode]; -} - -- (SDLVehicleDataResultCode)resultCode { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameResultCode error:&error]; -} - -- (nullable NSString *)customOEMDataType { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameOEMCustomDataType error:&error]; -} - -- (void)setCustomOEMDataType:(nullable NSString *)oemCustomDataType { - [self.store sdl_setObject:oemCustomDataType forName:SDLRPCParameterNameOEMCustomDataType]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResultCode.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResultCode.h deleted file mode 100644 index c90c5a5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResultCode.h +++ /dev/null @@ -1,55 +0,0 @@ -// SDLVehicleDataResultCode.h -// - - -#import "SDLEnum.h" - -/** - Vehicle Data Result Code. Used in DIDResult. - */ -typedef SDLEnum SDLVehicleDataResultCode SDL_SWIFT_ENUM; - -/** - Individual vehicle data item / DTC / DID request or subscription successful - */ -extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeSuccess; - -/** - DTC / DID request successful, however, not all active DTCs or full contents of DID location available - */ -extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeTruncatedData; - -/** - This vehicle data item is not allowed for this app by SDL - */ -extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeDisallowed; - -/** - The user has not granted access to this type of vehicle data item at this time - */ -extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeUserDisallowed; - -/** - The ECU ID referenced is not a valid ID on the bus / system - */ -extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeInvalidId; - -/** - The requested vehicle data item / DTC / DID is not currently available or responding on the bus / system - */ -extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeVehicleDataNotAvailable; - -/** - The vehicle data item is already subscribed - */ -extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeDataAlreadySubscribed; - -/** - The vehicle data item cannot be unsubscribed because it is not currently subscribed - */ -extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeDataNotSubscribed; - -/** - The request for this item is ignored because it is already in progress - */ -extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeIgnored; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResultCode.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResultCode.m deleted file mode 100644 index cc32d3b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataResultCode.m +++ /dev/null @@ -1,15 +0,0 @@ -// SDLVehicleDataResultCode.m -// - - -#import "SDLVehicleDataResultCode.h" - -SDLVehicleDataResultCode const SDLVehicleDataResultCodeSuccess = @"SUCCESS"; -SDLVehicleDataResultCode const SDLVehicleDataResultCodeTruncatedData = @"TRUNCATED_DATA"; -SDLVehicleDataResultCode const SDLVehicleDataResultCodeDisallowed = @"DISALLOWED"; -SDLVehicleDataResultCode const SDLVehicleDataResultCodeUserDisallowed = @"USER_DISALLOWED"; -SDLVehicleDataResultCode const SDLVehicleDataResultCodeInvalidId = @"INVALID_ID"; -SDLVehicleDataResultCode const SDLVehicleDataResultCodeVehicleDataNotAvailable = @"VEHICLE_DATA_NOT_AVAILABLE"; -SDLVehicleDataResultCode const SDLVehicleDataResultCodeDataAlreadySubscribed = @"DATA_ALREADY_SUBSCRIBED"; -SDLVehicleDataResultCode const SDLVehicleDataResultCodeDataNotSubscribed = @"DATA_NOT_SUBSCRIBED"; -SDLVehicleDataResultCode const SDLVehicleDataResultCodeIgnored = @"IGNORED"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataStatus.h deleted file mode 100644 index c0f2ffc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataStatus.h +++ /dev/null @@ -1,27 +0,0 @@ -// SDLVehicleDataStatus.h -// - - -#import "SDLEnum.h" - -/** - * Reflects the status of a binary vehicle data item. Used in MyKey. - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLVehicleDataStatus SDL_SWIFT_ENUM; - -/** - No data avaliable - */ -extern SDLVehicleDataStatus const SDLVehicleDataStatusNoDataExists; - -/** - The status is Off - */ -extern SDLVehicleDataStatus const SDLVehicleDataStatusOff; - -/** - The status is On - */ -extern SDLVehicleDataStatus const SDLVehicleDataStatusOn; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataStatus.m deleted file mode 100644 index 3c398ce..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataStatus.m +++ /dev/null @@ -1,9 +0,0 @@ -// SDLVehicleDataStatus.m -// - - -#import "SDLVehicleDataStatus.h" - -SDLVehicleDataStatus const SDLVehicleDataStatusNoDataExists = @"NO_DATA_EXISTS"; -SDLVehicleDataStatus const SDLVehicleDataStatusOff = @"OFF"; -SDLVehicleDataStatus const SDLVehicleDataStatusOn = @"ON"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.h deleted file mode 100644 index e65cdce..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.h +++ /dev/null @@ -1,172 +0,0 @@ -// SDLVehicleDataType.h -// - - -#import "SDLEnum.h" - -/** - * Defines the vehicle data types that can be published and/or subscribed to using SDLSubscribeVehicleData. Used in VehicleDataResult - */ -typedef SDLEnum SDLVehicleDataType SDL_SWIFT_ENUM; - -/** - GPS vehicle data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeGPS; - -/** - Vehicle speed data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeSpeed; - -/** - Vehicle RPM data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeRPM; - -/** - Vehicle fuel level data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeFuelLevel; - -/** - Vehicle fuel level state data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeFuelLevelState; - -/** - Vehicle fuel consumption data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeFuelConsumption; - -/** - Vehicle external temperature data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeExternalTemperature; - -/** - Vehicle VIN data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeVIN; - -/** - Vehicle PRNDL data - */ -extern SDLVehicleDataType const SDLVehicleDataTypePRNDL; - -/** - Vehicle tire pressure data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeTirePressure; - -/** - Vehicle odometer data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeOdometer; - -/** - Vehicle belt status data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeBeltStatus; - -/** - Vehicle body info data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeBodyInfo; - -/** - Vehicle device status data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeDeviceStatus; - -/** - Vehicle emergency call info data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeECallInfo; - -/** - Vehicle fuel range data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeFuelRange; - -/** - Vehicle airbag status data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeAirbagStatus; - -/** - Vehicle emergency event info - */ -extern SDLVehicleDataType const SDLVehicleDataTypeEmergencyEvent; - -/** - Vehicle cluster mode status data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeClusterModeStatus; - -/** - Vehicle MyKey data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeMyKey; - -/** - Vehicle braking data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeBraking; - -/** - Vehicle wiper status data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeWiperStatus; - -/** - Vehicle headlamp status - */ -extern SDLVehicleDataType const SDLVehicleDataTypeHeadlampStatus; - -/** - Vehicle battery voltage data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeBatteryVoltage; - -/** - Vehicle engine oil life data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeEngineOilLife; - -/** - Vehicle engine torque data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeEngineTorque; - -/** - Vehicle accleration pedal data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeAccelerationPedal; - -/** - Vehicle steering wheel data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeSteeringWheel; - -/** - Vehicle electronic parking brake status data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeElectronicParkBrakeStatus; - -/** - Vehicle turn signal data - */ -extern SDLVehicleDataType const SDLVehicleDataTypeTurnSignal; - -/** - The cloud application vehicle id. Used by cloud apps to identify a head unit - */ -extern SDLVehicleDataType const SDLVehicleDataTypeCloudAppVehicleID; - -/** - Custom OEM Vehicle data - - Added in SDL 6.0 - */ -extern SDLVehicleDataType const SDLVehicleDataTypeOEMVehicleDataType; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.m deleted file mode 100644 index 8956138..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleDataType.m +++ /dev/null @@ -1,39 +0,0 @@ -// SDLVehicleDataType.m -// - - -#import "SDLVehicleDataType.h" - -SDLVehicleDataType const SDLVehicleDataTypeGPS = @"VEHICLEDATA_GPS"; -SDLVehicleDataType const SDLVehicleDataTypeSpeed = @"VEHICLEDATA_SPEED"; -SDLVehicleDataType const SDLVehicleDataTypeRPM = @"VEHICLEDATA_RPM"; -SDLVehicleDataType const SDLVehicleDataTypeFuelLevel = @"VEHICLEDATA_FUELLEVEL"; -SDLVehicleDataType const SDLVehicleDataTypeFuelLevelState = @"VEHICLEDATA_FUELLEVEL_STATE"; -SDLVehicleDataType const SDLVehicleDataTypeFuelConsumption = @"VEHICLEDATA_FUELCONSUMPTION"; -SDLVehicleDataType const SDLVehicleDataTypeFuelRange = @"VEHICLEDATA_FUELRANGE"; -SDLVehicleDataType const SDLVehicleDataTypeExternalTemperature = @"VEHICLEDATA_EXTERNTEMP"; -SDLVehicleDataType const SDLVehicleDataTypeVIN = @"VEHICLEDATA_VIN"; -SDLVehicleDataType const SDLVehicleDataTypePRNDL = @"VEHICLEDATA_PRNDL"; -SDLVehicleDataType const SDLVehicleDataTypeTirePressure = @"VEHICLEDATA_TIREPRESSURE"; -SDLVehicleDataType const SDLVehicleDataTypeOdometer = @"VEHICLEDATA_ODOMETER"; -SDLVehicleDataType const SDLVehicleDataTypeBeltStatus = @"VEHICLEDATA_BELTSTATUS"; -SDLVehicleDataType const SDLVehicleDataTypeBodyInfo = @"VEHICLEDATA_BODYINFO"; -SDLVehicleDataType const SDLVehicleDataTypeDeviceStatus = @"VEHICLEDATA_DEVICESTATUS"; -SDLVehicleDataType const SDLVehicleDataTypeECallInfo = @"VEHICLEDATA_ECALLINFO"; -SDLVehicleDataType const SDLVehicleDataTypeAirbagStatus = @"VEHICLEDATA_AIRBAGSTATUS"; -SDLVehicleDataType const SDLVehicleDataTypeEmergencyEvent = @"VEHICLEDATA_EMERGENCYEVENT"; -SDLVehicleDataType const SDLVehicleDataTypeClusterModeStatus = @"VEHICLEDATA_CLUSTERMODESTATUS"; -SDLVehicleDataType const SDLVehicleDataTypeMyKey = @"VEHICLEDATA_MYKEY"; -SDLVehicleDataType const SDLVehicleDataTypeBraking = @"VEHICLEDATA_BRAKING"; -SDLVehicleDataType const SDLVehicleDataTypeWiperStatus = @"VEHICLEDATA_WIPERSTATUS"; -SDLVehicleDataType const SDLVehicleDataTypeHeadlampStatus = @"VEHICLEDATA_HEADLAMPSTATUS"; -SDLVehicleDataType const SDLVehicleDataTypeBatteryVoltage = @"VEHICLEDATA_BATTVOLTAGE"; -SDLVehicleDataType const SDLVehicleDataTypeEngineOilLife = @"VEHICLEDATA_ENGINEOILLIFE"; -SDLVehicleDataType const SDLVehicleDataTypeEngineTorque = @"VEHICLEDATA_ENGINETORQUE"; -SDLVehicleDataType const SDLVehicleDataTypeAccelerationPedal = @"VEHICLEDATA_ACCPEDAL"; -SDLVehicleDataType const SDLVehicleDataTypeSteeringWheel = @"VEHICLEDATA_STEERINGWHEEL"; -SDLVehicleDataType const SDLVehicleDataTypeElectronicParkBrakeStatus = @"VEHICLEDATA_ELECTRONICPARKBRAKESTATUS"; -SDLVehicleDataType const SDLVehicleDataTypeTurnSignal = @"VEHICLEDATA_TURNSIGNAL"; -SDLVehicleDataType const SDLVehicleDataTypeCloudAppVehicleID = @"VEHICLEDATA_CLOUDAPPVEHICLEID"; -SDLVehicleDataType const SDLVehicleDataTypeOEMVehicleDataType = @"VEHICLEDATA_OEM_CUSTOM_DATA"; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleType.h deleted file mode 100644 index 0c9c100..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleType.h +++ /dev/null @@ -1,54 +0,0 @@ -// SDLVehicleType.h -// - - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Describes the type of vehicle the mobile phone is connected with. - * - * @since SDL 2.0 - */ -@interface SDLVehicleType : SDLRPCStruct - -/** - * The make of the vehicle - * - * For example, "Ford", "Lincoln", etc. - * - * Optional, Max String length 500 chars - */ -@property (strong, nonatomic, nullable) NSString *make; - -/** - * The model of the vehicle - * - * For example, "Fiesta", "Focus", etc. - * - * Optional, Max String length 500 chars - */ -@property (strong, nonatomic, nullable) NSString *model; - -/** - * The model year of the vehicle - * - * For example, "2013" - * - * Optional, Max String length 500 chars - */ -@property (strong, nonatomic, nullable) NSString *modelYear; - -/** - * The trim of the vehicle - * - * For example, "SE", "SEL" - * - * Optional, Max String length 500 chars - */ -@property (strong, nonatomic, nullable) NSString *trim; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleType.m deleted file mode 100644 index 5f3df07..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVehicleType.m +++ /dev/null @@ -1,48 +0,0 @@ -// SDLVehicleType.m -// - - -#import "SDLVehicleType.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLVehicleType - -- (void)setMake:(nullable NSString *)make { - [self.store sdl_setObject:make forName:SDLRPCParameterNameMake]; -} - -- (nullable NSString *)make { - return [self.store sdl_objectForName:SDLRPCParameterNameMake ofClass:NSString.class error:nil]; -} - -- (void)setModel:(nullable NSString *)model { - [self.store sdl_setObject:model forName:SDLRPCParameterNameModel]; -} - -- (nullable NSString *)model { - return [self.store sdl_objectForName:SDLRPCParameterNameModel ofClass:NSString.class error:nil]; -} - -- (void)setModelYear:(nullable NSString *)modelYear { - [self.store sdl_setObject:modelYear forName:SDLRPCParameterNameModelYear]; -} - -- (nullable NSString *)modelYear { - return [self.store sdl_objectForName:SDLRPCParameterNameModelYear ofClass:NSString.class error:nil]; -} - -- (void)setTrim:(nullable NSString *)trim { - [self.store sdl_setObject:trim forName:SDLRPCParameterNameTrim]; -} - -- (nullable NSString *)trim { - return [self.store sdl_objectForName:SDLRPCParameterNameTrim ofClass:NSString.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVentilationMode.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVentilationMode.h deleted file mode 100644 index d3320e2..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVentilationMode.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// SDLVentilationMode.h -// - -#import "SDLEnum.h" - -/** - The ventilation mode. Used in ClimateControlCapabilities - */ -typedef SDLEnum SDLVentilationMode SDL_SWIFT_ENUM; - -/** - The upper ventilation mode - */ -extern SDLVentilationMode const SDLVentilationModeUpper; - -/** - The lower ventilation mode - */ -extern SDLVentilationMode const SDLVentilationModeLower; - -/** - The both ventilation mode - */ -extern SDLVentilationMode const SDLVentilationModeBoth; - -/** - No ventilation mode - */ -extern SDLVentilationMode const SDLVentilationModeNone; - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVentilationMode.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVentilationMode.m deleted file mode 100644 index b4b26ee..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVentilationMode.m +++ /dev/null @@ -1,11 +0,0 @@ -// -// SDLVentilationMode.m -// - -#import "SDLVentilationMode.h" - - -SDLVentilationMode const SDLVentilationModeUpper = @"UPPER"; -SDLVentilationMode const SDLVentilationModeLower = @"LOWER"; -SDLVentilationMode const SDLVentilationModeBoth = @"BOTH"; -SDLVentilationMode const SDLVentilationModeNone = @"NONE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.h deleted file mode 100644 index 22ff79d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.h +++ /dev/null @@ -1,121 +0,0 @@ -// -// SDLVersion.h -// SmartDeviceLink -// -// Created by Joel Fischer on 2/19/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import - -@class SDLSyncMsgVersion; -@class SDLMsgVersion; - -NS_ASSUME_NONNULL_BEGIN - -/// Specifies a major / minor / patch version number for semantic versioning purposes and comparisons -@interface SDLVersion : NSObject - -/// Major version (e.g. X.0.0) -@property (nonatomic, assign) NSUInteger major; - -/// Minor version (e.g. 0.X.0) -@property (nonatomic, assign) NSUInteger minor; - -/// Patch version (e.g. 0.0.X) -@property (nonatomic, assign) NSUInteger patch; - -/// A String format of the current SDLVersion -@property (nonatomic, copy, readonly) NSString *stringVersion; - -/// Convenience init -/// -/// @param major Major version -/// @param minor Minor version -/// @param patch Patch version -/// @return An SDLVersion object -- (instancetype)initWithMajor:(NSUInteger)major minor:(NSUInteger)minor patch:(NSUInteger)patch; - -/// Convenience init -/// -/// @param major Major version -/// @param minor Minor version -/// @param patch Patch version -/// @return An SDLVersion object -+ (instancetype)versionWithMajor:(NSUInteger)major minor:(NSUInteger)minor patch:(NSUInteger)patch; - -/// Convenience init -/// -/// @param versionString String representation of the version -/// @return An SDLVersion object -- (nullable instancetype)initWithString:(NSString *)versionString; - -/// Convenience init -/// -/// @param versionString String representation of the version -/// @return An SDLVersion object -+ (nullable instancetype)versionWithString:(NSString *)versionString; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" -/// Deprecated convenience init to set version using SDLSyncMsgVersion -/// -/// @param syncMsgVersion Specifies the version number of the SmartDeviceLink protocol that is supported by the mobile application. -/// @return An SDLVersion object -- (instancetype)initWithSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion __deprecated_msg(("Use initWithSDLMsgVersion:sdlMsgVersion: instead")); - -/// Deprecated convenience init to set version using SDLSyncMsgVersion -/// -/// @param syncMsgVersion Specifies the version number of the SmartDeviceLink protocol that is supported by the mobile application. -/// @return An SDLVersion object -+ (instancetype)versionWithSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion __deprecated_msg(("Use versionWithSDLMsgVersion:sdlMsgVersion instead")); -#pragma clang diagnostic pop - -/// Convenience init to set version using SDLMsgVersion -/// -/// @param sdlMsgVersion Specifies the version number of the SmartDeviceLink protocol that is supported by the mobile application. -/// @return An SDLVersion object -- (instancetype)initWithSDLMsgVersion:(SDLMsgVersion *)sdlMsgVersion; - -/// Convenience init to set version using SDLMsgVersion -/// -/// @param sdlMsgVersion Specifies the version number of the SmartDeviceLink protocol that is supported by the mobile application. -/// @return SDLVersion object -+ (instancetype)versionWithSDLMsgVersion:(SDLMsgVersion *)sdlMsgVersion; - -/// Compare two SDLVersions -- (NSComparisonResult)compare:(SDLVersion *)otherVersion; - -/// Compare is less than -/// -/// @param otherVersion SDLVersion Object -/// @return BOOL -- (BOOL)isLessThanVersion:(SDLVersion *)otherVersion; - -/// Compare is equal to -/// -/// @param otherVersion SDLVersion Object -/// @return BOOL -- (BOOL)isEqualToVersion:(SDLVersion *)otherVersion; - -/// Compare is greater than -/// -/// @param otherVersion SDLVersion Object -/// @return BOOL -- (BOOL)isGreaterThanVersion:(SDLVersion *)otherVersion; - -/// Compare is greater than or equal to -/// -/// @param otherVersion SDLVersion Object -/// @return BOOL -- (BOOL)isGreaterThanOrEqualToVersion:(SDLVersion *)otherVersion; - -/// Compare is less than or equal to -/// -/// @param otherVersion SDLVersion Object -/// @return BOOL -- (BOOL)isLessThanOrEqualToVersion:(SDLVersion *)otherVersion; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.m deleted file mode 100644 index 9ec3e48..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVersion.m +++ /dev/null @@ -1,160 +0,0 @@ -// -// SDLVersion.m -// SmartDeviceLink -// -// Created by Joel Fischer on 2/19/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLVersion.h" - -#import "SDLSyncMsgVersion.h" -#import "SDLMsgVersion.h" - - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLVersion - -#pragma mark - Initializers - -- (instancetype)initWithMajor:(NSUInteger)major minor:(NSUInteger)minor patch:(NSUInteger)patch { - self = [super init]; - if (!self) { return nil; } - - _major = major; - _minor = minor; - _patch = patch; - - return self; -} - -+ (instancetype)versionWithMajor:(NSUInteger)major minor:(NSUInteger)minor patch:(NSUInteger)patch { - return [[self alloc] initWithMajor:major minor:minor patch:patch]; -} - -- (nullable instancetype)initWithString:(NSString *)versionString { - self = [super init]; - if (!self) { return nil; } - - NSArray *splitVersions = [versionString componentsSeparatedByString:@"."]; - if (splitVersions.count != 3) { - NSAssert(splitVersions.count == 3, @"Splitting a version string must result in major, minor, and patch. The format must be 'X.X.X'"); - return nil; - } - - NSInteger majorInt = splitVersions[0].integerValue; - NSInteger minorInt = splitVersions[1].integerValue; - NSInteger patchInt = splitVersions[2].integerValue; - - if (majorInt < 0 || minorInt < 0 || patchInt < 0) { - NSAssert(NO, @"Attempted to parse invalid SDLVersion: %@", splitVersions); - return nil; - } - - _major = (NSUInteger)majorInt; - _minor = (NSUInteger)minorInt; - _patch = (NSUInteger)patchInt; - - return self; -} - -+ (nullable instancetype)versionWithString:(NSString *)versionString { - return [[self alloc] initWithString:versionString]; -} - -- (instancetype)initWithSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion { - self = [super init]; - if (!self) { return nil; } - - _major = syncMsgVersion.majorVersion.unsignedIntegerValue; - _minor = syncMsgVersion.minorVersion.unsignedIntegerValue; - _patch = syncMsgVersion.patchVersion.unsignedIntegerValue; - - return self; -} - -+ (instancetype)versionWithSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion { - return [[self alloc] initWithSyncMsgVersion:syncMsgVersion]; -} - -- (instancetype)initWithSDLMsgVersion:(SDLMsgVersion *)sdlMsgVersion { - self = [super init]; - if (!self) { return nil; } - - _major = sdlMsgVersion.majorVersion.unsignedIntegerValue; - _minor = sdlMsgVersion.minorVersion.unsignedIntegerValue; - _patch = sdlMsgVersion.patchVersion.unsignedIntegerValue; - - return self; -} - -+ (instancetype)versionWithSDLMsgVersion:(SDLMsgVersion *)sdlMsgVersion { - return [[self alloc] initWithSDLMsgVersion:sdlMsgVersion]; -} - -#pragma mark - Setters / Getters - -- (NSString *)stringVersion { - return [NSString stringWithFormat:@"%lu.%lu.%lu", (unsigned long)_major, (unsigned long)_minor, (unsigned long)_patch]; -} - -#pragma mark - Helper functions - -- (NSComparisonResult)compare:(SDLVersion *)otherVersion { - if (self.major > otherVersion.major) { - return NSOrderedDescending; - } else if ((self.major == otherVersion.major) && (self.minor > otherVersion.minor)) { - return NSOrderedDescending; - } else if ((self.major == otherVersion.major) && (self.minor == otherVersion.minor) && (self.patch > otherVersion.patch)) { - return NSOrderedDescending; - } else if ((self.major == otherVersion.major) && (self.minor == otherVersion.minor) && (self.patch == otherVersion.patch)) { - return NSOrderedSame; - } - - return NSOrderedAscending; -} - -- (BOOL)isLessThanVersion:(SDLVersion *)otherVersion { - return ([self compare:otherVersion] == NSOrderedAscending); -} - -- (BOOL)isEqualToVersion:(SDLVersion *)otherVersion { - return ([self compare:otherVersion] == NSOrderedSame); -} - -- (BOOL)isGreaterThanVersion:(SDLVersion *)otherVersion { - return ([self compare:otherVersion] == NSOrderedDescending); -} - -- (BOOL)isGreaterThanOrEqualToVersion:(SDLVersion *)otherVersion { - return ([self isGreaterThanVersion:otherVersion] || [self isEqualToVersion:otherVersion]); -} - -- (BOOL)isLessThanOrEqualToVersion:(SDLVersion *)otherVersion { - return ([self isLessThanVersion:otherVersion] || [self isEqualToVersion:otherVersion]); -} - -#pragma mark - NSObject overrides - -- (BOOL)isEqual:(id)object { - if (object == nil) { return NO; } - if (![object isMemberOfClass:self.class]) { return NO; } - - SDLVersion *otherVersion = (SDLVersion *)object; - - return [self isEqualToVersion:otherVersion]; -} - -- (NSString *)description { - return self.stringVersion; -} - -- (id)copyWithZone:(nullable NSZone *)zone { - SDLVersion *new = [[SDLVersion allocWithZone:zone] initWithMajor:_major minor:_minor patch:_patch]; - return new; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoEncoderDelegate.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoEncoderDelegate.h deleted file mode 100644 index a8bf27f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoEncoderDelegate.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// SDLVideoEncoderDelegate.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/1/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import - -@class SDLH264VideoEncoder; - -@protocol SDLVideoEncoderDelegate - -- (void)videoEncoder:(SDLH264VideoEncoder *)encoder hasEncodedFrame:(NSData*)encodedVideo; - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.h deleted file mode 100644 index 17a4468..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.h +++ /dev/null @@ -1,100 +0,0 @@ -// -// SDLVideoStreamingCapability.h -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 7/31/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLRPCMessage.h" - -@class SDLImageResolution; -@class SDLVideoStreamingFormat; - -NS_ASSUME_NONNULL_BEGIN - -/** - Contains information about this system's video streaming capabilities - */ -@interface SDLVideoStreamingCapability : SDLRPCStruct - -/** -Convenience init for creating a video streaming capability. - -@param preferredResolution The preferred resolution of a video stream for decoding and rendering on HMI -@param maxBitrate The maximum bitrate of video stream that is supported, in kbps -@param supportedFormats Detailed information on each format supported by this system, in its preferred order -@param hapticDataSupported True if the system can utilize the haptic spatial data from the source being streamed -@return A SDLVideoStreamingCapability object -*/ -- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported __deprecated_msg("Use initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:diagonalScreenSize:pixelPerInch:scale: instead"); - -/** - Convenience init for creating a video streaming capability with all parameters. - - @param preferredResolution The preferred resolution of a video stream for decoding and rendering on HMI - @param maxBitrate The maximum bitrate of video stream that is supported, in kbps - @param supportedFormats Detailed information on each format supported by this system, in its preferred order - @param hapticDataSupported True if the system can utilize the haptic spatial data from the source being streamed - @param diagonalScreenSize The diagonal screen size in inches - @param pixelPerInch The diagonal resolution in pixels divided by the diagonal screen size in inches - @param scale The scaling factor the app should use to change the size of the projecting view - @return A SDLVideoStreamingCapability object - */ -- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported diagonalScreenSize:(float)diagonalScreenSize pixelPerInch:(float)pixelPerInch scale:(float)scale; - -/** - The preferred resolution of a video stream for decoding and rendering on HMI - - Optional - */ -@property (nullable, strong, nonatomic) SDLImageResolution *preferredResolution; - -/** - The maximum bitrate of video stream that is supported, in kbps, optional - - Optional, minvalue= 0, maxvalue= 2147483647 - */ -@property (nullable, strong, nonatomic) NSNumber *maxBitrate; - -/** - Detailed information on each format supported by this system, in its preferred order - - Optional - */ -@property (nullable, strong, nonatomic) NSArray *supportedFormats; - -/** - True if the system can utilize the haptic spatial data from the source being streamed. - - Optional - */ -@property (nullable, strong, nonatomic) NSNumber *hapticSpatialDataSupported; - -/** - The diagonal screen size in inches. - - Float, Optional, minvalue="0" - @since SDL 6.0 - */ -@property (nullable, strong, nonatomic) NSNumber *diagonalScreenSize; - -/** - The diagonal resolution in pixels divided by the diagonal screen size in inches. - - Float, Optional, minvalue="0" - @since SDL 6.0 - */ -@property (nullable, strong, nonatomic) NSNumber *pixelPerInch; - -/** - The scaling factor the app should use to change the size of the projecting view. - - Float, Optional, minvalue="1" maxvalue="10" - @since SDL 6.0 - */ -@property (nullable, strong, nonatomic) NSNumber *scale; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.m deleted file mode 100644 index 3239f55..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCapability.m +++ /dev/null @@ -1,103 +0,0 @@ -// -// SDLVideoStreamingCapability.m -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 7/31/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLImageResolution.h" -#import "SDLVideoStreamingCapability.h" -#import "SDLVideoStreamingFormat.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLVideoStreamingCapability - -- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported { - return [self initWithPreferredResolution:preferredResolution maxBitrate:@(maxBitrate) supportedFormats:supportedFormats hapticDataSupported:@(hapticDataSupported) diagonalScreenSize:nil ppi:nil scale:nil]; -} - -- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported diagonalScreenSize:(float)diagonalScreenSize pixelPerInch:(float)pixelPerInch scale:(float)scale { - return [self initWithPreferredResolution:preferredResolution maxBitrate:@(maxBitrate) supportedFormats:supportedFormats hapticDataSupported:@(hapticDataSupported) diagonalScreenSize:@(diagonalScreenSize) ppi:@(pixelPerInch) scale:@(scale)]; -} - -- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(nullable NSNumber *)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(nullable NSNumber *)hapticDataSupported diagonalScreenSize:(nullable NSNumber *)diagonalScreenSize ppi:(nullable NSNumber *)pixelPerInch scale:(nullable NSNumber *)scale { - self = [self init]; - if (!self) { - return self; - } - - self.maxBitrate = maxBitrate; - self.preferredResolution = preferredResolution; - self.supportedFormats = supportedFormats; - self.hapticSpatialDataSupported = hapticDataSupported; - self.diagonalScreenSize = diagonalScreenSize; - self.pixelPerInch = pixelPerInch; - self.scale = scale; - - return self; -} - -- (void)setPreferredResolution:(nullable SDLImageResolution *)preferredResolution { - [self.store sdl_setObject:preferredResolution forName:SDLRPCParameterNamePreferredResolution]; -} - -- (nullable SDLImageResolution *)preferredResolution { - return [self.store sdl_objectForName:SDLRPCParameterNamePreferredResolution ofClass:SDLImageResolution.class error:nil]; -} - -- (void)setMaxBitrate:(nullable NSNumber *)maxBitrate { - [self.store sdl_setObject:maxBitrate forName:SDLRPCParameterNameMaxBitrate]; -} - -- (nullable NSNumber *)maxBitrate { - return [self.store sdl_objectForName:SDLRPCParameterNameMaxBitrate ofClass:NSNumber.class error:nil]; -} - -- (void)setSupportedFormats:(nullable NSArray *)supportedFormats { - [self.store sdl_setObject:supportedFormats forName:SDLRPCParameterNameSupportedFormats]; -} - -- (nullable NSArray *)supportedFormats { - return [self.store sdl_objectsForName:SDLRPCParameterNameSupportedFormats ofClass:SDLVideoStreamingFormat.class error:nil]; -} - -- (void)setHapticSpatialDataSupported:(nullable NSNumber *)hapticSpatialDataSupported { - [self.store sdl_setObject:hapticSpatialDataSupported forName:SDLRPCParameterNameHapticSpatialDataSupported]; -} - -- (nullable NSNumber *)hapticSpatialDataSupported { - return [self.store sdl_objectForName:SDLRPCParameterNameHapticSpatialDataSupported ofClass:NSNumber.class error:nil]; -} - -- (void)setDiagonalScreenSize:(nullable NSNumber *)diagonalScreenSize { - [self.store sdl_setObject:diagonalScreenSize forName:SDLRPCParameterNameDiagonalScreenSize]; -} - -- (nullable NSNumber *)diagonalScreenSize { - return [self.store sdl_objectForName:SDLRPCParameterNameDiagonalScreenSize ofClass:NSNumber.class error:nil]; -} - -- (void)setPixelPerInch:(nullable NSNumber *)pixelPerInch { - [self.store sdl_setObject:pixelPerInch forName:SDLRPCParameterNamePixelPerInch]; -} - -- (nullable NSNumber *)pixelPerInch { - return [self.store sdl_objectForName:SDLRPCParameterNamePixelPerInch ofClass:NSNumber.class error:nil]; -} - -- (void)setScale:(nullable NSNumber *)scale { - [self.store sdl_setObject:scale forName:SDLRPCParameterNameScale]; -} - -- (nullable NSNumber *)scale { - return [self.store sdl_objectForName:SDLRPCParameterNameScale ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCodec.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCodec.h deleted file mode 100644 index b547eaf..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCodec.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// SDLVideoStreamingCodec.h -// SmartDeviceLink-iOS -// - -#import "SDLEnum.h" - -/** - * Enum for each type of video streaming codec. Used in VideoStreamingFormat. - */ -typedef SDLEnum SDLVideoStreamingCodec SDL_SWIFT_ENUM; - -/** - * H264 - */ -extern SDLVideoStreamingCodec const SDLVideoStreamingCodecH264; - -/** - * H265 - */ -extern SDLVideoStreamingCodec const SDLVideoStreamingCodecH265; - -/** - * Theora - */ -extern SDLVideoStreamingCodec const SDLVideoStreamingCodecTheora; - -/** - * VP8 - */ -extern SDLVideoStreamingCodec const SDLVideoStreamingCodecVP8; - -/** - * VP9 - */ -extern SDLVideoStreamingCodec const SDLVideoStreamingCodecVP9; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCodec.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCodec.m deleted file mode 100644 index 6ad6610..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingCodec.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// SDLVideoStreamingCodec.m -// SmartDeviceLink-iOS -// - - -#import "SDLVideoStreamingCodec.h" - -SDLVideoStreamingCodec const SDLVideoStreamingCodecH264 = @"H264"; -SDLVideoStreamingCodec const SDLVideoStreamingCodecH265 = @"H265"; -SDLVideoStreamingCodec const SDLVideoStreamingCodecTheora = @"THEORA"; -SDLVideoStreamingCodec const SDLVideoStreamingCodecVP8 = @"VP8"; -SDLVideoStreamingCodec const SDLVideoStreamingCodecVP9 = @"VP9"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.h deleted file mode 100644 index 958ae43..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// SDLVideoStreamingFormat.h -// SmartDeviceLink-iOS -// - -#import "SDLRPCMessage.h" -#import "SDLVideoStreamingProtocol.h" -#import "SDLVideoStreamingCodec.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - An available format for video streaming in projection applications - */ -@interface SDLVideoStreamingFormat : SDLRPCStruct - -/** - Protocol type, see VideoStreamingProtocol - - Required - */ -@property (strong, nonatomic) SDLVideoStreamingProtocol protocol; - -/** - Codec type, see VideoStreamingCodec - - Required - */ -@property (strong, nonatomic) SDLVideoStreamingCodec codec; - -/// Convenience init -/// -/// @param codec Codec type, see VideoStreamingCodec -/// @param protocol Protocol type, see VideoStreamingProtocol -/// @return An SDLVideoStreamingFormat object -- (instancetype)initWithCodec:(SDLVideoStreamingCodec)codec protocol:(SDLVideoStreamingProtocol)protocol; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.m deleted file mode 100644 index 4fda8d3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingFormat.m +++ /dev/null @@ -1,47 +0,0 @@ -// -// SDLVideoStreamingFormat.m -// SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 7/31/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLVideoStreamingFormat.h" -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLVideoStreamingFormat - -- (instancetype)initWithCodec:(SDLVideoStreamingCodec)codec protocol:(SDLVideoStreamingProtocol)protocol { - self = [self init]; - if (!self) { return nil; } - - self.codec = codec; - self.protocol = protocol; - - return self; -} - -- (SDLVideoStreamingProtocol)protocol { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameVideoProtocol error:&error]; -} - -- (void)setProtocol:(SDLVideoStreamingProtocol)protocol { - [self.store sdl_setObject:protocol forName:SDLRPCParameterNameVideoProtocol]; -} - -- (SDLVideoStreamingCodec)codec { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameVideoCodec error:&error]; -} - -- (void)setCodec:(SDLVideoStreamingCodec)codec { - [self.store sdl_setObject:codec forName:SDLRPCParameterNameVideoCodec]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingProtocol.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingProtocol.h deleted file mode 100644 index 1ebcbe9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingProtocol.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// SDLVideoStreamingProtocol.h -// SmartDeviceLink-iOS -// - -#import "SDLEnum.h" - -/** - * Enum for each type of video streaming protocol, used in VideoStreamingFormat - */ -typedef SDLEnum SDLVideoStreamingProtocol SDL_SWIFT_ENUM; - -/** - * RAW - */ -extern SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRAW; - -/** - * RTP - */ -extern SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRTP; - -/** - * RTSP - */ -extern SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRTSP; - -/** - * RTMP - */ -extern SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRTMP; - -/** - * WebM - */ -extern SDLVideoStreamingProtocol const SDLVideoStreamingProtocolWebM; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingProtocol.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingProtocol.m deleted file mode 100644 index c39addd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingProtocol.m +++ /dev/null @@ -1,11 +0,0 @@ -// -// SDLVideoStreamingProtocol.m -// SmartDeviceLink-iOS - -#import "SDLVideoStreamingProtocol.h" - -SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRAW = @"RAW"; -SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRTP = @"RTP"; -SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRTSP = @"RTSP"; -SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRTMP = @"RTMP"; -SDLVideoStreamingProtocol const SDLVideoStreamingProtocolWebM = @"WEBM"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingState.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingState.h deleted file mode 100644 index 6ebe98b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingState.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// SDLVideoStreamingState.h -// SmartDeviceLink -// -// Created by Joel Fischer on 6/19/18. -// Copyright © 2018 Livio. All rights reserved. -// - -#import "SDLEnum.h" - -/** - * Enum for each type of video streaming protocol, used in VideoStreamingFormat - */ -typedef SDLEnum SDLVideoStreamingState SDL_SWIFT_ENUM; - -/** - * STREAMABLE, the current app is allowed to stream video - */ -extern SDLVideoStreamingState const SDLVideoStreamingStateStreamable; - -/** - * NOT_STREAMABLE, the current app is not allowed to stream video - */ -extern SDLVideoStreamingState const SDLVideoStreamingStateNotStreamable; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingState.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingState.m deleted file mode 100644 index 5d4d8c8..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVideoStreamingState.m +++ /dev/null @@ -1,12 +0,0 @@ -// -// SDLVideoStreamingState.m -// SmartDeviceLink -// -// Created by Joel Fischer on 6/19/18. -// Copyright © 2018 Livio. All rights reserved. -// - -#import "SDLVideoStreamingState.h" - -SDLVideoStreamingState const SDLVideoStreamingStateStreamable = @"STREAMABLE"; -SDLVideoStreamingState const SDLVideoStreamingStateNotStreamable = @"NOT_STREAMABLE"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLViewControllerPresentable.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLViewControllerPresentable.h deleted file mode 100644 index 50006dd..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLViewControllerPresentable.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// SDLViewControllerPresentable.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 7/15/16. -// Copyright © 2016 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -typedef void (^SDLLockScreenDidFinishHandler)(void); - -/// A protocol used to tell a view controller to present another view controller. This makes testing of modal VCs' presentation easier. -@protocol SDLViewControllerPresentable - -/// The view controller to be presented as a lockscreen -@property (strong, nonatomic, nullable) UIViewController *lockViewController; - -/// Whether or not the lockscreen should be presented -@property (assign, nonatomic, readonly) BOOL shouldShowLockScreen; - -/// Dismisses and destroys the lock screen window -- (void)stopWithCompletionHandler:(nullable SDLLockScreenDidFinishHandler)completionHandler; - -/// Shows or hides the lock screen with animation -/// @param show True if the lock screen should be presented; false if dismissed. -- (void)updateLockScreenToShow:(BOOL)show withCompletionHandler:(nullable SDLLockScreenDidFinishHandler)completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommand.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommand.h deleted file mode 100644 index 1ed0225..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommand.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// SDLVoiceCommand.h -// SmartDeviceLink -// -// Created by Joel Fischer on 4/9/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/** -The handler that will be called when the command is activated -*/ -typedef void(^SDLVoiceCommandSelectionHandler)(void); - -/// Voice commands available for the user to speak and be recognized by the IVI's voice recognition engine. -@interface SDLVoiceCommand : NSObject - -/** - The strings the user can say to activate this voice command - */ -@property (copy, nonatomic, readonly) NSArray *voiceCommands; - -/** - The handler that will be called when the command is activated - */ -@property (copy, nonatomic, readonly, nullable) SDLVoiceCommandSelectionHandler handler; - -/// Convenience init -/// -/// @param voiceCommands The strings the user can say to activate this voice command -/// @param handler The handler that will be called when the command is activated -/// @return An SDLVoiceCommand object -- (instancetype)initWithVoiceCommands:(NSArray *)voiceCommands handler:(SDLVoiceCommandSelectionHandler)handler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommand.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommand.m deleted file mode 100644 index ba0421f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommand.m +++ /dev/null @@ -1,37 +0,0 @@ -// -// SDLVoiceCommand.m -// SmartDeviceLink -// -// Created by Joel Fischer on 4/9/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLVoiceCommand.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLVoiceCommand() - -@property (assign, nonatomic) UInt32 commandId; - -@end - -@implementation SDLVoiceCommand - -- (instancetype)initWithVoiceCommands:(NSArray *)voiceCommands handler:(SDLVoiceCommandSelectionHandler)handler { - self = [super init]; - if (!self) { return nil; } - - _voiceCommands = voiceCommands; - _handler = handler; - - return self; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"SDLVoiceCommand: %u-\"%@\", voice commands: %lu", (unsigned int)_commandId, _voiceCommands.firstObject, (unsigned long)_voiceCommands.count]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommandManager.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommandManager.h deleted file mode 100644 index 8c3f3f7..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommandManager.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// SDLVoiceCommandManager.h -// SmartDeviceLink -// -// Created by Joel Fischer on 4/23/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import - -@class SDLFileManager; -@class SDLVoiceCommand; - -@protocol SDLConnectionManagerType; - -NS_ASSUME_NONNULL_BEGIN - -/** - The handler run when the update has completed - - @param error An error if the update failed and an error occurred - */ -typedef void(^SDLMenuUpdateCompletionHandler)(NSError *__nullable error); - -@interface SDLVoiceCommandManager : NSObject - -- (instancetype)initWithConnectionManager:(id)connectionManager; - -/** - * Stops the manager. This method is used internally. - */ -- (void)stop; - -@property (copy, nonatomic) NSArray *voiceCommands; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommandManager.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommandManager.m deleted file mode 100644 index e9bd3d5..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVoiceCommandManager.m +++ /dev/null @@ -1,266 +0,0 @@ -// -// SDLVoiceCommandManager.m -// SmartDeviceLink -// -// Created by Joel Fischer on 4/23/18. -// Copyright © 2018 smartdevicelink. All rights reserved. -// - -#import "SDLVoiceCommandManager.h" - -#import "SDLAddCommand.h" -#import "SDLConnectionManagerType.h" -#import "SDLDeleteCommand.h" -#import "SDLError.h" -#import "SDLHMILevel.h" -#import "SDLLogMacros.h" -#import "SDLNotificationConstants.h" -#import "SDLOnCommand.h" -#import "SDLOnHMIStatus.h" -#import "SDLPredefinedWindows.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCRequest.h" -#import "SDLVoiceCommand.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLVoiceCommand() - -@property (assign, nonatomic) UInt32 commandId; - -@end - -@interface SDLVoiceCommandManager() - -@property (weak, nonatomic) id connectionManager; - -@property (assign, nonatomic) BOOL waitingOnHMIUpdate; -@property (copy, nonatomic, nullable) SDLHMILevel currentHMILevel; - -@property (strong, nonatomic, nullable) NSArray *inProgressUpdate; -@property (assign, nonatomic) BOOL hasQueuedUpdate; - -@property (assign, nonatomic) UInt32 lastVoiceCommandId; -@property (copy, nonatomic) NSArray *oldVoiceCommands; - -@end - -UInt32 const VoiceCommandIdMin = 1900000000; - -@implementation SDLVoiceCommandManager - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - _lastVoiceCommandId = VoiceCommandIdMin; - _voiceCommands = @[]; - _oldVoiceCommands = @[]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusNotification:) name:SDLDidChangeHMIStatusNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_commandNotification:) name:SDLDidReceiveCommandNotification object:nil]; - - return self; -} - -- (instancetype)initWithConnectionManager:(id)connectionManager { - self = [self init]; - if (!self) { return nil; } - - _connectionManager = connectionManager; - - return self; -} - -- (void)stop { - _lastVoiceCommandId = VoiceCommandIdMin; - _voiceCommands = @[]; - _oldVoiceCommands = @[]; - - _waitingOnHMIUpdate = NO; - _currentHMILevel = nil; - _inProgressUpdate = nil; - _hasQueuedUpdate = NO; -} - -#pragma mark - Setters - -- (void)setVoiceCommands:(NSArray *)voiceCommands { - if (self.currentHMILevel == nil || [self.currentHMILevel isEqualToEnum:SDLHMILevelNone]) { - self.waitingOnHMIUpdate = YES; - return; - } - - self.waitingOnHMIUpdate = NO; - - // Set the ids - self.lastVoiceCommandId = VoiceCommandIdMin; - [self sdl_updateIdsOnVoiceCommands:voiceCommands]; - - _oldVoiceCommands = _voiceCommands; - _voiceCommands = voiceCommands; - - [self sdl_updateWithCompletionHandler:nil]; -} - -#pragma mark - Updating System - -- (void)sdl_updateWithCompletionHandler:(nullable SDLMenuUpdateCompletionHandler)completionHandler { - if (self.currentHMILevel == nil || [self.currentHMILevel isEqualToEnum:SDLHMILevelNone]) { - self.waitingOnHMIUpdate = YES; - return; - } - - if (self.inProgressUpdate != nil) { - // There's an in progress update, we need to put this on hold - self.hasQueuedUpdate = YES; - return; - } - - __weak typeof(self) weakself = self; - [self sdl_sendDeleteCurrentVoiceCommands:^(NSError * _Nullable error) { - [weakself sdl_sendCurrentVoiceCommands:^(NSError * _Nullable error) { - weakself.inProgressUpdate = nil; - - if (completionHandler != nil) { - completionHandler(error); - } - - if (weakself.hasQueuedUpdate) { - [weakself sdl_updateWithCompletionHandler:nil]; - weakself.hasQueuedUpdate = NO; - } - }]; - }]; -} - -#pragma mark Delete Old Menu Items - -- (void)sdl_sendDeleteCurrentVoiceCommands:(SDLMenuUpdateCompletionHandler)completionHandler { - if (self.oldVoiceCommands.count == 0) { - completionHandler(nil); - - return; - } - - NSArray *deleteVoiceCommands = [self sdl_deleteCommandsForVoiceCommands:self.oldVoiceCommands]; - self.oldVoiceCommands = @[]; - [self.connectionManager sendRequests:deleteVoiceCommands progressHandler:nil completionHandler:^(BOOL success) { - if (!success) { - SDLLogE(@"Error deleting old voice commands"); - } else { - SDLLogD(@"Finished deleting old voice commands"); - } - - completionHandler(nil); - }]; -} - -#pragma mark Send New Menu Items - -- (void)sdl_sendCurrentVoiceCommands:(SDLMenuUpdateCompletionHandler)completionHandler { - if (self.voiceCommands.count == 0) { - SDLLogD(@"No voice commands to send"); - completionHandler(nil); - - return; - } - - self.inProgressUpdate = [self sdl_addCommandsForVoiceCommands:self.voiceCommands]; - - __block NSMutableDictionary *errors = [NSMutableDictionary dictionary]; - __weak typeof(self) weakSelf = self; - [self.connectionManager sendRequests:self.inProgressUpdate progressHandler:^(__kindof SDLRPCRequest * _Nonnull request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error, float percentComplete) { - if (error != nil) { - errors[request] = error; - } - } completionHandler:^(BOOL success) { - if (!success) { - SDLLogE(@"Failed to send main menu commands: %@", errors); - completionHandler([NSError sdl_menuManager_failedToUpdateWithDictionary:errors]); - return; - } - - SDLLogD(@"Finished updating voice commands"); - weakSelf.oldVoiceCommands = weakSelf.voiceCommands; - completionHandler(nil); - }]; -} - -#pragma mark - Helpers - -#pragma mark IDs - -- (void)sdl_updateIdsOnVoiceCommands:(NSArray *)voiceCommands { - for (SDLVoiceCommand *voiceCommand in voiceCommands) { - voiceCommand.commandId = self.lastVoiceCommandId++; - } -} - -#pragma mark Deletes - -- (NSArray *)sdl_deleteCommandsForVoiceCommands:(NSArray *)voiceCommands { - NSMutableArray *mutableDeletes = [NSMutableArray array]; - for (SDLVoiceCommand *command in voiceCommands) { - SDLDeleteCommand *delete = [[SDLDeleteCommand alloc] initWithId:command.commandId]; - [mutableDeletes addObject:delete]; - } - - return [mutableDeletes copy]; -} - -#pragma mark Commands - -- (NSArray *)sdl_addCommandsForVoiceCommands:(NSArray *)voiceCommands { - NSMutableArray *mutableCommands = [NSMutableArray array]; - for (SDLVoiceCommand *command in voiceCommands) { - [mutableCommands addObject:[self sdl_commandForVoiceCommand:command]]; - } - - return [mutableCommands copy]; -} - -- (SDLAddCommand *)sdl_commandForVoiceCommand:(SDLVoiceCommand *)voiceCommand { - SDLAddCommand *command = [[SDLAddCommand alloc] init]; - command.vrCommands = voiceCommand.voiceCommands; - command.cmdID = @(voiceCommand.commandId); - - return command; -} - -#pragma mark - Observers - -- (void)sdl_commandNotification:(SDLRPCNotificationNotification *)notification { - SDLOnCommand *onCommand = (SDLOnCommand *)notification.notification; - - for (SDLVoiceCommand *voiceCommand in self.voiceCommands) { - if (onCommand.cmdID.unsignedIntegerValue != voiceCommand.commandId) { continue; } - - voiceCommand.handler(); - break; - } -} - -- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { - SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; - - if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) { - return; - } - - SDLHMILevel oldHMILevel = self.currentHMILevel; - self.currentHMILevel = hmiStatus.hmiLevel; - - // Auto-send an updated show if we were in NONE and now we are not - if ([oldHMILevel isEqualToEnum:SDLHMILevelNone] && ![self.currentHMILevel isEqualToEnum:SDLHMILevelNone]) { - if (self.waitingOnHMIUpdate) { - [self setVoiceCommands:_voiceCommands]; - } else { - [self sdl_updateWithCompletionHandler:nil]; - } - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrCapabilities.h deleted file mode 100644 index ea4612b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrCapabilities.h +++ /dev/null @@ -1,17 +0,0 @@ -// SDLVRCapabilities.h -// - - -#import "SDLEnum.h" - -/** - * The VR capabilities of the connected SDL platform. Used in RegisterAppInterfaceResponse. - * - * @since SDL 1.0 - */ -typedef SDLEnum SDLVRCapabilities SDL_SWIFT_ENUM; - -/** - * The SDL platform is capable of recognizing spoken text in the current language. - */ -extern SDLVRCapabilities const SDLVRCapabilitiesText; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrCapabilities.m deleted file mode 100644 index 40f72ca..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrCapabilities.m +++ /dev/null @@ -1,7 +0,0 @@ -// SDLVRCapabilities.m -// - - -#import "SDLVrCapabilities.h" - -SDLVRCapabilities const SDLVRCapabilitiesText = @"TEXT"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.h deleted file mode 100644 index 9587da9..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.h +++ /dev/null @@ -1,53 +0,0 @@ -// SDLVRHelpItem.h -// - -#import "SDLRPCMessage.h" - -@class SDLImage; - -NS_ASSUME_NONNULL_BEGIN - -/** - A help item for voice commands, used locally in interaction lists and globally - */ -@interface SDLVRHelpItem : SDLRPCStruct - -/// Convenience init to create a VR help item with the following parameters -/// -/// @param text Text to display for VR Help item -/// @param image Image for VR Help item -/// @return An SDLVRHelpItem object -- (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image; - -/// Convenience init to create a VR help item with all parameters -/// -/// @param text Text to display for VR Help item -/// @param image Image for VR Help item -/// @param position Position to display item in VR Help list -/// @return An SDLVRHelpItem object -- (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image position:(UInt8)position; - -/** - Text to display for VR Help item - - Required - */ -@property (strong, nonatomic) NSString *text; - -/** - Image for VR Help item - - Optional - */ -@property (strong, nonatomic, nullable) SDLImage *image; - -/** - Position to display item in VR Help list - - Required - */ -@property (strong, nonatomic) NSNumber *position; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.m deleted file mode 100644 index 8a9424b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLVrHelpItem.m +++ /dev/null @@ -1,66 +0,0 @@ -// SDLVRHelpItem.m -// - - -#import "SDLVrHelpItem.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLImage.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLVRHelpItem - -- (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image position:(UInt8)position { - self = [self initWithText:text image:image]; - if (!self) { - return nil; - } - - self.position = @(position); - - return self; -} - -- (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image { - self = [self init]; - if (!self) { - return nil; - } - - self.text = text; - self.image = image; - - return self; -} - -- (void)setText:(NSString *)text { - [self.store sdl_setObject:text forName:SDLRPCParameterNameText]; -} - -- (NSString *)text { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameText ofClass:NSString.class error:&error]; -} - -- (void)setImage:(nullable SDLImage *)image { - [self.store sdl_setObject:image forName:SDLRPCParameterNameImage]; -} - -- (nullable SDLImage *)image { - return [self.store sdl_objectForName:SDLRPCParameterNameImage ofClass:SDLImage.class error:nil]; -} - -- (void)setPosition:(NSNumber *)position { - [self.store sdl_setObject:position forName:SDLRPCParameterNamePosition]; -} - -- (NSNumber *)position { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNamePosition ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWarningLightStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWarningLightStatus.h deleted file mode 100644 index f73e898..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWarningLightStatus.h +++ /dev/null @@ -1,32 +0,0 @@ -// SDLWarningLightStatus.h -// - - -#import "SDLEnum.h" - -/** - * Reflects the status of a cluster instrument warning light. Used in TireStatus - * - * @since SDL 2.0 - */ -typedef SDLEnum SDLWarningLightStatus SDL_SWIFT_ENUM; - -/** - * The warning light is off - */ -extern SDLWarningLightStatus const SDLWarningLightStatusOff; - -/** - * The warning light is off - */ -extern SDLWarningLightStatus const SDLWarningLightStatusOn; - -/** - * The warning light is flashing - */ -extern SDLWarningLightStatus const SDLWarningLightStatusFlash; - -/** - * The warning light is unused - */ -extern SDLWarningLightStatus const SDLWarningLightStatusNotUsed; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWarningLightStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWarningLightStatus.m deleted file mode 100644 index 6547275..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWarningLightStatus.m +++ /dev/null @@ -1,10 +0,0 @@ -// SDLWarningLightStatus.m -// - - -#import "SDLWarningLightStatus.h" - -SDLWarningLightStatus const SDLWarningLightStatusOff = @"OFF"; -SDLWarningLightStatus const SDLWarningLightStatusOn = @"ON"; -SDLWarningLightStatus const SDLWarningLightStatusFlash = @"FLASH"; -SDLWarningLightStatus const SDLWarningLightStatusNotUsed = @"NOT_USED"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWayPointType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWayPointType.h deleted file mode 100644 index 06b672f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWayPointType.h +++ /dev/null @@ -1,19 +0,0 @@ -// SDLWaypointType.h -// - -#import "SDLEnum.h" - -/** - The type of a navigation waypoint. Used in GetWayPoints. - */ -typedef SDLEnum SDLWayPointType SDL_SWIFT_ENUM; - -/** - All other waypoint types - */ -extern SDLWayPointType const SDLWayPointTypeAll; - -/** - The destination waypoint - */ -extern SDLWayPointType const SDLWayPointTypeDestination; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWayPointType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWayPointType.m deleted file mode 100644 index bfed8bc..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWayPointType.m +++ /dev/null @@ -1,7 +0,0 @@ -// SDLWayPointType.m -// - -#import "SDLWayPointType.h" - -SDLWayPointType const SDLWayPointTypeAll = @"ALL"; -SDLWayPointType const SDLWayPointTypeDestination = @"DESTINATION"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.h deleted file mode 100644 index 21d8545..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.h +++ /dev/null @@ -1,76 +0,0 @@ -// -// SDLWeatherAlert.h -// SmartDeviceLink -// -// Created by Nicole on 2/6/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" -#import "SDLDateTime.h" - -NS_ASSUME_NONNULL_BEGIN - -/// Contains information about a weather alert -/// -/// @since RPC 5.1 -@interface SDLWeatherAlert : SDLRPCStruct - -/** - * Convenience init for all parameters - * - * @param title The title of the alert - * @param summary A summary for the alert - * @param expires The date the alert expires - * @param regions Regions affected - * @param severity Severity - * @param timeIssued The date the alert was issued - * @return A SDLWeatherAlert alert - */ -- (instancetype)initWithTitle:(nullable NSString *)title summary:(nullable NSString *)summary expires:(nullable SDLDateTime *)expires regions:(nullable NSArray *)regions severity:(nullable NSString *)severity timeIssued:(nullable SDLDateTime *)timeIssued; - -/** - * The title of the alert. - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *title; - -/** - * A summary for the alert. - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *summary; - -/** - * The date the alert expires. - * - * SDLDateTime, Optional - */ -@property (nullable, strong, nonatomic) SDLDateTime *expires; - -/** - * Regions affected. - * - * Array of Strings, Optional, minsize="1" maxsize="99" - */ -@property (nullable, strong, nonatomic) NSArray *regions; - -/** - * Severity of the weather alert. - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *severity; - -/** - * The date the alert was issued. - * - * SDLDateTime, Optional - */ -@property (nullable, strong, nonatomic) SDLDateTime *timeIssued; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.m deleted file mode 100644 index 8d09e78..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherAlert.m +++ /dev/null @@ -1,84 +0,0 @@ -// -// SDLWeatherAlert.m -// SmartDeviceLink -// -// Created by Nicole on 2/6/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLWeatherAlert.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLWeatherAlert - -- (instancetype)initWithTitle:(nullable NSString *)title summary:(nullable NSString *)summary expires:(nullable SDLDateTime *)expires regions:(nullable NSArray *)regions severity:(nullable NSString *)severity timeIssued:(nullable SDLDateTime *)timeIssued { - self = [self init]; - if (!self) { - return nil; - } - - self.title = title; - self.summary = summary; - self.expires = expires; - self.regions = regions; - self.severity = severity; - self.timeIssued = timeIssued; - - return self; -} - -- (void)setTitle:(nullable NSString *)title { - [self.store sdl_setObject:title forName:SDLRPCParameterNameTitle]; -} - -- (nullable NSString *)title { - return [self.store sdl_objectForName:SDLRPCParameterNameTitle ofClass:NSString.class error:nil]; -} - -- (void)setSummary:(nullable NSString *)summary { - [self.store sdl_setObject:summary forName:SDLRPCParameterNameSummary]; -} - -- (nullable NSString *)summary { - return [self.store sdl_objectForName:SDLRPCParameterNameSummary ofClass:NSString.class error:nil]; -} - -- (void)setExpires:(nullable SDLDateTime *)expires { - [self.store sdl_setObject:expires forName:SDLRPCParameterNameExpires]; -} - -- (nullable SDLDateTime *)expires { - return [self.store sdl_objectForName:SDLRPCParameterNameExpires ofClass:SDLDateTime.class error:nil]; -} - -- (void)setRegions:(nullable NSArray *)regions { - [self.store sdl_setObject:regions forName:SDLRPCParameterNameRegions]; -} - -- (nullable NSArray *)regions { - return [self.store sdl_objectsForName:SDLRPCParameterNameRegions ofClass:NSString.class error:nil]; -} - -- (void)setSeverity:(nullable NSString *)severity { - [self.store sdl_setObject:severity forName:SDLRPCParameterNameSeverity]; -} - -- (nullable NSString *)severity { - return [self.store sdl_objectForName:SDLRPCParameterNameSeverity ofClass:NSString.class error:nil]; -} - -- (void)setTimeIssued:(nullable SDLDateTime *)timeIssued { - [self.store sdl_setObject:timeIssued forName:SDLRPCParameterNameTimeIssued]; -} - -- (nullable SDLDateTime *)timeIssued { - return [self.store sdl_objectForName:SDLRPCParameterNameTimeIssued ofClass:SDLDateTime.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.h deleted file mode 100644 index 68ea63c..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.h +++ /dev/null @@ -1,208 +0,0 @@ -// -// SDLWeatherData.h -// SmartDeviceLink -// -// Created by Nicole on 2/7/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -@class SDLDateTime; -@class SDLImage; -@class SDLTemperature; - - -NS_ASSUME_NONNULL_BEGIN - -/// Contains information about the current weather -/// -/// @since RPC 5.1 -@interface SDLWeatherData : SDLRPCStruct - -/** - * Convenience init for all parameters - * - * @param currentTemperature The current temperature - * @param temperatureHigh The predicted high temperature for the day - * @param temperatureLow The predicted low temperature for the day - * @param apparentTemperature The apparent temperature - * @param apparentTemperatureHigh The predicted high apparent temperature for the day - * @param apparentTemperatureLow The predicted low apparent temperature for the day - * @param weatherSummary A summary of the weather - * @param time The time this data refers to - * @param humidity From 0 to 1, percentage humidity - * @param cloudCover From 0 to 1, percentage cloud cover - * @param moonPhase From 0 to 1, percentage of the moon seen, e.g. 0 = no moon, 0.25 = quarter moon - * @param windBearing In degrees, true north at 0 degrees - * @param windGust In km/hr - * @param windSpeed In km/hr - * @param nearestStormBearing In degrees, true north at 0 degrees - * @param nearestStormDistance In km - * @param precipAccumulation In cm - * @param precipIntensity In cm of water per hour - * @param precipProbability From 0 to 1, percentage chance - * @param precipType A description of the precipitation type (e.g. "rain", "snow", "sleet", "hail") - * @param visibility In km - * @param weatherIcon The weather icon image - * @return A SDLWeatherData object - */ -- (instancetype)initWithCurrentTemperature:(nullable SDLTemperature *)currentTemperature temperatureHigh:(nullable SDLTemperature *)temperatureHigh temperatureLow:(nullable SDLTemperature *)temperatureLow apparentTemperature:(nullable SDLTemperature *)apparentTemperature apparentTemperatureHigh:(nullable SDLTemperature *)apparentTemperatureHigh apparentTemperatureLow:(nullable SDLTemperature *)apparentTemperatureLow weatherSummary:(nullable NSString *)weatherSummary time:(nullable SDLDateTime *)time humidity:(nullable NSNumber *)humidity cloudCover:(nullable NSNumber *)cloudCover moonPhase:(nullable NSNumber *)moonPhase windBearing:(nullable NSNumber *)windBearing windGust:(nullable NSNumber *)windGust windSpeed:(nullable NSNumber *)windSpeed nearestStormBearing:(nullable NSNumber *)nearestStormBearing nearestStormDistance:(nullable NSNumber *)nearestStormDistance precipAccumulation:(nullable NSNumber *)precipAccumulation precipIntensity:(nullable NSNumber *)precipIntensity precipProbability:(nullable NSNumber *)precipProbability precipType:(nullable NSString *)precipType visibility:(nullable NSNumber *)visibility weatherIcon:(nullable SDLImage *)weatherIcon; - -/** - * The current temperature. - * - * SDLTemperature, Optional - */ -@property (nullable, strong, nonatomic) SDLTemperature *currentTemperature; - -/** - * The predicted high temperature for the day. - * - * SDLTemperature, Optional - */ -@property (nullable, strong, nonatomic) SDLTemperature *temperatureHigh; - -/** - * The predicted low temperature for the day. - * - * SDLTemperature, Optional - */ -@property (nullable, strong, nonatomic) SDLTemperature *temperatureLow; - -/** - * The apparent temperature. - * - * SDLTemperature, Optional - */ -@property (nullable, strong, nonatomic) SDLTemperature *apparentTemperature; - -/** - * The predicted high apparent temperature for the day. - * - * SDLTemperature, Optional - */ -@property (nullable, strong, nonatomic) SDLTemperature *apparentTemperatureHigh; - -/** - * The predicted low apparent temperature for the day. - * - * SDLTemperature, Optional - */ -@property (nullable, strong, nonatomic) SDLTemperature *apparentTemperatureLow; - -/** - * A summary of the weather. - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *weatherSummary; - -/** - * The time this data refers to. - * - * SDLDateTime, Optional - */ -@property (nullable, strong, nonatomic) SDLDateTime *time; - -/** - * From 0 to 1, percentage humidity. - * - * Float, Optional, minvalue="0" maxvalue="1" - */ -@property (nullable, strong, nonatomic) NSNumber *humidity; - -/** - * From 0 to 1, percentage cloud cover. - * - * Float, Optional, minvalue="0" maxvalue="1" - */ -@property (nullable, strong, nonatomic) NSNumber *cloudCover; - -/** - * From 0 to 1, percentage of the moon seen, e.g. 0 = no moon, 0.25 = quarter moon - * - * Float, Optional, minvalue="0" maxvalue="1" - */ -@property (nullable, strong, nonatomic) NSNumber *moonPhase; - -/** - * In degrees, true north at 0 degrees. - * - * Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *windBearing; - -/** - * In km/hr - * - * Float, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *windGust; - -/** - * In km/hr - * - * Float, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *windSpeed; - -/** - * In degrees, true north at 0 degrees. - * - * Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *nearestStormBearing; - -/** - * In km - * - * Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *nearestStormDistance; - -/** - * In cm - * - * Float, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *precipAccumulation; - -/** - * In cm of water per hour. - * - * Float, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *precipIntensity; - -/** - * From 0 to 1, percentage chance. - * - * Float, Optional, minvalue="0" maxvalue="1" - */ -@property (nullable, strong, nonatomic) NSNumber *precipProbability; - -/** - * A description of the precipitation type (e.g. "rain", "snow", "sleet", "hail") - * - * String, Optional - */ -@property (nullable, strong, nonatomic) NSString *precipType; - -/** - * In km - * - * Float, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *visibility; - -/** - * The weather icon image. - * - * SDLImage, Optional - */ -@property (nullable, strong, nonatomic) SDLImage *weatherIcon; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.m deleted file mode 100644 index 4be530e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherData.m +++ /dev/null @@ -1,231 +0,0 @@ -// -// SDLWeatherData.m -// SmartDeviceLink -// -// Created by Nicole on 2/7/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLWeatherData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLDateTime.h" -#import "SDLImage.h" -#import "SDLRPCParameterNames.h" -#import "SDLTemperature.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLWeatherData - -- (instancetype)initWithCurrentTemperature:(nullable SDLTemperature *)currentTemperature temperatureHigh:(nullable SDLTemperature *)temperatureHigh temperatureLow:(nullable SDLTemperature *)temperatureLow apparentTemperature:(nullable SDLTemperature *)apparentTemperature apparentTemperatureHigh:(nullable SDLTemperature *)apparentTemperatureHigh apparentTemperatureLow:(nullable SDLTemperature *)apparentTemperatureLow weatherSummary:(nullable NSString *)weatherSummary time:(nullable SDLDateTime *)time humidity:(nullable NSNumber *)humidity cloudCover:(nullable NSNumber *)cloudCover moonPhase:(nullable NSNumber *)moonPhase windBearing:(nullable NSNumber *)windBearing windGust:(nullable NSNumber *)windGust windSpeed:(nullable NSNumber *)windSpeed nearestStormBearing:(nullable NSNumber *)nearestStormBearing nearestStormDistance:(nullable NSNumber *)nearestStormDistance precipAccumulation:(nullable NSNumber *)precipAccumulation precipIntensity:(nullable NSNumber *)precipIntensity precipProbability:(nullable NSNumber *)precipProbability precipType:(nullable NSString *)precipType visibility:(nullable NSNumber *)visibility weatherIcon:(nullable SDLImage *)weatherIcon { - self = [self init]; - if (!self) { - return nil; - } - - self.currentTemperature = currentTemperature; - self.temperatureHigh = temperatureHigh; - self.temperatureLow = temperatureLow; - self.apparentTemperature = apparentTemperature; - self.apparentTemperatureHigh = apparentTemperatureHigh; - self.apparentTemperatureLow = apparentTemperatureLow; - self.weatherSummary = weatherSummary; - self.time = time; - self.humidity = humidity; - self.cloudCover = cloudCover; - self.moonPhase = moonPhase; - self.windBearing = windBearing; - self.windGust = windGust; - self.windSpeed = windSpeed; - self.nearestStormBearing = nearestStormBearing; - self.nearestStormDistance = nearestStormDistance; - self.precipAccumulation = precipAccumulation; - self.precipIntensity = precipIntensity; - self.precipProbability = precipProbability; - self.precipType = precipType; - self.visibility = visibility; - self.weatherIcon = weatherIcon; - - return self; -} - -- (void)setCurrentTemperature:(nullable SDLTemperature *)currentTemperature { - [self.store sdl_setObject:currentTemperature forName:SDLRPCParameterNameCurrentTemperature]; -} - -- (nullable SDLTemperature *)currentTemperature { - return [self.store sdl_objectForName:SDLRPCParameterNameCurrentTemperature ofClass:SDLTemperature.class error:nil]; -} - -- (void)setTemperatureHigh:(nullable SDLTemperature *)temperatureHigh { - [self.store sdl_setObject:temperatureHigh forName:SDLRPCParameterNameTemperatureHigh]; -} - -- (nullable SDLTemperature *)temperatureHigh { - return [self.store sdl_objectForName:SDLRPCParameterNameTemperatureHigh ofClass:SDLTemperature.class error:nil]; -} - -- (void)setTemperatureLow:(nullable SDLTemperature *)temperatureLow { - [self.store sdl_setObject:temperatureLow forName:SDLRPCParameterNameTemperatureLow]; -} - -- (nullable SDLTemperature *)temperatureLow { - return [self.store sdl_objectForName:SDLRPCParameterNameTemperatureLow ofClass:SDLTemperature.class error:nil]; -} - -- (void)setApparentTemperature:(nullable SDLTemperature *)apparentTemperature { - [self.store sdl_setObject:apparentTemperature forName:SDLRPCParameterNameApparentTemperature]; -} - -- (nullable SDLTemperature *)apparentTemperature { - return [self.store sdl_objectForName:SDLRPCParameterNameApparentTemperature ofClass:SDLTemperature.class error:nil]; -} - -- (void)setApparentTemperatureHigh:(nullable SDLTemperature *)apparentTemperatureHigh { - [self.store sdl_setObject:apparentTemperatureHigh forName:SDLRPCParameterNameApparentTemperatureHigh]; -} - -- (nullable SDLTemperature *)apparentTemperatureHigh { - return [self.store sdl_objectForName:SDLRPCParameterNameApparentTemperatureHigh ofClass:SDLTemperature.class error:nil]; -} - -- (void)setApparentTemperatureLow:(nullable SDLTemperature *)apparentTemperatureLow { - [self.store sdl_setObject:apparentTemperatureLow forName:SDLRPCParameterNameApparentTemperatureLow]; -} - -- (nullable SDLTemperature *)apparentTemperatureLow { - return [self.store sdl_objectForName:SDLRPCParameterNameApparentTemperatureLow ofClass:SDLTemperature.class error:nil]; -} - -- (void)setWeatherSummary:(nullable NSString *)weatherSummary { - [self.store sdl_setObject:weatherSummary forName:SDLRPCParameterNameWeatherSummary]; -} - -- (nullable NSString *)weatherSummary { - return [self.store sdl_objectForName:SDLRPCParameterNameWeatherSummary ofClass:NSString.class error:nil]; -} - -- (void)setTime:(nullable SDLDateTime *)time { - [self.store sdl_setObject:time forName:SDLRPCParameterNameTime]; -} - -- (nullable SDLDateTime *)time { - return [self.store sdl_objectForName:SDLRPCParameterNameTime ofClass:SDLDateTime.class error:nil]; -} - -- (void)setHumidity:(nullable NSNumber *)humidity { - [self.store sdl_setObject:humidity forName:SDLRPCParameterNameHumidity]; -} - -- (nullable NSNumber *)humidity { - return [self.store sdl_objectForName:SDLRPCParameterNameHumidity ofClass:NSNumber.class error:nil]; -} - -- (void)setCloudCover:(nullable NSNumber *)cloudCover { - [self.store sdl_setObject:cloudCover forName:SDLRPCParameterNameCloudCover]; -} - -- (nullable NSNumber *)cloudCover { - return [self.store sdl_objectForName:SDLRPCParameterNameCloudCover ofClass:NSNumber.class error:nil]; -} - -- (void)setMoonPhase:(nullable NSNumber *)moonPhase { - [self.store sdl_setObject:moonPhase forName:SDLRPCParameterNameMoonPhase]; -} - -- (nullable NSNumber *)moonPhase { - return [self.store sdl_objectForName:SDLRPCParameterNameMoonPhase ofClass:NSNumber.class error:nil]; -} - -- (void)setWindBearing:(nullable NSNumber *)windBearing { - [self.store sdl_setObject:windBearing forName:SDLRPCParameterNameWindBearing]; -} - -- (nullable NSNumber *)windBearing { - return [self.store sdl_objectForName:SDLRPCParameterNameWindBearing ofClass:NSNumber.class error:nil]; -} - -- (void)setWindGust:(nullable NSNumber *)windGust { - [self.store sdl_setObject:windGust forName:SDLRPCParameterNameWindGust]; -} - -- (nullable NSNumber *)windGust { - return [self.store sdl_objectForName:SDLRPCParameterNameWindGust ofClass:NSNumber.class error:nil]; -} - -- (void)setWindSpeed:(nullable NSNumber *)windSpeed { - [self.store sdl_setObject:windSpeed forName:SDLRPCParameterNameWindSpeed]; -} - -- (nullable NSNumber *)windSpeed { - return [self.store sdl_objectForName:SDLRPCParameterNameWindSpeed ofClass:NSNumber.class error:nil]; -} - -- (void)setNearestStormBearing:(nullable NSNumber *)nearestStormBearing { - [self.store sdl_setObject:nearestStormBearing forName:SDLRPCParameterNameNearestStormBearing]; -} - -- (nullable NSNumber *)nearestStormBearing { - return [self.store sdl_objectForName:SDLRPCParameterNameNearestStormBearing ofClass:NSNumber.class error:nil]; -} - -- (void)setNearestStormDistance:(nullable NSNumber *)nearestStormDistance { - [self.store sdl_setObject:nearestStormDistance forName:SDLRPCParameterNameNearestStormDistance]; -} - -- (nullable NSNumber *)nearestStormDistance { - return [self.store sdl_objectForName:SDLRPCParameterNameNearestStormDistance ofClass:NSNumber.class error:nil]; -} - -- (void)setPrecipAccumulation:(nullable NSNumber *)precipAccumulation { - [self.store sdl_setObject:precipAccumulation forName:SDLRPCParameterNamePrecipAccumulation]; -} - -- (nullable NSNumber *)precipAccumulation { - return [self.store sdl_objectForName:SDLRPCParameterNamePrecipAccumulation ofClass:NSNumber.class error:nil]; -} - -- (void)setPrecipIntensity:(nullable NSNumber *)precipIntensity { - [self.store sdl_setObject:precipIntensity forName:SDLRPCParameterNamePrecipIntensity]; -} - -- (nullable NSNumber *)precipIntensity { - return [self.store sdl_objectForName:SDLRPCParameterNamePrecipIntensity ofClass:NSNumber.class error:nil]; -} - -- (void)setPrecipProbability:(nullable NSNumber *)precipProbability { - [self.store sdl_setObject:precipProbability forName:SDLRPCParameterNamePrecipProbability]; -} - -- (nullable NSNumber *)precipProbability { - return [self.store sdl_objectForName:SDLRPCParameterNamePrecipProbability ofClass:NSNumber.class error:nil]; -} - -- (void)setPrecipType:(nullable NSString *)precipType { - [self.store sdl_setObject:precipType forName:SDLRPCParameterNamePrecipType]; -} - -- (nullable NSString *)precipType { - return [self.store sdl_objectForName:SDLRPCParameterNamePrecipType ofClass:NSString.class error:nil]; -} - -- (void)setVisibility:(nullable NSNumber *)visibility { - [self.store sdl_setObject:visibility forName:SDLRPCParameterNameVisibility]; -} - -- (nullable NSNumber *)visibility { - return [self.store sdl_objectForName:SDLRPCParameterNameVisibility ofClass:NSNumber.class error:nil]; -} - -- (void)setWeatherIcon:(nullable SDLImage *)weatherIcon { - [self.store sdl_setObject:weatherIcon forName:SDLRPCParameterNameWeatherIcon]; -} - -- (nullable SDLImage *)weatherIcon { - return [self.store sdl_objectForName:SDLRPCParameterNameWeatherIcon ofClass:SDLImage.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.h deleted file mode 100644 index 488e30f..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.h +++ /dev/null @@ -1,87 +0,0 @@ -// -// SDLWeatherServiceData.h -// SmartDeviceLink -// -// Created by Nicole on 2/7/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -#import "SDLLocationDetails.h" -#import "SDLWeatherData.h" -#import "SDLWeatherAlert.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * This data is related to what a weather service would provide. - */ -@interface SDLWeatherServiceData : SDLRPCStruct - -/** - * Convenience init for required parameters. - * - * @param location The location - * @return A SDLWeatherServiceData object - */ -- (instancetype)initWithLocation:(SDLLocationDetails *)location NS_DESIGNATED_INITIALIZER; - -/** - * Convenience init for all parameters. - * - * @param location The location - * @param currentForecast The current forecast - * @param minuteForecast A minute-by-minute array of forecasts - * @param hourlyForecast An hour-by-hour array of forecasts - * @param multidayForecast A day-by-day array of forecasts - * @param alerts An array of weather alerts - * @return A SDLWeatherServiceData object - */ -- (instancetype)initWithLocation:(SDLLocationDetails *)location currentForecast:(nullable SDLWeatherData *)currentForecast minuteForecast:(nullable NSArray *)minuteForecast hourlyForecast:(nullable NSArray *)hourlyForecast multidayForecast:(nullable NSArray *)multidayForecast alerts:(nullable NSArray *)alerts; - -/** - * The location. - * - * SDLLocationDetails, Required - */ -@property (strong, nonatomic) SDLLocationDetails *location; - -/** - * The current forecast. - * - * SDLWeatherData, Optional - */ -@property (nullable, strong, nonatomic) SDLWeatherData *currentForecast; - -/** - * A minute-by-minute array of forecasts. - * - * Array of SDLWeatherData, Optional, minsize="15" maxsize="60" - */ -@property (nullable, strong, nonatomic) NSArray *minuteForecast; - -/** - * An hour-by-hour array of forecasts. - * - * Array of SDLWeatherData, Optional, minsize="1" maxsize="96" - */ -@property (nullable, strong, nonatomic) NSArray *hourlyForecast; - -/** - * A day-by-day array of forecasts. - * - * Array of SDLWeatherData, Optional, minsize="1" maxsize="30" - */ -@property (nullable, strong, nonatomic) NSArray *multidayForecast; - -/** - * An array of weather alerts. This array should be ordered with the first object being the current day. - * - * Array of SDLWeatherData, Optional, minsize="1" maxsize="10" - */ -@property (nullable, strong, nonatomic) NSArray *alerts; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.m deleted file mode 100644 index 60b110e..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceData.m +++ /dev/null @@ -1,95 +0,0 @@ -// -// SDLWeatherServiceData.m -// SmartDeviceLink -// -// Created by Nicole on 2/7/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLWeatherServiceData.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLWeatherServiceData - -- (instancetype)initWithLocation:(SDLLocationDetails *)location { - self = [super init]; - if (!self) { - return nil; - } - - self.location = location; - - return self; -} - -- (instancetype)initWithLocation:(SDLLocationDetails *)location currentForecast:(nullable SDLWeatherData *)currentForecast minuteForecast:(nullable NSArray *)minuteForecast hourlyForecast:(nullable NSArray *)hourlyForecast multidayForecast:(nullable NSArray *)multidayForecast alerts:(nullable NSArray *)alerts { - self = [self initWithLocation:location]; - if (!self) { - return nil; - } - - self.currentForecast = currentForecast; - self.minuteForecast = minuteForecast; - self.hourlyForecast = hourlyForecast; - self.multidayForecast = multidayForecast; - self.alerts = alerts; - - return self; -} - -- (void)setLocation:(SDLLocationDetails *)location { - [self.store sdl_setObject:location forName:SDLRPCParameterNameLocation]; -} - -- (SDLLocationDetails *)location { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameLocation ofClass:SDLLocationDetails.class error:&error]; -} - -- (void)setCurrentForecast:(nullable SDLWeatherData *)currentForecast { - [self.store sdl_setObject:currentForecast forName:SDLRPCParameterNameCurrentForecast]; -} - -- (nullable SDLWeatherData *)currentForecast { - return [self.store sdl_objectForName:SDLRPCParameterNameCurrentForecast ofClass:SDLWeatherData.class error:nil]; -} - -- (void)setMinuteForecast:(nullable NSArray *)minuteForecast { - [self.store sdl_setObject:minuteForecast forName:SDLRPCParameterNameMinuteForecast]; -} - -- (nullable NSArray *)minuteForecast { - return [self.store sdl_objectsForName:SDLRPCParameterNameMinuteForecast ofClass:SDLWeatherData.class error:nil]; -} - -- (void)setHourlyForecast:(nullable NSArray *)hourlyForecast { - [self.store sdl_setObject:hourlyForecast forName:SDLRPCParameterNameHourlyForecast]; -} - -- (nullable NSArray *)hourlyForecast { - return [self.store sdl_objectsForName:SDLRPCParameterNameHourlyForecast ofClass:SDLWeatherData.class error:nil]; -} - -- (void)setMultidayForecast:(nullable NSArray *)multidayForecast { - [self.store sdl_setObject:multidayForecast forName:SDLRPCParameterNameMultidayForecast]; -} - -- (nullable NSArray *)multidayForecast { - return [self.store sdl_objectsForName:SDLRPCParameterNameMultidayForecast ofClass:SDLWeatherData.class error:nil]; -} - -- (void)setAlerts:(nullable NSArray *)alerts { - [self.store sdl_setObject:alerts forName:SDLRPCParameterNameAlerts]; -} - -- (nullable NSArray *)alerts { - return [self.store sdl_objectsForName:SDLRPCParameterNameAlerts ofClass:SDLWeatherAlert.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.h deleted file mode 100644 index 761474b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.h +++ /dev/null @@ -1,67 +0,0 @@ -// -// SDLWeatherServiceManifest.h -// SmartDeviceLink -// -// Created by Nicole on 2/8/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLRPCRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * A weather service manifest. - */ -@interface SDLWeatherServiceManifest : SDLRPCStruct - -/** - * Convenience init for all parameters. - * - * @param currentForecastSupported Whether or not the current forcast is supported. - * @param maxMultidayForecastAmount The maximum number of day-by-day forecasts. - * @param maxHourlyForecastAmount The maximum number of hour-by-hour forecasts. - * @param maxMinutelyForecastAmount The maximum number of minute-by-minute forecasts. - * @param weatherForLocationSupported Whether or not the weather for location is supported. - * @return A SDLWeatherServiceManifest object - */ -- (instancetype)initWithCurrentForecastSupported:(BOOL)currentForecastSupported maxMultidayForecastAmount:(UInt32)maxMultidayForecastAmount maxHourlyForecastAmount:(UInt32)maxHourlyForecastAmount maxMinutelyForecastAmount:(UInt32)maxMinutelyForecastAmount weatherForLocationSupported:(BOOL)weatherForLocationSupported; - -/** - * Whether or not the current forcast is supported. - * - * Boolean, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *currentForecastSupported; - -/** - * The maximum number of day-by-day forecasts. - * - * Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *maxMultidayForecastAmount; - -/** - * The maximum number of hour-by-hour forecasts. - * - * Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *maxHourlyForecastAmount; - -/** - * The maximum number of minute-by-minute forecasts. - * - * Integer, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *maxMinutelyForecastAmount; - -/** - * Whether or not the weather for location is supported. - * - * Boolean, Optional - */ -@property (nullable, strong, nonatomic) NSNumber *weatherForLocationSupported; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.m deleted file mode 100644 index 753a152..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWeatherServiceManifest.m +++ /dev/null @@ -1,75 +0,0 @@ -// -// SDLWeatherServiceManifest.m -// SmartDeviceLink -// -// Created by Nicole on 2/8/19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLWeatherServiceManifest.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLWeatherServiceManifest - -- (instancetype)initWithCurrentForecastSupported:(BOOL)currentForecastSupported maxMultidayForecastAmount:(UInt32)maxMultidayForecastAmount maxHourlyForecastAmount:(UInt32)maxHourlyForecastAmount maxMinutelyForecastAmount:(UInt32)maxMinutelyForecastAmount weatherForLocationSupported:(BOOL)weatherForLocationSupported { - self = [self init]; - if (!self) { - return nil; - } - - self.currentForecastSupported = @(currentForecastSupported); - self.maxMultidayForecastAmount = @(maxMultidayForecastAmount); - self.maxHourlyForecastAmount = @(maxHourlyForecastAmount); - self.maxMinutelyForecastAmount = @(maxMinutelyForecastAmount); - self.weatherForLocationSupported = @(weatherForLocationSupported); - - return self; -} - -- (void)setCurrentForecastSupported:(nullable NSNumber *)currentForecastSupported { - [self.store sdl_setObject:currentForecastSupported forName:SDLRPCParameterNameCurrentForecastSupported]; -} - -- (nullable NSNumber *)currentForecastSupported { - return [self.store sdl_objectForName:SDLRPCParameterNameCurrentForecastSupported ofClass:NSNumber.class error:nil]; -} - -- (void)setMaxMultidayForecastAmount:(nullable NSNumber *)maxMultidayForecastAmount { - [self.store sdl_setObject:maxMultidayForecastAmount forName:SDLRPCParameterNameMaxMultidayForecastAmount]; -} - -- (nullable NSNumber *)maxMultidayForecastAmount { - return [self.store sdl_objectForName:SDLRPCParameterNameMaxMultidayForecastAmount ofClass:NSNumber.class error:nil]; -} - -- (void)setMaxHourlyForecastAmount:(nullable NSNumber *)maxHourlyForecastAmount { - [self.store sdl_setObject:maxHourlyForecastAmount forName:SDLRPCParameterNameMaxHourlyForecastAmount]; -} - -- (nullable NSNumber *)maxHourlyForecastAmount { - return [self.store sdl_objectForName:SDLRPCParameterNameMaxHourlyForecastAmount ofClass:NSNumber.class error:nil]; -} - -- (void)setMaxMinutelyForecastAmount:(nullable NSNumber *)maxMinutelyForecastAmount { - [self.store sdl_setObject:maxMinutelyForecastAmount forName:SDLRPCParameterNameMaxMinutelyForecastAmount]; -} - -- (nullable NSNumber *)maxMinutelyForecastAmount { - return [self.store sdl_objectForName:SDLRPCParameterNameMaxMinutelyForecastAmount ofClass:NSNumber.class error:nil]; -} - -- (void)setWeatherForLocationSupported:(nullable NSNumber *)weatherForLocationSupported { - [self.store sdl_setObject:weatherForLocationSupported forName:SDLRPCParameterNameWeatherForLocationSupported]; -} - -- (nullable NSNumber *)weatherForLocationSupported { - return [self.store sdl_objectForName:SDLRPCParameterNameWeatherForLocationSupported ofClass:NSNumber.class error:nil]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.h deleted file mode 100644 index 9321c98..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// SDLWindowCapability+ShowManagerExtensions.h -// SmartDeviceLink -// -// Created by Joel Fischer on 2/28/18. -// Updated by Kujtim Shala (Ford) on 13.09.19. -// - Renamed and adapted for WindowCapability -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLImageFieldName.h" -#import "SDLTextFieldName.h" -#import "SDLWindowCapability.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLWindowCapability (ScreenManagerExtensions) - -@property (assign, nonatomic, readonly) NSUInteger maxNumberOfMainFieldLines; - -- (BOOL)hasTextFieldOfName:(SDLTextFieldName)name; -- (BOOL)hasImageFieldOfName:(SDLImageFieldName)name; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.m deleted file mode 100644 index 441356a..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability+ScreenManagerExtensions.m +++ /dev/null @@ -1,55 +0,0 @@ -// -// SDLWindowCapability+ShowManagerExtensions.m -// SmartDeviceLink -// -// Created by Joel Fischer on 2/28/18. -// Updated by Kujtim Shala (Ford) on 13.09.19. -// - Renamed and adapted for WindowCapability -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLWindowCapability+ScreenManagerExtensions.h" -#import "SDLImageField.h" -#import "SDLTextField.h" - -@implementation SDLWindowCapability (ScreenManagerExtensions) - -- (BOOL)hasTextFieldOfName:(SDLTextFieldName)name { - for (SDLTextField *textField in self.textFields) { - if ([textField.name isEqualToString:name]) { - return YES; - } - } - - return NO; -} - -- (NSUInteger)maxNumberOfMainFieldLines { - NSInteger highestFound = 0; - for (SDLTextField *textField in self.textFields) { - if (![textField.name isKindOfClass:[NSString class]]) { continue; } - if ([textField.name isEqualToString:SDLTextFieldNameMainField1] - || [textField.name isEqualToString:SDLTextFieldNameMainField2] - || [textField.name isEqualToString:SDLTextFieldNameMainField3] - || [textField.name isEqualToString:SDLTextFieldNameMainField4]) { - NSInteger fieldNumber = [[textField.name substringFromIndex:(textField.name.length - 1)] integerValue]; - highestFound = (highestFound < fieldNumber) ? fieldNumber : highestFound; - - if (highestFound == 4) { break; } - } - } - - return (NSUInteger)highestFound; -} - -- (BOOL)hasImageFieldOfName:(SDLImageFieldName)name { - for (SDLImageField *imageField in self.imageFields) { - if ([imageField.name isEqualToString:name]) { - return YES; - } - } - - return NO; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.h deleted file mode 100644 index 8360416..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.h +++ /dev/null @@ -1,89 +0,0 @@ -// -// SDLWindowCapability.h -// SmartDeviceLink - -#import "SDLRPCStruct.h" -#import "SDLImageType.h" -#import "SDLMenuLayout.h" - -@class SDLTextField; -@class SDLImageField; -@class SDLButtonCapabilities; -@class SDLSoftButtonCapabilities; - - -NS_ASSUME_NONNULL_BEGIN - -/** - Reflects content of DisplayCapabilities, ButtonCapabilities and SoftButtonCapabilities - - @since SDL 6.0 - */ -@interface SDLWindowCapability : SDLRPCStruct - -/** - The specified ID of the window. Can be set to a predefined window, or omitted for the main window on the main display. - - Size: min 1 max 100 - */ -@property (nullable, strong, nonatomic) NSNumber *windowID; - -/** - A set of all fields that support text data. @see TextField - - Size: min 1 max 100 - */ -@property (nullable, strong, nonatomic) NSArray *textFields; - -/** - A set of all fields that support images. @see ImageField - - Size: min 0 max 1000 - */ -@property (nullable, strong, nonatomic) NSArray *imageFields; - -/** - Provides information about image types supported by the system. - - Size: min 0 max 1000 - */ -@property (nullable, strong, nonatomic) NSArray *imageTypeSupported; - -/** - A set of all window templates available on the head unit. - - Size: min 0 max 100 - */ -@property (nullable, strong, nonatomic) NSArray *templatesAvailable; - -/** - The number of on-window custom presets available (if any); otherwise omitted. - - Size: min 1 max 100 - */ -@property (nullable, strong, nonatomic) NSNumber *numCustomPresetsAvailable; - -/** - The number of buttons and the capabilities of each on-window button. - - Size: min 1 max 100 - */ -@property (nullable, strong, nonatomic) NSArray *buttonCapabilities; - -/** - The number of soft buttons available on-window and the capabilities for each button. - - Size: min 1 max 100 - */ -@property (nullable, strong, nonatomic) NSArray *softButtonCapabilities; - -/** - An array of available menu layouts. If this parameter is not provided, only the `LIST` layout is assumed to be available. - - Optional, array of 1 to 100, see SDLMenuLayout - */ -@property (nullable, strong, nonatomic) NSArray *menuLayoutsAvailable; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.m deleted file mode 100644 index 509e2aa..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowCapability.m +++ /dev/null @@ -1,89 +0,0 @@ -// -// SDLWindowCapability.m -// SmartDeviceLink - -#import "SDLWindowCapability.h" - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" -#import "SDLTextField.h" -#import "SDLImageField.h" -#import "SDLButtonCapabilities.h" -#import "SDLSoftButtonCapabilities.h" - -@implementation SDLWindowCapability - -- (void)setWindowID:(nullable NSNumber *)windowID { - [self.store sdl_setObject:windowID forName:SDLRPCParameterNameWindowId]; -} - -- (nullable NSNumber *)windowID { - return [self.store sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:nil]; -} - -- (void)setTextFields:(nullable NSArray *)textFields { - [self.store sdl_setObject:textFields forName:SDLRPCParameterNameTextFields]; -} - -- (nullable NSArray *)textFields { - return [self.store sdl_objectsForName:SDLRPCParameterNameTextFields ofClass:SDLTextField.class error:nil]; -} - -- (void)setImageFields:(nullable NSArray *)imageFields { - [self.store sdl_setObject:imageFields forName:SDLRPCParameterNameImageFields]; -} - -- (nullable NSArray *)imageFields { - return [self.store sdl_objectsForName:SDLRPCParameterNameImageFields ofClass:SDLImageField.class error:nil]; -} - -- (void)setImageTypeSupported:(nullable NSArray *)imageTypeSupported { - [self.store sdl_setObject:imageTypeSupported forName:SDLRPCParameterNameImageTypeSupported]; -} - -- (nullable NSArray *)imageTypeSupported { - return [self.store sdl_enumsForName:SDLRPCParameterNameImageTypeSupported error:nil]; -} - -- (void)setTemplatesAvailable:(nullable NSArray *)templatesAvailable { - [self.store sdl_setObject:templatesAvailable forName:SDLRPCParameterNameTemplatesAvailable]; -} - -- (nullable NSArray *)templatesAvailable { - return [self.store sdl_objectsForName:SDLRPCParameterNameTemplatesAvailable ofClass:NSString.class error:nil]; -} - -- (void)setNumCustomPresetsAvailable:(nullable NSNumber *)numCustomPresetsAvailable { - [self.store sdl_setObject:numCustomPresetsAvailable forName:SDLRPCParameterNameNumberCustomPresetsAvailable]; -} - -- (nullable NSNumber *)numCustomPresetsAvailable { - return [self.store sdl_objectForName:SDLRPCParameterNameNumberCustomPresetsAvailable ofClass:NSNumber.class error:nil]; -} - -- (void)setButtonCapabilities:(nullable NSArray *)buttonCapabilities { - [self.store sdl_setObject:buttonCapabilities forName:SDLRPCParameterNameButtonCapabilities]; -} - -- (nullable NSArray *)buttonCapabilities { - return [self.store sdl_objectsForName:SDLRPCParameterNameButtonCapabilities ofClass:SDLButtonCapabilities.class error:nil]; -} - - -- (void)setSoftButtonCapabilities:(nullable NSArray *)softButtonCapabilities { - [self.store sdl_setObject:softButtonCapabilities forName:SDLRPCParameterNameSoftButtonCapabilities]; -} - -- (nullable NSArray *)softButtonCapabilities { - return [self.store sdl_objectsForName:SDLRPCParameterNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class error:nil]; -} - -- (void)setMenuLayoutsAvailable:(nullable NSArray *)menuLayoutsAvailable { - [self.store sdl_setObject:menuLayoutsAvailable forName:SDLRPCParameterNameMenuLayoutsAvailable]; -} - -- (nullable NSArray *)menuLayoutsAvailable { - return [self.store sdl_enumsForName:SDLRPCParameterNameMenuLayoutsAvailable error:nil]; -} - -@end diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.h deleted file mode 100644 index 5dca1b3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// SDLWindowType.h -// SmartDeviceLink - -#import "SDLEnum.h" -/** - The type of the window to be created. Main window or widget. - - @since SDL 6.0 - */ -typedef SDLEnum SDLWindowType SDL_SWIFT_ENUM; - -/** - This window type describes the main window on a display. - */ -extern SDLWindowType const SDLWindowTypeMain; - -/** - A widget is a small window that the app can create to provide information and soft buttons for quick app control. - */ -extern SDLWindowType const SDLWindowTypeWidget; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.m deleted file mode 100644 index 90678e3..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowType.m +++ /dev/null @@ -1,8 +0,0 @@ -// -// SDLWindowType.m -// SmartDeviceLink - -#import "SDLWindowType.h" - -SDLWindowType const SDLWindowTypeMain = @"MAIN"; -SDLWindowType const SDLWindowTypeWidget = @"WIDGET"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.h deleted file mode 100644 index 551fd69..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// SDLWindowTypeCapabilities.h -// SmartDeviceLink - -#import "SDLRPCStruct.h" -#import "SDLWindowType.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Used to inform an app how many window instances per type that can be created. - - @since SDL 6.0 - */ -@interface SDLWindowTypeCapabilities : SDLRPCStruct - -/** - Init with required parameters - - @param type Type of windows available, to create. - @param maximumNumberOfWindows Number of windows available, to create. - */ -- (instancetype)initWithType:(SDLWindowType)type maximumNumberOfWindows:(UInt32)maximumNumberOfWindows; - -/** - Type of windows available, to create. - - Required - */ -@property (strong, nonatomic) SDLWindowType type; - -/** - Number of windows available, to create. - - Required - */ -@property (strong, nonatomic) NSNumber *maximumNumberOfWindows; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.m deleted file mode 100644 index 1e2212d..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWindowTypeCapabilities.m +++ /dev/null @@ -1,58 +0,0 @@ -// -// SDLWindowTypeCapabilities.m -// SmartDeviceLink -// -// Created by cssoeutest1 on 16.07.19. -// Copyright © 2019 smartdevicelink. All rights reserved. -// - -#import "SDLWindowTypeCapabilities.h" - - -#import "NSMutableDictionary+Store.h" -#import "SDLRPCParameterNames.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLWindowTypeCapabilities - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - return self; -} - -- (instancetype)initWithType:(SDLWindowType)type maximumNumberOfWindows:(UInt32)maximumNumberOfWindows { - self = [self init]; - if (!self) { - return nil; - } - self.type = type; - self.maximumNumberOfWindows = @(maximumNumberOfWindows); - return self; -} - -- (void)setType:(SDLWindowType)type { - [self.store sdl_setObject:type forName:SDLRPCParameterNameType]; -} - -- (SDLWindowType)type { - NSError *error = nil; - return [self.store sdl_enumForName:SDLRPCParameterNameType error:&error]; -} - -- (void)setMaximumNumberOfWindows:(NSNumber *)maximumNumberOfWindows { - [self.store sdl_setObject:maximumNumberOfWindows forName:SDLRPCParameterNameMaximumNumberOfWindows]; -} - -- (NSNumber *)maximumNumberOfWindows { - NSError *error = nil; - return [self.store sdl_objectForName:SDLRPCParameterNameMaximumNumberOfWindows ofClass:NSNumber.class error:&error]; -} - -@end - -NS_ASSUME_NONNULL_END - diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWiperStatus.h b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWiperStatus.h deleted file mode 100644 index 05fb748..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWiperStatus.h +++ /dev/null @@ -1,85 +0,0 @@ -// SDLWiperStatus.h -// - - -#import "SDLEnum.h" - -/** - * The status of the windshield wipers. Used in retrieving vehicle data. - */ -typedef SDLEnum SDLWiperStatus SDL_SWIFT_ENUM; - -/** - * Wiper is off - */ -extern SDLWiperStatus const SDLWiperStatusOff; - -/** - * Wiper is off automatically - */ -extern SDLWiperStatus const SDLWiperStatusAutomaticOff; - -/** - * Wiper is moving but off - */ -extern SDLWiperStatus const SDLWiperStatusOffMoving; - -/** - * Wiper is off due to a manual interval - */ -extern SDLWiperStatus const SDLWiperStatusManualIntervalOff; - -/** - * Wiper is on due to a manual interval - */ -extern SDLWiperStatus const SDLWiperStatusManualIntervalOn; - -/** - * Wiper is on low manually - */ -extern SDLWiperStatus const SDLWiperStatusManualLow; - -/** - * Wiper is on high manually - */ -extern SDLWiperStatus const SDLWiperStatusManualHigh; - -/** - * Wiper is on for a single wipe manually - */ -extern SDLWiperStatus const SDLWiperStatusManualFlick; - -/** - * Wiper is in wash mode - */ -extern SDLWiperStatus const SDLWiperStatusWash; - -/** - * Wiper is on low automatically - */ -extern SDLWiperStatus const SDLWiperStatusAutomaticLow; - -/** - * Wiper is on high automatically - */ -extern SDLWiperStatus const SDLWiperStatusAutomaticHigh; - -/** - * Wiper is performing a courtesy wipe - */ -extern SDLWiperStatus const SDLWiperStatusCourtesyWipe; - -/** - * Wiper is on automatic adjust - */ -extern SDLWiperStatus const SDLWiperStatusAutomaticAdjust; - -/** - * Wiper is stalled - */ -extern SDLWiperStatus const SDLWiperStatusStalled; - -/** - * Wiper data is not available - */ -extern SDLWiperStatus const SDLWiperStatusNoDataExists; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWiperStatus.m b/Pods/SmartDeviceLink/SmartDeviceLink/SDLWiperStatus.m deleted file mode 100644 index 8f62e05..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SDLWiperStatus.m +++ /dev/null @@ -1,21 +0,0 @@ -// SDLWiperStatus.m -// - - -#import "SDLWiperStatus.h" - -SDLWiperStatus const SDLWiperStatusOff = @"OFF"; -SDLWiperStatus const SDLWiperStatusAutomaticOff = @"AUTO_OFF"; -SDLWiperStatus const SDLWiperStatusOffMoving = @"OFF_MOVING"; -SDLWiperStatus const SDLWiperStatusManualIntervalOff = @"MAN_INT_OFF"; -SDLWiperStatus const SDLWiperStatusManualIntervalOn = @"MAN_INT_ON"; -SDLWiperStatus const SDLWiperStatusManualLow = @"MAN_LOW"; -SDLWiperStatus const SDLWiperStatusManualHigh = @"MAN_HIGH"; -SDLWiperStatus const SDLWiperStatusManualFlick = @"MAN_FLICK"; -SDLWiperStatus const SDLWiperStatusWash = @"WASH"; -SDLWiperStatus const SDLWiperStatusAutomaticLow = @"AUTO_LOW"; -SDLWiperStatus const SDLWiperStatusAutomaticHigh = @"AUTO_HIGH"; -SDLWiperStatus const SDLWiperStatusCourtesyWipe = @"COURTESYWIPE"; -SDLWiperStatus const SDLWiperStatusAutomaticAdjust = @"AUTO_ADJUST"; -SDLWiperStatus const SDLWiperStatusStalled = @"STALLED"; -SDLWiperStatus const SDLWiperStatusNoDataExists = @"NO_DATA_EXISTS"; diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/SmartDeviceLink.h b/Pods/SmartDeviceLink/SmartDeviceLink/SmartDeviceLink.h deleted file mode 100644 index 177d60b..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/SmartDeviceLink.h +++ /dev/null @@ -1,487 +0,0 @@ -// SmartDeviceLink.h -// - -#import - -/// Project version number for SmartDeviceLink. -FOUNDATION_EXPORT double SmartDeviceLinkVersionNumber; - -/// Project version string for SmartDeviceLink. -FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; - -/***** RPCs *****/ -// Superclasses -#import "SDLEnum.h" -#import "SDLRPCMessage.h" -#import "SDLRPCNotification.h" -#import "SDLRPCRequest.h" -#import "SDLRPCResponse.h" -#import "SDLRPCStruct.h" - -// Requests -#import "SDLAddCommand.h" -#import "SDLAddSubMenu.h" -#import "SDLAlert.h" -#import "SDLAlertManeuver.h" -#import "SDLButtonPress.h" -#import "SDLCancelInteraction.h" -#import "SDLChangeRegistration.h" -#import "SDLCloseApplication.h" -#import "SDLCreateInteractionChoiceSet.h" -#import "SDLCreateWindow.h" -#import "SDLDeleteCommand.h" -#import "SDLDeleteFile.h" -#import "SDLDeleteInteractionChoiceSet.h" -#import "SDLDeleteSubMenu.h" -#import "SDLDeleteWindow.h" -#import "SDLDiagnosticMessage.h" -#import "SDLDialNumber.h" -#import "SDLEncodedSyncPData.h" -#import "SDLEndAudioPassThru.h" -#import "SDLGetCloudAppProperties.h" -#import "SDLGetAppServiceData.h" -#import "SDLGetDTCs.h" -#import "SDLGetFile.h" -#import "SDLGetInteriorVehicleData.h" -#import "SDLGetInteriorVehicleDataConsent.h" -#import "SDLGetSystemCapability.h" -#import "SDLGetVehicleData.h" -#import "SDLGetWayPoints.h" -#import "SDLListFiles.h" -#import "SDLPerformAppServiceInteraction.h" -#import "SDLPerformAudioPassThru.h" -#import "SDLPerformInteraction.h" -#import "SDLPublishAppService.h" -#import "SDLPutFile.h" -#import "SDLReadDID.h" -#import "SDLRegisterAppInterface.h" -#import "SDLResetGlobalProperties.h" -#import "SDLScrollableMessage.h" -#import "SDLSendHapticData.h" -#import "SDLSendLocation.h" -#import "SDLSetAppIcon.h" -#import "SDLSetCloudAppProperties.h" -#import "SDLSetDisplayLayout.h" -#import "SDLSetGlobalProperties.h" -#import "SDLSetInteriorVehicleData.h" -#import "SDLSetMediaClockTimer.h" -#import "SDLShow.h" -#import "SDLShowAppMenu.h" -#import "SDLShowConstantTBT.h" -#import "SDLSlider.h" -#import "SDLSpeak.h" -#import "SDLSubscribeButton.h" -#import "SDLSubscribeVehicleData.h" -#import "SDLSubscribeWayPoints.h" -#import "SDLSyncPData.h" -#import "SDLSystemRequest.h" -#import "SDLUnpublishAppService.h" -#import "SDLReleaseInteriorVehicleDataModule.h" -#import "SDLUnregisterAppInterface.h" -#import "SDLUnsubscribeButton.h" -#import "SDLUnsubscribeVehicleData.h" -#import "SDLUnsubscribeWayPoints.h" -#import "SDLUpdateTurnList.h" - -// Responses -#import "SDLAddCommandResponse.h" -#import "SDLAddSubMenuResponse.h" -#import "SDLAlertManeuverResponse.h" -#import "SDLAlertResponse.h" -#import "SDLButtonPressResponse.h" -#import "SDLCancelInteractionResponse.h" -#import "SDLChangeRegistrationResponse.h" -#import "SDLCloseApplicationResponse.h" -#import "SDLCreateInteractionChoiceSetResponse.h" -#import "SDLCreateWindowResponse.h" -#import "SDLDeleteCommandResponse.h" -#import "SDLDeleteFileResponse.h" -#import "SDLDeleteInteractionChoiceSetResponse.h" -#import "SDLDeleteSubMenuResponse.h" -#import "SDLDeleteWindowResponse.h" -#import "SDLDiagnosticMessageResponse.h" -#import "SDLDialNumberResponse.h" -#import "SDLEncodedSyncPDataResponse.h" -#import "SDLEndAudioPassThruResponse.h" -#import "SDLGenericResponse.h" -#import "SDLGetCloudAppPropertiesResponse.h" -#import "SDLGetAppServiceDataResponse.h" -#import "SDLGetDTCsResponse.h" -#import "SDLGetFileResponse.h" -#import "SDLGetInteriorVehicleDataConsentResponse.h" -#import "SDLGetInteriorVehicleDataResponse.h" -#import "SDLGetSystemCapabilityResponse.h" -#import "SDLGetVehicleDataResponse.h" -#import "SDLGetWayPointsResponse.h" -#import "SDLListFilesResponse.h" -#import "SDLPerformAppServiceInteractionResponse.h" -#import "SDLPerformAudioPassThruResponse.h" -#import "SDLPerformInteractionResponse.h" -#import "SDLPublishAppServiceResponse.h" -#import "SDLPutFileResponse.h" -#import "SDLReadDIDResponse.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLResetGlobalPropertiesResponse.h" -#import "SDLScrollableMessageResponse.h" -#import "SDLSendHapticDataResponse.h" -#import "SDLSendLocationResponse.h" -#import "SDLSetAppIconResponse.h" -#import "SDLSetCloudAppPropertiesResponse.h" -#import "SDLSetDisplayLayoutResponse.h" -#import "SDLSetGlobalPropertiesResponse.h" -#import "SDLSetInteriorVehicleDataResponse.h" -#import "SDLSetMediaClockTimerResponse.h" -#import "SDLShowConstantTBTResponse.h" -#import "SDLShowResponse.h" -#import "SDLShowAppMenuResponse.h" -#import "SDLSliderResponse.h" -#import "SDLSpeakResponse.h" -#import "SDLSubscribeButtonResponse.h" -#import "SDLSubscribeVehicleDataResponse.h" -#import "SDLSubscribeWayPointsResponse.h" -#import "SDLSyncPDataResponse.h" -#import "SDLUnpublishAppServiceResponse.h" -#import "SDLReleaseInteriorVehicleDataModuleResponse.h" -#import "SDLUnregisterAppInterfaceResponse.h" -#import "SDLUnsubscribeButtonResponse.h" -#import "SDLUnsubscribeVehicleDataResponse.h" -#import "SDLUnsubscribeWayPointsResponse.h" -#import "SDLUpdateTurnListResponse.h" - -// Notifications -#import "SDLOnAppInterfaceUnregistered.h" -#import "SDLOnAppServiceData.h" -#import "SDLOnAudioPassThru.h" -#import "SDLOnButtonEvent.h" -#import "SDLOnButtonPress.h" -#import "SDLOnCommand.h" -#import "SDLOnDriverDistraction.h" -#import "SDLOnEncodedSyncPData.h" -#import "SDLOnHMIStatus.h" -#import "SDLOnHashChange.h" -#import "SDLOnInteriorVehicleData.h" -#import "SDLOnKeyboardInput.h" -#import "SDLOnLanguageChange.h" -#import "SDLOnLockScreenStatus.h" -#import "SDLOnPermissionsChange.h" -#import "SDLOnRCStatus.h" -#import "SDLOnSyncPData.h" -#import "SDLOnSystemCapabilityUpdated.h" -#import "SDLOnSystemRequest.h" -#import "SDLOnTBTClientState.h" -#import "SDLOnTouchEvent.h" -#import "SDLOnVehicleData.h" -#import "SDLOnWayPointChange.h" - -// Structs -#import "SDLAirbagStatus.h" -#import "SDLAppInfo.h" -#import "SDLAppServiceCapability.h" -#import "SDLAppServiceData.h" -#import "SDLAppServiceManifest.h" -#import "SDLAppServiceRecord.h" -#import "SDLAppServicesCapabilities.h" -#import "SDLAudioControlData.h" -#import "SDLAudioControlCapabilities.h" -#import "SDLAudioPassThruCapabilities.h" -#import "SDLBeltStatus.h" -#import "SDLBodyInformation.h" -#import "SDLButtonCapabilities.h" -#import "SDLChoice.h" -#import "SDLClusterModeStatus.h" -#import "SDLClimateControlCapabilities.h" -#import "SDLClimateControlData.h" -#import "SDLCloudAppProperties.h" -#import "SDLDIDResult.h" -#import "SDLDateTime.h" -#import "SDLDeviceInfo.h" -#import "SDLDeviceStatus.h" -#import "SDLDisplayCapabilities.h" -#import "SDLDisplayCapability.h" -#import "SDLECallInfo.h" -#import "SDLEmergencyEvent.h" -#import "SDLFuelRange.h" -#import "SDLEqualizerSettings.h" -#import "SDLGPSData.h" -#import "SDLGrid.h" -#import "SDLHapticRect.h" -#import "SDLHMICapabilities.h" -#import "SDLHMIPermissions.h" -#import "SDLHMISettingsControlData.h" -#import "SDLHMISettingsControlCapabilities.h" -#import "SDLHeadLampStatus.h" -#import "SDLImage.h" -#import "SDLImageField.h" -#import "SDLImageResolution.h" -#import "SDLKeyboardProperties.h" -#import "SDLLightCapabilities.h" -#import "SDLLightControlCapabilities.h" -#import "SDLLightControlData.h" -#import "SDLLightState.h" -#import "SDLLocationCoordinate.h" -#import "SDLLocationDetails.h" -#import "SDLMassageCushionFirmness.h" -#import "SDLMassageModeData.h" -#import "SDLMediaServiceData.h" -#import "SDLMediaServiceManifest.h" -#import "SDLMenuParams.h" -#import "SDLMetadataTags.h" -#import "SDLModuleData.h" -#import "SDLModuleInfo.h" -#import "SDLMyKey.h" -#import "SDLNavigationCapability.h" -#import "SDLNavigationInstruction.h" -#import "SDLNavigationServiceData.h" -#import "SDLNavigationServiceManifest.h" -#import "SDLOasisAddress.h" -#import "SDLParameterPermissions.h" -#import "SDLPermissionItem.h" -#import "SDLPhoneCapability.h" -#import "SDLPresetBankCapabilities.h" -#import "SDLRadioControlCapabilities.h" -#import "SDLRadioControlData.h" -#import "SDLRDSData.h" -#import "SDLRectangle.h" -#import "SDLRemoteControlCapabilities.h" -#import "SDLRGBColor.h" -#import "SDLScreenParams.h" -#import "SDLSeatControlCapabilities.h" -#import "SDLSeatControlData.h" -#import "SDLSeatMemoryAction.h" -#import "SDLSeatLocation.h" -#import "SDLSeatLocationCapability.h" -#import "SDLSingleTireStatus.h" -#import "SDLSISData.h" -#import "SDLSoftButton.h" -#import "SDLSoftButtonCapabilities.h" -#import "SDLStartTime.h" -#import "SDLStationIDNumber.h" -#import "SDLSyncMsgVersion.h" -#import "SDLMsgVersion.h" -#import "SDLSystemCapability.h" -#import "SDLTTSChunk.h" -#import "SDLTemperature.h" -#import "SDLTemplateColorScheme.h" -#import "SDLTemplateConfiguration.h" -#import "SDLTextField.h" -#import "SDLTireStatus.h" -#import "SDLTouchCoord.h" -#import "SDLTouchEvent.h" -#import "SDLTouchEventCapabilities.h" -#import "SDLTurn.h" -#import "SDLVehicleDataResult.h" -#import "SDLVehicleType.h" -#import "SDLVideoStreamingCapability.h" -#import "SDLVideoStreamingFormat.h" -#import "SDLVrHelpItem.h" -#import "SDLWeatherAlert.h" -#import "SDLWeatherData.h" -#import "SDLWeatherServiceData.h" -#import "SDLWeatherServiceManifest.h" -#import "SDLWindowCapability.h" -#import "SDLWindowTypeCapabilities.h" - -// Enums -#import "SDLAmbientLightStatus.h" -#import "SDLAppHMIType.h" -#import "SDLAppInterfaceUnregisteredReason.h" -#import "SDLAppServiceType.h" -#import "SDLAudioStreamingState.h" -#import "SDLAudioStreamingIndicator.h" -#import "SDLAudioType.h" -#import "SDLBitsPerSample.h" -#import "SDLButtonEventMode.h" -#import "SDLButtonName.h" -#import "SDLButtonPressMode.h" -#import "SDLCarModeStatus.h" -#import "SDLCharacterSet.h" -#import "SDLCompassDirection.h" -#import "SDLComponentVolumeStatus.h" -#import "SDLDefrostZone.h" -#import "SDLDeliveryMode.h" -#import "SDLDeviceLevelStatus.h" -#import "SDLDimension.h" -#import "SDLDirection.h" -#import "SDLDisplayMode.h" -#import "SDLDisplayType.h" -#import "SDLDistanceUnit.h" -#import "SDLDriverDistractionState.h" -#import "SDLECallConfirmationStatus.h" -#import "SDLElectronicParkBrakeStatus.h" -#import "SDLEmergencyEventType.h" -#import "SDLFileType.h" -#import "SDLFuelCutoffStatus.h" -#import "SDLFuelType.h" -#import "SDLGlobalProperty.h" -#import "SDLHMILevel.h" -#import "SDLHMIZoneCapabilities.h" -#import "SDLHybridAppPreference.h" -#import "SDLIgnitionStableStatus.h" -#import "SDLIgnitionStatus.h" -#import "SDLImageFieldName.h" -#import "SDLImageType.h" -#import "SDLInteractionMode.h" -#import "SDLKeyboardEvent.h" -#import "SDLKeyboardLayout.h" -#import "SDLKeypressMode.h" -#import "SDLLanguage.h" -#import "SDLLayoutMode.h" -#import "SDLLockScreenStatus.h" -#import "SDLLightName.h" -#import "SDLLightStatus.h" -#import "SDLMaintenanceModeStatus.h" -#import "SDLMassageCushion.h" -#import "SDLMassageMode.h" -#import "SDLMassageZone.h" -#import "SDLMediaClockFormat.h" -#import "SDLMediaType.h" -#import "SDLMenuLayout.h" -#import "SDLMenuManagerConstants.h" -#import "SDLMetadataType.h" -#import "SDLModuleType.h" -#import "SDLNavigationAction.h" -#import "SDLNavigationJunction.h" -#import "SDLPRNDL.h" -#import "SDLPermissionStatus.h" -#import "SDLPowerModeQualificationStatus.h" -#import "SDLPowerModeStatus.h" -#import "SDLPredefinedLayout.h" -#import "SDLPrerecordedSpeech.h" -#import "SDLPredefinedWindows.h" -#import "SDLPrimaryAudioSource.h" -#import "SDLRadioBand.h" -#import "SDLRadioState.h" -#import "SDLRPCMessageType.h" -#import "SDLRequestType.h" -#import "SDLResult.h" -#import "SDLSamplingRate.h" -#import "SDLSeatMemoryActionType.h" -#import "SDLServiceUpdateReason.h" -#import "SDLSupportedSeat.h" -#import "SDLSoftButtonType.h" -#import "SDLSpeechCapabilities.h" -#import "SDLStaticIconName.h" -#import "SDLSystemAction.h" -#import "SDLSystemCapabilityType.h" -#import "SDLSystemContext.h" -#import "SDLTBTState.h" -#import "SDLTemperatureUnit.h" -#import "SDLTextAlignment.h" -#import "SDLTextFieldName.h" -#import "SDLTimerMode.h" -#import "SDLTouchType.h" -#import "SDLTPMS.h" -#import "SDLTriggerSource.h" -#import "SDLTurnSignal.h" -#import "SDLUpdateMode.h" -#import "SDLVehicleDataActiveStatus.h" -#import "SDLVehicleDataEventStatus.h" -#import "SDLVehicleDataNotificationStatus.h" -#import "SDLVehicleDataResultCode.h" -#import "SDLVehicleDataStatus.h" -#import "SDLVehicleDataType.h" -#import "SDLVentilationMode.h" -#import "SDLVideoStreamingCodec.h" -#import "SDLVideoStreamingProtocol.h" -#import "SDLVideoStreamingState.h" -#import "SDLVrCapabilities.h" -#import "SDLWarningLightStatus.h" -#import "SDLWayPointType.h" -#import "SDLWindowType.h" -#import "SDLWiperStatus.h" - -// Developer API -// Configurations -#import "SDLConfiguration.h" -#import "SDLEncryptionConfiguration.h" -#import "SDLFileManagerConfiguration.h" -#import "SDLLifecycleConfiguration.h" -#import "SDLLifecycleConfigurationUpdate.h" -#import "SDLLockScreenConfiguration.h" -#import "SDLStreamingMediaConfiguration.h" - -// Encryption -#import "SDLProtocolConstants.h" -#import "SDLServiceEncryptionDelegate.h" - -// Streaming -#import "SDLAudioFile.h" -#import "SDLAudioStreamManager.h" -#import "SDLAudioStreamManagerDelegate.h" -#import "SDLCarWindowViewController.h" -#import "SDLStreamingAudioManagerType.h" -#import "SDLStreamingMediaManager.h" -#import "SDLTouchManager.h" -#import "SDLTouchManagerDelegate.h" -#import "SDLSecurityType.h" -#import "SDLStreamingMediaManagerDataSource.h" -#import "SDLStreamingVideoScaleManager.h" - -// Files -#import "SDLArtwork.h" -#import "SDLFile.h" -#import "SDLFileManager.h" -#import "SDLFileManagerConstants.h" - -// Lockscreen -#import "SDLLockScreenViewController.h" - -// Lifecycle -#import "SDLManager.h" -#import "SDLManagerDelegate.h" - -// System Capabilities -#import "SDLSystemCapabilityManager.h" - -// Permissions -#import "SDLPermissionConstants.h" -#import "SDLPermissionElement.h" -#import "SDLRPCPermissionStatus.h" -#import "SDLPermissionManager.h" - -// Screen -#import "SDLScreenManager.h" -#import "SDLSoftButtonObject.h" -#import "SDLSoftButtonState.h" - -#import "SDLMenuCell.h" -#import "SDLMenuConfiguration.h" -#import "SDLVoiceCommand.h" - -#import "SDLChoiceCell.h" -#import "SDLChoiceSet.h" -#import "SDLChoiceSetDelegate.h" -#import "SDLKeyboardDelegate.h" - -// Touches -#import "SDLPinchGesture.h" -#import "SDLTouch.h" - -// Utilities -#import "NSNumber+NumberType.h" -#import "SDLErrorConstants.h" -#import "SDLFunctionID.h" -#import "SDLRPCFunctionNames.h" -#import "SDLNotificationConstants.h" -#import "SDLStreamingMediaManagerConstants.h" -#import "SDLVersion.h" - -// Notifications -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCResponseNotification.h" -#import "SDLRPCRequestNotification.h" - -// Logger -#import "SDLLogConstants.h" -#import "SDLLogConfiguration.h" -#import "SDLLogFileModule.h" -#import "SDLLogFilter.h" -#import "SDLLogManager.h" -#import "SDLLogMacros.h" -#import "SDLLogTarget.h" -#import "SDLLogTargetAppleSystemLog.h" -#import "SDLLogTargetFile.h" -#import "SDLLogTargetOSLog.h" - -// Macros -#import "SDLMacros.h" diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.h b/Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.h deleted file mode 100644 index f2cde73..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// TestSubscribeButtonObserver.h -// SmartDeviceLink -// -// Created by Nicole on 6/22/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLSubscribeButton.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface TestSubscribeButtonObserver : NSObject - -@property (assign, nonatomic) NSUInteger selectorCalledCount; -@property (strong, nonatomic, nullable) NSMutableArray *buttonNamesReceived; -@property (strong, nonatomic, nullable) NSMutableArray *buttonErrorsReceived; -@property (strong, nonatomic, nullable) NSMutableArray *buttonEventsReceived; -@property (strong, nonatomic, nullable) NSMutableArray *buttonPressesReceived; - -- (void)buttonPressEvent; -- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName; -- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error; -- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error buttonPress:(SDLOnButtonPress *)buttonPress; -- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error buttonPress:(SDLOnButtonPress *)buttonPress buttonEvent:(SDLOnButtonEvent *)buttonEvent; - -/// An invalid selector with too many parameters -- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error buttonPress:(SDLOnButtonPress *)buttonPress buttonEvent:(SDLOnButtonEvent *)buttonEvent extraParameter:(BOOL)extraParameter; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.m b/Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.m deleted file mode 100644 index 99f9f44..0000000 --- a/Pods/SmartDeviceLink/SmartDeviceLink/TestSubscribeButtonObserver.m +++ /dev/null @@ -1,70 +0,0 @@ -// -// TestSubscribeButtonObserver.m -// SmartDeviceLink -// -// Created by Nicole on 6/22/20. -// Copyright © 2020 smartdevicelink. All rights reserved. -// - -#import "TestSubscribeButtonObserver.h" - -@implementation TestSubscribeButtonObserver - -- (instancetype)init { - self = [super init]; - if (!self) { return nil; } - - _selectorCalledCount = 0; - _buttonNamesReceived = [NSMutableArray array]; - _buttonErrorsReceived = [NSMutableArray array]; - _buttonEventsReceived = [NSMutableArray array]; - _buttonPressesReceived = [NSMutableArray array]; - - return self; -} - -- (void)buttonPressEvent { - [self sdl_saveButtonName:nil buttonError:nil buttonPress:nil buttonEvent:nil]; -} - -- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName { - [self sdl_saveButtonName:buttonName buttonError:nil buttonPress:nil buttonEvent:nil]; -} - -- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error { - [self sdl_saveButtonName:buttonName buttonError:error buttonPress:nil buttonEvent:nil]; -} - -- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error buttonPress:(SDLOnButtonPress *)buttonPress { - [self sdl_saveButtonName:buttonName buttonError:error buttonPress:buttonPress buttonEvent:nil]; -} - -- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error buttonPress:(SDLOnButtonPress *)buttonPress buttonEvent:(SDLOnButtonEvent *)buttonEvent { - [self sdl_saveButtonName:buttonName buttonError:error buttonPress:buttonPress buttonEvent:buttonEvent]; -} - -- (void)buttonPressEventWithButtonName:(SDLButtonName)buttonName error:(NSError *)error buttonPress:(SDLOnButtonPress *)buttonPress buttonEvent:(SDLOnButtonEvent *)buttonEvent extraParameter:(BOOL)extraParameter { - [self sdl_saveButtonName:buttonName buttonError:error buttonPress:buttonPress buttonEvent:buttonEvent]; -} - -- (void)sdl_saveButtonName:(nullable SDLButtonName)buttonName buttonError:(nullable NSError *)buttonError buttonPress:(nullable SDLOnButtonPress *)buttonPress buttonEvent:(nullable SDLOnButtonEvent *)buttonEvent { - self.selectorCalledCount++; - - if (buttonName != nil) { - [self.buttonNamesReceived addObject:buttonName]; - } - - if (buttonError != nil) { - [self.buttonErrorsReceived addObject:buttonError]; - } - - if (buttonPress != nil) { - [self.buttonPressesReceived addObject:buttonPress]; - } - - if (buttonEvent != nil) { - [self.buttonEventsReceived addObject:buttonEvent]; - } -} - -@end diff --git a/Pods/Target Support Files/BiSON/BiSON-Info.plist b/Pods/Target Support Files/BiSON/BiSON-Info.plist deleted file mode 100644 index 2a9158a..0000000 --- a/Pods/Target Support Files/BiSON/BiSON-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.2.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/BiSON/BiSON-dummy.m b/Pods/Target Support Files/BiSON/BiSON-dummy.m deleted file mode 100644 index 6bd54ea..0000000 --- a/Pods/Target Support Files/BiSON/BiSON-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_BiSON : NSObject -@end -@implementation PodsDummy_BiSON -@end diff --git a/Pods/Target Support Files/BiSON/BiSON-prefix.pch b/Pods/Target Support Files/BiSON/BiSON-prefix.pch deleted file mode 100644 index beb2a24..0000000 --- a/Pods/Target Support Files/BiSON/BiSON-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/Pods/Target Support Files/BiSON/BiSON-umbrella.h b/Pods/Target Support Files/BiSON/BiSON-umbrella.h deleted file mode 100644 index b8ca74b..0000000 --- a/Pods/Target Support Files/BiSON/BiSON-umbrella.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "bson_array.h" -#import "bson_object.h" -#import "bson_util.h" -#import "emhashmap/emhashmap.h" - -FOUNDATION_EXPORT double BiSONVersionNumber; -FOUNDATION_EXPORT const unsigned char BiSONVersionString[]; - diff --git a/Pods/Target Support Files/BiSON/BiSON.debug.xcconfig b/Pods/Target Support Files/BiSON/BiSON.debug.xcconfig deleted file mode 100644 index f7ba363..0000000 --- a/Pods/Target Support Files/BiSON/BiSON.debug.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BiSON -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/BiSON -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/BiSON/BiSON.modulemap b/Pods/Target Support Files/BiSON/BiSON.modulemap deleted file mode 100644 index 603845a..0000000 --- a/Pods/Target Support Files/BiSON/BiSON.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module BiSON { - umbrella header "BiSON-umbrella.h" - - export * - module * { export * } -} diff --git a/Pods/Target Support Files/BiSON/BiSON.release.xcconfig b/Pods/Target Support Files/BiSON/BiSON.release.xcconfig deleted file mode 100644 index f7ba363..0000000 --- a/Pods/Target Support Files/BiSON/BiSON.release.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BiSON -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/BiSON -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/BiSON/BiSON.xcconfig b/Pods/Target Support Files/BiSON/BiSON.xcconfig deleted file mode 100644 index 6742ab2..0000000 --- a/Pods/Target Support Files/BiSON/BiSON.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BiSON -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/BiSON -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/BiSON/Info.plist b/Pods/Target Support Files/BiSON/Info.plist deleted file mode 100644 index d60f138..0000000 --- a/Pods/Target Support Files/BiSON/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.1.1 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/Pods-MobileWeather/Info.plist b/Pods/Target Support Files/Pods-MobileWeather/Info.plist deleted file mode 100644 index 2243fe6..0000000 --- a/Pods/Target Support Files/Pods-MobileWeather/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-Info.plist b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-Info.plist deleted file mode 100644 index 2243fe6..0000000 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.markdown b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.markdown deleted file mode 100644 index 7f0c139..0000000 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.markdown +++ /dev/null @@ -1,66 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: - -## BiSON - -Copyright (c) 2017 SmartDeviceLink Consortium, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of SmartDeviceLink Consortium, Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -## SmartDeviceLink - -Copyright (c) 2017 - 2020 SmartDeviceLink Consortium, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of SmartDeviceLink Consortium, Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.plist b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.plist deleted file mode 100644 index d7e4e05..0000000 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-acknowledgements.plist +++ /dev/null @@ -1,104 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2017 SmartDeviceLink Consortium, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of SmartDeviceLink Consortium, Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - License - New BSD - Title - BiSON - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2017 - 2020 SmartDeviceLink Consortium, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of SmartDeviceLink Consortium, Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - License - New BSD - Title - SmartDeviceLink - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-dummy.m b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-dummy.m deleted file mode 100644 index 777ce7b..0000000 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_MobileWeather : NSObject -@end -@implementation PodsDummy_Pods_MobileWeather -@end diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-frameworks.sh b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-frameworks.sh deleted file mode 100755 index b20ac7b..0000000 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-frameworks.sh +++ /dev/null @@ -1,209 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -function on_error { - echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" -} -trap 'on_error $LINENO' ERR - -if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then - # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy - # frameworks to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" -SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" - -# Used as a return value for each invocation of `strip_invalid_archs` function. -STRIP_BINARY_RETVAL=0 - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -# Copies and strips a vendored framework -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" - fi - - # Use filter instead of exclude so missing patterns don't throw errors. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - elif [ -L "${binary}" ]; then - echo "Destination binary is symlinked..." - dirname="$(dirname "${binary}")" - binary="${dirname}/$(readlink "${binary}")" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} - -# Copies and strips a vendored dSYM -install_dsym() { - local source="$1" - warn_missing_arch=${2:-true} - if [ -r "$source" ]; then - # Copy the dSYM into the targets temp dir. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" - - local basename - basename="$(basename -s .dSYM "$source")" - binary_name="$(ls "$source/Contents/Resources/DWARF")" - binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then - strip_invalid_archs "$binary" "$warn_missing_arch" - fi - - if [[ $STRIP_BINARY_RETVAL == 1 ]]; then - # Move the stripped file into its final destination. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" - else - # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. - touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" - fi - fi -} - -# Copies the bcsymbolmap files of a vendored framework -install_bcsymbolmap() { - local bcsymbolmap_path="$1" - local destination="${BUILT_PRODUCTS_DIR}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identity - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - warn_missing_arch=${2:-true} - # Get architectures for current target binary - binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" - # Intersect them with the architectures we are building for - intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" - # If there are no archs supported by this binary then warn the user - if [[ -z "$intersected_archs" ]]; then - if [[ "$warn_missing_arch" == "true" ]]; then - echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." - fi - STRIP_BINARY_RETVAL=0 - return - fi - stripped="" - for arch in $binary_archs; do - if ! [[ "${ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi - STRIP_BINARY_RETVAL=1 -} - -install_artifact() { - artifact="$1" - base="$(basename "$artifact")" - case $base in - *.framework) - install_framework "$artifact" - ;; - *.dSYM) - # Suppress arch warnings since XCFrameworks will include many dSYM files - install_dsym "$artifact" "false" - ;; - *.bcsymbolmap) - install_bcsymbolmap "$artifact" - ;; - *) - echo "error: Unrecognized artifact "$artifact"" - ;; - esac -} - -copy_artifacts() { - file_list="$1" - while read artifact; do - install_artifact "$artifact" - done <$file_list -} - -ARTIFACT_LIST_FILE="${BUILT_PRODUCTS_DIR}/cocoapods-artifacts-${CONFIGURATION}.txt" -if [ -r "${ARTIFACT_LIST_FILE}" ]; then - copy_artifacts "${ARTIFACT_LIST_FILE}" -fi - -if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/BiSON/BiSON.framework" - install_framework "${BUILT_PRODUCTS_DIR}/SmartDeviceLink/SmartDeviceLink.framework" -fi -if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/BiSON/BiSON.framework" - install_framework "${BUILT_PRODUCTS_DIR}/SmartDeviceLink/SmartDeviceLink.framework" -fi -if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - wait -fi diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-resources.sh b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-resources.sh deleted file mode 100755 index 345301f..0000000 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-resources.sh +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then - # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy - # resources to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - -RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt -> "$RESOURCES_TO_COPY" - -XCASSET_FILES=() - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -case "${TARGETED_DEVICE_FAMILY:-}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - 3) - TARGET_DEVICE_ARGS="--target-device tv" - ;; - 4) - TARGET_DEVICE_ARGS="--target-device watch" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; -esac - -install_resource() -{ - if [[ "$1" = /* ]] ; then - RESOURCE_PATH="$1" - else - RESOURCE_PATH="${PODS_ROOT}/$1" - fi - if [[ ! -e "$RESOURCE_PATH" ]] ; then - cat << EOM -error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. -EOM - exit 1 - fi - case $RESOURCE_PATH in - *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true - ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} - ;; - *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true - ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} - ;; - *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true - mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - ;; - *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" - ;; - *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" - ;; - *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true - xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" - ;; - *.xcassets) - ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" - XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") - ;; - *) - echo "$RESOURCE_PATH" || true - echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" - ;; - esac -} - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then - mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi -rm -f "$RESOURCES_TO_COPY" - -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] -then - # Find all other xcassets (this unfortunately includes those of path pods and other targets). - OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) - while read line; do - if [[ $line != "${PODS_ROOT}*" ]]; then - XCASSET_FILES+=("$line") - fi - done <<<"$OTHER_XCASSETS" - - if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - else - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" - fi -fi diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-umbrella.h b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-umbrella.h deleted file mode 100644 index 4dc67c8..0000000 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double Pods_MobileWeatherVersionNumber; -FOUNDATION_EXPORT const unsigned char Pods_MobileWeatherVersionString[]; - diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.debug.xcconfig b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.debug.xcconfig deleted file mode 100644 index c8751d9..0000000 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.debug.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON/BiSON.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink/SmartDeviceLink.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "BiSON" -framework "SmartDeviceLink" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.modulemap b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.modulemap deleted file mode 100644 index a93ef84..0000000 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Pods_MobileWeather { - umbrella header "Pods-MobileWeather-umbrella.h" - - export * - module * { export * } -} diff --git a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig b/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig deleted file mode 100644 index c8751d9..0000000 --- a/Pods/Target Support Files/Pods-MobileWeather/Pods-MobileWeather.release.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON/BiSON.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink/SmartDeviceLink.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "BiSON" -framework "SmartDeviceLink" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/SmartDeviceLink/Info.plist b/Pods/Target Support Files/SmartDeviceLink/Info.plist deleted file mode 100644 index 2eb204d..0000000 --- a/Pods/Target Support Files/SmartDeviceLink/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 6.1.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-Info.plist b/Pods/Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-Info.plist deleted file mode 100644 index 57b83e4..0000000 --- a/Pods/Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - 6.1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist b/Pods/Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist deleted file mode 100644 index f19680e..0000000 --- a/Pods/Target Support Files/SmartDeviceLink/ResourceBundle-SmartDeviceLink-SmartDeviceLink-Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - 6.6.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist deleted file mode 100644 index 3fe24c0..0000000 --- a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 6.6.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-dummy.m b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-dummy.m deleted file mode 100644 index 4dcb7f3..0000000 --- a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_SmartDeviceLink : NSObject -@end -@implementation PodsDummy_SmartDeviceLink -@end diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-prefix.pch b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-prefix.pch deleted file mode 100644 index beb2a24..0000000 --- a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-umbrella.h b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-umbrella.h deleted file mode 100644 index 142d7d9..0000000 --- a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink-umbrella.h +++ /dev/null @@ -1,450 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "NSNumber+NumberType.h" -#import "SDLAddCommand.h" -#import "SDLAddCommandResponse.h" -#import "SDLAddSubMenu.h" -#import "SDLAddSubMenuResponse.h" -#import "SDLAirbagStatus.h" -#import "SDLAlert.h" -#import "SDLAlertManeuver.h" -#import "SDLAlertManeuverResponse.h" -#import "SDLAlertResponse.h" -#import "SDLAppServiceCapability.h" -#import "SDLAppServiceData.h" -#import "SDLAppServiceManifest.h" -#import "SDLAppServiceRecord.h" -#import "SDLAppServicesCapabilities.h" -#import "SDLAppServiceType.h" -#import "SDLButtonPressResponse.h" -#import "SDLAmbientLightStatus.h" -#import "SDLAppHMIType.h" -#import "SDLAppInfo.h" -#import "SDLAppInterfaceUnregisteredReason.h" -#import "SDLArtwork.h" -#import "SDLAudioControlData.h" -#import "SDLAudioControlCapabilities.h" -#import "SDLAudioPassThruCapabilities.h" -#import "SDLAudioFile.h" -#import "SDLAudioStreamingState.h" -#import "SDLAudioStreamingIndicator.h" -#import "SDLAudioStreamManager.h" -#import "SDLAudioStreamManagerDelegate.h" -#import "SDLStreamingAudioManagerType.h" -#import "SDLAudioType.h" -#import "SDLBeltStatus.h" -#import "SDLBitsPerSample.h" -#import "SDLBodyInformation.h" -#import "SDLButtonCapabilities.h" -#import "SDLButtonEventMode.h" -#import "SDLButtonName.h" -#import "SDLButtonPress.h" -#import "SDLButtonPressMode.h" -#import "SDLCancelInteraction.h" -#import "SDLCancelInteractionResponse.h" -#import "SDLCarModeStatus.h" -#import "SDLCarWindowViewController.h" -#import "SDLChangeRegistration.h" -#import "SDLChangeRegistrationResponse.h" -#import "SDLCharacterSet.h" -#import "SDLChoice.h" -#import "SDLChoiceCell.h" -#import "SDLChoiceSet.h" -#import "SDLChoiceSetDelegate.h" -#import "SDLClimateControlCapabilities.h" -#import "SDLClimateControlData.h" -#import "SDLCloseApplication.h" -#import "SDLCloseApplicationResponse.h" -#import "SDLCloudAppProperties.h" -#import "SDLClusterModeStatus.h" -#import "SDLCompassDirection.h" -#import "SDLComponentVolumeStatus.h" -#import "SDLConfiguration.h" -#import "SDLCreateInteractionChoiceSet.h" -#import "SDLCreateInteractionChoiceSetResponse.h" -#import "SDLCreateWindow.h" -#import "SDLCreateWindowResponse.h" -#import "SDLDateTime.h" -#import "SDLDefrostZone.h" -#import "SDLDeleteCommand.h" -#import "SDLDeleteCommandResponse.h" -#import "SDLDeleteFile.h" -#import "SDLDeleteFileResponse.h" -#import "SDLDeleteInteractionChoiceSet.h" -#import "SDLDeleteInteractionChoiceSetResponse.h" -#import "SDLDeleteSubMenu.h" -#import "SDLDeleteSubMenuResponse.h" -#import "SDLDeleteWindow.h" -#import "SDLDeleteWindowResponse.h" -#import "SDLDeliveryMode.h" -#import "SDLDeviceInfo.h" -#import "SDLDeviceLevelStatus.h" -#import "SDLDeviceStatus.h" -#import "SDLDiagnosticMessage.h" -#import "SDLDiagnosticMessageResponse.h" -#import "SDLDialNumber.h" -#import "SDLDialNumberResponse.h" -#import "SDLDIDResult.h" -#import "SDLDimension.h" -#import "SDLDirection.h" -#import "SDLDisplayCapability.h" -#import "SDLDisplayCapabilities.h" -#import "SDLDisplayMode.h" -#import "SDLDisplayType.h" -#import "SDLDistanceUnit.h" -#import "SDLDriverDistractionState.h" -#import "SDLECallConfirmationStatus.h" -#import "SDLECallInfo.h" -#import "SDLElectronicParkBrakeStatus.h" -#import "SDLEncryptionConfiguration.h" -#import "SDLEmergencyEvent.h" -#import "SDLEmergencyEventType.h" -#import "SDLEncodedSyncPData.h" -#import "SDLEncodedSyncPDataResponse.h" -#import "SDLEndAudioPassThru.h" -#import "SDLEndAudioPassThruResponse.h" -#import "SDLEqualizerSettings.h" -#import "SDLEnum.h" -#import "SDLErrorConstants.h" -#import "SDLFile.h" -#import "SDLFileManager.h" -#import "SDLFileManagerConfiguration.h" -#import "SDLFileManagerConstants.h" -#import "SDLFileType.h" -#import "SDLFuelCutoffStatus.h" -#import "SDLFuelRange.h" -#import "SDLFuelType.h" -#import "SDLFunctionID.h" -#import "SDLGenericResponse.h" -#import "SDLGetAppServiceData.h" -#import "SDLGetAppServiceDataResponse.h" -#import "SDLGetDTCs.h" -#import "SDLGetCloudAppProperties.h" -#import "SDLGetCloudAppPropertiesResponse.h" -#import "SDLGetDTCsResponse.h" -#import "SDLGetFile.h" -#import "SDLGetFileResponse.h" -#import "SDLGetInteriorVehicleData.h" -#import "SDLGetInteriorVehicleDataConsent.h" -#import "SDLGetInteriorVehicleDataConsentResponse.h" -#import "SDLGetInteriorVehicleDataResponse.h" -#import "SDLGetSystemCapability.h" -#import "SDLGetSystemCapabilityResponse.h" -#import "SDLGetVehicleData.h" -#import "SDLGetVehicleDataResponse.h" -#import "SDLGetWayPoints.h" -#import "SDLGetWayPointsResponse.h" -#import "SDLGlobalProperty.h" -#import "SDLGPSData.h" -#import "SDLGrid.h" -#import "SDLHapticRect.h" -#import "SDLHeadLampStatus.h" -#import "SDLHMICapabilities.h" -#import "SDLHMILevel.h" -#import "SDLHMIPermissions.h" -#import "SDLHMISettingsControlCapabilities.h" -#import "SDLHMISettingsControlData.h" -#import "SDLHMIZoneCapabilities.h" -#import "SDLHybridAppPreference.h" -#import "SDLIgnitionStableStatus.h" -#import "SDLIgnitionStatus.h" -#import "SDLImage.h" -#import "SDLImageField.h" -#import "SDLImageFieldName.h" -#import "SDLImageResolution.h" -#import "SDLImageType.h" -#import "SDLInteractionMode.h" -#import "SDLKeyboardDelegate.h" -#import "SDLKeyboardEvent.h" -#import "SDLKeyboardLayout.h" -#import "SDLKeyboardProperties.h" -#import "SDLKeypressMode.h" -#import "SDLLanguage.h" -#import "SDLLayoutMode.h" -#import "SDLLifecycleConfiguration.h" -#import "SDLLifecycleConfigurationUpdate.h" -#import "SDLLightCapabilities.h" -#import "SDLLightControlCapabilities.h" -#import "SDLLightControlData.h" -#import "SDLLightName.h" -#import "SDLLightState.h" -#import "SDLLightStatus.h" -#import "SDLListFiles.h" -#import "SDLListFilesResponse.h" -#import "SDLLocationCoordinate.h" -#import "SDLLocationDetails.h" -#import "SDLLockScreenConfiguration.h" -#import "SDLLockScreenStatus.h" -#import "SDLLockScreenViewController.h" -#import "SDLLogConfiguration.h" -#import "SDLLogConstants.h" -#import "SDLLogFileModule.h" -#import "SDLLogFilter.h" -#import "SDLLogMacros.h" -#import "SDLLogManager.h" -#import "SDLLogTarget.h" -#import "SDLLogTargetAppleSystemLog.h" -#import "SDLLogTargetFile.h" -#import "SDLLogTargetOSLog.h" -#import "SDLMacros.h" -#import "SDLMaintenanceModeStatus.h" -#import "SDLManager.h" -#import "SDLManagerDelegate.h" -#import "SDLMassageCushionFirmness.h" -#import "SDLMassageModeData.h" -#import "SDLMassageCushion.h" -#import "SDLMassageMode.h" -#import "SDLMassageZone.h" -#import "SDLMediaClockFormat.h" -#import "SDLMediaServiceData.h" -#import "SDLMediaServiceManifest.h" -#import "SDLMediaType.h" -#import "SDLMenuCell.h" -#import "SDLMenuConfiguration.h" -#import "SDLMenuLayout.h" -#import "SDLMenuManagerConstants.h" -#import "SDLMenuParams.h" -#import "SDLMetadataTags.h" -#import "SDLMetadataType.h" -#import "SDLModuleData.h" -#import "SDLModuleInfo.h" -#import "SDLModuleType.h" -#import "SDLMyKey.h" -#import "SDLNavigationAction.h" -#import "SDLNavigationCapability.h" -#import "SDLNavigationInstruction.h" -#import "SDLNavigationJunction.h" -#import "SDLNavigationServiceData.h" -#import "SDLNavigationServiceManifest.h" -#import "SDLNotificationConstants.h" -#import "SDLOasisAddress.h" -#import "SDLOnAppInterfaceUnregistered.h" -#import "SDLOnAppServiceData.h" -#import "SDLOnAudioPassThru.h" -#import "SDLOnButtonEvent.h" -#import "SDLOnButtonPress.h" -#import "SDLOnCommand.h" -#import "SDLOnDriverDistraction.h" -#import "SDLOnEncodedSyncPData.h" -#import "SDLOnHashChange.h" -#import "SDLOnInteriorVehicleData.h" -#import "SDLOnHMIStatus.h" -#import "SDLOnKeyboardInput.h" -#import "SDLOnLanguageChange.h" -#import "SDLOnLockScreenStatus.h" -#import "SDLOnPermissionsChange.h" -#import "SDLOnRCStatus.h" -#import "SDLOnSyncPData.h" -#import "SDLOnSystemCapabilityUpdated.h" -#import "SDLOnSystemRequest.h" -#import "SDLOnTBTClientState.h" -#import "SDLOnTouchEvent.h" -#import "SDLOnVehicleData.h" -#import "SDLOnWayPointChange.h" -#import "SDLParameterPermissions.h" -#import "SDLPerformAppServiceInteraction.h" -#import "SDLPerformAppServiceInteractionResponse.h" -#import "SDLPerformAudioPassThru.h" -#import "SDLPerformAudioPassThruResponse.h" -#import "SDLPerformInteraction.h" -#import "SDLPerformInteractionResponse.h" -#import "SDLPermissionConstants.h" -#import "SDLPermissionElement.h" -#import "SDLPermissionItem.h" -#import "SDLPermissionManager.h" -#import "SDLPermissionStatus.h" -#import "SDLPhoneCapability.h" -#import "SDLPinchGesture.h" -#import "SDLPowerModeQualificationStatus.h" -#import "SDLPowerModeStatus.h" -#import "SDLPredefinedLayout.h" -#import "SDLPredefinedWindows.h" -#import "SDLPrerecordedSpeech.h" -#import "SDLPresetBankCapabilities.h" -#import "SDLPrimaryAudioSource.h" -#import "SDLPRNDL.h" -#import "SDLProtocolConstants.h" -#import "SDLPublishAppService.h" -#import "SDLPublishAppServiceResponse.h" -#import "SDLPutFile.h" -#import "SDLPutFileResponse.h" -#import "SDLRadioBand.h" -#import "SDLRadioControlCapabilities.h" -#import "SDLRadioControlData.h" -#import "SDLRadioState.h" -#import "SDLRDSData.h" -#import "SDLReadDID.h" -#import "SDLRectangle.h" -#import "SDLReadDIDResponse.h" -#import "SDLRegisterAppInterface.h" -#import "SDLRegisterAppInterfaceResponse.h" -#import "SDLRemoteControlCapabilities.h" -#import "SDLReleaseInteriorVehicleDataModule.h" -#import "SDLReleaseInteriorVehicleDataModuleResponse.h" -#import "SDLRequestType.h" -#import "SDLResetGlobalProperties.h" -#import "SDLResetGlobalPropertiesResponse.h" -#import "SDLResult.h" -#import "SDLRGBColor.h" -#import "SDLRPCFunctionNames.h" -#import "SDLRPCMessage.h" -#import "SDLRPCMessageType.h" -#import "SDLRPCNotification.h" -#import "SDLRPCNotificationNotification.h" -#import "SDLRPCPermissionStatus.h" -#import "SDLRPCRequest.h" -#import "SDLRPCRequestNotification.h" -#import "SDLRPCResponse.h" -#import "SDLRPCResponseNotification.h" -#import "SDLRPCStruct.h" -#import "SDLSamplingRate.h" -#import "SDLScreenParams.h" -#import "SDLScreenManager.h" -#import "SDLScrollableMessage.h" -#import "SDLScrollableMessageResponse.h" -#import "SDLSeatControlCapabilities.h" -#import "SDLSeatControlData.h" -#import "SDLSeatLocation.h" -#import "SDLSeatLocationCapability.h" -#import "SDLSeatMemoryAction.h" -#import "SDLSeatMemoryActionType.h" -#import "SDLSecurityType.h" -#import "SDLSendHapticData.h" -#import "SDLSendHapticDataResponse.h" -#import "SDLSendLocation.h" -#import "SDLSendLocationResponse.h" -#import "SDLServiceEncryptionDelegate.h" -#import "SDLServiceUpdateReason.h" -#import "SDLSetAppIcon.h" -#import "SDLSetAppIconResponse.h" -#import "SDLSetCloudAppProperties.h" -#import "SDLSetCloudAppPropertiesResponse.h" -#import "SDLSetDisplayLayout.h" -#import "SDLSetDisplayLayoutResponse.h" -#import "SDLSetGlobalProperties.h" -#import "SDLSetInteriorVehicleData.h" -#import "SDLSetGlobalPropertiesResponse.h" -#import "SDLSetInteriorVehicleDataResponse.h" -#import "SDLSetMediaClockTimer.h" -#import "SDLSetMediaClockTimerResponse.h" -#import "SDLShow.h" -#import "SDLShowAppMenu.h" -#import "SDLShowAppMenuResponse.h" -#import "SDLShowConstantTBT.h" -#import "SDLShowConstantTBTResponse.h" -#import "SDLShowResponse.h" -#import "SDLSingleTireStatus.h" -#import "SDLSISData.h" -#import "SDLSlider.h" -#import "SDLSliderResponse.h" -#import "SDLSoftButton.h" -#import "SDLSoftButtonCapabilities.h" -#import "SDLSoftButtonObject.h" -#import "SDLSoftButtonState.h" -#import "SDLSoftButtonType.h" -#import "SDLSpeak.h" -#import "SDLSpeakResponse.h" -#import "SDLSpeechCapabilities.h" -#import "SDLStartTime.h" -#import "SDLStaticIconName.h" -#import "SDLStationIDNumber.h" -#import "SDLStreamingMediaConfiguration.h" -#import "SDLStreamingMediaManager.h" -#import "SDLStreamingMediaManagerConstants.h" -#import "SDLStreamingMediaManagerDataSource.h" -#import "SDLStreamingVideoScaleManager.h" -#import "SDLSubscribeButton.h" -#import "SDLSubscribeButtonResponse.h" -#import "SDLSubscribeVehicleData.h" -#import "SDLSubscribeVehicleDataResponse.h" -#import "SDLSubscribeWayPoints.h" -#import "SDLSubscribeWayPointsResponse.h" -#import "SDLSupportedSeat.h" -#import "SDLSyncMsgVersion.h" -#import "SDLMsgVersion.h" -#import "SDLSyncPData.h" -#import "SDLSyncPDataResponse.h" -#import "SDLSystemAction.h" -#import "SDLSystemCapability.h" -#import "SDLSystemCapabilityManager.h" -#import "SDLSystemCapabilityType.h" -#import "SDLSystemContext.h" -#import "SDLSystemRequest.h" -#import "SDLTBTState.h" -#import "SDLTemperature.h" -#import "SDLTemperatureUnit.h" -#import "SDLTemplateConfiguration.h" -#import "SDLTemplateColorScheme.h" -#import "SDLTextAlignment.h" -#import "SDLTextField.h" -#import "SDLTextFieldName.h" -#import "SDLTimerMode.h" -#import "SDLTireStatus.h" -#import "SDLTouch.h" -#import "SDLTouchCoord.h" -#import "SDLTouchEvent.h" -#import "SDLTouchEventCapabilities.h" -#import "SDLTouchManager.h" -#import "SDLTouchManagerDelegate.h" -#import "SDLTouchType.h" -#import "SDLTPMS.h" -#import "SDLTriggerSource.h" -#import "SDLTTSChunk.h" -#import "SDLTurn.h" -#import "SDLTurnSignal.h" -#import "SDLUnpublishAppService.h" -#import "SDLUnpublishAppServiceResponse.h" -#import "SDLUnregisterAppInterface.h" -#import "SDLUnregisterAppInterfaceResponse.h" -#import "SDLUnsubscribeButton.h" -#import "SDLUnsubscribeButtonResponse.h" -#import "SDLUnsubscribeVehicleData.h" -#import "SDLUnsubscribeVehicleDataResponse.h" -#import "SDLUnsubscribeWayPoints.h" -#import "SDLUnsubscribeWayPointsResponse.h" -#import "SDLUpdateMode.h" -#import "SDLUpdateTurnList.h" -#import "SDLUpdateTurnListResponse.h" -#import "SDLVehicleDataActiveStatus.h" -#import "SDLVehicleDataEventStatus.h" -#import "SDLVehicleDataNotificationStatus.h" -#import "SDLVehicleDataResult.h" -#import "SDLVehicleDataResultCode.h" -#import "SDLVehicleDataStatus.h" -#import "SDLVehicleDataType.h" -#import "SDLVentilationMode.h" -#import "SDLVehicleType.h" -#import "SDLVersion.h" -#import "SDLVideoStreamingCapability.h" -#import "SDLVideoStreamingCodec.h" -#import "SDLVideoStreamingFormat.h" -#import "SDLVideoStreamingProtocol.h" -#import "SDLVideoStreamingState.h" -#import "SDLVoiceCommand.h" -#import "SDLVrCapabilities.h" -#import "SDLVrHelpItem.h" -#import "SDLWarningLightStatus.h" -#import "SDLWayPointType.h" -#import "SDLWeatherAlert.h" -#import "SDLWeatherData.h" -#import "SDLWeatherServiceData.h" -#import "SDLWeatherServiceManifest.h" -#import "SDLWiperStatus.h" -#import "SDLWindowCapability.h" -#import "SDLWindowType.h" -#import "SDLWindowTypeCapabilities.h" -#import "SmartDeviceLink.h" - -FOUNDATION_EXPORT double SmartDeviceLinkVersionNumber; -FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; - diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.debug.xcconfig b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.debug.xcconfig deleted file mode 100644 index e0667f8..0000000 --- a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.debug.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/SmartDeviceLink -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.modulemap b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.modulemap deleted file mode 100644 index 083d956..0000000 --- a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module SmartDeviceLink { - umbrella header "SmartDeviceLink-umbrella.h" - - export * - module * { export * } -} diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.release.xcconfig b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.release.xcconfig deleted file mode 100644 index e0667f8..0000000 --- a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.release.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/SmartDeviceLink -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.xcconfig b/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.xcconfig deleted file mode 100644 index 3fdec86..0000000 --- a/Pods/Target Support Files/SmartDeviceLink/SmartDeviceLink.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SmartDeviceLink -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BiSON" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/SmartDeviceLink -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES

      ?c%NXAYwEf2d2rh~f!D*@7kPeYc_)lhaZ7c}B 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 literal 15680 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 C`RU65 diff --git a/MobileWeather/Images.xcassets/Images/tstorms.imageset/tstorms.png b/MobileWeather/Images.xcassets/Images/tstorms.imageset/tstorms.png index bdf9d28a706dde158d7e15d8b659aed062b4f51a..1696d0ae3a2bc409ad218e0db0fa57d8bb292726 100644 GIT binary patch literal 13131 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 AmH+?% literal 6176 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 diff --git a/MobileWeather/Images.xcassets/LaunchImage.launchimage/Contents.json b/MobileWeather/Images.xcassets/LaunchImage.launchimage/Contents.json deleted file mode 100644 index fadb823..0000000 --- a/MobileWeather/Images.xcassets/LaunchImage.launchimage/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "orientation" : "portrait", - "idiom" : "iphone", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "subtype" : "retina4", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/MobileWeather/Images.xcassets/SDL/.DS_Store b/MobileWeather/Images.xcassets/SDL/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..56f14d4ca258194462da3e0906ae75b645148379 GIT binary patch literal 6148 zcmeHKJ5Iw;5S)b+k!V6k`7QtwH?X2`0xrPE2q7h;2r1}XajqOKvmYT@4iXIwnw56v zy?r~+@)TY#09)?+TVMfTPIttYhpG9w`^3&FV?;XdxJHjheBuUglj_q6=U!ri7rbLX z;%|7Hzg|SYjGo8NK{l549@An=1W_Jst zBg2j8HgpJrj06!OV&G?pTVDrQ+A-^D;2NSul2G8y%*lPfss3H5HUFH#Y~-*4EY_aKnZTrlzI<1BJZ3y)7&(z?Pkz9k74|dB6Z^{r&xc zvXTwt0aZLaJeqFhzX4tPr;8(Fp=iqE?VRRBBU}#@KxJp-o(^P{f50VnXRFPfu{(9bcKSDjgkz~WPhBTywQ;IK+~IN zG(A1IbfksS-8+OGI+qd55tKQCtDF19*yZR~rcq?$+od~b&gNak+(`J>Ft0m;t>)`f zTj~o<7xdh1_RZE5R-SBmFg>h%WX{aW`2Bi>(+SNcxW-36IVXSE0kg?Q?q$S|L@C1T zG&cOcSFx&6>ea&aiGQg2>T?G=KMwdsV#8&s(v3Ax>`aO94SJHaIWG{K@3=6s&FihC z48V2(u45!K0~a!4Q|`Ws6|C0eILiXDx{eF>V!)p0xZsdj6o?(}NXsscEAYafGTO8+ zr%j11}6b7mo_xzc4O)v z6W#k=uc0=o!MpcQuEWFN{m-wA(v_v^R^Fsao}v(&eTycl%<^3DuV61%T%zjJpkjsi zs$75x?;CRB{wa0?k-j2sQPt6tMR0}O`nXVuhAGNia1T`yJz4TjVyiB0B11LMQJExY zjdrM%j4!74^k`VsQae0fosIgzEPS*+9d$ozBFlVM+bg?XEToR}VbZdC2?)L`0t;UR z*z|j1C2pDcM(u%;;ia>DgoGisdYo#L{G06*$q#$2@EoDlG}$zo*0~c9+gq5TASc6@ zGFtuN5e5Md>Jsqidzhg^z}pGf$B=*vmSN<5=Fa~IpC)svpSLm!{tMrqL#sc?-!Tyn zJ_QIZxwT;Lm;b;r=NXy>vv?F!v3A%2FA-7?AO#Y?pK^WcdOJ2F4wzn>oTdtyF%v~N z$*q$%1=cF zAg(pi8%JE-lx%!owC|a&=J8J$q9XO!!&}~kt52OEal*%t&(q>5I2$|P(h#=_l}Z?A zZWjf-jwb`D>I3aZG&DW@CzcDd^CD`J-9;WT` zg`Z4L^TT&mKJAGai1$V8LLUXFV+JI?NLA=)z`dA(XkTPo=v*t%KD|T0^L2dqvt4X# zL6%^LH7>rJguk1Btua|eZDTh2BCB=l<;N2XNkb5S&u$A@*>oQ9MhZeBLoNlQ^1lEC CUXrK) literal 0 HcmV?d00001 diff --git a/MobileWeather/Images.xcassets/Images/sdl-appicon.imageset/Contents.json b/MobileWeather/Images.xcassets/SDL/menu-day.imageset/Contents.json similarity index 74% rename from MobileWeather/Images.xcassets/Images/sdl-appicon.imageset/Contents.json rename to MobileWeather/Images.xcassets/SDL/menu-day.imageset/Contents.json index fb18ee6..9e23267 100644 --- a/MobileWeather/Images.xcassets/Images/sdl-appicon.imageset/Contents.json +++ b/MobileWeather/Images.xcassets/SDL/menu-day.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { + "filename" : "menu-day.png", "idiom" : "universal", - "filename" : "AppIcon.png", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/MobileWeather/Images.xcassets/SDL/menu-day.imageset/menu-day.png b/MobileWeather/Images.xcassets/SDL/menu-day.imageset/menu-day.png new file mode 100644 index 0000000000000000000000000000000000000000..3bb6ab41c18e52db37165108579a677e073bce91 GIT binary patch literal 1828 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 Rb&3E0002ovPDHLkV1fqpJ`Ml? literal 0 HcmV?d00001 diff --git a/MobileWeather/Images.xcassets/sdl-appicon.imageset/App Store + alpha 512@1x.png b/MobileWeather/Images.xcassets/sdl-appicon.imageset/App Store + alpha 512@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..073a1f34f3b5d3e7f8b97dd04d837fc6939b7223 GIT binary patch literal 126861 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